diff --git a/website/src/routes/api/(types)/BaseSchemaAsync/index.mdx b/website/src/routes/api/(types)/BaseSchemaAsync/index.mdx
new file mode 100644
index 000000000..0c937bd2d
--- /dev/null
+++ b/website/src/routes/api/(types)/BaseSchemaAsync/index.mdx
@@ -0,0 +1,21 @@
+---
+title: BaseSchemaAsync
+description: Base schema async type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# BaseSchemaAsync
+
+Base schema async type.
+
+## Definition
+
+- `BaseSchemaAsync`
+ - `async`
+ - `_parse` {/* prettier-ignore */}
+ - `_types` {/* prettier-ignore */}
diff --git a/website/src/routes/api/(types)/BaseSchemaAsync/properties.ts b/website/src/routes/api/(types)/BaseSchemaAsync/properties.ts
new file mode 100644
index 000000000..bb2a96230
--- /dev/null
+++ b/website/src/routes/api/(types)/BaseSchemaAsync/properties.ts
@@ -0,0 +1,87 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ BaseSchemaAsync: {
+ type: {
+ type: 'custom',
+ name: 'Object',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TInput',
+ default: 'any',
+ },
+ {
+ type: 'custom',
+ name: 'TOutput',
+ default: {
+ type: 'custom',
+ name: 'TInput',
+ },
+ },
+ ],
+ },
+ },
+ async: {
+ type: {
+ type: 'boolean',
+ value: true,
+ },
+ },
+ _parse: {
+ type: {
+ type: 'function',
+ params: [
+ {
+ name: 'input',
+ type: 'unknown',
+ },
+ {
+ name: 'info',
+ optional: true,
+ type: {
+ type: 'custom',
+ name: 'ParseInfo',
+ href: '../ParseInfo/',
+ },
+ },
+ ],
+ return: {
+ type: 'custom',
+ name: 'Promise',
+ generics: [
+ {
+ type: 'custom',
+ name: 'SchemaResult',
+ href: '../SchemaResult/',
+ generics: [{ type: 'custom', name: 'TOutput' }],
+ },
+ ],
+ },
+ },
+ },
+ _types: {
+ type: [
+ {
+ type: 'object',
+ entries: [
+ {
+ key: 'input',
+ value: {
+ type: 'custom',
+ name: 'TInput',
+ },
+ },
+ {
+ key: 'output',
+ value: {
+ type: 'custom',
+ name: 'TOutput',
+ },
+ },
+ ],
+ },
+ 'undefined',
+ ],
+ },
+};
diff --git a/website/src/routes/api/(types)/EntriesInput/index.mdx b/website/src/routes/api/(types)/EntriesInput/index.mdx
new file mode 100644
index 000000000..5effd2718
--- /dev/null
+++ b/website/src/routes/api/(types)/EntriesInput/index.mdx
@@ -0,0 +1,22 @@
+---
+title: EntriesInput
+description: Entries input type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# EntriesInput
+
+Entries input type.
+
+## Generics
+
+- `TEntries`
+
+## Definition
+
+- `EntriesInput`
diff --git a/website/src/routes/api/(types)/EntriesInput/properties.ts b/website/src/routes/api/(types)/EntriesInput/properties.ts
new file mode 100644
index 000000000..8b109786b
--- /dev/null
+++ b/website/src/routes/api/(types)/EntriesInput/properties.ts
@@ -0,0 +1,52 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ TEntries: {
+ type: [
+ {
+ type: 'custom',
+ name: 'ObjectEntries',
+ href: '../ObjectEntries/',
+ },
+ {
+ type: 'custom',
+ name: 'ObjectEntriesAsync',
+ href: '../ObjectEntriesAsync/',
+ },
+ ],
+ },
+ EntriesInput: {
+ type: {
+ type: 'object',
+ entries: [
+ {
+ key: {
+ name: 'TKey',
+ type: {
+ type: 'custom',
+ modifier: 'keyof',
+ name: 'TEntries',
+ },
+ },
+ value: {
+ type: 'custom',
+ name: 'Input',
+ href: '../Input/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ indexes: [
+ {
+ type: 'custom',
+ name: 'TKey',
+ },
+ ],
+ },
+ ],
+ },
+ },
+ ],
+ },
+ },
+};
diff --git a/website/src/routes/api/(types)/EntriesOutput/index.mdx b/website/src/routes/api/(types)/EntriesOutput/index.mdx
new file mode 100644
index 000000000..143d12681
--- /dev/null
+++ b/website/src/routes/api/(types)/EntriesOutput/index.mdx
@@ -0,0 +1,22 @@
+---
+title: EntriesOutput
+description: Entries output type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# EntriesOutput
+
+Entries output type.
+
+## Generics
+
+- `TEntries`
+
+## Definition
+
+- `EntriesOutput`
diff --git a/website/src/routes/api/(types)/EntriesOutput/properties.ts b/website/src/routes/api/(types)/EntriesOutput/properties.ts
new file mode 100644
index 000000000..b50d0ba00
--- /dev/null
+++ b/website/src/routes/api/(types)/EntriesOutput/properties.ts
@@ -0,0 +1,52 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ TEntries: {
+ type: [
+ {
+ type: 'custom',
+ name: 'ObjectEntries',
+ href: '../ObjectEntries/',
+ },
+ {
+ type: 'custom',
+ name: 'ObjectEntriesAsync',
+ href: '../ObjectEntriesAsync/',
+ },
+ ],
+ },
+ EntriesOutput: {
+ type: {
+ type: 'object',
+ entries: [
+ {
+ key: {
+ name: 'TKey',
+ type: {
+ type: 'custom',
+ modifier: 'keyof',
+ name: 'TEntries',
+ },
+ },
+ value: {
+ type: 'custom',
+ name: 'Output',
+ href: '../Output/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ indexes: [
+ {
+ type: 'custom',
+ name: 'TKey',
+ },
+ ],
+ },
+ ],
+ },
+ },
+ ],
+ },
+ },
+};
diff --git a/website/src/routes/api/(types)/ObjectEntries/index.mdx b/website/src/routes/api/(types)/ObjectEntries/index.mdx
new file mode 100644
index 000000000..70144b32a
--- /dev/null
+++ b/website/src/routes/api/(types)/ObjectEntries/index.mdx
@@ -0,0 +1,18 @@
+---
+title: ObjectEntries
+description: Object entries type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# ObjectEntries
+
+Object entries type.
+
+## Definition
+
+- `ObjectEntries`
diff --git a/website/src/routes/api/(types)/ObjectEntries/properties.ts b/website/src/routes/api/(types)/ObjectEntries/properties.ts
new file mode 100644
index 000000000..b801d123d
--- /dev/null
+++ b/website/src/routes/api/(types)/ObjectEntries/properties.ts
@@ -0,0 +1,18 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ ObjectEntries: {
+ type: {
+ type: 'custom',
+ name: 'Record',
+ generics: [
+ 'string',
+ {
+ type: 'custom',
+ name: 'BaseSchema',
+ href: '../BaseSchema/',
+ },
+ ],
+ },
+ },
+};
diff --git a/website/src/routes/api/(types)/ObjectEntriesAsync/index.mdx b/website/src/routes/api/(types)/ObjectEntriesAsync/index.mdx
new file mode 100644
index 000000000..d39449bad
--- /dev/null
+++ b/website/src/routes/api/(types)/ObjectEntriesAsync/index.mdx
@@ -0,0 +1,18 @@
+---
+title: ObjectEntriesAsync
+description: Object entries async type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# ObjectEntriesAsync
+
+Object entries async type.
+
+## Definition
+
+- `ObjectEntriesAsync`
diff --git a/website/src/routes/api/(types)/ObjectEntriesAsync/properties.ts b/website/src/routes/api/(types)/ObjectEntriesAsync/properties.ts
new file mode 100644
index 000000000..f191a92cd
--- /dev/null
+++ b/website/src/routes/api/(types)/ObjectEntriesAsync/properties.ts
@@ -0,0 +1,25 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ ObjectEntriesAsync: {
+ type: {
+ type: 'custom',
+ name: 'Record',
+ generics: [
+ 'string',
+ [
+ {
+ type: 'custom',
+ name: 'BaseSchema',
+ href: '../BaseSchema/',
+ },
+ {
+ type: 'custom',
+ name: 'BaseSchemaAsync',
+ href: '../BaseSchemaAsync/',
+ },
+ ],
+ ],
+ },
+ },
+};
diff --git a/website/src/routes/api/(types)/ObjectOutput/index.mdx b/website/src/routes/api/(types)/ObjectOutput/index.mdx
new file mode 100644
index 000000000..99d56d5e1
--- /dev/null
+++ b/website/src/routes/api/(types)/ObjectOutput/index.mdx
@@ -0,0 +1,23 @@
+---
+title: ObjectOutput
+description: Object output type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# ObjectOutput
+
+Object output type.
+
+## Generics
+
+- `TEntries`
+- `TRest`
+
+## Definition
+
+- `ObjectOutput`
diff --git a/website/src/routes/api/(types)/ObjectOutput/properties.ts b/website/src/routes/api/(types)/ObjectOutput/properties.ts
new file mode 100644
index 000000000..3126cfb68
--- /dev/null
+++ b/website/src/routes/api/(types)/ObjectOutput/properties.ts
@@ -0,0 +1,119 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ TEntries: {
+ type: [
+ {
+ type: 'custom',
+ name: 'ObjectEntries',
+ href: '../ObjectEntries/',
+ },
+ {
+ type: 'custom',
+ name: 'ObjectEntriesAsync',
+ href: '../ObjectEntriesAsync/',
+ },
+ ],
+ },
+ TRest: {
+ type: [
+ {
+ type: 'custom',
+ name: 'BaseSchema',
+ href: '../BaseSchema/',
+ },
+ {
+ type: 'custom',
+ name: 'BaseSchemaAsync',
+ href: '../BaseSchemaAsync/',
+ },
+ 'undefined',
+ ],
+ },
+ ObjectOutput: {
+ type: [
+ {
+ type: 'custom',
+ name: 'ResolveObject',
+ href: '../ResolveObject/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'WithQuestionMarks',
+ href: '../WithQuestionMarks/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ {
+ type: 'custom',
+ name: 'EntriesOutput',
+ href: '../EntriesOutput/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ [
+ {
+ type: 'custom',
+ name: 'ResolveObject',
+ href: '../ResolveObject/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'WithQuestionMarks',
+ href: '../WithQuestionMarks/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ {
+ type: 'custom',
+ name: 'EntriesOutput',
+ href: '../EntriesOutput/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ type: 'custom',
+ name: 'Record',
+ generics: [
+ 'string',
+ {
+ type: 'custom',
+ name: 'Output',
+ href: '../Output/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TRest',
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ {
+ type: 'custom',
+ name: 'never',
+ },
+ ],
+ },
+};
diff --git a/website/src/routes/api/(types)/ObjectSchema/index.mdx b/website/src/routes/api/(types)/ObjectSchema/index.mdx
new file mode 100644
index 000000000..a2d7684c0
--- /dev/null
+++ b/website/src/routes/api/(types)/ObjectSchema/index.mdx
@@ -0,0 +1,19 @@
+---
+title: AnySchema
+description: Any schema type.
+contributors:
+ - fabian-hiller
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# AnySchema
+
+Any schema type.
+
+## Definition
+
+- `AnySchema`
+ - `type`
+ - `pipe`
diff --git a/website/src/routes/api/(types)/ObjectSchema/properties.ts b/website/src/routes/api/(types)/ObjectSchema/properties.ts
new file mode 100644
index 000000000..311a98f67
--- /dev/null
+++ b/website/src/routes/api/(types)/ObjectSchema/properties.ts
@@ -0,0 +1,38 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ BaseSchema: {
+ type: [
+ {
+ type: 'custom',
+ name: 'BaseSchema',
+ href: '../BaseSchema/',
+ generics: [
+ 'any',
+ {
+ type: 'custom',
+ name: 'TOutput',
+ default: 'any',
+ },
+ ],
+ },
+ ],
+ },
+ type: {
+ type: {
+ type: 'string',
+ value: 'any',
+ },
+ },
+ pipe: {
+ type: [
+ {
+ type: 'custom',
+ name: 'Pipe',
+ href: '../Pipe/',
+ generics: ['any'],
+ },
+ 'undefined',
+ ],
+ },
+};
diff --git a/website/src/routes/api/(types)/OptionalKeys/index.mdx b/website/src/routes/api/(types)/OptionalKeys/index.mdx
new file mode 100644
index 000000000..9c5205cae
--- /dev/null
+++ b/website/src/routes/api/(types)/OptionalKeys/index.mdx
@@ -0,0 +1,24 @@
+---
+title: OptionalKeys
+description: Optional keys type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# OptionalKeys
+
+Optional keys type.
+
+## Generics
+
+- `TEntries`
+- `TObject`
+
+
+## Definition
+
+- `OptionalKeys`
diff --git a/website/src/routes/api/(types)/OptionalKeys/properties.ts b/website/src/routes/api/(types)/OptionalKeys/properties.ts
new file mode 100644
index 000000000..7ee6ac9da
--- /dev/null
+++ b/website/src/routes/api/(types)/OptionalKeys/properties.ts
@@ -0,0 +1,76 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ TEntries: {
+ type: [
+ {
+ type: 'custom',
+ name: 'ObjectEntries',
+ href: '../ObjectEntries/',
+ },
+ {
+ type: 'custom',
+ name: 'ObjectEntriesAsync',
+ href: '../ObjectEntriesAsync/',
+ },
+ ],
+ },
+ TObject: {
+ type: [
+ {
+ type: 'custom',
+ name: 'EntriesInput',
+ href: '../EntriesInput/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ ],
+ },
+ {
+ type: 'custom',
+ name: 'EntriesOutput',
+ href: '../EntriesOutput/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ ],
+ },
+ ],
+ },
+ OptionalKeys: {
+ type: {
+ type: 'object',
+ index: {
+ type: 'custom',
+ modifier: 'keyof',
+ name: 'TEntries',
+ },
+ entries: [
+ {
+ key: {
+ name: 'TKey',
+ type: {
+ type: 'custom',
+ modifier: 'keyof',
+ name: 'TEntries',
+ },
+ },
+ value: [
+ {
+ type: 'custom',
+ name: 'TKey',
+ },
+ {
+ type: 'custom',
+ name: 'never',
+ },
+ ],
+ },
+ ],
+ },
+ },
+};
diff --git a/website/src/routes/api/(types)/RequiredKeys/index.mdx b/website/src/routes/api/(types)/RequiredKeys/index.mdx
new file mode 100644
index 000000000..799a0c8bc
--- /dev/null
+++ b/website/src/routes/api/(types)/RequiredKeys/index.mdx
@@ -0,0 +1,24 @@
+---
+title: RequiredKeys
+description: Required keys type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# RequiredKeys
+
+Required keys type.
+
+## Generics
+
+- `TEntries`
+- `TObject`
+
+
+## Definition
+
+- `RequiredKeys`
diff --git a/website/src/routes/api/(types)/RequiredKeys/properties.ts b/website/src/routes/api/(types)/RequiredKeys/properties.ts
new file mode 100644
index 000000000..5503c5caf
--- /dev/null
+++ b/website/src/routes/api/(types)/RequiredKeys/properties.ts
@@ -0,0 +1,76 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ TEntries: {
+ type: [
+ {
+ type: 'custom',
+ name: 'ObjectEntries',
+ href: '../ObjectEntries/',
+ },
+ {
+ type: 'custom',
+ name: 'ObjectEntriesAsync',
+ href: '../ObjectEntriesAsync/',
+ },
+ ],
+ },
+ TObject: {
+ type: [
+ {
+ type: 'custom',
+ name: 'EntriesInput',
+ href: '../EntriesInput/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ ],
+ },
+ {
+ type: 'custom',
+ name: 'EntriesOutput',
+ href: '../EntriesOutput/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ ],
+ },
+ ],
+ },
+ RequiredKeys: {
+ type: {
+ type: 'object',
+ index: {
+ type: 'custom',
+ modifier: 'keyof',
+ name: 'TEntries',
+ },
+ entries: [
+ {
+ key: {
+ name: 'TKey',
+ type: {
+ type: 'custom',
+ modifier: 'keyof',
+ name: 'TEntries',
+ },
+ },
+ value: [
+ {
+ type: 'custom',
+ name: 'TKey',
+ },
+ {
+ type: 'custom',
+ name: 'never',
+ },
+ ],
+ },
+ ],
+ },
+ },
+};
diff --git a/website/src/routes/api/(types)/ResolveObject/index.mdx b/website/src/routes/api/(types)/ResolveObject/index.mdx
new file mode 100644
index 000000000..fc3dd5020
--- /dev/null
+++ b/website/src/routes/api/(types)/ResolveObject/index.mdx
@@ -0,0 +1,18 @@
+---
+title: ResolveObject
+description: Resolve object type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# ResolveObject
+
+Resolve object type.
+
+## Definition
+
+- `ResolveObject`
diff --git a/website/src/routes/api/(types)/ResolveObject/properties.ts b/website/src/routes/api/(types)/ResolveObject/properties.ts
new file mode 100644
index 000000000..a266a32e2
--- /dev/null
+++ b/website/src/routes/api/(types)/ResolveObject/properties.ts
@@ -0,0 +1,31 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ ResolveObject: {
+ type: {
+ type: 'object',
+ entries: [
+ {
+ key: {
+ name: 'k',
+ type: {
+ type: 'custom',
+ name: 'T',
+ modifier: 'keyof',
+ },
+ },
+ value: {
+ type: 'custom',
+ name: 'T',
+ indexes: [
+ {
+ type: 'custom',
+ name: 'k',
+ },
+ ],
+ },
+ },
+ ],
+ },
+ },
+};
diff --git a/website/src/routes/api/(types)/WithQuestionMarks/index.mdx b/website/src/routes/api/(types)/WithQuestionMarks/index.mdx
new file mode 100644
index 000000000..9405a3012
--- /dev/null
+++ b/website/src/routes/api/(types)/WithQuestionMarks/index.mdx
@@ -0,0 +1,18 @@
+---
+title: WithQuestionMarks
+description: With Question Marks type.
+contributors:
+ - fabian-hiller
+ - kazizi55
+---
+
+import { Property } from '~/components';
+import { properties } from './properties';
+
+# WithQuestionMarks
+
+With Question Marks type.
+
+## Definition
+
+- `WithQuestionMarks`
diff --git a/website/src/routes/api/(types)/WithQuestionMarks/properties.ts b/website/src/routes/api/(types)/WithQuestionMarks/properties.ts
new file mode 100644
index 000000000..55c2b42ff
--- /dev/null
+++ b/website/src/routes/api/(types)/WithQuestionMarks/properties.ts
@@ -0,0 +1,88 @@
+import type { PropertyProps } from '~/components';
+
+export const properties: Record = {
+ TEntries: {
+ type: [
+ {
+ type: 'custom',
+ name: 'ObjectEntries',
+ href: '../ObjectEntries/',
+ },
+ {
+ type: 'custom',
+ name: 'ObjectEntriesAsync',
+ href: '../ObjectEntriesAsync/',
+ },
+ ],
+ },
+ TObject: {
+ type: [
+ {
+ type: 'custom',
+ name: 'EntriesInput',
+ href: '../EntriesInput/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ ],
+ },
+ {
+ type: 'custom',
+ name: 'EntriesOutput',
+ href: '../EntriesOutput/',
+ generics: [
+ {
+ type: 'custom',
+ name: 'TEntries',
+ },
+ ],
+ },
+ ],
+ },
+ WithQuestionMarks: {
+ type: [
+ [
+ {
+ type: 'custom',
+ name: 'Pick',
+ generics: [
+ { type: 'custom', name: 'TObject' },
+ {
+ type: 'custom',
+ name: 'RequiredKeys',
+ href: '../RequiredKeys/',
+ generics: [
+ { type: 'custom', name: 'TEntries' },
+ { type: 'custom', name: 'TObject' },
+ ],
+ },
+ ],
+ },
+ {
+ type: 'custom',
+ name: 'Partial',
+ generics: [
+ {
+ type: 'custom',
+ name: 'Pick',
+ generics: [
+ { type: 'custom', name: 'TObject' },
+ {
+ type: 'custom',
+ name: 'OptionalKeys',
+ href: '../OptionalKeys/',
+ generics: [
+ { type: 'custom', name: 'TEntries' },
+ { type: 'custom', name: 'TObject' },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ ],
+ },
+};