@abaplint/cli 2.108.9 → 2.108.11
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/build/cli.js +47 -9
- package/package.json +3 -3
package/build/cli.js
CHANGED
|
@@ -17959,7 +17959,7 @@ class Sequence {
|
|
|
17959
17959
|
}
|
|
17960
17960
|
run(statements, parent) {
|
|
17961
17961
|
let inn = statements;
|
|
17962
|
-
|
|
17962
|
+
let out = [];
|
|
17963
17963
|
for (const i of this.list) {
|
|
17964
17964
|
const match = i.run(inn, parent);
|
|
17965
17965
|
if (match.error) {
|
|
@@ -17971,7 +17971,14 @@ class Sequence {
|
|
|
17971
17971
|
errorMatched: out.length,
|
|
17972
17972
|
};
|
|
17973
17973
|
}
|
|
17974
|
-
|
|
17974
|
+
if (match.matched.length < 100) {
|
|
17975
|
+
out.push(...match.matched);
|
|
17976
|
+
}
|
|
17977
|
+
else {
|
|
17978
|
+
// avoid using the spread operator, it might trigger "Maximum call stack size exceeded"
|
|
17979
|
+
// when the number of matched elements is very large
|
|
17980
|
+
out = out.concat(match.matched);
|
|
17981
|
+
}
|
|
17975
17982
|
inn = match.unmatched;
|
|
17976
17983
|
}
|
|
17977
17984
|
return {
|
|
@@ -18103,7 +18110,7 @@ class Star {
|
|
|
18103
18110
|
}
|
|
18104
18111
|
run(statements, parent) {
|
|
18105
18112
|
let inn = statements;
|
|
18106
|
-
|
|
18113
|
+
let out = [];
|
|
18107
18114
|
while (true) {
|
|
18108
18115
|
if (inn.length === 0) {
|
|
18109
18116
|
return {
|
|
@@ -18135,7 +18142,14 @@ class Star {
|
|
|
18135
18142
|
};
|
|
18136
18143
|
}
|
|
18137
18144
|
}
|
|
18138
|
-
|
|
18145
|
+
if (match.matched.length < 100) {
|
|
18146
|
+
out.push(...match.matched);
|
|
18147
|
+
}
|
|
18148
|
+
else {
|
|
18149
|
+
// avoid using the spread operator, it might trigger "Maximum call stack size exceeded"
|
|
18150
|
+
// when the number of matched elements is very large
|
|
18151
|
+
out = out.concat(match.matched);
|
|
18152
|
+
}
|
|
18139
18153
|
inn = match.unmatched;
|
|
18140
18154
|
}
|
|
18141
18155
|
}
|
|
@@ -50766,6 +50780,10 @@ const Types = __webpack_require__(/*! ../abap/types/basic */ "./node_modules/@ab
|
|
|
50766
50780
|
const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
|
|
50767
50781
|
const xml_utils_1 = __webpack_require__(/*! ../xml_utils */ "./node_modules/@abaplint/core/build/src/xml_utils.js");
|
|
50768
50782
|
const ddic_1 = __webpack_require__(/*! ../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
|
|
50783
|
+
var ViewClass;
|
|
50784
|
+
(function (ViewClass) {
|
|
50785
|
+
ViewClass["ExternalView"] = "X";
|
|
50786
|
+
})(ViewClass || (ViewClass = {}));
|
|
50769
50787
|
class View extends _abstract_object_1.AbstractObject {
|
|
50770
50788
|
getType() {
|
|
50771
50789
|
return "VIEW";
|
|
@@ -50809,6 +50827,16 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
50809
50827
|
// ignore, this is a special case of old style .INCLUDE
|
|
50810
50828
|
continue;
|
|
50811
50829
|
}
|
|
50830
|
+
else if (this.parsedData.header.VIEWCLASS === ViewClass.ExternalView) {
|
|
50831
|
+
components.push({
|
|
50832
|
+
name: field.VIEWFIELD,
|
|
50833
|
+
type: new Types.VoidType("ExternalView")
|
|
50834
|
+
});
|
|
50835
|
+
continue;
|
|
50836
|
+
}
|
|
50837
|
+
else if (field.TABNAME === this.getName()) {
|
|
50838
|
+
throw new Error("Unexpected self reference in view " + this.getName() + ", " + field.FIELDNAME + " " + field.FIELDNAME);
|
|
50839
|
+
}
|
|
50812
50840
|
const lookup = ddic.lookupTableOrView(field.TABNAME);
|
|
50813
50841
|
let found = lookup.type;
|
|
50814
50842
|
if (lookup.object) {
|
|
@@ -50844,13 +50872,23 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
50844
50872
|
}
|
|
50845
50873
|
///////////////
|
|
50846
50874
|
parseXML() {
|
|
50847
|
-
var _a, _b;
|
|
50848
|
-
this.parsedData = {
|
|
50875
|
+
var _a, _b, _c;
|
|
50876
|
+
this.parsedData = {
|
|
50877
|
+
header: {
|
|
50878
|
+
VIEWCLASS: "",
|
|
50879
|
+
},
|
|
50880
|
+
fields: [],
|
|
50881
|
+
join: [],
|
|
50882
|
+
};
|
|
50849
50883
|
const parsed = super.parseRaw2();
|
|
50850
50884
|
if (parsed === undefined || parsed.abapGit === undefined) {
|
|
50851
50885
|
return;
|
|
50852
50886
|
}
|
|
50853
|
-
const
|
|
50887
|
+
const header = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null || _a === void 0 ? void 0 : _a.DD25V;
|
|
50888
|
+
this.parsedData.header = {
|
|
50889
|
+
VIEWCLASS: (header === null || header === void 0 ? void 0 : header.VIEWCLASS) || "",
|
|
50890
|
+
};
|
|
50891
|
+
const fields = (_b = parsed.abapGit["asx:abap"]["asx:values"]) === null || _b === void 0 ? void 0 : _b.DD27P_TABLE;
|
|
50854
50892
|
for (const field of (0, xml_utils_1.xmlToArray)(fields === null || fields === void 0 ? void 0 : fields.DD27P)) {
|
|
50855
50893
|
this.parsedData.fields.push({
|
|
50856
50894
|
VIEWFIELD: field.VIEWFIELD,
|
|
@@ -50858,7 +50896,7 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
50858
50896
|
FIELDNAME: field.FIELDNAME,
|
|
50859
50897
|
});
|
|
50860
50898
|
}
|
|
50861
|
-
const join = (
|
|
50899
|
+
const join = (_c = parsed.abapGit["asx:abap"]["asx:values"]) === null || _c === void 0 ? void 0 : _c.DD28J_TABLE;
|
|
50862
50900
|
for (const j of (0, xml_utils_1.xmlToArray)(join === null || join === void 0 ? void 0 : join.DD28J)) {
|
|
50863
50901
|
this.parsedData.join.push({
|
|
50864
50902
|
LTAB: j.LTAB,
|
|
@@ -51592,7 +51630,7 @@ class Registry {
|
|
|
51592
51630
|
}
|
|
51593
51631
|
static abaplintVersion() {
|
|
51594
51632
|
// magic, see build script "version.sh"
|
|
51595
|
-
return "2.108.
|
|
51633
|
+
return "2.108.11";
|
|
51596
51634
|
}
|
|
51597
51635
|
getDDICReferences() {
|
|
51598
51636
|
return this.ddicReferences;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.108.
|
|
3
|
+
"version": "2.108.11",
|
|
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.
|
|
41
|
+
"@abaplint/core": "^2.108.11",
|
|
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.
|
|
46
|
+
"@types/node": "^20.12.13",
|
|
47
47
|
"@types/progress": "^2.0.7",
|
|
48
48
|
"chai": "^4.4.1",
|
|
49
49
|
"chalk": "^5.3.0",
|