@abaplint/cli 2.120.18 → 2.120.19
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 +265 -112
- package/package.json +2 -2
package/build/cli.js
CHANGED
|
@@ -6139,7 +6139,7 @@ class MessageSource extends combi_1.Expression {
|
|
|
6139
6139
|
getRunnable() {
|
|
6140
6140
|
const msgid = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeft), _1.MessageClass, (0, combi_1.tok)(tokens_1.ParenRightW));
|
|
6141
6141
|
const simple = (0, combi_1.seq)(_1.MessageTypeAndNumber, (0, combi_1.opt)(msgid));
|
|
6142
|
-
const mess1 = (0, combi_1.seq)("ID", _1.
|
|
6142
|
+
const mess1 = (0, combi_1.seq)("ID", _1.SimpleSource3, "TYPE", _1.SimpleSource3, "NUMBER", (0, combi_1.altPrio)(_1.MessageNumber, _1.SimpleSource3));
|
|
6143
6143
|
return (0, combi_1.altPrio)(simple, mess1);
|
|
6144
6144
|
}
|
|
6145
6145
|
}
|
|
@@ -7563,7 +7563,7 @@ class Source extends combi_1.Expression {
|
|
|
7563
7563
|
const value = (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.seq)("VALUE", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.ValueBody, rparenNoSpace, (0, combi_1.optPrio)(after)), { also: combi_1.AlsoIn.OpenABAP });
|
|
7564
7564
|
const cond = (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.seq)("COND", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.CondBody, rparenNoSpace, (0, combi_1.optPrio)(after)), { also: combi_1.AlsoIn.OpenABAP });
|
|
7565
7565
|
const reff = (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.seq)("REF", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), Source, (0, combi_1.optPrio)("OPTIONAL"), rparen), { also: combi_1.AlsoIn.OpenABAP });
|
|
7566
|
-
const exact = (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.seq)("EXACT", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), Source, rparen, (0, combi_1.optPrio)(after)));
|
|
7566
|
+
const exact = (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.seq)("EXACT", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), Source, rparen, (0, combi_1.optPrio)(after)), { also: combi_1.AlsoIn.OpenABAP });
|
|
7567
7567
|
const filter = (0, combi_1.ver)(version_1.Release.v740sp08, (0, combi_1.seq)("FILTER", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.FilterBody, rparen), { also: combi_1.AlsoIn.OpenABAP });
|
|
7568
7568
|
const reduce = (0, combi_1.ver)(version_1.Release.v740sp08, (0, combi_1.seq)("REDUCE", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), _1.ReduceBody, rparen, (0, combi_1.optPrio)(after)), { also: combi_1.AlsoIn.OpenABAP });
|
|
7569
7569
|
const prefix1 = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WDashW), (0, combi_1.tok)(tokens_1.WPlusW));
|
|
@@ -31969,6 +31969,9 @@ class MessageSource {
|
|
|
31969
31969
|
for (const f of node.findDirectExpressions(Expressions.Source)) {
|
|
31970
31970
|
source_1.Source.runSyntax(f, input);
|
|
31971
31971
|
}
|
|
31972
|
+
for (const f of node.findDirectExpressions(Expressions.SimpleSource3)) {
|
|
31973
|
+
source_1.Source.runSyntax(f, input);
|
|
31974
|
+
}
|
|
31972
31975
|
if (node.getFirstToken().getStr().toUpperCase() === "ID") {
|
|
31973
31976
|
const id = (_a = node.findExpressionAfterToken("ID")) === null || _a === void 0 ? void 0 : _a.concatTokens();
|
|
31974
31977
|
let number = (_b = node.findDirectExpression(Expressions.MessageNumber)) === null || _b === void 0 ? void 0 : _b.concatTokens();
|
|
@@ -35469,7 +35472,7 @@ class Target {
|
|
|
35469
35472
|
&& !(context instanceof basic_1.VoidType)
|
|
35470
35473
|
&& !(context instanceof unknown_type_1.UnknownType)
|
|
35471
35474
|
&& !(context instanceof unknown_type_1.UnknownType)) {
|
|
35472
|
-
const message =
|
|
35475
|
+
const message = `Not an internal table, "${node.concatTokens()}"`;
|
|
35473
35476
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
35474
35477
|
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
35475
35478
|
}
|
|
@@ -60052,21 +60055,22 @@ class ABAPObject extends _abstract_object_1.AbstractObject {
|
|
|
60052
60055
|
return this.textsTranslations;
|
|
60053
60056
|
}
|
|
60054
60057
|
findTexts(parsed) {
|
|
60055
|
-
var _a, _b, _c, _d, _e, _f;
|
|
60056
|
-
var
|
|
60058
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
60059
|
+
var _j;
|
|
60057
60060
|
this.texts = {};
|
|
60058
60061
|
if (((_d = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.TPOOL) === null || _d === void 0 ? void 0 : _d.item) === undefined) {
|
|
60059
60062
|
return;
|
|
60060
60063
|
}
|
|
60061
|
-
for (const t of (0, xml_utils_1.xmlToArray)(parsed.abapGit["asx:abap"]["asx:values"].TPOOL.item)) {
|
|
60062
|
-
const id = (
|
|
60064
|
+
for (const t of (0, xml_utils_1.xmlToArray)((_h = (_g = (_f = (_e = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _e === void 0 ? void 0 : _e["asx:abap"]) === null || _f === void 0 ? void 0 : _f["asx:values"]) === null || _g === void 0 ? void 0 : _g.TPOOL) === null || _h === void 0 ? void 0 : _h.item)) {
|
|
60065
|
+
const id = typeof (t === null || t === void 0 ? void 0 : t.ID) === "string" ? t.ID.toUpperCase() : undefined;
|
|
60063
60066
|
if (id === undefined) {
|
|
60064
60067
|
continue;
|
|
60065
60068
|
}
|
|
60066
60069
|
if (id !== "R" && t.KEY === undefined) {
|
|
60067
60070
|
continue;
|
|
60068
60071
|
}
|
|
60069
|
-
const
|
|
60072
|
+
const rawKey = (_j = t.KEY) !== null && _j !== void 0 ? _j : t.ID;
|
|
60073
|
+
const key = typeof rawKey === "string" ? rawKey.toUpperCase() : undefined;
|
|
60070
60074
|
if (key === undefined) {
|
|
60071
60075
|
continue;
|
|
60072
60076
|
}
|
|
@@ -60077,8 +60081,8 @@ class ABAPObject extends _abstract_object_1.AbstractObject {
|
|
|
60077
60081
|
}
|
|
60078
60082
|
}
|
|
60079
60083
|
findTextsTranslations(parsed) {
|
|
60080
|
-
var _a, _b, _c, _d, _e
|
|
60081
|
-
var
|
|
60084
|
+
var _a, _b, _c, _d, _e;
|
|
60085
|
+
var _f;
|
|
60082
60086
|
this.textsTranslations = [];
|
|
60083
60087
|
const values = (_d = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.I18N_TPOOL) === null || _d === void 0 ? void 0 : _d.item;
|
|
60084
60088
|
if (values === undefined) {
|
|
@@ -60087,7 +60091,8 @@ class ABAPObject extends _abstract_object_1.AbstractObject {
|
|
|
60087
60091
|
for (const langItem of (0, xml_utils_1.xmlToArray)(values)) {
|
|
60088
60092
|
const textElements = {};
|
|
60089
60093
|
for (const item of (0, xml_utils_1.xmlToArray)((_e = langItem.TEXTPOOL) === null || _e === void 0 ? void 0 : _e.item)) {
|
|
60090
|
-
const
|
|
60094
|
+
const rawKey = (_f = item.KEY) !== null && _f !== void 0 ? _f : item.ID;
|
|
60095
|
+
const key = typeof rawKey === "string" ? rawKey.toUpperCase() : undefined;
|
|
60091
60096
|
if (key !== undefined) {
|
|
60092
60097
|
textElements[key] = { entry: (0, xml_utils_1.unescape)(item.ENTRY), maxLength: parseInt(item.LENGTH, 10) };
|
|
60093
60098
|
}
|
|
@@ -60248,11 +60253,14 @@ function parseNumber(value) {
|
|
|
60248
60253
|
return parseInt(value, 10);
|
|
60249
60254
|
}
|
|
60250
60255
|
function parseDynpros(parsed) {
|
|
60251
|
-
var _a, _b, _c, _d;
|
|
60256
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
60252
60257
|
const dynpros = [];
|
|
60253
60258
|
const xmlDynpros = (_c = (_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.DYNPROS;
|
|
60254
60259
|
if (xmlDynpros !== undefined) {
|
|
60255
60260
|
for (const d of (0, xml_utils_1.xmlToArray)(xmlDynpros.item)) {
|
|
60261
|
+
if ((d === null || d === void 0 ? void 0 : d.HEADER) === undefined) {
|
|
60262
|
+
continue;
|
|
60263
|
+
}
|
|
60256
60264
|
const fields = [];
|
|
60257
60265
|
for (const f of (0, xml_utils_1.xmlToArray)((_d = d.FIELDS) === null || _d === void 0 ? void 0 : _d.RPY_DYFATC)) {
|
|
60258
60266
|
fields.push({
|
|
@@ -60267,10 +60275,10 @@ function parseDynpros(parsed) {
|
|
|
60267
60275
|
});
|
|
60268
60276
|
}
|
|
60269
60277
|
dynpros.push({
|
|
60270
|
-
number: d.HEADER.SCREEN,
|
|
60271
|
-
description: d.HEADER.DESCRIPT,
|
|
60272
|
-
nextScreen: d.HEADER.NEXTSCREEN,
|
|
60273
|
-
type: d.HEADER.TYPE,
|
|
60278
|
+
number: (_e = d.HEADER) === null || _e === void 0 ? void 0 : _e.SCREEN,
|
|
60279
|
+
description: (_f = d.HEADER) === null || _f === void 0 ? void 0 : _f.DESCRIPT,
|
|
60280
|
+
nextScreen: (_g = d.HEADER) === null || _g === void 0 ? void 0 : _g.NEXTSCREEN,
|
|
60281
|
+
type: (_h = d.HEADER) === null || _h === void 0 ? void 0 : _h.TYPE,
|
|
60274
60282
|
fields: fields,
|
|
60275
60283
|
});
|
|
60276
60284
|
}
|
|
@@ -60757,7 +60765,7 @@ class AuthorizationCheckField extends _abstract_object_1.AbstractObject {
|
|
|
60757
60765
|
}
|
|
60758
60766
|
}
|
|
60759
60767
|
parse() {
|
|
60760
|
-
var _a;
|
|
60768
|
+
var _a, _b, _c, _d, _e, _f;
|
|
60761
60769
|
if (this.parsedXML) {
|
|
60762
60770
|
return { updated: false, runtime: 0 };
|
|
60763
60771
|
}
|
|
@@ -60766,10 +60774,10 @@ class AuthorizationCheckField extends _abstract_object_1.AbstractObject {
|
|
|
60766
60774
|
const parsed = super.parseRaw2();
|
|
60767
60775
|
if (parsed === undefined
|
|
60768
60776
|
|| parsed.abapGit === undefined
|
|
60769
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
60777
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
60770
60778
|
return { updated: false, runtime: 0 };
|
|
60771
60779
|
}
|
|
60772
|
-
this.parsedXML.rollname = (
|
|
60780
|
+
this.parsedXML.rollname = (_f = (_e = (_d = (_c = parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.AUTHX) === null || _f === void 0 ? void 0 : _f.ROLLNAME;
|
|
60773
60781
|
const end = Date.now();
|
|
60774
60782
|
return { updated: true, runtime: end - start };
|
|
60775
60783
|
}
|
|
@@ -61616,17 +61624,16 @@ class Class extends _abap_object_1.ABAPObject {
|
|
|
61616
61624
|
}
|
|
61617
61625
|
/////////////////////////
|
|
61618
61626
|
parseXML() {
|
|
61627
|
+
var _a, _b, _c, _d, _e;
|
|
61619
61628
|
if (this.parsedXML !== undefined) {
|
|
61620
61629
|
return;
|
|
61621
61630
|
}
|
|
61622
61631
|
this.parsedXML = {};
|
|
61623
61632
|
const parsed = super.parseRaw2();
|
|
61624
|
-
if (parsed === undefined
|
|
61625
|
-
|| parsed.abapGit["asx:abap"] === undefined
|
|
61626
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
61633
|
+
if (((_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
61627
61634
|
return;
|
|
61628
61635
|
}
|
|
61629
|
-
const vseo = parsed.abapGit["asx:abap"]["asx:values"].VSEOCLASS;
|
|
61636
|
+
const vseo = (_e = (_d = (_c = parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.VSEOCLASS;
|
|
61630
61637
|
if (vseo === undefined) {
|
|
61631
61638
|
return;
|
|
61632
61639
|
}
|
|
@@ -62307,6 +62314,11 @@ class DataElement extends _abstract_object_1.AbstractObject {
|
|
|
62307
62314
|
this.parse();
|
|
62308
62315
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.textsTranslations;
|
|
62309
62316
|
}
|
|
62317
|
+
getDtelMaster() {
|
|
62318
|
+
var _a;
|
|
62319
|
+
this.parse();
|
|
62320
|
+
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.dtelmaster;
|
|
62321
|
+
}
|
|
62310
62322
|
parseType(reg) {
|
|
62311
62323
|
var _a;
|
|
62312
62324
|
const references = [];
|
|
@@ -62384,6 +62396,7 @@ class DataElement extends _abstract_object_1.AbstractObject {
|
|
|
62384
62396
|
datatype: dd04v === null || dd04v === void 0 ? void 0 : dd04v.DATATYPE,
|
|
62385
62397
|
leng: dd04v === null || dd04v === void 0 ? void 0 : dd04v.LENG,
|
|
62386
62398
|
decimals: dd04v === null || dd04v === void 0 ? void 0 : dd04v.DECIMALS,
|
|
62399
|
+
dtelmaster: dd04v === null || dd04v === void 0 ? void 0 : dd04v.DTELMASTER,
|
|
62387
62400
|
texts: {
|
|
62388
62401
|
short: dd04v === null || dd04v === void 0 ? void 0 : dd04v.SCRTEXT_S,
|
|
62389
62402
|
medium: dd04v === null || dd04v === void 0 ? void 0 : dd04v.SCRTEXT_M,
|
|
@@ -62820,6 +62833,7 @@ class EnhancementImplementation extends _abstract_object_1.AbstractObject {
|
|
|
62820
62833
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.description;
|
|
62821
62834
|
}
|
|
62822
62835
|
parse() {
|
|
62836
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
62823
62837
|
if (this.parsedXML) {
|
|
62824
62838
|
return { updated: false, runtime: 0 };
|
|
62825
62839
|
}
|
|
@@ -62828,11 +62842,11 @@ class EnhancementImplementation extends _abstract_object_1.AbstractObject {
|
|
|
62828
62842
|
const parsed = super.parseRaw2();
|
|
62829
62843
|
if (parsed === undefined
|
|
62830
62844
|
|| parsed.abapGit === undefined
|
|
62831
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
62845
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
62832
62846
|
return { updated: false, runtime: 0 };
|
|
62833
62847
|
}
|
|
62834
|
-
this.parsedXML.className = parsed.abapGit["asx:abap"]["asx:values"].CLASS;
|
|
62835
|
-
this.parsedXML.description = parsed.abapGit["asx:abap"]["asx:values"].SHORTTEXT;
|
|
62848
|
+
this.parsedXML.className = (_e = (_d = (_c = parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.CLASS;
|
|
62849
|
+
this.parsedXML.description = (_h = (_g = (_f = parsed.abapGit) === null || _f === void 0 ? void 0 : _f["asx:abap"]) === null || _g === void 0 ? void 0 : _g["asx:values"]) === null || _h === void 0 ? void 0 : _h.SHORTTEXT;
|
|
62836
62850
|
const end = Date.now();
|
|
62837
62851
|
return { updated: true, runtime: end - start };
|
|
62838
62852
|
}
|
|
@@ -62880,13 +62894,13 @@ class EnhancementSpot extends _abstract_object_1.AbstractObject {
|
|
|
62880
62894
|
}
|
|
62881
62895
|
/////////////////
|
|
62882
62896
|
parseXML() {
|
|
62883
|
-
var _a, _b;
|
|
62897
|
+
var _a, _b, _c, _d;
|
|
62884
62898
|
const parsed = super.parseRaw2();
|
|
62885
62899
|
if (parsed === undefined) {
|
|
62886
62900
|
return [];
|
|
62887
62901
|
}
|
|
62888
62902
|
const ret = [];
|
|
62889
|
-
for (const b of (0, xml_utils_1.xmlToArray)((_b = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
62903
|
+
for (const b of (0, xml_utils_1.xmlToArray)((_d = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.BADI_DATA) === null || _d === void 0 ? void 0 : _d.ENH_BADI_DATA)) {
|
|
62890
62904
|
ret.push({
|
|
62891
62905
|
name: b.BADI_NAME,
|
|
62892
62906
|
interface: b.INTERFACE_NAME,
|
|
@@ -63329,33 +63343,45 @@ class FunctionGroup extends _abap_object_1.ABAPObject {
|
|
|
63329
63343
|
if (found === undefined) {
|
|
63330
63344
|
return {};
|
|
63331
63345
|
}
|
|
63332
|
-
|
|
63333
|
-
|
|
63346
|
+
try {
|
|
63347
|
+
const parsed = new fast_xml_parser_1.XMLParser({ parseTagValue: false, ignoreAttributes: true, trimValues: false }).parse(found.getRaw());
|
|
63348
|
+
this.findTexts(parsed);
|
|
63349
|
+
}
|
|
63350
|
+
catch (_b) {
|
|
63351
|
+
this.texts = {};
|
|
63352
|
+
}
|
|
63334
63353
|
}
|
|
63335
63354
|
return (_a = this.texts["I"]) !== null && _a !== void 0 ? _a : {};
|
|
63336
63355
|
}
|
|
63337
63356
|
/////////////////////////////////
|
|
63338
63357
|
parseXML() {
|
|
63339
|
-
var _a, _b, _c;
|
|
63358
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
63340
63359
|
this.includes = [];
|
|
63341
63360
|
this.modules = [];
|
|
63342
63361
|
const parsed = this.parseRaw2();
|
|
63343
63362
|
if (parsed === undefined) {
|
|
63344
63363
|
return;
|
|
63345
63364
|
}
|
|
63346
|
-
this.description = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
63365
|
+
this.description = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.AREAT;
|
|
63347
63366
|
this.dynpros = (0, _dynpros_1.parseDynpros)(parsed);
|
|
63348
63367
|
// INCLUDES
|
|
63349
|
-
const includes = (
|
|
63368
|
+
const includes = (_f = (_e = (_d = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _d === void 0 ? void 0 : _d["asx:abap"]) === null || _e === void 0 ? void 0 : _e["asx:values"]) === null || _f === void 0 ? void 0 : _f.INCLUDES;
|
|
63350
63369
|
if (includes !== undefined) {
|
|
63351
63370
|
for (const i of (0, xml_utils_1.xmlToArray)(includes.SOBJ_NAME)) {
|
|
63352
|
-
|
|
63371
|
+
if (typeof i === "string") {
|
|
63372
|
+
this.includes.push(i);
|
|
63373
|
+
}
|
|
63353
63374
|
}
|
|
63354
63375
|
}
|
|
63355
63376
|
// FUNCTION MODULES
|
|
63356
|
-
const functions = (
|
|
63377
|
+
const functions = (_j = (_h = (_g = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _g === void 0 ? void 0 : _g["asx:abap"]) === null || _h === void 0 ? void 0 : _h["asx:values"]) === null || _j === void 0 ? void 0 : _j.FUNCTIONS;
|
|
63357
63378
|
for (const module of (0, xml_utils_1.xmlToArray)(functions === null || functions === void 0 ? void 0 : functions.item)) {
|
|
63358
|
-
|
|
63379
|
+
try {
|
|
63380
|
+
this.modules.push(new types_1.FunctionModuleDefinition(module));
|
|
63381
|
+
}
|
|
63382
|
+
catch (_k) {
|
|
63383
|
+
// Ignore malformed function module metadata.
|
|
63384
|
+
}
|
|
63359
63385
|
}
|
|
63360
63386
|
}
|
|
63361
63387
|
findTextFile() {
|
|
@@ -63911,6 +63937,7 @@ class ICFService extends _abstract_object_1.AbstractObject {
|
|
|
63911
63937
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.handlers;
|
|
63912
63938
|
}
|
|
63913
63939
|
parse() {
|
|
63940
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
63914
63941
|
if (this.parsedXML) {
|
|
63915
63942
|
return { updated: false, runtime: 0 };
|
|
63916
63943
|
}
|
|
@@ -63919,17 +63946,17 @@ class ICFService extends _abstract_object_1.AbstractObject {
|
|
|
63919
63946
|
const parsed = super.parseRaw2();
|
|
63920
63947
|
if (parsed === undefined
|
|
63921
63948
|
|| parsed.abapGit === undefined
|
|
63922
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
63949
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
63923
63950
|
return { updated: false, runtime: 0 };
|
|
63924
63951
|
}
|
|
63925
|
-
const table = parsed.abapGit["asx:abap"]["asx:values"].ICFHANDLER_TABLE;
|
|
63952
|
+
const table = (_e = (_d = (_c = parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.ICFHANDLER_TABLE;
|
|
63926
63953
|
this.parsedXML.handlers = [];
|
|
63927
63954
|
for (const h of (0, xml_utils_1.xmlToArray)(table)) {
|
|
63928
63955
|
if (h.ICFHANDLER !== undefined) {
|
|
63929
63956
|
this.parsedXML.handlers.push(h.ICFHANDLER.ICFHANDLER);
|
|
63930
63957
|
}
|
|
63931
63958
|
}
|
|
63932
|
-
this.parsedXML.url = parsed.abapGit["asx:abap"]["asx:values"].URL;
|
|
63959
|
+
this.parsedXML.url = (_h = (_g = (_f = parsed.abapGit) === null || _f === void 0 ? void 0 : _f["asx:abap"]) === null || _g === void 0 ? void 0 : _g["asx:values"]) === null || _h === void 0 ? void 0 : _h.URL;
|
|
63933
63960
|
const end = Date.now();
|
|
63934
63961
|
return { updated: true, runtime: end - start };
|
|
63935
63962
|
}
|
|
@@ -64352,16 +64379,17 @@ class Interface extends _abap_object_1.ABAPObject {
|
|
|
64352
64379
|
}
|
|
64353
64380
|
/////////////////////////
|
|
64354
64381
|
parseXML() {
|
|
64382
|
+
var _a, _b, _c, _d, _e;
|
|
64355
64383
|
if (this.parsedXML !== undefined) {
|
|
64356
64384
|
return;
|
|
64357
64385
|
}
|
|
64358
64386
|
this.parsedXML = {};
|
|
64359
64387
|
const parsed = super.parseRaw2();
|
|
64360
64388
|
if (parsed === undefined
|
|
64361
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
64389
|
+
|| ((_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
64362
64390
|
return;
|
|
64363
64391
|
}
|
|
64364
|
-
const vseo = parsed.abapGit["asx:abap"]["asx:values"].VSEOINTERF;
|
|
64392
|
+
const vseo = (_e = (_d = (_c = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.VSEOINTERF;
|
|
64365
64393
|
if (vseo === undefined) {
|
|
64366
64394
|
this.parsedXML.description = "";
|
|
64367
64395
|
this.parsedXML.name = "";
|
|
@@ -64465,7 +64493,7 @@ class LockObject extends _abstract_object_1.AbstractObject {
|
|
|
64465
64493
|
}
|
|
64466
64494
|
}
|
|
64467
64495
|
parse() {
|
|
64468
|
-
var _a, _b;
|
|
64496
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
64469
64497
|
if (this.parsedXML) {
|
|
64470
64498
|
return { updated: false, runtime: 0 };
|
|
64471
64499
|
}
|
|
@@ -64474,11 +64502,11 @@ class LockObject extends _abstract_object_1.AbstractObject {
|
|
|
64474
64502
|
const parsed = super.parseRaw2();
|
|
64475
64503
|
if (parsed === undefined
|
|
64476
64504
|
|| parsed.abapGit === undefined
|
|
64477
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
64505
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
64478
64506
|
return { updated: false, runtime: 0 };
|
|
64479
64507
|
}
|
|
64480
|
-
this.parsedXML.primaryTable = (
|
|
64481
|
-
this.parsedXML.description = (
|
|
64508
|
+
this.parsedXML.primaryTable = (_f = (_e = (_d = (_c = parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.DD25V) === null || _f === void 0 ? void 0 : _f.ROOTTAB;
|
|
64509
|
+
this.parsedXML.description = (_k = (_j = (_h = (_g = parsed.abapGit) === null || _g === void 0 ? void 0 : _g["asx:abap"]) === null || _h === void 0 ? void 0 : _h["asx:values"]) === null || _j === void 0 ? void 0 : _j.DD25V) === null || _k === void 0 ? void 0 : _k.DDTEXT;
|
|
64482
64510
|
const end = Date.now();
|
|
64483
64511
|
return { updated: true, runtime: end - start };
|
|
64484
64512
|
}
|
|
@@ -64566,7 +64594,7 @@ class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {
|
|
|
64566
64594
|
}
|
|
64567
64595
|
}
|
|
64568
64596
|
parse() {
|
|
64569
|
-
var _a, _b, _c, _d;
|
|
64597
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
64570
64598
|
if (this.parsedXML) {
|
|
64571
64599
|
return { updated: false, runtime: 0 };
|
|
64572
64600
|
}
|
|
@@ -64575,12 +64603,12 @@ class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {
|
|
|
64575
64603
|
const parsed = super.parseRaw2();
|
|
64576
64604
|
if (parsed === undefined
|
|
64577
64605
|
|| parsed.abapGit === undefined
|
|
64578
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
64606
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
64579
64607
|
return { updated: false, runtime: 0 };
|
|
64580
64608
|
}
|
|
64581
|
-
this.parsedXML.area = (
|
|
64582
|
-
this.parsedXML.objectName = (
|
|
64583
|
-
this.parsedXML.objectType = (
|
|
64609
|
+
this.parsedXML.area = (_g = (_f = (_e = (_d = (_c = parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.TOBJ) === null || _f === void 0 ? void 0 : _f.TVDIR) === null || _g === void 0 ? void 0 : _g.AREA;
|
|
64610
|
+
this.parsedXML.objectName = (_l = (_k = (_j = (_h = parsed.abapGit) === null || _h === void 0 ? void 0 : _h["asx:abap"]) === null || _j === void 0 ? void 0 : _j["asx:values"]) === null || _k === void 0 ? void 0 : _k.OBJH) === null || _l === void 0 ? void 0 : _l.OBJECTNAME;
|
|
64611
|
+
this.parsedXML.objectType = (_q = (_p = (_o = (_m = parsed.abapGit) === null || _m === void 0 ? void 0 : _m["asx:abap"]) === null || _o === void 0 ? void 0 : _o["asx:values"]) === null || _p === void 0 ? void 0 : _p.OBJH) === null || _q === void 0 ? void 0 : _q.OBJECTTYPE;
|
|
64584
64612
|
const end = Date.now();
|
|
64585
64613
|
return { updated: true, runtime: end - start };
|
|
64586
64614
|
}
|
|
@@ -64653,7 +64681,7 @@ class MessageClass extends _abstract_object_1.AbstractObject {
|
|
|
64653
64681
|
}
|
|
64654
64682
|
/////////////////////////////////
|
|
64655
64683
|
parseXML() {
|
|
64656
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
64684
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
64657
64685
|
if (this.xml !== undefined) {
|
|
64658
64686
|
return;
|
|
64659
64687
|
}
|
|
@@ -64667,16 +64695,16 @@ class MessageClass extends _abstract_object_1.AbstractObject {
|
|
|
64667
64695
|
if (parsed === undefined) {
|
|
64668
64696
|
return;
|
|
64669
64697
|
}
|
|
64670
|
-
this.xml.topName = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]["asx:values"]) === null ||
|
|
64671
|
-
this.xml.description = (
|
|
64672
|
-
const t100 = (
|
|
64698
|
+
this.xml.topName = (_d = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.T100A) === null || _d === void 0 ? void 0 : _d.ARBGB;
|
|
64699
|
+
this.xml.description = (_h = (_g = (_f = (_e = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _e === void 0 ? void 0 : _e["asx:abap"]) === null || _f === void 0 ? void 0 : _f["asx:values"]) === null || _g === void 0 ? void 0 : _g.T100A) === null || _h === void 0 ? void 0 : _h.STEXT;
|
|
64700
|
+
const t100 = (_l = (_k = (_j = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _j === void 0 ? void 0 : _j["asx:abap"]) === null || _k === void 0 ? void 0 : _k["asx:values"]) === null || _l === void 0 ? void 0 : _l.T100;
|
|
64673
64701
|
if (t100 === undefined) {
|
|
64674
64702
|
return;
|
|
64675
64703
|
}
|
|
64676
64704
|
for (const msg of (0, xml_utils_1.xmlToArray)(t100.T100)) {
|
|
64677
64705
|
this.xml.parsedMessages.push(new message_1.Message(msg.MSGNR, (0, xml_utils_1.unescape)(msg.TEXT), msg.ARBGB));
|
|
64678
64706
|
}
|
|
64679
|
-
const t100_texts = (
|
|
64707
|
+
const t100_texts = (_p = (_o = (_m = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _m === void 0 ? void 0 : _m["asx:abap"]) === null || _o === void 0 ? void 0 : _o["asx:values"]) === null || _p === void 0 ? void 0 : _p.T100_TEXTS;
|
|
64680
64708
|
if (t100_texts === undefined) {
|
|
64681
64709
|
return;
|
|
64682
64710
|
}
|
|
@@ -64774,6 +64802,7 @@ class MIMEObject extends _abstract_object_1.AbstractObject {
|
|
|
64774
64802
|
return undefined;
|
|
64775
64803
|
}
|
|
64776
64804
|
parse() {
|
|
64805
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
64777
64806
|
if (this.parsedXML) {
|
|
64778
64807
|
return { updated: false, runtime: 0 };
|
|
64779
64808
|
}
|
|
@@ -64782,12 +64811,12 @@ class MIMEObject extends _abstract_object_1.AbstractObject {
|
|
|
64782
64811
|
const parsed = super.parseRaw2();
|
|
64783
64812
|
if (parsed === undefined
|
|
64784
64813
|
|| parsed.abapGit === undefined
|
|
64785
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
64814
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
64786
64815
|
return { updated: false, runtime: 0 };
|
|
64787
64816
|
}
|
|
64788
|
-
this.parsedXML.URL = parsed.abapGit["asx:abap"]["asx:values"].URL;
|
|
64789
|
-
this.parsedXML.CLASS = parsed.abapGit["asx:abap"]["asx:values"].CLASS;
|
|
64790
|
-
this.parsedXML.FOLDER = parsed.abapGit["asx:abap"]["asx:values"].FOLDER;
|
|
64817
|
+
this.parsedXML.URL = (_e = (_d = (_c = parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.URL;
|
|
64818
|
+
this.parsedXML.CLASS = (_h = (_g = (_f = parsed.abapGit) === null || _f === void 0 ? void 0 : _f["asx:abap"]) === null || _g === void 0 ? void 0 : _g["asx:values"]) === null || _h === void 0 ? void 0 : _h.CLASS;
|
|
64819
|
+
this.parsedXML.FOLDER = (_l = (_k = (_j = parsed.abapGit) === null || _j === void 0 ? void 0 : _j["asx:abap"]) === null || _k === void 0 ? void 0 : _k["asx:values"]) === null || _l === void 0 ? void 0 : _l.FOLDER;
|
|
64791
64820
|
const end = Date.now();
|
|
64792
64821
|
return { updated: true, runtime: end - start };
|
|
64793
64822
|
}
|
|
@@ -65635,10 +65664,10 @@ class Oauth2Profile extends _abstract_object_1.AbstractObject {
|
|
|
65635
65664
|
return undefined;
|
|
65636
65665
|
}
|
|
65637
65666
|
listScopes() {
|
|
65638
|
-
var _a, _b, _c;
|
|
65667
|
+
var _a, _b, _c, _d, _e;
|
|
65639
65668
|
const ret = [];
|
|
65640
65669
|
const parsed = super.parseRaw2();
|
|
65641
|
-
for (const t of (0, xml_utils_1.xmlToArray)((_c = (_b = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
65670
|
+
for (const t of (0, xml_utils_1.xmlToArray)((_e = (_d = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.PROFILE) === null || _d === void 0 ? void 0 : _d.T_SCOPES) === null || _e === void 0 ? void 0 : _e.OA2P_SCOPES)) {
|
|
65642
65671
|
ret.push(t.SCOPE);
|
|
65643
65672
|
}
|
|
65644
65673
|
return ret;
|
|
@@ -65923,7 +65952,7 @@ class Program extends _abap_object_1.ABAPObject {
|
|
|
65923
65952
|
}
|
|
65924
65953
|
////////////////////////////
|
|
65925
65954
|
parseXML() {
|
|
65926
|
-
var _a, _b, _c;
|
|
65955
|
+
var _a, _b, _c, _d;
|
|
65927
65956
|
if (this.parsedXML !== undefined) {
|
|
65928
65957
|
return;
|
|
65929
65958
|
}
|
|
@@ -65941,11 +65970,11 @@ class Program extends _abap_object_1.ABAPObject {
|
|
|
65941
65970
|
}
|
|
65942
65971
|
let description = "";
|
|
65943
65972
|
const selectionTexts = {};
|
|
65944
|
-
for (const t of (0, xml_utils_1.xmlToArray)((_c = (_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]["asx:values"]) === null ||
|
|
65973
|
+
for (const t of (0, xml_utils_1.xmlToArray)((_d = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.TPOOL) === null || _d === void 0 ? void 0 : _d.item)) {
|
|
65945
65974
|
if ((t === null || t === void 0 ? void 0 : t.ID) === "R") {
|
|
65946
65975
|
description = t.ENTRY ? (0, xml_utils_1.unescape)(t.ENTRY) : "";
|
|
65947
65976
|
}
|
|
65948
|
-
else if ((t === null || t === void 0 ? void 0 : t.ID) === "S" && t.KEY
|
|
65977
|
+
else if ((t === null || t === void 0 ? void 0 : t.ID) === "S" && typeof t.KEY === "string") {
|
|
65949
65978
|
selectionTexts[t.KEY.toUpperCase()] = { entry: t.ENTRY ? (0, xml_utils_1.unescape)(t.ENTRY) : "", maxLength: parseInt(t.LENGTH, 10) };
|
|
65950
65979
|
}
|
|
65951
65980
|
}
|
|
@@ -66012,20 +66041,19 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66012
66041
|
return { updated: true, runtime: end - start };
|
|
66013
66042
|
}
|
|
66014
66043
|
parseXML() {
|
|
66015
|
-
var _a, _b;
|
|
66044
|
+
var _a, _b, _c, _d, _e;
|
|
66016
66045
|
const result = { proxyData: [] };
|
|
66017
66046
|
const parsed = super.parseRaw2();
|
|
66018
66047
|
if (parsed === undefined
|
|
66019
66048
|
|| parsed.abapGit === undefined
|
|
66020
|
-
|| ((_a = parsed.abapGit["asx:abap"]) === null ||
|
|
66049
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
66021
66050
|
return result;
|
|
66022
66051
|
}
|
|
66023
|
-
const values = parsed.abapGit["asx:abap"]["asx:values"];
|
|
66024
|
-
result.proxyData = (0, xml_utils_1.xmlToArray)((
|
|
66052
|
+
const values = (_d = (_c = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"];
|
|
66053
|
+
result.proxyData = (0, xml_utils_1.xmlToArray)((_e = values.PROXY_DATA) === null || _e === void 0 ? void 0 : _e.item);
|
|
66025
66054
|
return result;
|
|
66026
66055
|
}
|
|
66027
66056
|
generateABAPObjects() {
|
|
66028
|
-
var _a, _b, _c, _d, _e;
|
|
66029
66057
|
this.parse();
|
|
66030
66058
|
const result = [];
|
|
66031
66059
|
if (!this.parsedXML) {
|
|
@@ -66033,7 +66061,7 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66033
66061
|
}
|
|
66034
66062
|
// Find interface definition
|
|
66035
66063
|
const intfItem = this.parsedXML.proxyData.find(i => i.R3_TYPE === "INTF");
|
|
66036
|
-
if (!intfItem ||
|
|
66064
|
+
if (!intfItem || typeof intfItem.R3_NAME !== "string") {
|
|
66037
66065
|
return result;
|
|
66038
66066
|
}
|
|
66039
66067
|
const intfName = intfItem.R3_NAME.toLowerCase();
|
|
@@ -66042,10 +66070,10 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66042
66070
|
// Build interface code
|
|
66043
66071
|
let code = `INTERFACE ${intfName} PUBLIC.\n`;
|
|
66044
66072
|
for (const method of methods) {
|
|
66045
|
-
|
|
66046
|
-
if (!methodName) {
|
|
66073
|
+
if (typeof method.R3_NAME !== "string") {
|
|
66047
66074
|
continue;
|
|
66048
66075
|
}
|
|
66076
|
+
const methodName = method.R3_NAME.toLowerCase();
|
|
66049
66077
|
// Find parameters for this method
|
|
66050
66078
|
const importingParameters = this.parsedXML.proxyData.filter(i => i.R3_TYPE === "PAIM" && i.OBJ_NAME1 === method.OBJ_NAME1);
|
|
66051
66079
|
const exportingParameters = this.parsedXML.proxyData.filter(i => i.R3_TYPE === "PAEX" && i.OBJ_NAME1 === method.OBJ_NAME1);
|
|
@@ -66054,8 +66082,8 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66054
66082
|
code += ` IMPORTING\n`;
|
|
66055
66083
|
for (let i = 0; i < importingParameters.length; i++) {
|
|
66056
66084
|
const param = importingParameters[i];
|
|
66057
|
-
const paramName =
|
|
66058
|
-
const paramType =
|
|
66085
|
+
const paramName = typeof param.OBJ_NAME2 === "string" ? param.OBJ_NAME2.toLowerCase() : undefined;
|
|
66086
|
+
const paramType = typeof param.OBJ_NAME_R === "string" ? param.OBJ_NAME_R.toLowerCase() : undefined;
|
|
66059
66087
|
const isLast = i === importingParameters.length - 1 && exportingParameters.length === 0;
|
|
66060
66088
|
code += ` ${paramName} TYPE ${paramType}${isLast ? "." : ""}\n`;
|
|
66061
66089
|
}
|
|
@@ -66064,8 +66092,8 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66064
66092
|
code += ` EXPORTING\n`;
|
|
66065
66093
|
for (let i = 0; i < exportingParameters.length; i++) {
|
|
66066
66094
|
const param = exportingParameters[i];
|
|
66067
|
-
const paramName =
|
|
66068
|
-
const paramType =
|
|
66095
|
+
const paramName = typeof param.OBJ_NAME2 === "string" ? param.OBJ_NAME2.toLowerCase() : undefined;
|
|
66096
|
+
const paramType = typeof param.OBJ_NAME_R === "string" ? param.OBJ_NAME_R.toLowerCase() : undefined;
|
|
66069
66097
|
const isLast = i === exportingParameters.length - 1;
|
|
66070
66098
|
code += ` ${paramName} TYPE ${paramType}${isLast ? "." : ""}\n`;
|
|
66071
66099
|
}
|
|
@@ -67896,7 +67924,7 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
67896
67924
|
return false;
|
|
67897
67925
|
}
|
|
67898
67926
|
parseXML() {
|
|
67899
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
67927
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
|
|
67900
67928
|
const parsed = super.parseRaw2();
|
|
67901
67929
|
if (parsed === undefined) {
|
|
67902
67930
|
return;
|
|
@@ -67906,19 +67934,22 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
67906
67934
|
return;
|
|
67907
67935
|
}
|
|
67908
67936
|
// enhancement category
|
|
67909
|
-
if (((_b = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
67937
|
+
if (((_d = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.DD02V) === null || _d === void 0 ? void 0 : _d.EXCLASS) === undefined) {
|
|
67910
67938
|
this.parsedData.enhancementCategory = EnhancementCategory.NotClassified;
|
|
67911
67939
|
}
|
|
67912
67940
|
else {
|
|
67913
|
-
this.parsedData.enhancementCategory = (
|
|
67941
|
+
this.parsedData.enhancementCategory = (_h = (_g = (_f = (_e = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _e === void 0 ? void 0 : _e["asx:abap"]) === null || _f === void 0 ? void 0 : _f["asx:values"]) === null || _g === void 0 ? void 0 : _g.DD02V) === null || _h === void 0 ? void 0 : _h.EXCLASS;
|
|
67914
67942
|
}
|
|
67915
67943
|
// table category
|
|
67916
|
-
this.parsedData.tableCategory = (
|
|
67917
|
-
this.parsedData.description = (
|
|
67918
|
-
this.parsedData.dataClass = (
|
|
67944
|
+
this.parsedData.tableCategory = (_m = (_l = (_k = (_j = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _j === void 0 ? void 0 : _j["asx:abap"]) === null || _k === void 0 ? void 0 : _k["asx:values"]) === null || _l === void 0 ? void 0 : _l.DD02V) === null || _m === void 0 ? void 0 : _m.TABCLASS;
|
|
67945
|
+
this.parsedData.description = (_r = (_q = (_p = (_o = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _o === void 0 ? void 0 : _o["asx:abap"]) === null || _p === void 0 ? void 0 : _p["asx:values"]) === null || _q === void 0 ? void 0 : _q.DD02V) === null || _r === void 0 ? void 0 : _r.DDTEXT;
|
|
67946
|
+
this.parsedData.dataClass = (_v = (_u = (_t = (_s = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _s === void 0 ? void 0 : _s["asx:abap"]) === null || _t === void 0 ? void 0 : _t["asx:values"]) === null || _u === void 0 ? void 0 : _u.DD09L) === null || _v === void 0 ? void 0 : _v.TABART;
|
|
67919
67947
|
// fields
|
|
67920
|
-
const fields = (
|
|
67948
|
+
const fields = (_y = (_x = (_w = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _w === void 0 ? void 0 : _w["asx:abap"]) === null || _x === void 0 ? void 0 : _x["asx:values"]) === null || _y === void 0 ? void 0 : _y.DD03P_TABLE;
|
|
67921
67949
|
for (const field of (0, xml_utils_1.xmlToArray)(fields === null || fields === void 0 ? void 0 : fields.DD03P)) {
|
|
67950
|
+
if (typeof (field === null || field === void 0 ? void 0 : field.FIELDNAME) !== "string") {
|
|
67951
|
+
continue;
|
|
67952
|
+
}
|
|
67922
67953
|
this.parsedData.fields.push({
|
|
67923
67954
|
FIELDNAME: field.FIELDNAME,
|
|
67924
67955
|
ROLLNAME: field.ROLLNAME,
|
|
@@ -67938,13 +67969,13 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
67938
67969
|
});
|
|
67939
67970
|
}
|
|
67940
67971
|
// secondary indexes
|
|
67941
|
-
const indexes = (
|
|
67972
|
+
const indexes = (_1 = (_0 = (_z = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _z === void 0 ? void 0 : _z["asx:abap"]) === null || _0 === void 0 ? void 0 : _0["asx:values"]) === null || _1 === void 0 ? void 0 : _1.DD12V;
|
|
67942
67973
|
;
|
|
67943
67974
|
this.parsedData.secondaryIndexes = [];
|
|
67944
67975
|
for (const index of (0, xml_utils_1.xmlToArray)(indexes === null || indexes === void 0 ? void 0 : indexes.DD12V)) {
|
|
67945
67976
|
const indexName = index.INDEXNAME;
|
|
67946
67977
|
const indexFields = [];
|
|
67947
|
-
const indexFieldsXml = (
|
|
67978
|
+
const indexFieldsXml = (_4 = (_3 = (_2 = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _2 === void 0 ? void 0 : _2["asx:abap"]) === null || _3 === void 0 ? void 0 : _3["asx:values"]) === null || _4 === void 0 ? void 0 : _4.DD17V;
|
|
67948
67979
|
for (const indexField of (0, xml_utils_1.xmlToArray)(indexFieldsXml === null || indexFieldsXml === void 0 ? void 0 : indexFieldsXml.DD17V)) {
|
|
67949
67980
|
if (indexField.INDEXNAME === indexName) {
|
|
67950
67981
|
// assumption: fields are listed by POSITION in the xml
|
|
@@ -68167,7 +68198,7 @@ class TableType extends _abstract_object_1.AbstractObject {
|
|
|
68167
68198
|
}
|
|
68168
68199
|
////////////////////
|
|
68169
68200
|
parseXML() {
|
|
68170
|
-
var _a, _b;
|
|
68201
|
+
var _a, _b, _c, _d;
|
|
68171
68202
|
if (this.parsedXML !== undefined) {
|
|
68172
68203
|
return;
|
|
68173
68204
|
}
|
|
@@ -68179,11 +68210,14 @@ class TableType extends _abstract_object_1.AbstractObject {
|
|
|
68179
68210
|
if (parsed === undefined || parsed.abapGit === undefined) {
|
|
68180
68211
|
return;
|
|
68181
68212
|
}
|
|
68182
|
-
const values = parsed.abapGit["asx:abap"]["asx:values"];
|
|
68213
|
+
const values = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"];
|
|
68183
68214
|
if (values === undefined) {
|
|
68184
68215
|
return;
|
|
68185
68216
|
}
|
|
68186
68217
|
const dd40v = values.DD40V;
|
|
68218
|
+
if (dd40v === undefined) {
|
|
68219
|
+
return;
|
|
68220
|
+
}
|
|
68187
68221
|
this.parsedXML.rowtype = dd40v.ROWTYPE ? dd40v.ROWTYPE : "";
|
|
68188
68222
|
this.parsedXML.rowkind = dd40v.ROWKIND ? dd40v.ROWKIND : "";
|
|
68189
68223
|
this.parsedXML.datatype = dd40v.DATATYPE;
|
|
@@ -68193,13 +68227,13 @@ class TableType extends _abstract_object_1.AbstractObject {
|
|
|
68193
68227
|
this.parsedXML.keykind = dd40v.KEYKIND;
|
|
68194
68228
|
this.parsedXML.ddtext = dd40v.DDTEXT;
|
|
68195
68229
|
this.parsedXML.keydef = dd40v.KEYDEF;
|
|
68196
|
-
for (const x of (0, xml_utils_1.xmlToArray)((
|
|
68230
|
+
for (const x of (0, xml_utils_1.xmlToArray)((_c = values.DD42V) === null || _c === void 0 ? void 0 : _c.DD42V)) {
|
|
68197
68231
|
this.parsedXML.dd42v.push({
|
|
68198
68232
|
keyname: x.SECKEYNAME || "",
|
|
68199
68233
|
keyfield: x.KEYFIELD || "",
|
|
68200
68234
|
});
|
|
68201
68235
|
}
|
|
68202
|
-
for (const x of (0, xml_utils_1.xmlToArray)((
|
|
68236
|
+
for (const x of (0, xml_utils_1.xmlToArray)((_d = values.DD43V) === null || _d === void 0 ? void 0 : _d.DD43V)) {
|
|
68203
68237
|
this.parsedXML.dd43v.push({
|
|
68204
68238
|
keyname: x.SECKEYNAME || "",
|
|
68205
68239
|
accessmode: x.ACCESSMODE || "",
|
|
@@ -68575,7 +68609,7 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
68575
68609
|
}
|
|
68576
68610
|
///////////////
|
|
68577
68611
|
parseXML() {
|
|
68578
|
-
var _a, _b, _c;
|
|
68612
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
68579
68613
|
this.parsedData = {
|
|
68580
68614
|
header: {
|
|
68581
68615
|
VIEWCLASS: "",
|
|
@@ -68588,13 +68622,18 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
68588
68622
|
if (parsed === undefined || parsed.abapGit === undefined) {
|
|
68589
68623
|
return;
|
|
68590
68624
|
}
|
|
68591
|
-
const header = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
68625
|
+
const header = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === null || _c === void 0 ? void 0 : _c.DD25V;
|
|
68592
68626
|
this.parsedData.header = {
|
|
68593
68627
|
VIEWCLASS: (header === null || header === void 0 ? void 0 : header.VIEWCLASS) || "",
|
|
68594
68628
|
DDTEXT: (header === null || header === void 0 ? void 0 : header.DDTEXT) || "",
|
|
68595
68629
|
};
|
|
68596
|
-
const fields = (
|
|
68630
|
+
const fields = (_f = (_e = (_d = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _d === void 0 ? void 0 : _d["asx:abap"]) === null || _e === void 0 ? void 0 : _e["asx:values"]) === null || _f === void 0 ? void 0 : _f.DD27P_TABLE;
|
|
68597
68631
|
for (const field of (0, xml_utils_1.xmlToArray)(fields === null || fields === void 0 ? void 0 : fields.DD27P)) {
|
|
68632
|
+
if (typeof (field === null || field === void 0 ? void 0 : field.VIEWFIELD) !== "string"
|
|
68633
|
+
|| typeof (field === null || field === void 0 ? void 0 : field.TABNAME) !== "string"
|
|
68634
|
+
|| typeof (field === null || field === void 0 ? void 0 : field.FIELDNAME) !== "string") {
|
|
68635
|
+
continue;
|
|
68636
|
+
}
|
|
68598
68637
|
this.parsedData.fields.push({
|
|
68599
68638
|
VIEWFIELD: field.VIEWFIELD,
|
|
68600
68639
|
TABNAME: field.TABNAME,
|
|
@@ -68602,7 +68641,7 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
68602
68641
|
KEYFLAG: field.KEYFLAG,
|
|
68603
68642
|
});
|
|
68604
68643
|
}
|
|
68605
|
-
const join = (
|
|
68644
|
+
const join = (_j = (_h = (_g = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _g === void 0 ? void 0 : _g["asx:abap"]) === null || _h === void 0 ? void 0 : _h["asx:values"]) === null || _j === void 0 ? void 0 : _j.DD28J_TABLE;
|
|
68606
68645
|
for (const j of (0, xml_utils_1.xmlToArray)(join === null || join === void 0 ? void 0 : join.DD28J)) {
|
|
68607
68646
|
this.parsedData.join.push({
|
|
68608
68647
|
LTAB: j.LTAB,
|
|
@@ -68857,7 +68896,7 @@ class WebMIME extends _abstract_object_1.AbstractObject {
|
|
|
68857
68896
|
return undefined;
|
|
68858
68897
|
}
|
|
68859
68898
|
parse() {
|
|
68860
|
-
var _a;
|
|
68899
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
68861
68900
|
if (this.parsedXML) {
|
|
68862
68901
|
return { updated: false, runtime: 0 };
|
|
68863
68902
|
}
|
|
@@ -68866,11 +68905,14 @@ class WebMIME extends _abstract_object_1.AbstractObject {
|
|
|
68866
68905
|
const parsed = super.parseRaw2();
|
|
68867
68906
|
if (parsed === undefined
|
|
68868
68907
|
|| parsed.abapGit === undefined
|
|
68869
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
68908
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
68870
68909
|
return { updated: false, runtime: 0 };
|
|
68871
68910
|
}
|
|
68872
|
-
this.parsedXML.description = parsed.abapGit["asx:abap"]["asx:values"].TEXT;
|
|
68873
|
-
for (const param of (0, xml_utils_1.xmlToArray)((
|
|
68911
|
+
this.parsedXML.description = (_e = (_d = (_c = parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.TEXT;
|
|
68912
|
+
for (const param of (0, xml_utils_1.xmlToArray)((_j = (_h = (_g = (_f = parsed.abapGit) === null || _f === void 0 ? void 0 : _f["asx:abap"]) === null || _g === void 0 ? void 0 : _g["asx:values"]) === null || _h === void 0 ? void 0 : _h.PARAMS) === null || _j === void 0 ? void 0 : _j.WWWPARAMS)) {
|
|
68913
|
+
if (typeof (param === null || param === void 0 ? void 0 : param.NAME) !== "string") {
|
|
68914
|
+
continue;
|
|
68915
|
+
}
|
|
68874
68916
|
this.parsedXML.params[param.NAME.toLowerCase()] = param.VALUE;
|
|
68875
68917
|
}
|
|
68876
68918
|
const end = Date.now();
|
|
@@ -69471,7 +69513,7 @@ class Registry {
|
|
|
69471
69513
|
}
|
|
69472
69514
|
static abaplintVersion() {
|
|
69473
69515
|
// magic, see build script "version.js"
|
|
69474
|
-
return "2.120.
|
|
69516
|
+
return "2.120.19";
|
|
69475
69517
|
}
|
|
69476
69518
|
getDDICReferences() {
|
|
69477
69519
|
return this.ddicReferences;
|
|
@@ -74195,6 +74237,8 @@ const objects_1 = __webpack_require__(/*! ../objects */ "../core/build/src/objec
|
|
|
74195
74237
|
const _reference_1 = __webpack_require__(/*! ../abap/5_syntax/_reference */ "../core/build/src/abap/5_syntax/_reference.js");
|
|
74196
74238
|
const basic_1 = __webpack_require__(/*! ../abap/types/basic */ "../core/build/src/abap/types/basic/index.js");
|
|
74197
74239
|
const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "../core/build/src/abap/2_statements/statements/_statement.js");
|
|
74240
|
+
const statements_1 = __webpack_require__(/*! ../abap/2_statements/statements */ "../core/build/src/abap/2_statements/statements/index.js");
|
|
74241
|
+
const expressions_1 = __webpack_require__(/*! ../abap/2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
74198
74242
|
class ClearExportingParametersConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
74199
74243
|
constructor() {
|
|
74200
74244
|
super(...arguments);
|
|
@@ -74226,6 +74270,8 @@ Note: EXPORTING parameters passed by VALUE are always initialized and are theref
|
|
|
74226
74270
|
Reading and writing the parameter in the same statement (e.g. "ev_result = ev_result + 1") is reported,
|
|
74227
74271
|
as the source is evaluated before the parameter is assigned.
|
|
74228
74272
|
Objects containing parser or syntax errors are not reported.
|
|
74273
|
+
"IS SUPPLIED"/"IS REQUESTED" checks are not considered reads, and "GET REFERENCE OF" plus
|
|
74274
|
+
"ASSIGN ... TO <fs>" are considered writes, as the value can be written via the reference.
|
|
74229
74275
|
|
|
74230
74276
|
Class and interface method implementations and function modules are checked.`,
|
|
74231
74277
|
tags: [_irule_1.RuleTag.Styleguide],
|
|
@@ -74351,6 +74397,16 @@ ENDCLASS.`,
|
|
|
74351
74397
|
}
|
|
74352
74398
|
const pos = reference.position.getStart();
|
|
74353
74399
|
if (reference.referenceType === _reference_1.ReferenceType.DataReadReference) {
|
|
74400
|
+
if (this.isSuppliedOrRequested(reference, obj)) {
|
|
74401
|
+
continue; // "IS SUPPLIED" / "IS REQUESTED" does not read the value
|
|
74402
|
+
}
|
|
74403
|
+
if (this.isReferenceOrAssign(reference, obj)) {
|
|
74404
|
+
// "GET REFERENCE OF" and "ASSIGN ... TO <fs>" may be used for writing the value
|
|
74405
|
+
if (earliestWrite === undefined || pos.isBefore(earliestWrite.position.getStart())) {
|
|
74406
|
+
earliestWrite = reference;
|
|
74407
|
+
}
|
|
74408
|
+
continue;
|
|
74409
|
+
}
|
|
74354
74410
|
if (firstRead === undefined || pos.isBefore(firstRead.position.getStart())) {
|
|
74355
74411
|
firstRead = reference;
|
|
74356
74412
|
}
|
|
@@ -74373,6 +74429,46 @@ ENDCLASS.`,
|
|
|
74373
74429
|
const message = `EXPORTING parameter "${parameter.getName().toLowerCase()}" read before it is cleared or assigned`;
|
|
74374
74430
|
return issue_1.Issue.atIdentifier(firstRead.position, message, this.getMetadata().key, this.conf.severity);
|
|
74375
74431
|
}
|
|
74432
|
+
isReferenceOrAssign(reference, obj) {
|
|
74433
|
+
const file = obj.getABAPFileByName(reference.position.getFilename());
|
|
74434
|
+
const pos = reference.position.getStart();
|
|
74435
|
+
for (const statement of (file === null || file === void 0 ? void 0 : file.getStatements()) || []) {
|
|
74436
|
+
const start = statement.getStart();
|
|
74437
|
+
const end = statement.getEnd();
|
|
74438
|
+
if (pos.equals(start) === false && (pos.isAfter(start) === false || pos.isBefore(end) === false)) {
|
|
74439
|
+
continue;
|
|
74440
|
+
}
|
|
74441
|
+
const type = statement.get();
|
|
74442
|
+
return type instanceof statements_1.GetReference || type instanceof statements_1.Assign;
|
|
74443
|
+
}
|
|
74444
|
+
return false;
|
|
74445
|
+
}
|
|
74446
|
+
isSuppliedOrRequested(reference, obj) {
|
|
74447
|
+
const file = obj.getABAPFileByName(reference.position.getFilename());
|
|
74448
|
+
const pos = reference.position.getStart();
|
|
74449
|
+
for (const statement of (file === null || file === void 0 ? void 0 : file.getStatements()) || []) {
|
|
74450
|
+
const start = statement.getStart();
|
|
74451
|
+
const end = statement.getEnd();
|
|
74452
|
+
if (pos.equals(start) === false && (pos.isAfter(start) === false || pos.isBefore(end) === false)) {
|
|
74453
|
+
continue;
|
|
74454
|
+
}
|
|
74455
|
+
for (const compare of statement.findAllExpressionsRecursive(expressions_1.Compare)) {
|
|
74456
|
+
const upper = compare.concatTokens().toUpperCase();
|
|
74457
|
+
if (upper.includes(" IS SUPPLIED") === false
|
|
74458
|
+
&& upper.includes(" IS REQUESTED") === false
|
|
74459
|
+
&& upper.includes(" IS NOT SUPPLIED") === false
|
|
74460
|
+
&& upper.includes(" IS NOT REQUESTED") === false) {
|
|
74461
|
+
continue;
|
|
74462
|
+
}
|
|
74463
|
+
const cStart = compare.getFirstToken().getStart();
|
|
74464
|
+
const cEnd = compare.getLastToken().getEnd();
|
|
74465
|
+
if ((pos.equals(cStart) || pos.isAfter(cStart)) && pos.isBefore(cEnd)) {
|
|
74466
|
+
return true;
|
|
74467
|
+
}
|
|
74468
|
+
}
|
|
74469
|
+
}
|
|
74470
|
+
return false;
|
|
74471
|
+
}
|
|
74376
74472
|
statementStart(reference, obj) {
|
|
74377
74473
|
const file = obj.getABAPFileByName(reference.position.getFilename());
|
|
74378
74474
|
for (const statement of (file === null || file === void 0 ? void 0 : file.getStatements()) || []) {
|
|
@@ -92424,11 +92520,18 @@ Consider using ABAP Doc for documentation.`,
|
|
|
92424
92520
|
return this.checkXML(xml, file);
|
|
92425
92521
|
}
|
|
92426
92522
|
checkXML(xml, file) {
|
|
92427
|
-
|
|
92428
|
-
|
|
92523
|
+
var _a, _b, _c, _d, _e;
|
|
92524
|
+
let parsed;
|
|
92525
|
+
try {
|
|
92526
|
+
parsed = new fast_xml_parser_1.XMLParser({ parseTagValue: false, ignoreAttributes: true, trimValues: false }).parse(xml);
|
|
92527
|
+
}
|
|
92528
|
+
catch (_f) {
|
|
92429
92529
|
return [];
|
|
92430
92530
|
}
|
|
92431
|
-
|
|
92531
|
+
if (((_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
92532
|
+
return [];
|
|
92533
|
+
}
|
|
92534
|
+
const desc = (_e = (_d = (_c = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _c === void 0 ? void 0 : _c["asx:abap"]) === null || _d === void 0 ? void 0 : _d["asx:values"]) === null || _e === void 0 ? void 0 : _e.DESCRIPTIONS;
|
|
92432
92535
|
if (desc === undefined) {
|
|
92433
92536
|
return [];
|
|
92434
92537
|
}
|
|
@@ -98766,6 +98869,40 @@ class XMLConsistency {
|
|
|
98766
98869
|
const issues = [];
|
|
98767
98870
|
const texts = obj.getTexts();
|
|
98768
98871
|
const maxLengths = obj.getTextMaxLengths();
|
|
98872
|
+
const hasLabelTexts = (texts === null || texts === void 0 ? void 0 : texts.short) !== undefined
|
|
98873
|
+
|| (texts === null || texts === void 0 ? void 0 : texts.medium) !== undefined
|
|
98874
|
+
|| (texts === null || texts === void 0 ? void 0 : texts.long) !== undefined
|
|
98875
|
+
|| (texts === null || texts === void 0 ? void 0 : texts.heading) !== undefined;
|
|
98876
|
+
if ((texts === null || texts === void 0 ? void 0 : texts.short) !== undefined) {
|
|
98877
|
+
const issue = this.checkRequiredField(file, "SCRLEN1", maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.short);
|
|
98878
|
+
if (issue) {
|
|
98879
|
+
issues.push(issue);
|
|
98880
|
+
}
|
|
98881
|
+
}
|
|
98882
|
+
if ((texts === null || texts === void 0 ? void 0 : texts.medium) !== undefined) {
|
|
98883
|
+
const issue = this.checkRequiredField(file, "SCRLEN2", maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.medium);
|
|
98884
|
+
if (issue) {
|
|
98885
|
+
issues.push(issue);
|
|
98886
|
+
}
|
|
98887
|
+
}
|
|
98888
|
+
if ((texts === null || texts === void 0 ? void 0 : texts.long) !== undefined) {
|
|
98889
|
+
const issue = this.checkRequiredField(file, "SCRLEN3", maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.long);
|
|
98890
|
+
if (issue) {
|
|
98891
|
+
issues.push(issue);
|
|
98892
|
+
}
|
|
98893
|
+
}
|
|
98894
|
+
if ((texts === null || texts === void 0 ? void 0 : texts.heading) !== undefined) {
|
|
98895
|
+
const issue = this.checkRequiredField(file, "HEADLEN", maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.heading);
|
|
98896
|
+
if (issue) {
|
|
98897
|
+
issues.push(issue);
|
|
98898
|
+
}
|
|
98899
|
+
}
|
|
98900
|
+
if (hasLabelTexts) {
|
|
98901
|
+
const issue = this.checkRequiredField(file, "DTELMASTER", obj.getDtelMaster());
|
|
98902
|
+
if (issue) {
|
|
98903
|
+
issues.push(issue);
|
|
98904
|
+
}
|
|
98905
|
+
}
|
|
98769
98906
|
for (const issue of [
|
|
98770
98907
|
this.checkTextLength(file, "DDTEXT", obj.getDescription(), 60),
|
|
98771
98908
|
this.checkTextLength(file, "SCRTEXT_S", texts === null || texts === void 0 ? void 0 : texts.short, maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.short),
|
|
@@ -98793,6 +98930,12 @@ class XMLConsistency {
|
|
|
98793
98930
|
}
|
|
98794
98931
|
return issues;
|
|
98795
98932
|
}
|
|
98933
|
+
checkRequiredField(file, fieldName, value) {
|
|
98934
|
+
if (value === undefined || value === "") {
|
|
98935
|
+
return issue_1.Issue.atRow(file, 1, `Missing required field ${fieldName} in DD04V`, this.getMetadata().key, this.conf.severity);
|
|
98936
|
+
}
|
|
98937
|
+
return undefined;
|
|
98938
|
+
}
|
|
98796
98939
|
runDomain(obj, file) {
|
|
98797
98940
|
var _a, _b;
|
|
98798
98941
|
const maxTextLength = 60;
|
|
@@ -100202,15 +100345,15 @@ function xmlToArray(data) {
|
|
|
100202
100345
|
}
|
|
100203
100346
|
}
|
|
100204
100347
|
function unescape(str) {
|
|
100205
|
-
if (str
|
|
100348
|
+
if (typeof str !== "string") {
|
|
100206
100349
|
return "";
|
|
100207
100350
|
}
|
|
100208
|
-
|
|
100209
|
-
|
|
100210
|
-
|
|
100211
|
-
|
|
100212
|
-
|
|
100213
|
-
return
|
|
100351
|
+
let result = str.replace(/&/g, "&");
|
|
100352
|
+
result = result.replace(/>/g, ">");
|
|
100353
|
+
result = result.replace(/</g, "<");
|
|
100354
|
+
result = result.replace(/"/g, "\"");
|
|
100355
|
+
result = result.replace(/'/g, "'");
|
|
100356
|
+
return result;
|
|
100214
100357
|
}
|
|
100215
100358
|
//# sourceMappingURL=xml_utils.js.map
|
|
100216
100359
|
|
|
@@ -100229,13 +100372,19 @@ exports.ApackDependencyProvider = void 0;
|
|
|
100229
100372
|
const xml_js_1 = __webpack_require__(/*! xml-js */ "./node_modules/xml-js/lib/index.js");
|
|
100230
100373
|
class ApackDependencyProvider {
|
|
100231
100374
|
static fromManifest(manifestContents) {
|
|
100232
|
-
var _a, _b;
|
|
100375
|
+
var _a, _b, _c, _d, _e;
|
|
100233
100376
|
if (!manifestContents || !manifestContents.length) {
|
|
100234
100377
|
return [];
|
|
100235
100378
|
}
|
|
100236
100379
|
const result = [];
|
|
100237
|
-
|
|
100238
|
-
|
|
100380
|
+
let manifest;
|
|
100381
|
+
try {
|
|
100382
|
+
manifest = (0, xml_js_1.xml2js)(manifestContents, { compact: true });
|
|
100383
|
+
}
|
|
100384
|
+
catch (_f) {
|
|
100385
|
+
return [];
|
|
100386
|
+
}
|
|
100387
|
+
let apackDependencies = (_d = (_c = (_b = (_a = manifest === null || manifest === void 0 ? void 0 : manifest["asx:abap"]) === null || _a === void 0 ? void 0 : _a["asx:values"]) === null || _b === void 0 ? void 0 : _b["DATA"]) === null || _c === void 0 ? void 0 : _c["DEPENDENCIES"]) === null || _d === void 0 ? void 0 : _d.item;
|
|
100239
100388
|
if (!apackDependencies) {
|
|
100240
100389
|
return [];
|
|
100241
100390
|
}
|
|
@@ -100243,9 +100392,13 @@ class ApackDependencyProvider {
|
|
|
100243
100392
|
apackDependencies = [apackDependencies];
|
|
100244
100393
|
}
|
|
100245
100394
|
for (const dependency of apackDependencies) {
|
|
100395
|
+
const url = (_e = dependency === null || dependency === void 0 ? void 0 : dependency["GIT_URL"]) === null || _e === void 0 ? void 0 : _e["_text"];
|
|
100396
|
+
if (typeof url !== "string") {
|
|
100397
|
+
continue;
|
|
100398
|
+
}
|
|
100246
100399
|
result.push({
|
|
100247
100400
|
files: "/src/**/*.*",
|
|
100248
|
-
url
|
|
100401
|
+
url,
|
|
100249
100402
|
});
|
|
100250
100403
|
}
|
|
100251
100404
|
return result;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.120.
|
|
3
|
+
"version": "2.120.19",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://abaplint.org",
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@abaplint/core": "^2.120.
|
|
42
|
+
"@abaplint/core": "^2.120.19",
|
|
43
43
|
"@types/chai": "^4.3.20",
|
|
44
44
|
"@types/minimist": "^1.2.5",
|
|
45
45
|
"@types/mocha": "^10.0.10",
|