@fluojs/validation 1.0.3 → 1.0.4
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.ko.md +7 -0
- package/README.md +7 -0
- package/dist/decorators.d.ts +9 -5
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +9 -5
- package/package.json +2 -2
package/README.ko.md
CHANGED
|
@@ -136,6 +136,13 @@ class RestrictedUserDto {
|
|
|
136
136
|
|
|
137
137
|
`ValidateClass(...)`는 custom class-level validator도 받을 수 있습니다. `Validate(...)`는 built-in decorator만으로 부족할 때 custom field-level validator를 붙이고, `ValidateIf(...)`는 predicate가 false를 반환하면 dependent validator를 short-circuit합니다.
|
|
138
138
|
|
|
139
|
+
### 네트워크 검증기
|
|
140
|
+
|
|
141
|
+
`@IsIP()`는 기본적으로 IPv4와 IPv6 문자열을 모두 검증합니다. 한 IP 버전으로
|
|
142
|
+
제한하려면 `@IsIP('4')` 또는 `@IsIP('6')`을 전달하세요.
|
|
143
|
+
`@IsIP('4_or_6')`은 `@IsIP()`와 같은 런타임 동작을 유지하면서 "IPv4 또는
|
|
144
|
+
IPv6 모두 허용" 계약을 명시하고 싶을 때 사용할 수 있습니다.
|
|
145
|
+
|
|
139
146
|
### 중첩 검증
|
|
140
147
|
|
|
141
148
|
`@ValidateNested(...)`는 객체 필드, 배열, `Set`, `Map`을 지원합니다. 중첩 DTO path는 validation issue에서 dot/index 표기법을 사용하며, cycle은 안전하게 감지되고 shared reference는 허용됩니다.
|
package/README.md
CHANGED
|
@@ -140,6 +140,13 @@ class RestrictedUserDto {
|
|
|
140
140
|
|
|
141
141
|
`ValidateClass(...)` also accepts custom class-level validators. `Validate(...)` attaches custom field-level validators when built-in decorators are not enough, and `ValidateIf(...)` short-circuits dependent validators when its predicate returns false.
|
|
142
142
|
|
|
143
|
+
### Network validators
|
|
144
|
+
|
|
145
|
+
`@IsIP()` validates IPv4 and IPv6 strings by default. Pass `@IsIP('4')` or
|
|
146
|
+
`@IsIP('6')` to restrict a field to one IP version, or pass
|
|
147
|
+
`@IsIP('4_or_6')` when you want to state the default "either IPv4 or IPv6"
|
|
148
|
+
contract explicitly while still using the same runtime behavior as `@IsIP()`.
|
|
149
|
+
|
|
143
150
|
### Nested validation
|
|
144
151
|
|
|
145
152
|
`@ValidateNested(...)` supports object fields, arrays, `Set`, and `Map`. Nested DTO paths use dot/index notation in validation issues, cycles are detected safely, and shared references are allowed.
|
package/dist/decorators.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Constructor } from '@fluojs/core';
|
|
2
2
|
import { type CustomClassValidator, type CustomFieldValidator, type CustomValidationDecoratorOptions, type ValidationDecoratorOptions } from '@fluojs/core/internal';
|
|
3
3
|
import { type StandardSchemaV1Like } from './standard-schema.js';
|
|
4
4
|
type ClassDecoratorFn = (value: Function, context: ClassDecoratorContext) => void;
|
|
@@ -440,11 +440,15 @@ export declare const IsLongitude: (options?: ValidationDecoratorOptions) => Fiel
|
|
|
440
440
|
*/
|
|
441
441
|
export declare const IsLatLong: (options?: ValidationDecoratorOptions) => FieldDecoratorFn;
|
|
442
442
|
/**
|
|
443
|
-
*
|
|
443
|
+
* Validates that a value is an IPv4 and/or IPv6 address.
|
|
444
444
|
*
|
|
445
|
-
*
|
|
446
|
-
*
|
|
447
|
-
*
|
|
445
|
+
* Passing `'4_or_6'` preserves the default validator.js behavior and accepts
|
|
446
|
+
* either IP version. Passing `'4'` or `'6'` restricts validation to that
|
|
447
|
+
* version only.
|
|
448
|
+
*
|
|
449
|
+
* @param version Optional IP version filter (`'4'`, `'6'`, or `'4_or_6'`).
|
|
450
|
+
* @param options Optional validation behavior (`message`, `groups`, `always`, `each`).
|
|
451
|
+
* @returns A field decorator that registers an IP-address rule.
|
|
448
452
|
*/
|
|
449
453
|
export declare function IsIP(version?: '4' | '6' | '4_or_6', options?: ValidationDecoratorOptions): FieldDecoratorFn;
|
|
450
454
|
/**
|
package/dist/decorators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/decorators.js
CHANGED
|
@@ -657,14 +657,18 @@ export const IsLongitude = options => createValidatorJsDecorator('longitude')(un
|
|
|
657
657
|
export const IsLatLong = options => createValidatorJsDecorator('latLong')(undefined, options);
|
|
658
658
|
|
|
659
659
|
/**
|
|
660
|
-
*
|
|
660
|
+
* Validates that a value is an IPv4 and/or IPv6 address.
|
|
661
661
|
*
|
|
662
|
-
*
|
|
663
|
-
*
|
|
664
|
-
*
|
|
662
|
+
* Passing `'4_or_6'` preserves the default validator.js behavior and accepts
|
|
663
|
+
* either IP version. Passing `'4'` or `'6'` restricts validation to that
|
|
664
|
+
* version only.
|
|
665
|
+
*
|
|
666
|
+
* @param version Optional IP version filter (`'4'`, `'6'`, or `'4_or_6'`).
|
|
667
|
+
* @param options Optional validation behavior (`message`, `groups`, `always`, `each`).
|
|
668
|
+
* @returns A field decorator that registers an IP-address rule.
|
|
665
669
|
*/
|
|
666
670
|
export function IsIP(version, options) {
|
|
667
|
-
return createValidatorJsDecorator('ip')(version ? [version] : undefined, options);
|
|
671
|
+
return createValidatorJsDecorator('ip')(version && version !== '4_or_6' ? [version] : undefined, options);
|
|
668
672
|
}
|
|
669
673
|
|
|
670
674
|
/**
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"decorators",
|
|
10
10
|
"schema"
|
|
11
11
|
],
|
|
12
|
-
"version": "1.0.
|
|
12
|
+
"version": "1.0.4",
|
|
13
13
|
"private": false,
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"repository": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@standard-schema/spec": "^1.1.0",
|
|
44
44
|
"validator": "^13.15.26",
|
|
45
|
-
"@fluojs/core": "^1.0.
|
|
45
|
+
"@fluojs/core": "^1.0.3"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/validator": "^13.15.10",
|