@oxog/vld 1.5.0 → 2.0.1
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 +116 -0
- package/README.md +558 -517
- package/dist/chunks/bigint-ZKkWLdmi.js +1628 -0
- package/dist/chunks/bigint-ZKkWLdmi.js.map +1 -0
- package/dist/{coercion/string.js → chunks/date-7Iz2BGsL.js} +271 -5
- package/dist/chunks/date-7Iz2BGsL.js.map +1 -0
- package/dist/chunks/index-BoV-4S1F.js +894 -0
- package/dist/chunks/index-BoV-4S1F.js.map +1 -0
- package/dist/chunks/index-eWXdjyyy.js +426 -0
- package/dist/chunks/index-eWXdjyyy.js.map +1 -0
- package/dist/chunks/json-nIhyRPOU.js +1934 -0
- package/dist/chunks/json-nIhyRPOU.js.map +1 -0
- package/dist/{validators/unknown.js → chunks/unknown-CjSRcELI.js} +6 -3
- package/dist/chunks/unknown-CjSRcELI.js.map +1 -0
- package/dist/cjs/errors.cjs +387 -0
- package/dist/cjs/errors.cjs.map +1 -0
- package/dist/cjs/index.cjs +9815 -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 +7161 -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/index.js +5 -45
- package/dist/validators/index.js.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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core-validators.js","sourceRoot":"","sources":["../../src/plugins/core-validators.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Core Validators Plugin\n *\n * Bu plugin tüm temel validator'ları içerir.\n * VLD'nin varsayılan olarak yüklediği ana plugin'dir.\n */\n\nimport type { ValidatorPlugin } from './types.js';\nimport { VldString } from '../validators/string.js';\nimport { VldNumber } from '../validators/number.js';\nimport { VldBoolean } from '../validators/boolean.js';\nimport { VldDate } from '../validators/date.js';\nimport { VldBigInt } from '../validators/bigint.js';\nimport { VldSymbol } from '../validators/symbol.js';\nimport { VldArray } from '../validators/array.js';\nimport { VldObject } from '../validators/object.js';\nimport { VldTuple } from '../validators/tuple.js';\nimport { VldRecord } from '../validators/record.js';\nimport { VldSet } from '../validators/set.js';\nimport { VldMap } from '../validators/map.js';\nimport { VldUnion } from '../validators/union.js';\nimport { VldIntersection } from '../validators/intersection.js';\nimport { VldLiteral } from '../validators/literal.js';\nimport { VldEnum } from '../validators/enum.js';\nimport { VldAny } from '../validators/any.js';\nimport { VldUnknown } from '../validators/unknown.js';\nimport { VldVoid } from '../validators/void.js';\nimport { VldNever } from '../validators/never.js';\nimport { VldNull } from '../validators/null.js';\nimport { VldUndefined } from '../validators/undefined.js';\nimport { VldNan } from '../validators/nan.js';\nimport { VldLazy } from '../validators/lazy.js';\nimport { VldStringBool } from '../validators/string-bool.js';\n\n/**\n * Core Validators Plugin\n */\nexport const coreValidatorsPlugin: ValidatorPlugin = {\n name: 'vld-core-validators',\n version: '2.0.0',\n description: 'Core validator types for VLD',\n\n validators: {\n // Primitive types\n string: () => VldString.create(),\n number: () => VldNumber.create(),\n int: () => VldNumber.create().int(),\n boolean: () => VldBoolean.create(),\n date: () => VldDate.create(),\n bigint: () => VldBigInt.create(),\n symbol: () => VldSymbol.create(),\n stringbool: (options?: { truthy?: readonly string[]; falsy?: readonly string[]; caseSensitive?: boolean }) =>\n VldStringBool.create(options as any),\n\n // Complex types\n array: (item: any) => VldArray.create(item),\n object: (shape: any) => VldObject.create(shape),\n tuple: (...items: any[]) => VldTuple.create(...items),\n record: (value: any) => VldRecord.create(value),\n set: (item: any) => VldSet.create(item),\n map: (key: any, value: any) => VldMap.create(key, value),\n\n // Union and intersection\n union: (...validators: any[]) => VldUnion.create(...validators),\n intersection: (first: any, second: any) => VldIntersection.create(first, second),\n\n // Literal and enum\n literal: (value: any) => VldLiteral.create(value),\n enum: (values: readonly [string, ...string[]]) => VldEnum.create(values),\n\n // Special types\n any: () => VldAny.create(),\n unknown: () => VldUnknown.create(),\n void: () => VldVoid.create(),\n never: () => VldNever.create() as any, // Type assertion needed for never type\n null: () => VldNull.create(),\n undefined: () => VldUndefined.create(),\n nan: () => VldNan.create(),\n\n // Lazy (recursive schemas)\n lazy: (schemaGetter: () => any) => VldLazy.create(schemaGetter)\n },\n\n install(kernel) {\n if (kernel.getContext().debug) {\n console.log('[VLD] Core validators plugin installed');\n }\n\n // Parse event'lerini dinle (debug mode)\n kernel.on('vld:parse:start', ({ schema }) => {\n if (kernel.getContext().debug) {\n console.log(`[VLD] Parsing: ${schema.constructor.name}`);\n }\n });\n\n kernel.on('vld:parse:success', ({ schema, duration }) => {\n if (kernel.getContext().debug) {\n console.log(`[VLD] Parse success: ${schema.constructor.name} (${duration.toFixed(2)}ms)`);\n }\n });\n\n kernel.on('vld:parse:error', ({ schema, error, duration }) => {\n if (kernel.getContext().debug) {\n console.log(`[VLD] Parse error: ${schema.constructor.name} (${duration.toFixed(2)}ms) - ${error.message}`);\n }\n });\n }\n};\n\nexport default coreValidatorsPlugin;\n"]}
|
package/dist/plugins/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VLD Plugins Module
|
|
3
|
-
*
|
|
4
|
-
* This module exports all plugin-related functionality.
|
|
5
|
-
*/
|
|
6
|
-
// Re-export kernel functionality
|
|
7
|
-
export { createVldKernel, definePlugin, getVldKernel, resetVldKernel, usePlugin } from '../kernel.js';
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,iCAAiC;AACjC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS,EACV,MAAM,WAAW,CAAC","sourcesContent":["/**\r\n * VLD Plugins Module\r\n *\r\n * This module exports all plugin-related functionality.\r\n */\r\n\r\n// Export types\r\nexport type {\r\n VldContext,\r\n VldPlugin,\r\n VldKernelInstance,\r\n VldKernelOptions,\r\n ValidatorFactory,\r\n TransformFactory,\r\n CodecFactory,\r\n HookContext,\r\n PluginBuilder,\r\n PluginMeta,\r\n PluginHooks\r\n} from './types';\r\n\r\n// Re-export kernel functionality\r\nexport {\r\n createVldKernel,\r\n definePlugin,\r\n getVldKernel,\r\n resetVldKernel,\r\n usePlugin\r\n} from '../kernel';\r\n"]}
|
package/dist/plugins/kernel.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VLD Kernel Implementation
|
|
3
|
-
*
|
|
4
|
-
* Bu modül VLD plugin sistemi için merkezi yönetim noktasını sağlar.
|
|
5
|
-
* @oxog/plugin paketi ile uyumlu micro-kernel mimarisi kullanır.
|
|
6
|
-
*/
|
|
7
|
-
import type { VldKernel, VldKernelOptions } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Yeni VLD Kernel oluşturur
|
|
10
|
-
*/
|
|
11
|
-
export declare function createVldKernel(options?: VldKernelOptions): VldKernel;
|
|
12
|
-
/**
|
|
13
|
-
* Global kernel'i alır veya oluşturur
|
|
14
|
-
*/
|
|
15
|
-
export declare function getGlobalKernel(): VldKernel;
|
|
16
|
-
/**
|
|
17
|
-
* Global kernel'i ayarlar
|
|
18
|
-
*/
|
|
19
|
-
export declare function setGlobalKernel(kernel: VldKernel): void;
|
|
20
|
-
/**
|
|
21
|
-
* Global kernel'i sıfırlar
|
|
22
|
-
*/
|
|
23
|
-
export declare function resetGlobalKernel(): void;
|
|
24
|
-
import type { PluginBuilder } from './types.js';
|
|
25
|
-
/**
|
|
26
|
-
* Plugin builder oluşturur
|
|
27
|
-
*/
|
|
28
|
-
export declare function definePlugin(): PluginBuilder;
|
|
29
|
-
//# sourceMappingURL=kernel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/plugins/kernel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAOjB,MAAM,YAAY,CAAC;AAwcpB;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAErE;AAQD;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAK3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAMD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,wBAAgB,YAAY,IAAI,aAAa,CA6F5C"}
|
package/dist/plugins/kernel.js
DELETED
|
@@ -1,486 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VLD Kernel Implementation
|
|
3
|
-
*
|
|
4
|
-
* Bu modül VLD plugin sistemi için merkezi yönetim noktasını sağlar.
|
|
5
|
-
* @oxog/plugin paketi ile uyumlu micro-kernel mimarisi kullanır.
|
|
6
|
-
*/
|
|
7
|
-
import { emitVldEvent, enableEvents } from '../events.js';
|
|
8
|
-
import { createEmitter } from '../compat/emitter.js';
|
|
9
|
-
// ============================================================================
|
|
10
|
-
// Kernel Implementation
|
|
11
|
-
// ============================================================================
|
|
12
|
-
/**
|
|
13
|
-
* VLD Kernel - Plugin yönetimi için merkezi sınıf
|
|
14
|
-
*/
|
|
15
|
-
class VldKernelImpl {
|
|
16
|
-
constructor(options = {}) {
|
|
17
|
-
this.plugins = new Map();
|
|
18
|
-
this.validators = new Map();
|
|
19
|
-
this.transforms = new Map();
|
|
20
|
-
this.codecs = new Map();
|
|
21
|
-
this.refinements = new Map();
|
|
22
|
-
this.started = false;
|
|
23
|
-
this.options = {
|
|
24
|
-
locale: options.locale || 'en',
|
|
25
|
-
strict: options.strict || false,
|
|
26
|
-
debug: options.debug || false,
|
|
27
|
-
errorStrategy: options.errorStrategy || 'throw',
|
|
28
|
-
maxPlugins: options.maxPlugins || 100
|
|
29
|
-
};
|
|
30
|
-
this.context = {
|
|
31
|
-
locale: this.options.locale,
|
|
32
|
-
strict: this.options.strict,
|
|
33
|
-
debug: this.options.debug
|
|
34
|
-
};
|
|
35
|
-
this._events = createEmitter();
|
|
36
|
-
// Debug mode ise event'leri etkinleştir
|
|
37
|
-
if (this.options.debug) {
|
|
38
|
-
enableEvents();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
// ============================================================================
|
|
42
|
-
// Context
|
|
43
|
-
// ============================================================================
|
|
44
|
-
getContext() {
|
|
45
|
-
return { ...this.context };
|
|
46
|
-
}
|
|
47
|
-
setContext(context) {
|
|
48
|
-
const oldLocale = this.context.locale;
|
|
49
|
-
this.context = { ...this.context, ...context };
|
|
50
|
-
// Locale değiştiyse event emit et
|
|
51
|
-
if (context.locale && context.locale !== oldLocale) {
|
|
52
|
-
this.emit('vld:locale:changed', {
|
|
53
|
-
from: oldLocale,
|
|
54
|
-
to: context.locale
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
// ============================================================================
|
|
59
|
-
// Plugin Management
|
|
60
|
-
// ============================================================================
|
|
61
|
-
use(plugin) {
|
|
62
|
-
// Plugin sayısı kontrolü
|
|
63
|
-
if (this.plugins.size >= (this.options.maxPlugins || 100)) {
|
|
64
|
-
throw new Error(`Maximum plugin count (${this.options.maxPlugins}) reached`);
|
|
65
|
-
}
|
|
66
|
-
// Duplicate kontrolü
|
|
67
|
-
if (this.plugins.has(plugin.name)) {
|
|
68
|
-
throw new Error(`Plugin "${plugin.name}" is already registered`);
|
|
69
|
-
}
|
|
70
|
-
// Bağımlılık kontrolü
|
|
71
|
-
if (plugin.dependencies) {
|
|
72
|
-
for (const dep of plugin.dependencies) {
|
|
73
|
-
if (!this.plugins.has(dep)) {
|
|
74
|
-
throw new Error(`Plugin "${plugin.name}" requires "${dep}" which is not installed`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// Plugin'i kaydet
|
|
79
|
-
this.plugins.set(plugin.name, plugin);
|
|
80
|
-
// Validator'ları kaydet
|
|
81
|
-
if (plugin.validators) {
|
|
82
|
-
for (const [name, factory] of Object.entries(plugin.validators)) {
|
|
83
|
-
this.validators.set(name, factory);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
// Transform'ları kaydet
|
|
87
|
-
if (plugin.transforms) {
|
|
88
|
-
for (const [name, factory] of Object.entries(plugin.transforms)) {
|
|
89
|
-
this.transforms.set(name, factory);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
// Codec'leri kaydet
|
|
93
|
-
if (plugin.codecs) {
|
|
94
|
-
for (const [name, factory] of Object.entries(plugin.codecs)) {
|
|
95
|
-
this.codecs.set(name, factory);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// Refinement'ları kaydet
|
|
99
|
-
if (plugin.refinements) {
|
|
100
|
-
for (const [name, factory] of Object.entries(plugin.refinements)) {
|
|
101
|
-
this.refinements.set(name, factory);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
// Install hook'unu çağır
|
|
105
|
-
if (plugin.install) {
|
|
106
|
-
const result = plugin.install(this);
|
|
107
|
-
if (result instanceof Promise) {
|
|
108
|
-
result.catch((error) => {
|
|
109
|
-
console.error(`Error installing plugin "${plugin.name}":`, error);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
// Event emit et
|
|
114
|
-
this.emit('vld:plugin:registered', {
|
|
115
|
-
name: plugin.name,
|
|
116
|
-
version: plugin.version
|
|
117
|
-
});
|
|
118
|
-
if (this.context.debug) {
|
|
119
|
-
console.log(`[VLD] Plugin registered: ${plugin.name}@${plugin.version}`);
|
|
120
|
-
}
|
|
121
|
-
return this;
|
|
122
|
-
}
|
|
123
|
-
remove(pluginName) {
|
|
124
|
-
const plugin = this.plugins.get(pluginName);
|
|
125
|
-
if (!plugin) {
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
// Bağımlı plugin kontrolü
|
|
129
|
-
for (const [name, p] of this.plugins) {
|
|
130
|
-
if (p.dependencies?.includes(pluginName)) {
|
|
131
|
-
throw new Error(`Cannot remove plugin "${pluginName}" because "${name}" depends on it`);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
// Uninstall hook'unu çağır
|
|
135
|
-
if (plugin.uninstall) {
|
|
136
|
-
const result = plugin.uninstall(this);
|
|
137
|
-
if (result instanceof Promise) {
|
|
138
|
-
result.catch((error) => {
|
|
139
|
-
console.error(`Error uninstalling plugin "${pluginName}":`, error);
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
// Plugin kayıtlarını temizle
|
|
144
|
-
if (plugin.validators) {
|
|
145
|
-
for (const name of Object.keys(plugin.validators)) {
|
|
146
|
-
this.validators.delete(name);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
if (plugin.transforms) {
|
|
150
|
-
for (const name of Object.keys(plugin.transforms)) {
|
|
151
|
-
this.transforms.delete(name);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (plugin.codecs) {
|
|
155
|
-
for (const name of Object.keys(plugin.codecs)) {
|
|
156
|
-
this.codecs.delete(name);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (plugin.refinements) {
|
|
160
|
-
for (const name of Object.keys(plugin.refinements)) {
|
|
161
|
-
this.refinements.delete(name);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
this.plugins.delete(pluginName);
|
|
165
|
-
if (this.context.debug) {
|
|
166
|
-
console.log(`[VLD] Plugin removed: ${pluginName}`);
|
|
167
|
-
}
|
|
168
|
-
return true;
|
|
169
|
-
}
|
|
170
|
-
hasPlugin(pluginName) {
|
|
171
|
-
return this.plugins.has(pluginName);
|
|
172
|
-
}
|
|
173
|
-
listPlugins() {
|
|
174
|
-
return Array.from(this.plugins.keys());
|
|
175
|
-
}
|
|
176
|
-
getPlugin(name) {
|
|
177
|
-
return this.plugins.get(name);
|
|
178
|
-
}
|
|
179
|
-
// ============================================================================
|
|
180
|
-
// Validators
|
|
181
|
-
// ============================================================================
|
|
182
|
-
registerValidator(name, factory) {
|
|
183
|
-
if (this.validators.has(name)) {
|
|
184
|
-
throw new Error(`Validator "${name}" is already registered`);
|
|
185
|
-
}
|
|
186
|
-
this.validators.set(name, factory);
|
|
187
|
-
return this;
|
|
188
|
-
}
|
|
189
|
-
getValidator(name) {
|
|
190
|
-
return this.validators.get(name);
|
|
191
|
-
}
|
|
192
|
-
listValidators() {
|
|
193
|
-
return Array.from(this.validators.keys());
|
|
194
|
-
}
|
|
195
|
-
// ============================================================================
|
|
196
|
-
// Transforms
|
|
197
|
-
// ============================================================================
|
|
198
|
-
registerTransform(name, factory) {
|
|
199
|
-
if (this.transforms.has(name)) {
|
|
200
|
-
throw new Error(`Transform "${name}" is already registered`);
|
|
201
|
-
}
|
|
202
|
-
this.transforms.set(name, factory);
|
|
203
|
-
return this;
|
|
204
|
-
}
|
|
205
|
-
getTransform(name) {
|
|
206
|
-
return this.transforms.get(name);
|
|
207
|
-
}
|
|
208
|
-
listTransforms() {
|
|
209
|
-
return Array.from(this.transforms.keys());
|
|
210
|
-
}
|
|
211
|
-
// ============================================================================
|
|
212
|
-
// Codecs
|
|
213
|
-
// ============================================================================
|
|
214
|
-
registerCodec(name, factory) {
|
|
215
|
-
if (this.codecs.has(name)) {
|
|
216
|
-
throw new Error(`Codec "${name}" is already registered`);
|
|
217
|
-
}
|
|
218
|
-
this.codecs.set(name, factory);
|
|
219
|
-
return this;
|
|
220
|
-
}
|
|
221
|
-
getCodec(name) {
|
|
222
|
-
return this.codecs.get(name);
|
|
223
|
-
}
|
|
224
|
-
listCodecs() {
|
|
225
|
-
return Array.from(this.codecs.keys());
|
|
226
|
-
}
|
|
227
|
-
// ============================================================================
|
|
228
|
-
// Refinements
|
|
229
|
-
// ============================================================================
|
|
230
|
-
registerRefinement(name, factory) {
|
|
231
|
-
if (this.refinements.has(name)) {
|
|
232
|
-
throw new Error(`Refinement "${name}" is already registered`);
|
|
233
|
-
}
|
|
234
|
-
this.refinements.set(name, factory);
|
|
235
|
-
return this;
|
|
236
|
-
}
|
|
237
|
-
getRefinement(name) {
|
|
238
|
-
return this.refinements.get(name);
|
|
239
|
-
}
|
|
240
|
-
listRefinements() {
|
|
241
|
-
return Array.from(this.refinements.keys());
|
|
242
|
-
}
|
|
243
|
-
// ============================================================================
|
|
244
|
-
// Events
|
|
245
|
-
// ============================================================================
|
|
246
|
-
get events() {
|
|
247
|
-
return this._events;
|
|
248
|
-
}
|
|
249
|
-
on(event, handler) {
|
|
250
|
-
return this._events.on(event, handler);
|
|
251
|
-
}
|
|
252
|
-
emit(event, payload) {
|
|
253
|
-
this._events.emit(event, payload);
|
|
254
|
-
// Global emitter'a da gönder
|
|
255
|
-
emitVldEvent(event, payload);
|
|
256
|
-
}
|
|
257
|
-
// ============================================================================
|
|
258
|
-
// Hooks
|
|
259
|
-
// ============================================================================
|
|
260
|
-
runBeforeParseHooks(value, schema) {
|
|
261
|
-
let result = value;
|
|
262
|
-
for (const plugin of this.plugins.values()) {
|
|
263
|
-
if (plugin.onBeforeParse) {
|
|
264
|
-
try {
|
|
265
|
-
result = plugin.onBeforeParse(result, schema, this.context);
|
|
266
|
-
}
|
|
267
|
-
catch (error) {
|
|
268
|
-
if (this.options.errorStrategy === 'throw') {
|
|
269
|
-
throw error;
|
|
270
|
-
}
|
|
271
|
-
this.emit('vld:plugin:error', {
|
|
272
|
-
name: plugin.name,
|
|
273
|
-
error: error
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
return result;
|
|
279
|
-
}
|
|
280
|
-
runAfterParseHooks(result, schema) {
|
|
281
|
-
let current = result;
|
|
282
|
-
for (const plugin of this.plugins.values()) {
|
|
283
|
-
if (plugin.onAfterParse) {
|
|
284
|
-
try {
|
|
285
|
-
current = plugin.onAfterParse(current, schema, this.context);
|
|
286
|
-
}
|
|
287
|
-
catch (error) {
|
|
288
|
-
if (this.options.errorStrategy === 'throw') {
|
|
289
|
-
throw error;
|
|
290
|
-
}
|
|
291
|
-
this.emit('vld:plugin:error', {
|
|
292
|
-
name: plugin.name,
|
|
293
|
-
error: error
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
return current;
|
|
299
|
-
}
|
|
300
|
-
runErrorHooks(error, schema) {
|
|
301
|
-
for (const plugin of this.plugins.values()) {
|
|
302
|
-
if (plugin.onError) {
|
|
303
|
-
try {
|
|
304
|
-
plugin.onError(error, schema, this.context);
|
|
305
|
-
}
|
|
306
|
-
catch (hookError) {
|
|
307
|
-
console.error(`Error in plugin "${plugin.name}" error hook:`, hookError);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
// ============================================================================
|
|
313
|
-
// Lifecycle
|
|
314
|
-
// ============================================================================
|
|
315
|
-
async start() {
|
|
316
|
-
if (this.started) {
|
|
317
|
-
return;
|
|
318
|
-
}
|
|
319
|
-
if (this.context.debug) {
|
|
320
|
-
console.log('[VLD] Kernel starting...');
|
|
321
|
-
}
|
|
322
|
-
this.started = true;
|
|
323
|
-
if (this.context.debug) {
|
|
324
|
-
console.log(`[VLD] Kernel started with ${this.plugins.size} plugins`);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
async stop() {
|
|
328
|
-
if (!this.started) {
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
if (this.context.debug) {
|
|
332
|
-
console.log('[VLD] Kernel stopping...');
|
|
333
|
-
}
|
|
334
|
-
// Tüm plugin'leri kaldır
|
|
335
|
-
const pluginNames = Array.from(this.plugins.keys()).reverse();
|
|
336
|
-
for (const name of pluginNames) {
|
|
337
|
-
try {
|
|
338
|
-
this.remove(name);
|
|
339
|
-
}
|
|
340
|
-
catch (error) {
|
|
341
|
-
console.error(`Error removing plugin "${name}":`, error);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
this.started = false;
|
|
345
|
-
if (this.context.debug) {
|
|
346
|
-
console.log('[VLD] Kernel stopped');
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
reset() {
|
|
350
|
-
this.plugins.clear();
|
|
351
|
-
this.validators.clear();
|
|
352
|
-
this.transforms.clear();
|
|
353
|
-
this.codecs.clear();
|
|
354
|
-
this.refinements.clear();
|
|
355
|
-
this._events.removeAllListeners();
|
|
356
|
-
this.context = {
|
|
357
|
-
locale: this.options.locale,
|
|
358
|
-
strict: this.options.strict,
|
|
359
|
-
debug: this.options.debug
|
|
360
|
-
};
|
|
361
|
-
this.started = false;
|
|
362
|
-
if (this.context.debug) {
|
|
363
|
-
console.log('[VLD] Kernel reset');
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
// ============================================================================
|
|
368
|
-
// Factory Function
|
|
369
|
-
// ============================================================================
|
|
370
|
-
/**
|
|
371
|
-
* Yeni VLD Kernel oluşturur
|
|
372
|
-
*/
|
|
373
|
-
export function createVldKernel(options) {
|
|
374
|
-
return new VldKernelImpl(options);
|
|
375
|
-
}
|
|
376
|
-
// ============================================================================
|
|
377
|
-
// Global Kernel
|
|
378
|
-
// ============================================================================
|
|
379
|
-
let globalKernel = null;
|
|
380
|
-
/**
|
|
381
|
-
* Global kernel'i alır veya oluşturur
|
|
382
|
-
*/
|
|
383
|
-
export function getGlobalKernel() {
|
|
384
|
-
if (!globalKernel) {
|
|
385
|
-
globalKernel = createVldKernel();
|
|
386
|
-
}
|
|
387
|
-
return globalKernel;
|
|
388
|
-
}
|
|
389
|
-
/**
|
|
390
|
-
* Global kernel'i ayarlar
|
|
391
|
-
*/
|
|
392
|
-
export function setGlobalKernel(kernel) {
|
|
393
|
-
globalKernel = kernel;
|
|
394
|
-
}
|
|
395
|
-
/**
|
|
396
|
-
* Global kernel'i sıfırlar
|
|
397
|
-
*/
|
|
398
|
-
export function resetGlobalKernel() {
|
|
399
|
-
if (globalKernel) {
|
|
400
|
-
globalKernel.reset();
|
|
401
|
-
globalKernel = null;
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
/**
|
|
405
|
-
* Plugin builder oluşturur
|
|
406
|
-
*/
|
|
407
|
-
export function definePlugin() {
|
|
408
|
-
const plugin = {};
|
|
409
|
-
const builder = {
|
|
410
|
-
name(name) {
|
|
411
|
-
plugin.name = name;
|
|
412
|
-
return this;
|
|
413
|
-
},
|
|
414
|
-
version(version) {
|
|
415
|
-
plugin.version = version;
|
|
416
|
-
return this;
|
|
417
|
-
},
|
|
418
|
-
description(description) {
|
|
419
|
-
plugin.description = description;
|
|
420
|
-
return this;
|
|
421
|
-
},
|
|
422
|
-
dependencies(...deps) {
|
|
423
|
-
plugin.dependencies = deps;
|
|
424
|
-
return this;
|
|
425
|
-
},
|
|
426
|
-
validator(name, factory) {
|
|
427
|
-
if (!plugin.validators) {
|
|
428
|
-
plugin.validators = {};
|
|
429
|
-
}
|
|
430
|
-
plugin.validators[name] = factory;
|
|
431
|
-
return this;
|
|
432
|
-
},
|
|
433
|
-
transform(name, factory) {
|
|
434
|
-
if (!plugin.transforms) {
|
|
435
|
-
plugin.transforms = {};
|
|
436
|
-
}
|
|
437
|
-
plugin.transforms[name] = factory;
|
|
438
|
-
return this;
|
|
439
|
-
},
|
|
440
|
-
codec(name, factory) {
|
|
441
|
-
if (!plugin.codecs) {
|
|
442
|
-
plugin.codecs = {};
|
|
443
|
-
}
|
|
444
|
-
plugin.codecs[name] = factory;
|
|
445
|
-
return this;
|
|
446
|
-
},
|
|
447
|
-
refinement(name, factory) {
|
|
448
|
-
if (!plugin.refinements) {
|
|
449
|
-
plugin.refinements = {};
|
|
450
|
-
}
|
|
451
|
-
plugin.refinements[name] = factory;
|
|
452
|
-
return this;
|
|
453
|
-
},
|
|
454
|
-
beforeParse(hook) {
|
|
455
|
-
plugin.onBeforeParse = hook;
|
|
456
|
-
return this;
|
|
457
|
-
},
|
|
458
|
-
afterParse(hook) {
|
|
459
|
-
plugin.onAfterParse = hook;
|
|
460
|
-
return this;
|
|
461
|
-
},
|
|
462
|
-
onError(hook) {
|
|
463
|
-
plugin.onError = hook;
|
|
464
|
-
return this;
|
|
465
|
-
},
|
|
466
|
-
install(fn) {
|
|
467
|
-
plugin.install = fn;
|
|
468
|
-
return this;
|
|
469
|
-
},
|
|
470
|
-
uninstall(fn) {
|
|
471
|
-
plugin.uninstall = fn;
|
|
472
|
-
return this;
|
|
473
|
-
},
|
|
474
|
-
build() {
|
|
475
|
-
if (!plugin.name) {
|
|
476
|
-
throw new Error('Plugin name is required');
|
|
477
|
-
}
|
|
478
|
-
if (!plugin.version) {
|
|
479
|
-
throw new Error('Plugin version is required');
|
|
480
|
-
}
|
|
481
|
-
return plugin;
|
|
482
|
-
}
|
|
483
|
-
};
|
|
484
|
-
return builder;
|
|
485
|
-
}
|
|
486
|
-
//# sourceMappingURL=kernel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/plugins/kernel.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * VLD Kernel Implementation\n *\n * Bu modül VLD plugin sistemi için merkezi yönetim noktasını sağlar.\n * @oxog/plugin paketi ile uyumlu micro-kernel mimarisi kullanır.\n */\n\nimport type {\n VldKernel,\n VldKernelOptions,\n VldContext,\n ValidatorPlugin,\n ValidatorFactory,\n TransformFactory,\n CodecFactory,\n RefinementFactory\n} from './types.js';\nimport type { ParseResult } from '../validators/base.js';\nimport type { VldBase } from '../validators/base.js';\nimport { VldError } from '../errors.js';\nimport { type VldEvents, emitVldEvent, enableEvents } from '../events.js';\nimport { Emitter, createEmitter } from '../compat/emitter.js';\n\n// ============================================================================\n// Kernel Implementation\n// ============================================================================\n\n/**\n * VLD Kernel - Plugin yönetimi için merkezi sınıf\n */\nclass VldKernelImpl implements VldKernel {\n private context: VldContext;\n private plugins: Map<string, ValidatorPlugin> = new Map();\n private validators: Map<string, ValidatorFactory> = new Map();\n private transforms: Map<string, TransformFactory> = new Map();\n private codecs: Map<string, CodecFactory> = new Map();\n private refinements: Map<string, RefinementFactory> = new Map();\n private _events: Emitter<VldEvents>;\n private options: VldKernelOptions;\n private started = false;\n\n constructor(options: VldKernelOptions = {}) {\n this.options = {\n locale: options.locale || 'en',\n strict: options.strict || false,\n debug: options.debug || false,\n errorStrategy: options.errorStrategy || 'throw',\n maxPlugins: options.maxPlugins || 100\n };\n\n this.context = {\n locale: this.options.locale!,\n strict: this.options.strict!,\n debug: this.options.debug!\n };\n\n this._events = createEmitter<VldEvents>();\n\n // Debug mode ise event'leri etkinleştir\n if (this.options.debug) {\n enableEvents();\n }\n }\n\n // ============================================================================\n // Context\n // ============================================================================\n\n getContext(): VldContext {\n return { ...this.context };\n }\n\n setContext(context: Partial<VldContext>): void {\n const oldLocale = this.context.locale;\n this.context = { ...this.context, ...context };\n\n // Locale değiştiyse event emit et\n if (context.locale && context.locale !== oldLocale) {\n this.emit('vld:locale:changed', {\n from: oldLocale,\n to: context.locale\n });\n }\n }\n\n // ============================================================================\n // Plugin Management\n // ============================================================================\n\n use(plugin: ValidatorPlugin): this {\n // Plugin sayısı kontrolü\n if (this.plugins.size >= (this.options.maxPlugins || 100)) {\n throw new Error(`Maximum plugin count (${this.options.maxPlugins}) reached`);\n }\n\n // Duplicate kontrolü\n if (this.plugins.has(plugin.name)) {\n throw new Error(`Plugin \"${plugin.name}\" is already registered`);\n }\n\n // Bağımlılık kontrolü\n if (plugin.dependencies) {\n for (const dep of plugin.dependencies) {\n if (!this.plugins.has(dep)) {\n throw new Error(\n `Plugin \"${plugin.name}\" requires \"${dep}\" which is not installed`\n );\n }\n }\n }\n\n // Plugin'i kaydet\n this.plugins.set(plugin.name, plugin);\n\n // Validator'ları kaydet\n if (plugin.validators) {\n for (const [name, factory] of Object.entries(plugin.validators)) {\n this.validators.set(name, factory);\n }\n }\n\n // Transform'ları kaydet\n if (plugin.transforms) {\n for (const [name, factory] of Object.entries(plugin.transforms)) {\n this.transforms.set(name, factory);\n }\n }\n\n // Codec'leri kaydet\n if (plugin.codecs) {\n for (const [name, factory] of Object.entries(plugin.codecs)) {\n this.codecs.set(name, factory);\n }\n }\n\n // Refinement'ları kaydet\n if (plugin.refinements) {\n for (const [name, factory] of Object.entries(plugin.refinements)) {\n this.refinements.set(name, factory);\n }\n }\n\n // Install hook'unu çağır\n if (plugin.install) {\n const result = plugin.install(this);\n if (result instanceof Promise) {\n result.catch((error) => {\n console.error(`Error installing plugin \"${plugin.name}\":`, error);\n });\n }\n }\n\n // Event emit et\n this.emit('vld:plugin:registered', {\n name: plugin.name,\n version: plugin.version\n });\n\n if (this.context.debug) {\n console.log(`[VLD] Plugin registered: ${plugin.name}@${plugin.version}`);\n }\n\n return this;\n }\n\n remove(pluginName: string): boolean {\n const plugin = this.plugins.get(pluginName);\n if (!plugin) {\n return false;\n }\n\n // Bağımlı plugin kontrolü\n for (const [name, p] of this.plugins) {\n if (p.dependencies?.includes(pluginName)) {\n throw new Error(\n `Cannot remove plugin \"${pluginName}\" because \"${name}\" depends on it`\n );\n }\n }\n\n // Uninstall hook'unu çağır\n if (plugin.uninstall) {\n const result = plugin.uninstall(this);\n if (result instanceof Promise) {\n result.catch((error) => {\n console.error(`Error uninstalling plugin \"${pluginName}\":`, error);\n });\n }\n }\n\n // Plugin kayıtlarını temizle\n if (plugin.validators) {\n for (const name of Object.keys(plugin.validators)) {\n this.validators.delete(name);\n }\n }\n if (plugin.transforms) {\n for (const name of Object.keys(plugin.transforms)) {\n this.transforms.delete(name);\n }\n }\n if (plugin.codecs) {\n for (const name of Object.keys(plugin.codecs)) {\n this.codecs.delete(name);\n }\n }\n if (plugin.refinements) {\n for (const name of Object.keys(plugin.refinements)) {\n this.refinements.delete(name);\n }\n }\n\n this.plugins.delete(pluginName);\n\n if (this.context.debug) {\n console.log(`[VLD] Plugin removed: ${pluginName}`);\n }\n\n return true;\n }\n\n hasPlugin(pluginName: string): boolean {\n return this.plugins.has(pluginName);\n }\n\n listPlugins(): string[] {\n return Array.from(this.plugins.keys());\n }\n\n getPlugin(name: string): ValidatorPlugin | undefined {\n return this.plugins.get(name);\n }\n\n // ============================================================================\n // Validators\n // ============================================================================\n\n registerValidator(name: string, factory: ValidatorFactory): this {\n if (this.validators.has(name)) {\n throw new Error(`Validator \"${name}\" is already registered`);\n }\n this.validators.set(name, factory);\n return this;\n }\n\n getValidator(name: string): ValidatorFactory | undefined {\n return this.validators.get(name);\n }\n\n listValidators(): string[] {\n return Array.from(this.validators.keys());\n }\n\n // ============================================================================\n // Transforms\n // ============================================================================\n\n registerTransform(name: string, factory: TransformFactory): this {\n if (this.transforms.has(name)) {\n throw new Error(`Transform \"${name}\" is already registered`);\n }\n this.transforms.set(name, factory);\n return this;\n }\n\n getTransform(name: string): TransformFactory | undefined {\n return this.transforms.get(name);\n }\n\n listTransforms(): string[] {\n return Array.from(this.transforms.keys());\n }\n\n // ============================================================================\n // Codecs\n // ============================================================================\n\n registerCodec(name: string, factory: CodecFactory): this {\n if (this.codecs.has(name)) {\n throw new Error(`Codec \"${name}\" is already registered`);\n }\n this.codecs.set(name, factory);\n return this;\n }\n\n getCodec(name: string): CodecFactory | undefined {\n return this.codecs.get(name);\n }\n\n listCodecs(): string[] {\n return Array.from(this.codecs.keys());\n }\n\n // ============================================================================\n // Refinements\n // ============================================================================\n\n registerRefinement(name: string, factory: RefinementFactory): this {\n if (this.refinements.has(name)) {\n throw new Error(`Refinement \"${name}\" is already registered`);\n }\n this.refinements.set(name, factory);\n return this;\n }\n\n getRefinement(name: string): RefinementFactory | undefined {\n return this.refinements.get(name);\n }\n\n listRefinements(): string[] {\n return Array.from(this.refinements.keys());\n }\n\n // ============================================================================\n // Events\n // ============================================================================\n\n get events(): Emitter<VldEvents> {\n return this._events;\n }\n\n on<K extends keyof VldEvents>(\n event: K,\n handler: (payload: VldEvents[K]) => void\n ): () => void {\n return this._events.on(event, handler);\n }\n\n emit<K extends keyof VldEvents>(event: K, payload: VldEvents[K]): void {\n this._events.emit(event, payload);\n // Global emitter'a da gönder\n emitVldEvent(event, payload);\n }\n\n // ============================================================================\n // Hooks\n // ============================================================================\n\n runBeforeParseHooks(\n value: unknown,\n schema: VldBase<unknown, unknown>\n ): unknown {\n let result = value;\n\n for (const plugin of this.plugins.values()) {\n if (plugin.onBeforeParse) {\n try {\n result = plugin.onBeforeParse(result, schema, this.context);\n } catch (error) {\n if (this.options.errorStrategy === 'throw') {\n throw error;\n }\n this.emit('vld:plugin:error', {\n name: plugin.name,\n error: error as Error\n });\n }\n }\n }\n\n return result;\n }\n\n runAfterParseHooks<T>(\n result: ParseResult<T>,\n schema: VldBase<unknown, unknown>\n ): ParseResult<T> {\n let current = result;\n\n for (const plugin of this.plugins.values()) {\n if (plugin.onAfterParse) {\n try {\n current = plugin.onAfterParse(current, schema, this.context) as ParseResult<T>;\n } catch (error) {\n if (this.options.errorStrategy === 'throw') {\n throw error;\n }\n this.emit('vld:plugin:error', {\n name: plugin.name,\n error: error as Error\n });\n }\n }\n }\n\n return current;\n }\n\n runErrorHooks(error: VldError, schema: VldBase<unknown, unknown>): void {\n for (const plugin of this.plugins.values()) {\n if (plugin.onError) {\n try {\n plugin.onError(error, schema, this.context);\n } catch (hookError) {\n console.error(`Error in plugin \"${plugin.name}\" error hook:`, hookError);\n }\n }\n }\n }\n\n // ============================================================================\n // Lifecycle\n // ============================================================================\n\n async start(): Promise<void> {\n if (this.started) {\n return;\n }\n\n if (this.context.debug) {\n console.log('[VLD] Kernel starting...');\n }\n\n this.started = true;\n\n if (this.context.debug) {\n console.log(`[VLD] Kernel started with ${this.plugins.size} plugins`);\n }\n }\n\n async stop(): Promise<void> {\n if (!this.started) {\n return;\n }\n\n if (this.context.debug) {\n console.log('[VLD] Kernel stopping...');\n }\n\n // Tüm plugin'leri kaldır\n const pluginNames = Array.from(this.plugins.keys()).reverse();\n for (const name of pluginNames) {\n try {\n this.remove(name);\n } catch (error) {\n console.error(`Error removing plugin \"${name}\":`, error);\n }\n }\n\n this.started = false;\n\n if (this.context.debug) {\n console.log('[VLD] Kernel stopped');\n }\n }\n\n reset(): void {\n this.plugins.clear();\n this.validators.clear();\n this.transforms.clear();\n this.codecs.clear();\n this.refinements.clear();\n this._events.removeAllListeners();\n\n this.context = {\n locale: this.options.locale!,\n strict: this.options.strict!,\n debug: this.options.debug!\n };\n\n this.started = false;\n\n if (this.context.debug) {\n console.log('[VLD] Kernel reset');\n }\n }\n}\n\n// ============================================================================\n// Factory Function\n// ============================================================================\n\n/**\n * Yeni VLD Kernel oluşturur\n */\nexport function createVldKernel(options?: VldKernelOptions): VldKernel {\n return new VldKernelImpl(options);\n}\n\n// ============================================================================\n// Global Kernel\n// ============================================================================\n\nlet globalKernel: VldKernel | null = null;\n\n/**\n * Global kernel'i alır veya oluşturur\n */\nexport function getGlobalKernel(): VldKernel {\n if (!globalKernel) {\n globalKernel = createVldKernel();\n }\n return globalKernel;\n}\n\n/**\n * Global kernel'i ayarlar\n */\nexport function setGlobalKernel(kernel: VldKernel): void {\n globalKernel = kernel;\n}\n\n/**\n * Global kernel'i sıfırlar\n */\nexport function resetGlobalKernel(): void {\n if (globalKernel) {\n globalKernel.reset();\n globalKernel = null;\n }\n}\n\n// ============================================================================\n// Plugin Builder\n// ============================================================================\n\nimport type { PluginBuilder } from './types.js';\n\n/**\n * Plugin builder oluşturur\n */\nexport function definePlugin(): PluginBuilder {\n const plugin: Partial<ValidatorPlugin> = {};\n\n const builder: PluginBuilder = {\n name(name: string) {\n plugin.name = name;\n return this;\n },\n\n version(version: string) {\n plugin.version = version;\n return this;\n },\n\n description(description: string) {\n plugin.description = description;\n return this;\n },\n\n dependencies(...deps: string[]) {\n plugin.dependencies = deps;\n return this;\n },\n\n validator(name: string, factory: ValidatorFactory) {\n if (!plugin.validators) {\n plugin.validators = {};\n }\n plugin.validators[name] = factory;\n return this;\n },\n\n transform(name: string, factory: TransformFactory) {\n if (!plugin.transforms) {\n plugin.transforms = {};\n }\n plugin.transforms[name] = factory;\n return this;\n },\n\n codec(name: string, factory: CodecFactory) {\n if (!plugin.codecs) {\n plugin.codecs = {};\n }\n plugin.codecs[name] = factory;\n return this;\n },\n\n refinement(name: string, factory: RefinementFactory) {\n if (!plugin.refinements) {\n plugin.refinements = {};\n }\n plugin.refinements[name] = factory;\n return this;\n },\n\n beforeParse(hook) {\n plugin.onBeforeParse = hook;\n return this;\n },\n\n afterParse(hook) {\n plugin.onAfterParse = hook;\n return this;\n },\n\n onError(hook) {\n plugin.onError = hook;\n return this;\n },\n\n install(fn) {\n plugin.install = fn;\n return this;\n },\n\n uninstall(fn) {\n plugin.uninstall = fn;\n return this;\n },\n\n build(): ValidatorPlugin {\n if (!plugin.name) {\n throw new Error('Plugin name is required');\n }\n if (!plugin.version) {\n throw new Error('Plugin version is required');\n }\n return plugin as ValidatorPlugin;\n }\n };\n\n return builder;\n}\n"]}
|
package/dist/plugins/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\r\n * VLD Plugin Types\r\n *\r\n * This module defines the plugin system interfaces and types\r\n * for extending VLD with custom validators, transforms, and codecs.\r\n */\r\n\r\nimport type { VldBase } from '../validators/base';\r\nimport type { VldError } from '../errors';\r\nimport type { ParseResult } from '../validators/base';\r\nimport type { Locale } from '../locales';\r\n\r\n/**\r\n * Plugin metadata\r\n */\r\nexport interface PluginMeta {\r\n /** Plugin name (must be unique) */\r\n readonly name: string;\r\n /** Plugin version (semver) */\r\n readonly version: string;\r\n /** Plugin description */\r\n readonly description?: string;\r\n /** Plugin author */\r\n readonly author?: string;\r\n /** Plugin dependencies */\r\n readonly dependencies?: Record<string, string>;\r\n}\r\n\r\n/**\r\n * VLD context available to plugins\r\n */\r\nexport interface VldContext {\r\n /** Current locale */\r\n locale: Locale;\r\n /** Strict mode enabled */\r\n strict: boolean;\r\n /** Debug mode enabled */\r\n debug: boolean;\r\n /** Custom context data */\r\n custom: Record<string, unknown>;\r\n}\r\n\r\n/**\r\n * Validator factory function\r\n */\r\nexport type ValidatorFactory<T = unknown> = (\r\n ...args: unknown[]\r\n) => VldBase<unknown, T>;\r\n\r\n/**\r\n * Transform factory function\r\n */\r\nexport type TransformFactory<TInput = unknown, TOutput = unknown> = (\r\n ...args: unknown[]\r\n) => (value: TInput) => TOutput;\r\n\r\n/**\r\n * Codec factory function\r\n */\r\nexport interface CodecFactory<TInput = unknown, TOutput = unknown> {\r\n decode: (value: TInput) => TOutput | Promise<TOutput>;\r\n encode: (value: TOutput) => TInput | Promise<TInput>;\r\n}\r\n\r\n/**\r\n * Plugin hook context\r\n */\r\nexport interface HookContext {\r\n /** Path to current value in nested validation */\r\n path: (string | number)[];\r\n /** Parent schema (if nested) */\r\n parent?: VldBase<unknown, unknown>;\r\n /** Abort validation */\r\n abort: () => void;\r\n}\r\n\r\n/**\r\n * Plugin hooks for intercepting validation lifecycle\r\n */\r\nexport interface PluginHooks {\r\n /**\r\n * Called before parsing starts\r\n * Can modify the value before validation\r\n */\r\n onBeforeParse?: (\r\n value: unknown,\r\n schema: VldBase<unknown, unknown>,\r\n context: HookContext\r\n ) => unknown;\r\n\r\n /**\r\n * Called after parsing completes (success or failure)\r\n * Can modify the result\r\n */\r\n onAfterParse?: <T>(\r\n result: ParseResult<T>,\r\n schema: VldBase<unknown, unknown>,\r\n context: HookContext\r\n ) => ParseResult<T>;\r\n\r\n /**\r\n * Called when a validation error occurs\r\n * Can log, transform, or suppress errors\r\n */\r\n onError?: (\r\n error: VldError,\r\n schema: VldBase<unknown, unknown>,\r\n context: HookContext\r\n ) => void;\r\n\r\n /**\r\n * Called when validation succeeds\r\n * Useful for metrics and logging\r\n */\r\n onSuccess?: <T>(\r\n data: T,\r\n schema: VldBase<unknown, unknown>,\r\n context: HookContext\r\n ) => void;\r\n}\r\n\r\n/**\r\n * VLD Plugin interface\r\n */\r\nexport interface VldPlugin extends PluginMeta, PluginHooks {\r\n /**\r\n * Custom validators provided by this plugin\r\n */\r\n validators?: Record<string, ValidatorFactory>;\r\n\r\n /**\r\n * Custom transforms provided by this plugin\r\n */\r\n transforms?: Record<string, TransformFactory>;\r\n\r\n /**\r\n * Custom codecs provided by this plugin\r\n */\r\n codecs?: Record<string, CodecFactory>;\r\n\r\n /**\r\n * Install hook - called when plugin is registered\r\n * Receives the VLD kernel for additional setup\r\n */\r\n install?: (kernel: VldKernelInstance) => void | Promise<void>;\r\n\r\n /**\r\n * Uninstall hook - called when plugin is removed\r\n */\r\n uninstall?: (kernel: VldKernelInstance) => void | Promise<void>;\r\n}\r\n\r\n/**\r\n * Kernel options\r\n */\r\nexport interface VldKernelOptions {\r\n /** Initial context */\r\n context?: Partial<VldContext>;\r\n /** Plugins to load on creation */\r\n plugins?: VldPlugin[];\r\n /** Error handling strategy */\r\n errorStrategy?: 'throw' | 'isolate' | 'silent';\r\n /** Enable debug mode */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * VLD Kernel instance interface\r\n */\r\nexport interface VldKernelInstance {\r\n // ============================================\r\n // Context Management\r\n // ============================================\r\n\r\n /** Get current context */\r\n getContext(): VldContext;\r\n\r\n /** Update context */\r\n setContext(partial: Partial<VldContext>): void;\r\n\r\n // ============================================\r\n // Plugin Management\r\n // ============================================\r\n\r\n /** Register a plugin */\r\n use(plugin: VldPlugin): this;\r\n\r\n /** Remove a plugin by name */\r\n remove(name: string): boolean;\r\n\r\n /** Get a plugin by name */\r\n getPlugin(name: string): VldPlugin | undefined;\r\n\r\n /** Get all registered plugins */\r\n getPlugins(): VldPlugin[];\r\n\r\n /** Check if a plugin is registered */\r\n hasPlugin(name: string): boolean;\r\n\r\n // ============================================\r\n // Validator Registry\r\n // ============================================\r\n\r\n /** Register a custom validator */\r\n registerValidator(name: string, factory: ValidatorFactory): this;\r\n\r\n /** Get a validator by name */\r\n getValidator(name: string): VldBase<unknown, unknown> | undefined;\r\n\r\n /** Get all registered validators */\r\n getValidators(): Record<string, ValidatorFactory>;\r\n\r\n // ============================================\r\n // Transform Registry\r\n // ============================================\r\n\r\n /** Register a custom transform */\r\n registerTransform(name: string, factory: TransformFactory): this;\r\n\r\n /** Get a transform by name */\r\n getTransform(name: string): TransformFactory | undefined;\r\n\r\n // ============================================\r\n // Codec Registry\r\n // ============================================\r\n\r\n /** Register a custom codec */\r\n registerCodec(name: string, codec: CodecFactory): this;\r\n\r\n /** Get a codec by name */\r\n getCodec(name: string): CodecFactory | undefined;\r\n\r\n // ============================================\r\n // Hook Execution\r\n // ============================================\r\n\r\n /** Execute beforeParse hooks */\r\n executeBeforeParse(\r\n value: unknown,\r\n schema: VldBase<unknown, unknown>,\r\n context: HookContext\r\n ): unknown;\r\n\r\n /** Execute afterParse hooks */\r\n executeAfterParse<T>(\r\n result: ParseResult<T>,\r\n schema: VldBase<unknown, unknown>,\r\n context: HookContext\r\n ): ParseResult<T>;\r\n\r\n /** Execute error hooks */\r\n executeOnError(\r\n error: VldError,\r\n schema: VldBase<unknown, unknown>,\r\n context: HookContext\r\n ): void;\r\n\r\n /** Execute success hooks */\r\n executeOnSuccess<T>(\r\n data: T,\r\n schema: VldBase<unknown, unknown>,\r\n context: HookContext\r\n ): void;\r\n\r\n // ============================================\r\n // Lifecycle\r\n // ============================================\r\n\r\n /** Dispose of all plugins and cleanup */\r\n dispose(): Promise<void>;\r\n}\r\n\r\n/**\r\n * Plugin builder for fluent plugin creation\r\n */\r\nexport interface PluginBuilder {\r\n name(name: string): this;\r\n version(version: string): this;\r\n description(description: string): this;\r\n validator(name: string, factory: ValidatorFactory): this;\r\n transform(name: string, factory: TransformFactory): this;\r\n codec(name: string, codec: CodecFactory): this;\r\n hook<K extends keyof PluginHooks>(name: K, fn: PluginHooks[K]): this;\r\n install(fn: VldPlugin['install']): this;\r\n build(): VldPlugin;\r\n}\r\n"]}
|