@abaplint/cli 2.108.10 → 2.108.12

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 (2) hide show
  1. package/build/cli.js +45 -9
  2. package/package.json +3 -3
package/build/cli.js CHANGED
@@ -2980,7 +2980,7 @@ class Star {
2980
2980
  return this.sta.getUsing();
2981
2981
  }
2982
2982
  run(r) {
2983
- const result = r;
2983
+ let result = r;
2984
2984
  try {
2985
2985
  let res = r;
2986
2986
  let input = [];
@@ -2990,7 +2990,13 @@ class Star {
2990
2990
  if (res.length === 0) {
2991
2991
  break;
2992
2992
  }
2993
- result.push(...res);
2993
+ if (res.length > 1000) {
2994
+ // avoid stack overflow
2995
+ result = result.concat(res);
2996
+ }
2997
+ else {
2998
+ result.push(...res);
2999
+ }
2994
3000
  }
2995
3001
  }
2996
3002
  catch (err) {
@@ -3123,7 +3129,7 @@ class Sequence {
3123
3129
  return this.list.reduce((a, c) => { return a.concat(c.getUsing()); }, []);
3124
3130
  }
3125
3131
  run(r) {
3126
- const result = [];
3132
+ let result = [];
3127
3133
  for (const input of r) {
3128
3134
  let temp = [input];
3129
3135
  let match = true;
@@ -3135,7 +3141,13 @@ class Sequence {
3135
3141
  }
3136
3142
  }
3137
3143
  if (match === true) {
3138
- result.push(...temp);
3144
+ if (temp.length > 1000) {
3145
+ // avoid stack overflow
3146
+ result = result.concat(temp);
3147
+ }
3148
+ else {
3149
+ result.push(...temp);
3150
+ }
3139
3151
  }
3140
3152
  }
3141
3153
  return result;
@@ -50780,6 +50792,10 @@ const Types = __webpack_require__(/*! ../abap/types/basic */ "./node_modules/@ab
50780
50792
  const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
50781
50793
  const xml_utils_1 = __webpack_require__(/*! ../xml_utils */ "./node_modules/@abaplint/core/build/src/xml_utils.js");
50782
50794
  const ddic_1 = __webpack_require__(/*! ../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
50795
+ var ViewClass;
50796
+ (function (ViewClass) {
50797
+ ViewClass["ExternalView"] = "X";
50798
+ })(ViewClass || (ViewClass = {}));
50783
50799
  class View extends _abstract_object_1.AbstractObject {
50784
50800
  getType() {
50785
50801
  return "VIEW";
@@ -50823,6 +50839,16 @@ class View extends _abstract_object_1.AbstractObject {
50823
50839
  // ignore, this is a special case of old style .INCLUDE
50824
50840
  continue;
50825
50841
  }
50842
+ else if (this.parsedData.header.VIEWCLASS === ViewClass.ExternalView) {
50843
+ components.push({
50844
+ name: field.VIEWFIELD,
50845
+ type: new Types.VoidType("ExternalView")
50846
+ });
50847
+ continue;
50848
+ }
50849
+ else if (field.TABNAME === this.getName()) {
50850
+ throw new Error("Unexpected self reference in view " + this.getName() + ", " + field.FIELDNAME + " " + field.FIELDNAME);
50851
+ }
50826
50852
  const lookup = ddic.lookupTableOrView(field.TABNAME);
50827
50853
  let found = lookup.type;
50828
50854
  if (lookup.object) {
@@ -50858,13 +50884,23 @@ class View extends _abstract_object_1.AbstractObject {
50858
50884
  }
50859
50885
  ///////////////
50860
50886
  parseXML() {
50861
- var _a, _b;
50862
- this.parsedData = { fields: [], join: [] };
50887
+ var _a, _b, _c;
50888
+ this.parsedData = {
50889
+ header: {
50890
+ VIEWCLASS: "",
50891
+ },
50892
+ fields: [],
50893
+ join: [],
50894
+ };
50863
50895
  const parsed = super.parseRaw2();
50864
50896
  if (parsed === undefined || parsed.abapGit === undefined) {
50865
50897
  return;
50866
50898
  }
50867
- const fields = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null || _a === void 0 ? void 0 : _a.DD27P_TABLE;
50899
+ const header = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null || _a === void 0 ? void 0 : _a.DD25V;
50900
+ this.parsedData.header = {
50901
+ VIEWCLASS: (header === null || header === void 0 ? void 0 : header.VIEWCLASS) || "",
50902
+ };
50903
+ const fields = (_b = parsed.abapGit["asx:abap"]["asx:values"]) === null || _b === void 0 ? void 0 : _b.DD27P_TABLE;
50868
50904
  for (const field of (0, xml_utils_1.xmlToArray)(fields === null || fields === void 0 ? void 0 : fields.DD27P)) {
50869
50905
  this.parsedData.fields.push({
50870
50906
  VIEWFIELD: field.VIEWFIELD,
@@ -50872,7 +50908,7 @@ class View extends _abstract_object_1.AbstractObject {
50872
50908
  FIELDNAME: field.FIELDNAME,
50873
50909
  });
50874
50910
  }
50875
- const join = (_b = parsed.abapGit["asx:abap"]["asx:values"]) === null || _b === void 0 ? void 0 : _b.DD28J_TABLE;
50911
+ const join = (_c = parsed.abapGit["asx:abap"]["asx:values"]) === null || _c === void 0 ? void 0 : _c.DD28J_TABLE;
50876
50912
  for (const j of (0, xml_utils_1.xmlToArray)(join === null || join === void 0 ? void 0 : join.DD28J)) {
50877
50913
  this.parsedData.join.push({
50878
50914
  LTAB: j.LTAB,
@@ -51606,7 +51642,7 @@ class Registry {
51606
51642
  }
51607
51643
  static abaplintVersion() {
51608
51644
  // magic, see build script "version.sh"
51609
- return "2.108.10";
51645
+ return "2.108.12";
51610
51646
  }
51611
51647
  getDDICReferences() {
51612
51648
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.108.10",
3
+ "version": "2.108.12",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,12 +38,12 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.108.10",
41
+ "@abaplint/core": "^2.108.12",
42
42
  "@types/chai": "^4.3.16",
43
43
  "@types/glob": "^8.1.0",
44
44
  "@types/minimist": "^1.2.5",
45
45
  "@types/mocha": "^10.0.6",
46
- "@types/node": "^20.12.12",
46
+ "@types/node": "^20.13.0",
47
47
  "@types/progress": "^2.0.7",
48
48
  "chai": "^4.4.1",
49
49
  "chalk": "^5.3.0",