sh-ast 0.7.0 → 0.9.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 +101 -4
- package/dist/analyze/index.d.ts +2 -2
- package/dist/analyze/index.d.ts.map +1 -1
- package/dist/analyze/index.js +1 -1
- package/dist/analyze/index.js.map +1 -1
- package/dist/analyze/resolve-argv0.d.ts +221 -16
- package/dist/analyze/resolve-argv0.d.ts.map +1 -1
- package/dist/analyze/resolve-argv0.js +369 -8
- package/dist/analyze/resolve-argv0.js.map +1 -1
- package/dist/analyze.d.ts +223 -16
- package/dist/errors.d.ts +14 -27
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +15 -28
- package/dist/errors.js.map +1 -1
- package/dist/sh-ast.d.ts +18 -30
- package/dist/syntax-snapshot.d.ts.map +1 -1
- package/dist/syntax-snapshot.js +18 -3
- package/dist/syntax-snapshot.js.map +1 -1
- package/dist/syntax-wire.d.ts +12 -0
- package/dist/syntax-wire.d.ts.map +1 -1
- package/dist/syntax-wire.js +99 -15
- package/dist/syntax-wire.js.map +1 -1
- package/dist/syntax.d.ts +3 -2
- package/dist/syntax.d.ts.map +1 -1
- package/dist/syntax.js +42 -13
- package/dist/syntax.js.map +1 -1
- package/dist/wasm-instance.d.ts +8 -0
- package/dist/wasm-instance.d.ts.map +1 -1
- package/dist/wasm-instance.js +36 -8
- package/dist/wasm-instance.js.map +1 -1
- package/package.json +1 -1
- package/shim/sh-ast.wasm +0 -0
- package/dist/parse-depth-guard.d.ts +0 -11
- package/dist/parse-depth-guard.d.ts.map +0 -1
- package/dist/parse-depth-guard.js +0 -633
- package/dist/parse-depth-guard.js.map +0 -1
|
@@ -59,11 +59,11 @@ export const DEFAULT_TRANSPARENT_WRAPPERS = deepFreeze([
|
|
|
59
59
|
// the effective command is `command` itself, regardless of what follows
|
|
60
60
|
// (`stopsChainFlags`, not `noArgFlags` — see `WrapperSpec.stopsChainFlags`'s
|
|
61
61
|
// doc comment).
|
|
62
|
-
{ names: ['command'], noArgFlags: ['-p'], stopsChainFlags: ['-v', '-V'] },
|
|
62
|
+
{ names: ['command'], shellBuiltin: true, noArgFlags: ['-p'], stopsChainFlags: ['-v', '-V'] },
|
|
63
63
|
// `exec [-cl] [-a name] [command [arguments]]` — Bash Reference Manual
|
|
64
64
|
// §4.1. `-c`/`-l` take no operand; `-a name` supplies argv0 for the
|
|
65
65
|
// wrapped command and takes `name` as its operand.
|
|
66
|
-
{ names: ['exec'], noArgFlags: ['-c', '-l'], argFlags: ['-a'] },
|
|
66
|
+
{ names: ['exec'], shellBuiltin: true, noArgFlags: ['-c', '-l'], argFlags: ['-a'] },
|
|
67
67
|
// `env [-i0v] [-u name] [-C dir] [name=value]... [utility
|
|
68
68
|
// [argument...]]` — POSIX `env` (`-i`) plus GNU coreutils env(1)'s
|
|
69
69
|
// commonly documented long/short forms. `VAR=val` operands preceding the
|
|
@@ -162,6 +162,125 @@ export const DEFAULT_TRANSPARENT_WRAPPERS = deepFreeze([
|
|
|
162
162
|
argFlags: ['-g', '-p', '-u'],
|
|
163
163
|
},
|
|
164
164
|
]);
|
|
165
|
+
/**
|
|
166
|
+
* Bash's operand-free single-dash long options from the 5.3.9 and Apple 3.2.57
|
|
167
|
+
* help listings. Their internal letters must not select `-c` or consume an
|
|
168
|
+
* option-name operand. Bash-backed `sh` needs the same spelling recognition.
|
|
169
|
+
*/
|
|
170
|
+
const BASH_SINGLE_DASH_FLAGS = [
|
|
171
|
+
'-debug',
|
|
172
|
+
'-debugger',
|
|
173
|
+
'-dump-po-strings',
|
|
174
|
+
'-dump-strings',
|
|
175
|
+
'-help',
|
|
176
|
+
'-login',
|
|
177
|
+
'-noediting',
|
|
178
|
+
'-noprofile',
|
|
179
|
+
'-norc',
|
|
180
|
+
'-posix',
|
|
181
|
+
'-pretty-print',
|
|
182
|
+
'-protected',
|
|
183
|
+
'-restricted',
|
|
184
|
+
'-verbose',
|
|
185
|
+
'-version',
|
|
186
|
+
'-wordexp',
|
|
187
|
+
];
|
|
188
|
+
/**
|
|
189
|
+
* `sh-ast/analyze`'s default {@link EmbeddedCommandInterpreterSpec} table:
|
|
190
|
+
* the shells whose `-c` option makes {@link resolveArgv0} report
|
|
191
|
+
* `'embedded-command'`. Each entry's option grammar is hand-derived from the
|
|
192
|
+
* cited manual. Basic clusters and required operands were cross-checked on
|
|
193
|
+
* Linux bash 5.2.21, dash 0.5.12, zsh 5.9, ksh93u+m 1.0.8 and mksh R59.
|
|
194
|
+
* Long-option, termination and omitted-operand cases were checked on macOS
|
|
195
|
+
* bash 5.3.9 and 3.2.57 (also `/bin/sh`), Apple dash-16, zsh 5.9 and ksh93u+
|
|
196
|
+
* AJM 2012-08-01. Omitted `-o`/`+o` operands before another signed option
|
|
197
|
+
* were confirmed only on that ksh93u+ build, not ksh93u+m or mksh. Builds can
|
|
198
|
+
* differ: macOS's ksh93u+ differs from the cited 93u+m for `ksh -o c "echo X"`.
|
|
199
|
+
* The `sh` entry also models bash's long options because `sh` can be bash.
|
|
200
|
+
* Named options that change the option grammar itself (such as zsh's
|
|
201
|
+
* `shoptionletters`) are not interpreted; a custom table is needed for that
|
|
202
|
+
* grammar. It is data, not policy:
|
|
203
|
+
* it names no dangerous commands and a caller can replace or extend it via
|
|
204
|
+
* {@link ResolveArgv0Options.embeddedCommandInterpreters}; an empty array
|
|
205
|
+
* restores the behavior in which an interpreter is an ordinary effective
|
|
206
|
+
* command.
|
|
207
|
+
*
|
|
208
|
+
* Frozen, including each entry and its arrays.
|
|
209
|
+
*
|
|
210
|
+
* @see https://www.gnu.org/software/bash/manual/bash.html#Invoking-Bash — bash
|
|
211
|
+
* @see https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html — POSIX `sh`
|
|
212
|
+
* @see https://man7.org/linux/man-pages/man1/dash.1.html — dash(1)
|
|
213
|
+
* @see https://zsh.sourceforge.io/Doc/Release/Invocation-and-Startup.html — zsh
|
|
214
|
+
* @see https://github.com/ksh93/ksh — ksh93u+m `sh(1)`
|
|
215
|
+
* @see https://man.mirbsd.org/mksh.1 — mksh(1)
|
|
216
|
+
* @public
|
|
217
|
+
*/
|
|
218
|
+
export const DEFAULT_EMBEDDED_COMMAND_INTERPRETERS = deepFreeze([
|
|
219
|
+
// bash(1) INVOCATION/OPTIONS: `-o option` and `-O shopt_option` each take
|
|
220
|
+
// the next word, and in a cluster the operands are taken in order from
|
|
221
|
+
// the following words (`-oc errexit 'cmd'` runs `cmd`). `--rcfile` and
|
|
222
|
+
// `--init-file` take a file. `+c` is accepted as `-c`.
|
|
223
|
+
{
|
|
224
|
+
names: ['bash'],
|
|
225
|
+
operandOptions: ['o', 'O'],
|
|
226
|
+
operandAttachment: 'separate-word',
|
|
227
|
+
operandLongOptions: ['--rcfile', '--init-file', '-rcfile', '-init-file'],
|
|
228
|
+
noOperandLongOptions: BASH_SINGLE_DASH_FLAGS,
|
|
229
|
+
plusCSelectsCommand: true,
|
|
230
|
+
},
|
|
231
|
+
// POSIX `sh`: `-o option` is the only portable operand option. `sh` is
|
|
232
|
+
// bash, dash or another shell depending on the system, so this entry
|
|
233
|
+
// models the superset: `-O` and bash's `--rcfile`/`--init-file` take an
|
|
234
|
+
// operand so that a bash-backed `sh -O extglob -c` or `sh --rcfile f -c`
|
|
235
|
+
// is not misread (dash rejects them, and rejecting means nothing runs).
|
|
236
|
+
{
|
|
237
|
+
names: ['sh'],
|
|
238
|
+
operandOptions: ['o', 'O'],
|
|
239
|
+
operandAttachment: 'separate-word',
|
|
240
|
+
operandLongOptions: ['--rcfile', '--init-file', '-rcfile', '-init-file'],
|
|
241
|
+
noOperandLongOptions: BASH_SINGLE_DASH_FLAGS,
|
|
242
|
+
plusCSelectsCommand: true,
|
|
243
|
+
},
|
|
244
|
+
// dash(1): `-o option` takes the next word, even within a cluster.
|
|
245
|
+
{
|
|
246
|
+
names: ['dash'],
|
|
247
|
+
operandOptions: ['o'],
|
|
248
|
+
operandAttachment: 'separate-word',
|
|
249
|
+
plusCSelectsCommand: true,
|
|
250
|
+
},
|
|
251
|
+
// zsh 5.9: `-o option` takes an attached or separate name; --emulate
|
|
252
|
+
// and +-emulate consume a mode. Native -b/+b end options after their
|
|
253
|
+
// cluster; a stacked '-' and the whole words '+' / '+-' also end them.
|
|
254
|
+
{
|
|
255
|
+
names: ['zsh'],
|
|
256
|
+
operandOptions: ['o'],
|
|
257
|
+
operandAttachment: 'rest-of-cluster',
|
|
258
|
+
operandLongOptions: ['--emulate', '+-emulate'],
|
|
259
|
+
optionTerminatorLetters: ['b', '-'],
|
|
260
|
+
optionTerminatorWords: ['+', '+-'],
|
|
261
|
+
plusCSelectsCommand: true,
|
|
262
|
+
},
|
|
263
|
+
// ksh93u+ AJM 2012-08-01: a separate -o/+o name is omitted when the
|
|
264
|
+
// next word starts with either sign. Attached names still consume the
|
|
265
|
+
// rest of the cluster. +c disables command mode rather than selecting a
|
|
266
|
+
// string (Apple 93u+ and Linux 93u+m); clearing a prior -c is unmodeled.
|
|
267
|
+
// Apple -R consumes a cross-reference database path; Linux rejects -R.
|
|
268
|
+
{
|
|
269
|
+
names: ['ksh', 'ksh93'],
|
|
270
|
+
operandOptions: ['o', 'R'],
|
|
271
|
+
operandAttachment: 'rest-of-cluster',
|
|
272
|
+
optionalOperandOptions: ['o'],
|
|
273
|
+
optionTerminatorWords: ['+'],
|
|
274
|
+
plusCSelectsCommand: false,
|
|
275
|
+
},
|
|
276
|
+
// mksh R59: -o names attach to the cluster or consume the next word;
|
|
277
|
+
// +c does not select a command string. No omitted-operand rule is assumed.
|
|
278
|
+
{
|
|
279
|
+
names: ['mksh'],
|
|
280
|
+
operandOptions: ['o'],
|
|
281
|
+
operandAttachment: 'rest-of-cluster',
|
|
282
|
+
},
|
|
283
|
+
]);
|
|
165
284
|
/** `true` iff `text` is shaped like a shell assignment operand (`NAME=...`). */
|
|
166
285
|
function isAssignmentShapedText(text) {
|
|
167
286
|
return /^[A-Za-z_][A-Za-z0-9_]*=/.test(text);
|
|
@@ -249,8 +368,20 @@ function matchShortFlagCluster(text, spec) {
|
|
|
249
368
|
// cluster (e.g. `-iv`).
|
|
250
369
|
return 'one';
|
|
251
370
|
}
|
|
371
|
+
/**
|
|
372
|
+
* The wrapper entry that recognizes `text`: an exact `names` match, else, for
|
|
373
|
+
* an absolute path only, a non-builtin match on its final path segment (see
|
|
374
|
+
* {@link WrapperSpec.names}). Relative paths and shell builtins never use
|
|
375
|
+
* segment matching; the bare-command early exit avoids all path scanning.
|
|
376
|
+
*/
|
|
252
377
|
function findWrapperSpec(wrappers, text) {
|
|
253
|
-
|
|
378
|
+
const exact = wrappers.find((spec) => spec.names.includes(text));
|
|
379
|
+
if (exact !== undefined || !text.startsWith('/'))
|
|
380
|
+
return exact;
|
|
381
|
+
const name = text.slice(text.lastIndexOf('/') + 1);
|
|
382
|
+
if (name === '')
|
|
383
|
+
return undefined;
|
|
384
|
+
return wrappers.find((spec) => spec.shellBuiltin !== true && spec.names.includes(name));
|
|
254
385
|
}
|
|
255
386
|
/**
|
|
256
387
|
* Walks `argv` forward from `startIndex`, skipping every word this `spec`
|
|
@@ -401,11 +532,106 @@ function advancePastWrapperOperands(argv, startIndex, spec) {
|
|
|
401
532
|
}
|
|
402
533
|
return { kind: 'truncated' };
|
|
403
534
|
}
|
|
404
|
-
/**
|
|
535
|
+
/** The interpreter entry whose name matches `text`'s final path segment, if any. */
|
|
536
|
+
function findInterpreterSpec(interpreters, text) {
|
|
537
|
+
const name = text.slice(text.lastIndexOf('/') + 1);
|
|
538
|
+
return interpreters.find((spec) => spec.names.includes(name));
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Scans an interpreter's option words from `startIndex` and returns the index
|
|
542
|
+
* of the word that selects the `-c` command string, or `undefined` when none
|
|
543
|
+
* does or no command-string operand follows it — the options ended first (see {@link EmbeddedCommandInterpreterSpec}),
|
|
544
|
+
* a dynamic word made the grammar undecidable, or the words ran out.
|
|
545
|
+
*
|
|
546
|
+
* Mirrors real shell option parsing, verified against bash, dash, zsh, ksh93
|
|
547
|
+
* and mksh: a cluster is read letter by letter; `c` selects the command
|
|
548
|
+
* string; operand-taking letters consume words or the rest of their cluster.
|
|
549
|
+
* Optional operands and option terminators come from the same table, so a
|
|
550
|
+
* following flag remains visible when an operand is omitted, and a terminating
|
|
551
|
+
* letter affects subsequent words without discarding the rest of its cluster.
|
|
552
|
+
*/
|
|
553
|
+
function findCommandStringOption(argv, startIndex, spec) {
|
|
554
|
+
let index = startIndex;
|
|
555
|
+
// The word that selected `-c`; it only counts once an operand follows.
|
|
556
|
+
let selected;
|
|
557
|
+
while (index < argv.length) {
|
|
558
|
+
const word = argv[index];
|
|
559
|
+
// After a selected -c, assume the ordinary reading that this word is
|
|
560
|
+
// its command string. An expansion can instead produce an option that
|
|
561
|
+
// changes command mode; those unusual spellings are a documented limit.
|
|
562
|
+
// Before selection, a dynamic word leaves the option grammar undecidable.
|
|
563
|
+
if (!word.static)
|
|
564
|
+
return selected;
|
|
565
|
+
const text = word.text;
|
|
566
|
+
// Terminator words end options in the modeled grammar, so only a
|
|
567
|
+
// word after them can be the command string; a lone `+` and any
|
|
568
|
+
// non-option word are the operand itself (a script path before `-c`
|
|
569
|
+
// is selected, the command string after).
|
|
570
|
+
const sign = text[0];
|
|
571
|
+
if (text === '--' || text === '-' || spec.optionTerminatorWords?.includes(text) === true) {
|
|
572
|
+
return selected !== undefined && index + 1 < argv.length ? selected : undefined;
|
|
573
|
+
}
|
|
574
|
+
if (text.length < 2 || (sign !== '-' && sign !== '+'))
|
|
575
|
+
return selected;
|
|
576
|
+
if (spec.operandLongOptions?.includes(text) === true) {
|
|
577
|
+
// Even a quoted expansion such as "$@" can become several arguments.
|
|
578
|
+
// Advancing by one syntactic word would guess where options resume.
|
|
579
|
+
const operand = argv.at(index + 1);
|
|
580
|
+
if (operand?.static !== true)
|
|
581
|
+
return undefined;
|
|
582
|
+
index += 2;
|
|
583
|
+
continue;
|
|
584
|
+
}
|
|
585
|
+
if (spec.noOperandLongOptions?.includes(text) === true ||
|
|
586
|
+
text.startsWith('--') ||
|
|
587
|
+
text.startsWith('+-')) {
|
|
588
|
+
index += 1;
|
|
589
|
+
continue;
|
|
590
|
+
}
|
|
591
|
+
// Separate operands belong to this cluster in encounter order. Keeping
|
|
592
|
+
// their cursor explicit lets optional operands leave a following flag
|
|
593
|
+
// available to the outer scan without hiding later required operands.
|
|
594
|
+
let nextIndex = index + 1;
|
|
595
|
+
let optionsEnded = false;
|
|
596
|
+
for (let i = 1; i < text.length; i += 1) {
|
|
597
|
+
const letter = text[i];
|
|
598
|
+
if (letter === 'c') {
|
|
599
|
+
if ((sign === '-' || spec.plusCSelectsCommand === true) && selected === undefined) {
|
|
600
|
+
selected = index;
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
else if (spec.operandOptions.includes(letter)) {
|
|
604
|
+
if (spec.operandAttachment === 'rest-of-cluster' && i < text.length - 1)
|
|
605
|
+
break;
|
|
606
|
+
const operand = argv.at(nextIndex);
|
|
607
|
+
// Required operands can expand to several fields too; neither their
|
|
608
|
+
// argument count nor an optional operand's boundary can be guessed.
|
|
609
|
+
if (operand?.static !== true)
|
|
610
|
+
return undefined;
|
|
611
|
+
if (spec.optionalOperandOptions?.includes(letter) === true) {
|
|
612
|
+
if (operand.text.startsWith('-') || operand.text.startsWith('+'))
|
|
613
|
+
continue;
|
|
614
|
+
}
|
|
615
|
+
nextIndex += 1;
|
|
616
|
+
}
|
|
617
|
+
else if (spec.optionTerminatorLetters?.includes(letter) === true) {
|
|
618
|
+
optionsEnded = true;
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
if (optionsEnded) {
|
|
622
|
+
return selected !== undefined && nextIndex < argv.length ? selected : undefined;
|
|
623
|
+
}
|
|
624
|
+
index = nextIndex;
|
|
625
|
+
}
|
|
626
|
+
// Ran out of words: a selected `-c` has no command string (every modeled
|
|
627
|
+
// shell rejects it: "option requires an argument") so nothing is embedded.
|
|
628
|
+
return undefined;
|
|
629
|
+
}
|
|
630
|
+
/** `true` iff every slot in a non-empty array holds a non-empty string, including sparse slots. */
|
|
405
631
|
function isNonEmptyStringArray(value) {
|
|
406
632
|
return (Array.isArray(value) &&
|
|
407
633
|
value.length > 0 &&
|
|
408
|
-
value.every((item) => typeof item === 'string' && item.length > 0));
|
|
634
|
+
Array.from(value).every((item) => typeof item === 'string' && item.length > 0));
|
|
409
635
|
}
|
|
410
636
|
/**
|
|
411
637
|
* Validates one injected {@link WrapperSpec} entry's shape, throwing
|
|
@@ -436,6 +662,9 @@ function validateWrapperSpec(spec, index) {
|
|
|
436
662
|
typeof spec.skipAssignmentOperands !== 'boolean') {
|
|
437
663
|
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.skipAssignmentOperands must be a boolean when present`);
|
|
438
664
|
}
|
|
665
|
+
if (spec.shellBuiltin !== undefined && typeof spec.shellBuiltin !== 'boolean') {
|
|
666
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.shellBuiltin must be a boolean when present`);
|
|
667
|
+
}
|
|
439
668
|
// JavaScript callers can bypass the declared union; validate raw boundary data.
|
|
440
669
|
const assignmentOperands = spec.assignmentOperands;
|
|
441
670
|
if (assignmentOperands !== undefined &&
|
|
@@ -454,6 +683,82 @@ function validateWrapperSpec(spec, index) {
|
|
|
454
683
|
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.positionalOperandsBeforeCommand must be a non-negative integer when present`);
|
|
455
684
|
}
|
|
456
685
|
}
|
|
686
|
+
/**
|
|
687
|
+
* Validates one injected {@link EmbeddedCommandInterpreterSpec}, throwing
|
|
688
|
+
* {@link ShAnalyzeInvalidWrapperSpecError} on the first problem — the same
|
|
689
|
+
* boundary rule as {@link validateWrapperSpec}, so a malformed JavaScript
|
|
690
|
+
* caller's table fails loudly instead of as a native `TypeError` mid-scan.
|
|
691
|
+
* Every slot in a grammar array must hold a token; sparse holes are invalid
|
|
692
|
+
* entries, not ignorable padding between names or options.
|
|
693
|
+
*/
|
|
694
|
+
function validateInterpreterSpec(spec, index) {
|
|
695
|
+
const context = `embeddedCommandInterpreters[${String(index)}]`;
|
|
696
|
+
// The declared type cannot constrain JavaScript callers. Validate the raw
|
|
697
|
+
// entry before reading any fields, just as their raw field values are checked.
|
|
698
|
+
const entry = spec;
|
|
699
|
+
if (typeof entry !== 'object' || entry === null) {
|
|
700
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context} must be a non-null object`);
|
|
701
|
+
}
|
|
702
|
+
if (!isNonEmptyStringArray(spec.names)) {
|
|
703
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.names must be a non-empty array of non-empty strings`);
|
|
704
|
+
}
|
|
705
|
+
if (spec.names.some((name) => name.includes('/'))) {
|
|
706
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.names must contain basenames without '/'`);
|
|
707
|
+
}
|
|
708
|
+
if (!Array.isArray(spec.operandOptions) ||
|
|
709
|
+
!Array.from(spec.operandOptions).every((item) => typeof item === 'string' && item.length === 1)) {
|
|
710
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.operandOptions must be an array of single-character strings`);
|
|
711
|
+
}
|
|
712
|
+
if (spec.operandOptions.includes('c')) {
|
|
713
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.operandOptions must not contain the command selector 'c'`);
|
|
714
|
+
}
|
|
715
|
+
// JavaScript callers can bypass the declared union; validate raw boundary data.
|
|
716
|
+
const attachment = spec.operandAttachment;
|
|
717
|
+
if (attachment !== 'separate-word' && attachment !== 'rest-of-cluster') {
|
|
718
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.operandAttachment must be separate-word or rest-of-cluster`);
|
|
719
|
+
}
|
|
720
|
+
const letterFields = ['optionalOperandOptions', 'optionTerminatorLetters'];
|
|
721
|
+
for (const field of letterFields) {
|
|
722
|
+
const value = spec[field];
|
|
723
|
+
if (value !== undefined &&
|
|
724
|
+
!(Array.isArray(value) &&
|
|
725
|
+
Array.from(value).every((item) => typeof item === 'string' && item.length === 1))) {
|
|
726
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.${field} must be an array of single-character strings`);
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
if (spec.optionalOperandOptions?.some((letter) => !spec.operandOptions.includes(letter)) === true) {
|
|
730
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.optionalOperandOptions must be a subset of operandOptions`);
|
|
731
|
+
}
|
|
732
|
+
if (spec.optionTerminatorLetters?.some((letter) => letter === 'c' || spec.operandOptions.includes(letter)) === true) {
|
|
733
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.optionTerminatorLetters must contain only no-operand letters other than 'c'`);
|
|
734
|
+
}
|
|
735
|
+
if (spec.optionTerminatorWords !== undefined &&
|
|
736
|
+
!(Array.isArray(spec.optionTerminatorWords) &&
|
|
737
|
+
Array.from(spec.optionTerminatorWords).every((item) => typeof item === 'string' && item.length > 0))) {
|
|
738
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.optionTerminatorWords must be an array of non-empty strings`);
|
|
739
|
+
}
|
|
740
|
+
// Exact-token fields cannot intercept the selector whose meaning defines
|
|
741
|
+
// this interpreter grammar, just as operandOptions cannot claim letter c.
|
|
742
|
+
if (spec.optionTerminatorWords?.includes('-c') === true) {
|
|
743
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.optionTerminatorWords must not contain the command selector '-c'`);
|
|
744
|
+
}
|
|
745
|
+
// Exact option spellings have the same representation whether or not
|
|
746
|
+
// they consume an operand; validate both before scanning the table.
|
|
747
|
+
for (const field of ['operandLongOptions', 'noOperandLongOptions']) {
|
|
748
|
+
const value = spec[field];
|
|
749
|
+
if (value !== undefined &&
|
|
750
|
+
!(Array.isArray(value) &&
|
|
751
|
+
Array.from(value).every((item) => typeof item === 'string' && item.length > 0))) {
|
|
752
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.${field} must be an array of non-empty strings when present`);
|
|
753
|
+
}
|
|
754
|
+
if (value?.includes('-c') === true) {
|
|
755
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.${field} must not contain the command selector '-c'`);
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
if (spec.plusCSelectsCommand !== undefined && typeof spec.plusCSelectsCommand !== 'boolean') {
|
|
759
|
+
throw new ShAnalyzeInvalidWrapperSpecError(`${context}.plusCSelectsCommand must be a boolean when present`);
|
|
760
|
+
}
|
|
761
|
+
}
|
|
457
762
|
/**
|
|
458
763
|
* Follows `site`'s argv0 through zero or more *transparent wrappers* —
|
|
459
764
|
* commands whose own argv0 isn't the command actually run, because they
|
|
@@ -472,7 +777,7 @@ function validateWrapperSpec(spec, index) {
|
|
|
472
777
|
* command) or add their own (e.g. a project's `with-retry` helper) and
|
|
473
778
|
* both directions are followed identically to any built-in entry.
|
|
474
779
|
*
|
|
475
|
-
* **A statically-unknowable word is never guessed through** —
|
|
780
|
+
* **A statically-unknowable word is never guessed through** — four
|
|
476
781
|
* distinct cases all stop the chain immediately at that word rather than
|
|
477
782
|
* falling back to any other guess:
|
|
478
783
|
*
|
|
@@ -493,6 +798,30 @@ function validateWrapperSpec(spec, index) {
|
|
|
493
798
|
* reports `effective: { static: false, reason: 'embedded-command' }`
|
|
494
799
|
* (see {@link WrapperSpec.unresolvableFlags}'s doc comment).
|
|
495
800
|
*
|
|
801
|
+
* 4. The effective command is a shell interpreter
|
|
802
|
+
* ({@link DEFAULT_EMBEDDED_COMMAND_INTERPRETERS}) invoked with `-c` —
|
|
803
|
+
* `bash -c "$x"`, `sudo sh -ec ls` — and the command that runs is
|
|
804
|
+
* inside the string operand. The result is the same
|
|
805
|
+
* `'embedded-command'` shape `env -S` produces: the interpreter word is
|
|
806
|
+
* `chain.at(-2)` and `chainIndices.at(-1)` is the option word that
|
|
807
|
+
* selected `-c`. `bash script.sh`, `bash -e script.sh`, `bash -- -c`
|
|
808
|
+
* and `bash -o c` are not `-c` invocations and resolve to `bash` as
|
|
809
|
+
* before. A dynamic word in option position (`bash "$f" -c x`,
|
|
810
|
+
* `bash -c"$y" x`) is undecidable, so the interpreter stays a static
|
|
811
|
+
* `bash`: `static: true` then means only that the name is known, not that
|
|
812
|
+
* the command is a plain shell invocation. The `-c` string itself is never
|
|
813
|
+
* parsed.
|
|
814
|
+
*
|
|
815
|
+
* Known limits: the table models common option spellings, not a full
|
|
816
|
+
* emulation of each shell's option parser. Unusual spellings can be
|
|
817
|
+
* misclassified in either direction:
|
|
818
|
+
*
|
|
819
|
+
* - Bash/sh single-dash long options after a short option, e.g. `bash -e -rcfile M`.
|
|
820
|
+
* - `ksh -c +c M`, or a dynamic word after `-c` that expands to an option.
|
|
821
|
+
* - mksh's selector-bearing operands in `mksh -o -c M` and `mksh -o +c M`.
|
|
822
|
+
* - A lone `+` before `-c`, e.g. `bash + -c M`.
|
|
823
|
+
* - Zsh grammar switches, e.g. `zsh -o shoptionletters -b -c M`.
|
|
824
|
+
*
|
|
496
825
|
* `VAR=val` shell-assignment prefixes on the `CallExpr` itself
|
|
497
826
|
* (`CommandSite.node.Assigns`, e.g. `FOO=bar rm x`) are always skipped and
|
|
498
827
|
* counted in {@link Argv0Resolution.assignmentsSkipped} — a mechanism
|
|
@@ -507,7 +836,8 @@ function validateWrapperSpec(spec, index) {
|
|
|
507
836
|
* least one argv word; see its doc comment), not a "malformed shell
|
|
508
837
|
* source" case.
|
|
509
838
|
* @throws {@link ShAnalyzeInvalidWrapperSpecError} if
|
|
510
|
-
* `options.transparentWrappers`
|
|
839
|
+
* `options.transparentWrappers` or `options.embeddedCommandInterpreters`
|
|
840
|
+
* contains a malformed entry (see
|
|
511
841
|
* {@link ResolveArgv0Options.transparentWrappers}'s doc comment).
|
|
512
842
|
* @public
|
|
513
843
|
*/
|
|
@@ -519,6 +849,20 @@ export function resolveArgv0(site, options) {
|
|
|
519
849
|
if (options?.transparentWrappers !== undefined) {
|
|
520
850
|
wrappers.forEach(validateWrapperSpec);
|
|
521
851
|
}
|
|
852
|
+
const interpreters = options?.embeddedCommandInterpreters ?? DEFAULT_EMBEDDED_COMMAND_INTERPRETERS;
|
|
853
|
+
if (options?.embeddedCommandInterpreters !== undefined) {
|
|
854
|
+
// JavaScript callers must supply the same array container promised by
|
|
855
|
+
// the public type; null is invalid rather than an implicit opt-out.
|
|
856
|
+
const table = options.embeddedCommandInterpreters;
|
|
857
|
+
if (!Array.isArray(table)) {
|
|
858
|
+
throw new ShAnalyzeInvalidWrapperSpecError('embeddedCommandInterpreters must be an array');
|
|
859
|
+
}
|
|
860
|
+
// Every declared slot must be valid, including sparse holes that would
|
|
861
|
+
// otherwise bypass validation and later surface as native TypeErrors.
|
|
862
|
+
for (const [index, spec] of interpreters.entries()) {
|
|
863
|
+
validateInterpreterSpec(spec, index);
|
|
864
|
+
}
|
|
865
|
+
}
|
|
522
866
|
const assignmentsSkipped = nodeArray(site.node.Assigns).length;
|
|
523
867
|
const argv = site.argv;
|
|
524
868
|
const chain = [];
|
|
@@ -533,8 +877,25 @@ export function resolveArgv0(site, options) {
|
|
|
533
877
|
if (!word.static)
|
|
534
878
|
break;
|
|
535
879
|
const spec = findWrapperSpec(wrappers, word.text);
|
|
536
|
-
if (spec === undefined)
|
|
880
|
+
if (spec === undefined) {
|
|
881
|
+
// No selector can occur before the first option word. Ordinary
|
|
882
|
+
// commands, scripts and dynamic first operands need no interpreter
|
|
883
|
+
// lookup; this preserves the scanner's existing stop conditions.
|
|
884
|
+
const firstOption = argv.at(index + 1);
|
|
885
|
+
if (firstOption?.static !== true ||
|
|
886
|
+
firstOption.text.length < 2 ||
|
|
887
|
+
(!firstOption.text.startsWith('-') && !firstOption.text.startsWith('+')))
|
|
888
|
+
break;
|
|
889
|
+
const interpreter = findInterpreterSpec(interpreters, word.text);
|
|
890
|
+
const optionIndex = interpreter === undefined
|
|
891
|
+
? undefined
|
|
892
|
+
: findCommandStringOption(argv, index + 1, interpreter);
|
|
893
|
+
if (optionIndex !== undefined) {
|
|
894
|
+
chain.push({ static: false, reason: 'embedded-command' });
|
|
895
|
+
chainIndices.push(optionIndex);
|
|
896
|
+
}
|
|
537
897
|
break;
|
|
898
|
+
}
|
|
538
899
|
const result = advancePastWrapperOperands(argv, index + 1, spec);
|
|
539
900
|
if (result.kind === 'truncated')
|
|
540
901
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-argv0.js","sourceRoot":"","sources":["../../src/analyze/resolve-argv0.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve-argv0.js","sourceRoot":"","sources":["../../src/analyze/resolve-argv0.ts"],"names":[],"mappings":"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"}
|