@stndrds/schema 1.0.0-alpha.294 → 1.0.0-alpha.68
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/dist/chunk-36UBIXJN.js +82 -0
- package/dist/chunk-3RG5ZIWI.js +10 -0
- package/dist/chunk-IXHWBBIY.mjs +721 -0
- package/dist/chunk-KG75T7MA.mjs +18664 -0
- package/dist/chunk-NEVERCM3.js +41 -0
- package/dist/chunk-V2RPPE2Y.mjs +41 -0
- package/dist/chunk-V32FQLWX.js +721 -0
- package/dist/chunk-V5QXU2OK.mjs +82 -0
- package/dist/chunk-XGFBT4K2.js +18664 -0
- package/dist/chunk-Y6FXYEAI.mjs +10 -0
- package/dist/default-roles-42X3TJI5.mjs +21 -0
- package/dist/default-roles-C3FYDYMN.js +21 -0
- package/dist/index.d.mts +3392 -10868
- package/dist/index.d.ts +3392 -10868
- package/dist/index.js +1705 -10256
- package/dist/index.mjs +1735 -9398
- package/dist/runtime-B0G6eBXO.d.ts +12810 -0
- package/dist/runtime-fj4EKCWH.d.mts +12810 -0
- package/dist/runtime.d.mts +6 -0
- package/dist/runtime.d.ts +6 -0
- package/dist/runtime.js +323 -0
- package/dist/runtime.mjs +323 -0
- package/dist/utils.d.mts +55 -35
- package/dist/utils.d.ts +55 -35
- package/dist/utils.js +19 -31
- package/dist/utils.mjs +19 -2
- package/dist/validation/validators.d.mts +4 -0
- package/dist/validation/validators.d.ts +4 -0
- package/dist/validation/validators.js +121 -0
- package/dist/validation/validators.mjs +121 -0
- package/dist/validators-B6L_hVBw.d.ts +1564 -0
- package/dist/validators-CgiGGhyH.d.mts +1564 -0
- package/package.json +16 -106
- package/dist/all-CDJSpI46.d.ts +0 -978
- package/dist/all-Cru_CaSY.d.mts +0 -978
- package/dist/attributes-CNYwg_Nr.d.ts +0 -584
- package/dist/attributes-CWPLbp7c.d.mts +0 -584
- package/dist/capabilities.d.mts +0 -146
- package/dist/capabilities.d.ts +0 -146
- package/dist/capabilities.js +0 -77
- package/dist/capabilities.mjs +0 -70
- package/dist/chunk-2WWGHULM.mjs +0 -226
- package/dist/chunk-4KMUATDG.js +0 -609
- package/dist/chunk-5WATIVCA.js +0 -10
- package/dist/chunk-ACKMC6FL.js +0 -17
- package/dist/chunk-AYVHMVKQ.mjs +0 -15
- package/dist/chunk-CLZORRMS.mjs +0 -570
- package/dist/chunk-DVXGSTWJ.js +0 -81
- package/dist/chunk-E6JUYGJX.js +0 -22
- package/dist/chunk-EEH4XQ7W.js +0 -61
- package/dist/chunk-EW5XR2X3.js +0 -12
- package/dist/chunk-GO6LQADH.mjs +0 -57
- package/dist/chunk-HRQEZUAA.mjs +0 -29
- package/dist/chunk-HTSTPTNZ.js +0 -10
- package/dist/chunk-HURC6CW3.js +0 -241
- package/dist/chunk-JZNR4HKQ.mjs +0 -1432
- package/dist/chunk-KAWYU7TE.js +0 -657
- package/dist/chunk-KNGWHQLR.js +0 -16
- package/dist/chunk-LV3FEUKU.mjs +0 -14
- package/dist/chunk-NS63SPNN.mjs +0 -8
- package/dist/chunk-O73ROMWQ.mjs +0 -85
- package/dist/chunk-OSSGN43B.mjs +0 -8
- package/dist/chunk-Q44QKLN4.mjs +0 -43
- package/dist/chunk-Q4SZAMJT.js +0 -72
- package/dist/chunk-QT35SI3K.mjs +0 -641
- package/dist/chunk-QVLQPW3O.mjs +0 -10
- package/dist/chunk-QWKLQRBX.js +0 -35
- package/dist/chunk-R2DAEDRF.mjs +0 -74
- package/dist/chunk-R5LAJCBU.mjs +0 -67
- package/dist/chunk-SI34M4IC.js +0 -45
- package/dist/chunk-T5PM73EF.js +0 -1504
- package/dist/chunk-UANQJ2GH.mjs +0 -25
- package/dist/chunk-UXAHLSWC.mjs +0 -8
- package/dist/chunk-V2UA2D4E.js +0 -10
- package/dist/chunk-YIP5FJ5H.js +0 -27
- package/dist/chunk-YKWSHBT5.js +0 -32
- package/dist/chunk-YUFTHPOE.mjs +0 -20
- package/dist/chunk-ZDQ5AP26.mjs +0 -31
- package/dist/chunk-ZPFOKBIN.js +0 -89
- package/dist/exceptions.d.mts +0 -511
- package/dist/exceptions.d.ts +0 -511
- package/dist/exceptions.js +0 -158
- package/dist/exceptions.mjs +0 -1
- package/dist/helpers-CXkVwpsl.d.ts +0 -76
- package/dist/helpers-Dul_r9rJ.d.mts +0 -76
- package/dist/index-BdVnHL3F.d.mts +0 -853
- package/dist/index-CFhPHQaI.d.ts +0 -853
- package/dist/migrations-DaFneOfx.d.ts +0 -39
- package/dist/migrations-fRvadl6i.d.mts +0 -39
- package/dist/objects-CDwMSnqv.d.mts +0 -250
- package/dist/objects-DJv6WrDE.d.ts +0 -250
- package/dist/types-CVYiFc69.d.mts +0 -38
- package/dist/types-NGEww_ln.d.ts +0 -38
- package/dist/validation/all.d.mts +0 -11
- package/dist/validation/all.d.ts +0 -11
- package/dist/validation/all.js +0 -131
- package/dist/validation/all.mjs +0 -18
- package/dist/validation/complex/currency.d.mts +0 -15
- package/dist/validation/complex/currency.d.ts +0 -15
- package/dist/validation/complex/currency.js +0 -11
- package/dist/validation/complex/currency.mjs +0 -2
- package/dist/validation/complex/location.d.mts +0 -22
- package/dist/validation/complex/location.d.ts +0 -22
- package/dist/validation/complex/location.js +0 -11
- package/dist/validation/complex/location.mjs +0 -2
- package/dist/validation/complex/phone.d.mts +0 -22
- package/dist/validation/complex/phone.d.ts +0 -22
- package/dist/validation/complex/phone.js +0 -11
- package/dist/validation/complex/phone.mjs +0 -2
- package/dist/validation/complex/relation.d.mts +0 -25
- package/dist/validation/complex/relation.d.ts +0 -25
- package/dist/validation/complex/relation.js +0 -19
- package/dist/validation/complex/relation.mjs +0 -2
- package/dist/validation/complex/richtext.d.mts +0 -13
- package/dist/validation/complex/richtext.d.ts +0 -13
- package/dist/validation/complex/richtext.js +0 -11
- package/dist/validation/complex/richtext.mjs +0 -2
- package/dist/validation/complex/select.d.mts +0 -20
- package/dist/validation/complex/select.d.ts +0 -20
- package/dist/validation/complex/select.js +0 -19
- package/dist/validation/complex/select.mjs +0 -2
- package/dist/validation/complex/user.d.mts +0 -13
- package/dist/validation/complex/user.d.ts +0 -13
- package/dist/validation/complex/user.js +0 -11
- package/dist/validation/complex/user.mjs +0 -2
- package/dist/validation/computed/formula.d.mts +0 -14
- package/dist/validation/computed/formula.d.ts +0 -14
- package/dist/validation/computed/formula.js +0 -11
- package/dist/validation/computed/formula.mjs +0 -2
- package/dist/validation/computed/rollup.d.mts +0 -14
- package/dist/validation/computed/rollup.d.ts +0 -14
- package/dist/validation/computed/rollup.js +0 -11
- package/dist/validation/computed/rollup.mjs +0 -2
- package/dist/validation/config/index.d.mts +0 -7
- package/dist/validation/config/index.d.ts +0 -7
- package/dist/validation/config/index.js +0 -52
- package/dist/validation/config/index.mjs +0 -7
- package/dist/validation/core/index.d.mts +0 -19
- package/dist/validation/core/index.d.ts +0 -19
- package/dist/validation/core/index.js +0 -14
- package/dist/validation/core/index.mjs +0 -1
- package/dist/validation/object/index.d.mts +0 -32
- package/dist/validation/object/index.d.ts +0 -32
- package/dist/validation/object/index.js +0 -69
- package/dist/validation/object/index.mjs +0 -16
- package/dist/validation/primitives/checkbox.d.mts +0 -12
- package/dist/validation/primitives/checkbox.d.ts +0 -12
- package/dist/validation/primitives/checkbox.js +0 -11
- package/dist/validation/primitives/checkbox.mjs +0 -2
- package/dist/validation/primitives/date.d.mts +0 -25
- package/dist/validation/primitives/date.d.ts +0 -25
- package/dist/validation/primitives/date.js +0 -11
- package/dist/validation/primitives/date.mjs +0 -2
- package/dist/validation/primitives/number.d.mts +0 -12
- package/dist/validation/primitives/number.d.ts +0 -12
- package/dist/validation/primitives/number.js +0 -11
- package/dist/validation/primitives/number.mjs +0 -2
- package/dist/validation/primitives/text.d.mts +0 -12
- package/dist/validation/primitives/text.d.ts +0 -12
- package/dist/validation/primitives/text.js +0 -11
- package/dist/validation/primitives/text.mjs +0 -2
package/dist/chunk-O73ROMWQ.mjs
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_VALIDATION_MESSAGES } from './chunk-HRQEZUAA.mjs';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
|
|
4
|
-
// src/lib/text-format.ts
|
|
5
|
-
var TEXT_FORMAT_PATTERNS = {
|
|
6
|
-
email: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
|
|
7
|
-
url: "^https?:\\/\\/[\\w\\-]+(\\.[\\w\\-]+)+[/#?]?.*$",
|
|
8
|
-
slug: "^[a-z0-9]+(?:-[a-z0-9]+)*$"
|
|
9
|
-
};
|
|
10
|
-
function resolveTextPattern(attr) {
|
|
11
|
-
if (attr.pattern) return attr.pattern;
|
|
12
|
-
return attr.format ? TEXT_FORMAT_PATTERNS[attr.format] : void 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// src/lib/lru-cache.ts
|
|
16
|
-
var LRUCache = class {
|
|
17
|
-
constructor(capacity) {
|
|
18
|
-
if (!Number.isInteger(capacity) || capacity <= 0) {
|
|
19
|
-
throw new Error("LRU cache capacity must be greater than 0");
|
|
20
|
-
}
|
|
21
|
-
this.capacity = capacity;
|
|
22
|
-
this.cache = /* @__PURE__ */ new Map();
|
|
23
|
-
}
|
|
24
|
-
get(key) {
|
|
25
|
-
if (!this.cache.has(key)) {
|
|
26
|
-
return void 0;
|
|
27
|
-
}
|
|
28
|
-
const value = this.cache.get(key);
|
|
29
|
-
this.cache.delete(key);
|
|
30
|
-
this.cache.set(key, value);
|
|
31
|
-
return value;
|
|
32
|
-
}
|
|
33
|
-
set(key, value) {
|
|
34
|
-
if (this.cache.has(key)) {
|
|
35
|
-
this.cache.delete(key);
|
|
36
|
-
} else if (this.cache.size >= this.capacity) {
|
|
37
|
-
const first = this.cache.keys().next();
|
|
38
|
-
if (!first.done) {
|
|
39
|
-
this.cache.delete(first.value);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
this.cache.set(key, value);
|
|
43
|
-
}
|
|
44
|
-
has(key) {
|
|
45
|
-
return this.cache.has(key);
|
|
46
|
-
}
|
|
47
|
-
clear() {
|
|
48
|
-
this.cache.clear();
|
|
49
|
-
}
|
|
50
|
-
get size() {
|
|
51
|
-
return this.cache.size;
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
// src/validation/core/regex-cache.ts
|
|
56
|
-
function createRegexCache(capacity = 100) {
|
|
57
|
-
return new LRUCache(capacity);
|
|
58
|
-
}
|
|
59
|
-
function getCachedRegex(cache, pattern) {
|
|
60
|
-
let cached = cache.get(pattern);
|
|
61
|
-
if (!cached) {
|
|
62
|
-
cached = new RegExp(pattern);
|
|
63
|
-
cache.set(pattern, cached);
|
|
64
|
-
}
|
|
65
|
-
return cached;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// src/validation/primitives/text.ts
|
|
69
|
-
var textRegexCache = createRegexCache();
|
|
70
|
-
function createTextValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
|
|
71
|
-
let schema = z.string();
|
|
72
|
-
if (attr.minLength !== void 0) {
|
|
73
|
-
schema = schema.min(attr.minLength, messages.minLength(attr, attr.minLength));
|
|
74
|
-
}
|
|
75
|
-
if (attr.maxLength !== void 0) {
|
|
76
|
-
schema = schema.max(attr.maxLength, messages.maxLength(attr, attr.maxLength));
|
|
77
|
-
}
|
|
78
|
-
const pattern = resolveTextPattern(attr);
|
|
79
|
-
if (pattern) {
|
|
80
|
-
schema = schema.regex(getCachedRegex(textRegexCache, pattern), messages.invalidPattern(attr));
|
|
81
|
-
}
|
|
82
|
-
return schema;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export { TEXT_FORMAT_PATTERNS, createTextValidator, resolveTextPattern };
|
package/dist/chunk-OSSGN43B.mjs
DELETED
package/dist/chunk-Q44QKLN4.mjs
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_VALIDATION_MESSAGES } from './chunk-HRQEZUAA.mjs';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
|
|
4
|
-
function resolveBound(bound) {
|
|
5
|
-
if (!bound) return null;
|
|
6
|
-
const raw = bound === "today" ? (/* @__PURE__ */ new Date()).toISOString().slice(0, 10) : bound;
|
|
7
|
-
const parsed = new Date(raw);
|
|
8
|
-
return Number.isNaN(parsed.getTime()) ? null : parsed;
|
|
9
|
-
}
|
|
10
|
-
function createDateValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
|
|
11
|
-
const message = messages.invalidDate(attr);
|
|
12
|
-
const min = resolveBound(attr.minDate);
|
|
13
|
-
const max = resolveBound(attr.maxDate);
|
|
14
|
-
const bound = z.any().superRefine((raw, ctx) => {
|
|
15
|
-
const coerced = new Date(raw);
|
|
16
|
-
if (Number.isNaN(coerced.getTime())) {
|
|
17
|
-
ctx.addIssue({ code: "custom", message });
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
if (min && coerced < min) {
|
|
21
|
-
ctx.addIssue({ code: "custom", message });
|
|
22
|
-
}
|
|
23
|
-
if (max && coerced > max) {
|
|
24
|
-
ctx.addIssue({ code: "custom", message });
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
if (!attr.endDate) return bound;
|
|
28
|
-
const range = z.object({ start: bound, end: bound.nullable() }).superRefine((value, ctx) => {
|
|
29
|
-
if (value.end === null) return;
|
|
30
|
-
const start = new Date(value.start);
|
|
31
|
-
const end = new Date(value.end);
|
|
32
|
-
const bothValid = !(Number.isNaN(start.getTime()) || Number.isNaN(end.getTime()));
|
|
33
|
-
if (bothValid && end < start) {
|
|
34
|
-
ctx.addIssue({ code: "custom", message, path: ["end"] });
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
return z.preprocess(
|
|
38
|
-
(value) => typeof value === "string" ? { start: value, end: null } : value,
|
|
39
|
-
range
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export { createDateValidator };
|
package/dist/chunk-Q4SZAMJT.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
4
|
-
var constants = require('@stndrds/constants');
|
|
5
|
-
var zod = require('zod');
|
|
6
|
-
var libphonenumberJs = require('libphonenumber-js');
|
|
7
|
-
|
|
8
|
-
function digitsOnly(input) {
|
|
9
|
-
return input.replace(/\D/g, "");
|
|
10
|
-
}
|
|
11
|
-
function normalizeCountrylessPhoneNumber(phoneNumber) {
|
|
12
|
-
return digitsOnly(phoneNumber);
|
|
13
|
-
}
|
|
14
|
-
function getIso2(iso3) {
|
|
15
|
-
const country = constants.getCountryByIso3(iso3);
|
|
16
|
-
return country?.iso2;
|
|
17
|
-
}
|
|
18
|
-
function normalizePhoneNumber(phoneNumber, countryIso3) {
|
|
19
|
-
if (!phoneNumber) return "";
|
|
20
|
-
const iso2 = getIso2(countryIso3);
|
|
21
|
-
if (!iso2) {
|
|
22
|
-
return digitsOnly(phoneNumber);
|
|
23
|
-
}
|
|
24
|
-
const parsed = libphonenumberJs.parsePhoneNumberFromString(phoneNumber, iso2);
|
|
25
|
-
if (parsed) {
|
|
26
|
-
return parsed.nationalNumber;
|
|
27
|
-
}
|
|
28
|
-
const country = constants.getCountryByIso3(countryIso3);
|
|
29
|
-
const digits = digitsOnly(phoneNumber);
|
|
30
|
-
if (country) {
|
|
31
|
-
const callingCode = country.phoneCode.replace("+", "");
|
|
32
|
-
const withoutCC = digits.startsWith(callingCode) ? digits.slice(callingCode.length) : digits;
|
|
33
|
-
return constants.stripTrunkPrefix(withoutCC, country.phoneTrunkPrefix ?? "");
|
|
34
|
-
}
|
|
35
|
-
return digits;
|
|
36
|
-
}
|
|
37
|
-
function formatPhoneForDisplay(phone) {
|
|
38
|
-
if (!phone.phoneNumber) return "";
|
|
39
|
-
const iso2 = getIso2(phone.countryCode);
|
|
40
|
-
const country = constants.getCountryByIso3(phone.countryCode);
|
|
41
|
-
const dial = country?.phoneCode ?? "";
|
|
42
|
-
if (!iso2) {
|
|
43
|
-
return `${dial} ${phone.phoneNumber}`.trim();
|
|
44
|
-
}
|
|
45
|
-
const e164 = `${dial}${digitsOnly(phone.phoneNumber)}`;
|
|
46
|
-
const parsed = libphonenumberJs.parsePhoneNumberFromString(e164);
|
|
47
|
-
if (parsed) {
|
|
48
|
-
return parsed.formatInternational();
|
|
49
|
-
}
|
|
50
|
-
return `${dial} ${phone.phoneNumber}`.trim();
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// src/validation/complex/phone.ts
|
|
54
|
-
function createPhoneValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
55
|
-
return zod.z.object(
|
|
56
|
-
{
|
|
57
|
-
countryCode: zod.z.string().length(3),
|
|
58
|
-
phoneNumber: zod.z.string().min(1)
|
|
59
|
-
},
|
|
60
|
-
{ message: messages.invalidPhone(attr) }
|
|
61
|
-
).refine((val) => constants.isValidIso3(val.countryCode), {
|
|
62
|
-
message: "Invalid country code"
|
|
63
|
-
}).transform((val) => ({
|
|
64
|
-
countryCode: val.countryCode,
|
|
65
|
-
phoneNumber: normalizePhoneNumber(val.phoneNumber, val.countryCode)
|
|
66
|
-
}));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
exports.createPhoneValidator = createPhoneValidator;
|
|
70
|
-
exports.formatPhoneForDisplay = formatPhoneForDisplay;
|
|
71
|
-
exports.normalizeCountrylessPhoneNumber = normalizeCountrylessPhoneNumber;
|
|
72
|
-
exports.normalizePhoneNumber = normalizePhoneNumber;
|