@thangnv-dev/data-common 0.0.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.
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ type Brand<TValue, TBrand extends string> = TValue & {
3
+ readonly __brand: TBrand;
4
+ };
5
+ export type Uuid = Brand<string, 'Uuid'>;
6
+ export type Email = Brand<string, 'Email'>;
7
+ export type Url = Brand<string, 'Url'>;
8
+ export type Ipv4 = Brand<string, 'Ipv4'>;
9
+ export type Ipv6 = Brand<string, 'Ipv6'>;
10
+ export declare const ZodUuid: z.ZodEffects<z.ZodString, Brand<string, "Uuid">, string>;
11
+ export declare const ZodEmail: z.ZodEffects<z.ZodString, Brand<string, "Email">, string>;
12
+ export declare const ZodUrl: z.ZodEffects<z.ZodString, Brand<string, "Url">, string>;
13
+ export declare const ZodIpv4: z.ZodEffects<z.ZodString, Brand<string, "Ipv4">, string>;
14
+ export declare const ZodIpv6: z.ZodEffects<z.ZodString, Brand<string, "Ipv6">, string>;
15
+ export declare function toUuid(value: unknown): Uuid;
16
+ export declare function toEmail(value: unknown): Email;
17
+ export declare function toUrl(value: unknown): Url;
18
+ export declare function toIpv4(value: unknown): Ipv4;
19
+ export declare function toIpv6(value: unknown): Ipv6;
20
+ export declare function isUuid(value: unknown): value is Uuid;
21
+ export declare function isEmail(value: unknown): value is Email;
22
+ export declare function isUrl(value: unknown): value is Url;
23
+ export declare function isIpv4(value: unknown): value is Ipv4;
24
+ export declare function isIpv6(value: unknown): value is Ipv6;
25
+ export {};
26
+ //# sourceMappingURL=branded-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-types.d.ts","sourceRoot":"","sources":["../src/branded-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,KAAK,KAAK,CAAC,MAAM,EAAE,MAAM,SAAS,MAAM,IAAI,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjF,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACxC,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACtC,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACxC,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAKxC,eAAO,MAAM,OAAO,0DAAiE,CAAA;AACrF,eAAO,MAAM,QAAQ,2DAK2B,CAAA;AAChD,eAAO,MAAM,MAAM,yDAA+D,CAAA;AAClF,eAAO,MAAM,OAAO,0DAG2B,CAAA;AAC/C,eAAO,MAAM,OAAO,0DAG2B,CAAA;AAE/C,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE3C;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAE7C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAEzC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE3C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAE3C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAEtD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAElD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD"}
@@ -0,0 +1,49 @@
1
+ import { z } from 'zod';
2
+ const toBrand = (value) => value;
3
+ export const ZodUuid = z.string().uuid().transform((value) => toBrand(value));
4
+ export const ZodEmail = z
5
+ .string()
6
+ .trim()
7
+ .toLowerCase()
8
+ .email()
9
+ .transform((value) => toBrand(value));
10
+ export const ZodUrl = z.string().url().transform((value) => toBrand(value));
11
+ export const ZodIpv4 = z
12
+ .string()
13
+ .ip({ version: 'v4' })
14
+ .transform((value) => toBrand(value));
15
+ export const ZodIpv6 = z
16
+ .string()
17
+ .ip({ version: 'v6' })
18
+ .transform((value) => toBrand(value));
19
+ export function toUuid(value) {
20
+ return ZodUuid.parse(value);
21
+ }
22
+ export function toEmail(value) {
23
+ return ZodEmail.parse(value);
24
+ }
25
+ export function toUrl(value) {
26
+ return ZodUrl.parse(value);
27
+ }
28
+ export function toIpv4(value) {
29
+ return ZodIpv4.parse(value);
30
+ }
31
+ export function toIpv6(value) {
32
+ return ZodIpv6.parse(value);
33
+ }
34
+ export function isUuid(value) {
35
+ return ZodUuid.safeParse(value).success;
36
+ }
37
+ export function isEmail(value) {
38
+ return ZodEmail.safeParse(value).success;
39
+ }
40
+ export function isUrl(value) {
41
+ return ZodUrl.safeParse(value).success;
42
+ }
43
+ export function isIpv4(value) {
44
+ return ZodIpv4.safeParse(value).success;
45
+ }
46
+ export function isIpv6(value) {
47
+ return ZodIpv6.safeParse(value).success;
48
+ }
49
+ //# sourceMappingURL=branded-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-types.js","sourceRoot":"","sources":["../src/branded-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,MAAM,OAAO,GAAG,CAAwB,KAAa,EAAyB,EAAE,CAC9E,KAA8B,CAAA;AAEhC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAS,KAAK,CAAC,CAAC,CAAA;AACrF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,IAAI,EAAE;KACN,WAAW,EAAE;KACb,KAAK,EAAE;KACP,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAU,KAAK,CAAC,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAQ,KAAK,CAAC,CAAC,CAAA;AAClF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KACrB,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAS,KAAK,CAAC,CAAC,CAAA;AAC/C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KACrB,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAS,KAAK,CAAC,CAAC,CAAA;AAE/C,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACzC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { ZodFloat, ZodString, ZodBoolean, ZodInt32, ZodInt64, ZodBinary, ZodInstant, ZodPlainDate, ZodPlainDateTime, ZodPlainTime, ZodZonedDateTime, ZodDuration, } from './schemas.js';
2
+ export { ZodUuid, ZodEmail, ZodUrl, ZodIpv4, ZodIpv6, toUuid, toEmail, toUrl, toIpv4, toIpv6, isUuid, isEmail, isUrl, isIpv4, isIpv6, } from './branded-types.js';
3
+ export type { Uuid, Email, Url, Ipv4, Ipv6 } from './branded-types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,oBAAoB,CAAA;AAE3B,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { ZodFloat, ZodString, ZodBoolean, ZodInt32, ZodInt64, ZodBinary, ZodInstant, ZodPlainDate, ZodPlainDateTime, ZodPlainTime, ZodZonedDateTime, ZodDuration, } from './schemas.js';
2
+ export { ZodUuid, ZodEmail, ZodUrl, ZodIpv4, ZodIpv6, toUuid, toEmail, toUrl, toIpv4, toIpv6, isUuid, isEmail, isUrl, isIpv4, isIpv6, } from './branded-types.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,GACP,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,15 @@
1
+ import 'temporal-polyfill/global';
2
+ import { z } from 'zod';
3
+ export declare const ZodFloat: z.ZodEffects<z.ZodNumber, number, unknown>;
4
+ export declare const ZodString: z.ZodEffects<z.ZodString, string, unknown>;
5
+ export declare const ZodBoolean: z.ZodEffects<z.ZodBoolean, boolean, unknown>;
6
+ export declare const ZodInt32: z.ZodEffects<z.ZodNumber, number, unknown>;
7
+ export declare const ZodInt64: z.ZodEffects<z.ZodBigInt, bigint, unknown>;
8
+ export declare const ZodBinary: z.ZodEffects<z.ZodType<Uint8Array<ArrayBuffer>, z.ZodTypeDef, Uint8Array<ArrayBuffer>>, Uint8Array<ArrayBuffer>, unknown>;
9
+ export declare const ZodInstant: z.ZodType<Temporal.Instant, z.ZodTypeDef, unknown>;
10
+ export declare const ZodPlainDate: z.ZodType<Temporal.PlainDate, z.ZodTypeDef, unknown>;
11
+ export declare const ZodPlainDateTime: z.ZodType<Temporal.PlainDateTime, z.ZodTypeDef, unknown>;
12
+ export declare const ZodPlainTime: z.ZodType<Temporal.PlainTime, z.ZodTypeDef, unknown>;
13
+ export declare const ZodZonedDateTime: z.ZodType<Temporal.ZonedDateTime, z.ZodTypeDef, unknown>;
14
+ export declare const ZodDuration: z.ZodType<Temporal.Duration, z.ZodTypeDef, unknown>;
15
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAA;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyMvB,eAAO,MAAM,QAAQ,4CAAwD,CAAA;AAE7E,eAAO,MAAM,SAAS,4CAQR,CAAA;AAEd,eAAO,MAAM,UAAU,8CAA2C,CAAA;AAElE,eAAO,MAAM,QAAQ,4CAGpB,CAAA;AAED,eAAO,MAAM,QAAQ,4CAAuE,CAAA;AAE5F,eAAO,MAAM,SAAS,2HAAuD,CAAA;AAE7E,eAAO,MAAM,UAAU,oDAItB,CAAA;AAED,eAAO,MAAM,YAAY,sDAKxB,CAAA;AAED,eAAO,MAAM,gBAAgB,0DAO5B,CAAA;AAED,eAAO,MAAM,YAAY,sDAExB,CAAA;AAED,eAAO,MAAM,gBAAgB,0DAO5B,CAAA;AAED,eAAO,MAAM,WAAW,qDAEvB,CAAA"}
@@ -0,0 +1,192 @@
1
+ import 'temporal-polyfill/global';
2
+ import { z } from 'zod';
3
+ const INT32_MIN = -2_147_483_648;
4
+ const INT32_MAX = 2_147_483_647;
5
+ const INT64_MIN = -(1n << 63n);
6
+ const INT64_MAX = (1n << 63n) - 1n;
7
+ function coerceFiniteNumber(value) {
8
+ if (typeof value === 'number') {
9
+ return value;
10
+ }
11
+ if (typeof value === 'string') {
12
+ const trimmed = value.trim();
13
+ if (trimmed.length === 0) {
14
+ return value;
15
+ }
16
+ return Number(trimmed);
17
+ }
18
+ return value;
19
+ }
20
+ function coerceBoolean(value) {
21
+ if (typeof value === 'boolean') {
22
+ return value;
23
+ }
24
+ if (typeof value === 'number') {
25
+ if (value === 1) {
26
+ return true;
27
+ }
28
+ if (value === 0) {
29
+ return false;
30
+ }
31
+ return value;
32
+ }
33
+ if (typeof value === 'string') {
34
+ const normalized = value.trim().toLowerCase();
35
+ if (['1', 'true', 'yes', 'y', 'on'].includes(normalized)) {
36
+ return true;
37
+ }
38
+ if (['0', 'false', 'no', 'n', 'off'].includes(normalized)) {
39
+ return false;
40
+ }
41
+ }
42
+ return value;
43
+ }
44
+ function coerceBigInt(value) {
45
+ if (typeof value === 'bigint') {
46
+ return value;
47
+ }
48
+ if (typeof value === 'number') {
49
+ if (Number.isInteger(value) && Number.isSafeInteger(value)) {
50
+ return BigInt(value);
51
+ }
52
+ return value;
53
+ }
54
+ if (typeof value === 'string') {
55
+ const trimmed = value.trim();
56
+ if (/^[+-]?\d+$/.test(trimmed)) {
57
+ try {
58
+ return BigInt(trimmed);
59
+ }
60
+ catch {
61
+ return value;
62
+ }
63
+ }
64
+ }
65
+ return value;
66
+ }
67
+ function dateToTemporalInstant(value) {
68
+ if (!(value instanceof Date)) {
69
+ return null;
70
+ }
71
+ const epochMilliseconds = value.getTime();
72
+ if (!Number.isFinite(epochMilliseconds)) {
73
+ throw new TypeError('Invalid Date');
74
+ }
75
+ return Temporal.Instant.fromEpochMilliseconds(epochMilliseconds);
76
+ }
77
+ function dateToTemporalPlainDate(value) {
78
+ const instant = dateToTemporalInstant(value);
79
+ if (!instant) {
80
+ return null;
81
+ }
82
+ return instant.toZonedDateTimeISO('UTC').toPlainDate();
83
+ }
84
+ function dateToTemporalPlainDateTime(value) {
85
+ const instant = dateToTemporalInstant(value);
86
+ if (!instant) {
87
+ return null;
88
+ }
89
+ return instant.toZonedDateTimeISO('UTC').toPlainDateTime();
90
+ }
91
+ function dateToTemporalZonedDateTime(value) {
92
+ const instant = dateToTemporalInstant(value);
93
+ if (!instant) {
94
+ return null;
95
+ }
96
+ return instant.toZonedDateTimeISO('UTC');
97
+ }
98
+ function coerceBinary(value) {
99
+ if (value instanceof Uint8Array) {
100
+ return value;
101
+ }
102
+ if (typeof value === 'string') {
103
+ const decoded = decodeBase64String(value);
104
+ if (decoded) {
105
+ return decoded;
106
+ }
107
+ }
108
+ if (value instanceof ArrayBuffer) {
109
+ return new Uint8Array(value);
110
+ }
111
+ if (ArrayBuffer.isView(value)) {
112
+ const view = value;
113
+ return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
114
+ }
115
+ if (Array.isArray(value)) {
116
+ const isByteArray = value.every((item) => typeof item === 'number' && Number.isInteger(item) && item >= 0 && item <= 255);
117
+ if (isByteArray) {
118
+ return Uint8Array.from(value);
119
+ }
120
+ }
121
+ return value;
122
+ }
123
+ function decodeBase64String(value) {
124
+ const trimmed = value.trim();
125
+ if (trimmed.length === 0) {
126
+ return new Uint8Array(0);
127
+ }
128
+ const normalized = trimmed.replace(/\s+/g, '').replace(/-/g, '+').replace(/_/g, '/');
129
+ if (normalized.length % 4 === 1) {
130
+ return null;
131
+ }
132
+ const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, '=');
133
+ if (!/^[A-Za-z0-9+/]*={0,2}$/.test(padded)) {
134
+ return null;
135
+ }
136
+ try {
137
+ if (typeof atob === 'function') {
138
+ const raw = atob(padded);
139
+ const output = new Uint8Array(raw.length);
140
+ for (let i = 0; i < raw.length; i += 1) {
141
+ output[i] = raw.charCodeAt(i);
142
+ }
143
+ return output;
144
+ }
145
+ const bufferCtor = globalThis.Buffer;
146
+ if (bufferCtor) {
147
+ return Uint8Array.from(bufferCtor.from(padded, 'base64'));
148
+ }
149
+ }
150
+ catch {
151
+ return null;
152
+ }
153
+ return null;
154
+ }
155
+ function createTemporalSchema(typeName, parser) {
156
+ return z.unknown().transform((value, context) => {
157
+ try {
158
+ return parser(value);
159
+ }
160
+ catch {
161
+ context.addIssue({
162
+ code: z.ZodIssueCode.custom,
163
+ message: `Invalid ${typeName}`,
164
+ });
165
+ return z.NEVER;
166
+ }
167
+ });
168
+ }
169
+ export const ZodFloat = z.preprocess(coerceFiniteNumber, z.number().finite());
170
+ export const ZodString = z.preprocess((value) => {
171
+ if (typeof value === 'string') {
172
+ return value;
173
+ }
174
+ if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {
175
+ return String(value);
176
+ }
177
+ return value;
178
+ }, z.string());
179
+ export const ZodBoolean = z.preprocess(coerceBoolean, z.boolean());
180
+ export const ZodInt32 = z.preprocess(coerceFiniteNumber, z.number().int().min(INT32_MIN).max(INT32_MAX));
181
+ export const ZodInt64 = z.preprocess(coerceBigInt, z.bigint().min(INT64_MIN).max(INT64_MAX));
182
+ export const ZodBinary = z.preprocess(coerceBinary, z.instanceof(Uint8Array));
183
+ export const ZodInstant = createTemporalSchema('Temporal.Instant', (value) => dateToTemporalInstant(value) ?? Temporal.Instant.from(value));
184
+ export const ZodPlainDate = createTemporalSchema('Temporal.PlainDate', (value) => dateToTemporalPlainDate(value) ??
185
+ Temporal.PlainDate.from(value));
186
+ export const ZodPlainDateTime = createTemporalSchema('Temporal.PlainDateTime', (value) => dateToTemporalPlainDateTime(value) ??
187
+ Temporal.PlainDateTime.from(value));
188
+ export const ZodPlainTime = createTemporalSchema('Temporal.PlainTime', (value) => Temporal.PlainTime.from(value));
189
+ export const ZodZonedDateTime = createTemporalSchema('Temporal.ZonedDateTime', (value) => dateToTemporalZonedDateTime(value) ??
190
+ Temporal.ZonedDateTime.from(value));
191
+ export const ZodDuration = createTemporalSchema('Temporal.Duration', (value) => Temporal.Duration.from(value));
192
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@thangnv-dev/data-common",
3
+ "version": "0.0.1",
4
+ "private": false,
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "type": "module",
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "default": "./dist/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc -p tsconfig.build.json",
22
+ "lint": "eslint .",
23
+ "typecheck": "tsc --noEmit",
24
+ "test": "vitest run"
25
+ },
26
+ "dependencies": {
27
+ "zod": "^3.25.76"
28
+ },
29
+ "devDependencies": {
30
+ "@typescript-eslint/eslint-plugin": "^8.56.0",
31
+ "@typescript-eslint/parser": "^8.56.0",
32
+ "eslint": "^10.0.0",
33
+ "temporal-polyfill": "^0.3.0",
34
+ "typescript": "^5.9.3",
35
+ "vitest": "^4.0.18"
36
+ },
37
+ "peerDependencies": {
38
+ "temporal-polyfill": "*"
39
+ }
40
+ }