@decohere/forge 0.0.1-dev.19 → 0.0.1-dev.20261105.46
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/LICENSE +15 -0
- package/README.md +152 -0
- package/commonjs/src/actions/build.action.js +4 -6
- package/commonjs/src/actions/clean.action.js +4 -6
- package/commonjs/src/actions/commit.action.js +4 -6
- package/commonjs/src/actions/copy.action.js +62 -12
- package/commonjs/src/actions/dependency-report.action.js +8 -6
- package/commonjs/src/actions/dependency-sync.action.js +9 -5
- package/commonjs/src/actions/docker.action.js +209 -0
- package/commonjs/src/actions/index.js +4 -2
- package/commonjs/src/actions/link.action.js +3 -5
- package/commonjs/src/actions/package.action.js +234 -0
- package/commonjs/src/actions/paths.action.js +120 -0
- package/commonjs/src/actions/publish.action.js +4 -6
- package/commonjs/src/actions/sync-lock-file.action.js +2 -4
- package/commonjs/src/actions/tag.action.js +6 -9
- package/commonjs/src/actions/typecheck.action.js +67 -0
- package/commonjs/src/actions/unlink.action.js +1 -3
- package/commonjs/src/actions/version.action.js +74 -21
- package/commonjs/src/actions/watch.action.js +3 -5
- package/commonjs/src/commands/build.command.js +4 -3
- package/commonjs/src/commands/dependency.command.js +1 -3
- package/commonjs/src/commands/docker.command.js +26 -0
- package/commonjs/src/commands/forge.command.js +1 -3
- package/commonjs/src/commands/index.js +4 -2
- package/commonjs/src/commands/link.command.js +4 -3
- package/commonjs/src/commands/package.command.js +36 -0
- package/commonjs/src/commands/paths.command.js +24 -0
- package/commonjs/src/commands/publish.command.js +1 -3
- package/commonjs/src/commands/tag.command.js +1 -3
- package/commonjs/src/commands/typecheck.command.js +24 -0
- package/commonjs/src/commands/version.command.js +3 -3
- package/commonjs/src/const.js +0 -2
- package/commonjs/src/create-workspace.js +38 -0
- package/commonjs/src/errors.js +2 -4
- package/commonjs/src/extensions/project.extensions.js +11 -13
- package/commonjs/src/factories/swc-config.factory.js +29 -9
- package/commonjs/src/forge.module.js +17 -20
- package/commonjs/src/index.js +8 -2
- package/commonjs/src/packaging/dependency-pinner.service.js +118 -0
- package/commonjs/src/packaging/deployable.js +44 -0
- package/commonjs/src/packaging/import-graph.service.js +137 -0
- package/commonjs/src/packaging/release-exports.js +90 -0
- package/commonjs/src/packaging/ui-assets.js +75 -0
- package/commonjs/src/semver/index.js +18 -0
- package/commonjs/src/semver/semver.js +96 -0
- package/commonjs/src/services/dependency-resolver.service.js +70 -26
- package/commonjs/src/services/file-writer.service.js +2 -11
- package/commonjs/src/services/incremental-watch.js +24 -0
- package/commonjs/src/services/output-cache.js +39 -0
- package/commonjs/src/services/swc-transpiler.js +85 -99
- package/commonjs/src/services/transpile-cache.js +44 -0
- package/commonjs/src/services/ts-compiler-options.js +50 -0
- package/commonjs/src/services/ts-program-host.js +4 -6
- package/commonjs/src/services/type-emission-program.js +25 -10
- package/commonjs/src/services/type-emitter.js +60 -20
- package/commonjs/src/transpile/index.js +30 -0
- package/commonjs/src/types/build-target.type.js +0 -2
- package/commonjs/src/types/configuration.type.js +0 -2
- package/commonjs/src/types/dependency.types.js +0 -2
- package/commonjs/src/types/swc-config.type.js +0 -2
- package/commonjs/src/types/transform-response.model.js +3 -18
- package/commonjs/src/types/transformer.type.js +0 -2
- package/commonjs/src/types/workspace-config.type.js +0 -2
- package/commonjs/src/vitest/forge-build.plugin.js +28 -44
- package/commonjs/src/vitest/index.js +0 -2
- package/commonjs/src/workspace.config.js +27 -6
- package/es6/src/actions/build.action.js +3 -7
- package/es6/src/actions/clean.action.js +3 -6
- package/es6/src/actions/commit.action.js +3 -6
- package/es6/src/actions/copy.action.js +61 -12
- package/es6/src/actions/dependency-report.action.js +7 -7
- package/es6/src/actions/dependency-sync.action.js +8 -6
- package/es6/src/actions/docker.action.js +194 -0
- package/es6/src/actions/index.js +4 -2
- package/es6/src/actions/link.action.js +2 -5
- package/es6/src/actions/package.action.js +219 -0
- package/es6/src/actions/paths.action.js +97 -0
- package/es6/src/actions/publish.action.js +3 -6
- package/es6/src/actions/sync-lock-file.action.js +2 -4
- package/es6/src/actions/tag.action.js +5 -9
- package/es6/src/actions/typecheck.action.js +52 -0
- package/es6/src/actions/unlink.action.js +1 -3
- package/es6/src/actions/version.action.js +69 -17
- package/es6/src/actions/watch.action.js +2 -5
- package/es6/src/commands/build.command.js +4 -3
- package/es6/src/commands/dependency.command.js +1 -3
- package/es6/src/commands/docker.command.js +16 -0
- package/es6/src/commands/forge.command.js +1 -3
- package/es6/src/commands/index.js +4 -2
- package/es6/src/commands/link.command.js +4 -3
- package/es6/src/commands/package.command.js +26 -0
- package/es6/src/commands/paths.command.js +14 -0
- package/es6/src/commands/publish.command.js +1 -3
- package/es6/src/commands/tag.command.js +1 -3
- package/es6/src/commands/typecheck.command.js +14 -0
- package/es6/src/commands/version.command.js +3 -3
- package/es6/src/const.js +0 -2
- package/es6/src/create-workspace.js +26 -0
- package/es6/src/errors.js +1 -3
- package/es6/src/extensions/project.extensions.js +5 -7
- package/es6/src/factories/swc-config.factory.js +29 -9
- package/es6/src/forge.module.js +17 -20
- package/es6/src/index.js +2 -2
- package/es6/src/packaging/dependency-pinner.service.js +103 -0
- package/es6/src/packaging/deployable.js +21 -0
- package/es6/src/packaging/import-graph.service.js +122 -0
- package/es6/src/packaging/release-exports.js +80 -0
- package/es6/src/packaging/ui-assets.js +49 -0
- package/es6/src/semver/index.js +1 -0
- package/es6/src/semver/semver.js +75 -0
- package/es6/src/services/dependency-resolver.service.js +70 -26
- package/es6/src/services/file-writer.service.js +2 -11
- package/es6/src/services/incremental-watch.js +18 -0
- package/es6/src/services/output-cache.js +29 -0
- package/es6/src/services/swc-transpiler.js +85 -99
- package/es6/src/services/transpile-cache.js +29 -0
- package/es6/src/services/ts-compiler-options.js +39 -0
- package/es6/src/services/ts-program-host.js +4 -6
- package/es6/src/services/type-emission-program.js +25 -10
- package/es6/src/services/type-emitter.js +57 -20
- package/es6/src/transpile/index.js +6 -0
- package/es6/src/types/build-target.type.js +0 -2
- package/es6/src/types/configuration.type.js +0 -2
- package/es6/src/types/dependency.types.js +0 -2
- package/es6/src/types/swc-config.type.js +0 -2
- package/es6/src/types/transform-response.model.js +0 -7
- package/es6/src/types/transformer.type.js +0 -2
- package/es6/src/types/workspace-config.type.js +0 -2
- package/es6/src/vitest/forge-build.plugin.js +27 -43
- package/es6/src/vitest/index.js +0 -2
- package/es6/src/workspace.config.js +26 -5
- package/package.json +20 -6
- package/types/src/actions/build.action.d.ts +4 -4
- package/types/src/actions/clean.action.d.ts +3 -3
- package/types/src/actions/commit.action.d.ts +3 -3
- package/types/src/actions/copy.action.d.ts +18 -3
- package/types/src/actions/dependency-report.action.d.ts +3 -3
- package/types/src/actions/dependency-sync.action.d.ts +3 -3
- package/types/src/actions/docker.action.d.ts +38 -0
- package/types/src/actions/index.d.ts +4 -0
- package/types/src/actions/link.action.d.ts +3 -3
- package/types/src/actions/package.action.d.ts +38 -0
- package/types/src/actions/paths.action.d.ts +28 -0
- package/types/src/actions/publish.action.d.ts +4 -4
- package/types/src/actions/sync-lock-file.action.d.ts +2 -2
- package/types/src/actions/tag.action.d.ts +3 -3
- package/types/src/actions/typecheck.action.d.ts +14 -0
- package/types/src/actions/unlink.action.d.ts +2 -2
- package/types/src/actions/version.action.d.ts +14 -4
- package/types/src/actions/watch.action.d.ts +3 -3
- package/types/src/commands/build.command.d.ts +3 -2
- package/types/src/commands/dependency.command.d.ts +2 -2
- package/types/src/commands/docker.command.d.ts +6 -0
- package/types/src/commands/forge.command.d.ts +2 -2
- package/types/src/commands/index.d.ts +4 -0
- package/types/src/commands/link.command.d.ts +3 -2
- package/types/src/commands/package.command.d.ts +11 -0
- package/types/src/commands/paths.command.d.ts +6 -0
- package/types/src/commands/publish.command.d.ts +1 -1
- package/types/src/commands/tag.command.d.ts +1 -1
- package/types/src/commands/typecheck.command.d.ts +6 -0
- package/types/src/commands/version.command.d.ts +1 -1
- package/types/src/create-workspace.d.ts +7 -0
- package/types/src/errors.d.ts +1 -1
- package/types/src/extensions/project.extensions.d.ts +2 -2
- package/types/src/factories/swc-config.factory.d.ts +3 -2
- package/types/src/forge.module.d.ts +12 -4
- package/types/src/index.d.ts +2 -0
- package/types/src/packaging/dependency-pinner.service.d.ts +20 -0
- package/types/src/packaging/deployable.d.ts +17 -0
- package/types/src/packaging/import-graph.service.d.ts +33 -0
- package/types/src/packaging/release-exports.d.ts +18 -0
- package/types/src/packaging/ui-assets.d.ts +21 -0
- package/types/src/semver/index.d.ts +1 -0
- package/types/src/semver/semver.d.ts +20 -0
- package/types/src/services/dependency-resolver.service.d.ts +8 -1
- package/types/src/services/file-writer.service.d.ts +1 -2
- package/types/src/services/incremental-watch.d.ts +13 -0
- package/types/src/services/output-cache.d.ts +10 -0
- package/types/src/services/swc-transpiler.d.ts +28 -15
- package/types/src/services/transpile-cache.d.ts +17 -0
- package/types/src/services/ts-compiler-options.d.ts +8 -0
- package/types/src/services/ts-program-host.d.ts +2 -2
- package/types/src/services/type-emission-program.d.ts +10 -3
- package/types/src/services/type-emitter.d.ts +21 -8
- package/types/src/transpile/index.d.ts +6 -0
- package/types/src/types/configuration.type.d.ts +6 -1
- package/types/src/types/dependency.types.d.ts +8 -9
- package/types/src/types/swc-config.type.d.ts +7 -1
- package/types/src/types/transform-response.model.d.ts +2 -7
- package/types/src/types/transformer.type.d.ts +3 -12
- package/types/src/types/workspace-config.type.d.ts +3 -3
- package/types/src/vitest/forge-build.plugin.d.ts +0 -2
- package/commonjs/src/mixins/caches-outputs.mixin.js +0 -44
- package/commonjs/src/mixins/incremental-transform.mixin.js +0 -36
- package/es6/src/mixins/caches-outputs.mixin.js +0 -34
- package/es6/src/mixins/incremental-transform.mixin.js +0 -26
- package/types/src/mixins/caches-outputs.mixin.d.ts +0 -7
- package/types/src/mixins/incremental-transform.mixin.d.ts +0 -13
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import ts from "typescript";
|
|
4
|
+
import { ForgeError } from "../errors.js";
|
|
5
|
+
const host = {
|
|
6
|
+
...ts.sys,
|
|
7
|
+
readFile: (file)=>fs.readFileSync(file, {
|
|
8
|
+
encoding: "utf8"
|
|
9
|
+
}),
|
|
10
|
+
readDirectory: (directoryName)=>fs.readdirSync(directoryName, {
|
|
11
|
+
withFileTypes: true
|
|
12
|
+
}).filter((entry)=>entry.isDirectory()).map((entry)=>entry.name)
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* No tsconfig means no choices made, so this reads the project as plain tsc would: it clears
|
|
16
|
+
* the `lib` and `types` limits forge sets to keep monorepos fast, which a project opts out of
|
|
17
|
+
* in its tsconfig. Decorators are on because forge and flux compile them by default.
|
|
18
|
+
*/ const DEFAULT_TS_OPTIONS = {
|
|
19
|
+
emitDeclarationOnly: true,
|
|
20
|
+
declaration: true,
|
|
21
|
+
lib: undefined,
|
|
22
|
+
types: undefined,
|
|
23
|
+
experimentalDecorators: true
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* A project's compiler options as the TypeScript compiler parses its `tsconfig.json`: what
|
|
27
|
+
* type emission needs (enums, every option, tsc's own defaults). The workspace reads only
|
|
28
|
+
* what transpiling needs, without loading the compiler.
|
|
29
|
+
*/ export function tsCompilerOptions(tsconfig) {
|
|
30
|
+
const { filePath } = tsconfig;
|
|
31
|
+
if (filePath == null) return {
|
|
32
|
+
...DEFAULT_TS_OPTIONS
|
|
33
|
+
};
|
|
34
|
+
const result = ts.parseConfigFileTextToJson(filePath, fs.readFileSync(filePath, "utf8"));
|
|
35
|
+
if (result.error) {
|
|
36
|
+
throw new ForgeError(`Error parsing ${filePath}. ${ts.flattenDiagnosticMessageText(result.error.messageText, "\n")}`);
|
|
37
|
+
}
|
|
38
|
+
return ts.parseJsonConfigFileContent(result.config, host, path.dirname(filePath)).options;
|
|
39
|
+
}
|
|
@@ -8,8 +8,8 @@ function _ts_metadata(k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
}
|
|
10
10
|
import fs from "node:fs";
|
|
11
|
-
import { cache } from "@decohere/
|
|
12
|
-
import { Trace } from "@decohere/
|
|
11
|
+
import { cache } from "@decohere/core/caching";
|
|
12
|
+
import { Trace } from "@decohere/devkit/diagnostics";
|
|
13
13
|
import { createCompilerHost, createProgram } from "typescript";
|
|
14
14
|
import { DEFAULT_TYPE_EMITTER_OPTIONS, REQUIRED_TYPE_EMITTER_OPTIONS } from "./type-emitter.js";
|
|
15
15
|
export class TsProgramHost {
|
|
@@ -42,13 +42,13 @@ export class TsProgramHost {
|
|
|
42
42
|
host.getDirectories = (directoryName)=>this.getDirectories(directoryName);
|
|
43
43
|
return host;
|
|
44
44
|
}
|
|
45
|
-
createProgram(files, compilerOptions, host, oldProgram) {
|
|
45
|
+
createProgram(files, compilerOptions, host, oldProgram, requiredOptions = REQUIRED_TYPE_EMITTER_OPTIONS) {
|
|
46
46
|
const filePaths = files.map((f)=>f.fullPath);
|
|
47
47
|
this.#invalidated.clear();
|
|
48
48
|
return createProgram(filePaths, {
|
|
49
49
|
...DEFAULT_TYPE_EMITTER_OPTIONS,
|
|
50
50
|
...compilerOptions,
|
|
51
|
-
...
|
|
51
|
+
...requiredOptions
|
|
52
52
|
}, host, oldProgram);
|
|
53
53
|
}
|
|
54
54
|
readFileFromDisk(fileName) {
|
|
@@ -116,5 +116,3 @@ _ts_decorate([
|
|
|
116
116
|
TsProgramHost = _ts_decorate([
|
|
117
117
|
Trace
|
|
118
118
|
], TsProgramHost);
|
|
119
|
-
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90cy1wcm9ncmFtLWhvc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBjYWNoZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2FjaGluZ1wiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb21waWxlckhvc3QsIGNyZWF0ZVByb2dyYW0gfSBmcm9tIFwidHlwZXNjcmlwdFwiO1xuaW1wb3J0IHtcblx0REVGQVVMVF9UWVBFX0VNSVRURVJfT1BUSU9OUyxcblx0UkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlMsXG59IGZyb20gXCIuLi9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIuanNcIjtcblxuLyoqXG4gKiBXcmFwcyBhIFR5cGVTY3JpcHQgQ29tcGlsZXJIb3N0IHdpdGggY2FjaGVkIGZpbGUtc3lzdGVtIGNhbGxzIHNvIHRoYXRcbiAqIHJlcGVhdGVkIHJlYWRzIGR1cmluZyBhIHNpbmdsZSBidWlsZCBkbyBub3QgaGl0IHRoZSBkaXNrIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIFNlcGFyYXRpbmcgdGhpcyBmcm9tIFR5cGVFbWl0dGVyIGtlZXBzIHRoZSB0cmFuc2Zvcm1lciBsb2dpYyByZWFkYWJsZSBhbmRcbiAqIGxldHMgdGhlIGNhY2hpbmcvcHJvZ3JhbS1jcmVhdGlvbiBjb25jZXJucyBsaXZlIGluIG9uZSBmb2N1c2VkIHBsYWNlLlxuICovXG5AVHJhY2VcbmV4cG9ydCBjbGFzcyBUc1Byb2dyYW1Ib3N0IHtcblx0I2ludmFsaWRhdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cblx0cHVibGljIGludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLiNpbnZhbGlkYXRlZC5hZGQoZmlsZU5hbWUpO1xuXHR9XG5cblx0cHVibGljIGhhc0ludmFsaWRhdGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLiNpbnZhbGlkYXRlZC5zaXplID4gMDtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIGEgc3RhYmxlIHN0cmluZyBrZXkgZm9yIGEgc2V0IG9mIGNvbXBpbGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgaG9zdCBiZWhhdmlvdXIuICovXG5cdHB1YmxpYyBob3N0S2V5KG9wdHM6IHRzLkNvbXBpbGVyT3B0aW9ucyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcblx0XHRcdHRhcmdldDogb3B0cy50YXJnZXQsXG5cdFx0XHRsaWI6IG9wdHMubGliLFxuXHRcdFx0dHlwZVJvb3RzOiBvcHRzLnR5cGVSb290cyxcblx0XHRcdHR5cGVzOiBvcHRzLnR5cGVzLFxuXHRcdFx0bW9kdWxlUmVzb2x1dGlvbjogb3B0cy5tb2R1bGVSZXNvbHV0aW9uLFxuXHRcdFx0YmFzZVVybDogb3B0cy5iYXNlVXJsLFxuXHRcdFx0cGF0aHM6IG9wdHMucGF0aHMsXG5cdFx0XHRtb2R1bGU6IG9wdHMubW9kdWxlLFxuXHRcdFx0cm9vdERpcjogb3B0cy5yb290RGlyLFxuXHRcdFx0cm9vdERpcnM6IG9wdHMucm9vdERpcnMsXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgY3JlYXRlSG9zdChjb21waWxlck9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyk6IHRzLkNvbXBpbGVySG9zdCB7XG5cdFx0Y29uc3QgaG9zdCA9IGNyZWF0ZUNvbXBpbGVySG9zdChjb21waWxlck9wdGlvbnMpO1xuXHRcdGhvc3QuZmlsZUV4aXN0cyA9IChmaWxlTmFtZSkgPT4gdGhpcy5maWxlRXhpc3RzT25EaXNrKGZpbGVOYW1lKTtcblx0XHRob3N0LnJlYWRGaWxlID0gKGZpbGVOYW1lKSA9PiB0aGlzLnJlYWRGaWxlRnJvbURpc2soZmlsZU5hbWUpO1xuXHRcdGhvc3QuZGlyZWN0b3J5RXhpc3RzID0gKGRpcmVjdG9yeU5hbWUpID0+IHRoaXMuZGlyZWN0b3J5RXhpc3RzKGRpcmVjdG9yeU5hbWUpO1xuXHRcdGhvc3QuZ2V0RGlyZWN0b3JpZXMgPSAoZGlyZWN0b3J5TmFtZSkgPT4gdGhpcy5nZXREaXJlY3RvcmllcyhkaXJlY3RvcnlOYW1lKTtcblx0XHRyZXR1cm4gaG9zdDtcblx0fVxuXG5cdHB1YmxpYyBjcmVhdGVQcm9ncmFtKFxuXHRcdGZpbGVzOiBGaWxlRXhbXSxcblx0XHRjb21waWxlck9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyxcblx0XHRob3N0OiB0cy5Db21waWxlckhvc3QsXG5cdFx0b2xkUHJvZ3JhbT86IHRzLlByb2dyYW0sXG5cdCk6IHRzLlByb2dyYW0ge1xuXHRcdGNvbnN0IGZpbGVQYXRocyA9IGZpbGVzLm1hcCgoZikgPT4gZi5mdWxsUGF0aCk7XG5cdFx0dGhpcy4jaW52YWxpZGF0ZWQuY2xlYXIoKTtcblx0XHRyZXR1cm4gY3JlYXRlUHJvZ3JhbShcblx0XHRcdGZpbGVQYXRocyxcblx0XHRcdHtcblx0XHRcdFx0Li4uREVGQVVMVF9UWVBFX0VNSVRURVJfT1BUSU9OUyxcblx0XHRcdFx0Li4uY29tcGlsZXJPcHRpb25zLFxuXHRcdFx0XHQuLi5SRVFVSVJFRF9UWVBFX0VNSVRURVJfT1BUSU9OUyxcblx0XHRcdH0sXG5cdFx0XHRob3N0LFxuXHRcdFx0b2xkUHJvZ3JhbSxcblx0XHQpO1xuXHR9XG5cblx0QGNhY2hlKHsgbmFtZTogXCJGSUxFX0NPTlRFTlRcIiwga2V5Rm46ICguLi5hcmdzKSA9PiBhcmdzWzBdIGFzIHN0cmluZyB9KVxuXHRwdWJsaWMgcmVhZEZpbGVGcm9tRGlzayhmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGZzLnJlYWRGaWxlU3luYyhmaWxlTmFtZSwgXCJ1dGY4XCIpO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRAY2FjaGUoKVxuXHRwdWJsaWMgZmlsZUV4aXN0c09uRGlzayhmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIGZzLmV4aXN0c1N5bmMoZmlsZU5hbWUpO1xuXHR9XG5cblx0QGNhY2hlKClcblx0cHVibGljIGRpcmVjdG9yeUV4aXN0cyhkaXJlY3RvcnlOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGZzLnN0YXRTeW5jKGRpcmVjdG9yeU5hbWUpLmlzRGlyZWN0b3J5KCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0QGNhY2hlKClcblx0cHVibGljIGdldERpcmVjdG9yaWVzKGRpcmVjdG9yeU5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGZzXG5cdFx0XHRcdC5yZWFkZGlyU3luYyhkaXJlY3RvcnlOYW1lLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSlcblx0XHRcdFx0LmZpbHRlcigoZW50cnkpID0+IGVudHJ5LmlzRGlyZWN0b3J5KCkpXG5cdFx0XHRcdC5tYXAoKGVudHJ5KSA9PiBlbnRyeS5uYW1lKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJmcyIsImNhY2hlIiwiVHJhY2UiLCJjcmVhdGVDb21waWxlckhvc3QiLCJjcmVhdGVQcm9ncmFtIiwiREVGQVVMVF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsIlJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TIiwiVHNQcm9ncmFtSG9zdCIsIlNldCIsImludmFsaWRhdGVTb3VyY2VGaWxlIiwiZmlsZU5hbWUiLCJhZGQiLCJoYXNJbnZhbGlkYXRlZCIsInNpemUiLCJob3N0S2V5Iiwib3B0cyIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0YXJnZXQiLCJsaWIiLCJ0eXBlUm9vdHMiLCJ0eXBlcyIsIm1vZHVsZVJlc29sdXRpb24iLCJiYXNlVXJsIiwicGF0aHMiLCJtb2R1bGUiLCJyb290RGlyIiwicm9vdERpcnMiLCJjcmVhdGVIb3N0IiwiY29tcGlsZXJPcHRpb25zIiwiaG9zdCIsImZpbGVFeGlzdHMiLCJmaWxlRXhpc3RzT25EaXNrIiwicmVhZEZpbGUiLCJyZWFkRmlsZUZyb21EaXNrIiwiZGlyZWN0b3J5RXhpc3RzIiwiZGlyZWN0b3J5TmFtZSIsImdldERpcmVjdG9yaWVzIiwiZmlsZXMiLCJvbGRQcm9ncmFtIiwiZmlsZVBhdGhzIiwibWFwIiwiZiIsImZ1bGxQYXRoIiwiY2xlYXIiLCJyZWFkRmlsZVN5bmMiLCJ1bmRlZmluZWQiLCJleGlzdHNTeW5jIiwic3RhdFN5bmMiLCJpc0RpcmVjdG9yeSIsInJlYWRkaXJTeW5jIiwid2l0aEZpbGVUeXBlcyIsImZpbHRlciIsImVudHJ5IiwibmFtZSIsImtleUZuIiwiYXJncyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsUUFBUSxVQUFVO0FBQ3pCLFNBQVNDLEtBQUssUUFBUSwwQkFBMEI7QUFDaEQsU0FBU0MsS0FBSyxRQUFRLDhCQUE4QjtBQUdwRCxTQUFTQyxrQkFBa0IsRUFBRUMsYUFBYSxRQUFRLGFBQWE7QUFDL0QsU0FDQ0MsNEJBQTRCLEVBQzVCQyw2QkFBNkIsUUFDdkIsb0JBQThCO0FBVXJDLE9BQU8sTUFBTUM7SUFDWixDQUFBLFdBQVksR0FBRyxJQUFJQyxNQUFjO0lBRTFCQyxxQkFBcUJDLFFBQWdCLEVBQVE7UUFDbkQsSUFBSSxDQUFDLENBQUEsV0FBWSxDQUFDQyxHQUFHLENBQUNEO0lBQ3ZCO0lBRU9FLGlCQUEwQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxDQUFBLFdBQVksQ0FBQ0MsSUFBSSxHQUFHO0lBQ2pDO0lBRUEsMEZBQTBGLEdBQzFGLEFBQU9DLFFBQVFDLElBQXdCLEVBQVU7UUFDaEQsT0FBT0MsS0FBS0MsU0FBUyxDQUFDO1lBQ3JCQyxRQUFRSCxLQUFLRyxNQUFNO1lBQ25CQyxLQUFLSixLQUFLSSxHQUFHO1lBQ2JDLFdBQVdMLEtBQUtLLFNBQVM7WUFDekJDLE9BQU9OLEtBQUtNLEtBQUs7WUFDakJDLGtCQUFrQlAsS0FBS08sZ0JBQWdCO1lBQ3ZDQyxTQUFTUixLQUFLUSxPQUFPO1lBQ3JCQyxPQUFPVCxLQUFLUyxLQUFLO1lBQ2pCQyxRQUFRVixLQUFLVSxNQUFNO1lBQ25CQyxTQUFTWCxLQUFLVyxPQUFPO1lBQ3JCQyxVQUFVWixLQUFLWSxRQUFRO1FBQ3hCO0lBQ0Q7SUFFT0MsV0FBV0MsZUFBbUMsRUFBbUI7UUFDdkUsTUFBTUMsT0FBTzNCLG1CQUFtQjBCO1FBQ2hDQyxLQUFLQyxVQUFVLEdBQUcsQ0FBQ3JCLFdBQWEsSUFBSSxDQUFDc0IsZ0JBQWdCLENBQUN0QjtRQUN0RG9CLEtBQUtHLFFBQVEsR0FBRyxDQUFDdkIsV0FBYSxJQUFJLENBQUN3QixnQkFBZ0IsQ0FBQ3hCO1FBQ3BEb0IsS0FBS0ssZUFBZSxHQUFHLENBQUNDLGdCQUFrQixJQUFJLENBQUNELGVBQWUsQ0FBQ0M7UUFDL0ROLEtBQUtPLGNBQWMsR0FBRyxDQUFDRCxnQkFBa0IsSUFBSSxDQUFDQyxjQUFjLENBQUNEO1FBQzdELE9BQU9OO0lBQ1I7SUFFTzFCLGNBQ05rQyxLQUFlLEVBQ2ZULGVBQW1DLEVBQ25DQyxJQUFxQixFQUNyQlMsVUFBdUIsRUFDVjtRQUNiLE1BQU1DLFlBQVlGLE1BQU1HLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxRQUFRO1FBQzdDLElBQUksQ0FBQyxDQUFBLFdBQVksQ0FBQ0MsS0FBSztRQUN2QixPQUFPeEMsY0FDTm9DLFdBQ0E7WUFDQyxHQUFHbkMsNEJBQTRCO1lBQy9CLEdBQUd3QixlQUFlO1lBQ2xCLEdBQUd2Qiw2QkFBNkI7UUFDakMsR0FDQXdCLE1BQ0FTO0lBRUY7SUFHT0wsaUJBQWlCeEIsUUFBZ0IsRUFBc0I7UUFDN0QsSUFBSTtZQUNILE9BQU9WLEdBQUc2QyxZQUFZLENBQUNuQyxVQUFVO1FBQ2xDLEVBQUUsT0FBTTtZQUNQLE9BQU9vQztRQUNSO0lBQ0Q7SUFHT2QsaUJBQWlCdEIsUUFBZ0IsRUFBVztRQUNsRCxPQUFPVixHQUFHK0MsVUFBVSxDQUFDckM7SUFDdEI7SUFHT3lCLGdCQUFnQkMsYUFBcUIsRUFBVztRQUN0RCxJQUFJO1lBQ0gsT0FBT3BDLEdBQUdnRCxRQUFRLENBQUNaLGVBQWVhLFdBQVc7UUFDOUMsRUFBRSxPQUFNO1lBQ1AsT0FBTztRQUNSO0lBQ0Q7SUFHT1osZUFBZUQsYUFBcUIsRUFBWTtRQUN0RCxJQUFJO1lBQ0gsT0FBT3BDLEdBQ0xrRCxXQUFXLENBQUNkLGVBQWU7Z0JBQUVlLGVBQWU7WUFBSyxHQUNqREMsTUFBTSxDQUFDLENBQUNDLFFBQVVBLE1BQU1KLFdBQVcsSUFDbkNSLEdBQUcsQ0FBQyxDQUFDWSxRQUFVQSxNQUFNQyxJQUFJO1FBQzVCLEVBQUUsT0FBTTtZQUNQLE9BQU8sRUFBRTtRQUNWO0lBQ0Q7QUFDRDs7O1FBbENVQSxNQUFNO1FBQWdCQyxPQUFPLENBQUMsR0FBR0MsT0FBU0EsSUFBSSxDQUFDLEVBQUUifQ==
|
|
@@ -8,7 +8,8 @@ function _ts_metadata(k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
}
|
|
10
10
|
import path from "node:path";
|
|
11
|
-
import { Trace } from "@decohere/
|
|
11
|
+
import { Trace } from "@decohere/devkit/diagnostics";
|
|
12
|
+
import ts from "typescript";
|
|
12
13
|
import { TransformResponse } from "../types/transform-response.model.js";
|
|
13
14
|
export class TypeEmissionProgram {
|
|
14
15
|
#program;
|
|
@@ -19,16 +20,25 @@ export class TypeEmissionProgram {
|
|
|
19
20
|
#compilerHost;
|
|
20
21
|
#allFiles;
|
|
21
22
|
#compilerOptions;
|
|
22
|
-
|
|
23
|
+
#requiredOptions;
|
|
24
|
+
constructor(group, hostFactory, requiredOptions){
|
|
23
25
|
this.#group = group;
|
|
24
26
|
const targets = this.buildTargetMaps(group);
|
|
25
27
|
this.#targetsByDtsPath = targets.byDtsPath;
|
|
26
28
|
this.#targetsByEmittedPath = targets.byEmittedPath;
|
|
27
29
|
this.#host = hostFactory;
|
|
28
|
-
this.#compilerOptions = group[0].
|
|
30
|
+
this.#compilerOptions = group[0].compilerOptions;
|
|
31
|
+
this.#requiredOptions = requiredOptions;
|
|
29
32
|
this.#allFiles = group.flatMap(({ files })=>files);
|
|
30
33
|
this.#compilerHost = hostFactory.createHost(this.#compilerOptions);
|
|
31
|
-
this.#program =
|
|
34
|
+
this.#program = this.createProgram();
|
|
35
|
+
}
|
|
36
|
+
check() {
|
|
37
|
+
this.refreshProgramIfNeeded();
|
|
38
|
+
return ts.getPreEmitDiagnostics(this.#program);
|
|
39
|
+
}
|
|
40
|
+
formatDiagnostics(diagnostics) {
|
|
41
|
+
return ts.formatDiagnosticsWithColorAndContext(diagnostics, this.#compilerHost);
|
|
32
42
|
}
|
|
33
43
|
toEmissionTarget(groupProject, file, outBaseDir) {
|
|
34
44
|
const extName = path.extname(file.relativePath);
|
|
@@ -74,14 +84,20 @@ export class TypeEmissionProgram {
|
|
|
74
84
|
this.#host.invalidateSourceFile(file.fullPath);
|
|
75
85
|
}
|
|
76
86
|
async emit(fileFilter, onOutput) {
|
|
77
|
-
|
|
78
|
-
this.#program = this.#host.createProgram(this.#allFiles, this.#compilerOptions, this.#compilerHost, this.#program);
|
|
79
|
-
}
|
|
87
|
+
this.refreshProgramIfNeeded();
|
|
80
88
|
if (fileFilter == null) {
|
|
81
89
|
return this.emitAll(onOutput);
|
|
82
90
|
}
|
|
83
91
|
return this.emitFiltered(fileFilter, onOutput);
|
|
84
92
|
}
|
|
93
|
+
createProgram(oldProgram) {
|
|
94
|
+
return this.#host.createProgram(this.#allFiles, this.#compilerOptions, this.#compilerHost, oldProgram, this.#requiredOptions);
|
|
95
|
+
}
|
|
96
|
+
refreshProgramIfNeeded() {
|
|
97
|
+
if (this.#host.hasInvalidated()) {
|
|
98
|
+
this.#program = this.createProgram(this.#program);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
85
101
|
emitAll(onOutput) {
|
|
86
102
|
const responses = [];
|
|
87
103
|
this.#program.emit(undefined, (emittedPath, content)=>{
|
|
@@ -138,8 +154,7 @@ TypeEmissionProgram = _ts_decorate([
|
|
|
138
154
|
_ts_metadata("design:type", Function),
|
|
139
155
|
_ts_metadata("design:paramtypes", [
|
|
140
156
|
Array,
|
|
141
|
-
typeof TsProgramHost === "undefined" ? Object : TsProgramHost
|
|
157
|
+
typeof TsProgramHost === "undefined" ? Object : TsProgramHost,
|
|
158
|
+
typeof ts === "undefined" || typeof ts.CompilerOptions === "undefined" ? Object : ts.CompilerOptions
|
|
142
159
|
])
|
|
143
160
|
], TypeEmissionProgram);
|
|
144
|
-
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXNzaW9uLXByb2dyYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBUc2NvbmZpZyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgdHlwZSB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQgeyBUcmFuc2Zvcm1SZXNwb25zZSB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwuanNcIjtcblxuZXhwb3J0IHR5cGUgVHlwZVByb2dyYW1Qcm9qZWN0ID0ge1xuXHRwcm9qZWN0OiBQcm9qZWN0O1xuXHRmaWxlczogRmlsZUV4W107XG5cdHRzY29uZmlnOiBUc2NvbmZpZztcbn07XG5cbnR5cGUgRW1pc3Npb25UYXJnZXQgPSB7XG5cdGZpbGU6IEZpbGVFeDtcblx0dHNjb25maWc6IFRzY29uZmlnO1xuXHRwcm9qZWN0OiBQcm9qZWN0O1xuXHRvdXRwdXRQYXRoOiBzdHJpbmc7XG5cdG91dHB1dERpcjogc3RyaW5nO1xuXHRkdHNSZWxhdGl2ZTogc3RyaW5nO1xufTtcblxuQFRyYWNlXG5leHBvcnQgY2xhc3MgVHlwZUVtaXNzaW9uUHJvZ3JhbSB7XG5cdCNwcm9ncmFtOiB0cy5Qcm9ncmFtO1xuXHQjZ3JvdXA6IFR5cGVQcm9ncmFtUHJvamVjdFtdO1xuXHQjdGFyZ2V0c0J5RHRzUGF0aDogTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+O1xuXHQjdGFyZ2V0c0J5RW1pdHRlZFBhdGg6IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0Pjtcblx0I2hvc3Q6IFRzUHJvZ3JhbUhvc3Q7XG5cdCNjb21waWxlckhvc3Q6IHRzLkNvbXBpbGVySG9zdDtcblx0I2FsbEZpbGVzOiBGaWxlRXhbXTtcblx0I2NvbXBpbGVyT3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihncm91cDogVHlwZVByb2dyYW1Qcm9qZWN0W10sIGhvc3RGYWN0b3J5OiBUc1Byb2dyYW1Ib3N0KSB7XG5cdFx0dGhpcy4jZ3JvdXAgPSBncm91cDtcblx0XHRjb25zdCB0YXJnZXRzID0gdGhpcy5idWlsZFRhcmdldE1hcHMoZ3JvdXApO1xuXHRcdHRoaXMuI3RhcmdldHNCeUR0c1BhdGggPSB0YXJnZXRzLmJ5RHRzUGF0aDtcblx0XHR0aGlzLiN0YXJnZXRzQnlFbWl0dGVkUGF0aCA9IHRhcmdldHMuYnlFbWl0dGVkUGF0aDtcblx0XHR0aGlzLiNob3N0ID0gaG9zdEZhY3Rvcnk7XG5cdFx0dGhpcy4jY29tcGlsZXJPcHRpb25zID0gZ3JvdXBbMF0udHNjb25maWcuY29tcGlsZXJPcHRpb25zO1xuXHRcdHRoaXMuI2FsbEZpbGVzID0gZ3JvdXAuZmxhdE1hcCgoeyBmaWxlcyB9KSA9PiBmaWxlcyk7XG5cdFx0dGhpcy4jY29tcGlsZXJIb3N0ID0gaG9zdEZhY3RvcnkuY3JlYXRlSG9zdCh0aGlzLiNjb21waWxlck9wdGlvbnMpO1xuXHRcdHRoaXMuI3Byb2dyYW0gPSBob3N0RmFjdG9yeS5jcmVhdGVQcm9ncmFtKFxuXHRcdFx0dGhpcy4jYWxsRmlsZXMsXG5cdFx0XHR0aGlzLiNjb21waWxlck9wdGlvbnMsXG5cdFx0XHR0aGlzLiNjb21waWxlckhvc3QsXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgdG9FbWlzc2lvblRhcmdldChcblx0XHRncm91cFByb2plY3Q6IFR5cGVQcm9ncmFtUHJvamVjdCxcblx0XHRmaWxlOiBGaWxlRXgsXG5cdFx0b3V0QmFzZURpcjogc3RyaW5nLFxuXHQpOiBFbWlzc2lvblRhcmdldCB7XG5cdFx0Y29uc3QgZXh0TmFtZSA9IHBhdGguZXh0bmFtZShmaWxlLnJlbGF0aXZlUGF0aCk7XG5cdFx0Y29uc3QgZHRzUmVsYXRpdmUgPSBmaWxlLnJlbGF0aXZlUGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7ZXh0TmFtZX0kYCksIFwiLmQudHNcIik7XG5cdFx0Y29uc3Qgb3V0cHV0UGF0aCA9IHBhdGguam9pbihvdXRCYXNlRGlyLCBkdHNSZWxhdGl2ZSk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGZpbGUsXG5cdFx0XHR0c2NvbmZpZzogZ3JvdXBQcm9qZWN0LnRzY29uZmlnLFxuXHRcdFx0cHJvamVjdDogZ3JvdXBQcm9qZWN0LnByb2plY3QsXG5cdFx0XHRvdXRwdXRQYXRoLFxuXHRcdFx0b3V0cHV0RGlyOiBwYXRoLmRpcm5hbWUob3V0cHV0UGF0aCksXG5cdFx0XHRkdHNSZWxhdGl2ZSxcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSBlbWl0dGVkS2V5KGZpbGU6IEZpbGVFeCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGZpbGUuZnVsbFBhdGgucmVwbGFjZSgvXFwuW14uXSskLywgXCIuZC50c1wiKTtcblx0fVxuXG5cdHByaXZhdGUgYnVpbGRUYXJnZXRNYXBzKGdyb3VwOiBUeXBlUHJvZ3JhbVByb2plY3RbXSk6IHtcblx0XHRieUR0c1BhdGg6IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0Pjtcblx0XHRieUVtaXR0ZWRQYXRoOiBNYXA8c3RyaW5nLCBFbWlzc2lvblRhcmdldD47XG5cdH0ge1xuXHRcdGNvbnN0IGJ5RHRzUGF0aCA9IG5ldyBNYXA8c3RyaW5nLCBFbWlzc2lvblRhcmdldD4oKTtcblx0XHRjb25zdCBieUVtaXR0ZWRQYXRoID0gbmV3IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0PigpO1xuXG5cdFx0Zm9yIChjb25zdCBncm91cFByb2plY3Qgb2YgZ3JvdXApIHtcblx0XHRcdGNvbnN0IG91dEJhc2VEaXIgPSBncm91cFByb2plY3QucHJvamVjdC5nZXRPdXREaXIoXCJ0eXBlc1wiKTtcblx0XHRcdGZvciAoY29uc3QgZmlsZSBvZiBncm91cFByb2plY3QuZmlsZXMpIHtcblx0XHRcdFx0Y29uc3QgdGFyZ2V0ID0gdGhpcy50b0VtaXNzaW9uVGFyZ2V0KGdyb3VwUHJvamVjdCwgZmlsZSwgb3V0QmFzZURpcik7XG5cdFx0XHRcdGJ5RHRzUGF0aC5zZXQodGFyZ2V0LmR0c1JlbGF0aXZlLCB0YXJnZXQpO1xuXHRcdFx0XHRieUVtaXR0ZWRQYXRoLnNldCh0aGlzLmVtaXR0ZWRLZXkoZmlsZSksIHRhcmdldCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHsgYnlEdHNQYXRoLCBieUVtaXR0ZWRQYXRoIH07XG5cdH1cblxuXHRwdWJsaWMgYWRkRmlsZShmaWxlOiBGaWxlRXgsIHByb2plY3Q6IFByb2plY3QpOiB2b2lkIHtcblx0XHRjb25zdCBncm91cFByb2plY3QgPSB0aGlzLiNncm91cC5maW5kKChnKSA9PiBnLnByb2plY3QgPT09IHByb2plY3QpO1xuXHRcdGlmIChncm91cFByb2plY3QgPT0gbnVsbCkgcmV0dXJuO1xuXG5cdFx0Z3JvdXBQcm9qZWN0LmZpbGVzLnB1c2goZmlsZSk7XG5cdFx0dGhpcy4jYWxsRmlsZXMucHVzaChmaWxlKTtcblxuXHRcdGNvbnN0IG91dEJhc2VEaXIgPSBncm91cFByb2plY3QucHJvamVjdC5nZXRPdXREaXIoXCJ0eXBlc1wiKTtcblx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLnRvRW1pc3Npb25UYXJnZXQoZ3JvdXBQcm9qZWN0LCBmaWxlLCBvdXRCYXNlRGlyKTtcblx0XHR0aGlzLiN0YXJnZXRzQnlEdHNQYXRoLnNldCh0YXJnZXQuZHRzUmVsYXRpdmUsIHRhcmdldCk7XG5cdFx0dGhpcy4jdGFyZ2V0c0J5RW1pdHRlZFBhdGguc2V0KHRoaXMuZW1pdHRlZEtleShmaWxlKSwgdGFyZ2V0KTtcblx0XHR0aGlzLiNob3N0LmludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGUuZnVsbFBhdGgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGVtaXQoXG5cdFx0ZmlsZUZpbHRlcj86IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0XHRvbk91dHB1dD86IChyZXNwb25zZTogVHJhbnNmb3JtUmVzcG9uc2UpID0+IHZvaWQsXG5cdCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdGlmICh0aGlzLiNob3N0Lmhhc0ludmFsaWRhdGVkKCkpIHtcblx0XHRcdHRoaXMuI3Byb2dyYW0gPSB0aGlzLiNob3N0LmNyZWF0ZVByb2dyYW0oXG5cdFx0XHRcdHRoaXMuI2FsbEZpbGVzLFxuXHRcdFx0XHR0aGlzLiNjb21waWxlck9wdGlvbnMsXG5cdFx0XHRcdHRoaXMuI2NvbXBpbGVySG9zdCxcblx0XHRcdFx0dGhpcy4jcHJvZ3JhbSxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmIChmaWxlRmlsdGVyID09IG51bGwpIHtcblx0XHRcdHJldHVybiB0aGlzLmVtaXRBbGwob25PdXRwdXQpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5lbWl0RmlsdGVyZWQoZmlsZUZpbHRlciwgb25PdXRwdXQpO1xuXHR9XG5cblx0cHJpdmF0ZSBlbWl0QWxsKG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCk6IFRyYW5zZm9ybVJlc3BvbnNlW10ge1xuXHRcdGNvbnN0IHJlc3BvbnNlczogVHJhbnNmb3JtUmVzcG9uc2VbXSA9IFtdO1xuXHRcdHRoaXMuI3Byb2dyYW0uZW1pdCh1bmRlZmluZWQsIChlbWl0dGVkUGF0aCwgY29udGVudCkgPT4ge1xuXHRcdFx0aWYgKCFlbWl0dGVkUGF0aC5lbmRzV2l0aChcIi5kLnRzXCIpKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHJlc3BvbnNlID0gdGhpcy50b1RyYW5zZm9ybVJlc3BvbnNlKGVtaXR0ZWRQYXRoLCBjb250ZW50KTtcblx0XHRcdHJlc3BvbnNlcy5wdXNoKHJlc3BvbnNlKTtcblx0XHRcdG9uT3V0cHV0Py4ocmVzcG9uc2UpO1xuXHRcdH0pO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIGVtaXRGaWx0ZXJlZChcblx0XHRmaWxlRmlsdGVyOiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdFx0b25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkLFxuXHQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+IHtcblx0XHRjb25zdCBmaWxlcyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMuI2dyb3VwLm1hcCgoeyBwcm9qZWN0IH0pID0+IGZpbGVGaWx0ZXIocHJvamVjdCkpKTtcblx0XHRjb25zdCBzb3VyY2VGaWxlcyA9IGZpbGVzXG5cdFx0XHQuZmxhdCgpXG5cdFx0XHQubWFwKChmaWxlKSA9PiB0aGlzLiNwcm9ncmFtLmdldFNvdXJjZUZpbGUoZmlsZS5mdWxsUGF0aCkpXG5cdFx0XHQuZmlsdGVyKChzZik6IHNmIGlzIHRzLlNvdXJjZUZpbGUgPT4gc2YgIT0gbnVsbCk7XG5cblx0XHRjb25zdCByZXNwb25zZXM6IFRyYW5zZm9ybVJlc3BvbnNlW10gPSBbXTtcblxuXHRcdGZvciAoY29uc3Qgc291cmNlRmlsZSBvZiBzb3VyY2VGaWxlcykge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbS5lbWl0KHNvdXJjZUZpbGUsIChlbWl0dGVkUGF0aCwgY29udGVudCkgPT4ge1xuXHRcdFx0XHRpZiAoIWVtaXR0ZWRQYXRoLmVuZHNXaXRoKFwiLmQudHNcIikpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgcmVzcG9uc2UgPSB0aGlzLnRvVHJhbnNmb3JtUmVzcG9uc2UoZW1pdHRlZFBhdGgsIGNvbnRlbnQpO1xuXHRcdFx0XHRyZXNwb25zZXMucHVzaChyZXNwb25zZSk7XG5cdFx0XHRcdG9uT3V0cHV0Py4ocmVzcG9uc2UpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3BvbnNlcztcblx0fVxuXG5cdHByaXZhdGUgdG9UcmFuc2Zvcm1SZXNwb25zZShlbWl0dGVkUGF0aDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdFx0Y29uc3QgdGFyZ2V0ID0gdGhpcy4jdGFyZ2V0c0J5RW1pdHRlZFBhdGguZ2V0KGVtaXR0ZWRQYXRoKTtcblx0XHRpZiAodGFyZ2V0ID09IG51bGwpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgTm8gbWF0Y2hpbmcgZW1pc3Npb24gdGFyZ2V0IGZvcjogJHtlbWl0dGVkUGF0aH1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudG9UcmFuc2Zvcm1SZXNwb25zZUZyb21UYXJnZXQodGFyZ2V0LCBjb250ZW50KTtcblx0fVxuXG5cdHByaXZhdGUgdG9UcmFuc2Zvcm1SZXNwb25zZUZyb21UYXJnZXQoXG5cdFx0dGFyZ2V0OiBFbWlzc2lvblRhcmdldCxcblx0XHRjb250ZW50OiBzdHJpbmcsXG5cdCk6IFRyYW5zZm9ybVJlc3BvbnNlIHtcblx0XHRjb25zdCB7IGZpbGUsIHRzY29uZmlnLCBwcm9qZWN0LCBvdXRwdXRQYXRoLCBvdXRwdXREaXIsIGR0c1JlbGF0aXZlIH0gPSB0YXJnZXQ7XG5cdFx0cmV0dXJuIFRyYW5zZm9ybVJlc3BvbnNlLmZyb20oe1xuXHRcdFx0ZmlsZSxcblx0XHRcdGNvbmZpZzogdHNjb25maWcsXG5cdFx0XHRvdXRjb21lOiBcInN1Y2Nlc3NcIixcblx0XHRcdGZpbGVOYW1lOiBkdHNSZWxhdGl2ZSxcblx0XHRcdGNvZGU6IGNvbnRlbnQsXG5cdFx0XHR0YXJnZXQ6IFwidHlwZXNcIixcblx0XHRcdG1lc3NhZ2VzOiBbXSxcblx0XHRcdHByb2plY3QsXG5cdFx0XHRvdXRwdXREaXIsXG5cdFx0XHRvdXRwdXRQYXRoLFxuXHRcdH0pO1xuXHR9XG59XG4iXSwibmFtZXMiOlsicGF0aCIsIlRyYWNlIiwiVHJhbnNmb3JtUmVzcG9uc2UiLCJUeXBlRW1pc3Npb25Qcm9ncmFtIiwiZ3JvdXAiLCJob3N0RmFjdG9yeSIsInRhcmdldHMiLCJidWlsZFRhcmdldE1hcHMiLCJieUR0c1BhdGgiLCJieUVtaXR0ZWRQYXRoIiwidHNjb25maWciLCJjb21waWxlck9wdGlvbnMiLCJmbGF0TWFwIiwiZmlsZXMiLCJjcmVhdGVIb3N0IiwiY3JlYXRlUHJvZ3JhbSIsInRvRW1pc3Npb25UYXJnZXQiLCJncm91cFByb2plY3QiLCJmaWxlIiwib3V0QmFzZURpciIsImV4dE5hbWUiLCJleHRuYW1lIiwicmVsYXRpdmVQYXRoIiwiZHRzUmVsYXRpdmUiLCJyZXBsYWNlIiwiUmVnRXhwIiwib3V0cHV0UGF0aCIsImpvaW4iLCJwcm9qZWN0Iiwib3V0cHV0RGlyIiwiZGlybmFtZSIsImVtaXR0ZWRLZXkiLCJmdWxsUGF0aCIsIk1hcCIsImdldE91dERpciIsInRhcmdldCIsInNldCIsImFkZEZpbGUiLCJmaW5kIiwiZyIsInB1c2giLCJpbnZhbGlkYXRlU291cmNlRmlsZSIsImVtaXQiLCJmaWxlRmlsdGVyIiwib25PdXRwdXQiLCJoYXNJbnZhbGlkYXRlZCIsImVtaXRBbGwiLCJlbWl0RmlsdGVyZWQiLCJyZXNwb25zZXMiLCJ1bmRlZmluZWQiLCJlbWl0dGVkUGF0aCIsImNvbnRlbnQiLCJlbmRzV2l0aCIsInJlc3BvbnNlIiwidG9UcmFuc2Zvcm1SZXNwb25zZSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJzb3VyY2VGaWxlcyIsImZsYXQiLCJnZXRTb3VyY2VGaWxlIiwiZmlsdGVyIiwic2YiLCJzb3VyY2VGaWxlIiwiZ2V0IiwiRXJyb3IiLCJ0b1RyYW5zZm9ybVJlc3BvbnNlRnJvbVRhcmdldCIsImZyb20iLCJjb25maWciLCJvdXRjb21lIiwiZmlsZU5hbWUiLCJjb2RlIiwibWVzc2Fn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
|
|
@@ -7,13 +7,13 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
7
7
|
function _ts_metadata(k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
}
|
|
10
|
-
import { invalidateCache } from "@decohere/
|
|
11
|
-
import { Trace } from "@decohere/
|
|
12
|
-
import {
|
|
13
|
-
import { io } from "@decohere/nexus/io";
|
|
10
|
+
import { invalidateCache } from "@decohere/core/caching";
|
|
11
|
+
import { Trace } from "@decohere/devkit/diagnostics";
|
|
12
|
+
import { WatchEvents } from "@decohere/devkit/io";
|
|
14
13
|
import "../extensions/project.extensions.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
14
|
+
import { IncrementalWatch } from "./incremental-watch.js";
|
|
15
|
+
import { OutputCache } from "./output-cache.js";
|
|
16
|
+
import { tsCompilerOptions } from "./ts-compiler-options.js";
|
|
17
17
|
import { TsProgramHost } from "./ts-program-host.js";
|
|
18
18
|
import { TypeEmissionProgram } from "./type-emission-program.js";
|
|
19
19
|
import { BuildTargets } from "../types/build-target.type.js";
|
|
@@ -42,12 +42,23 @@ import { BuildTargets } from "../types/build-target.type.js";
|
|
|
42
42
|
emitDeclarationOnly: true,
|
|
43
43
|
declaration: true
|
|
44
44
|
};
|
|
45
|
-
|
|
45
|
+
/** Compiler options enforced for `forge typecheck` — never emit JS or declarations. */ export const REQUIRED_TYPE_CHECK_OPTIONS = {
|
|
46
|
+
noEmit: true
|
|
47
|
+
};
|
|
48
|
+
export class TypeEmitter {
|
|
46
49
|
buildTargets = [
|
|
47
50
|
BuildTargets.types
|
|
48
51
|
];
|
|
49
52
|
/** Prepared programs from init(), consumed once by the next transformProject() call. */ #programs;
|
|
50
53
|
#host = new TsProgramHost();
|
|
54
|
+
#outputs = new OutputCache();
|
|
55
|
+
#incremental = new IncrementalWatch();
|
|
56
|
+
get incrementalTransform$() {
|
|
57
|
+
return this.#incremental.results$;
|
|
58
|
+
}
|
|
59
|
+
watch(workspace) {
|
|
60
|
+
this.#incremental.watch(workspace, (evt)=>this.onIncrementalFileEvent(evt));
|
|
61
|
+
}
|
|
51
62
|
/**
|
|
52
63
|
* Phase 1: fetch files, create TypeScript programs sequentially.
|
|
53
64
|
* Called before transformProject() so that the heavy createProgram work
|
|
@@ -66,43 +77,71 @@ export class TypeEmitter extends mixwith(CachesOutputs, IncrementalTransform) {
|
|
|
66
77
|
return [];
|
|
67
78
|
}
|
|
68
79
|
const responses = (await Promise.all(programs.map((program)=>program.emit(filter, onOutput)))).flat();
|
|
69
|
-
this.
|
|
80
|
+
this.#outputs.record(responses);
|
|
70
81
|
return responses;
|
|
71
82
|
}
|
|
72
|
-
|
|
83
|
+
/**
|
|
84
|
+
* Type-check projects without emitting files. Includes every workspace project, not
|
|
85
|
+
* only those with a `types` build target (debug is es6-only).
|
|
86
|
+
*/ async checkProject(projectArrayLike) {
|
|
87
|
+
const programs = await this.preparePrograms(projectArrayLike, {
|
|
88
|
+
includeAllProjects: true,
|
|
89
|
+
requiredCompilerOptions: REQUIRED_TYPE_CHECK_OPTIONS
|
|
90
|
+
});
|
|
91
|
+
const diagnostics = [];
|
|
92
|
+
const formattedParts = [];
|
|
93
|
+
for (const program of programs){
|
|
94
|
+
const programDiagnostics = program.check();
|
|
95
|
+
if (programDiagnostics.length === 0) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
diagnostics.push(...programDiagnostics);
|
|
99
|
+
formattedParts.push(program.formatDiagnostics(programDiagnostics));
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
diagnostics,
|
|
103
|
+
formatted: formattedParts.join("")
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
async preparePrograms(projectArrayLike, options = {}) {
|
|
73
107
|
const allProjects = Array.isArray(projectArrayLike) ? projectArrayLike : [
|
|
74
108
|
projectArrayLike
|
|
75
109
|
];
|
|
76
|
-
const projects = allProjects.filter((proj)=>proj.getForgeConfiguration().targets.includes(BuildTargets.types));
|
|
110
|
+
const projects = options.includeAllProjects ? allProjects : allProjects.filter((proj)=>proj.getForgeConfiguration().targets.includes(BuildTargets.types));
|
|
77
111
|
if (projects.length === 0) {
|
|
78
112
|
return [];
|
|
79
113
|
}
|
|
80
114
|
// Pre-fetch all files and tsconfigs in parallel across all projects
|
|
81
|
-
const projectData = await Promise.all(projects.map(async (proj)=>
|
|
115
|
+
const projectData = await Promise.all(projects.map(async (proj)=>{
|
|
116
|
+
const tsconfig = await proj.getTsConfig();
|
|
117
|
+
return {
|
|
82
118
|
project: proj,
|
|
83
119
|
files: await proj.getAllFiles(),
|
|
84
|
-
tsconfig
|
|
85
|
-
|
|
120
|
+
tsconfig,
|
|
121
|
+
compilerOptions: tsCompilerOptions(tsconfig)
|
|
122
|
+
};
|
|
123
|
+
}));
|
|
86
124
|
// Group projects by the resolved compiler options that affect the compiler
|
|
87
125
|
// host (lib loading, module resolution, path aliases). Projects sharing the
|
|
88
126
|
// same resolved values get one shared host AND one shared program — all their
|
|
89
127
|
// files are compiled together, matching v1's single-program approach which
|
|
90
128
|
// avoids re-parsing lib/node_modules .d.ts files per project.
|
|
91
|
-
const groups = Map.groupBy(projectData, ({
|
|
129
|
+
const groups = Map.groupBy(projectData, ({ compilerOptions })=>this.#host.hostKey(compilerOptions));
|
|
130
|
+
const requiredCompilerOptions = options.requiredCompilerOptions ?? REQUIRED_TYPE_EMITTER_OPTIONS;
|
|
92
131
|
return [
|
|
93
132
|
...groups.values()
|
|
94
|
-
].map((group)=>new TypeEmissionProgram(group, this.#host));
|
|
133
|
+
].map((group)=>new TypeEmissionProgram(group, this.#host, requiredCompilerOptions));
|
|
95
134
|
}
|
|
96
135
|
async onIncrementalFileEvent(evt) {
|
|
97
136
|
const { file, project } = evt;
|
|
98
|
-
if (evt.eventName ===
|
|
99
|
-
this.
|
|
137
|
+
if (evt.eventName === WatchEvents.unlink) {
|
|
138
|
+
this.#outputs.delete(file.fullPath);
|
|
100
139
|
return [];
|
|
101
140
|
}
|
|
102
141
|
if (!project.isSourceFile(file)) {
|
|
103
142
|
return [];
|
|
104
143
|
}
|
|
105
|
-
if (evt.eventName ===
|
|
144
|
+
if (evt.eventName === WatchEvents.add) {
|
|
106
145
|
this.#programs?.forEach((p)=>{
|
|
107
146
|
p.addFile(file, project);
|
|
108
147
|
});
|
|
@@ -130,5 +169,3 @@ _ts_decorate([
|
|
|
130
169
|
TypeEmitter = _ts_decorate([
|
|
131
170
|
Trace
|
|
132
171
|
], TypeEmitter);
|
|
133
|
-
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBQcm9qZWN0RmlsZUV2ZW50IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NhY2hpbmdcIjtcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9kaWFnbm9zdGljc1wiO1xuaW1wb3J0IHsgbWl4d2l0aCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZXh0ZW5zaWJpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBGaWxlRXggfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgeyBpbyB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgXCIuLi9leHRlbnNpb25zL3Byb2plY3QuZXh0ZW5zaW9ucy5qc1wiO1xuaW1wb3J0IHsgQ2FjaGVzT3V0cHV0cyB9IGZyb20gXCIuLi9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4uanNcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsVHJhbnNmb3JtIH0gZnJvbSBcIi4uL21peGlucy9pbmNyZW1lbnRhbC10cmFuc2Zvcm0ubWl4aW4uanNcIjtcbmltcG9ydCB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQge1xuXHRUeXBlRW1pc3Npb25Qcm9ncmFtLFxuXHR0eXBlIFR5cGVQcm9ncmFtUHJvamVjdCxcbn0gZnJvbSBcIi4uL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9uIGRlZmF1bHRzIGFwcGxpZWQgYmVmb3JlIHRoZSB1c2VyJ3MgdHNjb25maWcg4oCUIHRoZSB1c2VyJ3MgdmFsdWVzIG92ZXJyaWRlIHRoZXNlLlxuICpcbiAqIGxpYjogRVMyMDIyIOKAlCBhdm9pZHMgbG9hZGluZyBsaWIuZG9tLmQudHMgKDEuOCBNQikgd2hpY2ggVFMgaW5jbHVkZXMgYnkgZGVmYXVsdFxuICogd2hlbiBubyBgbGliYCBpcyBzZXQuIEJhY2tlbmQgcGFja2FnZXMgaGF2ZSBubyB1c2UgZm9yIGJyb3dzZXIgQVBJcy5cbiAqXG4gKiB0eXBlczogW10g4oCUIGRpc2FibGVzIGFtYmllbnQgQHR5cGVzIGF1dG8tZGlzY292ZXJ5LiBXaXRob3V0IHRoaXMsIFRTIHNjYW5zXG4gKiBldmVyeSBAdHlwZXMvKiBwYWNrYWdlIGluIHRoZSBub2RlX21vZHVsZXMgaGllcmFyY2h5OyBpbiBhIG1vbm9yZXBvIHRoYXQgY2FuXG4gKiBwdWxsIGluIGRvemVucyBvZiB1bnJlbGF0ZWQgcGFja2FnZXMuIEV4cGxpY2l0bHkgaW1wb3J0ZWQgdHlwZXMgc3RpbGwgcmVzb2x2ZVxuICogbm9ybWFsbHk7IG9ubHkgYW1iaWVudCBnbG9iYWxzIChlLmcuIEJ1ZmZlciwgcHJvY2VzcykgYXJlIHN1cHByZXNzZWQg4oCUIGFkZFxuICogYHR5cGVzOiBbXCJub2RlXCJdYCB0byBhIHByb2plY3QncyB0c2NvbmZpZyB0byByZXN0b3JlIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRsaWI6IFtcImxpYi5lczIwMjIuZC50c1wiXSxcblx0dHlwZXM6IFtdLFxuXHRza2lwTGliQ2hlY2s6IHRydWUsXG59O1xuXG4vKipcbiAqIENvbXBpbGVyIG9wdGlvbnMgdGhhdCBUeXBlRW1pdHRlciBhbHdheXMgZW5mb3JjZXMgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyJ3NcbiAqIHRzY29uZmlnIHNwZWNpZmllcy4gQXBwbGllZCBhZnRlciB0aGUgdXNlciBzcHJlYWQgc28gdGhleSBjYW5ub3QgYmUgb3ZlcnJpZGRlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRlbWl0RGVjbGFyYXRpb25Pbmx5OiB0cnVlLFxuXHRkZWNsYXJhdGlvbjogdHJ1ZSxcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFR5cGVFbWl0dGVyXG5cdGV4dGVuZHMgbWl4d2l0aChDYWNoZXNPdXRwdXRzLCBJbmNyZW1lbnRhbFRyYW5zZm9ybSlcblx0aW1wbGVtZW50cyBUcmFuc2Zvcm1lclxue1xuXHRwdWJsaWMgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdID0gW0J1aWxkVGFyZ2V0cy50eXBlc107XG5cdC8qKiBQcmVwYXJlZCBwcm9ncmFtcyBmcm9tIGluaXQoKSwgY29uc3VtZWQgb25jZSBieSB0aGUgbmV4dCB0cmFuc2Zvcm1Qcm9qZWN0KCkgY2FsbC4gKi9cblx0I3Byb2dyYW1zOiBUeXBlRW1pc3Npb25Qcm9ncmFtW10gfCB1bmRlZmluZWQ7XG5cdCNob3N0ID0gbmV3IFRzUHJvZ3JhbUhvc3QoKTtcblxuXHQvKipcblx0ICogUGhhc2UgMTogZmV0Y2ggZmlsZXMsIGNyZWF0ZSBUeXBlU2NyaXB0IHByb2dyYW1zIHNlcXVlbnRpYWxseS5cblx0ICogQ2FsbGVkIGJlZm9yZSB0cmFuc2Zvcm1Qcm9qZWN0KCkgc28gdGhhdCB0aGUgaGVhdnkgY3JlYXRlUHJvZ3JhbSB3b3JrXG5cdCAqIGNvbXBsZXRlcyBiZWZvcmUgb3RoZXIgdHJhbnNmb3JtZXJzIChTV0MvUmF5b24pIHN0YXJ0IHJ1bm5pbmcgaW4gcGFyYWxsZWwuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgaW5pdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHRcdF9maWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLiNwcm9ncmFtcyA9PSBudWxsKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2Zvcm1Qcm9qZWN0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0ZmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Ly8gQ29uc3VtZSBwcmVwYXJlZCBzdGF0ZSBmcm9tIGluaXQoKSBpZiBhdmFpbGFibGU7IG90aGVyd2lzZSBkbyBmdWxsIHNldHVwXG5cdFx0Ly8gKGUuZy4gd2F0Y2gtbW9kZSBzaW5nbGUtZmlsZSByZWJ1aWxkcyB0aGF0IHNraXAgdGhlIGluaXQgcGhhc2UpLlxuXHRcdGNvbnN0IHByb2dyYW1zID0gdGhpcy4jcHJvZ3JhbXMgPz8gKGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpKTtcblx0XHR0aGlzLiNwcm9ncmFtcyA9IHByb2dyYW1zO1xuXG5cdFx0aWYgKHByb2dyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3BvbnNlcyA9IChcblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb2dyYW1zLm1hcCgocHJvZ3JhbSkgPT4gcHJvZ3JhbS5lbWl0KGZpbHRlciwgb25PdXRwdXQpKSlcblx0XHQpLmZsYXQoKTtcblx0XHR0aGlzLmNhY2hlT3V0cHV0cyhyZXNwb25zZXMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIHByZXBhcmVQcm9ncmFtcyhcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHQpOiBQcm9taXNlPFR5cGVFbWlzc2lvblByb2dyYW1bXT4ge1xuXHRcdGNvbnN0IGFsbFByb2plY3RzID0gQXJyYXkuaXNBcnJheShwcm9qZWN0QXJyYXlMaWtlKVxuXHRcdFx0PyBwcm9qZWN0QXJyYXlMaWtlXG5cdFx0XHQ6IFtwcm9qZWN0QXJyYXlMaWtlXTtcblx0XHRjb25zdCBwcm9qZWN0cyA9IGFsbFByb2plY3RzLmZpbHRlcigocHJvaikgPT5cblx0XHRcdHByb2ouZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCkudGFyZ2V0cy5pbmNsdWRlcyhCdWlsZFRhcmdldHMudHlwZXMpLFxuXHRcdCk7XG5cdFx0aWYgKHByb2plY3RzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdC8vIFByZS1mZXRjaCBhbGwgZmlsZXMgYW5kIHRzY29uZmlncyBpbiBwYXJhbGxlbCBhY3Jvc3MgYWxsIHByb2plY3RzXG5cdFx0Y29uc3QgcHJvamVjdERhdGE6IFR5cGVQcm9ncmFtUHJvamVjdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0XHRwcm9qZWN0cy5tYXAoYXN5bmMgKHByb2opID0+ICh7XG5cdFx0XHRcdHByb2plY3Q6IHByb2osXG5cdFx0XHRcdGZpbGVzOiBhd2FpdCBwcm9qLmdldEFsbEZpbGVzKCksXG5cdFx0XHRcdHRzY29uZmlnOiBhd2FpdCBwcm9qLmdldFRzQ29uZmlnKCksXG5cdFx0XHR9KSksXG5cdFx0KTtcblxuXHRcdC8vIEdyb3VwIHByb2plY3RzIGJ5IHRoZSByZXNvbHZlZCBjb21waWxlciBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjb21waWxlclxuXHRcdC8vIGhvc3QgKGxpYiBsb2FkaW5nLCBtb2R1bGUgcmVzb2x1dGlvbiwgcGF0aCBhbGlhc2VzKS4gUHJvamVjdHMgc2hhcmluZyB0aGVcblx0XHQvLyBzYW1lIHJlc29sdmVkIHZhbHVlcyBnZXQgb25lIHNoYXJlZCBob3N0IEFORCBvbmUgc2hhcmVkIHByb2dyYW0g4oCUIGFsbCB0aGVpclxuXHRcdC8vIGZpbGVzIGFyZSBjb21waWxlZCB0b2dldGhlciwgbWF0Y2hpbmcgdjEncyBzaW5nbGUtcHJvZ3JhbSBhcHByb2FjaCB3aGljaFxuXHRcdC8vIGF2b2lkcyByZS1wYXJzaW5nIGxpYi9ub2RlX21vZHVsZXMgLmQudHMgZmlsZXMgcGVyIHByb2plY3QuXG5cdFx0Y29uc3QgZ3JvdXBzID0gTWFwLmdyb3VwQnkocHJvamVjdERhdGEsICh7IHRzY29uZmlnIH0pID0+XG5cdFx0XHR0aGlzLiNob3N0Lmhvc3RLZXkodHNjb25maWcuY29tcGlsZXJPcHRpb25zKSxcblx0XHQpO1xuXG5cdFx0cmV0dXJuIFsuLi5ncm91cHMudmFsdWVzKCldLm1hcCgoZ3JvdXApID0+IG5ldyBUeXBlRW1pc3Npb25Qcm9ncmFtKGdyb3VwLCB0aGlzLiNob3N0KSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgb25JbmNyZW1lbnRhbEZpbGVFdmVudChldnQ6IFByb2plY3RGaWxlRXZlbnQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+IHtcblx0XHRjb25zdCB7IGZpbGUsIHByb2plY3QgfSA9IGV2dDtcblx0XHRpZiAoZXZ0LmV2ZW50TmFtZSA9PT0gaW8uV2F0Y2hFdmVudHMudW5saW5rKSB7XG5cdFx0XHR0aGlzLmRlbGV0ZUNhY2hlZE91dHB1dHMoZmlsZS5mdWxsUGF0aCk7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdGlmICghcHJvamVjdC5pc1NvdXJjZUZpbGUoZmlsZSkpIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLmFkZCkge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbXM/LmZvckVhY2goKHApID0+IHtcblx0XHRcdFx0cC5hZGRGaWxlKGZpbGUsIHByb2plY3QpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUoZmlsZS5mdWxsUGF0aCk7XG5cdFx0XHR0aGlzLiNob3N0LmludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGUuZnVsbFBhdGgpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1Qcm9qZWN0KHByb2plY3QsICgpID0+IFByb21pc2UucmVzb2x2ZShbZmlsZV0pKTtcblx0fVxuXG5cdEBpbnZhbGlkYXRlQ2FjaGUoVHNQcm9ncmFtSG9zdC5wcm90b3R5cGUucmVhZEZpbGVGcm9tRGlzaywge1xuXHRcdG5hbWU6IFwiRklMRV9DT05URU5UXCIsXG5cdFx0a2V5Rm46ICguLi5hcmdzKSA9PiBhcmdzWzBdIGFzIHN0cmluZyxcblx0fSlcblx0cHJpdmF0ZSBpbnZhbGlkYXRlUmVhZEZpbGVDYWNoZShfcGF0aDogc3RyaW5nKTogdm9pZCB7fVxufVxuIl0sIm5hbWVzIjpbImludmFsaWRhdGVDYWNoZSIsIlRyYWNlIiwibWl4d2l0aCIsImlvIiwiQ2FjaGVzT3V0cHV0cyIsIkluY3JlbWVudGFsVHJhbnNmb3JtIiwiVHNQcm9ncmFtSG9zdCIsIlR5cGVFbWlzc2lvblByb2dyYW0iLCJCdWlsZFRhcmdldHMiLCJERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TIiwibGliIiwidHlwZXMiLCJza2lwTGliQ2hlY2siLCJSRVFVSVJFRF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsImVtaXREZWNsYXJhdGlvbk9ubHkiLCJkZWNsYXJhdGlvbiIsIlR5cGVFbWl0dGVyIiwiYnVpbGRUYXJnZXRzIiwiaW5pdCIsInByb2plY3RBcnJheUxpa2UiLCJfZmlsdGVyIiwicHJlcGFyZVByb2dyYW1zIiwidHJhbnNmb3JtUHJvamVjdCIsImZpbHRlciIsIm9uT3V0cHV0IiwicHJvZ3JhbXMiLCJsZW5ndGgiLCJyZXNwb25zZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwicHJvZ3JhbSIsImVtaXQiLCJmbGF0IiwiY2FjaGVPdXRwdXRzIiwiYWxsUHJvamVjdHMiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9qZWN0cyIsInByb2oiLCJnZXRGb3JnZUNvbmZpZ3VyYXRpb24iLCJ0YXJnZXRzIiwiaW5jbHVkZXMiLCJwcm9qZWN0RGF0YSIsInByb2plY3QiLCJmaWxlcyIsImdldEFsbEZpbGVzIiwidHNjb25maWciLCJnZXRUc0NvbmZpZyIsImdyb3VwcyIsIk1hcCIsImdyb3VwQnkiLCJob3N0S2V5IiwiY29tcGlsZXJPcHRpb25zIiwidmFsdWVzIiwiZ3JvdXAiLCJvbkluY3JlbWVudGFsRmlsZUV2ZW50IiwiZXZ0IiwiZmlsZSIsImV2ZW50TmFtZSIsIldhdGNoRXZlbnRzIiwidW5saW5rIiwiZGVsZXRlQ2FjaGVkT3V0cHV0cyIsImZ1bGxQYXRoIiwiaXNTb3VyY2VGaWxlIiwiYWRkIiwiZm9yRWFjaCIsInAiLCJhZGRGaWxlIiwiaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUiLCJpbnZhbGlkYXRlU291cmNlRmlsZSIsInJlc29sdmUiLCJfcGF0aCIsInByb3RvdHlwZSIsInJlYWRGaWxlRnJvbURpc2siLCJuYW1lIiwia2V5Rm4iLCJhcmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxTQUFTQSxlQUFlLFFBQVEsMEJBQTBCO0FBQzFELFNBQVNDLEtBQUssUUFBUSw4QkFBOEI7QUFDcEQsU0FBU0MsT0FBTyxRQUFRLGdDQUFn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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// What compiling one file needs (flux, the vitest plugin), without forge's commands: those
|
|
2
|
+
// load the TypeScript compiler, which a plain `flux run` never uses.
|
|
3
|
+
export { createWorkspace } from "../create-workspace.js";
|
|
4
|
+
export { SwcTranspiler } from "../services/swc-transpiler.js";
|
|
5
|
+
export { transpileCache } from "../services/transpile-cache.js";
|
|
6
|
+
export { BuildTargets } from "../types/build-target.type.js";
|
|
@@ -3,5 +3,3 @@ export const BuildTargets = {
|
|
|
3
3
|
es6: "es6",
|
|
4
4
|
types: "types"
|
|
5
5
|
};
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9idWlsZC10YXJnZXQudHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQnVpbGRUYXJnZXRzID0ge1xuXHRjb21tb25qczogXCJjb21tb25qc1wiLFxuXHRlczY6IFwiZXM2XCIsXG5cdHR5cGVzOiBcInR5cGVzXCIsXG59IHNhdGlzZmllcyBSZWNvcmQ8QnVpbGRUYXJnZXQsIEJ1aWxkVGFyZ2V0PjtcblxuZXhwb3J0IHR5cGUgQnVpbGRUYXJnZXQgPSBcImVzNlwiIHwgXCJjb21tb25qc1wiIHwgXCJ0eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBUcmFuc3BpbGVUYXJnZXQgPSBFeGNsdWRlPEJ1aWxkVGFyZ2V0LCBcInR5cGVzXCI+O1xuIl0sIm5hbWVzIjpbIkJ1aWxkVGFyZ2V0cyIsImNvbW1vbmpzIiwiZXM2IiwidHlwZXMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsZUFBZTtJQUMzQkMsVUFBVTtJQUNWQyxLQUFLO0lBQ0xDLE9BQU87QUFDUixFQUE2QyJ9
|
|
@@ -1,3 +1 @@
|
|
|
1
1
|
export { };
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9jb25maWd1cmF0aW9uLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25maWd1cmF0aW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4vYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgRm9yZ2VDb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbiAmIHtcblx0dGFyZ2V0czogQnVpbGRUYXJnZXRbXTtcblx0YWxpYXNQYXRocz86IGJvb2xlYW47XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFdBR0UifQ==
|
|
@@ -1,3 +1 @@
|
|
|
1
1
|
export { };
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9kZXBlbmRlbmN5LnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzdWx0U3RhdHVzIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcblxuZXhwb3J0IHR5cGUgUGFja2FnZSA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHR2ZXJzaW9uPzogc3RyaW5nO1xuXHRpc0ludGVybmFsPzogYm9vbGVhbjtcblx0aXNEZXY/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWREZXBlbmRlbmN5ID1cblx0fCB7IG5hbWU6IHN0cmluZzsgdmVyc2lvbjogc3RyaW5nOyBpbnRlcm5hbDogYm9vbGVhbjsgbWlzc2luZzogZmFsc2U7IGlzRGV2OiBib29sZWFuIH1cblx0fCB7IG5hbWU6IHN0cmluZzsgdmVyc2lvbjogdW5kZWZpbmVkOyBpbnRlcm5hbDogdW5kZWZpbmVkOyBtaXNzaW5nOiB0cnVlOyBpc0RldjogZmFsc2UgfTtcblxuZXhwb3J0IHR5cGUgU3luY3Byb2plY3RSZXN1bHQgPSBSZXN1bHRTdGF0dXMgJiB7XG5cdHByb2plY3ROYW1lOiBzdHJpbmc7XG5cdGRyaWZ0PzogRHJpZnRFbnRyeSB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBEcmlmdEVudHJ5ID0ge1xuXHRvcmlnaW5hbDogeyBkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IGRldkRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9O1xuXHR1cGRhdGVkOiB7IGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsgZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH07XG59O1xuXG5leHBvcnQgdHlwZSBEZXBlbmRlbmN5V2FybmluZyA9IHtcblx0ZmlsZTogc3RyaW5nO1xuXHRsaW5lOiBudW1iZXI7XG5cdG1lc3NhZ2U6IHN0cmluZztcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJBLFdBSUUifQ==
|
|
@@ -3,5 +3,3 @@ export class SwcConfig {
|
|
|
3
3
|
Object.assign(this, data);
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9zd2MtY29uZmlnLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUc2NvbmZpZyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuXG5leHBvcnQgdHlwZSBTd2NDb25maWdPcHRpb25zID0ge1xuXHRhbGlhc1BhdGhzPzogYm9vbGVhbjtcblx0dHNDb25maWc/OiBUc2NvbmZpZztcblx0dXNlckNvbmZpZz86IFN3Y0NvbmZpZztcbn07XG5cbmV4cG9ydCBjbGFzcyBTd2NDb25maWcge1xuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogUGFydGlhbDxTd2NDb25maWc+ID0ge30pIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiU3djQ29uZmlnIiwiZGF0YSIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxNQUFNQTtJQUNaLFlBQW1CQyxPQUEyQixDQUFDLENBQUMsQ0FBRTtRQUNqREMsT0FBT0MsTUFBTSxDQUFDLElBQUksRUFBRUY7SUFDckI7QUFDRCJ9
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
export const TransformOutcomes = {
|
|
2
|
-
success: "success",
|
|
3
|
-
failure: "failure",
|
|
4
|
-
skipped: "skipped"
|
|
5
|
-
};
|
|
6
1
|
export class TransformResponse {
|
|
7
2
|
static Success(data) {
|
|
8
3
|
return new TransformResponse({
|
|
@@ -43,5 +38,3 @@ export class TransformResponse {
|
|
|
43
38
|
outputDir;
|
|
44
39
|
outputPath;
|
|
45
40
|
}
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4vYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtT3V0Y29tZSA9IFwic3VjY2Vzc1wiIHwgXCJmYWlsdXJlXCIgfCBcInNraXBwZWRcIjtcbmV4cG9ydCBjb25zdCBUcmFuc2Zvcm1PdXRjb21lcyA9IHtcblx0c3VjY2VzczogXCJzdWNjZXNzXCIsXG5cdGZhaWx1cmU6IFwiZmFpbHVyZVwiLFxuXHRza2lwcGVkOiBcInNraXBwZWRcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFRyYW5zZm9ybU91dGNvbWU+O1xuXG50eXBlIFRyYW5zZm9ybVJlc3BvbnNlQmFzZSA9IHtcblx0ZmlsZTogRmlsZTtcblx0Y29uZmlnOiB1bmtub3duO1xuXHRwcm9qZWN0PzogUHJvamVjdDtcblx0LyoqIEFic29sdXRlIGRpcmVjdG9yeSB0aGF0IHdpbGwgY29udGFpbiB0aGUgb3V0cHV0IGZpbGUuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dERpcj86IHN0cmluZztcblx0LyoqIEFic29sdXRlIHBhdGggb2YgdGhlIG91dHB1dCBmaWxlIChvdXRwdXREaXIgKyBmaWxlTmFtZSkuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dFBhdGg/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVN1Y2Nlc3MgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic3VjY2Vzc1wiO1xuXHRjb2RlOiBzdHJpbmc7XG5cdHNvdXJjZUNvbnRlbnQ/OiBzdHJpbmc7XG5cdG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHRhcmdldDogQnVpbGRUYXJnZXQ7XG5cdGZpbGVOYW1lOiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybUZhaWx1cmUgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwiZmFpbHVyZVwiO1xuXHRtZXNzYWdlcz86IHN0cmluZ1tdO1xuXHR0YXJnZXQ/OiBCdWlsZFRhcmdldDtcblx0ZmlsZU5hbWU/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVNraXBwZWQgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic2tpcHBlZFwiO1xuXHRtZXNzYWdlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufTtcblxudHlwZSBUcmFuc2Zvcm1SZXNwb25zZURhdGE8VCBleHRlbmRzIFRyYW5zZm9ybU91dGNvbWUgPSBUcmFuc2Zvcm1PdXRjb21lPiA9IFQgZXh0ZW5kcyBcInN1Y2Nlc3NcIlxuXHQ/IFRyYW5zZm9ybVN1Y2Nlc3Ncblx0OiBUIGV4dGVuZHMgXCJza2lwcGVkXCJcblx0XHQ/IFRyYW5zZm9ybVNraXBwZWRcblx0XHQ6IFRyYW5zZm9ybUZhaWx1cmU7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdHB1YmxpYyBzdGF0aWMgU3VjY2VzcyhkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcInN1Y2Nlc3NcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcInN1Y2Nlc3NcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgRXJyb3IoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJmYWlsdXJlXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJmYWlsdXJlXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIFNraXBwZWQoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJza2lwcGVkXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJza2lwcGVkXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGZyb20oZGF0YTogVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhIH0gYXMgVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxUcmFuc2Zvcm1SZXNwb25zZURhdGE+KSB7XG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcblx0fVxuXG5cdC8vIFByb3BlcnRpZXMgYXJlIHBvcHVsYXRlZCB2aWEgT2JqZWN0LmFzc2lnbiBpbiB0aGUgY29uc3RydWN0b3IuXG5cdHB1YmxpYyByZWFkb25seSBmaWxlITogRmlsZTtcblx0cHVibGljIHJlYWRvbmx5IG91dGNvbWUhOiBUcmFuc2Zvcm1PdXRjb21lO1xuXHRwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0PzogQnVpbGRUYXJnZXQ7XG5cdHB1YmxpYyByZWFkb25seSBjb2RlITogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgc291cmNlQ29udGVudD86IHN0cmluZztcblx0cHVibGljIHJlYWRvbmx5IGZpbGVOYW1lPzogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZXM/OiBzdHJpbmdbXTtcblx0cHVibGljIHJlYWRvbmx5IGNvbmZpZzogdW5rbm93bjtcblx0cHVibGljIHJlYWRvbmx5IHByb2plY3Q/OiBQcm9qZWN0O1xuXHRwdWJsaWMgcmVhZG9ubHkgb3V0cHV0RGlyPzogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgb3V0cHV0UGF0aD86IHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJUcmFuc2Zvcm1PdXRjb21lcyIsInN1Y2Nlc3MiLCJmYWlsdXJlIiwic2tpcHBlZCIsIlRyYW5zZm9ybVJlc3BvbnNlIiwiU3VjY2VzcyIsImRhdGEiLCJvdXRjb21lIiwiRXJyb3IiLCJTa2lwcGVkIiwiZnJvbSIsIk9iamVjdCIsImFzc2lnbiIsImZpbGUiLCJ0YXJnZXQiLCJjb2RlIiwic291cmNlQ29udGVudCIsImZpbGVOYW1lIiwibWVzc2FnZXMiLCJjb25maWciLCJwcm9qZWN0Iiwib3V0cHV0RGlyIiwib3V0cHV0UGF0aCJdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxNQUFNQSxvQkFBb0I7SUFDaENDLFNBQVM7SUFDVEMsU0FBUztJQUNUQyxTQUFTO0FBQ1YsRUFBNkM7QUF1QzdDLE9BQU8sTUFBTUM7SUFDWixPQUFjQyxRQUFRQyxJQUF1RCxFQUFFO1FBQzlFLE9BQU8sSUFBSUYsa0JBQWtCO1lBQUUsR0FBR0UsSUFBSTtZQUFFQyxTQUFTO1FBQW1CO0lBQ3JFO0lBRUEsT0FBY0MsTUFBTUYsSUFBdUQsRUFBRTtRQUM1RSxPQUFPLElBQUlGLGtCQUFrQjtZQUFFLEdBQUdFLElBQUk7WUFBRUMsU0FBUztRQUFtQjtJQUNyRTtJQUVBLE9BQWNFLFFBQVFILElBQXVELEVBQUU7UUFDOUUsT0FBTyxJQUFJRixrQkFBa0I7WUFBRSxHQUFHRSxJQUFJO1lBQUVDLFNBQVM7UUFBbUI7SUFDckU7SUFFQSxPQUFjRyxLQUFLSixJQUEyQixFQUFxQjtRQUNsRSxPQUFPLElBQUlGLGtCQUFrQjtZQUFFLEdBQUdFLElBQUk7UUFBQztJQUN4QztJQUVBLFlBQW1CQSxJQUFxQyxDQUFFO1FBQ3pESyxPQUFPQyxNQUFNLENBQUMsSUFBSSxFQUFFTjtJQUNyQjtJQUVBLGlFQUFpRTtJQUNqRE8sS0FBWTtJQUNaTixRQUEyQjtJQUMzQk8sT0FBcUI7SUFDckJDLEtBQWM7SUFDZEMsY0FBdUI7SUFDdkJDLFNBQWtCO0lBQ2xCQyxTQUFvQjtJQUNwQkMsT0FBZ0I7SUFDaEJDLFFBQWtCO0lBQ2xCQyxVQUFtQjtJQUNuQkMsV0FBb0I7QUFDckMifQ==
|
|
@@ -1,3 +1 @@
|
|
|
1
1
|
export const TransformerKey = Symbol("TransformerKey");
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy90cmFuc2Zvcm1lci50eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvamVjdCwgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4vdHJhbnNmb3JtLXJlc3BvbnNlLm1vZGVsLmpzXCI7XG5cbmV4cG9ydCB0eXBlIEZpbGVFdmVudCA9XG5cdHwgeyB0eXBlOiBcImNoYW5nZWRcIiB8IFwiYWRkZWRcIjsgZmlsZTogRmlsZUV4OyBwcm9qZWN0PzogUHJvamVjdCB9XG5cdHwgeyB0eXBlOiBcImRlbGV0ZWRcIjsgZmlsZTogRmlsZUV4OyBwcm9qZWN0OiBQcm9qZWN0IH07XG5cbmV4cG9ydCBjb25zdCBUcmFuc2Zvcm1lcktleSA9IFN5bWJvbChcIlRyYW5zZm9ybWVyS2V5XCIpO1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1lciB7XG5cdHJlYWRvbmx5IGJ1aWxkVGFyZ2V0czogQnVpbGRUYXJnZXRbXTtcblxuXHQvKipcblx0ICogT3B0aW9uYWwgcHJlLWJ1aWxkIHBoYXNlIHRoYXQgcnVucyBzZXF1ZW50aWFsbHkgYmVmb3JlIGFsbCB0cmFuc2Zvcm1lcnMnXG5cdCAqIHtAbGluayB0cmFuc2Zvcm1Qcm9qZWN0fSBjYWxscy4gVXNlIGZvciBleHBlbnNpdmUgQ1BVLWJvdW5kIHNldHVwIChlLmcuXG5cdCAqIFR5cGVTY3JpcHQgY3JlYXRlUHJvZ3JhbSkgdGhhdCBtdXN0IG5vdCBjb21wZXRlIHdpdGggb3RoZXIgdHJhbnNmb3JtZXJzJ1xuXHQgKiBwYXJhbGxlbCB3b3JrbG9hZHMuXG5cdCAqL1xuXHRpbml0Pyhcblx0XHRwcm9qZWN0czogUHJvamVjdCB8IFByb2plY3RbXSxcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHQpOiBQcm9taXNlPHZvaWQ+O1xuXG5cdHRyYW5zZm9ybVByb2plY3QoXG5cdFx0cHJvamVjdHM6IFByb2plY3QgfCBQcm9qZWN0W10sXG5cdFx0ZmlsZUZpbHRlcj86IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0XHRvbk91dHB1dD86IChyZXNwb25zZTogVHJhbnNmb3JtUmVzcG9uc2UpID0+IHZvaWQsXG5cdCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT47XG5cblx0LyoqXG5cdCAqIElmIGltcGxlbWVudGVkLCBzaWduYWxzIHRoaXMgdHJhbnNmb3JtZXIgc3VwcG9ydHMgaW5jcmVtZW50YWwgKHdhdGNoKSBtb2RlLlxuXHQgKiB7QGxpbmsgQnVpbGRBY3Rpb259IGNhbGxzIHRoaXMgYWZ0ZXIgdGhlIGluaXRpYWwgYnVpbGQsIHBhc3NpbmcgdGhlIHdvcmtzcGFjZVxuXHQgKiBzbyB0aGUgdHJhbnNmb3JtZXIgY2FuIHNlbGYtc3Vic2NyaWJlIHRvIGZpbGUgY2hhbmdlIGV2ZW50cy5cblx0ICovXG5cdHdhdGNoPyh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IHZvaWQ7XG5cblx0LyoqXG5cdCAqIEVtaXRzIGluY3JlbWVudGFsIHRyYW5zZm9ybSByZXN1bHRzIGFmdGVyIGVhY2ggZmlsZS1jaGFuZ2UgY3ljbGUuXG5cdCAqIFByZXNlbnQgd2hlbiB7QGxpbmsgd2F0Y2h9IGlzIGltcGxlbWVudGVkLlxuXHQgKi9cblx0aW5jcmVtZW50YWxUcmFuc2Zvcm0kPzogT2JzZXJ2YWJsZTxUcmFuc2Zvcm1SZXNwb25zZVtdPjtcbn1cbiJdLCJuYW1lcyI6WyJUcmFuc2Zvcm1lcktleSIsIlN5bWJvbCJdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxNQUFNQSxpQkFBaUJDLE9BQU8sa0JBQWtCIn0=
|
|
@@ -1,3 +1 @@
|
|
|
1
1
|
export { };
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy93b3Jrc3BhY2UtY29uZmlnLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuXHRQcm9qZWN0T3B0aW9ucyBhcyBCYXNlUHJvamVjdE9wdGlvbnMsXG5cdFdvcmtzcGFjZU9wdGlvbnMgYXMgQmFzZVdvcmtzcGFjZU9wdGlvbnMsXG59IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24sIENvbW1hbmRUeXBlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBGb3JnZUNvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uLnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgUHJvamVjdE9wdGlvbnMgPSBPbWl0PEJhc2VQcm9qZWN0T3B0aW9ucywgXCJjb25maWd1cmF0aW9uc1wiPiAmIHtcblx0Y29uZmlndXJhdGlvbnM6IEZvcmdlQ29uZmlndXJhdGlvbltdO1xufTtcblxuZXhwb3J0IHR5cGUgV29ya3NwYWNlT3B0aW9ucyA9IE9taXQ8QmFzZVdvcmtzcGFjZU9wdGlvbnMsIFwiY29uZmlndXJhdGlvbnNcIiB8IFwicHJvamVjdHNcIj4gJiB7XG5cdGNvbmZpZ3VyYXRpb25zOiBGb3JnZUNvbmZpZ3VyYXRpb25bXTtcblx0cHJvamVjdHM/OiBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPFByb2plY3RPcHRpb25zPj47XG5cdGFjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBDb25zdHJ1Y3RhYmxlPEFjdGlvbj4+O1xuXHRjb21tYW5kcz86IFJlY29yZDxzdHJpbmcsIENvbW1hbmRUeXBlPjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsV0FLRSJ9
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { WorkspaceFactory } from "@decohere/
|
|
4
|
-
import { FileEx } from "@decohere/
|
|
3
|
+
import { sourceExtensions, WorkspaceFactory } from "@decohere/workspace";
|
|
4
|
+
import { FileEx } from "@decohere/core/io";
|
|
5
5
|
import { ConsoleAdapter, scribe } from "@decohere/scribe";
|
|
6
6
|
import { SwcTranspiler } from "../services/swc-transpiler.js";
|
|
7
7
|
import { BuildTargets } from "../types/build-target.type.js";
|
|
@@ -9,11 +9,6 @@ import { WorkspaceDefaults } from "../workspace.config.js";
|
|
|
9
9
|
// Above fatal (60) so all standard levels are nooped when logLevel is "silent"
|
|
10
10
|
const SILENT_LEVEL = 999;
|
|
11
11
|
const PLUGIN_NAME = "forge-vitest-source";
|
|
12
|
-
const TS_EXTENSIONS = [
|
|
13
|
-
".ts",
|
|
14
|
-
".tsx",
|
|
15
|
-
".mts"
|
|
16
|
-
];
|
|
17
12
|
export function forgeBuild(options) {
|
|
18
13
|
const buildConfig = options?.buildConfig ?? "debug";
|
|
19
14
|
const workspaceRoot = options?.workspaceRoot ?? process.cwd();
|
|
@@ -28,9 +23,11 @@ export function forgeBuild(options) {
|
|
|
28
23
|
}
|
|
29
24
|
});
|
|
30
25
|
const logger = loggerFactory(PLUGIN_NAME);
|
|
31
|
-
const skipBuild = options?.skipBuild ?? false;
|
|
32
26
|
const transpiler = new SwcTranspiler();
|
|
33
|
-
|
|
27
|
+
/**
|
|
28
|
+
* SWC options per project (tsconfig, `.swcrc`, path aliases), built once: rebuilding them for
|
|
29
|
+
* every file was most of the plugin's per-file cost, as it was in flux.
|
|
30
|
+
*/ const baseConfigs = new Map();
|
|
34
31
|
const transformCache = new Map();
|
|
35
32
|
let workspace = null;
|
|
36
33
|
const initWorkspace = async ()=>{
|
|
@@ -41,10 +38,17 @@ export function forgeBuild(options) {
|
|
|
41
38
|
rootDir: workspaceRoot
|
|
42
39
|
});
|
|
43
40
|
};
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
const baseConfigFor = (project)=>{
|
|
42
|
+
const cached = baseConfigs.get(project);
|
|
43
|
+
if (cached != null) return cached;
|
|
44
|
+
const config = transpiler.createBaseConfig(BuildTargets.es6, {
|
|
45
|
+
aliasPaths: true,
|
|
46
|
+
tsConfig: project?.getTsConfigSync(),
|
|
47
|
+
userConfig: project?.getSwcConfigSync(),
|
|
48
|
+
workspace: workspace ?? undefined
|
|
49
|
+
});
|
|
50
|
+
baseConfigs.set(project, config);
|
|
51
|
+
return config;
|
|
48
52
|
};
|
|
49
53
|
return {
|
|
50
54
|
name: PLUGIN_NAME,
|
|
@@ -53,50 +57,32 @@ export function forgeBuild(options) {
|
|
|
53
57
|
logger.debug("Plugin loaded");
|
|
54
58
|
},
|
|
55
59
|
resolveId (source, importer) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
return candidates.find((c)=>existsSync(c)) ?? null;
|
|
60
|
+
// `./a.js` is `a.ts` or `a.tsx`, `./a.mjs` is `a.mts`, `./a.cjs` is `a.cts`.
|
|
61
|
+
if (importer != null && /\.[mc]?jsx?$/.test(source) && source.startsWith(".")) {
|
|
62
|
+
const written = path.resolve(path.dirname(importer), source);
|
|
63
|
+
return sourceExtensions.candidates(written).find((c)=>existsSync(c)) ?? null;
|
|
61
64
|
}
|
|
62
65
|
return null;
|
|
63
66
|
},
|
|
64
67
|
watchChange (id) {
|
|
65
|
-
const file = new FileEx({
|
|
66
|
-
fullPath: id
|
|
67
|
-
});
|
|
68
68
|
transformCache.delete(id);
|
|
69
|
-
transpiler.invalidateContentCache(file);
|
|
70
69
|
},
|
|
71
70
|
async transform (code, id) {
|
|
72
71
|
if (id.includes("node_modules") || !/[.](ts|tsx|mts|cts)$/.test(id)) {
|
|
73
72
|
return null;
|
|
74
73
|
}
|
|
75
|
-
await initWorkspace();
|
|
76
|
-
const project = await workspace?.findProject(id, buildConfig);
|
|
77
|
-
if (project != null && !skipBuild) {
|
|
78
|
-
preWarmProject(project);
|
|
79
|
-
}
|
|
80
74
|
const cached = transformCache.get(id);
|
|
81
75
|
if (cached !== undefined && cached.content === code) {
|
|
82
76
|
return cached.result;
|
|
83
77
|
}
|
|
84
|
-
|
|
78
|
+
await initWorkspace();
|
|
79
|
+
const project = await workspace?.findProject(id, buildConfig);
|
|
80
|
+
// The code Vite passes, not a read of the file: no content cache can serve an older
|
|
81
|
+
// version, and there is no pre-warm compiling files ahead from disk.
|
|
82
|
+
const response = await transpiler.transformCode(code, new FileEx({
|
|
85
83
|
fullPath: id,
|
|
86
84
|
content: code
|
|
87
|
-
});
|
|
88
|
-
if (cached !== undefined) {
|
|
89
|
-
// Content changed for a previously-seen file — invalidate the transpiler's
|
|
90
|
-
// FILE_CONTENT cache so the fresh content from Vite is used.
|
|
91
|
-
// The VS Code Vitest extension disables Vite's chokidar watcher
|
|
92
|
-
// (server.watch: null) and drives re-runs via vitest.watcher.onFileChange(),
|
|
93
|
-
// bypassing watchChange entirely — so we cannot rely on watchChange alone.
|
|
94
|
-
transpiler.invalidateContentCache(file);
|
|
95
|
-
}
|
|
96
|
-
const [response] = await transpiler.transformFile(file, BuildTargets.es6, {
|
|
97
|
-
aliasPaths: true,
|
|
98
|
-
tsConfig: project ? await project.getTsConfig() : undefined
|
|
99
|
-
});
|
|
85
|
+
}), BuildTargets.es6, baseConfigFor(project));
|
|
100
86
|
if (!response || response.outcome !== "success") return null;
|
|
101
87
|
const result = {
|
|
102
88
|
code: response.code,
|
|
@@ -110,5 +96,3 @@ export function forgeBuild(options) {
|
|
|
110
96
|
}
|
|
111
97
|
};
|
|
112
98
|
}
|
|
113
|
-
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy92aXRlc3QvZm9yZ2UtYnVpbGQucGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB7IENvbnNvbGVBZGFwdGVyLCBzY3JpYmUgfSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHsgU3djVHJhbnNwaWxlciB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zd2MtdHJhbnNwaWxlci5qc1wiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgeyBXb3Jrc3BhY2VEZWZhdWx0cyB9IGZyb20gXCIuLi93b3Jrc3BhY2UuY29uZmlnLmpzXCI7XG5cbi8vIEFib3ZlIGZhdGFsICg2MCkgc28gYWxsIHN0YW5kYXJkIGxldmVscyBhcmUgbm9vcGVkIHdoZW4gbG9nTGV2ZWwgaXMgXCJzaWxlbnRcIlxuY29uc3QgU0lMRU5UX0xFVkVMID0gOTk5O1xuXG5jb25zdCBQTFVHSU5fTkFNRSA9IFwiZm9yZ2Utdml0ZXN0LXNvdXJjZVwiO1xuY29uc3QgVFNfRVhURU5TSU9OUyA9IFtcIi50c1wiLCBcIi50c3hcIiwgXCIubXRzXCJdO1xuXG5leHBvcnQgdHlwZSBGb3JnZUJ1aWxkT3B0aW9ucyA9IHtcblx0YnVpbGRDb25maWc/OiBzdHJpbmc7XG5cdGxvZ0xldmVsPzogc3RyaW5nO1xuXHR3b3Jrc3BhY2VSb290Pzogc3RyaW5nO1xuXHQvKiogU2tpcCB0aGUgYnVpbGQgcHJlLXdhcm0gZW50aXJlbHkgKGUuZy4gd2hlbiBhIHByZS1idWlsdCBhcnRpZmFjdCBpcyBhbHJlYWR5IG9uIGRpc2spLiAqL1xuXHRza2lwQnVpbGQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmdlQnVpbGQob3B0aW9ucz86IEZvcmdlQnVpbGRPcHRpb25zKSB7XG5cdGNvbnN0IGJ1aWxkQ29uZmlnID0gb3B0aW9ucz8uYnVpbGRDb25maWcgPz8gXCJkZWJ1Z1wiO1xuXHRjb25zdCB3b3Jrc3BhY2VSb290ID0gb3B0aW9ucz8ud29ya3NwYWNlUm9vdCA/PyBwcm9jZXNzLmN3ZCgpO1xuXHRjb25zdCBsb2dMZXZlbCA9IG9wdGlvbnM/LmxvZ0xldmVsID8/IFwiaW5mb1wiO1xuXHRjb25zdCBsb2dnZXJGYWN0b3J5ID0gc2NyaWJlLmNvbmZpZ3VyZSh7XG5cdFx0YWRhcHRlcjogbmV3IENvbnNvbGVBZGFwdGVyKCksXG5cdFx0b3B0aW9uczogeyBsb2dMZXZlbCwgY3VzdG9tTGV2ZWxzOiB7IHNpbGVudDogU0lMRU5UX0xFVkVMIH0gfSxcblx0fSk7XG5cdGNvbnN0IGxvZ2dlciA9IGxvZ2dlckZhY3RvcnkoUExVR0lOX05BTUUpO1xuXG5cdGNvbnN0IHNraXBCdWlsZCA9IG9wdGlvbnM/LnNraXBCdWlsZCA/PyBmYWxzZTtcblxuXHRjb25zdCB0cmFuc3BpbGVyID0gbmV3IFN3Y1RyYW5zcGlsZXIoKTtcblx0Y29uc3Qgd2FybWVkUHJvamVjdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblx0Y29uc3QgdHJhbnNmb3JtQ2FjaGUgPSBuZXcgTWFwPFxuXHRcdHN0cmluZyxcblx0XHR7IGNvbnRlbnQ6IHN0cmluZzsgcmVzdWx0OiB7IGNvZGU6IHN0cmluZzsgbWFwOiBudWxsIH0gfVxuXHQ+KCk7XG5cblx0bGV0IHdvcmtzcGFjZTogV29ya3NwYWNlIHwgbnVsbCA9IG51bGw7XG5cblx0Y29uc3QgaW5pdFdvcmtzcGFjZSA9IGFzeW5jICgpID0+IHtcblx0XHRpZiAod29ya3NwYWNlICE9PSBudWxsKSByZXR1cm47XG5cdFx0bG9nZ2VyLmRlYnVnKFxuXHRcdFx0YExvYWRpbmcgRm9yZ2Ugd29ya3NwYWNlIChidWlsZENvbmZpZzogJHtidWlsZENvbmZpZ30sIHdvcmtzcGFjZVJvb3Q6ICR7d29ya3NwYWNlUm9vdH0pYCxcblx0XHQpO1xuXHRcdHdvcmtzcGFjZSA9IGF3YWl0IFdvcmtzcGFjZUZhY3RvcnkuY3JlYXRlKHtcblx0XHRcdC4uLldvcmtzcGFjZURlZmF1bHRzLFxuXHRcdFx0cm9vdERpcjogd29ya3NwYWNlUm9vdCxcblx0XHR9KTtcblx0fTtcblxuXHRjb25zdCBwcmVXYXJtUHJvamVjdCA9IChwcm9qZWN0OiBQcm9qZWN0KSA9PiB7XG5cdFx0aWYgKHdhcm1lZFByb2plY3RzLmhhcyhwcm9qZWN0LnByb2plY3REaXJlY3RvcnkpKSByZXR1cm47XG5cdFx0d2FybWVkUHJvamVjdHMuYWRkKHByb2plY3QucHJvamVjdERpcmVjdG9yeSk7XG5cdFx0dm9pZCB0cmFuc3BpbGVyXG5cdFx0XHQudHJhbnNmb3JtUHJvamVjdChwcm9qZWN0KVxuXHRcdFx0LnRoZW4oKCkgPT4gbG9nZ2VyLmRlYnVnKGBQcmUtd2FybSBjb21wbGV0ZSBmb3IgJHtwcm9qZWN0Lm5hbWV9YCkpXG5cdFx0XHQuY2F0Y2goKGVycjogRXJyb3IpID0+XG5cdFx0XHRcdGxvZ2dlci5lcnJvcihgUHJlLXdhcm0gZXJyb3IgZm9yICR7cHJvamVjdC5uYW1lfTogJHtlcnIubWVzc2FnZX1gKSxcblx0XHRcdCk7XG5cdH07XG5cblx0cmV0dXJuIHtcblx0XHRuYW1lOiBQTFVHSU5fTkFNRSxcblx0XHRlbmZvcmNlOiBcInByZVwiIGFzIGNvbnN0LFxuXHRcdGNvbmZpZ1Jlc29sdmVkKCk6IHZvaWQge1xuXHRcdFx0bG9nZ2VyLmRlYnVnKFwiUGx1Z2luIGxvYWRlZFwiKTtcblx0XHR9LFxuXHRcdHJlc29sdmVJZChzb3VyY2U6IHN0cmluZywgaW1wb3J0ZXI6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuXHRcdFx0aWYgKGltcG9ydGVyICE9IG51bGwgJiYgc291cmNlLmVuZHNXaXRoKFwiLmpzXCIpICYmIHNvdXJjZS5zdGFydHNXaXRoKFwiLlwiKSkge1xuXHRcdFx0XHRjb25zdCBpbXBvcnRlckRpcmVjdG9yeSA9IHBhdGguZGlybmFtZShpbXBvcnRlcik7XG5cdFx0XHRcdGNvbnN0IHdpdGhvdXRFeHRlbnNpb24gPSBzb3VyY2Uuc2xpY2UoMCwgLTMpO1xuXHRcdFx0XHRjb25zdCBjYW5kaWRhdGVzID0gVFNfRVhURU5TSU9OUy5tYXAoKGV4dCkgPT5cblx0XHRcdFx0XHRwYXRoLnJlc29sdmUoaW1wb3J0ZXJEaXJlY3RvcnksIGAke3dpdGhvdXRFeHRlbnNpb259JHtleHR9YCksXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0cmV0dXJuIGNhbmRpZGF0ZXMuZmluZCgoYykgPT4gZXhpc3RzU3luYyhjKSkgPz8gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fSxcblx0XHR3YXRjaENoYW5nZShpZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHRjb25zdCBmaWxlID0gbmV3IEZpbGVFeCh7IGZ1bGxQYXRoOiBpZCB9KTtcblx0XHRcdHRyYW5zZm9ybUNhY2hlLmRlbGV0ZShpZCk7XG5cdFx0XHR0cmFuc3BpbGVyLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0fSxcblx0XHRhc3luYyB0cmFuc2Zvcm0oXG5cdFx0XHRjb2RlOiBzdHJpbmcsXG5cdFx0XHRpZDogc3RyaW5nLFxuXHRcdCk6IFByb21pc2U8eyBjb2RlOiBzdHJpbmc7IG1hcDogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbD4ge1xuXHRcdFx0aWYgKGlkLmluY2x1ZGVzKFwibm9kZV9tb2R1bGVzXCIpIHx8ICEvWy5dKHRzfHRzeHxtdHN8Y3RzKSQvLnRlc3QoaWQpKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHRhd2FpdCBpbml0V29ya3NwYWNlKCk7XG5cdFx0XHRjb25zdCBwcm9qZWN0ID0gYXdhaXQgd29ya3NwYWNlPy5maW5kUHJvamVjdChpZCwgYnVpbGRDb25maWcpO1xuXG5cdFx0XHRpZiAocHJvamVjdCAhPSBudWxsICYmICFza2lwQnVpbGQpIHtcblx0XHRcdFx0cHJlV2FybVByb2plY3QocHJvamVjdCk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGNhY2hlZCA9IHRyYW5zZm9ybUNhY2hlLmdldChpZCk7XG5cdFx0XHRpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQgJiYgY2FjaGVkLmNvbnRlbnQgPT09IGNvZGUpIHtcblx0XHRcdFx0cmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGZpbGUgPSBuZXcgRmlsZUV4KHsgZnVsbFBhdGg6IGlkLCBjb250ZW50OiBjb2RlIH0pO1xuXHRcdFx0aWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdC8vIENvbnRlbnQgY2hhbmdlZCBmb3IgYSBwcmV2aW91c2x5LXNlZW4gZmlsZSDigJQgaW52YWxpZGF0ZSB0aGUgdHJhbnNwaWxlcidzXG5cdFx0XHRcdC8vIEZJTEVfQ09OVEVOVCBjYWNoZSBzbyB0aGUgZnJlc2ggY29udGVudCBmcm9tIFZpdGUgaXMgdXNlZC5cblx0XHRcdFx0Ly8gVGhlIFZTIENvZGUgVml0ZXN0IGV4dGVuc2lvbiBkaXNhYmxlcyBWaXRlJ3MgY2hva2lkYXIgd2F0Y2hlclxuXHRcdFx0XHQvLyAoc2VydmVyLndhdGNoOiBudWxsKSBhbmQgZHJpdmVzIHJlLXJ1bnMgdmlhIHZpdGVzdC53YXRjaGVyLm9uRmlsZUNoYW5nZSgpLFxuXHRcdFx0XHQvLyBieXBhc3Npbmcgd2F0Y2hDaGFuZ2UgZW50aXJlbHkg4oCUIHNvIHdlIGNhbm5vdCByZWx5IG9uIHdhdGNoQ2hhbmdlIGFsb25lLlxuXHRcdFx0XHR0cmFuc3BpbGVyLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBbcmVzcG9uc2VdID0gYXdhaXQgdHJhbnNwaWxlci50cmFuc2Zvcm1GaWxlKGZpbGUsIEJ1aWxkVGFyZ2V0cy5lczYsIHtcblx0XHRcdFx0YWxpYXNQYXRoczogdHJ1ZSxcblx0XHRcdFx0dHNDb25maWc6IHByb2plY3QgPyBhd2FpdCBwcm9qZWN0LmdldFRzQ29uZmlnKCkgOiB1bmRlZmluZWQsXG5cdFx0XHR9KTtcblx0XHRcdGlmICghcmVzcG9uc2UgfHwgcmVzcG9uc2Uub3V0Y29tZSAhPT0gXCJzdWNjZXNzXCIpIHJldHVybiBudWxsO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSB7IGNvZGU6IHJlc3BvbnNlLmNvZGUsIG1hcDogbnVsbCB9O1xuXHRcdFx0dHJhbnNmb3JtQ2FjaGUuc2V0KGlkLCB7IGNvbnRlbnQ6IGNvZGUsIHJlc3VsdCB9KTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSxcblx0fTtcbn1cbiJdLCJuYW1lcyI6WyJleGlzdHNTeW5jIiwicGF0aCIsIldvcmtzcGFjZUZhY3RvcnkiLCJGaWxlRXgiLCJDb25zb2xlQWRhcHRlciIsInNjcmliZSIsIlN3Y1RyYW5zcGlsZXIiLCJCdWlsZFRhcmdldHMiLCJXb3Jrc3BhY2VEZWZhdWx0cyIsIlNJTEVOVF9MRVZFTCIsIlBMVUdJTl9OQU1FIiwiVFNfRVhURU5TSU9OUyIsImZvcmdlQnVpbGQiLCJvcHRpb25zIiwiYnVpbGRDb25maWciLCJ3b3Jrc3BhY2VSb290IiwicHJvY2VzcyIsImN3ZCIsImxvZ0xldmVsIiwibG9nZ2VyRmFjdG9yeSIsImNvbmZpZ3VyZSIsImFkYXB0ZXIiLCJjdXN0b21MZXZlbHMiLCJzaWxlbnQiLCJsb2dnZXIiLCJza2lwQnVpbGQiLCJ0cmFuc3BpbGVyIiwid2FybWVkUHJvamVjdHMiLCJTZXQiLCJ0cmFuc2Zvcm1DYWNoZSIsIk1hcCIsIndvcmtzcGFjZSIsImluaXRXb3Jrc3BhY2UiLCJkZWJ1ZyIsImNyZWF0ZSIsInJvb3REaXIiLCJwcmVXYXJtUHJvamVjdCIsInByb2plY3QiLCJoYXMiLCJwcm9qZWN0RGlyZWN0b3J5IiwiYWRkIiwidHJhbnNmb3JtUHJvamVjdCIsInRoZW4iLCJuYW1lIiwiY2F0Y2giLCJlcnIiLCJlcnJvciIsIm1lc3NhZ2UiLCJlbmZvcmNlIiwiY29uZmlnUmVzb2x2ZWQiLCJyZXNvbHZlSWQiLCJzb3VyY2UiLCJpbXBvcnRlciIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsImltcG9ydGVyRGlyZWN0b3J5IiwiZGlybmFtZSIsIndpdGhvdXRFeHRlbnNpb24iLCJzbGljZSIsImNhbmRpZGF0ZXMiLCJtYXAiLCJleHQiLCJyZXNvbHZlIiwiZmluZCIsImMiLCJ3YXRjaENoYW5nZSIsImlkIiwiZmlsZSIsImZ1bGxQYXRoIiwiZGVsZXRlIiwiaW52YWxpZGF0ZUNvbnRlbnRDYWNoZSIsInRyYW5zZm9ybSIsImNvZGUiLCJpbmNsdWRlcyIsInRlc3QiLCJmaW5kUHJvamVjdCIsImNhY2hlZCIsImdldCIsInVuZGVmaW5lZCIsImNvbnRlbnQiLCJyZXN1bHQiLCJyZXNwb25zZSIsInRyYW5zZm9ybUZpbGUiLCJlczYiLCJhbGlhc1BhdGhzIiwidHNDb25maWciLCJnZXRUc0NvbmZpZyIsIm91dGNvbWUiLCJzZXQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsUUFBUSxVQUFVO0FBQ3JDLE9BQU9DLFVBQVUsWUFBWTtBQUU3QixTQUFTQyxnQkFBZ0IsUUFBUSxpQkFBaUI7QUFDbEQsU0FBU0MsTUFBTSxRQUFRLHFCQUFxQjtBQUM1QyxTQUFTQyxjQUFjLEVBQUVDLE1BQU0sUUFBUSxtQkFBbUI7QUFDMUQsU0FBU0MsYUFBYSxRQUFRLGdDQUFnQztBQUM5RCxTQUFTQyxZQUFZLFFBQVEsZ0NBQWdDO0FBQzdELFNBQVNDLGlCQUFpQixRQUFRLHlCQUF5QjtBQUUzRCwrRUFBK0U7QUFDL0UsTUFBTUMsZUFBZTtBQUVyQixNQUFNQyxjQUFjO0FBQ3BCLE1BQU1D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
|
package/es6/src/vitest/index.js
CHANGED
|
@@ -1,3 +1 @@
|
|
|
1
1
|
export { forgeBuild } from "./forge-build.plugin.js";
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy92aXRlc3QvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBGb3JnZUJ1aWxkT3B0aW9ucyB9IGZyb20gXCIuL2ZvcmdlLWJ1aWxkLnBsdWdpbi5qc1wiO1xuZXhwb3J0IHsgZm9yZ2VCdWlsZCB9IGZyb20gXCIuL2ZvcmdlLWJ1aWxkLnBsdWdpbi5qc1wiO1xuIl0sIm5hbWVzIjpbImZvcmdlQnVpbGQiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLFVBQVUsUUFBUSwwQkFBMEIifQ==
|