wxt 0.10.2 → 0.10.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.
- package/dist/{chunk-6APJQ3J3.js → chunk-BHUP6PAP.js} +50 -47
- package/dist/cli.cjs +53 -50
- package/dist/{external-9115d0fb.d.ts → external-d75ae6fd.d.ts} +1 -1
- package/dist/index.cjs +53 -50
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/testing.cjs +31 -28
- package/dist/testing.d.cts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +1 -1
- package/dist/virtual/mock-browser.js +6 -5
- package/package.json +6 -3
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// package.json
|
|
2
|
-
var version = "0.10.
|
|
2
|
+
var version = "0.10.3";
|
|
3
3
|
|
|
4
4
|
// src/core/utils/entrypoints.ts
|
|
5
5
|
import path, { relative, resolve } from "node:path";
|
|
6
6
|
|
|
7
7
|
// src/core/utils/paths.ts
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
function
|
|
11
|
-
return
|
|
8
|
+
import systemPath from "node:path";
|
|
9
|
+
import normalize from "normalize-path";
|
|
10
|
+
function normalizePath(path7) {
|
|
11
|
+
return normalize(path7);
|
|
12
12
|
}
|
|
13
13
|
function unnormalizePath(path7) {
|
|
14
|
-
return
|
|
14
|
+
return systemPath.normalize(path7);
|
|
15
15
|
}
|
|
16
16
|
var CSS_EXTENSIONS = ["css", "scss", "sass", "less", "styl", "stylus"];
|
|
17
17
|
var CSS_EXTENSIONS_PATTERN = `+(${CSS_EXTENSIONS.join("|")})`;
|
|
@@ -26,7 +26,7 @@ function getEntrypointOutputFile(entrypoint, ext) {
|
|
|
26
26
|
return resolve(entrypoint.outputDir, `${entrypoint.name}${ext}`);
|
|
27
27
|
}
|
|
28
28
|
function getEntrypointBundlePath(entrypoint, outDir, ext) {
|
|
29
|
-
return
|
|
29
|
+
return normalizePath(
|
|
30
30
|
relative(outDir, getEntrypointOutputFile(entrypoint, ext))
|
|
31
31
|
);
|
|
32
32
|
}
|
|
@@ -143,14 +143,14 @@ function getUnimportOptions(config) {
|
|
|
143
143
|
|
|
144
144
|
// src/core/vite-plugins/unimport.ts
|
|
145
145
|
import { extname } from "path";
|
|
146
|
-
var ENABLED_EXTENSIONS =
|
|
147
|
-
".js"
|
|
148
|
-
".jsx"
|
|
149
|
-
".ts"
|
|
150
|
-
".tsx"
|
|
151
|
-
".vue"
|
|
152
|
-
".svelte"
|
|
153
|
-
|
|
146
|
+
var ENABLED_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
147
|
+
".js",
|
|
148
|
+
".jsx",
|
|
149
|
+
".ts",
|
|
150
|
+
".tsx",
|
|
151
|
+
".vue",
|
|
152
|
+
".svelte"
|
|
153
|
+
]);
|
|
154
154
|
function unimport(config) {
|
|
155
155
|
const options = getUnimportOptions(config);
|
|
156
156
|
if (options === false)
|
|
@@ -162,9 +162,11 @@ function unimport(config) {
|
|
|
162
162
|
await unimport2.scanImportsFromDir(void 0, { cwd: config.srcDir });
|
|
163
163
|
},
|
|
164
164
|
async transform(code, id) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
165
|
+
if (id.includes("node_modules"))
|
|
166
|
+
return;
|
|
167
|
+
if (!ENABLED_EXTENSIONS.has(extname(id)))
|
|
168
|
+
return;
|
|
169
|
+
return unimport2.injectImports(code, id);
|
|
168
170
|
}
|
|
169
171
|
};
|
|
170
172
|
}
|
|
@@ -443,7 +445,7 @@ function multipageMove(entrypoints, config) {
|
|
|
443
445
|
async writeBundle(_, bundle) {
|
|
444
446
|
for (const oldBundlePath in bundle) {
|
|
445
447
|
const entrypoint = entrypoints.find(
|
|
446
|
-
(entry) => !!
|
|
448
|
+
(entry) => !!normalizePath(entry.inputPath).endsWith(oldBundlePath)
|
|
447
449
|
);
|
|
448
450
|
if (entrypoint == null) {
|
|
449
451
|
config.logger.debug(
|
|
@@ -490,7 +492,7 @@ function virtualEntrypoint(type, config) {
|
|
|
490
492
|
const index = id.indexOf(virtualId);
|
|
491
493
|
if (index === -1)
|
|
492
494
|
return;
|
|
493
|
-
const inputPath =
|
|
495
|
+
const inputPath = normalizePath(id.substring(index + virtualId.length));
|
|
494
496
|
return resolvedVirtualId + inputPath;
|
|
495
497
|
},
|
|
496
498
|
async load(id) {
|
|
@@ -659,7 +661,7 @@ function detectDevChanges(changedFiles, currentOutput) {
|
|
|
659
661
|
}
|
|
660
662
|
function findEffectedSteps(changedFile, currentOutput) {
|
|
661
663
|
const changes = [];
|
|
662
|
-
const changedPath =
|
|
664
|
+
const changedPath = normalizePath(changedFile[1]);
|
|
663
665
|
const isChunkEffected = (chunk) => (
|
|
664
666
|
// If it's an HTML file with the same path, is is effected because HTML files need to be pre-rendered
|
|
665
667
|
// fileName is normalized, relative bundle path
|
|
@@ -688,7 +690,7 @@ import { parseHTML as parseHTML2 } from "linkedom";
|
|
|
688
690
|
import JSON5 from "json5";
|
|
689
691
|
|
|
690
692
|
// src/core/utils/building/build-entrypoints.ts
|
|
691
|
-
import * as
|
|
693
|
+
import * as vite from "vite";
|
|
692
694
|
|
|
693
695
|
// src/core/utils/fs.ts
|
|
694
696
|
import fs3 from "fs-extra";
|
|
@@ -787,11 +789,11 @@ async function buildSingleEntrypoint(entrypoint, config) {
|
|
|
787
789
|
for (const global of getEntrypointGlobals(config, entrypoint.name)) {
|
|
788
790
|
libMode.define[global.name] = JSON.stringify(global.value);
|
|
789
791
|
}
|
|
790
|
-
const entryConfig =
|
|
792
|
+
const entryConfig = vite.mergeConfig(
|
|
791
793
|
libMode,
|
|
792
794
|
await config.vite(config.env)
|
|
793
795
|
);
|
|
794
|
-
const result = await
|
|
796
|
+
const result = await vite.build(entryConfig);
|
|
795
797
|
return {
|
|
796
798
|
entrypoints: entrypoint,
|
|
797
799
|
chunks: getBuildOutputChunks(result)
|
|
@@ -822,11 +824,11 @@ async function buildMultipleEntrypoints(entrypoints, config) {
|
|
|
822
824
|
for (const global of getEntrypointGlobals(config, "html")) {
|
|
823
825
|
multiPage.define[global.name] = JSON.stringify(global.value);
|
|
824
826
|
}
|
|
825
|
-
const entryConfig =
|
|
827
|
+
const entryConfig = vite.mergeConfig(
|
|
826
828
|
multiPage,
|
|
827
829
|
await config.vite(config.env)
|
|
828
830
|
);
|
|
829
|
-
const result = await
|
|
831
|
+
const result = await vite.build(entryConfig);
|
|
830
832
|
return {
|
|
831
833
|
entrypoints,
|
|
832
834
|
chunks: getBuildOutputChunks(result)
|
|
@@ -937,7 +939,7 @@ async function writePathsDeclarationFile(entrypoints, config) {
|
|
|
937
939
|
config.outDir,
|
|
938
940
|
entry.inputPath.endsWith(".html") ? ".html" : ".js"
|
|
939
941
|
)
|
|
940
|
-
).concat(await getPublicFiles(config)).map(
|
|
942
|
+
).concat(await getPublicFiles(config)).map(normalizePath).map((path7) => ` | "/${path7}"`).sort().join("\n");
|
|
941
943
|
const template = `// Generated by wxt
|
|
942
944
|
import "wxt/browser";
|
|
943
945
|
|
|
@@ -1032,7 +1034,7 @@ async function writeMainDeclarationFile(references, config) {
|
|
|
1032
1034
|
"// Generated by wxt",
|
|
1033
1035
|
`/// <reference types="vite/client" />`,
|
|
1034
1036
|
...references.map(
|
|
1035
|
-
(ref) => `/// <reference types="./${
|
|
1037
|
+
(ref) => `/// <reference types="./${normalizePath(relative3(dir, ref))}" />`
|
|
1036
1038
|
)
|
|
1037
1039
|
].join("\n") + "\n"
|
|
1038
1040
|
);
|
|
@@ -1040,7 +1042,7 @@ async function writeMainDeclarationFile(references, config) {
|
|
|
1040
1042
|
}
|
|
1041
1043
|
async function writeTsConfigFile(mainReference, config) {
|
|
1042
1044
|
const dir = config.wxtDir;
|
|
1043
|
-
const getTsconfigPath = (path7) =>
|
|
1045
|
+
const getTsconfigPath = (path7) => normalizePath(relative3(dir, path7));
|
|
1044
1046
|
const paths = Object.entries(config.alias).flatMap(([alias, absolutePath]) => {
|
|
1045
1047
|
const aliasPath = getTsconfigPath(absolutePath);
|
|
1046
1048
|
return [
|
|
@@ -1077,7 +1079,7 @@ ${paths}
|
|
|
1077
1079
|
// src/core/utils/building/get-internal-config.ts
|
|
1078
1080
|
import { loadConfig } from "c12";
|
|
1079
1081
|
import path5 from "node:path";
|
|
1080
|
-
import * as
|
|
1082
|
+
import * as vite2 from "vite";
|
|
1081
1083
|
|
|
1082
1084
|
// src/core/utils/cache.ts
|
|
1083
1085
|
import fs6, { ensureDir as ensureDir2 } from "fs-extra";
|
|
@@ -1103,6 +1105,7 @@ function createFsCache(wxtDir) {
|
|
|
1103
1105
|
|
|
1104
1106
|
// src/core/utils/building/get-internal-config.ts
|
|
1105
1107
|
import consola, { LogLevels } from "consola";
|
|
1108
|
+
import defu from "defu";
|
|
1106
1109
|
async function getInternalConfig(inlineConfig, command) {
|
|
1107
1110
|
let userConfig = {};
|
|
1108
1111
|
let userConfigMetadata;
|
|
@@ -1204,7 +1207,7 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
1204
1207
|
} else if (userConfig.imports == null && inlineConfig.imports == null) {
|
|
1205
1208
|
imports = void 0;
|
|
1206
1209
|
} else {
|
|
1207
|
-
imports =
|
|
1210
|
+
imports = vite2.mergeConfig(
|
|
1208
1211
|
userConfig.imports ?? {},
|
|
1209
1212
|
inlineConfig.imports ?? {}
|
|
1210
1213
|
);
|
|
@@ -1212,20 +1215,20 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
1212
1215
|
const manifest = async (env) => {
|
|
1213
1216
|
const user = await resolveManifestConfig(env, userConfig.manifest);
|
|
1214
1217
|
const inline = await resolveManifestConfig(env, inlineConfig.manifest);
|
|
1215
|
-
return
|
|
1218
|
+
return vite2.mergeConfig(user, inline);
|
|
1216
1219
|
};
|
|
1217
1220
|
const viteConfig = async (env) => {
|
|
1218
1221
|
const user = await userConfig.vite?.(env);
|
|
1219
1222
|
const inline = await inlineConfig.vite?.(env);
|
|
1220
|
-
return
|
|
1223
|
+
return vite2.mergeConfig(user ?? {}, inline ?? {});
|
|
1221
1224
|
};
|
|
1222
|
-
const runner =
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
+
const runner = defu(
|
|
1226
|
+
inlineConfig.runner ?? {},
|
|
1227
|
+
userConfig.runner ?? {}
|
|
1225
1228
|
);
|
|
1226
|
-
const zip =
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
+
const zip = defu(
|
|
1230
|
+
inlineConfig.zip ?? {},
|
|
1231
|
+
userConfig.zip ?? {}
|
|
1229
1232
|
);
|
|
1230
1233
|
return {
|
|
1231
1234
|
root: inlineConfig.root ?? userConfig.root,
|
|
@@ -1374,7 +1377,7 @@ ${noImports}`;
|
|
|
1374
1377
|
import { transformSync } from "esbuild";
|
|
1375
1378
|
async function importEntrypointFile(path7, config) {
|
|
1376
1379
|
config.logger.debug("Loading file metadata:", path7);
|
|
1377
|
-
const normalPath =
|
|
1380
|
+
const normalPath = normalizePath(path7);
|
|
1378
1381
|
const unimport2 = createUnimport3({
|
|
1379
1382
|
...getUnimportOptions(config),
|
|
1380
1383
|
// Only allow specific imports, not all from the project
|
|
@@ -1430,7 +1433,7 @@ function getEsbuildOptions(opts) {
|
|
|
1430
1433
|
|
|
1431
1434
|
// src/core/utils/building/internal-build.ts
|
|
1432
1435
|
import pc4 from "picocolors";
|
|
1433
|
-
import * as
|
|
1436
|
+
import * as vite3 from "vite";
|
|
1434
1437
|
import fs11 from "fs-extra";
|
|
1435
1438
|
|
|
1436
1439
|
// src/core/utils/log/printBuildSummary.ts
|
|
@@ -1667,7 +1670,7 @@ async function getPackageJson(config) {
|
|
|
1667
1670
|
|
|
1668
1671
|
// src/core/utils/manifest.ts
|
|
1669
1672
|
import { produce } from "immer";
|
|
1670
|
-
import
|
|
1673
|
+
import defu2 from "defu";
|
|
1671
1674
|
async function writeManifest(manifest, output, config) {
|
|
1672
1675
|
const str = config.mode === "production" ? JSON.stringify(manifest) : JSON.stringify(manifest, null, 2);
|
|
1673
1676
|
await fs10.ensureDir(config.outDir);
|
|
@@ -1697,9 +1700,9 @@ async function generateMainfest(entrypoints, buildOutput, config) {
|
|
|
1697
1700
|
icons: discoverIcons(buildOutput)
|
|
1698
1701
|
};
|
|
1699
1702
|
const userManifest = config.manifest;
|
|
1700
|
-
const manifest =
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
+
const manifest = defu2(
|
|
1704
|
+
userManifest,
|
|
1705
|
+
baseManifest
|
|
1703
1706
|
);
|
|
1704
1707
|
addEntrypoints(manifest, entrypoints, buildOutput, config);
|
|
1705
1708
|
if (config.command === "serve")
|
|
@@ -1958,7 +1961,7 @@ function discoverIcons(buildOutput) {
|
|
|
1958
1961
|
}
|
|
1959
1962
|
if (size == null)
|
|
1960
1963
|
return;
|
|
1961
|
-
icons.push([size,
|
|
1964
|
+
icons.push([size, normalizePath(asset.fileName)]);
|
|
1962
1965
|
});
|
|
1963
1966
|
return icons.length > 0 ? Object.fromEntries(icons) : void 0;
|
|
1964
1967
|
}
|
|
@@ -2098,7 +2101,7 @@ async function internalBuild(config) {
|
|
|
2098
2101
|
const target = `${config.browser}-mv${config.manifestVersion}`;
|
|
2099
2102
|
config.logger.info(
|
|
2100
2103
|
`${verb} ${pc4.cyan(target)} for ${pc4.cyan(config.mode)} with ${pc4.green(
|
|
2101
|
-
`Vite ${
|
|
2104
|
+
`Vite ${vite3.version}`
|
|
2102
2105
|
)}`
|
|
2103
2106
|
);
|
|
2104
2107
|
const startTime = Date.now();
|
package/dist/cli.cjs
CHANGED
|
@@ -2316,11 +2316,11 @@ function execaNode(scriptPath, args, options = {}) {
|
|
|
2316
2316
|
const stdio = normalizeStdioNode(options);
|
|
2317
2317
|
const defaultExecArgv = import_node_process4.default.execArgv.filter((arg) => !arg.startsWith("--inspect"));
|
|
2318
2318
|
const {
|
|
2319
|
-
nodePath
|
|
2319
|
+
nodePath = import_node_process4.default.execPath,
|
|
2320
2320
|
nodeOptions = defaultExecArgv
|
|
2321
2321
|
} = options;
|
|
2322
2322
|
return execa(
|
|
2323
|
-
|
|
2323
|
+
nodePath,
|
|
2324
2324
|
[
|
|
2325
2325
|
...nodeOptions,
|
|
2326
2326
|
scriptPath,
|
|
@@ -2415,19 +2415,19 @@ var init_execa = __esm({
|
|
|
2415
2415
|
var import_cac = __toESM(require("cac"), 1);
|
|
2416
2416
|
|
|
2417
2417
|
// package.json
|
|
2418
|
-
var version = "0.10.
|
|
2418
|
+
var version = "0.10.3";
|
|
2419
2419
|
|
|
2420
2420
|
// src/core/utils/building/build-entrypoints.ts
|
|
2421
|
-
var
|
|
2421
|
+
var vite = __toESM(require("vite"), 1);
|
|
2422
2422
|
|
|
2423
2423
|
// src/core/utils/entrypoints.ts
|
|
2424
2424
|
var import_node_path2 = __toESM(require("path"), 1);
|
|
2425
2425
|
|
|
2426
2426
|
// src/core/utils/paths.ts
|
|
2427
2427
|
var import_node_path = __toESM(require("path"), 1);
|
|
2428
|
-
var
|
|
2429
|
-
function
|
|
2430
|
-
return
|
|
2428
|
+
var import_normalize_path = __toESM(require("normalize-path"), 1);
|
|
2429
|
+
function normalizePath(path11) {
|
|
2430
|
+
return (0, import_normalize_path.default)(path11);
|
|
2431
2431
|
}
|
|
2432
2432
|
function unnormalizePath(path11) {
|
|
2433
2433
|
return import_node_path.default.normalize(path11);
|
|
@@ -2445,7 +2445,7 @@ function getEntrypointOutputFile(entrypoint, ext) {
|
|
|
2445
2445
|
return (0, import_node_path2.resolve)(entrypoint.outputDir, `${entrypoint.name}${ext}`);
|
|
2446
2446
|
}
|
|
2447
2447
|
function getEntrypointBundlePath(entrypoint, outDir, ext) {
|
|
2448
|
-
return
|
|
2448
|
+
return normalizePath(
|
|
2449
2449
|
(0, import_node_path2.relative)(outDir, getEntrypointOutputFile(entrypoint, ext))
|
|
2450
2450
|
);
|
|
2451
2451
|
}
|
|
@@ -2680,7 +2680,7 @@ function multipageMove(entrypoints, config) {
|
|
|
2680
2680
|
async writeBundle(_, bundle) {
|
|
2681
2681
|
for (const oldBundlePath in bundle) {
|
|
2682
2682
|
const entrypoint = entrypoints.find(
|
|
2683
|
-
(entry) => !!
|
|
2683
|
+
(entry) => !!normalizePath(entry.inputPath).endsWith(oldBundlePath)
|
|
2684
2684
|
);
|
|
2685
2685
|
if (entrypoint == null) {
|
|
2686
2686
|
config.logger.debug(
|
|
@@ -2746,14 +2746,14 @@ function getUnimportOptions(config) {
|
|
|
2746
2746
|
|
|
2747
2747
|
// src/core/vite-plugins/unimport.ts
|
|
2748
2748
|
var import_path2 = require("path");
|
|
2749
|
-
var ENABLED_EXTENSIONS =
|
|
2750
|
-
".js"
|
|
2751
|
-
".jsx"
|
|
2752
|
-
".ts"
|
|
2753
|
-
".tsx"
|
|
2754
|
-
".vue"
|
|
2755
|
-
".svelte"
|
|
2756
|
-
|
|
2749
|
+
var ENABLED_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
2750
|
+
".js",
|
|
2751
|
+
".jsx",
|
|
2752
|
+
".ts",
|
|
2753
|
+
".tsx",
|
|
2754
|
+
".vue",
|
|
2755
|
+
".svelte"
|
|
2756
|
+
]);
|
|
2757
2757
|
function unimport(config) {
|
|
2758
2758
|
const options = getUnimportOptions(config);
|
|
2759
2759
|
if (options === false)
|
|
@@ -2765,9 +2765,11 @@ function unimport(config) {
|
|
|
2765
2765
|
await unimport2.scanImportsFromDir(void 0, { cwd: config.srcDir });
|
|
2766
2766
|
},
|
|
2767
2767
|
async transform(code, id) {
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2768
|
+
if (id.includes("node_modules"))
|
|
2769
|
+
return;
|
|
2770
|
+
if (!ENABLED_EXTENSIONS.has((0, import_path2.extname)(id)))
|
|
2771
|
+
return;
|
|
2772
|
+
return unimport2.injectImports(code, id);
|
|
2771
2773
|
}
|
|
2772
2774
|
};
|
|
2773
2775
|
}
|
|
@@ -2784,7 +2786,7 @@ function virtualEntrypoint(type, config) {
|
|
|
2784
2786
|
const index = id.indexOf(virtualId);
|
|
2785
2787
|
if (index === -1)
|
|
2786
2788
|
return;
|
|
2787
|
-
const inputPath =
|
|
2789
|
+
const inputPath = normalizePath(id.substring(index + virtualId.length));
|
|
2788
2790
|
return resolvedVirtualId + inputPath;
|
|
2789
2791
|
},
|
|
2790
2792
|
async load(id) {
|
|
@@ -3070,11 +3072,11 @@ async function buildSingleEntrypoint(entrypoint, config) {
|
|
|
3070
3072
|
for (const global3 of getEntrypointGlobals(config, entrypoint.name)) {
|
|
3071
3073
|
libMode.define[global3.name] = JSON.stringify(global3.value);
|
|
3072
3074
|
}
|
|
3073
|
-
const entryConfig =
|
|
3075
|
+
const entryConfig = vite.mergeConfig(
|
|
3074
3076
|
libMode,
|
|
3075
3077
|
await config.vite(config.env)
|
|
3076
3078
|
);
|
|
3077
|
-
const result = await
|
|
3079
|
+
const result = await vite.build(entryConfig);
|
|
3078
3080
|
return {
|
|
3079
3081
|
entrypoints: entrypoint,
|
|
3080
3082
|
chunks: getBuildOutputChunks(result)
|
|
@@ -3105,11 +3107,11 @@ async function buildMultipleEntrypoints(entrypoints, config) {
|
|
|
3105
3107
|
for (const global3 of getEntrypointGlobals(config, "html")) {
|
|
3106
3108
|
multiPage.define[global3.name] = JSON.stringify(global3.value);
|
|
3107
3109
|
}
|
|
3108
|
-
const entryConfig =
|
|
3110
|
+
const entryConfig = vite.mergeConfig(
|
|
3109
3111
|
multiPage,
|
|
3110
3112
|
await config.vite(config.env)
|
|
3111
3113
|
);
|
|
3112
|
-
const result = await
|
|
3114
|
+
const result = await vite.build(entryConfig);
|
|
3113
3115
|
return {
|
|
3114
3116
|
entrypoints,
|
|
3115
3117
|
chunks: getBuildOutputChunks(result)
|
|
@@ -3214,7 +3216,7 @@ function detectDevChanges(changedFiles, currentOutput) {
|
|
|
3214
3216
|
}
|
|
3215
3217
|
function findEffectedSteps(changedFile, currentOutput) {
|
|
3216
3218
|
const changes = [];
|
|
3217
|
-
const changedPath =
|
|
3219
|
+
const changedPath = normalizePath(changedFile[1]);
|
|
3218
3220
|
const isChunkEffected = (chunk) => (
|
|
3219
3221
|
// If it's an HTML file with the same path, is is effected because HTML files need to be pre-rendered
|
|
3220
3222
|
// fileName is normalized, relative bundle path
|
|
@@ -3615,7 +3617,7 @@ async function writePathsDeclarationFile(entrypoints, config) {
|
|
|
3615
3617
|
config.outDir,
|
|
3616
3618
|
entry.inputPath.endsWith(".html") ? ".html" : ".js"
|
|
3617
3619
|
)
|
|
3618
|
-
).concat(await getPublicFiles(config)).map(
|
|
3620
|
+
).concat(await getPublicFiles(config)).map(normalizePath).map((path11) => ` | "/${path11}"`).sort().join("\n");
|
|
3619
3621
|
const template = `// Generated by wxt
|
|
3620
3622
|
import "wxt/browser";
|
|
3621
3623
|
|
|
@@ -3710,7 +3712,7 @@ async function writeMainDeclarationFile(references, config) {
|
|
|
3710
3712
|
"// Generated by wxt",
|
|
3711
3713
|
`/// <reference types="vite/client" />`,
|
|
3712
3714
|
...references.map(
|
|
3713
|
-
(ref) => `/// <reference types="./${
|
|
3715
|
+
(ref) => `/// <reference types="./${normalizePath((0, import_path6.relative)(dir, ref))}" />`
|
|
3714
3716
|
)
|
|
3715
3717
|
].join("\n") + "\n"
|
|
3716
3718
|
);
|
|
@@ -3718,7 +3720,7 @@ async function writeMainDeclarationFile(references, config) {
|
|
|
3718
3720
|
}
|
|
3719
3721
|
async function writeTsConfigFile(mainReference, config) {
|
|
3720
3722
|
const dir = config.wxtDir;
|
|
3721
|
-
const getTsconfigPath = (path11) =>
|
|
3723
|
+
const getTsconfigPath = (path11) => normalizePath((0, import_path6.relative)(dir, path11));
|
|
3722
3724
|
const paths = Object.entries(config.alias).flatMap(([alias, absolutePath]) => {
|
|
3723
3725
|
const aliasPath = getTsconfigPath(absolutePath);
|
|
3724
3726
|
return [
|
|
@@ -3755,7 +3757,7 @@ ${paths}
|
|
|
3755
3757
|
// src/core/utils/building/get-internal-config.ts
|
|
3756
3758
|
var import_c12 = require("c12");
|
|
3757
3759
|
var import_node_path7 = __toESM(require("path"), 1);
|
|
3758
|
-
var
|
|
3760
|
+
var vite2 = __toESM(require("vite"), 1);
|
|
3759
3761
|
|
|
3760
3762
|
// src/core/utils/cache.ts
|
|
3761
3763
|
var import_fs_extra7 = __toESM(require("fs-extra"), 1);
|
|
@@ -3781,6 +3783,7 @@ function createFsCache(wxtDir) {
|
|
|
3781
3783
|
|
|
3782
3784
|
// src/core/utils/building/get-internal-config.ts
|
|
3783
3785
|
var import_consola = __toESM(require("consola"), 1);
|
|
3786
|
+
var import_defu = __toESM(require("defu"), 1);
|
|
3784
3787
|
async function getInternalConfig(inlineConfig, command) {
|
|
3785
3788
|
let userConfig = {};
|
|
3786
3789
|
let userConfigMetadata;
|
|
@@ -3882,7 +3885,7 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
3882
3885
|
} else if (userConfig.imports == null && inlineConfig.imports == null) {
|
|
3883
3886
|
imports = void 0;
|
|
3884
3887
|
} else {
|
|
3885
|
-
imports =
|
|
3888
|
+
imports = vite2.mergeConfig(
|
|
3886
3889
|
userConfig.imports ?? {},
|
|
3887
3890
|
inlineConfig.imports ?? {}
|
|
3888
3891
|
);
|
|
@@ -3890,20 +3893,20 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
3890
3893
|
const manifest = async (env) => {
|
|
3891
3894
|
const user = await resolveManifestConfig(env, userConfig.manifest);
|
|
3892
3895
|
const inline = await resolveManifestConfig(env, inlineConfig.manifest);
|
|
3893
|
-
return
|
|
3896
|
+
return vite2.mergeConfig(user, inline);
|
|
3894
3897
|
};
|
|
3895
3898
|
const viteConfig = async (env) => {
|
|
3896
3899
|
const user = await userConfig.vite?.(env);
|
|
3897
3900
|
const inline = await inlineConfig.vite?.(env);
|
|
3898
|
-
return
|
|
3901
|
+
return vite2.mergeConfig(user ?? {}, inline ?? {});
|
|
3899
3902
|
};
|
|
3900
|
-
const runner =
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
+
const runner = (0, import_defu.default)(
|
|
3904
|
+
inlineConfig.runner ?? {},
|
|
3905
|
+
userConfig.runner ?? {}
|
|
3903
3906
|
);
|
|
3904
|
-
const zip2 =
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
+
const zip2 = (0, import_defu.default)(
|
|
3908
|
+
inlineConfig.zip ?? {},
|
|
3909
|
+
userConfig.zip ?? {}
|
|
3907
3910
|
);
|
|
3908
3911
|
return {
|
|
3909
3912
|
root: inlineConfig.root ?? userConfig.root,
|
|
@@ -4052,7 +4055,7 @@ ${noImports}`;
|
|
|
4052
4055
|
var import_esbuild = require("esbuild");
|
|
4053
4056
|
async function importEntrypointFile(path11, config) {
|
|
4054
4057
|
config.logger.debug("Loading file metadata:", path11);
|
|
4055
|
-
const normalPath =
|
|
4058
|
+
const normalPath = normalizePath(path11);
|
|
4056
4059
|
const unimport2 = (0, import_unimport5.createUnimport)({
|
|
4057
4060
|
...getUnimportOptions(config),
|
|
4058
4061
|
// Only allow specific imports, not all from the project
|
|
@@ -4108,7 +4111,7 @@ function getEsbuildOptions(opts) {
|
|
|
4108
4111
|
|
|
4109
4112
|
// src/core/utils/building/internal-build.ts
|
|
4110
4113
|
var import_picocolors4 = __toESM(require("picocolors"), 1);
|
|
4111
|
-
var
|
|
4114
|
+
var vite3 = __toESM(require("vite"), 1);
|
|
4112
4115
|
var import_fs_extra12 = __toESM(require("fs-extra"), 1);
|
|
4113
4116
|
|
|
4114
4117
|
// src/core/utils/log/printBuildSummary.ts
|
|
@@ -4349,7 +4352,7 @@ async function getPackageJson(config) {
|
|
|
4349
4352
|
|
|
4350
4353
|
// src/core/utils/manifest.ts
|
|
4351
4354
|
var import_immer = require("immer");
|
|
4352
|
-
var
|
|
4355
|
+
var import_defu2 = __toESM(require("defu"), 1);
|
|
4353
4356
|
async function writeManifest(manifest, output, config) {
|
|
4354
4357
|
const str = config.mode === "production" ? JSON.stringify(manifest) : JSON.stringify(manifest, null, 2);
|
|
4355
4358
|
await import_fs_extra11.default.ensureDir(config.outDir);
|
|
@@ -4379,9 +4382,9 @@ async function generateMainfest(entrypoints, buildOutput, config) {
|
|
|
4379
4382
|
icons: discoverIcons(buildOutput)
|
|
4380
4383
|
};
|
|
4381
4384
|
const userManifest = config.manifest;
|
|
4382
|
-
const manifest =
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
+
const manifest = (0, import_defu2.default)(
|
|
4386
|
+
userManifest,
|
|
4387
|
+
baseManifest
|
|
4385
4388
|
);
|
|
4386
4389
|
addEntrypoints(manifest, entrypoints, buildOutput, config);
|
|
4387
4390
|
if (config.command === "serve")
|
|
@@ -4640,7 +4643,7 @@ function discoverIcons(buildOutput) {
|
|
|
4640
4643
|
}
|
|
4641
4644
|
if (size == null)
|
|
4642
4645
|
return;
|
|
4643
|
-
icons.push([size,
|
|
4646
|
+
icons.push([size, normalizePath(asset.fileName)]);
|
|
4644
4647
|
});
|
|
4645
4648
|
return icons.length > 0 ? Object.fromEntries(icons) : void 0;
|
|
4646
4649
|
}
|
|
@@ -4780,7 +4783,7 @@ async function internalBuild(config) {
|
|
|
4780
4783
|
const target = `${config.browser}-mv${config.manifestVersion}`;
|
|
4781
4784
|
config.logger.info(
|
|
4782
4785
|
`${verb} ${import_picocolors4.default.cyan(target)} for ${import_picocolors4.default.cyan(config.mode)} with ${import_picocolors4.default.green(
|
|
4783
|
-
`Vite ${
|
|
4786
|
+
`Vite ${vite3.version}`
|
|
4784
4787
|
)}`
|
|
4785
4788
|
);
|
|
4786
4789
|
const startTime = Date.now();
|
|
@@ -4860,7 +4863,7 @@ async function clean(root = process.cwd()) {
|
|
|
4860
4863
|
}
|
|
4861
4864
|
|
|
4862
4865
|
// src/core/create-server.ts
|
|
4863
|
-
var
|
|
4866
|
+
var vite4 = __toESM(require("vite"), 1);
|
|
4864
4867
|
|
|
4865
4868
|
// src/core/runners/wsl.ts
|
|
4866
4869
|
var import_node_path13 = require("path");
|
|
@@ -5077,8 +5080,8 @@ async function getServerInfo() {
|
|
|
5077
5080
|
}
|
|
5078
5081
|
async function setupServer(serverInfo, config) {
|
|
5079
5082
|
const runner = await createExtensionRunner(config);
|
|
5080
|
-
const viteServer = await
|
|
5081
|
-
|
|
5083
|
+
const viteServer = await vite4.createServer(
|
|
5084
|
+
vite4.mergeConfig(serverInfo, await config.vite(config.env))
|
|
5082
5085
|
);
|
|
5083
5086
|
const start = async () => {
|
|
5084
5087
|
await viteServer.listen(server.port);
|
|
@@ -393,7 +393,7 @@ interface BaseEntrypoint {
|
|
|
393
393
|
* - `named.sandbox.html` → `named`
|
|
394
394
|
* - `named.sandbox/index.html` → `named`
|
|
395
395
|
* - `sandbox.html` → `sandbox`
|
|
396
|
-
* - `sandbox
|
|
396
|
+
* - `sandbox/index.html` → `sandbox`
|
|
397
397
|
* - `overlay.content.ts` → `overlay`
|
|
398
398
|
* - `overlay.content/index.ts` → `overlay`
|
|
399
399
|
*
|
package/dist/index.cjs
CHANGED
|
@@ -2317,11 +2317,11 @@ function execaNode(scriptPath, args, options = {}) {
|
|
|
2317
2317
|
const stdio = normalizeStdioNode(options);
|
|
2318
2318
|
const defaultExecArgv = import_node_process4.default.execArgv.filter((arg) => !arg.startsWith("--inspect"));
|
|
2319
2319
|
const {
|
|
2320
|
-
nodePath
|
|
2320
|
+
nodePath = import_node_process4.default.execPath,
|
|
2321
2321
|
nodeOptions = defaultExecArgv
|
|
2322
2322
|
} = options;
|
|
2323
2323
|
return execa(
|
|
2324
|
-
|
|
2324
|
+
nodePath,
|
|
2325
2325
|
[
|
|
2326
2326
|
...nodeOptions,
|
|
2327
2327
|
scriptPath,
|
|
@@ -2428,16 +2428,16 @@ __export(src_exports, {
|
|
|
2428
2428
|
module.exports = __toCommonJS(src_exports);
|
|
2429
2429
|
|
|
2430
2430
|
// src/core/utils/building/build-entrypoints.ts
|
|
2431
|
-
var
|
|
2431
|
+
var vite = __toESM(require("vite"), 1);
|
|
2432
2432
|
|
|
2433
2433
|
// src/core/utils/entrypoints.ts
|
|
2434
2434
|
var import_node_path2 = __toESM(require("path"), 1);
|
|
2435
2435
|
|
|
2436
2436
|
// src/core/utils/paths.ts
|
|
2437
2437
|
var import_node_path = __toESM(require("path"), 1);
|
|
2438
|
-
var
|
|
2439
|
-
function
|
|
2440
|
-
return
|
|
2438
|
+
var import_normalize_path = __toESM(require("normalize-path"), 1);
|
|
2439
|
+
function normalizePath(path11) {
|
|
2440
|
+
return (0, import_normalize_path.default)(path11);
|
|
2441
2441
|
}
|
|
2442
2442
|
function unnormalizePath(path11) {
|
|
2443
2443
|
return import_node_path.default.normalize(path11);
|
|
@@ -2455,7 +2455,7 @@ function getEntrypointOutputFile(entrypoint, ext) {
|
|
|
2455
2455
|
return (0, import_node_path2.resolve)(entrypoint.outputDir, `${entrypoint.name}${ext}`);
|
|
2456
2456
|
}
|
|
2457
2457
|
function getEntrypointBundlePath(entrypoint, outDir, ext) {
|
|
2458
|
-
return
|
|
2458
|
+
return normalizePath(
|
|
2459
2459
|
(0, import_node_path2.relative)(outDir, getEntrypointOutputFile(entrypoint, ext))
|
|
2460
2460
|
);
|
|
2461
2461
|
}
|
|
@@ -2690,7 +2690,7 @@ function multipageMove(entrypoints, config) {
|
|
|
2690
2690
|
async writeBundle(_, bundle) {
|
|
2691
2691
|
for (const oldBundlePath in bundle) {
|
|
2692
2692
|
const entrypoint = entrypoints.find(
|
|
2693
|
-
(entry) => !!
|
|
2693
|
+
(entry) => !!normalizePath(entry.inputPath).endsWith(oldBundlePath)
|
|
2694
2694
|
);
|
|
2695
2695
|
if (entrypoint == null) {
|
|
2696
2696
|
config.logger.debug(
|
|
@@ -2756,14 +2756,14 @@ function getUnimportOptions(config) {
|
|
|
2756
2756
|
|
|
2757
2757
|
// src/core/vite-plugins/unimport.ts
|
|
2758
2758
|
var import_path2 = require("path");
|
|
2759
|
-
var ENABLED_EXTENSIONS =
|
|
2760
|
-
".js"
|
|
2761
|
-
".jsx"
|
|
2762
|
-
".ts"
|
|
2763
|
-
".tsx"
|
|
2764
|
-
".vue"
|
|
2765
|
-
".svelte"
|
|
2766
|
-
|
|
2759
|
+
var ENABLED_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
2760
|
+
".js",
|
|
2761
|
+
".jsx",
|
|
2762
|
+
".ts",
|
|
2763
|
+
".tsx",
|
|
2764
|
+
".vue",
|
|
2765
|
+
".svelte"
|
|
2766
|
+
]);
|
|
2767
2767
|
function unimport(config) {
|
|
2768
2768
|
const options = getUnimportOptions(config);
|
|
2769
2769
|
if (options === false)
|
|
@@ -2775,9 +2775,11 @@ function unimport(config) {
|
|
|
2775
2775
|
await unimport2.scanImportsFromDir(void 0, { cwd: config.srcDir });
|
|
2776
2776
|
},
|
|
2777
2777
|
async transform(code, id) {
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2778
|
+
if (id.includes("node_modules"))
|
|
2779
|
+
return;
|
|
2780
|
+
if (!ENABLED_EXTENSIONS.has((0, import_path2.extname)(id)))
|
|
2781
|
+
return;
|
|
2782
|
+
return unimport2.injectImports(code, id);
|
|
2781
2783
|
}
|
|
2782
2784
|
};
|
|
2783
2785
|
}
|
|
@@ -2794,7 +2796,7 @@ function virtualEntrypoint(type, config) {
|
|
|
2794
2796
|
const index = id.indexOf(virtualId);
|
|
2795
2797
|
if (index === -1)
|
|
2796
2798
|
return;
|
|
2797
|
-
const inputPath =
|
|
2799
|
+
const inputPath = normalizePath(id.substring(index + virtualId.length));
|
|
2798
2800
|
return resolvedVirtualId + inputPath;
|
|
2799
2801
|
},
|
|
2800
2802
|
async load(id) {
|
|
@@ -3080,11 +3082,11 @@ async function buildSingleEntrypoint(entrypoint, config) {
|
|
|
3080
3082
|
for (const global3 of getEntrypointGlobals(config, entrypoint.name)) {
|
|
3081
3083
|
libMode.define[global3.name] = JSON.stringify(global3.value);
|
|
3082
3084
|
}
|
|
3083
|
-
const entryConfig =
|
|
3085
|
+
const entryConfig = vite.mergeConfig(
|
|
3084
3086
|
libMode,
|
|
3085
3087
|
await config.vite(config.env)
|
|
3086
3088
|
);
|
|
3087
|
-
const result = await
|
|
3089
|
+
const result = await vite.build(entryConfig);
|
|
3088
3090
|
return {
|
|
3089
3091
|
entrypoints: entrypoint,
|
|
3090
3092
|
chunks: getBuildOutputChunks(result)
|
|
@@ -3115,11 +3117,11 @@ async function buildMultipleEntrypoints(entrypoints, config) {
|
|
|
3115
3117
|
for (const global3 of getEntrypointGlobals(config, "html")) {
|
|
3116
3118
|
multiPage.define[global3.name] = JSON.stringify(global3.value);
|
|
3117
3119
|
}
|
|
3118
|
-
const entryConfig =
|
|
3120
|
+
const entryConfig = vite.mergeConfig(
|
|
3119
3121
|
multiPage,
|
|
3120
3122
|
await config.vite(config.env)
|
|
3121
3123
|
);
|
|
3122
|
-
const result = await
|
|
3124
|
+
const result = await vite.build(entryConfig);
|
|
3123
3125
|
return {
|
|
3124
3126
|
entrypoints,
|
|
3125
3127
|
chunks: getBuildOutputChunks(result)
|
|
@@ -3224,7 +3226,7 @@ function detectDevChanges(changedFiles, currentOutput) {
|
|
|
3224
3226
|
}
|
|
3225
3227
|
function findEffectedSteps(changedFile, currentOutput) {
|
|
3226
3228
|
const changes = [];
|
|
3227
|
-
const changedPath =
|
|
3229
|
+
const changedPath = normalizePath(changedFile[1]);
|
|
3228
3230
|
const isChunkEffected = (chunk) => (
|
|
3229
3231
|
// If it's an HTML file with the same path, is is effected because HTML files need to be pre-rendered
|
|
3230
3232
|
// fileName is normalized, relative bundle path
|
|
@@ -3625,7 +3627,7 @@ async function writePathsDeclarationFile(entrypoints, config) {
|
|
|
3625
3627
|
config.outDir,
|
|
3626
3628
|
entry.inputPath.endsWith(".html") ? ".html" : ".js"
|
|
3627
3629
|
)
|
|
3628
|
-
).concat(await getPublicFiles(config)).map(
|
|
3630
|
+
).concat(await getPublicFiles(config)).map(normalizePath).map((path11) => ` | "/${path11}"`).sort().join("\n");
|
|
3629
3631
|
const template = `// Generated by wxt
|
|
3630
3632
|
import "wxt/browser";
|
|
3631
3633
|
|
|
@@ -3720,7 +3722,7 @@ async function writeMainDeclarationFile(references, config) {
|
|
|
3720
3722
|
"// Generated by wxt",
|
|
3721
3723
|
`/// <reference types="vite/client" />`,
|
|
3722
3724
|
...references.map(
|
|
3723
|
-
(ref) => `/// <reference types="./${
|
|
3725
|
+
(ref) => `/// <reference types="./${normalizePath((0, import_path6.relative)(dir, ref))}" />`
|
|
3724
3726
|
)
|
|
3725
3727
|
].join("\n") + "\n"
|
|
3726
3728
|
);
|
|
@@ -3728,7 +3730,7 @@ async function writeMainDeclarationFile(references, config) {
|
|
|
3728
3730
|
}
|
|
3729
3731
|
async function writeTsConfigFile(mainReference, config) {
|
|
3730
3732
|
const dir = config.wxtDir;
|
|
3731
|
-
const getTsconfigPath = (path11) =>
|
|
3733
|
+
const getTsconfigPath = (path11) => normalizePath((0, import_path6.relative)(dir, path11));
|
|
3732
3734
|
const paths = Object.entries(config.alias).flatMap(([alias, absolutePath]) => {
|
|
3733
3735
|
const aliasPath = getTsconfigPath(absolutePath);
|
|
3734
3736
|
return [
|
|
@@ -3765,7 +3767,7 @@ ${paths}
|
|
|
3765
3767
|
// src/core/utils/building/get-internal-config.ts
|
|
3766
3768
|
var import_c12 = require("c12");
|
|
3767
3769
|
var import_node_path7 = __toESM(require("path"), 1);
|
|
3768
|
-
var
|
|
3770
|
+
var vite2 = __toESM(require("vite"), 1);
|
|
3769
3771
|
|
|
3770
3772
|
// src/core/utils/cache.ts
|
|
3771
3773
|
var import_fs_extra7 = __toESM(require("fs-extra"), 1);
|
|
@@ -3791,6 +3793,7 @@ function createFsCache(wxtDir) {
|
|
|
3791
3793
|
|
|
3792
3794
|
// src/core/utils/building/get-internal-config.ts
|
|
3793
3795
|
var import_consola = __toESM(require("consola"), 1);
|
|
3796
|
+
var import_defu = __toESM(require("defu"), 1);
|
|
3794
3797
|
async function getInternalConfig(inlineConfig, command) {
|
|
3795
3798
|
let userConfig = {};
|
|
3796
3799
|
let userConfigMetadata;
|
|
@@ -3892,7 +3895,7 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
3892
3895
|
} else if (userConfig.imports == null && inlineConfig.imports == null) {
|
|
3893
3896
|
imports = void 0;
|
|
3894
3897
|
} else {
|
|
3895
|
-
imports =
|
|
3898
|
+
imports = vite2.mergeConfig(
|
|
3896
3899
|
userConfig.imports ?? {},
|
|
3897
3900
|
inlineConfig.imports ?? {}
|
|
3898
3901
|
);
|
|
@@ -3900,20 +3903,20 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
3900
3903
|
const manifest = async (env) => {
|
|
3901
3904
|
const user = await resolveManifestConfig(env, userConfig.manifest);
|
|
3902
3905
|
const inline = await resolveManifestConfig(env, inlineConfig.manifest);
|
|
3903
|
-
return
|
|
3906
|
+
return vite2.mergeConfig(user, inline);
|
|
3904
3907
|
};
|
|
3905
3908
|
const viteConfig = async (env) => {
|
|
3906
3909
|
const user = await userConfig.vite?.(env);
|
|
3907
3910
|
const inline = await inlineConfig.vite?.(env);
|
|
3908
|
-
return
|
|
3911
|
+
return vite2.mergeConfig(user ?? {}, inline ?? {});
|
|
3909
3912
|
};
|
|
3910
|
-
const runner =
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
+
const runner = (0, import_defu.default)(
|
|
3914
|
+
inlineConfig.runner ?? {},
|
|
3915
|
+
userConfig.runner ?? {}
|
|
3913
3916
|
);
|
|
3914
|
-
const zip2 =
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
+
const zip2 = (0, import_defu.default)(
|
|
3918
|
+
inlineConfig.zip ?? {},
|
|
3919
|
+
userConfig.zip ?? {}
|
|
3917
3920
|
);
|
|
3918
3921
|
return {
|
|
3919
3922
|
root: inlineConfig.root ?? userConfig.root,
|
|
@@ -4062,7 +4065,7 @@ ${noImports}`;
|
|
|
4062
4065
|
var import_esbuild = require("esbuild");
|
|
4063
4066
|
async function importEntrypointFile(path11, config) {
|
|
4064
4067
|
config.logger.debug("Loading file metadata:", path11);
|
|
4065
|
-
const normalPath =
|
|
4068
|
+
const normalPath = normalizePath(path11);
|
|
4066
4069
|
const unimport2 = (0, import_unimport5.createUnimport)({
|
|
4067
4070
|
...getUnimportOptions(config),
|
|
4068
4071
|
// Only allow specific imports, not all from the project
|
|
@@ -4118,7 +4121,7 @@ function getEsbuildOptions(opts) {
|
|
|
4118
4121
|
|
|
4119
4122
|
// src/core/utils/building/internal-build.ts
|
|
4120
4123
|
var import_picocolors4 = __toESM(require("picocolors"), 1);
|
|
4121
|
-
var
|
|
4124
|
+
var vite3 = __toESM(require("vite"), 1);
|
|
4122
4125
|
var import_fs_extra12 = __toESM(require("fs-extra"), 1);
|
|
4123
4126
|
|
|
4124
4127
|
// src/core/utils/log/printBuildSummary.ts
|
|
@@ -4230,7 +4233,7 @@ function getChunkSortWeight(filename) {
|
|
|
4230
4233
|
var import_picocolors3 = __toESM(require("picocolors"), 1);
|
|
4231
4234
|
|
|
4232
4235
|
// package.json
|
|
4233
|
-
var version = "0.10.
|
|
4236
|
+
var version = "0.10.3";
|
|
4234
4237
|
|
|
4235
4238
|
// src/core/utils/log/printHeader.ts
|
|
4236
4239
|
var import_consola2 = require("consola");
|
|
@@ -4360,7 +4363,7 @@ async function getPackageJson(config) {
|
|
|
4360
4363
|
|
|
4361
4364
|
// src/core/utils/manifest.ts
|
|
4362
4365
|
var import_immer = require("immer");
|
|
4363
|
-
var
|
|
4366
|
+
var import_defu2 = __toESM(require("defu"), 1);
|
|
4364
4367
|
async function writeManifest(manifest, output, config) {
|
|
4365
4368
|
const str = config.mode === "production" ? JSON.stringify(manifest) : JSON.stringify(manifest, null, 2);
|
|
4366
4369
|
await import_fs_extra11.default.ensureDir(config.outDir);
|
|
@@ -4390,9 +4393,9 @@ async function generateMainfest(entrypoints, buildOutput, config) {
|
|
|
4390
4393
|
icons: discoverIcons(buildOutput)
|
|
4391
4394
|
};
|
|
4392
4395
|
const userManifest = config.manifest;
|
|
4393
|
-
const manifest =
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
+
const manifest = (0, import_defu2.default)(
|
|
4397
|
+
userManifest,
|
|
4398
|
+
baseManifest
|
|
4396
4399
|
);
|
|
4397
4400
|
addEntrypoints(manifest, entrypoints, buildOutput, config);
|
|
4398
4401
|
if (config.command === "serve")
|
|
@@ -4651,7 +4654,7 @@ function discoverIcons(buildOutput) {
|
|
|
4651
4654
|
}
|
|
4652
4655
|
if (size == null)
|
|
4653
4656
|
return;
|
|
4654
|
-
icons.push([size,
|
|
4657
|
+
icons.push([size, normalizePath(asset.fileName)]);
|
|
4655
4658
|
});
|
|
4656
4659
|
return icons.length > 0 ? Object.fromEntries(icons) : void 0;
|
|
4657
4660
|
}
|
|
@@ -4791,7 +4794,7 @@ async function internalBuild(config) {
|
|
|
4791
4794
|
const target = `${config.browser}-mv${config.manifestVersion}`;
|
|
4792
4795
|
config.logger.info(
|
|
4793
4796
|
`${verb} ${import_picocolors4.default.cyan(target)} for ${import_picocolors4.default.cyan(config.mode)} with ${import_picocolors4.default.green(
|
|
4794
|
-
`Vite ${
|
|
4797
|
+
`Vite ${vite3.version}`
|
|
4795
4798
|
)}`
|
|
4796
4799
|
);
|
|
4797
4800
|
const startTime = Date.now();
|
|
@@ -4881,7 +4884,7 @@ function defineRunnerConfig(config) {
|
|
|
4881
4884
|
}
|
|
4882
4885
|
|
|
4883
4886
|
// src/core/create-server.ts
|
|
4884
|
-
var
|
|
4887
|
+
var vite4 = __toESM(require("vite"), 1);
|
|
4885
4888
|
|
|
4886
4889
|
// src/core/runners/wsl.ts
|
|
4887
4890
|
var import_node_path13 = require("path");
|
|
@@ -5098,8 +5101,8 @@ async function getServerInfo() {
|
|
|
5098
5101
|
}
|
|
5099
5102
|
async function setupServer(serverInfo, config) {
|
|
5100
5103
|
const runner = await createExtensionRunner(config);
|
|
5101
|
-
const viteServer = await
|
|
5102
|
-
|
|
5104
|
+
const viteServer = await vite4.createServer(
|
|
5105
|
+
vite4.mergeConfig(serverInfo, await config.vite(config.env))
|
|
5103
5106
|
);
|
|
5104
5107
|
const start = async () => {
|
|
5105
5108
|
await viteServer.listen(server.port);
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I as InlineConfig, B as BuildOutput, U as UserConfig, E as ExtensionRunnerConfig, W as WxtDevServer } from './external-
|
|
2
|
-
export { k as BackgroundDefinition, f as BackgroundEntrypoint, e as BaseEntrypoint, d as BaseEntrypointOptions, b as BuildStepOutput, q as ConfigEnv, j as ContentScriptDefinition, C as ContentScriptEntrypoint, g as Entrypoint, h as EntrypointGroup, n as ExcludableEntrypoint, G as GenericEntrypoint, L as Logger, i as OnContentScriptStopped, O as OptionsEntrypoint, m as PerBrowserOption, P as PopupEntrypoint, T as TargetBrowser, c as TargetManifestVersion, l as UnlistedScriptDefinition, o as UserManifest, p as UserManifestFn, a as WxtInlineViteConfig, r as WxtViteConfig } from './external-
|
|
1
|
+
import { I as InlineConfig, B as BuildOutput, U as UserConfig, E as ExtensionRunnerConfig, W as WxtDevServer } from './external-d75ae6fd.js';
|
|
2
|
+
export { k as BackgroundDefinition, f as BackgroundEntrypoint, e as BaseEntrypoint, d as BaseEntrypointOptions, b as BuildStepOutput, q as ConfigEnv, j as ContentScriptDefinition, C as ContentScriptEntrypoint, g as Entrypoint, h as EntrypointGroup, n as ExcludableEntrypoint, G as GenericEntrypoint, L as Logger, i as OnContentScriptStopped, O as OptionsEntrypoint, m as PerBrowserOption, P as PopupEntrypoint, T as TargetBrowser, c as TargetManifestVersion, l as UnlistedScriptDefinition, o as UserManifest, p as UserManifestFn, a as WxtInlineViteConfig, r as WxtViteConfig } from './external-d75ae6fd.js';
|
|
3
3
|
import 'vite';
|
|
4
4
|
import 'webextension-polyfill';
|
|
5
5
|
import 'unimport';
|
|
@@ -61,6 +61,6 @@ declare function prepare(config: InlineConfig): Promise<void>;
|
|
|
61
61
|
*/
|
|
62
62
|
declare function zip(config?: InlineConfig): Promise<string[]>;
|
|
63
63
|
|
|
64
|
-
var version = "0.10.
|
|
64
|
+
var version = "0.10.3";
|
|
65
65
|
|
|
66
66
|
export { BuildOutput, ExtensionRunnerConfig, InlineConfig, UserConfig, WxtDevServer, build, clean, createServer, defineConfig, defineRunnerConfig, initialize, prepare, version, zip };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I as InlineConfig, B as BuildOutput, U as UserConfig, E as ExtensionRunnerConfig, W as WxtDevServer } from './external-
|
|
2
|
-
export { k as BackgroundDefinition, f as BackgroundEntrypoint, e as BaseEntrypoint, d as BaseEntrypointOptions, b as BuildStepOutput, q as ConfigEnv, j as ContentScriptDefinition, C as ContentScriptEntrypoint, g as Entrypoint, h as EntrypointGroup, n as ExcludableEntrypoint, G as GenericEntrypoint, L as Logger, i as OnContentScriptStopped, O as OptionsEntrypoint, m as PerBrowserOption, P as PopupEntrypoint, T as TargetBrowser, c as TargetManifestVersion, l as UnlistedScriptDefinition, o as UserManifest, p as UserManifestFn, a as WxtInlineViteConfig, r as WxtViteConfig } from './external-
|
|
1
|
+
import { I as InlineConfig, B as BuildOutput, U as UserConfig, E as ExtensionRunnerConfig, W as WxtDevServer } from './external-d75ae6fd.js';
|
|
2
|
+
export { k as BackgroundDefinition, f as BackgroundEntrypoint, e as BaseEntrypoint, d as BaseEntrypointOptions, b as BuildStepOutput, q as ConfigEnv, j as ContentScriptDefinition, C as ContentScriptEntrypoint, g as Entrypoint, h as EntrypointGroup, n as ExcludableEntrypoint, G as GenericEntrypoint, L as Logger, i as OnContentScriptStopped, O as OptionsEntrypoint, m as PerBrowserOption, P as PopupEntrypoint, T as TargetBrowser, c as TargetManifestVersion, l as UnlistedScriptDefinition, o as UserManifest, p as UserManifestFn, a as WxtInlineViteConfig, r as WxtViteConfig } from './external-d75ae6fd.js';
|
|
3
3
|
import 'vite';
|
|
4
4
|
import 'webextension-polyfill';
|
|
5
5
|
import 'unimport';
|
|
@@ -61,6 +61,6 @@ declare function prepare(config: InlineConfig): Promise<void>;
|
|
|
61
61
|
*/
|
|
62
62
|
declare function zip(config?: InlineConfig): Promise<string[]>;
|
|
63
63
|
|
|
64
|
-
var version = "0.10.
|
|
64
|
+
var version = "0.10.3";
|
|
65
65
|
|
|
66
66
|
export { BuildOutput, ExtensionRunnerConfig, InlineConfig, UserConfig, WxtDevServer, build, clean, createServer, defineConfig, defineRunnerConfig, initialize, prepare, version, zip };
|
package/dist/index.js
CHANGED
package/dist/testing.cjs
CHANGED
|
@@ -43,9 +43,9 @@ var import_node_path2 = __toESM(require("path"), 1);
|
|
|
43
43
|
|
|
44
44
|
// src/core/utils/paths.ts
|
|
45
45
|
var import_node_path = __toESM(require("path"), 1);
|
|
46
|
-
var
|
|
47
|
-
function
|
|
48
|
-
return
|
|
46
|
+
var import_normalize_path = __toESM(require("normalize-path"), 1);
|
|
47
|
+
function normalizePath(path7) {
|
|
48
|
+
return (0, import_normalize_path.default)(path7);
|
|
49
49
|
}
|
|
50
50
|
var CSS_EXTENSIONS = ["css", "scss", "sass", "less", "styl", "stylus"];
|
|
51
51
|
var CSS_EXTENSIONS_PATTERN = `+(${CSS_EXTENSIONS.join("|")})`;
|
|
@@ -299,14 +299,14 @@ function getUnimportOptions(config) {
|
|
|
299
299
|
|
|
300
300
|
// src/core/vite-plugins/unimport.ts
|
|
301
301
|
var import_path2 = require("path");
|
|
302
|
-
var ENABLED_EXTENSIONS =
|
|
303
|
-
".js"
|
|
304
|
-
".jsx"
|
|
305
|
-
".ts"
|
|
306
|
-
".tsx"
|
|
307
|
-
".vue"
|
|
308
|
-
".svelte"
|
|
309
|
-
|
|
302
|
+
var ENABLED_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
303
|
+
".js",
|
|
304
|
+
".jsx",
|
|
305
|
+
".ts",
|
|
306
|
+
".tsx",
|
|
307
|
+
".vue",
|
|
308
|
+
".svelte"
|
|
309
|
+
]);
|
|
310
310
|
function unimport(config) {
|
|
311
311
|
const options = getUnimportOptions(config);
|
|
312
312
|
if (options === false)
|
|
@@ -318,9 +318,11 @@ function unimport(config) {
|
|
|
318
318
|
await unimport2.scanImportsFromDir(void 0, { cwd: config.srcDir });
|
|
319
319
|
},
|
|
320
320
|
async transform(code, id) {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
321
|
+
if (id.includes("node_modules"))
|
|
322
|
+
return;
|
|
323
|
+
if (!ENABLED_EXTENSIONS.has((0, import_path2.extname)(id)))
|
|
324
|
+
return;
|
|
325
|
+
return unimport2.injectImports(code, id);
|
|
324
326
|
}
|
|
325
327
|
};
|
|
326
328
|
}
|
|
@@ -337,7 +339,7 @@ function virtualEntrypoint(type, config) {
|
|
|
337
339
|
const index = id.indexOf(virtualId);
|
|
338
340
|
if (index === -1)
|
|
339
341
|
return;
|
|
340
|
-
const inputPath =
|
|
342
|
+
const inputPath = normalizePath(id.substring(index + virtualId.length));
|
|
341
343
|
return resolvedVirtualId + inputPath;
|
|
342
344
|
},
|
|
343
345
|
async load(id) {
|
|
@@ -530,7 +532,7 @@ function excludeBrowserPolyfill(config) {
|
|
|
530
532
|
}
|
|
531
533
|
|
|
532
534
|
// src/core/utils/building/build-entrypoints.ts
|
|
533
|
-
var
|
|
535
|
+
var vite = __toESM(require("vite"), 1);
|
|
534
536
|
|
|
535
537
|
// src/core/utils/fs.ts
|
|
536
538
|
var import_fs_extra3 = __toESM(require("fs-extra"), 1);
|
|
@@ -603,7 +605,7 @@ var import_node_path6 = __toESM(require("path"), 1);
|
|
|
603
605
|
// src/core/utils/building/get-internal-config.ts
|
|
604
606
|
var import_c12 = require("c12");
|
|
605
607
|
var import_node_path7 = __toESM(require("path"), 1);
|
|
606
|
-
var
|
|
608
|
+
var vite2 = __toESM(require("vite"), 1);
|
|
607
609
|
|
|
608
610
|
// src/core/utils/cache.ts
|
|
609
611
|
var import_fs_extra7 = __toESM(require("fs-extra"), 1);
|
|
@@ -629,6 +631,7 @@ function createFsCache(wxtDir) {
|
|
|
629
631
|
|
|
630
632
|
// src/core/utils/building/get-internal-config.ts
|
|
631
633
|
var import_consola = __toESM(require("consola"), 1);
|
|
634
|
+
var import_defu = __toESM(require("defu"), 1);
|
|
632
635
|
async function getInternalConfig(inlineConfig, command) {
|
|
633
636
|
let userConfig = {};
|
|
634
637
|
let userConfigMetadata;
|
|
@@ -730,7 +733,7 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
730
733
|
} else if (userConfig.imports == null && inlineConfig.imports == null) {
|
|
731
734
|
imports = void 0;
|
|
732
735
|
} else {
|
|
733
|
-
imports =
|
|
736
|
+
imports = vite2.mergeConfig(
|
|
734
737
|
userConfig.imports ?? {},
|
|
735
738
|
inlineConfig.imports ?? {}
|
|
736
739
|
);
|
|
@@ -738,20 +741,20 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
738
741
|
const manifest = async (env) => {
|
|
739
742
|
const user = await resolveManifestConfig(env, userConfig.manifest);
|
|
740
743
|
const inline = await resolveManifestConfig(env, inlineConfig.manifest);
|
|
741
|
-
return
|
|
744
|
+
return vite2.mergeConfig(user, inline);
|
|
742
745
|
};
|
|
743
746
|
const viteConfig = async (env) => {
|
|
744
747
|
const user = await userConfig.vite?.(env);
|
|
745
748
|
const inline = await inlineConfig.vite?.(env);
|
|
746
|
-
return
|
|
749
|
+
return vite2.mergeConfig(user ?? {}, inline ?? {});
|
|
747
750
|
};
|
|
748
|
-
const runner =
|
|
749
|
-
|
|
750
|
-
|
|
751
|
+
const runner = (0, import_defu.default)(
|
|
752
|
+
inlineConfig.runner ?? {},
|
|
753
|
+
userConfig.runner ?? {}
|
|
751
754
|
);
|
|
752
|
-
const zip =
|
|
753
|
-
|
|
754
|
-
|
|
755
|
+
const zip = (0, import_defu.default)(
|
|
756
|
+
inlineConfig.zip ?? {},
|
|
757
|
+
userConfig.zip ?? {}
|
|
755
758
|
);
|
|
756
759
|
return {
|
|
757
760
|
root: inlineConfig.root ?? userConfig.root,
|
|
@@ -844,7 +847,7 @@ var import_esbuild = require("esbuild");
|
|
|
844
847
|
|
|
845
848
|
// src/core/utils/building/internal-build.ts
|
|
846
849
|
var import_picocolors4 = __toESM(require("picocolors"), 1);
|
|
847
|
-
var
|
|
850
|
+
var vite3 = __toESM(require("vite"), 1);
|
|
848
851
|
var import_fs_extra12 = __toESM(require("fs-extra"), 1);
|
|
849
852
|
|
|
850
853
|
// src/core/utils/log/printFileList.ts
|
|
@@ -881,7 +884,7 @@ var import_fs_extra10 = __toESM(require("fs-extra"), 1);
|
|
|
881
884
|
|
|
882
885
|
// src/core/utils/manifest.ts
|
|
883
886
|
var import_immer = require("immer");
|
|
884
|
-
var
|
|
887
|
+
var import_defu2 = __toESM(require("defu"), 1);
|
|
885
888
|
|
|
886
889
|
// src/testing/wxt-vitest-plugin.ts
|
|
887
890
|
function WxtVitest(inlineConfig) {
|
package/dist/testing.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { FakeBrowser, fakeBrowser } from '@webext-core/fake-browser';
|
|
2
2
|
import * as vite from 'vite';
|
|
3
|
-
import { I as InlineConfig } from './external-
|
|
3
|
+
import { I as InlineConfig } from './external-d75ae6fd.js';
|
|
4
4
|
import 'webextension-polyfill';
|
|
5
5
|
import 'unimport';
|
|
6
6
|
import 'consola';
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { FakeBrowser, fakeBrowser } from '@webext-core/fake-browser';
|
|
2
2
|
import * as vite from 'vite';
|
|
3
|
-
import { I as InlineConfig } from './external-
|
|
3
|
+
import { I as InlineConfig } from './external-d75ae6fd.js';
|
|
4
4
|
import 'webextension-polyfill';
|
|
5
5
|
import 'unimport';
|
|
6
6
|
import 'consola';
|
package/dist/testing.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { fakeBrowser } from "@webext-core/fake-browser";
|
|
3
3
|
|
|
4
4
|
// src/core/utils/paths.ts
|
|
5
|
-
import
|
|
5
|
+
import normalize from "normalize-path";
|
|
6
6
|
var CSS_EXTENSIONS = ["css", "scss", "sass", "less", "styl", "stylus"];
|
|
7
7
|
var CSS_EXTENSIONS_PATTERN = `+(${CSS_EXTENSIONS.join("|")})`;
|
|
8
8
|
|
|
@@ -28,7 +28,7 @@ var VIRTUAL_NOOP_BACKGROUND_MODULE_ID = "virtual:user-background";
|
|
|
28
28
|
import { visualizer } from "rollup-plugin-visualizer";
|
|
29
29
|
|
|
30
30
|
// src/core/utils/building/build-entrypoints.ts
|
|
31
|
-
import * as
|
|
31
|
+
import * as vite from "vite";
|
|
32
32
|
|
|
33
33
|
// src/core/utils/fs.ts
|
|
34
34
|
import fs3 from "fs-extra";
|
|
@@ -92,13 +92,14 @@ import fs6 from "fs-extra";
|
|
|
92
92
|
|
|
93
93
|
// src/core/utils/building/get-internal-config.ts
|
|
94
94
|
import { loadConfig } from "c12";
|
|
95
|
-
import * as
|
|
95
|
+
import * as vite2 from "vite";
|
|
96
96
|
|
|
97
97
|
// src/core/utils/cache.ts
|
|
98
98
|
import fs7, { ensureDir as ensureDir2 } from "fs-extra";
|
|
99
99
|
|
|
100
100
|
// src/core/utils/building/get-internal-config.ts
|
|
101
101
|
import consola, { LogLevels } from "consola";
|
|
102
|
+
import defu from "defu";
|
|
102
103
|
|
|
103
104
|
// src/core/utils/building/import-entrypoint.ts
|
|
104
105
|
import createJITI from "jiti";
|
|
@@ -108,7 +109,7 @@ import { transformSync } from "esbuild";
|
|
|
108
109
|
|
|
109
110
|
// src/core/utils/building/internal-build.ts
|
|
110
111
|
import pc4 from "picocolors";
|
|
111
|
-
import * as
|
|
112
|
+
import * as vite3 from "vite";
|
|
112
113
|
import fs12 from "fs-extra";
|
|
113
114
|
|
|
114
115
|
// src/core/utils/log/printFileList.ts
|
|
@@ -143,7 +144,7 @@ import fs10 from "fs-extra";
|
|
|
143
144
|
|
|
144
145
|
// src/core/utils/manifest.ts
|
|
145
146
|
import { produce } from "immer";
|
|
146
|
-
import
|
|
147
|
+
import defu2 from "defu";
|
|
147
148
|
|
|
148
149
|
// src/virtual/mock-browser.ts
|
|
149
150
|
var mock_browser_default = fakeBrowser;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wxt",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.10.
|
|
4
|
+
"version": "0.10.3",
|
|
5
5
|
"description": "Next gen framework for developing web extensions",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=18",
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
"c12": "^1.5.1",
|
|
73
73
|
"cac": "^6.7.14",
|
|
74
74
|
"consola": "^3.2.3",
|
|
75
|
+
"defu": "^6.1.3",
|
|
75
76
|
"esbuild": "^0.19.5",
|
|
76
77
|
"fast-glob": "^3.3.1",
|
|
77
78
|
"filesize": "^10.0.8",
|
|
@@ -84,6 +85,7 @@
|
|
|
84
85
|
"json5": "^2.2.3",
|
|
85
86
|
"linkedom": "^0.16.1",
|
|
86
87
|
"minimatch": "^9.0.3",
|
|
88
|
+
"normalize-path": "^3.0.0",
|
|
87
89
|
"ora": "^7.0.1",
|
|
88
90
|
"picocolors": "^1.0.0",
|
|
89
91
|
"prompts": "^2.4.2",
|
|
@@ -100,6 +102,7 @@
|
|
|
100
102
|
"@types/fs-extra": "^11.0.3",
|
|
101
103
|
"@types/lodash.merge": "^4.6.8",
|
|
102
104
|
"@types/node": "^20.8.10",
|
|
105
|
+
"@types/normalize-path": "^3.0.2",
|
|
103
106
|
"@types/prompts": "^2.4.7",
|
|
104
107
|
"@vitest/coverage-v8": "^0.34.6",
|
|
105
108
|
"execa": "^8.0.1",
|
|
@@ -112,10 +115,10 @@
|
|
|
112
115
|
"simple-git-hooks": "^2.9.0",
|
|
113
116
|
"tsup": "^7.2.0",
|
|
114
117
|
"tsx": "^3.12.7",
|
|
115
|
-
"typedoc": "^0.25.
|
|
118
|
+
"typedoc": "^0.25.4",
|
|
116
119
|
"typedoc-plugin-markdown": "4.0.0-next.23",
|
|
117
120
|
"typedoc-vitepress-theme": "1.0.0-next.3",
|
|
118
|
-
"typescript": "^5.
|
|
121
|
+
"typescript": "^5.3.2",
|
|
119
122
|
"vitepress": "1.0.0-rc.24",
|
|
120
123
|
"vitest": "^0.34.6",
|
|
121
124
|
"vitest-mock-extended": "^1.3.1",
|