ts-fortress 5.1.0 → 5.3.0
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/README.md +85 -4
- package/dist/array/array-at-least-length.d.mts.map +1 -1
- package/dist/array/array-at-least-length.mjs +8 -3
- package/dist/array/array-at-least-length.mjs.map +1 -1
- package/dist/array/array-of-length.d.mts.map +1 -1
- package/dist/array/array-of-length.mjs +8 -3
- package/dist/array/array-of-length.mjs.map +1 -1
- package/dist/array/array.d.mts.map +1 -1
- package/dist/array/array.mjs +2 -1
- package/dist/array/array.mjs.map +1 -1
- package/dist/array/non-empty-array.d.mts.map +1 -1
- package/dist/array/non-empty-array.mjs +5 -2
- package/dist/array/non-empty-array.mjs.map +1 -1
- package/dist/array/tuple.d.mts.map +1 -1
- package/dist/array/tuple.mjs +6 -1
- package/dist/array/tuple.mjs.map +1 -1
- package/dist/brand/brand.d.mts +1 -1
- package/dist/brand/brand.d.mts.map +1 -1
- package/dist/brand/brand.mjs +8 -3
- package/dist/brand/brand.mjs.map +1 -1
- package/dist/brand/branded-number.d.mts +2 -2
- package/dist/brand/branded-number.mjs +2 -1
- package/dist/brand/branded-number.mjs.map +1 -1
- package/dist/brand/branded-string.d.mts +2 -2
- package/dist/brand/branded-string.mjs +2 -1
- package/dist/brand/branded-string.mjs.map +1 -1
- package/dist/compose/intersection.d.mts.map +1 -1
- package/dist/compose/intersection.mjs +4 -3
- package/dist/compose/intersection.mjs.map +1 -1
- package/dist/compose/merge-records.d.mts.map +1 -1
- package/dist/compose/merge-records.mjs +4 -3
- package/dist/compose/merge-records.mjs.map +1 -1
- package/dist/compose/union.d.mts.map +1 -1
- package/dist/compose/union.mjs +4 -3
- package/dist/compose/union.mjs.map +1 -1
- package/dist/enum/enum.d.mts.map +1 -1
- package/dist/enum/enum.mjs +4 -1
- package/dist/enum/enum.mjs.map +1 -1
- package/dist/enum/int-range.d.mts +1 -1
- package/dist/enum/int-range.d.mts.map +1 -1
- package/dist/enum/int-range.mjs +6 -2
- package/dist/enum/int-range.mjs.map +1 -1
- package/dist/enum/uint-range.d.mts +1 -1
- package/dist/enum/uint-range.d.mts.map +1 -1
- package/dist/enum/uint-range.mjs +6 -2
- package/dist/enum/uint-range.mjs.map +1 -1
- package/dist/other-types/map.d.mts.map +1 -1
- package/dist/other-types/map.mjs +11 -2
- package/dist/other-types/map.mjs.map +1 -1
- package/dist/other-types/refine.d.mts.map +1 -1
- package/dist/other-types/refine.mjs +1 -0
- package/dist/other-types/refine.mjs.map +1 -1
- package/dist/other-types/set.d.mts.map +1 -1
- package/dist/other-types/set.mjs +6 -2
- package/dist/other-types/set.mjs.map +1 -1
- package/dist/predefined/brand/number/finite-number.mjs +1 -0
- package/dist/predefined/brand/number/finite-number.mjs.map +1 -1
- package/dist/predefined/brand/number/int.mjs +1 -0
- package/dist/predefined/brand/number/int.mjs.map +1 -1
- package/dist/predefined/brand/number/int16.mjs +1 -0
- package/dist/predefined/brand/number/int16.mjs.map +1 -1
- package/dist/predefined/brand/number/int32.mjs +1 -0
- package/dist/predefined/brand/number/int32.mjs.map +1 -1
- package/dist/predefined/brand/number/non-negative-finite-number.mjs +1 -0
- package/dist/predefined/brand/number/non-negative-finite-number.mjs.map +1 -1
- package/dist/predefined/brand/number/non-zero-finite-number.mjs +1 -0
- package/dist/predefined/brand/number/non-zero-finite-number.mjs.map +1 -1
- package/dist/predefined/brand/number/non-zero-int.mjs +1 -0
- package/dist/predefined/brand/number/non-zero-int.mjs.map +1 -1
- package/dist/predefined/brand/number/non-zero-safe-int.mjs +1 -0
- package/dist/predefined/brand/number/non-zero-safe-int.mjs.map +1 -1
- package/dist/predefined/brand/number/positive-finite-number.mjs +1 -0
- package/dist/predefined/brand/number/positive-finite-number.mjs.map +1 -1
- package/dist/predefined/brand/number/positive-int.mjs +1 -0
- package/dist/predefined/brand/number/positive-int.mjs.map +1 -1
- package/dist/predefined/brand/number/positive-safe-int.mjs +1 -0
- package/dist/predefined/brand/number/positive-safe-int.mjs.map +1 -1
- package/dist/predefined/brand/number/safe-int.mjs +1 -0
- package/dist/predefined/brand/number/safe-int.mjs.map +1 -1
- package/dist/predefined/brand/number/safe-uint.mjs +1 -0
- package/dist/predefined/brand/number/safe-uint.mjs.map +1 -1
- package/dist/predefined/brand/number/uint.mjs +1 -0
- package/dist/predefined/brand/number/uint.mjs.map +1 -1
- package/dist/predefined/brand/number/uint16.mjs +1 -0
- package/dist/predefined/brand/number/uint16.mjs.map +1 -1
- package/dist/predefined/brand/number/uint32.mjs +1 -0
- package/dist/predefined/brand/number/uint32.mjs.map +1 -1
- package/dist/predefined/brand/string/email.mjs +1 -0
- package/dist/predefined/brand/string/email.mjs.map +1 -1
- package/dist/predefined/brand/string/iso-8601.d.mts +3 -3
- package/dist/predefined/brand/string/iso-8601.mjs +1 -0
- package/dist/predefined/brand/string/iso-8601.mjs.map +1 -1
- package/dist/predefined/brand/string/json-string.mjs +1 -0
- package/dist/predefined/brand/string/json-string.mjs.map +1 -1
- package/dist/predefined/brand/string/uuid.mjs +1 -0
- package/dist/predefined/brand/string/uuid.mjs.map +1 -1
- package/dist/predefined/json.d.mts +2 -2
- package/dist/predefined/json.d.mts.map +1 -1
- package/dist/predefined/json.mjs.map +1 -1
- package/dist/predefined/nullable.mjs +1 -0
- package/dist/predefined/nullable.mjs.map +1 -1
- package/dist/primitives/bigint.d.mts +39 -1
- package/dist/primitives/bigint.d.mts.map +1 -1
- package/dist/primitives/bigint.mjs +126 -1
- package/dist/primitives/bigint.mjs.map +1 -1
- package/dist/primitives/number.d.mts +38 -1
- package/dist/primitives/number.d.mts.map +1 -1
- package/dist/primitives/number.mjs +96 -1
- package/dist/primitives/number.mjs.map +1 -1
- package/dist/primitives/string.d.mts +48 -1
- package/dist/primitives/string.d.mts.map +1 -1
- package/dist/primitives/string.mjs +89 -1
- package/dist/primitives/string.mjs.map +1 -1
- package/dist/record/key-value-record.d.mts.map +1 -1
- package/dist/record/key-value-record.mjs +11 -2
- package/dist/record/key-value-record.mjs.map +1 -1
- package/dist/record/keyof.mjs +1 -0
- package/dist/record/keyof.mjs.map +1 -1
- package/dist/record/record.d.mts.map +1 -1
- package/dist/record/record.mjs +9 -2
- package/dist/record/record.mjs.map +1 -1
- package/dist/record/valueof.mjs +1 -0
- package/dist/record/valueof.mjs.map +1 -1
- package/dist/utils/create-primitive-type.d.mts +1 -1
- package/dist/utils/create-primitive-type.d.mts.map +1 -1
- package/dist/utils/create-primitive-type.mjs +2 -1
- package/dist/utils/create-primitive-type.mjs.map +1 -1
- package/dist/utils/create-type.d.mts +1 -1
- package/dist/utils/create-type.mjs +1 -1
- package/dist/utils/create-type.mjs.map +1 -1
- package/dist/utils/validation-error.d.mts +55 -11
- package/dist/utils/validation-error.d.mts.map +1 -1
- package/dist/utils/validation-error.mjs +50 -5
- package/dist/utils/validation-error.mjs.map +1 -1
- package/package.json +38 -30
- package/src/array/array-at-least-length.mts +8 -4
- package/src/array/array-at-least-length.test.mts +41 -18
- package/src/array/array-of-length.mts +8 -4
- package/src/array/array-of-length.test.mts +37 -16
- package/src/array/array.mts +2 -1
- package/src/array/array.test.mts +23 -11
- package/src/array/non-empty-array.mts +6 -4
- package/src/array/non-empty-array.test.mts +29 -16
- package/src/array/tuple.mts +7 -3
- package/src/array/tuple.test.mts +39 -21
- package/src/brand/brand.mts +9 -5
- package/src/brand/branded-number.mts +1 -1
- package/src/brand/branded-number.test.mts +32 -6
- package/src/brand/branded-string.mts +1 -1
- package/src/brand/branded-string.test.mts +36 -6
- package/src/compose/intersection.mts +5 -5
- package/src/compose/intersection.test.mts +79 -26
- package/src/compose/merge-records.mts +5 -5
- package/src/compose/merge-records.options.test.mts +18 -9
- package/src/compose/merge-records.test.mts +27 -10
- package/src/compose/union.mts +6 -5
- package/src/compose/union.test.mts +17 -6
- package/src/enum/enum.mts +6 -5
- package/src/enum/enum.test.mts +16 -5
- package/src/enum/int-range.mts +11 -4
- package/src/enum/int-range.test.mts +22 -8
- package/src/enum/uint-range.mts +8 -4
- package/src/enum/uint-range.test.mts +17 -4
- package/src/other-types/literal.test.mts +82 -20
- package/src/other-types/map.mts +13 -5
- package/src/other-types/map.test.mts +49 -4
- package/src/other-types/recursion.cache.test.mts +14 -4
- package/src/other-types/recursion.test.mts +24 -2
- package/src/other-types/refine.mts +1 -0
- package/src/other-types/set.mts +7 -4
- package/src/other-types/set.test.mts +54 -4
- package/src/predefined/brand/number/finite-number.test.mts +17 -6
- package/src/predefined/brand/number/int.test.mts +18 -7
- package/src/predefined/brand/number/int16.test.mts +14 -4
- package/src/predefined/brand/number/int32.test.mts +14 -4
- package/src/predefined/brand/number/non-negative-finite-number.test.mts +14 -4
- package/src/predefined/brand/number/non-zero-finite-number.test.mts +14 -4
- package/src/predefined/brand/number/non-zero-int.test.mts +14 -4
- package/src/predefined/brand/number/non-zero-safe-int.test.mts +14 -4
- package/src/predefined/brand/number/positive-finite-number.test.mts +14 -4
- package/src/predefined/brand/number/positive-int.test.mts +22 -7
- package/src/predefined/brand/number/positive-safe-int.test.mts +14 -4
- package/src/predefined/brand/number/safe-int.test.mts +11 -4
- package/src/predefined/brand/number/safe-uint.test.mts +14 -4
- package/src/predefined/brand/number/uint.test.mts +22 -7
- package/src/predefined/brand/number/uint16.test.mts +14 -4
- package/src/predefined/brand/number/uint32.test.mts +14 -4
- package/src/predefined/brand/string/email.test.mts +2 -1
- package/src/predefined/brand/string/iso-8601.test.mts +10 -4
- package/src/predefined/brand/string/json-string.test.mts +10 -4
- package/src/predefined/brand/string/uuid.test.mts +22 -9
- package/src/predefined/int8.test.mts +6 -1
- package/src/predefined/json.mts +1 -0
- package/src/predefined/uint8.test.mts +6 -1
- package/src/primitives/bigint.mts +260 -2
- package/src/primitives/bigint.test.mts +332 -5
- package/src/primitives/boolean.test.mts +13 -4
- package/src/primitives/null.test.mts +22 -5
- package/src/primitives/number.mts +229 -2
- package/src/primitives/number.test.mts +338 -4
- package/src/primitives/string.mts +292 -2
- package/src/primitives/string.test.mts +438 -4
- package/src/primitives/symbol.test.mts +13 -4
- package/src/primitives/undefined.test.mts +22 -5
- package/src/record/key-value-record.mts +13 -5
- package/src/record/key-value-record.test.mts +28 -11
- package/src/record/keyof.empty.test.mts +1 -0
- package/src/record/keyof.mts +1 -0
- package/src/record/keyof.test.mts +16 -5
- package/src/record/omit.options.test.mts +4 -0
- package/src/record/omit.test.mts +32 -14
- package/src/record/optional.test.mts +4 -3
- package/src/record/partial.test.mts +65 -29
- package/src/record/pick.options.test.mts +4 -0
- package/src/record/pick.test.mts +32 -14
- package/src/record/record-allow-excess-properties.test.mts +64 -21
- package/src/record/record-strict-composition-simple.test.mts +64 -28
- package/src/record/record-strict-composition.test.mts +121 -34
- package/src/record/record.mts +11 -5
- package/src/record/record.test.mts +50 -23
- package/src/record/required.test.mts +80 -36
- package/src/record/strict-record.test.mts +39 -12
- package/src/record/valueof.test.mts +11 -1
- package/src/utils/create-primitive-type.mts +2 -1
- package/src/utils/create-type.mts +2 -2
- package/src/utils/validation-error.formatting.test.mts +9 -3
- package/src/utils/validation-error.mts +125 -16
- package/src/utils/validation-error.test.mts +32 -25
package/README.md
CHANGED
|
@@ -245,6 +245,82 @@ assert.deepStrictEqual(UserWithMetadata.defaultValue, {
|
|
|
245
245
|
} satisfies t.TypeOf<typeof UserWithMetadata>);
|
|
246
246
|
```
|
|
247
247
|
|
|
248
|
+
## Primitive Constraints
|
|
249
|
+
|
|
250
|
+
`t.string()`, `t.number()`, and `t.bigint()` accept optional constraint objects that refine both runtime validation and the inferred TypeScript type. Constraints are verified when the schema is created—invalid defaults throw immediately—and on every `is()`, `validate()`, and `cast()` call.
|
|
251
|
+
|
|
252
|
+
### String constraints
|
|
253
|
+
|
|
254
|
+
```tsx
|
|
255
|
+
import * as t from 'ts-fortress';
|
|
256
|
+
|
|
257
|
+
const Slug = t.string('feature-flag', {
|
|
258
|
+
startsWith: 'feature',
|
|
259
|
+
includes: '-',
|
|
260
|
+
endsWith: 'flag',
|
|
261
|
+
nonempty: true,
|
|
262
|
+
minLength: 6,
|
|
263
|
+
maxLength: 32,
|
|
264
|
+
regex: /^[a-z-]+$/u,
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
Slug.is('feature-beta'); // true
|
|
268
|
+
Slug.is('Feature-Flag'); // false (fails regex)
|
|
269
|
+
|
|
270
|
+
type SlugType = t.TypeOf<typeof Slug>; // inferred as `feature${string}`
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
String constraints:
|
|
274
|
+
|
|
275
|
+
- `startsWith`, `endsWith`, `includes`
|
|
276
|
+
- `lowercase`, `uppercase`, `nonempty`
|
|
277
|
+
- `minLength`, `maxLength`
|
|
278
|
+
- `regex`
|
|
279
|
+
|
|
280
|
+
A negative `minLength` is ignored so you can enable or disable the bound dynamically without branching.
|
|
281
|
+
|
|
282
|
+
### Number constraints
|
|
283
|
+
|
|
284
|
+
```tsx
|
|
285
|
+
import * as t from 'ts-fortress';
|
|
286
|
+
|
|
287
|
+
const Percentage = t.number(100, {
|
|
288
|
+
min: 0,
|
|
289
|
+
max: 100,
|
|
290
|
+
step: 5,
|
|
291
|
+
nonNegative: true,
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
Percentage.is(75); // true
|
|
295
|
+
Percentage.is(72); // false (fails `step`)
|
|
296
|
+
Percentage.is(-5); // false (fails `min`/`nonNegative`)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Numeric constraints cover:
|
|
300
|
+
|
|
301
|
+
- Range: `gt`, `gte`, `min`, `lt`, `lte`, `max`
|
|
302
|
+
- Sign helpers: `positive`, `nonNegative`, `negative`, `nonPositive`
|
|
303
|
+
- Divisibility: `multipleOf`, `step`
|
|
304
|
+
|
|
305
|
+
### Bigint constraints
|
|
306
|
+
|
|
307
|
+
```tsx
|
|
308
|
+
import * as t from 'ts-fortress';
|
|
309
|
+
|
|
310
|
+
const PermissionsMask = t.bigint(0b11_1111n, {
|
|
311
|
+
gte: 0n,
|
|
312
|
+
lte: (1n << 6n) - 1n,
|
|
313
|
+
multipleOf: 1n << 2n,
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
PermissionsMask.is(0b10_1100n); // true
|
|
317
|
+
PermissionsMask.is(0b10_1111n); // false (not divisible by 4)
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
Bigint constraints mirror the numeric API but operate on `bigint` literals. When `multipleOf` or `step` is `0n`, only `0n` passes the check.
|
|
321
|
+
|
|
322
|
+
> **Tip:** If a default value violates its constraints, `ts-fortress` throws during construction. This guards against invalid schemas ever reaching production.
|
|
323
|
+
|
|
248
324
|
## Why ts-fortress over Zod and io-ts?
|
|
249
325
|
|
|
250
326
|
While ts-fortress, [Zod](https://github.com/colinhacks/zod), and [io-ts](https://github.com/gcanti/io-ts) are all excellent TypeScript validation libraries, ts-fortress offers more readable and informative error messages than both, a more type-safe way of building validators than Zod, and addresses some critical runtime consistency issues found in io-ts.
|
|
@@ -340,7 +416,7 @@ assert.deepStrictEqual(errorResult.value, [
|
|
|
340
416
|
actualValue: 'thirty',
|
|
341
417
|
expectedType: 'number',
|
|
342
418
|
typeName: 'number',
|
|
343
|
-
|
|
419
|
+
details: undefined,
|
|
344
420
|
},
|
|
345
421
|
]);
|
|
346
422
|
|
|
@@ -447,6 +523,7 @@ const newUser: User = { ...User.defaultValue, id: 'user-123' };
|
|
|
447
523
|
const newUser2: User = User.fill({ id: 'user-456' });
|
|
448
524
|
|
|
449
525
|
assert.deepStrictEqual(newUser, { id: 'user-123', name: 'Guest', score: 0 });
|
|
526
|
+
|
|
450
527
|
assert.deepStrictEqual(newUser2, { id: 'user-456', name: 'Guest', score: 0 });
|
|
451
528
|
|
|
452
529
|
// Useful for React state initialization
|
|
@@ -814,20 +891,21 @@ const result = User.validate(invalidData);
|
|
|
814
891
|
assert(t.Result.isErr(result));
|
|
815
892
|
|
|
816
893
|
// result.value is an array of ValidationError objects
|
|
894
|
+
|
|
817
895
|
assert.deepStrictEqual(result.value, [
|
|
818
896
|
{
|
|
819
897
|
actualValue: 123,
|
|
820
898
|
expectedType: 'string',
|
|
821
|
-
message: undefined,
|
|
822
899
|
path: ['name'],
|
|
823
900
|
typeName: 'string',
|
|
901
|
+
details: undefined,
|
|
824
902
|
},
|
|
825
903
|
{
|
|
826
904
|
actualValue: 'not a number',
|
|
827
905
|
expectedType: 'number',
|
|
828
|
-
message: undefined,
|
|
829
906
|
path: ['age'],
|
|
830
907
|
typeName: 'number',
|
|
908
|
+
details: undefined,
|
|
831
909
|
},
|
|
832
910
|
] satisfies t.ValidationError[]);
|
|
833
911
|
|
|
@@ -874,8 +952,11 @@ assert.deepStrictEqual(strictResult.value, [
|
|
|
874
952
|
path: ['extra'],
|
|
875
953
|
actualValue: 'not allowed',
|
|
876
954
|
expectedType: '{ name: string, age: number }',
|
|
877
|
-
message: 'Excess property "extra" is not allowed',
|
|
878
955
|
typeName: '{ name: string, age: number }',
|
|
956
|
+
details: {
|
|
957
|
+
kind: 'excess-key',
|
|
958
|
+
key: 'extra',
|
|
959
|
+
},
|
|
879
960
|
},
|
|
880
961
|
]);
|
|
881
962
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-at-least-length.d.mts","sourceRoot":"","sources":["../../src/array/array-at-least-length.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"array-at-least-length.d.mts","sourceRoot":"","sources":["../../src/array/array-at-least-length.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,SAAS,SAAS,EACvD,MAAM,CAAC,EACP,aAAa,IAAI,CAAC,CAAC,CAAC,EACpB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACrC,CAAC,KACD,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAsE5B,CAAC"}
|
|
@@ -5,9 +5,9 @@ import { createIsFn } from '../utils/create-is-fn.mjs';
|
|
|
5
5
|
import { createPrimitiveValidationError, prependIndexToValidationErrors } from '../utils/validation-error.mjs';
|
|
6
6
|
|
|
7
7
|
const arrayAtLeastLength = (size, elementType, options) => {
|
|
8
|
-
const {
|
|
8
|
+
const {
|
|
9
9
|
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
10
|
-
defaultValue = Arr.create(size, elementType.defaultValue), } = options ?? {};
|
|
10
|
+
defaultValue = Arr.create(size, elementType.defaultValue), typeName = `ArrayAtLeastLen<${size}, ${elementType.typeName}>`, } = options ?? {};
|
|
11
11
|
const validate = (a) => {
|
|
12
12
|
if (!Arr.isArray(a)) {
|
|
13
13
|
return Result.err([
|
|
@@ -15,6 +15,7 @@ const arrayAtLeastLength = (size, elementType, options) => {
|
|
|
15
15
|
actualValue: a,
|
|
16
16
|
expectedType: 'array',
|
|
17
17
|
typeName,
|
|
18
|
+
details: undefined,
|
|
18
19
|
}),
|
|
19
20
|
]);
|
|
20
21
|
}
|
|
@@ -24,8 +25,12 @@ const arrayAtLeastLength = (size, elementType, options) => {
|
|
|
24
25
|
path: [],
|
|
25
26
|
actualValue: a,
|
|
26
27
|
expectedType: typeName,
|
|
27
|
-
message: `Expected array of length ${size} or more, got length ${a.length}`,
|
|
28
28
|
typeName,
|
|
29
|
+
details: {
|
|
30
|
+
kind: 'array-min-length',
|
|
31
|
+
minLength: size,
|
|
32
|
+
actualLength: a.length,
|
|
33
|
+
},
|
|
29
34
|
},
|
|
30
35
|
]);
|
|
31
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-at-least-length.mjs","sources":["../../src/array/array-at-least-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"array-at-least-length.mjs","sources":["../../src/array/array-at-least-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAWO,MAAM,kBAAkB,GAAG,CAChC,IAAO,EACP,WAAoB,EACpB,OAGE,KAC6B;IAG/B,MAAM;;IAEJ,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAM,EAC9D,QAAQ,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG,GAC/D,GAAG,OAAO,IAAI,EAAE;AAEjB,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,OAAO;oBACrB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;oBACtB,QAAQ;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE,kBAAkB;AACxB,wBAAA,SAAS,EAAE,IAAI;wBACf,YAAY,EAAE,CAAC,CAAC,MAAM;AACvB,qBAAA;AACwB,iBAAA;AAC5B,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpC,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,OAAO,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBACzD;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAiB,CAAC;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,GAAG,CAAC,OAAO,CAAC,CAAC;AACX;;YAEG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa;UACjE,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;AAC5B,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;KACnC;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-of-length.d.mts","sourceRoot":"","sources":["../../src/array/array-of-length.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"array-of-length.d.mts","sourceRoot":"","sources":["../../src/array/array-of-length.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,SAAS,SAAS,EAClD,MAAM,CAAC,EACP,aAAa,IAAI,CAAC,CAAC,CAAC,EACpB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACnC,CAAC,KACD,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAsE1B,CAAC"}
|
|
@@ -5,9 +5,9 @@ import { createIsFn } from '../utils/create-is-fn.mjs';
|
|
|
5
5
|
import { createPrimitiveValidationError, prependIndexToValidationErrors } from '../utils/validation-error.mjs';
|
|
6
6
|
|
|
7
7
|
const arrayOfLength = (size, elementType, options) => {
|
|
8
|
-
const {
|
|
8
|
+
const {
|
|
9
9
|
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
10
|
-
defaultValue = Arr.create(size, elementType.defaultValue), } = options ?? {};
|
|
10
|
+
defaultValue = Arr.create(size, elementType.defaultValue), typeName = `ArrayOfLength<${size}, ${elementType.typeName}>`, } = options ?? {};
|
|
11
11
|
const validate = (a) => {
|
|
12
12
|
if (!Arr.isArray(a)) {
|
|
13
13
|
return Result.err([
|
|
@@ -15,6 +15,7 @@ const arrayOfLength = (size, elementType, options) => {
|
|
|
15
15
|
actualValue: a,
|
|
16
16
|
expectedType: 'array',
|
|
17
17
|
typeName,
|
|
18
|
+
details: undefined,
|
|
18
19
|
}),
|
|
19
20
|
]);
|
|
20
21
|
}
|
|
@@ -24,8 +25,12 @@ const arrayOfLength = (size, elementType, options) => {
|
|
|
24
25
|
path: [],
|
|
25
26
|
actualValue: a,
|
|
26
27
|
expectedType: typeName,
|
|
27
|
-
message: `Expected array of length ${size}, got length ${a.length}`,
|
|
28
28
|
typeName,
|
|
29
|
+
details: {
|
|
30
|
+
kind: 'array-length',
|
|
31
|
+
expectedLength: size,
|
|
32
|
+
actualLength: a.length,
|
|
33
|
+
},
|
|
29
34
|
},
|
|
30
35
|
]);
|
|
31
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-of-length.mjs","sources":["../../src/array/array-of-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"array-of-length.mjs","sources":["../../src/array/array-of-length.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAWO,MAAM,aAAa,GAAG,CAC3B,IAAO,EACP,WAAoB,EACpB,OAGE,KAC2B;IAG7B,MAAM;;IAEJ,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAM,EAC9D,QAAQ,GAAG,CAAA,cAAA,EAAiB,IAAI,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG,GAC7D,GAAG,OAAO,IAAI,EAAE;AAEjB,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,OAAO;oBACrB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE;YACrB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;oBACtB,QAAQ;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,cAAc,EAAE,IAAI;wBACpB,YAAY,EAAE,CAAC,CAAC,MAAM;AACvB,qBAAA;AACwB,iBAAA;AAC5B,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpC,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,OAAO,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBACzD;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAiB,CAAC;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,GAAG,CAAC,OAAO,CAAC,CAAC;AACX;;YAEG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa;UACjE,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;AAC5B,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;KACnC;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.mts","sourceRoot":"","sources":["../../src/array/array.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,aAAa,IAAI,CAAC,CAAC,CAAC,EACpB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,KACD,IAAI,CAAC,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"array.d.mts","sourceRoot":"","sources":["../../src/array/array.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,aAAa,IAAI,CAAC,CAAC,CAAC,EACpB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,KACD,IAAI,CAAC,SAAS,CAAC,EAAE,CA+CnB,CAAC"}
|
package/dist/array/array.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { createIsFn } from '../utils/create-is-fn.mjs';
|
|
|
5
5
|
import { createPrimitiveValidationError, prependIndexToValidationErrors } from '../utils/validation-error.mjs';
|
|
6
6
|
|
|
7
7
|
const array = (elementType, options) => {
|
|
8
|
-
const { typeName = `${elementType.typeName}[]
|
|
8
|
+
const { defaultValue = [], typeName = `${elementType.typeName}[]` } = options ?? {};
|
|
9
9
|
const validate = (a) => {
|
|
10
10
|
if (!Arr.isArray(a)) {
|
|
11
11
|
return Result.err([
|
|
@@ -13,6 +13,7 @@ const array = (elementType, options) => {
|
|
|
13
13
|
actualValue: a,
|
|
14
14
|
expectedType: 'array',
|
|
15
15
|
typeName,
|
|
16
|
+
details: undefined,
|
|
16
17
|
}),
|
|
17
18
|
]);
|
|
18
19
|
}
|
package/dist/array/array.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.mjs","sources":["../../src/array/array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAWa,KAAK,GAAG,CACnB,WAAoB,EACpB,OAGE,KACoB;AAGtB,IAAA,MAAM,EAAE,QAAQ,GAAG,CAAA,EAAG,WAAW,CAAC,QAAQ,CAAA,EAAA,CAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"array.mjs","sources":["../../src/array/array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAWa,KAAK,GAAG,CACnB,WAAoB,EACpB,OAGE,KACoB;AAGtB,IAAA,MAAM,EAAE,YAAY,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAA,EAAG,WAAW,CAAC,QAAQ,CAAA,EAAA,CAAI,EAAE,GACjE,OAAO,IAAI,EAAE;AAEf,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,OAAO;oBACrB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpC,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,OAAO,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBACzD;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY;IAEnE,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-empty-array.d.mts","sourceRoot":"","sources":["../../src/array/non-empty-array.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"non-empty-array.d.mts","sourceRoot":"","sources":["../../src/array/non-empty-array.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,aAAa,IAAI,CAAC,CAAC,CAAC,EACpB,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC,KACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAiEvB,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { createIsFn } from '../utils/create-is-fn.mjs';
|
|
|
5
5
|
import { createPrimitiveValidationError, prependIndexToValidationErrors } from '../utils/validation-error.mjs';
|
|
6
6
|
|
|
7
7
|
const nonEmptyArray = (elementType, options) => {
|
|
8
|
-
const {
|
|
8
|
+
const { defaultValue = Arr.newArray(1, elementType.defaultValue), typeName = `NonEmptyArray<${elementType.typeName}>`, } = options ?? {};
|
|
9
9
|
const validate = (a) => {
|
|
10
10
|
if (!Arr.isArray(a)) {
|
|
11
11
|
return Result.err([
|
|
@@ -13,6 +13,7 @@ const nonEmptyArray = (elementType, options) => {
|
|
|
13
13
|
actualValue: a,
|
|
14
14
|
expectedType: 'array',
|
|
15
15
|
typeName,
|
|
16
|
+
details: undefined,
|
|
16
17
|
}),
|
|
17
18
|
]);
|
|
18
19
|
}
|
|
@@ -23,7 +24,9 @@ const nonEmptyArray = (elementType, options) => {
|
|
|
23
24
|
actualValue: a,
|
|
24
25
|
expectedType: typeName,
|
|
25
26
|
typeName,
|
|
26
|
-
|
|
27
|
+
details: {
|
|
28
|
+
kind: 'non-empty-array',
|
|
29
|
+
},
|
|
27
30
|
},
|
|
28
31
|
]);
|
|
29
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"non-empty-array.mjs","sources":["../../src/array/non-empty-array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"non-empty-array.mjs","sources":["../../src/array/non-empty-array.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAWa,aAAa,GAAG,CAC3B,WAAoB,EACpB,OAGE,KACwB;IAG1B,MAAM,EACJ,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,EACxD,QAAQ,GAAG,CAAA,cAAA,EAAiB,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG,GACpD,GAAG,OAAO,IAAI,EAAE;AAEjB,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,OAAO;oBACrB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;oBACtB,QAAQ;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE,iBAAiB;AACxB,qBAAA;AACwB,iBAAA;AAC5B,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpC,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,OAAO,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBACzD;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAiB,CAAC;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,UAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;UACrC,YAAY;IAElB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.d.mts","sourceRoot":"","sources":["../../src/array/tuple.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tuple.d.mts","sourceRoot":"","sources":["../../src/array/tuple.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrD,KAAK,QAAQ,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI;IAClD,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,EAC5D,OAAO,CAAC,EACR,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAsElB,CAAC"}
|
package/dist/array/tuple.mjs
CHANGED
|
@@ -14,6 +14,7 @@ const tuple = (types, options) => {
|
|
|
14
14
|
actualValue: a,
|
|
15
15
|
expectedType: 'array',
|
|
16
16
|
typeName,
|
|
17
|
+
details: undefined,
|
|
17
18
|
}),
|
|
18
19
|
]);
|
|
19
20
|
}
|
|
@@ -24,7 +25,11 @@ const tuple = (types, options) => {
|
|
|
24
25
|
actualValue: a,
|
|
25
26
|
expectedType: typeName,
|
|
26
27
|
typeName,
|
|
27
|
-
|
|
28
|
+
details: {
|
|
29
|
+
kind: 'tuple-length',
|
|
30
|
+
expectedLength: types.length,
|
|
31
|
+
actualLength: a.length,
|
|
32
|
+
},
|
|
28
33
|
},
|
|
29
34
|
]);
|
|
30
35
|
}
|
package/dist/array/tuple.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.mjs","sources":["../../src/array/tuple.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"tuple.mjs","sources":["../../src/array/tuple.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAea,KAAK,GAAG,CACnB,KAAQ,EACR,OAEE,KACmB;IAGrB,MAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE;AAE5C,IAAA,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAC1B,KAAK,EACL,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CACA;AAEvB,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA,8BAA8B,CAAC;AAC7B,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,OAAO;oBACrB,QAAQ;AACR,oBAAA,OAAO,EAAE,SAAS;iBACnB,CAAC;AACH,aAAA,CAAC;QACJ;QAEA,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC7B,OAAO,MAAM,CAAC,GAAG,CAAC;AAChB,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,YAAY,EAAE,QAAQ;oBACtB,QAAQ;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc;wBACpB,cAAc,EAAE,KAAK,CAAC,MAAM;wBAC5B,YAAY,EAAE,CAAC,CAAC,MAAM;AACvB,qBAAA;AACwB,iBAAA;AAC5B,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;YAC/D,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChC,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,OAAO,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBACzD;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;;AAGA,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACZ,UAAE;AACF;YACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAiB;IAExD,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,IAAI;QACJ,QAAQ;AACR,QAAA,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACxB,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
|
package/dist/brand/brand.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Type } from '../type.mjs';
|
|
2
2
|
type ArrayToUnion<A extends readonly unknown[]> = A extends readonly [] ? never : A[number];
|
|
3
|
-
export declare const brand: <const A extends StrictExtract<Primitive, string | number | bigint | boolean>, const BrandTrueKeys extends readonly string[], const BrandFalseKeys extends readonly string[] = []>({ baseType,
|
|
3
|
+
export declare const brand: <const A extends StrictExtract<Primitive, string | number | bigint | boolean>, const BrandTrueKeys extends readonly string[], const BrandFalseKeys extends readonly string[] = []>({ baseType, brandFalseKeys, brandKeys, defaultValue, is, typeName, }: Readonly<{
|
|
4
4
|
baseType: Type<A>;
|
|
5
5
|
is: (a: A) => a is Brand<A, ArrayToUnion<BrandTrueKeys>, ArrayToUnion<BrandFalseKeys>>;
|
|
6
6
|
defaultValue: A;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.d.mts","sourceRoot":"","sources":["../../src/brand/brand.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,SAAS,EAAE,GACnE,KAAK,GACL,CAAC,CAAC,MAAM,CAAC,CAAC;AAEd,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAC5E,KAAK,CAAC,aAAa,SAAS,SAAS,MAAM,EAAE,EAC7C,KAAK,CAAC,cAAc,SAAS,SAAS,MAAM,EAAE,GAAG,EAAE,EACnD,sEAOC,QAAQ,CAAC;IACV,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,EAAE,EAAE,CACF,CAAC,EAAE,CAAC,KACD,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9E,YAAY,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC,KAAG,IAAI,CACP,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"brand.d.mts","sourceRoot":"","sources":["../../src/brand/brand.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxC,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,SAAS,EAAE,GACnE,KAAK,GACL,CAAC,CAAC,MAAM,CAAC,CAAC;AAEd,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAC5E,KAAK,CAAC,aAAa,SAAS,SAAS,MAAM,EAAE,EAC7C,KAAK,CAAC,cAAc,SAAS,SAAS,MAAM,EAAE,GAAG,EAAE,EACnD,sEAOC,QAAQ,CAAC;IACV,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,EAAE,EAAE,CACF,CAAC,EAAE,CAAC,KACD,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9E,YAAY,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC,KAAG,IAAI,CACP,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAiDpE,CAAC"}
|
package/dist/brand/brand.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { pipe, Result } from 'ts-data-forge';
|
|
2
2
|
import { createType } from '../utils/create-type.mjs';
|
|
3
3
|
|
|
4
|
-
const brand = ({ baseType,
|
|
4
|
+
const brand = ({ baseType, brandFalseKeys, brandKeys, defaultValue, is, typeName, }) => {
|
|
5
5
|
if (!is(defaultValue)) {
|
|
6
6
|
throw new Error(`defaultValue ${defaultValue} doesn't pass \`is\` function`);
|
|
7
7
|
}
|
|
@@ -22,8 +22,13 @@ const brand = ({ baseType, is, defaultValue, typeName, brandKeys, brandFalseKeys
|
|
|
22
22
|
actualValue: res.value,
|
|
23
23
|
expectedType: typeNameFilled,
|
|
24
24
|
typeName: typeNameFilled,
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
details:
|
|
26
|
+
// If typeName is specified, it will be used in the error message, so no further information is required.
|
|
27
|
+
typeName === undefined
|
|
28
|
+
? {
|
|
29
|
+
kind: 'brand',
|
|
30
|
+
description: brandKeysStr,
|
|
31
|
+
}
|
|
27
32
|
: undefined,
|
|
28
33
|
},
|
|
29
34
|
])).value;
|
package/dist/brand/brand.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.mjs","sources":["../../src/brand/brand.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAQO,MAAM,KAAK,GAAG,CAInB,EACA,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"brand.mjs","sources":["../../src/brand/brand.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAQO,MAAM,KAAK,GAAG,CAInB,EACA,QAAQ,EACR,cAAc,EACd,SAAS,EACT,YAAY,EACZ,EAAE,EACF,QAAQ,GAUR,KAEE;AAGF,IAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE;AACrB,QAAA,MAAM,IAAI,KAAK,CACb,gBAAgB,YAAY,CAAA,6BAAA,CAA+B,CAC5D;IACH;AAEA,IAAA,MAAM,YAAY,GAAG;AACnB,QAAA,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG,CAAC;AACjC,QAAA,IAAI,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA,EAAA,CAAI,CAAC,IAAI,EAAE,CAAC;AACrD,KAAA,CAAC,IAAI,CAAC,KAAK,CAAC;AAEb,IAAA,MAAM,cAAc,GAAG,QAAQ,IAAI,YAAY;IAE/C,MAAM,QAAQ,GAAwB,CAAC,CAAC,KACtC,IAAI,CAAC,CAAC;AACH,SAAA,GAAG,CAAC,QAAQ,CAAC,QAAQ;SACrB,GAAG,CACF,CAAC,GAAG,KACF,MAAM,CAAC,KAAK,CAAC,GAAG;AACd,UAAE;AACF,UAAE,EAAE,CAAC,GAAG,CAAC,KAAK;cACV,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAiB;AACjC,cAAE,MAAM,CAAC,GAAG,CAAC;AACT,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,GAAG,CAAC,KAAK;AACtB,oBAAA,YAAY,EAAE,cAAc;AAC5B,oBAAA,QAAQ,EAAE,cAAc;oBACxB,OAAO;;AAEL,oBAAA,QAAQ,KAAK;AACX,0BAAE;AACE,4BAAA,IAAI,EAAE,OAAgB;AACtB,4BAAA,WAAW,EAAE,YAAY;AAC1B;AACH,0BAAE,SAAS;AACU,iBAAA;aAC5B,CAAC,CACX,CAAC,KAAK;AAEX,IAAA,OAAO,UAAU,CAAC;AAChB,QAAA,QAAQ,EAAE,YAAY;QACtB,YAAY;QACZ,QAAQ;AACT,KAAA,CAAC;AACJ;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Type } from '../type.mjs';
|
|
2
|
-
export declare const brandedNumber: <K extends string>({
|
|
2
|
+
export declare const brandedNumber: <K extends string>({ defaultValue, is, typeName, }: Readonly<{
|
|
3
3
|
typeName: K;
|
|
4
4
|
defaultValue: number;
|
|
5
5
|
is?: (u: number) => u is Brand<number, K>;
|
|
@@ -9,7 +9,7 @@ export declare const brandedNumber: <K extends string>({ typeName, defaultValue,
|
|
|
9
9
|
*
|
|
10
10
|
* @deprecated use `brandedNumber`
|
|
11
11
|
*/
|
|
12
|
-
export declare const simpleBrandedNumber: <K extends string>({
|
|
12
|
+
export declare const simpleBrandedNumber: <K extends string>({ defaultValue, is, typeName, }: Readonly<{
|
|
13
13
|
typeName: K;
|
|
14
14
|
defaultValue: number;
|
|
15
15
|
is?: (u: number) => u is Brand<number, K>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import 'ts-data-forge';
|
|
2
|
+
import '../other-types/unknown.mjs';
|
|
2
3
|
import { number } from '../primitives/number.mjs';
|
|
3
4
|
import { brand } from './brand.mjs';
|
|
4
5
|
|
|
5
|
-
const brandedNumber = ({
|
|
6
|
+
const brandedNumber = ({ defaultValue, is = (_u) => true, typeName, }) => brand({
|
|
6
7
|
baseType: number(defaultValue),
|
|
7
8
|
defaultValue:
|
|
8
9
|
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branded-number.mjs","sources":["../../src/brand/branded-number.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branded-number.mjs","sources":["../../src/brand/branded-number.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;MAIa,aAAa,GAAG,CAAmB,EAC9C,YAAY,EACZ,EAAE,GAAG,CAAC,EAAE,KAA6B,IAAI,EACzC,QAAQ,GAKR,KACA,KAAK,CAAC;AACJ,IAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC;IAE9B,YAAY;;IAEV,YAAgC;IAElC,EAAE;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,QAAQ;AACT,CAAA;AAEH;;;;AAIG;AACI,MAAM,mBAAmB,GAAG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Type } from '../type.mjs';
|
|
2
|
-
export declare const brandedString: <K extends string>({
|
|
2
|
+
export declare const brandedString: <K extends string>({ defaultValue, is, typeName, }: Readonly<{
|
|
3
3
|
typeName: K;
|
|
4
4
|
defaultValue: string;
|
|
5
5
|
is?: (u: string) => u is Brand<string, K>;
|
|
@@ -9,7 +9,7 @@ export declare const brandedString: <K extends string>({ typeName, defaultValue,
|
|
|
9
9
|
*
|
|
10
10
|
* @deprecated use `brandedString`
|
|
11
11
|
*/
|
|
12
|
-
export declare const simpleBrandedString: <K extends string>({
|
|
12
|
+
export declare const simpleBrandedString: <K extends string>({ defaultValue, is, typeName, }: Readonly<{
|
|
13
13
|
typeName: K;
|
|
14
14
|
defaultValue: string;
|
|
15
15
|
is?: (u: string) => u is Brand<string, K>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import 'ts-data-forge';
|
|
2
|
+
import '../other-types/unknown.mjs';
|
|
2
3
|
import { string } from '../primitives/string.mjs';
|
|
3
4
|
import { brand } from './brand.mjs';
|
|
4
5
|
|
|
5
|
-
const brandedString = ({
|
|
6
|
+
const brandedString = ({ defaultValue, is = (_u) => true, typeName, }) => brand({
|
|
6
7
|
baseType: string(defaultValue),
|
|
7
8
|
defaultValue:
|
|
8
9
|
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branded-string.mjs","sources":["../../src/brand/branded-string.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"branded-string.mjs","sources":["../../src/brand/branded-string.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;MAIa,aAAa,GAAG,CAAmB,EAC9C,YAAY,EACZ,EAAE,GAAG,CAAC,EAAE,KAA6B,IAAI,EACzC,QAAQ,GAKR,KACA,KAAK,CAAC;AACJ,IAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC;IAE9B,YAAY;;IAEV,YAAgC;IAElC,EAAE;IACF,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,QAAQ;AACT,CAAA;AAEH;;;;AAIG;AACI,MAAM,mBAAmB,GAAG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intersection.d.mts","sourceRoot":"","sources":["../../src/compose/intersection.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"intersection.d.mts","sourceRoot":"","sources":["../../src/compose/intersection.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,YAAY,GAAI,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC3E,OAAO,KAAK,EACZ,aAAa,gBAAgB,CAAC,KAAK,CAAC,EACpC,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,KACD,gBAAgB,CAAC,KAAK,CAkDxB,CAAC;AAEF,KAAK,gBAAgB,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CACtE,qBAAqB,CAAC,KAAK,CAAC,CAC7B,CAAC;AAEF,KAAK,qBAAqB,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IACnE,kBAAkB,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;AAEtD,kBAAU,kBAAkB,CAAC;IAC3B,MAAM,MAAM,yBAAyB,CACnC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IACxC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/C,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;;CAClE;AAsBD,KAAK,cAAc,CAAC,KAAK,SAAS,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,IACxD,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAE3C,kBAAU,kBAAkB,CAAC;IAC3B,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IACzD,KAAK,SAAS,SAAS,EAAE,GACrB,EAAE,GACF,KAAK,SAAS,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAChD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GACvD,KAAK,CAAC;IAEd,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;;CACzD"}
|
|
@@ -16,10 +16,11 @@ const intersection = (types, defaultType, options) => {
|
|
|
16
16
|
path: [],
|
|
17
17
|
actualValue: a,
|
|
18
18
|
expectedType: typeNameFilled,
|
|
19
|
-
message: `The type of value is expected to match all types of { ${types
|
|
20
|
-
.map((t) => t.typeName)
|
|
21
|
-
.join(', ')} }`,
|
|
22
19
|
typeName: typeNameFilled,
|
|
20
|
+
details: {
|
|
21
|
+
kind: 'intersection',
|
|
22
|
+
typeNames: types.map((t) => t.typeName),
|
|
23
|
+
},
|
|
23
24
|
};
|
|
24
25
|
yield* res.value;
|
|
25
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intersection.mjs","sources":["../../src/compose/intersection.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"intersection.mjs","sources":["../../src/compose/intersection.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUO,MAAM,YAAY,GAAG,CAC1B,KAAY,EACZ,WAAoC,EACpC,OAEE,KACyB;AAG3B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,QAAA,CAAA,CAAA,EAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5B,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,MAAM;AACJ,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,CAAC;AACd,wBAAA,YAAY,EAAE,cAAc;AAC5B,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACxC,yBAAA;qBACwB;AAE3B,oBAAA,OAAO,GAAG,CAAC,KAAK;;;AAGtB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;;;AAI3B,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtE,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-records.d.mts","sourceRoot":"","sources":["../../src/compose/merge-records.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-records.d.mts","sourceRoot":"","sources":["../../src/compose/merge-records.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,YAAY,GACvB,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAEtD,OAAO,KAAK,EACZ,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;CACtC,CAAC,KACD,gBAAgB,CAAC,KAAK,CA6DxB,CAAC;AAEF,KAAK,gBAAgB,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI,CAC5E,qBAAqB,CAAC,KAAK,CAAC,CAC7B,CAAC;AAEF,KAAK,qBAAqB,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IACzE,YAAY,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzD,kBAAU,kBAAkB,CAAC;IAC3B,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,SAAS,IAAI,CAAC,aAAa,CAAC,EAAE,IACrE,cAAc,CAAC,KAAK,CAAC,CAAC;IAExB,KAAK,cAAc,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAClD,KAAK,SAAS,SAAS,EAAE,GACrB,EAAE,GACF,KAAK,SAAS,SAAS,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAChD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GACvD,KAAK,CAAC;IAEd,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;;CAC/D"}
|
|
@@ -16,10 +16,11 @@ const mergeRecords = (types, options) => {
|
|
|
16
16
|
path: [],
|
|
17
17
|
actualValue: a,
|
|
18
18
|
expectedType: typeNameFilled,
|
|
19
|
-
message: `The type of value is expected to match all types of { ${types
|
|
20
|
-
.map((t) => t.typeName)
|
|
21
|
-
.join(', ')} }`,
|
|
22
19
|
typeName: typeNameFilled,
|
|
20
|
+
details: {
|
|
21
|
+
kind: 'intersection',
|
|
22
|
+
typeNames: types.map((t) => t.typeName),
|
|
23
|
+
},
|
|
23
24
|
};
|
|
24
25
|
yield* res.value;
|
|
25
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-records.mjs","sources":["../../src/compose/merge-records.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"merge-records.mjs","sources":["../../src/compose/merge-records.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAUa,YAAY,GAAG,CAG1B,KAAY,EACZ,OAGE,KACyB;AAG3B,IAAA,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ;AACjB,QAAA,CAAA,CAAA,EAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG;AAE3D,IAAA,MAAM,QAAQ,GAAwB,CAAC,CAAC,KAAI;AAC1C,QAAA,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,aAAS;AAC/D,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5B,gBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACrB,MAAM;AACJ,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,WAAW,EAAE,CAAC;AACd,wBAAA,YAAY,EAAE,cAAc;AAC5B,wBAAA,QAAQ,EAAE,cAAc;AACxB,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACxC,yBAAA;qBACwB;AAE3B,oBAAA,OAAO,GAAG,CAAC,KAAK;;;AAGtB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;;;AAI3B,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAoB,CAAC,CAAC,KAC9B,EAAE,CAAC,CAAC;AACF,UAAE;WACC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9B,YAAA,iBAAiB,CACf,QAAQ,CAAC,CAAC;kBACN,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,kBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChC,CAAC;AAER,IAAA,MAAM,YAAY,GAChB,OAAO,EAAE,WAAW,EAAE,YAAY;AAClC,QAAA,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;IAErD,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY;QACZ,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;AA8IA,MAAM,iBAAiB,GAAG,CACxB,IAAQ;AAER;AACA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAqB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.d.mts","sourceRoot":"","sources":["../../src/compose/union.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACpE,OAAO,KAAK,EACZ,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;CAC/B,CAAC,KACD,SAAS,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"union.d.mts","sourceRoot":"","sources":["../../src/compose/union.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACpE,OAAO,KAAK,EACZ,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;CAC/B,CAAC,KACD,SAAS,CAAC,KAAK,CAuCjB,CAAC;AAEF,KAAK,SAAS,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAC/D,cAAc,CAAC,KAAK,CAAC,CACtB,CAAC;AAEF,KAAK,cAAc,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAC5D,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAE/C,kBAAU,kBAAkB,CAAC;IAC3B,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IACvE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnC,KAAK,WAAW,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;;CAC7E"}
|
package/dist/compose/union.mjs
CHANGED
|
@@ -16,10 +16,11 @@ const union = (types, options) => {
|
|
|
16
16
|
path: [],
|
|
17
17
|
actualValue: a,
|
|
18
18
|
expectedType: typeNameFilled,
|
|
19
|
-
message: `The type of value is expected to be one of the elements contained in { ${types
|
|
20
|
-
.map((t) => t.typeName)
|
|
21
|
-
.join(', ')} }`,
|
|
22
19
|
typeName: typeNameFilled,
|
|
20
|
+
details: {
|
|
21
|
+
kind: 'union',
|
|
22
|
+
typeNames: types.map((t) => t.typeName),
|
|
23
|
+
},
|
|
23
24
|
},
|
|
24
25
|
]);
|
|
25
26
|
const is = createIsFn(validate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.mjs","sources":["../../src/compose/union.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAUa,KAAK,GAAG,CACnB,KAAY,EACZ,OAGE,KACkB;;IAIpB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAK,KAAK,CAAC,CAAC,CAAsB;IAE1E,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ,IAAI,CAAA,CAAA,EAAI,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAA,CAAG;IAEzE,MAAM,QAAQ,GAAwB,CAAC,CAAC,KACtC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB;AACE,YAAA,MAAM,CAAC,EAAE,CAAC,CAAM;AAClB,UAAE,MAAM,CAAC,GAAG,CAAC;AACT,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,YAAY,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"union.mjs","sources":["../../src/compose/union.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;MAUa,KAAK,GAAG,CACnB,KAAY,EACZ,OAGE,KACkB;;IAIpB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAK,KAAK,CAAC,CAAC,CAAsB;IAE1E,MAAM,cAAc,GAClB,OAAO,EAAE,QAAQ,IAAI,CAAA,CAAA,EAAI,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAA,CAAG;IAEzE,MAAM,QAAQ,GAAwB,CAAC,CAAC,KACtC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB;AACE,YAAA,MAAM,CAAC,EAAE,CAAC,CAAM;AAClB,UAAE,MAAM,CAAC,GAAG,CAAC;AACT,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,YAAY,EAAE,cAAc;AAC5B,gBAAA,QAAQ,EAAE,cAAc;AACxB,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AACxC,iBAAA;AACwB,aAAA;AAC5B,SAAA,CAAC;AAER,IAAA,MAAM,EAAE,GAAG,UAAU,CAAI,QAAQ,CAAC;IAElC,MAAM,IAAI,GAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtE,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,IAAI;QACJ,QAAQ;QACR,EAAE;AACF,QAAA,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B;AACH;;;;"}
|
package/dist/enum/enum.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.d.mts","sourceRoot":"","sources":["../../src/enum/enum.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,SAAS,CAAC,EACpE,QAAQ,MAAM,EACd,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACpC,CAAC,KACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"enum.d.mts","sourceRoot":"","sources":["../../src/enum/enum.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,SAAS,CAAC,EACpE,QAAQ,MAAM,EACd,UAAU,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACpC,CAAC,KACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CA2C3B,CAAC"}
|
package/dist/enum/enum.mjs
CHANGED
|
@@ -19,8 +19,11 @@ const enumType = (values, options) => {
|
|
|
19
19
|
path: [],
|
|
20
20
|
actualValue: a,
|
|
21
21
|
expectedType: typeName,
|
|
22
|
-
message: `The value is expected to be one of the elements contained in { ${values.join(', ')} }`,
|
|
23
22
|
typeName,
|
|
23
|
+
details: {
|
|
24
|
+
kind: 'enum',
|
|
25
|
+
values,
|
|
26
|
+
},
|
|
24
27
|
},
|
|
25
28
|
]);
|
|
26
29
|
const is = createIsFn(validate);
|