vite-plus 1.3.0 → 1.5.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.
Files changed (106) hide show
  1. package/AGENTS.md +4 -0
  2. package/LICENSE +1 -878
  3. package/README.md +1 -1
  4. package/bin/vpx +9 -0
  5. package/binding/index.cjs +59 -54
  6. package/binding/index.d.cts +159 -2
  7. package/dist/{agent-97KmGCyL.js → agent-DkQD3xqe.js} +5 -7
  8. package/dist/bin.js +35 -34
  9. package/dist/{cli-parse-DHE8NrBU.js → cli-parse-aeUeFDlC.js} +2 -3
  10. package/dist/command-TjS_6y9O.js +1 -0
  11. package/dist/{command-CdMBoZFD.js → command-rY79K5NI.js} +28 -30
  12. package/dist/{comparison-CmVirWIW-DUGaiYqF.js → comparison-CmVirWIW-UlEf2maz.js} +1 -2
  13. package/dist/config/bin.js +8 -10
  14. package/dist/{constants-DR55DpRm.js → constants-D2P2aVKb.js} +8 -6
  15. package/dist/create/bin.d.ts +4 -8
  16. package/dist/create/bin.js +151 -120
  17. package/dist/{define-config-Bexdd6RZ.d.ts → define-config-BrvHRi-G.d.ts} +31 -13
  18. package/dist/{define-config-BxDc_9BK.cjs → define-config-CwtQqYC1.cjs} +41 -14
  19. package/dist/{define-config-CvE5pHqB.js → define-config-wR57OZG_.js} +34 -12
  20. package/dist/define-config.cjs +2 -1
  21. package/dist/define-config.d.ts +2 -2
  22. package/dist/define-config.js +1 -1
  23. package/dist/{dist-DIpm7mot.js → dist-Bs0SObNC.js} +73 -145
  24. package/dist/{dist-Cqz8OtiO.js → dist-CdkMvIiQ.js} +11 -5
  25. package/dist/dist-zDZV5eEc.js +3 -0
  26. package/dist/{documentation-DqcZSthV.js → documentation-cv_y0Auv.js} +1 -2
  27. package/dist/{editor-CtJGQP7C.js → editor-aOy1T15H.js} +2735 -5072
  28. package/dist/{help-BmKpeOP9.js → help-B03t_iQ4.js} +1 -2
  29. package/dist/hooks/bin.js +4 -5
  30. package/dist/{hooks-DhwsWb46.js → hooks-w_e2whkQ.js} +45 -25
  31. package/dist/index.cjs +5 -5
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.js +2 -2
  34. package/dist/{json-JP24qHUF.js → json-kl84kDyH.js} +9 -18
  35. package/dist/lint-plugins.cjs +1 -1
  36. package/dist/migration/bin.js +1782 -256
  37. package/dist/migration/compat/worker.js +4 -6
  38. package/dist/{oxlint-plugin-config-BIzrO2y2.js → oxlint-plugin-config-CHsI_zKo.js} +3 -4
  39. package/dist/oxlint-plugin.d.ts +0 -2
  40. package/dist/oxlint-plugin.js +33 -9
  41. package/dist/{pack-BK38MLVZ.d.ts → pack-ARPFMefW.d.ts} +0 -2
  42. package/dist/pack-bin.d.ts +1 -3
  43. package/dist/pack-bin.js +4 -5
  44. package/dist/pack.d.ts +1 -1
  45. package/dist/{package-CQDXTm6j.js → package-DfFo6-E-.js} +10 -95
  46. package/dist/{package-overrides-D1RcXSFl.js → package-overrides-Ci8GXouY.js} +5 -8
  47. package/dist/picomatch-DEUoj81q.js +1916 -0
  48. package/dist/{prompts-1xNz_ne0.js → prompts-C7DI63WP.js} +30 -50
  49. package/dist/{protocol-D99W10Qi.js → protocol-CkNmY-Mr.js} +1 -2
  50. package/dist/register.d.ts +1 -0
  51. package/dist/register.js +12 -0
  52. package/dist/{report-NhQk8VHb.js → report-BEdpIQvC.js} +4 -2
  53. package/dist/resolve-vite-config-33bzSaeT.js +1 -0
  54. package/dist/{resolve-vite-config-BVr1SUNg.js → resolve-vite-config-Cx3cnVVI.js} +9 -25
  55. package/dist/{rolldown-runtime-kJ_i4yPo.js → rolldown-runtime-DegdyBIC.js} +1 -2
  56. package/dist/script-esm-hooks.d.ts +11 -0
  57. package/dist/script-esm-hooks.js +27 -0
  58. package/dist/script-hooks-9Fof5UMY.js +176 -0
  59. package/dist/script-preload.cjs +491 -0
  60. package/dist/script-register.d.ts +1 -0
  61. package/dist/script-register.js +27 -0
  62. package/dist/script-watch.d.ts +1 -0
  63. package/dist/script-watch.js +2002 -0
  64. package/dist/staged/bin.js +53 -2011
  65. package/dist/sync-versions/bin.js +26 -48
  66. package/dist/sync-versions/bin.mjs +109 -217
  67. package/dist/{terminal-MKGAuy-p.js → terminal-BcuPUy-j.js} +1 -2
  68. package/dist/toolchain.js +38 -12
  69. package/dist/toolchain.json +38 -12
  70. package/dist/{tsconfig-zWgHiQ3X.js → tsconfig-BE3Wj9OX.js} +1 -1
  71. package/dist/{tsconfig-BZu7kl-x.js → tsconfig-shNmmCE_.js} +8 -10
  72. package/dist/version.d.ts +1 -3
  73. package/dist/version.js +5 -6
  74. package/dist/versions.js +7 -7
  75. package/dist/{vitest-ecosystem-BU0AqZq-.js → vitest-ecosystem-BeEYz-qF.js} +1 -2
  76. package/dist/{vitest-v5-entry-points-DthU1e_O.js → vitest-v5-entry-points-NyJsFeux.js} +1 -2
  77. package/dist/vpx-bin.d.ts +1 -0
  78. package/dist/vpx-bin.js +232 -0
  79. package/dist/vpx-script-EXgV5QOf.js +434 -0
  80. package/docs/config/check.md +2 -0
  81. package/docs/config/fmt.md +1 -1
  82. package/docs/config/lint.md +1 -1
  83. package/docs/config/run.md +10 -2
  84. package/docs/config/staged.md +1 -1
  85. package/docs/guide/check.md +6 -1
  86. package/docs/guide/ci.md +13 -3
  87. package/docs/guide/create.md +1 -1
  88. package/docs/guide/env.md +11 -4
  89. package/docs/guide/global-cli.md +59 -3
  90. package/docs/guide/homebrew.md +127 -0
  91. package/docs/guide/ide-integration.md +1 -3
  92. package/docs/guide/implode.md +5 -3
  93. package/docs/guide/local-cli.md +21 -0
  94. package/docs/guide/migrate-rules.md +120 -18
  95. package/docs/guide/migrate.md +9 -9
  96. package/docs/guide/package-management.md +1 -1
  97. package/docs/guide/run.md +23 -1
  98. package/docs/guide/test.md +1 -1
  99. package/docs/guide/troubleshooting.md +1 -1
  100. package/docs/guide/upgrade.md +12 -6
  101. package/docs/guide/vitest-v5.md +2 -2
  102. package/docs/guide/vpx.md +210 -9
  103. package/package.json +43 -34
  104. package/dist/command-DVTILtS-.js +0 -1
  105. package/dist/dist-Dhu07wmN.js +0 -3
  106. package/dist/resolve-vite-config-7WDtXO4G.js +0 -1
@@ -1278,8 +1278,8 @@ export interface ModuleRunnerTransformResult {
1278
1278
  * This will be set if {@link TransformOptions#sourcemap} is `true`.
1279
1279
  */
1280
1280
  map?: SourceMap;
1281
- deps: Array<string>;
1282
- dynamicDeps: Array<string>;
1281
+ deps: string[];
1282
+ dynamicDeps: string[];
1283
1283
  /**
1284
1284
  * Parse and transformation errors.
1285
1285
  *
@@ -1669,6 +1669,73 @@ export interface TypeScriptOptions {
1669
1669
  rewriteImportExtensions?: 'rewrite' | 'remove' | boolean;
1670
1670
  }
1671
1671
 
1672
+ /**
1673
+ * The selected tsconfig and its original source, sent to an asynchronous loader.
1674
+ * `None` selects discovery explicitly, without consulting the receiving thread's env.
1675
+ */
1676
+ export interface FrozenTsconfig {
1677
+ path?: string;
1678
+ source?: string;
1679
+ }
1680
+
1681
+ export interface LoadContext {
1682
+ /** Export conditions of the relevant `package.json` */
1683
+ conditions?: Array<string>;
1684
+ /**
1685
+ * The format optionally supplied by the `resolve` hook chain. Node.js passes it as
1686
+ * `undefined`, not `null`, when the chain reported none — a `.node` or `.wasm` file
1687
+ * resolved without its flag, any extension Node.js does not know — and a required
1688
+ * field would reject the whole context with "Missing field `format`" instead of
1689
+ * letting Node.js raise its own `ERR_UNKNOWN_FILE_EXTENSION`.
1690
+ */
1691
+ format?: string | null;
1692
+ /** An object whose key-value pairs represent the assertions for the module to import */
1693
+ importAttributes: Record<string, string>;
1694
+ }
1695
+
1696
+ export interface LoadFnOutput {
1697
+ format: string;
1698
+ source?: string | Uint8Array | Buffer | null;
1699
+ responseURL?: string;
1700
+ }
1701
+
1702
+ /** The code `transformModuleRunner` hands to `@oxc-node/core/importer`. */
1703
+ export interface ModuleRunnerOutput {
1704
+ code: string;
1705
+ /** The source map as a JSON string */
1706
+ map?: string;
1707
+ /**
1708
+ * The file is an ES module. Its imports, exports and `import.meta` are calls into
1709
+ * the runner (`__vite_ssr_import__` and friends); a CommonJS file keeps `require`,
1710
+ * `module` and `exports`, and only its `import()` calls into the runner.
1711
+ */
1712
+ esm: boolean;
1713
+ /**
1714
+ * The ES module awaits at its top level, so `require()` of it is
1715
+ * `ERR_REQUIRE_ASYNC_MODULE`.
1716
+ */
1717
+ topLevelAwait: boolean;
1718
+ }
1719
+
1720
+ export interface OxcResolveOptions {
1721
+ getCurrentDirectory?: () => string;
1722
+ }
1723
+
1724
+ export interface ResolveContext {
1725
+ /** Export conditions of the relevant `package.json` */
1726
+ conditions: Array<string>;
1727
+ /** An object whose key-value pairs represent the assertions for the module to import */
1728
+ importAttributes: Record<string, string>;
1729
+ parentURL?: string;
1730
+ }
1731
+
1732
+ export interface ResolveFnOutput {
1733
+ format?: string | null;
1734
+ shortCircuit?: boolean;
1735
+ url: string;
1736
+ importAttributes?: Record<string, string> | null;
1737
+ }
1738
+
1672
1739
  export declare class BindingBundleEndEventData {
1673
1740
  output: string;
1674
1741
  duration: number;
@@ -1951,6 +2018,12 @@ export declare class BindingOutputChunk {
1951
2018
  getImports(): Array<string>;
1952
2019
  getDynamicImports(): Array<string>;
1953
2020
  getCode(): string;
2021
+ /**
2022
+ * Identity of the shared chunk data behind this object. Two `BindingOutputChunk` objects with the same
2023
+ * identity share the same data, so a JavaScript string made from `getCode()` of one is valid for the other.
2024
+ * The identity is the address of that data. It stays unique while a `BindingOutputChunk` keeps the data alive.
2025
+ */
2026
+ getCodeIdentity(): number;
1954
2027
  getMap(): string | null;
1955
2028
  getSourcemapFileName(): string | null;
1956
2029
  getPreliminaryFileName(): string;
@@ -2000,6 +2073,8 @@ export declare class BindingRenderedChunkMeta {
2000
2073
 
2001
2074
  export declare class BindingRenderedModule {
2002
2075
  get code(): string | null;
2076
+ /** `code.length` without materializing `code`. */
2077
+ get renderedLength(): number;
2003
2078
  get renderedExports(): Array<string>;
2004
2079
  }
2005
2080
 
@@ -2256,6 +2331,12 @@ export interface BindingDevOptions {
2256
2331
 
2257
2332
  export interface BindingDevtoolsOptions {
2258
2333
  sessionId?: string;
2334
+ /**
2335
+ * `"full"` (default): write JSON-lines devtools logs. `"report"`: aggregate the same
2336
+ * event stream in-memory and emit an agent-readable report (`metrics.json` + markdown)
2337
+ * under `node_modules/.rolldown/report/<output dir>` instead.
2338
+ */
2339
+ mode?: 'full' | 'report';
2259
2340
  }
2260
2341
 
2261
2342
  export interface BindingDevWatchOptions {
@@ -3316,6 +3397,7 @@ export interface BindingViteResolvePluginConfig {
3316
3397
  tsconfig?: string;
3317
3398
  environmentConsumer: string;
3318
3399
  environmentName: string;
3400
+ convertExternalRequire?: boolean;
3319
3401
  builtins: Array<BindingStringOrRegex>;
3320
3402
  external: true | string[];
3321
3403
  noExternal: true | Array<string | RegExp>;
@@ -3341,6 +3423,8 @@ export interface BindingViteResolvePluginConfig {
3341
3423
 
3342
3424
  export interface BindingViteResolvePluginResolveOptions {
3343
3425
  isBuild: boolean;
3426
+ /** Defaults to `isBuild`. */
3427
+ isBundled?: boolean;
3344
3428
  isProduction: boolean;
3345
3429
  asSrc: boolean;
3346
3430
  preferRelative: boolean;
@@ -3696,6 +3780,13 @@ export interface DownloadPackageManagerResult {
3696
3780
  /** Re-enable blocking stdio after Node.js has initialized its lazy standard streams. */
3697
3781
  export declare function ensureBlockingStdio(): void;
3698
3782
 
3783
+ /**
3784
+ * Find the monorepo root containing `cwd` with the same rules as `vp run` and `vp install`.
3785
+ *
3786
+ * Returns `null` when `cwd` is not inside a pnpm or `package.json` workspace.
3787
+ */
3788
+ export declare function findMonorepoRoot(cwd: string): string | null;
3789
+
3699
3790
  /**
3700
3791
  * Resolved on-disk category roots from [`vp_shared::EnvConfig`].
3701
3792
  *
@@ -3734,6 +3825,13 @@ export interface JsCommandResolvedResult {
3734
3825
  envs: Record<string, string>;
3735
3826
  }
3736
3827
 
3828
+ /** A literal argument with its original JavaScript UTF-16 source range. */
3829
+ export interface LiteralCommandToken {
3830
+ value: string;
3831
+ start: number;
3832
+ end: number;
3833
+ }
3834
+
3737
3835
  /**
3738
3836
  * Merge JSON configuration file into vite config file
3739
3837
  *
@@ -3842,6 +3940,16 @@ export type ParseHooksArgsOutcome =
3842
3940
  | { status: 'exit'; code: number }
3843
3941
  | { status: 'error'; error: CliParseError };
3844
3942
 
3943
+ /**
3944
+ * Read simple literal commands, optionally separated by `&&`, `||`, or `;`.
3945
+ * Returns null for unsupported syntax. Assignments and wrappers stay in argv;
3946
+ * callers must decide whether a command is safe to rewrite.
3947
+ */
3948
+ export declare function parseLiteralCommands(
3949
+ source: string,
3950
+ allowLists: boolean,
3951
+ ): Array<Array<LiteralCommandToken>> | null;
3952
+
3845
3953
  export declare function parseMigrateArgs(argv: Array<string>): ParseMigrateArgsOutcome;
3846
3954
 
3847
3955
  export type ParseMigrateArgsOutcome =
@@ -3872,6 +3980,12 @@ export declare function removeConfigKey(
3872
3980
  configKey: string,
3873
3981
  ): MergeJsonConfigResult;
3874
3982
 
3983
+ /** Resolve the `Authorization` header value npm would send to `url` from the npm config at `cwd`. */
3984
+ export declare function resolveNpmAuthorization(cwd: string, url: string): string | null;
3985
+
3986
+ /** Resolve the npm registry for packages in `scope` (without `@`) from the npm config at `cwd`. */
3987
+ export declare function resolveNpmRegistry(cwd: string, scope?: string | undefined | null): string;
3988
+
3875
3989
  /**
3876
3990
  * Rewrite ESLint scripts: rename `eslint` → `vp lint` and strip ESLint-only flags.
3877
3991
  *
@@ -4132,3 +4246,46 @@ export interface VpDirsJs {
4132
4246
  * `vite-plus` when needed.
4133
4247
  */
4134
4248
  export declare function wrapLazyPlugins(viteConfigPath: string): MergeJsonConfigResult;
4249
+
4250
+ export declare namespace oxcNode {
4251
+ export class OxcTransformer {
4252
+ constructor(cwd?: string | undefined | null, helperModuleName?: string | undefined | null);
4253
+ transform(path: string, source: string | Uint8Array): oxcNode.TransformOutput;
4254
+ }
4255
+ export function createResolve(
4256
+ specifier: string,
4257
+ context: ResolveContext,
4258
+ nextResolve: (
4259
+ arg0: string,
4260
+ arg1?: ResolveContext | undefined | null,
4261
+ ) => ResolveFnOutput | Promise<ResolveFnOutput>,
4262
+ ): ResolveFnOutput | Promise<ResolveFnOutput>;
4263
+ export function enableWatchReport(): void;
4264
+ export function freezeTransformDeps(): string;
4265
+ /** Freeze the effective config before registering the off-thread ESM hooks. */
4266
+ export function freezeTsconfig(cwd: string): FrozenTsconfig;
4267
+ /** Apply a frozen selection, including discovery without the receiving thread's env. */
4268
+ export function initializeLoader(
4269
+ path?: string | undefined | null,
4270
+ source?: string | undefined | null,
4271
+ ): void;
4272
+ export function load(
4273
+ url: string,
4274
+ context: LoadContext,
4275
+ nextLoad: (
4276
+ arg0: string,
4277
+ arg1?: LoadContext | undefined | null,
4278
+ ) => LoadFnOutput | Promise<LoadFnOutput>,
4279
+ helperModuleName?: string | undefined | null,
4280
+ ): LoadFnOutput | Promise<LoadFnOutput>;
4281
+ export function setTransformDeps(mode?: string | undefined | null): void;
4282
+ export function setTsconfigPath(path?: string | undefined | null): void;
4283
+ export function takeWatchDependencies(): Array<string>;
4284
+ /** A file transformed for the CommonJS loader. */
4285
+ export interface TransformOutput {
4286
+ source: string;
4287
+ /** The source map as a JSON string. */
4288
+ sourceMap?: string;
4289
+ }
4290
+ export function transformsDep(path: string): boolean;
4291
+ }
@@ -1,11 +1,11 @@
1
- import { n as rewriteDocumentationLinks } from "./documentation-DqcZSthV.js";
2
- import { a as SETUP_VP_VERSION } from "./constants-DR55DpRm.js";
3
- import { E as multiselect, M as isCancel, O as select, T as log } from "./prompts-1xNz_ne0.js";
1
+ import { E as multiselect, M as isCancel, O as select, T as log } from "./prompts-C7DI63WP.js";
2
+ import { a as SETUP_VP_VERSION } from "./constants-D2P2aVKb.js";
3
+ import { n as rewriteDocumentationLinks } from "./documentation-cv_y0Auv.js";
4
4
  import path from "node:path";
5
5
  import { styleText } from "node:util";
6
6
  import fs from "node:fs";
7
7
  import fsPromises from "node:fs/promises";
8
- //#region src/utils/path.ts
8
+ // src/utils/path.ts
9
9
  function findPkgRoot() {
10
10
  let dir = import.meta.dirname;
11
11
  while (dir !== path.dirname(dir)) {
@@ -20,8 +20,7 @@ const rulesDir = path.join(pkgRoot, "rules");
20
20
  function displayRelative(to, from = process.cwd()) {
21
21
  return path.relative(from, to).replaceAll("\\", "/");
22
22
  }
23
- //#endregion
24
- //#region src/utils/agent.ts
23
+ // src/utils/agent.ts
25
24
  const AGENTS = [
26
25
  {
27
26
  id: "agents",
@@ -414,5 +413,4 @@ function getMarkedRange(content, startMarker, endMarker) {
414
413
  end: endMarkerIndex + endMarker.length
415
414
  };
416
415
  }
417
- //#endregion
418
416
  export { selectAgentTargets as a, writeCopilotSetupWorkflow as c, templatesDir as d, selectAgentTargetPaths as i, displayRelative as l, detectAgentConflicts as n, updateExistingAgentInstructions as o, detectExistingAgentTargetPaths as r, writeAgentInstructions as s, COPILOT_AGENT_ID as t, rulesDir as u };
package/dist/bin.js CHANGED
@@ -1,16 +1,16 @@
1
- import { t as documentationUrl$1 } from "./documentation-DqcZSthV.js";
2
- import { t as renderCliDoc } from "./help-BmKpeOP9.js";
3
- import { c as warnMsg, i as log, n as errorMsg, o as printHeader, t as accent } from "./terminal-MKGAuy-p.js";
4
- import { g as resolveBundled, h as resolve$1, i as DEFAULT_ENVS, l as VITE_CONFIG_FILES, n as BASEURL_TSCONFIG_WARNING, r as CONFIG_METADATA_ENV, u as VITE_PLUS_NAME } from "./constants-DR55DpRm.js";
5
- import { r as createDefaultVitePlusLintConfig } from "./oxlint-plugin-config-BIzrO2y2.js";
6
- import { o as readNearestPackageJson } from "./package-CQDXTm6j.js";
7
- import { t as cac } from "./dist-Cqz8OtiO.js";
1
+ import { t as documentationUrl$1 } from "./documentation-cv_y0Auv.js";
2
+ import { t as renderCliDoc } from "./help-B03t_iQ4.js";
3
+ import { c as warnMsg, i as log, n as errorMsg, o as printHeader, t as accent } from "./terminal-BcuPUy-j.js";
4
+ import { i as createDefaultVitePlusLintConfig } from "./oxlint-plugin-config-CHsI_zKo.js";
5
+ import { g as resolveBundled, h as resolve$1, i as DEFAULT_ENVS, l as VITE_CONFIG_FILES, n as BASEURL_TSCONFIG_WARNING, r as CONFIG_METADATA_ENV, u as VITE_PLUS_NAME } from "./constants-D2P2aVKb.js";
6
+ import { o as readNearestPackageJson } from "./package-DfFo6-E-.js";
7
+ import { t as cac } from "./dist-CdkMvIiQ.js";
8
8
  import { createRequire } from "node:module";
9
9
  import path, { dirname, join, resolve } from "node:path";
10
10
  import { fileURLToPath } from "node:url";
11
11
  import { ensureBlockingStdio, hasConfigKey, mergeJsonConfig, run } from "../binding/index.js";
12
12
  import fs, { existsSync, readFileSync, realpathSync } from "node:fs";
13
- //#region src/help.ts
13
+ // src/help.ts
14
14
  const commandHelpDocs = {
15
15
  dev: {
16
16
  usage: "vp dev [ROOT] [OPTIONS]",
@@ -342,7 +342,7 @@ const commandHelpDocs = {
342
342
  },
343
343
  {
344
344
  label: "--api [port]",
345
- description: "Specify server port. Note if the port is already being used, Vite will automatically try the next available port so this may not be the actual port the server ends up listening on. If true will be set to 51204 or 63315 in browser mode. Use '--help --api' for more info."
345
+ description: "Specify server port. Note if the port is already being used, Vite will automatically try the next available port so this may not be the actual port the server ends up listening on. If true will be set to 51204 or 23315 in browser mode. Use '--help --api' for more info."
346
346
  },
347
347
  {
348
348
  label: "--silent [value]",
@@ -440,6 +440,14 @@ const commandHelpDocs = {
440
440
  label: "--changed [since]",
441
441
  description: "Run tests that are affected by the changed files (default: false)"
442
442
  },
443
+ {
444
+ label: "--sinceLastRun",
445
+ description: "Run tests with dependencies modified since their last run, plus tests that failed (default: false)"
446
+ },
447
+ {
448
+ label: "--lastFailed",
449
+ description: "Run only the tests that failed in the last run (default: false)"
450
+ },
443
451
  {
444
452
  label: "--sequence <options>",
445
453
  description: "Options for how tests should be sorted. Use '--help --sequence' for more info."
@@ -950,6 +958,10 @@ const commandHelpDocs = {
950
958
  label: "--quiet",
951
959
  description: "Disable reporting on warnings, only errors are reported"
952
960
  },
961
+ {
962
+ label: "--deny-warnings",
963
+ description: "Treat lint warnings as errors"
964
+ },
953
965
  {
954
966
  label: "--no-fmt",
955
967
  description: "Skip format check"
@@ -1095,7 +1107,7 @@ const commandHelpDocs = {
1095
1107
  },
1096
1108
  {
1097
1109
  label: "--env-file <file>",
1098
- description: "Load environment variables from a file, when used together with --env, variables in --env take precedence"
1110
+ description: "Load environment variables from a file, can be repeated"
1099
1111
  },
1100
1112
  {
1101
1113
  label: "--env-prefix <prefix>",
@@ -1362,8 +1374,7 @@ function maybePrintCommandHelp(args) {
1362
1374
  log(renderCliDoc(doc));
1363
1375
  return true;
1364
1376
  }
1365
- //#endregion
1366
- //#region src/resolve-fmt.ts
1377
+ // src/resolve-fmt.ts
1367
1378
  /**
1368
1379
  * Oxfmt tool resolver for the vite-plus CLI.
1369
1380
  *
@@ -1396,8 +1407,7 @@ async function fmt() {
1396
1407
  }
1397
1408
  };
1398
1409
  }
1399
- //#endregion
1400
- //#region src/init-config.ts
1410
+ // src/init-config.ts
1401
1411
  const INIT_COMMAND_SPECS = {
1402
1412
  lint: {
1403
1413
  configKey: "lint",
@@ -1468,7 +1478,7 @@ export default defineConfig({});
1468
1478
  return viteConfigPath;
1469
1479
  }
1470
1480
  async function vpFmt(cwd, filePath) {
1471
- const { runCommandSilently } = await import("./command-DVTILtS-.js");
1481
+ const { runCommandSilently } = await import("./command-TjS_6y9O.js");
1472
1482
  const { binPath, envs } = await fmt();
1473
1483
  const result = await runCommandSilently({
1474
1484
  command: binPath,
@@ -1527,7 +1537,7 @@ async function applyToolInitConfigToViteConfig(command, args, projectPath = proc
1527
1537
  }
1528
1538
  if (spec.configKey === "lint" && hasTriggerFlag(args, ["--init"])) {
1529
1539
  const lintInitConfigPath = path.join(projectPath, ".vite-plus-lint-init.oxlintrc.json");
1530
- const { fixBaseUrlInTsconfig, hasBaseUrlInTsconfig } = await import("./tsconfig-zWgHiQ3X.js");
1540
+ const { fixBaseUrlInTsconfig, hasBaseUrlInTsconfig } = await import("./tsconfig-BE3Wj9OX.js");
1531
1541
  await fixBaseUrlInTsconfig(projectPath);
1532
1542
  const hasBaseUrl = hasBaseUrlInTsconfig(projectPath);
1533
1543
  const initConfig = createDefaultVitePlusLintConfig({ includeTypeAwareDefaults: !hasBaseUrl });
@@ -1564,8 +1574,7 @@ async function applyToolInitConfigToViteConfig(command, args, projectPath = proc
1564
1574
  viteConfigPath
1565
1575
  };
1566
1576
  }
1567
- //#endregion
1568
- //#region src/resolve-doc.ts
1577
+ // src/resolve-doc.ts
1569
1578
  /**
1570
1579
  * VitePress tool resolver for the vite-plus CLI.
1571
1580
  *
@@ -1591,8 +1600,7 @@ async function doc() {
1591
1600
  envs: { ...DEFAULT_ENVS }
1592
1601
  };
1593
1602
  }
1594
- //#endregion
1595
- //#region src/utils/tsgolint-path.ts
1603
+ // src/utils/tsgolint-path.ts
1596
1604
  function resolveWindowsTsgolintExecutable(pathCandidates, options) {
1597
1605
  let oxlintTsgolintPath = pathCandidates.find((p) => options.exists(p)) ?? "";
1598
1606
  if (!oxlintTsgolintPath && options.getRealpathCandidates) try {
@@ -1621,8 +1629,7 @@ function resolveTsgolintExecutable(tsgolintBinPath, scriptUrl) {
1621
1629
  }
1622
1630
  });
1623
1631
  }
1624
- //#endregion
1625
- //#region src/resolve-lint.ts
1632
+ // src/resolve-lint.ts
1626
1633
  /**
1627
1634
  * Oxlint tool resolver for the vite-plus CLI.
1628
1635
  *
@@ -1659,8 +1666,7 @@ async function lint() {
1659
1666
  }
1660
1667
  };
1661
1668
  }
1662
- //#endregion
1663
- //#region src/resolve-core.ts
1669
+ // src/resolve-core.ts
1664
1670
  const CORE_PACKAGE_NAME = "@voidzero-dev/vite-plus-core";
1665
1671
  function checkCoreVersion(packageJsonPath, expectedVersion) {
1666
1672
  const pkg = JSON.parse(readFileSync(packageJsonPath, "utf8"));
@@ -1697,8 +1703,7 @@ function resolveCore(subpath = "", cwd = process.cwd(), modulePath = import.meta
1697
1703
  checkProjectCoreVersion(cwd, corePackageJsonPath, expectedVersion);
1698
1704
  return cliRequire.resolve(`vite${subpath}`);
1699
1705
  }
1700
- //#endregion
1701
- //#region src/resolve-pack.ts
1706
+ // src/resolve-pack.ts
1702
1707
  /** Validate the target project's core alias before starting the bundled pack entry. */
1703
1708
  async function pack(err, { cwd }) {
1704
1709
  if (err) throw err;
@@ -1708,8 +1713,7 @@ async function pack(err, { cwd }) {
1708
1713
  envs: { ...DEFAULT_ENVS }
1709
1714
  };
1710
1715
  }
1711
- //#endregion
1712
- //#region src/resolve-test.ts
1716
+ // src/resolve-test.ts
1713
1717
  /**
1714
1718
  * Vitest tool resolver for the vite-plus CLI.
1715
1719
  *
@@ -1750,8 +1754,7 @@ async function test() {
1750
1754
  } : { ...DEFAULT_ENVS }
1751
1755
  };
1752
1756
  }
1753
- //#endregion
1754
- //#region src/resolve-vite.ts
1757
+ // src/resolve-vite.ts
1755
1758
  function resolveViteRoot({ cwd, args }) {
1756
1759
  const cli = cac();
1757
1760
  const command = cli.command("[root]").allowUnknownOptions();
@@ -1787,8 +1790,7 @@ async function vite(err, context) {
1787
1790
  envs
1788
1791
  };
1789
1792
  }
1790
- //#endregion
1791
- //#region src/bin.ts
1793
+ // src/bin.ts
1792
1794
  /**
1793
1795
  * Unified entry point for both the local CLI (via bin/vp) and the global CLI (via Rust vp binary).
1794
1796
  *
@@ -1873,7 +1875,7 @@ else try {
1873
1875
  toolchainManifestPath: path.join(cliDistDir, "toolchain.json"),
1874
1876
  vitePlusPackagePath,
1875
1877
  resolveUniversalViteConfig: async (err, cwd) => {
1876
- const { resolveUniversalViteConfig } = await import("./resolve-vite-config-7WDtXO4G.js");
1878
+ const { resolveUniversalViteConfig } = await import("./resolve-vite-config-33bzSaeT.js");
1877
1879
  return resolveUniversalViteConfig(err, cwd);
1878
1880
  },
1879
1881
  nodeVersion: process.version,
@@ -1894,5 +1896,4 @@ else try {
1894
1896
  errorMsg(getErrorMessage(err));
1895
1897
  process.exit(1);
1896
1898
  }
1897
- //#endregion
1898
1899
  export {};
@@ -1,5 +1,5 @@
1
- import { n as errorMsg, o as printHeader } from "./terminal-MKGAuy-p.js";
2
- //#region src/utils/cli-parse.ts
1
+ import { n as errorMsg, o as printHeader } from "./terminal-BcuPUy-j.js";
2
+ // src/utils/cli-parse.ts
3
3
  function unwrapCliParseOutcome(outcome) {
4
4
  if (outcome.status === "exit") process.exit(outcome.code);
5
5
  if (outcome.status === "error") {
@@ -9,5 +9,4 @@ function unwrapCliParseOutcome(outcome) {
9
9
  }
10
10
  return outcome.value;
11
11
  }
12
- //#endregion
13
12
  export { unwrapCliParseOutcome as t };
@@ -0,0 +1 @@
1
+ export { i as runCommandSilently } from "./command-rY79K5NI.js";
@@ -1,6 +1,7 @@
1
- import { n as __require, r as __toESM, t as __commonJSMin } from "./rolldown-runtime-kJ_i4yPo.js";
1
+ import { n as __require, r as __toESM, t as __commonJSMin } from "./rolldown-runtime-DegdyBIC.js";
2
+ import { fileURLToPath } from "node:url";
2
3
  import { constants } from "node:os";
3
- //#region ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js
4
+ // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js
4
5
  var require_windows = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5
6
  module.exports = isexe;
6
7
  isexe.sync = sync;
@@ -29,8 +30,7 @@ var require_windows = /* @__PURE__ */ __commonJSMin(((exports, module) => {
29
30
  return checkStat(fs.statSync(path), path, options);
30
31
  }
31
32
  }));
32
- //#endregion
33
- //#region ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js
33
+ // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js
34
34
  var require_mode = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35
35
  module.exports = isexe;
36
36
  isexe.sync = sync;
@@ -59,8 +59,7 @@ var require_mode = /* @__PURE__ */ __commonJSMin(((exports, module) => {
59
59
  return mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0;
60
60
  }
61
61
  }));
62
- //#endregion
63
- //#region ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js
62
+ // ../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js
64
63
  var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
65
64
  __require("fs");
66
65
  var core;
@@ -101,8 +100,7 @@ var require_isexe = /* @__PURE__ */ __commonJSMin(((exports, module) => {
101
100
  }
102
101
  }
103
102
  }));
104
- //#endregion
105
- //#region ../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js
103
+ // ../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js
106
104
  var require_which = /* @__PURE__ */ __commonJSMin(((exports, module) => {
107
105
  const isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
108
106
  const path = __require("path");
@@ -179,8 +177,7 @@ var require_which = /* @__PURE__ */ __commonJSMin(((exports, module) => {
179
177
  module.exports = which;
180
178
  which.sync = whichSync;
181
179
  }));
182
- //#endregion
183
- //#region ../../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js
180
+ // ../../node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js
184
181
  var require_path_key = /* @__PURE__ */ __commonJSMin(((exports, module) => {
185
182
  const pathKey = (options = {}) => {
186
183
  const environment = options.env || process.env;
@@ -190,8 +187,7 @@ var require_path_key = /* @__PURE__ */ __commonJSMin(((exports, module) => {
190
187
  module.exports = pathKey;
191
188
  module.exports.default = pathKey;
192
189
  }));
193
- //#endregion
194
- //#region ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js
190
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js
195
191
  var require_resolveCommand = /* @__PURE__ */ __commonJSMin(((exports, module) => {
196
192
  const path = __require("path");
197
193
  const which = require_which();
@@ -221,8 +217,7 @@ var require_resolveCommand = /* @__PURE__ */ __commonJSMin(((exports, module) =>
221
217
  }
222
218
  module.exports = resolveCommand;
223
219
  }));
224
- //#endregion
225
- //#region ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js
220
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js
226
221
  var require_escape = /* @__PURE__ */ __commonJSMin(((exports, module) => {
227
222
  const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g;
228
223
  function escapeCommand(arg) {
@@ -241,13 +236,11 @@ var require_escape = /* @__PURE__ */ __commonJSMin(((exports, module) => {
241
236
  module.exports.command = escapeCommand;
242
237
  module.exports.argument = escapeArgument;
243
238
  }));
244
- //#endregion
245
- //#region ../../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js
239
+ // ../../node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js
246
240
  var require_shebang_regex = /* @__PURE__ */ __commonJSMin(((exports, module) => {
247
241
  module.exports = /^#!(.*)/;
248
242
  }));
249
- //#endregion
250
- //#region ../../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js
243
+ // ../../node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js
251
244
  var require_shebang_command = /* @__PURE__ */ __commonJSMin(((exports, module) => {
252
245
  const shebangRegex = require_shebang_regex();
253
246
  module.exports = (string = "") => {
@@ -259,8 +252,7 @@ var require_shebang_command = /* @__PURE__ */ __commonJSMin(((exports, module) =
259
252
  return argument ? `${binary} ${argument}` : binary;
260
253
  };
261
254
  }));
262
- //#endregion
263
- //#region ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js
255
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js
264
256
  var require_readShebang = /* @__PURE__ */ __commonJSMin(((exports, module) => {
265
257
  const fs = __require("fs");
266
258
  const shebangCommand = require_shebang_command();
@@ -277,8 +269,7 @@ var require_readShebang = /* @__PURE__ */ __commonJSMin(((exports, module) => {
277
269
  }
278
270
  module.exports = readShebang;
279
271
  }));
280
- //#endregion
281
- //#region ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js
272
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js
282
273
  var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
283
274
  const path = __require("path");
284
275
  const resolveCommand = require_resolveCommand();
@@ -338,8 +329,7 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
338
329
  }
339
330
  module.exports = parse;
340
331
  }));
341
- //#endregion
342
- //#region ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js
332
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js
343
333
  var require_enoent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
344
334
  const isWin = process.platform === "win32";
345
335
  function notFoundError(original, syscall) {
@@ -377,8 +367,7 @@ var require_enoent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
377
367
  notFoundError
378
368
  };
379
369
  }));
380
- //#endregion
381
- //#region ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js
370
+ // ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js
382
371
  var require_cross_spawn = /* @__PURE__ */ __commonJSMin(((exports, module) => {
383
372
  const cp = __require("child_process");
384
373
  const parse = require_parse();
@@ -401,9 +390,19 @@ var require_cross_spawn = /* @__PURE__ */ __commonJSMin(((exports, module) => {
401
390
  module.exports._parse = parse;
402
391
  module.exports._enoent = enoent;
403
392
  }));
404
- //#endregion
405
- //#region src/utils/command.ts
393
+ // src/utils/command.ts
406
394
  var import_cross_spawn = /* @__PURE__ */ __toESM(require_cross_spawn(), 1);
395
+ /** Run this CLI version even when a package-manager launcher does not expose `vp` on PATH. */
396
+ function getVpCommand(args, command = process.env.VP_CLI_BIN) {
397
+ if (command !== void 0) return {
398
+ command,
399
+ args
400
+ };
401
+ return {
402
+ command: process.execPath,
403
+ args: [fileURLToPath(import.meta.resolve("vite-plus/bin")), ...args]
404
+ };
405
+ }
407
406
  function exitCodeFromClose(code, signal) {
408
407
  if (code !== null) return code;
409
408
  const signalNumber = signal && constants.signals[signal];
@@ -467,5 +466,4 @@ async function runCommand(options) {
467
466
  });
468
467
  });
469
468
  }
470
- //#endregion
471
- export { runCommandSilently as n, require_cross_spawn as r, runCommand as t };
469
+ export { require_cross_spawn as a, runCommandSilently as i, getVpCommand as n, runCommand as r, exitCodeFromClose as t };
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.pnpm/verkit@0.5.0/node_modules/verkit/dist/comparison-CmVirWIW.js
1
+ // ../../node_modules/.pnpm/verkit@0.5.0/node_modules/verkit/dist/comparison-CmVirWIW.js
2
2
  const LETTER_DASH_NUMBER = "[a-zA-Z0-9-]";
3
3
  const NUMERIC_IDENTIFIER = String.raw`0|[1-9]\d*`;
4
4
  const NUMERIC_IDENTIFIER_LOOSE = String.raw`\d+`;
@@ -117,5 +117,4 @@ function isGreaterThanOrEqual(left, right, options = {}) {
117
117
  function isLessThanOrEqual(left, right, options = {}) {
118
118
  return compare(left, right, options) <= 0;
119
119
  }
120
- //#endregion
121
120
  export { isGreaterThanOrEqual as _, GREATER_LESS_THAN as a, safeRegex as b, LOOSE_PLAIN as c, XRANGE_PLAIN as d, XRANGE_PLAIN_LOOSE as f, formatComparableVersion as g, compareReversed as h, FULL_PLAIN as i, PRERELEASE as l, compareParsed as m, COERCE as n, LONE_CARET as o, compare as p, COERCE_FULL as r, LONE_TILDE as s, BUILD as t, PRERELEASE_LOOSE as u, isLessThanOrEqual as v, tryParse as x, parse as y };