@vef-framework/dev 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/bin/vef.js +13 -0
  2. package/dist/cjs/index.cjs +1 -23
  3. package/dist/cjs/lint/commitlint.cjs +1 -14
  4. package/dist/cjs/lint/eslint.cjs +1 -981
  5. package/dist/cjs/lint/index.cjs +1 -14
  6. package/dist/cjs/lint/stylelint.cjs +1 -92
  7. package/dist/cjs/vite/chunks.cjs +1 -42
  8. package/dist/cjs/vite/config.cjs +1 -83
  9. package/dist/cjs/vite/constants.cjs +1 -30
  10. package/dist/cjs/vite/define.cjs +3 -18
  11. package/dist/cjs/vite/index.cjs +1 -11
  12. package/dist/cjs/vite/plugin-app-config.cjs +1 -38
  13. package/dist/cjs/vite/plugin-auto-enhance/core.cjs +1 -147
  14. package/dist/cjs/vite/plugin-auto-enhance/index.cjs +1 -40
  15. package/dist/cjs/vite/plugin-auto-enhance/plugins/index.cjs +1 -10
  16. package/dist/cjs/vite/plugin-auto-enhance/plugins/operation-column-width.cjs +1 -229
  17. package/dist/cjs/vite/plugin-conventional-config.cjs +1 -91
  18. package/dist/cjs/vite/plugin-eslint.cjs +1 -24
  19. package/dist/cjs/vite/plugin-html.cjs +2 -74
  20. package/dist/cjs/vite/plugin-icons.cjs +1 -22
  21. package/dist/cjs/vite/plugin-injection.cjs +1 -20
  22. package/dist/cjs/vite/plugin-inspect.cjs +1 -15
  23. package/dist/cjs/vite/plugin-react.cjs +1 -80
  24. package/dist/cjs/vite/plugin-router.cjs +4 -42
  25. package/dist/cjs/vite/plugin-stylelint.cjs +1 -24
  26. package/dist/cjs/vite/plugin-svgr.cjs +1 -59
  27. package/dist/cjs/vite/plugin-tsconfig-paths.cjs +1 -14
  28. package/dist/cjs/vite/postcss.cjs +1 -13
  29. package/dist/cli/index.js +5 -0
  30. package/dist/es/index.js +14 -8
  31. package/dist/es/lint/commitlint.js +5 -6
  32. package/dist/es/lint/eslint.js +135 -137
  33. package/dist/es/lint/index.js +8 -4
  34. package/dist/es/lint/stylelint.js +18 -20
  35. package/dist/es/vite/chunks.js +13 -31
  36. package/dist/es/vite/config.js +63 -68
  37. package/dist/es/vite/constants.js +15 -15
  38. package/dist/es/vite/define.js +10 -11
  39. package/dist/es/vite/index.js +5 -3
  40. package/dist/es/vite/plugin-app-config.js +19 -20
  41. package/dist/es/vite/plugin-auto-enhance/core.js +51 -90
  42. package/dist/es/vite/plugin-auto-enhance/index.js +19 -23
  43. package/dist/es/vite/plugin-auto-enhance/plugins/index.js +4 -2
  44. package/dist/es/vite/plugin-auto-enhance/plugins/operation-column-width.js +117 -181
  45. package/dist/es/vite/plugin-conventional-config.js +43 -45
  46. package/dist/es/vite/plugin-eslint.js +14 -15
  47. package/dist/es/vite/plugin-html.js +42 -53
  48. package/dist/es/vite/plugin-icons.js +10 -11
  49. package/dist/es/vite/plugin-injection.js +4 -4
  50. package/dist/es/vite/plugin-inspect.js +8 -9
  51. package/dist/es/vite/plugin-react.js +25 -35
  52. package/dist/es/vite/plugin-router.js +20 -21
  53. package/dist/es/vite/plugin-stylelint.js +14 -15
  54. package/dist/es/vite/plugin-svgr.js +19 -20
  55. package/dist/es/vite/plugin-tsconfig-paths.js +7 -8
  56. package/dist/es/vite/postcss.js +5 -5
  57. package/dist/types/cli/index.d.ts +1 -0
  58. package/package.json +20 -8
@@ -1,8 +1,5 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- import { minify } from 'html-minifier-terser';
3
-
4
- const virtualModuleId = "index.html";
5
- const htmlContent = `
1
+ import { minify as o } from "html-minifier-terser";
2
+ const i = "index.html", a = `
6
3
  <!doctype html>
7
4
  <html lang="en">
8
5
  <head>
@@ -146,67 +143,59 @@ const htmlContent = `
146
143
  </body>
147
144
  </html>
148
145
  `;
149
- function createHtmlPlugin() {
146
+ function l() {
150
147
  return [
151
148
  {
152
149
  name: "vef-framework:html",
153
- resolveId(source) {
154
- if (source === virtualModuleId) {
155
- return virtualModuleId;
156
- }
157
- return null;
150
+ resolveId(t) {
151
+ return t === i ? i : null;
158
152
  },
159
- load(id) {
160
- if (id === virtualModuleId) {
161
- return htmlContent;
162
- }
163
- return null;
153
+ load(t) {
154
+ return t === i ? a : null;
164
155
  },
165
156
  transformIndexHtml: {
166
157
  order: "pre",
167
- handler: () => htmlContent
158
+ handler: () => a
168
159
  }
169
160
  },
170
161
  {
171
162
  name: "vef-framework:html-minify",
172
163
  enforce: "post",
173
- async generateBundle(_, bundles) {
174
- for (const bundle of Object.values(bundles)) {
175
- if (bundle.type === "asset" && typeof bundle.source === "string" && bundle.fileName === virtualModuleId) {
176
- bundle.source = await minify(
177
- bundle.source,
178
- {
179
- collapseBooleanAttributes: true,
180
- collapseInlineTagWhitespace: true,
181
- collapseWhitespace: true,
182
- conservativeCollapse: false,
183
- keepClosingSlash: true,
184
- minifyCSS: true,
185
- minifyJS: true,
186
- minifyURLs: true,
187
- noNewlinesBeforeTagClose: true,
188
- quoteCharacter: `"`,
189
- removeAttributeQuotes: false,
190
- removeComments: true,
191
- removeEmptyAttributes: true,
192
- removeOptionalTags: false,
193
- removeRedundantAttributes: true,
194
- removeScriptTypeAttributes: false,
195
- removeTagWhitespace: false,
196
- removeEmptyElements: false,
197
- removeStyleLinkTypeAttributes: false,
198
- sortAttributes: true,
199
- sortClassName: true,
200
- trimCustomFragments: true,
201
- useShortDoctype: true,
202
- html5: true
203
- }
204
- );
205
- }
206
- }
164
+ async generateBundle(t, n) {
165
+ for (const e of Object.values(n))
166
+ e.type === "asset" && typeof e.source == "string" && e.fileName === i && (e.source = await o(
167
+ e.source,
168
+ {
169
+ collapseBooleanAttributes: !0,
170
+ collapseInlineTagWhitespace: !0,
171
+ collapseWhitespace: !0,
172
+ conservativeCollapse: !1,
173
+ keepClosingSlash: !0,
174
+ minifyCSS: !0,
175
+ minifyJS: !0,
176
+ minifyURLs: !0,
177
+ noNewlinesBeforeTagClose: !0,
178
+ quoteCharacter: '"',
179
+ removeAttributeQuotes: !1,
180
+ removeComments: !0,
181
+ removeEmptyAttributes: !0,
182
+ removeOptionalTags: !1,
183
+ removeRedundantAttributes: !0,
184
+ removeScriptTypeAttributes: !1,
185
+ removeTagWhitespace: !1,
186
+ removeEmptyElements: !1,
187
+ removeStyleLinkTypeAttributes: !1,
188
+ sortAttributes: !0,
189
+ sortClassName: !0,
190
+ trimCustomFragments: !0,
191
+ useShortDoctype: !0,
192
+ html5: !0
193
+ }
194
+ ));
207
195
  }
208
196
  }
209
197
  ];
210
198
  }
211
-
212
- export { createHtmlPlugin };
199
+ export {
200
+ l as createHtmlPlugin
201
+ };
@@ -1,17 +1,16 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- import { resolve, dirname } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import icons from 'unplugin-icons/vite';
5
-
6
- function createIconsPlugin(projectDir) {
7
- return icons({
8
- autoInstall: false,
1
+ import { resolve as e, dirname as l } from "node:path";
2
+ import { fileURLToPath as r } from "node:url";
3
+ import t from "unplugin-icons/vite";
4
+ function n(o) {
5
+ return t({
6
+ autoInstall: !1,
9
7
  compiler: "jsx",
10
8
  jsx: "react",
11
9
  defaultClass: "inline-block",
12
10
  scale: 1.2,
13
- collectionsNodeResolvePath: [projectDir, resolve(dirname(fileURLToPath(import.meta.url)), "..")]
11
+ collectionsNodeResolvePath: [o, e(l(r(import.meta.url)), "..")]
14
12
  });
15
13
  }
16
-
17
- export { createIconsPlugin };
14
+ export {
15
+ n as createIconsPlugin
16
+ };
@@ -1,5 +1,4 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- function createInjectionPlugin() {
1
+ function e() {
3
2
  return {
4
3
  name: "vef-framework:injection"
5
4
  // transform(code, id) {
@@ -12,5 +11,6 @@ function createInjectionPlugin() {
12
11
  // }
13
12
  };
14
13
  }
15
-
16
- export { createInjectionPlugin };
14
+ export {
15
+ e as createInjectionPlugin
16
+ };
@@ -1,11 +1,10 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- import inspect from 'vite-plugin-inspect';
3
-
4
- function createInspectPlugin() {
5
- return inspect({
6
- dev: true,
7
- build: false
1
+ import e from "vite-plugin-inspect";
2
+ function r() {
3
+ return e({
4
+ dev: !0,
5
+ build: !1
8
6
  });
9
7
  }
10
-
11
- export { createInspectPlugin };
8
+ export {
9
+ r as createInspectPlugin
10
+ };
@@ -1,26 +1,24 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- import react from '@vitejs/plugin-react';
3
- import chalk from 'chalk';
4
-
5
- function createReactPlugin({
6
- useEmotion = false,
7
- useCompiler = true,
8
- babelPlugins
1
+ import c from "@vitejs/plugin-react";
2
+ import e from "chalk";
3
+ function d({
4
+ useEmotion: i = !1,
5
+ useCompiler: a = !0,
6
+ babelPlugins: t
9
7
  } = {}) {
10
- return react({
8
+ return c({
11
9
  babel: {
12
10
  plugins: [
13
- ...useEmotion ? [
11
+ ...i ? [
14
12
  [
15
13
  "@emotion",
16
14
  {
17
- sourceMap: true,
15
+ sourceMap: !0,
18
16
  autoLabel: "never",
19
- cssPropOptimization: true
17
+ cssPropOptimization: !0
20
18
  }
21
19
  ]
22
20
  ] : [],
23
- ...useCompiler ? [
21
+ ...a ? [
24
22
  [
25
23
  "react-compiler",
26
24
  {
@@ -35,29 +33,20 @@ function createReactPlugin({
35
33
  panicThreshold: "none",
36
34
  target: "19",
37
35
  logger: {
38
- logEvent(filename, event) {
39
- switch (event.kind) {
40
- case "CompileSuccess": {
36
+ logEvent(l, o) {
37
+ switch (o.kind) {
38
+ case "CompileSuccess":
41
39
  break;
42
- }
43
40
  case "CompileError": {
44
- console.error(`${chalk.blueBright("[Compiler]")} ❌ ${chalk.redBright(`Skipped: ${filename}`)}`);
45
- console.error(chalk.red(`Reason: ${event.detail.reason}`));
46
- if (event.detail.description) {
47
- console.error(chalk.red(`Details: ${event.detail.description}`));
48
- }
49
- if (event.detail.loc) {
50
- const { line, column } = event.detail.loc.start;
51
- console.error(chalk.red(`Location: Line ${line}, Column ${column}`));
52
- }
53
- if (event.detail.suggestions) {
54
- console.error(chalk.yellow(`Suggestions: ${event.detail.suggestions.map((suggestion) => suggestion.description).join(" | ")}`));
41
+ if (console.error(`${e.blueBright("[Compiler]")} ❌ ${e.redBright(`Skipped: ${l}`)}`), console.error(e.red(`Reason: ${o.detail.reason}`)), o.detail.description && console.error(e.red(`Details: ${o.detail.description}`)), o.detail.loc) {
42
+ const { line: r, column: s } = o.detail.loc.start;
43
+ console.error(e.red(`Location: Line ${r}, Column ${s}`));
55
44
  }
45
+ o.detail.suggestions && console.error(e.yellow(`Suggestions: ${o.detail.suggestions.map((r) => r.description).join(" | ")}`));
56
46
  break;
57
47
  }
58
- case "CompileSkip": {
59
- console.info(`${chalk.blueBright("[Compiler]")} ℹ️ ${chalk.gray(`Skipped: ${filename}`)}`, event);
60
- }
48
+ case "CompileSkip":
49
+ console.info(`${e.blueBright("[Compiler]")} ℹ️ ${e.gray(`Skipped: ${l}`)}`, o);
61
50
  }
62
51
  }
63
52
  }
@@ -66,11 +55,12 @@ function createReactPlugin({
66
55
  ] : [],
67
56
  "jotai/babel/plugin-debug-label",
68
57
  "jotai/babel/plugin-react-refresh",
69
- ...babelPlugins ?? []
58
+ ...t ?? []
70
59
  ]
71
60
  },
72
- jsxImportSource: useEmotion ? "@emotion/react" : void 0
61
+ jsxImportSource: i ? "@emotion/react" : void 0
73
62
  });
74
63
  }
75
-
76
- export { createReactPlugin };
64
+ export {
65
+ d as createReactPlugin
66
+ };
@@ -1,32 +1,30 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- import { resolve } from 'node:path';
3
- import { tanstackRouter } from '@tanstack/router-plugin/vite';
4
- import { SRC_DIR, ROUTER_DIR, PAGES_DIR } from './constants.js';
5
-
6
- function createRouterPlugin(projectDir, history = "browser") {
7
- return tanstackRouter({
8
- routesDirectory: resolve(projectDir, SRC_DIR, PAGES_DIR),
9
- generatedRouteTree: resolve(projectDir, SRC_DIR, ROUTER_DIR, "router.gen.ts"),
1
+ import { resolve as t } from "node:path";
2
+ import { tanstackRouter as n } from "@tanstack/router-plugin/vite";
3
+ import { SRC_DIR as r, ROUTER_DIR as s, PAGES_DIR as u } from "./constants.js";
4
+ function c(e, o = "browser") {
5
+ return n({
6
+ routesDirectory: t(e, r, u),
7
+ generatedRouteTree: t(e, r, s, "router.gen.ts"),
10
8
  quoteStyle: "double",
11
- semicolons: true,
12
- disableTypes: false,
13
- addExtensions: false,
14
- disableLogging: false,
9
+ semicolons: !0,
10
+ disableTypes: !1,
11
+ addExtensions: !1,
12
+ disableLogging: !1,
15
13
  routeFileIgnorePattern: "components|hooks|helpers|store|states|types|styles",
16
14
  indexToken: "index",
17
15
  routeToken: "route",
18
- enableRouteGeneration: true,
19
- autoCodeSplitting: true,
16
+ enableRouteGeneration: !0,
17
+ autoCodeSplitting: !0,
20
18
  routeTreeFileHeader: [
21
19
  "/* eslint-disable */",
22
20
  "// @ts-nocheck",
23
21
  "// noinspection JSUnusedGlobalSymbols",
24
- `import { createRouter } from "@vef-framework/starter";`,
25
- `import { routerContext as context } from "./context";`
22
+ 'import { createRouter } from "@vef-framework/starter";',
23
+ 'import { routerContext as context } from "./context";'
26
24
  ],
27
25
  routeTreeFileFooter: [
28
26
  `const router = createRouter({
29
- history: "${history}",
27
+ history: "${o}",
30
28
  routeTree,
31
29
  context
32
30
  });
@@ -37,9 +35,10 @@ function createRouterPlugin(projectDir, history = "browser") {
37
35
  }
38
36
  }
39
37
  `,
40
- `export default router;`
38
+ "export default router;"
41
39
  ]
42
40
  });
43
41
  }
44
-
45
- export { createRouterPlugin };
42
+ export {
43
+ c as createRouterPlugin
44
+ };
@@ -1,20 +1,19 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- import stylelint from 'vite-plugin-stylelint';
3
-
4
- function createStylelintPlugin() {
5
- return stylelint({
6
- fix: false,
7
- test: false,
8
- dev: true,
9
- build: false,
10
- cache: true,
1
+ import e from "vite-plugin-stylelint";
2
+ function r() {
3
+ return e({
4
+ fix: !1,
5
+ test: !1,
6
+ dev: !0,
7
+ build: !1,
8
+ cache: !0,
11
9
  cacheLocation: "node_modules/.cache/.stylelintcache",
12
10
  include: ["src/**/*.{css,scss}"],
13
11
  exclude: ["node_modules", "virtual:", "vef:"],
14
- emitError: true,
15
- emitWarning: true,
16
- emitWarningAsError: true
12
+ emitError: !0,
13
+ emitWarning: !0,
14
+ emitWarningAsError: !0
17
15
  });
18
16
  }
19
-
20
- export { createStylelintPlugin };
17
+ export {
18
+ r as createStylelintPlugin
19
+ };
@@ -1,12 +1,10 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- import svgr from 'vite-plugin-svgr';
3
-
4
- function createSvgrPlugin() {
5
- return svgr({
1
+ import e from "vite-plugin-svgr";
2
+ function s() {
3
+ return e({
6
4
  include: "**/*.svg?react",
7
5
  esbuildOptions: {
8
6
  platform: "browser",
9
- minify: true,
7
+ minify: !0,
10
8
  jsx: "automatic"
11
9
  },
12
10
  svgrOptions: {
@@ -14,20 +12,20 @@ function createSvgrPlugin() {
14
12
  "@svgr/plugin-svgo",
15
13
  "@svgr/plugin-jsx"
16
14
  ],
17
- icon: false,
18
- dimensions: false,
19
- prettier: true,
20
- memo: true,
21
- svgo: true,
22
- ref: false,
23
- typescript: true,
15
+ icon: !1,
16
+ dimensions: !1,
17
+ prettier: !0,
18
+ memo: !0,
19
+ svgo: !0,
20
+ ref: !1,
21
+ typescript: !0,
24
22
  jsxRuntime: "automatic",
25
23
  svgoConfig: {
26
- multipass: true,
24
+ multipass: !0,
27
25
  datauri: "base64",
28
26
  js2svg: {
29
27
  indent: 2,
30
- pretty: true
28
+ pretty: !0
31
29
  },
32
30
  plugins: [
33
31
  "preset-default",
@@ -40,9 +38,9 @@ function createSvgrPlugin() {
40
38
  {
41
39
  name: "cleanupIds",
42
40
  params: {
43
- force: true,
44
- remove: true,
45
- minify: true
41
+ force: !0,
42
+ remove: !0,
43
+ minify: !0
46
44
  }
47
45
  }
48
46
  ]
@@ -51,5 +49,6 @@ function createSvgrPlugin() {
51
49
  }
52
50
  });
53
51
  }
54
-
55
- export { createSvgrPlugin };
52
+ export {
53
+ s as createSvgrPlugin
54
+ };
@@ -1,10 +1,9 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- import tsconfigPaths from 'vite-tsconfig-paths';
3
-
4
- function createTsconfigPathsPlugin(projectDir) {
5
- return tsconfigPaths({
6
- root: projectDir
1
+ import o from "vite-tsconfig-paths";
2
+ function n(t) {
3
+ return o({
4
+ root: t
7
5
  });
8
6
  }
9
-
10
- export { createTsconfigPathsPlugin };
7
+ export {
8
+ n as createTsconfigPathsPlugin
9
+ };
@@ -1,9 +1,9 @@
1
- /*! @vef-framework/dev v2.0.2 made with ❤️ by Venus | 2025-11-25T15:03:13.100Z */
2
- function createPostcssConfig() {
1
+ function e() {
3
2
  return {
4
- map: false,
3
+ map: !1,
5
4
  plugins: []
6
5
  };
7
6
  }
8
-
9
- export { createPostcssConfig };
7
+ export {
8
+ e as createPostcssConfig
9
+ };
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vef-framework/dev",
3
3
  "type": "module",
4
- "version": "2.0.3",
4
+ "version": "2.0.5",
5
5
  "private": false,
6
6
  "description": "Dev tools for VEF framework",
7
7
  "author": {
@@ -39,6 +39,9 @@
39
39
  "main": "dist/cjs/index.cjs",
40
40
  "module": "dist/es/index.js",
41
41
  "types": "dist/types/index.d.ts",
42
+ "bin": {
43
+ "vef": "bin/vef.js"
44
+ },
42
45
  "files": [
43
46
  "dist",
44
47
  "tsconfig.base.json",
@@ -52,14 +55,16 @@
52
55
  },
53
56
  "peerDependencies": {
54
57
  "@commitlint/cli": "^20.1.0",
55
- "eslint": "^9.37.0",
56
- "lint-staged": "^16.2.3",
57
- "stylelint": "^16.25.0",
58
+ "@stylistic/stylelint-config": "^3.0.1",
59
+ "eslint": "^9.39.1",
60
+ "husky": "^9.1.7",
61
+ "lint-staged": "^16.2.7",
62
+ "stylelint": "^16.26.0",
58
63
  "stylelint-config-recess-order": "^7.4.0",
59
64
  "stylelint-config-recommended": "^17.0.0",
60
65
  "stylelint-config-standard-scss": "^16.0.0",
61
66
  "stylelint-order": "^7.0.0",
62
- "vite": "^7.1.9"
67
+ "vite": "^7.2.4"
63
68
  },
64
69
  "dependencies": {
65
70
  "@babel/core": "^7.28.5",
@@ -74,10 +79,11 @@
74
79
  "@svgr/plugin-svgo": "^8.1.0",
75
80
  "@tanstack/eslint-plugin-query": "^5.91.2",
76
81
  "@tanstack/eslint-plugin-router": "^1.139.0",
77
- "@tanstack/router-plugin": "^1.139.3",
82
+ "@tanstack/router-plugin": "^1.139.6",
78
83
  "@vitejs/plugin-react": "^5.1.1",
79
84
  "babel-plugin-react-compiler": "1.0.0",
80
85
  "chalk": "^5.6.2",
86
+ "commander": "^14.0.2",
81
87
  "consola": "^3.4.2",
82
88
  "dotenv": "^17.2.3",
83
89
  "eslint-config-flat-gitignore": "^2.1.0",
@@ -92,10 +98,12 @@
92
98
  "eslint-plugin-unused-imports": "^4.3.0",
93
99
  "fs-extra": "^11.3.2",
94
100
  "html-minifier-terser": "^7.2.0",
101
+ "ora": "^9.0.0",
102
+ "prompts": "^2.4.2",
95
103
  "radashi": "^12.7.1",
96
104
  "recast": "^0.23.11",
97
105
  "sass-embedded": "^1.93.3",
98
- "typescript-eslint": "^8.47.0",
106
+ "typescript-eslint": "^8.48.0",
99
107
  "unplugin-config": "^0.1.5",
100
108
  "unplugin-icons": "^22.5.0",
101
109
  "vite-plugin-eslint2": "^5.0.4",
@@ -107,20 +115,24 @@
107
115
  "devDependencies": {
108
116
  "@commitlint/cli": "^20.1.0",
109
117
  "@commitlint/types": "^20.0.0",
118
+ "@stylistic/stylelint-config": "^3.0.1",
110
119
  "@types/html-minifier-terser": "^7.0.2",
120
+ "@types/prompts": "^2.4.9",
111
121
  "eslint": "^9.39.1",
122
+ "husky": "^9.1.7",
112
123
  "lint-staged": "^16.2.7",
113
124
  "stylelint": "^16.26.0",
114
125
  "stylelint-config-recess-order": "^7.4.0",
115
126
  "stylelint-config-recommended": "^17.0.0",
116
127
  "stylelint-config-standard-scss": "^16.0.0",
117
128
  "stylelint-order": "^7.0.0",
129
+ "tsup": "^8.5.1",
118
130
  "type-fest": "^5.2.0",
119
131
  "vite": "^7.2.4"
120
132
  },
121
133
  "scripts": {
122
134
  "clean": "rimraf dist",
123
135
  "typecheck": "tsc --noEmit",
124
- "build": "vite build"
136
+ "build": "vite build && tsup"
125
137
  }
126
138
  }