vize 0.0.1-alpha.20 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/vize +1 -29
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +107 -0
- package/dist/cli.js.map +1 -0
- package/dist/config-CVmInrFP.js +126 -0
- package/dist/config-CVmInrFP.js.map +1 -0
- package/dist/config-Cu4Hn1JG.d.ts +422 -0
- package/dist/config-Cu4Hn1JG.d.ts.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.js +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/package.json +39 -5
- package/src/cli.ts +193 -0
- package/src/config.ts +192 -0
- package/src/index.ts +33 -0
- package/src/types.ts +515 -0
- package/scripts/postinstall.js +0 -138
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
//#region src/types.d.ts
|
|
2
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
interface ConfigEnv {
|
|
4
|
+
mode: string;
|
|
5
|
+
command: "serve" | "build" | "check" | "lint" | "fmt";
|
|
6
|
+
isSsrBuild?: boolean;
|
|
7
|
+
}
|
|
8
|
+
type UserConfigExport = VizeConfig | ((env: ConfigEnv) => MaybePromise<VizeConfig>);
|
|
9
|
+
type RuleSeverity = "off" | "warn" | "error";
|
|
10
|
+
type RuleCategory = "correctness" | "suspicious" | "style" | "perf" | "a11y" | "security";
|
|
11
|
+
/**
|
|
12
|
+
* Vize configuration options
|
|
13
|
+
*/
|
|
14
|
+
interface VizeConfig {
|
|
15
|
+
/**
|
|
16
|
+
* Vue compiler options
|
|
17
|
+
*/
|
|
18
|
+
compiler?: CompilerConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Vite plugin options
|
|
21
|
+
*/
|
|
22
|
+
vite?: VitePluginConfig;
|
|
23
|
+
/**
|
|
24
|
+
* Linter options
|
|
25
|
+
*/
|
|
26
|
+
linter?: LinterConfig;
|
|
27
|
+
/**
|
|
28
|
+
* Type checker options
|
|
29
|
+
*/
|
|
30
|
+
typeChecker?: TypeCheckerConfig;
|
|
31
|
+
/**
|
|
32
|
+
* Formatter options
|
|
33
|
+
*/
|
|
34
|
+
formatter?: FormatterConfig;
|
|
35
|
+
/**
|
|
36
|
+
* LSP options
|
|
37
|
+
*/
|
|
38
|
+
lsp?: LspConfig;
|
|
39
|
+
/**
|
|
40
|
+
* Musea component gallery options
|
|
41
|
+
*/
|
|
42
|
+
musea?: MuseaConfig;
|
|
43
|
+
/**
|
|
44
|
+
* Global type declarations
|
|
45
|
+
*/
|
|
46
|
+
globalTypes?: GlobalTypesConfig;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Compiler configuration
|
|
50
|
+
*/
|
|
51
|
+
interface CompilerConfig {
|
|
52
|
+
/**
|
|
53
|
+
* Compilation mode
|
|
54
|
+
* @default 'module'
|
|
55
|
+
*/
|
|
56
|
+
mode?: "module" | "function";
|
|
57
|
+
/**
|
|
58
|
+
* Enable Vapor mode compilation
|
|
59
|
+
* @default false
|
|
60
|
+
*/
|
|
61
|
+
vapor?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Enable SSR mode
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
ssr?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Enable source map generation
|
|
69
|
+
* @default true in development, false in production
|
|
70
|
+
*/
|
|
71
|
+
sourceMap?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Prefix template identifiers with _ctx
|
|
74
|
+
* @default false
|
|
75
|
+
*/
|
|
76
|
+
prefixIdentifiers?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Hoist static nodes
|
|
79
|
+
* @default true
|
|
80
|
+
*/
|
|
81
|
+
hoistStatic?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Cache v-on handlers
|
|
84
|
+
* @default true
|
|
85
|
+
*/
|
|
86
|
+
cacheHandlers?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Enable TypeScript parsing in <script> blocks
|
|
89
|
+
* @default true
|
|
90
|
+
*/
|
|
91
|
+
isTs?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Script file extension for generated output
|
|
94
|
+
* @default 'ts'
|
|
95
|
+
*/
|
|
96
|
+
scriptExt?: "ts" | "js";
|
|
97
|
+
/**
|
|
98
|
+
* Module name for runtime imports
|
|
99
|
+
* @default 'vue'
|
|
100
|
+
*/
|
|
101
|
+
runtimeModuleName?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Global variable name for runtime (IIFE builds)
|
|
104
|
+
* @default 'Vue'
|
|
105
|
+
*/
|
|
106
|
+
runtimeGlobalName?: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Vite plugin configuration
|
|
110
|
+
*/
|
|
111
|
+
interface VitePluginConfig {
|
|
112
|
+
/**
|
|
113
|
+
* Files to include in compilation
|
|
114
|
+
* @default /\.vue$/
|
|
115
|
+
*/
|
|
116
|
+
include?: string | RegExp | (string | RegExp)[];
|
|
117
|
+
/**
|
|
118
|
+
* Files to exclude from compilation
|
|
119
|
+
* @default /node_modules/
|
|
120
|
+
*/
|
|
121
|
+
exclude?: string | RegExp | (string | RegExp)[];
|
|
122
|
+
/**
|
|
123
|
+
* Glob patterns to scan for .vue files during pre-compilation
|
|
124
|
+
* @default ['**\/*.vue']
|
|
125
|
+
*/
|
|
126
|
+
scanPatterns?: string[];
|
|
127
|
+
/**
|
|
128
|
+
* Glob patterns to ignore during pre-compilation
|
|
129
|
+
* @default ['node_modules/**', 'dist/**', '.git/**']
|
|
130
|
+
*/
|
|
131
|
+
ignorePatterns?: string[];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Linter configuration
|
|
135
|
+
*/
|
|
136
|
+
interface LinterConfig {
|
|
137
|
+
/**
|
|
138
|
+
* Enable linting
|
|
139
|
+
*/
|
|
140
|
+
enabled?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Rules to enable/disable
|
|
143
|
+
*/
|
|
144
|
+
rules?: Record<string, RuleSeverity>;
|
|
145
|
+
/**
|
|
146
|
+
* Category-level severity overrides
|
|
147
|
+
*/
|
|
148
|
+
categories?: Partial<Record<RuleCategory, RuleSeverity>>;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Type checker configuration
|
|
152
|
+
*/
|
|
153
|
+
interface TypeCheckerConfig {
|
|
154
|
+
/**
|
|
155
|
+
* Enable type checking
|
|
156
|
+
* @default false
|
|
157
|
+
*/
|
|
158
|
+
enabled?: boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Enable strict mode
|
|
161
|
+
* @default false
|
|
162
|
+
*/
|
|
163
|
+
strict?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Check component props
|
|
166
|
+
* @default true
|
|
167
|
+
*/
|
|
168
|
+
checkProps?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Check component emits
|
|
171
|
+
* @default true
|
|
172
|
+
*/
|
|
173
|
+
checkEmits?: boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Check template bindings
|
|
176
|
+
* @default true
|
|
177
|
+
*/
|
|
178
|
+
checkTemplateBindings?: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Path to tsconfig.json
|
|
181
|
+
* @default auto-detected
|
|
182
|
+
*/
|
|
183
|
+
tsconfig?: string;
|
|
184
|
+
/**
|
|
185
|
+
* Path to tsgo binary
|
|
186
|
+
*/
|
|
187
|
+
tsgoPath?: string;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Formatter configuration
|
|
191
|
+
*/
|
|
192
|
+
interface FormatterConfig {
|
|
193
|
+
/**
|
|
194
|
+
* Max line width
|
|
195
|
+
* @default 80
|
|
196
|
+
*/
|
|
197
|
+
printWidth?: number;
|
|
198
|
+
/**
|
|
199
|
+
* Indentation width
|
|
200
|
+
* @default 2
|
|
201
|
+
*/
|
|
202
|
+
tabWidth?: number;
|
|
203
|
+
/**
|
|
204
|
+
* Use tabs for indentation
|
|
205
|
+
* @default false
|
|
206
|
+
*/
|
|
207
|
+
useTabs?: boolean;
|
|
208
|
+
/**
|
|
209
|
+
* Print semicolons
|
|
210
|
+
* @default true
|
|
211
|
+
*/
|
|
212
|
+
semi?: boolean;
|
|
213
|
+
/**
|
|
214
|
+
* Use single quotes
|
|
215
|
+
* @default false
|
|
216
|
+
*/
|
|
217
|
+
singleQuote?: boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Trailing commas
|
|
220
|
+
* @default 'all'
|
|
221
|
+
*/
|
|
222
|
+
trailingComma?: "all" | "none" | "es5";
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* LSP configuration
|
|
226
|
+
*/
|
|
227
|
+
interface LspConfig {
|
|
228
|
+
/**
|
|
229
|
+
* Enable LSP
|
|
230
|
+
* @default true
|
|
231
|
+
*/
|
|
232
|
+
enabled?: boolean;
|
|
233
|
+
/**
|
|
234
|
+
* Enable diagnostics
|
|
235
|
+
* @default true
|
|
236
|
+
*/
|
|
237
|
+
diagnostics?: boolean;
|
|
238
|
+
/**
|
|
239
|
+
* Enable completions
|
|
240
|
+
* @default true
|
|
241
|
+
*/
|
|
242
|
+
completion?: boolean;
|
|
243
|
+
/**
|
|
244
|
+
* Enable hover information
|
|
245
|
+
* @default true
|
|
246
|
+
*/
|
|
247
|
+
hover?: boolean;
|
|
248
|
+
/**
|
|
249
|
+
* Enable go-to-definition
|
|
250
|
+
* @default true
|
|
251
|
+
*/
|
|
252
|
+
definition?: boolean;
|
|
253
|
+
/**
|
|
254
|
+
* Enable formatting via LSP
|
|
255
|
+
* @default true
|
|
256
|
+
*/
|
|
257
|
+
formatting?: boolean;
|
|
258
|
+
/**
|
|
259
|
+
* Enable code actions
|
|
260
|
+
* @default true
|
|
261
|
+
*/
|
|
262
|
+
codeActions?: boolean;
|
|
263
|
+
/**
|
|
264
|
+
* Use tsgo for type checking in LSP
|
|
265
|
+
* @default false
|
|
266
|
+
*/
|
|
267
|
+
tsgo?: boolean;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* VRT (Visual Regression Testing) configuration for Musea
|
|
271
|
+
*/
|
|
272
|
+
interface MuseaVrtConfig {
|
|
273
|
+
/**
|
|
274
|
+
* Threshold for pixel comparison (0-1)
|
|
275
|
+
* @default 0.1
|
|
276
|
+
*/
|
|
277
|
+
threshold?: number;
|
|
278
|
+
/**
|
|
279
|
+
* Output directory for screenshots
|
|
280
|
+
* @default '__musea_snapshots__'
|
|
281
|
+
*/
|
|
282
|
+
outDir?: string;
|
|
283
|
+
/**
|
|
284
|
+
* Viewport sizes
|
|
285
|
+
*/
|
|
286
|
+
viewports?: Array<{
|
|
287
|
+
width: number;
|
|
288
|
+
height: number;
|
|
289
|
+
name?: string;
|
|
290
|
+
}>;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* A11y configuration for Musea
|
|
294
|
+
*/
|
|
295
|
+
interface MuseaA11yConfig {
|
|
296
|
+
/**
|
|
297
|
+
* Enable a11y checking
|
|
298
|
+
* @default false
|
|
299
|
+
*/
|
|
300
|
+
enabled?: boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Axe-core rules to enable/disable
|
|
303
|
+
*/
|
|
304
|
+
rules?: Record<string, boolean>;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Autogen configuration for Musea
|
|
308
|
+
*/
|
|
309
|
+
interface MuseaAutogenConfig {
|
|
310
|
+
/**
|
|
311
|
+
* Enable auto-generation of variants
|
|
312
|
+
* @default false
|
|
313
|
+
*/
|
|
314
|
+
enabled?: boolean;
|
|
315
|
+
/**
|
|
316
|
+
* Max variants to generate per component
|
|
317
|
+
* @default 10
|
|
318
|
+
*/
|
|
319
|
+
maxVariants?: number;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Musea component gallery configuration
|
|
323
|
+
*/
|
|
324
|
+
interface MuseaConfig {
|
|
325
|
+
/**
|
|
326
|
+
* Glob patterns for art files
|
|
327
|
+
* @default ['**\/*.art.vue']
|
|
328
|
+
*/
|
|
329
|
+
include?: string[];
|
|
330
|
+
/**
|
|
331
|
+
* Glob patterns to exclude
|
|
332
|
+
* @default ['node_modules/**', 'dist/**']
|
|
333
|
+
*/
|
|
334
|
+
exclude?: string[];
|
|
335
|
+
/**
|
|
336
|
+
* Base path for gallery
|
|
337
|
+
* @default '/__musea__'
|
|
338
|
+
*/
|
|
339
|
+
basePath?: string;
|
|
340
|
+
/**
|
|
341
|
+
* Enable Storybook compatibility
|
|
342
|
+
* @default false
|
|
343
|
+
*/
|
|
344
|
+
storybookCompat?: boolean;
|
|
345
|
+
/**
|
|
346
|
+
* Enable inline art detection in .vue files
|
|
347
|
+
* @default false
|
|
348
|
+
*/
|
|
349
|
+
inlineArt?: boolean;
|
|
350
|
+
/**
|
|
351
|
+
* VRT configuration
|
|
352
|
+
*/
|
|
353
|
+
vrt?: MuseaVrtConfig;
|
|
354
|
+
/**
|
|
355
|
+
* A11y configuration
|
|
356
|
+
*/
|
|
357
|
+
a11y?: MuseaA11yConfig;
|
|
358
|
+
/**
|
|
359
|
+
* Autogen configuration
|
|
360
|
+
*/
|
|
361
|
+
autogen?: MuseaAutogenConfig;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Global type declaration
|
|
365
|
+
*/
|
|
366
|
+
interface GlobalTypeDeclaration {
|
|
367
|
+
/**
|
|
368
|
+
* TypeScript type string
|
|
369
|
+
*/
|
|
370
|
+
type: string;
|
|
371
|
+
/**
|
|
372
|
+
* Default value
|
|
373
|
+
*/
|
|
374
|
+
defaultValue?: string;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Global types configuration
|
|
378
|
+
*/
|
|
379
|
+
type GlobalTypesConfig = Record<string, GlobalTypeDeclaration | string>;
|
|
380
|
+
/**
|
|
381
|
+
* Options for loading vize.config file
|
|
382
|
+
*/
|
|
383
|
+
interface LoadConfigOptions {
|
|
384
|
+
/**
|
|
385
|
+
* Config file search mode
|
|
386
|
+
* - 'root': Search only in the specified root directory
|
|
387
|
+
* - 'auto': Search from cwd upward until finding a config file
|
|
388
|
+
* - 'none': Don't load config file
|
|
389
|
+
* @default 'root'
|
|
390
|
+
*/
|
|
391
|
+
mode?: "root" | "auto" | "none";
|
|
392
|
+
/**
|
|
393
|
+
* Custom config file path (overrides automatic search)
|
|
394
|
+
*/
|
|
395
|
+
configFile?: string;
|
|
396
|
+
/**
|
|
397
|
+
* Config environment for dynamic config resolution
|
|
398
|
+
*/
|
|
399
|
+
env?: ConfigEnv;
|
|
400
|
+
} //#endregion
|
|
401
|
+
//#region src/config.d.ts
|
|
402
|
+
|
|
403
|
+
//# sourceMappingURL=types.d.ts.map
|
|
404
|
+
/**
|
|
405
|
+
* Define a Vize configuration with type checking.
|
|
406
|
+
* Accepts a plain object or a function that receives ConfigEnv.
|
|
407
|
+
*/
|
|
408
|
+
declare function defineConfig(config: UserConfigExport): UserConfigExport;
|
|
409
|
+
/**
|
|
410
|
+
* Load vize.config file from the specified directory
|
|
411
|
+
*/
|
|
412
|
+
declare function loadConfig(root: string, options?: LoadConfigOptions): Promise<VizeConfig | null>;
|
|
413
|
+
/**
|
|
414
|
+
* Normalize GlobalTypesConfig shorthand strings to GlobalTypeDeclaration objects
|
|
415
|
+
*/
|
|
416
|
+
declare function normalizeGlobalTypes(config: GlobalTypesConfig): Record<string, GlobalTypeDeclaration>;
|
|
417
|
+
|
|
418
|
+
//#endregion
|
|
419
|
+
//# sourceMappingURL=config.d.ts.map
|
|
420
|
+
|
|
421
|
+
export { CompilerConfig, ConfigEnv, FormatterConfig, GlobalTypeDeclaration, GlobalTypesConfig, LinterConfig, LoadConfigOptions, LspConfig, MaybePromise, MuseaA11yConfig, MuseaAutogenConfig, MuseaConfig, MuseaVrtConfig, RuleCategory, RuleSeverity, TypeCheckerConfig, UserConfigExport, VitePluginConfig, VizeConfig, defineConfig as defineConfig$1, loadConfig as loadConfig$1, normalizeGlobalTypes as normalizeGlobalTypes$1 };
|
|
422
|
+
//# sourceMappingURL=config-Cu4Hn1JG.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-Cu4Hn1JG.d.ts","names":[],"sources":["../src/types.ts","../src/config.ts"],"sourcesContent":null,"mappings":";KAIY,kBAAkB,IAAI,QAAQ;AAA9B,UAEK,SAAA,CAFO;EAAA,IAAA,EAAA,MAAA;EAAA,OAAM,EAAA,OAAA,GAAA,OAAA,GAAA,OAAA,GAAA,MAAA,GAAA,KAAA;EAAC,UAAW,CAAA,EAAA,OAAA;;AAAD,KAQ7B,gBAAA,GAAmB,UARU,GAAA,CAAA,CAAA,GAAA,EAQU,SARV,EAAA,GAQwB,YARxB,CAQqC,UARrC,CAAA,CAAA;AAExB,KAYL,YAAA,GAZc,KAAA,GAAA,MAAA,GAAA,OAAA;AAMd,KAQA,YAAA,GARgB,aAAA,GAAA,YAAA,GAAA,OAAA,GAAA,MAAA,GAAA,MAAA,GAAA,UAAA;;;;AAAkD,UAiB7D,UAAA,CAjB6D;EAAU;AAAX;AAM7E;EAEY,QAAA,CAAA,EAaC,cAbW;;;;EASP,IAAA,CAAA,EASR,gBATkB;EAAA;;;EASF,MAKd,CAAA,EAAA,YAAA;EAAY;;;EAeN,WAKP,CAAA,EAfM,iBAeN;EAAW;AAKY;;cAfnB;;AAyBd;;QApBQ;;AA+FR;;EAAiC,KAKZ,CAAA,EA/FX,WA+FW;EAAM;;;EAMmB,WAAA,CAAA,EAhG9B,iBAgG8B;;;;AAsB9C;AAA6B,UA5GZ,cAAA,CA4GY;EAAA;;;;EAc2B,IAAjC,CAAA,EAAA,QAAA,GAAA,UAAA;EAAM;AAAP;;;;EAUL;;;;EAkDA,GAAA,CAAA,EAAA,OAAA;;;;AA6CjB;;;;AAyDA;;;;AAsBA;;;;EAgBiB;;;;EAiBA,aAAA,CAAW,EAAA,OAAA;EAAA;;;;EA4CE,IAAA,CAAA,EAAA,OAAA;;;;AAU9B;;;;AAeA;;EAA6B,iBAAkB,CAAA,EAAA,MAAA;EAAqB;AAA9B;;;;AAStC;;;;UAtViB,gBAAA;;;;AC5HjB;EAA4B,OAAA,CAAA,EAAA,MAAA,GDiIP,MCjIO,GAAA,CAAA,MAAA,GDiIY,MCjIZ,CAAA,EAAA;EAAA;;AAA4C;;qBDuInD,mBAAmB;;AChIxC;;;EAEiC,YACtB,CAAA,EAAA,MAAA,EAAA;EAAU;AAAX;;;;AA4IV;;;;AAEG,UDKc,YAAA,CCLd;EAAM;;;;;;;UDcC,eAAe;;;;eAKV,QAAQ,OAAO,cAAc;;;;;UAU3B,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAkDA,eAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA6CA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyDA,cAAA;;;;;;;;;;;;;;cAgBH;;;;;;;;;UAMG,eAAA;;;;;;;;;UAUP;;;;;UAMO,kBAAA;;;;;;;;;;;;;;;UAiBA,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkCT;;;;SAKC;;;;YAKG;;;;;UAUK,qBAAA;;;;;;;;;;;;;KAeL,iBAAA,GAAoB,eAAe;;;;UAS9B,iBAAA;;;;;;;;;;;;;;;;QAkBT;;;;;AA7fR;;;;AAAkC,iBCyBlB,YAAA,CDzBkB,MAAA,ECyBG,gBDzBH,CAAA,ECyBsB,gBDzBtB;AAAO;AAEzC;AAMA;AAA4B,iBCwBN,UAAA,CDxBM,IAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EC0BjB,iBD1BiB,CAAA,EC2BzB,OD3ByB,CC2BjB,UD3BiB,GAAA,IAAA,CAAA;;;;AAAqC,iBCuKjD,oBAAA,CDvKiD,MAAA,ECwKvD,iBDxKuD,CAAA,ECyK9D,MDzK8D,CAAA,MAAA,ECyK/C,qBDzK+C,CAAA;;;AAAY"}
|
package/dist/config.d.ts
ADDED
package/dist/config.js
ADDED
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { CompilerConfig, ConfigEnv, FormatterConfig, GlobalTypeDeclaration, GlobalTypesConfig, LinterConfig, LoadConfigOptions, LspConfig, MaybePromise, MuseaA11yConfig, MuseaAutogenConfig, MuseaConfig, MuseaVrtConfig, RuleCategory, RuleSeverity, TypeCheckerConfig, UserConfigExport, VitePluginConfig, VizeConfig, defineConfig$1 as defineConfig, loadConfig$1 as loadConfig, normalizeGlobalTypes$1 as normalizeGlobalTypes } from "./config-Cu4Hn1JG.js";
|
|
2
|
+
export { CompilerConfig, ConfigEnv, FormatterConfig, GlobalTypeDeclaration, GlobalTypesConfig, LinterConfig, LoadConfigOptions, LspConfig, MaybePromise, MuseaA11yConfig, MuseaAutogenConfig, MuseaConfig, MuseaVrtConfig, RuleCategory, RuleSeverity, TypeCheckerConfig, UserConfigExport, VitePluginConfig, VizeConfig, defineConfig, loadConfig, normalizeGlobalTypes };
|
package/dist/index.js
ADDED
package/package.json
CHANGED
|
@@ -1,22 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vize",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Vize - High-performance Vue.js toolchain in Rust",
|
|
5
5
|
"publishConfig": {
|
|
6
|
-
"provenance": true,
|
|
7
6
|
"access": "public"
|
|
8
7
|
},
|
|
9
8
|
"type": "module",
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts"
|
|
15
|
+
},
|
|
16
|
+
"./config": {
|
|
17
|
+
"import": "./dist/config.js",
|
|
18
|
+
"types": "./dist/config.d.ts"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
10
21
|
"bin": {
|
|
11
22
|
"vize": "bin/vize"
|
|
12
23
|
},
|
|
13
24
|
"files": [
|
|
14
25
|
"bin",
|
|
15
|
-
"
|
|
26
|
+
"dist",
|
|
27
|
+
"src"
|
|
16
28
|
],
|
|
17
29
|
"repository": {
|
|
18
30
|
"type": "git",
|
|
19
|
-
"url": "https://github.com/
|
|
31
|
+
"url": "https://github.com/ubugeeei/vize"
|
|
20
32
|
},
|
|
21
33
|
"keywords": [
|
|
22
34
|
"vue",
|
|
@@ -31,7 +43,29 @@
|
|
|
31
43
|
"engines": {
|
|
32
44
|
"node": ">=18"
|
|
33
45
|
},
|
|
46
|
+
"optionalDependencies": {
|
|
47
|
+
"@vizejs/native-darwin-x64": "0.1.0",
|
|
48
|
+
"@vizejs/native-darwin-arm64": "0.1.0",
|
|
49
|
+
"@vizejs/native-win32-x64-msvc": "0.1.0",
|
|
50
|
+
"@vizejs/native-win32-arm64-msvc": "0.1.0",
|
|
51
|
+
"@vizejs/native-linux-x64-gnu": "0.1.0",
|
|
52
|
+
"@vizejs/native-linux-x64-musl": "0.1.0",
|
|
53
|
+
"@vizejs/native-linux-arm64-gnu": "0.1.0",
|
|
54
|
+
"@vizejs/native-linux-arm64-musl": "0.1.0"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"oxc-transform": "^0.56.0"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@types/node": "^22.0.0",
|
|
61
|
+
"tsdown": "^0.9.0",
|
|
62
|
+
"typescript": "~5.6.0"
|
|
63
|
+
},
|
|
34
64
|
"scripts": {
|
|
35
|
-
"
|
|
65
|
+
"build": "tsdown",
|
|
66
|
+
"lint": "oxlint --deny-warnings --type-aware --tsconfig tsconfig.json",
|
|
67
|
+
"lint:fix": "oxlint --type-aware --tsconfig tsconfig.json --fix",
|
|
68
|
+
"fmt": "oxfmt --write src",
|
|
69
|
+
"fmt:check": "oxfmt src"
|
|
36
70
|
}
|
|
37
71
|
}
|
package/src/cli.ts
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { createRequire } from "module";
|
|
2
|
+
import { readFileSync } from "fs";
|
|
3
|
+
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Native binding loader (oxlint pattern)
|
|
8
|
+
// ============================================================================
|
|
9
|
+
|
|
10
|
+
function isMusl(): boolean {
|
|
11
|
+
const report = process.report?.getReport();
|
|
12
|
+
if (typeof report === "object" && report !== null && "header" in report) {
|
|
13
|
+
const header = (report as { header: { glibcVersionRuntime?: string } }).header;
|
|
14
|
+
return !header.glibcVersionRuntime;
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
const lddPath = require("child_process").execSync("which ldd").toString().trim();
|
|
18
|
+
return readFileSync(lddPath, "utf8").includes("musl");
|
|
19
|
+
} catch {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function getBindingPackageName(): string {
|
|
25
|
+
const { platform, arch } = process;
|
|
26
|
+
|
|
27
|
+
switch (platform) {
|
|
28
|
+
case "darwin":
|
|
29
|
+
switch (arch) {
|
|
30
|
+
case "x64":
|
|
31
|
+
return "@vizejs/native-darwin-x64";
|
|
32
|
+
case "arm64":
|
|
33
|
+
return "@vizejs/native-darwin-arm64";
|
|
34
|
+
default:
|
|
35
|
+
throw new Error(`Unsupported architecture on macOS: ${arch}`);
|
|
36
|
+
}
|
|
37
|
+
case "win32":
|
|
38
|
+
switch (arch) {
|
|
39
|
+
case "x64":
|
|
40
|
+
return "@vizejs/native-win32-x64-msvc";
|
|
41
|
+
case "arm64":
|
|
42
|
+
return "@vizejs/native-win32-arm64-msvc";
|
|
43
|
+
default:
|
|
44
|
+
throw new Error(`Unsupported architecture on Windows: ${arch}`);
|
|
45
|
+
}
|
|
46
|
+
case "linux":
|
|
47
|
+
switch (arch) {
|
|
48
|
+
case "x64":
|
|
49
|
+
return isMusl() ? "@vizejs/native-linux-x64-musl" : "@vizejs/native-linux-x64-gnu";
|
|
50
|
+
case "arm64":
|
|
51
|
+
return isMusl() ? "@vizejs/native-linux-arm64-musl" : "@vizejs/native-linux-arm64-gnu";
|
|
52
|
+
default:
|
|
53
|
+
throw new Error(`Unsupported architecture on Linux: ${arch}`);
|
|
54
|
+
}
|
|
55
|
+
default:
|
|
56
|
+
throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
interface NativeBinding {
|
|
61
|
+
lint: (
|
|
62
|
+
patterns: string[],
|
|
63
|
+
options?: {
|
|
64
|
+
format?: string;
|
|
65
|
+
max_warnings?: number;
|
|
66
|
+
quiet?: boolean;
|
|
67
|
+
fix?: boolean;
|
|
68
|
+
help_level?: string;
|
|
69
|
+
},
|
|
70
|
+
) => LintResult;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function loadNative(): NativeBinding {
|
|
74
|
+
const pkg = getBindingPackageName();
|
|
75
|
+
try {
|
|
76
|
+
return require(pkg);
|
|
77
|
+
} catch (e) {
|
|
78
|
+
console.error(`Failed to load native binding: ${pkg}`);
|
|
79
|
+
console.error("Try reinstalling: npm install vize");
|
|
80
|
+
throw e;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// ============================================================================
|
|
85
|
+
// Lint command
|
|
86
|
+
// ============================================================================
|
|
87
|
+
|
|
88
|
+
interface LintOptions {
|
|
89
|
+
format?: string;
|
|
90
|
+
maxWarnings?: number;
|
|
91
|
+
quiet?: boolean;
|
|
92
|
+
fix?: boolean;
|
|
93
|
+
helpLevel?: string;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
interface LintResult {
|
|
97
|
+
output: string;
|
|
98
|
+
errorCount: number;
|
|
99
|
+
warningCount: number;
|
|
100
|
+
fileCount: number;
|
|
101
|
+
timeMs: number;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function runLint(args: string[]): void {
|
|
105
|
+
const patterns: string[] = [];
|
|
106
|
+
const options: LintOptions = {};
|
|
107
|
+
|
|
108
|
+
for (let i = 0; i < args.length; i++) {
|
|
109
|
+
const arg = args[i];
|
|
110
|
+
if (arg === "--format" || arg === "-f") {
|
|
111
|
+
options.format = args[++i];
|
|
112
|
+
} else if (arg === "--max-warnings") {
|
|
113
|
+
options.maxWarnings = Number.parseInt(args[++i], 10);
|
|
114
|
+
} else if (arg === "--quiet" || arg === "-q") {
|
|
115
|
+
options.quiet = true;
|
|
116
|
+
} else if (arg === "--fix") {
|
|
117
|
+
options.fix = true;
|
|
118
|
+
} else if (arg === "--help-level") {
|
|
119
|
+
options.helpLevel = args[++i];
|
|
120
|
+
} else if (!arg.startsWith("-")) {
|
|
121
|
+
patterns.push(arg);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (patterns.length === 0) {
|
|
126
|
+
patterns.push(".");
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const native = loadNative();
|
|
130
|
+
const result = native.lint(patterns, {
|
|
131
|
+
format: options.format,
|
|
132
|
+
max_warnings: options.maxWarnings,
|
|
133
|
+
quiet: options.quiet,
|
|
134
|
+
fix: options.fix,
|
|
135
|
+
help_level: options.helpLevel,
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
if (result.output) {
|
|
139
|
+
process.stdout.write(result.output);
|
|
140
|
+
if (!result.output.endsWith("\n")) {
|
|
141
|
+
process.stdout.write("\n");
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (options.fix) {
|
|
146
|
+
process.stderr.write("\nNote: --fix is not yet implemented\n");
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (result.errorCount > 0) {
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (options.maxWarnings !== undefined && result.warningCount > options.maxWarnings) {
|
|
154
|
+
process.stderr.write(
|
|
155
|
+
`\nToo many warnings (${result.warningCount} > max ${options.maxWarnings})\n`,
|
|
156
|
+
);
|
|
157
|
+
process.exit(1);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// ============================================================================
|
|
162
|
+
// Command router
|
|
163
|
+
// ============================================================================
|
|
164
|
+
|
|
165
|
+
const NAPI_COMMANDS = new Set(["lint"]);
|
|
166
|
+
|
|
167
|
+
function main(): void {
|
|
168
|
+
const args = process.argv.slice(2);
|
|
169
|
+
const command = args[0];
|
|
170
|
+
|
|
171
|
+
if (!command) {
|
|
172
|
+
console.error("Usage: vize <command> [options]");
|
|
173
|
+
console.error("Commands: lint");
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (NAPI_COMMANDS.has(command)) {
|
|
178
|
+
const commandArgs = args.slice(1);
|
|
179
|
+
switch (command) {
|
|
180
|
+
case "lint":
|
|
181
|
+
runLint(commandArgs);
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
} else {
|
|
185
|
+
console.error(`Unknown command: ${command}`);
|
|
186
|
+
console.error(
|
|
187
|
+
"For commands not yet available via NAPI, install from source: cargo install vize",
|
|
188
|
+
);
|
|
189
|
+
process.exit(1);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
main();
|