@jdsalasc/solvejs-validators 1.1.0 → 1.2.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/README.md CHANGED
@@ -1,29 +1,18 @@
1
1
  # @jdsalasc/solvejs-validators
2
2
 
3
- Validation helpers for common web and app form pain points.
3
+ Zero-dependency validators for real-world JS/TS forms with structured error results.
4
+
5
+ ## Tools Included
6
+
7
+ - `validateCellphoneNumber` (country presets)
8
+ - `validateAddressDirection` (locale support)
9
+ - `validateName`, `validateUsername`, `validateAddressLine`
10
+ - `validateEmail`, `validateHttpUrl`, `validatePostalCode`
11
+ - `validateStrongPassword`, `validateCreditCardNumber`
12
+ - Boolean wrappers (`isX`) for quick checks
4
13
 
5
14
  ## Install
6
15
 
7
16
  ```bash
8
17
  npm i @jdsalasc/solvejs-validators
9
18
  ```
10
-
11
- ## Example
12
-
13
- ```ts
14
- import { isCellphoneNumber, validateCellphoneNumber, validateName } from "@jdsalasc/solvejs-validators";
15
-
16
- isCellphoneNumber("+573001112233");
17
- validateCellphoneNumber("+573001112233", { country: "CO" });
18
- validateName("Maria Fernanda");
19
- ```
20
-
21
- Structured validators return:
22
-
23
- ```ts
24
- type ValidationResult = {
25
- ok: boolean;
26
- code: string;
27
- message: string;
28
- };
29
- ```
@@ -4,16 +4,24 @@ exports.validateCellphoneNumber = validateCellphoneNumber;
4
4
  exports.isCellphoneNumber = isCellphoneNumber;
5
5
  exports.validateAddressDirection = validateAddressDirection;
6
6
  exports.isAddressDirection = isAddressDirection;
7
+ exports.isAddresDirection = isAddresDirection;
8
+ exports.isAddresDirrection = isAddresDirrection;
7
9
  exports.validateName = validateName;
8
10
  exports.isValidName = isValidName;
11
+ exports.validateUsername = validateUsername;
12
+ exports.isUsername = isUsername;
9
13
  exports.validateEmail = validateEmail;
10
14
  exports.isEmail = isEmail;
11
15
  exports.validateHttpUrl = validateHttpUrl;
12
16
  exports.isHttpUrl = isHttpUrl;
13
17
  exports.validatePostalCode = validatePostalCode;
14
18
  exports.isPostalCode = isPostalCode;
19
+ exports.validateAddressLine = validateAddressLine;
20
+ exports.isAddressLine = isAddressLine;
15
21
  exports.validateStrongPassword = validateStrongPassword;
16
22
  exports.isStrongPassword = isStrongPassword;
23
+ exports.validateCreditCardNumber = validateCreditCardNumber;
24
+ exports.isCreditCardNumber = isCreditCardNumber;
17
25
  const ADDRESS_DIRECTIONS = {
18
26
  en: new Set([
19
27
  "N",
@@ -143,6 +151,26 @@ function validateAddressDirection(value, options = {}) {
143
151
  function isAddressDirection(value, options = {}) {
144
152
  return validateAddressDirection(value, options).ok;
145
153
  }
154
+ /**
155
+ * Backward-compatible alias for users who typed the previous function with one missing `d`.
156
+ *
157
+ * @param value - Direction text.
158
+ * @param options - Validation options.
159
+ * @returns `true` when the direction is valid.
160
+ */
161
+ function isAddresDirection(value, options = {}) {
162
+ return isAddressDirection(value, options);
163
+ }
164
+ /**
165
+ * Backward-compatible alias for users who typed the previous function with two spelling mistakes.
166
+ *
167
+ * @param value - Direction text.
168
+ * @param options - Validation options.
169
+ * @returns `true` when the direction is valid.
170
+ */
171
+ function isAddresDirrection(value, options = {}) {
172
+ return isAddressDirection(value, options);
173
+ }
146
174
  /**
147
175
  * Validates person names with practical production constraints.
148
176
  *
@@ -180,6 +208,43 @@ function validateName(value, options = {}) {
180
208
  function isValidName(value, options = {}) {
181
209
  return validateName(value, options).ok;
182
210
  }
211
+ /**
212
+ * Validates usernames used in sign-up forms.
213
+ *
214
+ * @param value - Username candidate.
215
+ * @param options - Validation options.
216
+ * @param options.minLength - Minimum length.
217
+ * @param options.maxLength - Maximum length.
218
+ * @returns Structured validation result.
219
+ */
220
+ function validateUsername(value, options = {}) {
221
+ const minLength = options.minLength ?? 3;
222
+ const maxLength = options.maxLength ?? 30;
223
+ const normalized = value.trim();
224
+ if (!normalized) {
225
+ return fail("EMPTY", "Username cannot be empty.");
226
+ }
227
+ if (normalized.length < minLength) {
228
+ return fail("TOO_SHORT", `Username must have at least ${minLength} characters.`);
229
+ }
230
+ if (normalized.length > maxLength) {
231
+ return fail("TOO_LONG", `Username must have at most ${maxLength} characters.`);
232
+ }
233
+ if (!/^[a-zA-Z0-9_]+$/.test(normalized)) {
234
+ return fail("INVALID_CHARACTERS", "Username can only contain letters, numbers, and underscores.");
235
+ }
236
+ return ok("Valid username.");
237
+ }
238
+ /**
239
+ * Boolean wrapper for `validateUsername`.
240
+ *
241
+ * @param value - Username candidate.
242
+ * @param options - Validation options.
243
+ * @returns `true` when the username is valid.
244
+ */
245
+ function isUsername(value, options = {}) {
246
+ return validateUsername(value, options).ok;
247
+ }
183
248
  /**
184
249
  * Validates an email shape.
185
250
  *
@@ -259,6 +324,43 @@ function validatePostalCode(value) {
259
324
  function isPostalCode(value) {
260
325
  return validatePostalCode(value).ok;
261
326
  }
327
+ /**
328
+ * Validates address line input for common delivery/billing forms.
329
+ *
330
+ * @param value - Address line string.
331
+ * @param options - Validation options.
332
+ * @param options.minLength - Minimum length.
333
+ * @param options.maxLength - Maximum length.
334
+ * @returns Structured validation result.
335
+ */
336
+ function validateAddressLine(value, options = {}) {
337
+ const minLength = options.minLength ?? 5;
338
+ const maxLength = options.maxLength ?? 120;
339
+ const normalized = value.trim();
340
+ if (!normalized) {
341
+ return fail("EMPTY", "Address line cannot be empty.");
342
+ }
343
+ if (normalized.length < minLength) {
344
+ return fail("TOO_SHORT", `Address line must have at least ${minLength} characters.`);
345
+ }
346
+ if (normalized.length > maxLength) {
347
+ return fail("TOO_LONG", `Address line must have at most ${maxLength} characters.`);
348
+ }
349
+ if (!/^[A-Za-z0-9À-ÖØ-öø-ÿ#.,'\/ -]+$/.test(normalized)) {
350
+ return fail("INVALID_CHARACTERS", "Address line contains unsupported characters.");
351
+ }
352
+ return ok("Valid address line.");
353
+ }
354
+ /**
355
+ * Boolean wrapper for `validateAddressLine`.
356
+ *
357
+ * @param value - Address line string.
358
+ * @param options - Validation options.
359
+ * @returns `true` when the address line is valid.
360
+ */
361
+ function isAddressLine(value, options = {}) {
362
+ return validateAddressLine(value, options).ok;
363
+ }
262
364
  /**
263
365
  * Validates password strength using default security checks.
264
366
  *
@@ -290,4 +392,48 @@ function validateStrongPassword(value, options = {}) {
290
392
  function isStrongPassword(value, options = {}) {
291
393
  return validateStrongPassword(value, options).ok;
292
394
  }
395
+ function luhnCheck(value) {
396
+ let sum = 0;
397
+ let shouldDouble = false;
398
+ for (let index = value.length - 1; index >= 0; index -= 1) {
399
+ let digit = Number(value[index]);
400
+ if (shouldDouble) {
401
+ digit *= 2;
402
+ if (digit > 9) {
403
+ digit -= 9;
404
+ }
405
+ }
406
+ sum += digit;
407
+ shouldDouble = !shouldDouble;
408
+ }
409
+ return sum % 10 === 0;
410
+ }
411
+ /**
412
+ * Validates card numbers using basic shape checks plus Luhn checksum.
413
+ *
414
+ * @param value - Card number candidate.
415
+ * @returns Structured validation result.
416
+ */
417
+ function validateCreditCardNumber(value) {
418
+ const normalized = value.replace(/[\s-]/g, "");
419
+ if (!normalized) {
420
+ return fail("EMPTY", "Card number cannot be empty.");
421
+ }
422
+ if (!/^\d{12,19}$/.test(normalized)) {
423
+ return fail("INVALID_FORMAT", "Card number must contain only digits and valid length.");
424
+ }
425
+ if (!luhnCheck(normalized)) {
426
+ return fail("CHECKSUM_FAILED", "Card number checksum is invalid.");
427
+ }
428
+ return ok("Valid card number.");
429
+ }
430
+ /**
431
+ * Boolean wrapper for `validateCreditCardNumber`.
432
+ *
433
+ * @param value - Card number candidate.
434
+ * @returns `true` when the card number is valid.
435
+ */
436
+ function isCreditCardNumber(value) {
437
+ return validateCreditCardNumber(value).ok;
438
+ }
293
439
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type ValidationResultCode = "VALID" | "EMPTY" | "INVALID_FORMAT" | "TOO_SHORT" | "TOO_LONG" | "INVALID_CHARACTERS" | "UNSUPPORTED_LOCALE" | "UNSUPPORTED_COUNTRY";
1
+ export type ValidationResultCode = "VALID" | "EMPTY" | "INVALID_FORMAT" | "TOO_SHORT" | "TOO_LONG" | "INVALID_CHARACTERS" | "UNSUPPORTED_LOCALE" | "UNSUPPORTED_COUNTRY" | "CHECKSUM_FAILED";
2
2
  export type ValidationResult = {
3
3
  ok: boolean;
4
4
  code: ValidationResultCode;
@@ -57,6 +57,26 @@ export declare function validateAddressDirection(value: string, options?: {
57
57
  export declare function isAddressDirection(value: string, options?: {
58
58
  locale?: DirectionLocale;
59
59
  }): boolean;
60
+ /**
61
+ * Backward-compatible alias for users who typed the previous function with one missing `d`.
62
+ *
63
+ * @param value - Direction text.
64
+ * @param options - Validation options.
65
+ * @returns `true` when the direction is valid.
66
+ */
67
+ export declare function isAddresDirection(value: string, options?: {
68
+ locale?: DirectionLocale;
69
+ }): boolean;
70
+ /**
71
+ * Backward-compatible alias for users who typed the previous function with two spelling mistakes.
72
+ *
73
+ * @param value - Direction text.
74
+ * @param options - Validation options.
75
+ * @returns `true` when the direction is valid.
76
+ */
77
+ export declare function isAddresDirrection(value: string, options?: {
78
+ locale?: DirectionLocale;
79
+ }): boolean;
60
80
  /**
61
81
  * Validates person names with practical production constraints.
62
82
  *
@@ -81,6 +101,30 @@ export declare function isValidName(value: string, options?: {
81
101
  minLength?: number;
82
102
  maxLength?: number;
83
103
  }): boolean;
104
+ /**
105
+ * Validates usernames used in sign-up forms.
106
+ *
107
+ * @param value - Username candidate.
108
+ * @param options - Validation options.
109
+ * @param options.minLength - Minimum length.
110
+ * @param options.maxLength - Maximum length.
111
+ * @returns Structured validation result.
112
+ */
113
+ export declare function validateUsername(value: string, options?: {
114
+ minLength?: number;
115
+ maxLength?: number;
116
+ }): ValidationResult;
117
+ /**
118
+ * Boolean wrapper for `validateUsername`.
119
+ *
120
+ * @param value - Username candidate.
121
+ * @param options - Validation options.
122
+ * @returns `true` when the username is valid.
123
+ */
124
+ export declare function isUsername(value: string, options?: {
125
+ minLength?: number;
126
+ maxLength?: number;
127
+ }): boolean;
84
128
  /**
85
129
  * Validates an email shape.
86
130
  *
@@ -123,6 +167,30 @@ export declare function validatePostalCode(value: string): ValidationResult;
123
167
  * @returns `true` when the value is valid.
124
168
  */
125
169
  export declare function isPostalCode(value: string): boolean;
170
+ /**
171
+ * Validates address line input for common delivery/billing forms.
172
+ *
173
+ * @param value - Address line string.
174
+ * @param options - Validation options.
175
+ * @param options.minLength - Minimum length.
176
+ * @param options.maxLength - Maximum length.
177
+ * @returns Structured validation result.
178
+ */
179
+ export declare function validateAddressLine(value: string, options?: {
180
+ minLength?: number;
181
+ maxLength?: number;
182
+ }): ValidationResult;
183
+ /**
184
+ * Boolean wrapper for `validateAddressLine`.
185
+ *
186
+ * @param value - Address line string.
187
+ * @param options - Validation options.
188
+ * @returns `true` when the address line is valid.
189
+ */
190
+ export declare function isAddressLine(value: string, options?: {
191
+ minLength?: number;
192
+ maxLength?: number;
193
+ }): boolean;
126
194
  /**
127
195
  * Validates password strength using default security checks.
128
196
  *
@@ -144,3 +212,17 @@ export declare function validateStrongPassword(value: string, options?: {
144
212
  export declare function isStrongPassword(value: string, options?: {
145
213
  minLength?: number;
146
214
  }): boolean;
215
+ /**
216
+ * Validates card numbers using basic shape checks plus Luhn checksum.
217
+ *
218
+ * @param value - Card number candidate.
219
+ * @returns Structured validation result.
220
+ */
221
+ export declare function validateCreditCardNumber(value: string): ValidationResult;
222
+ /**
223
+ * Boolean wrapper for `validateCreditCardNumber`.
224
+ *
225
+ * @param value - Card number candidate.
226
+ * @returns `true` when the card number is valid.
227
+ */
228
+ export declare function isCreditCardNumber(value: string): boolean;
package/dist/esm/index.js CHANGED
@@ -127,6 +127,26 @@ export function validateAddressDirection(value, options = {}) {
127
127
  export function isAddressDirection(value, options = {}) {
128
128
  return validateAddressDirection(value, options).ok;
129
129
  }
130
+ /**
131
+ * Backward-compatible alias for users who typed the previous function with one missing `d`.
132
+ *
133
+ * @param value - Direction text.
134
+ * @param options - Validation options.
135
+ * @returns `true` when the direction is valid.
136
+ */
137
+ export function isAddresDirection(value, options = {}) {
138
+ return isAddressDirection(value, options);
139
+ }
140
+ /**
141
+ * Backward-compatible alias for users who typed the previous function with two spelling mistakes.
142
+ *
143
+ * @param value - Direction text.
144
+ * @param options - Validation options.
145
+ * @returns `true` when the direction is valid.
146
+ */
147
+ export function isAddresDirrection(value, options = {}) {
148
+ return isAddressDirection(value, options);
149
+ }
130
150
  /**
131
151
  * Validates person names with practical production constraints.
132
152
  *
@@ -164,6 +184,43 @@ export function validateName(value, options = {}) {
164
184
  export function isValidName(value, options = {}) {
165
185
  return validateName(value, options).ok;
166
186
  }
187
+ /**
188
+ * Validates usernames used in sign-up forms.
189
+ *
190
+ * @param value - Username candidate.
191
+ * @param options - Validation options.
192
+ * @param options.minLength - Minimum length.
193
+ * @param options.maxLength - Maximum length.
194
+ * @returns Structured validation result.
195
+ */
196
+ export function validateUsername(value, options = {}) {
197
+ const minLength = options.minLength ?? 3;
198
+ const maxLength = options.maxLength ?? 30;
199
+ const normalized = value.trim();
200
+ if (!normalized) {
201
+ return fail("EMPTY", "Username cannot be empty.");
202
+ }
203
+ if (normalized.length < minLength) {
204
+ return fail("TOO_SHORT", `Username must have at least ${minLength} characters.`);
205
+ }
206
+ if (normalized.length > maxLength) {
207
+ return fail("TOO_LONG", `Username must have at most ${maxLength} characters.`);
208
+ }
209
+ if (!/^[a-zA-Z0-9_]+$/.test(normalized)) {
210
+ return fail("INVALID_CHARACTERS", "Username can only contain letters, numbers, and underscores.");
211
+ }
212
+ return ok("Valid username.");
213
+ }
214
+ /**
215
+ * Boolean wrapper for `validateUsername`.
216
+ *
217
+ * @param value - Username candidate.
218
+ * @param options - Validation options.
219
+ * @returns `true` when the username is valid.
220
+ */
221
+ export function isUsername(value, options = {}) {
222
+ return validateUsername(value, options).ok;
223
+ }
167
224
  /**
168
225
  * Validates an email shape.
169
226
  *
@@ -243,6 +300,43 @@ export function validatePostalCode(value) {
243
300
  export function isPostalCode(value) {
244
301
  return validatePostalCode(value).ok;
245
302
  }
303
+ /**
304
+ * Validates address line input for common delivery/billing forms.
305
+ *
306
+ * @param value - Address line string.
307
+ * @param options - Validation options.
308
+ * @param options.minLength - Minimum length.
309
+ * @param options.maxLength - Maximum length.
310
+ * @returns Structured validation result.
311
+ */
312
+ export function validateAddressLine(value, options = {}) {
313
+ const minLength = options.minLength ?? 5;
314
+ const maxLength = options.maxLength ?? 120;
315
+ const normalized = value.trim();
316
+ if (!normalized) {
317
+ return fail("EMPTY", "Address line cannot be empty.");
318
+ }
319
+ if (normalized.length < minLength) {
320
+ return fail("TOO_SHORT", `Address line must have at least ${minLength} characters.`);
321
+ }
322
+ if (normalized.length > maxLength) {
323
+ return fail("TOO_LONG", `Address line must have at most ${maxLength} characters.`);
324
+ }
325
+ if (!/^[A-Za-z0-9À-ÖØ-öø-ÿ#.,'\/ -]+$/.test(normalized)) {
326
+ return fail("INVALID_CHARACTERS", "Address line contains unsupported characters.");
327
+ }
328
+ return ok("Valid address line.");
329
+ }
330
+ /**
331
+ * Boolean wrapper for `validateAddressLine`.
332
+ *
333
+ * @param value - Address line string.
334
+ * @param options - Validation options.
335
+ * @returns `true` when the address line is valid.
336
+ */
337
+ export function isAddressLine(value, options = {}) {
338
+ return validateAddressLine(value, options).ok;
339
+ }
246
340
  /**
247
341
  * Validates password strength using default security checks.
248
342
  *
@@ -274,4 +368,48 @@ export function validateStrongPassword(value, options = {}) {
274
368
  export function isStrongPassword(value, options = {}) {
275
369
  return validateStrongPassword(value, options).ok;
276
370
  }
371
+ function luhnCheck(value) {
372
+ let sum = 0;
373
+ let shouldDouble = false;
374
+ for (let index = value.length - 1; index >= 0; index -= 1) {
375
+ let digit = Number(value[index]);
376
+ if (shouldDouble) {
377
+ digit *= 2;
378
+ if (digit > 9) {
379
+ digit -= 9;
380
+ }
381
+ }
382
+ sum += digit;
383
+ shouldDouble = !shouldDouble;
384
+ }
385
+ return sum % 10 === 0;
386
+ }
387
+ /**
388
+ * Validates card numbers using basic shape checks plus Luhn checksum.
389
+ *
390
+ * @param value - Card number candidate.
391
+ * @returns Structured validation result.
392
+ */
393
+ export function validateCreditCardNumber(value) {
394
+ const normalized = value.replace(/[\s-]/g, "");
395
+ if (!normalized) {
396
+ return fail("EMPTY", "Card number cannot be empty.");
397
+ }
398
+ if (!/^\d{12,19}$/.test(normalized)) {
399
+ return fail("INVALID_FORMAT", "Card number must contain only digits and valid length.");
400
+ }
401
+ if (!luhnCheck(normalized)) {
402
+ return fail("CHECKSUM_FAILED", "Card number checksum is invalid.");
403
+ }
404
+ return ok("Valid card number.");
405
+ }
406
+ /**
407
+ * Boolean wrapper for `validateCreditCardNumber`.
408
+ *
409
+ * @param value - Card number candidate.
410
+ * @returns `true` when the card number is valid.
411
+ */
412
+ export function isCreditCardNumber(value) {
413
+ return validateCreditCardNumber(value).ok;
414
+ }
277
415
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jdsalasc/solvejs-validators",
3
- "version": "1.1.0",
4
- "description": "Practical validators for real JS/TS form pain points: cellphone, direction, name, password, email, and URL.",
3
+ "version": "1.2.0",
4
+ "description": "Zero-dependency validators for JS/TS forms with structured result codes and region-aware checks.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "sideEffects": false,
@@ -44,9 +44,11 @@
44
44
  },
45
45
  "keywords": [
46
46
  "validators",
47
- "cellphone validator",
48
- "name validator",
49
- "password validator",
47
+ "form validation",
48
+ "cellphone validation",
49
+ "credit card luhn",
50
+ "username validation",
51
+ "typescript validation",
50
52
  "solvejs"
51
53
  ]
52
54
  }