bupkis 0.18.0 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/package.json +1 -4
- package/src/assertion/assertion-types.ts +4 -4
- package/src/assertion/impl/async-parametric.ts +4 -21
- package/src/assertion/impl/sync-parametric.ts +5 -17
- package/src/expect.ts +0 -4
- package/src/guards.ts +24 -24
- package/src/internal-schema.ts +16 -32
- package/src/value-to-schema.ts +1 -1
- package/dist/assertion/assertion-async.cjs +0 -268
- package/dist/assertion/assertion-async.cjs.map +0 -1
- package/dist/assertion/assertion-async.d.cts +0 -40
- package/dist/assertion/assertion-async.d.cts.map +0 -1
- package/dist/assertion/assertion-async.d.ts +0 -40
- package/dist/assertion/assertion-async.d.ts.map +0 -1
- package/dist/assertion/assertion-async.js +0 -259
- package/dist/assertion/assertion-async.js.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.cjs +0 -132
- package/dist/assertion/assertion-standard-schema-async.cjs.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.d.cts +0 -52
- package/dist/assertion/assertion-standard-schema-async.d.cts.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.d.ts +0 -52
- package/dist/assertion/assertion-standard-schema-async.d.ts.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.js +0 -128
- package/dist/assertion/assertion-standard-schema-async.js.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.cjs +0 -141
- package/dist/assertion/assertion-standard-schema-sync.cjs.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.d.cts +0 -52
- package/dist/assertion/assertion-standard-schema-sync.d.cts.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.d.ts +0 -52
- package/dist/assertion/assertion-standard-schema-sync.d.ts.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.js +0 -137
- package/dist/assertion/assertion-standard-schema-sync.js.map +0 -1
- package/dist/assertion/assertion-sync.cjs +0 -284
- package/dist/assertion/assertion-sync.cjs.map +0 -1
- package/dist/assertion/assertion-sync.d.cts +0 -60
- package/dist/assertion/assertion-sync.d.cts.map +0 -1
- package/dist/assertion/assertion-sync.d.ts +0 -60
- package/dist/assertion/assertion-sync.d.ts.map +0 -1
- package/dist/assertion/assertion-sync.js +0 -275
- package/dist/assertion/assertion-sync.js.map +0 -1
- package/dist/assertion/assertion-types.cjs +0 -20
- package/dist/assertion/assertion-types.cjs.map +0 -1
- package/dist/assertion/assertion-types.d.cts +0 -1086
- package/dist/assertion/assertion-types.d.cts.map +0 -1
- package/dist/assertion/assertion-types.d.ts +0 -1086
- package/dist/assertion/assertion-types.d.ts.map +0 -1
- package/dist/assertion/assertion-types.js +0 -19
- package/dist/assertion/assertion-types.js.map +0 -1
- package/dist/assertion/assertion.cjs +0 -382
- package/dist/assertion/assertion.cjs.map +0 -1
- package/dist/assertion/assertion.d.cts +0 -109
- package/dist/assertion/assertion.d.cts.map +0 -1
- package/dist/assertion/assertion.d.ts +0 -109
- package/dist/assertion/assertion.d.ts.map +0 -1
- package/dist/assertion/assertion.js +0 -375
- package/dist/assertion/assertion.js.map +0 -1
- package/dist/assertion/create.cjs +0 -148
- package/dist/assertion/create.cjs.map +0 -1
- package/dist/assertion/create.d.cts +0 -85
- package/dist/assertion/create.d.cts.map +0 -1
- package/dist/assertion/create.d.ts +0 -85
- package/dist/assertion/create.d.ts.map +0 -1
- package/dist/assertion/create.js +0 -143
- package/dist/assertion/create.js.map +0 -1
- package/dist/assertion/format-assertion-failure.cjs +0 -63
- package/dist/assertion/format-assertion-failure.cjs.map +0 -1
- package/dist/assertion/format-assertion-failure.d.cts +0 -21
- package/dist/assertion/format-assertion-failure.d.cts.map +0 -1
- package/dist/assertion/format-assertion-failure.d.ts +0 -21
- package/dist/assertion/format-assertion-failure.d.ts.map +0 -1
- package/dist/assertion/format-assertion-failure.js +0 -59
- package/dist/assertion/format-assertion-failure.js.map +0 -1
- package/dist/assertion/impl/assertion-util.cjs +0 -68
- package/dist/assertion/impl/assertion-util.cjs.map +0 -1
- package/dist/assertion/impl/assertion-util.d.cts +0 -36
- package/dist/assertion/impl/assertion-util.d.cts.map +0 -1
- package/dist/assertion/impl/assertion-util.d.ts +0 -36
- package/dist/assertion/impl/assertion-util.d.ts.map +0 -1
- package/dist/assertion/impl/assertion-util.js +0 -62
- package/dist/assertion/impl/assertion-util.js.map +0 -1
- package/dist/assertion/impl/async-iterable.cjs +0 -627
- package/dist/assertion/impl/async-iterable.cjs.map +0 -1
- package/dist/assertion/impl/async-iterable.d.cts +0 -406
- package/dist/assertion/impl/async-iterable.d.cts.map +0 -1
- package/dist/assertion/impl/async-iterable.d.ts +0 -406
- package/dist/assertion/impl/async-iterable.d.ts.map +0 -1
- package/dist/assertion/impl/async-iterable.js +0 -624
- package/dist/assertion/impl/async-iterable.js.map +0 -1
- package/dist/assertion/impl/async-parametric.cjs +0 -423
- package/dist/assertion/impl/async-parametric.cjs.map +0 -1
- package/dist/assertion/impl/async-parametric.d.cts +0 -278
- package/dist/assertion/impl/async-parametric.d.cts.map +0 -1
- package/dist/assertion/impl/async-parametric.d.ts +0 -278
- package/dist/assertion/impl/async-parametric.d.ts.map +0 -1
- package/dist/assertion/impl/async-parametric.js +0 -420
- package/dist/assertion/impl/async-parametric.js.map +0 -1
- package/dist/assertion/impl/async.cjs +0 -56
- package/dist/assertion/impl/async.cjs.map +0 -1
- package/dist/assertion/impl/async.d.cts +0 -179
- package/dist/assertion/impl/async.d.cts.map +0 -1
- package/dist/assertion/impl/async.d.ts +0 -179
- package/dist/assertion/impl/async.d.ts.map +0 -1
- package/dist/assertion/impl/async.js +0 -39
- package/dist/assertion/impl/async.js.map +0 -1
- package/dist/assertion/impl/index.cjs +0 -37
- package/dist/assertion/impl/index.cjs.map +0 -1
- package/dist/assertion/impl/index.d.cts +0 -21
- package/dist/assertion/impl/index.d.cts.map +0 -1
- package/dist/assertion/impl/index.d.ts +0 -21
- package/dist/assertion/impl/index.d.ts.map +0 -1
- package/dist/assertion/impl/index.js +0 -21
- package/dist/assertion/impl/index.js.map +0 -1
- package/dist/assertion/impl/iteration-util.cjs +0 -297
- package/dist/assertion/impl/iteration-util.cjs.map +0 -1
- package/dist/assertion/impl/iteration-util.d.cts +0 -12
- package/dist/assertion/impl/iteration-util.d.cts.map +0 -1
- package/dist/assertion/impl/iteration-util.d.ts +0 -12
- package/dist/assertion/impl/iteration-util.d.ts.map +0 -1
- package/dist/assertion/impl/iteration-util.js +0 -282
- package/dist/assertion/impl/iteration-util.js.map +0 -1
- package/dist/assertion/impl/snapshot.cjs +0 -276
- package/dist/assertion/impl/snapshot.cjs.map +0 -1
- package/dist/assertion/impl/snapshot.d.cts +0 -278
- package/dist/assertion/impl/snapshot.d.cts.map +0 -1
- package/dist/assertion/impl/snapshot.d.ts +0 -278
- package/dist/assertion/impl/snapshot.d.ts.map +0 -1
- package/dist/assertion/impl/snapshot.js +0 -273
- package/dist/assertion/impl/snapshot.js.map +0 -1
- package/dist/assertion/impl/sync-basic.cjs +0 -553
- package/dist/assertion/impl/sync-basic.cjs.map +0 -1
- package/dist/assertion/impl/sync-basic.d.cts +0 -528
- package/dist/assertion/impl/sync-basic.d.cts.map +0 -1
- package/dist/assertion/impl/sync-basic.d.ts +0 -528
- package/dist/assertion/impl/sync-basic.d.ts.map +0 -1
- package/dist/assertion/impl/sync-basic.js +0 -550
- package/dist/assertion/impl/sync-basic.js.map +0 -1
- package/dist/assertion/impl/sync-collection.cjs +0 -856
- package/dist/assertion/impl/sync-collection.cjs.map +0 -1
- package/dist/assertion/impl/sync-collection.d.cts +0 -607
- package/dist/assertion/impl/sync-collection.d.cts.map +0 -1
- package/dist/assertion/impl/sync-collection.d.ts +0 -607
- package/dist/assertion/impl/sync-collection.d.ts.map +0 -1
- package/dist/assertion/impl/sync-collection.js +0 -850
- package/dist/assertion/impl/sync-collection.js.map +0 -1
- package/dist/assertion/impl/sync-date.cjs +0 -341
- package/dist/assertion/impl/sync-date.cjs.map +0 -1
- package/dist/assertion/impl/sync-date.d.cts +0 -209
- package/dist/assertion/impl/sync-date.d.cts.map +0 -1
- package/dist/assertion/impl/sync-date.d.ts +0 -209
- package/dist/assertion/impl/sync-date.d.ts.map +0 -1
- package/dist/assertion/impl/sync-date.js +0 -338
- package/dist/assertion/impl/sync-date.js.map +0 -1
- package/dist/assertion/impl/sync-esoteric.cjs +0 -214
- package/dist/assertion/impl/sync-esoteric.cjs.map +0 -1
- package/dist/assertion/impl/sync-esoteric.d.cts +0 -191
- package/dist/assertion/impl/sync-esoteric.d.cts.map +0 -1
- package/dist/assertion/impl/sync-esoteric.d.ts +0 -191
- package/dist/assertion/impl/sync-esoteric.d.ts.map +0 -1
- package/dist/assertion/impl/sync-esoteric.js +0 -211
- package/dist/assertion/impl/sync-esoteric.js.map +0 -1
- package/dist/assertion/impl/sync-iterable.cjs +0 -512
- package/dist/assertion/impl/sync-iterable.cjs.map +0 -1
- package/dist/assertion/impl/sync-iterable.d.cts +0 -334
- package/dist/assertion/impl/sync-iterable.d.cts.map +0 -1
- package/dist/assertion/impl/sync-iterable.d.ts +0 -334
- package/dist/assertion/impl/sync-iterable.d.ts.map +0 -1
- package/dist/assertion/impl/sync-iterable.js +0 -509
- package/dist/assertion/impl/sync-iterable.js.map +0 -1
- package/dist/assertion/impl/sync-parametric.cjs +0 -812
- package/dist/assertion/impl/sync-parametric.cjs.map +0 -1
- package/dist/assertion/impl/sync-parametric.d.cts +0 -560
- package/dist/assertion/impl/sync-parametric.d.cts.map +0 -1
- package/dist/assertion/impl/sync-parametric.d.ts +0 -560
- package/dist/assertion/impl/sync-parametric.d.ts.map +0 -1
- package/dist/assertion/impl/sync-parametric.js +0 -809
- package/dist/assertion/impl/sync-parametric.js.map +0 -1
- package/dist/assertion/impl/sync.cjs +0 -214
- package/dist/assertion/impl/sync.cjs.map +0 -1
- package/dist/assertion/impl/sync.d.cts +0 -512
- package/dist/assertion/impl/sync.d.cts.map +0 -1
- package/dist/assertion/impl/sync.d.ts +0 -512
- package/dist/assertion/impl/sync.d.ts.map +0 -1
- package/dist/assertion/impl/sync.js +0 -197
- package/dist/assertion/impl/sync.js.map +0 -1
- package/dist/assertion/index.cjs +0 -38
- package/dist/assertion/index.cjs.map +0 -1
- package/dist/assertion/index.d.cts +0 -18
- package/dist/assertion/index.d.cts.map +0 -1
- package/dist/assertion/index.d.ts +0 -18
- package/dist/assertion/index.d.ts.map +0 -1
- package/dist/assertion/index.js +0 -17
- package/dist/assertion/index.js.map +0 -1
- package/dist/assertion/slotify.cjs +0 -165
- package/dist/assertion/slotify.cjs.map +0 -1
- package/dist/assertion/slotify.d.cts +0 -11
- package/dist/assertion/slotify.d.cts.map +0 -1
- package/dist/assertion/slotify.d.ts +0 -11
- package/dist/assertion/slotify.d.ts.map +0 -1
- package/dist/assertion/slotify.js +0 -161
- package/dist/assertion/slotify.js.map +0 -1
- package/dist/bootstrap.cjs +0 -43
- package/dist/bootstrap.cjs.map +0 -1
- package/dist/bootstrap.d.cts +0 -27
- package/dist/bootstrap.d.cts.map +0 -1
- package/dist/bootstrap.d.ts +0 -27
- package/dist/bootstrap.d.ts.map +0 -1
- package/dist/bootstrap.js +0 -40
- package/dist/bootstrap.js.map +0 -1
- package/dist/constant.cjs +0 -82
- package/dist/constant.cjs.map +0 -1
- package/dist/constant.d.cts +0 -69
- package/dist/constant.d.cts.map +0 -1
- package/dist/constant.d.ts +0 -69
- package/dist/constant.d.ts.map +0 -1
- package/dist/constant.js +0 -79
- package/dist/constant.js.map +0 -1
- package/dist/diff.cjs +0 -340
- package/dist/diff.cjs.map +0 -1
- package/dist/diff.d.cts +0 -51
- package/dist/diff.d.cts.map +0 -1
- package/dist/diff.d.ts +0 -51
- package/dist/diff.d.ts.map +0 -1
- package/dist/diff.js +0 -334
- package/dist/diff.js.map +0 -1
- package/dist/error.cjs +0 -204
- package/dist/error.cjs.map +0 -1
- package/dist/error.d.cts +0 -212
- package/dist/error.d.cts.map +0 -1
- package/dist/error.d.ts +0 -212
- package/dist/error.d.ts.map +0 -1
- package/dist/error.js +0 -191
- package/dist/error.js.map +0 -1
- package/dist/expect.cjs +0 -590
- package/dist/expect.cjs.map +0 -1
- package/dist/expect.d.cts +0 -138
- package/dist/expect.d.cts.map +0 -1
- package/dist/expect.d.ts +0 -138
- package/dist/expect.d.ts.map +0 -1
- package/dist/expect.js +0 -582
- package/dist/expect.js.map +0 -1
- package/dist/guards.cjs +0 -297
- package/dist/guards.cjs.map +0 -1
- package/dist/guards.d.cts +0 -231
- package/dist/guards.d.cts.map +0 -1
- package/dist/guards.d.ts +0 -231
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -277
- package/dist/guards.js.map +0 -1
- package/dist/index.cjs +0 -111
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -448
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.ts +0 -448
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -71
- package/dist/index.js.map +0 -1
- package/dist/internal-schema.cjs +0 -253
- package/dist/internal-schema.cjs.map +0 -1
- package/dist/internal-schema.d.cts +0 -8
- package/dist/internal-schema.d.cts.map +0 -1
- package/dist/internal-schema.d.ts +0 -8
- package/dist/internal-schema.d.ts.map +0 -1
- package/dist/internal-schema.js +0 -248
- package/dist/internal-schema.js.map +0 -1
- package/dist/metadata.cjs +0 -57
- package/dist/metadata.cjs.map +0 -1
- package/dist/metadata.d.cts +0 -27
- package/dist/metadata.d.cts.map +0 -1
- package/dist/metadata.d.ts +0 -27
- package/dist/metadata.d.ts.map +0 -1
- package/dist/metadata.js +0 -54
- package/dist/metadata.js.map +0 -1
- package/dist/schema.cjs +0 -1522
- package/dist/schema.cjs.map +0 -1
- package/dist/schema.d.cts +0 -1196
- package/dist/schema.d.cts.map +0 -1
- package/dist/schema.d.ts +0 -1196
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -1516
- package/dist/schema.js.map +0 -1
- package/dist/snapshot/adapter.cjs +0 -31
- package/dist/snapshot/adapter.cjs.map +0 -1
- package/dist/snapshot/adapter.d.cts +0 -258
- package/dist/snapshot/adapter.d.cts.map +0 -1
- package/dist/snapshot/adapter.d.ts +0 -258
- package/dist/snapshot/adapter.d.ts.map +0 -1
- package/dist/snapshot/adapter.js +0 -27
- package/dist/snapshot/adapter.js.map +0 -1
- package/dist/snapshot/adapters/fallback.cjs +0 -453
- package/dist/snapshot/adapters/fallback.cjs.map +0 -1
- package/dist/snapshot/adapters/fallback.d.cts +0 -185
- package/dist/snapshot/adapters/fallback.d.cts.map +0 -1
- package/dist/snapshot/adapters/fallback.d.ts +0 -185
- package/dist/snapshot/adapters/fallback.d.ts.map +0 -1
- package/dist/snapshot/adapters/fallback.js +0 -446
- package/dist/snapshot/adapters/fallback.js.map +0 -1
- package/dist/snapshot/adapters/node-test.cjs +0 -301
- package/dist/snapshot/adapters/node-test.cjs.map +0 -1
- package/dist/snapshot/adapters/node-test.d.cts +0 -131
- package/dist/snapshot/adapters/node-test.d.cts.map +0 -1
- package/dist/snapshot/adapters/node-test.d.ts +0 -131
- package/dist/snapshot/adapters/node-test.d.ts.map +0 -1
- package/dist/snapshot/adapters/node-test.js +0 -297
- package/dist/snapshot/adapters/node-test.js.map +0 -1
- package/dist/snapshot/index.cjs +0 -61
- package/dist/snapshot/index.cjs.map +0 -1
- package/dist/snapshot/index.d.cts +0 -40
- package/dist/snapshot/index.d.cts.map +0 -1
- package/dist/snapshot/index.d.ts +0 -40
- package/dist/snapshot/index.d.ts.map +0 -1
- package/dist/snapshot/index.js +0 -44
- package/dist/snapshot/index.js.map +0 -1
- package/dist/snapshot/node-version.cjs +0 -49
- package/dist/snapshot/node-version.cjs.map +0 -1
- package/dist/snapshot/node-version.d.cts +0 -34
- package/dist/snapshot/node-version.d.cts.map +0 -1
- package/dist/snapshot/node-version.d.ts +0 -34
- package/dist/snapshot/node-version.d.ts.map +0 -1
- package/dist/snapshot/node-version.js +0 -44
- package/dist/snapshot/node-version.js.map +0 -1
- package/dist/snapshot/select-adapter.cjs +0 -170
- package/dist/snapshot/select-adapter.cjs.map +0 -1
- package/dist/snapshot/select-adapter.d.cts +0 -128
- package/dist/snapshot/select-adapter.d.cts.map +0 -1
- package/dist/snapshot/select-adapter.d.ts +0 -128
- package/dist/snapshot/select-adapter.d.ts.map +0 -1
- package/dist/snapshot/select-adapter.js +0 -164
- package/dist/snapshot/select-adapter.js.map +0 -1
- package/dist/snapshot/serializer.cjs +0 -246
- package/dist/snapshot/serializer.cjs.map +0 -1
- package/dist/snapshot/serializer.d.cts +0 -126
- package/dist/snapshot/serializer.d.cts.map +0 -1
- package/dist/snapshot/serializer.d.ts +0 -126
- package/dist/snapshot/serializer.d.ts.map +0 -1
- package/dist/snapshot/serializer.js +0 -238
- package/dist/snapshot/serializer.js.map +0 -1
- package/dist/standard-schema.cjs +0 -13
- package/dist/standard-schema.cjs.map +0 -1
- package/dist/standard-schema.d.cts +0 -192
- package/dist/standard-schema.d.cts.map +0 -1
- package/dist/standard-schema.d.ts +0 -192
- package/dist/standard-schema.d.ts.map +0 -1
- package/dist/standard-schema.js +0 -12
- package/dist/standard-schema.js.map +0 -1
- package/dist/types.cjs +0 -22
- package/dist/types.cjs.map +0 -1
- package/dist/types.d.cts +0 -905
- package/dist/types.d.cts.map +0 -1
- package/dist/types.d.ts +0 -905
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -21
- package/dist/types.js.map +0 -1
- package/dist/use.cjs +0 -240
- package/dist/use.cjs.map +0 -1
- package/dist/use.d.cts +0 -8
- package/dist/use.d.cts.map +0 -1
- package/dist/use.d.ts +0 -8
- package/dist/use.d.ts.map +0 -1
- package/dist/use.js +0 -236
- package/dist/use.js.map +0 -1
- package/dist/util.cjs +0 -255
- package/dist/util.cjs.map +0 -1
- package/dist/util.d.cts +0 -141
- package/dist/util.d.cts.map +0 -1
- package/dist/util.d.ts +0 -141
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -234
- package/dist/util.js.map +0 -1
- package/dist/value-to-schema.cjs +0 -537
- package/dist/value-to-schema.cjs.map +0 -1
- package/dist/value-to-schema.d.cts +0 -144
- package/dist/value-to-schema.d.cts.map +0 -1
- package/dist/value-to-schema.d.ts +0 -144
- package/dist/value-to-schema.d.ts.map +0 -1
- package/dist/value-to-schema.js +0 -533
- package/dist/value-to-schema.js.map +0 -1
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/**
|
|
3
|
-
* Recursively converts an arbitrary value to a Zod v4 schema that would
|
|
4
|
-
* validate values with the same structure.
|
|
5
|
-
*
|
|
6
|
-
* This function analyzes the runtime value and generates a corresponding Zod
|
|
7
|
-
* schema that captures the value's structure and type information. It handles
|
|
8
|
-
* primitives, objects, arrays, functions, and various built-in types, with
|
|
9
|
-
* support for circular reference detection.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
*
|
|
13
|
-
* ```typescript
|
|
14
|
-
* // Primitive types
|
|
15
|
-
* valueToSchema('hello'); // z.string()
|
|
16
|
-
* valueToSchema(42); // z.number()
|
|
17
|
-
* valueToSchema(true); // z.boolean()
|
|
18
|
-
*
|
|
19
|
-
* // Objects
|
|
20
|
-
* valueToSchema({ name: 'John', age: 30 });
|
|
21
|
-
* // z.object({ name: z.string(), age: z.number() })
|
|
22
|
-
*
|
|
23
|
-
* // Arrays
|
|
24
|
-
* valueToSchema(['a', 'b', 'c']); // z.array(z.string())
|
|
25
|
-
* valueToSchema([1, 'mixed']); // z.array(z.union([z.number(), z.string()]))
|
|
26
|
-
*
|
|
27
|
-
* // Nested structures
|
|
28
|
-
* valueToSchema({ users: [{ name: 'John' }] });
|
|
29
|
-
* // z.object({ users: z.array(z.object({ name: z.string() })) })
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @function
|
|
33
|
-
* @param value - The value to convert to a schema
|
|
34
|
-
* @param options - Configuration options for schema generation
|
|
35
|
-
* @param visited - Internal WeakSet for circular reference detection
|
|
36
|
-
* @returns A Zod schema that validates values matching the input's structure.
|
|
37
|
-
* This value is unfortunately untyped due to the complexity involved. But the
|
|
38
|
-
* schema works!
|
|
39
|
-
*/
|
|
40
|
-
export declare const valueToSchema: (value: unknown, options?: ValueToSchemaOptions, visited?: WeakSet<object>) => z.ZodType<any>;
|
|
41
|
-
/**
|
|
42
|
-
* Options for {@link valueToSchema}
|
|
43
|
-
*/
|
|
44
|
-
export interface ValueToSchemaOptions {
|
|
45
|
-
/**
|
|
46
|
-
* If `true`, treat empty arrays `[]` as literal empty arrays that only match
|
|
47
|
-
* arrays with zero elements. When `false`, empty arrays match any array.
|
|
48
|
-
*
|
|
49
|
-
* @defaultValue false
|
|
50
|
-
*/
|
|
51
|
-
literalEmptyArrays?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* If `true`, treat empty objects `{}` as literal empty objects that only
|
|
54
|
-
* match objects with zero own properties
|
|
55
|
-
*
|
|
56
|
-
* @defaultValue false
|
|
57
|
-
*/
|
|
58
|
-
literalEmptyObjects?: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* If `true`, use literal schema for primitive values instead of type schema
|
|
61
|
-
*
|
|
62
|
-
* @defaultValue false
|
|
63
|
-
*/
|
|
64
|
-
literalPrimitives?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* If `true`, treat `RegExp` literals as `RegExp` literals; otherwise treat as
|
|
67
|
-
* strings and attempt match
|
|
68
|
-
*
|
|
69
|
-
* @defaultValue false
|
|
70
|
-
*/
|
|
71
|
-
literalRegExp?: boolean;
|
|
72
|
-
/**
|
|
73
|
-
* If `true`, treat arrays as tuples wherever possible.
|
|
74
|
-
*
|
|
75
|
-
* Implies `false` for {@link noMixedArrays}.
|
|
76
|
-
*
|
|
77
|
-
* @defaultValue false
|
|
78
|
-
*/
|
|
79
|
-
literalTuples?: boolean;
|
|
80
|
-
/**
|
|
81
|
-
* Maximum nesting depth to prevent stack overflow
|
|
82
|
-
*
|
|
83
|
-
* @defaultValue 10
|
|
84
|
-
*/
|
|
85
|
-
maxDepth?: number;
|
|
86
|
-
/**
|
|
87
|
-
* Whether to allow mixed types in arrays
|
|
88
|
-
*
|
|
89
|
-
* If {@link literalTuples} is `true`, this option is ignored and treated as
|
|
90
|
-
* `false`.
|
|
91
|
-
*
|
|
92
|
-
* @defaultValue false
|
|
93
|
-
*/
|
|
94
|
-
noMixedArrays?: boolean;
|
|
95
|
-
/**
|
|
96
|
-
* If `true`, use property checking that works on any value type (functions,
|
|
97
|
-
* arrays, etc.), not just plain objects. Properties are checked using the
|
|
98
|
-
* `in` operator which works with non-enumerable and inherited properties.
|
|
99
|
-
*
|
|
100
|
-
* Only applies when `strict` is `false`. When `strict` is `true`, standard
|
|
101
|
-
* Zod object validation is used which requires exact type matching.
|
|
102
|
-
*
|
|
103
|
-
* @defaultValue false
|
|
104
|
-
*/
|
|
105
|
-
permissivePropertyCheck?: boolean;
|
|
106
|
-
/**
|
|
107
|
-
* If `true`, will disallow unknown properties in parsed objects
|
|
108
|
-
*
|
|
109
|
-
* @defaultValue false
|
|
110
|
-
*/
|
|
111
|
-
strict?: boolean;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Predefined options for {@link valueToSchema} optimized for object satisfaction
|
|
115
|
-
* checks.
|
|
116
|
-
*
|
|
117
|
-
* Uses literal primitives and tuples for exact matching while allowing extra
|
|
118
|
-
* properties.
|
|
119
|
-
*/
|
|
120
|
-
export declare const valueToSchemaOptionsForSatisfies: Readonly<{
|
|
121
|
-
readonly literalEmptyArrays: false;
|
|
122
|
-
readonly literalEmptyObjects: true;
|
|
123
|
-
readonly literalPrimitives: true;
|
|
124
|
-
readonly literalRegExp: false;
|
|
125
|
-
readonly literalTuples: true;
|
|
126
|
-
readonly permissivePropertyCheck: true;
|
|
127
|
-
readonly strict: false;
|
|
128
|
-
}>;
|
|
129
|
-
/**
|
|
130
|
-
* Predefined options for {@link valueToSchema} optimized for deep equality
|
|
131
|
-
* checks.
|
|
132
|
-
*
|
|
133
|
-
* Uses literal primitives, regexp, and tuples with strict validation for exact
|
|
134
|
-
* matching.
|
|
135
|
-
*/
|
|
136
|
-
export declare const valueToSchemaOptionsForDeepEqual: Readonly<{
|
|
137
|
-
readonly literalEmptyArrays: true;
|
|
138
|
-
readonly literalEmptyObjects: true;
|
|
139
|
-
readonly literalPrimitives: true;
|
|
140
|
-
readonly literalRegExp: true;
|
|
141
|
-
readonly literalTuples: true;
|
|
142
|
-
readonly strict: true;
|
|
143
|
-
}>;
|
|
144
|
-
//# sourceMappingURL=value-to-schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value-to-schema.d.ts","sourceRoot":"","sources":["../src/value-to-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,eAAO,MAAM,aAAa,GACxB,OAAO,OAAO,EACd,UAAS,oBAAyB,EAClC,yBAA+B,KAC9B,CAAC,CAAC,OAAO,CAAC,GAAG,CAukBf,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAQnC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;;OASG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;EAQH,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC;;;;;;;EAOH,CAAC"}
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
/**
|
|
3
|
-
* Recursively converts an arbitrary value to a Zod v4 schema that would
|
|
4
|
-
* validate values with the same structure.
|
|
5
|
-
*
|
|
6
|
-
* This function analyzes the runtime value and generates a corresponding Zod
|
|
7
|
-
* schema that captures the value's structure and type information. It handles
|
|
8
|
-
* primitives, objects, arrays, functions, and various built-in types, with
|
|
9
|
-
* support for circular reference detection.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
*
|
|
13
|
-
* ```typescript
|
|
14
|
-
* // Primitive types
|
|
15
|
-
* valueToSchema('hello'); // z.string()
|
|
16
|
-
* valueToSchema(42); // z.number()
|
|
17
|
-
* valueToSchema(true); // z.boolean()
|
|
18
|
-
*
|
|
19
|
-
* // Objects
|
|
20
|
-
* valueToSchema({ name: 'John', age: 30 });
|
|
21
|
-
* // z.object({ name: z.string(), age: z.number() })
|
|
22
|
-
*
|
|
23
|
-
* // Arrays
|
|
24
|
-
* valueToSchema(['a', 'b', 'c']); // z.array(z.string())
|
|
25
|
-
* valueToSchema([1, 'mixed']); // z.array(z.union([z.number(), z.string()]))
|
|
26
|
-
*
|
|
27
|
-
* // Nested structures
|
|
28
|
-
* valueToSchema({ users: [{ name: 'John' }] });
|
|
29
|
-
* // z.object({ users: z.array(z.object({ name: z.string() })) })
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @function
|
|
33
|
-
* @param value - The value to convert to a schema
|
|
34
|
-
* @param options - Configuration options for schema generation
|
|
35
|
-
* @param visited - Internal WeakSet for circular reference detection
|
|
36
|
-
* @returns A Zod schema that validates values matching the input's structure.
|
|
37
|
-
* This value is unfortunately untyped due to the complexity involved. But the
|
|
38
|
-
* schema works!
|
|
39
|
-
*/
|
|
40
|
-
export declare const valueToSchema: (value: unknown, options?: ValueToSchemaOptions, visited?: WeakSet<object>) => z.ZodType<any>;
|
|
41
|
-
/**
|
|
42
|
-
* Options for {@link valueToSchema}
|
|
43
|
-
*/
|
|
44
|
-
export interface ValueToSchemaOptions {
|
|
45
|
-
/**
|
|
46
|
-
* If `true`, treat empty arrays `[]` as literal empty arrays that only match
|
|
47
|
-
* arrays with zero elements. When `false`, empty arrays match any array.
|
|
48
|
-
*
|
|
49
|
-
* @defaultValue false
|
|
50
|
-
*/
|
|
51
|
-
literalEmptyArrays?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* If `true`, treat empty objects `{}` as literal empty objects that only
|
|
54
|
-
* match objects with zero own properties
|
|
55
|
-
*
|
|
56
|
-
* @defaultValue false
|
|
57
|
-
*/
|
|
58
|
-
literalEmptyObjects?: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* If `true`, use literal schema for primitive values instead of type schema
|
|
61
|
-
*
|
|
62
|
-
* @defaultValue false
|
|
63
|
-
*/
|
|
64
|
-
literalPrimitives?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* If `true`, treat `RegExp` literals as `RegExp` literals; otherwise treat as
|
|
67
|
-
* strings and attempt match
|
|
68
|
-
*
|
|
69
|
-
* @defaultValue false
|
|
70
|
-
*/
|
|
71
|
-
literalRegExp?: boolean;
|
|
72
|
-
/**
|
|
73
|
-
* If `true`, treat arrays as tuples wherever possible.
|
|
74
|
-
*
|
|
75
|
-
* Implies `false` for {@link noMixedArrays}.
|
|
76
|
-
*
|
|
77
|
-
* @defaultValue false
|
|
78
|
-
*/
|
|
79
|
-
literalTuples?: boolean;
|
|
80
|
-
/**
|
|
81
|
-
* Maximum nesting depth to prevent stack overflow
|
|
82
|
-
*
|
|
83
|
-
* @defaultValue 10
|
|
84
|
-
*/
|
|
85
|
-
maxDepth?: number;
|
|
86
|
-
/**
|
|
87
|
-
* Whether to allow mixed types in arrays
|
|
88
|
-
*
|
|
89
|
-
* If {@link literalTuples} is `true`, this option is ignored and treated as
|
|
90
|
-
* `false`.
|
|
91
|
-
*
|
|
92
|
-
* @defaultValue false
|
|
93
|
-
*/
|
|
94
|
-
noMixedArrays?: boolean;
|
|
95
|
-
/**
|
|
96
|
-
* If `true`, use property checking that works on any value type (functions,
|
|
97
|
-
* arrays, etc.), not just plain objects. Properties are checked using the
|
|
98
|
-
* `in` operator which works with non-enumerable and inherited properties.
|
|
99
|
-
*
|
|
100
|
-
* Only applies when `strict` is `false`. When `strict` is `true`, standard
|
|
101
|
-
* Zod object validation is used which requires exact type matching.
|
|
102
|
-
*
|
|
103
|
-
* @defaultValue false
|
|
104
|
-
*/
|
|
105
|
-
permissivePropertyCheck?: boolean;
|
|
106
|
-
/**
|
|
107
|
-
* If `true`, will disallow unknown properties in parsed objects
|
|
108
|
-
*
|
|
109
|
-
* @defaultValue false
|
|
110
|
-
*/
|
|
111
|
-
strict?: boolean;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Predefined options for {@link valueToSchema} optimized for object satisfaction
|
|
115
|
-
* checks.
|
|
116
|
-
*
|
|
117
|
-
* Uses literal primitives and tuples for exact matching while allowing extra
|
|
118
|
-
* properties.
|
|
119
|
-
*/
|
|
120
|
-
export declare const valueToSchemaOptionsForSatisfies: Readonly<{
|
|
121
|
-
readonly literalEmptyArrays: false;
|
|
122
|
-
readonly literalEmptyObjects: true;
|
|
123
|
-
readonly literalPrimitives: true;
|
|
124
|
-
readonly literalRegExp: false;
|
|
125
|
-
readonly literalTuples: true;
|
|
126
|
-
readonly permissivePropertyCheck: true;
|
|
127
|
-
readonly strict: false;
|
|
128
|
-
}>;
|
|
129
|
-
/**
|
|
130
|
-
* Predefined options for {@link valueToSchema} optimized for deep equality
|
|
131
|
-
* checks.
|
|
132
|
-
*
|
|
133
|
-
* Uses literal primitives, regexp, and tuples with strict validation for exact
|
|
134
|
-
* matching.
|
|
135
|
-
*/
|
|
136
|
-
export declare const valueToSchemaOptionsForDeepEqual: Readonly<{
|
|
137
|
-
readonly literalEmptyArrays: true;
|
|
138
|
-
readonly literalEmptyObjects: true;
|
|
139
|
-
readonly literalPrimitives: true;
|
|
140
|
-
readonly literalRegExp: true;
|
|
141
|
-
readonly literalTuples: true;
|
|
142
|
-
readonly strict: true;
|
|
143
|
-
}>;
|
|
144
|
-
//# sourceMappingURL=value-to-schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value-to-schema.d.ts","sourceRoot":"","sources":["../src/value-to-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,eAAO,MAAM,aAAa,GACxB,OAAO,OAAO,EACd,UAAS,oBAAyB,EAClC,yBAA+B,KAC9B,CAAC,CAAC,OAAO,CAAC,GAAG,CAukBf,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAQnC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;;OASG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;EAQH,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC;;;;;;;EAOH,CAAC"}
|