@oxog/vld 1.5.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +168 -0
- package/LICENSE +20 -20
- package/README.md +558 -517
- package/dist/chunks/bigint-DgsCr2dC.js +1709 -0
- package/dist/chunks/bigint-DgsCr2dC.js.map +1 -0
- package/dist/{coercion/string.js → chunks/date-ODue_rtq.js} +271 -5
- package/dist/chunks/date-ODue_rtq.js.map +1 -0
- package/dist/chunks/index-BZqWZvVe.js +426 -0
- package/dist/chunks/index-BZqWZvVe.js.map +1 -0
- package/dist/chunks/index-CETyGkrv.js +894 -0
- package/dist/chunks/index-CETyGkrv.js.map +1 -0
- package/dist/chunks/json-o20GFhTh.js +2021 -0
- package/dist/chunks/json-o20GFhTh.js.map +1 -0
- package/dist/{validators/unknown.js → chunks/unknown-SLIH1VCf.js} +6 -3
- package/dist/chunks/unknown-SLIH1VCf.js.map +1 -0
- package/dist/cjs/errors.cjs +387 -0
- package/dist/cjs/errors.cjs.map +1 -0
- package/dist/cjs/index.cjs +9983 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/locales/index.cjs +2877 -0
- package/dist/cjs/locales/index.cjs.map +1 -0
- package/dist/cjs/locales/lazy.cjs +3169 -0
- package/dist/cjs/locales/lazy.cjs.map +1 -0
- package/dist/cjs/mini.cjs +7329 -0
- package/dist/cjs/mini.cjs.map +1 -0
- package/dist/codecs/index.js +4 -275
- package/dist/codecs/index.js.map +1 -1
- package/dist/coercion/index.d.ts +11 -0
- package/dist/coercion/index.d.ts.map +1 -0
- package/dist/coercion/{bigint.js → index.js} +7 -4
- package/dist/coercion/index.js.map +1 -0
- package/dist/compat/emitter.js +6 -4
- package/dist/compat/emitter.js.map +1 -1
- package/dist/compat/result.js +21 -19
- package/dist/compat/result.js.map +1 -1
- package/dist/errors.js +13 -10
- package/dist/errors.js.map +1 -1
- package/dist/index.js +225 -126
- package/dist/index.js.map +1 -1
- package/dist/kernel.js +10 -7
- package/dist/kernel.js.map +1 -1
- package/dist/locales/af.js +4 -2
- package/dist/locales/af.js.map +1 -1
- package/dist/locales/ar.js +4 -2
- package/dist/locales/ar.js.map +1 -1
- package/dist/locales/bn.js +4 -2
- package/dist/locales/bn.js.map +1 -1
- package/dist/locales/da.js +4 -2
- package/dist/locales/da.js.map +1 -1
- package/dist/locales/de.js +4 -2
- package/dist/locales/de.js.map +1 -1
- package/dist/locales/en.js +4 -2
- package/dist/locales/en.js.map +1 -1
- package/dist/locales/es-MX.js +4 -2
- package/dist/locales/es-MX.js.map +1 -1
- package/dist/locales/es.js +4 -2
- package/dist/locales/es.js.map +1 -1
- package/dist/locales/fi.js +4 -2
- package/dist/locales/fi.js.map +1 -1
- package/dist/locales/fr.js +4 -2
- package/dist/locales/fr.js.map +1 -1
- package/dist/locales/hi.js +4 -2
- package/dist/locales/hi.js.map +1 -1
- package/dist/locales/id.js +4 -2
- package/dist/locales/id.js.map +1 -1
- package/dist/locales/index.js +3 -91
- package/dist/locales/index.js.map +1 -1
- package/dist/locales/it.js +4 -2
- package/dist/locales/it.js.map +1 -1
- package/dist/locales/ja.js +4 -2
- package/dist/locales/ja.js.map +1 -1
- package/dist/locales/ko.js +4 -2
- package/dist/locales/ko.js.map +1 -1
- package/dist/locales/lazy.d.ts +111 -0
- package/dist/locales/lazy.d.ts.map +1 -0
- package/dist/locales/lazy.js +220 -0
- package/dist/locales/lazy.js.map +1 -0
- package/dist/locales/nl.js +4 -2
- package/dist/locales/nl.js.map +1 -1
- package/dist/locales/no.js +4 -2
- package/dist/locales/no.js.map +1 -1
- package/dist/locales/pl.js +4 -2
- package/dist/locales/pl.js.map +1 -1
- package/dist/locales/pt-BR.js +4 -2
- package/dist/locales/pt-BR.js.map +1 -1
- package/dist/locales/pt.js +4 -2
- package/dist/locales/pt.js.map +1 -1
- package/dist/locales/ru.js +4 -2
- package/dist/locales/ru.js.map +1 -1
- package/dist/locales/sv.js +4 -2
- package/dist/locales/sv.js.map +1 -1
- package/dist/locales/sw.js +4 -2
- package/dist/locales/sw.js.map +1 -1
- package/dist/locales/th.js +4 -2
- package/dist/locales/th.js.map +1 -1
- package/dist/locales/tr.js +4 -2
- package/dist/locales/tr.js.map +1 -1
- package/dist/locales/vi.js +4 -2
- package/dist/locales/vi.js.map +1 -1
- package/dist/locales/zh.js +4 -2
- package/dist/locales/zh.js.map +1 -1
- package/dist/mini.d.ts +182 -0
- package/dist/mini.d.ts.map +1 -0
- package/dist/mini.js +132 -0
- package/dist/mini.js.map +1 -0
- package/dist/pigment.js +8 -7
- package/dist/pigment.js.map +1 -1
- package/dist/validators/array.d.ts +5 -0
- package/dist/validators/array.d.ts.map +1 -1
- package/dist/validators/discriminated-union.d.ts.map +1 -1
- package/dist/validators/enum.d.ts +5 -1
- package/dist/validators/enum.d.ts.map +1 -1
- package/dist/validators/index.js +5 -45
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/lazy.d.ts +8 -1
- package/dist/validators/lazy.d.ts.map +1 -1
- package/dist/validators/literal.d.ts +5 -1
- package/dist/validators/literal.d.ts.map +1 -1
- package/dist/validators/object.d.ts +30 -3
- package/dist/validators/object.d.ts.map +1 -1
- package/dist/validators/string.d.ts +12 -1
- package/dist/validators/string.d.ts.map +1 -1
- package/package.json +69 -11
- package/dist/cli/benchmark.d.ts +0 -15
- package/dist/cli/benchmark.d.ts.map +0 -1
- package/dist/cli/benchmark.js +0 -248
- package/dist/cli/benchmark.js.map +0 -1
- package/dist/cli/bin.js +0 -35
- package/dist/cli/bin.js.map +0 -1
- package/dist/cli/commands/benchmark.js +0 -204
- package/dist/cli/commands/benchmark.js.map +0 -1
- package/dist/cli/commands/validate.js +0 -157
- package/dist/cli/commands/validate.js.map +0 -1
- package/dist/cli/generate.d.ts +0 -14
- package/dist/cli/generate.d.ts.map +0 -1
- package/dist/cli/generate.js +0 -233
- package/dist/cli/generate.js.map +0 -1
- package/dist/cli/index.js +0 -182
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/validate.d.ts +0 -15
- package/dist/cli/validate.d.ts.map +0 -1
- package/dist/cli/validate.js +0 -162
- package/dist/cli/validate.js.map +0 -1
- package/dist/coercion/bigint.js.map +0 -1
- package/dist/coercion/boolean.js +0 -59
- package/dist/coercion/boolean.js.map +0 -1
- package/dist/coercion/date.js +0 -52
- package/dist/coercion/date.js.map +0 -1
- package/dist/coercion/number.js +0 -160
- package/dist/coercion/number.js.map +0 -1
- package/dist/coercion/string.js.map +0 -1
- package/dist/compat/index.js +0 -14
- package/dist/compat/index.js.map +0 -1
- package/dist/events.js +0 -8
- package/dist/events.js.map +0 -1
- package/dist/guards.d.ts +0 -143
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -238
- package/dist/guards.js.map +0 -1
- package/dist/index-new.d.ts.map +0 -1
- package/dist/locales/backup-en.js +0 -105
- package/dist/locales/backup-en.js.map +0 -1
- package/dist/locales/types.js +0 -2
- package/dist/locales/types.js.map +0 -1
- package/dist/locales.d.ts +0 -54
- package/dist/locales.d.ts.map +0 -1
- package/dist/locales.js +0 -732
- package/dist/locales.js.map +0 -1
- package/dist/logger.js +0 -184
- package/dist/logger.js.map +0 -1
- package/dist/plugins/codecs.d.ts +0 -17
- package/dist/plugins/codecs.d.ts.map +0 -1
- package/dist/plugins/codecs.js +0 -29
- package/dist/plugins/codecs.js.map +0 -1
- package/dist/plugins/coercion.d.ts +0 -13
- package/dist/plugins/coercion.d.ts.map +0 -1
- package/dist/plugins/coercion.js +0 -34
- package/dist/plugins/coercion.js.map +0 -1
- package/dist/plugins/core-validators.d.ts +0 -13
- package/dist/plugins/core-validators.d.ts.map +0 -1
- package/dist/plugins/core-validators.js +0 -96
- package/dist/plugins/core-validators.js.map +0 -1
- package/dist/plugins/index.js +0 -8
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/kernel.d.ts +0 -29
- package/dist/plugins/kernel.d.ts.map +0 -1
- package/dist/plugins/kernel.js +0 -486
- package/dist/plugins/kernel.js.map +0 -1
- package/dist/plugins/types.js +0 -8
- package/dist/plugins/types.js.map +0 -1
- package/dist/style.d.ts +0 -123
- package/dist/style.d.ts.map +0 -1
- package/dist/style.js +0 -369
- package/dist/style.js.map +0 -1
- package/dist/utils/codec-utils.js +0 -229
- package/dist/utils/codec-utils.js.map +0 -1
- package/dist/utils/deep-merge.js +0 -76
- package/dist/utils/deep-merge.js.map +0 -1
- package/dist/utils/ip-validation.js +0 -98
- package/dist/utils/ip-validation.js.map +0 -1
- package/dist/utils/security.js +0 -61
- package/dist/utils/security.js.map +0 -1
- package/dist/validators/any.js +0 -25
- package/dist/validators/any.js.map +0 -1
- package/dist/validators/array.js +0 -190
- package/dist/validators/array.js.map +0 -1
- package/dist/validators/base.js +0 -499
- package/dist/validators/base.js.map +0 -1
- package/dist/validators/base64.js +0 -65
- package/dist/validators/base64.js.map +0 -1
- package/dist/validators/bigint.js +0 -142
- package/dist/validators/bigint.js.map +0 -1
- package/dist/validators/boolean.js +0 -114
- package/dist/validators/boolean.js.map +0 -1
- package/dist/validators/codec.js +0 -182
- package/dist/validators/codec.js.map +0 -1
- package/dist/validators/custom.js +0 -50
- package/dist/validators/custom.js.map +0 -1
- package/dist/validators/date.js +0 -227
- package/dist/validators/date.js.map +0 -1
- package/dist/validators/discriminated-union.js +0 -98
- package/dist/validators/discriminated-union.js.map +0 -1
- package/dist/validators/enum.js +0 -82
- package/dist/validators/enum.js.map +0 -1
- package/dist/validators/file.js +0 -114
- package/dist/validators/file.js.map +0 -1
- package/dist/validators/function.js +0 -45
- package/dist/validators/function.js.map +0 -1
- package/dist/validators/hex.js +0 -62
- package/dist/validators/hex.js.map +0 -1
- package/dist/validators/intersection.js +0 -64
- package/dist/validators/intersection.js.map +0 -1
- package/dist/validators/json.js +0 -64
- package/dist/validators/json.js.map +0 -1
- package/dist/validators/lazy.js +0 -42
- package/dist/validators/lazy.js.map +0 -1
- package/dist/validators/literal.js +0 -45
- package/dist/validators/literal.js.map +0 -1
- package/dist/validators/map.js +0 -54
- package/dist/validators/map.js.map +0 -1
- package/dist/validators/nan.js +0 -32
- package/dist/validators/nan.js.map +0 -1
- package/dist/validators/never.js +0 -29
- package/dist/validators/never.js.map +0 -1
- package/dist/validators/null.js +0 -31
- package/dist/validators/null.js.map +0 -1
- package/dist/validators/number.js +0 -225
- package/dist/validators/number.js.map +0 -1
- package/dist/validators/object-optimized.d.ts +0 -23
- package/dist/validators/object-optimized.d.ts.map +0 -1
- package/dist/validators/object-optimized.js +0 -179
- package/dist/validators/object-optimized.js.map +0 -1
- package/dist/validators/object-ultra.d.ts +0 -34
- package/dist/validators/object-ultra.d.ts.map +0 -1
- package/dist/validators/object-ultra.js +0 -175
- package/dist/validators/object-ultra.js.map +0 -1
- package/dist/validators/object.js +0 -458
- package/dist/validators/object.js.map +0 -1
- package/dist/validators/record.js +0 -128
- package/dist/validators/record.js.map +0 -1
- package/dist/validators/set.js +0 -51
- package/dist/validators/set.js.map +0 -1
- package/dist/validators/string-bool.js +0 -127
- package/dist/validators/string-bool.js.map +0 -1
- package/dist/validators/string-formats.js +0 -120
- package/dist/validators/string-formats.js.map +0 -1
- package/dist/validators/string-ultra.d.ts +0 -49
- package/dist/validators/string-ultra.d.ts.map +0 -1
- package/dist/validators/string-ultra.js +0 -217
- package/dist/validators/string-ultra.js.map +0 -1
- package/dist/validators/string.js +0 -253
- package/dist/validators/string.js.map +0 -1
- package/dist/validators/symbol.js +0 -42
- package/dist/validators/symbol.js.map +0 -1
- package/dist/validators/template-literal.js +0 -102
- package/dist/validators/template-literal.js.map +0 -1
- package/dist/validators/tuple.js +0 -55
- package/dist/validators/tuple.js.map +0 -1
- package/dist/validators/uint8array.js +0 -98
- package/dist/validators/uint8array.js.map +0 -1
- package/dist/validators/undefined.js +0 -31
- package/dist/validators/undefined.js.map +0 -1
- package/dist/validators/union-optimized.d.ts +0 -15
- package/dist/validators/union-optimized.d.ts.map +0 -1
- package/dist/validators/union-optimized.js +0 -92
- package/dist/validators/union-optimized.js.map +0 -1
- package/dist/validators/union.js +0 -126
- package/dist/validators/union.js.map +0 -1
- package/dist/validators/unknown.js.map +0 -1
- package/dist/validators/void.js +0 -35
- package/dist/validators/void.js.map +0 -1
- package/dist/validators/xor.js +0 -64
- package/dist/validators/xor.js.map +0 -1
package/dist/style.d.ts
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VLD Style - Console styling utilities
|
|
3
|
-
*
|
|
4
|
-
* Bu modül @oxog/pigment paketi ile uyumlu renkli console output sağlar.
|
|
5
|
-
* Eğer @oxog/pigment yüklüyse onun implementasyonu kullanılır.
|
|
6
|
-
* Yüklü değilse, internal ANSI color implementasyonu kullanılır.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Renkleri etkinleştirir
|
|
10
|
-
*/
|
|
11
|
-
export declare function enableColors(): void;
|
|
12
|
-
/**
|
|
13
|
-
* Renkleri devre dışı bırakır
|
|
14
|
-
*/
|
|
15
|
-
export declare function disableColors(): void;
|
|
16
|
-
/**
|
|
17
|
-
* Renklerin etkin olup olmadığını kontrol eder
|
|
18
|
-
*/
|
|
19
|
-
export declare function colorsEnabled(): boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Style helper object - @oxog/pigment API'si ile uyumlu
|
|
22
|
-
*/
|
|
23
|
-
export declare const style: {
|
|
24
|
-
reset: (text: string) => string;
|
|
25
|
-
bold: (text: string) => string;
|
|
26
|
-
dim: (text: string) => string;
|
|
27
|
-
italic: (text: string) => string;
|
|
28
|
-
underline: (text: string) => string;
|
|
29
|
-
inverse: (text: string) => string;
|
|
30
|
-
hidden: (text: string) => string;
|
|
31
|
-
strikethrough: (text: string) => string;
|
|
32
|
-
black: (text: string) => string;
|
|
33
|
-
red: (text: string) => string;
|
|
34
|
-
green: (text: string) => string;
|
|
35
|
-
yellow: (text: string) => string;
|
|
36
|
-
blue: (text: string) => string;
|
|
37
|
-
magenta: (text: string) => string;
|
|
38
|
-
cyan: (text: string) => string;
|
|
39
|
-
white: (text: string) => string;
|
|
40
|
-
gray: (text: string) => string;
|
|
41
|
-
grey: (text: string) => string;
|
|
42
|
-
brightRed: (text: string) => string;
|
|
43
|
-
brightGreen: (text: string) => string;
|
|
44
|
-
brightYellow: (text: string) => string;
|
|
45
|
-
brightBlue: (text: string) => string;
|
|
46
|
-
brightMagenta: (text: string) => string;
|
|
47
|
-
brightCyan: (text: string) => string;
|
|
48
|
-
brightWhite: (text: string) => string;
|
|
49
|
-
bgBlack: (text: string) => string;
|
|
50
|
-
bgRed: (text: string) => string;
|
|
51
|
-
bgGreen: (text: string) => string;
|
|
52
|
-
bgYellow: (text: string) => string;
|
|
53
|
-
bgBlue: (text: string) => string;
|
|
54
|
-
bgMagenta: (text: string) => string;
|
|
55
|
-
bgCyan: (text: string) => string;
|
|
56
|
-
bgWhite: (text: string) => string;
|
|
57
|
-
success: (text: string) => string;
|
|
58
|
-
error: (text: string) => string;
|
|
59
|
-
warning: (text: string) => string;
|
|
60
|
-
info: (text: string) => string;
|
|
61
|
-
muted: (text: string) => string;
|
|
62
|
-
highlight: (text: string) => string;
|
|
63
|
-
combine: (...styles: ((text: string) => string)[]) => (text: string) => string;
|
|
64
|
-
};
|
|
65
|
-
import type { VldError, VldIssue } from './errors.js';
|
|
66
|
-
/**
|
|
67
|
-
* VLD hata mesajını renkli formatta döner
|
|
68
|
-
*/
|
|
69
|
-
export declare function prettifyErrorColored(error: VldError): string;
|
|
70
|
-
/**
|
|
71
|
-
* VLD issue'yu renkli formatta döner
|
|
72
|
-
*/
|
|
73
|
-
export declare function formatIssueColored(issue: VldIssue): string;
|
|
74
|
-
/**
|
|
75
|
-
* Başarı mesajı formatlar
|
|
76
|
-
*/
|
|
77
|
-
export declare function formatSuccess(message: string): string;
|
|
78
|
-
/**
|
|
79
|
-
* Uyarı mesajı formatlar
|
|
80
|
-
*/
|
|
81
|
-
export declare function formatWarning(message: string): string;
|
|
82
|
-
/**
|
|
83
|
-
* Bilgi mesajı formatlar
|
|
84
|
-
*/
|
|
85
|
-
export declare function formatInfo(message: string): string;
|
|
86
|
-
/**
|
|
87
|
-
* Debug mesajı formatlar
|
|
88
|
-
*/
|
|
89
|
-
export declare function formatDebug(message: string): string;
|
|
90
|
-
export interface TableColumn {
|
|
91
|
-
header: string;
|
|
92
|
-
width?: number;
|
|
93
|
-
align?: 'left' | 'right' | 'center';
|
|
94
|
-
}
|
|
95
|
-
export interface TableOptions {
|
|
96
|
-
columns: TableColumn[];
|
|
97
|
-
border?: boolean;
|
|
98
|
-
headerColor?: (text: string) => string;
|
|
99
|
-
rowColor?: (text: string, rowIndex: number) => string;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Basit tablo formatlar
|
|
103
|
-
*/
|
|
104
|
-
export declare function formatTable(rows: string[][], options: TableOptions): string;
|
|
105
|
-
/**
|
|
106
|
-
* Spinner oluşturur
|
|
107
|
-
*/
|
|
108
|
-
export declare function createSpinner(text: string): {
|
|
109
|
-
start: () => void;
|
|
110
|
-
stop: (success?: boolean, finalText?: string) => void;
|
|
111
|
-
update: (text: string) => void;
|
|
112
|
-
};
|
|
113
|
-
export interface BoxOptions {
|
|
114
|
-
title?: string;
|
|
115
|
-
padding?: number;
|
|
116
|
-
borderColor?: (text: string) => string;
|
|
117
|
-
titleColor?: (text: string) => string;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Metin etrafına kutu çizer
|
|
121
|
-
*/
|
|
122
|
-
export declare function box(content: string, options?: BoxOptions): string;
|
|
123
|
-
//# sourceMappingURL=style.d.ts.map
|
package/dist/style.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkGH;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAgBD;;GAEG;AACH,eAAO,MAAM,KAAK;kBAEF,MAAM;iBAGP,MAAM;gBACP,MAAM;mBACH,MAAM;sBACH,MAAM;oBACR,MAAM;mBACP,MAAM;0BACC,MAAM;kBAGd,MAAM;gBACR,MAAM;kBACJ,MAAM;mBACL,MAAM;iBACR,MAAM;oBACH,MAAM;iBACT,MAAM;kBACL,MAAM;iBACP,MAAM;iBACN,MAAM;sBAGD,MAAM;wBACJ,MAAM;yBACL,MAAM;uBACR,MAAM;0BACH,MAAM;uBACT,MAAM;wBACL,MAAM;oBAGV,MAAM;kBACR,MAAM;oBACJ,MAAM;qBACL,MAAM;mBACR,MAAM;sBACH,MAAM;mBACT,MAAM;oBACL,MAAM;oBAGN,MAAM;kBACR,MAAM;oBACJ,MAAM;iBACT,MAAM;kBACL,MAAM;sBACF,MAAM;yBAIV,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,MACvC,MAAM,MAAM,KAAG,MAAM;CAEzB,CAAC;AAMF,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAwC5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAmB1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAMD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,CAoD3E;AAQD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAC3C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CA+BA;AAMD,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CA4CrE"}
|
package/dist/style.js
DELETED
|
@@ -1,369 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VLD Style - Console styling utilities
|
|
3
|
-
*
|
|
4
|
-
* Bu modül @oxog/pigment paketi ile uyumlu renkli console output sağlar.
|
|
5
|
-
* Eğer @oxog/pigment yüklüyse onun implementasyonu kullanılır.
|
|
6
|
-
* Yüklü değilse, internal ANSI color implementasyonu kullanılır.
|
|
7
|
-
*/
|
|
8
|
-
// ============================================================================
|
|
9
|
-
// ANSI Color Codes
|
|
10
|
-
// ============================================================================
|
|
11
|
-
const ANSI = {
|
|
12
|
-
// Reset
|
|
13
|
-
reset: '\x1b[0m',
|
|
14
|
-
// Styles
|
|
15
|
-
bold: '\x1b[1m',
|
|
16
|
-
dim: '\x1b[2m',
|
|
17
|
-
italic: '\x1b[3m',
|
|
18
|
-
underline: '\x1b[4m',
|
|
19
|
-
blink: '\x1b[5m',
|
|
20
|
-
inverse: '\x1b[7m',
|
|
21
|
-
hidden: '\x1b[8m',
|
|
22
|
-
strikethrough: '\x1b[9m',
|
|
23
|
-
// Foreground colors
|
|
24
|
-
black: '\x1b[30m',
|
|
25
|
-
red: '\x1b[31m',
|
|
26
|
-
green: '\x1b[32m',
|
|
27
|
-
yellow: '\x1b[33m',
|
|
28
|
-
blue: '\x1b[34m',
|
|
29
|
-
magenta: '\x1b[35m',
|
|
30
|
-
cyan: '\x1b[36m',
|
|
31
|
-
white: '\x1b[37m',
|
|
32
|
-
gray: '\x1b[90m',
|
|
33
|
-
// Bright foreground colors
|
|
34
|
-
brightRed: '\x1b[91m',
|
|
35
|
-
brightGreen: '\x1b[92m',
|
|
36
|
-
brightYellow: '\x1b[93m',
|
|
37
|
-
brightBlue: '\x1b[94m',
|
|
38
|
-
brightMagenta: '\x1b[95m',
|
|
39
|
-
brightCyan: '\x1b[96m',
|
|
40
|
-
brightWhite: '\x1b[97m',
|
|
41
|
-
// Background colors
|
|
42
|
-
bgBlack: '\x1b[40m',
|
|
43
|
-
bgRed: '\x1b[41m',
|
|
44
|
-
bgGreen: '\x1b[42m',
|
|
45
|
-
bgYellow: '\x1b[43m',
|
|
46
|
-
bgBlue: '\x1b[44m',
|
|
47
|
-
bgMagenta: '\x1b[45m',
|
|
48
|
-
bgCyan: '\x1b[46m',
|
|
49
|
-
bgWhite: '\x1b[47m'
|
|
50
|
-
};
|
|
51
|
-
// ============================================================================
|
|
52
|
-
// Environment Detection
|
|
53
|
-
// ============================================================================
|
|
54
|
-
/**
|
|
55
|
-
* Renklerin desteklenip desteklenmediğini kontrol eder
|
|
56
|
-
*/
|
|
57
|
-
function supportsColor() {
|
|
58
|
-
// Node.js environment
|
|
59
|
-
if (typeof process !== 'undefined') {
|
|
60
|
-
// NO_COLOR environment variable
|
|
61
|
-
if (process.env?.NO_COLOR) {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
// FORCE_COLOR environment variable
|
|
65
|
-
if (process.env?.FORCE_COLOR) {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
// Check if stdout is a TTY
|
|
69
|
-
if (process.stdout?.isTTY) {
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
// Check for CI environments
|
|
73
|
-
if (process.env?.CI) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
// Check for common terminal types
|
|
77
|
-
const term = process.env?.TERM || '';
|
|
78
|
-
if (term === 'dumb') {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
if (term.includes('color') || term.includes('256')) {
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
// Color support flag
|
|
88
|
-
let colorEnabled = supportsColor();
|
|
89
|
-
/**
|
|
90
|
-
* Renkleri etkinleştirir
|
|
91
|
-
*/
|
|
92
|
-
export function enableColors() {
|
|
93
|
-
colorEnabled = true;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Renkleri devre dışı bırakır
|
|
97
|
-
*/
|
|
98
|
-
export function disableColors() {
|
|
99
|
-
colorEnabled = false;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Renklerin etkin olup olmadığını kontrol eder
|
|
103
|
-
*/
|
|
104
|
-
export function colorsEnabled() {
|
|
105
|
-
return colorEnabled;
|
|
106
|
-
}
|
|
107
|
-
// ============================================================================
|
|
108
|
-
// Style Functions
|
|
109
|
-
// ============================================================================
|
|
110
|
-
/**
|
|
111
|
-
* Bir stili metne uygular
|
|
112
|
-
*/
|
|
113
|
-
function applyStyle(text, ...codes) {
|
|
114
|
-
if (!colorEnabled) {
|
|
115
|
-
return text;
|
|
116
|
-
}
|
|
117
|
-
return `${codes.join('')}${text}${ANSI.reset}`;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Style helper object - @oxog/pigment API'si ile uyumlu
|
|
121
|
-
*/
|
|
122
|
-
export const style = {
|
|
123
|
-
// Reset
|
|
124
|
-
reset: (text) => applyStyle(text, ANSI.reset),
|
|
125
|
-
// Styles
|
|
126
|
-
bold: (text) => applyStyle(text, ANSI.bold),
|
|
127
|
-
dim: (text) => applyStyle(text, ANSI.dim),
|
|
128
|
-
italic: (text) => applyStyle(text, ANSI.italic),
|
|
129
|
-
underline: (text) => applyStyle(text, ANSI.underline),
|
|
130
|
-
inverse: (text) => applyStyle(text, ANSI.inverse),
|
|
131
|
-
hidden: (text) => applyStyle(text, ANSI.hidden),
|
|
132
|
-
strikethrough: (text) => applyStyle(text, ANSI.strikethrough),
|
|
133
|
-
// Foreground colors
|
|
134
|
-
black: (text) => applyStyle(text, ANSI.black),
|
|
135
|
-
red: (text) => applyStyle(text, ANSI.red),
|
|
136
|
-
green: (text) => applyStyle(text, ANSI.green),
|
|
137
|
-
yellow: (text) => applyStyle(text, ANSI.yellow),
|
|
138
|
-
blue: (text) => applyStyle(text, ANSI.blue),
|
|
139
|
-
magenta: (text) => applyStyle(text, ANSI.magenta),
|
|
140
|
-
cyan: (text) => applyStyle(text, ANSI.cyan),
|
|
141
|
-
white: (text) => applyStyle(text, ANSI.white),
|
|
142
|
-
gray: (text) => applyStyle(text, ANSI.gray),
|
|
143
|
-
grey: (text) => applyStyle(text, ANSI.gray),
|
|
144
|
-
// Bright colors
|
|
145
|
-
brightRed: (text) => applyStyle(text, ANSI.brightRed),
|
|
146
|
-
brightGreen: (text) => applyStyle(text, ANSI.brightGreen),
|
|
147
|
-
brightYellow: (text) => applyStyle(text, ANSI.brightYellow),
|
|
148
|
-
brightBlue: (text) => applyStyle(text, ANSI.brightBlue),
|
|
149
|
-
brightMagenta: (text) => applyStyle(text, ANSI.brightMagenta),
|
|
150
|
-
brightCyan: (text) => applyStyle(text, ANSI.brightCyan),
|
|
151
|
-
brightWhite: (text) => applyStyle(text, ANSI.brightWhite),
|
|
152
|
-
// Background colors
|
|
153
|
-
bgBlack: (text) => applyStyle(text, ANSI.bgBlack),
|
|
154
|
-
bgRed: (text) => applyStyle(text, ANSI.bgRed),
|
|
155
|
-
bgGreen: (text) => applyStyle(text, ANSI.bgGreen),
|
|
156
|
-
bgYellow: (text) => applyStyle(text, ANSI.bgYellow),
|
|
157
|
-
bgBlue: (text) => applyStyle(text, ANSI.bgBlue),
|
|
158
|
-
bgMagenta: (text) => applyStyle(text, ANSI.bgMagenta),
|
|
159
|
-
bgCyan: (text) => applyStyle(text, ANSI.bgCyan),
|
|
160
|
-
bgWhite: (text) => applyStyle(text, ANSI.bgWhite),
|
|
161
|
-
// Combined styles
|
|
162
|
-
success: (text) => applyStyle(text, ANSI.green),
|
|
163
|
-
error: (text) => applyStyle(text, ANSI.red),
|
|
164
|
-
warning: (text) => applyStyle(text, ANSI.yellow),
|
|
165
|
-
info: (text) => applyStyle(text, ANSI.cyan),
|
|
166
|
-
muted: (text) => applyStyle(text, ANSI.dim),
|
|
167
|
-
highlight: (text) => applyStyle(text, ANSI.bold, ANSI.yellow),
|
|
168
|
-
// Custom combine
|
|
169
|
-
combine: (...styles) => (text) => styles.reduce((acc, fn) => fn(acc), text)
|
|
170
|
-
};
|
|
171
|
-
/**
|
|
172
|
-
* VLD hata mesajını renkli formatta döner
|
|
173
|
-
*/
|
|
174
|
-
export function prettifyErrorColored(error) {
|
|
175
|
-
const lines = [];
|
|
176
|
-
for (const issue of error.issues) {
|
|
177
|
-
// Error symbol and message
|
|
178
|
-
const symbol = style.red('✖');
|
|
179
|
-
const message = style.bold(issue.message);
|
|
180
|
-
let line = `${symbol} ${message}`;
|
|
181
|
-
// Path
|
|
182
|
-
if (issue.path.length > 0) {
|
|
183
|
-
const pathStr = issue.path
|
|
184
|
-
.map((segment, index) => {
|
|
185
|
-
if (typeof segment === 'string') {
|
|
186
|
-
const str = index === 0 ? segment : `.${segment}`;
|
|
187
|
-
return style.cyan(str);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
return style.cyan(`[${segment}]`);
|
|
191
|
-
}
|
|
192
|
-
})
|
|
193
|
-
.join('');
|
|
194
|
-
const arrow = style.dim('→ at ');
|
|
195
|
-
line += `\n ${arrow}${pathStr}`;
|
|
196
|
-
}
|
|
197
|
-
// Additional info
|
|
198
|
-
if (issue.expected || issue.received) {
|
|
199
|
-
const expected = issue.expected ? style.green(`expected: ${issue.expected}`) : '';
|
|
200
|
-
const received = issue.received ? style.red(`received: ${issue.received}`) : '';
|
|
201
|
-
const info = [expected, received].filter(Boolean).join(', ');
|
|
202
|
-
if (info) {
|
|
203
|
-
line += `\n ${style.dim(info)}`;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
lines.push(line);
|
|
207
|
-
}
|
|
208
|
-
return lines.join('\n');
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* VLD issue'yu renkli formatta döner
|
|
212
|
-
*/
|
|
213
|
-
export function formatIssueColored(issue) {
|
|
214
|
-
const symbol = style.red('✖');
|
|
215
|
-
const message = style.bold(issue.message);
|
|
216
|
-
let line = `${symbol} ${message}`;
|
|
217
|
-
if (issue.path.length > 0) {
|
|
218
|
-
const pathStr = issue.path
|
|
219
|
-
.map((segment, index) => {
|
|
220
|
-
if (typeof segment === 'string') {
|
|
221
|
-
return index === 0 ? segment : `.${segment}`;
|
|
222
|
-
}
|
|
223
|
-
return `[${segment}]`;
|
|
224
|
-
})
|
|
225
|
-
.join('');
|
|
226
|
-
line += ` ${style.dim('at')} ${style.cyan(pathStr)}`;
|
|
227
|
-
}
|
|
228
|
-
return line;
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Başarı mesajı formatlar
|
|
232
|
-
*/
|
|
233
|
-
export function formatSuccess(message) {
|
|
234
|
-
return `${style.green('✔')} ${message}`;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Uyarı mesajı formatlar
|
|
238
|
-
*/
|
|
239
|
-
export function formatWarning(message) {
|
|
240
|
-
return `${style.yellow('⚠')} ${message}`;
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Bilgi mesajı formatlar
|
|
244
|
-
*/
|
|
245
|
-
export function formatInfo(message) {
|
|
246
|
-
return `${style.blue('ℹ')} ${message}`;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Debug mesajı formatlar
|
|
250
|
-
*/
|
|
251
|
-
export function formatDebug(message) {
|
|
252
|
-
return `${style.gray('⋯')} ${message}`;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Basit tablo formatlar
|
|
256
|
-
*/
|
|
257
|
-
export function formatTable(rows, options) {
|
|
258
|
-
const { columns, border = true, headerColor = style.bold } = options;
|
|
259
|
-
// Calculate column widths
|
|
260
|
-
const widths = columns.map((col, i) => {
|
|
261
|
-
const maxContent = Math.max(col.header.length, ...rows.map((row) => (row[i] || '').length));
|
|
262
|
-
return col.width || maxContent;
|
|
263
|
-
});
|
|
264
|
-
// Format header
|
|
265
|
-
const headerRow = columns
|
|
266
|
-
.map((col, i) => {
|
|
267
|
-
const text = col.header.padEnd(widths[i]);
|
|
268
|
-
return headerColor(text);
|
|
269
|
-
})
|
|
270
|
-
.join(border ? ' │ ' : ' ');
|
|
271
|
-
// Format separator
|
|
272
|
-
const separator = widths.map((w) => '─'.repeat(w)).join(border ? '─┼─' : '──');
|
|
273
|
-
// Format data rows
|
|
274
|
-
const dataRows = rows.map((row, rowIndex) => {
|
|
275
|
-
return columns
|
|
276
|
-
.map((col, i) => {
|
|
277
|
-
let text = row[i] || '';
|
|
278
|
-
const width = widths[i];
|
|
279
|
-
switch (col.align) {
|
|
280
|
-
case 'right':
|
|
281
|
-
text = text.padStart(width);
|
|
282
|
-
break;
|
|
283
|
-
case 'center':
|
|
284
|
-
const leftPad = Math.floor((width - text.length) / 2);
|
|
285
|
-
text = ' '.repeat(leftPad) + text + ' '.repeat(width - text.length - leftPad);
|
|
286
|
-
break;
|
|
287
|
-
default:
|
|
288
|
-
text = text.padEnd(width);
|
|
289
|
-
}
|
|
290
|
-
if (options.rowColor) {
|
|
291
|
-
text = options.rowColor(text, rowIndex);
|
|
292
|
-
}
|
|
293
|
-
return text;
|
|
294
|
-
})
|
|
295
|
-
.join(border ? ' │ ' : ' ');
|
|
296
|
-
});
|
|
297
|
-
return [headerRow, separator, ...dataRows].join('\n');
|
|
298
|
-
}
|
|
299
|
-
// ============================================================================
|
|
300
|
-
// Progress Indicators
|
|
301
|
-
// ============================================================================
|
|
302
|
-
const spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
303
|
-
/**
|
|
304
|
-
* Spinner oluşturur
|
|
305
|
-
*/
|
|
306
|
-
export function createSpinner(text) {
|
|
307
|
-
let frameIndex = 0;
|
|
308
|
-
let intervalId = null;
|
|
309
|
-
let currentText = text;
|
|
310
|
-
return {
|
|
311
|
-
start() {
|
|
312
|
-
if (intervalId)
|
|
313
|
-
return;
|
|
314
|
-
intervalId = setInterval(() => {
|
|
315
|
-
const frame = style.cyan(spinnerFrames[frameIndex]);
|
|
316
|
-
process.stdout?.write?.(`\r${frame} ${currentText}`);
|
|
317
|
-
frameIndex = (frameIndex + 1) % spinnerFrames.length;
|
|
318
|
-
}, 80);
|
|
319
|
-
},
|
|
320
|
-
stop(success = true, finalText) {
|
|
321
|
-
if (intervalId) {
|
|
322
|
-
clearInterval(intervalId);
|
|
323
|
-
intervalId = null;
|
|
324
|
-
}
|
|
325
|
-
const symbol = success ? style.green('✔') : style.red('✖');
|
|
326
|
-
const text = finalText || currentText;
|
|
327
|
-
process.stdout?.write?.(`\r${symbol} ${text}\n`);
|
|
328
|
-
},
|
|
329
|
-
update(text) {
|
|
330
|
-
currentText = text;
|
|
331
|
-
}
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Metin etrafına kutu çizer
|
|
336
|
-
*/
|
|
337
|
-
export function box(content, options = {}) {
|
|
338
|
-
const { title, padding = 1, borderColor = style.gray, titleColor = style.bold } = options;
|
|
339
|
-
const lines = content.split('\n');
|
|
340
|
-
const maxLineLength = Math.max(...lines.map((l) => l.length), title ? title.length + 2 : 0);
|
|
341
|
-
const width = maxLineLength + padding * 2;
|
|
342
|
-
const paddingStr = ' '.repeat(padding);
|
|
343
|
-
// Top border
|
|
344
|
-
let result = '';
|
|
345
|
-
if (title) {
|
|
346
|
-
const titleStr = ` ${titleColor(title)} `;
|
|
347
|
-
const leftBorder = '┌' + '─'.repeat(padding);
|
|
348
|
-
const rightBorder = '─'.repeat(width - padding - titleStr.length + 2) + '┐';
|
|
349
|
-
result += borderColor(leftBorder) + titleStr + borderColor(rightBorder) + '\n';
|
|
350
|
-
}
|
|
351
|
-
else {
|
|
352
|
-
result += borderColor('┌' + '─'.repeat(width) + '┐') + '\n';
|
|
353
|
-
}
|
|
354
|
-
// Content lines
|
|
355
|
-
for (const line of lines) {
|
|
356
|
-
const paddedLine = line.padEnd(maxLineLength);
|
|
357
|
-
result +=
|
|
358
|
-
borderColor('│') +
|
|
359
|
-
paddingStr +
|
|
360
|
-
paddedLine +
|
|
361
|
-
paddingStr +
|
|
362
|
-
borderColor('│') +
|
|
363
|
-
'\n';
|
|
364
|
-
}
|
|
365
|
-
// Bottom border
|
|
366
|
-
result += borderColor('└' + '─'.repeat(width) + '┘');
|
|
367
|
-
return result;
|
|
368
|
-
}
|
|
369
|
-
//# sourceMappingURL=style.js.map
|
package/dist/style.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * VLD Style - Console styling utilities\n *\n * Bu modül @oxog/pigment paketi ile uyumlu renkli console output sağlar.\n * Eğer @oxog/pigment yüklüyse onun implementasyonu kullanılır.\n * Yüklü değilse, internal ANSI color implementasyonu kullanılır.\n */\n\n// ============================================================================\n// ANSI Color Codes\n// ============================================================================\n\nconst ANSI = {\n // Reset\n reset: '\\x1b[0m',\n\n // Styles\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n underline: '\\x1b[4m',\n blink: '\\x1b[5m',\n inverse: '\\x1b[7m',\n hidden: '\\x1b[8m',\n strikethrough: '\\x1b[9m',\n\n // Foreground colors\n black: '\\x1b[30m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n gray: '\\x1b[90m',\n\n // Bright foreground colors\n brightRed: '\\x1b[91m',\n brightGreen: '\\x1b[92m',\n brightYellow: '\\x1b[93m',\n brightBlue: '\\x1b[94m',\n brightMagenta: '\\x1b[95m',\n brightCyan: '\\x1b[96m',\n brightWhite: '\\x1b[97m',\n\n // Background colors\n bgBlack: '\\x1b[40m',\n bgRed: '\\x1b[41m',\n bgGreen: '\\x1b[42m',\n bgYellow: '\\x1b[43m',\n bgBlue: '\\x1b[44m',\n bgMagenta: '\\x1b[45m',\n bgCyan: '\\x1b[46m',\n bgWhite: '\\x1b[47m'\n};\n\n// ============================================================================\n// Environment Detection\n// ============================================================================\n\n/**\n * Renklerin desteklenip desteklenmediğini kontrol eder\n */\nfunction supportsColor(): boolean {\n // Node.js environment\n if (typeof process !== 'undefined') {\n // NO_COLOR environment variable\n if (process.env?.NO_COLOR) {\n return false;\n }\n\n // FORCE_COLOR environment variable\n if (process.env?.FORCE_COLOR) {\n return true;\n }\n\n // Check if stdout is a TTY\n if (process.stdout?.isTTY) {\n return true;\n }\n\n // Check for CI environments\n if (process.env?.CI) {\n return true;\n }\n\n // Check for common terminal types\n const term = process.env?.TERM || '';\n if (term === 'dumb') {\n return false;\n }\n\n if (term.includes('color') || term.includes('256')) {\n return true;\n }\n }\n\n return false;\n}\n\n// Color support flag\nlet colorEnabled = supportsColor();\n\n/**\n * Renkleri etkinleştirir\n */\nexport function enableColors(): void {\n colorEnabled = true;\n}\n\n/**\n * Renkleri devre dışı bırakır\n */\nexport function disableColors(): void {\n colorEnabled = false;\n}\n\n/**\n * Renklerin etkin olup olmadığını kontrol eder\n */\nexport function colorsEnabled(): boolean {\n return colorEnabled;\n}\n\n// ============================================================================\n// Style Functions\n// ============================================================================\n\n/**\n * Bir stili metne uygular\n */\nfunction applyStyle(text: string, ...codes: string[]): string {\n if (!colorEnabled) {\n return text;\n }\n return `${codes.join('')}${text}${ANSI.reset}`;\n}\n\n/**\n * Style helper object - @oxog/pigment API'si ile uyumlu\n */\nexport const style = {\n // Reset\n reset: (text: string) => applyStyle(text, ANSI.reset),\n\n // Styles\n bold: (text: string) => applyStyle(text, ANSI.bold),\n dim: (text: string) => applyStyle(text, ANSI.dim),\n italic: (text: string) => applyStyle(text, ANSI.italic),\n underline: (text: string) => applyStyle(text, ANSI.underline),\n inverse: (text: string) => applyStyle(text, ANSI.inverse),\n hidden: (text: string) => applyStyle(text, ANSI.hidden),\n strikethrough: (text: string) => applyStyle(text, ANSI.strikethrough),\n\n // Foreground colors\n black: (text: string) => applyStyle(text, ANSI.black),\n red: (text: string) => applyStyle(text, ANSI.red),\n green: (text: string) => applyStyle(text, ANSI.green),\n yellow: (text: string) => applyStyle(text, ANSI.yellow),\n blue: (text: string) => applyStyle(text, ANSI.blue),\n magenta: (text: string) => applyStyle(text, ANSI.magenta),\n cyan: (text: string) => applyStyle(text, ANSI.cyan),\n white: (text: string) => applyStyle(text, ANSI.white),\n gray: (text: string) => applyStyle(text, ANSI.gray),\n grey: (text: string) => applyStyle(text, ANSI.gray),\n\n // Bright colors\n brightRed: (text: string) => applyStyle(text, ANSI.brightRed),\n brightGreen: (text: string) => applyStyle(text, ANSI.brightGreen),\n brightYellow: (text: string) => applyStyle(text, ANSI.brightYellow),\n brightBlue: (text: string) => applyStyle(text, ANSI.brightBlue),\n brightMagenta: (text: string) => applyStyle(text, ANSI.brightMagenta),\n brightCyan: (text: string) => applyStyle(text, ANSI.brightCyan),\n brightWhite: (text: string) => applyStyle(text, ANSI.brightWhite),\n\n // Background colors\n bgBlack: (text: string) => applyStyle(text, ANSI.bgBlack),\n bgRed: (text: string) => applyStyle(text, ANSI.bgRed),\n bgGreen: (text: string) => applyStyle(text, ANSI.bgGreen),\n bgYellow: (text: string) => applyStyle(text, ANSI.bgYellow),\n bgBlue: (text: string) => applyStyle(text, ANSI.bgBlue),\n bgMagenta: (text: string) => applyStyle(text, ANSI.bgMagenta),\n bgCyan: (text: string) => applyStyle(text, ANSI.bgCyan),\n bgWhite: (text: string) => applyStyle(text, ANSI.bgWhite),\n\n // Combined styles\n success: (text: string) => applyStyle(text, ANSI.green),\n error: (text: string) => applyStyle(text, ANSI.red),\n warning: (text: string) => applyStyle(text, ANSI.yellow),\n info: (text: string) => applyStyle(text, ANSI.cyan),\n muted: (text: string) => applyStyle(text, ANSI.dim),\n highlight: (text: string) => applyStyle(text, ANSI.bold, ANSI.yellow),\n\n // Custom combine\n combine:\n (...styles: ((text: string) => string)[]) =>\n (text: string): string =>\n styles.reduce((acc, fn) => fn(acc), text)\n};\n\n// ============================================================================\n// VLD-Specific Styled Output\n// ============================================================================\n\nimport type { VldError, VldIssue } from './errors.js';\n\n/**\n * VLD hata mesajını renkli formatta döner\n */\nexport function prettifyErrorColored(error: VldError): string {\n const lines: string[] = [];\n\n for (const issue of error.issues) {\n // Error symbol and message\n const symbol = style.red('✖');\n const message = style.bold(issue.message);\n let line = `${symbol} ${message}`;\n\n // Path\n if (issue.path.length > 0) {\n const pathStr = issue.path\n .map((segment, index) => {\n if (typeof segment === 'string') {\n const str = index === 0 ? segment : `.${segment}`;\n return style.cyan(str);\n } else {\n return style.cyan(`[${segment}]`);\n }\n })\n .join('');\n\n const arrow = style.dim('→ at ');\n line += `\\n ${arrow}${pathStr}`;\n }\n\n // Additional info\n if (issue.expected || issue.received) {\n const expected = issue.expected ? style.green(`expected: ${issue.expected}`) : '';\n const received = issue.received ? style.red(`received: ${issue.received}`) : '';\n const info = [expected, received].filter(Boolean).join(', ');\n if (info) {\n line += `\\n ${style.dim(info)}`;\n }\n }\n\n lines.push(line);\n }\n\n return lines.join('\\n');\n}\n\n/**\n * VLD issue'yu renkli formatta döner\n */\nexport function formatIssueColored(issue: VldIssue): string {\n const symbol = style.red('✖');\n const message = style.bold(issue.message);\n let line = `${symbol} ${message}`;\n\n if (issue.path.length > 0) {\n const pathStr = issue.path\n .map((segment, index) => {\n if (typeof segment === 'string') {\n return index === 0 ? segment : `.${segment}`;\n }\n return `[${segment}]`;\n })\n .join('');\n\n line += ` ${style.dim('at')} ${style.cyan(pathStr)}`;\n }\n\n return line;\n}\n\n/**\n * Başarı mesajı formatlar\n */\nexport function formatSuccess(message: string): string {\n return `${style.green('✔')} ${message}`;\n}\n\n/**\n * Uyarı mesajı formatlar\n */\nexport function formatWarning(message: string): string {\n return `${style.yellow('⚠')} ${message}`;\n}\n\n/**\n * Bilgi mesajı formatlar\n */\nexport function formatInfo(message: string): string {\n return `${style.blue('ℹ')} ${message}`;\n}\n\n/**\n * Debug mesajı formatlar\n */\nexport function formatDebug(message: string): string {\n return `${style.gray('⋯')} ${message}`;\n}\n\n// ============================================================================\n// Table Formatting\n// ============================================================================\n\nexport interface TableColumn {\n header: string;\n width?: number;\n align?: 'left' | 'right' | 'center';\n}\n\nexport interface TableOptions {\n columns: TableColumn[];\n border?: boolean;\n headerColor?: (text: string) => string;\n rowColor?: (text: string, rowIndex: number) => string;\n}\n\n/**\n * Basit tablo formatlar\n */\nexport function formatTable(rows: string[][], options: TableOptions): string {\n const { columns, border = true, headerColor = style.bold } = options;\n\n // Calculate column widths\n const widths = columns.map((col, i) => {\n const maxContent = Math.max(\n col.header.length,\n ...rows.map((row) => (row[i] || '').length)\n );\n return col.width || maxContent;\n });\n\n // Format header\n const headerRow = columns\n .map((col, i) => {\n const text = col.header.padEnd(widths[i]);\n return headerColor(text);\n })\n .join(border ? ' │ ' : ' ');\n\n // Format separator\n const separator = widths.map((w) => '─'.repeat(w)).join(border ? '─┼─' : '──');\n\n // Format data rows\n const dataRows = rows.map((row, rowIndex) => {\n return columns\n .map((col, i) => {\n let text = row[i] || '';\n const width = widths[i];\n\n switch (col.align) {\n case 'right':\n text = text.padStart(width);\n break;\n case 'center':\n const leftPad = Math.floor((width - text.length) / 2);\n text = ' '.repeat(leftPad) + text + ' '.repeat(width - text.length - leftPad);\n break;\n default:\n text = text.padEnd(width);\n }\n\n if (options.rowColor) {\n text = options.rowColor(text, rowIndex);\n }\n\n return text;\n })\n .join(border ? ' │ ' : ' ');\n });\n\n return [headerRow, separator, ...dataRows].join('\\n');\n}\n\n// ============================================================================\n// Progress Indicators\n// ============================================================================\n\nconst spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];\n\n/**\n * Spinner oluşturur\n */\nexport function createSpinner(text: string): {\n start: () => void;\n stop: (success?: boolean, finalText?: string) => void;\n update: (text: string) => void;\n} {\n let frameIndex = 0;\n let intervalId: NodeJS.Timeout | null = null;\n let currentText = text;\n\n return {\n start() {\n if (intervalId) return;\n\n intervalId = setInterval(() => {\n const frame = style.cyan(spinnerFrames[frameIndex]);\n process.stdout?.write?.(`\\r${frame} ${currentText}`);\n frameIndex = (frameIndex + 1) % spinnerFrames.length;\n }, 80);\n },\n\n stop(success = true, finalText?: string) {\n if (intervalId) {\n clearInterval(intervalId);\n intervalId = null;\n }\n\n const symbol = success ? style.green('✔') : style.red('✖');\n const text = finalText || currentText;\n process.stdout?.write?.(`\\r${symbol} ${text}\\n`);\n },\n\n update(text: string) {\n currentText = text;\n }\n };\n}\n\n// ============================================================================\n// Box Drawing\n// ============================================================================\n\nexport interface BoxOptions {\n title?: string;\n padding?: number;\n borderColor?: (text: string) => string;\n titleColor?: (text: string) => string;\n}\n\n/**\n * Metin etrafına kutu çizer\n */\nexport function box(content: string, options: BoxOptions = {}): string {\n const {\n title,\n padding = 1,\n borderColor = style.gray,\n titleColor = style.bold\n } = options;\n\n const lines = content.split('\\n');\n const maxLineLength = Math.max(\n ...lines.map((l) => l.length),\n title ? title.length + 2 : 0\n );\n\n const width = maxLineLength + padding * 2;\n const paddingStr = ' '.repeat(padding);\n\n // Top border\n let result = '';\n if (title) {\n const titleStr = ` ${titleColor(title)} `;\n const leftBorder = '┌' + '─'.repeat(padding);\n const rightBorder = '─'.repeat(width - padding - titleStr.length + 2) + '┐';\n result += borderColor(leftBorder) + titleStr + borderColor(rightBorder) + '\\n';\n } else {\n result += borderColor('┌' + '─'.repeat(width) + '┐') + '\\n';\n }\n\n // Content lines\n for (const line of lines) {\n const paddedLine = line.padEnd(maxLineLength);\n result +=\n borderColor('│') +\n paddingStr +\n paddedLine +\n paddingStr +\n borderColor('│') +\n '\\n';\n }\n\n // Bottom border\n result += borderColor('└' + '─'.repeat(width) + '┘');\n\n return result;\n}\n"]}
|