@c9up/rune 0.1.6 → 0.1.8
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/MessagesProvider.d.ts +45 -0
- package/dist/MessagesProvider.d.ts.map +1 -0
- package/dist/MessagesProvider.js +77 -0
- package/dist/MessagesProvider.js.map +1 -0
- package/dist/Schema.d.ts +912 -38
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2841 -219
- package/dist/Schema.js.map +1 -1
- package/dist/date.d.ts +36 -0
- package/dist/date.d.ts.map +1 -0
- package/dist/date.js +275 -0
- package/dist/date.js.map +1 -0
- package/dist/errors.d.ts +42 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +37 -0
- package/dist/errors.js.map +1 -1
- package/dist/formats.d.ts +149 -0
- package/dist/formats.d.ts.map +1 -0
- package/dist/formats.js +612 -0
- package/dist/formats.js.map +1 -0
- package/dist/index.d.ts +152 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +181 -2
- package/dist/index.js.map +1 -1
- package/dist/magic.d.ts +30 -0
- package/dist/magic.d.ts.map +1 -0
- package/dist/magic.js +154 -0
- package/dist/magic.js.map +1 -0
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +11 -1
- package/src/MessagesProvider.ts +115 -0
- package/src/Schema.ts +3970 -215
- package/src/date.ts +320 -0
- package/src/errors.ts +59 -0
- package/src/formats.ts +721 -0
- package/src/index.ts +266 -1
- package/src/magic.ts +181 -0
- package/src/types.ts +55 -0
package/dist/errors.js
CHANGED
|
@@ -11,4 +11,41 @@ export class RuneError extends Error {
|
|
|
11
11
|
this.hint = options?.hint;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Thrown by {@link ValidationSchema.validateOrThrow} — VineJS's
|
|
16
|
+
* `E_VALIDATION_ERROR`. Carries the structured `messages` array and an HTTP
|
|
17
|
+
* `status` (422) so web layers can render it directly, matching AdonisJS/VineJS.
|
|
18
|
+
*/
|
|
19
|
+
export class RuneValidationError extends Error {
|
|
20
|
+
/** Internal error code for programmatic handling (VineJS parity). */
|
|
21
|
+
code = "E_VALIDATION_ERROR";
|
|
22
|
+
/** HTTP status for the failure (422 Unprocessable Entity). */
|
|
23
|
+
status = 422;
|
|
24
|
+
/** Structured, per-field validation messages. */
|
|
25
|
+
messages;
|
|
26
|
+
constructor(messages, options) {
|
|
27
|
+
super("Validation failure", options);
|
|
28
|
+
this.name = "RuneValidationError";
|
|
29
|
+
this.messages = messages;
|
|
30
|
+
if ("captureStackTrace" in Error) {
|
|
31
|
+
Error.captureStackTrace(this, RuneValidationError);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
get [Symbol.toStringTag]() {
|
|
35
|
+
return this.name;
|
|
36
|
+
}
|
|
37
|
+
toString() {
|
|
38
|
+
return `${this.name} [${this.code}]: ${this.message}`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* VineJS-compatible alias. Adonis/Vine code catches on the error's NAME:
|
|
43
|
+
*
|
|
44
|
+
* import { errors } from '@c9up/rune'
|
|
45
|
+
* if (error instanceof errors.E_VALIDATION_ERROR) { ... }
|
|
46
|
+
*
|
|
47
|
+
* Without this binding the namespace exists but the member does not, and a
|
|
48
|
+
* copy-pasted Adonis handler silently never matches.
|
|
49
|
+
*/
|
|
50
|
+
export const E_VALIDATION_ERROR = RuneValidationError;
|
|
14
51
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAC1B,IAAI,CAAS;IACb,IAAI,CAAU;IAEvB,YAAY,IAAY,EAAE,OAAe,EAAE,OAA2B;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;IAC3B,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAC1B,IAAI,CAAS;IACb,IAAI,CAAU;IAEvB,YAAY,IAAY,EAAE,OAAe,EAAE,OAA2B;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;IAC3B,CAAC;CACD;AAmBD;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC7C,qEAAqE;IAC5D,IAAI,GAAG,oBAAoB,CAAC;IACrC,8DAA8D;IACrD,MAAM,GAAG,GAAG,CAAC;IACtB,iDAAiD;IACxC,QAAQ,CAAkB;IAEnC,YAAY,QAAyB,EAAE,OAAsB;QAC5D,KAAK,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAEQ,QAAQ;QAChB,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvD,CAAC;CACD;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format validators backing the VineJS string/number/array rules.
|
|
3
|
+
*
|
|
4
|
+
* VineJS delegates these to `validator.js`. rune has zero runtime dependencies,
|
|
5
|
+
* so each check is implemented here. Where VineJS ships a per-locale table we
|
|
6
|
+
* cannot reasonably reproduce in full (mobile numbers, postal codes, passports),
|
|
7
|
+
* rune supports a named subset and **fails closed** on an unknown locale rather
|
|
8
|
+
* than waving the value through — an unchecked value that reports "valid" is the
|
|
9
|
+
* failure mode this package exists to prevent.
|
|
10
|
+
*/
|
|
11
|
+
/** Code-point scan rather than a control-character regex, which lints as suspicious. */
|
|
12
|
+
export declare const isAscii: (v: string) => boolean;
|
|
13
|
+
export declare const isHexCode: (v: string) => boolean;
|
|
14
|
+
export declare const isUlid: (v: string) => boolean;
|
|
15
|
+
export declare const isJwt: (v: string) => boolean;
|
|
16
|
+
export declare function isIpAddress(v: string, version?: 4 | 6): boolean;
|
|
17
|
+
/** Luhn checksum — the digits-only part of card validation. */
|
|
18
|
+
export declare function isCreditCard(v: string): boolean;
|
|
19
|
+
/** IBAN mod-97 check (ISO 13616), computed digit by digit to avoid BigInt. */
|
|
20
|
+
export declare function isIban(v: string): boolean;
|
|
21
|
+
/** `"lat,lng"` within the valid ranges. */
|
|
22
|
+
export declare function isCoordinates(v: string): boolean;
|
|
23
|
+
/** Country codes rune can check postal codes for. */
|
|
24
|
+
export declare const SUPPORTED_POSTAL_CODES: string[];
|
|
25
|
+
export declare function isPostalCode(v: string, countryCode: string): boolean | null;
|
|
26
|
+
/**
|
|
27
|
+
* Mobile numbers in E.164 form. Named deviation from VineJS: rune does NOT
|
|
28
|
+
* carry per-locale numbering plans, so `locale` is not accepted — a caller that
|
|
29
|
+
* needs one writes a `.regex()` or a custom rule.
|
|
30
|
+
*/
|
|
31
|
+
export declare const isMobile: (v: string) => boolean;
|
|
32
|
+
/** HTML-escape the five characters that break out of markup (VineJS `escape`). */
|
|
33
|
+
export declare function escapeHtml(v: string): string;
|
|
34
|
+
/** Options accepted by `normalizeEmail` (subset of VineJS's). */
|
|
35
|
+
export interface NormalizeEmailOptions {
|
|
36
|
+
/** validator.js spelling — takes precedence over the camelCase alias. */
|
|
37
|
+
all_lowercase?: boolean;
|
|
38
|
+
/** validator.js spelling. */
|
|
39
|
+
gmail_remove_dots?: boolean;
|
|
40
|
+
/** validator.js spelling. */
|
|
41
|
+
gmail_remove_subaddress?: boolean;
|
|
42
|
+
/** Lowercase the whole address. Defaults to `true`, like VineJS. */
|
|
43
|
+
allLowercase?: boolean;
|
|
44
|
+
/** Strip dots from a Gmail local part (`a.b@gmail.com` → `ab@gmail.com`). */
|
|
45
|
+
gmailRemoveDots?: boolean;
|
|
46
|
+
/** Drop a `+tag` suffix from the local part. */
|
|
47
|
+
gmailRemoveSubaddress?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export declare function normalizeEmail(value: string, options?: NormalizeEmailOptions): string;
|
|
50
|
+
/** Options accepted by `normalizeUrl` (subset of VineJS's). */
|
|
51
|
+
export interface NormalizeUrlOptions {
|
|
52
|
+
/** Remove a leading `www.` from the host. */
|
|
53
|
+
stripWWW?: boolean;
|
|
54
|
+
/** Force this protocol (e.g. `"https"`). */
|
|
55
|
+
forceProtocol?: string;
|
|
56
|
+
/** Rewrite `http:` to `https:` (normalize-url `forceHttps`). */
|
|
57
|
+
forceHttps?: boolean;
|
|
58
|
+
/** Drop the trailing slash of an empty path. */
|
|
59
|
+
stripTrailingSlash?: boolean;
|
|
60
|
+
/** Drop the trailing slash of ANY path (normalize-url `removeTrailingSlash`). */
|
|
61
|
+
removeTrailingSlash?: boolean;
|
|
62
|
+
/** Drop the `#fragment`. */
|
|
63
|
+
stripHash?: boolean;
|
|
64
|
+
/** Drop the scheme entirely, leaving `example.com/path`. */
|
|
65
|
+
stripProtocol?: boolean;
|
|
66
|
+
/** Drop `user:pass@`. */
|
|
67
|
+
stripAuthentication?: boolean;
|
|
68
|
+
/** Drop `:80` / `:443` when they match the scheme's default. */
|
|
69
|
+
removeExplicitPort?: boolean;
|
|
70
|
+
/** Sort the query parameters by name, for a stable comparison key. */
|
|
71
|
+
sortQueryParameters?: boolean;
|
|
72
|
+
/** Query parameters to remove — names, or patterns matched against names. */
|
|
73
|
+
removeQueryParameters?: ReadonlyArray<string | RegExp>;
|
|
74
|
+
/** Drop `index.html` / `index.php`-style directory indexes. */
|
|
75
|
+
removeDirectoryIndex?: boolean;
|
|
76
|
+
}
|
|
77
|
+
export declare function normalizeUrl(value: string, options?: NormalizeUrlOptions): string;
|
|
78
|
+
/** `dash-case`, `snake_case` and spaced words to `camelCase`. */
|
|
79
|
+
export declare function toCamelCase(v: string): string;
|
|
80
|
+
export declare const SUPPORTED_PASSPORTS: string[];
|
|
81
|
+
export declare function isPassport(v: string, countryCode: string): boolean | null;
|
|
82
|
+
/** Options accepted by `alpha()` / `alphaNumeric()` (VineJS spelling). */
|
|
83
|
+
export interface AlphaOptions {
|
|
84
|
+
allowSpaces?: boolean;
|
|
85
|
+
allowUnderscores?: boolean;
|
|
86
|
+
allowDashes?: boolean;
|
|
87
|
+
}
|
|
88
|
+
/** Build the character class for `alpha`/`alphaNumeric` from its options. */
|
|
89
|
+
export declare function alphaPattern(base: string, options?: AlphaOptions): RegExp;
|
|
90
|
+
/** Options accepted by `url()` — the validator.js names VineJS forwards. */
|
|
91
|
+
export interface UrlOptions {
|
|
92
|
+
/** validator.js spelling — takes precedence over the camelCase alias. */
|
|
93
|
+
require_protocol?: boolean;
|
|
94
|
+
/** validator.js spelling. */
|
|
95
|
+
require_tld?: boolean;
|
|
96
|
+
/** validator.js spelling. */
|
|
97
|
+
allow_underscores?: boolean;
|
|
98
|
+
/** Require an explicit scheme. Defaults to `true`, like validator.js. */
|
|
99
|
+
requireProtocol?: boolean;
|
|
100
|
+
/** Allowed schemes, without the colon. Defaults to http/https. */
|
|
101
|
+
protocols?: string[];
|
|
102
|
+
/** Require a dotted host (rejects `http://localhost`). Defaults to `true`. */
|
|
103
|
+
requireTld?: boolean;
|
|
104
|
+
/** Allow `_` in the host. */
|
|
105
|
+
allowUnderscores?: boolean;
|
|
106
|
+
}
|
|
107
|
+
export declare function isUrlWithOptions(value: string, options?: UrlOptions): boolean;
|
|
108
|
+
export declare const SUPPORTED_MOBILE_LOCALES: string[];
|
|
109
|
+
export declare function isMobileForLocale(v: string, locale: string): boolean | null;
|
|
110
|
+
/**
|
|
111
|
+
* Options accepted by `email()` — the validator.js names VineJS forwards.
|
|
112
|
+
* Implemented here rather than delegated: rune carries no runtime dependency,
|
|
113
|
+
* so every check it claims to do, it does itself.
|
|
114
|
+
*/
|
|
115
|
+
export interface EmailOptions {
|
|
116
|
+
/** Accept `Name <a@b.io>`. Off by default. */
|
|
117
|
+
allow_display_name?: boolean;
|
|
118
|
+
/** Require a dotted domain. On by default. */
|
|
119
|
+
require_tld?: boolean;
|
|
120
|
+
/** Accept `user@[192.168.0.1]` / `user@[IPv6:…]`. Off by default. */
|
|
121
|
+
allow_ip_domain?: boolean;
|
|
122
|
+
/** Skip the RFC length caps (64 local / 254 total). Off by default. */
|
|
123
|
+
ignore_max_length?: boolean;
|
|
124
|
+
/** Characters refused anywhere in the local part. */
|
|
125
|
+
blacklisted_chars?: string;
|
|
126
|
+
/** Apply Gmail's own extra restrictions when the domain is Gmail. */
|
|
127
|
+
domain_specific_validation?: boolean;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Validate an email address.
|
|
131
|
+
*
|
|
132
|
+
* Deliberately structural rather than one giant regex: the length caps, the
|
|
133
|
+
* quoted local part and the IP-literal domain are separate rules in RFC 5321,
|
|
134
|
+
* and a single pattern that tries to express all of them is the classic source
|
|
135
|
+
* of both false accepts and false rejects.
|
|
136
|
+
*/
|
|
137
|
+
export declare function isEmail(value: string, options?: EmailOptions): boolean;
|
|
138
|
+
/** Options accepted by `vat()` (VineJS 4.2 `vatRule`). */
|
|
139
|
+
export interface VatOptions {
|
|
140
|
+
countryCode: string | string[];
|
|
141
|
+
}
|
|
142
|
+
/** Countries `vat()` can check. */
|
|
143
|
+
export declare const SUPPORTED_VAT_COUNTRIES: string[];
|
|
144
|
+
/**
|
|
145
|
+
* Validate a VAT number for one country. Returns `null` when the country has no
|
|
146
|
+
* rule, so the caller can fail LOUDLY instead of accepting the value.
|
|
147
|
+
*/
|
|
148
|
+
export declare function isVat(value: string, countryCode: string): boolean | null;
|
|
149
|
+
//# sourceMappingURL=formats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"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"}
|