@xbg.solutions/utils-validation 1.0.0
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/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +24 -0
- package/lib/index.js.map +1 -0
- package/lib/validators.d.ts +62 -0
- package/lib/validators.d.ts.map +1 -0
- package/lib/validators.js +169 -0
- package/lib/validators.js.map +1 -0
- package/package.json +22 -0
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation utilities barrel export
|
|
3
|
+
*/
|
|
4
|
+
export { EMAIL_REGEX, PHONE_REGEX, UID_REGEX, COUNTRY_CODE_REGEX, validateEmail, validatePhone, validateIANATimezone, validateCurrency, validateLength, validateUID, validateCountryCode, validateURL, validatePositiveNumber, validateNonNegativeNumber, validateFutureDate, validateEnum, } from './validators';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Validation utilities barrel export
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateEnum = exports.validateFutureDate = exports.validateNonNegativeNumber = exports.validatePositiveNumber = exports.validateURL = exports.validateCountryCode = exports.validateUID = exports.validateLength = exports.validateCurrency = exports.validateIANATimezone = exports.validatePhone = exports.validateEmail = exports.COUNTRY_CODE_REGEX = exports.UID_REGEX = exports.PHONE_REGEX = exports.EMAIL_REGEX = void 0;
|
|
7
|
+
var validators_1 = require("./validators");
|
|
8
|
+
Object.defineProperty(exports, "EMAIL_REGEX", { enumerable: true, get: function () { return validators_1.EMAIL_REGEX; } });
|
|
9
|
+
Object.defineProperty(exports, "PHONE_REGEX", { enumerable: true, get: function () { return validators_1.PHONE_REGEX; } });
|
|
10
|
+
Object.defineProperty(exports, "UID_REGEX", { enumerable: true, get: function () { return validators_1.UID_REGEX; } });
|
|
11
|
+
Object.defineProperty(exports, "COUNTRY_CODE_REGEX", { enumerable: true, get: function () { return validators_1.COUNTRY_CODE_REGEX; } });
|
|
12
|
+
Object.defineProperty(exports, "validateEmail", { enumerable: true, get: function () { return validators_1.validateEmail; } });
|
|
13
|
+
Object.defineProperty(exports, "validatePhone", { enumerable: true, get: function () { return validators_1.validatePhone; } });
|
|
14
|
+
Object.defineProperty(exports, "validateIANATimezone", { enumerable: true, get: function () { return validators_1.validateIANATimezone; } });
|
|
15
|
+
Object.defineProperty(exports, "validateCurrency", { enumerable: true, get: function () { return validators_1.validateCurrency; } });
|
|
16
|
+
Object.defineProperty(exports, "validateLength", { enumerable: true, get: function () { return validators_1.validateLength; } });
|
|
17
|
+
Object.defineProperty(exports, "validateUID", { enumerable: true, get: function () { return validators_1.validateUID; } });
|
|
18
|
+
Object.defineProperty(exports, "validateCountryCode", { enumerable: true, get: function () { return validators_1.validateCountryCode; } });
|
|
19
|
+
Object.defineProperty(exports, "validateURL", { enumerable: true, get: function () { return validators_1.validateURL; } });
|
|
20
|
+
Object.defineProperty(exports, "validatePositiveNumber", { enumerable: true, get: function () { return validators_1.validatePositiveNumber; } });
|
|
21
|
+
Object.defineProperty(exports, "validateNonNegativeNumber", { enumerable: true, get: function () { return validators_1.validateNonNegativeNumber; } });
|
|
22
|
+
Object.defineProperty(exports, "validateFutureDate", { enumerable: true, get: function () { return validators_1.validateFutureDate; } });
|
|
23
|
+
Object.defineProperty(exports, "validateEnum", { enumerable: true, get: function () { return validators_1.validateEnum; } });
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2CAiBsB;AAhBpB,yGAAA,WAAW,OAAA;AACX,yGAAA,WAAW,OAAA;AACX,uGAAA,SAAS,OAAA;AACT,gHAAA,kBAAkB,OAAA;AAClB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,kHAAA,oBAAoB,OAAA;AACpB,8GAAA,gBAAgB,OAAA;AAChB,4GAAA,cAAc,OAAA;AACd,yGAAA,WAAW,OAAA;AACX,iHAAA,mBAAmB,OAAA;AACnB,yGAAA,WAAW,OAAA;AACX,oHAAA,sBAAsB,OAAA;AACtB,uHAAA,yBAAyB,OAAA;AACzB,gHAAA,kBAAkB,OAAA;AAClB,0GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Reusable validation functions for common data types.
|
|
5
|
+
* All validators return boolean (true = valid, false = invalid).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Email validation (RFC 5322 simplified)
|
|
9
|
+
*/
|
|
10
|
+
export declare const EMAIL_REGEX: RegExp;
|
|
11
|
+
export declare function validateEmail(email: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Phone number validation (E.164 format)
|
|
14
|
+
* Format: +[country code][number] (e.g., +61412345678)
|
|
15
|
+
* Length: 7-15 digits total (minimum viable phone number)
|
|
16
|
+
*/
|
|
17
|
+
export declare const PHONE_REGEX: RegExp;
|
|
18
|
+
export declare function validatePhone(phone: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* IANA timezone validation
|
|
21
|
+
* Validates against the IANA timezone database
|
|
22
|
+
* Requires proper format (e.g., "Australia/Sydney", not "EST")
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateIANATimezone(timezone: string): boolean;
|
|
25
|
+
export declare function validateCurrency(code: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* String length validation
|
|
28
|
+
*/
|
|
29
|
+
export declare function validateLength(str: string, min: number, max: number): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* UID format validation (Firestore auto-generated IDs)
|
|
32
|
+
* Format: 20+ alphanumeric characters, hyphens, underscores
|
|
33
|
+
*/
|
|
34
|
+
export declare const UID_REGEX: RegExp;
|
|
35
|
+
export declare function validateUID(uid: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* ISO 3166-1 alpha-2 country code validation
|
|
38
|
+
* Format: Two uppercase letters (e.g., AU, US, GB)
|
|
39
|
+
*/
|
|
40
|
+
export declare const COUNTRY_CODE_REGEX: RegExp;
|
|
41
|
+
export declare function validateCountryCode(code: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* URL validation (basic)
|
|
44
|
+
*/
|
|
45
|
+
export declare function validateURL(url: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Positive number validation
|
|
48
|
+
*/
|
|
49
|
+
export declare function validatePositiveNumber(value: unknown): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Non-negative number validation (>= 0)
|
|
52
|
+
*/
|
|
53
|
+
export declare function validateNonNegativeNumber(value: unknown): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Date validation (not in the past)
|
|
56
|
+
*/
|
|
57
|
+
export declare function validateFutureDate(date: Date): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Enum validation helper
|
|
60
|
+
*/
|
|
61
|
+
export declare function validateEnum<T extends string>(value: string, allowedValues: readonly T[]): value is T;
|
|
62
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,QAA+B,CAAC;AAExD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKpD;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAuB,CAAC;AAEhD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAkB9D;AAmBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAMT;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAyB,CAAC;AAEhD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKhD;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAe,CAAC;AAE/C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWhD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAKtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,SAAS,CAAC,EAAE,GAC1B,KAAK,IAAI,CAAC,CAEZ"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Validation Utilities
|
|
4
|
+
*
|
|
5
|
+
* Reusable validation functions for common data types.
|
|
6
|
+
* All validators return boolean (true = valid, false = invalid).
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.COUNTRY_CODE_REGEX = exports.UID_REGEX = exports.PHONE_REGEX = exports.EMAIL_REGEX = void 0;
|
|
10
|
+
exports.validateEmail = validateEmail;
|
|
11
|
+
exports.validatePhone = validatePhone;
|
|
12
|
+
exports.validateIANATimezone = validateIANATimezone;
|
|
13
|
+
exports.validateCurrency = validateCurrency;
|
|
14
|
+
exports.validateLength = validateLength;
|
|
15
|
+
exports.validateUID = validateUID;
|
|
16
|
+
exports.validateCountryCode = validateCountryCode;
|
|
17
|
+
exports.validateURL = validateURL;
|
|
18
|
+
exports.validatePositiveNumber = validatePositiveNumber;
|
|
19
|
+
exports.validateNonNegativeNumber = validateNonNegativeNumber;
|
|
20
|
+
exports.validateFutureDate = validateFutureDate;
|
|
21
|
+
exports.validateEnum = validateEnum;
|
|
22
|
+
/**
|
|
23
|
+
* Email validation (RFC 5322 simplified)
|
|
24
|
+
*/
|
|
25
|
+
exports.EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
26
|
+
function validateEmail(email) {
|
|
27
|
+
if (!email || typeof email !== 'string') {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return exports.EMAIL_REGEX.test(email.trim());
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Phone number validation (E.164 format)
|
|
34
|
+
* Format: +[country code][number] (e.g., +61412345678)
|
|
35
|
+
* Length: 7-15 digits total (minimum viable phone number)
|
|
36
|
+
*/
|
|
37
|
+
exports.PHONE_REGEX = /^\+?[1-9]\d{6,14}$/;
|
|
38
|
+
function validatePhone(phone) {
|
|
39
|
+
if (!phone || typeof phone !== 'string') {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
return exports.PHONE_REGEX.test(phone.trim());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* IANA timezone validation
|
|
46
|
+
* Validates against the IANA timezone database
|
|
47
|
+
* Requires proper format (e.g., "Australia/Sydney", not "EST")
|
|
48
|
+
*/
|
|
49
|
+
function validateIANATimezone(timezone) {
|
|
50
|
+
if (!timezone || typeof timezone !== 'string') {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
// Require proper IANA format (must contain slash: Continent/City)
|
|
54
|
+
// Reject abbreviations like EST, GMT, UTC offsets like GMT+10
|
|
55
|
+
if (!timezone.includes('/') && timezone !== 'UTC') {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
// Use Intl.DateTimeFormat to validate timezone
|
|
60
|
+
Intl.DateTimeFormat(undefined, { timeZone: timezone });
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
catch (_a) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Currency code validation (ISO 4217)
|
|
69
|
+
* Common currencies only for MVP
|
|
70
|
+
*/
|
|
71
|
+
const VALID_CURRENCIES = new Set([
|
|
72
|
+
'AUD', // Australian Dollar
|
|
73
|
+
'USD', // US Dollar
|
|
74
|
+
'EUR', // Euro
|
|
75
|
+
'GBP', // British Pound
|
|
76
|
+
'JPY', // Japanese Yen
|
|
77
|
+
'CNY', // Chinese Yuan
|
|
78
|
+
'INR', // Indian Rupee
|
|
79
|
+
'CAD', // Canadian Dollar
|
|
80
|
+
'NZD', // New Zealand Dollar
|
|
81
|
+
'SGD', // Singapore Dollar
|
|
82
|
+
]);
|
|
83
|
+
function validateCurrency(code) {
|
|
84
|
+
if (!code || typeof code !== 'string') {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
return VALID_CURRENCIES.has(code.toUpperCase());
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* String length validation
|
|
91
|
+
*/
|
|
92
|
+
function validateLength(str, min, max) {
|
|
93
|
+
if (!str || typeof str !== 'string') {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
const length = str.trim().length;
|
|
97
|
+
return length >= min && length <= max;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* UID format validation (Firestore auto-generated IDs)
|
|
101
|
+
* Format: 20+ alphanumeric characters, hyphens, underscores
|
|
102
|
+
*/
|
|
103
|
+
exports.UID_REGEX = /^[a-zA-Z0-9_-]{20,}$/;
|
|
104
|
+
function validateUID(uid) {
|
|
105
|
+
if (!uid || typeof uid !== 'string') {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return exports.UID_REGEX.test(uid);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* ISO 3166-1 alpha-2 country code validation
|
|
112
|
+
* Format: Two uppercase letters (e.g., AU, US, GB)
|
|
113
|
+
*/
|
|
114
|
+
exports.COUNTRY_CODE_REGEX = /^[A-Z]{2}$/;
|
|
115
|
+
function validateCountryCode(code) {
|
|
116
|
+
if (!code || typeof code !== 'string') {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
return exports.COUNTRY_CODE_REGEX.test(code.toUpperCase());
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* URL validation (basic)
|
|
123
|
+
*/
|
|
124
|
+
function validateURL(url) {
|
|
125
|
+
if (!url || typeof url !== 'string') {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
const parsed = new URL(url);
|
|
130
|
+
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
|
131
|
+
}
|
|
132
|
+
catch (_a) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Positive number validation
|
|
138
|
+
*/
|
|
139
|
+
function validatePositiveNumber(value) {
|
|
140
|
+
if (typeof value !== 'number') {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
return value > 0 && !isNaN(value) && isFinite(value);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Non-negative number validation (>= 0)
|
|
147
|
+
*/
|
|
148
|
+
function validateNonNegativeNumber(value) {
|
|
149
|
+
if (typeof value !== 'number') {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
return value >= 0 && !isNaN(value) && isFinite(value);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Date validation (not in the past)
|
|
156
|
+
*/
|
|
157
|
+
function validateFutureDate(date) {
|
|
158
|
+
if (!(date instanceof Date) || isNaN(date.getTime())) {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
return date.getTime() > Date.now();
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Enum validation helper
|
|
165
|
+
*/
|
|
166
|
+
function validateEnum(value, allowedValues) {
|
|
167
|
+
return allowedValues.includes(value);
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xbg.solutions/utils-validation",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Input validation with Joi and express-validator",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"files": ["lib"],
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"build:watch": "tsc --watch",
|
|
11
|
+
"clean": "rm -rf lib",
|
|
12
|
+
"prepublishOnly": "npm run build"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {"joi": "^17.11.0", "express-validator": "^7.0.1"},
|
|
15
|
+
"devDependencies": {"@types/node": "^20.11.0", "typescript": "^5.3.3"},
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": "22"
|
|
18
|
+
},
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
}
|
|
22
|
+
}
|