@antelopejs/core 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -9
- package/dist/core/build/build-artifact.js +2 -2
- package/dist/core/build/build-artifact.js.map +1 -1
- package/dist/core/cli/cli-ui.d.ts +6 -1
- package/dist/core/cli/cli-ui.js +9 -1
- package/dist/core/cli/cli-ui.js.map +1 -1
- package/dist/core/cli/command-runner.d.ts +15 -0
- package/dist/core/cli/command-runner.js +29 -0
- package/dist/core/cli/command-runner.js.map +1 -0
- package/dist/core/cli/commands/config/get.js +1 -1
- package/dist/core/cli/commands/config/get.js.map +1 -1
- package/dist/core/cli/commands/config/index.js +1 -1
- package/dist/core/cli/commands/config/index.js.map +1 -1
- package/dist/core/cli/commands/config/reset.js.map +1 -1
- package/dist/core/cli/commands/config/set.js.map +1 -1
- package/dist/core/cli/commands/config/show.js +1 -1
- package/dist/core/cli/commands/config/show.js.map +1 -1
- package/dist/core/cli/commands/module/index.js.map +1 -1
- package/dist/core/cli/commands/module/init.js +6 -6
- package/dist/core/cli/commands/module/init.js.map +1 -1
- package/dist/core/cli/commands/module/test.js +2 -2
- package/dist/core/cli/commands/module/test.js.map +1 -1
- package/dist/core/cli/commands/plugins.d.ts +2 -0
- package/dist/core/cli/commands/plugins.js +30 -0
- package/dist/core/cli/commands/plugins.js.map +1 -0
- package/dist/core/cli/commands/project/build.js +2 -2
- package/dist/core/cli/commands/project/build.js.map +1 -1
- package/dist/core/cli/commands/project/dev.d.ts +1 -11
- package/dist/core/cli/commands/project/dev.js +6 -8
- package/dist/core/cli/commands/project/dev.js.map +1 -1
- package/dist/core/cli/commands/project/index.js +4 -4
- package/dist/core/cli/commands/project/index.js.map +1 -1
- package/dist/core/cli/commands/project/init.js +5 -5
- package/dist/core/cli/commands/project/init.js.map +1 -1
- package/dist/core/cli/commands/project/logging/index.js.map +1 -1
- package/dist/core/cli/commands/project/logging/set.js +2 -2
- package/dist/core/cli/commands/project/logging/set.js.map +1 -1
- package/dist/core/cli/commands/project/logging/show.js +3 -3
- package/dist/core/cli/commands/project/logging/show.js.map +1 -1
- package/dist/core/cli/commands/project/modules/add.d.ts +1 -1
- package/dist/core/cli/commands/project/modules/add.js +10 -10
- package/dist/core/cli/commands/project/modules/add.js.map +1 -1
- package/dist/core/cli/commands/project/modules/index.js +1 -1
- package/dist/core/cli/commands/project/modules/index.js.map +1 -1
- package/dist/core/cli/commands/project/modules/install.d.ts +1 -1
- package/dist/core/cli/commands/project/modules/install.js +13 -13
- package/dist/core/cli/commands/project/modules/install.js.map +1 -1
- package/dist/core/cli/commands/project/modules/list.js +1 -1
- package/dist/core/cli/commands/project/modules/list.js.map +1 -1
- package/dist/core/cli/commands/project/modules/remove.js.map +1 -1
- package/dist/core/cli/commands/project/modules/update.js +2 -2
- package/dist/core/cli/commands/project/modules/update.js.map +1 -1
- package/dist/core/cli/commands/project/start.js +2 -2
- package/dist/core/cli/commands/project/start.js.map +1 -1
- package/dist/core/cli/commands/shared/project-command.js.map +1 -1
- package/dist/core/cli/commands/update.d.ts +2 -0
- package/dist/core/cli/commands/update.js +17 -0
- package/dist/core/cli/commands/update.js.map +1 -0
- package/dist/core/cli/common.d.ts +1 -2
- package/dist/core/cli/common.js +7 -11
- package/dist/core/cli/common.js.map +1 -1
- package/dist/core/cli/core-version.d.ts +2 -0
- package/dist/core/cli/core-version.js +19 -0
- package/dist/core/cli/core-version.js.map +1 -0
- package/dist/core/cli/executable-lookup.d.ts +9 -0
- package/dist/core/cli/executable-lookup.js +43 -0
- package/dist/core/cli/executable-lookup.js.map +1 -0
- package/dist/core/cli/exit-codes.d.ts +3 -0
- package/dist/core/cli/exit-codes.js +7 -0
- package/dist/core/cli/exit-codes.js.map +1 -0
- package/dist/core/cli/full-cli.d.ts +1 -0
- package/dist/core/cli/full-cli.js +26 -8
- package/dist/core/cli/full-cli.js.map +1 -1
- package/dist/core/cli/git-operations.js +4 -4
- package/dist/core/cli/git-operations.js.map +1 -1
- package/dist/core/cli/global-package-manager.d.ts +26 -0
- package/dist/core/cli/global-package-manager.js +105 -0
- package/dist/core/cli/global-package-manager.js.map +1 -0
- package/dist/core/cli/index.js +25 -0
- package/dist/core/cli/index.js.map +1 -1
- package/dist/core/cli/logging-utils.js +0 -2
- package/dist/core/cli/logging-utils.js.map +1 -1
- package/dist/core/cli/package-manager-name.d.ts +5 -0
- package/dist/core/cli/package-manager-name.js +14 -0
- package/dist/core/cli/package-manager-name.js.map +1 -0
- package/dist/core/cli/package-manager.js +8 -9
- package/dist/core/cli/package-manager.js.map +1 -1
- package/dist/core/cli/plugin-compatibility.d.ts +21 -0
- package/dist/core/cli/plugin-compatibility.js +58 -0
- package/dist/core/cli/plugin-compatibility.js.map +1 -0
- package/dist/core/cli/plugin-management.d.ts +23 -0
- package/dist/core/cli/plugin-management.js +91 -0
- package/dist/core/cli/plugin-management.js.map +1 -0
- package/dist/core/cli/plugin-package.d.ts +17 -0
- package/dist/core/cli/plugin-package.js +57 -0
- package/dist/core/cli/plugin-package.js.map +1 -0
- package/dist/core/cli/plugin-registry.d.ts +15 -0
- package/dist/core/cli/plugin-registry.js +35 -0
- package/dist/core/cli/plugin-registry.js.map +1 -0
- package/dist/core/cli/plugin.d.ts +26 -0
- package/dist/core/cli/plugin.js +140 -0
- package/dist/core/cli/plugin.js.map +1 -0
- package/dist/core/cli/process-runner.d.ts +27 -0
- package/dist/core/cli/process-runner.js +53 -0
- package/dist/core/cli/process-runner.js.map +1 -0
- package/dist/core/cli/production-start.js.map +1 -1
- package/dist/core/cli/version-check.d.ts +2 -1
- package/dist/core/cli/version-check.js +7 -3
- package/dist/core/cli/version-check.js.map +1 -1
- package/dist/core/config/config-loader.js +1 -1
- package/dist/core/config/config-loader.js.map +1 -1
- package/dist/core/config/config-parser.js.map +1 -1
- package/dist/core/config/config-paths.js.map +1 -1
- package/dist/core/diagnostics.d.ts +16 -0
- package/dist/core/diagnostics.js +21 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/downloaders/git.js +2 -2
- package/dist/core/downloaders/git.js.map +1 -1
- package/dist/core/downloaders/local-folder.d.ts +1 -1
- package/dist/core/downloaders/local-folder.js.map +1 -1
- package/dist/core/downloaders/local.d.ts +1 -1
- package/dist/core/downloaders/local.js.map +1 -1
- package/dist/core/downloaders/package.d.ts +1 -1
- package/dist/core/downloaders/package.js +3 -3
- package/dist/core/downloaders/package.js.map +1 -1
- package/dist/core/downloaders/registry.js.map +1 -1
- package/dist/core/downloaders/utils.d.ts +0 -1
- package/dist/core/downloaders/utils.js +0 -1
- package/dist/core/downloaders/utils.js.map +1 -1
- package/dist/core/embedded/prepare-embedded.d.ts +1 -3
- package/dist/core/embedded/prepare-embedded.js +4 -5
- package/dist/core/embedded/prepare-embedded.js.map +1 -1
- package/dist/core/embedded/runtime.js +3 -3
- package/dist/core/embedded/runtime.js.map +1 -1
- package/dist/core/filesystem.js.map +1 -1
- package/dist/core/module-cache.js +1 -1
- package/dist/core/module-cache.js.map +1 -1
- package/dist/core/module-lifecycle.d.ts +8 -1
- package/dist/core/module-lifecycle.js +30 -9
- package/dist/core/module-lifecycle.js.map +1 -1
- package/dist/core/module-manager.d.ts +4 -4
- package/dist/core/module-manager.js +8 -9
- package/dist/core/module-manager.js.map +1 -1
- package/dist/core/module-manifest.js.map +1 -1
- package/dist/core/module.d.ts +2 -1
- package/dist/core/module.js +8 -3
- package/dist/core/module.js.map +1 -1
- package/dist/core/resolution/package-resolution.d.ts +0 -1
- package/dist/core/resolution/package-resolution.js +2 -3
- package/dist/core/resolution/package-resolution.js.map +1 -1
- package/dist/core/resolution/path-mapper.js +1 -1
- package/dist/core/resolution/path-mapper.js.map +1 -1
- package/dist/core/resolution/resolver-detour.js +1 -1
- package/dist/core/resolution/resolver-detour.js.map +1 -1
- package/dist/core/resolution/resolver.d.ts +1 -1
- package/dist/core/resolution/resolver.js.map +1 -1
- package/dist/core/resolution/stub-interface-runtime.js +2 -2
- package/dist/core/resolution/stub-interface-runtime.js.map +1 -1
- package/dist/core/runtime/build-runtime.d.ts +1 -1
- package/dist/core/runtime/build-runtime.js +1 -1
- package/dist/core/runtime/build-runtime.js.map +1 -1
- package/dist/core/runtime/dev-server-registry.d.ts +2 -2
- package/dist/core/runtime/dev-server-registry.js +0 -1
- package/dist/core/runtime/dev-server-registry.js.map +1 -1
- package/dist/core/runtime/launch-sequence.js +6 -6
- package/dist/core/runtime/launch-sequence.js.map +1 -1
- package/dist/core/runtime/module-loading.d.ts +2 -2
- package/dist/core/runtime/module-loading.js +7 -5
- package/dist/core/runtime/module-loading.js.map +1 -1
- package/dist/core/runtime/project-launch.js +2 -2
- package/dist/core/runtime/project-launch.js.map +1 -1
- package/dist/core/runtime/runtime-bootstrap.d.ts +1 -1
- package/dist/core/runtime/runtime-bootstrap.js +3 -3
- package/dist/core/runtime/runtime-bootstrap.js.map +1 -1
- package/dist/core/runtime/runtime-types.d.ts +6 -6
- package/dist/core/test/test-module.d.ts +2 -2
- package/dist/core/test/test-module.js +14 -8
- package/dist/core/test/test-module.js.map +1 -1
- package/dist/core/test/test-runner.js.map +1 -1
- package/dist/core/version-checker.js +1 -1
- package/dist/core/version-checker.js.map +1 -1
- package/dist/core/watch/file-hasher.js.map +1 -1
- package/dist/core/watch/file-watcher.d.ts +1 -1
- package/dist/core/watch/file-watcher.js +1 -1
- package/dist/core/watch/file-watcher.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/logging/index.d.ts +0 -7
- package/dist/logging/index.js +31 -85
- package/dist/logging/index.js.map +1 -1
- package/dist/utils/lock.js +2 -2
- package/dist/utils/lock.js.map +1 -1
- package/package.json +39 -35
- package/dist/logging/log-filter.d.ts +0 -16
- package/dist/logging/log-filter.js +0 -68
- package/dist/logging/log-filter.js.map +0 -1
- package/dist/logging/log-formatter.d.ts +0 -24
- package/dist/logging/log-formatter.js +0 -76
- package/dist/logging/log-formatter.js.map +0 -1
- package/dist/logging/logger.d.ts +0 -36
- package/dist/logging/logger.js +0 -106
- package/dist/logging/logger.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.js +0 -20
- package/dist/utils/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../src/core/cli/package-manager.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../src/core/cli/package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type OfficialPlugin } from "./plugin-registry";
|
|
2
|
+
import { type PluginPackageLookup } from "./plugin-package";
|
|
3
|
+
interface CompatiblePluginResult {
|
|
4
|
+
status: "compatible";
|
|
5
|
+
}
|
|
6
|
+
interface UnknownPluginPackageResult {
|
|
7
|
+
status: "unknown";
|
|
8
|
+
}
|
|
9
|
+
interface IncompatiblePluginResult {
|
|
10
|
+
status: "incompatible";
|
|
11
|
+
requiredRange: string;
|
|
12
|
+
pluginVersion?: string;
|
|
13
|
+
}
|
|
14
|
+
export type PluginCompatibility = CompatiblePluginResult | UnknownPluginPackageResult | IncompatiblePluginResult;
|
|
15
|
+
export declare function checkPluginCompatibility(executablePath: string, coreVersion: string, plugin: OfficialPlugin, lookup?: PluginPackageLookup): Promise<PluginCompatibility>;
|
|
16
|
+
export interface CompatibilityReport {
|
|
17
|
+
canDelegate: boolean;
|
|
18
|
+
messages: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function reportCompatibility(plugin: OfficialPlugin, coreVersion: string, compatibility: PluginCompatibility): CompatibilityReport;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkPluginCompatibility = checkPluginCompatibility;
|
|
7
|
+
exports.reportCompatibility = reportCompatibility;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const semver_1 = __importDefault(require("semver"));
|
|
10
|
+
const core_version_1 = require("./core-version");
|
|
11
|
+
const plugin_registry_1 = require("./plugin-registry");
|
|
12
|
+
const plugin_package_1 = require("./plugin-package");
|
|
13
|
+
async function checkPluginCompatibility(executablePath, coreVersion, plugin, lookup = {}) {
|
|
14
|
+
const packageJson = await (0, plugin_package_1.resolvePluginPackage)(plugin.package, executablePath, lookup);
|
|
15
|
+
if (!packageJson) {
|
|
16
|
+
return { status: "unknown" };
|
|
17
|
+
}
|
|
18
|
+
const requiredRange = packageJson.peerDependencies?.[core_version_1.CORE_PACKAGE_NAME];
|
|
19
|
+
if (!requiredRange ||
|
|
20
|
+
semver_1.default.satisfies(coreVersion, requiredRange, { includePrerelease: true })) {
|
|
21
|
+
return { status: "compatible" };
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
status: "incompatible",
|
|
25
|
+
requiredRange,
|
|
26
|
+
pluginVersion: packageJson.version,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function formatUnknownPackageMessage(plugin) {
|
|
30
|
+
return `Could not read the package.json of ${plugin.package}; skipping the compatibility check.`;
|
|
31
|
+
}
|
|
32
|
+
function formatIncompatibilityMessages(plugin, coreVersion, compatibility) {
|
|
33
|
+
const pluginVersion = compatibility.pluginVersion
|
|
34
|
+
? `${plugin.package}@${compatibility.pluginVersion}`
|
|
35
|
+
: plugin.package;
|
|
36
|
+
return [
|
|
37
|
+
`The ${(0, plugin_registry_1.officialPluginLabel)(plugin)} plugin is not compatible with this CLI.`,
|
|
38
|
+
`${pluginVersion} requires ${core_version_1.CORE_PACKAGE_NAME}@${compatibility.requiredRange}, but ${core_version_1.CORE_PACKAGE_NAME}@${coreVersion} is installed.`,
|
|
39
|
+
`Run ${chalk_1.default.cyan("ajs update")} to update both, or ${chalk_1.default.cyan(`ajs update ${plugin.name}`)} to update the plugin only.`,
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
const COMPATIBILITY_REPORTERS = {
|
|
43
|
+
compatible: () => ({ canDelegate: true, messages: [] }),
|
|
44
|
+
unknown: (plugin) => ({
|
|
45
|
+
canDelegate: true,
|
|
46
|
+
messages: [formatUnknownPackageMessage(plugin)],
|
|
47
|
+
}),
|
|
48
|
+
incompatible: (plugin, coreVersion, compatibility) => compatibility.status === "incompatible"
|
|
49
|
+
? {
|
|
50
|
+
canDelegate: false,
|
|
51
|
+
messages: formatIncompatibilityMessages(plugin, coreVersion, compatibility),
|
|
52
|
+
}
|
|
53
|
+
: { canDelegate: true, messages: [] },
|
|
54
|
+
};
|
|
55
|
+
function reportCompatibility(plugin, coreVersion, compatibility) {
|
|
56
|
+
return COMPATIBILITY_REPORTERS[compatibility.status](plugin, coreVersion, compatibility);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=plugin-compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-compatibility.js","sourceRoot":"","sources":["../../../src/core/cli/plugin-compatibility.ts"],"names":[],"mappings":";;;;;AA6BA,4DA0BC;AAsDD,kDAUC;AAvHD,kDAA0B;AAC1B,oDAA4B;AAE5B,iDAAmD;AACnD,uDAA6E;AAC7E,qDAG0B;AAqBnB,KAAK,UAAU,wBAAwB,CAC5C,cAAsB,EACtB,WAAmB,EACnB,MAAsB,EACtB,SAA8B,EAAE;IAEhC,MAAM,WAAW,GAAG,MAAM,IAAA,qCAAoB,EAC5C,MAAM,CAAC,OAAO,EACd,cAAc,EACd,MAAM,CACP,CAAC;IACF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IACD,MAAM,aAAa,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,gCAAiB,CAAC,CAAC;IACxE,IACE,CAAC,aAAa;QACd,gBAAM,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,EACzE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAClC,CAAC;IACD,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,aAAa;QACb,aAAa,EAAE,WAAW,CAAC,OAAO;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAsB;IACzD,OAAO,sCAAsC,MAAM,CAAC,OAAO,qCAAqC,CAAC;AACnG,CAAC;AAED,SAAS,6BAA6B,CACpC,MAAsB,EACtB,WAAmB,EACnB,aAAuC;IAEvC,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa;QAC/C,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,aAAa,CAAC,aAAa,EAAE;QACpD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACnB,OAAO;QACL,OAAO,IAAA,qCAAmB,EAAC,MAAM,CAAC,0CAA0C;QAC5E,GAAG,aAAa,aAAa,gCAAiB,IAAI,aAAa,CAAC,aAAa,SAAS,gCAAiB,IAAI,WAAW,gBAAgB;QACtI,OAAO,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,uBAAuB,eAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,6BAA6B;KAC3H,CAAC;AACJ,CAAC;AAaD,MAAM,uBAAuB,GAGzB;IACF,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACvD,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;KAChD,CAAC;IACF,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,CACnD,aAAa,CAAC,MAAM,KAAK,cAAc;QACrC,CAAC,CAAC;YACE,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,6BAA6B,CACrC,MAAM,EACN,WAAW,EACX,aAAa,CACd;SACF;QACH,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;CAC1C,CAAC;AAEF,SAAgB,mBAAmB,CACjC,MAAsB,EACtB,WAAmB,EACnB,aAAkC;IAElC,OAAO,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAClD,MAAM,EACN,WAAW,EACX,aAAa,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type CommandOutput } from "./cli-ui";
|
|
2
|
+
import type { InheritedProcessOptions } from "./process-runner";
|
|
3
|
+
import { type ExecutableLookup } from "./executable-lookup";
|
|
4
|
+
import { type PluginPackageLookup } from "./plugin-package";
|
|
5
|
+
import { type OfficialPlugin } from "./plugin-registry";
|
|
6
|
+
import { type GlobalInstallationDetector } from "./global-package-manager";
|
|
7
|
+
export interface PluginStatus {
|
|
8
|
+
plugin: OfficialPlugin;
|
|
9
|
+
executablePath?: string;
|
|
10
|
+
version?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface PluginStatusDependencies {
|
|
13
|
+
lookupExecutable?: ExecutableLookup;
|
|
14
|
+
packageLookup?: PluginPackageLookup;
|
|
15
|
+
}
|
|
16
|
+
export interface PluginManagementDependencies extends PluginStatusDependencies {
|
|
17
|
+
processOptions?: InheritedProcessOptions;
|
|
18
|
+
detectInstallation?: GlobalInstallationDetector;
|
|
19
|
+
output?: CommandOutput;
|
|
20
|
+
}
|
|
21
|
+
export declare function getPluginStatuses(dependencies?: PluginStatusDependencies): Promise<PluginStatus[]>;
|
|
22
|
+
export declare function formatPluginStatus(status: PluginStatus): string;
|
|
23
|
+
export declare function runUpdate(pluginName: string | undefined, dependencies?: PluginManagementDependencies): Promise<number>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getPluginStatuses = getPluginStatuses;
|
|
7
|
+
exports.formatPluginStatus = formatPluginStatus;
|
|
8
|
+
exports.runUpdate = runUpdate;
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const core_version_1 = require("./core-version");
|
|
11
|
+
const command_runner_1 = require("./command-runner");
|
|
12
|
+
const cli_ui_1 = require("./cli-ui");
|
|
13
|
+
const exit_codes_1 = require("./exit-codes");
|
|
14
|
+
const executable_lookup_1 = require("./executable-lookup");
|
|
15
|
+
const plugin_package_1 = require("./plugin-package");
|
|
16
|
+
const plugin_registry_1 = require("./plugin-registry");
|
|
17
|
+
const global_package_manager_1 = require("./global-package-manager");
|
|
18
|
+
const NOT_GLOBAL_MESSAGES = [
|
|
19
|
+
"ajs is not installed globally; update it in the project instead.",
|
|
20
|
+
`Run your project package manager to update ${core_version_1.CORE_PACKAGE_NAME} in this project.`,
|
|
21
|
+
];
|
|
22
|
+
async function readPluginStatus(plugin, dependencies) {
|
|
23
|
+
const lookupExecutable = dependencies.lookupExecutable ?? executable_lookup_1.findExecutable;
|
|
24
|
+
const executablePath = await lookupExecutable(plugin.bin);
|
|
25
|
+
if (!executablePath) {
|
|
26
|
+
return { plugin };
|
|
27
|
+
}
|
|
28
|
+
const packageJson = await (0, plugin_package_1.resolvePluginPackage)(plugin.package, executablePath, dependencies.packageLookup);
|
|
29
|
+
return { plugin, executablePath, version: packageJson?.version };
|
|
30
|
+
}
|
|
31
|
+
async function getPluginStatuses(dependencies = {}) {
|
|
32
|
+
return Promise.all((0, plugin_registry_1.listOfficialPlugins)().map((plugin) => readPluginStatus(plugin, dependencies)));
|
|
33
|
+
}
|
|
34
|
+
function formatPluginStatus(status) {
|
|
35
|
+
const state = status.executablePath
|
|
36
|
+
? chalk_1.default.green(`installed${status.version ? ` (${status.version})` : ""}`)
|
|
37
|
+
: chalk_1.default.dim("not installed");
|
|
38
|
+
return ` ${chalk_1.default.cyan(status.plugin.name.padEnd(plugin_registry_1.PLUGIN_NAME_COLUMN_WIDTH))} ${status.plugin.package} - ${state}\n ${chalk_1.default.dim(status.plugin.description)}`;
|
|
39
|
+
}
|
|
40
|
+
async function updatePackage(packageName, installation, dependencies) {
|
|
41
|
+
const output = dependencies.output ?? cli_ui_1.consoleOutput;
|
|
42
|
+
const execution = await (0, command_runner_1.runGlobalInstall)({
|
|
43
|
+
packageSpec: (0, global_package_manager_1.getLatestPackageSpec)(packageName),
|
|
44
|
+
packageManager: installation.packageManager,
|
|
45
|
+
output,
|
|
46
|
+
processOptions: dependencies.processOptions,
|
|
47
|
+
});
|
|
48
|
+
if (execution.exitCode !== exit_codes_1.SUCCESS_EXIT_CODE) {
|
|
49
|
+
output.error(`Update failed: ${execution.command}`);
|
|
50
|
+
}
|
|
51
|
+
return execution.exitCode;
|
|
52
|
+
}
|
|
53
|
+
async function resolveUpdateTargets(pluginName, dependencies) {
|
|
54
|
+
if (!pluginName) {
|
|
55
|
+
const statuses = await getPluginStatuses(dependencies);
|
|
56
|
+
return [
|
|
57
|
+
core_version_1.CORE_PACKAGE_NAME,
|
|
58
|
+
...statuses
|
|
59
|
+
.filter((status) => status.executablePath)
|
|
60
|
+
.map((status) => status.plugin.package),
|
|
61
|
+
];
|
|
62
|
+
}
|
|
63
|
+
const plugin = (0, plugin_registry_1.findOfficialPlugin)(pluginName);
|
|
64
|
+
if (plugin) {
|
|
65
|
+
return [plugin.package];
|
|
66
|
+
}
|
|
67
|
+
const output = dependencies.output ?? cli_ui_1.consoleOutput;
|
|
68
|
+
output.error(`Unknown plugin "${pluginName}". Known plugins: ${(0, plugin_registry_1.officialPluginNames)().join(", ")}.`);
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
async function runUpdate(pluginName, dependencies = {}) {
|
|
72
|
+
const output = dependencies.output ?? cli_ui_1.consoleOutput;
|
|
73
|
+
const detectInstallation = dependencies.detectInstallation ?? (() => (0, global_package_manager_1.detectGlobalInstallation)());
|
|
74
|
+
const installation = detectInstallation();
|
|
75
|
+
if (!installation) {
|
|
76
|
+
NOT_GLOBAL_MESSAGES.forEach((message) => output.error(message));
|
|
77
|
+
return exit_codes_1.FAILURE_EXIT_CODE;
|
|
78
|
+
}
|
|
79
|
+
const targets = await resolveUpdateTargets(pluginName, dependencies);
|
|
80
|
+
if (!targets) {
|
|
81
|
+
return exit_codes_1.FAILURE_EXIT_CODE;
|
|
82
|
+
}
|
|
83
|
+
for (const target of targets) {
|
|
84
|
+
const exitCode = await updatePackage(target, installation, dependencies);
|
|
85
|
+
if (exitCode !== exit_codes_1.SUCCESS_EXIT_CODE) {
|
|
86
|
+
return exitCode;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return exit_codes_1.SUCCESS_EXIT_CODE;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=plugin-management.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-management.js","sourceRoot":"","sources":["../../../src/core/cli/plugin-management.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PackageManagerName } from "./package-manager-name";
|
|
2
|
+
import { type GlobalRootResolver } from "./global-package-manager";
|
|
3
|
+
export interface PluginPackageReader {
|
|
4
|
+
realpath(target: string): Promise<string>;
|
|
5
|
+
readFile(target: string): Promise<string>;
|
|
6
|
+
}
|
|
7
|
+
export interface PluginPackage {
|
|
8
|
+
name?: string;
|
|
9
|
+
version?: string;
|
|
10
|
+
peerDependencies?: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export interface PluginPackageLookup {
|
|
13
|
+
reader?: PluginPackageReader;
|
|
14
|
+
packageManager?: PackageManagerName;
|
|
15
|
+
resolveGlobalRoot?: GlobalRootResolver;
|
|
16
|
+
}
|
|
17
|
+
export declare function resolvePluginPackage(packageName: string, executablePath: string, lookup?: PluginPackageLookup): Promise<PluginPackage | undefined>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvePluginPackage = resolvePluginPackage;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
const promises_1 = require("node:fs/promises");
|
|
6
|
+
const global_package_manager_1 = require("./global-package-manager");
|
|
7
|
+
const PACKAGE_JSON = "package.json";
|
|
8
|
+
const MAX_LOOKUP_DEPTH = 12;
|
|
9
|
+
const nodePluginPackageReader = {
|
|
10
|
+
realpath: (target) => (0, promises_1.realpath)(target),
|
|
11
|
+
readFile: (target) => (0, promises_1.readFile)(target, "utf8"),
|
|
12
|
+
};
|
|
13
|
+
async function readPackageJson(directory, reader) {
|
|
14
|
+
try {
|
|
15
|
+
return JSON.parse(await reader.readFile((0, node_path_1.join)(directory, PACKAGE_JSON)));
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function resolveRealPath(target, reader) {
|
|
22
|
+
try {
|
|
23
|
+
return await reader.realpath(target);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return target;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async function readPackageFromBinary(packageName, executablePath, reader) {
|
|
30
|
+
let directory = (0, node_path_1.dirname)(await resolveRealPath(executablePath, reader));
|
|
31
|
+
for (let depth = 0; depth < MAX_LOOKUP_DEPTH; depth += 1) {
|
|
32
|
+
const packageJson = await readPackageJson(directory, reader);
|
|
33
|
+
if (packageJson?.name === packageName) {
|
|
34
|
+
return packageJson;
|
|
35
|
+
}
|
|
36
|
+
const parent = (0, node_path_1.dirname)(directory);
|
|
37
|
+
if (parent === directory) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
directory = parent;
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
async function readPackageFromGlobalRoot(packageName, lookup, reader) {
|
|
45
|
+
const resolveGlobalRoot = lookup.resolveGlobalRoot ?? global_package_manager_1.nodeGlobalRootResolver;
|
|
46
|
+
const globalRoot = await resolveGlobalRoot(lookup.packageManager ?? (0, global_package_manager_1.detectGlobalPackageManager)());
|
|
47
|
+
if (!globalRoot) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
return readPackageJson((0, node_path_1.join)(globalRoot, packageName), reader);
|
|
51
|
+
}
|
|
52
|
+
async function resolvePluginPackage(packageName, executablePath, lookup = {}) {
|
|
53
|
+
const reader = lookup.reader ?? nodePluginPackageReader;
|
|
54
|
+
return ((await readPackageFromBinary(packageName, executablePath, reader)) ??
|
|
55
|
+
(await readPackageFromGlobalRoot(packageName, lookup, reader)));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=plugin-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-package.js","sourceRoot":"","sources":["../../../src/core/cli/plugin-package.ts"],"names":[],"mappings":";;AA6FA,oDAUC;AAvGD,yCAA0C;AAC1C,+CAAsD;AAGtD,qEAIkC;AAElC,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAmB5B,MAAM,uBAAuB,GAAwB;IACnD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,MAAM,EAAE,MAAM,CAAC;CAC/C,CAAC;AAEF,KAAK,UAAU,eAAe,CAC5B,SAAiB,EACjB,MAA2B;IAE3B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,MAAc,EACd,MAA2B;IAE3B,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,WAAmB,EACnB,cAAsB,EACtB,MAA2B;IAE3B,IAAI,SAAS,GAAG,IAAA,mBAAO,EAAC,MAAM,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,WAAW,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACtC,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,WAAmB,EACnB,MAA2B,EAC3B,MAA2B;IAE3B,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,+CAAsB,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACxC,MAAM,CAAC,cAAc,IAAI,IAAA,mDAA0B,GAAE,CACtD,CAAC;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,eAAe,CAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,cAAsB,EACtB,SAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,uBAAuB,CAAC;IACxD,OAAO,CACL,CAAC,MAAM,qBAAqB,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC,MAAM,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAC/D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const PLUGIN_NAME_COLUMN_WIDTH = 10;
|
|
2
|
+
interface OfficialPluginDefinition {
|
|
3
|
+
package: string;
|
|
4
|
+
bin: string;
|
|
5
|
+
description: string;
|
|
6
|
+
}
|
|
7
|
+
export interface OfficialPlugin extends OfficialPluginDefinition {
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function findOfficialPlugin(name: string): OfficialPlugin | undefined;
|
|
11
|
+
export declare function listOfficialPlugins(): OfficialPlugin[];
|
|
12
|
+
export declare function officialPluginLabel(plugin: OfficialPlugin): string;
|
|
13
|
+
export declare function officialPluginNames(): string[];
|
|
14
|
+
export declare function formatOfficialPluginsHelp(): string;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PLUGIN_NAME_COLUMN_WIDTH = void 0;
|
|
4
|
+
exports.findOfficialPlugin = findOfficialPlugin;
|
|
5
|
+
exports.listOfficialPlugins = listOfficialPlugins;
|
|
6
|
+
exports.officialPluginLabel = officialPluginLabel;
|
|
7
|
+
exports.officialPluginNames = officialPluginNames;
|
|
8
|
+
exports.formatOfficialPluginsHelp = formatOfficialPluginsHelp;
|
|
9
|
+
exports.PLUGIN_NAME_COLUMN_WIDTH = 10;
|
|
10
|
+
const OFFICIAL_PLUGIN_DEFINITIONS = {
|
|
11
|
+
dms: {
|
|
12
|
+
package: "@antelopejs/dms-frontend",
|
|
13
|
+
bin: "ajs-dms",
|
|
14
|
+
description: "DMS frontend commands",
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
function findOfficialPlugin(name) {
|
|
18
|
+
const definition = OFFICIAL_PLUGIN_DEFINITIONS[name];
|
|
19
|
+
return definition ? { name, ...definition } : undefined;
|
|
20
|
+
}
|
|
21
|
+
function listOfficialPlugins() {
|
|
22
|
+
return Object.entries(OFFICIAL_PLUGIN_DEFINITIONS).map(([name, definition]) => ({ name, ...definition }));
|
|
23
|
+
}
|
|
24
|
+
function officialPluginLabel(plugin) {
|
|
25
|
+
return plugin.name.toUpperCase();
|
|
26
|
+
}
|
|
27
|
+
function officialPluginNames() {
|
|
28
|
+
return Object.keys(OFFICIAL_PLUGIN_DEFINITIONS);
|
|
29
|
+
}
|
|
30
|
+
function formatOfficialPluginsHelp() {
|
|
31
|
+
return listOfficialPlugins()
|
|
32
|
+
.map((plugin) => ` ${plugin.name.padEnd(exports.PLUGIN_NAME_COLUMN_WIDTH)} ${plugin.description} (${plugin.package})`)
|
|
33
|
+
.join("\n");
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=plugin-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-registry.js","sourceRoot":"","sources":["../../../src/core/cli/plugin-registry.ts"],"names":[],"mappings":";;;AAoBA,gDAGC;AAED,kDAIC;AAED,kDAEC;AAED,kDAEC;AAED,8DAOC;AA9CY,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAY3C,MAAM,2BAA2B,GAA6C;IAC5E,GAAG,EAAE;QACH,OAAO,EAAE,0BAA0B;QACnC,GAAG,EAAE,SAAS;QACd,WAAW,EAAE,uBAAuB;KACrC;CACF,CAAC;AAEF,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,MAAM,UAAU,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,CACpD,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAClD,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAsB;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACnC,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,yBAAyB;IACvC,OAAO,mBAAmB,EAAE;SACzB,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gCAAwB,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,OAAO,GAAG,CAChG;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { PluginPackageLookup } from "./plugin-package";
|
|
2
|
+
import { type CommandOutput } from "./cli-ui";
|
|
3
|
+
import type { InheritedProcessOptions } from "./process-runner";
|
|
4
|
+
import type { PackageManagerName } from "./package-manager-name";
|
|
5
|
+
import { type ExecutableLookup } from "./executable-lookup";
|
|
6
|
+
type PluginInstallPrompt = (message: string) => Promise<boolean>;
|
|
7
|
+
interface DelegatedPluginResult {
|
|
8
|
+
isDelegated: true;
|
|
9
|
+
exitCode: number;
|
|
10
|
+
}
|
|
11
|
+
interface UndelegatedPluginResult {
|
|
12
|
+
isDelegated: false;
|
|
13
|
+
}
|
|
14
|
+
export type PluginDelegationResult = DelegatedPluginResult | UndelegatedPluginResult;
|
|
15
|
+
export interface PluginDelegationDependencies {
|
|
16
|
+
processOptions?: InheritedProcessOptions;
|
|
17
|
+
lookupExecutable?: ExecutableLookup;
|
|
18
|
+
packageLookup?: PluginPackageLookup;
|
|
19
|
+
confirmInstall?: PluginInstallPrompt;
|
|
20
|
+
isInteractive?: () => boolean;
|
|
21
|
+
coreVersion?: string;
|
|
22
|
+
packageManager?: PackageManagerName;
|
|
23
|
+
output?: CommandOutput;
|
|
24
|
+
}
|
|
25
|
+
export declare function delegateToPlugin(args: string[], dependencies?: PluginDelegationDependencies): Promise<PluginDelegationResult>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.delegateToPlugin = delegateToPlugin;
|
|
37
|
+
const core_version_1 = require("./core-version");
|
|
38
|
+
const cli_ui_1 = require("./cli-ui");
|
|
39
|
+
const command_runner_1 = require("./command-runner");
|
|
40
|
+
const exit_codes_1 = require("./exit-codes");
|
|
41
|
+
const executable_lookup_1 = require("./executable-lookup");
|
|
42
|
+
const plugin_compatibility_1 = require("./plugin-compatibility");
|
|
43
|
+
const plugin_registry_1 = require("./plugin-registry");
|
|
44
|
+
const global_package_manager_1 = require("./global-package-manager");
|
|
45
|
+
const PLUGIN_PREFIX = "ajs-";
|
|
46
|
+
const NOT_DELEGATED = { isDelegated: false };
|
|
47
|
+
function pluginBinary(command) {
|
|
48
|
+
return `${PLUGIN_PREFIX}${command}`;
|
|
49
|
+
}
|
|
50
|
+
function isInteractiveTerminal() {
|
|
51
|
+
return Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
52
|
+
}
|
|
53
|
+
async function promptForInstall(message) {
|
|
54
|
+
const inquirer = (await Promise.resolve().then(() => __importStar(require("inquirer")))).default;
|
|
55
|
+
const { confirmed } = await inquirer.prompt([
|
|
56
|
+
{ type: "confirm", name: "confirmed", message, default: true },
|
|
57
|
+
]);
|
|
58
|
+
return confirmed;
|
|
59
|
+
}
|
|
60
|
+
function createContext(dependencies) {
|
|
61
|
+
const packageManager = dependencies.packageManager ?? (0, global_package_manager_1.detectGlobalPackageManager)();
|
|
62
|
+
return {
|
|
63
|
+
processOptions: dependencies.processOptions ?? {},
|
|
64
|
+
lookupExecutable: dependencies.lookupExecutable ?? executable_lookup_1.findExecutable,
|
|
65
|
+
packageLookup: dependencies.packageLookup ?? { packageManager },
|
|
66
|
+
confirmInstall: dependencies.confirmInstall ?? promptForInstall,
|
|
67
|
+
isInteractive: dependencies.isInteractive ?? isInteractiveTerminal,
|
|
68
|
+
coreVersion: dependencies.coreVersion ?? (0, core_version_1.getCoreVersion)(),
|
|
69
|
+
packageManager,
|
|
70
|
+
output: dependencies.output ?? cli_ui_1.consoleOutput,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function delegated(exitCode) {
|
|
74
|
+
return { isDelegated: true, exitCode };
|
|
75
|
+
}
|
|
76
|
+
async function installPlugin(plugin, context) {
|
|
77
|
+
const formatted = (0, global_package_manager_1.formatGlobalCommand)((0, global_package_manager_1.getGlobalInstallCommand)(plugin.package, context.packageManager, context.processOptions.platform));
|
|
78
|
+
const label = (0, plugin_registry_1.officialPluginLabel)(plugin);
|
|
79
|
+
if (!context.isInteractive()) {
|
|
80
|
+
context.output.error(`The ${label} plugin is not installed.`);
|
|
81
|
+
context.output.error(`Install it with: ${formatted}`);
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
const confirmed = await context.confirmInstall(`The ${label} plugin is not installed. Install ${plugin.package} globally now?`);
|
|
85
|
+
if (!confirmed) {
|
|
86
|
+
context.output.error(`Install it with: ${formatted}`);
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
const execution = await (0, command_runner_1.runGlobalInstall)({
|
|
90
|
+
packageSpec: plugin.package,
|
|
91
|
+
packageManager: context.packageManager,
|
|
92
|
+
output: context.output,
|
|
93
|
+
processOptions: context.processOptions,
|
|
94
|
+
});
|
|
95
|
+
if (execution.exitCode !== exit_codes_1.SUCCESS_EXIT_CODE) {
|
|
96
|
+
context.output.error(`Installation failed: ${execution.command}`);
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
async function installAndLocate(plugin, context) {
|
|
102
|
+
if (!(await installPlugin(plugin, context))) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const executable = await context.lookupExecutable(plugin.bin);
|
|
106
|
+
if (!executable) {
|
|
107
|
+
context.output.error(`${plugin.package} was installed but ${plugin.bin} is not available in PATH.`);
|
|
108
|
+
}
|
|
109
|
+
return executable;
|
|
110
|
+
}
|
|
111
|
+
async function isCompatible(executable, plugin, context) {
|
|
112
|
+
const compatibility = await (0, plugin_compatibility_1.checkPluginCompatibility)(executable, context.coreVersion, plugin, context.packageLookup);
|
|
113
|
+
const report = (0, plugin_compatibility_1.reportCompatibility)(plugin, context.coreVersion, compatibility);
|
|
114
|
+
report.messages.forEach((message) => context.output.error(message));
|
|
115
|
+
return report.canDelegate;
|
|
116
|
+
}
|
|
117
|
+
async function runPlugin(executable, args, context) {
|
|
118
|
+
return delegated(await (0, command_runner_1.runCommand)(executable, args.slice(1), context.output, context.processOptions));
|
|
119
|
+
}
|
|
120
|
+
async function delegateToOfficialPlugin(plugin, executable, args, context) {
|
|
121
|
+
const resolved = executable ?? (await installAndLocate(plugin, context));
|
|
122
|
+
if (!resolved || !(await isCompatible(resolved, plugin, context))) {
|
|
123
|
+
return delegated(exit_codes_1.FAILURE_EXIT_CODE);
|
|
124
|
+
}
|
|
125
|
+
return runPlugin(resolved, args, context);
|
|
126
|
+
}
|
|
127
|
+
async function delegateToPlugin(args, dependencies = {}) {
|
|
128
|
+
const command = args[0];
|
|
129
|
+
if (!command || command.startsWith("-")) {
|
|
130
|
+
return NOT_DELEGATED;
|
|
131
|
+
}
|
|
132
|
+
const context = createContext(dependencies);
|
|
133
|
+
const plugin = (0, plugin_registry_1.findOfficialPlugin)(command);
|
|
134
|
+
const executable = await context.lookupExecutable(plugin?.bin ?? pluginBinary(command));
|
|
135
|
+
if (!plugin) {
|
|
136
|
+
return executable ? runPlugin(executable, args, context) : NOT_DELEGATED;
|
|
137
|
+
}
|
|
138
|
+
return delegateToOfficialPlugin(plugin, executable, args, context);
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/core/cli/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare const FORWARDED_SIGNALS: readonly ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
2
|
+
export type ForwardedSignal = (typeof FORWARDED_SIGNALS)[number];
|
|
3
|
+
export type ProcessCloseListener = (code: number | null, signal: string | null) => void;
|
|
4
|
+
export type ProcessErrorListener = (error: Error) => void;
|
|
5
|
+
export interface SpawnedProcess {
|
|
6
|
+
once(event: "error", listener: ProcessErrorListener): unknown;
|
|
7
|
+
once(event: "close", listener: ProcessCloseListener): unknown;
|
|
8
|
+
kill(signal: ForwardedSignal): unknown;
|
|
9
|
+
}
|
|
10
|
+
export interface InheritedSpawnOptions {
|
|
11
|
+
stdio: "inherit";
|
|
12
|
+
shell?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ProcessRunner {
|
|
15
|
+
spawn(executable: string, args: string[], options: InheritedSpawnOptions): SpawnedProcess;
|
|
16
|
+
}
|
|
17
|
+
export interface SignalTarget {
|
|
18
|
+
on(signal: ForwardedSignal, listener: () => void): unknown;
|
|
19
|
+
off(signal: ForwardedSignal, listener: () => void): unknown;
|
|
20
|
+
}
|
|
21
|
+
export interface InheritedProcessOptions {
|
|
22
|
+
processRunner?: ProcessRunner;
|
|
23
|
+
signalTarget?: SignalTarget;
|
|
24
|
+
platform?: NodeJS.Platform;
|
|
25
|
+
}
|
|
26
|
+
export declare function runInheritedProcess(executable: string, args: string[], options?: InheritedProcessOptions): Promise<number>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runInheritedProcess = runInheritedProcess;
|
|
4
|
+
const node_os_1 = require("node:os");
|
|
5
|
+
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
const global_package_manager_1 = require("./global-package-manager");
|
|
7
|
+
const exit_codes_1 = require("./exit-codes");
|
|
8
|
+
const FORWARDED_SIGNALS = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
9
|
+
const SIGNAL_NUMBERS = node_os_1.constants.signals;
|
|
10
|
+
const nodeProcessRunner = { spawn: node_child_process_1.spawn };
|
|
11
|
+
function exitCodeFromSignal(signal) {
|
|
12
|
+
const signalNumber = SIGNAL_NUMBERS[signal];
|
|
13
|
+
return signalNumber
|
|
14
|
+
? exit_codes_1.SIGNAL_EXIT_CODE_OFFSET + signalNumber
|
|
15
|
+
: exit_codes_1.FAILURE_EXIT_CODE;
|
|
16
|
+
}
|
|
17
|
+
function exitCodeFromClose(code, signal) {
|
|
18
|
+
if (code !== null) {
|
|
19
|
+
return code;
|
|
20
|
+
}
|
|
21
|
+
return signal ? exitCodeFromSignal(signal) : exit_codes_1.FAILURE_EXIT_CODE;
|
|
22
|
+
}
|
|
23
|
+
function forwardSignals(child, signalTarget) {
|
|
24
|
+
const forwarders = FORWARDED_SIGNALS.map((signal) => ({
|
|
25
|
+
signal,
|
|
26
|
+
handler: () => child.kill(signal),
|
|
27
|
+
}));
|
|
28
|
+
forwarders.forEach(({ signal, handler }) => signalTarget.on(signal, handler));
|
|
29
|
+
return () => forwarders.forEach(({ signal, handler }) => signalTarget.off(signal, handler));
|
|
30
|
+
}
|
|
31
|
+
function waitForExit(child, signalTarget) {
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
const stopForwarding = forwardSignals(child, signalTarget);
|
|
34
|
+
child.once("error", (error) => {
|
|
35
|
+
stopForwarding();
|
|
36
|
+
reject(error);
|
|
37
|
+
});
|
|
38
|
+
child.once("close", (code, signal) => {
|
|
39
|
+
stopForwarding();
|
|
40
|
+
resolve(exitCodeFromClose(code, signal));
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async function runInheritedProcess(executable, args, options = {}) {
|
|
45
|
+
const processRunner = options.processRunner ?? nodeProcessRunner;
|
|
46
|
+
const spawnOptions = { stdio: "inherit" };
|
|
47
|
+
if ((0, global_package_manager_1.requiresShell)(executable, options.platform ?? process.platform)) {
|
|
48
|
+
spawnOptions.shell = true;
|
|
49
|
+
}
|
|
50
|
+
const child = processRunner.spawn(executable, args, spawnOptions);
|
|
51
|
+
return waitForExit(child, options.signalTarget ?? process);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=process-runner.js.map
|