sh-ast 0.1.0 → 0.3.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.
Files changed (40) hide show
  1. package/dist/analyze/enumerate-commands.d.ts +7 -1
  2. package/dist/analyze/enumerate-commands.d.ts.map +1 -1
  3. package/dist/analyze/enumerate-commands.js +7 -1
  4. package/dist/analyze/enumerate-commands.js.map +1 -1
  5. package/dist/analyze/index.d.ts +12 -4
  6. package/dist/analyze/index.d.ts.map +1 -1
  7. package/dist/analyze/index.js +18 -15
  8. package/dist/analyze/index.js.map +1 -1
  9. package/dist/analyze/resolve-argv0.d.ts +335 -0
  10. package/dist/analyze/resolve-argv0.d.ts.map +1 -0
  11. package/dist/analyze/resolve-argv0.js +510 -0
  12. package/dist/analyze/resolve-argv0.js.map +1 -0
  13. package/dist/analyze/resolve-word.d.ts +5 -0
  14. package/dist/analyze/resolve-word.d.ts.map +1 -1
  15. package/dist/analyze/resolve-word.js +5 -0
  16. package/dist/analyze/resolve-word.js.map +1 -1
  17. package/dist/analyze.d.ts +592 -211
  18. package/dist/errors.d.ts +81 -16
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +90 -17
  21. package/dist/errors.js.map +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/parse-depth-guard.d.ts +11 -0
  27. package/dist/parse-depth-guard.d.ts.map +1 -0
  28. package/dist/parse-depth-guard.js +633 -0
  29. package/dist/parse-depth-guard.js.map +1 -0
  30. package/dist/parse.d.ts +7 -2
  31. package/dist/parse.d.ts.map +1 -1
  32. package/dist/parse.js +15 -8
  33. package/dist/parse.js.map +1 -1
  34. package/dist/sh-ast.d.ts +165 -45
  35. package/dist/types.d.ts +5 -1
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/wasm-instance.js +3 -3
  38. package/dist/wasm-instance.js.map +1 -1
  39. package/generated/node-types.d.ts +44 -0
  40. package/package.json +1 -1
@@ -13,6 +13,7 @@ export interface ShArithmCmdNode {
13
13
  readonly end: { readonly line: number; readonly column: number };
14
14
  };
15
15
  [field: string]: unknown;
16
+ readonly unsigned?: boolean;
16
17
  readonly x?: ShArithmExprNode;
17
18
  }
18
19
 
@@ -29,6 +30,8 @@ export interface ShArithmExpNode {
29
30
  readonly end: { readonly line: number; readonly column: number };
30
31
  };
31
32
  [field: string]: unknown;
33
+ readonly bracket?: boolean;
34
+ readonly unsigned?: boolean;
32
35
  readonly x?: ShArithmExprNode;
33
36
  }
34
37
 
@@ -80,8 +83,10 @@ export interface ShAssignNode {
80
83
  readonly end: { readonly line: number; readonly column: number };
81
84
  };
82
85
  [field: string]: unknown;
86
+ readonly append?: boolean;
83
87
  readonly array?: ShArrayExprNode;
84
88
  readonly index?: ShArithmExprNode;
89
+ readonly naked?: boolean;
85
90
  readonly name?: ShLitNode;
86
91
  readonly value?: ShWordNode;
87
92
  }
@@ -99,6 +104,7 @@ export interface ShBinaryArithmNode {
99
104
  readonly end: { readonly line: number; readonly column: number };
100
105
  };
101
106
  [field: string]: unknown;
107
+ readonly op?: number;
102
108
  readonly x?: ShArithmExprNode;
103
109
  readonly y?: ShArithmExprNode;
104
110
  }
@@ -116,6 +122,7 @@ export interface ShBinaryCmdNode {
116
122
  readonly end: { readonly line: number; readonly column: number };
117
123
  };
118
124
  [field: string]: unknown;
125
+ readonly op?: number;
119
126
  readonly x?: ShStmtNode;
120
127
  readonly y?: ShStmtNode;
121
128
  }
@@ -133,6 +140,7 @@ export interface ShBinaryTestNode {
133
140
  readonly end: { readonly line: number; readonly column: number };
134
141
  };
135
142
  [field: string]: unknown;
143
+ readonly op?: number;
136
144
  readonly x?: ShTestExprNode;
137
145
  readonly y?: ShTestExprNode;
138
146
  }
@@ -168,6 +176,7 @@ export interface ShBraceExpNode {
168
176
  };
169
177
  [field: string]: unknown;
170
178
  readonly elems: readonly ShWordNode[];
179
+ readonly sequence?: boolean;
171
180
  }
172
181
 
173
182
  /**
@@ -218,6 +227,7 @@ export interface ShCaseClauseNode {
218
227
  readonly end: { readonly line: number; readonly column: number };
219
228
  };
220
229
  [field: string]: unknown;
230
+ readonly braces?: boolean;
221
231
  readonly items: readonly ShCaseItemNode[];
222
232
  readonly last: readonly ShCommentNode[];
223
233
  readonly word?: ShWordNode;
@@ -238,6 +248,7 @@ export interface ShCaseItemNode {
238
248
  [field: string]: unknown;
239
249
  readonly comments: readonly ShCommentNode[];
240
250
  readonly last: readonly ShCommentNode[];
251
+ readonly op?: number;
241
252
  readonly patterns: readonly ShWordNode[];
242
253
  readonly stmts: readonly ShStmtNode[];
243
254
  }
@@ -255,8 +266,11 @@ export interface ShCmdSubstNode {
255
266
  readonly end: { readonly line: number; readonly column: number };
256
267
  };
257
268
  [field: string]: unknown;
269
+ readonly backquotes?: boolean;
258
270
  readonly last: readonly ShCommentNode[];
271
+ readonly replyvar?: boolean;
259
272
  readonly stmts: readonly ShStmtNode[];
273
+ readonly tempfile?: boolean;
260
274
  }
261
275
 
262
276
  /**
@@ -272,6 +286,7 @@ export interface ShCommentNode {
272
286
  readonly end: { readonly line: number; readonly column: number };
273
287
  };
274
288
  [field: string]: unknown;
289
+ readonly text?: string;
275
290
  }
276
291
 
277
292
  /**
@@ -304,6 +319,7 @@ export interface ShDblQuotedNode {
304
319
  readonly end: { readonly line: number; readonly column: number };
305
320
  };
306
321
  [field: string]: unknown;
322
+ readonly dollar?: boolean;
307
323
  readonly parts: readonly ShWordPartNode[];
308
324
  }
309
325
 
@@ -337,6 +353,7 @@ export interface ShExpansionNode {
337
353
  readonly end: { readonly line: number; readonly column: number };
338
354
  };
339
355
  [field: string]: unknown;
356
+ readonly op?: number;
340
357
  readonly word?: ShWordNode;
341
358
  }
342
359
 
@@ -353,6 +370,7 @@ export interface ShExtGlobNode {
353
370
  readonly end: { readonly line: number; readonly column: number };
354
371
  };
355
372
  [field: string]: unknown;
373
+ readonly op?: number;
356
374
  readonly pattern?: ShLitNode;
357
375
  }
358
376
 
@@ -370,6 +388,7 @@ export interface ShFileNode {
370
388
  };
371
389
  [field: string]: unknown;
372
390
  readonly last: readonly ShCommentNode[];
391
+ readonly name?: string;
373
392
  readonly stmts: readonly ShStmtNode[];
374
393
  }
375
394
 
@@ -403,9 +422,11 @@ export interface ShForClauseNode {
403
422
  readonly end: { readonly line: number; readonly column: number };
404
423
  };
405
424
  [field: string]: unknown;
425
+ readonly braces?: boolean;
406
426
  readonly do: readonly ShStmtNode[];
407
427
  readonly dolast: readonly ShCommentNode[];
408
428
  readonly loop?: ShLoopNode;
429
+ readonly select?: boolean;
409
430
  }
410
431
 
411
432
  /**
@@ -424,6 +445,8 @@ export interface ShFuncDeclNode {
424
445
  readonly body?: ShStmtNode;
425
446
  readonly name?: ShLitNode;
426
447
  readonly names: readonly ShLitNode[];
448
+ readonly parens?: boolean;
449
+ readonly rsrvword?: boolean;
427
450
  }
428
451
 
429
452
  /**
@@ -476,6 +499,7 @@ export interface ShLitNode {
476
499
  readonly end: { readonly line: number; readonly column: number };
477
500
  };
478
501
  [field: string]: unknown;
502
+ readonly value?: string;
479
503
  }
480
504
 
481
505
  /**
@@ -491,14 +515,20 @@ export interface ShParamExpNode {
491
515
  readonly end: { readonly line: number; readonly column: number };
492
516
  };
493
517
  [field: string]: unknown;
518
+ readonly excl?: boolean;
494
519
  readonly exp?: ShExpansionNode;
495
520
  readonly flags?: ShLitNode;
496
521
  readonly index?: ShArithmExprNode;
522
+ readonly isset?: boolean;
523
+ readonly length?: boolean;
497
524
  readonly modifiers: readonly ShLitNode[];
525
+ readonly names?: number;
498
526
  readonly nestedparam?: ShWordPartNode;
499
527
  readonly param?: ShLitNode;
500
528
  readonly repl?: ShReplaceNode;
529
+ readonly short?: boolean;
501
530
  readonly slice?: ShSliceNode;
531
+ readonly width?: boolean;
502
532
  }
503
533
 
504
534
  /**
@@ -547,6 +577,7 @@ export interface ShProcSubstNode {
547
577
  };
548
578
  [field: string]: unknown;
549
579
  readonly last: readonly ShCommentNode[];
580
+ readonly op?: number;
550
581
  readonly stmts: readonly ShStmtNode[];
551
582
  }
552
583
 
@@ -565,6 +596,7 @@ export interface ShRedirectNode {
565
596
  [field: string]: unknown;
566
597
  readonly hdoc?: ShWordNode;
567
598
  readonly n?: ShLitNode;
599
+ readonly op?: number;
568
600
  readonly word?: ShWordNode;
569
601
  }
570
602
 
@@ -581,6 +613,7 @@ export interface ShReplaceNode {
581
613
  readonly end: { readonly line: number; readonly column: number };
582
614
  };
583
615
  [field: string]: unknown;
616
+ readonly all?: boolean;
584
617
  readonly orig?: ShWordNode;
585
618
  readonly with?: ShWordNode;
586
619
  }
@@ -598,6 +631,8 @@ export interface ShSglQuotedNode {
598
631
  readonly end: { readonly line: number; readonly column: number };
599
632
  };
600
633
  [field: string]: unknown;
634
+ readonly dollar?: boolean;
635
+ readonly value?: string;
601
636
  }
602
637
 
603
638
  /**
@@ -630,8 +665,12 @@ export interface ShStmtNode {
630
665
  readonly end: { readonly line: number; readonly column: number };
631
666
  };
632
667
  [field: string]: unknown;
668
+ readonly background?: boolean;
633
669
  readonly cmd?: ShCommandNode;
634
670
  readonly comments: readonly ShCommentNode[];
671
+ readonly coprocess?: boolean;
672
+ readonly disown?: boolean;
673
+ readonly negated?: boolean;
635
674
  readonly redirs: readonly ShRedirectNode[];
636
675
  }
637
676
 
@@ -698,6 +737,7 @@ export interface ShTimeClauseNode {
698
737
  readonly end: { readonly line: number; readonly column: number };
699
738
  };
700
739
  [field: string]: unknown;
740
+ readonly posixformat?: boolean;
701
741
  readonly stmt?: ShStmtNode;
702
742
  }
703
743
 
@@ -714,6 +754,8 @@ export interface ShUnaryArithmNode {
714
754
  readonly end: { readonly line: number; readonly column: number };
715
755
  };
716
756
  [field: string]: unknown;
757
+ readonly op?: number;
758
+ readonly post?: boolean;
717
759
  readonly x?: ShArithmExprNode;
718
760
  }
719
761
 
@@ -730,6 +772,7 @@ export interface ShUnaryTestNode {
730
772
  readonly end: { readonly line: number; readonly column: number };
731
773
  };
732
774
  [field: string]: unknown;
775
+ readonly op?: number;
733
776
  readonly x?: ShTestExprNode;
734
777
  }
735
778
 
@@ -750,6 +793,7 @@ export interface ShWhileClauseNode {
750
793
  readonly condlast: readonly ShCommentNode[];
751
794
  readonly do: readonly ShStmtNode[];
752
795
  readonly dolast: readonly ShCommentNode[];
796
+ readonly until?: boolean;
753
797
  }
754
798
 
755
799
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sh-ast",
3
3
  "description": "Synchronous shell-script parser (mvdan/sh via WASM) with a normalized, UTF-16-safe AST.",
4
- "version": "0.1.0",
4
+ "version": "0.3.0",
5
5
  "author": "Mike North <michael.l.north@gmail.com>",
6
6
  "repository": {
7
7
  "type": "git",