@nmtjs/type 0.15.0-beta.1 → 0.15.0-beta.3

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.
Files changed (67) hide show
  1. package/dist/index.d.ts +7 -0
  2. package/dist/index.js +12 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/temporal/global.d.ts +9 -0
  5. package/dist/temporal/global.js +10 -0
  6. package/dist/temporal/global.js.map +1 -0
  7. package/dist/temporal/polyfill.d.ts +8 -0
  8. package/dist/temporal/polyfill.js +10 -0
  9. package/dist/temporal/polyfill.js.map +1 -0
  10. package/dist/types/_convert.d.ts +5 -0
  11. package/dist/types/_convert.js +56 -0
  12. package/dist/types/_convert.js.map +1 -0
  13. package/dist/types/_type.d.ts +33 -0
  14. package/dist/types/_type.js +15 -0
  15. package/dist/types/_type.js.map +1 -0
  16. package/dist/types/_utils.d.ts +15 -0
  17. package/dist/types/_utils.js +3 -0
  18. package/dist/types/_utils.js.map +1 -0
  19. package/dist/types/any.d.ts +6 -0
  20. package/dist/types/any.js +9 -0
  21. package/dist/types/any.js.map +1 -0
  22. package/dist/types/array.d.ts +14 -0
  23. package/dist/types/array.js +26 -0
  24. package/dist/types/array.js.map +1 -0
  25. package/dist/types/base.d.ts +65 -0
  26. package/dist/types/base.js +82 -0
  27. package/dist/types/base.js.map +1 -0
  28. package/dist/types/boolean.d.ts +6 -0
  29. package/dist/types/boolean.js +9 -0
  30. package/dist/types/boolean.js.map +1 -0
  31. package/dist/types/custom.d.ts +21 -0
  32. package/dist/types/custom.js +33 -0
  33. package/dist/types/custom.js.map +1 -0
  34. package/dist/types/date.d.ts +7 -0
  35. package/dist/types/date.js +14 -0
  36. package/dist/types/date.js.map +1 -0
  37. package/dist/types/enum.d.ts +10 -0
  38. package/dist/types/enum.js +13 -0
  39. package/dist/types/enum.js.map +1 -0
  40. package/dist/types/literal.d.ts +9 -0
  41. package/dist/types/literal.js +12 -0
  42. package/dist/types/literal.js.map +1 -0
  43. package/dist/types/never.d.ts +6 -0
  44. package/dist/types/never.js +9 -0
  45. package/dist/types/never.js.map +1 -0
  46. package/dist/types/null.d.ts +7 -0
  47. package/dist/types/null.js +10 -0
  48. package/dist/types/null.js.map +1 -0
  49. package/dist/types/number.d.ts +23 -0
  50. package/dist/types/number.js +48 -0
  51. package/dist/types/number.js.map +1 -0
  52. package/dist/types/object.d.ts +79 -0
  53. package/dist/types/object.js +77 -0
  54. package/dist/types/object.js.map +1 -0
  55. package/dist/types/string.d.ts +22 -0
  56. package/dist/types/string.js +54 -0
  57. package/dist/types/string.js.map +1 -0
  58. package/dist/types/temporal.d.ts +26 -0
  59. package/dist/types/temporal.js +94 -0
  60. package/dist/types/temporal.js.map +1 -0
  61. package/dist/types/tuple.d.ts +14 -0
  62. package/dist/types/tuple.js +17 -0
  63. package/dist/types/tuple.js.map +1 -0
  64. package/dist/types/union.d.ts +42 -0
  65. package/dist/types/union.js +42 -0
  66. package/dist/types/union.js.map +1 -0
  67. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../src/types/literal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,OAAO,WAEX,SAAQ,QAA4D;IACpE,MAAM,CAAC,OAAO,CAA+B,KAAQ;QACnD,OAAO,IAAI,WAAW,CAAI;YACxB,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;YAChC,KAAK,EAAE,EAAE,KAAK,EAAE;SACjB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { ZodMiniNever } from 'zod/mini';
2
+ import { BaseType } from './base.ts';
3
+ export declare class NeverType extends BaseType<ZodMiniNever> {
4
+ static factory(): NeverType;
5
+ }
6
+ export declare const never: typeof NeverType.factory;
@@ -0,0 +1,9 @@
1
+ import { never as zodNever } from 'zod/mini';
2
+ import { BaseType } from "./base.js";
3
+ export class NeverType extends BaseType {
4
+ static factory() {
5
+ return new NeverType({ encodeZodType: zodNever() });
6
+ }
7
+ }
8
+ export const never = NeverType.factory;
9
+ //# sourceMappingURL=never.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"never.js","sourceRoot":"","sources":["../../src/types/never.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,OAAO,SAAU,SAAQ,QAAsB;IACnD,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,SAAS,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IACrD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { ZodMiniNull } from 'zod/mini';
2
+ import { BaseType } from './base.ts';
3
+ export declare class NullType extends BaseType<ZodMiniNull> {
4
+ static factory(): NullType;
5
+ }
6
+ declare const _null: typeof NullType.factory;
7
+ export { _null as null };
@@ -0,0 +1,10 @@
1
+ import { null as zodNull } from 'zod/mini';
2
+ import { BaseType } from "./base.js";
3
+ export class NullType extends BaseType {
4
+ static factory() {
5
+ return new NullType({ encodeZodType: zodNull() });
6
+ }
7
+ }
8
+ const _null = NullType.factory;
9
+ export { _null as null };
10
+ //# sourceMappingURL=null.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null.js","sourceRoot":"","sources":["../../src/types/null.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,OAAO,QAAS,SAAQ,QAAqB;IACjD,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,QAAQ,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IACnD,CAAC;CACF;AAED,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAA;AAE9B,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import type { core, ZodMiniNumber, ZodMiniString } from 'zod/mini';
2
+ import { BaseType } from './base.ts';
3
+ import { CustomType, TransformType } from './custom.ts';
4
+ type Check = core.CheckFn<number> | core.$ZodCheck<number>;
5
+ export declare class NumberType extends BaseType<ZodMiniNumber<number>, ZodMiniNumber<number>> {
6
+ static factory(...checks: Check[]): NumberType;
7
+ positive(): NumberType;
8
+ negative(): NumberType;
9
+ lt(value: number): NumberType;
10
+ lte(value: number): NumberType;
11
+ gte(value: number): NumberType;
12
+ gt(value: number): NumberType;
13
+ }
14
+ export declare class IntegerType extends NumberType {
15
+ static factory(...checks: Check[]): NumberType;
16
+ }
17
+ export declare class BigIntType extends TransformType<bigint, ZodMiniString<string>> {
18
+ static factory(): CustomType<bigint, ZodMiniString<string>, import("zod/mini").ZodMiniType<bigint, bigint, core.$ZodTypeInternals<bigint, bigint>>>;
19
+ }
20
+ export declare const number: typeof NumberType.factory;
21
+ export declare const integer: typeof IntegerType.factory;
22
+ export declare const bigInt: typeof BigIntType.factory;
23
+ export {};
@@ -0,0 +1,48 @@
1
+ import { gt, gte, int, lt, lte, regex, number as zodNumber, string as zodString, } from 'zod/mini';
2
+ import { BaseType } from "./base.js";
3
+ import { CustomType, TransformType } from "./custom.js";
4
+ export class NumberType extends BaseType {
5
+ static factory(...checks) {
6
+ return new NumberType({
7
+ encodeZodType: zodNumber().check(...checks),
8
+ params: { checks },
9
+ });
10
+ }
11
+ positive() {
12
+ return NumberType.factory(...this.params.checks, gte(0));
13
+ }
14
+ negative() {
15
+ return NumberType.factory(...this.params.checks, lte(0));
16
+ }
17
+ lt(value) {
18
+ return NumberType.factory(...this.params.checks, lt(value));
19
+ }
20
+ lte(value) {
21
+ return NumberType.factory(...this.params.checks, lte(value));
22
+ }
23
+ gte(value) {
24
+ return NumberType.factory(...this.params.checks, gte(value));
25
+ }
26
+ gt(value) {
27
+ return NumberType.factory(...this.params.checks, gt(value));
28
+ }
29
+ }
30
+ export class IntegerType extends NumberType {
31
+ static factory(...checks) {
32
+ return NumberType.factory(...checks, int());
33
+ }
34
+ }
35
+ export class BigIntType extends TransformType {
36
+ static factory() {
37
+ return CustomType.factory({
38
+ decode: (value) => BigInt(value),
39
+ encode: (value) => value.toString(),
40
+ type: zodString().check(regex(/^-?\d+$/)),
41
+ error: 'Invalid bigint format',
42
+ });
43
+ }
44
+ }
45
+ export const number = NumberType.factory;
46
+ export const integer = IntegerType.factory;
47
+ export const bigInt = BigIntType.factory;
48
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/types/number.ts"],"names":[],"mappings":"AACA,OAAO,EACL,EAAE,EACF,GAAG,EACH,GAAG,EACH,EAAE,EACF,GAAG,EACH,KAAK,EACL,MAAM,IAAI,SAAS,EACnB,MAAM,IAAI,SAAS,GACpB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAIvD,MAAM,OAAO,UAAW,SAAQ,QAG/B;IACC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAe;QAC/B,OAAO,IAAI,UAAU,CAAC;YACpB,aAAa,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YAC3C,MAAM,EAAE,EAAE,MAAM,EAAE;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,QAAQ;QACN,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,EAAE,CAAC,KAAa;QACd,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,GAAG,CAAC,KAAa;QACf,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,EAAE,CAAC,KAAa;QACd,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAe;QAC/B,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,aAA4C;IAC1E,MAAM,CAAC,OAAO;QACZ,OAAO,UAAU,CAAC,OAAO,CAAgC;YACvD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnC,IAAI,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,KAAK,EAAE,uBAAuB;SAC/B,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAA;AACxC,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA;AAC1C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAA"}
@@ -0,0 +1,79 @@
1
+ import type { core, ZodMiniObject, ZodMiniRecord } from 'zod/mini';
2
+ import type { ZodPlainType } from './_utils.ts';
3
+ import type { BaseTypeAny, OptionalType } from './base.ts';
4
+ import type { LiteralType } from './literal.ts';
5
+ import type { StringType } from './string.ts';
6
+ import { BaseType } from './base.ts';
7
+ import { EnumType } from './enum.ts';
8
+ export type ObjectTypeProps = {
9
+ [k: string]: BaseTypeAny;
10
+ };
11
+ export declare class ObjectType<T extends ObjectTypeProps = {}> extends BaseType<ZodMiniObject<{
12
+ [K in keyof T]: T[K]['encodeZodType'];
13
+ }, core.$strip>, ZodMiniObject<{
14
+ [K in keyof T]: T[K]['decodeZodType'];
15
+ }, core.$strip>, {
16
+ properties: T;
17
+ }, ZodPlainType<ZodMiniObject<{
18
+ [K in keyof T]: T[K]['encodeZodType'];
19
+ }, core.$strip>>, ZodPlainType<ZodMiniObject<{
20
+ [K in keyof T]: T[K]['decodeZodType'];
21
+ }, core.$strip>>> {
22
+ static factory<T extends ObjectTypeProps = {}>(properties: T): ObjectType<T>;
23
+ }
24
+ export declare class LooseObjectType<T extends ObjectTypeProps = {}> extends BaseType<ZodMiniObject<{
25
+ [K in keyof T]: T[K]['encodeZodType'];
26
+ }, core.$loose>, ZodMiniObject<{
27
+ [K in keyof T]: T[K]['decodeZodType'];
28
+ }, core.$loose>, {
29
+ properties: T;
30
+ }, ZodPlainType<ZodMiniObject<{
31
+ [K in keyof T]: T[K]['encodeZodType'];
32
+ }, core.$loose>>, ZodPlainType<ZodMiniObject<{
33
+ [K in keyof T]: T[K]['decodeZodType'];
34
+ }, core.$loose>>> {
35
+ static factory<T extends ObjectTypeProps = {}>(properties: T): LooseObjectType<T>;
36
+ }
37
+ export type ObjectLikeType<T extends ObjectTypeProps> = ObjectType<T> | LooseObjectType<T>;
38
+ export type AnyObjectType = ObjectType<ObjectTypeProps>;
39
+ export type AnyLooseObjectType = LooseObjectType<ObjectTypeProps>;
40
+ export type AnyObjectLikeType = AnyObjectType | AnyLooseObjectType;
41
+ export declare class RecordType<K extends LiteralType<string | number> | EnumType | StringType, E extends BaseType> extends BaseType<ZodMiniRecord<K['encodeZodType'], E['encodeZodType']>, ZodMiniRecord<K['decodeZodType'], E['decodeZodType']>, {
42
+ key: K;
43
+ element: E;
44
+ }, ZodPlainType<ZodMiniRecord<K['encodeZodType'], E['encodeZodType']>>, ZodPlainType<ZodMiniRecord<K['decodeZodType'], E['decodeZodType']>>> {
45
+ static factory<K extends LiteralType<string | number> | EnumType | StringType, E extends BaseType>(key: K, element: E): RecordType<K, E>;
46
+ }
47
+ export type KeyofType<T extends AnyObjectLikeType> = EnumType<core.util.ToEnum<Extract<keyof T['props']['properties'], string>>>;
48
+ export declare function keyof<T extends AnyObjectLikeType>(type: T): KeyofType<T>;
49
+ export type PickObjectType<T extends AnyObjectLikeType, P extends {
50
+ [K in keyof T['props']['properties']]?: true;
51
+ }> = ObjectType<{
52
+ [K in keyof P]: P[K] extends true ? K extends keyof T['props']['properties'] ? T['props']['properties'][K] : never : never;
53
+ }>;
54
+ export declare function pick<T extends AnyObjectLikeType, P extends {
55
+ [K in keyof T['props']['properties']]?: true;
56
+ }>(source: T, pick: P): PickObjectType<T, P>;
57
+ export type OmitObjectType<T extends AnyObjectLikeType, P extends {
58
+ [K in keyof T['props']['properties']]?: true;
59
+ }> = ObjectType<{
60
+ [K in keyof T['props']['properties'] as K extends keyof P ? never : K]: T['props']['properties'][K];
61
+ }>;
62
+ export declare function omit<T extends AnyObjectLikeType, P extends {
63
+ [K in keyof T['props']['properties']]?: true;
64
+ }>(source: T, omit: P): OmitObjectType<T, P>;
65
+ export type ExtendObjectType<T extends AnyObjectLikeType, P extends ObjectTypeProps> = ObjectType<{
66
+ [K in keyof T['props']['properties'] | keyof P]: K extends keyof P ? P[K] : K extends keyof T['props']['properties'] ? T['props']['properties'][K] : never;
67
+ }>;
68
+ export declare function extend<T extends AnyObjectLikeType, P extends ObjectTypeProps>(object1: T, properties: P): ExtendObjectType<T, P>;
69
+ export type MergeObjectTypes<T1 extends AnyObjectLikeType, T2 extends AnyObjectLikeType> = ObjectType<{
70
+ [K in keyof T1['props']['properties'] | keyof T2['props']['properties']]: K extends keyof T2['props']['properties'] ? T2['props']['properties'][K] : K extends keyof T1['props']['properties'] ? T1['props']['properties'][K] : never;
71
+ }>;
72
+ export declare function merge<T1 extends AnyObjectLikeType, T2 extends AnyObjectLikeType>(object1: T1, object2: T2): MergeObjectTypes<T1, T2>;
73
+ export type PartialObjectType<T extends AnyObjectLikeType> = ObjectType<{
74
+ [K in keyof T['props']['properties']]: OptionalType<T['props']['properties'][K]>;
75
+ }>;
76
+ export declare function partial<T extends AnyObjectLikeType>(object: T): PartialObjectType<T>;
77
+ export declare const object: typeof ObjectType.factory;
78
+ export declare const looseObject: typeof LooseObjectType.factory;
79
+ export declare const record: typeof RecordType.factory;
@@ -0,0 +1,77 @@
1
+ import { looseObject as zodLooseObject, object as zodObject, record as zodRecord, } from 'zod/mini';
2
+ import { zodPlainType } from "./_utils.js";
3
+ import { BaseType } from "./base.js";
4
+ import { EnumType } from "./enum.js";
5
+ export class ObjectType extends BaseType {
6
+ static factory(properties) {
7
+ const encodeProperties = {};
8
+ const decodeProperties = {};
9
+ for (const key in properties) {
10
+ encodeProperties[key] = properties[key].encodeZodType;
11
+ decodeProperties[key] = properties[key].decodeZodType;
12
+ }
13
+ return new ObjectType({
14
+ encodeZodType: zodObject(encodeProperties),
15
+ decodeZodType: zodObject(decodeProperties),
16
+ props: { properties },
17
+ });
18
+ }
19
+ }
20
+ export class LooseObjectType extends BaseType {
21
+ static factory(properties) {
22
+ const encodeProperties = {};
23
+ const decodeProperties = {};
24
+ for (const key in properties) {
25
+ encodeProperties[key] = properties[key].encodeZodType;
26
+ decodeProperties[key] = properties[key].decodeZodType;
27
+ }
28
+ return new LooseObjectType({
29
+ encodeZodType: zodLooseObject(encodeProperties),
30
+ decodeZodType: zodLooseObject(decodeProperties),
31
+ props: { properties },
32
+ });
33
+ }
34
+ }
35
+ export class RecordType extends BaseType {
36
+ static factory(key, element) {
37
+ return new RecordType({
38
+ encodeZodType: zodPlainType(zodRecord(key.encodeZodType, element.encodeZodType)),
39
+ decodeZodType: zodPlainType(zodRecord(key.decodeZodType, element.decodeZodType)),
40
+ props: { key, element },
41
+ });
42
+ }
43
+ }
44
+ export function keyof(type) {
45
+ return EnumType.factory(Object.keys(type.props.properties));
46
+ }
47
+ export function pick(source, pick) {
48
+ const properties = Object.fromEntries(Object.entries(source.props.properties).filter(([key]) => pick[key]));
49
+ return ObjectType.factory(properties);
50
+ }
51
+ export function omit(source, omit) {
52
+ const properties = Object.fromEntries(Object.entries(source.props.properties).filter(([key]) => !omit[key]));
53
+ return ObjectType.factory(properties);
54
+ }
55
+ export function extend(object1, properties) {
56
+ return ObjectType.factory({
57
+ ...object1.props.properties,
58
+ ...properties,
59
+ });
60
+ }
61
+ export function merge(object1, object2) {
62
+ return ObjectType.factory({
63
+ ...object1.props.properties,
64
+ ...object2.props.properties,
65
+ });
66
+ }
67
+ export function partial(object) {
68
+ const properties = {};
69
+ for (const [key, value] of Object.entries(object.props.properties)) {
70
+ properties[key] = value.optional();
71
+ }
72
+ return ObjectType.factory(properties);
73
+ }
74
+ export const object = ObjectType.factory;
75
+ export const looseObject = LooseObjectType.factory;
76
+ export const record = RecordType.factory;
77
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/types/object.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,IAAI,cAAc,EAC7B,MAAM,IAAI,SAAS,EACnB,MAAM,IAAI,SAAS,GACpB,MAAM,UAAU,CAAA;AAMjB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAIpC,MAAM,OAAO,UAA2C,SAAQ,QAU/D;IACC,MAAM,CAAC,OAAO,CAAiC,UAAa;QAC1D,MAAM,gBAAgB,GAAG,EAExB,CAAA;QACD,MAAM,gBAAgB,GAAG,EAExB,CAAA;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa,CAAA;YACrD,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa,CAAA;QACvD,CAAC;QAED,OAAO,IAAI,UAAU,CAAI;YACvB,aAAa,EAAE,SAAS,CAAC,gBAAgB,CAAC;YAC1C,aAAa,EAAE,SAAS,CAAC,gBAAgB,CAAC;YAC1C,KAAK,EAAE,EAAE,UAAU,EAAE;SACtB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,eAAgD,SAAQ,QAUpE;IACC,MAAM,CAAC,OAAO,CAAiC,UAAa;QAC1D,MAAM,gBAAgB,GAAG,EAExB,CAAA;QACD,MAAM,gBAAgB,GAAG,EAExB,CAAA;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa,CAAA;YACrD,gBAAgB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa,CAAA;QACvD,CAAC;QAED,OAAO,IAAI,eAAe,CAAI;YAC5B,aAAa,EAAE,cAAc,CAAC,gBAAgB,CAAC;YAC/C,aAAa,EAAE,cAAc,CAAC,gBAAgB,CAAC;YAC/C,KAAK,EAAE,EAAE,UAAU,EAAE;SACtB,CAAC,CAAA;IACJ,CAAC;CACF;AAUD,MAAM,OAAO,UAGX,SAAQ,QAMT;IACC,MAAM,CAAC,OAAO,CAGZ,GAAM,EAAE,OAAU;QAClB,OAAO,IAAI,UAAU,CAAO;YAC1B,aAAa,EAAE,YAAY,CACzB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CACpD;YACD,aAAa,EAAE,YAAY,CACzB,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CACpD;YACD,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;SACxB,CAAC,CAAA;IACJ,CAAC;CACF;AAMD,MAAM,UAAU,KAAK,CAA8B,IAAO;IACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAQ,CAAC,CAAA;AACpE,CAAC;AAYD,MAAM,UAAU,IAAI,CAGlB,MAAS,EAAE,IAAO;IAClB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACrE,CAAA;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,UAAU,CAAQ,CAAA;AAC9C,CAAC;AAUD,MAAM,UAAU,IAAI,CAGlB,MAAS,EAAE,IAAO;IAClB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACtE,CAAA;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,UAAU,CAAQ,CAAA;AAC9C,CAAC;AAaD,MAAM,UAAU,MAAM,CACpB,OAAU,EACV,UAAa;IAEb,OAAO,UAAU,CAAC,OAAO,CAAC;QACxB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU;QAC3B,GAAG,UAAU;KACd,CAAQ,CAAA;AACX,CAAC;AAeD,MAAM,UAAU,KAAK,CAGnB,OAAW,EAAE,OAAW;IACxB,OAAO,UAAU,CAAC,OAAO,CAAC;QACxB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU;QAC3B,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU;KAC5B,CAAQ,CAAA;AACX,CAAC;AAOD,MAAM,UAAU,OAAO,CACrB,MAAS;IAET,MAAM,UAAU,GAAG,EAAS,CAAA;IAE5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACnE,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IACpC,CAAC;IAED,OAAO,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAA;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAA;AAClD,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAA"}
@@ -0,0 +1,22 @@
1
+ import type { core, ZodMiniString } from 'zod/mini';
2
+ import { BaseType } from './base.ts';
3
+ type Check = core.CheckFn<string> | core.$ZodCheck<string>;
4
+ export declare class StringType extends BaseType<ZodMiniString<string>, ZodMiniString<string>> {
5
+ static factory(...checks: Check[]): StringType;
6
+ max(value: number): StringType;
7
+ min(value: number): StringType;
8
+ pattern(pattern: string | RegExp): StringType;
9
+ email(options?: core.$ZodEmailParams): StringType;
10
+ url(options?: core.$ZodURLParams): StringType;
11
+ ipv4(options?: core.$ZodIPv4Params): StringType;
12
+ ipv6(options?: core.$ZodIPv6Params): StringType;
13
+ uuid(options?: core.$ZodUUIDParams): StringType;
14
+ emoji(options?: core.$ZodEmojiParams): StringType;
15
+ nanoid(options?: core.$ZodNanoIDParams): StringType;
16
+ cuid(options?: core.$ZodCUIDParams): StringType;
17
+ cuid2(options?: core.$ZodCUID2Params): StringType;
18
+ e164(options?: core.$ZodE164Params): StringType;
19
+ jwt(options?: core.$ZodJWTParams): StringType;
20
+ }
21
+ export declare const string: typeof StringType.factory;
22
+ export {};
@@ -0,0 +1,54 @@
1
+ import { cuid, cuid2, e164, email, emoji, ipv4, ipv6, jwt, maxLength, minLength, nanoid, regex, url, uuid, string as zodString, } from 'zod/mini';
2
+ import { BaseType } from "./base.js";
3
+ export class StringType extends BaseType {
4
+ static factory(...checks) {
5
+ return new StringType({
6
+ encodeZodType: zodString().check(...checks),
7
+ params: { checks },
8
+ });
9
+ }
10
+ max(value) {
11
+ return StringType.factory(...this.params.checks, maxLength(value));
12
+ }
13
+ min(value) {
14
+ return StringType.factory(...this.params.checks, minLength(value));
15
+ }
16
+ pattern(pattern) {
17
+ return StringType.factory(...this.params.checks, regex(typeof pattern === 'string' ? new RegExp(pattern) : pattern));
18
+ }
19
+ email(options) {
20
+ return StringType.factory(...this.params.checks, email(options));
21
+ }
22
+ url(options) {
23
+ return StringType.factory(...this.params.checks, url(options));
24
+ }
25
+ ipv4(options) {
26
+ return StringType.factory(...this.params.checks, ipv4(options));
27
+ }
28
+ ipv6(options) {
29
+ return StringType.factory(...this.params.checks, ipv6(options));
30
+ }
31
+ uuid(options) {
32
+ return StringType.factory(...this.params.checks, uuid(options));
33
+ }
34
+ emoji(options) {
35
+ return StringType.factory(...this.params.checks, emoji(options));
36
+ }
37
+ nanoid(options) {
38
+ return StringType.factory(...this.params.checks, nanoid(options));
39
+ }
40
+ cuid(options) {
41
+ return StringType.factory(...this.params.checks, cuid(options));
42
+ }
43
+ cuid2(options) {
44
+ return StringType.factory(...this.params.checks, cuid2(options));
45
+ }
46
+ e164(options) {
47
+ return StringType.factory(...this.params.checks, e164(options));
48
+ }
49
+ jwt(options) {
50
+ return StringType.factory(...this.params.checks, jwt(options));
51
+ }
52
+ }
53
+ export const string = StringType.factory;
54
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/types/string.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Temporal } from 'temporal-spec';
2
+ import type { ZodMiniString } from 'zod/mini';
3
+ import { TransformType } from './custom.ts';
4
+ type EncodeType = ZodMiniString<string>;
5
+ export declare class PlainDateType extends TransformType<Temporal.PlainDate, EncodeType> {
6
+ static factory(implementation: typeof Temporal): PlainDateType;
7
+ }
8
+ export declare class PlainDateTimeType extends TransformType<Temporal.PlainDateTime, EncodeType> {
9
+ static factory(implementation: typeof Temporal): PlainDateTimeType;
10
+ }
11
+ export declare class ZonedDateTimeType extends TransformType<Temporal.ZonedDateTime, EncodeType> {
12
+ static factory(implementation: typeof Temporal): ZonedDateTimeType;
13
+ }
14
+ export declare class PlainTimeType extends TransformType<Temporal.PlainTime, EncodeType> {
15
+ static factory(implementation: typeof Temporal): PlainTimeType;
16
+ }
17
+ export declare class DurationType extends TransformType<Temporal.Duration, EncodeType> {
18
+ static factory(implementation: typeof Temporal): DurationType;
19
+ }
20
+ export declare class PlainYearMonthType extends TransformType<Temporal.PlainYearMonth, EncodeType> {
21
+ static factory(implementation: typeof Temporal): PlainYearMonthType;
22
+ }
23
+ export declare class PlainMonthDayType extends TransformType<Temporal.PlainMonthDay, EncodeType> {
24
+ static factory(implementation: typeof Temporal): PlainMonthDayType;
25
+ }
26
+ export {};
@@ -0,0 +1,94 @@
1
+ import { iso, regex, string } from 'zod/mini';
2
+ import { CustomType, TransformType } from "./custom.js";
3
+ const createTemporalTransformer = (implementation, type, decode = (value) => implementation[type].from(value), encode = (value) => value.toString({
4
+ calendarName: 'never',
5
+ smallestUnit: 'microsecond',
6
+ timeZoneName: 'never',
7
+ })) => {
8
+ return { decode, encode };
9
+ };
10
+ export class PlainDateType extends TransformType {
11
+ static factory(implementation) {
12
+ const transformer = createTemporalTransformer(implementation, 'PlainDate');
13
+ return CustomType.factory({
14
+ decode: transformer.decode,
15
+ encode: transformer.encode,
16
+ type: iso.date(),
17
+ error: 'Invalid date format',
18
+ });
19
+ }
20
+ }
21
+ export class PlainDateTimeType extends TransformType {
22
+ static factory(implementation) {
23
+ const transformer = createTemporalTransformer(implementation, 'PlainDateTime');
24
+ return CustomType.factory({
25
+ decode: transformer.decode,
26
+ encode: transformer.encode,
27
+ type: iso.datetime({ local: true }),
28
+ error: 'Invalid datetime format',
29
+ });
30
+ }
31
+ }
32
+ export class ZonedDateTimeType extends TransformType {
33
+ static factory(implementation) {
34
+ const transformer = createTemporalTransformer(implementation, 'ZonedDateTime', (value) => implementation.Instant.from(value).toZonedDateTimeISO('UTC'), (value) => value
35
+ .withTimeZone('UTC')
36
+ .toString({
37
+ smallestUnit: 'milliseconds',
38
+ timeZoneName: 'never',
39
+ calendarName: 'never',
40
+ offset: 'never',
41
+ }) + 'Z');
42
+ return CustomType.factory({
43
+ decode: transformer.decode,
44
+ encode: transformer.encode,
45
+ type: iso.datetime(),
46
+ error: 'Invalid datetime format',
47
+ });
48
+ }
49
+ }
50
+ export class PlainTimeType extends TransformType {
51
+ static factory(implementation) {
52
+ const transformer = createTemporalTransformer(implementation, 'PlainTime');
53
+ return CustomType.factory({
54
+ decode: transformer.decode,
55
+ encode: transformer.encode,
56
+ type: iso.time(),
57
+ error: 'Invalid time format',
58
+ });
59
+ }
60
+ }
61
+ export class DurationType extends TransformType {
62
+ static factory(implementation) {
63
+ const transformer = createTemporalTransformer(implementation, 'Duration');
64
+ return CustomType.factory({
65
+ decode: transformer.decode,
66
+ encode: transformer.encode,
67
+ type: iso.duration(),
68
+ error: 'Invalid duration format',
69
+ });
70
+ }
71
+ }
72
+ export class PlainYearMonthType extends TransformType {
73
+ static factory(implementation) {
74
+ const transformer = createTemporalTransformer(implementation, 'PlainYearMonth');
75
+ return CustomType.factory({
76
+ decode: transformer.decode,
77
+ encode: transformer.encode,
78
+ type: string().check(regex(/^\d{4}-\d{2}$/)),
79
+ error: 'Invalid year-month format',
80
+ });
81
+ }
82
+ }
83
+ export class PlainMonthDayType extends TransformType {
84
+ static factory(implementation) {
85
+ const transformer = createTemporalTransformer(implementation, 'PlainMonthDay');
86
+ return CustomType.factory({
87
+ decode: transformer.decode,
88
+ encode: transformer.encode,
89
+ type: string().check(regex(/^\d{2}-\d{2}$/)),
90
+ error: 'Invalid month-day format',
91
+ });
92
+ }
93
+ }
94
+ //# sourceMappingURL=temporal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../src/types/temporal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ArrayMap } from '@nmtjs/common';
2
+ import type { ZodMiniTuple } from 'zod/mini';
3
+ import type { ZodPlainType } from './_utils.ts';
4
+ import { BaseType } from './base.ts';
5
+ export declare class TupleType<T extends readonly [BaseType, ...BaseType[]] = readonly [
6
+ BaseType,
7
+ ...BaseType[]
8
+ ], R extends BaseType | null = BaseType | null> extends BaseType<R extends BaseType ? ZodMiniTuple<ArrayMap<T, 'encodeZodType'>, R['encodeZodType']> : ZodMiniTuple<ArrayMap<T, 'encodeZodType'>, null>, R extends BaseType ? ZodMiniTuple<ArrayMap<T, 'decodeZodType'>, R['decodeZodType']> : ZodMiniTuple<ArrayMap<T, 'decodeZodType'>, null>, {
9
+ elements: T;
10
+ rest?: R;
11
+ }, R extends BaseType ? ZodPlainType<ZodMiniTuple<ArrayMap<T, 'encodeZodType'>, R['encodeZodType']>> : ZodPlainType<ZodMiniTuple<ArrayMap<T, 'encodeZodType'>, null>>, R extends BaseType ? ZodPlainType<ZodMiniTuple<ArrayMap<T, 'decodeZodType'>, R['decodeZodType']>> : ZodPlainType<ZodMiniTuple<ArrayMap<T, 'decodeZodType'>, null>>> {
12
+ static factory<T extends readonly [BaseType, ...BaseType[]], R extends BaseType | null = null>(elements: T, rest?: R): TupleType<T, R>;
13
+ }
14
+ export declare const tuple: typeof TupleType.factory;
@@ -0,0 +1,17 @@
1
+ import { tuple as zodTuple } from 'zod/mini';
2
+ import { BaseType } from "./base.js";
3
+ export class TupleType extends BaseType {
4
+ static factory(elements, rest = null) {
5
+ const encode = elements.map((el) => el.encodeZodType);
6
+ const decode = elements.map((el) => el.decodeZodType);
7
+ return new TupleType({
8
+ // @ts-expect-error
9
+ encodeZodType: zodTuple(encode, rest?.encodeZodType),
10
+ // @ts-expect-error
11
+ decodeZodType: zodTuple(decode, rest?.decodeZodType),
12
+ props: { elements, rest },
13
+ });
14
+ }
15
+ }
16
+ export const tuple = TupleType.factory;
17
+ //# sourceMappingURL=tuple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../src/types/tuple.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAA;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,OAAO,SAMX,SAAQ,QAkBT;IACC,MAAM,CAAC,OAAO,CAGZ,QAAW,EAAE,OAAU,IAAS;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;QACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;QACrD,OAAO,IAAI,SAAS,CAAO;YACzB,mBAAmB;YACnB,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC;YACpD,mBAAmB;YACnB,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC;YACpD,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1B,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAA"}
@@ -0,0 +1,42 @@
1
+ import type { ArrayMap } from '@nmtjs/common';
2
+ import type { ZodMiniDiscriminatedUnion, ZodMiniIntersection, ZodMiniUnion } from 'zod/mini';
3
+ import type { ZodPlainType } from './_utils.ts';
4
+ import type { BaseTypeAny } from './base.ts';
5
+ import type { LiteralType } from './literal.ts';
6
+ import type { ObjectType, ObjectTypeProps } from './object.ts';
7
+ import { BaseType } from './base.ts';
8
+ export declare class UnionType<T extends readonly [BaseType, ...BaseType[]] = readonly [
9
+ BaseType,
10
+ ...BaseType[]
11
+ ]> extends BaseType<ZodMiniUnion<ArrayMap<T, 'encodeZodType'>>, ZodMiniUnion<ArrayMap<T, 'decodeZodType'>>, {
12
+ options: T;
13
+ }, ZodPlainType<ZodMiniUnion<ArrayMap<T, 'encodeZodType'>>>, ZodPlainType<ZodMiniUnion<ArrayMap<T, 'decodeZodType'>>>> {
14
+ static factory<T extends readonly [BaseType, ...BaseType[]] = readonly [
15
+ BaseType,
16
+ ...BaseType[]
17
+ ]>(...options: T): UnionType<T>;
18
+ }
19
+ export declare class IntersactionType<T extends readonly [BaseType, BaseType] = readonly [BaseType, BaseType]> extends BaseType<ZodMiniIntersection<T[0]['encodeZodType'], T[1]['encodeZodType']>, ZodMiniIntersection<T[0]['decodeZodType'], T[1]['decodeZodType']>, {
20
+ options: T;
21
+ }> {
22
+ static factory<T extends readonly [BaseType, BaseType] = readonly [BaseType, BaseType]>(...options: T): IntersactionType<T>;
23
+ }
24
+ export type DiscriminatedUnionProperties<K extends string = string> = {
25
+ [OK in K]: LiteralType<string>;
26
+ } & {
27
+ [OK in string]: any;
28
+ };
29
+ export type DiscriminatedUnionOptionType<K extends string> = ObjectType<ObjectTypeProps & {
30
+ [_ in K]: BaseTypeAny;
31
+ }>;
32
+ export declare class DiscriminatedUnionType<K extends string = string, T extends readonly DiscriminatedUnionOptionType<K>[] = DiscriminatedUnionOptionType<K>[]> extends BaseType<ZodMiniDiscriminatedUnion<ArrayMap<T, 'encodeZodType'>>, ZodMiniDiscriminatedUnion<ArrayMap<T, 'decodeZodType'>>, {
33
+ key: K;
34
+ options: T;
35
+ }, ZodPlainType<ZodMiniDiscriminatedUnion<ArrayMap<T, 'encodeZodType'>>>, ZodPlainType<ZodMiniDiscriminatedUnion<ArrayMap<T, 'decodeZodType'>>>> {
36
+ static factory<K extends string = string, T extends readonly DiscriminatedUnionOptionType<K>[] = DiscriminatedUnionOptionType<K>[]>(key: K, ...options: T): DiscriminatedUnionType<K, T>;
37
+ }
38
+ export declare const union: typeof UnionType.factory;
39
+ export declare const or: typeof UnionType.factory;
40
+ export declare const intersection: typeof IntersactionType.factory;
41
+ export declare const and: typeof IntersactionType.factory;
42
+ export declare const discriminatedUnion: typeof DiscriminatedUnionType.factory;
@@ -0,0 +1,42 @@
1
+ import { discriminatedUnion as zodDiscriminatedUnion, intersection as zodIntersection, union as zodUnion, } from 'zod/mini';
2
+ import { BaseType } from "./base.js";
3
+ export class UnionType extends BaseType {
4
+ static factory(...options) {
5
+ const encode = options.map((t) => t.encodeZodType);
6
+ const decode = options.map((t) => t.decodeZodType);
7
+ return new UnionType({
8
+ encodeZodType: zodUnion(encode),
9
+ decodeZodType: zodUnion(decode),
10
+ props: { options },
11
+ });
12
+ }
13
+ }
14
+ export class IntersactionType extends BaseType {
15
+ static factory(...options) {
16
+ const [first, second] = options;
17
+ return new IntersactionType({
18
+ encodeZodType: zodIntersection(first.encodeZodType, second.encodeZodType),
19
+ decodeZodType: zodIntersection(first.decodeZodType, second.decodeZodType),
20
+ props: { options },
21
+ });
22
+ }
23
+ }
24
+ export class DiscriminatedUnionType extends BaseType {
25
+ static factory(key, ...options) {
26
+ const encode = options.map((t) => t.encodeZodType);
27
+ const decode = options.map((t) => t.decodeZodType);
28
+ return new DiscriminatedUnionType({
29
+ // @ts-expect-error
30
+ encodeZodType: zodDiscriminatedUnion(key, encode),
31
+ // @ts-expect-error
32
+ decodeZodType: zodDiscriminatedUnion(key, decode),
33
+ props: { key, options },
34
+ });
35
+ }
36
+ }
37
+ export const union = UnionType.factory;
38
+ export const or = UnionType.factory;
39
+ export const intersection = IntersactionType.factory;
40
+ export const and = IntersactionType.factory;
41
+ export const discriminatedUnion = DiscriminatedUnionType.factory;
42
+ //# sourceMappingURL=union.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/types/union.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,IAAI,qBAAqB,EAC3C,YAAY,IAAI,eAAe,EAC/B,KAAK,IAAI,QAAQ,GAClB,MAAM,UAAU,CAAA;AAMjB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,OAAO,SAKX,SAAQ,QAMT;IACC,MAAM,CAAC,OAAO,CAKZ,GAAG,OAAU;QACb,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAGhD,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAGhD,CAAA;QACD,OAAO,IAAI,SAAS,CAAI;YACtB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC/B,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,EAAE,OAAO,EAAE;SACnB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAEX,SAAQ,QAIT;IACC,MAAM,CAAC,OAAO,CAEZ,GAAG,OAAU;QACb,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAAA;QAC/B,OAAO,IAAI,gBAAgB,CAAI;YAC7B,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;YACzE,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;YACzE,KAAK,EAAE,EAAE,OAAO,EAAE;SACnB,CAAC,CAAA;IACJ,CAAC;CACF;AAYD,MAAM,OAAO,sBAIX,SAAQ,QAMT;IACC,MAAM,CAAC,OAAO,CAIZ,GAAM,EAAE,GAAG,OAAU;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAGhD,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAGhD,CAAA;QACD,OAAO,IAAI,sBAAsB,CAAO;YACtC,mBAAmB;YACnB,aAAa,EAAE,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC;YACjD,mBAAmB;YACnB,aAAa,EAAE,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC;YACjD,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;SACxB,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAA;AACtC,MAAM,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAA;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAA;AACpD,MAAM,CAAC,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAA;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,OAAO,CAAA"}