@decohere/forge 0.0.1-dev.9 → 0.0.1-dev.90
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/commonjs/src/actions/build.action.js +9 -1
- package/commonjs/src/actions/clean.action.js +3 -3
- package/commonjs/src/actions/copy.action.js +38 -6
- package/commonjs/src/actions/docker.action.js +198 -0
- package/commonjs/src/actions/index.js +5 -1
- package/commonjs/src/actions/link.action.js +156 -0
- package/commonjs/src/actions/tag.action.js +3 -4
- package/commonjs/src/actions/typecheck.action.js +69 -0
- package/commonjs/src/actions/unlink.action.js +76 -0
- package/commonjs/src/actions/watch.action.js +2 -1
- package/commonjs/src/commands/docker.command.js +28 -0
- package/commonjs/src/commands/index.js +4 -1
- package/commonjs/src/commands/link.command.js +89 -0
- package/commonjs/src/commands/typecheck.command.js +26 -0
- package/commonjs/src/factories/swc-config.factory.js +14 -4
- package/commonjs/src/forge.module.js +12 -3
- package/commonjs/src/index.js +4 -1
- package/commonjs/src/mixins/caches-outputs.mixin.js +8 -6
- package/commonjs/src/services/swc-transpiler.js +27 -7
- package/commonjs/src/services/ts-program-host.js +3 -3
- package/commonjs/src/services/type-emission-program.js +24 -7
- package/commonjs/src/services/type-emitter.js +34 -4
- package/commonjs/src/types/swc-config.type.js +1 -1
- package/commonjs/src/types/transform-response.model.js +2 -1
- package/commonjs/src/vitest/forge-build.plugin.js +3 -2
- package/commonjs/src/workspace.config.js +29 -2
- package/es6/src/actions/build.action.js +9 -1
- package/es6/src/actions/clean.action.js +3 -3
- package/es6/src/actions/copy.action.js +38 -6
- package/es6/src/actions/docker.action.js +184 -0
- package/es6/src/actions/index.js +5 -1
- package/es6/src/actions/link.action.js +131 -0
- package/es6/src/actions/tag.action.js +3 -4
- package/es6/src/actions/typecheck.action.js +56 -0
- package/es6/src/actions/unlink.action.js +61 -0
- package/es6/src/actions/watch.action.js +2 -1
- package/es6/src/commands/docker.command.js +18 -0
- package/es6/src/commands/index.js +4 -1
- package/es6/src/commands/link.command.js +66 -0
- package/es6/src/commands/typecheck.command.js +16 -0
- package/es6/src/factories/swc-config.factory.js +14 -4
- package/es6/src/forge.module.js +12 -3
- package/es6/src/index.js +2 -2
- package/es6/src/mixins/caches-outputs.mixin.js +8 -6
- package/es6/src/services/swc-transpiler.js +27 -7
- package/es6/src/services/ts-program-host.js +3 -3
- package/es6/src/services/type-emission-program.js +24 -7
- package/es6/src/services/type-emitter.js +31 -4
- package/es6/src/types/swc-config.type.js +1 -1
- package/es6/src/types/transform-response.model.js +2 -1
- package/es6/src/vitest/forge-build.plugin.js +3 -2
- package/es6/src/workspace.config.js +30 -2
- package/package.json +5 -5
- package/types/src/actions/build.action.d.ts +1 -0
- package/types/src/actions/copy.action.d.ts +10 -0
- package/types/src/actions/docker.action.d.ts +33 -0
- package/types/src/actions/index.d.ts +4 -0
- package/types/src/actions/link.action.d.ts +25 -0
- package/types/src/actions/typecheck.action.d.ts +14 -0
- package/types/src/actions/unlink.action.d.ts +9 -0
- package/types/src/commands/docker.command.d.ts +6 -0
- package/types/src/commands/index.d.ts +3 -0
- package/types/src/commands/link.command.d.ts +28 -0
- package/types/src/commands/typecheck.command.d.ts +6 -0
- package/types/src/factories/swc-config.factory.d.ts +1 -0
- package/types/src/forge.module.d.ts +8 -0
- package/types/src/index.d.ts +1 -1
- package/types/src/services/swc-transpiler.d.ts +5 -2
- package/types/src/services/ts-program-host.d.ts +1 -1
- package/types/src/services/type-emission-program.d.ts +6 -1
- package/types/src/services/type-emitter.d.ts +14 -0
- package/types/src/types/swc-config.type.d.ts +5 -1
- package/types/src/types/transform-response.model.d.ts +2 -0
- package/types/src/workspace.config.d.ts +6 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
}
|
|
7
|
+
function _ts_metadata(k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
}
|
|
10
|
+
import fs from "node:fs/promises";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
import { injectable } from "@decohere/crucible/decorators";
|
|
13
|
+
// biome-ignore lint/style/useImportType: <DI>
|
|
14
|
+
import { Workspace } from "@decohere/mesh";
|
|
15
|
+
import { ActionResponse } from "@decohere/nexus/cli";
|
|
16
|
+
import { scribe } from "@decohere/scribe";
|
|
17
|
+
import "../extensions/project.extensions.js";
|
|
18
|
+
import { ForgeError } from "../errors.js";
|
|
19
|
+
export const LINK_MANIFEST = ".forge-link.json";
|
|
20
|
+
export const DEFAULT_LINK_CONFIGURATION = "link";
|
|
21
|
+
export class Link {
|
|
22
|
+
workspace;
|
|
23
|
+
#logger = scribe.logger(Link.name);
|
|
24
|
+
constructor(workspace){
|
|
25
|
+
this.workspace = workspace;
|
|
26
|
+
}
|
|
27
|
+
run = async (options)=>{
|
|
28
|
+
const targetDir = path.resolve(options.targetDir);
|
|
29
|
+
const nodeModulesDir = path.join(targetDir, "node_modules");
|
|
30
|
+
const stat = await fs.stat(nodeModulesDir).catch(()=>null);
|
|
31
|
+
if (stat == null) {
|
|
32
|
+
throw new ForgeError(`node_modules not found in "${targetDir}". Run pnpm install first.`);
|
|
33
|
+
}
|
|
34
|
+
const projects = this.workspace.getProjects(options.configuration);
|
|
35
|
+
if (projects.length === 0) {
|
|
36
|
+
throw new ForgeError(`No projects found for configuration "${options.configuration}"`);
|
|
37
|
+
}
|
|
38
|
+
// Load any existing manifest so originalPath values are preserved on re-link
|
|
39
|
+
const manifestPath = path.join(targetDir, LINK_MANIFEST);
|
|
40
|
+
const existingManifestText = await fs.readFile(manifestPath, "utf8").catch(()=>null);
|
|
41
|
+
const existingManifest = existingManifestText != null ? JSON.parse(existingManifestText) : null;
|
|
42
|
+
const manifest = {
|
|
43
|
+
workspaceRoot: this.workspace.rootDir,
|
|
44
|
+
links: []
|
|
45
|
+
};
|
|
46
|
+
for (const project of projects){
|
|
47
|
+
const pkg = await project.getPackageJson();
|
|
48
|
+
const packageName = pkg.name;
|
|
49
|
+
if (!packageName) {
|
|
50
|
+
this.#logger.trace(`Skipping project "${project.name}" — no package name`);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
// Resolve the build output directory (no target arg — debug config is not packed)
|
|
54
|
+
const outDir = project.getOutDir();
|
|
55
|
+
const absoluteOutDir = path.resolve(outDir);
|
|
56
|
+
// Pre-create the output dir so the symlink is valid even before a build completes.
|
|
57
|
+
await fs.mkdir(absoluteOutDir, {
|
|
58
|
+
recursive: true
|
|
59
|
+
});
|
|
60
|
+
// Compute symlink path inside target node_modules
|
|
61
|
+
const symlinkPath = path.join(nodeModulesDir, ...packageName.split("/"));
|
|
62
|
+
const symlinkParent = path.dirname(symlinkPath);
|
|
63
|
+
// Capture any existing entry so we can restore it on unlink.
|
|
64
|
+
// If a manifest already exists for this package, preserve its originalPath —
|
|
65
|
+
// the current symlink is our own and must not be treated as the original.
|
|
66
|
+
let originalPath = null;
|
|
67
|
+
const existingStat = await fs.lstat(symlinkPath).catch(()=>null);
|
|
68
|
+
if (existingStat != null) {
|
|
69
|
+
const existingEntry = existingManifest?.links.find((l)=>l.packageName === packageName);
|
|
70
|
+
if (existingEntry != null) {
|
|
71
|
+
// Already linked — preserve the recorded originalPath and replace the symlink
|
|
72
|
+
originalPath = existingEntry.originalPath;
|
|
73
|
+
if (existingStat.isSymbolicLink()) {
|
|
74
|
+
await fs.unlink(symlinkPath);
|
|
75
|
+
}
|
|
76
|
+
} else if (existingStat.isSymbolicLink()) {
|
|
77
|
+
originalPath = await fs.readlink(symlinkPath);
|
|
78
|
+
await fs.unlink(symlinkPath);
|
|
79
|
+
} else {
|
|
80
|
+
// Real directory — back it up by renaming
|
|
81
|
+
originalPath = `${symlinkPath}.__forge_backup__`;
|
|
82
|
+
await fs.rename(symlinkPath, originalPath);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
await fs.mkdir(symlinkParent, {
|
|
86
|
+
recursive: true
|
|
87
|
+
});
|
|
88
|
+
await fs.symlink(absoluteOutDir, symlinkPath, "dir");
|
|
89
|
+
manifest.links.push({
|
|
90
|
+
packageName,
|
|
91
|
+
symlinkPath,
|
|
92
|
+
originalPath
|
|
93
|
+
});
|
|
94
|
+
this.#logger.info(`Linked ${packageName} → ${absoluteOutDir}`);
|
|
95
|
+
}
|
|
96
|
+
// Create a peer node_modules at the build output root so Node can resolve
|
|
97
|
+
// bare specifiers from the real (non-symlink) paths of linked packages.
|
|
98
|
+
if (manifest.links.length > 0) {
|
|
99
|
+
const buildRoot = path.resolve(projects[0].getRootOut());
|
|
100
|
+
const peerNodeModulesDir = path.join(buildRoot, "node_modules");
|
|
101
|
+
await fs.rm(peerNodeModulesDir, {
|
|
102
|
+
recursive: true,
|
|
103
|
+
force: true
|
|
104
|
+
});
|
|
105
|
+
for (const project of projects){
|
|
106
|
+
const pkg = await project.getPackageJson();
|
|
107
|
+
if (!pkg.name) continue;
|
|
108
|
+
const outDir = path.resolve(project.getOutDir());
|
|
109
|
+
const peerSymlink = path.join(peerNodeModulesDir, ...pkg.name.split("/"));
|
|
110
|
+
await fs.mkdir(path.dirname(peerSymlink), {
|
|
111
|
+
recursive: true
|
|
112
|
+
});
|
|
113
|
+
await fs.symlink(outDir, peerSymlink, "dir");
|
|
114
|
+
this.#logger.trace(`Peer-linked ${pkg.name} → ${outDir}`);
|
|
115
|
+
}
|
|
116
|
+
manifest.peerNodeModulesDir = peerNodeModulesDir;
|
|
117
|
+
this.#logger.info(`Created peer node_modules at ${peerNodeModulesDir}`);
|
|
118
|
+
}
|
|
119
|
+
await fs.writeFile(path.join(targetDir, LINK_MANIFEST), JSON.stringify(manifest, null, 2));
|
|
120
|
+
return ActionResponse.Success(Link.name);
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
Link = _ts_decorate([
|
|
124
|
+
injectable(),
|
|
125
|
+
_ts_metadata("design:type", Function),
|
|
126
|
+
_ts_metadata("design:paramtypes", [
|
|
127
|
+
typeof Workspace === "undefined" ? Object : Workspace
|
|
128
|
+
])
|
|
129
|
+
], Link);
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL2xpbmsuYWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBBY3Rpb25SZXNwb25zZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBzY3JpYmUgfSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IFwiLi4vZXh0ZW5zaW9ucy9wcm9qZWN0LmV4dGVuc2lvbnMuanNcIjtcbmltcG9ydCB7IEZvcmdlRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBMSU5LX01BTklGRVNUID0gXCIuZm9yZ2UtbGluay5qc29uXCI7XG5cbmV4cG9ydCB0eXBlIExpbmtPcHRpb25zID0ge1xuXHRjb25maWd1cmF0aW9uOiBzdHJpbmc7XG5cdHRhcmdldERpcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElOS19DT05GSUdVUkFUSU9OID0gXCJsaW5rXCI7XG5cbmV4cG9ydCB0eXBlIExpbmtNYW5pZmVzdCA9IHtcblx0d29ya3NwYWNlUm9vdDogc3RyaW5nO1xuXHRwZWVyTm9kZU1vZHVsZXNEaXI/OiBzdHJpbmc7XG5cdGxpbmtzOiBBcnJheTx7IHBhY2thZ2VOYW1lOiBzdHJpbmc7IHN5bWxpbmtQYXRoOiBzdHJpbmc7IG9yaWdpbmFsUGF0aDogc3RyaW5nIHwgbnVsbCB9Pjtcbn07XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMaW5rIGltcGxlbWVudHMgQWN0aW9uPExpbmtPcHRpb25zPiB7XG5cdCNsb2dnZXIgPSBzY3JpYmUubG9nZ2VyKExpbmsubmFtZSk7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgd29ya3NwYWNlOiBXb3Jrc3BhY2UpIHt9XG5cblx0cHVibGljIHJ1biA9IGFzeW5jIChvcHRpb25zOiBMaW5rT3B0aW9ucyk6IFByb21pc2U8QWN0aW9uUmVzcG9uc2U+ID0+IHtcblx0XHRjb25zdCB0YXJnZXREaXIgPSBwYXRoLnJlc29sdmUob3B0aW9ucy50YXJnZXREaXIpO1xuXHRcdGNvbnN0IG5vZGVNb2R1bGVzRGlyID0gcGF0aC5qb2luKHRhcmdldERpciwgXCJub2RlX21vZHVsZXNcIik7XG5cblx0XHRjb25zdCBzdGF0ID0gYXdhaXQgZnMuc3RhdChub2RlTW9kdWxlc0RpcikuY2F0Y2goKCkgPT4gbnVsbCk7XG5cdFx0aWYgKHN0YXQgPT0gbnVsbCkge1xuXHRcdFx0dGhyb3cgbmV3IEZvcmdlRXJyb3IoXG5cdFx0XHRcdGBub2RlX21vZHVsZXMgbm90IGZvdW5kIGluIFwiJHt0YXJnZXREaXJ9XCIuIFJ1biBwbnBtIGluc3RhbGwgZmlyc3QuYCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgcHJvamVjdHMgPSB0aGlzLndvcmtzcGFjZS5nZXRQcm9qZWN0cyhvcHRpb25zLmNvbmZpZ3VyYXRpb24pO1xuXHRcdGlmIChwcm9qZWN0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdHRocm93IG5ldyBGb3JnZUVycm9yKGBObyBwcm9qZWN0cyBmb3VuZCBmb3IgY29uZmlndXJhdGlvbiBcIiR7b3B0aW9ucy5jb25maWd1cmF0aW9ufVwiYCk7XG5cdFx0fVxuXG5cdFx0Ly8gTG9hZCBhbnkgZXhpc3RpbmcgbWFuaWZlc3Qgc28gb3JpZ2luYWxQYXRoIHZhbHVlcyBhcmUgcHJlc2VydmVkIG9uIHJlLWxpbmtcblx0XHRjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4odGFyZ2V0RGlyLCBMSU5LX01BTklGRVNUKTtcblx0XHRjb25zdCBleGlzdGluZ01hbmlmZXN0VGV4dCA9IGF3YWl0IGZzLnJlYWRGaWxlKG1hbmlmZXN0UGF0aCwgXCJ1dGY4XCIpLmNhdGNoKCgpID0+IG51bGwpO1xuXHRcdGNvbnN0IGV4aXN0aW5nTWFuaWZlc3Q6IExpbmtNYW5pZmVzdCB8IG51bGwgPVxuXHRcdFx0ZXhpc3RpbmdNYW5pZmVzdFRleHQgIT0gbnVsbCA/IEpTT04ucGFyc2UoZXhpc3RpbmdNYW5pZmVzdFRleHQpIDogbnVsbDtcblxuXHRcdGNvbnN0IG1hbmlmZXN0OiBMaW5rTWFuaWZlc3QgPSB7XG5cdFx0XHR3b3Jrc3BhY2VSb290OiB0aGlzLndvcmtzcGFjZS5yb290RGlyLFxuXHRcdFx0bGlua3M6IFtdLFxuXHRcdH07XG5cblx0XHRmb3IgKGNvbnN0IHByb2plY3Qgb2YgcHJvamVjdHMpIHtcblx0XHRcdGNvbnN0IHBrZyA9IGF3YWl0IHByb2plY3QuZ2V0UGFja2FnZUpzb24oKTtcblx0XHRcdGNvbnN0IHBhY2thZ2VOYW1lID0gcGtnLm5hbWU7XG5cdFx0XHRpZiAoIXBhY2thZ2VOYW1lKSB7XG5cdFx0XHRcdHRoaXMuI2xvZ2dlci50cmFjZShgU2tpcHBpbmcgcHJvamVjdCBcIiR7cHJvamVjdC5uYW1lfVwiIOKAlCBubyBwYWNrYWdlIG5hbWVgKTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJlc29sdmUgdGhlIGJ1aWxkIG91dHB1dCBkaXJlY3RvcnkgKG5vIHRhcmdldCBhcmcg4oCUIGRlYnVnIGNvbmZpZyBpcyBub3QgcGFja2VkKVxuXHRcdFx0Y29uc3Qgb3V0RGlyID0gcHJvamVjdC5nZXRPdXREaXIoKTtcblx0XHRcdGNvbnN0IGFic29sdXRlT3V0RGlyID0gcGF0aC5yZXNvbHZlKG91dERpcik7XG5cblx0XHRcdC8vIFByZS1jcmVhdGUgdGhlIG91dHB1dCBkaXIgc28gdGhlIHN5bWxpbmsgaXMgdmFsaWQgZXZlbiBiZWZvcmUgYSBidWlsZCBjb21wbGV0ZXMuXG5cdFx0XHRhd2FpdCBmcy5ta2RpcihhYnNvbHV0ZU91dERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cblx0XHRcdC8vIENvbXB1dGUgc3ltbGluayBwYXRoIGluc2lkZSB0YXJnZXQgbm9kZV9tb2R1bGVzXG5cdFx0XHRjb25zdCBzeW1saW5rUGF0aCA9IHBhdGguam9pbihub2RlTW9kdWxlc0RpciwgLi4ucGFja2FnZU5hbWUuc3BsaXQoXCIvXCIpKTtcblx0XHRcdGNvbnN0IHN5bWxpbmtQYXJlbnQgPSBwYXRoLmRpcm5hbWUoc3ltbGlua1BhdGgpO1xuXG5cdFx0XHQvLyBDYXB0dXJlIGFueSBleGlzdGluZyBlbnRyeSBzbyB3ZSBjYW4gcmVzdG9yZSBpdCBvbiB1bmxpbmsuXG5cdFx0XHQvLyBJZiBhIG1hbmlmZXN0IGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIHBhY2thZ2UsIHByZXNlcnZlIGl0cyBvcmlnaW5hbFBhdGgg4oCUXG5cdFx0XHQvLyB0aGUgY3VycmVudCBzeW1saW5rIGlzIG91ciBvd24gYW5kIG11c3Qgbm90IGJlIHRyZWF0ZWQgYXMgdGhlIG9yaWdpbmFsLlxuXHRcdFx0bGV0IG9yaWdpbmFsUGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cdFx0XHRjb25zdCBleGlzdGluZ1N0YXQgPSBhd2FpdCBmcy5sc3RhdChzeW1saW5rUGF0aCkuY2F0Y2goKCkgPT4gbnVsbCk7XG5cdFx0XHRpZiAoZXhpc3RpbmdTdGF0ICE9IG51bGwpIHtcblx0XHRcdFx0Y29uc3QgZXhpc3RpbmdFbnRyeSA9IGV4aXN0aW5nTWFuaWZlc3Q/LmxpbmtzLmZpbmQoXG5cdFx0XHRcdFx0KGwpID0+IGwucGFja2FnZU5hbWUgPT09IHBhY2thZ2VOYW1lLFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAoZXhpc3RpbmdFbnRyeSAhPSBudWxsKSB7XG5cdFx0XHRcdFx0Ly8gQWxyZWFkeSBsaW5rZWQg4oCUIHByZXNlcnZlIHRoZSByZWNvcmRlZCBvcmlnaW5hbFBhdGggYW5kIHJlcGxhY2UgdGhlIHN5bWxpbmtcblx0XHRcdFx0XHRvcmlnaW5hbFBhdGggPSBleGlzdGluZ0VudHJ5Lm9yaWdpbmFsUGF0aDtcblx0XHRcdFx0XHRpZiAoZXhpc3RpbmdTdGF0LmlzU3ltYm9saWNMaW5rKCkpIHtcblx0XHRcdFx0XHRcdGF3YWl0IGZzLnVubGluayhzeW1saW5rUGF0aCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKGV4aXN0aW5nU3RhdC5pc1N5bWJvbGljTGluaygpKSB7XG5cdFx0XHRcdFx0b3JpZ2luYWxQYXRoID0gYXdhaXQgZnMucmVhZGxpbmsoc3ltbGlua1BhdGgpO1xuXHRcdFx0XHRcdGF3YWl0IGZzLnVubGluayhzeW1saW5rUGF0aCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gUmVhbCBkaXJlY3Rvcnkg4oCUIGJhY2sgaXQgdXAgYnkgcmVuYW1pbmdcblx0XHRcdFx0XHRvcmlnaW5hbFBhdGggPSBgJHtzeW1saW5rUGF0aH0uX19mb3JnZV9iYWNrdXBfX2A7XG5cdFx0XHRcdFx0YXdhaXQgZnMucmVuYW1lKHN5bWxpbmtQYXRoLCBvcmlnaW5hbFBhdGgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGF3YWl0IGZzLm1rZGlyKHN5bWxpbmtQYXJlbnQsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0YXdhaXQgZnMuc3ltbGluayhhYnNvbHV0ZU91dERpciwgc3ltbGlua1BhdGgsIFwiZGlyXCIpO1xuXG5cdFx0XHRtYW5pZmVzdC5saW5rcy5wdXNoKHsgcGFja2FnZU5hbWUsIHN5bWxpbmtQYXRoLCBvcmlnaW5hbFBhdGggfSk7XG5cdFx0XHR0aGlzLiNsb2dnZXIuaW5mbyhgTGlua2VkICR7cGFja2FnZU5hbWV9IOKGkiAke2Fic29sdXRlT3V0RGlyfWApO1xuXHRcdH1cblxuXHRcdC8vIENyZWF0ZSBhIHBlZXIgbm9kZV9tb2R1bGVzIGF0IHRoZSBidWlsZCBvdXRwdXQgcm9vdCBzbyBOb2RlIGNhbiByZXNvbHZlXG5cdFx0Ly8gYmFyZSBzcGVjaWZpZXJzIGZyb20gdGhlIHJlYWwgKG5vbi1zeW1saW5rKSBwYXRocyBvZiBsaW5rZWQgcGFja2FnZXMuXG5cdFx0aWYgKG1hbmlmZXN0LmxpbmtzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IGJ1aWxkUm9vdCA9IHBhdGgucmVzb2x2ZShwcm9qZWN0c1swXS5nZXRSb290T3V0KCkpO1xuXHRcdFx0Y29uc3QgcGVlck5vZGVNb2R1bGVzRGlyID0gcGF0aC5qb2luKGJ1aWxkUm9vdCwgXCJub2RlX21vZHVsZXNcIik7XG5cdFx0XHRhd2FpdCBmcy5ybShwZWVyTm9kZU1vZHVsZXNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcblx0XHRcdGZvciAoY29uc3QgcHJvamVjdCBvZiBwcm9qZWN0cykge1xuXHRcdFx0XHRjb25zdCBwa2cgPSBhd2FpdCBwcm9qZWN0LmdldFBhY2thZ2VKc29uKCk7XG5cdFx0XHRcdGlmICghcGtnLm5hbWUpIGNvbnRpbnVlO1xuXHRcdFx0XHRjb25zdCBvdXREaXIgPSBwYXRoLnJlc29sdmUocHJvamVjdC5nZXRPdXREaXIoKSk7XG5cdFx0XHRcdGNvbnN0IHBlZXJTeW1saW5rID0gcGF0aC5qb2luKHBlZXJOb2RlTW9kdWxlc0RpciwgLi4ucGtnLm5hbWUuc3BsaXQoXCIvXCIpKTtcblx0XHRcdFx0YXdhaXQgZnMubWtkaXIocGF0aC5kaXJuYW1lKHBlZXJTeW1saW5rKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cdFx0XHRcdGF3YWl0IGZzLnN5bWxpbmsob3V0RGlyLCBwZWVyU3ltbGluaywgXCJkaXJcIik7XG5cdFx0XHRcdHRoaXMuI2xvZ2dlci50cmFjZShgUGVlci1saW5rZWQgJHtwa2cubmFtZX0g4oaSICR7b3V0RGlyfWApO1xuXHRcdFx0fVxuXHRcdFx0bWFuaWZlc3QucGVlck5vZGVNb2R1bGVzRGlyID0gcGVlck5vZGVNb2R1bGVzRGlyO1xuXHRcdFx0dGhpcy4jbG9nZ2VyLmluZm8oYENyZWF0ZWQgcGVlciBub2RlX21vZHVsZXMgYXQgJHtwZWVyTm9kZU1vZHVsZXNEaXJ9YCk7XG5cdFx0fVxuXG5cdFx0YXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbih0YXJnZXREaXIsIExJTktfTUFOSUZFU1QpLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMikpO1xuXG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLlN1Y2Nlc3MoTGluay5uYW1lKTtcblx0fTtcbn1cbiJdLCJuYW1lcyI6WyJmcyIsInBhdGgiLCJpbmplY3RhYmxlIiwiV29ya3NwYWNlIiwiQWN0aW9uUmVzcG9uc2UiLCJzY3JpYmUiLCJGb3JnZUVycm9yIiwiTElOS19NQU5JRkVTVCIsIkRFRkFVTFRfTElOS19DT05GSUdVUkFUSU9OIiwiTGluayIsImxvZ2dlciIsIm5hbWUiLCJ3b3Jrc3BhY2UiLCJydW4iLCJvcHRpb25zIiwidGFyZ2V0RGlyIiwicmVzb2x2ZSIsIm5vZGVNb2R1bGVzRGlyIiwiam9pbiIsInN0YXQiLCJjYXRjaCIsInByb2plY3RzIiwiZ2V0UHJvamVjdHMiLCJjb25maWd1cmF0aW9uIiwibGVuZ3RoIiwibWFuaWZlc3RQYXRoIiwiZXhpc3RpbmdNYW5pZmVzdFRleHQiLCJyZWFkRmlsZSIsImV4aXN0aW5nTWFuaWZlc3QiLCJKU09OIiwicGFyc2UiLCJtYW5pZmVzdCIsIndvcmtzcGFjZVJvb3QiLCJyb290RGlyIiwibGlua3MiLCJwcm9qZWN0IiwicGtnIiwiZ2V0UGFja2FnZUpzb24iLCJwYWNrYWdlTmFtZSIsInRyYWNlIiwib3V0RGlyIiwiZ2V0T3V0RGlyIiwiYWJzb2x1dGVPdXREaXIiLCJta2RpciIsInJlY3Vyc2l2ZSIsInN5bWxpbmtQYXRoIiwic3BsaXQiLCJzeW1saW5rUGFyZW50IiwiZGlybmFtZSIsIm9yaWdpbmFsUGF0aCIsImV4aXN0aW5nU3RhdCIsImxzdGF0IiwiZXhpc3RpbmdFbnRyeSIsImZpbmQiLCJsIiwiaXNTeW1ib2xpY0xpbmsiLCJ1bmxpbmsiLCJyZWFkbGluayIsInJlbmFtZSIsInN5bWxpbmsiLCJwdXNoIiwiaW5mbyIsImJ1aWxkUm9vdCIsImdldFJvb3RPdXQiLCJwZWVyTm9kZU1vZHVsZXNEaXIiLCJybSIsImZvcmNlIiwicGVlclN5bWxpbmsiLCJ3cml0ZUZpbGUiLCJzdHJpbmdpZnkiLCJTdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPQSxRQUFRLG1CQUFtQjtBQUNsQyxPQUFPQyxVQUFVLFlBQVk7QUFDN0IsU0FBU0MsVUFBVSxRQUFRLGdDQUFnQztBQUMzRCw4Q0FBOEM7QUFDOUMsU0FBU0MsU0FBUyxRQUFRLGlCQUFpQjtBQUUzQyxTQUFTQyxjQUFjLFFBQVEsc0JBQXNCO0FBQ3JELFNBQVNDLE1BQU0sUUFBUSxtQkFBbUI7QUFDMUMsT0FBTyxzQ0FBc0M7QUFDN0MsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFFMUMsT0FBTyxNQUFNQyxnQkFBZ0IsbUJBQW1CO0FBT2hELE9BQU8sTUFBTUMsNkJBQTZCLE9BQU87QUFTakQsT0FBTyxNQUFNQzs7SUFDWixDQUFBLE1BQU8sR0FBR0osT0FBT0ssTUFBTSxDQUFDRCxLQUFLRSxJQUFJLEVBQUU7SUFFbkMsWUFBbUIsQUFBaUJDLFNBQW9CLENBQUU7YUFBdEJBLFlBQUFBO0lBQXVCO0lBRXBEQyxNQUFNLE9BQU9DO1FBQ25CLE1BQU1DLFlBQVlkLEtBQUtlLE9BQU8sQ0FBQ0YsUUFBUUMsU0FBUztRQUNoRCxNQUFNRSxpQkFBaUJoQixLQUFLaUIsSUFBSSxDQUFDSCxXQUFXO1FBRTVDLE1BQU1JLE9BQU8sTUFBTW5CLEdBQUdtQixJQUFJLENBQUNGLGdCQUFnQkcsS0FBSyxDQUFDLElBQU07UUFDdkQsSUFBSUQsUUFBUSxNQUFNO1lBQ2pCLE1BQU0sSUFBSWIsV0FDVCxDQUFD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
|
|
@@ -38,9 +38,8 @@ export class Tag {
|
|
|
38
38
|
const git = new Git();
|
|
39
39
|
await git.tag(tag);
|
|
40
40
|
if (options.push) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
await git.push(branch);
|
|
41
|
+
// Tag-only: Publish checks out a commit SHA (detached HEAD). Pushing a
|
|
42
|
+
// branch name is wrong there and unnecessary — the version label is the tag.
|
|
44
43
|
this.#logger.info(`Pushing tag: ${tag}`);
|
|
45
44
|
await git.pushTag(tag);
|
|
46
45
|
}
|
|
@@ -64,4 +63,4 @@ Tag = _ts_decorate([
|
|
|
64
63
|
])
|
|
65
64
|
], Tag);
|
|
66
65
|
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL3RhZy5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBBY3Rpb25SZXNwb25zZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBHaXQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2ludGVyb3BcIjtcbmltcG9ydCB7IHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgeyBGb3JnZUVycm9yLCBmb3JtYXRVbmtub3duRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5cbmV4cG9ydCB0eXBlIFRhZ09wdGlvbnMgPSB7XG5cdHByZWZpeD86IHN0cmluZztcblx0ZHJ5UnVuPzogYm9vbGVhbjtcblx0cHVzaD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUYWdSZXNwb25zZSA9IHtcblx0dGFnOiBzdHJpbmc7XG5cdHN1Y2NlZWRlZDogYm9vbGVhbjtcblx0ZXJyb3I/OiBzdHJpbmc7XG59O1xuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFnIGltcGxlbWVudHMgQWN0aW9uPFRhZ09wdGlvbnM+
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL3RhZy5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBBY3Rpb25SZXNwb25zZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBHaXQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2ludGVyb3BcIjtcbmltcG9ydCB7IHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgeyBGb3JnZUVycm9yLCBmb3JtYXRVbmtub3duRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5cbmV4cG9ydCB0eXBlIFRhZ09wdGlvbnMgPSB7XG5cdHByZWZpeD86IHN0cmluZztcblx0ZHJ5UnVuPzogYm9vbGVhbjtcblx0cHVzaD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBUYWdSZXNwb25zZSA9IHtcblx0dGFnOiBzdHJpbmc7XG5cdHN1Y2NlZWRlZDogYm9vbGVhbjtcblx0ZXJyb3I/OiBzdHJpbmc7XG59O1xuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFnIGltcGxlbWVudHMgQWN0aW9uPFRhZ09wdGlvbnM+IHtcblx0I2xvZ2dlciA9IHNjcmliZS5sb2dnZXIoVGFnLm5hbWUpO1xuXHRwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB3b3Jrc3BhY2U6IFdvcmtzcGFjZSkge31cblxuXHRwdWJsaWMgYXN5bmMgcnVuKG9wdGlvbnM6IFRhZ09wdGlvbnMpOiBQcm9taXNlPEFjdGlvblJlc3BvbnNlPFRhZ1Jlc3BvbnNlPj4ge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCB2ZXJzaW9uID0gYXdhaXQgdGhpcy53b3Jrc3BhY2UuZ2V0VmVyc2lvbigpO1xuXHRcdFx0Y29uc3QgcHJlZml4ID0gb3B0aW9ucy5wcmVmaXggPz8gXCJ2XCI7XG5cdFx0XHRjb25zdCB0YWcgPSBgJHtwcmVmaXh9JHt2ZXJzaW9ufWA7XG5cblx0XHRcdGlmIChvcHRpb25zLmRyeVJ1bikge1xuXHRcdFx0XHR0aGlzLiNsb2dnZXIuaW5mbyhgW2RyeS1ydW5dICR7dGFnfWApO1xuXHRcdFx0XHRyZXR1cm4gQWN0aW9uUmVzcG9uc2UuU3VjY2VzczxUYWdSZXNwb25zZT4oVGFnLm5hbWUsIFt7IHRhZywgc3VjY2VlZGVkOiB0cnVlIH1dKTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy4jbG9nZ2VyLmluZm8oYENyZWF0aW5nIHRhZzogJHt0YWd9YCk7XG5cdFx0XHRjb25zdCBnaXQgPSBuZXcgR2l0KCk7XG5cdFx0XHRhd2FpdCBnaXQudGFnKHRhZyk7XG5cblx0XHRcdGlmIChvcHRpb25zLnB1c2gpIHtcblx0XHRcdFx0Ly8gVGFnLW9ubHk6IFB1Ymxpc2ggY2hlY2tzIG91dCBhIGNvbW1pdCBTSEEgKGRldGFjaGVkIEhFQUQpLiBQdXNoaW5nIGFcblx0XHRcdFx0Ly8gYnJhbmNoIG5hbWUgaXMgd3JvbmcgdGhlcmUgYW5kIHVubmVjZXNzYXJ5IOKAlCB0aGUgdmVyc2lvbiBsYWJlbCBpcyB0aGUgdGFnLlxuXHRcdFx0XHR0aGlzLiNsb2dnZXIuaW5mbyhgUHVzaGluZyB0YWc6ICR7dGFnfWApO1xuXHRcdFx0XHRhd2FpdCBnaXQucHVzaFRhZyh0YWcpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gQWN0aW9uUmVzcG9uc2UuU3VjY2VzczxUYWdSZXNwb25zZT4oVGFnLm5hbWUsIFt7IHRhZywgc3VjY2VlZGVkOiB0cnVlIH1dKTtcblx0XHR9IGNhdGNoIChyZWFzb24pIHtcblx0XHRcdGNvbnN0IGVycm9yID0gZm9ybWF0VW5rbm93bkVycm9yKHJlYXNvbik7XG5cdFx0XHR0aHJvdyBuZXcgRm9yZ2VFcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSB0YWc6ICR7ZXJyb3J9YCk7XG5cdFx0fVxuXHR9XG59XG4iXSwibmFtZXMiOlsiaW5qZWN0YWJsZSIsIldvcmtzcGFjZSIsIkFjdGlvblJlc3BvbnNlIiwiR2l0Iiwic2NyaWJlIiwiRm9yZ2VFcnJvciIsImZvcm1hdFVua25vd25FcnJvciIsIlRhZyIsImxvZ2dlciIsIm5hbWUiLCJ3b3Jrc3BhY2UiLCJydW4iLCJvcHRpb25zIiwidmVyc2lvbiIsImdldFZlcnNpb24iLCJwcmVmaXgiLCJ0YWciLCJkcnlSdW4iLCJpbmZvIiwiU3VjY2VzcyIsInN1Y2NlZWRlZCIsImdpdCIsInB1c2giLCJwdXNoVGFnIiwicmVhc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLFNBQVNBLFVBQVUsUUFBUSxnQ0FBZ0M7QUFDM0QsOENBQThDO0FBQzlDLFNBQVNDLFNBQVMsUUFBUSxpQkFBaUI7QUFFM0MsU0FBU0MsY0FBYyxRQUFRLHNCQUFzQjtBQUNyRCxTQUFTQyxHQUFHLFFBQVEsMEJBQTBCO0FBQzlDLFNBQVNDLE1BQU0sUUFBUSxtQkFBbUI7QUFDMUMsU0FBU0MsVUFBVSxFQUFFQyxrQkFBa0IsUUFBUSxlQUFlO0FBZTlELE9BQU8sTUFBTUM7O0lBQ1osQ0FBQSxNQUFPLEdBQUdILE9BQU9JLE1BQU0sQ0FBQ0QsSUFBSUUsSUFBSSxFQUFFO0lBQ2xDLFlBQW1CLEFBQWlCQyxTQUFvQixDQUFFO2FBQXRCQSxZQUFBQTtJQUF1QjtJQUUzRCxNQUFhQyxJQUFJQyxPQUFtQixFQUF3QztRQUMzRSxJQUFJO1lBQ0gsTUFBTUMsVUFBVSxNQUFNLElBQUksQ0FBQ0gsU0FBUyxDQUFDSSxVQUFVO1lBQy9DLE1BQU1DLFNBQVNILFFBQVFHLE1BQU0sSUFBSTtZQUNqQyxNQUFNQyxNQUFNLEdBQUdELFNBQVNGLFNBQVM7WUFFakMsSUFBSUQsUUFBUUssTUFBTSxFQUFFO2dCQUNuQixJQUFJLENBQUMsQ0FBQSxNQUFPLENBQUNDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRUYsS0FBSztnQkFDcEMsT0FBT2QsZUFBZWlCLE9BQU8sQ0FBY1osSUFBSUUsSUFBSSxFQUFFO29CQUFDO3dCQUFFTzt3QkFBS0ksV0FBVztvQkFBSztpQkFBRTtZQUNoRjtZQUVBLElBQUksQ0FBQyxDQUFBLE1BQU8sQ0FBQ0YsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFRixLQUFLO1lBQ3hDLE1BQU1LLE1BQU0sSUFBSWxCO1lBQ2hCLE1BQU1rQixJQUFJTCxHQUFHLENBQUNBO1lBRWQsSUFBSUosUUFBUVUsSUFBSSxFQUFFO2dCQUNqQix1RUFBdUU7Z0JBQ3ZFLDZFQUE2RTtnQkFDN0UsSUFBSSxDQUFDLENBQUEsTUFBTyxDQUFDSixJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUVGLEtBQUs7Z0JBQ3ZDLE1BQU1LLElBQUlFLE9BQU8sQ0FBQ1A7WUFDbkI7WUFFQSxPQUFPZCxlQUFlaUIsT0FBTyxDQUFjWixJQUFJRSxJQUFJLEVBQUU7Z0JBQUM7b0JBQUVPO29CQUFLSSxXQUFXO2dCQUFLO2FBQUU7UUFDaEYsRUFBRSxPQUFPSSxRQUFRO1lBQ2hCLE1BQU1DLFFBQVFuQixtQkFBbUJrQjtZQUNqQyxNQUFNLElBQUluQixXQUFXLENBQUMsc0JBQXNCLEVBQUVvQixPQUFPO1FBQ3REO0lBQ0Q7QUFDRCJ9
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
}
|
|
7
|
+
function _ts_metadata(k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
}
|
|
10
|
+
import { injectable } from "@decohere/crucible/decorators";
|
|
11
|
+
// biome-ignore lint/style/useImportType: <DI>
|
|
12
|
+
import { Workspace } from "@decohere/mesh";
|
|
13
|
+
import { ActionResponse } from "@decohere/nexus/cli";
|
|
14
|
+
import { Trace } from "@decohere/nexus/diagnostics";
|
|
15
|
+
import { scribe } from "@decohere/scribe";
|
|
16
|
+
import ts from "typescript";
|
|
17
|
+
import { ForgeError } from "../errors.js";
|
|
18
|
+
// biome-ignore lint/style/useImportType: <DI>
|
|
19
|
+
import { TypeEmitter } from "../services/type-emitter.js";
|
|
20
|
+
export class TypeCheck {
|
|
21
|
+
workspace;
|
|
22
|
+
typeEmitter;
|
|
23
|
+
#logger = scribe.logger(TypeCheck.name);
|
|
24
|
+
constructor(workspace, typeEmitter){
|
|
25
|
+
this.workspace = workspace;
|
|
26
|
+
this.typeEmitter = typeEmitter;
|
|
27
|
+
}
|
|
28
|
+
run = async (options)=>{
|
|
29
|
+
const projects = this.workspace.getProjects(options.configuration);
|
|
30
|
+
for (const project of projects){
|
|
31
|
+
this.#logger.info(`Type-checking ${project.name}`);
|
|
32
|
+
}
|
|
33
|
+
const { diagnostics, formatted } = await this.typeEmitter.checkProject([
|
|
34
|
+
...projects
|
|
35
|
+
]);
|
|
36
|
+
const errors = diagnostics.filter((diagnostic)=>diagnostic.category === ts.DiagnosticCategory.Error);
|
|
37
|
+
if (errors.length > 0) {
|
|
38
|
+
throw new ForgeError(formatted || "Type check failed");
|
|
39
|
+
}
|
|
40
|
+
if (formatted.length > 0) {
|
|
41
|
+
this.#logger.info(formatted);
|
|
42
|
+
}
|
|
43
|
+
return ActionResponse.Success(TypeCheck.name);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
TypeCheck = _ts_decorate([
|
|
47
|
+
Trace,
|
|
48
|
+
injectable(),
|
|
49
|
+
_ts_metadata("design:type", Function),
|
|
50
|
+
_ts_metadata("design:paramtypes", [
|
|
51
|
+
typeof Workspace === "undefined" ? Object : Workspace,
|
|
52
|
+
typeof TypeEmitter === "undefined" ? Object : TypeEmitter
|
|
53
|
+
])
|
|
54
|
+
], TypeCheck);
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL3R5cGVjaGVjay5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlSW1wb3J0VHlwZTogPERJPlxuaW1wb3J0IHsgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBBY3Rpb25SZXNwb25zZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZGlhZ25vc3RpY3NcIjtcbmltcG9ydCB7IHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcbmltcG9ydCB7IEZvcmdlRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdHlsZS91c2VJbXBvcnRUeXBlOiA8REk+XG5pbXBvcnQgeyBUeXBlRW1pdHRlciB9IGZyb20gXCIuLi9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIuanNcIjtcblxuZXhwb3J0IHR5cGUgVHlwZUNoZWNrT3B0aW9ucyA9IHtcblx0Y29uZmlndXJhdGlvbjogc3RyaW5nO1xufTtcblxuQFRyYWNlXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHlwZUNoZWNrIGltcGxlbWVudHMgQWN0aW9uPFR5cGVDaGVja09wdGlvbnM+IHtcblx0I2xvZ2dlciA9IHNjcmliZS5sb2dnZXIoVHlwZUNoZWNrLm5hbWUpO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZTogV29ya3NwYWNlLFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdHlwZUVtaXR0ZXI6IFR5cGVFbWl0dGVyLFxuXHQpIHt9XG5cblx0cHVibGljIHJ1biA9IGFzeW5jIChvcHRpb25zOiBUeXBlQ2hlY2tPcHRpb25zKTogUHJvbWlzZTxBY3Rpb25SZXNwb25zZT4gPT4ge1xuXHRcdGNvbnN0IHByb2plY3RzID0gdGhpcy53b3Jrc3BhY2UuZ2V0UHJvamVjdHMob3B0aW9ucy5jb25maWd1cmF0aW9uKTtcblx0XHRmb3IgKGNvbnN0IHByb2plY3Qgb2YgcHJvamVjdHMpIHtcblx0XHRcdHRoaXMuI2xvZ2dlci5pbmZvKGBUeXBlLWNoZWNraW5nICR7cHJvamVjdC5uYW1lfWApO1xuXHRcdH1cblxuXHRcdGNvbnN0IHsgZGlhZ25vc3RpY3MsIGZvcm1hdHRlZCB9ID0gYXdhaXQgdGhpcy50eXBlRW1pdHRlci5jaGVja1Byb2plY3QoWy4uLnByb2plY3RzXSk7XG5cdFx0Y29uc3QgZXJyb3JzID0gZGlhZ25vc3RpY3MuZmlsdGVyKFxuXHRcdFx0KGRpYWdub3N0aWMpID0+IGRpYWdub3N0aWMuY2F0ZWdvcnkgPT09IHRzLkRpYWdub3N0aWNDYXRlZ29yeS5FcnJvcixcblx0XHQpO1xuXG5cdFx0aWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgRm9yZ2VFcnJvcihmb3JtYXR0ZWQgfHwgXCJUeXBlIGNoZWNrIGZhaWxlZFwiKTtcblx0XHR9XG5cblx0XHRpZiAoZm9ybWF0dGVkLmxlbmd0aCA+IDApIHtcblx0XHRcdHRoaXMuI2xvZ2dlci5pbmZvKGZvcm1hdHRlZCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLlN1Y2Nlc3MoVHlwZUNoZWNrLm5hbWUpO1xuXHR9O1xufVxuIl0sIm5hbWVzIjpbImluamVjdGFibGUiLCJXb3Jrc3BhY2UiLCJBY3Rpb25SZXNwb25zZSIsIlRyYWNlIiwic2NyaWJlIiwidHMiLCJGb3JnZUVycm9yIiwiVHlwZUVtaXR0ZXIiLCJUeXBlQ2hlY2siLCJsb2dnZXIiLCJuYW1lIiwid29ya3NwYWNlIiwidHlwZUVtaXR0ZXIiLCJydW4iLCJvcHRpb25zIiwicHJvamVjdHMiLCJnZXRQcm9qZWN0cyIsImNvbmZpZ3VyYXRpb24iLCJwcm9qZWN0IiwiaW5mbyIsImRpYWdub3N0aWNzIiwiZm9ybWF0dGVkIiwiY2hlY2tQcm9qZWN0IiwiZXJyb3JzIiwiZmlsdGVyIiwiZGlhZ25vc3RpYyIsImNhdGVnb3J5IiwiRGlhZ25vc3RpY0NhdGVnb3J5IiwiRXJyb3IiLCJsZW5ndGgiLCJTdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxTQUFTQSxVQUFVLFFBQVEsZ0NBQWdDO0FBQzNELDhDQUE4QztBQUM5QyxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBRTNDLFNBQVNDLGNBQWMsUUFBUSxzQkFBc0I7QUFDckQsU0FBU0MsS0FBSyxRQUFRLDhCQUE4QjtBQUNwRCxTQUFTQyxNQUFNLFFBQVEsbUJBQW1CO0FBQzFDLE9BQU9DLFFBQVEsYUFBYTtBQUM1QixTQUFTQyxVQUFVLFFBQVEsZUFBZTtBQUMxQyw4Q0FBOEM7QUFDOUMsU0FBU0MsV0FBVyxRQUFRLDhCQUE4QjtBQVExRCxPQUFPLE1BQU1DOzs7SUFDWixDQUFBLE1BQU8sR0FBR0osT0FBT0ssTUFBTSxDQUFDRCxVQUFVRSxJQUFJLEVBQUU7SUFFeEMsWUFDQyxBQUFpQkMsU0FBb0IsRUFDckMsQUFBaUJDLFdBQXdCLENBQ3hDO2FBRmdCRCxZQUFBQTthQUNBQyxjQUFBQTtJQUNmO0lBRUlDLE1BQU0sT0FBT0M7UUFDbkIsTUFBTUMsV0FBVyxJQUFJLENBQUNKLFNBQVMsQ0FBQ0ssV0FBVyxDQUFDRixRQUFRRyxhQUFhO1FBQ2pFLEtBQUssTUFBTUMsV0FBV0gsU0FBVTtZQUMvQixJQUFJLENBQUMsQ0FBQSxNQUFPLENBQUNJLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRUQsUUFBUVIsSUFBSSxFQUFFO1FBQ2xEO1FBRUEsTUFBTSxFQUFFVSxXQUFXLEVBQUVDLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDVCxXQUFXLENBQUNVLFlBQVksQ0FBQztlQUFJUDtTQUFTO1FBQ3BGLE1BQU1RLFNBQVNILFlBQVlJLE1BQU0sQ0FDaEMsQ0FBQ0MsYUFBZUEsV0FBV0MsUUFBUSxLQUFLckIsR0FBR3NCLGtCQUFrQixDQUFDQyxLQUFLO1FBR3BFLElBQUlMLE9BQU9NLE1BQU0sR0FBRyxHQUFHO1lBQ3RCLE1BQU0sSUFBSXZCLFdBQVdlLGFBQWE7UUFDbkM7UUFFQSxJQUFJQSxVQUFVUSxNQUFNLEdBQUcsR0FBRztZQUN6QixJQUFJLENBQUMsQ0FBQSxNQUFPLENBQUNWLElBQUksQ0FBQ0U7UUFDbkI7UUFFQSxPQUFPbkIsZUFBZTRCLE9BQU8sQ0FBQ3RCLFVBQVVFLElBQUk7SUFDN0MsRUFBRTtBQUNIIn0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
}
|
|
7
|
+
import fs from "node:fs/promises";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
import { injectable } from "@decohere/crucible/decorators";
|
|
10
|
+
import { ActionResponse } from "@decohere/nexus/cli";
|
|
11
|
+
import { scribe } from "@decohere/scribe";
|
|
12
|
+
import { ForgeError } from "../errors.js";
|
|
13
|
+
import { LINK_MANIFEST } from "./link.action.js";
|
|
14
|
+
export class Unlink {
|
|
15
|
+
#logger = scribe.logger(Unlink.name);
|
|
16
|
+
run = async (options)=>{
|
|
17
|
+
const targetDir = path.resolve(options.targetDir);
|
|
18
|
+
const manifestPath = path.join(targetDir, LINK_MANIFEST);
|
|
19
|
+
const manifestStat = await fs.stat(manifestPath).catch(()=>null);
|
|
20
|
+
if (manifestStat == null) {
|
|
21
|
+
throw new ForgeError(`No link manifest found at "${manifestPath}". Nothing to unlink.`);
|
|
22
|
+
}
|
|
23
|
+
const manifest = JSON.parse(await fs.readFile(manifestPath, "utf8"));
|
|
24
|
+
for (const { packageName, symlinkPath, originalPath } of manifest.links){
|
|
25
|
+
const stat = await fs.lstat(symlinkPath).catch(()=>null);
|
|
26
|
+
if (stat?.isSymbolicLink()) {
|
|
27
|
+
await fs.unlink(symlinkPath);
|
|
28
|
+
this.#logger.trace(`Removed symlink for ${packageName}`);
|
|
29
|
+
}
|
|
30
|
+
if (originalPath != null) {
|
|
31
|
+
const backupStat = await fs.stat(originalPath).catch(()=>null);
|
|
32
|
+
if (backupStat != null) {
|
|
33
|
+
await fs.rename(originalPath, symlinkPath);
|
|
34
|
+
this.#logger.trace(`Restored original dir for ${packageName}`);
|
|
35
|
+
} else {
|
|
36
|
+
// originalPath is a symlink target string — recreate the symlink
|
|
37
|
+
await fs.mkdir(path.dirname(symlinkPath), {
|
|
38
|
+
recursive: true
|
|
39
|
+
});
|
|
40
|
+
await fs.symlink(originalPath, symlinkPath, "dir");
|
|
41
|
+
this.#logger.trace(`Restored original symlink for ${packageName}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this.#logger.info(`Unlinked ${packageName}`);
|
|
45
|
+
}
|
|
46
|
+
await fs.unlink(manifestPath);
|
|
47
|
+
if (manifest.peerNodeModulesDir != null) {
|
|
48
|
+
await fs.rm(manifest.peerNodeModulesDir, {
|
|
49
|
+
recursive: true,
|
|
50
|
+
force: true
|
|
51
|
+
});
|
|
52
|
+
this.#logger.info(`Removed peer node_modules at ${manifest.peerNodeModulesDir}`);
|
|
53
|
+
}
|
|
54
|
+
return ActionResponse.Success(Unlink.name);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
Unlink = _ts_decorate([
|
|
58
|
+
injectable()
|
|
59
|
+
], Unlink);
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL3VubGluay5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBpbmplY3RhYmxlIH0gZnJvbSBcIkBkZWNvaGVyZS9jcnVjaWJsZS9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBBY3Rpb25SZXNwb25zZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBzY3JpYmUgfSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHsgRm9yZ2VFcnJvciB9IGZyb20gXCIuLi9lcnJvcnMuanNcIjtcbmltcG9ydCB7IExJTktfTUFOSUZFU1QsIHR5cGUgTGlua01hbmlmZXN0IH0gZnJvbSBcIi4vbGluay5hY3Rpb24uanNcIjtcblxuZXhwb3J0IHR5cGUgVW5saW5rT3B0aW9ucyA9IHtcblx0dGFyZ2V0RGlyOiBzdHJpbmc7XG59O1xuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVW5saW5rIGltcGxlbWVudHMgQWN0aW9uPFVubGlua09wdGlvbnM+IHtcblx0I2xvZ2dlciA9IHNjcmliZS5sb2dnZXIoVW5saW5rLm5hbWUpO1xuXG5cdHB1YmxpYyBydW4gPSBhc3luYyAob3B0aW9uczogVW5saW5rT3B0aW9ucyk6IFByb21pc2U8QWN0aW9uUmVzcG9uc2U+ID0+IHtcblx0XHRjb25zdCB0YXJnZXREaXIgPSBwYXRoLnJlc29sdmUob3B0aW9ucy50YXJnZXREaXIpO1xuXHRcdGNvbnN0IG1hbmlmZXN0UGF0aCA9IHBhdGguam9pbih0YXJnZXREaXIsIExJTktfTUFOSUZFU1QpO1xuXG5cdFx0Y29uc3QgbWFuaWZlc3RTdGF0ID0gYXdhaXQgZnMuc3RhdChtYW5pZmVzdFBhdGgpLmNhdGNoKCgpID0+IG51bGwpO1xuXHRcdGlmIChtYW5pZmVzdFN0YXQgPT0gbnVsbCkge1xuXHRcdFx0dGhyb3cgbmV3IEZvcmdlRXJyb3IoYE5vIGxpbmsgbWFuaWZlc3QgZm91bmQgYXQgXCIke21hbmlmZXN0UGF0aH1cIi4gTm90aGluZyB0byB1bmxpbmsuYCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWFuaWZlc3Q6IExpbmtNYW5pZmVzdCA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUobWFuaWZlc3RQYXRoLCBcInV0ZjhcIikpO1xuXG5cdFx0Zm9yIChjb25zdCB7IHBhY2thZ2VOYW1lLCBzeW1saW5rUGF0aCwgb3JpZ2luYWxQYXRoIH0gb2YgbWFuaWZlc3QubGlua3MpIHtcblx0XHRcdGNvbnN0IHN0YXQgPSBhd2FpdCBmcy5sc3RhdChzeW1saW5rUGF0aCkuY2F0Y2goKCkgPT4gbnVsbCk7XG5cdFx0XHRpZiAoc3RhdD8uaXNTeW1ib2xpY0xpbmsoKSkge1xuXHRcdFx0XHRhd2FpdCBmcy51bmxpbmsoc3ltbGlua1BhdGgpO1xuXHRcdFx0XHR0aGlzLiNsb2dnZXIudHJhY2UoYFJlbW92ZWQgc3ltbGluayBmb3IgJHtwYWNrYWdlTmFtZX1gKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKG9yaWdpbmFsUGF0aCAhPSBudWxsKSB7XG5cdFx0XHRcdGNvbnN0IGJhY2t1cFN0YXQgPSBhd2FpdCBmcy5zdGF0KG9yaWdpbmFsUGF0aCkuY2F0Y2goKCkgPT4gbnVsbCk7XG5cdFx0XHRcdGlmIChiYWNrdXBTdGF0ICE9IG51bGwpIHtcblx0XHRcdFx0XHRhd2FpdCBmcy5yZW5hbWUob3JpZ2luYWxQYXRoLCBzeW1saW5rUGF0aCk7XG5cdFx0XHRcdFx0dGhpcy4jbG9nZ2VyLnRyYWNlKGBSZXN0b3JlZCBvcmlnaW5hbCBkaXIgZm9yICR7cGFja2FnZU5hbWV9YCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gb3JpZ2luYWxQYXRoIGlzIGEgc3ltbGluayB0YXJnZXQgc3RyaW5nIOKAlCByZWNyZWF0ZSB0aGUgc3ltbGlua1xuXHRcdFx0XHRcdGF3YWl0IGZzLm1rZGlyKHBhdGguZGlybmFtZShzeW1saW5rUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXHRcdFx0XHRcdGF3YWl0IGZzLnN5bWxpbmsob3JpZ2luYWxQYXRoLCBzeW1saW5rUGF0aCwgXCJkaXJcIik7XG5cdFx0XHRcdFx0dGhpcy4jbG9nZ2VyLnRyYWNlKGBSZXN0b3JlZCBvcmlnaW5hbCBzeW1saW5rIGZvciAke3BhY2thZ2VOYW1lfWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuI2xvZ2dlci5pbmZvKGBVbmxpbmtlZCAke3BhY2thZ2VOYW1lfWApO1xuXHRcdH1cblxuXHRcdGF3YWl0IGZzLnVubGluayhtYW5pZmVzdFBhdGgpO1xuXG5cdFx0aWYgKG1hbmlmZXN0LnBlZXJOb2RlTW9kdWxlc0RpciAhPSBudWxsKSB7XG5cdFx0XHRhd2FpdCBmcy5ybShtYW5pZmVzdC5wZWVyTm9kZU1vZHVsZXNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcblx0XHRcdHRoaXMuI2xvZ2dlci5pbmZvKGBSZW1vdmVkIHBlZXIgbm9kZV9tb2R1bGVzIGF0ICR7bWFuaWZlc3QucGVlck5vZGVNb2R1bGVzRGlyfWApO1xuXHRcdH1cblxuXHRcdHJldHVybiBBY3Rpb25SZXNwb25zZS5TdWNjZXNzKFVubGluay5uYW1lKTtcblx0fTtcbn1cbiJdLCJuYW1lcyI6WyJmcyIsInBhdGgiLCJpbmplY3RhYmxlIiwiQWN0aW9uUmVzcG9uc2UiLCJzY3JpYmUiLCJGb3JnZUVycm9yIiwiTElOS19NQU5JRkVTVCIsIlVubGluayIsImxvZ2dlciIsIm5hbWUiLCJydW4iLCJvcHRpb25zIiwidGFyZ2V0RGlyIiwicmVzb2x2ZSIsIm1hbmlmZXN0UGF0aCIsImpvaW4iLCJtYW5pZmVzdFN0YXQiLCJzdGF0IiwiY2F0Y2giLCJtYW5pZmVzdCIsIkpTT04iLCJwYXJzZSIsInJlYWRGaWxlIiwicGFja2FnZU5hbWUiLCJzeW1saW5rUGF0aCIsIm9yaWdpbmFsUGF0aCIsImxpbmtzIiwibHN0YXQiLCJpc1N5bWJvbGljTGluayIsInVubGluayIsInRyYWNlIiwiYmFja3VwU3RhdCIsInJlbmFtZSIsIm1rZGlyIiwiZGlybmFtZSIsInJlY3Vyc2l2ZSIsInN5bWxpbmsiLCJpbmZvIiwicGVlck5vZGVNb2R1bGVzRGlyIiwicm0iLCJmb3JjZSIsIlN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU9BLFFBQVEsbUJBQW1CO0FBQ2xDLE9BQU9DLFVBQVUsWUFBWTtBQUM3QixTQUFTQyxVQUFVLFFBQVEsZ0NBQWdDO0FBRTNELFNBQVNDLGNBQWMsUUFBUSxzQkFBc0I7QUFDckQsU0FBU0MsTUFBTSxRQUFRLG1CQUFtQjtBQUMxQyxTQUFTQyxVQUFVLFFBQVEsZUFBZTtBQUMxQyxTQUFTQyxhQUFhLFFBQTJCLG1CQUFtQjtBQU9wRSxPQUFPLE1BQU1DO0lBQ1osQ0FBQSxNQUFPLEdBQUdILE9BQU9JLE1BQU0sQ0FBQ0QsT0FBT0UsSUFBSSxFQUFFO0lBRTlCQyxNQUFNLE9BQU9DO1FBQ25CLE1BQU1DLFlBQVlYLEtBQUtZLE9BQU8sQ0FBQ0YsUUFBUUMsU0FBUztRQUNoRCxNQUFNRSxlQUFlYixLQUFLYyxJQUFJLENBQUNILFdBQVdOO1FBRTFDLE1BQU1VLGVBQWUsTUFBTWhCLEdBQUdpQixJQUFJLENBQUNILGNBQWNJLEtBQUssQ0FBQyxJQUFNO1FBQzdELElBQUlGLGdCQUFnQixNQUFNO1lBQ3pCLE1BQU0sSUFBSVgsV0FBVyxDQUFDLDJCQUEyQixFQUFFUyxhQUFhLHFCQUFxQixDQUFDO1FBQ3ZGO1FBRUEsTUFBTUssV0FBeUJDLEtBQUtDLEtBQUssQ0FBQyxNQUFNckIsR0FBR3NCLFFBQVEsQ0FBQ1IsY0FBYztRQUUxRSxLQUFLLE1BQU0sRUFBRVMsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLFlBQVksRUFBRSxJQUFJTixTQUFTTyxLQUFLLENBQUU7WUFDeEUsTUFBTVQsT0FBTyxNQUFNakIsR0FBRzJCLEtBQUssQ0FBQ0gsYUFBYU4sS0FBSyxDQUFDLElBQU07WUFDckQsSUFBSUQsTUFBTVcsa0JBQWtCO2dCQUMzQixNQUFNNUIsR0FBRzZCLE1BQU0sQ0FBQ0w7Z0JBQ2hCLElBQUksQ0FBQyxDQUFBLE1BQU8sQ0FBQ00sS0FBSyxDQUFDLENBQUMsb0JBQW9CLEVBQUVQLGFBQWE7WUFDeEQ7WUFFQSxJQUFJRSxnQkFBZ0IsTUFBTTtnQkFDekIsTUFBTU0sYUFBYSxNQUFNL0IsR0FBR2lCLElBQUksQ0FBQ1EsY0FBY1AsS0FBSyxDQUFDLElBQU07Z0JBQzNELElBQUlhLGNBQWMsTUFBTTtvQkFDdkIsTUFBTS9CLEdBQUdnQyxNQUFNLENBQUNQLGNBQWNEO29CQUM5QixJQUFJLENBQUMsQ0FBQSxNQUFPLENBQUNNLEtBQUssQ0FBQyxDQUFDLDBCQUEwQixFQUFFUCxhQUFhO2dCQUM5RCxPQUFPO29CQUNOLGlFQUFpRTtvQkFDakUsTUFBTXZCLEdBQUdpQyxLQUFLLENBQUNoQyxLQUFLaUMsT0FBTyxDQUFDVixjQUFjO3dCQUFFVyxXQUFXO29CQUFLO29CQUM1RCxNQUFNbkMsR0FBR29DLE9BQU8sQ0FBQ1gsY0FBY0QsYUFBYTtvQkFDNUMsSUFBSSxDQUFDLENBQUEsTUFBTyxDQUFDTSxLQUFLLENBQUMsQ0FBQyw4QkFBOEIsRUFBRVAsYUFBYTtnQkFDbEU7WUFDRDtZQUVBLElBQUksQ0FBQyxDQUFBLE1BQU8sQ0FBQ2MsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFZCxhQUFhO1FBQzVDO1FBRUEsTUFBTXZCLEdBQUc2QixNQUFNLENBQUNmO1FBRWhCLElBQUlLLFNBQVNtQixrQkFBa0IsSUFBSSxNQUFNO1lBQ3hDLE1BQU10QyxHQUFHdUMsRUFBRSxDQUFDcEIsU0FBU21CLGtCQUFrQixFQUFFO2dCQUFFSCxXQUFXO2dCQUFNSyxPQUFPO1lBQUs7WUFDeEUsSUFBSSxDQUFDLENBQUEsTUFBTyxDQUFDSCxJQUFJLENBQUMsQ0FBQyw2QkFBNkIsRUFBRWxCLFNBQVNtQixrQkFBa0IsRUFBRTtRQUNoRjtRQUVBLE9BQU9uQyxlQUFlc0MsT0FBTyxDQUFDbEMsT0FBT0UsSUFBSTtJQUMxQyxFQUFFO0FBQ0gifQ==
|
|
@@ -24,6 +24,7 @@ export class Watch {
|
|
|
24
24
|
return ActionResponse.Skipped(Watch.name);
|
|
25
25
|
}
|
|
26
26
|
await this.workspace.watch(options.configuration);
|
|
27
|
+
this.#logger.info(`Starting watch`);
|
|
27
28
|
return ActionResponse.Blocking(Watch.name);
|
|
28
29
|
};
|
|
29
30
|
[Symbol.dispose]() {
|
|
@@ -38,4 +39,4 @@ Watch = _ts_decorate([
|
|
|
38
39
|
])
|
|
39
40
|
], Watch);
|
|
40
41
|
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL3dhdGNoLmFjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3RhYmxlIH0gZnJvbSBcIkBkZWNvaGVyZS9jcnVjaWJsZS9kZWNvcmF0b3JzXCI7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdHlsZS91c2VJbXBvcnRUeXBlOiA8REk+XG5pbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IEFjdGlvblJlc3BvbnNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5cbmV4cG9ydCB0eXBlIFdhdGNoT3B0aW9ucyA9IHtcblx0d2F0Y2g6IGJvb2xlYW47XG5cdGNvbmZpZ3VyYXRpb246IHN0cmluZztcbn07XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXYXRjaCBpbXBsZW1lbnRzIEFjdGlvbjxXYXRjaE9wdGlvbnM+
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL3dhdGNoLmFjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3RhYmxlIH0gZnJvbSBcIkBkZWNvaGVyZS9jcnVjaWJsZS9kZWNvcmF0b3JzXCI7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdHlsZS91c2VJbXBvcnRUeXBlOiA8REk+XG5pbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IEFjdGlvblJlc3BvbnNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7IHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5cbmV4cG9ydCB0eXBlIFdhdGNoT3B0aW9ucyA9IHtcblx0d2F0Y2g6IGJvb2xlYW47XG5cdGNvbmZpZ3VyYXRpb246IHN0cmluZztcbn07XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXYXRjaCBpbXBsZW1lbnRzIEFjdGlvbjxXYXRjaE9wdGlvbnM+IHtcblx0I2xvZ2dlciA9IHNjcmliZS5sb2dnZXIoV2F0Y2gubmFtZSk7XG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZTogV29ya3NwYWNlKSB7fVxuXG5cdHB1YmxpYyBydW4gPSBhc3luYyAob3B0aW9uczogV2F0Y2hPcHRpb25zKTogUHJvbWlzZTxBY3Rpb25SZXNwb25zZT4gPT4ge1xuXHRcdGlmICghb3B0aW9ucy53YXRjaCkge1xuXHRcdFx0dGhpcy4jbG9nZ2VyLmluZm8oYFNraXBwaW5nICR7V2F0Y2gubmFtZX1gKTtcblx0XHRcdHJldHVybiBBY3Rpb25SZXNwb25zZS5Ta2lwcGVkKFdhdGNoLm5hbWUpO1xuXHRcdH1cblxuXHRcdGF3YWl0IHRoaXMud29ya3NwYWNlLndhdGNoKG9wdGlvbnMuY29uZmlndXJhdGlvbik7XG5cdFx0dGhpcy4jbG9nZ2VyLmluZm8oYFN0YXJ0aW5nIHdhdGNoYCk7XG5cdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLkJsb2NraW5nKFdhdGNoLm5hbWUpO1xuXHR9O1xuXG5cdHB1YmxpYyBbU3ltYm9sLmRpc3Bvc2VdKCkge1xuXHRcdHRoaXMud29ya3NwYWNlLnN0b3BXYXRjaGluZygpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiaW5qZWN0YWJsZSIsIldvcmtzcGFjZSIsIkFjdGlvblJlc3BvbnNlIiwic2NyaWJlIiwiV2F0Y2giLCJsb2dnZXIiLCJuYW1lIiwid29ya3NwYWNlIiwicnVuIiwib3B0aW9ucyIsIndhdGNoIiwiaW5mbyIsIlNraXBwZWQiLCJjb25maWd1cmF0aW9uIiwiQmxvY2tpbmciLCJTeW1ib2wiLCJkaXNwb3NlIiwic3RvcFdhdGNoaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxTQUFTQSxVQUFVLFFBQVEsZ0NBQWdDO0FBQzNELDhDQUE4QztBQUM5QyxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBRTNDLFNBQVNDLGNBQWMsUUFBUSxzQkFBc0I7QUFDckQsU0FBU0MsTUFBTSxRQUFRLG1CQUFtQjtBQVExQyxPQUFPLE1BQU1DOztJQUNaLENBQUEsTUFBTyxHQUFHRCxPQUFPRSxNQUFNLENBQUNELE1BQU1FLElBQUksRUFBRTtJQUNwQyxZQUFtQixBQUFpQkMsU0FBb0IsQ0FBRTthQUF0QkEsWUFBQUE7SUFBdUI7SUFFcERDLE1BQU0sT0FBT0M7UUFDbkIsSUFBSSxDQUFDQSxRQUFRQyxLQUFLLEVBQUU7WUFDbkIsSUFBSSxDQUFDLENBQUEsTUFBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUVQLE1BQU1FLElBQUksRUFBRTtZQUMxQyxPQUFPSixlQUFlVSxPQUFPLENBQUNSLE1BQU1FLElBQUk7UUFDekM7UUFFQSxNQUFNLElBQUksQ0FBQ0MsU0FBUyxDQUFDRyxLQUFLLENBQUNELFFBQVFJLGFBQWE7UUFDaEQsSUFBSSxDQUFDLENBQUEsTUFBTyxDQUFDRixJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDbEMsT0FBT1QsZUFBZVksUUFBUSxDQUFDVixNQUFNRSxJQUFJO0lBQzFDLEVBQUU7SUFFSyxDQUFDUyxPQUFPQyxPQUFPLENBQUMsR0FBRztRQUN6QixJQUFJLENBQUNULFNBQVMsQ0FBQ1UsWUFBWTtJQUM1QjtBQUNEIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ConfigurationOption, DecohereCommand, DryRunOption } from "@decohere/nexus/cli";
|
|
2
|
+
import { Docker } from "../actions/docker.action.js";
|
|
3
|
+
export class DockerCommand extends DecohereCommand {
|
|
4
|
+
get actions() {
|
|
5
|
+
return [
|
|
6
|
+
Docker
|
|
7
|
+
];
|
|
8
|
+
}
|
|
9
|
+
constructor(name){
|
|
10
|
+
super(name);
|
|
11
|
+
this.description("Build Docker images for workspace projects");
|
|
12
|
+
this.addOption(new ConfigurationOption("release"));
|
|
13
|
+
this.addOption(new DryRunOption("Build images without pushing to a registry"));
|
|
14
|
+
this.option("--push", "Push built images after a successful build", false);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9jb21tYW5kcy9kb2NrZXIuY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWd1cmF0aW9uT3B0aW9uLCBEZWNvaGVyZUNvbW1hbmQsIERyeVJ1bk9wdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBEb2NrZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy9kb2NrZXIuYWN0aW9uLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXJDb21tYW5kIGV4dGVuZHMgRGVjb2hlcmVDb21tYW5kIHtcblx0cHVibGljIG92ZXJyaWRlIGdldCBhY3Rpb25zKCkge1xuXHRcdHJldHVybiBbRG9ja2VyXTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihuYW1lKTtcblx0XHR0aGlzLmRlc2NyaXB0aW9uKFwiQnVpbGQgRG9ja2VyIGltYWdlcyBmb3Igd29ya3NwYWNlIHByb2plY3RzXCIpO1xuXHRcdHRoaXMuYWRkT3B0aW9uKG5ldyBDb25maWd1cmF0aW9uT3B0aW9uKFwicmVsZWFzZVwiKSk7XG5cdFx0dGhpcy5hZGRPcHRpb24obmV3IERyeVJ1bk9wdGlvbihcIkJ1aWxkIGltYWdlcyB3aXRob3V0IHB1c2hpbmcgdG8gYSByZWdpc3RyeVwiKSk7XG5cdFx0dGhpcy5vcHRpb24oXCItLXB1c2hcIiwgXCJQdXNoIGJ1aWx0IGltYWdlcyBhZnRlciBhIHN1Y2Nlc3NmdWwgYnVpbGRcIiwgZmFsc2UpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiQ29uZmlndXJhdGlvbk9wdGlvbiIsIkRlY29oZXJlQ29tbWFuZCIsIkRyeVJ1bk9wdGlvbiIsIkRvY2tlciIsIkRvY2tlckNvbW1hbmQiLCJhY3Rpb25zIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiYWRkT3B0aW9uIiwib3B0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxtQkFBbUIsRUFBRUMsZUFBZSxFQUFFQyxZQUFZLFFBQVEsc0JBQXNCO0FBQ3pGLFNBQVNDLE1BQU0sUUFBUSw4QkFBOEI7QUFFckQsT0FBTyxNQUFNQyxzQkFBc0JIO0lBQ2xDLElBQW9CSSxVQUFVO1FBQzdCLE9BQU87WUFBQ0Y7U0FBTztJQUNoQjtJQUVBLFlBQW1CRyxJQUFZLENBQUU7UUFDaEMsS0FBSyxDQUFDQTtRQUNOLElBQUksQ0FBQ0MsV0FBVyxDQUFDO1FBQ2pCLElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUlSLG9CQUFvQjtRQUN2QyxJQUFJLENBQUNRLFNBQVMsQ0FBQyxJQUFJTixhQUFhO1FBQ2hDLElBQUksQ0FBQ08sTUFBTSxDQUFDLFVBQVUsOENBQThDO0lBQ3JFO0FBQ0QifQ==
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export * from "./build.command.js";
|
|
2
2
|
export * from "./dependency.command.js";
|
|
3
|
+
export * from "./docker.command.js";
|
|
3
4
|
export * from "./forge.command.js";
|
|
5
|
+
export * from "./link.command.js";
|
|
4
6
|
export * from "./publish.command.js";
|
|
5
7
|
export * from "./tag.command.js";
|
|
8
|
+
export * from "./typecheck.command.js";
|
|
6
9
|
export * from "./version.command.js";
|
|
7
10
|
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9jb21tYW5kcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9idWlsZC5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZXBlbmRlbmN5LmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RvY2tlci5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JnZS5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saW5rLmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3B1Ymxpc2guY29tbWFuZC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFnLmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVjaGVjay5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92ZXJzaW9uLmNvbW1hbmQuanNcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLDBCQUEwQjtBQUN4QyxjQUFjLHNCQUFzQjtBQUNwQyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLG9CQUFvQjtBQUNsQyxjQUFjLHVCQUF1QjtBQUNyQyxjQUFjLG1CQUFtQjtBQUNqQyxjQUFjLHlCQUF5QjtBQUN2QyxjQUFjLHVCQUF1QiJ9
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { CommandResponse, ConfigurationOption, DecohereCommand, NoCleanOptions } from "@decohere/nexus/cli";
|
|
2
|
+
import auto from "async/auto.js";
|
|
3
|
+
import { Build } from "../actions/build.action.js";
|
|
4
|
+
import { Clean } from "../actions/clean.action.js";
|
|
5
|
+
import { Copy } from "../actions/copy.action.js";
|
|
6
|
+
import { Link } from "../actions/link.action.js";
|
|
7
|
+
import { Unlink } from "../actions/unlink.action.js";
|
|
8
|
+
import { Watch } from "../actions/watch.action.js";
|
|
9
|
+
export class LinkCommand extends DecohereCommand {
|
|
10
|
+
get actions() {
|
|
11
|
+
return [
|
|
12
|
+
Clean,
|
|
13
|
+
Build,
|
|
14
|
+
Copy,
|
|
15
|
+
Link,
|
|
16
|
+
Watch
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
constructor(name){
|
|
20
|
+
super(name ?? "link");
|
|
21
|
+
this.description("Symlink workspace build outputs into a consumer project's node_modules");
|
|
22
|
+
this.addOption(new ConfigurationOption("link"));
|
|
23
|
+
this.addOption(new NoCleanOptions(true));
|
|
24
|
+
this.option("--build", "Run forge build concurrently after linking", false);
|
|
25
|
+
this.option("--no-copy", "Will not copy files like package.json to outdir", true);
|
|
26
|
+
this.option("--target-dir <dir>", "Path to the consumer project root");
|
|
27
|
+
this.option("--watch", "Watch for changes after linking", false);
|
|
28
|
+
}
|
|
29
|
+
run = async (actions, options)=>{
|
|
30
|
+
const responses = await auto({
|
|
31
|
+
clean: async ()=>await actions.clean.run(options),
|
|
32
|
+
link: [
|
|
33
|
+
"clean",
|
|
34
|
+
async ()=>await actions.link.run(options)
|
|
35
|
+
],
|
|
36
|
+
build: [
|
|
37
|
+
"link",
|
|
38
|
+
async ()=>await actions.build.run(options)
|
|
39
|
+
],
|
|
40
|
+
copy: [
|
|
41
|
+
"link",
|
|
42
|
+
async ()=>await actions.copy.run(options)
|
|
43
|
+
],
|
|
44
|
+
watch: [
|
|
45
|
+
"link",
|
|
46
|
+
async ()=>await actions.watch.run(options)
|
|
47
|
+
]
|
|
48
|
+
});
|
|
49
|
+
return CommandResponse.success(options, responses);
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export class UnlinkCommand extends DecohereCommand {
|
|
53
|
+
get actions() {
|
|
54
|
+
return [
|
|
55
|
+
Unlink
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
constructor(name, handler){
|
|
59
|
+
super(name ?? "unlink");
|
|
60
|
+
this.description("Remove workspace symlinks from a consumer project's node_modules");
|
|
61
|
+
this.option("--target-dir <dir>", "Path to the consumer project root");
|
|
62
|
+
if (handler) this.action(handler);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9jb21tYW5kcy9saW5rLmNvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tYW5kSGFuZGxlciwgTWVyZ2VPcHRpb25zIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB7XG5cdENvbW1hbmRSZXNwb25zZSxcblx0Q29uZmlndXJhdGlvbk9wdGlvbixcblx0RGVjb2hlcmVDb21tYW5kLFxuXHROb0NsZWFuT3B0aW9ucyxcbn0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCBhdXRvIGZyb20gXCJhc3luYy9hdXRvLmpzXCI7XG5pbXBvcnQgeyBCdWlsZCB9IGZyb20gXCIuLi9hY3Rpb25zL2J1aWxkLmFjdGlvbi5qc1wiO1xuaW1wb3J0IHsgQ2xlYW4gfSBmcm9tIFwiLi4vYWN0aW9ucy9jbGVhbi5hY3Rpb24uanNcIjtcbmltcG9ydCB7IENvcHkgfSBmcm9tIFwiLi4vYWN0aW9ucy9jb3B5LmFjdGlvbi5qc1wiO1xuaW1wb3J0IHsgTGluayB9IGZyb20gXCIuLi9hY3Rpb25zL2xpbmsuYWN0aW9uLmpzXCI7XG5pbXBvcnQgeyBVbmxpbmsgfSBmcm9tIFwiLi4vYWN0aW9ucy91bmxpbmsuYWN0aW9uLmpzXCI7XG5pbXBvcnQgeyBXYXRjaCB9IGZyb20gXCIuLi9hY3Rpb25zL3dhdGNoLmFjdGlvbi5qc1wiO1xuXG5leHBvcnQgdHlwZSBMaW5rQWN0aW9ucyA9IHsgY2xlYW46IENsZWFuOyBidWlsZDogQnVpbGQ7IGNvcHk6IENvcHk7IGxpbms6IExpbms7IHdhdGNoOiBXYXRjaCB9O1xudHlwZSBVbmxpbmtBY3Rpb25zID0geyB1bmxpbms6IFVubGluayB9O1xuXG5leHBvcnQgY2xhc3MgTGlua0NvbW1hbmQgZXh0ZW5kcyBEZWNvaGVyZUNvbW1hbmQ8TGlua0FjdGlvbnM+IHtcblx0cHVibGljIG92ZXJyaWRlIGdldCBhY3Rpb25zKCkge1xuXHRcdHJldHVybiBbQ2xlYW4sIEJ1aWxkLCBDb3B5LCBMaW5rLCBXYXRjaF07XG5cdH1cblxuXHRwdWJsaWMgY29uc3RydWN0b3IobmFtZT86IHN0cmluZykge1xuXHRcdHN1cGVyKG5hbWUgPz8gXCJsaW5rXCIpO1xuXHRcdHRoaXMuZGVzY3JpcHRpb24oXCJTeW1saW5rIHdvcmtzcGFjZSBidWlsZCBvdXRwdXRzIGludG8gYSBjb25zdW1lciBwcm9qZWN0J3Mgbm9kZV9tb2R1bGVzXCIpO1xuXHRcdHRoaXMuYWRkT3B0aW9uKG5ldyBDb25maWd1cmF0aW9uT3B0aW9uKFwibGlua1wiKSk7XG5cdFx0dGhpcy5hZGRPcHRpb24obmV3IE5vQ2xlYW5PcHRpb25zKHRydWUpKTtcblx0XHR0aGlzLm9wdGlvbihcIi0tYnVpbGRcIiwgXCJSdW4gZm9yZ2UgYnVpbGQgY29uY3VycmVudGx5IGFmdGVyIGxpbmtpbmdcIiwgZmFsc2UpO1xuXHRcdHRoaXMub3B0aW9uKFwiLS1uby1jb3B5XCIsIFwiV2lsbCBub3QgY29weSBmaWxlcyBsaWtlIHBhY2thZ2UuanNvbiB0byBvdXRkaXJcIiwgdHJ1ZSk7XG5cdFx0dGhpcy5vcHRpb24oXCItLXRhcmdldC1kaXIgPGRpcj5cIiwgXCJQYXRoIHRvIHRoZSBjb25zdW1lciBwcm9qZWN0IHJvb3RcIik7XG5cdFx0dGhpcy5vcHRpb24oXCItLXdhdGNoXCIsIFwiV2F0Y2ggZm9yIGNoYW5nZXMgYWZ0ZXIgbGlua2luZ1wiLCBmYWxzZSk7XG5cdH1cblxuXHRwdWJsaWMgcnVuID0gYXN5bmMgKFxuXHRcdGFjdGlvbnM6IExpbmtBY3Rpb25zLFxuXHRcdG9wdGlvbnM6IE1lcmdlT3B0aW9uczxMaW5rQWN0aW9ucz4sXG5cdCk6IFByb21pc2U8Q29tbWFuZFJlc3BvbnNlPExpbmtBY3Rpb25zPj4gPT4ge1xuXHRcdGNvbnN0IHJlc3BvbnNlcyA9IGF3YWl0IGF1dG88TGlua0FjdGlvbnM+KHtcblx0XHRcdGNsZWFuOiBhc3luYyAoKSA9PiBhd2FpdCBhY3Rpb25zLmNsZWFuLnJ1bihvcHRpb25zKSxcblx0XHRcdGxpbms6IFtcImNsZWFuXCIsIGFzeW5jICgpID0+IGF3YWl0IGFjdGlvbnMubGluay5ydW4ob3B0aW9ucyldLFxuXHRcdFx0YnVpbGQ6IFtcImxpbmtcIiwgYXN5bmMgKCkgPT4gYXdhaXQgYWN0aW9ucy5idWlsZC5ydW4ob3B0aW9ucyldLFxuXHRcdFx0Y29weTogW1wibGlua1wiLCBhc3luYyAoKSA9PiBhd2FpdCBhY3Rpb25zLmNvcHkucnVuKG9wdGlvbnMpXSxcblx0XHRcdHdhdGNoOiBbXCJsaW5rXCIsIGFzeW5jICgpID0+IGF3YWl0IGFjdGlvbnMud2F0Y2gucnVuKG9wdGlvbnMpXSxcblx0XHR9KTtcblxuXHRcdHJldHVybiBDb21tYW5kUmVzcG9uc2Uuc3VjY2VzcyhvcHRpb25zLCByZXNwb25zZXMpO1xuXHR9O1xufVxuXG5leHBvcnQgY2xhc3MgVW5saW5rQ29tbWFuZCBleHRlbmRzIERlY29oZXJlQ29tbWFuZDxVbmxpbmtBY3Rpb25zPiB7XG5cdHB1YmxpYyBvdmVycmlkZSBnZXQgYWN0aW9ucygpIHtcblx0XHRyZXR1cm4gW1VubGlua107XG5cdH1cblxuXHRwdWJsaWMgY29uc3RydWN0b3IobmFtZT86IHN0cmluZywgaGFuZGxlcj86IENvbW1hbmRIYW5kbGVyKSB7XG5cdFx0c3VwZXIobmFtZSA/PyBcInVubGlua1wiKTtcblx0XHR0aGlzLmRlc2NyaXB0aW9uKFwiUmVtb3ZlIHdvcmtzcGFjZSBzeW1saW5rcyBmcm9tIGEgY29uc3VtZXIgcHJvamVjdCdzIG5vZGVfbW9kdWxlc1wiKTtcblx0XHR0aGlzLm9wdGlvbihcIi0tdGFyZ2V0LWRpciA8ZGlyPlwiLCBcIlBhdGggdG8gdGhlIGNvbnN1bWVyIHByb2plY3Qgcm9vdFwiKTtcblx0XHRpZiAoaGFuZGxlcikgdGhpcy5hY3Rpb24oaGFuZGxlcik7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJDb21tYW5kUmVzcG9uc2UiLCJDb25maWd1cmF0aW9uT3B0aW9uIiwiRGVjb2hlcmVDb21tYW5kIiwiTm9DbGVhbk9wdGlvbnMiLCJhdXRvIiwiQnVpbGQiLCJDbGVhbiIsIkNvcHkiLCJMaW5rIiwiVW5saW5rIiwiV2F0Y2giLCJMaW5rQ29tbWFuZCIsImFjdGlvbnMiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJhZGRPcHRpb24iLCJvcHRpb24iLCJydW4iLCJvcHRpb25zIiwicmVzcG9uc2VzIiwiY2xlYW4iLCJsaW5rIiwiYnVpbGQiLCJjb3B5Iiwid2F0Y2giLCJzdWNjZXNzIiwiVW5saW5rQ29tbWFuZCIsImhhbmRsZXIiLCJhY3Rpb24iXSwibWFwcGluZ3MiOiJBQUNBLFNBQ0NBLGVBQWUsRUFDZkMsbUJBQW1CLEVBQ25CQyxlQUFlLEVBQ2ZDLGNBQWMsUUFDUixzQkFBc0I7QUFDN0IsT0FBT0MsVUFBVSxnQkFBZ0I7QUFDakMsU0FBU0MsS0FBSyxRQUFRLDZCQUE2QjtBQUNuRCxTQUFTQyxLQUFLLFFBQVEsNkJBQTZCO0FBQ25ELFNBQVNDLElBQUksUUFBUSw0QkFBNEI7QUFDakQsU0FBU0MsSUFBSSxRQUFRLDRCQUE0QjtBQUNqRCxTQUFTQyxNQUFNLFFBQVEsOEJBQThCO0FBQ3JELFNBQVNDLEtBQUssUUFBUSw2QkFBNkI7QUFLbkQsT0FBTyxNQUFNQyxvQkFBb0JUO0lBQ2hDLElBQW9CVSxVQUFVO1FBQzdCLE9BQU87WUFBQ047WUFBT0Q7WUFBT0U7WUFBTUM7WUFBTUU7U0FBTTtJQUN6QztJQUVBLFlBQW1CRyxJQUFhLENBQUU7UUFDakMsS0FBSyxDQUFDQSxRQUFRO1FBQ2QsSUFBSSxDQUFDQyxXQUFXLENBQUM7UUFDakIsSUFBSSxDQUFDQyxTQUFTLENBQUMsSUFBSWQsb0JBQW9CO1FBQ3ZDLElBQUksQ0FBQ2MsU0FBUyxDQUFDLElBQUlaLGVBQWU7UUFDbEMsSUFBSSxDQUFDYSxNQUFNLENBQUMsV0FBVyw4Q0FBOEM7UUFDckUsSUFBSSxDQUFDQSxNQUFNLENBQUMsYUFBYSxtREFBbUQ7UUFDNUUsSUFBSSxDQUFDQSxNQUFNLENBQUMsc0JBQXNCO1FBQ2xDLElBQUksQ0FBQ0EsTUFBTSxDQUFDLFdBQVcsbUNBQW1DO0lBQzNEO0lBRU9DLE1BQU0sT0FDWkwsU0FDQU07UUFFQSxNQUFNQyxZQUFZLE1BQU1mLEtBQWtCO1lBQ3pDZ0IsT0FBTyxVQUFZLE1BQU1SLFFBQVFRLEtBQUssQ0FBQ0gsR0FBRyxDQUFDQztZQUMzQ0csTUFBTTtnQkFBQztnQkFBUyxVQUFZLE1BQU1ULFFBQVFTLElBQUksQ0FBQ0osR0FBRyxDQUFDQzthQUFTO1lBQzVESSxPQUFPO2dCQUFDO2dCQUFRLFVBQVksTUFBTVYsUUFBUVUsS0FBSyxDQUFDTCxHQUFHLENBQUNDO2FBQVM7WUFDN0RLLE1BQU07Z0JBQUM7Z0JBQVEsVUFBWSxNQUFNWCxRQUFRVyxJQUFJLENBQUNOLEdBQUcsQ0FBQ0M7YUFBUztZQUMzRE0sT0FBTztnQkFBQztnQkFBUSxVQUFZLE1BQU1aLFFBQVFZLEtBQUssQ0FBQ1AsR0FBRyxDQUFDQzthQUFTO1FBQzlEO1FBRUEsT0FBT2xCLGdCQUFnQnlCLE9BQU8sQ0FBQ1AsU0FBU0M7SUFDekMsRUFBRTtBQUNIO0FBRUEsT0FBTyxNQUFNTyxzQkFBc0J4QjtJQUNsQyxJQUFvQlUsVUFBVTtRQUM3QixPQUFPO1lBQUNIO1NBQU87SUFDaEI7SUFFQSxZQUFtQkksSUFBYSxFQUFFYyxPQUF3QixDQUFFO1FBQzNELEtBQUssQ0FBQ2QsUUFBUTtRQUNkLElBQUksQ0FBQ0MsV0FBVyxDQUFDO1FBQ2pCLElBQUksQ0FBQ0UsTUFBTSxDQUFDLHNCQUFzQjtRQUNsQyxJQUFJVyxTQUFTLElBQUksQ0FBQ0MsTUFBTSxDQUFDRDtJQUMxQjtBQUNEIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ConfigurationOption, DecohereCommand } from "@decohere/nexus/cli";
|
|
2
|
+
import { TypeCheck } from "../actions/typecheck.action.js";
|
|
3
|
+
export class TypeCheckCommand extends DecohereCommand {
|
|
4
|
+
get actions() {
|
|
5
|
+
return [
|
|
6
|
+
TypeCheck
|
|
7
|
+
];
|
|
8
|
+
}
|
|
9
|
+
constructor(name){
|
|
10
|
+
super(name);
|
|
11
|
+
this.description("Type-check workspace projects without emitting files");
|
|
12
|
+
this.addOption(new ConfigurationOption("debug"));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9jb21tYW5kcy90eXBlY2hlY2suY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWd1cmF0aW9uT3B0aW9uLCBEZWNvaGVyZUNvbW1hbmQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgVHlwZUNoZWNrIH0gZnJvbSBcIi4uL2FjdGlvbnMvdHlwZWNoZWNrLmFjdGlvbi5qc1wiO1xuXG5leHBvcnQgY2xhc3MgVHlwZUNoZWNrQ29tbWFuZCBleHRlbmRzIERlY29oZXJlQ29tbWFuZCB7XG5cdHB1YmxpYyBvdmVycmlkZSBnZXQgYWN0aW9ucygpIHtcblx0XHRyZXR1cm4gW1R5cGVDaGVja107XG5cdH1cblxuXHRwdWJsaWMgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG5cdFx0c3VwZXIobmFtZSk7XG5cdFx0dGhpcy5kZXNjcmlwdGlvbihcIlR5cGUtY2hlY2sgd29ya3NwYWNlIHByb2plY3RzIHdpdGhvdXQgZW1pdHRpbmcgZmlsZXNcIik7XG5cdFx0dGhpcy5hZGRPcHRpb24obmV3IENvbmZpZ3VyYXRpb25PcHRpb24oXCJkZWJ1Z1wiKSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJDb25maWd1cmF0aW9uT3B0aW9uIiwiRGVjb2hlcmVDb21tYW5kIiwiVHlwZUNoZWNrIiwiVHlwZUNoZWNrQ29tbWFuZCIsImFjdGlvbnMiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJhZGRPcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG1CQUFtQixFQUFFQyxlQUFlLFFBQVEsc0JBQXNCO0FBQzNFLFNBQVNDLFNBQVMsUUFBUSxpQ0FBaUM7QUFFM0QsT0FBTyxNQUFNQyx5QkFBeUJGO0lBQ3JDLElBQW9CRyxVQUFVO1FBQzdCLE9BQU87WUFBQ0Y7U0FBVTtJQUNuQjtJQUVBLFlBQW1CRyxJQUFZLENBQUU7UUFDaEMsS0FBSyxDQUFDQTtRQUNOLElBQUksQ0FBQ0MsV0FBVyxDQUFDO1FBQ2pCLElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUlQLG9CQUFvQjtJQUN4QztBQUNEIn0=
|
|
@@ -5,6 +5,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
}
|
|
7
7
|
import path from "node:path";
|
|
8
|
+
import { packageAliases } from "@decohere/mesh";
|
|
8
9
|
import { Trace } from "@decohere/nexus/diagnostics";
|
|
9
10
|
import { merge } from "@decohere/nexus/objects";
|
|
10
11
|
import { ForgeError } from "../errors.js";
|
|
@@ -32,10 +33,15 @@ export class SwcConfigFactory {
|
|
|
32
33
|
* Creates a base config for a project+target combination, without a filename.
|
|
33
34
|
* Call once per (project, target) and then use createFileConfig() per file.
|
|
34
35
|
*/ createBaseConfig(buildTarget, configOptions) {
|
|
35
|
-
const { userConfig, tsConfig, aliasPaths } = configOptions;
|
|
36
|
+
const { userConfig, tsConfig, aliasPaths, workspace, projects } = configOptions;
|
|
36
37
|
const { compilerOptions } = tsConfig ?? {};
|
|
37
|
-
const
|
|
38
|
-
|
|
38
|
+
const aliases = aliasPaths ? workspace != null ? workspace.getPackageAliases(projects?.[0]?.configuration.name ?? "debug") : projects != null && projects.length > 0 ? packageAliases.build(projects, {
|
|
39
|
+
baseUrl: SwcConfigFactory.getBaseUrl(tsConfig) ?? path.resolve(projects[0].rootDir),
|
|
40
|
+
tsconfigPaths: compilerOptions?.paths
|
|
41
|
+
}) : undefined : undefined;
|
|
42
|
+
const tsconfigOnlyPaths = aliasPaths && aliases == null ? compilerOptions?.paths : undefined;
|
|
43
|
+
const paths = SwcConfigFactory.nonemptyPaths(aliases?.paths ?? tsconfigOnlyPaths);
|
|
44
|
+
const baseUrl = aliases?.baseUrl ?? SwcConfigFactory.getBaseUrl(tsConfig) ?? (workspace != null ? path.resolve(workspace.rootDir) : undefined) ?? (paths != null ? path.resolve(".") : undefined);
|
|
39
45
|
const options = {
|
|
40
46
|
jsc: {
|
|
41
47
|
baseUrl,
|
|
@@ -57,6 +63,10 @@ export class SwcConfigFactory {
|
|
|
57
63
|
this.validate(config);
|
|
58
64
|
return config;
|
|
59
65
|
}
|
|
66
|
+
static nonemptyPaths(paths) {
|
|
67
|
+
if (paths == null || Object.keys(paths).length === 0) return undefined;
|
|
68
|
+
return paths;
|
|
69
|
+
}
|
|
60
70
|
/**
|
|
61
71
|
* Validates SWC options against known causes of Rust/NAPI process crashes.
|
|
62
72
|
* Throws a ForgeError with a descriptive message instead of letting the
|
|
@@ -80,4 +90,4 @@ SwcConfigFactory = _ts_decorate([
|
|
|
80
90
|
Trace
|
|
81
91
|
], SwcConfigFactory);
|
|
82
92
|
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9mYWN0b3JpZXMvc3djLWNvbmZpZy5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHBhY2thZ2VBbGlhc2VzLCB0eXBlIFRzY29uZmlnIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZGlhZ25vc3RpY3NcIjtcbmltcG9ydCB0eXBlIHsgRmlsZUV4IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL29iamVjdHNcIjtcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyB9IGZyb20gXCJAc3djL2NvcmVcIjtcbmltcG9ydCB7IEZvcmdlRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zcGlsZVRhcmdldCB9IGZyb20gXCIuLi90eXBlcy9idWlsZC10YXJnZXQudHlwZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTd2NDb25maWdPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzL3N3Yy1jb25maWcudHlwZS5qc1wiO1xuXG5jb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcblx0anNjOiB7XG5cdFx0cGFyc2VyOiB7XG5cdFx0XHRzeW50YXg6IFwidHlwZXNjcmlwdFwiLFxuXHRcdFx0ZGVjb3JhdG9yczogdHJ1ZSxcblx0XHR9LFxuXHRcdHRhcmdldDogXCJlc25leHRcIixcblx0XHR0cmFuc2Zvcm06IHtcblx0XHRcdGRlY29yYXRvck1ldGFkYXRhOiB0cnVlLFxuXHRcdH0sXG5cdFx0ZXhwZXJpbWVudGFsOiB7IGtlZXBJbXBvcnRBdHRyaWJ1dGVzOiB0cnVlIH0sXG5cdH0sXG5cdG1vZHVsZToge1xuXHRcdHJlc29sdmVGdWxseTogdHJ1ZSxcblx0fSxcblx0c291cmNlTWFwczogXCJpbmxpbmVcIixcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFN3Y0NvbmZpZ0ZhY3Rvcnkge1xuXHQvKipcblx0ICogQ3JlYXRlcyBhIGJhc2UgY29uZmlnIGZvciBhIHByb2plY3QrdGFyZ2V0IGNvbWJpbmF0aW9uLCB3aXRob3V0IGEgZmlsZW5hbWUuXG5cdCAqIENhbGwgb25jZSBwZXIgKHByb2plY3QsIHRhcmdldCkgYW5kIHRoZW4gdXNlIGNyZWF0ZUZpbGVDb25maWcoKSBwZXIgZmlsZS5cblx0ICovXG5cdHB1YmxpYyBjcmVhdGVCYXNlQ29uZmlnKFxuXHRcdGJ1aWxkVGFyZ2V0OiBUcmFuc3BpbGVUYXJnZXQsXG5cdFx0Y29uZmlnT3B0aW9uczogU3djQ29uZmlnT3B0aW9ucyxcblx0KTogT3B0aW9ucyB7XG5cdFx0Y29uc3QgeyB1c2VyQ29uZmlnLCB0c0NvbmZpZywgYWxpYXNQYXRocywgd29ya3NwYWNlLCBwcm9qZWN0cyB9ID0gY29uZmlnT3B0aW9ucztcblx0XHRjb25zdCB7IGNvbXBpbGVyT3B0aW9ucyB9ID0gdHNDb25maWcgPz8ge307XG5cdFx0Y29uc3QgYWxpYXNlcyA9IGFsaWFzUGF0aHNcblx0XHRcdD8gd29ya3NwYWNlICE9IG51bGxcblx0XHRcdFx0PyB3b3Jrc3BhY2UuZ2V0UGFja2FnZUFsaWFzZXMocHJvamVjdHM/LlswXT8uY29uZmlndXJhdGlvbi5uYW1lID8/IFwiZGVidWdcIilcblx0XHRcdFx0OiBwcm9qZWN0cyAhPSBudWxsICYmIHByb2plY3RzLmxlbmd0aCA+IDBcblx0XHRcdFx0XHQ/IHBhY2thZ2VBbGlhc2VzLmJ1aWxkKHByb2plY3RzLCB7XG5cdFx0XHRcdFx0XHRcdGJhc2VVcmw6XG5cdFx0XHRcdFx0XHRcdFx0U3djQ29uZmlnRmFjdG9yeS5nZXRCYXNlVXJsKHRzQ29uZmlnKSA/PyBwYXRoLnJlc29sdmUocHJvamVjdHNbMF0ucm9vdERpciksXG5cdFx0XHRcdFx0XHRcdHRzY29uZmlnUGF0aHM6IGNvbXBpbGVyT3B0aW9ucz8ucGF0aHMgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkLFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQ6IHVuZGVmaW5lZFxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgdHNjb25maWdPbmx5UGF0aHMgPVxuXHRcdFx0YWxpYXNQYXRocyAmJiBhbGlhc2VzID09IG51bGxcblx0XHRcdFx0PyAoY29tcGlsZXJPcHRpb25zPy5wYXRocyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQpXG5cdFx0XHRcdDogdW5kZWZpbmVkO1xuXHRcdGNvbnN0IHBhdGhzID0gU3djQ29uZmlnRmFjdG9yeS5ub25lbXB0eVBhdGhzKGFsaWFzZXM/LnBhdGhzID8/IHRzY29uZmlnT25seVBhdGhzKTtcblx0XHRjb25zdCBiYXNlVXJsID1cblx0XHRcdGFsaWFzZXM/LmJhc2VVcmwgPz9cblx0XHRcdFN3Y0NvbmZpZ0ZhY3RvcnkuZ2V0QmFzZVVybCh0c0NvbmZpZykgPz9cblx0XHRcdCh3b3Jrc3BhY2UgIT0gbnVsbCA/IHBhdGgucmVzb2x2ZSh3b3Jrc3BhY2Uucm9vdERpcikgOiB1bmRlZmluZWQpID8/XG5cdFx0XHQocGF0aHMgIT0gbnVsbCA/IHBhdGgucmVzb2x2ZShcIi5cIikgOiB1bmRlZmluZWQpO1xuXG5cdFx0Y29uc3Qgb3B0aW9uczogT3B0aW9ucyA9IHtcblx0XHRcdGpzYzoge1xuXHRcdFx0XHRiYXNlVXJsLFxuXHRcdFx0XHRwYXRocyxcblx0XHRcdH0sXG5cdFx0XHRtb2R1bGU6IHtcblx0XHRcdFx0dHlwZTogYnVpbGRUYXJnZXQsXG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHRyZXR1cm4gbWVyZ2Uud2l0aE9wdGlvbnM8T3B0aW9ucz4oXG5cdFx0XHR7IG1lcmdlQXJyYXlzOiBmYWxzZSB9LFxuXHRcdFx0ZGVmYXVsdE9wdGlvbnMsXG5cdFx0XHRvcHRpb25zLFxuXHRcdFx0dXNlckNvbmZpZyA/PyB7fSxcblx0XHQpO1xuXHR9XG5cblx0LyoqIFN0YW1wcyBhIHBlci1maWxlIGZpbGVuYW1lIG9udG8gYSBwcmUtYnVpbHQgYmFzZSBjb25maWcuICovXG5cdHB1YmxpYyBjcmVhdGVGaWxlQ29uZmlnKGZpbGU6IEZpbGVFeCwgYmFzZUNvbmZpZzogT3B0aW9ucyk6IE9wdGlvbnMge1xuXHRcdGNvbnN0IGNvbmZpZyA9IHsgLi4uYmFzZUNvbmZpZywgZmlsZW5hbWU6IGZpbGUuZnVsbFBhdGggfTtcblx0XHR0aGlzLnZhbGlkYXRlKGNvbmZpZyk7XG5cdFx0cmV0dXJuIGNvbmZpZztcblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIG5vbmVtcHR5UGF0aHMoXG5cdFx0cGF0aHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IHVuZGVmaW5lZCxcblx0KTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkIHtcblx0XHRpZiAocGF0aHMgPT0gbnVsbCB8fCBPYmplY3Qua2V5cyhwYXRocykubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdHJldHVybiBwYXRocztcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgU1dDIG9wdGlvbnMgYWdhaW5zdCBrbm93biBjYXVzZXMgb2YgUnVzdC9OQVBJIHByb2Nlc3MgY3Jhc2hlcy5cblx0ICogVGhyb3dzIGEgRm9yZ2VFcnJvciB3aXRoIGEgZGVzY3JpcHRpdmUgbWVzc2FnZSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlXG5cdCAqIE5BUEkgbGF5ZXIgYWJvcnQgdGhlIHByb2Nlc3MuXG5cdCAqXG5cdCAqIEtub3duIGNyYXNoIGNhdXNlczpcblx0ICogLSBganNjLmJhc2VVcmxgIHNldCB0byBhIHJlbGF0aXZlIHBhdGggKFNXQyByZXF1aXJlcyBhbiBhYnNvbHV0ZSBwYXRoKVxuXHQgKi9cblx0cHVibGljIHZhbGlkYXRlKG9wdGlvbnM6IE9wdGlvbnMpOiB2b2lkIHtcblx0XHRjb25zdCBiYXNlVXJsID0gb3B0aW9ucy5qc2M/LmJhc2VVcmw7XG5cdFx0aWYgKGJhc2VVcmwgIT0gbnVsbCAmJiAhcGF0aC5pc0Fic29sdXRlKGJhc2VVcmwpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRm9yZ2VFcnJvcihcblx0XHRcdFx0YFNXQyBjb25maWc6IGpzYy5iYXNlVXJsIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aCB0byBhdm9pZCBhIHByb2Nlc3MgY3Jhc2gsIGdvdDogXCIke2Jhc2VVcmx9XCIuIFVzZSBwYXRoLnJlc29sdmUoKSB0byBjb252ZXJ0IGl0LmAsXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBSZXNvbHZlcyB0c2NvbmZpZyBiYXNlVXJsIHRvIGFuIGFic29sdXRlIHBhdGguIFJldHVybnMgdW5kZWZpbmVkIGlmIG5vdCBzZXQuICovXG5cdHByaXZhdGUgc3RhdGljIGdldEJhc2VVcmwodHNDb25maWc6IFRzY29uZmlnIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBiYXNlVXJsID0gdHNDb25maWc/LmNvbXBpbGVyT3B0aW9ucz8uYmFzZVVybDtcblx0XHRpZiAoYmFzZVVybCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdHJldHVybiBwYXRoLnJlc29sdmUoYmFzZVVybCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwicGFja2FnZUFsaWFzZXMiLCJUcmFjZSIsIm1lcmdlIiwiRm9yZ2VFcnJvciIsImRlZmF1bHRPcHRpb25zIiwianNjIiwicGFyc2VyIiwic3ludGF4IiwiZGVjb3JhdG9ycyIsInRhcmdldCIsInRyYW5zZm9ybSIsImRlY29yYXRvck1ldGFkYXRhIiwiZXhwZXJpbWVudGFsIiwia2VlcEltcG9ydEF0dHJpYnV0ZXMiLCJtb2R1bGUiLCJyZXNvbHZlRnVsbHkiLCJzb3VyY2VNYXBzIiwiU3djQ29uZmlnRmFjdG9yeSIsImNyZWF0ZUJhc2VDb25maWciLCJidWlsZFRhcmdldCIsImNvbmZpZ09wdGlvbnMiLCJ1c2VyQ29uZmlnIiwidHNDb25maWciLCJhbGlhc1BhdGhzIiwid29ya3NwYWNlIiwicHJvamVjdHMiLCJjb21waWxlck9wdGlvbnMiLCJhbGlhc2VzIiwiZ2V0UGFja2FnZUFsaWFzZXMiLCJjb25maWd1cmF0aW9uIiwibmFtZSIsImxlbmd0aCIsImJ1aWxkIiwiYmFzZVVybCIsImdldEJhc2VVcmwiLCJyZXNvbHZlIiwicm9vdERpciIsInRzY29uZmlnUGF0aHMiLCJwYXRocyIsInVuZGVmaW5lZCIsInRzY29uZmlnT25seVBhdGhzIiwibm9uZW1wdHlQYXRocyIsIm9wdGlvbnMiLCJ0eXBlIiwid2l0aE9wdGlvbnMiLCJtZXJnZUFycmF5cyIsImNyZWF0ZUZpbGVDb25maWciLCJmaWxlIiwiYmFzZUNvbmZpZyIsImNvbmZpZyIsImZpbGVuYW1lIiwiZnVsbFBhdGgiLCJ2YWxpZGF0ZSIsIk9iamVjdCIsImtleXMiLCJpc0Fic29sdXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPQSxVQUFVLFlBQVk7QUFDN0IsU0FBU0MsY0FBYyxRQUF1QixpQkFBaUI7QUFDL0QsU0FBU0MsS0FBSyxRQUFRLDhCQUE4QjtBQUVwRCxTQUFTQyxLQUFLLFFBQVEsMEJBQTBCO0FBRWhELFNBQVNDLFVBQVUsUUFBUSxlQUFlO0FBSTFDLE1BQU1DLGlCQUFpQjtJQUN0QkMsS0FBSztRQUNKQyxRQUFRO1lBQ1BDLFFBQVE7WUFDUkMsWUFBWTtRQUNiO1FBQ0FDLFFBQVE7UUFDUkMsV0FBVztZQUNWQyxtQkFBbUI7UUFDcEI7UUFDQUMsY0FBYztZQUFFQyxzQkFBc0I7UUFBSztJQUM1QztJQUNBQyxRQUFRO1FBQ1BDLGNBQWM7SUFDZjtJQUNBQyxZQUFZO0FBQ2I7QUFHQSxPQUFPLE1BQU1DO0lBQ1o7OztFQUdDLEdBQ0QsQUFBT0MsaUJBQ05DLFdBQTRCLEVBQzVCQyxhQUErQixFQUNyQjtRQUNWLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUUsR0FBR0w7UUFDbEUsTUFBTSxFQUFFTSxlQUFlLEVBQUUsR0FBR0osWUFBWSxDQUFDO1FBQ3pDLE1BQU1LLFVBQVVKLGFBQ2JDLGFBQWEsT0FDWkEsVUFBVUksaUJBQWlCLENBQUNILFVBQVUsQ0FBQyxFQUFFLEVBQUVJLGNBQWNDLFFBQVEsV0FDakVMLFlBQVksUUFBUUEsU0FBU00sTUFBTSxHQUFHLElBQ3JDL0IsZUFBZWdDLEtBQUssQ0FBQ1AsVUFBVTtZQUMvQlEsU0FDQ2hCLGlCQUFpQmlCLFVBQVUsQ0FBQ1osYUFBYXZCLEtBQUtvQyxPQUFPLENBQUNWLFFBQVEsQ0FBQyxFQUFFLENBQUNXLE9BQU87WUFDMUVDLGVBQWVYLGlCQUFpQlk7UUFDakMsS0FDQ0MsWUFDRkE7UUFDSCxNQUFNQyxvQkFDTGpCLGNBQWNJLFdBQVcsT0FDckJELGlCQUFpQlksUUFDbEJDO1FBQ0osTUFBTUQsUUFBUXJCLGlCQUFpQndCLGFBQWEsQ0FBQ2QsU0FBU1csU0FBU0U7UUFDL0QsTUFBTVAsVUFDTE4sU0FBU00sV0FDVGhCLGlCQUFpQmlCLFVBQVUsQ0FBQ1osYUFDM0JFLENBQUFBLGFBQWEsT0FBT3pCLEtBQUtvQyxPQUFPLENBQUNYLFVBQVVZLE9BQU8sSUFBSUcsU0FBUSxLQUM5REQsQ0FBQUEsU0FBUyxPQUFPdkMsS0FBS29DLE9BQU8sQ0FBQyxPQUFPSSxTQUFRO1FBRTlDLE1BQU1HLFVBQW1CO1lBQ3hCckMsS0FBSztnQkFDSjRCO2dCQUNBSztZQUNEO1lBQ0F4QixRQUFRO2dCQUNQNkIsTUFBTXhCO1lBQ1A7UUFDRDtRQUVBLE9BQU9qQixNQUFNMEMsV0FBVyxDQUN2QjtZQUFFQyxhQUFhO1FBQU0sR0FDckJ6QyxnQkFDQXNDLFNBQ0FyQixjQUFjLENBQUM7SUFFakI7SUFFQSw2REFBNkQsR0FDN0QsQUFBT3lCLGlCQUFpQkMsSUFBWSxFQUFFQyxVQUFtQixFQUFXO1FBQ25FLE1BQU1DLFNBQVM7WUFBRSxHQUFHRCxVQUFVO1lBQUVFLFVBQVVILEtBQUtJLFFBQVE7UUFBQztRQUN4RCxJQUFJLENBQUNDLFFBQVEsQ0FBQ0g7UUFDZCxPQUFPQTtJQUNSO0lBRUEsT0FBZVIsY0FDZEgsS0FBMkMsRUFDSjtRQUN2QyxJQUFJQSxTQUFTLFFBQVFlLE9BQU9DLElBQUksQ0FBQ2hCLE9BQU9QLE1BQU0sS0FBSyxHQUFHLE9BQU9RO1FBQzdELE9BQU9EO0lBQ1I7SUFFQTs7Ozs7OztFQU9DLEdBQ0QsQUFBT2MsU0FBU1YsT0FBZ0IsRUFBUTtRQUN2QyxNQUFNVCxVQUFVUyxRQUFRckMsR0FBRyxFQUFFNEI7UUFDN0IsSUFBSUEsV0FBVyxRQUFRLENBQUNsQyxLQUFLd0QsVUFBVSxDQUFDdEIsVUFBVTtZQUNqRCxNQUFNLElBQUk5QixXQUNULENBQUMsaUZBQWlGLEVBQUU4QixRQUFRLG9DQUFvQyxDQUFDO1FBRW5JO0lBQ0Q7SUFFQSxpRkFBaUYsR0FDakYsT0FBZUMsV0FBV1osUUFBOEIsRUFBc0I7UUFDN0UsTUFBTVcsVUFBVVgsVUFBVUksaUJBQWlCTztRQUMzQyxJQUFJQSxXQUFXLE1BQU0sT0FBT007UUFDNUIsT0FBT3hDLEtBQUtvQyxPQUFPLENBQUNGO0lBQ3JCO0FBQ0QifQ==
|