From 8c096838f887b0567f52d33f2bbdf85bde39c12d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20Hano=C4=9Flu?= Date: Mon, 6 Apr 2026 12:17:47 +0300 Subject: [PATCH 1/2] refactor: Minor typing update --- package-lock.json | 26 +++++++++++------------ package.json | 6 +++--- src/rules/format-rules/is-base64.ts | 6 ++++-- src/rules/format-rules/is-credit-card.ts | 6 ++++-- src/rules/format-rules/is-email.ts | 6 ++++-- src/rules/format-rules/is-fqdn.ts | 6 ++++-- src/rules/format-rules/is-hash.ts | 6 ++++-- src/rules/format-rules/is-issn.ts | 6 ++++-- src/rules/format-rules/is-mac-address.ts | 6 ++++-- src/rules/format-rules/is-mobile-phone.ts | 12 +++++------ src/rules/format-rules/is-url.ts | 7 +++--- src/rules/format-rules/is-uuid.ts | 6 +++++- src/rules/format-rules/is-vat-number.ts | 13 +++++++++--- tsconfig-build.json | 6 ++---- 14 files changed, 71 insertions(+), 47 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6d1f874..7dfb5df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,9 @@ "tslib": "^2.8.1" }, "devDependencies": { - "@panates/eslint-config": "^2.1.1", - "@panates/eslint-config-ts": "^2.1.1", - "@panates/tsconfig": "^2.1.1", + "@panates/eslint-config": "^2.1.3", + "@panates/eslint-config-ts": "^2.1.3", + "@panates/tsconfig": "^2.1.3", "@swc-node/register": "^1.11.1", "@swc/core": "^1.15.24", "@swc/helpers": "^0.5.21", @@ -909,9 +909,9 @@ "peer": true }, "node_modules/@panates/eslint-config": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@panates/eslint-config/-/eslint-config-2.1.1.tgz", - "integrity": "sha512-GnBpRyFivT2qc25hG8axarkm2zfZUq3oH1OzWM9o4JVGNrfYzBHTU9c5x5d+Q32Ms+vjP1ESGg/aYiKQKEkqDg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@panates/eslint-config/-/eslint-config-2.1.3.tgz", + "integrity": "sha512-ZK/v6Hw1iqkcu5dY8yXUzHJRoXXk2Vc42m7F4jnl9VwdwpcKpjk7bcRzL8JQy7voRTaqRsJFv5CWEFyERJL/KQ==", "dev": true, "license": "MIT", "engines": { @@ -929,13 +929,13 @@ } }, "node_modules/@panates/eslint-config-ts": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@panates/eslint-config-ts/-/eslint-config-ts-2.1.1.tgz", - "integrity": "sha512-y72jwRLyw5DyRpneiYohiewinD4nPyRK6hxklNwMCDpbQQAPMLHqsEQlS4GpdNW/u2nJsnOD7kqTRAErNmoqeg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@panates/eslint-config-ts/-/eslint-config-ts-2.1.3.tgz", + "integrity": "sha512-yMhCQO3o4cXKo4chG2yAXrA8Mh2acJH8ZsEqYri9xefQTQdBGmBbEpq/rNrNhP4pqJjNmZ8tDmul8WvWkIV+uw==", "dev": true, "license": "MIT", "dependencies": { - "@panates/eslint-config": "^2.1.1" + "@panates/eslint-config": "^2.1.3" }, "engines": { "node": ">=18.0.0" @@ -946,9 +946,9 @@ } }, "node_modules/@panates/tsconfig": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@panates/tsconfig/-/tsconfig-2.1.1.tgz", - "integrity": "sha512-d+hX08NtKnIJHdWMxlifjHTHgljXROsehn4lG6Rk4LqQyy3HXqDyq6E+5Q/soMFyJqiKf5hB0scqOjB2XrSEHg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@panates/tsconfig/-/tsconfig-2.1.3.tgz", + "integrity": "sha512-G5awkKturzYsuHcpyh0P9ooalA/4jHoZTeGZ/O9elV/97Hbv7g/fI6Z/RQS9+i6kAKYLoNEr9PsQQNH3Rzdl7w==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index bc03ce0..fe97073 100644 --- a/package.json +++ b/package.json @@ -13,9 +13,9 @@ "tslib": "^2.8.1" }, "devDependencies": { - "@panates/eslint-config": "^2.1.1", - "@panates/eslint-config-ts": "^2.1.1", - "@panates/tsconfig": "^2.1.1", + "@panates/eslint-config": "^2.1.3", + "@panates/eslint-config-ts": "^2.1.3", + "@panates/tsconfig": "^2.1.3", "@swc-node/register": "^1.11.1", "@swc/core": "^1.15.24", "@swc/helpers": "^0.5.21", diff --git a/src/rules/format-rules/is-base64.ts b/src/rules/format-rules/is-base64.ts index 50dbe77..018e8dc 100644 --- a/src/rules/format-rules/is-base64.ts +++ b/src/rules/format-rules/is-base64.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type IsBase64Options as _IsBase64Options, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -7,7 +9,7 @@ import { } from '../../core/index.js'; export interface Base64ValidatorOptions - extends ValidationOptions, validatorJS.IsBase64Options {} + extends ValidationOptions, _IsBase64Options {} /** * Validates if value is a "Base64" string. diff --git a/src/rules/format-rules/is-credit-card.ts b/src/rules/format-rules/is-credit-card.ts index dd060ae..c26658a 100644 --- a/src/rules/format-rules/is-credit-card.ts +++ b/src/rules/format-rules/is-credit-card.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type IsCreditCardOptions as _IsCreditCardOptions, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -7,7 +9,7 @@ import { } from '../../core/index.js'; export interface CreditCardValidatorOptions - extends ValidationOptions, validatorJS.IsCreditCardOptions {} + extends ValidationOptions, _IsCreditCardOptions {} /** * Validates if value is a credit card number diff --git a/src/rules/format-rules/is-email.ts b/src/rules/format-rules/is-email.ts index 62e80eb..0bd7ab8 100644 --- a/src/rules/format-rules/is-email.ts +++ b/src/rules/format-rules/is-email.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type IsEmailOptions as _IsEmailOptions, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -76,7 +78,7 @@ export interface IsEmailOptions extends ValidationOptions { * @validator isEmail */ export function isEmail(options?: IsEmailOptions) { - const emailOptions: validatorJS.IsEmailOptions = { + const emailOptions: _IsEmailOptions = { allow_display_name: true, allow_utf8_local_part: options?.utf8LocalPart, ignore_max_length: true, diff --git a/src/rules/format-rules/is-fqdn.ts b/src/rules/format-rules/is-fqdn.ts index 17e4583..2f8635d 100644 --- a/src/rules/format-rules/is-fqdn.ts +++ b/src/rules/format-rules/is-fqdn.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type IsFQDNOptions as _IsFQDNOptions, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -19,7 +21,7 @@ export interface IsFQDNOptions extends ValidationOptions { * @validator isFQDN */ export function isFQDN(options?: IsFQDNOptions) { - const opts: validatorJS.IsFQDNOptions = { + const opts: _IsFQDNOptions = { allow_wildcard: options?.allowWildcard, }; return validator( diff --git a/src/rules/format-rules/is-hash.ts b/src/rules/format-rules/is-hash.ts index c94924b..f5e911d 100644 --- a/src/rules/format-rules/is-hash.ts +++ b/src/rules/format-rules/is-hash.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type HashAlgorithm as _HashAlgorithm, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -6,7 +8,7 @@ import { validator, } from '../../core/index.js'; -export type HashAlgorithm = validatorJS.HashAlgorithm; +export type HashAlgorithm = _HashAlgorithm; /** * Validates if value a hash of type algorithm diff --git a/src/rules/format-rules/is-issn.ts b/src/rules/format-rules/is-issn.ts index bc52304..a76c088 100644 --- a/src/rules/format-rules/is-issn.ts +++ b/src/rules/format-rules/is-issn.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type IsISSNOptions as _IsISSNOptions, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -20,7 +22,7 @@ export interface IsISSNOptions extends ValidationOptions { * @validator isISSN */ export function isISSN(options?: IsISSNOptions) { - const opts: validatorJS.IsISSNOptions = { + const opts: _IsISSNOptions = { case_sensitive: options?.caseSensitive, }; return validator( diff --git a/src/rules/format-rules/is-mac-address.ts b/src/rules/format-rules/is-mac-address.ts index 202dc06..e3be164 100644 --- a/src/rules/format-rules/is-mac-address.ts +++ b/src/rules/format-rules/is-mac-address.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type IsMACAddressOptions as _IsMACAddressOptions, +} from '@browsery/validator'; import { type Nullish } from 'ts-gems'; import { type Context, @@ -28,7 +30,7 @@ export interface IsMACAddressOptions extends ValidationOptions { * @validator isMACAddress */ export function isMACAddress(options?: IsMACAddressOptions) { - const opts: validatorJS.IsMACAddressOptions = { + const opts: _IsMACAddressOptions = { no_separators: options?.noSeparators, eui: options?.eui, }; diff --git a/src/rules/format-rules/is-mobile-phone.ts b/src/rules/format-rules/is-mobile-phone.ts index 6eb5bdc..a193fcb 100644 --- a/src/rules/format-rules/is-mobile-phone.ts +++ b/src/rules/format-rules/is-mobile-phone.ts @@ -1,4 +1,7 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type IsMobilePhoneOptions as _IsMobilePhoneOptions, + type MobilePhoneLocale as _MobilePhoneLocale, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -18,10 +21,7 @@ export interface IsMobilePhoneOptions extends ValidationOptions { * Locale or locales of the mobile phone * @default 'any' */ - locale?: - | 'any' - | validatorJS.MobilePhoneLocale - | validatorJS.MobilePhoneLocale[]; + locale?: 'any' | _MobilePhoneLocale | _MobilePhoneLocale[]; } /** @@ -29,7 +29,7 @@ export interface IsMobilePhoneOptions extends ValidationOptions { * @validator isMobilePhone */ export function isMobilePhone(options?: IsMobilePhoneOptions) { - const opts: validatorJS.IsMobilePhoneOptions = { + const opts: _IsMobilePhoneOptions = { strictMode: options?.strictMode, }; return validator( diff --git a/src/rules/format-rules/is-url.ts b/src/rules/format-rules/is-url.ts index f525863..c322cce 100644 --- a/src/rules/format-rules/is-url.ts +++ b/src/rules/format-rules/is-url.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type IsURLOptions as _IsURLOptions, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -6,8 +8,7 @@ import { validator, } from '../../core/index.js'; -export interface IsURLOptions - extends ValidationOptions, validatorJS.IsURLOptions {} +export interface IsURLOptions extends ValidationOptions, _IsURLOptions {} /** * Validates if value is an URL diff --git a/src/rules/format-rules/is-uuid.ts b/src/rules/format-rules/is-uuid.ts index 75c1030..b991a39 100644 --- a/src/rules/format-rules/is-uuid.ts +++ b/src/rules/format-rules/is-uuid.ts @@ -1,4 +1,6 @@ -import validatorJS, { UUIDVersion } from '@browsery/validator'; +import validatorJS, { + type UUIDVersion as _UUIDVersion, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -6,6 +8,8 @@ import { validator, } from '../../core/index.js'; +export type UUIDVersion = _UUIDVersion; + /** * Validates if value is a "UUID". * @validator isUUID diff --git a/src/rules/format-rules/is-vat-number.ts b/src/rules/format-rules/is-vat-number.ts index a8a810a..bfb4ea9 100644 --- a/src/rules/format-rules/is-vat-number.ts +++ b/src/rules/format-rules/is-vat-number.ts @@ -1,4 +1,6 @@ -import validatorJS from '@browsery/validator'; +import validatorJS, { + type VATCountryCode as _VATCountryCode, +} from '@browsery/validator'; import type { Nullish } from 'ts-gems'; import { type Context, @@ -6,11 +8,16 @@ import { validator, } from '../../core/index.js'; +export type VATCountryCode = _VATCountryCode; + /** - * Validates if value is an VAT number + * Validates if value is a VAT number * @validator isVAT */ -export function isVATNumber(countryCode: string, options?: ValidationOptions) { +export function isVATNumber( + countryCode: VATCountryCode, + options?: ValidationOptions, +) { return validator( 'isVATNumber', (input: unknown, context: Context, _this): Nullish => { diff --git a/tsconfig-build.json b/tsconfig-build.json index 6f3a42c..cda164d 100644 --- a/tsconfig-build.json +++ b/tsconfig-build.json @@ -1,10 +1,8 @@ { "extends": ["./tsconfig-base.json", "@panates/tsconfig/build.json"], "compilerOptions": { - "module": "NodeNext", - "moduleResolution": "NodeNext", - "declaration": true, - "outDir": "build", + "rootDir": "src", + "outDir": "build" }, "include": ["src"] } From 80b08e04b5c434608d0d272d531b68adebea1774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20Hano=C4=9Flu?= Date: Mon, 6 Apr 2026 12:18:47 +0300 Subject: [PATCH 2/2] chore: Ignored .tsbuildinfo in .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 657df9e..fa6dd91 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ node_modules /build +*.tsbuildinfo # environment variables .env