Skip to content

Commit fcf2957

Browse files
committed
Merge branch 'main' into graphql
2 parents 306933d + 8909b55 commit fcf2957

132 files changed

Lines changed: 3082 additions & 765 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -59,37 +59,37 @@ We do however have schemas, and schemas are basically ASTs.
5959
## Integrations
6060

6161
<ul>
62-
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/arktype"><code>@traversable/arktype@0.0.23</code></a>: Production-grade ArkType schema-rewriters</li>
63-
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/arktype-test"><code>@traversable/arktype-test@0.0.16</code></a>: Configurable ArkType schema-generator (for fuzz testing)</li>
64-
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/arktype-types"><code>@traversable/arktype-types@0.0.16</code></a>: ArkType Functor (for recursion schemes)</a></li>
65-
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/json-schema"><code>@traversable/json-schema@0.0.23</code></a>: Production-grade JSON Schema schema-rewriters</li>
66-
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/json-schema-test"><code>@traversable/json-schema-test@0.0.21</code></a>: Configurable JSON Schema generator (for fuzz testing)</li>
67-
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/json-schema-types"><code>@traversable/json-schema-types@0.0.21</code></a>: JSON Schema Functor (for recursion schemes)</a></li>
68-
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/typebox"><code>@traversable/typebox@0.0.28</code></a>: Production-grade TypeBox schema-rewriters</li>
69-
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/typebox-test"><code>@traversable/typebox-test@0.0.16</code></a>: Configurable TypeBox schema-generator (for fuzz testing)</li>
70-
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/typebox-types"><code>@traversable/typebox-types@0.0.19</code></a>: ArkType Functor (for recursion schemes)</a></li>
71-
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/valibot"><code>@traversable/valibot@0.0.23</code></a>: Production-grade Valibot schema-rewriters</li>
72-
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/valibot-test"><code>@traversable/valibot-test@0.0.16</code></a>: Configurable Valibot schema-generator (for fuzz testing)</li>
73-
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/valibot-types"><code>@traversable/valibot-types@0.0.15</code></a>: Valibot Functor (for recursion schemes)</a></li>
74-
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/zod"><code>@traversable/zod@0.0.48</code></a>: Production-grade zod schema-rewriters</li>
75-
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/zod-test"><code>@traversable/zod-test@0.0.21</code></a>: Configurable zod schema-generator (for fuzz testing)</li>
76-
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/zod-types"><code>@traversable/zod-types@0.0.25</code></a>: zod Functor (for recursion schemes)</a></li>
62+
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/arktype"><code>@traversable/arktype@0.0.26</code></a>: Production-grade ArkType schema-rewriters</li>
63+
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/arktype-test"><code>@traversable/arktype-test@0.0.20</code></a>: Configurable ArkType schema-generator (for fuzz testing)</li>
64+
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/arktype-types"><code>@traversable/arktype-types@0.0.19</code></a>: ArkType Functor (for recursion schemes)</a></li>
65+
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/json-schema"><code>@traversable/json-schema@0.0.26</code></a>: Production-grade JSON Schema schema-rewriters</li>
66+
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/json-schema-test"><code>@traversable/json-schema-test@0.0.25</code></a>: Configurable JSON Schema generator (for fuzz testing)</li>
67+
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/json-schema-types"><code>@traversable/json-schema-types@0.0.24</code></a>: JSON Schema Functor (for recursion schemes)</a></li>
68+
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/typebox"><code>@traversable/typebox@0.0.31</code></a>: Production-grade TypeBox schema-rewriters</li>
69+
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/typebox-test"><code>@traversable/typebox-test@0.0.20</code></a>: Configurable TypeBox schema-generator (for fuzz testing)</li>
70+
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/typebox-types"><code>@traversable/typebox-types@0.0.22</code></a>: ArkType Functor (for recursion schemes)</a></li>
71+
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/valibot"><code>@traversable/valibot@0.0.26</code></a>: Production-grade Valibot schema-rewriters</li>
72+
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/valibot-test"><code>@traversable/valibot-test@0.0.20</code></a>: Configurable Valibot schema-generator (for fuzz testing)</li>
73+
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/valibot-types"><code>@traversable/valibot-types@0.0.18</code></a>: Valibot Functor (for recursion schemes)</a></li>
74+
<li>📦 <a href="https://github.com/traversable/schema/tree/main/packages/zod"><code>@traversable/zod@0.0.53</code></a>: Production-grade zod schema-rewriters</li>
75+
<li>🔬 <a href="https://github.com/traversable/schema/tree/main/packages/zod-test"><code>@traversable/zod-test@0.0.25</code></a>: Configurable zod schema-generator (for fuzz testing)</li>
76+
<li>🌳 <a href="https://github.com/traversable/schema/tree/main/packages/zod-types"><code>@traversable/zod-types@0.0.28</code></a>: zod Functor (for recursion schemes)</a></li>
7777
</ul>
7878

7979
## Libraries
8080

8181
<ul>
82-
<li><a href="https://github.com/traversable/schema/tree/main/packages/json"><code>@traversable/json@0.0.49</code></a></li>
83-
<li><a href="https://github.com/traversable/schema/tree/main/packages/registry"><code>@traversable/registry@0.0.46</code></a></li>
84-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema"><code>@traversable/schema@0.0.59</code></a></li>
85-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-codec"><code>@traversable/schema-codec@0.0.30</code></a></li>
86-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-compiler"><code>@traversable/schema-compiler@0.0.27</code></a></li>
87-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-errors"><code>@traversable/schema-errors@0.0.26</code></a></li>
88-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-deep-equal"><code>@traversable/schema-deep-equal@0.0.16</code></a></li>
89-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-seed"><code>@traversable/schema-seed@0.0.49</code></a></li>
90-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-to-json-schema"><code>@traversable/schema-to-json-schema@0.0.46</code></a></li>
91-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-to-string"><code>@traversable/schema-to-string@0.0.47</code></a></li>
92-
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-to-validator"><code>@traversable/schema-to-validator@0.0.16</code></a></li>
82+
<li><a href="https://github.com/traversable/schema/tree/main/packages/json"><code>@traversable/json@0.0.52</code></a></li>
83+
<li><a href="https://github.com/traversable/schema/tree/main/packages/registry"><code>@traversable/registry@0.0.49</code></a></li>
84+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema"><code>@traversable/schema@0.0.62</code></a></li>
85+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-codec"><code>@traversable/schema-codec@0.0.33</code></a></li>
86+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-compiler"><code>@traversable/schema-compiler@0.0.30</code></a></li>
87+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-errors"><code>@traversable/schema-errors@0.0.29</code></a></li>
88+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-deep-equal"><code>@traversable/schema-deep-equal@0.0.19</code></a></li>
89+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-seed"><code>@traversable/schema-seed@0.0.52</code></a></li>
90+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-to-json-schema"><code>@traversable/schema-to-json-schema@0.0.49</code></a></li>
91+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-to-string"><code>@traversable/schema-to-string@0.0.50</code></a></li>
92+
<li><a href="https://github.com/traversable/schema/tree/main/packages/schema-to-validator"><code>@traversable/schema-to-validator@0.0.19</code></a></li>
9393
</ul>
9494

9595
## Prior art

bin/pack.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ export const workspaceTasks
9191
addOptional("peerDependenciesMeta")
9292
addOptional("gitHead")
9393
addOptional("bin")
94+
addOptional("license")
9495

9596
void (ctx.hasMainCjs && (out.main = `./dist/cjs/index.js`))
9697
void (ctx.hasMainEsm && (out.module = `./dist/esm/index.js`))

bin/schema.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Schema as S } from "effect"
22
import { SCOPE, defaults } from "./constants.js"
33

4-
interface Config extends S.Schema.Type<typeof Config> { }
4+
interface Config extends S.Schema.Type<typeof Config> {}
55
const Config = S.Struct({
66
generateExports: S.optional(
77
S.Struct({
@@ -25,11 +25,12 @@ const Config = S.Struct({
2525
),
2626
})
2727

28-
export interface PackageJson extends S.Schema.Type<typeof PackageJson> { }
28+
export interface PackageJson extends S.Schema.Type<typeof PackageJson> {}
2929
export const PackageJson = S.Struct({
3030
name: S.String,
3131
version: S.String,
3232
description: S.String,
33+
license: S.String,
3334
private: S
3435
.optional(S.Boolean)
3536
.pipe(S.withConstructorDefault(() => false)),

examples/sandbox/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,15 @@
2424
"@traversable/schema-to-string": "latest",
2525
"@traversable/schema-to-validator": "latest",
2626
"@traversable/arktype": "latest",
27+
"@traversable/arktype-test": "latest",
2728
"@traversable/json-schema": "latest",
29+
"@traversable/json-schema-test": "latest",
2830
"@traversable/typebox": "latest",
31+
"@traversable/typebox-test": "latest",
2932
"@traversable/valibot": "latest",
33+
"@traversable/valibot-test": "latest",
3034
"@traversable/zod": "latest",
35+
"@traversable/zod-test": "latest",
3136
"arktype": "latest",
3237
"fast-check": "latest",
3338
"react": "latest",

packages/arktype-test/CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,36 @@
11
# @traversable/arktype-test
22

3+
## 0.0.20
4+
5+
### Patch Changes
6+
7+
- [#538](https://github.com/traversable/schema/pull/538) [`2b54afa`](https://github.com/traversable/schema/commit/2b54afabedd9d317b8e6374cd963ceaa8d91eb3b) Thanks [@ahrjarrett](https://github.com/ahrjarrett)! - optimize(arktype-test,arktype-types): optimizes type-level performance of `ark.fold`
8+
9+
- Updated dependencies [[`2b54afa`](https://github.com/traversable/schema/commit/2b54afabedd9d317b8e6374cd963ceaa8d91eb3b)]:
10+
- @traversable/registry@0.0.49
11+
12+
## 0.0.19
13+
14+
### Patch Changes
15+
16+
- [#536](https://github.com/traversable/schema/pull/536) [`f115d43`](https://github.com/traversable/schema/commit/f115d434b6cbf53bc78a109b0e6431e523e6c23c) Thanks [@ahrjarrett](https://github.com/ahrjarrett)! - break(arktype-test): removes `minDepth` option
17+
18+
## 0.0.18
19+
20+
### Patch Changes
21+
22+
- Updated dependencies [[`5db0e97`](https://github.com/traversable/schema/commit/5db0e977dee743fd3103c9874dc84f4f222e4385)]:
23+
- @traversable/registry@0.0.48
24+
25+
## 0.0.17
26+
27+
### Patch Changes
28+
29+
- [#529](https://github.com/traversable/schema/pull/529) [`93a20be`](https://github.com/traversable/schema/commit/93a20beca85639a53e44f94a478c7adfd015eda1) Thanks [@ahrjarrett](https://github.com/ahrjarrett)! - chore(\*): adds license to built package.json files
30+
31+
- Updated dependencies [[`93a20be`](https://github.com/traversable/schema/commit/93a20beca85639a53e44f94a478c7adfd015eda1)]:
32+
- @traversable/registry@0.0.47
33+
334
## 0.0.16
435

536
### Patch Changes

packages/arktype-test/README.md

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
1. [`arktype`](https://arktype.io/) (v2.1)
3838
2. [`fast-check`](https://fast-check.dev/)
3939

40+
4041
## Usage
4142

4243
```bash
@@ -52,12 +53,28 @@ import { arkTest } from '@traversable/arktype-test'
5253
// see below for specifc examples
5354
```
5455

56+
5557
## Table of contents
5658

57-
- [`arkTest.SeedGenerator`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedgenerator)
5859
- [`arkTest.seedToSchema`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedtoschema)
5960
- [`arkTest.seedToValidData`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedtovaliddata)
6061
- [`arkTest.seedToInvalidData`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedtoinvaliddata)
62+
- [`arkTest.SeedGenerator`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedgenerator)
63+
- [`arkTest.SeedValidDataGenerator`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arkseedvaliddatagenerator)
64+
- [`arkTest.SeedInvalidDataGenerator`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arkseedinvaliddatagenerator)
65+
66+
67+
## Track record
68+
69+
`@traversable/arktype-test` has found several upstream bugs:
70+
71+
1. Array + tuple union unsatisfied by empty array
72+
- [Issue](https://github.com/arktypeio/arktype/issues/1441)
73+
- [Sandbox](https://stackblitz.com/edit/vitest-dev-vitest-nho5vqwa?file=test%2Frepro.test.ts)
74+
75+
2. Discriminated union bug
76+
- [Issue](https://github.com/arktypeio/arktype/issues/1440)
77+
- [Sandbox](https://stackblitz.com/edit/vitest-dev-vitest-ddhwwn9j?file=test%2Frepro.test.ts)
6178

6279

6380
### `arkTest.seedToSchema`
@@ -78,6 +95,7 @@ const mySchema = arkTest.seedToSchema(mySeed)
7895
// ^? const mySchema: type.Any
7996
```
8097

98+
8199
### `arkTest.seedToValidData`
82100

83101
Use `arkTest.seedToValidData` to convert a seed generated by `arkTest.SeedGenerator` into
@@ -101,6 +119,7 @@ const validData = arkTest.seedToValidData(mySeed)
101119
mySchema(validData) instanceof type.errors // always `false`
102120
```
103121

122+
104123
### `arkTest.seedToInvalidData`
105124

106125
Use `arkTest.seedToInvalidData` to convert a seed generated by `arkTest.SeedGenerator` into
@@ -124,8 +143,13 @@ const invalidData = arkTest.seedToValidData(mySeed)
124143
mySchema(invalidData) instanceof type.errors // always `true`
125144
```
126145

146+
127147
### `arkTest.SeedGenerator`
128148

149+
> [!NOTE]
150+
>
151+
> `arkTest.SeedGenerator` is fairly low-level. All of the other exports of this library have been implemented in terms of `arkTest.SeedGenerator`.
152+
129153
Generates a configurable, pseudo-random "seed builder".
130154

131155
- Use [`arkTest.seedToSchema`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedtoschema) to convert a seed into an ArkType schema
@@ -136,18 +160,14 @@ Generates a configurable, pseudo-random "seed builder".
136160

137161
```typescript
138162
import { type } from 'arktype'
139-
import { arkTest } from '@traversable/arktype-test'
140163
import * as fc from 'fast-check'
164+
import { arkTest } from '@traversable/arktype-test'
141165

142166
const builder = arkTest.SeedGenerator({
143167
include: ["boolean", "string", "object"],
144168
// 𐙘 use `include` to only include certain schema types
145-
exclude: ["boolean", "unknown"],
169+
exclude: ["boolean", "any"],
146170
// 𐙘 use `exclude` to exclude certain schema types altogether (overrides `include`)
147-
minDepth: 1,
148-
// 𐙘 use `minDepth` to control the schema's minimum depth
149-
// **NOTE:** schemas can get very large!
150-
// using in your CI/CD pipeline is _not_ recommended
151171
object: { maxKeys: 5 },
152172
// 𐙘 specific arbitraries are configurable by name
153173
})
@@ -184,14 +204,20 @@ const invalidData = arkTest.seedToInvalidData(mySeed)
184204
// parsing `invalidData` should always fail
185205
```
186206

187-
#### Track record
188207

189-
`arkTest.SeedGenerator` has found several upstream bugs:
208+
### `arkTest.SeedValidDataGenerator`
190209

191-
1. Array + tuple union unsatisfied by empty array
192-
- [Issue](https://github.com/arktypeio/arktype/issues/1441)
193-
- [Sandbox](https://stackblitz.com/edit/vitest-dev-vitest-nho5vqwa?file=test%2Frepro.test.ts)
210+
Like [`arkTest.SeedGenerator`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedgenerator), except `arkTest.SeedValidDataGenerator` comes pre-configured to exclude schemas that make it impossible to reliably generate valid data.
194211

195-
2. Discriminated union bug
196-
- [Issue](https://github.com/arktypeio/arktype/issues/1440)
197-
- [Sandbox](https://stackblitz.com/edit/vitest-dev-vitest-ddhwwn9j?file=test%2Frepro.test.ts)
212+
> [!NOTE]
213+
>
214+
> `arkTest.SeedValidDataGenerator` does not accept any options. If you need more fine-grained control of the schemas being generated, use [`arkTest.SeedGenerator`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedgenerator).
215+
216+
217+
### `arkTest.SeedInvalidDataGenerator`
218+
219+
Like [`arkTest.SeedGenerator`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedgenerator), except `arkTest.SeedValidDataGenerator` comes pre-configured to exclude schemas that make it impossible to reliably generate invalid data.
220+
221+
> [!NOTE]
222+
>
223+
> `arkTest.SeedInvalidDataGenerator` does not accept any options. If you need more fine-grained control of the schemas being generated, use [`arkTest.SeedGenerator`](https://github.com/traversable/schema/tree/main/packages/arktype-test#arktestseedgenerator).

packages/arktype-test/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@traversable/arktype-test",
33
"type": "module",
4-
"version": "0.0.16",
4+
"version": "0.0.20",
55
"private": false,
66
"description": "",
77
"license": "MIT",

packages/arktype-test/src/__generated__/__manifest__.ts

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)