tsdown 0.15.2 → 0.15.4
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/index.mjs +1 -1
- package/dist/{migrate-D3HWK6xC.mjs → migrate-BsOBsX36.mjs} +1 -1
- package/dist/package-CtgHh8kt.mjs +5 -0
- package/dist/plugins.mjs +1 -1
- package/dist/run.mjs +6 -6
- package/dist/{src-CJAG-MXu.mjs → src-BouWk1_F.mjs} +41 -38
- package/package.json +2 -2
- package/dist/package-13Z93fyS.mjs +0 -5
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineConfig } from "./config-CCGWF4al.mjs";
|
|
2
|
-
import { build, buildSingle, shimFile } from "./src-
|
|
2
|
+
import { build, buildSingle, shimFile } from "./src-BouWk1_F.mjs";
|
|
3
3
|
import { globalLogger } from "./logger-C09npKHT.mjs";
|
|
4
4
|
|
|
5
5
|
export { build, buildSingle, defineConfig, globalLogger, shimFile };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { globalLogger } from "./logger-C09npKHT.mjs";
|
|
2
|
-
import { version } from "./package-
|
|
2
|
+
import { version } from "./package-CtgHh8kt.mjs";
|
|
3
3
|
import process from "node:process";
|
|
4
4
|
import { bold, green, underline } from "ansis";
|
|
5
5
|
import { readFile, unlink, writeFile } from "node:fs/promises";
|
package/dist/plugins.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./config-CCGWF4al.mjs";
|
|
2
|
-
import { ExternalPlugin, NodeProtocolPlugin, ReportPlugin, ShebangPlugin } from "./src-
|
|
2
|
+
import { ExternalPlugin, NodeProtocolPlugin, ReportPlugin, ShebangPlugin } from "./src-BouWk1_F.mjs";
|
|
3
3
|
import "./logger-C09npKHT.mjs";
|
|
4
4
|
|
|
5
5
|
export { ExternalPlugin, NodeProtocolPlugin, ReportPlugin, ShebangPlugin };
|
package/dist/run.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { globalLogger, resolveComma, toArray } from "./logger-C09npKHT.mjs";
|
|
3
|
-
import { version } from "./package-
|
|
3
|
+
import { version } from "./package-CtgHh8kt.mjs";
|
|
4
4
|
import module from "node:module";
|
|
5
5
|
import process from "node:process";
|
|
6
6
|
import { dim } from "ansis";
|
|
7
7
|
import { VERSION } from "rolldown";
|
|
8
|
-
import
|
|
8
|
+
import Debug from "debug";
|
|
9
9
|
import { cac } from "cac";
|
|
10
10
|
|
|
11
11
|
//#region src/cli.ts
|
|
@@ -22,7 +22,7 @@ cli.command("[...files]", "Bundle files", {
|
|
|
22
22
|
await build$1(flags);
|
|
23
23
|
});
|
|
24
24
|
cli.command("migrate", "Migrate from tsup to tsdown").option("-c, --cwd <dir>", "Working directory").option("-d, --dry-run", "Dry run").action(async (args) => {
|
|
25
|
-
const { migrate } = await import("./migrate-
|
|
25
|
+
const { migrate } = await import("./migrate-BsOBsX36.mjs");
|
|
26
26
|
await migrate(args);
|
|
27
27
|
});
|
|
28
28
|
async function runCLI() {
|
|
@@ -31,10 +31,10 @@ async function runCLI() {
|
|
|
31
31
|
let namespace;
|
|
32
32
|
if (cli.options.debug === true) namespace = "tsdown:*";
|
|
33
33
|
else namespace = resolveComma(toArray(cli.options.debug)).map((v) => `tsdown:${v}`).join(",");
|
|
34
|
-
const enabled =
|
|
34
|
+
const enabled = Debug.disable();
|
|
35
35
|
if (enabled) namespace += `,${enabled}`;
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
Debug.enable(namespace);
|
|
37
|
+
Debug("tsdown:debug")("Debugging enabled", namespace);
|
|
38
38
|
}
|
|
39
39
|
try {
|
|
40
40
|
await cli.runMatchedCommand();
|
|
@@ -11,7 +11,7 @@ import child_process from "node:child_process";
|
|
|
11
11
|
import { access, chmod, cp, mkdtemp, readFile, rm, stat, writeFile } from "node:fs/promises";
|
|
12
12
|
import { tmpdir } from "node:os";
|
|
13
13
|
import { promisify } from "node:util";
|
|
14
|
-
import
|
|
14
|
+
import Debug from "debug";
|
|
15
15
|
import coerce from "semver/functions/coerce.js";
|
|
16
16
|
import satisfies from "semver/functions/satisfies.js";
|
|
17
17
|
import { glob } from "tinyglobby";
|
|
@@ -67,7 +67,7 @@ function lowestCommonAncestor(...filepaths) {
|
|
|
67
67
|
|
|
68
68
|
//#endregion
|
|
69
69
|
//#region src/features/attw.ts
|
|
70
|
-
const debug$
|
|
70
|
+
const debug$7 = Debug("tsdown:attw");
|
|
71
71
|
const exec$1 = promisify(child_process.exec);
|
|
72
72
|
/**
|
|
73
73
|
* ATTW profiles.
|
|
@@ -113,7 +113,7 @@ async function attw(options) {
|
|
|
113
113
|
}
|
|
114
114
|
const { profile = "strict", level = "warn",...attwOptions } = options.attw === true ? {} : options.attw;
|
|
115
115
|
const t = performance.now();
|
|
116
|
-
debug$
|
|
116
|
+
debug$7("Running attw check");
|
|
117
117
|
const tempDir = await mkdtemp(path.join(tmpdir(), "tsdown-attw-"));
|
|
118
118
|
let attwCore;
|
|
119
119
|
try {
|
|
@@ -133,7 +133,7 @@ async function attw(options) {
|
|
|
133
133
|
const tarball = await readFile(tarballPath);
|
|
134
134
|
const pkg = attwCore.createPackageFromTarballData(tarball);
|
|
135
135
|
const checkResult = await attwCore.checkPackage(pkg, attwOptions);
|
|
136
|
-
if (checkResult.types !== false && checkResult.problems) {
|
|
136
|
+
if (checkResult.types !== false && checkResult.problems.length) {
|
|
137
137
|
const problems = checkResult.problems.filter((problem) => {
|
|
138
138
|
if ("resolutionKind" in problem) return !profiles[profile]?.includes(problem.resolutionKind);
|
|
139
139
|
return true;
|
|
@@ -146,7 +146,7 @@ async function attw(options) {
|
|
|
146
146
|
} else options.logger.success(`No Are the types wrong problems found`, dim`(${Math.round(performance.now() - t)}ms)`);
|
|
147
147
|
} catch (error) {
|
|
148
148
|
options.logger.error("ATTW check failed:", error);
|
|
149
|
-
debug$
|
|
149
|
+
debug$7("Found errors, setting exit code to 1");
|
|
150
150
|
process.exitCode = 1;
|
|
151
151
|
} finally {
|
|
152
152
|
await fsRemove(tempDir);
|
|
@@ -170,7 +170,7 @@ function warnLegacyCJS(config) {
|
|
|
170
170
|
|
|
171
171
|
//#endregion
|
|
172
172
|
//#region src/features/clean.ts
|
|
173
|
-
const debug$
|
|
173
|
+
const debug$6 = Debug("tsdown:clean");
|
|
174
174
|
const RE_LAST_SLASH = /[/\\]$/;
|
|
175
175
|
async function cleanOutDir(configs) {
|
|
176
176
|
const removes = /* @__PURE__ */ new Set();
|
|
@@ -187,10 +187,10 @@ async function cleanOutDir(configs) {
|
|
|
187
187
|
if (!removes.size) return;
|
|
188
188
|
globalLogger.info(`Cleaning ${removes.size} files`);
|
|
189
189
|
await Promise.all([...removes].map(async (file) => {
|
|
190
|
-
debug$
|
|
190
|
+
debug$6("Removing", file);
|
|
191
191
|
await fsRemove(file);
|
|
192
192
|
}));
|
|
193
|
-
debug$
|
|
193
|
+
debug$6("Removed %d files", removes.size);
|
|
194
194
|
}
|
|
195
195
|
function resolveClean(clean, outDir, cwd) {
|
|
196
196
|
if (clean === true) clean = [slash(outDir)];
|
|
@@ -348,7 +348,7 @@ async function createHooks$1(options) {
|
|
|
348
348
|
|
|
349
349
|
//#endregion
|
|
350
350
|
//#region src/features/publint.ts
|
|
351
|
-
const debug$
|
|
351
|
+
const debug$5 = Debug("tsdown:publint");
|
|
352
352
|
async function publint(options) {
|
|
353
353
|
if (!options.publint) return;
|
|
354
354
|
if (!options.pkg) {
|
|
@@ -356,11 +356,11 @@ async function publint(options) {
|
|
|
356
356
|
return;
|
|
357
357
|
}
|
|
358
358
|
const t = performance.now();
|
|
359
|
-
debug$
|
|
359
|
+
debug$5("Running publint");
|
|
360
360
|
const { publint: publint$1 } = await import("publint");
|
|
361
361
|
const { formatMessage } = await import("publint/utils");
|
|
362
362
|
const { messages } = await publint$1(options.publint === true ? {} : options.publint);
|
|
363
|
-
debug$
|
|
363
|
+
debug$5("Found %d issues", messages.length);
|
|
364
364
|
if (!messages.length) options.logger.success(`No publint issues found`, dim`(${Math.round(performance.now() - t)}ms)`);
|
|
365
365
|
let hasError = false;
|
|
366
366
|
for (const message of messages) {
|
|
@@ -374,7 +374,7 @@ async function publint(options) {
|
|
|
374
374
|
options.logger[logType](formattedMessage);
|
|
375
375
|
}
|
|
376
376
|
if (hasError) {
|
|
377
|
-
debug$
|
|
377
|
+
debug$5("Found errors, setting exit code to 1");
|
|
378
378
|
process.exitCode = 1;
|
|
379
379
|
}
|
|
380
380
|
}
|
|
@@ -460,11 +460,11 @@ async function resolveTsconfig(logger, tsconfig, cwd, name) {
|
|
|
460
460
|
|
|
461
461
|
//#endregion
|
|
462
462
|
//#region src/utils/package.ts
|
|
463
|
-
const debug$
|
|
463
|
+
const debug$4 = Debug("tsdown:package");
|
|
464
464
|
async function readPackageJson(dir) {
|
|
465
465
|
const packageJsonPath = up$1({ cwd: dir });
|
|
466
466
|
if (!packageJsonPath) return;
|
|
467
|
-
debug$
|
|
467
|
+
debug$4("Reading package.json:", packageJsonPath);
|
|
468
468
|
const contents = await readFile(packageJsonPath, "utf8");
|
|
469
469
|
return {
|
|
470
470
|
...JSON.parse(contents),
|
|
@@ -590,7 +590,7 @@ async function nativeImport(id) {
|
|
|
590
590
|
|
|
591
591
|
//#endregion
|
|
592
592
|
//#region src/options/index.ts
|
|
593
|
-
const debug$
|
|
593
|
+
const debug$3 = Debug("tsdown:options");
|
|
594
594
|
const DEFAULT_EXCLUDE_WORKSPACE = [
|
|
595
595
|
"**/node_modules/**",
|
|
596
596
|
"**/dist/**",
|
|
@@ -598,20 +598,20 @@ const DEFAULT_EXCLUDE_WORKSPACE = [
|
|
|
598
598
|
"**/t?(e)mp/**"
|
|
599
599
|
];
|
|
600
600
|
async function resolveOptions(options) {
|
|
601
|
-
debug$
|
|
601
|
+
debug$3("options %O", options);
|
|
602
602
|
const { configs: rootConfigs, file } = await loadConfigFile(options);
|
|
603
603
|
const files = [];
|
|
604
604
|
if (file) {
|
|
605
605
|
files.push(file);
|
|
606
|
-
debug$
|
|
607
|
-
debug$
|
|
608
|
-
} else debug$
|
|
606
|
+
debug$3("loaded root config file %s", file);
|
|
607
|
+
debug$3("root configs %O", rootConfigs);
|
|
608
|
+
} else debug$3("no root config file found");
|
|
609
609
|
const configs = (await Promise.all(rootConfigs.map(async (rootConfig) => {
|
|
610
610
|
const { configs: workspaceConfigs, files: workspaceFiles } = await resolveWorkspace(rootConfig, options);
|
|
611
611
|
if (workspaceFiles) files.push(...workspaceFiles);
|
|
612
612
|
return Promise.all(workspaceConfigs.filter((config) => !config.workspace || config.entry).map((config) => resolveConfig(config)));
|
|
613
613
|
}))).flat();
|
|
614
|
-
debug$
|
|
614
|
+
debug$3("resolved configs %O", configs);
|
|
615
615
|
return {
|
|
616
616
|
configs,
|
|
617
617
|
files
|
|
@@ -654,16 +654,16 @@ async function resolveWorkspace(config, options) {
|
|
|
654
654
|
const files = [];
|
|
655
655
|
return {
|
|
656
656
|
configs: (await Promise.all(packages.map(async (cwd) => {
|
|
657
|
-
debug$
|
|
657
|
+
debug$3("loading workspace config %s", cwd);
|
|
658
658
|
const { configs, file } = await loadConfigFile({
|
|
659
659
|
...options,
|
|
660
660
|
config: workspaceConfig,
|
|
661
661
|
cwd
|
|
662
662
|
}, cwd);
|
|
663
663
|
if (file) {
|
|
664
|
-
debug$
|
|
664
|
+
debug$3("loaded workspace config file %s", file);
|
|
665
665
|
files.push(file);
|
|
666
|
-
} else debug$
|
|
666
|
+
} else debug$3("no workspace config file found in %s", cwd);
|
|
667
667
|
return configs.map((config$1) => ({
|
|
668
668
|
...normalized,
|
|
669
669
|
cwd,
|
|
@@ -700,10 +700,13 @@ async function resolveConfig(userConfig) {
|
|
|
700
700
|
if (fromVite) {
|
|
701
701
|
const viteUserConfig = await loadViteConfig(fromVite === true ? "vite" : fromVite, cwd);
|
|
702
702
|
if (viteUserConfig) {
|
|
703
|
-
if (Array.isArray(alias)) throw new TypeError("Unsupported resolve.alias in Vite config. Use object instead of array");
|
|
704
|
-
if (viteUserConfig.plugins) plugins = [viteUserConfig.plugins, plugins];
|
|
705
703
|
const viteAlias = viteUserConfig.resolve?.alias;
|
|
706
|
-
if (
|
|
704
|
+
if (Array.isArray(viteAlias)) throw new TypeError("Unsupported resolve.alias in Vite config. Use object instead of array");
|
|
705
|
+
if (viteAlias) alias = {
|
|
706
|
+
...alias,
|
|
707
|
+
...viteAlias
|
|
708
|
+
};
|
|
709
|
+
if (viteUserConfig.plugins) plugins = [viteUserConfig.plugins, plugins];
|
|
707
710
|
}
|
|
708
711
|
}
|
|
709
712
|
ignoreWatch = toArray(ignoreWatch).map((ignore) => {
|
|
@@ -759,7 +762,7 @@ async function mergeUserOptions(defaults, user, args) {
|
|
|
759
762
|
|
|
760
763
|
//#endregion
|
|
761
764
|
//#region src/features/external.ts
|
|
762
|
-
const debug$
|
|
765
|
+
const debug$2 = Debug("tsdown:external");
|
|
763
766
|
function ExternalPlugin(options) {
|
|
764
767
|
const deps = options.pkg && Array.from(getProductionDeps(options.pkg));
|
|
765
768
|
return {
|
|
@@ -786,7 +789,7 @@ function ExternalPlugin(options) {
|
|
|
786
789
|
}
|
|
787
790
|
if (deps) shouldExternal ||= deps.some((dep) => id === dep || id.startsWith(`${dep}/`));
|
|
788
791
|
if (shouldExternal) {
|
|
789
|
-
debug$
|
|
792
|
+
debug$2("External dependency:", id);
|
|
790
793
|
return {
|
|
791
794
|
id,
|
|
792
795
|
external: shouldExternal,
|
|
@@ -947,7 +950,7 @@ function formatBytes(bytes) {
|
|
|
947
950
|
|
|
948
951
|
//#endregion
|
|
949
952
|
//#region src/features/report.ts
|
|
950
|
-
const debug$
|
|
953
|
+
const debug$1 = Debug("tsdown:report");
|
|
951
954
|
const brotliCompressAsync = promisify(brotliCompress);
|
|
952
955
|
const gzipAsync = promisify(gzip);
|
|
953
956
|
function ReportPlugin(options, logger, cwd, cjsDts, name, isMultiFormat) {
|
|
@@ -988,19 +991,19 @@ function ReportPlugin(options, logger, cwd, cjsDts, name, isMultiFormat) {
|
|
|
988
991
|
};
|
|
989
992
|
}
|
|
990
993
|
async function calcSize(options, chunk) {
|
|
991
|
-
debug$
|
|
994
|
+
debug$1(`Calculating size for`, chunk.fileName);
|
|
992
995
|
const content = chunk.type === "chunk" ? chunk.code : chunk.source;
|
|
993
996
|
const raw = Buffer.byteLength(content, "utf8");
|
|
994
|
-
debug$
|
|
997
|
+
debug$1("[size]", chunk.fileName, raw);
|
|
995
998
|
let gzip$1 = Infinity;
|
|
996
999
|
let brotli = Infinity;
|
|
997
|
-
if (raw > (options.maxCompressSize ?? 1e6)) debug$
|
|
1000
|
+
if (raw > (options.maxCompressSize ?? 1e6)) debug$1(chunk.fileName, "file size exceeds limit, skip gzip/brotli");
|
|
998
1001
|
else {
|
|
999
1002
|
gzip$1 = (await gzipAsync(content)).length;
|
|
1000
|
-
debug$
|
|
1003
|
+
debug$1("[gzip]", chunk.fileName, gzip$1);
|
|
1001
1004
|
if (options.brotli) {
|
|
1002
1005
|
brotli = (await brotliCompressAsync(content)).length;
|
|
1003
|
-
debug$
|
|
1006
|
+
debug$1("[brotli]", chunk.fileName, brotli);
|
|
1004
1007
|
}
|
|
1005
1008
|
}
|
|
1006
1009
|
return {
|
|
@@ -1047,7 +1050,7 @@ function getShimsInject(format, platform) {
|
|
|
1047
1050
|
|
|
1048
1051
|
//#endregion
|
|
1049
1052
|
//#region src/features/rolldown.ts
|
|
1050
|
-
const debug
|
|
1053
|
+
const debug = Debug("tsdown:rolldown");
|
|
1051
1054
|
async function getBuildOptions(config, format, isMultiFormat, cjsDts = false) {
|
|
1052
1055
|
const inputOptions = await resolveInputOptions(config, format, cjsDts, isMultiFormat);
|
|
1053
1056
|
const outputOptions = await resolveOutputOptions(inputOptions, config, format, cjsDts);
|
|
@@ -1055,7 +1058,7 @@ async function getBuildOptions(config, format, isMultiFormat, cjsDts = false) {
|
|
|
1055
1058
|
...inputOptions,
|
|
1056
1059
|
output: outputOptions
|
|
1057
1060
|
};
|
|
1058
|
-
debug
|
|
1061
|
+
debug("rolldown config with format \"%s\" %O", cjsDts ? "cjs dts" : format, rolldownConfig);
|
|
1059
1062
|
return rolldownConfig;
|
|
1060
1063
|
}
|
|
1061
1064
|
async function resolveInputOptions(config, format, cjsDts, isMultiFormat) {
|
|
@@ -1147,7 +1150,6 @@ function shortcuts(restart) {
|
|
|
1147
1150
|
key: "r",
|
|
1148
1151
|
description: "reload config and rebuild",
|
|
1149
1152
|
action() {
|
|
1150
|
-
rl.close();
|
|
1151
1153
|
restart();
|
|
1152
1154
|
}
|
|
1153
1155
|
},
|
|
@@ -1185,6 +1187,7 @@ function shortcuts(restart) {
|
|
|
1185
1187
|
}
|
|
1186
1188
|
const rl = readline.createInterface({ input: process.stdin });
|
|
1187
1189
|
rl.on("line", onInput);
|
|
1190
|
+
return () => rl.close();
|
|
1188
1191
|
}
|
|
1189
1192
|
|
|
1190
1193
|
//#endregion
|
|
@@ -1242,7 +1245,7 @@ async function build$1(userOptions = {}) {
|
|
|
1242
1245
|
const watcher = await watchBuild(config, configFiles, rebuild, restart);
|
|
1243
1246
|
disposeCbs.push(() => watcher.close());
|
|
1244
1247
|
}
|
|
1245
|
-
if (disposeCbs.length) shortcuts(restart);
|
|
1248
|
+
if (disposeCbs.length) disposeCbs.push(shortcuts(restart));
|
|
1246
1249
|
async function restart() {
|
|
1247
1250
|
for (const dispose of disposeCbs) await dispose();
|
|
1248
1251
|
build$1(userOptions);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tsdown",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.4",
|
|
4
4
|
"description": "The Elegant Bundler for Libraries",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"empathic": "^2.0.0",
|
|
78
78
|
"hookable": "^5.5.3",
|
|
79
79
|
"rolldown": "latest",
|
|
80
|
-
"rolldown-plugin-dts": "^0.16.
|
|
80
|
+
"rolldown-plugin-dts": "^0.16.7",
|
|
81
81
|
"semver": "^7.7.2",
|
|
82
82
|
"tinyexec": "^1.0.1",
|
|
83
83
|
"tinyglobby": "^0.2.15",
|