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
package/dist/value-to-schema.cjs
DELETED
|
@@ -1,537 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.valueToSchemaOptionsForDeepEqual = exports.valueToSchemaOptionsForSatisfies = exports.valueToSchema = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const error_js_1 = require("./error.cjs");
|
|
6
|
-
const guards_js_1 = require("./guards.cjs");
|
|
7
|
-
const schema_js_1 = require("./schema.cjs");
|
|
8
|
-
const { isNaN } = Number;
|
|
9
|
-
const { entries, freeze, hasOwn, keys } = Object;
|
|
10
|
-
const { isArray } = Array;
|
|
11
|
-
/**
|
|
12
|
-
* Recursively converts an arbitrary value to a Zod v4 schema that would
|
|
13
|
-
* validate values with the same structure.
|
|
14
|
-
*
|
|
15
|
-
* This function analyzes the runtime value and generates a corresponding Zod
|
|
16
|
-
* schema that captures the value's structure and type information. It handles
|
|
17
|
-
* primitives, objects, arrays, functions, and various built-in types, with
|
|
18
|
-
* support for circular reference detection.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
*
|
|
22
|
-
* ```typescript
|
|
23
|
-
* // Primitive types
|
|
24
|
-
* valueToSchema('hello'); // z.string()
|
|
25
|
-
* valueToSchema(42); // z.number()
|
|
26
|
-
* valueToSchema(true); // z.boolean()
|
|
27
|
-
*
|
|
28
|
-
* // Objects
|
|
29
|
-
* valueToSchema({ name: 'John', age: 30 });
|
|
30
|
-
* // z.object({ name: z.string(), age: z.number() })
|
|
31
|
-
*
|
|
32
|
-
* // Arrays
|
|
33
|
-
* valueToSchema(['a', 'b', 'c']); // z.array(z.string())
|
|
34
|
-
* valueToSchema([1, 'mixed']); // z.array(z.union([z.number(), z.string()]))
|
|
35
|
-
*
|
|
36
|
-
* // Nested structures
|
|
37
|
-
* valueToSchema({ users: [{ name: 'John' }] });
|
|
38
|
-
* // z.object({ users: z.array(z.object({ name: z.string() })) })
|
|
39
|
-
* ```
|
|
40
|
-
*
|
|
41
|
-
* @function
|
|
42
|
-
* @param value - The value to convert to a schema
|
|
43
|
-
* @param options - Configuration options for schema generation
|
|
44
|
-
* @param visited - Internal WeakSet for circular reference detection
|
|
45
|
-
* @returns A Zod schema that validates values matching the input's structure.
|
|
46
|
-
* This value is unfortunately untyped due to the complexity involved. But the
|
|
47
|
-
* schema works!
|
|
48
|
-
*/
|
|
49
|
-
const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
50
|
-
const { _currentDepth = 0, literalEmptyArrays = false, literalEmptyObjects = false, literalPrimitives = false, literalRegExp = false, literalTuples = false, maxDepth = 10, noMixedArrays = false, permissivePropertyCheck = false, strict = false, } = options;
|
|
51
|
-
// Prevent infinite recursion
|
|
52
|
-
if (_currentDepth >= maxDepth) {
|
|
53
|
-
return zod_1.z.unknown();
|
|
54
|
-
}
|
|
55
|
-
// Handle primitives
|
|
56
|
-
if (value === null) {
|
|
57
|
-
return zod_1.z.null();
|
|
58
|
-
}
|
|
59
|
-
if (value === undefined) {
|
|
60
|
-
return literalPrimitives
|
|
61
|
-
? zod_1.z.custom((val) => val === undefined, {
|
|
62
|
-
message: 'Expected undefined',
|
|
63
|
-
})
|
|
64
|
-
: zod_1.z.undefined();
|
|
65
|
-
}
|
|
66
|
-
if (isNaN(value)) {
|
|
67
|
-
return zod_1.z.nan();
|
|
68
|
-
}
|
|
69
|
-
if (value === Infinity || value === -Infinity) {
|
|
70
|
-
return zod_1.z.literal(value);
|
|
71
|
-
}
|
|
72
|
-
const valueType = typeof value;
|
|
73
|
-
switch (valueType) {
|
|
74
|
-
case 'bigint':
|
|
75
|
-
return literalPrimitives ? zod_1.z.literal(value) : zod_1.z.bigint();
|
|
76
|
-
case 'boolean':
|
|
77
|
-
return literalPrimitives ? zod_1.z.literal(value) : zod_1.z.boolean();
|
|
78
|
-
case 'function':
|
|
79
|
-
// Check if this is an ExpectItExecutor
|
|
80
|
-
if ((0, guards_js_1.isExpectItExecutor)(value)) {
|
|
81
|
-
// Only allow nested assertions when strict is false (e.g., "to satisfy" semantics)
|
|
82
|
-
if (strict) {
|
|
83
|
-
throw new error_js_1.SatisfactionError('ExpectItExecutor (expect.it) functions are not allowed in strict mode. ' +
|
|
84
|
-
'Use "to satisfy" assertions for nested expectations.');
|
|
85
|
-
}
|
|
86
|
-
// Return a schema that executes the ExpectItExecutor when validated
|
|
87
|
-
return zod_1.z.custom((subject) => {
|
|
88
|
-
try {
|
|
89
|
-
value(subject);
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
catch {
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
}, {
|
|
96
|
-
message: 'Failed expect.it assertion',
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
return zod_1.z.function();
|
|
100
|
-
case 'number':
|
|
101
|
-
return literalPrimitives ? zod_1.z.literal(value) : zod_1.z.number();
|
|
102
|
-
case 'string':
|
|
103
|
-
return literalPrimitives ? zod_1.z.literal(value) : zod_1.z.string();
|
|
104
|
-
case 'symbol':
|
|
105
|
-
return zod_1.z.symbol();
|
|
106
|
-
}
|
|
107
|
-
// Handle objects
|
|
108
|
-
if (typeof value === 'object' && value !== null) {
|
|
109
|
-
// Check for circular references
|
|
110
|
-
if (visited.has(value)) {
|
|
111
|
-
// Return a recursive schema reference or unknown for circular refs
|
|
112
|
-
return zod_1.z.unknown();
|
|
113
|
-
}
|
|
114
|
-
visited.add(value);
|
|
115
|
-
try {
|
|
116
|
-
// Handle built-in object types
|
|
117
|
-
if (value instanceof Date) {
|
|
118
|
-
// Check if it's a valid date
|
|
119
|
-
if (isNaN(value.getTime())) {
|
|
120
|
-
// For invalid dates, use a literal or custom validator
|
|
121
|
-
return zod_1.z.custom((val) => val instanceof Date && isNaN(val.getTime()), {
|
|
122
|
-
message: 'Expected an invalid Date',
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
return zod_1.z.date();
|
|
126
|
-
}
|
|
127
|
-
if (value instanceof RegExp) {
|
|
128
|
-
if (literalRegExp) {
|
|
129
|
-
return schema_js_1.RegExpSchema;
|
|
130
|
-
}
|
|
131
|
-
return zod_1.z.coerce.string().regex(value);
|
|
132
|
-
}
|
|
133
|
-
if (value instanceof Map) {
|
|
134
|
-
if (literalPrimitives) {
|
|
135
|
-
const expectedMap = value;
|
|
136
|
-
const expectedEntries = [...expectedMap.entries()];
|
|
137
|
-
const entrySchemas = expectedEntries.map(([k, v]) => ({
|
|
138
|
-
key: (0, exports.valueToSchema)(k, { ...options, _currentDepth: _currentDepth + 1 }, visited),
|
|
139
|
-
value: (0, exports.valueToSchema)(v, { ...options, _currentDepth: _currentDepth + 1 }, visited),
|
|
140
|
-
}));
|
|
141
|
-
return zod_1.z.custom((val) => {
|
|
142
|
-
if (!(val instanceof Map)) {
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
if (val.size !== expectedMap.size) {
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
const actualEntries = [...val.entries()];
|
|
149
|
-
for (let i = 0; i < expectedEntries.length; i++) {
|
|
150
|
-
const [_expectedKey, _expectedValue] = expectedEntries[i];
|
|
151
|
-
const actualEntry = actualEntries.find(([ak]) => {
|
|
152
|
-
const keySchema = entrySchemas[i].key;
|
|
153
|
-
return keySchema.safeParse(ak).success;
|
|
154
|
-
});
|
|
155
|
-
if (!actualEntry) {
|
|
156
|
-
return false;
|
|
157
|
-
}
|
|
158
|
-
const valueSchema = entrySchemas[i].value;
|
|
159
|
-
if (!valueSchema.safeParse(actualEntry[1]).success) {
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return true;
|
|
164
|
-
}, {
|
|
165
|
-
message: `Expected Map with ${expectedMap.size} entries matching the expected structure`,
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
return zod_1.z.instanceof(Map);
|
|
169
|
-
}
|
|
170
|
-
if (value instanceof Set) {
|
|
171
|
-
if (literalPrimitives) {
|
|
172
|
-
const expectedSet = value;
|
|
173
|
-
const expectedValues = [...expectedSet.values()];
|
|
174
|
-
const valueSchemas = expectedValues.map((v) => (0, exports.valueToSchema)(v, { ...options, _currentDepth: _currentDepth + 1 }, visited));
|
|
175
|
-
return zod_1.z.custom((val) => {
|
|
176
|
-
if (!(val instanceof Set)) {
|
|
177
|
-
return false;
|
|
178
|
-
}
|
|
179
|
-
if (val.size !== expectedSet.size) {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
const actualValues = [...val.values()];
|
|
183
|
-
for (let i = 0; i < expectedValues.length; i++) {
|
|
184
|
-
const schema = valueSchemas[i];
|
|
185
|
-
const found = actualValues.some((av) => schema.safeParse(av).success);
|
|
186
|
-
if (!found) {
|
|
187
|
-
return false;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return true;
|
|
191
|
-
}, {
|
|
192
|
-
message: `Expected Set with ${expectedSet.size} values matching the expected structure`,
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
return zod_1.z.instanceof(Set);
|
|
196
|
-
}
|
|
197
|
-
if (value instanceof WeakMap) {
|
|
198
|
-
return zod_1.z.instanceof(WeakMap);
|
|
199
|
-
}
|
|
200
|
-
if (value instanceof WeakSet) {
|
|
201
|
-
return zod_1.z.instanceof(WeakSet);
|
|
202
|
-
}
|
|
203
|
-
if (value instanceof Error) {
|
|
204
|
-
return zod_1.z.instanceof(Error);
|
|
205
|
-
}
|
|
206
|
-
if ((0, guards_js_1.isPromiseLike)(value)) {
|
|
207
|
-
return schema_js_1.WrappedPromiseLikeSchema;
|
|
208
|
-
}
|
|
209
|
-
// Handle arrays
|
|
210
|
-
if (isArray(value)) {
|
|
211
|
-
// For arrays, we need to preserve undefined values while allowing
|
|
212
|
-
// other elements to use the original literalPrimitives setting
|
|
213
|
-
const filteredValue = value; // Always process all elements
|
|
214
|
-
if (filteredValue.length === 0) {
|
|
215
|
-
// When literalEmptyArrays is false, empty arrays match any array
|
|
216
|
-
if (!literalEmptyArrays) {
|
|
217
|
-
return zod_1.z.array(zod_1.z.unknown());
|
|
218
|
-
}
|
|
219
|
-
// For literal empty arrays, use z.tuple() if literalTuples is enabled
|
|
220
|
-
if (literalTuples) {
|
|
221
|
-
return zod_1.z.tuple([]);
|
|
222
|
-
}
|
|
223
|
-
return zod_1.z.array(zod_1.z.never());
|
|
224
|
-
}
|
|
225
|
-
const elementSchemas = filteredValue.map((item) => {
|
|
226
|
-
// Use literal mode for undefined values to preserve them exactly,
|
|
227
|
-
// but use the original setting for other values
|
|
228
|
-
const itemLiteralPrimitives = item === undefined ? true : literalPrimitives;
|
|
229
|
-
return (0, exports.valueToSchema)(item, {
|
|
230
|
-
...options,
|
|
231
|
-
_currentDepth: _currentDepth + 1,
|
|
232
|
-
literalPrimitives: itemLiteralPrimitives,
|
|
233
|
-
// Disable permissive property check for array elements to avoid
|
|
234
|
-
// conflicts in union schemas (permissive z.any() would accept
|
|
235
|
-
// array elements meant for other branches)
|
|
236
|
-
permissivePropertyCheck: false,
|
|
237
|
-
}, visited);
|
|
238
|
-
});
|
|
239
|
-
// Use z.tuple() if literalTuples is enabled
|
|
240
|
-
if (literalTuples) {
|
|
241
|
-
return zod_1.z.tuple(elementSchemas);
|
|
242
|
-
}
|
|
243
|
-
if (!noMixedArrays) {
|
|
244
|
-
// Helper function to generate structural keys for schemas
|
|
245
|
-
/**
|
|
246
|
-
* @function
|
|
247
|
-
*/
|
|
248
|
-
const getSchemaKey = (zodType) => {
|
|
249
|
-
const schema = zodType;
|
|
250
|
-
if ((0, guards_js_1.isZodType)(schema, 'literal')) {
|
|
251
|
-
return `${schema.constructor.name}:${String(schema.def.values)}`;
|
|
252
|
-
}
|
|
253
|
-
if ((0, guards_js_1.isZodType)(schema, 'array')) {
|
|
254
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
255
|
-
const elementKey = getSchemaKey(schema.def.element);
|
|
256
|
-
return `ZodArray<${elementKey}>`;
|
|
257
|
-
}
|
|
258
|
-
if ((0, guards_js_1.isZodType)(schema, 'object')) {
|
|
259
|
-
// For objects, create a key based on the property keys and their types
|
|
260
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
261
|
-
const shape = schema.def.shape;
|
|
262
|
-
const shapeKeys = keys(shape)
|
|
263
|
-
.sort()
|
|
264
|
-
.map((key) => {
|
|
265
|
-
const propSchema = shape[key];
|
|
266
|
-
return `${key}:${getSchemaKey(propSchema)}`;
|
|
267
|
-
});
|
|
268
|
-
return `ZodObject<{${shapeKeys.join(',')}}>`;
|
|
269
|
-
}
|
|
270
|
-
if ((0, guards_js_1.isZodType)(schema, 'union')) {
|
|
271
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
272
|
-
const optionKeys = schema.def.options
|
|
273
|
-
.map((option) => getSchemaKey(option))
|
|
274
|
-
.sort();
|
|
275
|
-
return `ZodUnion<[${optionKeys.join(',')}]>`;
|
|
276
|
-
}
|
|
277
|
-
// For other types, use the constructor name
|
|
278
|
-
return schema.constructor.name;
|
|
279
|
-
};
|
|
280
|
-
const seenSchemaKeys = new Set();
|
|
281
|
-
const uniqueSchemas = [];
|
|
282
|
-
for (const schema of elementSchemas) {
|
|
283
|
-
const schemaKey = getSchemaKey(schema);
|
|
284
|
-
if (!seenSchemaKeys.has(schemaKey)) {
|
|
285
|
-
seenSchemaKeys.add(schemaKey);
|
|
286
|
-
uniqueSchemas.push(schema);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
if (uniqueSchemas.length === 1) {
|
|
290
|
-
return zod_1.z.array(uniqueSchemas[0]);
|
|
291
|
-
}
|
|
292
|
-
else {
|
|
293
|
-
return zod_1.z.array(zod_1.z.union(uniqueSchemas));
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
// Use the first element's schema for all elements
|
|
298
|
-
return zod_1.z.array(elementSchemas[0]);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
// Handle plain objects
|
|
302
|
-
if ((0, guards_js_1.isNonNullObject)(value)) {
|
|
303
|
-
const schemaShape = {};
|
|
304
|
-
const undefinedKeys = [];
|
|
305
|
-
// Handle __proto__ specially - Zod ignores it in z.object() shapes,
|
|
306
|
-
// so we validate it separately via superRefine
|
|
307
|
-
let protoSchema = null;
|
|
308
|
-
if (hasOwn(value, '__proto__')) {
|
|
309
|
-
const protoValue = value['__proto__'];
|
|
310
|
-
protoSchema = (0, exports.valueToSchema)(protoValue, { ...options, _currentDepth: _currentDepth + 1 }, visited);
|
|
311
|
-
}
|
|
312
|
-
for (const [key, val] of entries(value)) {
|
|
313
|
-
if ((0, guards_js_1.isString)(key)) {
|
|
314
|
-
// Skip __proto__ - handled separately since Zod ignores it in object shapes
|
|
315
|
-
if (key === '__proto__') {
|
|
316
|
-
continue;
|
|
317
|
-
}
|
|
318
|
-
// Skip undefined values unless we're in literalPrimitives mode
|
|
319
|
-
// This prevents objects with only undefined values from matching any object
|
|
320
|
-
if (val === undefined && !literalPrimitives) {
|
|
321
|
-
continue;
|
|
322
|
-
}
|
|
323
|
-
if (val === undefined && literalPrimitives) {
|
|
324
|
-
// Track keys that should have undefined values
|
|
325
|
-
undefinedKeys.push(key);
|
|
326
|
-
schemaShape[key] = zod_1.z.undefined();
|
|
327
|
-
}
|
|
328
|
-
else {
|
|
329
|
-
schemaShape[key] = (0, exports.valueToSchema)(val, {
|
|
330
|
-
...options,
|
|
331
|
-
_currentDepth: _currentDepth + 1,
|
|
332
|
-
}, visited);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
// When permissivePropertyCheck is enabled, use a custom validator that
|
|
337
|
-
// checks properties via `in` operator. This allows validating properties
|
|
338
|
-
// on any value type (functions, arrays, etc.) not just plain objects.
|
|
339
|
-
if (permissivePropertyCheck && !strict) {
|
|
340
|
-
const capturedSchemaShape = schemaShape;
|
|
341
|
-
const capturedProtoSchema = protoSchema;
|
|
342
|
-
const capturedUndefinedKeys = undefinedKeys;
|
|
343
|
-
return zod_1.z.any().superRefine((val, ctx) => {
|
|
344
|
-
// Can't use `in` operator on primitives
|
|
345
|
-
if (val == null ||
|
|
346
|
-
(typeof val !== 'object' && typeof val !== 'function')) {
|
|
347
|
-
ctx.addIssue({
|
|
348
|
-
code: 'custom',
|
|
349
|
-
message: `Expected a value with properties, but received ${val === null ? 'null' : typeof val}`,
|
|
350
|
-
});
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
// Check __proto__ if expected
|
|
354
|
-
// Cast is safe - we've verified val is object or function above
|
|
355
|
-
const valAsObject = val;
|
|
356
|
-
if (capturedProtoSchema) {
|
|
357
|
-
if (!hasOwn(valAsObject, '__proto__')) {
|
|
358
|
-
ctx.addIssue({
|
|
359
|
-
code: 'custom',
|
|
360
|
-
message: 'Expected property "__proto__" to exist',
|
|
361
|
-
path: ['__proto__'],
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
const actualProto = val['__proto__'];
|
|
366
|
-
const protoResult = capturedProtoSchema.safeParse(actualProto);
|
|
367
|
-
if (!protoResult.success) {
|
|
368
|
-
for (const issue of protoResult.error.issues) {
|
|
369
|
-
ctx.addIssue({
|
|
370
|
-
...issue,
|
|
371
|
-
path: ['__proto__', ...issue.path],
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
// Check each expected property
|
|
378
|
-
for (const [key, schema] of entries(capturedSchemaShape)) {
|
|
379
|
-
if (!(key in val)) {
|
|
380
|
-
ctx.addIssue({
|
|
381
|
-
code: 'custom',
|
|
382
|
-
message: `Expected property "${key}" to exist`,
|
|
383
|
-
path: [key],
|
|
384
|
-
});
|
|
385
|
-
continue;
|
|
386
|
-
}
|
|
387
|
-
// Property access can throw for reserved properties on strict mode
|
|
388
|
-
// functions (e.g., 'arguments', 'caller', 'callee')
|
|
389
|
-
let propValue;
|
|
390
|
-
try {
|
|
391
|
-
propValue = val[key];
|
|
392
|
-
}
|
|
393
|
-
catch {
|
|
394
|
-
ctx.addIssue({
|
|
395
|
-
code: 'custom',
|
|
396
|
-
message: `Property "${key}" exists but cannot be accessed`,
|
|
397
|
-
path: [key],
|
|
398
|
-
});
|
|
399
|
-
continue;
|
|
400
|
-
}
|
|
401
|
-
const result = schema.safeParse(propValue);
|
|
402
|
-
if (!result.success) {
|
|
403
|
-
for (const issue of result.error.issues) {
|
|
404
|
-
ctx.addIssue({
|
|
405
|
-
...issue,
|
|
406
|
-
path: [key, ...issue.path],
|
|
407
|
-
});
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
// Check undefined keys exist with undefined value
|
|
412
|
-
for (const key of capturedUndefinedKeys) {
|
|
413
|
-
if (!hasOwn(valAsObject, key)) {
|
|
414
|
-
ctx.addIssue({
|
|
415
|
-
code: 'custom',
|
|
416
|
-
message: `Expected property "${key}" to exist with value undefined`,
|
|
417
|
-
path: [key],
|
|
418
|
-
});
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
// Create the base object schema (standard Zod object validation)
|
|
424
|
-
const baseSchema = strict
|
|
425
|
-
? zod_1.z.strictObject(schemaShape)
|
|
426
|
-
: zod_1.z.looseObject(schemaShape);
|
|
427
|
-
// When __proto__ is present, we MUST use z.custom() because Zod strips
|
|
428
|
-
// __proto__ before it reaches superRefine. z.custom() receives the raw input.
|
|
429
|
-
if (protoSchema) {
|
|
430
|
-
const capturedProtoSchema = protoSchema;
|
|
431
|
-
const capturedUndefinedKeys = undefinedKeys;
|
|
432
|
-
const needsUndefinedValidation = capturedUndefinedKeys.length > 0 && literalPrimitives;
|
|
433
|
-
return zod_1.z.custom((val) => {
|
|
434
|
-
if (typeof val !== 'object' || val === null) {
|
|
435
|
-
return false;
|
|
436
|
-
}
|
|
437
|
-
// Validate __proto__ BEFORE Zod can strip it
|
|
438
|
-
if (!hasOwn(val, '__proto__')) {
|
|
439
|
-
return false;
|
|
440
|
-
}
|
|
441
|
-
const actualProto = val['__proto__'];
|
|
442
|
-
if (!capturedProtoSchema.safeParse(actualProto).success) {
|
|
443
|
-
return false;
|
|
444
|
-
}
|
|
445
|
-
// Validate the rest of the object via the base schema
|
|
446
|
-
if (!baseSchema.safeParse(val).success) {
|
|
447
|
-
return false;
|
|
448
|
-
}
|
|
449
|
-
// Validate undefined keys if needed
|
|
450
|
-
if (needsUndefinedValidation) {
|
|
451
|
-
for (const key of capturedUndefinedKeys) {
|
|
452
|
-
if (!hasOwn(val, key)) {
|
|
453
|
-
return false;
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
return true;
|
|
458
|
-
}, {
|
|
459
|
-
message: 'Expected object to have own "__proto__" property',
|
|
460
|
-
});
|
|
461
|
-
}
|
|
462
|
-
// Apply refinements for undefined keys (no __proto__ case)
|
|
463
|
-
const needsUndefinedKeyValidation = undefinedKeys.length > 0 && literalPrimitives;
|
|
464
|
-
if (needsUndefinedKeyValidation) {
|
|
465
|
-
return baseSchema.superRefine((data, ctx) => {
|
|
466
|
-
if (typeof data !== 'object' || data === null) {
|
|
467
|
-
ctx.addIssue({
|
|
468
|
-
code: 'custom',
|
|
469
|
-
message: 'Expected an object',
|
|
470
|
-
});
|
|
471
|
-
return;
|
|
472
|
-
}
|
|
473
|
-
const obj = data;
|
|
474
|
-
// Validate undefined keys exist
|
|
475
|
-
for (const key of undefinedKeys) {
|
|
476
|
-
if (!hasOwn(obj, key)) {
|
|
477
|
-
ctx.addIssue({
|
|
478
|
-
code: 'custom',
|
|
479
|
-
message: `Expected property "${key}" to exist with value undefined`,
|
|
480
|
-
path: [key],
|
|
481
|
-
});
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
});
|
|
485
|
-
}
|
|
486
|
-
// Check if this is an empty object and literalEmptyObjects is enabled
|
|
487
|
-
if (keys(schemaShape).length === 0 && literalEmptyObjects) {
|
|
488
|
-
// Create a schema that only matches empty objects
|
|
489
|
-
return zod_1.z.custom((val) => (0, guards_js_1.isObject)(val) && keys(val).length === 0, {
|
|
490
|
-
message: 'Expected an empty object with no own properties',
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
return baseSchema;
|
|
494
|
-
}
|
|
495
|
-
// Handle other object types (ArrayBuffer, etc.)
|
|
496
|
-
return zod_1.z.custom((val) => typeof val === 'object' && val !== null, { message: 'Expected an object' });
|
|
497
|
-
}
|
|
498
|
-
finally {
|
|
499
|
-
visited.delete(value);
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
// Fallback for unknown types
|
|
503
|
-
return zod_1.z.unknown();
|
|
504
|
-
};
|
|
505
|
-
exports.valueToSchema = valueToSchema;
|
|
506
|
-
/**
|
|
507
|
-
* Predefined options for {@link valueToSchema} optimized for object satisfaction
|
|
508
|
-
* checks.
|
|
509
|
-
*
|
|
510
|
-
* Uses literal primitives and tuples for exact matching while allowing extra
|
|
511
|
-
* properties.
|
|
512
|
-
*/
|
|
513
|
-
exports.valueToSchemaOptionsForSatisfies = freeze({
|
|
514
|
-
literalEmptyArrays: false,
|
|
515
|
-
literalEmptyObjects: true,
|
|
516
|
-
literalPrimitives: true,
|
|
517
|
-
literalRegExp: false,
|
|
518
|
-
literalTuples: true,
|
|
519
|
-
permissivePropertyCheck: true,
|
|
520
|
-
strict: false,
|
|
521
|
-
});
|
|
522
|
-
/**
|
|
523
|
-
* Predefined options for {@link valueToSchema} optimized for deep equality
|
|
524
|
-
* checks.
|
|
525
|
-
*
|
|
526
|
-
* Uses literal primitives, regexp, and tuples with strict validation for exact
|
|
527
|
-
* matching.
|
|
528
|
-
*/
|
|
529
|
-
exports.valueToSchemaOptionsForDeepEqual = freeze({
|
|
530
|
-
literalEmptyArrays: true,
|
|
531
|
-
literalEmptyObjects: true,
|
|
532
|
-
literalPrimitives: true,
|
|
533
|
-
literalRegExp: true,
|
|
534
|
-
literalTuples: true,
|
|
535
|
-
strict: true,
|
|
536
|
-
});
|
|
537
|
-
//# sourceMappingURL=value-to-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"value-to-schema.js","sourceRoot":"","sources":["../src/value-to-schema.ts"],"names":[],"mappings":"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"}
|