ts-fortress 12.2.0 → 12.3.1
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 +33 -0
- package/dist/array/array.d.mts +22 -0
- package/dist/array/array.d.mts.map +1 -1
- package/dist/array/array.mjs +26 -1
- package/dist/array/array.mjs.map +1 -1
- package/dist/array/bounded-length-array.d.mts.map +1 -1
- package/dist/array/bounded-length-array.mjs.map +1 -1
- package/dist/array/bounded-length-tuple.d.mts.map +1 -1
- package/dist/array/bounded-length-tuple.mjs.map +1 -1
- package/dist/array/fixed-length-array.d.mts.map +1 -1
- package/dist/array/fixed-length-array.mjs.map +1 -1
- package/dist/array/max-length-array.d.mts.map +1 -1
- package/dist/array/max-length-array.mjs.map +1 -1
- package/dist/array/max-length-tuple.d.mts.map +1 -1
- package/dist/array/max-length-tuple.mjs.map +1 -1
- package/dist/array/min-length-array.d.mts.map +1 -1
- package/dist/array/min-length-array.mjs.map +1 -1
- package/dist/array/min-length-tuple.d.mts.map +1 -1
- package/dist/array/min-length-tuple.mjs.map +1 -1
- package/dist/compose/union.d.mts +19 -0
- package/dist/compose/union.d.mts.map +1 -1
- package/dist/compose/union.mjs +19 -0
- package/dist/compose/union.mjs.map +1 -1
- package/dist/other-types/recursion.d.mts +1 -1
- package/dist/record/at.d.mts.map +1 -1
- package/dist/record/at.mjs +7 -3
- package/dist/record/at.mjs.map +1 -1
- package/dist/type.d.mts +3 -1
- package/dist/type.d.mts.map +1 -1
- package/dist/type.mjs.map +1 -1
- package/package.json +17 -17
- package/src/array/array.mts +27 -1
- package/src/array/array.test.mts +111 -1
- package/src/array/bounded-length-array.mts +6 -0
- package/src/array/bounded-length-tuple.mts +6 -0
- package/src/array/fixed-length-array.mts +4 -0
- package/src/array/max-length-array.mts +4 -0
- package/src/array/max-length-tuple.mts +4 -0
- package/src/array/min-length-array.mts +4 -0
- package/src/array/min-length-tuple.mts +4 -0
- package/src/compose/union-literals.test.mts +1 -1
- package/src/compose/union-primitive-literal.test.mts +2 -2
- package/src/compose/union.mts +19 -0
- package/src/other-types/recursion.mts +1 -1
- package/src/predefined/brand/string/email.test.mts +16 -16
- package/src/record/at.mts +10 -3
- package/src/type.mts +3 -1
package/README.md
CHANGED
|
@@ -254,6 +254,39 @@ assert.deepStrictEqual(UserWithMetadata.defaultValue, {
|
|
|
254
254
|
} satisfies t.TypeOf<typeof UserWithMetadata>);
|
|
255
255
|
```
|
|
256
256
|
|
|
257
|
+
### Dropping invalid array elements
|
|
258
|
+
|
|
259
|
+
`fill` keeps an array's valid elements and, by default, replaces each invalid one with its filled value. When repairing stored data such as settings, an element that no longer makes sense is usually better removed than turned into a default unrelated to what was saved; `t.array(elementType, { onInvalidElement: 'drop' })` does that:
|
|
260
|
+
|
|
261
|
+
```tsx
|
|
262
|
+
import * as t from 'ts-fortress';
|
|
263
|
+
|
|
264
|
+
const SortSpec = t.record({
|
|
265
|
+
key: t.enumType(['title', 'priority']),
|
|
266
|
+
order: t.enumType(['asc', 'desc']),
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
const saved = [
|
|
270
|
+
{ key: 'colour', order: 'desc' }, // a key that no longer exists
|
|
271
|
+
{ key: 'priority', order: 'asc' },
|
|
272
|
+
] as const;
|
|
273
|
+
|
|
274
|
+
// By default, an invalid element is replaced with its filled value,
|
|
275
|
+
// so the unknown key turns into the default key 'title'
|
|
276
|
+
assert.deepStrictEqual(t.array(SortSpec).fill(saved), [
|
|
277
|
+
{ key: 'title', order: 'desc' },
|
|
278
|
+
{ key: 'priority', order: 'asc' },
|
|
279
|
+
]);
|
|
280
|
+
|
|
281
|
+
// With onInvalidElement: 'drop', it is removed instead
|
|
282
|
+
assert.deepStrictEqual(
|
|
283
|
+
t.array(SortSpec, { onInvalidElement: 'drop' }).fill(saved),
|
|
284
|
+
[{ key: 'priority', order: 'asc' }],
|
|
285
|
+
);
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
An element is judged as a whole by the element type's `is`, so a nested record or array with one wrong part is dropped rather than repaired. The option changes `fill` only: `prune` takes a value that is already of the type, so it never meets an invalid element.
|
|
289
|
+
|
|
257
290
|
## Primitive Constraints
|
|
258
291
|
|
|
259
292
|
`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.
|
package/dist/array/array.d.mts
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
import type { Type } from '../type.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a `Type` for a readonly array whose elements are of `elementType`.
|
|
4
|
+
*
|
|
5
|
+
* `onInvalidElement` decides what `fill` does with an element that is not of
|
|
6
|
+
* `elementType`:
|
|
7
|
+
*
|
|
8
|
+
* - `'fill'` (default) — replace it with `elementType.fill(element)`.
|
|
9
|
+
* - `'drop'` — remove it. Use this to repair stored data such as settings,
|
|
10
|
+
* where an element that no longer makes sense should disappear rather than
|
|
11
|
+
* turn into a default value unrelated to what was saved.
|
|
12
|
+
*
|
|
13
|
+
* Either way the elements that are kept go through `elementType.fill`, which
|
|
14
|
+
* returns a valid element as it is apart from excess record properties, and a
|
|
15
|
+
* non-array input becomes the default value. An element is judged as a whole
|
|
16
|
+
* by `elementType.is`: a nested array or record with one wrong part is
|
|
17
|
+
* dropped, not repaired.
|
|
18
|
+
*
|
|
19
|
+
* The option is a `fill` mode only. `prune` takes a value that is already of
|
|
20
|
+
* the type, so it never meets an invalid element, and `is` / `validate` are
|
|
21
|
+
* unaffected.
|
|
22
|
+
*/
|
|
2
23
|
export declare const array: <A>(elementType: Type<A>, options?: Partial<Readonly<{
|
|
3
24
|
typeName: string;
|
|
4
25
|
defaultValue: readonly A[];
|
|
26
|
+
onInvalidElement: 'fill' | 'drop';
|
|
5
27
|
}>>) => Type<readonly A[]>;
|
|
6
28
|
//# sourceMappingURL=array.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.mts","sourceRoot":"","sources":["../../src/array/array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,eAAO,MAAM,KAAK,GAAI,CAAC,eACR,IAAI,CAAC,CAAC,CAAC,YACV,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"array.d.mts","sourceRoot":"","sources":["../../src/array/array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,eACR,IAAI,CAAC,CAAC,CAAC,YACV,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC,CAAC,CACH,KACA,IAAI,CAAC,SAAS,CAAC,EAAE,CAyDnB,CAAC"}
|
package/dist/array/array.mjs
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
import { Arr, memoizeFunction, Result } from 'ts-data-forge';
|
|
2
2
|
import { createAssertFn, createCastFn, createIsFn, createPrimitiveValidationError, prependIndexToValidationErrors, } from '../utils/index.mjs';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
3
24
|
export const array = (elementType, options) => {
|
|
4
25
|
const typeName = options?.typeName ?? `${elementType.typeName}[]`;
|
|
5
26
|
const getDefaultValue = memoizeFunction(() => options?.defaultValue ?? []);
|
|
@@ -28,7 +49,11 @@ export const array = (elementType, options) => {
|
|
|
28
49
|
|
|
29
50
|
Result.ok(a);
|
|
30
51
|
};
|
|
31
|
-
const fill = (a) => !Arr.isArray(a)
|
|
52
|
+
const fill = (a) => !Arr.isArray(a)
|
|
53
|
+
? getDefaultValue()
|
|
54
|
+
: options?.onInvalidElement === 'drop'
|
|
55
|
+
? a.filter((e) => elementType.is(e)).map((e) => elementType.fill(e))
|
|
56
|
+
: a.map((e) => elementType.fill(e));
|
|
32
57
|
const prune = (a) => a.map((e) => elementType.prune(e));
|
|
33
58
|
return {
|
|
34
59
|
typeName,
|
package/dist/array/array.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.mjs","sourceRoot":"","sources":["../../src/array/array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,8BAA8B,EAC9B,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,WAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"array.mjs","sourceRoot":"","sources":["../../src/array/array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,8BAA8B,EAC9B,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,WAAoB,EACpB,OAMC,EACmB,EAAE;IAGtB,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,GAAG,WAAW,CAAC,QAAQ,IAAI,CAAC;IAElE,MAAM,eAAe,GAAG,eAAe,CAAC,GAAM,EAAE,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;IAE9E,MAAM,QAAQ,GAAwB,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB,8BAA8B,CAAC;oBAC7B,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,OAAO;oBACrB,QAAQ;oBACR,OAAO,EAAE,SAAS;iBACnB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/D,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAErC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,KAAK,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YACpB,CAAC,CAAC,oDAAoD;gBACpD,4DAA4D;gBAC5D,MAAM,CAAC,EAAE,CAAC,CAAM,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAoB,CAAC,CAAC,EAAE,EAAE,CAClC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,eAAe,EAAE;QACnB,CAAC,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM;YACpC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,CAAC,CAAI,EAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,OAAO;QACL,QAAQ;QACR,IAAI,YAAY;YACd,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;QACxB,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;QAClC,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounded-length-array.d.mts","sourceRoot":"","sources":["../../src/array/bounded-length-array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,SAAS,eAAe,EAC3B,GAAG,SAAS,eAAe,EAC3B,CAAC,EAED,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAC/C,CAAC,CACH,GACA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bounded-length-array.d.mts","sourceRoot":"","sources":["../../src/array/bounded-length-array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,SAAS,eAAe,EAC3B,GAAG,SAAS,eAAe,EAC3B,CAAC,EAED,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAC/C,CAAC,CACH,GACA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAQzC,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,eAAe,EAAE,CAAC,EAC/D,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACtC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAKhC,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,eAAe,EAAE,CAAC,EAC/D,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACtC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAIhC,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,CACH,GACA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounded-length-array.mjs","sourceRoot":"","sources":["../../src/array/bounded-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQvE,OAAO,EACL,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"bounded-length-array.mjs","sourceRoot":"","sources":["../../src/array/bounded-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQvE,OAAO,EACL,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA4E/D,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,GAAW,EACX,WAAoB,EACpB,OAKC;IAID,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ;QACjB,sBAAsB,GAAG,KAAK,GAAG,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC;IAEhE,MAAM,eAAe,GAAG,eAAe,CACrC,GAAM,EAAE,CACN,OAAO,EAAE,YAAY;QACrB,yEAAyE;QACzE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CACtD,CAAC;IAEF,MAAM,QAAQ,GAAwB,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB,8BAA8B,CAAC;oBAC7B,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,OAAO;oBACrB,QAAQ;oBACR,OAAO,EAAE,SAAS;iBACnB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB;oBACE,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,QAAQ;oBACtB,QAAQ;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,oBAAoB;wBAC1B,SAAS,EAAE,GAAG;wBACd,SAAS,EAAE,GAAG;wBACd,YAAY,EAAE,CAAC,CAAC,MAAM;qBACvB;iBACwB;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,IAAI,GAAoB,CAAC,CAAC,EAAE,EAAE;QAClC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;QAED,6DAA6D;QAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC,MAAM,IAAI,GAAG;YACzB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAa,CAAC;YAC3D,CAAC,CAAC,GAAG,CAAC,GAAG,CACL,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACtB,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAa,CAC/C,CAAC;IACR,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounded-length-tuple.d.mts","sourceRoot":"","sources":["../../src/array/bounded-length-tuple.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,wBAAgB,kBAAkB,CAChC,GAAG,SAAS,sBAAsB,EAClC,GAAG,SAAS,sBAAsB,EAClC,CAAC,EAED,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAC/C,CAAC,CACH,GACA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bounded-length-tuple.d.mts","sourceRoot":"","sources":["../../src/array/bounded-length-tuple.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,wBAAgB,kBAAkB,CAChC,GAAG,SAAS,sBAAsB,EAClC,GAAG,SAAS,sBAAsB,EAClC,CAAC,EAED,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAC/C,CAAC,CACH,GACA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAQzC,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,sBAAsB,EAAE,CAAC,EACtE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACtC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAKhC,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,sBAAsB,EAAE,CAAC,EACtE,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACtC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAIhC,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,CACH,GACA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounded-length-tuple.mjs","sourceRoot":"","sources":["../../src/array/bounded-length-tuple.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQvE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,8BAA8B,EAC9B,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"bounded-length-tuple.mjs","sourceRoot":"","sources":["../../src/array/bounded-length-tuple.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-length-array.d.mts","sourceRoot":"","sources":["../../src/array/fixed-length-array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EAC3D,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACtC,CAAC,CACH,GACA,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"fixed-length-array.d.mts","sourceRoot":"","sources":["../../src/array/fixed-length-array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EAC3D,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACtC,CAAC,CACH,GACA,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAQhC,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,CACH,GACA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-length-array.mjs","sourceRoot":"","sources":["../../src/array/fixed-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"fixed-length-array.mjs","sourceRoot":"","sources":["../../src/array/fixed-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA2C/D,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,WAAoB,EACpB,OAKC;IAID,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,oBAAoB,IAAI,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC;IAE5E,MAAM,eAAe,GAAG,eAAe,CACrC,GAAM,EAAE,CACN,OAAO,EAAE,YAAY;QACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CACvD,CAAC;IAEF,MAAM,QAAQ,GAAwB,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB,8BAA8B,CAAC;oBAC7B,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,OAAO;oBACrB,QAAQ;oBACR,OAAO,EAAE,SAAS;iBACnB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB;oBACE,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,QAAQ;oBACtB,QAAQ;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,cAAc;wBACpB,cAAc,EAAE,IAAI;wBACpB,YAAY,EAAE,CAAC,CAAC,MAAM;qBACvB;iBACwB;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,IAAI,GAAoB,CAAC,CAAC,EAAE,EAAE,CAClC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,GAAG,CAAC,GAAG,CACL,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EACvB,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa,CAC1C;QACH,CAAC,CAAC,eAAe,EAAE,CAAC;IAExB,OAAO,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-length-array.d.mts","sourceRoot":"","sources":["../../src/array/max-length-array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EACzD,SAAS,EAAE,CAAC,EACZ,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"max-length-array.d.mts","sourceRoot":"","sources":["../../src/array/max-length-array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EACzD,SAAS,EAAE,CAAC,EACZ,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAQ9B,wBAAgB,cAAc,CAAC,CAAC,EAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,CACH,GACA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-length-array.mjs","sourceRoot":"","sources":["../../src/array/max-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"max-length-array.mjs","sourceRoot":"","sources":["../../src/array/max-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAyC/D,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,WAAoB,EACpB,OAKC;IAID,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ;QACjB,kBAAkB,SAAS,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC;IAE1D,MAAM,eAAe,GAAG,eAAe,CACrC,GAAM,EAAE,CACN,OAAO,EAAE,YAAY;QACrB,0EAA0E;QAC1E,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAC1C,CAAC;IAEF,MAAM,QAAQ,GAAwB,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB,8BAA8B,CAAC;oBAC7B,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,OAAO;oBACrB,QAAQ;oBACR,OAAO,EAAE,SAAS;iBACnB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB;oBACE,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,QAAQ;oBACtB,QAAQ;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,kBAAkB;wBACxB,SAAS;wBACT,YAAY,EAAE,CAAC,CAAC,MAAM;qBACvB;iBACwB;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,IAAI,GAAoB,CAAC,CAAC,EAAE,EAAE,CAClC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,gEAAgE;YAChE,GAAG,CAAC,GAAG,CACL,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAChC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAa,CACzC;QACH,CAAC,CAAC,eAAe,EAAE,CAAC;IAExB,OAAO,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-length-tuple.d.mts","sourceRoot":"","sources":["../../src/array/max-length-tuple.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,wBAAgB,cAAc,CAAC,CAAC,SAAS,sBAAsB,EAAE,CAAC,EAChE,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"max-length-tuple.d.mts","sourceRoot":"","sources":["../../src/array/max-length-tuple.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,wBAAgB,cAAc,CAAC,CAAC,SAAS,sBAAsB,EAAE,CAAC,EAChE,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAQ9B,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,CACH,GACA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-length-tuple.mjs","sourceRoot":"","sources":["../../src/array/max-length-tuple.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,8BAA8B,EAC9B,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"max-length-tuple.mjs","sourceRoot":"","sources":["../../src/array/max-length-tuple.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min-length-array.d.mts","sourceRoot":"","sources":["../../src/array/min-length-array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EACzD,SAAS,EAAE,CAAC,EACZ,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"min-length-array.d.mts","sourceRoot":"","sources":["../../src/array/min-length-array.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EACzD,SAAS,EAAE,CAAC,EACZ,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAQ9B,wBAAgB,cAAc,CAAC,CAAC,EAC9B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,CACH,GACA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min-length-array.mjs","sourceRoot":"","sources":["../../src/array/min-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"min-length-array.mjs","sourceRoot":"","sources":["../../src/array/min-length-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAyC/D,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,WAAoB,EACpB,OAKC;IAID,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ;QACjB,kBAAkB,SAAS,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC;IAE1D,MAAM,eAAe,GAAG,eAAe,CACrC,GAAM,EAAE,CACN,OAAO,EAAE,YAAY;QACrB,+EAA+E;QAC/E,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAC5D,CAAC;IAEF,MAAM,QAAQ,GAAwB,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB,8BAA8B,CAAC;oBAC7B,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,OAAO;oBACrB,QAAQ;oBACR,OAAO,EAAE,SAAS;iBACnB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB;oBACE,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,QAAQ;oBACtB,QAAQ;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,kBAAkB;wBACxB,SAAS;wBACT,YAAY,EAAE,CAAC,CAAC,MAAM;qBACvB;iBACwB;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,IAAI,GAAoB,CAAC,CAAC,EAAE,EAAE;QAClC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;QAED,wEAAwE;QACxE,OAAO,CAAC,CAAC,MAAM,IAAI,SAAS;YAC1B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAa,CAAC;YACtD,CAAC,CAAC,GAAG,CAAC,GAAG,CACL,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa,CAC1C,CAAC;IACR,CAAC,CAAC;IAEF,OAAO,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min-length-tuple.d.mts","sourceRoot":"","sources":["../../src/array/min-length-tuple.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,wBAAgB,cAAc,CAAC,CAAC,SAAS,sBAAsB,EAAE,CAAC,EAChE,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"min-length-tuple.d.mts","sourceRoot":"","sources":["../../src/array/min-length-tuple.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAUxC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,wBAAgB,cAAc,CAAC,CAAC,SAAS,sBAAsB,EAAE,CAAC,EAChE,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACpC,CAAC,CACH,GACA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAQ9B,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;CAC5B,CAAC,CACH,GACA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min-length-tuple.mjs","sourceRoot":"","sources":["../../src/array/min-length-tuple.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,8BAA8B,EAC9B,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"min-length-tuple.mjs","sourceRoot":"","sources":["../../src/array/min-length-tuple.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,8BAA8B,EAC9B,8BAA8B,GAE/B,MAAM,oBAAoB,CAAC;AAgC5B,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,WAAoB,EACpB,OAKC;IAID,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,kBAAkB,IAAI,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC;IAE1E,MAAM,eAAe,GAAG,eAAe,CACrC,GAAM,EAAE,CACN,OAAO,EAAE,YAAY;QACrB,0EAA0E;QAC1E,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CACvD,CAAC;IAEF,MAAM,QAAQ,GAAwB,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB,8BAA8B,CAAC;oBAC7B,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,OAAO;oBACrB,QAAQ;oBACR,OAAO,EAAE,SAAS;iBACnB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB;oBACE,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,QAAQ;oBACtB,QAAQ;oBACR,OAAO,EAAE;wBACP,IAAI,EAAE,kBAAkB;wBACxB,SAAS,EAAE,IAAI;wBACf,YAAY,EAAE,CAAC,CAAC,MAAM;qBACvB;iBACwB;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAA+B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/D,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAErC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,KAAK,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YACpB,CAAC,CAAC,oDAAoD;gBACpD,4DAA4D;gBAC5D,MAAM,CAAC,EAAE,CAAC,CAAiB,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,IAAI,GAAoB,CAAC,CAAC,EAAE,EAAE,CAClC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,GAAG,CAAC,GAAG,CACL,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EACvB,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa,CAC1C;QACH,CAAC,CAAC,eAAe,EAAE,CAAC;IAExB,MAAM,KAAK,GAAG,CAAC,CAAI,EAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,OAAO;QACL,QAAQ;QACR,IAAI,YAAY;YACd,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;QACxB,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC5B,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
package/dist/compose/union.d.mts
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
import type { ArrayElement, NonEmptyTuple } from 'ts-type-forge';
|
|
2
2
|
import { type Type, type TypeOf, type UnknownType } from '../type.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a `Type` for a value that is of at least one of `types`.
|
|
5
|
+
*
|
|
6
|
+
* How each operation picks a member:
|
|
7
|
+
*
|
|
8
|
+
* - `is` / `validate` accept a value that any member accepts.
|
|
9
|
+
* - `prune` prunes with the first member, in declaration order (a directly
|
|
10
|
+
* nested union contributing its members in place), whose `is` accepts the
|
|
11
|
+
* value. When members overlap — one accepts every value of another, such as
|
|
12
|
+
* a record without `excessProperty: 'reject'` and the same record with an
|
|
13
|
+
* extra key — the result therefore depends on the order: `union([point2d,
|
|
14
|
+
* point3d]).prune({ x, y, z })` drops `z`, and `union([point3d, point2d])`
|
|
15
|
+
* keeps it. Put the more specific member first.
|
|
16
|
+
* - `fill` returns a value that is already a member as it is, and otherwise
|
|
17
|
+
* repairs it with `defaultType`, or the first member when none is given. A
|
|
18
|
+
* member's own repair rules, such as `array`'s `onInvalidElement: 'drop'`,
|
|
19
|
+
* therefore apply to a non-member value only through that default source,
|
|
20
|
+
* and inside an element type they apply as usual.
|
|
21
|
+
*/
|
|
3
22
|
export declare const union: <const Types extends NonEmptyTuple<UnknownType>>(types: Types, options?: Partial<Readonly<{
|
|
4
23
|
typeName: string;
|
|
5
24
|
defaultType: UnionType<Types>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.d.mts","sourceRoot":"","sources":["../../src/compose/union.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAc,MAAM,eAAe,CAAC;AAC7E,OAAO,EAML,KAAK,IAAI,EACT,KAAK,MAAM,EAEX,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,WAAW,CAAC,SAC3D,KAAK,YACF,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;CAC/B,CAAC,CACH,KACA,SAAS,CAAC,KAAK,CAuMjB,CAAC;AAyEF,KAAK,SAAS,CAAC,KAAK,SAAS,aAAa,CAAC,WAAW,CAAC,IAAI,IAAI,CAC7D,cAAc,CAAC,KAAK,CAAC,CACtB,CAAC;AAEF,KAAK,cAAc,CAAC,KAAK,SAAS,aAAa,CAAC,WAAW,CAAC,IAC1D,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAE/C,kBAAU,kBAAkB,CAAC;IAC3B,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,aAAa,CAAC,WAAW,CAAC,IACrE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnC,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;;CAC3E"}
|
|
1
|
+
{"version":3,"file":"union.d.mts","sourceRoot":"","sources":["../../src/compose/union.mts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAc,MAAM,eAAe,CAAC;AAC7E,OAAO,EAML,KAAK,IAAI,EACT,KAAK,MAAM,EAEX,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAWrB;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,WAAW,CAAC,SAC3D,KAAK,YACF,OAAO,CACf,QAAQ,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;CAC/B,CAAC,CACH,KACA,SAAS,CAAC,KAAK,CAuMjB,CAAC;AAyEF,KAAK,SAAS,CAAC,KAAK,SAAS,aAAa,CAAC,WAAW,CAAC,IAAI,IAAI,CAC7D,cAAc,CAAC,KAAK,CAAC,CACtB,CAAC;AAEF,KAAK,cAAc,CAAC,KAAK,SAAS,aAAa,CAAC,WAAW,CAAC,IAC1D,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAE/C,kBAAU,kBAAkB,CAAC;IAC3B,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,aAAa,CAAC,WAAW,CAAC,IACrE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnC,KAAK,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;;CAC3E"}
|
package/dist/compose/union.mjs
CHANGED
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import { Arr, memoizeFunction, Result } from 'ts-data-forge';
|
|
2
2
|
import { flattenShapeStructure, hasRecordInternals, hasTupleInternals, hasUnionInternals, } from '../type.mjs';
|
|
3
3
|
import { createAssertFn, createCastFn, createIsFn, runtimeTypeNameOf, toUnionString, UNION_MEMBER_LISTING_MAX_LENGTH, } from '../utils/index.mjs';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
4
23
|
export const union = (types, options) => {
|
|
5
24
|
const getDefaultSource = memoizeFunction(() => options?.defaultType ??
|
|
6
25
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.mjs","sourceRoot":"","sources":["../../src/compose/union.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"union.mjs","sourceRoot":"","sources":["../../src/compose/union.mts"],"names":[],"mappings":"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"}
|
|
@@ -91,7 +91,7 @@ import { type Type } from '../type.mjs';
|
|
|
91
91
|
* const OddNumber: t.Type<OddNumber> = t.recursion('OddNumber', () =>
|
|
92
92
|
* t.record({
|
|
93
93
|
* type: t.literal('odd'),
|
|
94
|
-
* next: t.union([t.nullType,
|
|
94
|
+
* next: t.union([t.nullType, EvenNumber]),
|
|
95
95
|
* }),
|
|
96
96
|
* );
|
|
97
97
|
*
|
package/dist/record/at.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"at.d.mts","sourceRoot":"","sources":["../../src/record/at.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAIL,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,EAAE,CAChB,KAAK,CAAC,CAAC,SAAS,YAAY,EAC5B,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAEhC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAC9C,GAAG,EAAE,CAAC,GACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"at.d.mts","sourceRoot":"","sources":["../../src/record/at.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAIL,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,EAAE,CAChB,KAAK,CAAC,CAAC,SAAS,YAAY,EAC5B,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAEhC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAC9C,GAAG,EAAE,CAAC,GACL,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,wBAAgB,EAAE,CAChB,KAAK,CAAC,CAAC,SAAS,aAAa,EAC7B,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAChC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,EAAE,CAChB,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAClC,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAC/B,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AA0E5C;;;;GAIG;AACH,KAAK,eAAe,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,MAAM,CAAC,IAC5D,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC,GACrC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3D,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/record/at.mjs
CHANGED
|
@@ -22,9 +22,13 @@ export function at(type, keyOrIndex) {
|
|
|
22
22
|
panic(`Expected a record type but received: ${type.typeName}`);
|
|
23
23
|
}
|
|
24
24
|
const shapes = expandShapeStructure(type.shapeStructure);
|
|
25
|
-
const memberTypes =
|
|
26
|
-
const
|
|
27
|
-
|
|
25
|
+
const memberTypes = Arr.generate(function* () {
|
|
26
|
+
for (const shape of shapes) {
|
|
27
|
+
const memberType = shape[keyOrIndex];
|
|
28
|
+
if (memberType !== undefined) {
|
|
29
|
+
yield memberType;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
28
32
|
});
|
|
29
33
|
|
|
30
34
|
|
package/dist/record/at.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"at.mjs","sourceRoot":"","sources":["../../src/record/at.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EACL,iBAAiB,EAEjB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAKlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"at.mjs","sourceRoot":"","sources":["../../src/record/at.mts"],"names":[],"mappings":"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"}
|
package/dist/type.d.mts
CHANGED
|
@@ -6,7 +6,9 @@ import type { ValidationError } from './utils/index.mjs';
|
|
|
6
6
|
* - `is` : Type guard function
|
|
7
7
|
* - `assertIs` : Type assertion function
|
|
8
8
|
* - `cast` : Cast function (returns the original value, no transformation)
|
|
9
|
-
* - `fill` : Default value filling function
|
|
9
|
+
* - `fill` : Default value filling function (turns any input into a value of
|
|
10
|
+
* type `A`, keeping the valid parts and replacing the rest with defaults;
|
|
11
|
+
* `array` can drop invalid elements instead, see its `onInvalidElement`)
|
|
10
12
|
* - `prune` : Excess property pruning function (recursively removes value
|
|
11
13
|
* paths that are not represented by the type; unlike `fill`, it never fills
|
|
12
14
|
* in default values)
|
package/dist/type.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.mts","sourceRoot":"","sources":["../src/type.mts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"type.d.mts","sourceRoot":"","sources":["../src/type.mts"],"names":[],"mappings":"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"}
|
package/dist/type.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.mjs","sourceRoot":"","sources":["../src/type.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAe,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"type.mjs","sourceRoot":"","sources":["../src/type.mts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-fortress",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.3.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript"
|
|
@@ -36,27 +36,27 @@
|
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@sindresorhus/is": "8.1.0",
|
|
39
|
-
"ts-data-forge": "~14.
|
|
40
|
-
"ts-std-forge": "~0.5.
|
|
39
|
+
"ts-data-forge": "~14.9.0",
|
|
40
|
+
"ts-std-forge": "~0.5.2",
|
|
41
41
|
"ts-type-forge": "~9.2.2"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@sumi-lang/cli": "0.0.
|
|
45
|
-
"@vitest/browser-playwright": "5.0.
|
|
46
|
-
"@vitest/ui": "5.0.
|
|
47
|
-
"eslint-config-typed": "5.
|
|
48
|
-
"eslint-plugin-ts-data-forge": "0.
|
|
49
|
-
"eslint-plugin-ts-type-forge": "0.8.
|
|
44
|
+
"@sumi-lang/cli": "0.0.7",
|
|
45
|
+
"@vitest/browser-playwright": "5.0.3",
|
|
46
|
+
"@vitest/ui": "5.0.3",
|
|
47
|
+
"eslint-config-typed": "5.19.0",
|
|
48
|
+
"eslint-plugin-ts-data-forge": "0.10.0",
|
|
49
|
+
"eslint-plugin-ts-type-forge": "0.8.10",
|
|
50
50
|
"fp-ts": "2.16.11",
|
|
51
51
|
"io-ts": "2.2.22",
|
|
52
|
-
"playwright": "1.
|
|
52
|
+
"playwright": "1.64.0",
|
|
53
53
|
"prettier": "3.9.9",
|
|
54
54
|
"prettier-plugin-organize-imports": "4.3.0",
|
|
55
55
|
"prettier-plugin-packagejson": "3.0.2",
|
|
56
56
|
"ts-repo-utils": "10.7.1",
|
|
57
57
|
"typedoc": "0.28.20",
|
|
58
58
|
"typedoc-github-theme": "0.4.0",
|
|
59
|
-
"vite": "8.3.
|
|
59
|
+
"vite": "8.3.3",
|
|
60
60
|
"zod": "4.6.5"
|
|
61
61
|
},
|
|
62
62
|
"engines": {
|
|
@@ -71,18 +71,18 @@
|
|
|
71
71
|
"build": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/build.mts",
|
|
72
72
|
"check:dist": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/check-dist.mts",
|
|
73
73
|
"check:ext": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/check-ext.mts",
|
|
74
|
-
"check:lint": "eslint .",
|
|
74
|
+
"check:lint": "node ../../tools/scripts/cmd/assert-deps-built.mts && oxlint . && eslint .",
|
|
75
75
|
"check:sumi": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../languages/sumi/cli/src/cmd/sumi.mts check ./tsconfig.sumi.json",
|
|
76
|
-
"check:test": "pnpm run z:vitest:node run",
|
|
77
|
-
"check:test:browser": "pnpm run z:vitest --project='Browser' run",
|
|
78
|
-
"check:test:cov": "pnpm run z:vitest:node run --coverage",
|
|
79
|
-
"check:types": "node ../../node_modules/typescript-native/bin/tsc --noEmit",
|
|
76
|
+
"check:test": "node ../../tools/scripts/cmd/assert-deps-built.mts && pnpm run z:vitest:node run",
|
|
77
|
+
"check:test:browser": "node ../../tools/scripts/cmd/assert-deps-built.mts && pnpm run z:vitest --project='Browser' run",
|
|
78
|
+
"check:test:cov": "node ../../tools/scripts/cmd/assert-deps-built.mts && pnpm run z:vitest:node run --coverage",
|
|
79
|
+
"check:types": "node ../../tools/scripts/cmd/assert-deps-built.mts && node ../../node_modules/typescript-native/bin/tsc --noEmit",
|
|
80
80
|
"doc": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/gen-docs.mts",
|
|
81
81
|
"doc:preview": "vite preview --config ./configs/vite.doc.config.mts",
|
|
82
82
|
"fix:fmt": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-uncommitted.mts --cwd .",
|
|
83
83
|
"fix:fmt:diff": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-diff-from.mts origin/main --cwd .",
|
|
84
84
|
"fix:fmt:full": "pnpm run z:prettier .",
|
|
85
|
-
"fix:lint": "eslint . --fix",
|
|
85
|
+
"fix:lint": "node ../../tools/scripts/cmd/assert-deps-built.mts && oxlint . --fix && eslint . --fix",
|
|
86
86
|
"fmt": "pnpm run fix:fmt",
|
|
87
87
|
"gen": "run-s gen:index gen:readme gen:jsdoc",
|
|
88
88
|
"gen:index": "run-s gen:index:src fix:fmt",
|
package/src/array/array.mts
CHANGED
|
@@ -9,12 +9,34 @@ import {
|
|
|
9
9
|
type ValidationError,
|
|
10
10
|
} from '../utils/index.mjs';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Creates a `Type` for a readonly array whose elements are of `elementType`.
|
|
14
|
+
*
|
|
15
|
+
* `onInvalidElement` decides what `fill` does with an element that is not of
|
|
16
|
+
* `elementType`:
|
|
17
|
+
*
|
|
18
|
+
* - `'fill'` (default) — replace it with `elementType.fill(element)`.
|
|
19
|
+
* - `'drop'` — remove it. Use this to repair stored data such as settings,
|
|
20
|
+
* where an element that no longer makes sense should disappear rather than
|
|
21
|
+
* turn into a default value unrelated to what was saved.
|
|
22
|
+
*
|
|
23
|
+
* Either way the elements that are kept go through `elementType.fill`, which
|
|
24
|
+
* returns a valid element as it is apart from excess record properties, and a
|
|
25
|
+
* non-array input becomes the default value. An element is judged as a whole
|
|
26
|
+
* by `elementType.is`: a nested array or record with one wrong part is
|
|
27
|
+
* dropped, not repaired.
|
|
28
|
+
*
|
|
29
|
+
* The option is a `fill` mode only. `prune` takes a value that is already of
|
|
30
|
+
* the type, so it never meets an invalid element, and `is` / `validate` are
|
|
31
|
+
* unaffected.
|
|
32
|
+
*/
|
|
12
33
|
export const array = <A,>(
|
|
13
34
|
elementType: Type<A>,
|
|
14
35
|
options?: Partial<
|
|
15
36
|
Readonly<{
|
|
16
37
|
typeName: string;
|
|
17
38
|
defaultValue: readonly A[];
|
|
39
|
+
onInvalidElement: 'fill' | 'drop';
|
|
18
40
|
}>
|
|
19
41
|
>,
|
|
20
42
|
): Type<readonly A[]> => {
|
|
@@ -54,7 +76,11 @@ export const array = <A,>(
|
|
|
54
76
|
};
|
|
55
77
|
|
|
56
78
|
const fill: Type<T>['fill'] = (a) =>
|
|
57
|
-
!Arr.isArray(a)
|
|
79
|
+
!Arr.isArray(a)
|
|
80
|
+
? getDefaultValue()
|
|
81
|
+
: options?.onInvalidElement === 'drop'
|
|
82
|
+
? a.filter((e) => elementType.is(e)).map((e) => elementType.fill(e))
|
|
83
|
+
: a.map((e) => elementType.fill(e));
|
|
58
84
|
|
|
59
85
|
const prune = (a: T): T => a.map((e) => elementType.prune(e));
|
|
60
86
|
|
package/src/array/array.test.mts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { expectType, Result } from 'ts-data-forge';
|
|
2
|
-
import {
|
|
2
|
+
import { union } from '../compose/index.mjs';
|
|
3
|
+
import { enumType } from '../enum/index.mjs';
|
|
4
|
+
import { literal } from '../other-types/index.mjs';
|
|
5
|
+
import { number, string } from '../primitives/index.mjs';
|
|
3
6
|
import { record } from '../record/index.mjs';
|
|
4
7
|
import type { TypeOf } from '../type.mjs';
|
|
5
8
|
import {
|
|
@@ -140,6 +143,113 @@ describe(array, () => {
|
|
|
140
143
|
|
|
141
144
|
assert.deepStrictEqual(xs.fill(ys), [0, 0, 3]);
|
|
142
145
|
});
|
|
146
|
+
|
|
147
|
+
test("onInvalidElement: 'fill' is the default", () => {
|
|
148
|
+
const filling = array(number(), { onInvalidElement: 'fill' });
|
|
149
|
+
|
|
150
|
+
assert.deepStrictEqual(filling.fill(['1', '', 3]), [0, 0, 3]);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
describe("fill with onInvalidElement: 'drop'", () => {
|
|
155
|
+
const SortSpecs = array(
|
|
156
|
+
record({
|
|
157
|
+
key: enumType(['title', 'priority']),
|
|
158
|
+
order: enumType(['asc', 'desc']),
|
|
159
|
+
}),
|
|
160
|
+
{ onInvalidElement: 'drop' },
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
test('removes the elements that are not of the element type', () => {
|
|
164
|
+
assert.deepStrictEqual(
|
|
165
|
+
SortSpecs.fill([
|
|
166
|
+
{ key: 'colour', order: 'desc' },
|
|
167
|
+
{ key: 'priority', order: 'asc' },
|
|
168
|
+
]),
|
|
169
|
+
[{ key: 'priority', order: 'asc' }],
|
|
170
|
+
);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
test('keeps a valid array as it is', () => {
|
|
174
|
+
const ys: unknown = [1, 2, 3] as const;
|
|
175
|
+
|
|
176
|
+
assert.deepStrictEqual(
|
|
177
|
+
array(number(), { onInvalidElement: 'drop' }).fill(ys),
|
|
178
|
+
[1, 2, 3],
|
|
179
|
+
);
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
test('can drop every element', () => {
|
|
183
|
+
assert.deepStrictEqual(
|
|
184
|
+
array(number(), { onInvalidElement: 'drop' }).fill(['1', undefined]),
|
|
185
|
+
[],
|
|
186
|
+
);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
test('returns the default value for a non-array', () => {
|
|
190
|
+
const withDefault = array(number(), {
|
|
191
|
+
onInvalidElement: 'drop',
|
|
192
|
+
defaultValue: [7],
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
assert.deepStrictEqual(withDefault.fill('not an array'), [7]);
|
|
196
|
+
|
|
197
|
+
assert.deepStrictEqual(withDefault.fill(undefined), [7]);
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
test('still fills the kept elements, which strips excess properties', () => {
|
|
201
|
+
assert.deepStrictEqual(
|
|
202
|
+
SortSpecs.fill([
|
|
203
|
+
{ key: 'title', order: 'asc', extra: 1 },
|
|
204
|
+
{ key: 'title' },
|
|
205
|
+
]),
|
|
206
|
+
[{ key: 'title', order: 'asc' }],
|
|
207
|
+
);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
test('drops a nested array element as a whole rather than repairing it', () => {
|
|
211
|
+
const matrix = array(array(number(), { onInvalidElement: 'drop' }), {
|
|
212
|
+
onInvalidElement: 'drop',
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
assert.deepStrictEqual(matrix.fill([[1, 2], [3, 'x'], 'y']), [[1, 2]]);
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
test('an element of a union type is kept when any member accepts it', () => {
|
|
219
|
+
const ids = array(union([string(), number()]), {
|
|
220
|
+
onInvalidElement: 'drop',
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
assert.deepStrictEqual(ids.fill(['a', 1, undefined, true, 'b']), [
|
|
224
|
+
'a',
|
|
225
|
+
1,
|
|
226
|
+
'b',
|
|
227
|
+
]);
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
test('applies inside a union whose default source is the array', () => {
|
|
231
|
+
const listOrNone = union([
|
|
232
|
+
array(number(), { onInvalidElement: 'drop' }),
|
|
233
|
+
literal('none'),
|
|
234
|
+
]);
|
|
235
|
+
|
|
236
|
+
assert.deepStrictEqual(listOrNone.fill([1, 'x', 2]), [1, 2]);
|
|
237
|
+
|
|
238
|
+
assert.deepStrictEqual(listOrNone.fill('none'), 'none');
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
test('does not change is, validate or prune', () => {
|
|
242
|
+
const numbers = array(number(), { onInvalidElement: 'drop' });
|
|
243
|
+
|
|
244
|
+
assert.isFalse(numbers.is([1, 'x']));
|
|
245
|
+
|
|
246
|
+
assert.isTrue(Result.isErr(numbers.validate([1, 'x'])));
|
|
247
|
+
|
|
248
|
+
assert.deepStrictEqual(
|
|
249
|
+
SortSpecs.prune([{ key: 'title', order: 'asc' }]),
|
|
250
|
+
[{ key: 'title', order: 'asc' }],
|
|
251
|
+
);
|
|
252
|
+
});
|
|
143
253
|
});
|
|
144
254
|
|
|
145
255
|
describe('prune', () => {
|
|
@@ -41,6 +41,10 @@ export function boundedLengthArray<
|
|
|
41
41
|
|
|
42
42
|
// Only the lower bound is in `SupportedLength`, so the upper bound is dropped from
|
|
43
43
|
// the result type and only the "at least `min`" guarantee is kept.
|
|
44
|
+
// A length inside the supported range is also a `number`: nothing at run
|
|
45
|
+
// time tells the clauses apart, so the set only refines the return type
|
|
46
|
+
// (#1952).
|
|
47
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
44
48
|
export function boundedLengthArray<Min extends SupportedLength, A>(
|
|
45
49
|
min: Min,
|
|
46
50
|
max: number,
|
|
@@ -55,6 +59,7 @@ export function boundedLengthArray<Min extends SupportedLength, A>(
|
|
|
55
59
|
|
|
56
60
|
// Only the upper bound is in `SupportedLength`, so the lower bound is dropped from
|
|
57
61
|
// the result type and only the "at most `max`" guarantee is kept.
|
|
62
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
58
63
|
export function boundedLengthArray<Max extends SupportedLength, A>(
|
|
59
64
|
min: number,
|
|
60
65
|
max: Max,
|
|
@@ -68,6 +73,7 @@ export function boundedLengthArray<Max extends SupportedLength, A>(
|
|
|
68
73
|
): Type<MaxLengthArray<Max, A>>;
|
|
69
74
|
|
|
70
75
|
// Neither bound is in `SupportedLength`, so the result length is left unconstrained.
|
|
76
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
71
77
|
export function boundedLengthArray<A>(
|
|
72
78
|
min: number,
|
|
73
79
|
max: number,
|
|
@@ -35,6 +35,10 @@ export function boundedLengthTuple<
|
|
|
35
35
|
|
|
36
36
|
// Only the lower bound is in `StructuralPrefixLength` (`0..10`), so the upper bound is dropped from the
|
|
37
37
|
// result type and only the "at least `min`" guarantee is kept.
|
|
38
|
+
// A length inside the supported range is also a `number`: nothing at run
|
|
39
|
+
// time tells the clauses apart, so the set only refines the return type
|
|
40
|
+
// (#1952).
|
|
41
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
38
42
|
export function boundedLengthTuple<Min extends StructuralPrefixLength, A>(
|
|
39
43
|
min: Min,
|
|
40
44
|
max: number,
|
|
@@ -49,6 +53,7 @@ export function boundedLengthTuple<Min extends StructuralPrefixLength, A>(
|
|
|
49
53
|
|
|
50
54
|
// Only the upper bound is in `StructuralPrefixLength` (`0..10`), so the lower bound is dropped from the
|
|
51
55
|
// result type and only the "at most `max`" guarantee is kept.
|
|
56
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
52
57
|
export function boundedLengthTuple<Max extends StructuralPrefixLength, A>(
|
|
53
58
|
min: number,
|
|
54
59
|
max: Max,
|
|
@@ -62,6 +67,7 @@ export function boundedLengthTuple<Max extends StructuralPrefixLength, A>(
|
|
|
62
67
|
): Type<MaxLengthTuple<Max, A>>;
|
|
63
68
|
|
|
64
69
|
// Neither bound is in `StructuralPrefixLength` (`0..10`), so the result length is left unconstrained.
|
|
70
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
65
71
|
export function boundedLengthTuple<A>(
|
|
66
72
|
min: number,
|
|
67
73
|
max: number,
|
|
@@ -33,6 +33,10 @@ export function fixedLengthArray<N extends SupportedLength, A>(
|
|
|
33
33
|
|
|
34
34
|
// For sizes outside `SupportedLength` (`0..2048`) the length cannot be encoded in the brand,
|
|
35
35
|
// so the result length is left unconstrained (`readonly A[]`).
|
|
36
|
+
// A length inside the supported range is also a `number`: nothing at run
|
|
37
|
+
// time tells the clauses apart, so the set only refines the return type
|
|
38
|
+
// (#1952).
|
|
39
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
36
40
|
export function fixedLengthArray<A>(
|
|
37
41
|
size: number,
|
|
38
42
|
elementType: Type<A>,
|
|
@@ -31,6 +31,10 @@ export function maxLengthArray<N extends SupportedLength, A>(
|
|
|
31
31
|
|
|
32
32
|
// For bounds outside `SupportedLength` (`0..2048`) the length cannot be encoded in the brand,
|
|
33
33
|
// so the result length is left unconstrained (`readonly A[]`).
|
|
34
|
+
// A length inside the supported range is also a `number`: nothing at run
|
|
35
|
+
// time tells the clauses apart, so the set only refines the return type
|
|
36
|
+
// (#1952).
|
|
37
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
34
38
|
export function maxLengthArray<A>(
|
|
35
39
|
maxLength: number,
|
|
36
40
|
elementType: Type<A>,
|
|
@@ -25,6 +25,10 @@ export function maxLengthTuple<N extends StructuralPrefixLength, A>(
|
|
|
25
25
|
|
|
26
26
|
// For sizes outside `StructuralPrefixLength` (`0..10`) the exact length cannot be encoded in the type,
|
|
27
27
|
// so the result length is left unconstrained (`readonly A[]`).
|
|
28
|
+
// A length inside the supported range is also a `number`: nothing at run
|
|
29
|
+
// time tells the clauses apart, so the set only refines the return type
|
|
30
|
+
// (#1952).
|
|
31
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
28
32
|
export function maxLengthTuple<A>(
|
|
29
33
|
size: number,
|
|
30
34
|
elementType: Type<A>,
|
|
@@ -31,6 +31,10 @@ export function minLengthArray<N extends SupportedLength, A>(
|
|
|
31
31
|
|
|
32
32
|
// For bounds outside `SupportedLength` (`0..2048`) the length cannot be encoded in the brand,
|
|
33
33
|
// so the result length is left unconstrained (`readonly A[]`).
|
|
34
|
+
// A length inside the supported range is also a `number`: nothing at run
|
|
35
|
+
// time tells the clauses apart, so the set only refines the return type
|
|
36
|
+
// (#1952).
|
|
37
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
34
38
|
export function minLengthArray<A>(
|
|
35
39
|
minLength: number,
|
|
36
40
|
elementType: Type<A>,
|
|
@@ -25,6 +25,10 @@ export function minLengthTuple<N extends StructuralPrefixLength, A>(
|
|
|
25
25
|
|
|
26
26
|
// For sizes outside `StructuralPrefixLength` (`0..10`) the exact length cannot be encoded in the type,
|
|
27
27
|
// so the result length is left unconstrained (`readonly A[]`).
|
|
28
|
+
// A length inside the supported range is also a `number`: nothing at run
|
|
29
|
+
// time tells the clauses apart, so the set only refines the return type
|
|
30
|
+
// (#1952).
|
|
31
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
28
32
|
export function minLengthTuple<A>(
|
|
29
33
|
size: number,
|
|
30
34
|
elementType: Type<A>,
|
|
@@ -102,7 +102,7 @@ describe('union - literals only', () => {
|
|
|
102
102
|
test('noop', () => {
|
|
103
103
|
const x: unknown = 'blue';
|
|
104
104
|
|
|
105
|
-
assert.
|
|
105
|
+
assert.strictEqual(targetType.fill(x), 'blue');
|
|
106
106
|
});
|
|
107
107
|
|
|
108
108
|
test('fill with the default value', () => {
|
|
@@ -145,13 +145,13 @@ describe('union - primitive and literal', () => {
|
|
|
145
145
|
test('noop - string', () => {
|
|
146
146
|
const x: unknown = 'world';
|
|
147
147
|
|
|
148
|
-
assert.
|
|
148
|
+
assert.strictEqual(targetType.fill(x), 'world');
|
|
149
149
|
});
|
|
150
150
|
|
|
151
151
|
test('noop - number', () => {
|
|
152
152
|
const x: unknown = 7;
|
|
153
153
|
|
|
154
|
-
assert.
|
|
154
|
+
assert.strictEqual(targetType.fill(x), 7);
|
|
155
155
|
});
|
|
156
156
|
|
|
157
157
|
test('fill with the default value', () => {
|
package/src/compose/union.mts
CHANGED
|
@@ -21,6 +21,25 @@ import {
|
|
|
21
21
|
type ValidationError,
|
|
22
22
|
} from '../utils/index.mjs';
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Creates a `Type` for a value that is of at least one of `types`.
|
|
26
|
+
*
|
|
27
|
+
* How each operation picks a member:
|
|
28
|
+
*
|
|
29
|
+
* - `is` / `validate` accept a value that any member accepts.
|
|
30
|
+
* - `prune` prunes with the first member, in declaration order (a directly
|
|
31
|
+
* nested union contributing its members in place), whose `is` accepts the
|
|
32
|
+
* value. When members overlap — one accepts every value of another, such as
|
|
33
|
+
* a record without `excessProperty: 'reject'` and the same record with an
|
|
34
|
+
* extra key — the result therefore depends on the order: `union([point2d,
|
|
35
|
+
* point3d]).prune({ x, y, z })` drops `z`, and `union([point3d, point2d])`
|
|
36
|
+
* keeps it. Put the more specific member first.
|
|
37
|
+
* - `fill` returns a value that is already a member as it is, and otherwise
|
|
38
|
+
* repairs it with `defaultType`, or the first member when none is given. A
|
|
39
|
+
* member's own repair rules, such as `array`'s `onInvalidElement: 'drop'`,
|
|
40
|
+
* therefore apply to a non-member value only through that default source,
|
|
41
|
+
* and inside an element type they apply as usual.
|
|
42
|
+
*/
|
|
24
43
|
export const union = <const Types extends NonEmptyTuple<UnknownType>>(
|
|
25
44
|
types: Types,
|
|
26
45
|
options?: Partial<
|
|
@@ -94,7 +94,7 @@ import { createAssertFn, createCastFn, createIsFn } from '../utils/index.mjs';
|
|
|
94
94
|
* const OddNumber: t.Type<OddNumber> = t.recursion('OddNumber', () =>
|
|
95
95
|
* t.record({
|
|
96
96
|
* type: t.literal('odd'),
|
|
97
|
-
* next: t.union([t.nullType,
|
|
97
|
+
* next: t.union([t.nullType, EvenNumber]),
|
|
98
98
|
* }),
|
|
99
99
|
* );
|
|
100
100
|
*
|
|
@@ -41,19 +41,19 @@ const invalidSamples = [
|
|
|
41
41
|
`${'a'.repeat(65)}@${'a'.repeat(250)}.com`,
|
|
42
42
|
`${'a'.repeat(64)}@${'a'.repeat(64)}.com`,
|
|
43
43
|
// `${'a'.repeat(64)}@${'a'.repeat(63)}.${'a'.repeat(63)}.${'a'.repeat(63)}.${'a'.repeat(58)}.com`,
|
|
44
|
-
'test1@invalid.co
|
|
45
|
-
'test2@invalid.co
|
|
46
|
-
'test3@invalid.co
|
|
47
|
-
'test4@invalid.co
|
|
48
|
-
'test5@invalid.co
|
|
49
|
-
'test6@invalid.co
|
|
50
|
-
'test7@invalid.co
|
|
51
|
-
'test8@invalid.co
|
|
52
|
-
'test9@invalid.co
|
|
53
|
-
'test10@invalid.co
|
|
54
|
-
'test11@invalid.co
|
|
55
|
-
'test12@invalid.co
|
|
56
|
-
'test13@invalid.co
|
|
44
|
+
'test1@invalid.co\u{2006}m',
|
|
45
|
+
'test2@invalid.co\u{2002}m',
|
|
46
|
+
'test3@invalid.co\u{2004}m',
|
|
47
|
+
'test4@invalid.co\u{2005}m',
|
|
48
|
+
'test5@invalid.co\u{2006}m',
|
|
49
|
+
'test6@invalid.co\u{2007}m',
|
|
50
|
+
'test7@invalid.co\u{2008}m',
|
|
51
|
+
'test8@invalid.co\u{2009}m',
|
|
52
|
+
'test9@invalid.co\u{200A}m',
|
|
53
|
+
'test10@invalid.co\u{202F}m',
|
|
54
|
+
'test11@invalid.co\u{205F}m',
|
|
55
|
+
'test12@invalid.co\u{3000}m',
|
|
56
|
+
'test13@invalid.co\u{3000}m',
|
|
57
57
|
// 'multiple..dots@stillinvalid.com',
|
|
58
58
|
'test123+invalid! sub_address@gmail.com',
|
|
59
59
|
// 'gmail...ignores...dots...@gmail.com',
|
|
@@ -63,9 +63,9 @@ const invalidSamples = [
|
|
|
63
63
|
'"wrong()[]",:;<>@@gmail.com',
|
|
64
64
|
'username@domain.com�',
|
|
65
65
|
'username@domain.com©',
|
|
66
|
-
'nbsp
|
|
67
|
-
'nbsp_test@te
|
|
68
|
-
'nbsp_test@test.co
|
|
66
|
+
'nbsp\u{A0}test@test.com',
|
|
67
|
+
'nbsp_test@te\u{A0}st.com',
|
|
68
|
+
'nbsp_test@test.co\u{A0}m',
|
|
69
69
|
'"foobar@gmail.com',
|
|
70
70
|
'"foo"bar@gmail.com',
|
|
71
71
|
'foo"bar"@gmail.com',
|
package/src/record/at.mts
CHANGED
|
@@ -83,6 +83,9 @@ export function at<
|
|
|
83
83
|
* assert.isTrue(year.is(2000));
|
|
84
84
|
* ```
|
|
85
85
|
*/
|
|
86
|
+
// A record type with a shape is also a record type: nothing at run time tells
|
|
87
|
+
// these two clauses apart, so they only refine the return type (#1952).
|
|
88
|
+
// @sumi-expect-error functions/no-refinement-overload
|
|
86
89
|
export function at<
|
|
87
90
|
const R extends UnknownRecord,
|
|
88
91
|
const K extends keyof R & string,
|
|
@@ -135,10 +138,14 @@ export function at(
|
|
|
135
138
|
|
|
136
139
|
const shapes = expandShapeStructure(type.shapeStructure);
|
|
137
140
|
|
|
138
|
-
const memberTypes: readonly Type<unknown>[] =
|
|
139
|
-
const
|
|
141
|
+
const memberTypes: readonly Type<unknown>[] = Arr.generate(function* () {
|
|
142
|
+
for (const shape of shapes) {
|
|
143
|
+
const memberType = shape[keyOrIndex];
|
|
140
144
|
|
|
141
|
-
|
|
145
|
+
if (memberType !== undefined) {
|
|
146
|
+
yield memberType;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
142
149
|
});
|
|
143
150
|
|
|
144
151
|
// If the key is optional in any member, the accessed value may be undefined,
|
package/src/type.mts
CHANGED
|
@@ -8,7 +8,9 @@ import type { ValidationError } from './utils/index.mjs';
|
|
|
8
8
|
* - `is` : Type guard function
|
|
9
9
|
* - `assertIs` : Type assertion function
|
|
10
10
|
* - `cast` : Cast function (returns the original value, no transformation)
|
|
11
|
-
* - `fill` : Default value filling function
|
|
11
|
+
* - `fill` : Default value filling function (turns any input into a value of
|
|
12
|
+
* type `A`, keeping the valid parts and replacing the rest with defaults;
|
|
13
|
+
* `array` can drop invalid elements instead, see its `onInvalidElement`)
|
|
12
14
|
* - `prune` : Excess property pruning function (recursively removes value
|
|
13
15
|
* paths that are not represented by the type; unlike `fill`, it never fills
|
|
14
16
|
* in default values)
|