@antelopejs/core 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/cli/executable-lookup.js +24 -13
- package/dist/core/cli/executable-lookup.js.map +1 -1
- package/dist/core/cli/global-package-manager.d.ts +0 -1
- package/dist/core/cli/global-package-manager.js +13 -21
- package/dist/core/cli/global-package-manager.js.map +1 -1
- package/dist/core/cli/process-runner.d.ts +1 -1
- package/dist/core/cli/process-runner.js +5 -4
- package/dist/core/cli/process-runner.js.map +1 -1
- package/dist/core/cli/windows-command-line.d.ts +7 -0
- package/dist/core/cli/windows-command-line.js +50 -0
- package/dist/core/cli/windows-command-line.js.map +1 -0
- package/package.json +1 -1
|
@@ -10,22 +10,32 @@ const WINDOWS_EXECUTABLE_EXTENSIONS = [".cmd", ".exe", ".bat"];
|
|
|
10
10
|
const NODE_MODULES_BIN = (0, node_path_1.join)("node_modules", ".bin");
|
|
11
11
|
exports.LOCAL_EXECUTABLE_SOURCE = "local";
|
|
12
12
|
exports.PATH_EXECUTABLE_SOURCE = "path";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
function nodeExecutableMode(platform) {
|
|
14
|
+
return platform === package_manager_name_1.WINDOWS_PLATFORM ? promises_1.constants.F_OK : promises_1.constants.X_OK;
|
|
15
|
+
}
|
|
16
|
+
function nodeExecutablePredicate(platform) {
|
|
17
|
+
const mode = nodeExecutableMode(platform);
|
|
18
|
+
return async (target) => {
|
|
19
|
+
try {
|
|
20
|
+
await (0, promises_1.access)(target, mode);
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function hasWindowsExecutableExtension(name) {
|
|
29
|
+
const lowercased = name.toLowerCase();
|
|
30
|
+
return WINDOWS_EXECUTABLE_EXTENSIONS.some((extension) => lowercased.endsWith(extension));
|
|
31
|
+
}
|
|
22
32
|
function executableCandidates(name, platform) {
|
|
23
|
-
if (platform !== package_manager_name_1.WINDOWS_PLATFORM) {
|
|
33
|
+
if (platform !== package_manager_name_1.WINDOWS_PLATFORM || hasWindowsExecutableExtension(name)) {
|
|
24
34
|
return [name];
|
|
25
35
|
}
|
|
26
36
|
return [
|
|
27
|
-
name,
|
|
28
37
|
...WINDOWS_EXECUTABLE_EXTENSIONS.map((extension) => `${name}${extension}`),
|
|
38
|
+
name,
|
|
29
39
|
];
|
|
30
40
|
}
|
|
31
41
|
function searchDirectories(path) {
|
|
@@ -55,9 +65,10 @@ async function findInDirectories(directories, inputs) {
|
|
|
55
65
|
return undefined;
|
|
56
66
|
}
|
|
57
67
|
function lookupInputs(name, options) {
|
|
68
|
+
const platform = options.platform ?? process.platform;
|
|
58
69
|
return {
|
|
59
|
-
isExecutable: options.isExecutable ??
|
|
60
|
-
candidates: executableCandidates(name,
|
|
70
|
+
isExecutable: options.isExecutable ?? nodeExecutablePredicate(platform),
|
|
71
|
+
candidates: executableCandidates(name, platform),
|
|
61
72
|
};
|
|
62
73
|
}
|
|
63
74
|
async function findLocalExecutable(name, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executable-lookup.js","sourceRoot":"","sources":["../../../src/core/cli/executable-lookup.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"executable-lookup.js","sourceRoot":"","sources":["../../../src/core/cli/executable-lookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,6 @@ export interface GlobalInstallationDetection {
|
|
|
14
14
|
resolvePath?: PathResolver;
|
|
15
15
|
platform?: NodeJS.Platform;
|
|
16
16
|
}
|
|
17
|
-
export declare function requiresShell(executable: string, platform?: NodeJS.Platform): boolean;
|
|
18
17
|
export declare function detectGlobalInstallation(detection?: GlobalInstallationDetection): GlobalInstallation | undefined;
|
|
19
18
|
export declare function detectGlobalPackageManager(detection?: GlobalInstallationDetection): PackageManagerName;
|
|
20
19
|
export declare function getGlobalInstallCommand(packageSpec: string, packageManager?: PackageManagerName, platform?: NodeJS.Platform): GlobalCommand;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.nodeGlobalRootResolver = void 0;
|
|
4
|
-
exports.requiresShell = requiresShell;
|
|
5
4
|
exports.detectGlobalInstallation = detectGlobalInstallation;
|
|
6
5
|
exports.detectGlobalPackageManager = detectGlobalPackageManager;
|
|
7
6
|
exports.getGlobalInstallCommand = getGlobalInstallCommand;
|
|
@@ -11,10 +10,10 @@ exports.formatGlobalCommand = formatGlobalCommand;
|
|
|
11
10
|
const node_path_1 = require("node:path");
|
|
12
11
|
const node_fs_1 = require("node:fs");
|
|
13
12
|
const node_child_process_1 = require("node:child_process");
|
|
13
|
+
const windows_command_line_1 = require("./windows-command-line");
|
|
14
14
|
const package_manager_name_1 = require("./package-manager-name");
|
|
15
15
|
const LATEST_TAG = "latest";
|
|
16
16
|
const GLOBAL_ROOT_TIMEOUT_MS = 5000;
|
|
17
|
-
const SHELL_SCRIPT_EXTENSIONS = [".cmd", ".bat"];
|
|
18
17
|
const GLOBAL_INSTALL_ARGS = {
|
|
19
18
|
npm: (packageSpec) => ["install", "-g", packageSpec],
|
|
20
19
|
pnpm: (packageSpec) => ["add", "-g", packageSpec],
|
|
@@ -36,13 +35,6 @@ const GLOBAL_LOCATION_MARKERS = [
|
|
|
36
35
|
{ packageManager: "npm", pattern: /[\\/]lib[\\/]node_modules[\\/]/i },
|
|
37
36
|
{ packageManager: "npm", pattern: /[\\/]npm[\\/]node_modules[\\/]/i },
|
|
38
37
|
];
|
|
39
|
-
function requiresShell(executable, platform = process.platform) {
|
|
40
|
-
if (platform !== package_manager_name_1.WINDOWS_PLATFORM) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
const lowercased = executable.toLowerCase();
|
|
44
|
-
return SHELL_SCRIPT_EXTENSIONS.some((extension) => lowercased.endsWith(extension));
|
|
45
|
-
}
|
|
46
38
|
function resolveBinaryPath(binaryPath, resolvePath) {
|
|
47
39
|
try {
|
|
48
40
|
return resolvePath(binaryPath);
|
|
@@ -86,20 +78,20 @@ function formatGlobalCommand(command) {
|
|
|
86
78
|
}
|
|
87
79
|
const nodeGlobalRootResolver = async (packageManager) => {
|
|
88
80
|
const command = getGlobalRootCommand(packageManager);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
? (0, node_path_1.join)(output, ...GLOBAL_ROOT_SEGMENTS[packageManager])
|
|
98
|
-
: undefined;
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
81
|
+
const invocation = (0, windows_command_line_1.buildProcessInvocation)(command.executable, command.args);
|
|
82
|
+
const result = (0, node_child_process_1.spawnSync)(invocation.executable, invocation.args, {
|
|
83
|
+
encoding: "utf8",
|
|
84
|
+
timeout: GLOBAL_ROOT_TIMEOUT_MS,
|
|
85
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
86
|
+
windowsVerbatimArguments: invocation.windowsVerbatimArguments,
|
|
87
|
+
});
|
|
88
|
+
if (result.error || result.status !== 0) {
|
|
101
89
|
return undefined;
|
|
102
90
|
}
|
|
91
|
+
const output = result.stdout.trim();
|
|
92
|
+
return output
|
|
93
|
+
? (0, node_path_1.join)(output, ...GLOBAL_ROOT_SEGMENTS[packageManager])
|
|
94
|
+
: undefined;
|
|
103
95
|
};
|
|
104
96
|
exports.nodeGlobalRootResolver = nodeGlobalRootResolver;
|
|
105
97
|
//# sourceMappingURL=global-package-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-package-manager.js","sourceRoot":"","sources":["../../../src/core/cli/global-package-manager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"global-package-manager.js","sourceRoot":"","sources":["../../../src/core/cli/global-package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export interface SpawnedProcess {
|
|
|
9
9
|
}
|
|
10
10
|
export interface InheritedSpawnOptions {
|
|
11
11
|
stdio: "inherit";
|
|
12
|
-
|
|
12
|
+
windowsVerbatimArguments?: boolean;
|
|
13
13
|
}
|
|
14
14
|
export interface ProcessRunner {
|
|
15
15
|
spawn(executable: string, args: string[], options: InheritedSpawnOptions): SpawnedProcess;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.runInheritedProcess = runInheritedProcess;
|
|
4
4
|
const node_os_1 = require("node:os");
|
|
5
5
|
const node_child_process_1 = require("node:child_process");
|
|
6
|
-
const
|
|
6
|
+
const windows_command_line_1 = require("./windows-command-line");
|
|
7
7
|
const exit_codes_1 = require("./exit-codes");
|
|
8
8
|
const FORWARDED_SIGNALS = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
9
9
|
const SIGNAL_NUMBERS = node_os_1.constants.signals;
|
|
@@ -43,11 +43,12 @@ function waitForExit(child, signalTarget) {
|
|
|
43
43
|
}
|
|
44
44
|
async function runInheritedProcess(executable, args, options = {}) {
|
|
45
45
|
const processRunner = options.processRunner ?? nodeProcessRunner;
|
|
46
|
+
const invocation = (0, windows_command_line_1.buildProcessInvocation)(executable, args, options.platform ?? process.platform);
|
|
46
47
|
const spawnOptions = { stdio: "inherit" };
|
|
47
|
-
if (
|
|
48
|
-
spawnOptions.
|
|
48
|
+
if (invocation.windowsVerbatimArguments) {
|
|
49
|
+
spawnOptions.windowsVerbatimArguments = true;
|
|
49
50
|
}
|
|
50
|
-
const child = processRunner.spawn(executable, args, spawnOptions);
|
|
51
|
+
const child = processRunner.spawn(invocation.executable, invocation.args, spawnOptions);
|
|
51
52
|
return waitForExit(child, options.signalTarget ?? process);
|
|
52
53
|
}
|
|
53
54
|
//# sourceMappingURL=process-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-runner.js","sourceRoot":"","sources":["../../../src/core/cli/process-runner.ts"],"names":[],"mappings":";;AAqGA,
|
|
1
|
+
{"version":3,"file":"process-runner.js","sourceRoot":"","sources":["../../../src/core/cli/process-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ProcessInvocation {
|
|
2
|
+
executable: string;
|
|
3
|
+
args: string[];
|
|
4
|
+
windowsVerbatimArguments?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function requiresShell(executable: string, platform?: NodeJS.Platform): boolean;
|
|
7
|
+
export declare function buildProcessInvocation(executable: string, args: string[], platform?: NodeJS.Platform): ProcessInvocation;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requiresShell = requiresShell;
|
|
4
|
+
exports.buildProcessInvocation = buildProcessInvocation;
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const package_manager_name_1 = require("./package-manager-name");
|
|
7
|
+
const SHELL_SCRIPT_EXTENSIONS = [".cmd", ".bat"];
|
|
8
|
+
const DEFAULT_COMMAND_SHELL = "cmd.exe";
|
|
9
|
+
const COMMAND_SHELL_SWITCHES = ["/d", "/s", "/c"];
|
|
10
|
+
const META_CHARACTERS = /([()\][%!^"`<>&|;, *?])/g;
|
|
11
|
+
const META_ESCAPE = "^$1";
|
|
12
|
+
const BACKSLASHES_BEFORE_QUOTE = /(\\*)"/g;
|
|
13
|
+
const TRAILING_BACKSLASHES = /(\\*)$/;
|
|
14
|
+
const NODE_MODULES_SHIM = /node_modules[\\/]\.bin[\\/][^\\/]+\.cmd$/i;
|
|
15
|
+
function requiresShell(executable, platform = process.platform) {
|
|
16
|
+
if (platform !== package_manager_name_1.WINDOWS_PLATFORM) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const lowercased = executable.toLowerCase();
|
|
20
|
+
return SHELL_SCRIPT_EXTENSIONS.some((extension) => lowercased.endsWith(extension));
|
|
21
|
+
}
|
|
22
|
+
function escapeCommand(command) {
|
|
23
|
+
return node_path_1.win32.normalize(command).replace(META_CHARACTERS, META_ESCAPE);
|
|
24
|
+
}
|
|
25
|
+
function escapeArgument(argument, doubleEscape) {
|
|
26
|
+
const quoted = `"${argument
|
|
27
|
+
.replace(BACKSLASHES_BEFORE_QUOTE, '$1$1\\"')
|
|
28
|
+
.replace(TRAILING_BACKSLASHES, "$1$1")}"`;
|
|
29
|
+
const escaped = quoted.replace(META_CHARACTERS, META_ESCAPE);
|
|
30
|
+
return doubleEscape ? escaped.replace(META_CHARACTERS, META_ESCAPE) : escaped;
|
|
31
|
+
}
|
|
32
|
+
function commandShell() {
|
|
33
|
+
return process.env.ComSpec || DEFAULT_COMMAND_SHELL;
|
|
34
|
+
}
|
|
35
|
+
function buildProcessInvocation(executable, args, platform = process.platform) {
|
|
36
|
+
if (!requiresShell(executable, platform)) {
|
|
37
|
+
return { executable, args };
|
|
38
|
+
}
|
|
39
|
+
const doubleEscape = NODE_MODULES_SHIM.test(executable);
|
|
40
|
+
const command = [
|
|
41
|
+
escapeCommand(executable),
|
|
42
|
+
...args.map((argument) => escapeArgument(argument, doubleEscape)),
|
|
43
|
+
].join(" ");
|
|
44
|
+
return {
|
|
45
|
+
executable: commandShell(),
|
|
46
|
+
args: [...COMMAND_SHELL_SWITCHES, `"${command}"`],
|
|
47
|
+
windowsVerbatimArguments: true,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=windows-command-line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windows-command-line.js","sourceRoot":"","sources":["../../../src/core/cli/windows-command-line.ts"],"names":[],"mappings":";;AAuBA,sCAWC;AAkCD,wDAkBC;AAtFD,yCAAkC;AAElC,iEAA0D;AAE1D,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACjD,MAAM,qBAAqB,GAAG,SAAS,CAAC;AACxC,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClD,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAC3C,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AACtC,MAAM,iBAAiB,GAAG,2CAA2C,CAAC;AAYtE,SAAgB,aAAa,CAC3B,UAAkB,EAClB,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,QAAQ,KAAK,uCAAgB,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAChD,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,iBAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,YAAqB;IAC7D,MAAM,MAAM,GAAG,IAAI,QAAQ;SACxB,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC;SAC5C,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC7D,OAAO,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAChF,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC;AACtD,CAAC;AAkBD,SAAgB,sBAAsB,CACpC,UAAkB,EAClB,IAAc,EACd,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG;QACd,aAAa,CAAC,UAAU,CAAC;QACzB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;KAClE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO;QACL,UAAU,EAAE,YAAY,EAAE;QAC1B,IAAI,EAAE,CAAC,GAAG,sBAAsB,EAAE,IAAI,OAAO,GAAG,CAAC;QACjD,wBAAwB,EAAE,IAAI;KAC/B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antelopejs/core",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "TypeScript framework extending hexagonal architecture across your application and its ecosystem through explicit contracts and replaceable modules.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"antelopejs",
|