@moxxy/sdk 0.47.0 → 0.48.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.
|
@@ -42,7 +42,8 @@ export declare function findExecutable(name: string, extraPaths?: ReadonlyArray<
|
|
|
42
42
|
*
|
|
43
43
|
* Native executables and POSIX commands run directly. On Windows, supported
|
|
44
44
|
* Node launchers are mapped to their known JS entrypoints and run through the
|
|
45
|
-
* current Node/Electron runtime
|
|
45
|
+
* current Node/Electron runtime, or to the native executable the launcher's
|
|
46
|
+
* package ships (pnpm 11+). Any other Windows script shim fails closed:
|
|
46
47
|
* parsing an arbitrary .cmd/.bat/.ps1 would recreate the shell-injection
|
|
47
48
|
* boundary this helper exists to remove.
|
|
48
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-invocation.d.ts","sourceRoot":"","sources":["../src/process-invocation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAW5B,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChD,CAAC;AAEN,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,MAAM,GAAG,SAA+B,GAChD,MAAM,EAAE,CAaV;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,aAAa,CAAC,MAAM,CAAM,EACtC,IAAI,GAAE,uBAA4B,GACjC,MAAM,GAAG,IAAI,CAiBf;AAED
|
|
1
|
+
{"version":3,"file":"process-invocation.d.ts","sourceRoot":"","sources":["../src/process-invocation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAW5B,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChD,CAAC;AAEN,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,MAAM,GAAG,SAA+B,GAChD,MAAM,EAAE,CAaV;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,aAAa,CAAC,MAAM,CAAM,EACtC,IAAI,GAAE,uBAA4B,GACjC,MAAM,GAAG,IAAI,CAiBf;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,uBAA4B,GACjC,gBAAgB,GAAG,IAAI,CA6CzB;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,IAAI,GAAE,gBAAqB,GAC1B,YAAY,CAQd;AAED,wFAAwF;AACxF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,IAAI,GAAE,uBAA4B,GACjC,IAAI,CAQN"}
|
|
@@ -54,7 +54,8 @@ export function findExecutable(name, extraPaths = [], opts = {}) {
|
|
|
54
54
|
*
|
|
55
55
|
* Native executables and POSIX commands run directly. On Windows, supported
|
|
56
56
|
* Node launchers are mapped to their known JS entrypoints and run through the
|
|
57
|
-
* current Node/Electron runtime
|
|
57
|
+
* current Node/Electron runtime, or to the native executable the launcher's
|
|
58
|
+
* package ships (pnpm 11+). Any other Windows script shim fails closed:
|
|
58
59
|
* parsing an arbitrary .cmd/.bat/.ps1 would recreate the shell-injection
|
|
59
60
|
* boundary this helper exists to remove.
|
|
60
61
|
*/
|
|
@@ -86,6 +87,9 @@ export function resolveExecutableTarget(name, opts = {}) {
|
|
|
86
87
|
: knownNodeCliEntries(executable, commandName);
|
|
87
88
|
const entry = entries.find(isFile);
|
|
88
89
|
if (!entry) {
|
|
90
|
+
const native = knownNativeCliExecutables(executable, commandName).find(isFile);
|
|
91
|
+
if (native)
|
|
92
|
+
return { kind: 'direct', command: native };
|
|
89
93
|
throw new Error(`Cannot resolve ${commandName} JavaScript entry beside Windows shim "${executable}". ` +
|
|
90
94
|
'Refusing to run the .cmd file through a shell.');
|
|
91
95
|
}
|
|
@@ -148,6 +152,16 @@ function knownNodeCliEntries(shim, command) {
|
|
|
148
152
|
path.join(binDir, '..', '@yarnpkg', 'cli-dist', 'bin', 'yarn.js'),
|
|
149
153
|
];
|
|
150
154
|
}
|
|
155
|
+
/** pnpm 11+ ships a native pnpm.exe that its npm shim runs; no JS entry is left beside it. */
|
|
156
|
+
function knownNativeCliExecutables(shim, command) {
|
|
157
|
+
if (command !== 'pnpm')
|
|
158
|
+
return [];
|
|
159
|
+
const binDir = path.dirname(shim);
|
|
160
|
+
return [
|
|
161
|
+
path.join(binDir, 'node_modules', 'pnpm', 'pnpm.exe'),
|
|
162
|
+
path.join(binDir, '..', 'pnpm', 'pnpm.exe'),
|
|
163
|
+
];
|
|
164
|
+
}
|
|
151
165
|
function isKnownNodeCli(command) {
|
|
152
166
|
return KNOWN_NODE_CLIS.has(command);
|
|
153
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-invocation.js","sourceRoot":"","sources":["../src/process-invocation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"process-invocation.js","sourceRoot":"","sources":["../src/process-invocation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -168,6 +168,32 @@ describe('resolveExecutableTarget', () => {
|
|
|
168
168
|
});
|
|
169
169
|
});
|
|
170
170
|
|
|
171
|
+
it('runs the native pnpm.exe that pnpm 11+ installs beside its global npm shim', () => {
|
|
172
|
+
put('pnpm.cmd', '@echo off');
|
|
173
|
+
const executable = put(path.join('node_modules', 'pnpm', 'pnpm.exe'));
|
|
174
|
+
|
|
175
|
+
expect(
|
|
176
|
+
resolveExecutableTarget('pnpm', {
|
|
177
|
+
platform: 'win32',
|
|
178
|
+
pathEnv: root,
|
|
179
|
+
pathext: '.CMD',
|
|
180
|
+
}),
|
|
181
|
+
).toEqual({ kind: 'direct', command: executable });
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
it('runs the native pnpm.exe of a project-local pnpm 11+ from node_modules/.bin', () => {
|
|
185
|
+
put(path.join('node_modules', '.bin', 'pnpm.cmd'), '@echo off');
|
|
186
|
+
const executable = put(path.join('node_modules', 'pnpm', 'pnpm.exe'));
|
|
187
|
+
|
|
188
|
+
expect(
|
|
189
|
+
resolveExecutableTarget('pnpm', {
|
|
190
|
+
platform: 'win32',
|
|
191
|
+
pathEnv: path.join(root, 'node_modules', '.bin'),
|
|
192
|
+
pathext: '.CMD',
|
|
193
|
+
}),
|
|
194
|
+
).toEqual({ kind: 'direct', command: executable });
|
|
195
|
+
});
|
|
196
|
+
|
|
171
197
|
it('accepts an explicit non-adjacent entrypoint for a known Windows launcher', () => {
|
|
172
198
|
put('pnpm.cmd', '@echo off');
|
|
173
199
|
const entry = put(path.join('tools', 'pnpm', 'bin', 'pnpm.cjs'));
|
|
@@ -101,7 +101,8 @@ export function findExecutable(
|
|
|
101
101
|
*
|
|
102
102
|
* Native executables and POSIX commands run directly. On Windows, supported
|
|
103
103
|
* Node launchers are mapped to their known JS entrypoints and run through the
|
|
104
|
-
* current Node/Electron runtime
|
|
104
|
+
* current Node/Electron runtime, or to the native executable the launcher's
|
|
105
|
+
* package ships (pnpm 11+). Any other Windows script shim fails closed:
|
|
105
106
|
* parsing an arbitrary .cmd/.bat/.ps1 would recreate the shell-injection
|
|
106
107
|
* boundary this helper exists to remove.
|
|
107
108
|
*/
|
|
@@ -138,6 +139,8 @@ export function resolveExecutableTarget(
|
|
|
138
139
|
: knownNodeCliEntries(executable, commandName);
|
|
139
140
|
const entry = entries.find(isFile);
|
|
140
141
|
if (!entry) {
|
|
142
|
+
const native = knownNativeCliExecutables(executable, commandName).find(isFile);
|
|
143
|
+
if (native) return { kind: 'direct', command: native };
|
|
141
144
|
throw new Error(
|
|
142
145
|
`Cannot resolve ${commandName} JavaScript entry beside Windows shim "${executable}". ` +
|
|
143
146
|
'Refusing to run the .cmd file through a shell.',
|
|
@@ -215,6 +218,16 @@ function knownNodeCliEntries(shim: string, command: KnownNodeCli): string[] {
|
|
|
215
218
|
];
|
|
216
219
|
}
|
|
217
220
|
|
|
221
|
+
/** pnpm 11+ ships a native pnpm.exe that its npm shim runs; no JS entry is left beside it. */
|
|
222
|
+
function knownNativeCliExecutables(shim: string, command: KnownNodeCli): string[] {
|
|
223
|
+
if (command !== 'pnpm') return [];
|
|
224
|
+
const binDir = path.dirname(shim);
|
|
225
|
+
return [
|
|
226
|
+
path.join(binDir, 'node_modules', 'pnpm', 'pnpm.exe'),
|
|
227
|
+
path.join(binDir, '..', 'pnpm', 'pnpm.exe'),
|
|
228
|
+
];
|
|
229
|
+
}
|
|
230
|
+
|
|
218
231
|
function isKnownNodeCli(command: string): command is KnownNodeCli {
|
|
219
232
|
return KNOWN_NODE_CLIS.has(command as KnownNodeCli);
|
|
220
233
|
}
|