@d1g1tal/tsbuild 1.6.5 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +80 -0
- package/README.md +23 -7
- package/dist/{GQLOAEUW.js → GNBUFD72.js} +1 -1
- package/dist/{SFYLP6W7.js → QNWF5BZL.js} +16 -36
- package/dist/{7FPDHUPW.js → YC2FB45E.js} +1 -2
- package/dist/index.d.ts +6 -4
- package/dist/index.js +2 -2
- package/dist/tsbuild.js +3 -3
- package/package.json +16 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,83 @@
|
|
|
1
|
+
## [1.7.0](https://github.com/D1g1talEntr0py/tsbuild/compare/v1.6.5...v1.7.0) (2026-03-27)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **build:** add support for ES2025 ScriptTarget (2aecca9dc4ac67cd3e27021e34054a7c7552ebe9)
|
|
6
|
+
- Add `ES2025` targeting map for TS `ScriptTarget.ES2025` so newly produced esbuild configurations will honor it.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **dts:** infer reference types for node protocols and correct module mapping (03c4ec5859b3741b7f30d590b38ea9c729128eea)
|
|
12
|
+
- Add logic in the `DeclarationBundler` to automatically infer `/// <reference types="node" />` when `node:` protocol imports are merged in, so the generated `.d.ts` file remains self-contained.
|
|
13
|
+
- Stop stripping inline `type` keywords from import statements in the `DeclarationProcessor`, preserving them for `.d.ts` output correctness.
|
|
14
|
+
- Remove unused `inlineTypePattern` import due to removing the stripping logic.
|
|
15
|
+
- Fix minor property initialization order formatting in `DeclarationBundler`.
|
|
16
|
+
- Add testing specific to these fixes in `declaration-bundler.test.ts` and `declaration-processor.test.ts`.
|
|
17
|
+
|
|
18
|
+
* **env:** support dynamic process.env extraction in config values (9469b5963d9ac5c1473bf500e96baa841b04b586)
|
|
19
|
+
- Expand `process.env` references dynamically in ESBuild `define` objects to support runtime-bound values instead of just static strings.
|
|
20
|
+
|
|
21
|
+
* **release:** manually update the workspace file since pnpm can't seem to get it right (8795a7497ab9cc26991001ef09145f8d92097841)
|
|
22
|
+
|
|
23
|
+
### Code Refactoring
|
|
24
|
+
|
|
25
|
+
* **core:** simplify promise handling in TypeScript build configuration (e7b154ad9cf38347bf93cb3a48301753cead58e0)
|
|
26
|
+
- Remove intermediate `entryPointsPromise` variable and `.catch()` swallowing since rejection is natively handled when awaited later in the `build()` process.
|
|
27
|
+
- Improve the `tsbuildOptions` setup.
|
|
28
|
+
|
|
29
|
+
* **style:** remove explicit return types and clean up syntax (c306735aefb8ff4d4227f5bdaae21e7d0ed53f32)
|
|
30
|
+
- Remove redundant explicit return types from internal utility functions across several files (`constants`, `decorators`, `dts`, `file-manager`, `files`, `json`, `logger`, `paths`, etc.).
|
|
31
|
+
- Allow TypeScript to infer these return types automatically, reducing visual noise.
|
|
32
|
+
- Simplify closures to arrow functions or shortened arrow syntax where applicable.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Documentation
|
|
36
|
+
|
|
37
|
+
* **EADDRINUSE:** add issue draft for WSL2 network issue (5f5ea0d31f6df8e85a4e586c5f8018a56e5b2702)
|
|
38
|
+
- Add a detailed bug report draft describing the `EADDRINUSE` issue that occurs on every single activation attempt when running under WSL2 with `networkingMode=Mirrored`.
|
|
39
|
+
- Include a minimal reproduction case that demonstrates the underlying Node.js `net.createServer().listen()` race condition in WSL2 mirrored networking.
|
|
40
|
+
- Provide expected behavior and output logs for the VS Code extension failure.
|
|
41
|
+
- Suggest a direct bind and instance retention fix instead of the current close-and-reopen approach.
|
|
42
|
+
|
|
43
|
+
* **README:** update isolatedModules and TS strict requirements (c4a491791b8ad9d90c909ce9a2f8d03e1aeb0521)
|
|
44
|
+
- Update the minimum supported TypeScript badge to `>=5.6.3`.
|
|
45
|
+
- Clarify that `isolatedModules` is strictly required due to the reliance on esbuild for transpilation.
|
|
46
|
+
- Remove the `strict` option note for newer TS versions since it is enabled by default in TypeScript 6.0+.
|
|
47
|
+
- Add an "Advanced Features" section explicitly explaining *why* `isolatedModules` is necessary for esbuild.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
### Miscellaneous Chores
|
|
51
|
+
|
|
52
|
+
* **deps:** update package and lockfile dependencies (5a9f0623ffc63b42ddcdd7d2bc1882510f0a7d60)
|
|
53
|
+
- Update various devDependencies, including `typescript` to `^6.0.2` and related `@typescript-eslint` packages.
|
|
54
|
+
- Update `vitest` and coverage plugins to `^4.1.2`.
|
|
55
|
+
- Remove `@babel/plugin-proposal-decorators` and `@rolldown/plugin-babel` and replace Babel decorator handling in vitest config with a custom `esbuild` transformer.
|
|
56
|
+
- Add a `test:compat` script entry to test against 5 minor versions of TypeScript.
|
|
57
|
+
- Specify a peer dependency requirement for `typescript: >=5.6.3`.
|
|
58
|
+
- Modify `package.json` `types` field.
|
|
59
|
+
- Refresh and resolve `pnpm-lock.yaml` according to the new dependency state.
|
|
60
|
+
|
|
61
|
+
* **vscode:** set TS SDK path in settings (6e6622483d6648ba6cf283b362622665bd1dbede)
|
|
62
|
+
- Configure `.vscode/settings.json` to use the workspace `node_modules/typescript/lib` for the TypeScript language server.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
### Tests
|
|
66
|
+
|
|
67
|
+
* **compat:** introduce multi-version TypeScript testing script (3ad98b8cc914d6e7c37237713b11568e97ef1bbf)
|
|
68
|
+
- Add a new compatibility test script `test-ts-compat.ts` that iterates through minor TypeScript versions dynamically.
|
|
69
|
+
- Conditionally add support for testing `ES2024` and `ES2025` script targets only if the installed version of TS contains them.
|
|
70
|
+
- Implement a comprehensive type-guard/API compatibility test in `typescript-compatibility.test.ts` to guarantee runtime API availability.
|
|
71
|
+
- Update `tsconfig.json` for tests with required strict compatibility changes.
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### Continuous Integration
|
|
75
|
+
|
|
76
|
+
* **github:** add workflow for testing TypeScript compatibility (0c9bbbf8301ad66c4321fa9878169d66bbb1eda7)
|
|
77
|
+
- Create a new GitHub Actions workflow to run the test suite against multiple versions of TypeScript (5.6.3 to 6.0).
|
|
78
|
+
- Ensure backwards compatibility of the tools when run with older minimal supported TypeScript versions.
|
|
79
|
+
- Set up basic jobs utilizing `pnpm` and Node.js 24.
|
|
80
|
+
|
|
1
81
|
## [1.6.5](https://github.com/D1g1talEntr0py/tsbuild/compare/v1.6.4...v1.6.5) (2026-03-21)
|
|
2
82
|
|
|
3
83
|
### Code Refactoring
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://codecov.io/gh/D1g1talEntr0py/tsbuild)
|
|
7
7
|
[](https://github.com/D1g1talEntr0py/tsbuild/blob/main/LICENSE)
|
|
8
8
|
[](https://nodejs.org)
|
|
9
|
-
[](https://www.typescriptlang.org/)
|
|
10
10
|
|
|
11
11
|
A TypeScript build tool that combines three tools into one workflow: **TypeScript's type system** for correctness, **esbuild** for speed, and **SWC** for legacy decorator metadata (optional, not installed by default). Built for modern ESM-only projects on Node.js 22+.
|
|
12
12
|
|
|
@@ -125,8 +125,7 @@ By default, bare specifiers (e.g. `lodash-es`) are kept as external imports. Use
|
|
|
125
125
|
"outDir": "./dist",
|
|
126
126
|
"declaration": true,
|
|
127
127
|
"incremental": true, // redundant — tsbuild enables this by default, but explicit is clear
|
|
128
|
-
"
|
|
129
|
-
"isolatedModules": true,
|
|
128
|
+
"isolatedModules": true, // required — flags constructs esbuild can't safely transpile
|
|
130
129
|
"verbatimModuleSyntax": true,
|
|
131
130
|
"strict": true,
|
|
132
131
|
"target": "ESNext",
|
|
@@ -149,11 +148,10 @@ Set `incremental: false` to opt out of the `.tsbuildinfo` cache entirely. Every
|
|
|
149
148
|
"compilerOptions": {
|
|
150
149
|
"outDir": "./dist",
|
|
151
150
|
"declaration": true,
|
|
152
|
-
"incremental": false,
|
|
153
|
-
"
|
|
154
|
-
"isolatedModules": true,
|
|
151
|
+
"incremental": false, // disables TypeScript's .tsbuildinfo cache and tsbuild's DTS cache
|
|
152
|
+
"isolatedModules": true, // required — flags constructs esbuild can't safely transpile
|
|
155
153
|
"verbatimModuleSyntax": true,
|
|
156
|
-
"strict": true,
|
|
154
|
+
"strict": true, // Not needed with TypeScript 6 and above, since strict mode is enabled by default
|
|
157
155
|
"target": "ESNext",
|
|
158
156
|
"module": "ESNext",
|
|
159
157
|
"moduleResolution": "Bundler", // recommended for library builds processed by a bundler
|
|
@@ -429,6 +427,24 @@ By default, bare specifiers (e.g., `lodash`) are treated as external when `platf
|
|
|
429
427
|
|
|
430
428
|
## Advanced Features
|
|
431
429
|
|
|
430
|
+
### Isolated Modules
|
|
431
|
+
|
|
432
|
+
Because tsbuild uses esbuild for transpilation, and esbuild processes each file independently without a full type graph, you should set `isolatedModules: true` in your `tsconfig.json`:
|
|
433
|
+
|
|
434
|
+
```jsonc
|
|
435
|
+
{
|
|
436
|
+
"compilerOptions": {
|
|
437
|
+
"isolatedModules": true
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
This tells TypeScript to flag any construct that requires cross-file knowledge to transpile correctly — things like `const enum`, ambient module augmentation, or re-exporting a type without the `type` keyword. Without this, esbuild may encounter one of these patterns and silently emit incorrect code, since it has no way to identify the problem at transpile time.
|
|
443
|
+
|
|
444
|
+
With `isolatedModules: true`, TypeScript catches these issues during the type-check phase, before esbuild runs, so you get a clear error instead of a subtle runtime bug.
|
|
445
|
+
|
|
446
|
+
**`verbatimModuleSyntax` implies `isolatedModules`:** If you have `verbatimModuleSyntax: true` in your config, it already enforces all of `isolatedModules` and goes further by requiring `import type` for all type-only imports. If you're using `verbatimModuleSyntax`, adding `isolatedModules` is redundant but harmless.
|
|
447
|
+
|
|
432
448
|
### Decorator Metadata
|
|
433
449
|
|
|
434
450
|
#### TC39 Standard Decorators (recommended)
|
|
@@ -22,14 +22,13 @@ import {
|
|
|
22
22
|
dtsCacheFile,
|
|
23
23
|
dtsCacheVersion,
|
|
24
24
|
format,
|
|
25
|
-
inlineTypePattern,
|
|
26
25
|
newLine,
|
|
27
26
|
processEnvExpansionPattern,
|
|
28
27
|
sourceScriptExtensionExpression,
|
|
29
28
|
toEsTarget,
|
|
30
29
|
toJsxRenderingMode,
|
|
31
30
|
typeMatcher
|
|
32
|
-
} from "./
|
|
31
|
+
} from "./YC2FB45E.js";
|
|
33
32
|
|
|
34
33
|
// src/errors.ts
|
|
35
34
|
import { SyntaxKind } from "typescript";
|
|
@@ -614,29 +613,7 @@ var DeclarationProcessor = class _DeclarationProcessor {
|
|
|
614
613
|
return length;
|
|
615
614
|
}
|
|
616
615
|
for (const node of sourceFile.statements) {
|
|
617
|
-
if (
|
|
618
|
-
if (node.importClause?.phaseModifier === SyntaxKind2.TypeKeyword) {
|
|
619
|
-
const importKeywordEnd = node.getStart() + "import".length;
|
|
620
|
-
const typeMatch = code.slice(importKeywordEnd, node.getEnd()).match(typeMatcher);
|
|
621
|
-
if (typeMatch?.index !== void 0) {
|
|
622
|
-
const typeKeywordStart = importKeywordEnd + typeMatch.index;
|
|
623
|
-
const typeKeywordEnd = typeKeywordStart + "type".length;
|
|
624
|
-
code.remove(typeKeywordStart, typeKeywordEnd + getTrailingWhitespaceLength(typeKeywordEnd, node.getEnd()));
|
|
625
|
-
}
|
|
626
|
-
} else {
|
|
627
|
-
inlineTypePattern.lastIndex = 0;
|
|
628
|
-
let match;
|
|
629
|
-
const replacements = [];
|
|
630
|
-
while ((match = inlineTypePattern.exec(code.slice(node.getStart(), node.getEnd()))) !== null) {
|
|
631
|
-
const typeKeywordStart = node.getStart() + match.index + match[1].length;
|
|
632
|
-
const typeKeywordEnd = typeKeywordStart + "type".length;
|
|
633
|
-
replacements.push({ start: typeKeywordStart, end: typeKeywordEnd + getTrailingWhitespaceLength(typeKeywordEnd, node.getEnd()) });
|
|
634
|
-
}
|
|
635
|
-
for (let i = replacements.length - 1; i >= 0; i--) {
|
|
636
|
-
code.remove(replacements[i].start, replacements[i].end);
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
} else if (isExportDeclaration(node)) {
|
|
616
|
+
if (isExportDeclaration(node)) {
|
|
640
617
|
if (node.exportClause && isNamedExports(node.exportClause) && node.exportClause.elements.length === 0 && !node.moduleSpecifier) {
|
|
641
618
|
code.remove(getStart(node), getEnd(node));
|
|
642
619
|
} else if (node.isTypeOnly) {
|
|
@@ -1295,9 +1272,15 @@ var DeclarationBundler = class {
|
|
|
1295
1272
|
codeBlocks.push(strippedCode.trim());
|
|
1296
1273
|
}
|
|
1297
1274
|
}
|
|
1298
|
-
const
|
|
1275
|
+
const typeReferencesSet = new Set(allTypeReferences);
|
|
1299
1276
|
const uniqueFileReferences = [...new Set(allFileReferences)];
|
|
1300
1277
|
const mergedExternalImports = mergeImports(allExternalImports);
|
|
1278
|
+
for (const imp of mergedExternalImports) {
|
|
1279
|
+
if (imp.includes('"node:') || imp.includes("'node:")) {
|
|
1280
|
+
typeReferencesSet.add("node");
|
|
1281
|
+
}
|
|
1282
|
+
}
|
|
1283
|
+
const uniqueTypeReferences = [...typeReferencesSet];
|
|
1301
1284
|
const finalValueExports = [...new Set(allValueExports)];
|
|
1302
1285
|
const finalValueExportsSet = new Set(finalValueExports);
|
|
1303
1286
|
const finalTypeExports = [...new Set(allTypeExports.filter((typeExport) => !finalValueExportsSet.has(typeExport)))];
|
|
@@ -2100,6 +2083,7 @@ import { performance as performance2 } from "node:perf_hooks";
|
|
|
2100
2083
|
import { sys as sys2, createIncrementalProgram, formatDiagnostics, formatDiagnosticsWithColorAndContext, parseJsonConfigFileContent, readConfigFile, findConfigFile } from "typescript";
|
|
2101
2084
|
var globCharacters = /[*?\\[\]!].*$/;
|
|
2102
2085
|
var domPredicate = (lib) => lib.toUpperCase() === "DOM";
|
|
2086
|
+
var tsLogo = TextFormat.bgBlue(TextFormat.bold(TextFormat.whiteBright(" TS ")));
|
|
2103
2087
|
var diagnosticsHost = { getNewLine: () => sys2.newLine, getCurrentDirectory: sys2.getCurrentDirectory, getCanonicalFileName: (fileName) => fileName };
|
|
2104
2088
|
var _triggerRebuild_dec, _processDeclarations_dec, _transpile_dec, _typeCheck_dec, _build_dec, _TypeScriptProject_decorators, _init3;
|
|
2105
2089
|
_TypeScriptProject_decorators = [closeOnExit], _build_dec = [measure("Build")], _typeCheck_dec = [measure("Type-checking")], _transpile_dec = [measure("Transpile", true)], _processDeclarations_dec = [measure("Bundle Declarations", true)], _triggerRebuild_dec = [debounce(100)];
|
|
@@ -2128,10 +2112,7 @@ var _TypeScriptProject = class _TypeScriptProject {
|
|
|
2128
2112
|
}
|
|
2129
2113
|
this.fileManager = new FileManager(buildCache);
|
|
2130
2114
|
this.builderProgram = createIncrementalProgram({ rootNames, options: this.configuration.compilerOptions, projectReferences, configFileParsingDiagnostics });
|
|
2131
|
-
|
|
2132
|
-
entryPointsPromise.catch(() => {
|
|
2133
|
-
});
|
|
2134
|
-
this.buildConfiguration = { entryPoints: entryPointsPromise, target: toEsTarget(target), outDir, ...tsbuildOptions };
|
|
2115
|
+
this.buildConfiguration = { entryPoints: this.getEntryPoints(entryPoints), target: toEsTarget(target), outDir, ...tsbuildOptions };
|
|
2135
2116
|
}
|
|
2136
2117
|
/**
|
|
2137
2118
|
* Cleans the output directory
|
|
@@ -2141,8 +2122,7 @@ var _TypeScriptProject = class _TypeScriptProject {
|
|
|
2141
2122
|
return Files.empty(this.buildConfiguration.outDir);
|
|
2142
2123
|
}
|
|
2143
2124
|
async build() {
|
|
2144
|
-
|
|
2145
|
-
Logger.header(`${tsLogo} tsbuild v${"1.6.5"}${this.configuration.compilerOptions.incremental && this.configuration.buildCache?.isValid() ? " [incremental]" : ""}`);
|
|
2125
|
+
Logger.header(`${tsLogo} tsbuild v${"1.7.0"}${this.configuration.compilerOptions.incremental && this.configuration.buildCache?.isValid() ? " [incremental]" : ""}`);
|
|
2146
2126
|
try {
|
|
2147
2127
|
const processes = [];
|
|
2148
2128
|
const filesWereEmitted = await this.typeCheck();
|
|
@@ -2201,7 +2181,7 @@ var _TypeScriptProject = class _TypeScriptProject {
|
|
|
2201
2181
|
}
|
|
2202
2182
|
if (this.configuration.compilerOptions.emitDecoratorMetadata) {
|
|
2203
2183
|
try {
|
|
2204
|
-
const { swcDecoratorMetadataPlugin } = await import("./
|
|
2184
|
+
const { swcDecoratorMetadataPlugin } = await import("./GNBUFD72.js");
|
|
2205
2185
|
plugins.push(swcDecoratorMetadataPlugin);
|
|
2206
2186
|
} catch {
|
|
2207
2187
|
throw new ConfigurationError("emitDecoratorMetadata is enabled but @swc/core is not installed. Install it with: pnpm add -D @swc/core");
|
|
@@ -2533,10 +2513,10 @@ var _TypeScriptProject = class _TypeScriptProject {
|
|
|
2533
2513
|
* @returns Elapsed time in milliseconds
|
|
2534
2514
|
*/
|
|
2535
2515
|
static elapsed(markName) {
|
|
2536
|
-
const
|
|
2537
|
-
const ms = ~~(
|
|
2516
|
+
const { name, startTime } = performance2.mark(`${markName}:end`);
|
|
2517
|
+
const ms = ~~(startTime - performance2.getEntriesByName(markName, "mark")[0].startTime);
|
|
2538
2518
|
performance2.clearMarks(markName);
|
|
2539
|
-
performance2.clearMarks(
|
|
2519
|
+
performance2.clearMarks(name);
|
|
2540
2520
|
return ms;
|
|
2541
2521
|
}
|
|
2542
2522
|
};
|
|
@@ -81,6 +81,7 @@ var scriptTargetToEsTarget = {
|
|
|
81
81
|
[ScriptTarget.ES2022]: "ES2022",
|
|
82
82
|
[ScriptTarget.ES2023]: "ES2023",
|
|
83
83
|
[ScriptTarget.ES2024]: "ES2024",
|
|
84
|
+
[ScriptTarget.ES2025]: "ES2025",
|
|
84
85
|
[ScriptTarget.ESNext]: "ESNext",
|
|
85
86
|
[ScriptTarget.JSON]: "ESNext"
|
|
86
87
|
};
|
|
@@ -119,7 +120,6 @@ var typeMatcher = /\btype\b/;
|
|
|
119
120
|
var sourceScriptExtensionExpression = /(?<!\.d)\.[jt]sx?$/;
|
|
120
121
|
var typeScriptExtensionExpression = /(\.tsx?)$/;
|
|
121
122
|
var processEnvExpansionPattern = /\$\{process\.env\.([^}]+)\}/g;
|
|
122
|
-
var inlineTypePattern = /([{,]\s+)type\s+/g;
|
|
123
123
|
|
|
124
124
|
// src/paths.ts
|
|
125
125
|
import { lstat } from "node:fs/promises";
|
|
@@ -279,7 +279,6 @@ export {
|
|
|
279
279
|
sourceScriptExtensionExpression,
|
|
280
280
|
typeScriptExtensionExpression,
|
|
281
281
|
processEnvExpansionPattern,
|
|
282
|
-
inlineTypePattern,
|
|
283
282
|
Paths,
|
|
284
283
|
Json
|
|
285
284
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
|
|
3
|
+
import type { Plugin, TsconfigRaw } from "esbuild";
|
|
4
|
+
import type { FileSystemEvent, WatchrOptions } from "@d1g1tal/watchr";
|
|
5
|
+
import type { CompilerOptions, Diagnostic, ProjectReference, ScriptTarget } from "typescript";
|
|
6
|
+
import type { PerformanceEntry, PerformanceMeasureOptions } from "node:perf_hooks";
|
|
5
7
|
|
|
6
8
|
declare global {
|
|
7
9
|
interface ImportMeta {
|
package/dist/index.js
CHANGED
package/dist/tsbuild.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BuildError,
|
|
4
4
|
TypeScriptProject
|
|
5
|
-
} from "./
|
|
6
|
-
import "./
|
|
5
|
+
} from "./QNWF5BZL.js";
|
|
6
|
+
import "./YC2FB45E.js";
|
|
7
7
|
|
|
8
8
|
// src/tsbuild.ts
|
|
9
9
|
import { sys } from "typescript";
|
|
@@ -30,7 +30,7 @@ if (help) {
|
|
|
30
30
|
process.exit(0);
|
|
31
31
|
}
|
|
32
32
|
if (version) {
|
|
33
|
-
console.log("1.
|
|
33
|
+
console.log("1.7.0");
|
|
34
34
|
process.exit(0);
|
|
35
35
|
}
|
|
36
36
|
var typeScriptOptions = {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d1g1tal/tsbuild",
|
|
3
3
|
"author": "D1g1talEntr0py",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.7.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A fast, ESM-only TypeScript build tool combining the TypeScript API for type checking and declaration generation, esbuild for bundling, and SWC for decorator metadata.",
|
|
7
7
|
"homepage": "https://github.com/D1g1talEntr0py/tsbuild#readme",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"access": "public"
|
|
27
27
|
},
|
|
28
28
|
"type": "module",
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
29
30
|
"exports": {
|
|
30
31
|
".": {
|
|
31
32
|
"types": "./dist/index.d.ts",
|
|
@@ -43,26 +44,27 @@
|
|
|
43
44
|
"tsbuild": "./dist/tsbuild.js"
|
|
44
45
|
},
|
|
45
46
|
"dependencies": {
|
|
46
|
-
"@d1g1tal/watchr": "^1.0.
|
|
47
|
+
"@d1g1tal/watchr": "^1.0.5",
|
|
47
48
|
"esbuild": "^0.27.4",
|
|
48
49
|
"magic-string": "^0.30.21"
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
|
-
"@babel/plugin-proposal-decorators": "^7.29.0",
|
|
52
52
|
"@eslint/js": "^10.0.1",
|
|
53
|
-
"@rolldown/plugin-babel": "^0.2.2",
|
|
54
53
|
"@types/node": "^25.5.0",
|
|
55
|
-
"@typescript-eslint/eslint-plugin": "^8.57.
|
|
56
|
-
"@typescript-eslint/parser": "^8.57.
|
|
57
|
-
"@vitest/coverage-v8": "^4.1.
|
|
54
|
+
"@typescript-eslint/eslint-plugin": "^8.57.2",
|
|
55
|
+
"@typescript-eslint/parser": "^8.57.2",
|
|
56
|
+
"@vitest/coverage-v8": "^4.1.2",
|
|
58
57
|
"eslint": "^10.1.0",
|
|
59
|
-
"eslint-plugin-jsdoc": "^62.8.
|
|
58
|
+
"eslint-plugin-jsdoc": "^62.8.1",
|
|
60
59
|
"fs-monkey": "^1.1.0",
|
|
61
|
-
"memfs": "^4.
|
|
60
|
+
"memfs": "^4.57.1",
|
|
62
61
|
"tsx": "^4.21.0",
|
|
63
|
-
"typescript": "^
|
|
64
|
-
"typescript-eslint": "^8.57.
|
|
65
|
-
"vitest": "^4.1.
|
|
62
|
+
"typescript": "^6.0.2",
|
|
63
|
+
"typescript-eslint": "^8.57.2",
|
|
64
|
+
"vitest": "^4.1.2"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"typescript": ">=5.6.3"
|
|
66
68
|
},
|
|
67
69
|
"keywords": [
|
|
68
70
|
"typescript",
|
|
@@ -83,6 +85,7 @@
|
|
|
83
85
|
"lint": "eslint ./src",
|
|
84
86
|
"test": "vitest run",
|
|
85
87
|
"test:coverage": "vitest run --coverage",
|
|
86
|
-
"test:watch": "vitest"
|
|
88
|
+
"test:watch": "vitest",
|
|
89
|
+
"test:compat": "tsx tests/scripts/test-ts-compat.ts --versions 5"
|
|
87
90
|
}
|
|
88
91
|
}
|