@oxog/vld 1.5.0 → 2.0.2
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/CHANGELOG.md +168 -0
- package/LICENSE +20 -20
- package/README.md +558 -517
- package/dist/chunks/bigint-DgsCr2dC.js +1709 -0
- package/dist/chunks/bigint-DgsCr2dC.js.map +1 -0
- package/dist/{coercion/string.js → chunks/date-ODue_rtq.js} +271 -5
- package/dist/chunks/date-ODue_rtq.js.map +1 -0
- package/dist/chunks/index-BZqWZvVe.js +426 -0
- package/dist/chunks/index-BZqWZvVe.js.map +1 -0
- package/dist/chunks/index-CETyGkrv.js +894 -0
- package/dist/chunks/index-CETyGkrv.js.map +1 -0
- package/dist/chunks/json-o20GFhTh.js +2021 -0
- package/dist/chunks/json-o20GFhTh.js.map +1 -0
- package/dist/{validators/unknown.js → chunks/unknown-SLIH1VCf.js} +6 -3
- package/dist/chunks/unknown-SLIH1VCf.js.map +1 -0
- package/dist/cjs/errors.cjs +387 -0
- package/dist/cjs/errors.cjs.map +1 -0
- package/dist/cjs/index.cjs +9983 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/locales/index.cjs +2877 -0
- package/dist/cjs/locales/index.cjs.map +1 -0
- package/dist/cjs/locales/lazy.cjs +3169 -0
- package/dist/cjs/locales/lazy.cjs.map +1 -0
- package/dist/cjs/mini.cjs +7329 -0
- package/dist/cjs/mini.cjs.map +1 -0
- package/dist/codecs/index.js +4 -275
- package/dist/codecs/index.js.map +1 -1
- package/dist/coercion/index.d.ts +11 -0
- package/dist/coercion/index.d.ts.map +1 -0
- package/dist/coercion/{bigint.js → index.js} +7 -4
- package/dist/coercion/index.js.map +1 -0
- package/dist/compat/emitter.js +6 -4
- package/dist/compat/emitter.js.map +1 -1
- package/dist/compat/result.js +21 -19
- package/dist/compat/result.js.map +1 -1
- package/dist/errors.js +13 -10
- package/dist/errors.js.map +1 -1
- package/dist/index.js +225 -126
- package/dist/index.js.map +1 -1
- package/dist/kernel.js +10 -7
- package/dist/kernel.js.map +1 -1
- package/dist/locales/af.js +4 -2
- package/dist/locales/af.js.map +1 -1
- package/dist/locales/ar.js +4 -2
- package/dist/locales/ar.js.map +1 -1
- package/dist/locales/bn.js +4 -2
- package/dist/locales/bn.js.map +1 -1
- package/dist/locales/da.js +4 -2
- package/dist/locales/da.js.map +1 -1
- package/dist/locales/de.js +4 -2
- package/dist/locales/de.js.map +1 -1
- package/dist/locales/en.js +4 -2
- package/dist/locales/en.js.map +1 -1
- package/dist/locales/es-MX.js +4 -2
- package/dist/locales/es-MX.js.map +1 -1
- package/dist/locales/es.js +4 -2
- package/dist/locales/es.js.map +1 -1
- package/dist/locales/fi.js +4 -2
- package/dist/locales/fi.js.map +1 -1
- package/dist/locales/fr.js +4 -2
- package/dist/locales/fr.js.map +1 -1
- package/dist/locales/hi.js +4 -2
- package/dist/locales/hi.js.map +1 -1
- package/dist/locales/id.js +4 -2
- package/dist/locales/id.js.map +1 -1
- package/dist/locales/index.js +3 -91
- package/dist/locales/index.js.map +1 -1
- package/dist/locales/it.js +4 -2
- package/dist/locales/it.js.map +1 -1
- package/dist/locales/ja.js +4 -2
- package/dist/locales/ja.js.map +1 -1
- package/dist/locales/ko.js +4 -2
- package/dist/locales/ko.js.map +1 -1
- package/dist/locales/lazy.d.ts +111 -0
- package/dist/locales/lazy.d.ts.map +1 -0
- package/dist/locales/lazy.js +220 -0
- package/dist/locales/lazy.js.map +1 -0
- package/dist/locales/nl.js +4 -2
- package/dist/locales/nl.js.map +1 -1
- package/dist/locales/no.js +4 -2
- package/dist/locales/no.js.map +1 -1
- package/dist/locales/pl.js +4 -2
- package/dist/locales/pl.js.map +1 -1
- package/dist/locales/pt-BR.js +4 -2
- package/dist/locales/pt-BR.js.map +1 -1
- package/dist/locales/pt.js +4 -2
- package/dist/locales/pt.js.map +1 -1
- package/dist/locales/ru.js +4 -2
- package/dist/locales/ru.js.map +1 -1
- package/dist/locales/sv.js +4 -2
- package/dist/locales/sv.js.map +1 -1
- package/dist/locales/sw.js +4 -2
- package/dist/locales/sw.js.map +1 -1
- package/dist/locales/th.js +4 -2
- package/dist/locales/th.js.map +1 -1
- package/dist/locales/tr.js +4 -2
- package/dist/locales/tr.js.map +1 -1
- package/dist/locales/vi.js +4 -2
- package/dist/locales/vi.js.map +1 -1
- package/dist/locales/zh.js +4 -2
- package/dist/locales/zh.js.map +1 -1
- package/dist/mini.d.ts +182 -0
- package/dist/mini.d.ts.map +1 -0
- package/dist/mini.js +132 -0
- package/dist/mini.js.map +1 -0
- package/dist/pigment.js +8 -7
- package/dist/pigment.js.map +1 -1
- package/dist/validators/array.d.ts +5 -0
- package/dist/validators/array.d.ts.map +1 -1
- package/dist/validators/discriminated-union.d.ts.map +1 -1
- package/dist/validators/enum.d.ts +5 -1
- package/dist/validators/enum.d.ts.map +1 -1
- package/dist/validators/index.js +5 -45
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/lazy.d.ts +8 -1
- package/dist/validators/lazy.d.ts.map +1 -1
- package/dist/validators/literal.d.ts +5 -1
- package/dist/validators/literal.d.ts.map +1 -1
- package/dist/validators/object.d.ts +30 -3
- package/dist/validators/object.d.ts.map +1 -1
- package/dist/validators/string.d.ts +12 -1
- package/dist/validators/string.d.ts.map +1 -1
- package/package.json +69 -11
- package/dist/cli/benchmark.d.ts +0 -15
- package/dist/cli/benchmark.d.ts.map +0 -1
- package/dist/cli/benchmark.js +0 -248
- package/dist/cli/benchmark.js.map +0 -1
- package/dist/cli/bin.js +0 -35
- package/dist/cli/bin.js.map +0 -1
- package/dist/cli/commands/benchmark.js +0 -204
- package/dist/cli/commands/benchmark.js.map +0 -1
- package/dist/cli/commands/validate.js +0 -157
- package/dist/cli/commands/validate.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -14
- package/dist/cli/generate.d.ts.map +0 -1
- package/dist/cli/generate.js +0 -233
- package/dist/cli/generate.js.map +0 -1
- package/dist/cli/index.js +0 -182
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/validate.d.ts +0 -15
- package/dist/cli/validate.d.ts.map +0 -1
- package/dist/cli/validate.js +0 -162
- package/dist/cli/validate.js.map +0 -1
- package/dist/coercion/bigint.js.map +0 -1
- package/dist/coercion/boolean.js +0 -59
- package/dist/coercion/boolean.js.map +0 -1
- package/dist/coercion/date.js +0 -52
- package/dist/coercion/date.js.map +0 -1
- package/dist/coercion/number.js +0 -160
- package/dist/coercion/number.js.map +0 -1
- package/dist/coercion/string.js.map +0 -1
- package/dist/compat/index.js +0 -14
- package/dist/compat/index.js.map +0 -1
- package/dist/events.js +0 -8
- package/dist/events.js.map +0 -1
- package/dist/guards.d.ts +0 -143
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -238
- package/dist/guards.js.map +0 -1
- package/dist/index-new.d.ts.map +0 -1
- package/dist/locales/backup-en.js +0 -105
- package/dist/locales/backup-en.js.map +0 -1
- package/dist/locales/types.js +0 -2
- package/dist/locales/types.js.map +0 -1
- package/dist/locales.d.ts +0 -54
- package/dist/locales.d.ts.map +0 -1
- package/dist/locales.js +0 -732
- package/dist/locales.js.map +0 -1
- package/dist/logger.js +0 -184
- package/dist/logger.js.map +0 -1
- package/dist/plugins/codecs.d.ts +0 -17
- package/dist/plugins/codecs.d.ts.map +0 -1
- package/dist/plugins/codecs.js +0 -29
- package/dist/plugins/codecs.js.map +0 -1
- package/dist/plugins/coercion.d.ts +0 -13
- package/dist/plugins/coercion.d.ts.map +0 -1
- package/dist/plugins/coercion.js +0 -34
- package/dist/plugins/coercion.js.map +0 -1
- package/dist/plugins/core-validators.d.ts +0 -13
- package/dist/plugins/core-validators.d.ts.map +0 -1
- package/dist/plugins/core-validators.js +0 -96
- package/dist/plugins/core-validators.js.map +0 -1
- package/dist/plugins/index.js +0 -8
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/kernel.d.ts +0 -29
- package/dist/plugins/kernel.d.ts.map +0 -1
- package/dist/plugins/kernel.js +0 -486
- package/dist/plugins/kernel.js.map +0 -1
- package/dist/plugins/types.js +0 -8
- package/dist/plugins/types.js.map +0 -1
- package/dist/style.d.ts +0 -123
- package/dist/style.d.ts.map +0 -1
- package/dist/style.js +0 -369
- package/dist/style.js.map +0 -1
- package/dist/utils/codec-utils.js +0 -229
- package/dist/utils/codec-utils.js.map +0 -1
- package/dist/utils/deep-merge.js +0 -76
- package/dist/utils/deep-merge.js.map +0 -1
- package/dist/utils/ip-validation.js +0 -98
- package/dist/utils/ip-validation.js.map +0 -1
- package/dist/utils/security.js +0 -61
- package/dist/utils/security.js.map +0 -1
- package/dist/validators/any.js +0 -25
- package/dist/validators/any.js.map +0 -1
- package/dist/validators/array.js +0 -190
- package/dist/validators/array.js.map +0 -1
- package/dist/validators/base.js +0 -499
- package/dist/validators/base.js.map +0 -1
- package/dist/validators/base64.js +0 -65
- package/dist/validators/base64.js.map +0 -1
- package/dist/validators/bigint.js +0 -142
- package/dist/validators/bigint.js.map +0 -1
- package/dist/validators/boolean.js +0 -114
- package/dist/validators/boolean.js.map +0 -1
- package/dist/validators/codec.js +0 -182
- package/dist/validators/codec.js.map +0 -1
- package/dist/validators/custom.js +0 -50
- package/dist/validators/custom.js.map +0 -1
- package/dist/validators/date.js +0 -227
- package/dist/validators/date.js.map +0 -1
- package/dist/validators/discriminated-union.js +0 -98
- package/dist/validators/discriminated-union.js.map +0 -1
- package/dist/validators/enum.js +0 -82
- package/dist/validators/enum.js.map +0 -1
- package/dist/validators/file.js +0 -114
- package/dist/validators/file.js.map +0 -1
- package/dist/validators/function.js +0 -45
- package/dist/validators/function.js.map +0 -1
- package/dist/validators/hex.js +0 -62
- package/dist/validators/hex.js.map +0 -1
- package/dist/validators/intersection.js +0 -64
- package/dist/validators/intersection.js.map +0 -1
- package/dist/validators/json.js +0 -64
- package/dist/validators/json.js.map +0 -1
- package/dist/validators/lazy.js +0 -42
- package/dist/validators/lazy.js.map +0 -1
- package/dist/validators/literal.js +0 -45
- package/dist/validators/literal.js.map +0 -1
- package/dist/validators/map.js +0 -54
- package/dist/validators/map.js.map +0 -1
- package/dist/validators/nan.js +0 -32
- package/dist/validators/nan.js.map +0 -1
- package/dist/validators/never.js +0 -29
- package/dist/validators/never.js.map +0 -1
- package/dist/validators/null.js +0 -31
- package/dist/validators/null.js.map +0 -1
- package/dist/validators/number.js +0 -225
- package/dist/validators/number.js.map +0 -1
- package/dist/validators/object-optimized.d.ts +0 -23
- package/dist/validators/object-optimized.d.ts.map +0 -1
- package/dist/validators/object-optimized.js +0 -179
- package/dist/validators/object-optimized.js.map +0 -1
- package/dist/validators/object-ultra.d.ts +0 -34
- package/dist/validators/object-ultra.d.ts.map +0 -1
- package/dist/validators/object-ultra.js +0 -175
- package/dist/validators/object-ultra.js.map +0 -1
- package/dist/validators/object.js +0 -458
- package/dist/validators/object.js.map +0 -1
- package/dist/validators/record.js +0 -128
- package/dist/validators/record.js.map +0 -1
- package/dist/validators/set.js +0 -51
- package/dist/validators/set.js.map +0 -1
- package/dist/validators/string-bool.js +0 -127
- package/dist/validators/string-bool.js.map +0 -1
- package/dist/validators/string-formats.js +0 -120
- package/dist/validators/string-formats.js.map +0 -1
- package/dist/validators/string-ultra.d.ts +0 -49
- package/dist/validators/string-ultra.d.ts.map +0 -1
- package/dist/validators/string-ultra.js +0 -217
- package/dist/validators/string-ultra.js.map +0 -1
- package/dist/validators/string.js +0 -253
- package/dist/validators/string.js.map +0 -1
- package/dist/validators/symbol.js +0 -42
- package/dist/validators/symbol.js.map +0 -1
- package/dist/validators/template-literal.js +0 -102
- package/dist/validators/template-literal.js.map +0 -1
- package/dist/validators/tuple.js +0 -55
- package/dist/validators/tuple.js.map +0 -1
- package/dist/validators/uint8array.js +0 -98
- package/dist/validators/uint8array.js.map +0 -1
- package/dist/validators/undefined.js +0 -31
- package/dist/validators/undefined.js.map +0 -1
- package/dist/validators/union-optimized.d.ts +0 -15
- package/dist/validators/union-optimized.d.ts.map +0 -1
- package/dist/validators/union-optimized.js +0 -92
- package/dist/validators/union-optimized.js.map +0 -1
- package/dist/validators/union.js +0 -126
- package/dist/validators/union.js.map +0 -1
- package/dist/validators/unknown.js.map +0 -1
- package/dist/validators/void.js +0 -35
- package/dist/validators/void.js.map +0 -1
- package/dist/validators/xor.js +0 -64
- package/dist/validators/xor.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,174 @@ All notable changes to VLD will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.0.2] - 2026-02-27
|
|
9
|
+
|
|
10
|
+
### ⚡ Performance Optimizations
|
|
11
|
+
|
|
12
|
+
#### **VldString - Pre-compiled Validation Functions**
|
|
13
|
+
- **File**: `src/validators/string.ts`
|
|
14
|
+
- **Optimization**: Added pre-compiled validator functions with fast paths for 0-3 transforms/checks
|
|
15
|
+
- **Impact**: Eliminates loop overhead and enables better JIT optimization
|
|
16
|
+
- **Details**: Unrolled loops for common cases (1-2-3 transforms/checks) reduce function call overhead
|
|
17
|
+
|
|
18
|
+
#### **VldObject - Consolidated Object.keys() Calls**
|
|
19
|
+
- **File**: `src/validators/object.ts`
|
|
20
|
+
- **Optimization**: Reduced from 3 separate `Object.keys()` calls to 1 shared call
|
|
21
|
+
- **Impact**: ~66% reduction in key enumeration overhead for strict/passthrough/catchall modes
|
|
22
|
+
- **Details**: Single `Object.keys()` call shared across all three modes
|
|
23
|
+
|
|
24
|
+
#### **VldArray - WeakMap Caching for stableStringify**
|
|
25
|
+
- **File**: `src/validators/array.ts`
|
|
26
|
+
- **Optimization**: Added `WeakMap<object, string>` cache for object serialization
|
|
27
|
+
- **Impact**: Significant performance improvement for arrays with duplicate object references
|
|
28
|
+
- **Details**: Avoids repeated `stableStringify` calls for the same object references
|
|
29
|
+
|
|
30
|
+
#### **VldLazy - Memory Leak Prevention**
|
|
31
|
+
- **File**: `src/validators/lazy.ts`
|
|
32
|
+
- **Optimization**: Implemented `WeakRef` caching with strong reference fallback
|
|
33
|
+
- **Impact**: Allows garbage collection when validators are no longer in use
|
|
34
|
+
- **Details**: Prevents memory leaks in long-running applications with dynamic schemas
|
|
35
|
+
|
|
36
|
+
### 🔧 Type Safety Improvements
|
|
37
|
+
|
|
38
|
+
#### **VldDiscriminatedUnion - Removed `any` Usage**
|
|
39
|
+
- **File**: `src/validators/discriminated-union.ts`
|
|
40
|
+
- **Changes**:
|
|
41
|
+
- Added public `literal` getter to `VldLiteral` class
|
|
42
|
+
- Added public `values` getter to `VldEnum` class
|
|
43
|
+
- Replaced `(value as any)` with `(value as Record<string, unknown>)`
|
|
44
|
+
- **Impact**: Improved type safety without breaking changes
|
|
45
|
+
|
|
46
|
+
### 📦 Build System
|
|
47
|
+
|
|
48
|
+
#### **ES2021 WeakRef Support**
|
|
49
|
+
- **File**: `tsconfig.json`
|
|
50
|
+
- **Change**: Updated `"lib": ["ES2020"]` to `"lib": ["ES2021"]`
|
|
51
|
+
- **Impact**: Native `WeakRef` support for memory optimizations
|
|
52
|
+
|
|
53
|
+
### 🧪 Testing
|
|
54
|
+
- **All 1858 tests passing** - 100% success rate maintained
|
|
55
|
+
- **98.99% code coverage** - Comprehensive test coverage
|
|
56
|
+
- **No breaking changes** - Full backwards compatibility
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## [2.0.1] - 2026-01-25
|
|
61
|
+
|
|
62
|
+
### 🧪 Test Coverage Improvements
|
|
63
|
+
- **99.23% Statement Coverage**: Up from previous release
|
|
64
|
+
- **1,858 Tests Passing**: Comprehensive test suite with 100% success rate
|
|
65
|
+
- **Coverage Gap Tests**: Added dedicated test file for edge cases
|
|
66
|
+
|
|
67
|
+
### 🔧 Bug Fixes
|
|
68
|
+
- Fixed TypeScript errors in test files
|
|
69
|
+
- Fixed lazy locale loader edge cases
|
|
70
|
+
- Improved codec error handling tests
|
|
71
|
+
|
|
72
|
+
### 📚 Documentation
|
|
73
|
+
- Updated version references across documentation
|
|
74
|
+
- Improved test coverage documentation
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## [2.0.0] - 2026-01-20
|
|
79
|
+
|
|
80
|
+
### 🚀 **Major Release - Modular Architecture**
|
|
81
|
+
|
|
82
|
+
This release introduces a completely new modular architecture for better tree-shaking, lazy locale loading, and dual ESM/CJS support.
|
|
83
|
+
|
|
84
|
+
### ✨ New Features
|
|
85
|
+
|
|
86
|
+
#### **Tree-Shakable Mini API** (`@oxog/vld/mini`)
|
|
87
|
+
New functional API that enables proper tree-shaking:
|
|
88
|
+
```typescript
|
|
89
|
+
import { string, number, object, optional } from '@oxog/vld/mini';
|
|
90
|
+
|
|
91
|
+
const schema = object({
|
|
92
|
+
name: string().min(1),
|
|
93
|
+
age: optional(number().positive()),
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
- **82% bundle size reduction** when using only needed validators
|
|
97
|
+
- Individual factory functions instead of monolithic `v` object
|
|
98
|
+
- Full TypeScript support with identical type inference
|
|
99
|
+
|
|
100
|
+
#### **Lazy Locale Loading** (`@oxog/vld/locales`)
|
|
101
|
+
Async locale loading to reduce initial bundle size:
|
|
102
|
+
```typescript
|
|
103
|
+
import { setLocaleAsync } from '@oxog/vld/locales';
|
|
104
|
+
await setLocaleAsync('tr'); // Loads Turkish on demand
|
|
105
|
+
```
|
|
106
|
+
- **92% bundle reduction** - Only English bundled by default
|
|
107
|
+
- `preloadLocales()` for SSR/batch loading
|
|
108
|
+
- `registerLocale()` for static imports
|
|
109
|
+
- Full backwards compatibility with existing `setLocale()`
|
|
110
|
+
|
|
111
|
+
#### **Dual ESM/CJS Build System**
|
|
112
|
+
- ESM builds for modern bundlers (Vite, esbuild, webpack 5+)
|
|
113
|
+
- CJS builds for Node.js and legacy environments
|
|
114
|
+
- Proper `exports` field in package.json with conditional exports
|
|
115
|
+
|
|
116
|
+
#### **New Coercion Module** (`@oxog/vld/coercion`)
|
|
117
|
+
Dedicated coercion validators export:
|
|
118
|
+
```typescript
|
|
119
|
+
import { VldCoerceString, VldCoerceNumber } from '@oxog/vld/coercion';
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 📦 Package Exports
|
|
123
|
+
|
|
124
|
+
New conditional exports for optimal imports:
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"@oxog/vld": "Full API (backwards compatible)",
|
|
128
|
+
"@oxog/vld/mini": "Tree-shakable functional API",
|
|
129
|
+
"@oxog/vld/locales": "Lazy locale loader",
|
|
130
|
+
"@oxog/vld/locales/*": "Individual locale files",
|
|
131
|
+
"@oxog/vld/validators/*": "Individual validators",
|
|
132
|
+
"@oxog/vld/codecs": "Codec utilities",
|
|
133
|
+
"@oxog/vld/errors": "Error formatting utilities"
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 🔧 Build System Changes
|
|
138
|
+
- Migrated to Rollup with `@rollup/plugin-typescript`
|
|
139
|
+
- Removed duplicate `rollup-plugin-typescript2`
|
|
140
|
+
- Added `tsconfig.build.json` for type declarations
|
|
141
|
+
- Inline dynamic imports for CJS lazy locale build
|
|
142
|
+
|
|
143
|
+
### 📊 Bundle Size Comparison
|
|
144
|
+
|
|
145
|
+
| Scenario | v1.x | v2.0 | Improvement |
|
|
146
|
+
|----------|------|------|-------------|
|
|
147
|
+
| Full API import | 45KB | 45KB | - |
|
|
148
|
+
| Mini API (string + object) | 45KB | ~8KB | **82%** |
|
|
149
|
+
| Single validator | 45KB | ~3KB | **93%** |
|
|
150
|
+
| With 1 locale only | 108KB+ | ~8KB | **92%** |
|
|
151
|
+
|
|
152
|
+
### 🧪 Testing
|
|
153
|
+
- **1,858 tests** - All passing
|
|
154
|
+
- **99.23% coverage** - Comprehensive test suite
|
|
155
|
+
- Added tests for mini API, lazy locales, and coverage gaps
|
|
156
|
+
|
|
157
|
+
### ⚠️ Migration Guide
|
|
158
|
+
|
|
159
|
+
**No breaking changes** - v2.0 is fully backwards compatible:
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
// Old way (still works)
|
|
163
|
+
import { v, setLocale } from '@oxog/vld';
|
|
164
|
+
setLocale('tr');
|
|
165
|
+
const schema = v.string().min(1);
|
|
166
|
+
|
|
167
|
+
// New way (tree-shakable)
|
|
168
|
+
import { string } from '@oxog/vld/mini';
|
|
169
|
+
import { setLocaleAsync } from '@oxog/vld/locales';
|
|
170
|
+
await setLocaleAsync('tr');
|
|
171
|
+
const schema = string().min(1);
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
8
176
|
## [1.4.0] - 2026-01-02
|
|
9
177
|
|
|
10
178
|
### 🚀 **Zod 4 Full API Parity Achieved**
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Ersin Koc
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Ersin Koc
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE.
|