vite-plus 0.3.1 → 0.3.3

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 (63) hide show
  1. package/README.md +1 -1
  2. package/bin/vp +1 -1
  3. package/binding/index.cjs +137 -56
  4. package/binding/index.d.cts +52 -0
  5. package/dist/{agent-C5jMYVfB.js → agent-Cu6-tXIP.js} +2 -2
  6. package/dist/bin.js +6 -5
  7. package/dist/config/bin.js +2 -2
  8. package/dist/{constants-0IAVgpox.js → constants-C2dTOTe-.js} +2 -2
  9. package/dist/create/bin.js +97 -68
  10. package/dist/{define-config-DIE9de46.cjs → define-config-D0mevyb3.cjs} +1 -1
  11. package/dist/{define-config-U3_xg7i-.js → define-config-IgzmnvvV.js} +2 -2
  12. package/dist/define-config.cjs +1 -1
  13. package/dist/define-config.js +1 -1
  14. package/dist/{editor-B5-lvRaU.js → editor-4sjlHmUh.js} +154 -36
  15. package/dist/index.cjs +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/lint-plugins-dev.d.ts +3 -0
  18. package/dist/lint-plugins-dev.js +2 -0
  19. package/dist/lint-plugins.cjs +21 -0
  20. package/dist/lint-plugins.d.ts +3 -0
  21. package/dist/lint-plugins.js +2 -0
  22. package/dist/migration/bin.js +7 -7
  23. package/dist/{oxlint-plugin-config-Drdl67Xp.js → oxlint-plugin-config-BVqEe9KY.js} +1 -1
  24. package/dist/oxlint-plugin.js +93 -32
  25. package/dist/pack-bin.js +1 -1
  26. package/dist/{package-BZz2Ij68.js → package-CHH8jWan.js} +1 -1
  27. package/dist/{prompts-CtzEgFY-.js → prompts-k14KgthC.js} +1 -1
  28. package/dist/{resolve-vite-config-CGks1xR7.js → resolve-vite-config-BqvS2P98.js} +2 -2
  29. package/dist/{resolve-vite-config-Dnmc-lBc.js → resolve-vite-config-CTOTuqTi.js} +1 -1
  30. package/dist/staged/bin.js +1 -1
  31. package/dist/toolchain.js +8 -8
  32. package/dist/toolchain.json +8 -8
  33. package/dist/{tsconfig-CUggNuJR.js → tsconfig-C3h9CVTA.js} +2 -2
  34. package/dist/{tsconfig-VAbm4ZzJ.js → tsconfig-euB-GmIE.js} +1 -1
  35. package/dist/version.js +2 -2
  36. package/dist/versions.js +4 -4
  37. package/docs/config/fmt.md +4 -2
  38. package/docs/config/lint.md +4 -2
  39. package/docs/config/staged.md +1 -2
  40. package/docs/guide/ci.md +28 -31
  41. package/docs/guide/commit-hooks.md +11 -34
  42. package/docs/guide/create.md +1 -2
  43. package/docs/guide/docker.md +20 -68
  44. package/docs/guide/env.md +56 -22
  45. package/docs/guide/fmt.md +3 -1
  46. package/docs/guide/global-cli.md +426 -0
  47. package/docs/guide/ide-integration.md +1 -2
  48. package/docs/guide/implode.md +14 -1
  49. package/docs/guide/index.md +37 -34
  50. package/docs/guide/install.md +18 -19
  51. package/docs/guide/lint.md +52 -1
  52. package/docs/guide/local-cli.md +123 -0
  53. package/docs/guide/migrate-rules.md +108 -267
  54. package/docs/guide/migrate.md +6 -49
  55. package/docs/guide/monorepo.md +2 -0
  56. package/docs/guide/run.md +1 -1
  57. package/docs/guide/troubleshooting.md +17 -8
  58. package/docs/guide/upgrade-project.md +61 -0
  59. package/docs/guide/upgrade.md +17 -62
  60. package/package.json +26 -17
  61. package/templates/generator/README.md +14 -0
  62. package/templates/generator/bin/index.ts +54 -5
  63. package/docs/guide/installer-env-vars.md +0 -252
@@ -1,4 +1,4 @@
1
- import { n as VITE_PLUS_OXLINT_PLUGIN_NAME, t as PREFER_VITE_PLUS_IMPORTS_RULE_NAME } from "./oxlint-plugin-config-Drdl67Xp.js";
1
+ import { n as VITE_PLUS_OXLINT_PLUGIN_NAME, t as PREFER_VITE_PLUS_IMPORTS_RULE_NAME } from "./oxlint-plugin-config-BVqEe9KY.js";
2
2
  import path from "node:path";
3
3
  import fs from "node:fs";
4
4
  import { definePlugin, defineRule } from "@oxlint/plugins";
@@ -23,12 +23,33 @@ function isVitestFamilyDeclareModuleSpecifier(specifier) {
23
23
  return specifier === "vitest" || specifier.startsWith("vitest/") || specifier === "@vitest/browser" || specifier.startsWith("@vitest/browser/") || specifier.startsWith("@vitest/browser-");
24
24
  }
25
25
  const VITE_CONFIG_FILE_BASENAMES = new Set(vite_config_entry_basenames_default);
26
+ function isOxlintFamilyDeclareModuleSpecifier(specifier) {
27
+ return specifier === OXLINT_PACKAGE || specifier.startsWith(`${OXLINT_PACKAGE}/`) || specifier === OXLINT_PLUGINS_PACKAGE;
28
+ }
26
29
  function isViteSpecifier(specifier) {
27
30
  return specifier === "vite" || specifier.startsWith("vite/");
28
31
  }
29
32
  function isViteConfigFile(filename) {
30
33
  return VITE_CONFIG_FILE_BASENAMES.has(path.basename(filename));
31
34
  }
35
+ const OXLINT_PACKAGE = "oxlint";
36
+ const OXLINT_PLUGINS_PACKAGE = "@oxlint/plugins";
37
+ const OXLINT_PLUGINS_DEV_SUBPATH = "oxlint/plugins-dev";
38
+ const VITE_PLUS_LINT_PLUGINS = "vite-plus/lint/plugins";
39
+ const VITE_PLUS_LINT_PLUGINS_DEV = "vite-plus/lint/plugins-dev";
40
+ const OXLINT_CONFIG_SURFACE_EXPORTS = /* @__PURE__ */ new Set([
41
+ "defineConfig",
42
+ "AllowWarnDeny",
43
+ "DummyRule",
44
+ "DummyRuleMap",
45
+ "ExternalPluginEntry",
46
+ "ExternalPluginsConfig",
47
+ "OxlintConfig",
48
+ "OxlintEnv",
49
+ "OxlintGlobals",
50
+ "OxlintOverride",
51
+ "RuleCategories"
52
+ ]);
32
53
  function rewriteVitePlusImportSpecifier(specifier) {
33
54
  if (specifier === "vite") return "vite-plus";
34
55
  if (specifier.startsWith("vite/")) return `vite-plus/${specifier.slice(5)}`;
@@ -54,17 +75,26 @@ function rewriteVitePlusImportSpecifier(specifier) {
54
75
  if (specifier === `${prefix}/context`) return "vite-plus/test/browser/context";
55
76
  if (specifier === `${prefix}/provider`) return `vite-plus/test/browser/providers/${provider}`;
56
77
  }
78
+ if (specifier === OXLINT_PLUGINS_PACKAGE) return VITE_PLUS_LINT_PLUGINS;
79
+ if (specifier === OXLINT_PLUGINS_DEV_SUBPATH) return VITE_PLUS_LINT_PLUGINS_DEV;
57
80
  return null;
58
81
  }
82
+ function moduleBindingName(node) {
83
+ return node.type === "Identifier" ? node.name : node.value;
84
+ }
85
+ function importsOxlintPluginApi(node) {
86
+ return node.specifiers.length > 0 && node.specifiers.every((specifier) => specifier.type === "ImportSpecifier" && !OXLINT_CONFIG_SURFACE_EXPORTS.has(moduleBindingName(specifier.imported)));
87
+ }
59
88
  function quoteSpecifier(literal, replacement) {
60
89
  const quote = literal.raw?.startsWith("'") ? "'" : "\"";
61
90
  return `${quote}${replacement}${quote}`;
62
91
  }
63
92
  const nuxtTestUtilsPackageCache = /* @__PURE__ */ new Map();
93
+ const oxlintOwnerPackageCache = /* @__PURE__ */ new Map();
64
94
  function isUpstreamVitestSpecifier(specifier) {
65
95
  return specifier === "vitest" || specifier.startsWith("vitest/");
66
96
  }
67
- function nearestPackageUsesNuxtTestUtils(filename) {
97
+ function nearestPackageMatches(filename, cache, matchesPackage) {
68
98
  if (!path.isAbsolute(filename)) return false;
69
99
  let directory = path.dirname(filename);
70
100
  while (true) {
@@ -74,34 +104,34 @@ function nearestPackageUsesNuxtTestUtils(filename) {
74
104
  try {
75
105
  mtimeMs = fs.statSync(packageJsonPath).mtimeMs;
76
106
  } catch {}
77
- const cached = mtimeMs === void 0 ? void 0 : nuxtTestUtilsPackageCache.get(packageJsonPath);
78
- if (cached !== void 0 && cached.mtimeMs === mtimeMs) return cached.usesNuxtTestUtils;
79
- let usesNuxtTestUtils = false;
107
+ const cached = mtimeMs === void 0 ? void 0 : cache.get(packageJsonPath);
108
+ if (cached !== void 0 && cached.mtimeMs === mtimeMs) return cached.matches;
109
+ let matches = false;
80
110
  try {
81
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
82
- usesNuxtTestUtils = [
83
- pkg.dependencies,
84
- pkg.devDependencies,
85
- pkg.optionalDependencies
86
- ].some((dependencies) => dependencies?.["@nuxt/test-utils"] !== void 0);
111
+ matches = matchesPackage(JSON.parse(fs.readFileSync(packageJsonPath, "utf8")));
87
112
  } catch {}
88
- if (mtimeMs !== void 0) nuxtTestUtilsPackageCache.set(packageJsonPath, {
113
+ if (mtimeMs !== void 0) cache.set(packageJsonPath, {
89
114
  mtimeMs,
90
- usesNuxtTestUtils
115
+ matches
91
116
  });
92
- return usesNuxtTestUtils;
117
+ return matches;
93
118
  }
94
119
  const parent = path.dirname(directory);
95
120
  if (parent === directory) return false;
96
121
  directory = parent;
97
122
  }
98
123
  }
99
- function maybeReportLiteral(context, literal, preserveUpstreamVitest = false, fileIsViteConfig = false) {
100
- if (!literal || literal.type !== "Literal" || typeof literal.value !== "string") return;
101
- if (preserveUpstreamVitest && isUpstreamVitestSpecifier(literal.value)) return;
102
- if (!fileIsViteConfig && isViteSpecifier(literal.value)) return;
103
- const replacement = rewriteVitePlusImportSpecifier(literal.value);
104
- if (!replacement) return;
124
+ function nearestPackageUsesNuxtTestUtils(filename) {
125
+ return nearestPackageMatches(filename, nuxtTestUtilsPackageCache, (pkg) => [
126
+ pkg.dependencies,
127
+ pkg.devDependencies,
128
+ pkg.optionalDependencies
129
+ ].some((dependencies) => dependencies?.["@nuxt/test-utils"] !== void 0));
130
+ }
131
+ function nearestPackageOwnsOxlintApi(filename) {
132
+ return nearestPackageMatches(filename, oxlintOwnerPackageCache, (pkg) => pkg.optionalDependencies?.[OXLINT_PLUGINS_PACKAGE] !== void 0 || [pkg.dependencies, pkg.peerDependencies].some((dependencies) => dependencies?.[OXLINT_PACKAGE] !== void 0 || dependencies?.[OXLINT_PLUGINS_PACKAGE] !== void 0));
133
+ }
134
+ function reportSpecifier(context, literal, replacement) {
105
135
  context.report({
106
136
  node: literal,
107
137
  messageId: "preferVitePlusImports",
@@ -114,6 +144,30 @@ function maybeReportLiteral(context, literal, preserveUpstreamVitest = false, fi
114
144
  }
115
145
  });
116
146
  }
147
+ function isOxlintApiSpecifier(specifier) {
148
+ return specifier === OXLINT_PLUGINS_PACKAGE || specifier === OXLINT_PLUGINS_DEV_SUBPATH;
149
+ }
150
+ function maybeReportLiteral(context, literal, { preserveUpstreamVitest, fileIsViteConfig, ownsOxlintApi }) {
151
+ if (!literal || literal.type !== "Literal" || typeof literal.value !== "string") return;
152
+ if (preserveUpstreamVitest && isUpstreamVitestSpecifier(literal.value)) return;
153
+ if (!fileIsViteConfig && isViteSpecifier(literal.value)) return;
154
+ const replacement = rewriteVitePlusImportSpecifier(literal.value);
155
+ if (!replacement) return;
156
+ if (ownsOxlintApi && isOxlintApiSpecifier(literal.value)) return;
157
+ reportSpecifier(context, literal, replacement);
158
+ }
159
+ function reportLegacyOxlintPluginApiExport(context, node, ownsOxlintApi) {
160
+ const literal = node.source;
161
+ if (!literal || literal.value !== OXLINT_PACKAGE || ownsOxlintApi) return;
162
+ if (node.specifiers.length === 0) return;
163
+ if (!node.specifiers.every((specifier) => !OXLINT_CONFIG_SURFACE_EXPORTS.has(moduleBindingName(specifier.local)))) return;
164
+ reportSpecifier(context, literal, VITE_PLUS_LINT_PLUGINS);
165
+ }
166
+ function reportLegacyOxlintPluginApiImport(context, node, ownsOxlintApi) {
167
+ const literal = node.source;
168
+ if (literal.value !== OXLINT_PACKAGE || ownsOxlintApi || !importsOxlintPluginApi(node)) return;
169
+ reportSpecifier(context, literal, VITE_PLUS_LINT_PLUGINS);
170
+ }
117
171
  const preferVitePlusImportsRule = defineRule({
118
172
  meta: {
119
173
  type: "problem",
@@ -126,36 +180,43 @@ const preferVitePlusImportsRule = defineRule({
126
180
  messages: { preferVitePlusImports: "Use '{{to}}' instead of '{{from}}' in Vite+ projects." }
127
181
  },
128
182
  createOnce(context) {
129
- let preserveUpstreamVitest = false;
130
- let fileIsViteConfig = false;
183
+ const options = {
184
+ preserveUpstreamVitest: false,
185
+ fileIsViteConfig: false,
186
+ ownsOxlintApi: false
187
+ };
131
188
  return {
132
189
  Program() {
133
- preserveUpstreamVitest = nearestPackageUsesNuxtTestUtils(context.filename);
134
- fileIsViteConfig = isViteConfigFile(context.filename);
190
+ options.preserveUpstreamVitest = nearestPackageUsesNuxtTestUtils(context.filename);
191
+ options.fileIsViteConfig = isViteConfigFile(context.filename);
192
+ options.ownsOxlintApi = nearestPackageOwnsOxlintApi(context.filename);
135
193
  },
136
194
  ImportDeclaration(node) {
137
- maybeReportLiteral(context, node.source, preserveUpstreamVitest, fileIsViteConfig);
195
+ maybeReportLiteral(context, node.source, options);
196
+ reportLegacyOxlintPluginApiImport(context, node, options.ownsOxlintApi);
138
197
  },
139
198
  ExportAllDeclaration(node) {
140
- maybeReportLiteral(context, node.source, preserveUpstreamVitest, fileIsViteConfig);
199
+ maybeReportLiteral(context, node.source, options);
141
200
  },
142
201
  ExportNamedDeclaration(node) {
143
- maybeReportLiteral(context, node.source, preserveUpstreamVitest, fileIsViteConfig);
202
+ maybeReportLiteral(context, node.source, options);
203
+ reportLegacyOxlintPluginApiExport(context, node, options.ownsOxlintApi);
144
204
  },
145
205
  ImportExpression(node) {
146
- maybeReportLiteral(context, node.source, preserveUpstreamVitest, fileIsViteConfig);
206
+ maybeReportLiteral(context, node.source, options);
147
207
  },
148
208
  TSImportType(node) {
149
- maybeReportLiteral(context, node.source, preserveUpstreamVitest, fileIsViteConfig);
209
+ maybeReportLiteral(context, node.source, options);
150
210
  },
151
211
  TSExternalModuleReference(node) {
152
- maybeReportLiteral(context, node.expression, preserveUpstreamVitest, fileIsViteConfig);
212
+ if (node.expression.type === "Literal" && typeof node.expression.value === "string" && isOxlintApiSpecifier(node.expression.value)) return;
213
+ maybeReportLiteral(context, node.expression, options);
153
214
  },
154
215
  TSModuleDeclaration(node) {
155
216
  if (node.global) return;
156
217
  const id = node.id;
157
- if (id?.type === "Literal" && typeof id.value === "string" && isVitestFamilyDeclareModuleSpecifier(id.value)) return;
158
- maybeReportLiteral(context, id, preserveUpstreamVitest, fileIsViteConfig);
218
+ if (id?.type === "Literal" && typeof id.value === "string" && (isVitestFamilyDeclareModuleSpecifier(id.value) || isOxlintFamilyDeclareModuleSpecifier(id.value))) return;
219
+ maybeReportLiteral(context, id, options);
159
220
  }
160
221
  };
161
222
  }
package/dist/pack-bin.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { t as cac } from "./dist-DfmT__Aw.js";
3
- import { o as resolveViteConfig } from "./resolve-vite-config-CGks1xR7.js";
3
+ import { o as resolveViteConfig } from "./resolve-vite-config-BqvS2P98.js";
4
4
  import module from "node:module";
5
5
  import { buildWithConfigs, enableDebug, globalLogger, resolveUserConfig } from "vite/pack";
6
6
  //#region src/pack-bin.ts
@@ -1,4 +1,4 @@
1
- import "./constants-0IAVgpox.js";
1
+ import "./constants-C2dTOTe-.js";
2
2
  import { i as readJsonFile } from "./json-cULBl7Pi.js";
3
3
  import { createRequire } from "node:module";
4
4
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./rolldown-runtime-CMFfr-1z.js";
2
2
  import { t as accent } from "./terminal-MKGAuy-p.js";
3
- import { f as VITE_PLUS_VERSION } from "./constants-0IAVgpox.js";
3
+ import { f as VITE_PLUS_VERSION } from "./constants-C2dTOTe-.js";
4
4
  import { a as writeJsonFile, i as readJsonFile } from "./json-cULBl7Pi.js";
5
5
  import { t as require_semver } from "./semver-CaDAb8vV.js";
6
6
  import { n as runCommandSilently } from "./command-CguLh2KL.js";
@@ -1,5 +1,5 @@
1
- import { l as VITE_CONFIG_FILES } from "./constants-0IAVgpox.js";
2
- import { u as withConfigMetadataResolution } from "./define-config-U3_xg7i-.js";
1
+ import { l as VITE_CONFIG_FILES } from "./constants-C2dTOTe-.js";
2
+ import { u as withConfigMetadataResolution } from "./define-config-IgzmnvvV.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs";
5
5
  //#region src/resolve-vite-config.ts
@@ -1,2 +1,2 @@
1
- import { a as resolveUniversalViteConfig } from "./resolve-vite-config-CGks1xR7.js";
1
+ import { a as resolveUniversalViteConfig } from "./resolve-vite-config-BqvS2P98.js";
2
2
  export { resolveUniversalViteConfig };
@@ -1,6 +1,6 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "../rolldown-runtime-CMFfr-1z.js";
2
2
  import { i as log, n as errorMsg, o as printHeader } from "../terminal-MKGAuy-p.js";
3
- import { o as resolveViteConfig } from "../resolve-vite-config-CGks1xR7.js";
3
+ import { o as resolveViteConfig } from "../resolve-vite-config-BqvS2P98.js";
4
4
  import { t as unwrapCliParseOutcome } from "../cli-parse-DHE8NrBU.js";
5
5
  import { createRequire } from "node:module";
6
6
  import path, { basename, delimiter, dirname, normalize, resolve } from "node:path";
package/dist/toolchain.js CHANGED
@@ -4,7 +4,7 @@ export const toolchain = {
4
4
  {
5
5
  "id": "vite-plus",
6
6
  "name": "vite-plus",
7
- "version": "0.3.1",
7
+ "version": "0.3.3",
8
8
  "kind": "package",
9
9
  "delivery": [
10
10
  "dependency"
@@ -14,7 +14,7 @@ export const toolchain = {
14
14
  {
15
15
  "id": "vite-plus-core",
16
16
  "name": "@voidzero-dev/vite-plus-core",
17
- "version": "0.3.1",
17
+ "version": "0.3.3",
18
18
  "kind": "package",
19
19
  "delivery": [
20
20
  "dependency"
@@ -26,7 +26,7 @@ export const toolchain = {
26
26
  {
27
27
  "id": "vite",
28
28
  "name": "vite",
29
- "version": "8.2.2",
29
+ "version": "8.3.0",
30
30
  "kind": "tool",
31
31
  "delivery": [
32
32
  "bundled"
@@ -36,7 +36,7 @@ export const toolchain = {
36
36
  {
37
37
  "id": "rolldown",
38
38
  "name": "rolldown",
39
- "version": "1.2.7",
39
+ "version": "1.2.9",
40
40
  "kind": "tool",
41
41
  "delivery": [
42
42
  "bundled",
@@ -57,7 +57,7 @@ export const toolchain = {
57
57
  {
58
58
  "id": "oxlint",
59
59
  "name": "oxlint",
60
- "version": "1.81.0",
60
+ "version": "1.83.0",
61
61
  "kind": "tool",
62
62
  "delivery": [
63
63
  "dependency"
@@ -67,7 +67,7 @@ export const toolchain = {
67
67
  {
68
68
  "id": "oxfmt",
69
69
  "name": "oxfmt",
70
- "version": "0.66.0",
70
+ "version": "0.68.0",
71
71
  "kind": "tool",
72
72
  "delivery": [
73
73
  "dependency"
@@ -100,7 +100,7 @@ export const toolchain = {
100
100
  "id": "vite-task",
101
101
  "name": "vite-task",
102
102
  "revision": "d05b1dcdbaabaa69643ee0b89cebe3cd390957e9",
103
- "builtAt": "2026-09-08T13:14:20Z",
103
+ "builtAt": "2026-09-18T02:37:51Z",
104
104
  "kind": "tool",
105
105
  "delivery": [
106
106
  "compiled"
@@ -110,7 +110,7 @@ export const toolchain = {
110
110
  {
111
111
  "id": "oxc",
112
112
  "name": "oxc",
113
- "version": "0.148.0",
113
+ "version": "0.150.0",
114
114
  "kind": "engine",
115
115
  "delivery": [
116
116
  "compiled"
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "id": "vite-plus",
6
6
  "name": "vite-plus",
7
- "version": "0.3.1",
7
+ "version": "0.3.3",
8
8
  "kind": "package",
9
9
  "delivery": [
10
10
  "dependency"
@@ -14,7 +14,7 @@
14
14
  {
15
15
  "id": "vite-plus-core",
16
16
  "name": "@voidzero-dev/vite-plus-core",
17
- "version": "0.3.1",
17
+ "version": "0.3.3",
18
18
  "kind": "package",
19
19
  "delivery": [
20
20
  "dependency"
@@ -26,7 +26,7 @@
26
26
  {
27
27
  "id": "vite",
28
28
  "name": "vite",
29
- "version": "8.2.2",
29
+ "version": "8.3.0",
30
30
  "kind": "tool",
31
31
  "delivery": [
32
32
  "bundled"
@@ -36,7 +36,7 @@
36
36
  {
37
37
  "id": "rolldown",
38
38
  "name": "rolldown",
39
- "version": "1.2.7",
39
+ "version": "1.2.9",
40
40
  "kind": "tool",
41
41
  "delivery": [
42
42
  "bundled",
@@ -57,7 +57,7 @@
57
57
  {
58
58
  "id": "oxlint",
59
59
  "name": "oxlint",
60
- "version": "1.81.0",
60
+ "version": "1.83.0",
61
61
  "kind": "tool",
62
62
  "delivery": [
63
63
  "dependency"
@@ -67,7 +67,7 @@
67
67
  {
68
68
  "id": "oxfmt",
69
69
  "name": "oxfmt",
70
- "version": "0.66.0",
70
+ "version": "0.68.0",
71
71
  "kind": "tool",
72
72
  "delivery": [
73
73
  "dependency"
@@ -100,7 +100,7 @@
100
100
  "id": "vite-task",
101
101
  "name": "vite-task",
102
102
  "revision": "d05b1dcdbaabaa69643ee0b89cebe3cd390957e9",
103
- "builtAt": "2026-09-08T13:14:20Z",
103
+ "builtAt": "2026-09-18T02:37:51Z",
104
104
  "kind": "tool",
105
105
  "delivery": [
106
106
  "compiled"
@@ -110,7 +110,7 @@
110
110
  {
111
111
  "id": "oxc",
112
112
  "name": "oxc",
113
- "version": "0.148.0",
113
+ "version": "0.150.0",
114
114
  "kind": "engine",
115
115
  "delivery": [
116
116
  "compiled"
@@ -1,6 +1,6 @@
1
- import { p as createBaseUrlTsconfigFixArgs, t as BASEURL_TSCONFIG_FIX_PACKAGE } from "./constants-0IAVgpox.js";
1
+ import { p as createBaseUrlTsconfigFixArgs, t as BASEURL_TSCONFIG_FIX_PACKAGE } from "./constants-C2dTOTe-.js";
2
2
  import { c as parse, o as applyEdits, s as modify } from "./json-cULBl7Pi.js";
3
- import { S as log, b as confirm, k as isCancel, t as cancelAndExit } from "./prompts-CtzEgFY-.js";
3
+ import { S as log, b as confirm, k as isCancel, t as cancelAndExit } from "./prompts-k14KgthC.js";
4
4
  import { n as runCommandSilently } from "./command-CguLh2KL.js";
5
5
  import path from "node:path";
6
6
  import { styleText } from "node:util";
@@ -1,2 +1,2 @@
1
- import { a as hasBaseUrlInTsconfig, i as fixBaseUrlInTsconfig } from "./tsconfig-CUggNuJR.js";
1
+ import { a as hasBaseUrlInTsconfig, i as fixBaseUrlInTsconfig } from "./tsconfig-C3h9CVTA.js";
2
2
  export { fixBaseUrlInTsconfig, hasBaseUrlInTsconfig };
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { t as renderCliDoc } from "./help-BmKpeOP9.js";
2
2
  import { i as log, o as printHeader, t as accent } from "./terminal-MKGAuy-p.js";
3
- import { _ as version } from "./constants-0IAVgpox.js";
4
- import { i as hasVitePlusDependency, n as detectPackageMetadata } from "./package-BZz2Ij68.js";
3
+ import { _ as version } from "./constants-C2dTOTe-.js";
4
+ import { i as hasVitePlusDependency, n as detectPackageMetadata } from "./package-CHH8jWan.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
7
7
  //#region src/version.ts
package/dist/versions.js CHANGED
@@ -1,9 +1,9 @@
1
1
  export const versions = {
2
- "vite": "8.2.2",
3
- "rolldown": "1.2.7",
2
+ "vite": "8.3.0",
3
+ "rolldown": "1.2.9",
4
4
  "vitest": "4.1.11",
5
- "oxfmt": "0.66.0",
6
- "oxlint": "1.81.0",
5
+ "oxfmt": "0.68.0",
6
+ "oxlint": "1.83.0",
7
7
  "oxlint-tsgolint": "7.0.2001",
8
8
  "tsdown": "0.23.0"
9
9
  };
@@ -1,6 +1,6 @@
1
1
  # Format Config
2
2
 
3
- `vp fmt` and `vp check` read Oxfmt settings from the `fmt` block in `vite.config.ts`. See [Oxfmt's configuration](https://oxc.rs/docs/guide/usage/formatter/config.html) for details.
3
+ `vp fmt` and `vp check` read Oxfmt settings from the `fmt` block in the root `vite.config.ts`. See [Oxfmt's configuration](https://oxc.rs/docs/guide/usage/formatter/config.html) for details.
4
4
 
5
5
  ## Example
6
6
 
@@ -17,4 +17,6 @@ export default defineConfig({
17
17
  });
18
18
  ```
19
19
 
20
- For package-specific formatting settings in a workspace, use [`fmt.overrides`](/guide/monorepo#format-overrides) from the root `vite.config.ts`.
20
+ For file- or package-specific formatting settings, use [`fmt.overrides`](/guide/monorepo#format-overrides) from the root `vite.config.ts`.
21
+
22
+ Vite+ does not currently support nested format configuration. See [troubleshooting](/guide/troubleshooting#nested-lint-or-format-config-is-not-applied) for details and how to give feedback on future support.
@@ -1,6 +1,6 @@
1
1
  # Lint Config
2
2
 
3
- `vp lint` and `vp check` read Oxlint settings from the `lint` block in `vite.config.ts`. See [Oxlint's configuration](https://oxc.rs/docs/guide/usage/linter/config.html) for details.
3
+ `vp lint` and `vp check` read Oxlint settings from the `lint` block in the root `vite.config.ts`. See [Oxlint's configuration](https://oxc.rs/docs/guide/usage/linter/config.html) for details.
4
4
 
5
5
  ## Example
6
6
 
@@ -23,4 +23,6 @@ export default defineConfig({
23
23
 
24
24
  We recommend enabling both `options.typeAware` and `options.typeCheck` so `vp lint` and `vp check` can use the full type-aware path.
25
25
 
26
- For package-specific lint rules in a workspace, use [`lint.overrides`](/guide/monorepo#root-config-with-overrides) from the root `vite.config.ts`.
26
+ For file- or package-specific lint rules, use [`lint.overrides`](/guide/monorepo#root-config-with-overrides) from the root `vite.config.ts`.
27
+
28
+ Vite+ does not currently support nested lint configuration. See [troubleshooting](/guide/troubleshooting#nested-lint-or-format-config-is-not-applied) for details and how to give feedback on future support.
@@ -1,7 +1,6 @@
1
1
  # Staged Config
2
2
 
3
- `vp staged` reads staged-file rules from the `staged` block in `vite.config.ts`. See the
4
- [Commit hooks guide](/guide/commit-hooks).
3
+ `vp staged` reads staged-file rules from the `staged` block in `vite.config.ts`. See the [Commit hooks guide](/guide/commit-hooks).
5
4
 
6
5
  ## Example
7
6
 
package/docs/guide/ci.md CHANGED
@@ -10,37 +10,7 @@ You can use `voidzero-dev/setup-vp` to use Vite+ in CI environments.
10
10
 
11
11
  Set `<setup-vp-version>` in each example to an exact version from the [`setup-vp` releases page](https://github.com/voidzero-dev/setup-vp/releases). You can use a commit SHA instead. Do not use the `v1` tag. The `v1` tag no longer receives updates.
12
12
 
13
- Run `vp migrate` to replace exact `voidzero-dev/setup-vp@v1` references in
14
- GitHub Actions workflows and composite actions under `.github` with the latest
15
- exact release known to your Vite+ version. Existing exact versions and commit
16
- SHAs remain unchanged.
17
-
18
- ### Automatic Version Updates
19
-
20
- Dependabot and Renovate can update exact versions in GitHub Actions workflows.
21
-
22
- To use [Dependabot version updates](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates), add a `github-actions` entry to `.github/dependabot.yml`:
23
-
24
- ```yaml [.github/dependabot.yml]
25
- version: 2
26
- updates:
27
- - package-ecosystem: github-actions
28
- directory: /
29
- schedule:
30
- interval: weekly
31
- ```
32
-
33
- Dependabot checks `uses:` entries in `.github/workflows` each week.
34
-
35
- [Renovate's GitHub Actions manager](https://docs.renovatebot.com/modules/manager/github-actions/) detects `uses:` entries by default. You do not need a package rule for `setup-vp`.
36
-
37
- When you use a commit SHA, add the exact release tag in a comment. Renovate uses the comment to find updates:
38
-
39
- ```yaml
40
- - uses: voidzero-dev/setup-vp@<commit-sha> # <setup-vp-version>
41
- ```
42
-
43
- These settings apply only to GitHub Actions workflows. For GitLab CI/CD and Azure Pipelines, update both version values together.
13
+ Run `vp migrate` to replace exact `voidzero-dev/setup-vp@v1` references in GitHub Actions workflows and composite actions under `.github` with the latest exact release known to your Vite+ version. Existing exact versions and commit SHAs remain unchanged.
44
14
 
45
15
  ## GitHub Actions
46
16
 
@@ -125,6 +95,33 @@ The Azure Pipelines template supports Microsoft-hosted Linux, macOS, and Windows
125
95
 
126
96
  For advanced configuration and the complete parameter reference, see the [`setup-vp` Azure Pipelines documentation](https://github.com/voidzero-dev/setup-vp#azure-pipelines).
127
97
 
98
+ ## Automatic Version Updates
99
+
100
+ Dependabot and Renovate can update exact versions in GitHub Actions workflows.
101
+
102
+ To use [Dependabot version updates](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates), add a `github-actions` entry to `.github/dependabot.yml`:
103
+
104
+ ```yaml [.github/dependabot.yml]
105
+ version: 2
106
+ updates:
107
+ - package-ecosystem: github-actions
108
+ directory: /
109
+ schedule:
110
+ interval: weekly
111
+ ```
112
+
113
+ Dependabot checks `uses:` entries in `.github/workflows` each week.
114
+
115
+ [Renovate's GitHub Actions manager](https://docs.renovatebot.com/modules/manager/github-actions/) detects `uses:` entries by default. You do not need a package rule for `setup-vp`.
116
+
117
+ When you use a commit SHA, add the exact release tag in a comment. Renovate uses the comment to find updates:
118
+
119
+ ```yaml
120
+ - uses: voidzero-dev/setup-vp@<commit-sha> # <setup-vp-version>
121
+ ```
122
+
123
+ These settings apply only to GitHub Actions workflows. For GitLab CI/CD and Azure Pipelines, update both version values together.
124
+
128
125
  ## Simplifying Existing Workflows
129
126
 
130
127
  If you are migrating an existing GitHub Actions workflow, you can often replace large blocks of Node, package-manager, and cache setup with a single `setup-vp` step.