@zuplo/cli 6.70.69 → 6.70.71

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 (60) hide show
  1. package/node_modules/@types/node/README.md +1 -1
  2. package/node_modules/@types/node/http2.d.ts +1 -0
  3. package/node_modules/@types/node/package.json +2 -2
  4. package/node_modules/@zuplo/core/package.json +1 -1
  5. package/node_modules/@zuplo/graphql/package.json +1 -1
  6. package/node_modules/@zuplo/openapi-tools/package.json +1 -1
  7. package/node_modules/@zuplo/otel/package.json +1 -1
  8. package/node_modules/@zuplo/runtime/out/esm/{chunk-GEVKFSKR.js → chunk-AZIRK6TC.js} +1 -1
  9. package/node_modules/@zuplo/runtime/out/esm/{chunk-GEVKFSKR.js.map → chunk-AZIRK6TC.js.map} +1 -1
  10. package/node_modules/@zuplo/runtime/out/esm/{chunk-YLRLRHUN.js → chunk-E7U425SB.js} +93 -92
  11. package/node_modules/@zuplo/runtime/out/esm/chunk-E7U425SB.js.map +1 -0
  12. package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
  13. package/node_modules/@zuplo/runtime/out/esm/index.js.map +1 -1
  14. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +7 -7
  15. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js.map +1 -1
  16. package/node_modules/@zuplo/runtime/out/esm/mocks/index.js +1 -1
  17. package/node_modules/@zuplo/runtime/out/types/index.d.ts +384 -0
  18. package/node_modules/@zuplo/runtime/out/types/mcp-gateway/index.d.ts +3 -1
  19. package/node_modules/@zuplo/runtime/package.json +1 -1
  20. package/node_modules/acorn/CHANGELOG.md +14 -0
  21. package/node_modules/acorn/README.md +3 -0
  22. package/node_modules/acorn/dist/acorn.d.mts +6 -0
  23. package/node_modules/acorn/dist/acorn.d.ts +6 -0
  24. package/node_modules/acorn/dist/acorn.js +87 -49
  25. package/node_modules/acorn/dist/acorn.mjs +87 -49
  26. package/node_modules/acorn/package.json +2 -2
  27. package/node_modules/protobufjs/dist/light/protobuf.js +161 -203
  28. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  29. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  30. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  31. package/node_modules/protobufjs/dist/minimal/protobuf.js +34 -77
  32. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  33. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  34. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  35. package/node_modules/protobufjs/dist/protobuf.js +181 -223
  36. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  37. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  38. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  39. package/node_modules/protobufjs/index.d.ts +0 -8
  40. package/node_modules/protobufjs/package.json +2 -3
  41. package/node_modules/protobufjs/src/converter.js +5 -4
  42. package/node_modules/protobufjs/src/decoder.js +1 -1
  43. package/node_modules/protobufjs/src/service.js +5 -7
  44. package/node_modules/protobufjs/src/type.js +3 -1
  45. package/node_modules/protobufjs/src/util/minimal.js +1 -4
  46. package/node_modules/protobufjs/src/verifier.js +1 -1
  47. package/package.json +6 -6
  48. package/node_modules/@protobufjs/inquire/CHANGELOG.md +0 -8
  49. package/node_modules/@protobufjs/inquire/LICENSE +0 -26
  50. package/node_modules/@protobufjs/inquire/README.md +0 -13
  51. package/node_modules/@protobufjs/inquire/index.d.ts +0 -10
  52. package/node_modules/@protobufjs/inquire/index.js +0 -38
  53. package/node_modules/@protobufjs/inquire/package.json +0 -21
  54. package/node_modules/@protobufjs/inquire/tests/data/array.js +0 -1
  55. package/node_modules/@protobufjs/inquire/tests/data/emptyArray.js +0 -1
  56. package/node_modules/@protobufjs/inquire/tests/data/emptyObject.js +0 -1
  57. package/node_modules/@protobufjs/inquire/tests/data/object.js +0 -1
  58. package/node_modules/@protobufjs/inquire/tests/index.js +0 -20
  59. package/node_modules/@zuplo/runtime/out/esm/chunk-YLRLRHUN.js.map +0 -1
  60. /package/node_modules/@zuplo/runtime/out/esm/{chunk-YLRLRHUN.js.LEGAL.txt → chunk-E7U425SB.js.LEGAL.txt} +0 -0
@@ -342,6 +342,9 @@
342
342
  // Can be either `"script"`, `"module"` or `"commonjs"`. This influences global
343
343
  // strict mode and parsing of `import` and `export` declarations.
344
344
  sourceType: "script",
345
+ // When set to true, enable strict parsing mode even if `sourceType`
346
+ // is `"script"`.
347
+ strict: false,
345
348
  // `onInsertedSemicolon` can be a callback that will be called when
346
349
  // a semicolon is automatically inserted. It will be passed the
347
350
  // position of the inserted semicolon as an offset, and if
@@ -568,7 +571,7 @@
568
571
 
569
572
  // Figure out if it's a module code.
570
573
  this.inModule = options.sourceType === "module";
571
- this.strict = this.inModule || this.strictDirective(this.pos);
574
+ this.strict = this.inModule || options.strict === true || this.strictDirective(this.pos);
572
575
 
573
576
  // Used to signify the start of a potential arrow function
574
577
  this.potentialArrowAt = -1;
@@ -606,9 +609,11 @@
606
609
  var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowReturn: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },allowUsing: { configurable: true },inClassStaticBlock: { configurable: true } };
607
610
 
608
611
  Parser.prototype.parse = function parse () {
612
+ var this$1$1 = this;
613
+
609
614
  var node = this.options.program || this.startNode();
610
615
  this.nextToken();
611
- return this.parseTopLevel(node)
616
+ return this.catchStackOverflow(function () { return this$1$1.parseTopLevel(node); })
612
617
  };
613
618
 
614
619
  prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };
@@ -747,6 +752,17 @@
747
752
  return true
748
753
  };
749
754
 
755
+ pp$9.catchStackOverflow = function(f) {
756
+ try {
757
+ return f()
758
+ } catch (e) {
759
+ if (e instanceof Error && (/\bstack\b.*\b(exceeded|overflow)\b/i.test(e.message) || /\btoo much recursion\b/i.test(e.message)))
760
+ { this.raise(this.start, "Not enough stack space to parse input"); }
761
+ else
762
+ { throw e }
763
+ }
764
+ };
765
+
750
766
  // Asserts that following token is given contextual keyword.
751
767
 
752
768
  pp$9.expectContextual = function(name) {
@@ -850,10 +866,10 @@
850
866
  // to its body instead of creating a new node.
851
867
 
852
868
  pp$8.parseTopLevel = function(node) {
853
- var exports = Object.create(null);
869
+ var exports$1 = Object.create(null);
854
870
  if (!node.body) { node.body = []; }
855
871
  while (this.type !== types$1.eof) {
856
- var stmt = this.parseStatement(null, true, exports);
872
+ var stmt = this.parseStatement(null, true, exports$1);
857
873
  node.body.push(stmt);
858
874
  }
859
875
  if (this.inModule)
@@ -942,7 +958,18 @@
942
958
  while (isIdentifierChar(ch = this.fullCharCodeAt(next)))
943
959
  if (ch === 92) { return true }
944
960
  var id = this.input.slice(idStart, next);
945
- if (keywordRelationalOperator.test(id) || isFor && id === "of") { return false }
961
+ if (keywordRelationalOperator.test(id)) { return false }
962
+ if (isFor && !isAwaitUsing && id === "of") {
963
+ // Look ahead for using declaration with initializer, i.e., `for (using of = ...)`
964
+ skipWhiteSpace.lastIndex = next;
965
+ var skipAfterOf = skipWhiteSpace.exec(this.input);
966
+ next = next + skipAfterOf[0].length;
967
+ if (this.input.charCodeAt(next) !== 61 /* '=' */ ||
968
+ // Check for ==, === and => operators
969
+ (ch = this.input.charCodeAt(next + 1)) === 61 /* '=' */ || ch === 62 /* '>' */) {
970
+ return false
971
+ }
972
+ }
946
973
  return true
947
974
  };
948
975
 
@@ -961,7 +988,7 @@
961
988
  // `if (foo) /blah/.exec(foo)`, where looking at the previous token
962
989
  // does not help.
963
990
 
964
- pp$8.parseStatement = function(context, topLevel, exports) {
991
+ pp$8.parseStatement = function(context, topLevel, exports$1) {
965
992
  var starttype = this.type, node = this.startNode(), kind;
966
993
 
967
994
  if (this.isLet(context)) {
@@ -1016,7 +1043,7 @@
1016
1043
  if (!this.inModule)
1017
1044
  { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); }
1018
1045
  }
1019
- return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)
1046
+ return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports$1)
1020
1047
 
1021
1048
  // If the statement does not start with a statement keyword or a
1022
1049
  // brace, it's an ExpressionStatement or LabeledStatement. We
@@ -1035,6 +1062,10 @@
1035
1062
  if (!this.allowUsing) {
1036
1063
  this.raise(this.start, "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement");
1037
1064
  }
1065
+ if (context) {
1066
+ // Cases like `for (;;) using x = ...;`, `if (true) await using x = ...;`, etc. are not allowed.
1067
+ this.raise(this.start, "Using declaration is not allowed in single-statement positions");
1068
+ }
1038
1069
  if (usingKind === "await using") {
1039
1070
  if (!this.canAwait) {
1040
1071
  this.raise(this.start, "Await using cannot appear outside of async function");
@@ -1168,11 +1199,12 @@
1168
1199
  // Helper method to parse for loop after variable initialization
1169
1200
  pp$8.parseForAfterInit = function(node, init, awaitAt) {
1170
1201
  if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init.declarations.length === 1) {
1171
- if (this.options.ecmaVersion >= 9) {
1172
- if (this.type === types$1._in) {
1173
- if (awaitAt > -1) { this.unexpected(awaitAt); }
1174
- } else { node.await = awaitAt > -1; }
1175
- }
1202
+ if (this.type === types$1._in) {
1203
+ if ((init.kind === "using" || init.kind === "await using") && !init.declarations[0].init) {
1204
+ this.raise(this.start, "Using declaration is not allowed in for-in loops");
1205
+ }
1206
+ if (this.options.ecmaVersion >= 9 && awaitAt > -1) { this.unexpected(awaitAt); }
1207
+ } else if (this.options.ecmaVersion >= 9) { node.await = awaitAt > -1; }
1176
1208
  return this.parseForIn(node, init)
1177
1209
  }
1178
1210
  if (awaitAt > -1) { this.unexpected(awaitAt); }
@@ -1777,11 +1809,11 @@
1777
1809
 
1778
1810
  // Parses module export declaration.
1779
1811
 
1780
- pp$8.parseExportAllDeclaration = function(node, exports) {
1812
+ pp$8.parseExportAllDeclaration = function(node, exports$1) {
1781
1813
  if (this.options.ecmaVersion >= 11) {
1782
1814
  if (this.eatContextual("as")) {
1783
1815
  node.exported = this.parseModuleExportName();
1784
- this.checkExport(exports, node.exported, this.lastTokStart);
1816
+ this.checkExport(exports$1, node.exported, this.lastTokStart);
1785
1817
  } else {
1786
1818
  node.exported = null;
1787
1819
  }
@@ -1795,14 +1827,14 @@
1795
1827
  return this.finishNode(node, "ExportAllDeclaration")
1796
1828
  };
1797
1829
 
1798
- pp$8.parseExport = function(node, exports) {
1830
+ pp$8.parseExport = function(node, exports$1) {
1799
1831
  this.next();
1800
1832
  // export * from '...'
1801
1833
  if (this.eat(types$1.star)) {
1802
- return this.parseExportAllDeclaration(node, exports)
1834
+ return this.parseExportAllDeclaration(node, exports$1)
1803
1835
  }
1804
1836
  if (this.eat(types$1._default)) { // export default ...
1805
- this.checkExport(exports, "default", this.lastTokStart);
1837
+ this.checkExport(exports$1, "default", this.lastTokStart);
1806
1838
  node.declaration = this.parseExportDefaultDeclaration();
1807
1839
  return this.finishNode(node, "ExportDefaultDeclaration")
1808
1840
  }
@@ -1810,16 +1842,16 @@
1810
1842
  if (this.shouldParseExportStatement()) {
1811
1843
  node.declaration = this.parseExportDeclaration(node);
1812
1844
  if (node.declaration.type === "VariableDeclaration")
1813
- { this.checkVariableExport(exports, node.declaration.declarations); }
1845
+ { this.checkVariableExport(exports$1, node.declaration.declarations); }
1814
1846
  else
1815
- { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }
1847
+ { this.checkExport(exports$1, node.declaration.id, node.declaration.id.start); }
1816
1848
  node.specifiers = [];
1817
1849
  node.source = null;
1818
1850
  if (this.options.ecmaVersion >= 16)
1819
1851
  { node.attributes = []; }
1820
1852
  } else { // export { x, y as z } [from '...']
1821
1853
  node.declaration = null;
1822
- node.specifiers = this.parseExportSpecifiers(exports);
1854
+ node.specifiers = this.parseExportSpecifiers(exports$1);
1823
1855
  if (this.eatContextual("from")) {
1824
1856
  if (this.type !== types$1.string) { this.unexpected(); }
1825
1857
  node.source = this.parseExprAtom();
@@ -1869,47 +1901,47 @@
1869
1901
  }
1870
1902
  };
1871
1903
 
1872
- pp$8.checkExport = function(exports, name, pos) {
1873
- if (!exports) { return }
1904
+ pp$8.checkExport = function(exports$1, name, pos) {
1905
+ if (!exports$1) { return }
1874
1906
  if (typeof name !== "string")
1875
1907
  { name = name.type === "Identifier" ? name.name : name.value; }
1876
- if (hasOwn(exports, name))
1908
+ if (hasOwn(exports$1, name))
1877
1909
  { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); }
1878
- exports[name] = true;
1910
+ exports$1[name] = true;
1879
1911
  };
1880
1912
 
1881
- pp$8.checkPatternExport = function(exports, pat) {
1913
+ pp$8.checkPatternExport = function(exports$1, pat) {
1882
1914
  var type = pat.type;
1883
1915
  if (type === "Identifier")
1884
- { this.checkExport(exports, pat, pat.start); }
1916
+ { this.checkExport(exports$1, pat, pat.start); }
1885
1917
  else if (type === "ObjectPattern")
1886
1918
  { for (var i = 0, list = pat.properties; i < list.length; i += 1)
1887
1919
  {
1888
1920
  var prop = list[i];
1889
1921
 
1890
- this.checkPatternExport(exports, prop);
1922
+ this.checkPatternExport(exports$1, prop);
1891
1923
  } }
1892
1924
  else if (type === "ArrayPattern")
1893
1925
  { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {
1894
1926
  var elt = list$1[i$1];
1895
1927
 
1896
- if (elt) { this.checkPatternExport(exports, elt); }
1928
+ if (elt) { this.checkPatternExport(exports$1, elt); }
1897
1929
  } }
1898
1930
  else if (type === "Property")
1899
- { this.checkPatternExport(exports, pat.value); }
1931
+ { this.checkPatternExport(exports$1, pat.value); }
1900
1932
  else if (type === "AssignmentPattern")
1901
- { this.checkPatternExport(exports, pat.left); }
1933
+ { this.checkPatternExport(exports$1, pat.left); }
1902
1934
  else if (type === "RestElement")
1903
- { this.checkPatternExport(exports, pat.argument); }
1935
+ { this.checkPatternExport(exports$1, pat.argument); }
1904
1936
  };
1905
1937
 
1906
- pp$8.checkVariableExport = function(exports, decls) {
1907
- if (!exports) { return }
1938
+ pp$8.checkVariableExport = function(exports$1, decls) {
1939
+ if (!exports$1) { return }
1908
1940
  for (var i = 0, list = decls; i < list.length; i += 1)
1909
1941
  {
1910
1942
  var decl = list[i];
1911
1943
 
1912
- this.checkPatternExport(exports, decl.id);
1944
+ this.checkPatternExport(exports$1, decl.id);
1913
1945
  }
1914
1946
  };
1915
1947
 
@@ -1924,13 +1956,13 @@
1924
1956
 
1925
1957
  // Parses a comma-separated list of module exports.
1926
1958
 
1927
- pp$8.parseExportSpecifier = function(exports) {
1959
+ pp$8.parseExportSpecifier = function(exports$1) {
1928
1960
  var node = this.startNode();
1929
1961
  node.local = this.parseModuleExportName();
1930
1962
 
1931
1963
  node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local;
1932
1964
  this.checkExport(
1933
- exports,
1965
+ exports$1,
1934
1966
  node.exported,
1935
1967
  node.exported.start
1936
1968
  );
@@ -1938,7 +1970,7 @@
1938
1970
  return this.finishNode(node, "ExportSpecifier")
1939
1971
  };
1940
1972
 
1941
- pp$8.parseExportSpecifiers = function(exports) {
1973
+ pp$8.parseExportSpecifiers = function(exports$1) {
1942
1974
  var nodes = [], first = true;
1943
1975
  // export { x, y as z } [from '...']
1944
1976
  this.expect(types$1.braceL);
@@ -1948,7 +1980,7 @@
1948
1980
  if (this.afterTrailingComma(types$1.braceR)) { break }
1949
1981
  } else { first = false; }
1950
1982
 
1951
- nodes.push(this.parseExportSpecifier(exports));
1983
+ nodes.push(this.parseExportSpecifier(exports$1));
1952
1984
  }
1953
1985
  return nodes
1954
1986
  };
@@ -2679,15 +2711,19 @@
2679
2711
  // delayed syntax error at correct position).
2680
2712
 
2681
2713
  pp$5.parseExpression = function(forInit, refDestructuringErrors) {
2682
- var startPos = this.start, startLoc = this.startLoc;
2683
- var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);
2684
- if (this.type === types$1.comma) {
2685
- var node = this.startNodeAt(startPos, startLoc);
2686
- node.expressions = [expr];
2687
- while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }
2688
- return this.finishNode(node, "SequenceExpression")
2689
- }
2690
- return expr
2714
+ var this$1$1 = this;
2715
+
2716
+ return this.catchStackOverflow(function () {
2717
+ var startPos = this$1$1.start, startLoc = this$1$1.startLoc;
2718
+ var expr = this$1$1.parseMaybeAssign(forInit, refDestructuringErrors);
2719
+ if (this$1$1.type === types$1.comma) {
2720
+ var node = this$1$1.startNodeAt(startPos, startLoc);
2721
+ node.expressions = [expr];
2722
+ while (this$1$1.eat(types$1.comma)) { node.expressions.push(this$1$1.parseMaybeAssign(forInit, refDestructuringErrors)); }
2723
+ return this$1$1.finishNode(node, "SequenceExpression")
2724
+ }
2725
+ return expr
2726
+ })
2691
2727
  };
2692
2728
 
2693
2729
  // Parse an assignment expression. This includes applications of
@@ -2752,7 +2788,7 @@
2752
2788
  var startPos = this.start, startLoc = this.startLoc;
2753
2789
  var expr = this.parseExprOps(forInit, refDestructuringErrors);
2754
2790
  if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
2755
- if (this.eat(types$1.question)) {
2791
+ if (!(expr.type === "ArrowFunctionExpression" && expr.start === startPos) && this.eat(types$1.question)) {
2756
2792
  var node = this.startNodeAt(startPos, startLoc);
2757
2793
  node.test = expr;
2758
2794
  node.consequent = this.parseMaybeAssign();
@@ -3304,6 +3340,8 @@
3304
3340
  }
3305
3341
  var startPos = this.start, startLoc = this.startLoc;
3306
3342
  node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false);
3343
+ if (node.callee.type === "Super")
3344
+ { this.raiseRecoverable(startPos, "Invalid use of 'super'"); }
3307
3345
  if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }
3308
3346
  else { node.arguments = empty; }
3309
3347
  return this.finishNode(node, "NewExpression")
@@ -6220,7 +6258,7 @@
6220
6258
  // [ghbt]: https://github.com/acornjs/acorn/issues
6221
6259
 
6222
6260
 
6223
- var version = "8.16.0";
6261
+ var version = "8.17.0";
6224
6262
 
6225
6263
  Parser.acorn = {
6226
6264
  Parser: Parser,
@@ -336,6 +336,9 @@ var defaultOptions = {
336
336
  // Can be either `"script"`, `"module"` or `"commonjs"`. This influences global
337
337
  // strict mode and parsing of `import` and `export` declarations.
338
338
  sourceType: "script",
339
+ // When set to true, enable strict parsing mode even if `sourceType`
340
+ // is `"script"`.
341
+ strict: false,
339
342
  // `onInsertedSemicolon` can be a callback that will be called when
340
343
  // a semicolon is automatically inserted. It will be passed the
341
344
  // position of the inserted semicolon as an offset, and if
@@ -562,7 +565,7 @@ var Parser = function Parser(options, input, startPos) {
562
565
 
563
566
  // Figure out if it's a module code.
564
567
  this.inModule = options.sourceType === "module";
565
- this.strict = this.inModule || this.strictDirective(this.pos);
568
+ this.strict = this.inModule || options.strict === true || this.strictDirective(this.pos);
566
569
 
567
570
  // Used to signify the start of a potential arrow function
568
571
  this.potentialArrowAt = -1;
@@ -600,9 +603,11 @@ var Parser = function Parser(options, input, startPos) {
600
603
  var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowReturn: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },allowUsing: { configurable: true },inClassStaticBlock: { configurable: true } };
601
604
 
602
605
  Parser.prototype.parse = function parse () {
606
+ var this$1$1 = this;
607
+
603
608
  var node = this.options.program || this.startNode();
604
609
  this.nextToken();
605
- return this.parseTopLevel(node)
610
+ return this.catchStackOverflow(function () { return this$1$1.parseTopLevel(node); })
606
611
  };
607
612
 
608
613
  prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };
@@ -741,6 +746,17 @@ pp$9.eatContextual = function(name) {
741
746
  return true
742
747
  };
743
748
 
749
+ pp$9.catchStackOverflow = function(f) {
750
+ try {
751
+ return f()
752
+ } catch (e) {
753
+ if (e instanceof Error && (/\bstack\b.*\b(exceeded|overflow)\b/i.test(e.message) || /\btoo much recursion\b/i.test(e.message)))
754
+ { this.raise(this.start, "Not enough stack space to parse input"); }
755
+ else
756
+ { throw e }
757
+ }
758
+ };
759
+
744
760
  // Asserts that following token is given contextual keyword.
745
761
 
746
762
  pp$9.expectContextual = function(name) {
@@ -844,10 +860,10 @@ var pp$8 = Parser.prototype;
844
860
  // to its body instead of creating a new node.
845
861
 
846
862
  pp$8.parseTopLevel = function(node) {
847
- var exports = Object.create(null);
863
+ var exports$1 = Object.create(null);
848
864
  if (!node.body) { node.body = []; }
849
865
  while (this.type !== types$1.eof) {
850
- var stmt = this.parseStatement(null, true, exports);
866
+ var stmt = this.parseStatement(null, true, exports$1);
851
867
  node.body.push(stmt);
852
868
  }
853
869
  if (this.inModule)
@@ -936,7 +952,18 @@ pp$8.isUsingKeyword = function(isAwaitUsing, isFor) {
936
952
  while (isIdentifierChar(ch = this.fullCharCodeAt(next)))
937
953
  if (ch === 92) { return true }
938
954
  var id = this.input.slice(idStart, next);
939
- if (keywordRelationalOperator.test(id) || isFor && id === "of") { return false }
955
+ if (keywordRelationalOperator.test(id)) { return false }
956
+ if (isFor && !isAwaitUsing && id === "of") {
957
+ // Look ahead for using declaration with initializer, i.e., `for (using of = ...)`
958
+ skipWhiteSpace.lastIndex = next;
959
+ var skipAfterOf = skipWhiteSpace.exec(this.input);
960
+ next = next + skipAfterOf[0].length;
961
+ if (this.input.charCodeAt(next) !== 61 /* '=' */ ||
962
+ // Check for ==, === and => operators
963
+ (ch = this.input.charCodeAt(next + 1)) === 61 /* '=' */ || ch === 62 /* '>' */) {
964
+ return false
965
+ }
966
+ }
940
967
  return true
941
968
  };
942
969
 
@@ -955,7 +982,7 @@ pp$8.isUsing = function(isFor) {
955
982
  // `if (foo) /blah/.exec(foo)`, where looking at the previous token
956
983
  // does not help.
957
984
 
958
- pp$8.parseStatement = function(context, topLevel, exports) {
985
+ pp$8.parseStatement = function(context, topLevel, exports$1) {
959
986
  var starttype = this.type, node = this.startNode(), kind;
960
987
 
961
988
  if (this.isLet(context)) {
@@ -1010,7 +1037,7 @@ pp$8.parseStatement = function(context, topLevel, exports) {
1010
1037
  if (!this.inModule)
1011
1038
  { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); }
1012
1039
  }
1013
- return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)
1040
+ return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports$1)
1014
1041
 
1015
1042
  // If the statement does not start with a statement keyword or a
1016
1043
  // brace, it's an ExpressionStatement or LabeledStatement. We
@@ -1029,6 +1056,10 @@ pp$8.parseStatement = function(context, topLevel, exports) {
1029
1056
  if (!this.allowUsing) {
1030
1057
  this.raise(this.start, "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement");
1031
1058
  }
1059
+ if (context) {
1060
+ // Cases like `for (;;) using x = ...;`, `if (true) await using x = ...;`, etc. are not allowed.
1061
+ this.raise(this.start, "Using declaration is not allowed in single-statement positions");
1062
+ }
1032
1063
  if (usingKind === "await using") {
1033
1064
  if (!this.canAwait) {
1034
1065
  this.raise(this.start, "Await using cannot appear outside of async function");
@@ -1162,11 +1193,12 @@ pp$8.parseForStatement = function(node) {
1162
1193
  // Helper method to parse for loop after variable initialization
1163
1194
  pp$8.parseForAfterInit = function(node, init, awaitAt) {
1164
1195
  if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init.declarations.length === 1) {
1165
- if (this.options.ecmaVersion >= 9) {
1166
- if (this.type === types$1._in) {
1167
- if (awaitAt > -1) { this.unexpected(awaitAt); }
1168
- } else { node.await = awaitAt > -1; }
1169
- }
1196
+ if (this.type === types$1._in) {
1197
+ if ((init.kind === "using" || init.kind === "await using") && !init.declarations[0].init) {
1198
+ this.raise(this.start, "Using declaration is not allowed in for-in loops");
1199
+ }
1200
+ if (this.options.ecmaVersion >= 9 && awaitAt > -1) { this.unexpected(awaitAt); }
1201
+ } else if (this.options.ecmaVersion >= 9) { node.await = awaitAt > -1; }
1170
1202
  return this.parseForIn(node, init)
1171
1203
  }
1172
1204
  if (awaitAt > -1) { this.unexpected(awaitAt); }
@@ -1771,11 +1803,11 @@ function checkKeyName(node, name) {
1771
1803
 
1772
1804
  // Parses module export declaration.
1773
1805
 
1774
- pp$8.parseExportAllDeclaration = function(node, exports) {
1806
+ pp$8.parseExportAllDeclaration = function(node, exports$1) {
1775
1807
  if (this.options.ecmaVersion >= 11) {
1776
1808
  if (this.eatContextual("as")) {
1777
1809
  node.exported = this.parseModuleExportName();
1778
- this.checkExport(exports, node.exported, this.lastTokStart);
1810
+ this.checkExport(exports$1, node.exported, this.lastTokStart);
1779
1811
  } else {
1780
1812
  node.exported = null;
1781
1813
  }
@@ -1789,14 +1821,14 @@ pp$8.parseExportAllDeclaration = function(node, exports) {
1789
1821
  return this.finishNode(node, "ExportAllDeclaration")
1790
1822
  };
1791
1823
 
1792
- pp$8.parseExport = function(node, exports) {
1824
+ pp$8.parseExport = function(node, exports$1) {
1793
1825
  this.next();
1794
1826
  // export * from '...'
1795
1827
  if (this.eat(types$1.star)) {
1796
- return this.parseExportAllDeclaration(node, exports)
1828
+ return this.parseExportAllDeclaration(node, exports$1)
1797
1829
  }
1798
1830
  if (this.eat(types$1._default)) { // export default ...
1799
- this.checkExport(exports, "default", this.lastTokStart);
1831
+ this.checkExport(exports$1, "default", this.lastTokStart);
1800
1832
  node.declaration = this.parseExportDefaultDeclaration();
1801
1833
  return this.finishNode(node, "ExportDefaultDeclaration")
1802
1834
  }
@@ -1804,16 +1836,16 @@ pp$8.parseExport = function(node, exports) {
1804
1836
  if (this.shouldParseExportStatement()) {
1805
1837
  node.declaration = this.parseExportDeclaration(node);
1806
1838
  if (node.declaration.type === "VariableDeclaration")
1807
- { this.checkVariableExport(exports, node.declaration.declarations); }
1839
+ { this.checkVariableExport(exports$1, node.declaration.declarations); }
1808
1840
  else
1809
- { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }
1841
+ { this.checkExport(exports$1, node.declaration.id, node.declaration.id.start); }
1810
1842
  node.specifiers = [];
1811
1843
  node.source = null;
1812
1844
  if (this.options.ecmaVersion >= 16)
1813
1845
  { node.attributes = []; }
1814
1846
  } else { // export { x, y as z } [from '...']
1815
1847
  node.declaration = null;
1816
- node.specifiers = this.parseExportSpecifiers(exports);
1848
+ node.specifiers = this.parseExportSpecifiers(exports$1);
1817
1849
  if (this.eatContextual("from")) {
1818
1850
  if (this.type !== types$1.string) { this.unexpected(); }
1819
1851
  node.source = this.parseExprAtom();
@@ -1863,47 +1895,47 @@ pp$8.parseExportDefaultDeclaration = function() {
1863
1895
  }
1864
1896
  };
1865
1897
 
1866
- pp$8.checkExport = function(exports, name, pos) {
1867
- if (!exports) { return }
1898
+ pp$8.checkExport = function(exports$1, name, pos) {
1899
+ if (!exports$1) { return }
1868
1900
  if (typeof name !== "string")
1869
1901
  { name = name.type === "Identifier" ? name.name : name.value; }
1870
- if (hasOwn(exports, name))
1902
+ if (hasOwn(exports$1, name))
1871
1903
  { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); }
1872
- exports[name] = true;
1904
+ exports$1[name] = true;
1873
1905
  };
1874
1906
 
1875
- pp$8.checkPatternExport = function(exports, pat) {
1907
+ pp$8.checkPatternExport = function(exports$1, pat) {
1876
1908
  var type = pat.type;
1877
1909
  if (type === "Identifier")
1878
- { this.checkExport(exports, pat, pat.start); }
1910
+ { this.checkExport(exports$1, pat, pat.start); }
1879
1911
  else if (type === "ObjectPattern")
1880
1912
  { for (var i = 0, list = pat.properties; i < list.length; i += 1)
1881
1913
  {
1882
1914
  var prop = list[i];
1883
1915
 
1884
- this.checkPatternExport(exports, prop);
1916
+ this.checkPatternExport(exports$1, prop);
1885
1917
  } }
1886
1918
  else if (type === "ArrayPattern")
1887
1919
  { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {
1888
1920
  var elt = list$1[i$1];
1889
1921
 
1890
- if (elt) { this.checkPatternExport(exports, elt); }
1922
+ if (elt) { this.checkPatternExport(exports$1, elt); }
1891
1923
  } }
1892
1924
  else if (type === "Property")
1893
- { this.checkPatternExport(exports, pat.value); }
1925
+ { this.checkPatternExport(exports$1, pat.value); }
1894
1926
  else if (type === "AssignmentPattern")
1895
- { this.checkPatternExport(exports, pat.left); }
1927
+ { this.checkPatternExport(exports$1, pat.left); }
1896
1928
  else if (type === "RestElement")
1897
- { this.checkPatternExport(exports, pat.argument); }
1929
+ { this.checkPatternExport(exports$1, pat.argument); }
1898
1930
  };
1899
1931
 
1900
- pp$8.checkVariableExport = function(exports, decls) {
1901
- if (!exports) { return }
1932
+ pp$8.checkVariableExport = function(exports$1, decls) {
1933
+ if (!exports$1) { return }
1902
1934
  for (var i = 0, list = decls; i < list.length; i += 1)
1903
1935
  {
1904
1936
  var decl = list[i];
1905
1937
 
1906
- this.checkPatternExport(exports, decl.id);
1938
+ this.checkPatternExport(exports$1, decl.id);
1907
1939
  }
1908
1940
  };
1909
1941
 
@@ -1918,13 +1950,13 @@ pp$8.shouldParseExportStatement = function() {
1918
1950
 
1919
1951
  // Parses a comma-separated list of module exports.
1920
1952
 
1921
- pp$8.parseExportSpecifier = function(exports) {
1953
+ pp$8.parseExportSpecifier = function(exports$1) {
1922
1954
  var node = this.startNode();
1923
1955
  node.local = this.parseModuleExportName();
1924
1956
 
1925
1957
  node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local;
1926
1958
  this.checkExport(
1927
- exports,
1959
+ exports$1,
1928
1960
  node.exported,
1929
1961
  node.exported.start
1930
1962
  );
@@ -1932,7 +1964,7 @@ pp$8.parseExportSpecifier = function(exports) {
1932
1964
  return this.finishNode(node, "ExportSpecifier")
1933
1965
  };
1934
1966
 
1935
- pp$8.parseExportSpecifiers = function(exports) {
1967
+ pp$8.parseExportSpecifiers = function(exports$1) {
1936
1968
  var nodes = [], first = true;
1937
1969
  // export { x, y as z } [from '...']
1938
1970
  this.expect(types$1.braceL);
@@ -1942,7 +1974,7 @@ pp$8.parseExportSpecifiers = function(exports) {
1942
1974
  if (this.afterTrailingComma(types$1.braceR)) { break }
1943
1975
  } else { first = false; }
1944
1976
 
1945
- nodes.push(this.parseExportSpecifier(exports));
1977
+ nodes.push(this.parseExportSpecifier(exports$1));
1946
1978
  }
1947
1979
  return nodes
1948
1980
  };
@@ -2673,15 +2705,19 @@ pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {
2673
2705
  // delayed syntax error at correct position).
2674
2706
 
2675
2707
  pp$5.parseExpression = function(forInit, refDestructuringErrors) {
2676
- var startPos = this.start, startLoc = this.startLoc;
2677
- var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);
2678
- if (this.type === types$1.comma) {
2679
- var node = this.startNodeAt(startPos, startLoc);
2680
- node.expressions = [expr];
2681
- while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }
2682
- return this.finishNode(node, "SequenceExpression")
2683
- }
2684
- return expr
2708
+ var this$1$1 = this;
2709
+
2710
+ return this.catchStackOverflow(function () {
2711
+ var startPos = this$1$1.start, startLoc = this$1$1.startLoc;
2712
+ var expr = this$1$1.parseMaybeAssign(forInit, refDestructuringErrors);
2713
+ if (this$1$1.type === types$1.comma) {
2714
+ var node = this$1$1.startNodeAt(startPos, startLoc);
2715
+ node.expressions = [expr];
2716
+ while (this$1$1.eat(types$1.comma)) { node.expressions.push(this$1$1.parseMaybeAssign(forInit, refDestructuringErrors)); }
2717
+ return this$1$1.finishNode(node, "SequenceExpression")
2718
+ }
2719
+ return expr
2720
+ })
2685
2721
  };
2686
2722
 
2687
2723
  // Parse an assignment expression. This includes applications of
@@ -2746,7 +2782,7 @@ pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {
2746
2782
  var startPos = this.start, startLoc = this.startLoc;
2747
2783
  var expr = this.parseExprOps(forInit, refDestructuringErrors);
2748
2784
  if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
2749
- if (this.eat(types$1.question)) {
2785
+ if (!(expr.type === "ArrowFunctionExpression" && expr.start === startPos) && this.eat(types$1.question)) {
2750
2786
  var node = this.startNodeAt(startPos, startLoc);
2751
2787
  node.test = expr;
2752
2788
  node.consequent = this.parseMaybeAssign();
@@ -3298,6 +3334,8 @@ pp$5.parseNew = function() {
3298
3334
  }
3299
3335
  var startPos = this.start, startLoc = this.startLoc;
3300
3336
  node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false);
3337
+ if (node.callee.type === "Super")
3338
+ { this.raiseRecoverable(startPos, "Invalid use of 'super'"); }
3301
3339
  if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }
3302
3340
  else { node.arguments = empty; }
3303
3341
  return this.finishNode(node, "NewExpression")
@@ -6214,7 +6252,7 @@ pp.readWord = function() {
6214
6252
  // [ghbt]: https://github.com/acornjs/acorn/issues
6215
6253
 
6216
6254
 
6217
- var version = "8.16.0";
6255
+ var version = "8.17.0";
6218
6256
 
6219
6257
  Parser.acorn = {
6220
6258
  Parser: Parser,
@@ -16,14 +16,14 @@
16
16
  ],
17
17
  "./package.json": "./package.json"
18
18
  },
19
- "version": "8.16.0",
19
+ "version": "8.17.0",
20
20
  "engines": {
21
21
  "node": ">=0.4.0"
22
22
  },
23
23
  "maintainers": [
24
24
  {
25
25
  "name": "Marijn Haverbeke",
26
- "email": "marijnh@gmail.com",
26
+ "email": "marijn@haverbeke.berlin",
27
27
  "web": "https://marijnhaverbeke.nl"
28
28
  },
29
29
  {