@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.
Files changed (293) hide show
  1. package/CHANGELOG.md +168 -0
  2. package/LICENSE +20 -20
  3. package/README.md +558 -517
  4. package/dist/chunks/bigint-DgsCr2dC.js +1709 -0
  5. package/dist/chunks/bigint-DgsCr2dC.js.map +1 -0
  6. package/dist/{coercion/string.js → chunks/date-ODue_rtq.js} +271 -5
  7. package/dist/chunks/date-ODue_rtq.js.map +1 -0
  8. package/dist/chunks/index-BZqWZvVe.js +426 -0
  9. package/dist/chunks/index-BZqWZvVe.js.map +1 -0
  10. package/dist/chunks/index-CETyGkrv.js +894 -0
  11. package/dist/chunks/index-CETyGkrv.js.map +1 -0
  12. package/dist/chunks/json-o20GFhTh.js +2021 -0
  13. package/dist/chunks/json-o20GFhTh.js.map +1 -0
  14. package/dist/{validators/unknown.js → chunks/unknown-SLIH1VCf.js} +6 -3
  15. package/dist/chunks/unknown-SLIH1VCf.js.map +1 -0
  16. package/dist/cjs/errors.cjs +387 -0
  17. package/dist/cjs/errors.cjs.map +1 -0
  18. package/dist/cjs/index.cjs +9983 -0
  19. package/dist/cjs/index.cjs.map +1 -0
  20. package/dist/cjs/locales/index.cjs +2877 -0
  21. package/dist/cjs/locales/index.cjs.map +1 -0
  22. package/dist/cjs/locales/lazy.cjs +3169 -0
  23. package/dist/cjs/locales/lazy.cjs.map +1 -0
  24. package/dist/cjs/mini.cjs +7329 -0
  25. package/dist/cjs/mini.cjs.map +1 -0
  26. package/dist/codecs/index.js +4 -275
  27. package/dist/codecs/index.js.map +1 -1
  28. package/dist/coercion/index.d.ts +11 -0
  29. package/dist/coercion/index.d.ts.map +1 -0
  30. package/dist/coercion/{bigint.js → index.js} +7 -4
  31. package/dist/coercion/index.js.map +1 -0
  32. package/dist/compat/emitter.js +6 -4
  33. package/dist/compat/emitter.js.map +1 -1
  34. package/dist/compat/result.js +21 -19
  35. package/dist/compat/result.js.map +1 -1
  36. package/dist/errors.js +13 -10
  37. package/dist/errors.js.map +1 -1
  38. package/dist/index.js +225 -126
  39. package/dist/index.js.map +1 -1
  40. package/dist/kernel.js +10 -7
  41. package/dist/kernel.js.map +1 -1
  42. package/dist/locales/af.js +4 -2
  43. package/dist/locales/af.js.map +1 -1
  44. package/dist/locales/ar.js +4 -2
  45. package/dist/locales/ar.js.map +1 -1
  46. package/dist/locales/bn.js +4 -2
  47. package/dist/locales/bn.js.map +1 -1
  48. package/dist/locales/da.js +4 -2
  49. package/dist/locales/da.js.map +1 -1
  50. package/dist/locales/de.js +4 -2
  51. package/dist/locales/de.js.map +1 -1
  52. package/dist/locales/en.js +4 -2
  53. package/dist/locales/en.js.map +1 -1
  54. package/dist/locales/es-MX.js +4 -2
  55. package/dist/locales/es-MX.js.map +1 -1
  56. package/dist/locales/es.js +4 -2
  57. package/dist/locales/es.js.map +1 -1
  58. package/dist/locales/fi.js +4 -2
  59. package/dist/locales/fi.js.map +1 -1
  60. package/dist/locales/fr.js +4 -2
  61. package/dist/locales/fr.js.map +1 -1
  62. package/dist/locales/hi.js +4 -2
  63. package/dist/locales/hi.js.map +1 -1
  64. package/dist/locales/id.js +4 -2
  65. package/dist/locales/id.js.map +1 -1
  66. package/dist/locales/index.js +3 -91
  67. package/dist/locales/index.js.map +1 -1
  68. package/dist/locales/it.js +4 -2
  69. package/dist/locales/it.js.map +1 -1
  70. package/dist/locales/ja.js +4 -2
  71. package/dist/locales/ja.js.map +1 -1
  72. package/dist/locales/ko.js +4 -2
  73. package/dist/locales/ko.js.map +1 -1
  74. package/dist/locales/lazy.d.ts +111 -0
  75. package/dist/locales/lazy.d.ts.map +1 -0
  76. package/dist/locales/lazy.js +220 -0
  77. package/dist/locales/lazy.js.map +1 -0
  78. package/dist/locales/nl.js +4 -2
  79. package/dist/locales/nl.js.map +1 -1
  80. package/dist/locales/no.js +4 -2
  81. package/dist/locales/no.js.map +1 -1
  82. package/dist/locales/pl.js +4 -2
  83. package/dist/locales/pl.js.map +1 -1
  84. package/dist/locales/pt-BR.js +4 -2
  85. package/dist/locales/pt-BR.js.map +1 -1
  86. package/dist/locales/pt.js +4 -2
  87. package/dist/locales/pt.js.map +1 -1
  88. package/dist/locales/ru.js +4 -2
  89. package/dist/locales/ru.js.map +1 -1
  90. package/dist/locales/sv.js +4 -2
  91. package/dist/locales/sv.js.map +1 -1
  92. package/dist/locales/sw.js +4 -2
  93. package/dist/locales/sw.js.map +1 -1
  94. package/dist/locales/th.js +4 -2
  95. package/dist/locales/th.js.map +1 -1
  96. package/dist/locales/tr.js +4 -2
  97. package/dist/locales/tr.js.map +1 -1
  98. package/dist/locales/vi.js +4 -2
  99. package/dist/locales/vi.js.map +1 -1
  100. package/dist/locales/zh.js +4 -2
  101. package/dist/locales/zh.js.map +1 -1
  102. package/dist/mini.d.ts +182 -0
  103. package/dist/mini.d.ts.map +1 -0
  104. package/dist/mini.js +132 -0
  105. package/dist/mini.js.map +1 -0
  106. package/dist/pigment.js +8 -7
  107. package/dist/pigment.js.map +1 -1
  108. package/dist/validators/array.d.ts +5 -0
  109. package/dist/validators/array.d.ts.map +1 -1
  110. package/dist/validators/discriminated-union.d.ts.map +1 -1
  111. package/dist/validators/enum.d.ts +5 -1
  112. package/dist/validators/enum.d.ts.map +1 -1
  113. package/dist/validators/index.js +5 -45
  114. package/dist/validators/index.js.map +1 -1
  115. package/dist/validators/lazy.d.ts +8 -1
  116. package/dist/validators/lazy.d.ts.map +1 -1
  117. package/dist/validators/literal.d.ts +5 -1
  118. package/dist/validators/literal.d.ts.map +1 -1
  119. package/dist/validators/object.d.ts +30 -3
  120. package/dist/validators/object.d.ts.map +1 -1
  121. package/dist/validators/string.d.ts +12 -1
  122. package/dist/validators/string.d.ts.map +1 -1
  123. package/package.json +69 -11
  124. package/dist/cli/benchmark.d.ts +0 -15
  125. package/dist/cli/benchmark.d.ts.map +0 -1
  126. package/dist/cli/benchmark.js +0 -248
  127. package/dist/cli/benchmark.js.map +0 -1
  128. package/dist/cli/bin.js +0 -35
  129. package/dist/cli/bin.js.map +0 -1
  130. package/dist/cli/commands/benchmark.js +0 -204
  131. package/dist/cli/commands/benchmark.js.map +0 -1
  132. package/dist/cli/commands/validate.js +0 -157
  133. package/dist/cli/commands/validate.js.map +0 -1
  134. package/dist/cli/generate.d.ts +0 -14
  135. package/dist/cli/generate.d.ts.map +0 -1
  136. package/dist/cli/generate.js +0 -233
  137. package/dist/cli/generate.js.map +0 -1
  138. package/dist/cli/index.js +0 -182
  139. package/dist/cli/index.js.map +0 -1
  140. package/dist/cli/validate.d.ts +0 -15
  141. package/dist/cli/validate.d.ts.map +0 -1
  142. package/dist/cli/validate.js +0 -162
  143. package/dist/cli/validate.js.map +0 -1
  144. package/dist/coercion/bigint.js.map +0 -1
  145. package/dist/coercion/boolean.js +0 -59
  146. package/dist/coercion/boolean.js.map +0 -1
  147. package/dist/coercion/date.js +0 -52
  148. package/dist/coercion/date.js.map +0 -1
  149. package/dist/coercion/number.js +0 -160
  150. package/dist/coercion/number.js.map +0 -1
  151. package/dist/coercion/string.js.map +0 -1
  152. package/dist/compat/index.js +0 -14
  153. package/dist/compat/index.js.map +0 -1
  154. package/dist/events.js +0 -8
  155. package/dist/events.js.map +0 -1
  156. package/dist/guards.d.ts +0 -143
  157. package/dist/guards.d.ts.map +0 -1
  158. package/dist/guards.js +0 -238
  159. package/dist/guards.js.map +0 -1
  160. package/dist/index-new.d.ts.map +0 -1
  161. package/dist/locales/backup-en.js +0 -105
  162. package/dist/locales/backup-en.js.map +0 -1
  163. package/dist/locales/types.js +0 -2
  164. package/dist/locales/types.js.map +0 -1
  165. package/dist/locales.d.ts +0 -54
  166. package/dist/locales.d.ts.map +0 -1
  167. package/dist/locales.js +0 -732
  168. package/dist/locales.js.map +0 -1
  169. package/dist/logger.js +0 -184
  170. package/dist/logger.js.map +0 -1
  171. package/dist/plugins/codecs.d.ts +0 -17
  172. package/dist/plugins/codecs.d.ts.map +0 -1
  173. package/dist/plugins/codecs.js +0 -29
  174. package/dist/plugins/codecs.js.map +0 -1
  175. package/dist/plugins/coercion.d.ts +0 -13
  176. package/dist/plugins/coercion.d.ts.map +0 -1
  177. package/dist/plugins/coercion.js +0 -34
  178. package/dist/plugins/coercion.js.map +0 -1
  179. package/dist/plugins/core-validators.d.ts +0 -13
  180. package/dist/plugins/core-validators.d.ts.map +0 -1
  181. package/dist/plugins/core-validators.js +0 -96
  182. package/dist/plugins/core-validators.js.map +0 -1
  183. package/dist/plugins/index.js +0 -8
  184. package/dist/plugins/index.js.map +0 -1
  185. package/dist/plugins/kernel.d.ts +0 -29
  186. package/dist/plugins/kernel.d.ts.map +0 -1
  187. package/dist/plugins/kernel.js +0 -486
  188. package/dist/plugins/kernel.js.map +0 -1
  189. package/dist/plugins/types.js +0 -8
  190. package/dist/plugins/types.js.map +0 -1
  191. package/dist/style.d.ts +0 -123
  192. package/dist/style.d.ts.map +0 -1
  193. package/dist/style.js +0 -369
  194. package/dist/style.js.map +0 -1
  195. package/dist/utils/codec-utils.js +0 -229
  196. package/dist/utils/codec-utils.js.map +0 -1
  197. package/dist/utils/deep-merge.js +0 -76
  198. package/dist/utils/deep-merge.js.map +0 -1
  199. package/dist/utils/ip-validation.js +0 -98
  200. package/dist/utils/ip-validation.js.map +0 -1
  201. package/dist/utils/security.js +0 -61
  202. package/dist/utils/security.js.map +0 -1
  203. package/dist/validators/any.js +0 -25
  204. package/dist/validators/any.js.map +0 -1
  205. package/dist/validators/array.js +0 -190
  206. package/dist/validators/array.js.map +0 -1
  207. package/dist/validators/base.js +0 -499
  208. package/dist/validators/base.js.map +0 -1
  209. package/dist/validators/base64.js +0 -65
  210. package/dist/validators/base64.js.map +0 -1
  211. package/dist/validators/bigint.js +0 -142
  212. package/dist/validators/bigint.js.map +0 -1
  213. package/dist/validators/boolean.js +0 -114
  214. package/dist/validators/boolean.js.map +0 -1
  215. package/dist/validators/codec.js +0 -182
  216. package/dist/validators/codec.js.map +0 -1
  217. package/dist/validators/custom.js +0 -50
  218. package/dist/validators/custom.js.map +0 -1
  219. package/dist/validators/date.js +0 -227
  220. package/dist/validators/date.js.map +0 -1
  221. package/dist/validators/discriminated-union.js +0 -98
  222. package/dist/validators/discriminated-union.js.map +0 -1
  223. package/dist/validators/enum.js +0 -82
  224. package/dist/validators/enum.js.map +0 -1
  225. package/dist/validators/file.js +0 -114
  226. package/dist/validators/file.js.map +0 -1
  227. package/dist/validators/function.js +0 -45
  228. package/dist/validators/function.js.map +0 -1
  229. package/dist/validators/hex.js +0 -62
  230. package/dist/validators/hex.js.map +0 -1
  231. package/dist/validators/intersection.js +0 -64
  232. package/dist/validators/intersection.js.map +0 -1
  233. package/dist/validators/json.js +0 -64
  234. package/dist/validators/json.js.map +0 -1
  235. package/dist/validators/lazy.js +0 -42
  236. package/dist/validators/lazy.js.map +0 -1
  237. package/dist/validators/literal.js +0 -45
  238. package/dist/validators/literal.js.map +0 -1
  239. package/dist/validators/map.js +0 -54
  240. package/dist/validators/map.js.map +0 -1
  241. package/dist/validators/nan.js +0 -32
  242. package/dist/validators/nan.js.map +0 -1
  243. package/dist/validators/never.js +0 -29
  244. package/dist/validators/never.js.map +0 -1
  245. package/dist/validators/null.js +0 -31
  246. package/dist/validators/null.js.map +0 -1
  247. package/dist/validators/number.js +0 -225
  248. package/dist/validators/number.js.map +0 -1
  249. package/dist/validators/object-optimized.d.ts +0 -23
  250. package/dist/validators/object-optimized.d.ts.map +0 -1
  251. package/dist/validators/object-optimized.js +0 -179
  252. package/dist/validators/object-optimized.js.map +0 -1
  253. package/dist/validators/object-ultra.d.ts +0 -34
  254. package/dist/validators/object-ultra.d.ts.map +0 -1
  255. package/dist/validators/object-ultra.js +0 -175
  256. package/dist/validators/object-ultra.js.map +0 -1
  257. package/dist/validators/object.js +0 -458
  258. package/dist/validators/object.js.map +0 -1
  259. package/dist/validators/record.js +0 -128
  260. package/dist/validators/record.js.map +0 -1
  261. package/dist/validators/set.js +0 -51
  262. package/dist/validators/set.js.map +0 -1
  263. package/dist/validators/string-bool.js +0 -127
  264. package/dist/validators/string-bool.js.map +0 -1
  265. package/dist/validators/string-formats.js +0 -120
  266. package/dist/validators/string-formats.js.map +0 -1
  267. package/dist/validators/string-ultra.d.ts +0 -49
  268. package/dist/validators/string-ultra.d.ts.map +0 -1
  269. package/dist/validators/string-ultra.js +0 -217
  270. package/dist/validators/string-ultra.js.map +0 -1
  271. package/dist/validators/string.js +0 -253
  272. package/dist/validators/string.js.map +0 -1
  273. package/dist/validators/symbol.js +0 -42
  274. package/dist/validators/symbol.js.map +0 -1
  275. package/dist/validators/template-literal.js +0 -102
  276. package/dist/validators/template-literal.js.map +0 -1
  277. package/dist/validators/tuple.js +0 -55
  278. package/dist/validators/tuple.js.map +0 -1
  279. package/dist/validators/uint8array.js +0 -98
  280. package/dist/validators/uint8array.js.map +0 -1
  281. package/dist/validators/undefined.js +0 -31
  282. package/dist/validators/undefined.js.map +0 -1
  283. package/dist/validators/union-optimized.d.ts +0 -15
  284. package/dist/validators/union-optimized.d.ts.map +0 -1
  285. package/dist/validators/union-optimized.js +0 -92
  286. package/dist/validators/union-optimized.js.map +0 -1
  287. package/dist/validators/union.js +0 -126
  288. package/dist/validators/union.js.map +0 -1
  289. package/dist/validators/unknown.js.map +0 -1
  290. package/dist/validators/void.js +0 -35
  291. package/dist/validators/void.js.map +0 -1
  292. package/dist/validators/xor.js +0 -64
  293. package/dist/validators/xor.js.map +0 -1
@@ -8,18 +8,25 @@ import type { ParseResult } from './base';
8
8
  /**
9
9
  * Lazy validator - defers schema evaluation until runtime
10
10
  * Essential for recursive and self-referencing types
11
+ *
12
+ * MEMORY OPTIMIZATION: Uses WeakRef for the cached schema to allow garbage collection
13
+ * when the validator is no longer in use. This prevents memory leaks in long-running
14
+ * applications with dynamically created schemas.
11
15
  */
12
16
  export declare class VldLazy<TInput, TOutput> extends VldBase<TInput, TOutput> {
13
17
  private readonly _schemaGetter;
14
- private _cachedSchema;
18
+ private _cachedSchemaRef;
19
+ private _strongRef;
15
20
  private constructor();
16
21
  static create<TInput, TOutput>(schemaGetter: () => VldBase<TInput, TOutput>): VldLazy<TInput, TOutput>;
17
22
  /**
18
23
  * Get the actual schema, caching it after first retrieval
24
+ * Uses WeakRef to allow garbage collection when validator is not in use
19
25
  */
20
26
  private _getSchema;
21
27
  /**
22
28
  * Get the inner schema (unwrap)
29
+ * Returns a strong reference that will keep the schema alive
23
30
  */
24
31
  unwrap(): VldBase<TInput, TOutput>;
25
32
  parse(value: unknown): TOutput;
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/validators/lazy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C;;;GAGG;AACH,qBAAa,OAAO,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAHhC,OAAO,CAAC,aAAa,CAAyC;IAE9D,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAC3B,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAGhD"}
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/validators/lazy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C;;;;;;;GAOG;AACH,qBAAa,OAAO,CAAC,MAAM,EAAE,OAAO,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAOlE,OAAO,CAAC,QAAQ,CAAC,aAAa;IALhC,OAAO,CAAC,gBAAgB,CAAkD;IAE1E,OAAO,CAAC,UAAU,CAAyC;IAE3D,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAC3B,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3B;;;OAGG;IACH,OAAO,CAAC,UAAU;IA+BlB;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAI9B,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;CAGhD"}
@@ -3,12 +3,16 @@ import { VldBase, ParseResult } from './base';
3
3
  * Immutable literal validator for exact value matching
4
4
  */
5
5
  export declare class VldLiteral<T extends string | number | boolean | null | undefined> extends VldBase<T, T> {
6
- private readonly literal;
6
+ private readonly _literal;
7
7
  private readonly errorMessage?;
8
8
  /**
9
9
  * Private constructor to enforce immutability
10
10
  */
11
11
  private constructor();
12
+ /**
13
+ * Get the literal value
14
+ */
15
+ get literal(): T;
12
16
  /**
13
17
  * Create a new literal validator
14
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../src/validators/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9C;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAKjG,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IALhC;;OAEG;IACH,OAAO;IAOP;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIhG;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC;IAUxB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;CAY1C"}
1
+ {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../src/validators/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG9C;;GAEG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAKjG,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IALhC;;OAEG;IACH,OAAO;IAOP;;OAEG;IACH,IAAI,OAAO,IAAI,CAAC,CAEf;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIhG;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC;IAUxB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;CAY1C"}
@@ -1,17 +1,43 @@
1
1
  import { VldBase, ParseResult } from './base';
2
2
  import { VldEnum } from './enum';
3
+ /**
4
+ * Configuration for object validator
5
+ */
6
+ interface ObjectValidatorConfig<T extends Record<string, any>> {
7
+ readonly shape: {
8
+ readonly [K in keyof T]: VldBase<unknown, T[K]>;
9
+ };
10
+ readonly strict?: boolean;
11
+ readonly passthrough?: boolean;
12
+ readonly catchall?: VldBase<unknown, any>;
13
+ readonly errorMessage?: string;
14
+ }
3
15
  /**
4
16
  * Optimized immutable object validator with chainable methods
5
17
  * Features pre-computed keys and Set-based lookups for better performance
6
18
  */
7
19
  export declare class VldObject<T extends Record<string, any>> extends VldBase<unknown, T> {
8
- private readonly config;
9
- private readonly shapeKeys;
10
- private readonly shapeKeysSet;
20
+ private readonly _config;
21
+ private readonly _shapeKeys;
22
+ private readonly _shapeKeysSet;
11
23
  /**
12
24
  * Private constructor to enforce immutability
13
25
  */
14
26
  private constructor();
27
+ /**
28
+ * Get the validator configuration
29
+ * @internal Used by discriminated union validator
30
+ */
31
+ get config(): ObjectValidatorConfig<T>;
32
+ /**
33
+ * Get the shape keys array
34
+ */
35
+ get shapeKeys(): string[];
36
+ /**
37
+ * Get the shape keys set for O(1) lookups
38
+ * @internal Used by discriminated union validator
39
+ */
40
+ get shapeKeysSet(): Set<string>;
15
41
  /**
16
42
  * Create a new object validator
17
43
  */
@@ -107,4 +133,5 @@ export declare class VldObject<T extends Record<string, any>> extends VldBase<un
107
133
  [K in keyof U]: VldBase<unknown, U[K]>;
108
134
  }): VldObject<T & U>;
109
135
  }
136
+ export {};
110
137
  //# sourceMappingURL=object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/validators/object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/validators/object.ts"],"names":[],"mappings":"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"}
@@ -17,19 +17,30 @@ interface StringValidatorConfig {
17
17
  }
18
18
  /**
19
19
  * Immutable string validator with chainable methods
20
+ * Features pre-compiled validation functions for maximum performance
20
21
  */
21
22
  export declare class VldString extends VldBase<string, string> {
22
23
  protected readonly config: StringValidatorConfig;
24
+ private _compiledValidator;
23
25
  /**
24
26
  * Protected constructor to allow extension while maintaining immutability
25
27
  */
26
28
  protected constructor(config?: Partial<StringValidatorConfig>);
29
+ /**
30
+ * Compile all transforms and checks into a single optimized function
31
+ * This eliminates loop overhead and enables better JIT optimization
32
+ */
33
+ private _compileValidator;
34
+ /**
35
+ * Get the cached compiled validator, creating it if necessary
36
+ */
37
+ private _getCompiledValidator;
27
38
  /**
28
39
  * Create a new string validator
29
40
  */
30
41
  static create(): VldString;
31
42
  /**
32
- * Parse and validate a string value - ultra-optimized
43
+ * Parse and validate a string value - ultra-optimized with pre-compiled validator
33
44
  */
34
45
  parse(value: unknown): string;
35
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/validators/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAyB9C;;GAEG;AACH,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAE9C;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjD;;GAEG;AACH,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEjD;;OAEG;IACH,SAAS,aAAa,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAS7D;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,SAAS;IAI1B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAwB7B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IAQ9C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhD;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQnD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlC;;OAEG;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQnD;;OAEG;IACH,IAAI,IAAI,SAAS;IAQjB;;OAEG;IACH,WAAW,IAAI,SAAS;IAQxB;;OAEG;IACH,WAAW,IAAI,SAAS;IAQxB;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQpD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAY/B;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAWjC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;CAOtC"}
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/validators/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAyB9C;;GAEG;AACH,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAE9C;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAEjD;;GAEG;AACH,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAOD;;;GAGG;AACH,qBAAa,SAAU,SAAQ,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEjD,OAAO,CAAC,kBAAkB,CAAwC;IAElE;;OAEG;IACH,SAAS,aAAa,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAS7D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA4EzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,SAAS;IAI1B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAe7B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;IAQ9C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhD;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQnD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlC;;OAEG;IACH,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQhC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQnD;;OAEG;IACH,IAAI,IAAI,SAAS;IAQjB;;OAEG;IACH,WAAW,IAAI,SAAS;IAQxB;;OAEG;IACH,WAAW,IAAI,SAAS;IAQxB;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQpD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQlD;;OAEG;IACH,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAY/B;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAQjC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;IAWjC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS;CAOtC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@oxog/vld",
3
- "version": "1.5.0",
3
+ "version": "2.0.2",
4
4
  "description": "Ultra-fast TypeScript-first schema validation with zero dependencies, 27+ language support, plugin system, and CLI tools",
5
5
  "type": "module",
6
- "main": "./dist/index.js",
6
+ "main": "./dist/cjs/index.cjs",
7
7
  "module": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
9
9
  "bin": {
@@ -11,22 +11,81 @@
11
11
  },
12
12
  "exports": {
13
13
  ".": {
14
- "require": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
15
  "import": "./dist/index.js",
16
- "types": "./dist/index.d.ts"
16
+ "require": "./dist/cjs/index.cjs"
17
+ },
18
+ "./mini": {
19
+ "types": "./dist/mini.d.ts",
20
+ "import": "./dist/mini.js",
21
+ "require": "./dist/cjs/mini.cjs"
22
+ },
23
+ "./errors": {
24
+ "types": "./dist/errors.d.ts",
25
+ "import": "./dist/errors.js",
26
+ "require": "./dist/cjs/errors.cjs"
27
+ },
28
+ "./validators": {
29
+ "types": "./dist/validators/index.d.ts",
30
+ "import": "./dist/validators/index.js"
31
+ },
32
+ "./validators/*": {
33
+ "types": "./dist/validators/*.d.ts",
34
+ "import": "./dist/validators/*.js"
35
+ },
36
+ "./coercion": {
37
+ "types": "./dist/coercion/index.d.ts",
38
+ "import": "./dist/coercion/index.js"
39
+ },
40
+ "./codecs": {
41
+ "types": "./dist/codecs/index.d.ts",
42
+ "import": "./dist/codecs/index.js"
43
+ },
44
+ "./locales": {
45
+ "types": "./dist/locales/index.d.ts",
46
+ "import": "./dist/locales/index.js",
47
+ "require": "./dist/cjs/locales/index.cjs"
48
+ },
49
+ "./locales/lazy": {
50
+ "types": "./dist/locales/lazy.d.ts",
51
+ "import": "./dist/locales/lazy.js",
52
+ "require": "./dist/cjs/locales/lazy.cjs"
53
+ },
54
+ "./locales/*": {
55
+ "types": "./dist/locales/*.d.ts",
56
+ "import": "./dist/locales/*.js"
57
+ },
58
+ "./result": {
59
+ "types": "./dist/compat/result.d.ts",
60
+ "import": "./dist/compat/result.js"
61
+ },
62
+ "./kernel": {
63
+ "types": "./dist/kernel.d.ts",
64
+ "import": "./dist/kernel.js"
65
+ },
66
+ "./pigment": {
67
+ "types": "./dist/pigment.d.ts",
68
+ "import": "./dist/pigment.js"
17
69
  },
18
70
  "./cli": {
19
- "import": "./dist/cli/index.js",
20
- "types": "./dist/cli/index.d.ts"
71
+ "types": "./dist/cli/index.d.ts",
72
+ "import": "./dist/cli/index.js"
21
73
  },
22
74
  "./plugins": {
23
- "import": "./dist/plugins/index.js",
24
- "types": "./dist/plugins/index.d.ts"
25
- }
75
+ "types": "./dist/plugins/index.d.ts",
76
+ "import": "./dist/plugins/index.js"
77
+ },
78
+ "./package.json": "./package.json"
26
79
  },
27
80
  "sideEffects": false,
28
81
  "scripts": {
29
- "build": "tsc && node scripts/fix-imports.cjs",
82
+ "build": "npm run build:clean && npm run build:esm && npm run build:cjs && npm run build:types && npm run build:fix",
83
+ "build:clean": "node -e \"require('fs').rmSync('./dist', { recursive: true, force: true })\"",
84
+ "build:esm": "rollup -c rollup.config.mjs",
85
+ "build:cjs": "echo 'CJS built by rollup'",
86
+ "build:types": "tsc -p tsconfig.build.json",
87
+ "build:fix": "node scripts/fix-imports.cjs",
88
+ "build:legacy": "tsc && node scripts/fix-imports.cjs",
30
89
  "test": "jest --coverage",
31
90
  "test:types": "tsc --noEmit",
32
91
  "benchmark": "node benchmarks/quick-bench.cjs",
@@ -87,7 +146,6 @@
87
146
  "jest-junit": "^16.0.0",
88
147
  "prettier": "^3.1.1",
89
148
  "rollup": "^4.46.2",
90
- "rollup-plugin-typescript2": "^0.36.0",
91
149
  "ts-jest": "^29.4.1",
92
150
  "typescript": "^5.3.3",
93
151
  "zod": "^4.0.17"
@@ -1,15 +0,0 @@
1
- /**
2
- * VLD CLI - Benchmark Command
3
- *
4
- * VLD performans testlerini çalıştırır.
5
- *
6
- * Kullanım:
7
- * vld benchmark
8
- * vld benchmark --iterations 10000
9
- */
10
- import type { Command } from './index.js';
11
- /**
12
- * Benchmark command
13
- */
14
- export declare const benchmarkCommand: Command;
15
- //# sourceMappingURL=benchmark.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/cli/benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAoD9B,CAAC"}
@@ -1,248 +0,0 @@
1
- /**
2
- * VLD CLI - Benchmark Command
3
- *
4
- * VLD performans testlerini çalıştırır.
5
- *
6
- * Kullanım:
7
- * vld benchmark
8
- * vld benchmark --iterations 10000
9
- */
10
- import { style, formatTable } from '../style.js';
11
- import { v } from '../index.js';
12
- /**
13
- * Benchmark command
14
- */
15
- export const benchmarkCommand = {
16
- name: 'benchmark',
17
- description: 'Run VLD performance benchmarks',
18
- aliases: ['bench', 'b'],
19
- arguments: [],
20
- options: [
21
- {
22
- name: 'iterations',
23
- short: 'i',
24
- description: 'Number of iterations',
25
- type: 'string',
26
- default: '10000'
27
- },
28
- {
29
- name: 'warmup',
30
- short: 'w',
31
- description: 'Warmup iterations',
32
- type: 'string',
33
- default: '1000'
34
- },
35
- {
36
- name: 'format',
37
- short: 'f',
38
- description: 'Output format (pretty, json)',
39
- type: 'string',
40
- default: 'pretty'
41
- }
42
- ],
43
- async action(_args, opts) {
44
- const iterations = parseInt(opts.iterations, 10);
45
- const warmup = parseInt(opts.warmup, 10);
46
- const format = opts.format;
47
- console.log(style.cyan('VLD Performance Benchmark'));
48
- console.log('');
49
- console.log(`${style.dim('Iterations:')} ${iterations.toLocaleString()}`);
50
- console.log(`${style.dim('Warmup:')} ${warmup.toLocaleString()}`);
51
- console.log('');
52
- // Run benchmarks
53
- const results = await runBenchmarks(iterations, warmup);
54
- // Output results
55
- if (format === 'json') {
56
- console.log(JSON.stringify(results, null, 2));
57
- }
58
- else {
59
- printResults(results);
60
- }
61
- }
62
- };
63
- /**
64
- * Benchmark suite'leri
65
- */
66
- function getBenchmarkSuites() {
67
- // Test data
68
- const simpleStringData = 'hello world';
69
- const simpleNumberData = 42;
70
- const simpleObjectData = { name: 'John', age: 30, email: 'john@example.com' };
71
- const complexObjectData = {
72
- user: {
73
- id: 1,
74
- name: 'John Doe',
75
- email: 'john@example.com',
76
- roles: ['admin', 'user'],
77
- profile: {
78
- bio: 'A software developer',
79
- avatar: 'https://example.com/avatar.jpg',
80
- settings: {
81
- theme: 'dark',
82
- notifications: true
83
- }
84
- }
85
- },
86
- posts: [
87
- { id: 1, title: 'Hello', content: 'World' },
88
- { id: 2, title: 'Foo', content: 'Bar' }
89
- ]
90
- };
91
- const arrayData = Array.from({ length: 100 }, (_, i) => ({
92
- id: i,
93
- name: `Item ${i}`,
94
- value: i * 10
95
- }));
96
- // Schemas
97
- const stringSchema = v.string();
98
- const numberSchema = v.number();
99
- const simpleObjectSchema = v.object({
100
- name: v.string(),
101
- age: v.number(),
102
- email: v.string().email()
103
- });
104
- const complexObjectSchema = v.object({
105
- user: v.object({
106
- id: v.number(),
107
- name: v.string(),
108
- email: v.string().email(),
109
- roles: v.array(v.string()),
110
- profile: v.object({
111
- bio: v.string(),
112
- avatar: v.string().url(),
113
- settings: v.object({
114
- theme: v.string(),
115
- notifications: v.boolean()
116
- })
117
- })
118
- }),
119
- posts: v.array(v.object({
120
- id: v.number(),
121
- title: v.string(),
122
- content: v.string()
123
- }))
124
- });
125
- const arraySchema = v.array(v.object({
126
- id: v.number(),
127
- name: v.string(),
128
- value: v.number()
129
- }));
130
- return [
131
- {
132
- name: 'String validation',
133
- run: (n) => {
134
- for (let i = 0; i < n; i++) {
135
- stringSchema.parse(simpleStringData);
136
- }
137
- }
138
- },
139
- {
140
- name: 'Number validation',
141
- run: (n) => {
142
- for (let i = 0; i < n; i++) {
143
- numberSchema.parse(simpleNumberData);
144
- }
145
- }
146
- },
147
- {
148
- name: 'Simple object',
149
- run: (n) => {
150
- for (let i = 0; i < n; i++) {
151
- simpleObjectSchema.parse(simpleObjectData);
152
- }
153
- }
154
- },
155
- {
156
- name: 'Complex object',
157
- run: (n) => {
158
- for (let i = 0; i < n; i++) {
159
- complexObjectSchema.parse(complexObjectData);
160
- }
161
- }
162
- },
163
- {
164
- name: 'Array (100 items)',
165
- run: (n) => {
166
- for (let i = 0; i < n; i++) {
167
- arraySchema.parse(arrayData);
168
- }
169
- }
170
- },
171
- {
172
- name: 'safeParse (success)',
173
- run: (n) => {
174
- for (let i = 0; i < n; i++) {
175
- simpleObjectSchema.safeParse(simpleObjectData);
176
- }
177
- }
178
- },
179
- {
180
- name: 'safeParse (failure)',
181
- run: (n) => {
182
- const invalidData = { name: 123, age: 'invalid', email: 'invalid' };
183
- for (let i = 0; i < n; i++) {
184
- simpleObjectSchema.safeParse(invalidData);
185
- }
186
- }
187
- }
188
- ];
189
- }
190
- // ============================================================================
191
- // Benchmark Runner
192
- // ============================================================================
193
- /**
194
- * Benchmark'ları çalıştırır
195
- */
196
- async function runBenchmarks(iterations, warmup) {
197
- const suites = getBenchmarkSuites();
198
- const results = [];
199
- for (const suite of suites) {
200
- // Warmup
201
- process.stdout.write(`${style.dim('Warming up:')} ${suite.name}...`);
202
- suite.run(warmup);
203
- process.stdout.write('\r' + ' '.repeat(60) + '\r');
204
- // Benchmark
205
- process.stdout.write(`${style.dim('Running:')} ${suite.name}...`);
206
- const start = performance.now();
207
- suite.run(iterations);
208
- const end = performance.now();
209
- process.stdout.write('\r' + ' '.repeat(60) + '\r');
210
- const ms = end - start;
211
- const opsPerSec = Math.round((iterations / ms) * 1000);
212
- results.push({
213
- name: suite.name,
214
- ops: iterations,
215
- ms: Math.round(ms * 100) / 100,
216
- opsPerSec
217
- });
218
- console.log(`${style.green('✔')} ${suite.name}: ${style.bold(opsPerSec.toLocaleString())} ops/sec`);
219
- }
220
- return results;
221
- }
222
- /**
223
- * Sonuçları yazdırır
224
- */
225
- function printResults(results) {
226
- console.log('');
227
- console.log(style.bold('Results:'));
228
- console.log('');
229
- const table = formatTable(results.map((r) => [
230
- r.name,
231
- r.opsPerSec.toLocaleString(),
232
- `${r.ms.toFixed(2)}ms`
233
- ]), {
234
- columns: [
235
- { header: 'Benchmark', align: 'left' },
236
- { header: 'ops/sec', align: 'right' },
237
- { header: 'Time', align: 'right' }
238
- ],
239
- headerColor: style.bold
240
- });
241
- console.log(table);
242
- console.log('');
243
- // Summary
244
- const totalOps = results.reduce((sum, r) => sum + r.opsPerSec, 0);
245
- const avgOps = Math.round(totalOps / results.length);
246
- console.log(style.dim('Average:') + ` ${avgOps.toLocaleString()} ops/sec`);
247
- }
248
- //# sourceMappingURL=benchmark.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/cli/benchmark.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * VLD CLI - Benchmark Command\n *\n * VLD performans testlerini çalıştırır.\n *\n * Kullanım:\n * vld benchmark\n * vld benchmark --iterations 10000\n */\n\nimport type { Command } from './index.js';\nimport { style, formatTable } from '../style.js';\nimport { v } from '../index.js';\n\n/**\n * Benchmark command\n */\nexport const benchmarkCommand: Command = {\n name: 'benchmark',\n description: 'Run VLD performance benchmarks',\n aliases: ['bench', 'b'],\n\n arguments: [],\n\n options: [\n {\n name: 'iterations',\n short: 'i',\n description: 'Number of iterations',\n type: 'string',\n default: '10000'\n },\n {\n name: 'warmup',\n short: 'w',\n description: 'Warmup iterations',\n type: 'string',\n default: '1000'\n },\n {\n name: 'format',\n short: 'f',\n description: 'Output format (pretty, json)',\n type: 'string',\n default: 'pretty'\n }\n ],\n\n async action(_args, opts) {\n const iterations = parseInt(opts.iterations as string, 10);\n const warmup = parseInt(opts.warmup as string, 10);\n const format = opts.format as string;\n\n console.log(style.cyan('VLD Performance Benchmark'));\n console.log('');\n console.log(`${style.dim('Iterations:')} ${iterations.toLocaleString()}`);\n console.log(`${style.dim('Warmup:')} ${warmup.toLocaleString()}`);\n console.log('');\n\n // Run benchmarks\n const results = await runBenchmarks(iterations, warmup);\n\n // Output results\n if (format === 'json') {\n console.log(JSON.stringify(results, null, 2));\n } else {\n printResults(results);\n }\n }\n};\n\n// ============================================================================\n// Benchmark Definitions\n// ============================================================================\n\ninterface BenchmarkResult {\n name: string;\n ops: number;\n ms: number;\n opsPerSec: number;\n}\n\ninterface BenchmarkSuite {\n name: string;\n run: (iterations: number) => void;\n}\n\n/**\n * Benchmark suite'leri\n */\nfunction getBenchmarkSuites(): BenchmarkSuite[] {\n // Test data\n const simpleStringData = 'hello world';\n const simpleNumberData = 42;\n const simpleObjectData = { name: 'John', age: 30, email: 'john@example.com' };\n const complexObjectData = {\n user: {\n id: 1,\n name: 'John Doe',\n email: 'john@example.com',\n roles: ['admin', 'user'],\n profile: {\n bio: 'A software developer',\n avatar: 'https://example.com/avatar.jpg',\n settings: {\n theme: 'dark',\n notifications: true\n }\n }\n },\n posts: [\n { id: 1, title: 'Hello', content: 'World' },\n { id: 2, title: 'Foo', content: 'Bar' }\n ]\n };\n const arrayData = Array.from({ length: 100 }, (_, i) => ({\n id: i,\n name: `Item ${i}`,\n value: i * 10\n }));\n\n // Schemas\n const stringSchema = v.string();\n const numberSchema = v.number();\n const simpleObjectSchema = v.object({\n name: v.string(),\n age: v.number(),\n email: v.string().email()\n });\n const complexObjectSchema = v.object({\n user: v.object({\n id: v.number(),\n name: v.string(),\n email: v.string().email(),\n roles: v.array(v.string()),\n profile: v.object({\n bio: v.string(),\n avatar: v.string().url(),\n settings: v.object({\n theme: v.string(),\n notifications: v.boolean()\n })\n })\n }),\n posts: v.array(v.object({\n id: v.number(),\n title: v.string(),\n content: v.string()\n }))\n });\n const arraySchema = v.array(v.object({\n id: v.number(),\n name: v.string(),\n value: v.number()\n }));\n\n return [\n {\n name: 'String validation',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n stringSchema.parse(simpleStringData);\n }\n }\n },\n {\n name: 'Number validation',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n numberSchema.parse(simpleNumberData);\n }\n }\n },\n {\n name: 'Simple object',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n simpleObjectSchema.parse(simpleObjectData);\n }\n }\n },\n {\n name: 'Complex object',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n complexObjectSchema.parse(complexObjectData);\n }\n }\n },\n {\n name: 'Array (100 items)',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n arraySchema.parse(arrayData);\n }\n }\n },\n {\n name: 'safeParse (success)',\n run: (n) => {\n for (let i = 0; i < n; i++) {\n simpleObjectSchema.safeParse(simpleObjectData);\n }\n }\n },\n {\n name: 'safeParse (failure)',\n run: (n) => {\n const invalidData = { name: 123, age: 'invalid', email: 'invalid' };\n for (let i = 0; i < n; i++) {\n simpleObjectSchema.safeParse(invalidData);\n }\n }\n }\n ];\n}\n\n// ============================================================================\n// Benchmark Runner\n// ============================================================================\n\n/**\n * Benchmark'ları çalıştırır\n */\nasync function runBenchmarks(iterations: number, warmup: number): Promise<BenchmarkResult[]> {\n const suites = getBenchmarkSuites();\n const results: BenchmarkResult[] = [];\n\n for (const suite of suites) {\n // Warmup\n process.stdout.write(`${style.dim('Warming up:')} ${suite.name}...`);\n suite.run(warmup);\n process.stdout.write('\\r' + ' '.repeat(60) + '\\r');\n\n // Benchmark\n process.stdout.write(`${style.dim('Running:')} ${suite.name}...`);\n\n const start = performance.now();\n suite.run(iterations);\n const end = performance.now();\n\n process.stdout.write('\\r' + ' '.repeat(60) + '\\r');\n\n const ms = end - start;\n const opsPerSec = Math.round((iterations / ms) * 1000);\n\n results.push({\n name: suite.name,\n ops: iterations,\n ms: Math.round(ms * 100) / 100,\n opsPerSec\n });\n\n console.log(`${style.green('✔')} ${suite.name}: ${style.bold(opsPerSec.toLocaleString())} ops/sec`);\n }\n\n return results;\n}\n\n/**\n * Sonuçları yazdırır\n */\nfunction printResults(results: BenchmarkResult[]): void {\n console.log('');\n console.log(style.bold('Results:'));\n console.log('');\n\n const table = formatTable(\n results.map((r) => [\n r.name,\n r.opsPerSec.toLocaleString(),\n `${r.ms.toFixed(2)}ms`\n ]),\n {\n columns: [\n { header: 'Benchmark', align: 'left' },\n { header: 'ops/sec', align: 'right' },\n { header: 'Time', align: 'right' }\n ],\n headerColor: style.bold\n }\n );\n\n console.log(table);\n console.log('');\n\n // Summary\n const totalOps = results.reduce((sum, r) => sum + r.opsPerSec, 0);\n const avgOps = Math.round(totalOps / results.length);\n\n console.log(style.dim('Average:') + ` ${avgOps.toLocaleString()} ops/sec`);\n}\n"]}
package/dist/cli/bin.js DELETED
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * VLD CLI Entry Point
4
- *
5
- * This is the main entry point for the `vld` command-line tool.
6
- */
7
- import { vldCli } from './index.js';
8
- import { validateCommand } from './commands/validate.js';
9
- import { benchmarkCommand } from './commands/benchmark.js';
10
- // Register commands
11
- vldCli.command(validateCommand);
12
- vldCli.command(benchmarkCommand);
13
- // Help command
14
- vldCli.command({
15
- name: 'help',
16
- description: 'Show help information',
17
- aliases: ['h'],
18
- action: () => {
19
- console.log(vldCli.help());
20
- }
21
- });
22
- // Version command
23
- vldCli.command({
24
- name: 'version',
25
- description: 'Show version information',
26
- action: () => {
27
- console.log('vld v1.5.0');
28
- }
29
- });
30
- // Run CLI
31
- vldCli.run(process.argv.slice(2)).catch((error) => {
32
- console.error('Fatal error:', error);
33
- process.exitCode = 1;
34
- });
35
- //# sourceMappingURL=bin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,oBAAoB;AACpB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAChC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEjC,eAAe;AACf,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,uBAAuB;IACpC,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC;AAEH,kBAAkB;AAClB,MAAM,CAAC,OAAO,CAAC;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC,CAAC;AAEH,UAAU;AACV,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\r\n/**\r\n * VLD CLI Entry Point\r\n *\r\n * This is the main entry point for the `vld` command-line tool.\r\n */\r\n\r\nimport { vldCli } from './index';\r\nimport { validateCommand } from './commands/validate';\r\nimport { benchmarkCommand } from './commands/benchmark';\r\n\r\n// Register commands\r\nvldCli.command(validateCommand);\r\nvldCli.command(benchmarkCommand);\r\n\r\n// Help command\r\nvldCli.command({\r\n name: 'help',\r\n description: 'Show help information',\r\n aliases: ['h'],\r\n action: () => {\r\n console.log(vldCli.help());\r\n }\r\n});\r\n\r\n// Version command\r\nvldCli.command({\r\n name: 'version',\r\n description: 'Show version information',\r\n action: () => {\r\n console.log('vld v1.5.0');\r\n }\r\n});\r\n\r\n// Run CLI\r\nvldCli.run(process.argv.slice(2)).catch((error) => {\r\n console.error('Fatal error:', error);\r\n process.exitCode = 1;\r\n});\r\n"]}