sh-ast 0.7.0 → 0.8.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.
@@ -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,19 @@ 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 match on its final path segment (see
374
+ * {@link WrapperSpec.names}). A relative path is never matched by segment.
375
+ */
252
376
  function findWrapperSpec(wrappers, text) {
253
- return wrappers.find((spec) => spec.names.includes(text));
377
+ const exact = wrappers.find((spec) => spec.names.includes(text));
378
+ if (exact !== undefined || !text.startsWith('/'))
379
+ return exact;
380
+ const name = text.slice(text.lastIndexOf('/') + 1);
381
+ if (name === '')
382
+ return undefined;
383
+ return wrappers.find((spec) => spec.names.includes(name));
254
384
  }
255
385
  /**
256
386
  * Walks `argv` forward from `startIndex`, skipping every word this `spec`
@@ -401,11 +531,106 @@ function advancePastWrapperOperands(argv, startIndex, spec) {
401
531
  }
402
532
  return { kind: 'truncated' };
403
533
  }
404
- /** `true` iff `value` is a non-empty array of non-empty strings. */
534
+ /** The interpreter entry whose name matches `text`'s final path segment, if any. */
535
+ function findInterpreterSpec(interpreters, text) {
536
+ const name = text.slice(text.lastIndexOf('/') + 1);
537
+ return interpreters.find((spec) => spec.names.includes(name));
538
+ }
539
+ /**
540
+ * Scans an interpreter's option words from `startIndex` and returns the index
541
+ * of the word that selects the `-c` command string, or `undefined` when none
542
+ * does or no command-string operand follows it — the options ended first (see {@link EmbeddedCommandInterpreterSpec}),
543
+ * a dynamic word made the grammar undecidable, or the words ran out.
544
+ *
545
+ * Mirrors real shell option parsing, verified against bash, dash, zsh, ksh93
546
+ * and mksh: a cluster is read letter by letter; `c` selects the command
547
+ * string; operand-taking letters consume words or the rest of their cluster.
548
+ * Optional operands and option terminators come from the same table, so a
549
+ * following flag remains visible when an operand is omitted, and a terminating
550
+ * letter affects subsequent words without discarding the rest of its cluster.
551
+ */
552
+ function findCommandStringOption(argv, startIndex, spec) {
553
+ let index = startIndex;
554
+ // The word that selected `-c`; it only counts once an operand follows.
555
+ let selected;
556
+ while (index < argv.length) {
557
+ const word = argv[index];
558
+ // After a selected -c, assume the ordinary reading that this word is
559
+ // its command string. An expansion can instead produce an option that
560
+ // changes command mode; those unusual spellings are a documented limit.
561
+ // Before selection, a dynamic word leaves the option grammar undecidable.
562
+ if (!word.static)
563
+ return selected;
564
+ const text = word.text;
565
+ // Terminator words end options in the modeled grammar, so only a
566
+ // word after them can be the command string; a lone `+` and any
567
+ // non-option word are the operand itself (a script path before `-c`
568
+ // is selected, the command string after).
569
+ const sign = text[0];
570
+ if (text === '--' || text === '-' || spec.optionTerminatorWords?.includes(text) === true) {
571
+ return selected !== undefined && index + 1 < argv.length ? selected : undefined;
572
+ }
573
+ if (text.length < 2 || (sign !== '-' && sign !== '+'))
574
+ return selected;
575
+ if (spec.operandLongOptions?.includes(text) === true) {
576
+ // Even a quoted expansion such as "$@" can become several arguments.
577
+ // Advancing by one syntactic word would guess where options resume.
578
+ const operand = argv.at(index + 1);
579
+ if (operand?.static !== true)
580
+ return undefined;
581
+ index += 2;
582
+ continue;
583
+ }
584
+ if (spec.noOperandLongOptions?.includes(text) === true ||
585
+ text.startsWith('--') ||
586
+ text.startsWith('+-')) {
587
+ index += 1;
588
+ continue;
589
+ }
590
+ // Separate operands belong to this cluster in encounter order. Keeping
591
+ // their cursor explicit lets optional operands leave a following flag
592
+ // available to the outer scan without hiding later required operands.
593
+ let nextIndex = index + 1;
594
+ let optionsEnded = false;
595
+ for (let i = 1; i < text.length; i += 1) {
596
+ const letter = text[i];
597
+ if (letter === 'c') {
598
+ if ((sign === '-' || spec.plusCSelectsCommand === true) && selected === undefined) {
599
+ selected = index;
600
+ }
601
+ }
602
+ else if (spec.operandOptions.includes(letter)) {
603
+ if (spec.operandAttachment === 'rest-of-cluster' && i < text.length - 1)
604
+ break;
605
+ const operand = argv.at(nextIndex);
606
+ // Required operands can expand to several fields too; neither their
607
+ // argument count nor an optional operand's boundary can be guessed.
608
+ if (operand?.static !== true)
609
+ return undefined;
610
+ if (spec.optionalOperandOptions?.includes(letter) === true) {
611
+ if (operand.text.startsWith('-') || operand.text.startsWith('+'))
612
+ continue;
613
+ }
614
+ nextIndex += 1;
615
+ }
616
+ else if (spec.optionTerminatorLetters?.includes(letter) === true) {
617
+ optionsEnded = true;
618
+ }
619
+ }
620
+ if (optionsEnded) {
621
+ return selected !== undefined && nextIndex < argv.length ? selected : undefined;
622
+ }
623
+ index = nextIndex;
624
+ }
625
+ // Ran out of words: a selected `-c` has no command string (every modeled
626
+ // shell rejects it: "option requires an argument") so nothing is embedded.
627
+ return undefined;
628
+ }
629
+ /** `true` iff every slot in a non-empty array holds a non-empty string, including sparse slots. */
405
630
  function isNonEmptyStringArray(value) {
406
631
  return (Array.isArray(value) &&
407
632
  value.length > 0 &&
408
- value.every((item) => typeof item === 'string' && item.length > 0));
633
+ Array.from(value).every((item) => typeof item === 'string' && item.length > 0));
409
634
  }
410
635
  /**
411
636
  * Validates one injected {@link WrapperSpec} entry's shape, throwing
@@ -454,6 +679,82 @@ function validateWrapperSpec(spec, index) {
454
679
  throw new ShAnalyzeInvalidWrapperSpecError(`${context}.positionalOperandsBeforeCommand must be a non-negative integer when present`);
455
680
  }
456
681
  }
682
+ /**
683
+ * Validates one injected {@link EmbeddedCommandInterpreterSpec}, throwing
684
+ * {@link ShAnalyzeInvalidWrapperSpecError} on the first problem — the same
685
+ * boundary rule as {@link validateWrapperSpec}, so a malformed JavaScript
686
+ * caller's table fails loudly instead of as a native `TypeError` mid-scan.
687
+ * Every slot in a grammar array must hold a token; sparse holes are invalid
688
+ * entries, not ignorable padding between names or options.
689
+ */
690
+ function validateInterpreterSpec(spec, index) {
691
+ const context = `embeddedCommandInterpreters[${String(index)}]`;
692
+ // The declared type cannot constrain JavaScript callers. Validate the raw
693
+ // entry before reading any fields, just as their raw field values are checked.
694
+ const entry = spec;
695
+ if (typeof entry !== 'object' || entry === null) {
696
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context} must be a non-null object`);
697
+ }
698
+ if (!isNonEmptyStringArray(spec.names)) {
699
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.names must be a non-empty array of non-empty strings`);
700
+ }
701
+ if (spec.names.some((name) => name.includes('/'))) {
702
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.names must contain basenames without '/'`);
703
+ }
704
+ if (!Array.isArray(spec.operandOptions) ||
705
+ !Array.from(spec.operandOptions).every((item) => typeof item === 'string' && item.length === 1)) {
706
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.operandOptions must be an array of single-character strings`);
707
+ }
708
+ if (spec.operandOptions.includes('c')) {
709
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.operandOptions must not contain the command selector 'c'`);
710
+ }
711
+ // JavaScript callers can bypass the declared union; validate raw boundary data.
712
+ const attachment = spec.operandAttachment;
713
+ if (attachment !== 'separate-word' && attachment !== 'rest-of-cluster') {
714
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.operandAttachment must be separate-word or rest-of-cluster`);
715
+ }
716
+ const letterFields = ['optionalOperandOptions', 'optionTerminatorLetters'];
717
+ for (const field of letterFields) {
718
+ const value = spec[field];
719
+ if (value !== undefined &&
720
+ !(Array.isArray(value) &&
721
+ Array.from(value).every((item) => typeof item === 'string' && item.length === 1))) {
722
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.${field} must be an array of single-character strings`);
723
+ }
724
+ }
725
+ if (spec.optionalOperandOptions?.some((letter) => !spec.operandOptions.includes(letter)) === true) {
726
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.optionalOperandOptions must be a subset of operandOptions`);
727
+ }
728
+ if (spec.optionTerminatorLetters?.some((letter) => letter === 'c' || spec.operandOptions.includes(letter)) === true) {
729
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.optionTerminatorLetters must contain only no-operand letters other than 'c'`);
730
+ }
731
+ if (spec.optionTerminatorWords !== undefined &&
732
+ !(Array.isArray(spec.optionTerminatorWords) &&
733
+ Array.from(spec.optionTerminatorWords).every((item) => typeof item === 'string' && item.length > 0))) {
734
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.optionTerminatorWords must be an array of non-empty strings`);
735
+ }
736
+ // Exact-token fields cannot intercept the selector whose meaning defines
737
+ // this interpreter grammar, just as operandOptions cannot claim letter c.
738
+ if (spec.optionTerminatorWords?.includes('-c') === true) {
739
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.optionTerminatorWords must not contain the command selector '-c'`);
740
+ }
741
+ // Exact option spellings have the same representation whether or not
742
+ // they consume an operand; validate both before scanning the table.
743
+ for (const field of ['operandLongOptions', 'noOperandLongOptions']) {
744
+ const value = spec[field];
745
+ if (value !== undefined &&
746
+ !(Array.isArray(value) &&
747
+ Array.from(value).every((item) => typeof item === 'string' && item.length > 0))) {
748
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.${field} must be an array of non-empty strings when present`);
749
+ }
750
+ if (value?.includes('-c') === true) {
751
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.${field} must not contain the command selector '-c'`);
752
+ }
753
+ }
754
+ if (spec.plusCSelectsCommand !== undefined && typeof spec.plusCSelectsCommand !== 'boolean') {
755
+ throw new ShAnalyzeInvalidWrapperSpecError(`${context}.plusCSelectsCommand must be a boolean when present`);
756
+ }
757
+ }
457
758
  /**
458
759
  * Follows `site`'s argv0 through zero or more *transparent wrappers* —
459
760
  * commands whose own argv0 isn't the command actually run, because they
@@ -472,7 +773,7 @@ function validateWrapperSpec(spec, index) {
472
773
  * command) or add their own (e.g. a project's `with-retry` helper) and
473
774
  * both directions are followed identically to any built-in entry.
474
775
  *
475
- * **A statically-unknowable word is never guessed through** — three
776
+ * **A statically-unknowable word is never guessed through** — four
476
777
  * distinct cases all stop the chain immediately at that word rather than
477
778
  * falling back to any other guess:
478
779
  *
@@ -493,6 +794,30 @@ function validateWrapperSpec(spec, index) {
493
794
  * reports `effective: { static: false, reason: 'embedded-command' }`
494
795
  * (see {@link WrapperSpec.unresolvableFlags}'s doc comment).
495
796
  *
797
+ * 4. The effective command is a shell interpreter
798
+ * ({@link DEFAULT_EMBEDDED_COMMAND_INTERPRETERS}) invoked with `-c` —
799
+ * `bash -c "$x"`, `sudo sh -ec ls` — and the command that runs is
800
+ * inside the string operand. The result is the same
801
+ * `'embedded-command'` shape `env -S` produces: the interpreter word is
802
+ * `chain.at(-2)` and `chainIndices.at(-1)` is the option word that
803
+ * selected `-c`. `bash script.sh`, `bash -e script.sh`, `bash -- -c`
804
+ * and `bash -o c` are not `-c` invocations and resolve to `bash` as
805
+ * before. A dynamic word in option position (`bash "$f" -c x`,
806
+ * `bash -c"$y" x`) is undecidable, so the interpreter stays a static
807
+ * `bash`: `static: true` then means only that the name is known, not that
808
+ * the command is a plain shell invocation. The `-c` string itself is never
809
+ * parsed.
810
+ *
811
+ * Known limits: the table models common option spellings, not a full
812
+ * emulation of each shell's option parser. Unusual spellings can be
813
+ * misclassified in either direction:
814
+ *
815
+ * - Bash/sh single-dash long options after a short option, e.g. `bash -e -rcfile M`.
816
+ * - `ksh -c +c M`, or a dynamic word after `-c` that expands to an option.
817
+ * - mksh's selector-bearing operands in `mksh -o -c M` and `mksh -o +c M`.
818
+ * - A lone `+` before `-c`, e.g. `bash + -c M`.
819
+ * - Zsh grammar switches, e.g. `zsh -o shoptionletters -b -c M`.
820
+ *
496
821
  * `VAR=val` shell-assignment prefixes on the `CallExpr` itself
497
822
  * (`CommandSite.node.Assigns`, e.g. `FOO=bar rm x`) are always skipped and
498
823
  * counted in {@link Argv0Resolution.assignmentsSkipped} — a mechanism
@@ -507,7 +832,8 @@ function validateWrapperSpec(spec, index) {
507
832
  * least one argv word; see its doc comment), not a "malformed shell
508
833
  * source" case.
509
834
  * @throws {@link ShAnalyzeInvalidWrapperSpecError} if
510
- * `options.transparentWrappers` contains a malformed entry (see
835
+ * `options.transparentWrappers` or `options.embeddedCommandInterpreters`
836
+ * contains a malformed entry (see
511
837
  * {@link ResolveArgv0Options.transparentWrappers}'s doc comment).
512
838
  * @public
513
839
  */
@@ -519,6 +845,20 @@ export function resolveArgv0(site, options) {
519
845
  if (options?.transparentWrappers !== undefined) {
520
846
  wrappers.forEach(validateWrapperSpec);
521
847
  }
848
+ const interpreters = options?.embeddedCommandInterpreters ?? DEFAULT_EMBEDDED_COMMAND_INTERPRETERS;
849
+ if (options?.embeddedCommandInterpreters !== undefined) {
850
+ // JavaScript callers must supply the same array container promised by
851
+ // the public type; null is invalid rather than an implicit opt-out.
852
+ const table = options.embeddedCommandInterpreters;
853
+ if (!Array.isArray(table)) {
854
+ throw new ShAnalyzeInvalidWrapperSpecError('embeddedCommandInterpreters must be an array');
855
+ }
856
+ // Every declared slot must be valid, including sparse holes that would
857
+ // otherwise bypass validation and later surface as native TypeErrors.
858
+ for (const [index, spec] of interpreters.entries()) {
859
+ validateInterpreterSpec(spec, index);
860
+ }
861
+ }
522
862
  const assignmentsSkipped = nodeArray(site.node.Assigns).length;
523
863
  const argv = site.argv;
524
864
  const chain = [];
@@ -533,8 +873,25 @@ export function resolveArgv0(site, options) {
533
873
  if (!word.static)
534
874
  break;
535
875
  const spec = findWrapperSpec(wrappers, word.text);
536
- if (spec === undefined)
876
+ if (spec === undefined) {
877
+ // No selector can occur before the first option word. Ordinary
878
+ // commands, scripts and dynamic first operands need no interpreter
879
+ // lookup; this preserves the scanner's existing stop conditions.
880
+ const firstOption = argv.at(index + 1);
881
+ if (firstOption?.static !== true ||
882
+ firstOption.text.length < 2 ||
883
+ (!firstOption.text.startsWith('-') && !firstOption.text.startsWith('+')))
884
+ break;
885
+ const interpreter = findInterpreterSpec(interpreters, word.text);
886
+ const optionIndex = interpreter === undefined
887
+ ? undefined
888
+ : findCommandStringOption(argv, index + 1, interpreter);
889
+ if (optionIndex !== undefined) {
890
+ chain.push({ static: false, reason: 'embedded-command' });
891
+ chainIndices.push(optionIndex);
892
+ }
537
893
  break;
894
+ }
538
895
  const result = advancePastWrapperOperands(argv, index + 1, spec);
539
896
  if (result.kind === 'truncated')
540
897
  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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"}