vite-plus 0.1.21-alpha.1 → 0.1.21-alpha.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.
@@ -845,21 +845,11 @@ const S_STEP_ACTIVE = S_POINTER_ACTIVE;
845
845
  const S_STEP_CANCEL = unicodeOr("■", "x");
846
846
  const S_STEP_ERROR = unicodeOr("▲", "x");
847
847
  const S_STEP_SUBMIT = unicodeOr("◇", "o");
848
- unicodeOr("┌", "T");
849
848
  const S_BAR = unicodeOr("│", "|");
850
849
  const S_BAR_END = unicodeOr("└", "—");
851
- unicodeOr("┐", "T");
852
- unicodeOr("┘", "—");
853
850
  const S_CHECKBOX_ACTIVE = unicodeOr("◻", "[•]");
854
851
  const S_CHECKBOX_SELECTED = unicodeOr("◼", "[+]");
855
852
  const S_CHECKBOX_INACTIVE = unicodeOr("◻", "[ ]");
856
- unicodeOr("▪", "•");
857
- unicodeOr("─", "-");
858
- unicodeOr("╮", "+");
859
- unicodeOr("├", "+");
860
- unicodeOr("╯", "+");
861
- unicodeOr("╰", "+");
862
- unicodeOr("╭", "+");
863
853
  const S_INFO = unicodeOr("●", "•");
864
854
  const S_SUCCESS = unicodeOr("◆", "*");
865
855
  const S_WARN = unicodeOr("▲", "!");
@@ -1611,7 +1601,6 @@ const spinner = ({ indicator = "dots", onCancel, output = process.stdout, cancel
1611
1601
  }
1612
1602
  };
1613
1603
  };
1614
- unicodeOr("─", "-"), unicodeOr("━", "="), unicodeOr("█", "#");
1615
1604
  const computeLabel = (label, format) => {
1616
1605
  if (!label.includes("\n")) return format(label);
1617
1606
  return label.split("\n").map((line) => format(line)).join("\n");
@@ -3403,6 +3392,10 @@ const BROWSER_PROVIDER_PEER_DEPS = {
3403
3392
  "@vitest/browser-playwright": "playwright",
3404
3393
  "@vitest/browser-webdriverio": "webdriverio"
3405
3394
  };
3395
+ const PUBLIC_PEER_DEPENDENCY_FALLBACKS = {
3396
+ vite: "*",
3397
+ vitest: "*"
3398
+ };
3406
3399
  function warnMigration(message, report) {
3407
3400
  addMigrationWarning(report, message);
3408
3401
  if (!report) log.warn(message);
@@ -3811,8 +3804,11 @@ function rewriteStandaloneProject(projectPath, workspaceInfo, skipStagedMigratio
3811
3804
  const packageJsonPath = path.join(projectPath, "package.json");
3812
3805
  if (!fs.existsSync(packageJsonPath)) return;
3813
3806
  const packageManager = workspaceInfo.packageManager;
3807
+ const catalogDependencyResolver = createCatalogDependencyResolver(projectPath, packageManager);
3814
3808
  let extractedStagedConfig = null;
3815
3809
  let remainingPnpmOverrides;
3810
+ let shouldRewritePnpmWorkspaceYaml = false;
3811
+ let shouldAddPnpmWorkspaceVitePlusOverride = false;
3816
3812
  let usePnpmWorkspaceYaml = false;
3817
3813
  editJsonFile(packageJsonPath, (pkg) => {
3818
3814
  if (packageManager === PackageManager.yarn) pkg.resolutions = {
@@ -3826,8 +3822,8 @@ function rewriteStandaloneProject(projectPath, workspaceInfo, skipStagedMigratio
3826
3822
  else if (packageManager === PackageManager.pnpm) {
3827
3823
  usePnpmWorkspaceYaml = !pkg.pnpm;
3828
3824
  if (usePnpmWorkspaceYaml) {
3829
- rewritePnpmWorkspaceYaml(projectPath);
3830
- if (isForceOverrideMode()) migratePnpmOverridesToWorkspaceYaml(projectPath, { [VITE_PLUS_NAME]: VITE_PLUS_VERSION });
3825
+ shouldRewritePnpmWorkspaceYaml = true;
3826
+ shouldAddPnpmWorkspaceVitePlusOverride = isForceOverrideMode();
3831
3827
  }
3832
3828
  const overrideKeys = Object.keys(VITE_PLUS_OVERRIDE_PACKAGES);
3833
3829
  if (!usePnpmWorkspaceYaml) pkg.pnpm = {
@@ -3853,7 +3849,7 @@ function rewriteStandaloneProject(projectPath, workspaceInfo, skipStagedMigratio
3853
3849
  }
3854
3850
  for (const key of [...overrideKeys, ...REMOVE_PACKAGES]) if (pkg.resolutions?.[key]) delete pkg.resolutions[key];
3855
3851
  }
3856
- extractedStagedConfig = rewritePackageJson(pkg, packageManager, usePnpmWorkspaceYaml, skipStagedMigration);
3852
+ extractedStagedConfig = rewritePackageJson(pkg, packageManager, usePnpmWorkspaceYaml, skipStagedMigration, catalogDependencyResolver);
3857
3853
  if (!pkg.devDependencies?.["vite-plus"] || isForceOverrideMode()) {
3858
3854
  const version = usePnpmWorkspaceYaml && !VITE_PLUS_VERSION.startsWith("file:") ? "catalog:" : VITE_PLUS_VERSION;
3859
3855
  pkg.devDependencies = {
@@ -3863,7 +3859,9 @@ function rewriteStandaloneProject(projectPath, workspaceInfo, skipStagedMigratio
3863
3859
  }
3864
3860
  return pkg;
3865
3861
  });
3862
+ if (shouldRewritePnpmWorkspaceYaml) rewritePnpmWorkspaceYaml(projectPath);
3866
3863
  if (remainingPnpmOverrides) migratePnpmOverridesToWorkspaceYaml(projectPath, remainingPnpmOverrides);
3864
+ if (shouldAddPnpmWorkspaceVitePlusOverride) migratePnpmOverridesToWorkspaceYaml(projectPath, { [VITE_PLUS_NAME]: VITE_PLUS_VERSION });
3867
3865
  if (packageManager === PackageManager.yarn) rewriteYarnrcYml(projectPath);
3868
3866
  if (extractedStagedConfig) {
3869
3867
  if (mergeStagedConfigToViteConfig(projectPath, extractedStagedConfig, silent, report)) removeLintStagedFromPackageJson(packageJsonPath);
@@ -3882,11 +3880,12 @@ function rewriteStandaloneProject(projectPath, workspaceInfo, skipStagedMigratio
3882
3880
  * @param workspaceInfo - The workspace info
3883
3881
  */
3884
3882
  function rewriteMonorepo(workspaceInfo, skipStagedMigration, silent = false, report) {
3883
+ const catalogDependencyResolver = createCatalogDependencyResolver(workspaceInfo.rootDir, workspaceInfo.packageManager);
3885
3884
  if (workspaceInfo.packageManager === PackageManager.pnpm) rewritePnpmWorkspaceYaml(workspaceInfo.rootDir);
3886
3885
  else if (workspaceInfo.packageManager === PackageManager.yarn) rewriteYarnrcYml(workspaceInfo.rootDir);
3887
3886
  else if (workspaceInfo.packageManager === PackageManager.bun) rewriteBunCatalog(workspaceInfo.rootDir);
3888
- rewriteRootWorkspacePackageJson(workspaceInfo.rootDir, workspaceInfo.packageManager, skipStagedMigration);
3889
- for (const pkg of workspaceInfo.packages) rewriteMonorepoProject(path.join(workspaceInfo.rootDir, pkg.path), workspaceInfo.packageManager, skipStagedMigration, silent, report);
3887
+ rewriteRootWorkspacePackageJson(workspaceInfo.rootDir, workspaceInfo.packageManager, skipStagedMigration, catalogDependencyResolver);
3888
+ for (const pkg of workspaceInfo.packages) rewriteMonorepoProject(path.join(workspaceInfo.rootDir, pkg.path), workspaceInfo.packageManager, skipStagedMigration, silent, report, catalogDependencyResolver);
3890
3889
  if (!skipStagedMigration) rewriteLintStagedConfigFile(workspaceInfo.rootDir, report);
3891
3890
  cleanupDeprecatedTsconfigOptions(workspaceInfo.rootDir, silent, report);
3892
3891
  mergeViteConfigFiles(workspaceInfo.rootDir, silent, report);
@@ -3900,7 +3899,7 @@ function rewriteMonorepo(workspaceInfo, skipStagedMigration, silent = false, rep
3900
3899
  * Rewrite monorepo project to add vite-plus dependencies
3901
3900
  * @param projectPath - The path to the project
3902
3901
  */
3903
- function rewriteMonorepoProject(projectPath, packageManager, skipStagedMigration, silent = false, report) {
3902
+ function rewriteMonorepoProject(projectPath, packageManager, skipStagedMigration, silent = false, report, catalogDependencyResolver) {
3904
3903
  cleanupDeprecatedTsconfigOptions(projectPath, silent, report);
3905
3904
  mergeViteConfigFiles(projectPath, silent, report);
3906
3905
  mergeTsdownConfigFile(projectPath, silent, report);
@@ -3908,7 +3907,7 @@ function rewriteMonorepoProject(projectPath, packageManager, skipStagedMigration
3908
3907
  if (!fs.existsSync(packageJsonPath)) return;
3909
3908
  let extractedStagedConfig = null;
3910
3909
  editJsonFile(packageJsonPath, (pkg) => {
3911
- extractedStagedConfig = rewritePackageJson(pkg, packageManager, true, skipStagedMigration);
3910
+ extractedStagedConfig = rewritePackageJson(pkg, packageManager, true, skipStagedMigration, catalogDependencyResolver);
3912
3911
  return pkg;
3913
3912
  });
3914
3913
  if (extractedStagedConfig) {
@@ -3924,15 +3923,15 @@ function rewritePnpmWorkspaceYaml(projectPath) {
3924
3923
  if (!fs.existsSync(pnpmWorkspaceYamlPath)) fs.writeFileSync(pnpmWorkspaceYamlPath, "");
3925
3924
  editYamlFile(pnpmWorkspaceYamlPath, (doc) => {
3926
3925
  rewriteCatalog(doc);
3926
+ const overrides = doc.getIn(["overrides"]);
3927
3927
  for (const key of Object.keys(VITE_PLUS_OVERRIDE_PACKAGES)) {
3928
- let version = VITE_PLUS_OVERRIDE_PACKAGES[key];
3929
- if (!version.startsWith("file:")) version = "catalog:";
3928
+ const version = getCatalogDependencySpec(getYamlMapScalarStringValue(overrides, key), VITE_PLUS_OVERRIDE_PACKAGES[key], true);
3930
3929
  doc.setIn(["overrides", scalarString(key)], scalarString(version));
3931
3930
  }
3932
- const overrides = doc.getIn(["overrides"]);
3933
- for (const item of overrides.items) if (item.key.value.includes(">")) {
3931
+ const updatedOverrides = doc.getIn(["overrides"]);
3932
+ for (const item of updatedOverrides.items) if (item.key.value.includes(">")) {
3934
3933
  const splits = item.key.value.split(">");
3935
- if (splits[splits.length - 1].trim() === "vite") overrides.delete(item.key);
3934
+ if (splits[splits.length - 1].trim() === "vite") updatedOverrides.delete(item.key);
3936
3935
  }
3937
3936
  let allowAny = doc.getIn(["peerDependencyRules", "allowAny"]);
3938
3937
  if (!allowAny) allowAny = new import_dist.YAMLSeq();
@@ -3968,13 +3967,25 @@ function rewritePnpmWorkspaceYaml(projectPath) {
3968
3967
  * moved to pnpm-workspace.yaml.
3969
3968
  */
3970
3969
  function cleanupPnpmOverridesForWorkspaceYaml(pkg, overrideKeys) {
3971
- for (const key of [...overrideKeys, ...REMOVE_PACKAGES]) if (pkg.pnpm?.overrides?.[key]) delete pkg.pnpm.overrides[key];
3970
+ const catalogOverrides = {};
3971
+ const overrides = pkg.pnpm?.overrides;
3972
+ for (const key of [...overrideKeys, ...REMOVE_PACKAGES]) {
3973
+ const value = overrides?.[key];
3974
+ if (value) {
3975
+ if (overrideKeys.includes(key) && value.startsWith("catalog:")) catalogOverrides[key] = value;
3976
+ delete overrides[key];
3977
+ }
3978
+ }
3972
3979
  for (const key in pkg.pnpm?.overrides) if (key.includes(">")) {
3973
3980
  const splits = key.split(">");
3974
3981
  if (splits[splits.length - 1].trim() === "vite") delete pkg.pnpm.overrides[key];
3975
3982
  }
3976
3983
  let remaining;
3977
- if (pkg.pnpm?.overrides && Object.keys(pkg.pnpm.overrides).length > 0) remaining = { ...pkg.pnpm.overrides };
3984
+ if (Object.keys(catalogOverrides).length > 0) remaining = { ...catalogOverrides };
3985
+ if (pkg.pnpm?.overrides && Object.keys(pkg.pnpm.overrides).length > 0) remaining = {
3986
+ ...remaining,
3987
+ ...pkg.pnpm.overrides
3988
+ };
3978
3989
  delete pkg.pnpm?.overrides;
3979
3990
  cleanupPeerDependencyRules(pkg.pnpm?.peerDependencyRules, overrideKeys);
3980
3991
  if (pkg.pnpm?.peerDependencyRules && Object.keys(pkg.pnpm.peerDependencyRules).length === 0) delete pkg.pnpm.peerDependencyRules;
@@ -4021,6 +4032,58 @@ function rewriteYarnrcYml(projectPath) {
4021
4032
  * Rewrite catalog in pnpm-workspace.yaml or .yarnrc.yml
4022
4033
  * @param doc - The document to rewrite
4023
4034
  */
4035
+ function getCatalogDependencySpec(currentValue, version, supportCatalog, options) {
4036
+ if (options?.dependencyField === "peerDependencies") {
4037
+ if (currentValue?.startsWith("catalog:") && options.dependencyName) {
4038
+ const resolved = options.catalogDependencyResolver?.(currentValue, options.dependencyName);
4039
+ if (resolved && !isVitePlusOverrideSpec(resolved)) return resolved;
4040
+ return PUBLIC_PEER_DEPENDENCY_FALLBACKS[options.dependencyName] ?? currentValue;
4041
+ }
4042
+ return currentValue ?? version;
4043
+ }
4044
+ if (options?.dependencyField === "optionalDependencies" && options?.packageManager === PackageManager.yarn) return version;
4045
+ if (!supportCatalog || version.startsWith("file:")) return version;
4046
+ return currentValue?.startsWith("catalog:") ? currentValue : "catalog:";
4047
+ }
4048
+ function isVitePlusOverrideSpec(value) {
4049
+ return Object.values(VITE_PLUS_OVERRIDE_PACKAGES).includes(value) || value.startsWith("npm:@voidzero-dev/vite-plus-");
4050
+ }
4051
+ function createCatalogDependencyResolver(projectPath, packageManager) {
4052
+ if (packageManager === PackageManager.pnpm) {
4053
+ const pnpmWorkspaceYamlPath = path.join(projectPath, "pnpm-workspace.yaml");
4054
+ if (!fs.existsSync(pnpmWorkspaceYamlPath)) return;
4055
+ const doc = readYamlFile(pnpmWorkspaceYamlPath);
4056
+ return createCatalogDependencyResolverFromCatalogs(doc?.catalog, doc?.catalogs);
4057
+ }
4058
+ if (packageManager === PackageManager.yarn) {
4059
+ const yarnrcYmlPath = path.join(projectPath, ".yarnrc.yml");
4060
+ if (!fs.existsSync(yarnrcYmlPath)) return;
4061
+ const doc = readYamlFile(yarnrcYmlPath);
4062
+ return createCatalogDependencyResolverFromCatalogs(doc?.catalog, doc?.catalogs);
4063
+ }
4064
+ if (packageManager === PackageManager.bun) {
4065
+ const packageJsonPath = path.join(projectPath, "package.json");
4066
+ if (!fs.existsSync(packageJsonPath)) return;
4067
+ const pkg = readJsonFile(packageJsonPath);
4068
+ const workspacesObj = pkg.workspaces && !Array.isArray(pkg.workspaces) ? pkg.workspaces : void 0;
4069
+ return (catalogSpec, dependencyName) => {
4070
+ const catalogName = catalogSpec.slice(8);
4071
+ if (catalogName) return workspacesObj?.catalogs?.[catalogName]?.[dependencyName] ?? pkg.catalogs?.[catalogName]?.[dependencyName];
4072
+ return workspacesObj?.catalog?.[dependencyName] ?? pkg.catalog?.[dependencyName];
4073
+ };
4074
+ }
4075
+ }
4076
+ function createCatalogDependencyResolverFromCatalogs(catalog, catalogs) {
4077
+ return (catalogSpec, dependencyName) => {
4078
+ const catalogName = catalogSpec.slice(8);
4079
+ if (catalogName) return catalogs?.[catalogName]?.[dependencyName];
4080
+ return catalog?.[dependencyName];
4081
+ };
4082
+ }
4083
+ function getYamlMapScalarStringValue(map, key) {
4084
+ if (!(map instanceof import_dist.YAMLMap)) return;
4085
+ for (const item of map.items) if (item.key instanceof import_dist.Scalar && item.key.value === key && item.value instanceof import_dist.Scalar && typeof item.value.value === "string") return item.value.value;
4086
+ }
4024
4087
  function rewriteCatalog(doc) {
4025
4088
  for (const [key, value] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) {
4026
4089
  if (value.startsWith("file:")) continue;
@@ -4031,6 +4094,45 @@ function rewriteCatalog(doc) {
4031
4094
  const path = ["catalog", name];
4032
4095
  if (doc.hasIn(path)) doc.deleteIn(path);
4033
4096
  }
4097
+ const catalogs = doc.getIn(["catalogs"]);
4098
+ if (!(catalogs instanceof import_dist.YAMLMap)) return;
4099
+ for (const item of catalogs.items) {
4100
+ const catalogName = item.key instanceof import_dist.Scalar ? item.key.value : void 0;
4101
+ if (typeof catalogName !== "string" || !(item.value instanceof import_dist.YAMLMap)) continue;
4102
+ for (const [key, value] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) {
4103
+ const catalogPath = [
4104
+ "catalogs",
4105
+ catalogName,
4106
+ key
4107
+ ];
4108
+ if (!value.startsWith("file:") && doc.hasIn(catalogPath)) doc.setIn(catalogPath, scalarString(value));
4109
+ }
4110
+ const vitePlusPath = [
4111
+ "catalogs",
4112
+ catalogName,
4113
+ VITE_PLUS_NAME
4114
+ ];
4115
+ if (!VITE_PLUS_VERSION.startsWith("file:") && doc.hasIn(vitePlusPath)) doc.setIn(vitePlusPath, scalarString(VITE_PLUS_VERSION));
4116
+ for (const name of REMOVE_PACKAGES) {
4117
+ const catalogPath = [
4118
+ "catalogs",
4119
+ catalogName,
4120
+ name
4121
+ ];
4122
+ if (doc.hasIn(catalogPath)) doc.deleteIn(catalogPath);
4123
+ }
4124
+ }
4125
+ }
4126
+ function rewriteCatalogObject(catalog, addMissing) {
4127
+ for (const [key, value] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) {
4128
+ if (value.startsWith("file:") || !addMissing && !(key in catalog)) continue;
4129
+ catalog[key] = value;
4130
+ }
4131
+ if (!VITE_PLUS_VERSION.startsWith("file:") && (addMissing || "vite-plus" in catalog)) catalog[VITE_PLUS_NAME] = VITE_PLUS_VERSION;
4132
+ for (const name of REMOVE_PACKAGES) delete catalog[name];
4133
+ }
4134
+ function rewriteCatalogsObject(catalogs) {
4135
+ for (const catalog of Object.values(catalogs)) rewriteCatalogObject(catalog, false);
4034
4136
  }
4035
4137
  /**
4036
4138
  * Write catalog entries to root package.json for bun.
@@ -4043,14 +4145,20 @@ function rewriteBunCatalog(projectPath) {
4043
4145
  if (!fs.existsSync(packageJsonPath)) return;
4044
4146
  editJsonFile(packageJsonPath, (pkg) => {
4045
4147
  const workspacesObj = pkg.workspaces && !Array.isArray(pkg.workspaces) ? pkg.workspaces : void 0;
4046
- const catalog = { ...workspacesObj?.catalog ?? pkg.catalog };
4047
- for (const [key, value] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) if (!value.startsWith("file:")) catalog[key] = value;
4048
- if (!VITE_PLUS_VERSION.startsWith("file:")) catalog[VITE_PLUS_NAME] = VITE_PLUS_VERSION;
4049
- for (const name of REMOVE_PACKAGES) delete catalog[name];
4050
- if (workspacesObj?.catalog != null) workspacesObj.catalog = catalog;
4051
- else pkg.catalog = catalog;
4148
+ const useWorkspacesCatalog = workspacesObj?.catalog != null || pkg.catalog == null && workspacesObj?.catalogs != null;
4149
+ const catalog = { ...useWorkspacesCatalog ? workspacesObj?.catalog : pkg.catalog };
4150
+ rewriteCatalogObject(catalog, true);
4151
+ if (useWorkspacesCatalog) {
4152
+ workspacesObj.catalog = catalog;
4153
+ if (pkg.catalog) rewriteCatalogObject(pkg.catalog, false);
4154
+ } else {
4155
+ pkg.catalog = catalog;
4156
+ if (workspacesObj?.catalog) rewriteCatalogObject(workspacesObj.catalog, false);
4157
+ }
4158
+ if (workspacesObj?.catalogs) rewriteCatalogsObject(workspacesObj.catalogs);
4159
+ if (pkg.catalogs) rewriteCatalogsObject(pkg.catalogs);
4052
4160
  const overrides = { ...pkg.overrides };
4053
- for (const [key, value] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) overrides[key] = value.startsWith("file:") ? value : "catalog:";
4161
+ for (const [key, value] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) overrides[key] = getCatalogDependencySpec(overrides[key], value, true);
4054
4162
  pkg.overrides = overrides;
4055
4163
  return pkg;
4056
4164
  });
@@ -4059,7 +4167,7 @@ function rewriteBunCatalog(projectPath) {
4059
4167
  * Rewrite root workspace package.json to add vite-plus dependencies
4060
4168
  * @param projectPath - The path to the project
4061
4169
  */
4062
- function rewriteRootWorkspacePackageJson(projectPath, packageManager, skipStagedMigration) {
4170
+ function rewriteRootWorkspacePackageJson(projectPath, packageManager, skipStagedMigration, catalogDependencyResolver) {
4063
4171
  const packageJsonPath = path.join(projectPath, "package.json");
4064
4172
  if (!fs.existsSync(packageJsonPath)) return;
4065
4173
  let remainingPnpmOverrides;
@@ -4098,7 +4206,7 @@ function rewriteRootWorkspacePackageJson(projectPath, packageManager, skipStaged
4098
4206
  return pkg;
4099
4207
  });
4100
4208
  if (remainingPnpmOverrides) migratePnpmOverridesToWorkspaceYaml(projectPath, remainingPnpmOverrides);
4101
- rewriteMonorepoProject(projectPath, packageManager, skipStagedMigration);
4209
+ rewriteMonorepoProject(projectPath, packageManager, skipStagedMigration, void 0, void 0, catalogDependencyResolver);
4102
4210
  }
4103
4211
  const RULES_YAML_PATH = path.join(rulesDir, "vite-tools.yml");
4104
4212
  const PREPARE_RULES_YAML_PATH = path.join(rulesDir, "vite-prepare.yml");
@@ -4119,7 +4227,7 @@ function readPrepareRulesYaml() {
4119
4227
  cachedPrepareRulesYaml ??= fs.readFileSync(PREPARE_RULES_YAML_PATH, "utf8");
4120
4228
  return cachedPrepareRulesYaml;
4121
4229
  }
4122
- function rewritePackageJson(pkg, packageManager, isMonorepo, skipStagedMigration) {
4230
+ function rewritePackageJson(pkg, packageManager, isMonorepo, skipStagedMigration, catalogDependencyResolver) {
4123
4231
  if (pkg.scripts) {
4124
4232
  const updated = rewriteScripts(JSON.stringify(pkg.scripts), getScriptRulesYaml(skipStagedMigration));
4125
4233
  if (updated) pkg.scripts = JSON.parse(updated);
@@ -4130,32 +4238,44 @@ function rewritePackageJson(pkg, packageManager, isMonorepo, skipStagedMigration
4130
4238
  const updated = rewriteScripts(JSON.stringify(config), readRulesYaml());
4131
4239
  extractedStagedConfig = updated ? JSON.parse(updated) : config;
4132
4240
  }
4133
- const supportCatalog = isMonorepo && packageManager !== PackageManager.npm;
4241
+ const supportCatalog = !!isMonorepo && packageManager !== PackageManager.npm;
4134
4242
  let needVitePlus = false;
4135
- for (const [key, version] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) {
4136
- const value = supportCatalog && !version.startsWith("file:") ? "catalog:" : version;
4137
- if (pkg.devDependencies?.[key]) {
4138
- pkg.devDependencies[key] = value;
4139
- needVitePlus = true;
4140
- }
4141
- if (pkg.dependencies?.[key]) {
4142
- pkg.dependencies[key] = value;
4143
- needVitePlus = true;
4243
+ const dependencyGroups = [
4244
+ {
4245
+ dependencyField: "devDependencies",
4246
+ dependencies: pkg.devDependencies
4247
+ },
4248
+ {
4249
+ dependencyField: "dependencies",
4250
+ dependencies: pkg.dependencies
4251
+ },
4252
+ {
4253
+ dependencyField: "peerDependencies",
4254
+ dependencies: pkg.peerDependencies
4255
+ },
4256
+ {
4257
+ dependencyField: "optionalDependencies",
4258
+ dependencies: pkg.optionalDependencies
4144
4259
  }
4260
+ ];
4261
+ for (const [key, version] of Object.entries(VITE_PLUS_OVERRIDE_PACKAGES)) for (const { dependencyField, dependencies } of dependencyGroups) if (dependencies?.[key]) {
4262
+ dependencies[key] = getCatalogDependencySpec(dependencies[key], version, supportCatalog, {
4263
+ dependencyField,
4264
+ dependencyName: key,
4265
+ packageManager,
4266
+ catalogDependencyResolver
4267
+ });
4268
+ needVitePlus = true;
4145
4269
  }
4146
4270
  for (const name of REMOVE_PACKAGES) {
4147
- const wasInDevDeps = !!pkg.devDependencies?.[name];
4148
- const wasInDeps = !!pkg.dependencies?.[name];
4149
- if (wasInDevDeps) {
4150
- delete pkg.devDependencies[name];
4151
- needVitePlus = true;
4152
- }
4153
- if (wasInDeps) {
4154
- delete pkg.dependencies[name];
4155
- needVitePlus = true;
4271
+ let wasRemoved = false;
4272
+ for (const { dependencies } of dependencyGroups) if (dependencies?.[name]) {
4273
+ delete dependencies[name];
4274
+ wasRemoved = true;
4156
4275
  }
4276
+ if (wasRemoved) needVitePlus = true;
4157
4277
  const peerDep = BROWSER_PROVIDER_PEER_DEPS[name];
4158
- if ((wasInDevDeps || wasInDeps) && peerDep && !pkg.devDependencies?.[peerDep] && !pkg.dependencies?.[peerDep]) {
4278
+ if (wasRemoved && peerDep && !pkg.devDependencies?.[peerDep] && !pkg.dependencies?.[peerDep] && !pkg.peerDependencies?.[peerDep] && !pkg.optionalDependencies?.[peerDep]) {
4159
4279
  pkg.devDependencies ??= {};
4160
4280
  pkg.devDependencies[peerDep] = "*";
4161
4281
  }
@@ -4166,13 +4286,14 @@ function rewritePackageJson(pkg, packageManager, isMonorepo, skipStagedMigration
4166
4286
  ...pkg.devDependencies,
4167
4287
  [VITE_PLUS_NAME]: version
4168
4288
  };
4169
- const allDeps = {
4289
+ const installableDeps = {
4170
4290
  ...pkg.dependencies,
4171
- ...pkg.devDependencies
4291
+ ...pkg.devDependencies,
4292
+ ...pkg.optionalDependencies
4172
4293
  };
4173
- if (!allDeps.vitest && Object.keys(allDeps).some((name) => name.includes("vitest"))) {
4294
+ if (!installableDeps.vitest && Object.keys(installableDeps).some((name) => name.includes("vitest"))) {
4174
4295
  const ver = VITE_PLUS_OVERRIDE_PACKAGES.vitest;
4175
- pkg.devDependencies.vitest = supportCatalog && !ver.startsWith("file:") ? "catalog:" : ver;
4296
+ pkg.devDependencies.vitest = getCatalogDependencySpec(void 0, ver, supportCatalog);
4176
4297
  }
4177
4298
  }
4178
4299
  return extractedStagedConfig;
@@ -1,5 +1,5 @@
1
1
  import { a as printHeader, r as log } from "../terminal-CxTMfsxZ.js";
2
- import { L as defaultInteractive, _ as hasStagedConfigInViteConfig, h as ensurePreCommitHook, i as updateExistingAgentInstructions, z as promptGitHooks } from "../agent-YSH78B1d.js";
2
+ import { L as defaultInteractive, _ as hasStagedConfigInViteConfig, h as ensurePreCommitHook, i as updateExistingAgentInstructions, z as promptGitHooks } from "../agent-Ch4JIuSB.js";
3
3
  import { t as lib_default } from "../lib-BamM40b7.js";
4
4
  import { t as renderCliDoc } from "../help-BtkjXtRM.js";
5
5
  import { join } from "node:path";
@@ -2,10 +2,10 @@ import { r as __toESM, t as __commonJSMin } from "../chunk-q7NCDQ7-.js";
2
2
  import { a as runCommandSilently, i as runCommand$1, o as require_cross_spawn } from "../tsconfig-BQeK6Jxp.js";
3
3
  import { a as printHeader, i as muted, o as success, r as log, t as accent } from "../terminal-CxTMfsxZ.js";
4
4
  import { i as resolveViteConfig, n as hasViteConfig, t as findWorkspaceRoot } from "../resolve-vite-config-C1KX9CZU.js";
5
- import { $ as multiselect, A as setPackageManager, B as runViteFmt, D as rewriteMonorepo, E as promptPrettierMigration, G as templatesDir, H as selectPackageManager, K as DependencyType, L as defaultInteractive, O as rewriteMonorepoProject, Q as log$1, R as downloadPackageManager$1, T as promptEslintMigration, V as runViteInstall, W as displayRelative, X as confirm, Y as cancel, Z as intro, a as writeAgentInstructions, at as q, d as detectEslintProject, f as detectFramework, g as hasFrameworkShim, it as require_picocolors, k as rewriteStandaloneProject, m as detectPrettierProject, n as detectExistingAgentTargetPaths, nt as spinner, o as addFrameworkShim, q as PackageManager, r as selectAgentTargetPaths, rt as text, tt as select, v as injectCreateDefaultTemplate, y as installGitHooks, z as promptGitHooks } from "../agent-YSH78B1d.js";
5
+ import { $ as multiselect, A as setPackageManager, B as runViteFmt, D as rewriteMonorepo, E as promptPrettierMigration, G as templatesDir, H as selectPackageManager, K as DependencyType, L as defaultInteractive, O as rewriteMonorepoProject, Q as log$1, R as downloadPackageManager$1, T as promptEslintMigration, V as runViteInstall, W as displayRelative, X as confirm, Y as cancel, Z as intro, a as writeAgentInstructions, at as q, d as detectEslintProject, f as detectFramework, g as hasFrameworkShim, it as require_picocolors, k as rewriteStandaloneProject, m as detectPrettierProject, n as detectExistingAgentTargetPaths, nt as spinner, o as addFrameworkShim, q as PackageManager, r as selectAgentTargetPaths, rt as text, tt as select, v as injectCreateDefaultTemplate, y as installGitHooks, z as promptGitHooks } from "../agent-Ch4JIuSB.js";
6
6
  import { t as lib_default } from "../lib-BamM40b7.js";
7
7
  import { c as editJsonFile, o as fetchNpmResource, s as getNpmRegistry, t as checkNpmPackageExists, u as readJsonFile } from "../package-CrKanQYM.js";
8
- import { a as detectExistingEditors, c as writeEditorConfigs, n as updatePackageJsonWithDeps, r as updateWorkspaceConfig, s as selectEditors, t as detectWorkspace$1 } from "../workspace-9Zx76HPn.js";
8
+ import { a as detectExistingEditors, c as writeEditorConfigs, n as updatePackageJsonWithDeps, r as updateWorkspaceConfig, s as selectEditors, t as detectWorkspace$1 } from "../workspace-DxqnDgi4.js";
9
9
  import { t as renderCliDoc } from "../help-BtkjXtRM.js";
10
10
  import path from "node:path";
11
11
  import { runCommand, vitePlusHeader } from "../../binding/index.js";
@@ -1,11 +1,11 @@
1
1
  import { r as __toESM } from "../chunk-q7NCDQ7-.js";
2
2
  import { l as isForceOverrideMode } from "../main-A6UrSTYb.js";
3
3
  import { a as printHeader, i as muted, r as log, t as accent } from "../terminal-CxTMfsxZ.js";
4
- import { C as migratePrettierToOxfmt, D as rewriteMonorepo, E as promptPrettierMigration, H as selectPackageManager, I as cancelAndExit, J as require_semver, L as defaultInteractive, M as warnPackageLevelEslint, N as warnPackageLevelPrettier, Q as log$1, R as downloadPackageManager, S as migrateNodeVersionManagerFile, T as promptEslintMigration, U as upgradeYarn, V as runViteInstall, W as displayRelative, X as confirm, a as writeAgentInstructions, at as q, b as mergeViteConfigFiles, c as checkVitestVersion, d as detectEslintProject, et as outro, f as detectFramework, g as hasFrameworkShim, j as warnLegacyEslintConfig, k as rewriteStandaloneProject, l as confirmEslintMigration, m as detectPrettierProject, n as detectExistingAgentTargetPaths, nt as spinner, o as addFrameworkShim, p as detectNodeVersionManagerFile, q as PackageManager, r as selectAgentTargetPaths, s as checkViteVersion, t as detectAgentConflicts, tt as select, u as confirmPrettierMigration, w as preflightGitHooksSetup, x as migrateEslintToOxlint, y as installGitHooks, z as promptGitHooks } from "../agent-YSH78B1d.js";
4
+ import { C as migratePrettierToOxfmt, D as rewriteMonorepo, E as promptPrettierMigration, H as selectPackageManager, I as cancelAndExit, J as require_semver, L as defaultInteractive, M as warnPackageLevelEslint, N as warnPackageLevelPrettier, Q as log$1, R as downloadPackageManager, S as migrateNodeVersionManagerFile, T as promptEslintMigration, U as upgradeYarn, V as runViteInstall, W as displayRelative, X as confirm, a as writeAgentInstructions, at as q, b as mergeViteConfigFiles, c as checkVitestVersion, d as detectEslintProject, et as outro, f as detectFramework, g as hasFrameworkShim, j as warnLegacyEslintConfig, k as rewriteStandaloneProject, l as confirmEslintMigration, m as detectPrettierProject, n as detectExistingAgentTargetPaths, nt as spinner, o as addFrameworkShim, p as detectNodeVersionManagerFile, q as PackageManager, r as selectAgentTargetPaths, s as checkViteVersion, t as detectAgentConflicts, tt as select, u as confirmPrettierMigration, w as preflightGitHooksSetup, x as migrateEslintToOxlint, y as installGitHooks, z as promptGitHooks } from "../agent-Ch4JIuSB.js";
5
5
  import { t as lib_default } from "../lib-BamM40b7.js";
6
6
  import { a as readNearestPackageJson, i as hasVitePlusDependency } from "../package-CrKanQYM.js";
7
7
  import { r as createMigrationReport } from "../report-DbrfjWiP.js";
8
- import { c as writeEditorConfigs, i as detectEditorConflicts, o as selectEditor, t as detectWorkspace } from "../workspace-9Zx76HPn.js";
8
+ import { c as writeEditorConfigs, i as detectEditorConflicts, o as selectEditor, t as detectWorkspace } from "../workspace-DxqnDgi4.js";
9
9
  import { t as renderCliDoc } from "../help-BtkjXtRM.js";
10
10
  import path from "node:path";
11
11
  import { styleText } from "node:util";
@@ -4,7 +4,7 @@ import { i as resolveViteConfig } from "../resolve-vite-config-C1KX9CZU.js";
4
4
  import { t as lib_default } from "../lib-BamM40b7.js";
5
5
  import { t as renderCliDoc } from "../help-BtkjXtRM.js";
6
6
  import { createRequire } from "node:module";
7
- import path, { delimiter, dirname, normalize, resolve } from "node:path";
7
+ import path, { delimiter, dirname, resolve } from "node:path";
8
8
  import { constants } from "node:fs";
9
9
  import { formatWithOptions, inspect, promisify } from "node:util";
10
10
  import { pathToFileURL } from "node:url";
@@ -95,7 +95,6 @@ const wrapAnsiColor = (code, supported = SUPPORTS_COLOR) => {
95
95
  return (text) => text;
96
96
  };
97
97
  const red$1 = wrapAnsiColor("\x1B[0;31m");
98
- wrapAnsiColor("\x1B[0;32m");
99
98
  const yellow$1 = wrapAnsiColor("\x1B[0;33m");
100
99
  const blue$1 = wrapAnsiColor("\x1B[0;34m");
101
100
  const blackBright$1 = wrapAnsiColor("\x1B[0;90m");
@@ -119,53 +118,53 @@ const createDebug = (name) => {
119
118
  };
120
119
  };
121
120
  //#endregion
122
- //#region ../../node_modules/.pnpm/tinyexec@1.1.1/node_modules/tinyexec/dist/main.mjs
123
- var d = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports);
124
- var f = /* @__PURE__ */ createRequire(import.meta.url);
125
- const p = /^path$/i;
126
- const m = {
121
+ //#region ../../node_modules/.pnpm/tinyexec@1.1.2/node_modules/tinyexec/dist/main.mjs
122
+ var u = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports);
123
+ var d = /* @__PURE__ */ createRequire(import.meta.url);
124
+ const f = /^path$/i;
125
+ const p = {
127
126
  key: "PATH",
128
127
  value: ""
129
128
  };
130
- function h(e) {
129
+ function m(e) {
131
130
  for (const t in e) {
132
- if (!Object.prototype.hasOwnProperty.call(e, t) || !p.test(t)) continue;
131
+ if (!Object.prototype.hasOwnProperty.call(e, t) || !f.test(t)) continue;
133
132
  const n = e[t];
134
- if (!n) return m;
133
+ if (!n) return p;
135
134
  return {
136
135
  key: t,
137
136
  value: n
138
137
  };
139
138
  }
140
- return m;
139
+ return p;
141
140
  }
142
- function g(e, t) {
141
+ function h(e, t) {
143
142
  const n = t.value.split(delimiter);
144
- const a = [];
143
+ const r = [];
145
144
  let s = e;
146
145
  let c;
147
146
  do {
148
- a.push(resolve(s, "node_modules", ".bin"));
147
+ r.push(resolve(s, "node_modules", ".bin"));
149
148
  c = s;
150
149
  s = dirname(s);
151
150
  } while (s !== c);
152
- a.push(dirname(process.execPath));
153
- const l = a.concat(n).join(delimiter);
151
+ r.push(dirname(process.execPath));
152
+ const l = r.concat(n).join(delimiter);
154
153
  return {
155
154
  key: t.key,
156
155
  value: l
157
156
  };
158
157
  }
159
- function _(e, t) {
158
+ function g(e, t) {
160
159
  const n = {
161
160
  ...process.env,
162
161
  ...t
163
162
  };
164
- const r = g(e, h(n));
163
+ const r = h(e, m(n));
165
164
  n[r.key] = r.value;
166
165
  return n;
167
166
  }
168
- const v = (e) => {
167
+ const _ = (e) => {
169
168
  let t = e.length;
170
169
  const n = new PassThrough();
171
170
  const r = () => {
@@ -174,10 +173,10 @@ const v = (e) => {
174
173
  for (const t of e) pipeline(t, n, { end: false }).then(r).catch(r);
175
174
  return n;
176
175
  };
177
- var y = /* @__PURE__ */ d(((e, t) => {
176
+ var v = /* @__PURE__ */ u(((e, t) => {
178
177
  t.exports = a;
179
178
  a.sync = o;
180
- var n = f("fs");
179
+ var n = d("fs");
181
180
  function r(e, t) {
182
181
  var n = t.pathExt !== void 0 ? t.pathExt : process.env.PATHEXT;
183
182
  if (!n) return true;
@@ -202,10 +201,10 @@ var y = /* @__PURE__ */ d(((e, t) => {
202
201
  return i(n.statSync(e), e, t);
203
202
  }
204
203
  }));
205
- var b = /* @__PURE__ */ d(((e, t) => {
204
+ var y = /* @__PURE__ */ u(((e, t) => {
206
205
  t.exports = r;
207
206
  r.sync = i;
208
- var n = f("fs");
207
+ var n = d("fs");
209
208
  function r(e, t, r) {
210
209
  n.stat(e, function(e, n) {
211
210
  r(e, e ? false : a(n, t));
@@ -230,11 +229,11 @@ var b = /* @__PURE__ */ d(((e, t) => {
230
229
  return n & l || n & c && i === o || n & s && r === a || n & u && a === 0;
231
230
  }
232
231
  }));
233
- var x = /* @__PURE__ */ d(((e, t) => {
234
- f("fs");
232
+ var b = /* @__PURE__ */ u(((e, t) => {
233
+ d("fs");
235
234
  var n;
236
- if (process.platform === "win32" || global.TESTING_WINDOWS) n = y();
237
- else n = b();
235
+ if (process.platform === "win32" || global.TESTING_WINDOWS) n = v();
236
+ else n = y();
238
237
  t.exports = r;
239
238
  r.sync = i;
240
239
  function r(e, t, i) {
@@ -270,11 +269,11 @@ var x = /* @__PURE__ */ d(((e, t) => {
270
269
  }
271
270
  }
272
271
  }));
273
- var S = /* @__PURE__ */ d(((e, t) => {
272
+ var x = /* @__PURE__ */ u(((e, t) => {
274
273
  const n = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
275
- const r = f("path");
274
+ const r = d("path");
276
275
  const i = n ? ";" : ":";
277
- const a = x();
276
+ const a = b();
278
277
  const o = (e) => Object.assign(/* @__PURE__ */ new Error(`not found: ${e}`), { code: "ENOENT" });
279
278
  const s = (e, t) => {
280
279
  const r = t.colon || i;
@@ -340,7 +339,7 @@ var S = /* @__PURE__ */ d(((e, t) => {
340
339
  t.exports = c;
341
340
  c.sync = l;
342
341
  }));
343
- var C = /* @__PURE__ */ d(((e, t) => {
342
+ var S = /* @__PURE__ */ u(((e, t) => {
344
343
  const n = (e = {}) => {
345
344
  const t = e.env || process.env;
346
345
  if ((e.platform || process.platform) !== "win32") return "PATH";
@@ -349,10 +348,10 @@ var C = /* @__PURE__ */ d(((e, t) => {
349
348
  t.exports = n;
350
349
  t.exports.default = n;
351
350
  }));
352
- var w = /* @__PURE__ */ d(((e, t) => {
353
- const n = f("path");
354
- const r = S();
355
- const i = C();
351
+ var C = /* @__PURE__ */ u(((e, t) => {
352
+ const n = d("path");
353
+ const r = x();
354
+ const i = S();
356
355
  function a(e, t) {
357
356
  const a = e.options.env || process.env;
358
357
  const o = process.cwd();
@@ -378,7 +377,7 @@ var w = /* @__PURE__ */ d(((e, t) => {
378
377
  }
379
378
  t.exports = o;
380
379
  }));
381
- var T = /* @__PURE__ */ d(((e, t) => {
380
+ var w = /* @__PURE__ */ u(((e, t) => {
382
381
  const n = /([()\][%!^"`<>&|;, *?])/g;
383
382
  function r(e) {
384
383
  e = e.replace(n, "^$1");
@@ -396,11 +395,11 @@ var T = /* @__PURE__ */ d(((e, t) => {
396
395
  t.exports.command = r;
397
396
  t.exports.argument = i;
398
397
  }));
399
- var E = /* @__PURE__ */ d(((e, t) => {
398
+ var T = /* @__PURE__ */ u(((e, t) => {
400
399
  t.exports = /^#!(.*)/;
401
400
  }));
402
- var D = /* @__PURE__ */ d(((e, t) => {
403
- const n = E();
401
+ var E = /* @__PURE__ */ u(((e, t) => {
402
+ const n = T();
404
403
  t.exports = (e = "") => {
405
404
  const t = e.match(n);
406
405
  if (!t) return null;
@@ -410,9 +409,9 @@ var D = /* @__PURE__ */ d(((e, t) => {
410
409
  return i ? `${a} ${i}` : a;
411
410
  };
412
411
  }));
413
- var O = /* @__PURE__ */ d(((e, t) => {
414
- const n = f("fs");
415
- const r = D();
412
+ var D = /* @__PURE__ */ u(((e, t) => {
413
+ const n = d("fs");
414
+ const r = E();
416
415
  function i(e) {
417
416
  const t = 150;
418
417
  const i = Buffer.alloc(t);
@@ -426,11 +425,11 @@ var O = /* @__PURE__ */ d(((e, t) => {
426
425
  }
427
426
  t.exports = i;
428
427
  }));
429
- var k = /* @__PURE__ */ d(((e, t) => {
430
- const n = f("path");
431
- const r = w();
432
- const i = T();
433
- const a = O();
428
+ var O = /* @__PURE__ */ u(((e, t) => {
429
+ const n = d("path");
430
+ const r = C();
431
+ const i = w();
432
+ const a = D();
434
433
  const o = process.platform === "win32";
435
434
  const s = /\.(?:com|exe)$/i;
436
435
  const c = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;
@@ -464,7 +463,7 @@ var k = /* @__PURE__ */ d(((e, t) => {
464
463
  }
465
464
  return e;
466
465
  }
467
- function d(e, t, n) {
466
+ function f(e, t, n) {
468
467
  if (t && !Array.isArray(t)) {
469
468
  n = t;
470
469
  t = null;
@@ -483,9 +482,9 @@ var k = /* @__PURE__ */ d(((e, t) => {
483
482
  };
484
483
  return n.shell ? r : u(r);
485
484
  }
486
- t.exports = d;
485
+ t.exports = f;
487
486
  }));
488
- var A = /* @__PURE__ */ d(((e, t) => {
487
+ var k = /* @__PURE__ */ u(((e, t) => {
489
488
  const n = process.platform === "win32";
490
489
  function r(e, t) {
491
490
  return Object.assign(/* @__PURE__ */ new Error(`${t} ${e.command} ENOENT`), {
@@ -522,10 +521,10 @@ var A = /* @__PURE__ */ d(((e, t) => {
522
521
  notFoundError: r
523
522
  };
524
523
  }));
525
- var M = (/* @__PURE__ */ d(((e, t) => {
526
- const n = f("child_process");
527
- const r = k();
528
- const i = A();
524
+ var j = (/* @__PURE__ */ u(((e, t) => {
525
+ const n = d("child_process");
526
+ const r = O();
527
+ const i = k();
529
528
  function a(e, t, a) {
530
529
  const o = r(e, t, a);
531
530
  const s = n.spawn(o.command, o.args, o.options);
@@ -544,7 +543,7 @@ var M = (/* @__PURE__ */ d(((e, t) => {
544
543
  t.exports._parse = r;
545
544
  t.exports._enoent = i;
546
545
  })))();
547
- var N = class extends Error {
546
+ var M = class extends Error {
548
547
  get exitCode() {
549
548
  if (this.result.exitCode !== null) return this.result.exitCode;
550
549
  }
@@ -554,18 +553,12 @@ var N = class extends Error {
554
553
  this.output = t;
555
554
  }
556
555
  };
557
- const F = {
556
+ const P$1 = {
558
557
  timeout: void 0,
559
558
  persist: false
560
559
  };
561
- const L = { windowsHide: true };
562
- function R(e, t) {
563
- return {
564
- command: normalize(e),
565
- args: t ?? []
566
- };
567
- }
568
- function z(e) {
560
+ const I = { windowsHide: true };
561
+ function L(e) {
569
562
  const t = new AbortController();
570
563
  for (const n of e) {
571
564
  if (n.aborted) {
@@ -579,14 +572,14 @@ function z(e) {
579
572
  }
580
573
  return t.signal;
581
574
  }
582
- async function B(e) {
575
+ async function R(e) {
583
576
  let t = "";
584
577
  try {
585
578
  for await (const n of e) t += n.toString();
586
579
  } catch {}
587
580
  return t;
588
581
  }
589
- var V = class {
582
+ var z = class {
590
583
  _process;
591
584
  _aborted = false;
592
585
  _options;
@@ -606,7 +599,7 @@ var V = class {
606
599
  }
607
600
  constructor(e, t, n) {
608
601
  this._options = {
609
- ...F,
602
+ ...P$1,
610
603
  ...n
611
604
  };
612
605
  this._command = e;
@@ -625,7 +618,7 @@ var V = class {
625
618
  return this._process?.killed === true;
626
619
  }
627
620
  pipe(e, t, n) {
628
- return W(e, t, {
621
+ return H(e, t, {
629
622
  ...n,
630
623
  stdin: this
631
624
  });
@@ -636,18 +629,18 @@ var V = class {
636
629
  const t = [];
637
630
  if (this._streamErr) t.push(this._streamErr);
638
631
  if (this._streamOut) t.push(this._streamOut);
639
- const n = v(t);
632
+ const n = _(t);
640
633
  const r = P.createInterface({ input: n });
641
634
  for await (const e of r) yield e.toString();
642
635
  await this._processClosed;
643
636
  e.removeAllListeners();
644
637
  if (this._thrownError) throw this._thrownError;
645
- if (this._options?.throwOnError && this.exitCode !== 0 && this.exitCode !== void 0) throw new N(this);
638
+ if (this._options?.throwOnError && this.exitCode !== 0 && this.exitCode !== void 0) throw new M(this);
646
639
  }
647
640
  async _waitForOutput() {
648
641
  const e = this._process;
649
642
  if (!e) throw new Error("No process was started");
650
- const [t, n] = await Promise.all([this._streamOut ? B(this._streamOut) : "", this._streamErr ? B(this._streamErr) : ""]);
643
+ const [t, n] = await Promise.all([this._streamOut ? R(this._streamOut) : "", this._streamErr ? R(this._streamErr) : ""]);
651
644
  await this._processClosed;
652
645
  const { stdin: r } = this._options;
653
646
  if (r && typeof r !== "string") await r;
@@ -658,7 +651,7 @@ var V = class {
658
651
  stdout: t,
659
652
  exitCode: this.exitCode
660
653
  };
661
- if (this._options.throwOnError && this.exitCode !== 0 && this.exitCode !== void 0) throw new N(this, i);
654
+ if (this._options.throwOnError && this.exitCode !== 0 && this.exitCode !== void 0) throw new M(this, i);
662
655
  return i;
663
656
  }
664
657
  then(e, t) {
@@ -669,29 +662,28 @@ var V = class {
669
662
  spawn() {
670
663
  const e = cwd();
671
664
  const n = this._options;
672
- const r = {
673
- ...L,
665
+ const i = {
666
+ ...I,
674
667
  ...n.nodeOptions
675
668
  };
676
- const i = [];
669
+ const a = [];
677
670
  this._resetState();
678
- if (n.timeout !== void 0) i.push(AbortSignal.timeout(n.timeout));
679
- if (n.signal !== void 0) i.push(n.signal);
680
- if (n.persist === true) r.detached = true;
681
- if (i.length > 0) r.signal = z(i);
682
- r.env = _(e, r.env);
683
- const { command: a, args: o } = R(this._command, this._args);
684
- const c = (0, M._parse)(a, o, r);
685
- const l = spawn(c.command, c.args, c.options);
686
- if (l.stderr) this._streamErr = l.stderr;
687
- if (l.stdout) this._streamOut = l.stdout;
688
- this._process = l;
689
- l.once("error", this._onError);
690
- l.once("close", this._onClose);
691
- if (l.stdin) {
671
+ if (n.timeout !== void 0) a.push(AbortSignal.timeout(n.timeout));
672
+ if (n.signal !== void 0) a.push(n.signal);
673
+ if (n.persist === true) i.detached = true;
674
+ if (a.length > 0) i.signal = L(a);
675
+ i.env = g(e, i.env);
676
+ const o = (0, j._parse)(this._command, this._args, i);
677
+ const s = spawn(o.command, o.args, o.options);
678
+ if (s.stderr) this._streamErr = s.stderr;
679
+ if (s.stdout) this._streamOut = s.stdout;
680
+ this._process = s;
681
+ s.once("error", this._onError);
682
+ s.once("close", this._onClose);
683
+ if (s.stdin) {
692
684
  const { stdin: e } = n;
693
- if (typeof e === "string") l.stdin.end(e);
694
- else e?.process?.stdout?.pipe(l.stdin);
685
+ if (typeof e === "string") s.stdin.end(e);
686
+ else e?.process?.stdout?.pipe(s.stdin);
695
687
  }
696
688
  }
697
689
  _resetState() {
@@ -712,12 +704,12 @@ var V = class {
712
704
  if (this._resolveClose) this._resolveClose();
713
705
  };
714
706
  };
715
- const U = (e, t, n) => {
716
- const r = new V(e, t, n);
707
+ const V = (e, t, n) => {
708
+ const r = new z(e, t, n);
717
709
  r.spawn();
718
710
  return r;
719
711
  };
720
- const W = U;
712
+ const H = V;
721
713
  //#endregion
722
714
  //#region ../../node_modules/.pnpm/lint-staged@16.4.0/node_modules/lint-staged/lib/execGit.js
723
715
  const debugLog$15 = createDebug("lint-staged:execGit");
@@ -732,7 +724,7 @@ const NO_SUBMODULE_RECURSE = ["-c", "submodule.recurse=false"];
732
724
  /** @type {(cmd: string[], options?: { cwd?: string }) => Promise<string>} */
733
725
  const execGit = async (cmd, options) => {
734
726
  debugLog$15("Running git command:", cmd);
735
- const result = W("git", [...NO_SUBMODULE_RECURSE, ...cmd], { nodeOptions: {
727
+ const result = H("git", [...NO_SUBMODULE_RECURSE, ...cmd], { nodeOptions: {
736
728
  cwd: options?.cwd,
737
729
  stdio: ["ignore"]
738
730
  } });
@@ -5348,7 +5340,7 @@ const getSpawnedTask = ({ abortController, color, command, continueOnError = fal
5348
5340
  debugLog$12("Tinyexec options:", tinyExecOptions);
5349
5341
  /** @param {ReturnType<typeof getInitialState>} ctx context */
5350
5342
  return async (ctx = getInitialState()) => {
5351
- const result = W(cmd, isFn ? args : args.concat(files), tinyExecOptions);
5343
+ const result = H(cmd, isFn ? args : args.concat(files), tinyExecOptions);
5352
5344
  const taskFailed = () => result.exitCode > 0 || result.process?.signalCode;
5353
5345
  /** @type {keyof typeof Signal | undefined} */
5354
5346
  let signal;
package/dist/versions.js CHANGED
@@ -1,9 +1,9 @@
1
1
  export const versions = {
2
2
  "vite": "8.0.10",
3
- "rolldown": "1.0.0-rc.17",
3
+ "rolldown": "1.0.0-rc.18",
4
4
  "tsdown": "0.21.10",
5
5
  "vitest": "4.1.5",
6
- "oxlint": "1.61.0",
7
- "oxfmt": "0.46.0",
8
- "oxlint-tsgolint": "0.22.0"
6
+ "oxlint": "1.63.0",
7
+ "oxfmt": "0.48.0",
8
+ "oxlint-tsgolint": "0.22.1"
9
9
  };
@@ -1,4 +1,4 @@
1
- import { $ as multiselect, F as readYamlFile, P as editYamlFile, Q as log, at as q, q as PackageManager, tt as select } from "./agent-YSH78B1d.js";
1
+ import { $ as multiselect, F as readYamlFile, P as editYamlFile, Q as log, at as q, q as PackageManager, tt as select } from "./agent-Ch4JIuSB.js";
2
2
  import { t as require_dist } from "./dist-DjG9AYbK.js";
3
3
  import { c as editJsonFile, d as writeJsonFile, r as getScopeFromPackageName, u as readJsonFile } from "./package-CrKanQYM.js";
4
4
  import path, { posix, win32 } from "node:path";
@@ -3258,7 +3258,7 @@ const ENOCHILD = ENOENT | 576;
3258
3258
  const TYPEMASK = 1023;
3259
3259
  const entToType = (s) => s.isFile() ? IFREG : s.isDirectory() ? IFDIR : s.isSymbolicLink() ? IFLNK : s.isCharacterDevice() ? IFCHR : s.isBlockDevice() ? IFBLK : s.isSocket() ? IFSOCK : s.isFIFO() ? IFIFO : UNKNOWN;
3260
3260
  const normalizeCache = new L({ max: 2 ** 12 });
3261
- const normalize$1 = (s) => {
3261
+ const normalize = (s) => {
3262
3262
  const c = normalizeCache.get(s);
3263
3263
  if (c) return c;
3264
3264
  const n = s.normalize("NFKD");
@@ -3269,7 +3269,7 @@ const normalizeNocaseCache = new L({ max: 2 ** 12 });
3269
3269
  const normalizeNocase = (s) => {
3270
3270
  const c = normalizeNocaseCache.get(s);
3271
3271
  if (c) return c;
3272
- const n = normalize$1(s.toLowerCase());
3272
+ const n = normalize(s.toLowerCase());
3273
3273
  normalizeNocaseCache.set(s, n);
3274
3274
  return n;
3275
3275
  };
@@ -3458,7 +3458,7 @@ var PathBase = class {
3458
3458
  */
3459
3459
  constructor(name, type = UNKNOWN, root, roots, nocase, children, opts) {
3460
3460
  this.name = name;
3461
- this.#matchName = nocase ? normalizeNocase(name) : normalize$1(name);
3461
+ this.#matchName = nocase ? normalizeNocase(name) : normalize(name);
3462
3462
  this.#type = type & TYPEMASK;
3463
3463
  this.nocase = nocase;
3464
3464
  this.roots = roots;
@@ -3534,7 +3534,7 @@ var PathBase = class {
3534
3534
  if (pathPart === "" || pathPart === ".") return this;
3535
3535
  if (pathPart === "..") return this.parent || this;
3536
3536
  const children = this.children();
3537
- const name = this.nocase ? normalizeNocase(pathPart) : normalize$1(pathPart);
3537
+ const name = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);
3538
3538
  for (const p of children) if (p.#matchName === name) return p;
3539
3539
  const s = this.parent ? this.sep : "";
3540
3540
  const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : void 0;
@@ -3749,7 +3749,7 @@ var PathBase = class {
3749
3749
  * directly.
3750
3750
  */
3751
3751
  isNamed(n) {
3752
- return !this.nocase ? this.#matchName === normalize$1(n) : this.#matchName === normalizeNocase(n);
3752
+ return !this.nocase ? this.#matchName === normalize(n) : this.#matchName === normalizeNocase(n);
3753
3753
  }
3754
3754
  /**
3755
3755
  * Return the Path object corresponding to the target of a symbolic link.
@@ -3861,7 +3861,7 @@ var PathBase = class {
3861
3861
  #readdirMaybePromoteChild(e, c) {
3862
3862
  for (let p = c.provisional; p < c.length; p++) {
3863
3863
  const pchild = c[p];
3864
- if ((this.nocase ? normalizeNocase(e.name) : normalize$1(e.name)) !== pchild.#matchName) continue;
3864
+ if ((this.nocase ? normalizeNocase(e.name) : normalize(e.name)) !== pchild.#matchName) continue;
3865
3865
  return this.#readdirPromoteChild(e, pchild, p, c);
3866
3866
  }
3867
3867
  }
@@ -0,0 +1,121 @@
1
+ import type { DefaultTheme } from "vitepress";
2
+
3
+ export const core: DefaultTheme.TeamMember[] = [
4
+ {
5
+ avatar: "https://github.com/fengmk2.png",
6
+ name: "MK",
7
+ links: [
8
+ { icon: "github", link: "https://github.com/fengmk2" },
9
+ { icon: "x", link: "https://x.com/fengmk2" },
10
+ ],
11
+ },
12
+ {
13
+ avatar: "https://github.com/branchseer.png",
14
+ name: "Wang Chi",
15
+ links: [
16
+ { icon: "github", link: "https://github.com/branchseer" },
17
+ { icon: "x", link: "https://x.com/branchseer" },
18
+ ],
19
+ },
20
+ {
21
+ avatar: "https://github.com/Brooooooklyn.png",
22
+ name: "Long Yinan",
23
+ links: [
24
+ { icon: "github", link: "https://github.com/Brooooooklyn" },
25
+ { icon: "x", link: "https://x.com/Brooooook_lyn" },
26
+ ],
27
+ },
28
+ {
29
+ avatar: "https://github.com/cpojer.png",
30
+ name: "Christoph Nakazawa",
31
+ links: [
32
+ { icon: "github", link: "https://github.com/cpojer" },
33
+ { icon: "x", link: "https://x.com/cpojer" },
34
+ { icon: "bluesky", link: "https://bsky.app/profile/christoph.nkzw.tech" },
35
+ ],
36
+ },
37
+ {
38
+ avatar: "https://github.com/TheAlexLichter.png",
39
+ name: "Alexander Lichter",
40
+ links: [
41
+ { icon: "github", link: "https://github.com/TheAlexLichter" },
42
+ { icon: "x", link: "https://x.com/TheAlexLichter" },
43
+ { icon: "bluesky", link: "https://bsky.app/profile/thealexlichter.com" },
44
+ ],
45
+ },
46
+ {
47
+ avatar: "https://github.com/camc314.png",
48
+ name: "Cameron Clark",
49
+ links: [
50
+ { icon: "github", link: "https://github.com/camc314" },
51
+ { icon: "x", link: "https://x.com/cameron_C2" },
52
+ ],
53
+ },
54
+ {
55
+ avatar: "https://github.com/leaysgur.png",
56
+ name: "Yuji Sugiura",
57
+ links: [
58
+ { icon: "github", link: "https://github.com/leaysgur" },
59
+ { icon: "x", link: "https://x.com/leaysgur" },
60
+ ],
61
+ },
62
+ {
63
+ avatar: "https://github.com/mdong1909.png",
64
+ name: "Michael Dong",
65
+ links: [
66
+ { icon: "github", link: "https://github.com/mdong1909" },
67
+ { icon: "x", link: "https://x.com/mdong1909" },
68
+ { icon: "linkedin", link: "https://www.linkedin.com/in/michael-d-612b5b50/" },
69
+ ],
70
+ },
71
+ {
72
+ avatar: "https://github.com/kazupon.png",
73
+ name: "kazupon",
74
+ links: [
75
+ { icon: "github", link: "https://github.com/kazupon" },
76
+ { icon: "x", link: "https://x.com/kazupon" },
77
+ { icon: "bluesky", link: "https://bsky.app/profile/kazupon.dev" },
78
+ ],
79
+ },
80
+ {
81
+ avatar: "https://github.com/ubugeeei.png",
82
+ name: "ubugeeei",
83
+ links: [
84
+ { icon: "github", link: "https://github.com/ubugeeei" },
85
+ { icon: "x", link: "https://x.com/ubugeeei" },
86
+ ],
87
+ },
88
+ {
89
+ avatar: "https://github.com/nekomoyi.png",
90
+ name: "nekomoyi",
91
+ links: [{ icon: "github", link: "https://github.com/nekomoyi" }],
92
+ },
93
+ {
94
+ avatar: "https://github.com/HaasStefan.png",
95
+ name: "Stefan Haas",
96
+ links: [
97
+ { icon: "github", link: "https://github.com/HaasStefan" },
98
+ { icon: "x", link: "https://x.com/StefanvHaas" },
99
+ { icon: "linkedin", link: "https://www.linkedin.com/in/stefan-haas-angular" },
100
+ ],
101
+ },
102
+ {
103
+ avatar: "https://github.com/naokihaba.png",
104
+ name: "naokihaba",
105
+ links: [
106
+ { icon: "github", link: "https://github.com/naokihaba" },
107
+ { icon: "x", link: "https://x.com/naokihaba" },
108
+ { icon: "bluesky", link: "https://bsky.app/profile/naokihaba.com" },
109
+ ],
110
+ },
111
+ {
112
+ avatar: "https://github.com/jong-kyung.png",
113
+ name: "JongKyung Lee",
114
+ links: [
115
+ { icon: "github", link: "https://github.com/jong-kyung" },
116
+ { icon: "linkedin", link: "https://www.linkedin.com/in/jong-kyung" },
117
+ ],
118
+ },
119
+ ];
120
+
121
+ export const emeriti: DefaultTheme.TeamMember[] = [];
package/docs/package.json CHANGED
@@ -23,5 +23,5 @@
23
23
  "tailwindcss": "^4.1.18",
24
24
  "vitepress": "2.0.0-alpha.15"
25
25
  },
26
- "packageManager": "pnpm@10.33.0"
26
+ "packageManager": "pnpm@10.33.2"
27
27
  }
@@ -859,6 +859,7 @@ packages:
859
859
 
860
860
  '@ungap/structured-clone@1.3.0':
861
861
  resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
862
+ deprecated: Potential CWE-502 - Update to 1.3.1 or higher
862
863
 
863
864
  '@upsetjs/venn.js@2.0.0':
864
865
  resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plus",
3
- "version": "0.1.21-alpha.1",
3
+ "version": "0.1.21-alpha.3",
4
4
  "description": "The Unified Toolchain for the Web",
5
5
  "homepage": "https://viteplus.dev/guide",
6
6
  "bugs": {
@@ -318,12 +318,12 @@
318
318
  }
319
319
  },
320
320
  "dependencies": {
321
- "@oxc-project/types": "=0.127.0",
322
- "oxfmt": "=0.46.0",
323
- "oxlint": "=1.61.0",
324
- "oxlint-tsgolint": "=0.22.0",
325
- "@voidzero-dev/vite-plus-core": "0.1.21-alpha.1",
326
- "@voidzero-dev/vite-plus-test": "0.1.21-alpha.1"
321
+ "@oxc-project/types": "=0.129.0",
322
+ "oxfmt": "=0.48.0",
323
+ "oxlint": "=1.63.0",
324
+ "oxlint-tsgolint": "=0.22.1",
325
+ "@voidzero-dev/vite-plus-test": "0.1.21-alpha.3",
326
+ "@voidzero-dev/vite-plus-core": "0.1.21-alpha.3"
327
327
  },
328
328
  "devDependencies": {
329
329
  "@napi-rs/cli": "^3.6.1",
@@ -349,7 +349,7 @@
349
349
  "validate-npm-package-name": "^7.0.2",
350
350
  "yaml": "^2.8.1",
351
351
  "@voidzero-dev/vite-plus-tools": "0.0.0",
352
- "vite": "npm:@voidzero-dev/vite-plus-core@0.1.21-alpha.1",
352
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.1.21-alpha.3",
353
353
  "@voidzero-dev/vite-plus-prompts": "0.0.0"
354
354
  },
355
355
  "napi": {
@@ -370,14 +370,14 @@
370
370
  "node": "^20.19.0 || >=22.12.0"
371
371
  },
372
372
  "optionalDependencies": {
373
- "@voidzero-dev/vite-plus-darwin-arm64": "0.1.21-alpha.1",
374
- "@voidzero-dev/vite-plus-darwin-x64": "0.1.21-alpha.1",
375
- "@voidzero-dev/vite-plus-linux-arm64-gnu": "0.1.21-alpha.1",
376
- "@voidzero-dev/vite-plus-linux-arm64-musl": "0.1.21-alpha.1",
377
- "@voidzero-dev/vite-plus-linux-x64-gnu": "0.1.21-alpha.1",
378
- "@voidzero-dev/vite-plus-linux-x64-musl": "0.1.21-alpha.1",
379
- "@voidzero-dev/vite-plus-win32-x64-msvc": "0.1.21-alpha.1",
380
- "@voidzero-dev/vite-plus-win32-arm64-msvc": "0.1.21-alpha.1"
373
+ "@voidzero-dev/vite-plus-darwin-arm64": "0.1.21-alpha.3",
374
+ "@voidzero-dev/vite-plus-darwin-x64": "0.1.21-alpha.3",
375
+ "@voidzero-dev/vite-plus-linux-arm64-gnu": "0.1.21-alpha.3",
376
+ "@voidzero-dev/vite-plus-linux-arm64-musl": "0.1.21-alpha.3",
377
+ "@voidzero-dev/vite-plus-linux-x64-gnu": "0.1.21-alpha.3",
378
+ "@voidzero-dev/vite-plus-linux-x64-musl": "0.1.21-alpha.3",
379
+ "@voidzero-dev/vite-plus-win32-x64-msvc": "0.1.21-alpha.3",
380
+ "@voidzero-dev/vite-plus-win32-arm64-msvc": "0.1.21-alpha.3"
381
381
  },
382
382
  "scripts": {
383
383
  "build": "oxnode -C dev ./build.ts",
@@ -1,122 +0,0 @@
1
- /** @type {import('@voidzero-dev/vitepress-theme').TeamMember[]} */
2
- export const core = [
3
- {
4
- avatar: 'https://github.com/fengmk2.png',
5
- name: 'MK',
6
- links: [{ icon: 'github', link: 'https://github.com/fengmk2' },
7
- { icon: 'x', link: 'https://x.com/fengmk2' },
8
- ],
9
- },
10
- {
11
- avatar: 'https://github.com/branchseer.png',
12
- name: 'Wang Chi',
13
- links: [
14
- { icon: 'github', link: 'https://github.com/branchseer' },
15
- { icon: 'x', link: 'https://x.com/branchseer' }
16
- ],
17
- },
18
- {
19
- avatar: 'https://github.com/Brooooooklyn.png',
20
- name: 'Long Yinan',
21
- links: [
22
- { icon: 'github', link: 'https://github.com/Brooooooklyn' },
23
- { icon: 'x', link: 'https://x.com/Brooooook_lyn' },
24
- ],
25
- },
26
- {
27
- avatar: 'https://github.com/cpojer.png',
28
- name: 'Christoph Nakazawa',
29
- links: [
30
- { icon: 'github', link: 'https://github.com/cpojer' },
31
- { icon: 'x', link: 'https://x.com/cpojer' },
32
- { icon: 'bluesky', link: 'https://bsky.app/profile/christoph.nkzw.tech' },
33
- ],
34
- },
35
- {
36
- avatar: 'https://github.com/TheAlexLichter.png',
37
- name: 'Alexander Lichter',
38
- links: [
39
- { icon: 'github', link: 'https://github.com/TheAlexLichter' },
40
- { icon: 'x', link: 'https://x.com/TheAlexLichter' },
41
- { icon: 'bluesky', link: 'https://bsky.app/profile/thealexlichter.com' },
42
- ],
43
- },
44
- {
45
- avatar: 'https://github.com/camc314.png',
46
- name: 'Cameron Clark',
47
- links: [
48
- { icon: 'github', link: 'https://github.com/camc314' },
49
- { icon: 'x', link: 'https://x.com/cameron_C2' },
50
- ],
51
- },
52
- {
53
- avatar: 'https://github.com/leaysgur.png',
54
- name: 'Yuji Sugiura',
55
- links: [
56
- { icon: 'github', link: 'https://github.com/leaysgur' },
57
- { icon: 'x', link: 'https://x.com/leaysgur' },
58
- ],
59
- },
60
- {
61
- avatar: 'https://github.com/mdong1909.png',
62
- name: 'Michael Dong',
63
- links: [
64
- { icon: 'github', link: 'https://github.com/mdong1909' },
65
- { icon: 'x', link: 'https://x.com/mdong1909' },
66
- { icon: 'linkedin', link: 'https://www.linkedin.com/in/michael-d-612b5b50/' },
67
- ],
68
- },
69
- {
70
- avatar: 'https://github.com/kazupon.png',
71
- name: 'kazupon',
72
- links: [
73
- { icon: 'github', link: 'https://github.com/kazupon' },
74
- { icon: 'x', link: 'https://x.com/kazu_pon' },
75
- { icon: 'bluesky', link: 'https://bsky.app/profile/kazupon.dev' },
76
- ],
77
- },
78
- {
79
- avatar: 'https://github.com/ubugeeei.png',
80
- name: 'ubugeeei',
81
- links: [
82
- { icon: 'github', link: 'https://github.com/ubugeeei' },
83
- { icon: 'x', link: 'https://x.com/ubugeeei' },
84
- ],
85
- },
86
- {
87
- avatar: 'https://github.com/nekomoyi.png',
88
- name: 'nekomoyi',
89
- links: [
90
- { icon: 'github', link: 'https://github.com/nekomoyi' },
91
- ],
92
- },
93
- {
94
- avatar: 'https://github.com/HaasStefan.png',
95
- name: 'Stefan Haas',
96
- links: [
97
- { icon: 'github', link: 'https://github.com/HaasStefan' },
98
- { icon: 'x', link: 'https://x.com/StefanvHaas' },
99
- { icon: 'linkedin', link: 'https://www.linkedin.com/in/stefan-haas-angular' },
100
- ],
101
- },
102
- {
103
- avatar: 'https://github.com/naokihaba.png',
104
- name: 'naokihaba',
105
- links: [
106
- { icon: 'github', link: 'https://github.com/naokihaba' },
107
- { icon: 'x', link: 'https://x.com/naokihaba' },
108
- { icon: 'bluesky', link: 'https://bsky.app/profile/naokihaba.com' },
109
- ],
110
- },
111
- {
112
- avatar: 'https://github.com/jong-kyung.png',
113
- name: 'JongKyung Lee',
114
- links: [
115
- { icon: 'github', link: 'https://github.com/jong-kyung' },
116
- { icon: 'linkedin', link: 'https://www.linkedin.com/in/jong-kyung' },
117
- ],
118
- },
119
- ]
120
-
121
- /** @type {import('@voidzero-dev/vitepress-theme').TeamMember[]} */
122
- export const emeriti = []