@abaplint/transpiler-cli 2.13.50 → 2.13.52
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/bundle.js +406 -116
- package/package.json +6 -6
- package/schema.json +0 -8
- package/tsconfig.tsbuildinfo +1 -0
package/build/bundle.js
CHANGED
|
@@ -6587,7 +6587,7 @@ class MessageSource extends combi_1.Expression {
|
|
|
6587
6587
|
getRunnable() {
|
|
6588
6588
|
const msgid = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeft), _1.MessageClass, (0, combi_1.tok)(tokens_1.ParenRightW));
|
|
6589
6589
|
const simple = (0, combi_1.seq)(_1.MessageTypeAndNumber, (0, combi_1.opt)(msgid));
|
|
6590
|
-
const mess1 = (0, combi_1.seq)("ID", _1.
|
|
6590
|
+
const mess1 = (0, combi_1.seq)("ID", _1.SimpleSource3, "TYPE", _1.SimpleSource3, "NUMBER", (0, combi_1.altPrio)(_1.MessageNumber, _1.SimpleSource3));
|
|
6591
6591
|
return (0, combi_1.altPrio)(simple, mess1);
|
|
6592
6592
|
}
|
|
6593
6593
|
}
|
|
@@ -8011,7 +8011,7 @@ class Source extends combi_1.Expression {
|
|
|
8011
8011
|
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 });
|
|
8012
8012
|
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 });
|
|
8013
8013
|
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 });
|
|
8014
|
-
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)));
|
|
8014
|
+
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 });
|
|
8015
8015
|
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 });
|
|
8016
8016
|
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 });
|
|
8017
8017
|
const prefix1 = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WDashW), (0, combi_1.tok)(tokens_1.WPlusW));
|
|
@@ -26870,6 +26870,20 @@ class CurrentScope {
|
|
|
26870
26870
|
}
|
|
26871
26871
|
return false;
|
|
26872
26872
|
}
|
|
26873
|
+
isInStaticMethod() {
|
|
26874
|
+
let curr = this.current;
|
|
26875
|
+
while (curr !== undefined) {
|
|
26876
|
+
const stype = curr.getIdentifier().stype;
|
|
26877
|
+
if (stype === _scope_type_1.ScopeType.MethodInstance) {
|
|
26878
|
+
return false;
|
|
26879
|
+
}
|
|
26880
|
+
else if (stype === _scope_type_1.ScopeType.ClassImplementation) {
|
|
26881
|
+
return true;
|
|
26882
|
+
}
|
|
26883
|
+
curr = curr.getParent();
|
|
26884
|
+
}
|
|
26885
|
+
return false;
|
|
26886
|
+
}
|
|
26873
26887
|
addLocalFriend(className, friendName) {
|
|
26874
26888
|
var _a;
|
|
26875
26889
|
const key = className.toUpperCase();
|
|
@@ -28235,7 +28249,8 @@ class TypeUtils {
|
|
|
28235
28249
|
}
|
|
28236
28250
|
}
|
|
28237
28251
|
else if (source instanceof basic_1.XStringType) {
|
|
28238
|
-
if (target instanceof basic_1.
|
|
28252
|
+
if (target instanceof basic_1.CharacterType
|
|
28253
|
+
|| target instanceof basic_1.CLikeType
|
|
28239
28254
|
|| target instanceof basic_1.IntegerType
|
|
28240
28255
|
|| target instanceof basic_1.StringType
|
|
28241
28256
|
|| target instanceof basic_1.ObjectReferenceType
|
|
@@ -29597,19 +29612,59 @@ function checkOffsetLength(source, sourceType, method, input) {
|
|
|
29597
29612
|
|
|
29598
29613
|
"use strict";
|
|
29599
29614
|
|
|
29615
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
29616
|
+
if (k2 === undefined) k2 = k;
|
|
29617
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
29618
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
29619
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
29620
|
+
}
|
|
29621
|
+
Object.defineProperty(o, k2, desc);
|
|
29622
|
+
}) : (function(o, m, k, k2) {
|
|
29623
|
+
if (k2 === undefined) k2 = k;
|
|
29624
|
+
o[k2] = m[k];
|
|
29625
|
+
}));
|
|
29626
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29627
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
29628
|
+
}) : function(o, v) {
|
|
29629
|
+
o["default"] = v;
|
|
29630
|
+
});
|
|
29631
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
29632
|
+
var ownKeys = function(o) {
|
|
29633
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
29634
|
+
var ar = [];
|
|
29635
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29636
|
+
return ar;
|
|
29637
|
+
};
|
|
29638
|
+
return ownKeys(o);
|
|
29639
|
+
};
|
|
29640
|
+
return function (mod) {
|
|
29641
|
+
if (mod && mod.__esModule) return mod;
|
|
29642
|
+
var result = {};
|
|
29643
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
29644
|
+
__setModuleDefault(result, mod);
|
|
29645
|
+
return result;
|
|
29646
|
+
};
|
|
29647
|
+
})();
|
|
29600
29648
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
29601
29649
|
exports.AttributeChain = void 0;
|
|
29650
|
+
const nodes_1 = __webpack_require__(/*! ../../nodes */ "./node_modules/@abaplint/core/build/src/abap/nodes/index.js");
|
|
29651
|
+
const Expressions = __importStar(__webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js"));
|
|
29602
29652
|
const void_type_1 = __webpack_require__(/*! ../../types/basic/void_type */ "./node_modules/@abaplint/core/build/src/abap/types/basic/void_type.js");
|
|
29603
|
-
const
|
|
29653
|
+
const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
|
|
29604
29654
|
const _object_oriented_1 = __webpack_require__(/*! ../_object_oriented */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_object_oriented.js");
|
|
29605
29655
|
const expressions_1 = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
29606
29656
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
29657
|
+
const component_name_1 = __webpack_require__(/*! ./component_name */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/component_name.js");
|
|
29658
|
+
const attribute_name_1 = __webpack_require__(/*! ./attribute_name */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/attribute_name.js");
|
|
29659
|
+
const table_expression_1 = __webpack_require__(/*! ./table_expression */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/table_expression.js");
|
|
29660
|
+
const field_offset_1 = __webpack_require__(/*! ./field_offset */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/field_offset.js");
|
|
29661
|
+
const field_length_1 = __webpack_require__(/*! ./field_length */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/field_length.js");
|
|
29607
29662
|
class AttributeChain {
|
|
29608
29663
|
static runSyntax(inputContext, node, input, type) {
|
|
29609
29664
|
if (inputContext instanceof void_type_1.VoidType) {
|
|
29610
29665
|
return inputContext;
|
|
29611
29666
|
}
|
|
29612
|
-
else if (!(inputContext instanceof
|
|
29667
|
+
else if (!(inputContext instanceof basic_1.ObjectReferenceType)) {
|
|
29613
29668
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), "Not an object reference(AttributeChain)"));
|
|
29614
29669
|
return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
29615
29670
|
}
|
|
@@ -29639,8 +29694,69 @@ class AttributeChain {
|
|
|
29639
29694
|
for (const t of type) {
|
|
29640
29695
|
input.scope.addReference(nameToken, context, t, input.filename);
|
|
29641
29696
|
}
|
|
29642
|
-
|
|
29643
|
-
|
|
29697
|
+
let contextType = context.getType();
|
|
29698
|
+
const children = node.getChildren();
|
|
29699
|
+
for (let i = 1; i < children.length; i++) {
|
|
29700
|
+
const child = children[i];
|
|
29701
|
+
if (contextType instanceof void_type_1.VoidType || contextType instanceof basic_1.UnknownType) {
|
|
29702
|
+
return contextType;
|
|
29703
|
+
}
|
|
29704
|
+
else if (child.get() instanceof Expressions.ArrowOrDash) {
|
|
29705
|
+
const operator = child.getFirstToken().getStr();
|
|
29706
|
+
if (operator === "-" && !(contextType instanceof basic_1.StructureType)) {
|
|
29707
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), "AttributeChain, not a structure"));
|
|
29708
|
+
return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
29709
|
+
}
|
|
29710
|
+
else if ((operator === "->" || operator === "=>")
|
|
29711
|
+
&& !(contextType instanceof basic_1.ObjectReferenceType)
|
|
29712
|
+
&& !(contextType instanceof basic_1.DataReference)) {
|
|
29713
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), "AttributeChain, not a reference"));
|
|
29714
|
+
return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
29715
|
+
}
|
|
29716
|
+
}
|
|
29717
|
+
else if (child.get() instanceof Expressions.ComponentName) {
|
|
29718
|
+
if (contextType instanceof basic_1.ObjectReferenceType || contextType instanceof basic_1.DataReference) {
|
|
29719
|
+
contextType = attribute_name_1.AttributeName.runSyntax(contextType, child, input, type);
|
|
29720
|
+
}
|
|
29721
|
+
else {
|
|
29722
|
+
contextType = component_name_1.ComponentName.runSyntax(contextType, child, input);
|
|
29723
|
+
}
|
|
29724
|
+
}
|
|
29725
|
+
else if (child.getFirstToken().getStr() === "*" && contextType instanceof basic_1.DataReference) {
|
|
29726
|
+
contextType = contextType.getType();
|
|
29727
|
+
}
|
|
29728
|
+
else if (child instanceof nodes_1.ExpressionNode && child.get() instanceof Expressions.TableExpression) {
|
|
29729
|
+
if (!(contextType instanceof basic_1.TableType)) {
|
|
29730
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, child.getFirstToken(), "Table expression, expected table"));
|
|
29731
|
+
return void_type_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
29732
|
+
}
|
|
29733
|
+
table_expression_1.TableExpression.runSyntax(child, input, contextType);
|
|
29734
|
+
contextType = contextType.getRowType();
|
|
29735
|
+
}
|
|
29736
|
+
else if (child instanceof nodes_1.ExpressionNode && child.get() instanceof Expressions.FieldOffset) {
|
|
29737
|
+
const offset = field_offset_1.FieldOffset.runSyntax(child, input);
|
|
29738
|
+
if (offset !== undefined) {
|
|
29739
|
+
if (contextType instanceof basic_1.CharacterType) {
|
|
29740
|
+
contextType = new basic_1.CharacterType(contextType.getLength() - offset);
|
|
29741
|
+
}
|
|
29742
|
+
else if (contextType instanceof basic_1.HexType) {
|
|
29743
|
+
contextType = new basic_1.HexType(contextType.getLength() - offset);
|
|
29744
|
+
}
|
|
29745
|
+
}
|
|
29746
|
+
}
|
|
29747
|
+
else if (child instanceof nodes_1.ExpressionNode && child.get() instanceof Expressions.FieldLength) {
|
|
29748
|
+
const length = field_length_1.FieldLength.runSyntax(child, input);
|
|
29749
|
+
if (length !== undefined) {
|
|
29750
|
+
if (contextType instanceof basic_1.CharacterType) {
|
|
29751
|
+
contextType = new basic_1.CharacterType(length);
|
|
29752
|
+
}
|
|
29753
|
+
else if (contextType instanceof basic_1.HexType) {
|
|
29754
|
+
contextType = new basic_1.HexType(length);
|
|
29755
|
+
}
|
|
29756
|
+
}
|
|
29757
|
+
}
|
|
29758
|
+
}
|
|
29759
|
+
return contextType;
|
|
29644
29760
|
}
|
|
29645
29761
|
}
|
|
29646
29762
|
exports.AttributeChain = AttributeChain;
|
|
@@ -32417,6 +32533,9 @@ class MessageSource {
|
|
|
32417
32533
|
for (const f of node.findDirectExpressions(Expressions.Source)) {
|
|
32418
32534
|
source_1.Source.runSyntax(f, input);
|
|
32419
32535
|
}
|
|
32536
|
+
for (const f of node.findDirectExpressions(Expressions.SimpleSource3)) {
|
|
32537
|
+
source_1.Source.runSyntax(f, input);
|
|
32538
|
+
}
|
|
32420
32539
|
if (node.getFirstToken().getStr().toUpperCase() === "ID") {
|
|
32421
32540
|
const id = (_a = node.findExpressionAfterToken("ID")) === null || _a === void 0 ? void 0 : _a.concatTokens();
|
|
32422
32541
|
let number = (_b = node.findDirectExpression(Expressions.MessageNumber)) === null || _b === void 0 ? void 0 : _b.concatTokens();
|
|
@@ -32613,6 +32732,11 @@ class MethodCallChain {
|
|
|
32613
32732
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, methodToken, message));
|
|
32614
32733
|
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
32615
32734
|
}
|
|
32735
|
+
if (current === first && (method === null || method === void 0 ? void 0 : method.isStatic()) === false && input.scope.isInStaticMethod() === true) {
|
|
32736
|
+
const message = "Method \"" + methodName + "\" not static";
|
|
32737
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, methodToken, message));
|
|
32738
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
32739
|
+
}
|
|
32616
32740
|
const voidedName = context instanceof basic_1.VoidType ? context.getVoided() : undefined;
|
|
32617
32741
|
const extra = helper.methodReferenceExtras(foundDef, className || voidedName);
|
|
32618
32742
|
input.scope.addReference(methodToken, method, _reference_1.ReferenceType.MethodReference, input.filename, extra);
|
|
@@ -33403,9 +33527,11 @@ class MethodSource {
|
|
|
33403
33527
|
throw new assert_error_1.AssertError("MethodSource, first child expected");
|
|
33404
33528
|
}
|
|
33405
33529
|
let context = this.findTop(first, input, children);
|
|
33530
|
+
let implicitMe = false;
|
|
33406
33531
|
if (context === undefined) {
|
|
33407
33532
|
context = (_a = input.scope.findVariable("me")) === null || _a === void 0 ? void 0 : _a.getType();
|
|
33408
33533
|
children.unshift(first);
|
|
33534
|
+
implicitMe = true;
|
|
33409
33535
|
}
|
|
33410
33536
|
if (input.scope.getLanguageVersion() === version_1.LanguageVersion.Cloud
|
|
33411
33537
|
&& first.get() instanceof Expressions.Dynamic
|
|
@@ -33465,6 +33591,11 @@ class MethodSource {
|
|
|
33465
33591
|
const def = input.scope.findObjectDefinition(className);
|
|
33466
33592
|
// eslint-disable-next-line prefer-const
|
|
33467
33593
|
let { method, def: foundDef } = helper.searchMethodName(def, methodName);
|
|
33594
|
+
if (implicitMe && current === first && (method === null || method === void 0 ? void 0 : method.isStatic()) === false && input.scope.isInStaticMethod() === true) {
|
|
33595
|
+
const message = "Method \"" + methodName + "\" not static";
|
|
33596
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, methodToken, message));
|
|
33597
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
33598
|
+
}
|
|
33468
33599
|
if (method === undefined && (methodName === null || methodName === void 0 ? void 0 : methodName.toUpperCase()) === "CONSTRUCTOR") {
|
|
33469
33600
|
context = basic_1.VoidType.get("CONSTRUCTOR"); // todo, this is a workaround, constructors always exists
|
|
33470
33601
|
}
|
|
@@ -35917,7 +36048,7 @@ class Target {
|
|
|
35917
36048
|
&& !(context instanceof basic_1.VoidType)
|
|
35918
36049
|
&& !(context instanceof unknown_type_1.UnknownType)
|
|
35919
36050
|
&& !(context instanceof unknown_type_1.UnknownType)) {
|
|
35920
|
-
const message =
|
|
36051
|
+
const message = `Not an internal table, "${node.concatTokens()}"`;
|
|
35921
36052
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
35922
36053
|
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
35923
36054
|
}
|
|
@@ -52027,6 +52158,7 @@ class ClassDefinition extends _identifier_1.Identifier {
|
|
|
52027
52158
|
// perform checks after everything has been initialized
|
|
52028
52159
|
this.checkInterfaceVisibility(input, node);
|
|
52029
52160
|
this.checkMethodsFromSuperClasses(input);
|
|
52161
|
+
this.checkMethodNameConflicts(input);
|
|
52030
52162
|
this.checkClassNameLength(input);
|
|
52031
52163
|
this.checkMethodNameLength(input);
|
|
52032
52164
|
this.checkClassConstructorStatic(input);
|
|
@@ -52158,6 +52290,14 @@ class ClassDefinition extends _identifier_1.Identifier {
|
|
|
52158
52290
|
}
|
|
52159
52291
|
}
|
|
52160
52292
|
}
|
|
52293
|
+
checkMethodNameConflicts(input) {
|
|
52294
|
+
for (const m of this.methodDefs.getAll()) {
|
|
52295
|
+
if (this.attributes.findByName(m.getName()) !== undefined
|
|
52296
|
+
|| this.types.getByName(m.getName()) !== undefined) {
|
|
52297
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, m.getToken(), `"${m.getName()}" already defined`));
|
|
52298
|
+
}
|
|
52299
|
+
}
|
|
52300
|
+
}
|
|
52161
52301
|
findFriends(def, input) {
|
|
52162
52302
|
var _a;
|
|
52163
52303
|
const result = [];
|
|
@@ -60500,21 +60640,22 @@ class ABAPObject extends _abstract_object_1.AbstractObject {
|
|
|
60500
60640
|
return this.textsTranslations;
|
|
60501
60641
|
}
|
|
60502
60642
|
findTexts(parsed) {
|
|
60503
|
-
var _a, _b, _c, _d, _e, _f;
|
|
60504
|
-
var
|
|
60643
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
60644
|
+
var _j;
|
|
60505
60645
|
this.texts = {};
|
|
60506
60646
|
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) {
|
|
60507
60647
|
return;
|
|
60508
60648
|
}
|
|
60509
|
-
for (const t of (0, xml_utils_1.xmlToArray)(parsed.abapGit["asx:abap"]["asx:values"].TPOOL.item)) {
|
|
60510
|
-
const id = (
|
|
60649
|
+
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)) {
|
|
60650
|
+
const id = typeof (t === null || t === void 0 ? void 0 : t.ID) === "string" ? t.ID.toUpperCase() : undefined;
|
|
60511
60651
|
if (id === undefined) {
|
|
60512
60652
|
continue;
|
|
60513
60653
|
}
|
|
60514
60654
|
if (id !== "R" && t.KEY === undefined) {
|
|
60515
60655
|
continue;
|
|
60516
60656
|
}
|
|
60517
|
-
const
|
|
60657
|
+
const rawKey = (_j = t.KEY) !== null && _j !== void 0 ? _j : t.ID;
|
|
60658
|
+
const key = typeof rawKey === "string" ? rawKey.toUpperCase() : undefined;
|
|
60518
60659
|
if (key === undefined) {
|
|
60519
60660
|
continue;
|
|
60520
60661
|
}
|
|
@@ -60525,8 +60666,8 @@ class ABAPObject extends _abstract_object_1.AbstractObject {
|
|
|
60525
60666
|
}
|
|
60526
60667
|
}
|
|
60527
60668
|
findTextsTranslations(parsed) {
|
|
60528
|
-
var _a, _b, _c, _d, _e
|
|
60529
|
-
var
|
|
60669
|
+
var _a, _b, _c, _d, _e;
|
|
60670
|
+
var _f;
|
|
60530
60671
|
this.textsTranslations = [];
|
|
60531
60672
|
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;
|
|
60532
60673
|
if (values === undefined) {
|
|
@@ -60535,7 +60676,8 @@ class ABAPObject extends _abstract_object_1.AbstractObject {
|
|
|
60535
60676
|
for (const langItem of (0, xml_utils_1.xmlToArray)(values)) {
|
|
60536
60677
|
const textElements = {};
|
|
60537
60678
|
for (const item of (0, xml_utils_1.xmlToArray)((_e = langItem.TEXTPOOL) === null || _e === void 0 ? void 0 : _e.item)) {
|
|
60538
|
-
const
|
|
60679
|
+
const rawKey = (_f = item.KEY) !== null && _f !== void 0 ? _f : item.ID;
|
|
60680
|
+
const key = typeof rawKey === "string" ? rawKey.toUpperCase() : undefined;
|
|
60539
60681
|
if (key !== undefined) {
|
|
60540
60682
|
textElements[key] = { entry: (0, xml_utils_1.unescape)(item.ENTRY), maxLength: parseInt(item.LENGTH, 10) };
|
|
60541
60683
|
}
|
|
@@ -60696,11 +60838,14 @@ function parseNumber(value) {
|
|
|
60696
60838
|
return parseInt(value, 10);
|
|
60697
60839
|
}
|
|
60698
60840
|
function parseDynpros(parsed) {
|
|
60699
|
-
var _a, _b, _c, _d;
|
|
60841
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
60700
60842
|
const dynpros = [];
|
|
60701
60843
|
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;
|
|
60702
60844
|
if (xmlDynpros !== undefined) {
|
|
60703
60845
|
for (const d of (0, xml_utils_1.xmlToArray)(xmlDynpros.item)) {
|
|
60846
|
+
if ((d === null || d === void 0 ? void 0 : d.HEADER) === undefined) {
|
|
60847
|
+
continue;
|
|
60848
|
+
}
|
|
60704
60849
|
const fields = [];
|
|
60705
60850
|
for (const f of (0, xml_utils_1.xmlToArray)((_d = d.FIELDS) === null || _d === void 0 ? void 0 : _d.RPY_DYFATC)) {
|
|
60706
60851
|
fields.push({
|
|
@@ -60715,10 +60860,10 @@ function parseDynpros(parsed) {
|
|
|
60715
60860
|
});
|
|
60716
60861
|
}
|
|
60717
60862
|
dynpros.push({
|
|
60718
|
-
number: d.HEADER.SCREEN,
|
|
60719
|
-
description: d.HEADER.DESCRIPT,
|
|
60720
|
-
nextScreen: d.HEADER.NEXTSCREEN,
|
|
60721
|
-
type: d.HEADER.TYPE,
|
|
60863
|
+
number: (_e = d.HEADER) === null || _e === void 0 ? void 0 : _e.SCREEN,
|
|
60864
|
+
description: (_f = d.HEADER) === null || _f === void 0 ? void 0 : _f.DESCRIPT,
|
|
60865
|
+
nextScreen: (_g = d.HEADER) === null || _g === void 0 ? void 0 : _g.NEXTSCREEN,
|
|
60866
|
+
type: (_h = d.HEADER) === null || _h === void 0 ? void 0 : _h.TYPE,
|
|
60722
60867
|
fields: fields,
|
|
60723
60868
|
});
|
|
60724
60869
|
}
|
|
@@ -61205,7 +61350,7 @@ class AuthorizationCheckField extends _abstract_object_1.AbstractObject {
|
|
|
61205
61350
|
}
|
|
61206
61351
|
}
|
|
61207
61352
|
parse() {
|
|
61208
|
-
var _a;
|
|
61353
|
+
var _a, _b, _c, _d, _e, _f;
|
|
61209
61354
|
if (this.parsedXML) {
|
|
61210
61355
|
return { updated: false, runtime: 0 };
|
|
61211
61356
|
}
|
|
@@ -61214,10 +61359,10 @@ class AuthorizationCheckField extends _abstract_object_1.AbstractObject {
|
|
|
61214
61359
|
const parsed = super.parseRaw2();
|
|
61215
61360
|
if (parsed === undefined
|
|
61216
61361
|
|| parsed.abapGit === undefined
|
|
61217
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
61362
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
61218
61363
|
return { updated: false, runtime: 0 };
|
|
61219
61364
|
}
|
|
61220
|
-
this.parsedXML.rollname = (
|
|
61365
|
+
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;
|
|
61221
61366
|
const end = Date.now();
|
|
61222
61367
|
return { updated: true, runtime: end - start };
|
|
61223
61368
|
}
|
|
@@ -62064,17 +62209,16 @@ class Class extends _abap_object_1.ABAPObject {
|
|
|
62064
62209
|
}
|
|
62065
62210
|
/////////////////////////
|
|
62066
62211
|
parseXML() {
|
|
62212
|
+
var _a, _b, _c, _d, _e;
|
|
62067
62213
|
if (this.parsedXML !== undefined) {
|
|
62068
62214
|
return;
|
|
62069
62215
|
}
|
|
62070
62216
|
this.parsedXML = {};
|
|
62071
62217
|
const parsed = super.parseRaw2();
|
|
62072
|
-
if (parsed === undefined
|
|
62073
|
-
|| parsed.abapGit["asx:abap"] === undefined
|
|
62074
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
62218
|
+
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) {
|
|
62075
62219
|
return;
|
|
62076
62220
|
}
|
|
62077
|
-
const vseo = parsed.abapGit["asx:abap"]["asx:values"].VSEOCLASS;
|
|
62221
|
+
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;
|
|
62078
62222
|
if (vseo === undefined) {
|
|
62079
62223
|
return;
|
|
62080
62224
|
}
|
|
@@ -62755,6 +62899,11 @@ class DataElement extends _abstract_object_1.AbstractObject {
|
|
|
62755
62899
|
this.parse();
|
|
62756
62900
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.textsTranslations;
|
|
62757
62901
|
}
|
|
62902
|
+
getDtelMaster() {
|
|
62903
|
+
var _a;
|
|
62904
|
+
this.parse();
|
|
62905
|
+
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.dtelmaster;
|
|
62906
|
+
}
|
|
62758
62907
|
parseType(reg) {
|
|
62759
62908
|
var _a;
|
|
62760
62909
|
const references = [];
|
|
@@ -62832,6 +62981,7 @@ class DataElement extends _abstract_object_1.AbstractObject {
|
|
|
62832
62981
|
datatype: dd04v === null || dd04v === void 0 ? void 0 : dd04v.DATATYPE,
|
|
62833
62982
|
leng: dd04v === null || dd04v === void 0 ? void 0 : dd04v.LENG,
|
|
62834
62983
|
decimals: dd04v === null || dd04v === void 0 ? void 0 : dd04v.DECIMALS,
|
|
62984
|
+
dtelmaster: dd04v === null || dd04v === void 0 ? void 0 : dd04v.DTELMASTER,
|
|
62835
62985
|
texts: {
|
|
62836
62986
|
short: dd04v === null || dd04v === void 0 ? void 0 : dd04v.SCRTEXT_S,
|
|
62837
62987
|
medium: dd04v === null || dd04v === void 0 ? void 0 : dd04v.SCRTEXT_M,
|
|
@@ -63268,6 +63418,7 @@ class EnhancementImplementation extends _abstract_object_1.AbstractObject {
|
|
|
63268
63418
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.description;
|
|
63269
63419
|
}
|
|
63270
63420
|
parse() {
|
|
63421
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
63271
63422
|
if (this.parsedXML) {
|
|
63272
63423
|
return { updated: false, runtime: 0 };
|
|
63273
63424
|
}
|
|
@@ -63276,11 +63427,11 @@ class EnhancementImplementation extends _abstract_object_1.AbstractObject {
|
|
|
63276
63427
|
const parsed = super.parseRaw2();
|
|
63277
63428
|
if (parsed === undefined
|
|
63278
63429
|
|| parsed.abapGit === undefined
|
|
63279
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
63430
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
63280
63431
|
return { updated: false, runtime: 0 };
|
|
63281
63432
|
}
|
|
63282
|
-
this.parsedXML.className = parsed.abapGit["asx:abap"]["asx:values"].CLASS;
|
|
63283
|
-
this.parsedXML.description = parsed.abapGit["asx:abap"]["asx:values"].SHORTTEXT;
|
|
63433
|
+
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;
|
|
63434
|
+
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;
|
|
63284
63435
|
const end = Date.now();
|
|
63285
63436
|
return { updated: true, runtime: end - start };
|
|
63286
63437
|
}
|
|
@@ -63328,13 +63479,13 @@ class EnhancementSpot extends _abstract_object_1.AbstractObject {
|
|
|
63328
63479
|
}
|
|
63329
63480
|
/////////////////
|
|
63330
63481
|
parseXML() {
|
|
63331
|
-
var _a, _b;
|
|
63482
|
+
var _a, _b, _c, _d;
|
|
63332
63483
|
const parsed = super.parseRaw2();
|
|
63333
63484
|
if (parsed === undefined) {
|
|
63334
63485
|
return [];
|
|
63335
63486
|
}
|
|
63336
63487
|
const ret = [];
|
|
63337
|
-
for (const b of (0, xml_utils_1.xmlToArray)((_b = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
63488
|
+
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)) {
|
|
63338
63489
|
ret.push({
|
|
63339
63490
|
name: b.BADI_NAME,
|
|
63340
63491
|
interface: b.INTERFACE_NAME,
|
|
@@ -63777,33 +63928,45 @@ class FunctionGroup extends _abap_object_1.ABAPObject {
|
|
|
63777
63928
|
if (found === undefined) {
|
|
63778
63929
|
return {};
|
|
63779
63930
|
}
|
|
63780
|
-
|
|
63781
|
-
|
|
63931
|
+
try {
|
|
63932
|
+
const parsed = new fast_xml_parser_1.XMLParser({ parseTagValue: false, ignoreAttributes: true, trimValues: false }).parse(found.getRaw());
|
|
63933
|
+
this.findTexts(parsed);
|
|
63934
|
+
}
|
|
63935
|
+
catch (_b) {
|
|
63936
|
+
this.texts = {};
|
|
63937
|
+
}
|
|
63782
63938
|
}
|
|
63783
63939
|
return (_a = this.texts["I"]) !== null && _a !== void 0 ? _a : {};
|
|
63784
63940
|
}
|
|
63785
63941
|
/////////////////////////////////
|
|
63786
63942
|
parseXML() {
|
|
63787
|
-
var _a, _b, _c;
|
|
63943
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
63788
63944
|
this.includes = [];
|
|
63789
63945
|
this.modules = [];
|
|
63790
63946
|
const parsed = this.parseRaw2();
|
|
63791
63947
|
if (parsed === undefined) {
|
|
63792
63948
|
return;
|
|
63793
63949
|
}
|
|
63794
|
-
this.description = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
63950
|
+
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;
|
|
63795
63951
|
this.dynpros = (0, _dynpros_1.parseDynpros)(parsed);
|
|
63796
63952
|
// INCLUDES
|
|
63797
|
-
const includes = (
|
|
63953
|
+
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;
|
|
63798
63954
|
if (includes !== undefined) {
|
|
63799
63955
|
for (const i of (0, xml_utils_1.xmlToArray)(includes.SOBJ_NAME)) {
|
|
63800
|
-
|
|
63956
|
+
if (typeof i === "string") {
|
|
63957
|
+
this.includes.push(i);
|
|
63958
|
+
}
|
|
63801
63959
|
}
|
|
63802
63960
|
}
|
|
63803
63961
|
// FUNCTION MODULES
|
|
63804
|
-
const functions = (
|
|
63962
|
+
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;
|
|
63805
63963
|
for (const module of (0, xml_utils_1.xmlToArray)(functions === null || functions === void 0 ? void 0 : functions.item)) {
|
|
63806
|
-
|
|
63964
|
+
try {
|
|
63965
|
+
this.modules.push(new types_1.FunctionModuleDefinition(module));
|
|
63966
|
+
}
|
|
63967
|
+
catch (_k) {
|
|
63968
|
+
// Ignore malformed function module metadata.
|
|
63969
|
+
}
|
|
63807
63970
|
}
|
|
63808
63971
|
}
|
|
63809
63972
|
findTextFile() {
|
|
@@ -64359,6 +64522,7 @@ class ICFService extends _abstract_object_1.AbstractObject {
|
|
|
64359
64522
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.handlers;
|
|
64360
64523
|
}
|
|
64361
64524
|
parse() {
|
|
64525
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
64362
64526
|
if (this.parsedXML) {
|
|
64363
64527
|
return { updated: false, runtime: 0 };
|
|
64364
64528
|
}
|
|
@@ -64367,17 +64531,17 @@ class ICFService extends _abstract_object_1.AbstractObject {
|
|
|
64367
64531
|
const parsed = super.parseRaw2();
|
|
64368
64532
|
if (parsed === undefined
|
|
64369
64533
|
|| parsed.abapGit === undefined
|
|
64370
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
64534
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
64371
64535
|
return { updated: false, runtime: 0 };
|
|
64372
64536
|
}
|
|
64373
|
-
const table = parsed.abapGit["asx:abap"]["asx:values"].ICFHANDLER_TABLE;
|
|
64537
|
+
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;
|
|
64374
64538
|
this.parsedXML.handlers = [];
|
|
64375
64539
|
for (const h of (0, xml_utils_1.xmlToArray)(table)) {
|
|
64376
64540
|
if (h.ICFHANDLER !== undefined) {
|
|
64377
64541
|
this.parsedXML.handlers.push(h.ICFHANDLER.ICFHANDLER);
|
|
64378
64542
|
}
|
|
64379
64543
|
}
|
|
64380
|
-
this.parsedXML.url = parsed.abapGit["asx:abap"]["asx:values"].URL;
|
|
64544
|
+
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;
|
|
64381
64545
|
const end = Date.now();
|
|
64382
64546
|
return { updated: true, runtime: end - start };
|
|
64383
64547
|
}
|
|
@@ -64800,16 +64964,17 @@ class Interface extends _abap_object_1.ABAPObject {
|
|
|
64800
64964
|
}
|
|
64801
64965
|
/////////////////////////
|
|
64802
64966
|
parseXML() {
|
|
64967
|
+
var _a, _b, _c, _d, _e;
|
|
64803
64968
|
if (this.parsedXML !== undefined) {
|
|
64804
64969
|
return;
|
|
64805
64970
|
}
|
|
64806
64971
|
this.parsedXML = {};
|
|
64807
64972
|
const parsed = super.parseRaw2();
|
|
64808
64973
|
if (parsed === undefined
|
|
64809
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
64974
|
+
|| ((_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) {
|
|
64810
64975
|
return;
|
|
64811
64976
|
}
|
|
64812
|
-
const vseo = parsed.abapGit["asx:abap"]["asx:values"].VSEOINTERF;
|
|
64977
|
+
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;
|
|
64813
64978
|
if (vseo === undefined) {
|
|
64814
64979
|
this.parsedXML.description = "";
|
|
64815
64980
|
this.parsedXML.name = "";
|
|
@@ -64913,7 +65078,7 @@ class LockObject extends _abstract_object_1.AbstractObject {
|
|
|
64913
65078
|
}
|
|
64914
65079
|
}
|
|
64915
65080
|
parse() {
|
|
64916
|
-
var _a, _b;
|
|
65081
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
64917
65082
|
if (this.parsedXML) {
|
|
64918
65083
|
return { updated: false, runtime: 0 };
|
|
64919
65084
|
}
|
|
@@ -64922,11 +65087,11 @@ class LockObject extends _abstract_object_1.AbstractObject {
|
|
|
64922
65087
|
const parsed = super.parseRaw2();
|
|
64923
65088
|
if (parsed === undefined
|
|
64924
65089
|
|| parsed.abapGit === undefined
|
|
64925
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
65090
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
64926
65091
|
return { updated: false, runtime: 0 };
|
|
64927
65092
|
}
|
|
64928
|
-
this.parsedXML.primaryTable = (
|
|
64929
|
-
this.parsedXML.description = (
|
|
65093
|
+
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;
|
|
65094
|
+
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;
|
|
64930
65095
|
const end = Date.now();
|
|
64931
65096
|
return { updated: true, runtime: end - start };
|
|
64932
65097
|
}
|
|
@@ -65014,7 +65179,7 @@ class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {
|
|
|
65014
65179
|
}
|
|
65015
65180
|
}
|
|
65016
65181
|
parse() {
|
|
65017
|
-
var _a, _b, _c, _d;
|
|
65182
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
65018
65183
|
if (this.parsedXML) {
|
|
65019
65184
|
return { updated: false, runtime: 0 };
|
|
65020
65185
|
}
|
|
@@ -65023,12 +65188,12 @@ class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {
|
|
|
65023
65188
|
const parsed = super.parseRaw2();
|
|
65024
65189
|
if (parsed === undefined
|
|
65025
65190
|
|| parsed.abapGit === undefined
|
|
65026
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
65191
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
65027
65192
|
return { updated: false, runtime: 0 };
|
|
65028
65193
|
}
|
|
65029
|
-
this.parsedXML.area = (
|
|
65030
|
-
this.parsedXML.objectName = (
|
|
65031
|
-
this.parsedXML.objectType = (
|
|
65194
|
+
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;
|
|
65195
|
+
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;
|
|
65196
|
+
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;
|
|
65032
65197
|
const end = Date.now();
|
|
65033
65198
|
return { updated: true, runtime: end - start };
|
|
65034
65199
|
}
|
|
@@ -65101,7 +65266,7 @@ class MessageClass extends _abstract_object_1.AbstractObject {
|
|
|
65101
65266
|
}
|
|
65102
65267
|
/////////////////////////////////
|
|
65103
65268
|
parseXML() {
|
|
65104
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
65269
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
65105
65270
|
if (this.xml !== undefined) {
|
|
65106
65271
|
return;
|
|
65107
65272
|
}
|
|
@@ -65115,16 +65280,16 @@ class MessageClass extends _abstract_object_1.AbstractObject {
|
|
|
65115
65280
|
if (parsed === undefined) {
|
|
65116
65281
|
return;
|
|
65117
65282
|
}
|
|
65118
|
-
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 ||
|
|
65119
|
-
this.xml.description = (
|
|
65120
|
-
const t100 = (
|
|
65283
|
+
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;
|
|
65284
|
+
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;
|
|
65285
|
+
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;
|
|
65121
65286
|
if (t100 === undefined) {
|
|
65122
65287
|
return;
|
|
65123
65288
|
}
|
|
65124
65289
|
for (const msg of (0, xml_utils_1.xmlToArray)(t100.T100)) {
|
|
65125
65290
|
this.xml.parsedMessages.push(new message_1.Message(msg.MSGNR, (0, xml_utils_1.unescape)(msg.TEXT), msg.ARBGB));
|
|
65126
65291
|
}
|
|
65127
|
-
const t100_texts = (
|
|
65292
|
+
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;
|
|
65128
65293
|
if (t100_texts === undefined) {
|
|
65129
65294
|
return;
|
|
65130
65295
|
}
|
|
@@ -65222,6 +65387,7 @@ class MIMEObject extends _abstract_object_1.AbstractObject {
|
|
|
65222
65387
|
return undefined;
|
|
65223
65388
|
}
|
|
65224
65389
|
parse() {
|
|
65390
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
65225
65391
|
if (this.parsedXML) {
|
|
65226
65392
|
return { updated: false, runtime: 0 };
|
|
65227
65393
|
}
|
|
@@ -65230,12 +65396,12 @@ class MIMEObject extends _abstract_object_1.AbstractObject {
|
|
|
65230
65396
|
const parsed = super.parseRaw2();
|
|
65231
65397
|
if (parsed === undefined
|
|
65232
65398
|
|| parsed.abapGit === undefined
|
|
65233
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
65399
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
65234
65400
|
return { updated: false, runtime: 0 };
|
|
65235
65401
|
}
|
|
65236
|
-
this.parsedXML.URL = parsed.abapGit["asx:abap"]["asx:values"].URL;
|
|
65237
|
-
this.parsedXML.CLASS = parsed.abapGit["asx:abap"]["asx:values"].CLASS;
|
|
65238
|
-
this.parsedXML.FOLDER = parsed.abapGit["asx:abap"]["asx:values"].FOLDER;
|
|
65402
|
+
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;
|
|
65403
|
+
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;
|
|
65404
|
+
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;
|
|
65239
65405
|
const end = Date.now();
|
|
65240
65406
|
return { updated: true, runtime: end - start };
|
|
65241
65407
|
}
|
|
@@ -66083,10 +66249,10 @@ class Oauth2Profile extends _abstract_object_1.AbstractObject {
|
|
|
66083
66249
|
return undefined;
|
|
66084
66250
|
}
|
|
66085
66251
|
listScopes() {
|
|
66086
|
-
var _a, _b, _c;
|
|
66252
|
+
var _a, _b, _c, _d, _e;
|
|
66087
66253
|
const ret = [];
|
|
66088
66254
|
const parsed = super.parseRaw2();
|
|
66089
|
-
for (const t of (0, xml_utils_1.xmlToArray)((_c = (_b = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
66255
|
+
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)) {
|
|
66090
66256
|
ret.push(t.SCOPE);
|
|
66091
66257
|
}
|
|
66092
66258
|
return ret;
|
|
@@ -66371,7 +66537,7 @@ class Program extends _abap_object_1.ABAPObject {
|
|
|
66371
66537
|
}
|
|
66372
66538
|
////////////////////////////
|
|
66373
66539
|
parseXML() {
|
|
66374
|
-
var _a, _b, _c;
|
|
66540
|
+
var _a, _b, _c, _d;
|
|
66375
66541
|
if (this.parsedXML !== undefined) {
|
|
66376
66542
|
return;
|
|
66377
66543
|
}
|
|
@@ -66389,11 +66555,11 @@ class Program extends _abap_object_1.ABAPObject {
|
|
|
66389
66555
|
}
|
|
66390
66556
|
let description = "";
|
|
66391
66557
|
const selectionTexts = {};
|
|
66392
|
-
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 ||
|
|
66558
|
+
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)) {
|
|
66393
66559
|
if ((t === null || t === void 0 ? void 0 : t.ID) === "R") {
|
|
66394
66560
|
description = t.ENTRY ? (0, xml_utils_1.unescape)(t.ENTRY) : "";
|
|
66395
66561
|
}
|
|
66396
|
-
else if ((t === null || t === void 0 ? void 0 : t.ID) === "S" && t.KEY
|
|
66562
|
+
else if ((t === null || t === void 0 ? void 0 : t.ID) === "S" && typeof t.KEY === "string") {
|
|
66397
66563
|
selectionTexts[t.KEY.toUpperCase()] = { entry: t.ENTRY ? (0, xml_utils_1.unescape)(t.ENTRY) : "", maxLength: parseInt(t.LENGTH, 10) };
|
|
66398
66564
|
}
|
|
66399
66565
|
}
|
|
@@ -66460,20 +66626,19 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66460
66626
|
return { updated: true, runtime: end - start };
|
|
66461
66627
|
}
|
|
66462
66628
|
parseXML() {
|
|
66463
|
-
var _a, _b;
|
|
66629
|
+
var _a, _b, _c, _d, _e;
|
|
66464
66630
|
const result = { proxyData: [] };
|
|
66465
66631
|
const parsed = super.parseRaw2();
|
|
66466
66632
|
if (parsed === undefined
|
|
66467
66633
|
|| parsed.abapGit === undefined
|
|
66468
|
-
|| ((_a = parsed.abapGit["asx:abap"]) === null ||
|
|
66634
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
66469
66635
|
return result;
|
|
66470
66636
|
}
|
|
66471
|
-
const values = parsed.abapGit["asx:abap"]["asx:values"];
|
|
66472
|
-
result.proxyData = (0, xml_utils_1.xmlToArray)((
|
|
66637
|
+
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"];
|
|
66638
|
+
result.proxyData = (0, xml_utils_1.xmlToArray)((_e = values.PROXY_DATA) === null || _e === void 0 ? void 0 : _e.item);
|
|
66473
66639
|
return result;
|
|
66474
66640
|
}
|
|
66475
66641
|
generateABAPObjects() {
|
|
66476
|
-
var _a, _b, _c, _d, _e;
|
|
66477
66642
|
this.parse();
|
|
66478
66643
|
const result = [];
|
|
66479
66644
|
if (!this.parsedXML) {
|
|
@@ -66481,7 +66646,7 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66481
66646
|
}
|
|
66482
66647
|
// Find interface definition
|
|
66483
66648
|
const intfItem = this.parsedXML.proxyData.find(i => i.R3_TYPE === "INTF");
|
|
66484
|
-
if (!intfItem ||
|
|
66649
|
+
if (!intfItem || typeof intfItem.R3_NAME !== "string") {
|
|
66485
66650
|
return result;
|
|
66486
66651
|
}
|
|
66487
66652
|
const intfName = intfItem.R3_NAME.toLowerCase();
|
|
@@ -66490,10 +66655,10 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66490
66655
|
// Build interface code
|
|
66491
66656
|
let code = `INTERFACE ${intfName} PUBLIC.\n`;
|
|
66492
66657
|
for (const method of methods) {
|
|
66493
|
-
|
|
66494
|
-
if (!methodName) {
|
|
66658
|
+
if (typeof method.R3_NAME !== "string") {
|
|
66495
66659
|
continue;
|
|
66496
66660
|
}
|
|
66661
|
+
const methodName = method.R3_NAME.toLowerCase();
|
|
66497
66662
|
// Find parameters for this method
|
|
66498
66663
|
const importingParameters = this.parsedXML.proxyData.filter(i => i.R3_TYPE === "PAIM" && i.OBJ_NAME1 === method.OBJ_NAME1);
|
|
66499
66664
|
const exportingParameters = this.parsedXML.proxyData.filter(i => i.R3_TYPE === "PAEX" && i.OBJ_NAME1 === method.OBJ_NAME1);
|
|
@@ -66502,8 +66667,8 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66502
66667
|
code += ` IMPORTING\n`;
|
|
66503
66668
|
for (let i = 0; i < importingParameters.length; i++) {
|
|
66504
66669
|
const param = importingParameters[i];
|
|
66505
|
-
const paramName =
|
|
66506
|
-
const paramType =
|
|
66670
|
+
const paramName = typeof param.OBJ_NAME2 === "string" ? param.OBJ_NAME2.toLowerCase() : undefined;
|
|
66671
|
+
const paramType = typeof param.OBJ_NAME_R === "string" ? param.OBJ_NAME_R.toLowerCase() : undefined;
|
|
66507
66672
|
const isLast = i === importingParameters.length - 1 && exportingParameters.length === 0;
|
|
66508
66673
|
code += ` ${paramName} TYPE ${paramType}${isLast ? "." : ""}\n`;
|
|
66509
66674
|
}
|
|
@@ -66512,8 +66677,8 @@ class ProxyObject extends _abstract_object_1.AbstractObject {
|
|
|
66512
66677
|
code += ` EXPORTING\n`;
|
|
66513
66678
|
for (let i = 0; i < exportingParameters.length; i++) {
|
|
66514
66679
|
const param = exportingParameters[i];
|
|
66515
|
-
const paramName =
|
|
66516
|
-
const paramType =
|
|
66680
|
+
const paramName = typeof param.OBJ_NAME2 === "string" ? param.OBJ_NAME2.toLowerCase() : undefined;
|
|
66681
|
+
const paramType = typeof param.OBJ_NAME_R === "string" ? param.OBJ_NAME_R.toLowerCase() : undefined;
|
|
66517
66682
|
const isLast = i === exportingParameters.length - 1;
|
|
66518
66683
|
code += ` ${paramName} TYPE ${paramType}${isLast ? "." : ""}\n`;
|
|
66519
66684
|
}
|
|
@@ -68344,7 +68509,7 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
68344
68509
|
return false;
|
|
68345
68510
|
}
|
|
68346
68511
|
parseXML() {
|
|
68347
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
68512
|
+
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;
|
|
68348
68513
|
const parsed = super.parseRaw2();
|
|
68349
68514
|
if (parsed === undefined) {
|
|
68350
68515
|
return;
|
|
@@ -68354,19 +68519,22 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
68354
68519
|
return;
|
|
68355
68520
|
}
|
|
68356
68521
|
// enhancement category
|
|
68357
|
-
if (((_b = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
68522
|
+
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) {
|
|
68358
68523
|
this.parsedData.enhancementCategory = EnhancementCategory.NotClassified;
|
|
68359
68524
|
}
|
|
68360
68525
|
else {
|
|
68361
|
-
this.parsedData.enhancementCategory = (
|
|
68526
|
+
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;
|
|
68362
68527
|
}
|
|
68363
68528
|
// table category
|
|
68364
|
-
this.parsedData.tableCategory = (
|
|
68365
|
-
this.parsedData.description = (
|
|
68366
|
-
this.parsedData.dataClass = (
|
|
68529
|
+
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;
|
|
68530
|
+
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;
|
|
68531
|
+
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;
|
|
68367
68532
|
// fields
|
|
68368
|
-
const fields = (
|
|
68533
|
+
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;
|
|
68369
68534
|
for (const field of (0, xml_utils_1.xmlToArray)(fields === null || fields === void 0 ? void 0 : fields.DD03P)) {
|
|
68535
|
+
if (typeof (field === null || field === void 0 ? void 0 : field.FIELDNAME) !== "string") {
|
|
68536
|
+
continue;
|
|
68537
|
+
}
|
|
68370
68538
|
this.parsedData.fields.push({
|
|
68371
68539
|
FIELDNAME: field.FIELDNAME,
|
|
68372
68540
|
ROLLNAME: field.ROLLNAME,
|
|
@@ -68386,13 +68554,13 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
68386
68554
|
});
|
|
68387
68555
|
}
|
|
68388
68556
|
// secondary indexes
|
|
68389
|
-
const indexes = (
|
|
68557
|
+
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;
|
|
68390
68558
|
;
|
|
68391
68559
|
this.parsedData.secondaryIndexes = [];
|
|
68392
68560
|
for (const index of (0, xml_utils_1.xmlToArray)(indexes === null || indexes === void 0 ? void 0 : indexes.DD12V)) {
|
|
68393
68561
|
const indexName = index.INDEXNAME;
|
|
68394
68562
|
const indexFields = [];
|
|
68395
|
-
const indexFieldsXml = (
|
|
68563
|
+
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;
|
|
68396
68564
|
for (const indexField of (0, xml_utils_1.xmlToArray)(indexFieldsXml === null || indexFieldsXml === void 0 ? void 0 : indexFieldsXml.DD17V)) {
|
|
68397
68565
|
if (indexField.INDEXNAME === indexName) {
|
|
68398
68566
|
// assumption: fields are listed by POSITION in the xml
|
|
@@ -68615,7 +68783,7 @@ class TableType extends _abstract_object_1.AbstractObject {
|
|
|
68615
68783
|
}
|
|
68616
68784
|
////////////////////
|
|
68617
68785
|
parseXML() {
|
|
68618
|
-
var _a, _b;
|
|
68786
|
+
var _a, _b, _c, _d;
|
|
68619
68787
|
if (this.parsedXML !== undefined) {
|
|
68620
68788
|
return;
|
|
68621
68789
|
}
|
|
@@ -68627,11 +68795,14 @@ class TableType extends _abstract_object_1.AbstractObject {
|
|
|
68627
68795
|
if (parsed === undefined || parsed.abapGit === undefined) {
|
|
68628
68796
|
return;
|
|
68629
68797
|
}
|
|
68630
|
-
const values = parsed.abapGit["asx:abap"]["asx:values"];
|
|
68798
|
+
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"];
|
|
68631
68799
|
if (values === undefined) {
|
|
68632
68800
|
return;
|
|
68633
68801
|
}
|
|
68634
68802
|
const dd40v = values.DD40V;
|
|
68803
|
+
if (dd40v === undefined) {
|
|
68804
|
+
return;
|
|
68805
|
+
}
|
|
68635
68806
|
this.parsedXML.rowtype = dd40v.ROWTYPE ? dd40v.ROWTYPE : "";
|
|
68636
68807
|
this.parsedXML.rowkind = dd40v.ROWKIND ? dd40v.ROWKIND : "";
|
|
68637
68808
|
this.parsedXML.datatype = dd40v.DATATYPE;
|
|
@@ -68641,13 +68812,13 @@ class TableType extends _abstract_object_1.AbstractObject {
|
|
|
68641
68812
|
this.parsedXML.keykind = dd40v.KEYKIND;
|
|
68642
68813
|
this.parsedXML.ddtext = dd40v.DDTEXT;
|
|
68643
68814
|
this.parsedXML.keydef = dd40v.KEYDEF;
|
|
68644
|
-
for (const x of (0, xml_utils_1.xmlToArray)((
|
|
68815
|
+
for (const x of (0, xml_utils_1.xmlToArray)((_c = values.DD42V) === null || _c === void 0 ? void 0 : _c.DD42V)) {
|
|
68645
68816
|
this.parsedXML.dd42v.push({
|
|
68646
68817
|
keyname: x.SECKEYNAME || "",
|
|
68647
68818
|
keyfield: x.KEYFIELD || "",
|
|
68648
68819
|
});
|
|
68649
68820
|
}
|
|
68650
|
-
for (const x of (0, xml_utils_1.xmlToArray)((
|
|
68821
|
+
for (const x of (0, xml_utils_1.xmlToArray)((_d = values.DD43V) === null || _d === void 0 ? void 0 : _d.DD43V)) {
|
|
68651
68822
|
this.parsedXML.dd43v.push({
|
|
68652
68823
|
keyname: x.SECKEYNAME || "",
|
|
68653
68824
|
accessmode: x.ACCESSMODE || "",
|
|
@@ -69023,7 +69194,7 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
69023
69194
|
}
|
|
69024
69195
|
///////////////
|
|
69025
69196
|
parseXML() {
|
|
69026
|
-
var _a, _b, _c;
|
|
69197
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
69027
69198
|
this.parsedData = {
|
|
69028
69199
|
header: {
|
|
69029
69200
|
VIEWCLASS: "",
|
|
@@ -69036,13 +69207,18 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
69036
69207
|
if (parsed === undefined || parsed.abapGit === undefined) {
|
|
69037
69208
|
return;
|
|
69038
69209
|
}
|
|
69039
|
-
const header = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null ||
|
|
69210
|
+
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;
|
|
69040
69211
|
this.parsedData.header = {
|
|
69041
69212
|
VIEWCLASS: (header === null || header === void 0 ? void 0 : header.VIEWCLASS) || "",
|
|
69042
69213
|
DDTEXT: (header === null || header === void 0 ? void 0 : header.DDTEXT) || "",
|
|
69043
69214
|
};
|
|
69044
|
-
const fields = (
|
|
69215
|
+
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;
|
|
69045
69216
|
for (const field of (0, xml_utils_1.xmlToArray)(fields === null || fields === void 0 ? void 0 : fields.DD27P)) {
|
|
69217
|
+
if (typeof (field === null || field === void 0 ? void 0 : field.VIEWFIELD) !== "string"
|
|
69218
|
+
|| typeof (field === null || field === void 0 ? void 0 : field.TABNAME) !== "string"
|
|
69219
|
+
|| typeof (field === null || field === void 0 ? void 0 : field.FIELDNAME) !== "string") {
|
|
69220
|
+
continue;
|
|
69221
|
+
}
|
|
69046
69222
|
this.parsedData.fields.push({
|
|
69047
69223
|
VIEWFIELD: field.VIEWFIELD,
|
|
69048
69224
|
TABNAME: field.TABNAME,
|
|
@@ -69050,7 +69226,7 @@ class View extends _abstract_object_1.AbstractObject {
|
|
|
69050
69226
|
KEYFLAG: field.KEYFLAG,
|
|
69051
69227
|
});
|
|
69052
69228
|
}
|
|
69053
|
-
const join = (
|
|
69229
|
+
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;
|
|
69054
69230
|
for (const j of (0, xml_utils_1.xmlToArray)(join === null || join === void 0 ? void 0 : join.DD28J)) {
|
|
69055
69231
|
this.parsedData.join.push({
|
|
69056
69232
|
LTAB: j.LTAB,
|
|
@@ -69305,7 +69481,7 @@ class WebMIME extends _abstract_object_1.AbstractObject {
|
|
|
69305
69481
|
return undefined;
|
|
69306
69482
|
}
|
|
69307
69483
|
parse() {
|
|
69308
|
-
var _a;
|
|
69484
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
69309
69485
|
if (this.parsedXML) {
|
|
69310
69486
|
return { updated: false, runtime: 0 };
|
|
69311
69487
|
}
|
|
@@ -69314,11 +69490,14 @@ class WebMIME extends _abstract_object_1.AbstractObject {
|
|
|
69314
69490
|
const parsed = super.parseRaw2();
|
|
69315
69491
|
if (parsed === undefined
|
|
69316
69492
|
|| parsed.abapGit === undefined
|
|
69317
|
-
|| parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
|
|
69493
|
+
|| ((_b = (_a = parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]) === null || _b === void 0 ? void 0 : _b["asx:values"]) === undefined) {
|
|
69318
69494
|
return { updated: false, runtime: 0 };
|
|
69319
69495
|
}
|
|
69320
|
-
this.parsedXML.description = parsed.abapGit["asx:abap"]["asx:values"].TEXT;
|
|
69321
|
-
for (const param of (0, xml_utils_1.xmlToArray)((
|
|
69496
|
+
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;
|
|
69497
|
+
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)) {
|
|
69498
|
+
if (typeof (param === null || param === void 0 ? void 0 : param.NAME) !== "string") {
|
|
69499
|
+
continue;
|
|
69500
|
+
}
|
|
69322
69501
|
this.parsedXML.params[param.NAME.toLowerCase()] = param.VALUE;
|
|
69323
69502
|
}
|
|
69324
69503
|
const end = Date.now();
|
|
@@ -69919,7 +70098,7 @@ class Registry {
|
|
|
69919
70098
|
}
|
|
69920
70099
|
static abaplintVersion() {
|
|
69921
70100
|
// magic, see build script "version.js"
|
|
69922
|
-
return "2.120.
|
|
70101
|
+
return "2.120.20";
|
|
69923
70102
|
}
|
|
69924
70103
|
getDDICReferences() {
|
|
69925
70104
|
return this.ddicReferences;
|
|
@@ -74643,6 +74822,8 @@ const objects_1 = __webpack_require__(/*! ../objects */ "./node_modules/@abaplin
|
|
|
74643
74822
|
const _reference_1 = __webpack_require__(/*! ../abap/5_syntax/_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
|
|
74644
74823
|
const basic_1 = __webpack_require__(/*! ../abap/types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
|
|
74645
74824
|
const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/_statement.js");
|
|
74825
|
+
const statements_1 = __webpack_require__(/*! ../abap/2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
74826
|
+
const expressions_1 = __webpack_require__(/*! ../abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
74646
74827
|
class ClearExportingParametersConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
74647
74828
|
constructor() {
|
|
74648
74829
|
super(...arguments);
|
|
@@ -74674,6 +74855,8 @@ Note: EXPORTING parameters passed by VALUE are always initialized and are theref
|
|
|
74674
74855
|
Reading and writing the parameter in the same statement (e.g. "ev_result = ev_result + 1") is reported,
|
|
74675
74856
|
as the source is evaluated before the parameter is assigned.
|
|
74676
74857
|
Objects containing parser or syntax errors are not reported.
|
|
74858
|
+
"IS SUPPLIED"/"IS REQUESTED" checks are not considered reads, and "GET REFERENCE OF" plus
|
|
74859
|
+
"ASSIGN ... TO <fs>" are considered writes, as the value can be written via the reference.
|
|
74677
74860
|
|
|
74678
74861
|
Class and interface method implementations and function modules are checked.`,
|
|
74679
74862
|
tags: [_irule_1.RuleTag.Styleguide],
|
|
@@ -74799,6 +74982,16 @@ ENDCLASS.`,
|
|
|
74799
74982
|
}
|
|
74800
74983
|
const pos = reference.position.getStart();
|
|
74801
74984
|
if (reference.referenceType === _reference_1.ReferenceType.DataReadReference) {
|
|
74985
|
+
if (this.isSuppliedOrRequested(reference, obj)) {
|
|
74986
|
+
continue; // "IS SUPPLIED" / "IS REQUESTED" does not read the value
|
|
74987
|
+
}
|
|
74988
|
+
if (this.isReferenceOrAssign(reference, obj)) {
|
|
74989
|
+
// "GET REFERENCE OF" and "ASSIGN ... TO <fs>" may be used for writing the value
|
|
74990
|
+
if (earliestWrite === undefined || pos.isBefore(earliestWrite.position.getStart())) {
|
|
74991
|
+
earliestWrite = reference;
|
|
74992
|
+
}
|
|
74993
|
+
continue;
|
|
74994
|
+
}
|
|
74802
74995
|
if (firstRead === undefined || pos.isBefore(firstRead.position.getStart())) {
|
|
74803
74996
|
firstRead = reference;
|
|
74804
74997
|
}
|
|
@@ -74821,6 +75014,46 @@ ENDCLASS.`,
|
|
|
74821
75014
|
const message = `EXPORTING parameter "${parameter.getName().toLowerCase()}" read before it is cleared or assigned`;
|
|
74822
75015
|
return issue_1.Issue.atIdentifier(firstRead.position, message, this.getMetadata().key, this.conf.severity);
|
|
74823
75016
|
}
|
|
75017
|
+
isReferenceOrAssign(reference, obj) {
|
|
75018
|
+
const file = obj.getABAPFileByName(reference.position.getFilename());
|
|
75019
|
+
const pos = reference.position.getStart();
|
|
75020
|
+
for (const statement of (file === null || file === void 0 ? void 0 : file.getStatements()) || []) {
|
|
75021
|
+
const start = statement.getStart();
|
|
75022
|
+
const end = statement.getEnd();
|
|
75023
|
+
if (pos.equals(start) === false && (pos.isAfter(start) === false || pos.isBefore(end) === false)) {
|
|
75024
|
+
continue;
|
|
75025
|
+
}
|
|
75026
|
+
const type = statement.get();
|
|
75027
|
+
return type instanceof statements_1.GetReference || type instanceof statements_1.Assign;
|
|
75028
|
+
}
|
|
75029
|
+
return false;
|
|
75030
|
+
}
|
|
75031
|
+
isSuppliedOrRequested(reference, obj) {
|
|
75032
|
+
const file = obj.getABAPFileByName(reference.position.getFilename());
|
|
75033
|
+
const pos = reference.position.getStart();
|
|
75034
|
+
for (const statement of (file === null || file === void 0 ? void 0 : file.getStatements()) || []) {
|
|
75035
|
+
const start = statement.getStart();
|
|
75036
|
+
const end = statement.getEnd();
|
|
75037
|
+
if (pos.equals(start) === false && (pos.isAfter(start) === false || pos.isBefore(end) === false)) {
|
|
75038
|
+
continue;
|
|
75039
|
+
}
|
|
75040
|
+
for (const compare of statement.findAllExpressionsRecursive(expressions_1.Compare)) {
|
|
75041
|
+
const upper = compare.concatTokens().toUpperCase();
|
|
75042
|
+
if (upper.includes(" IS SUPPLIED") === false
|
|
75043
|
+
&& upper.includes(" IS REQUESTED") === false
|
|
75044
|
+
&& upper.includes(" IS NOT SUPPLIED") === false
|
|
75045
|
+
&& upper.includes(" IS NOT REQUESTED") === false) {
|
|
75046
|
+
continue;
|
|
75047
|
+
}
|
|
75048
|
+
const cStart = compare.getFirstToken().getStart();
|
|
75049
|
+
const cEnd = compare.getLastToken().getEnd();
|
|
75050
|
+
if ((pos.equals(cStart) || pos.isAfter(cStart)) && pos.isBefore(cEnd)) {
|
|
75051
|
+
return true;
|
|
75052
|
+
}
|
|
75053
|
+
}
|
|
75054
|
+
}
|
|
75055
|
+
return false;
|
|
75056
|
+
}
|
|
74824
75057
|
statementStart(reference, obj) {
|
|
74825
75058
|
const file = obj.getABAPFileByName(reference.position.getFilename());
|
|
74826
75059
|
for (const statement of (file === null || file === void 0 ? void 0 : file.getStatements()) || []) {
|
|
@@ -92872,11 +93105,18 @@ Consider using ABAP Doc for documentation.`,
|
|
|
92872
93105
|
return this.checkXML(xml, file);
|
|
92873
93106
|
}
|
|
92874
93107
|
checkXML(xml, file) {
|
|
92875
|
-
|
|
92876
|
-
|
|
93108
|
+
var _a, _b, _c, _d, _e;
|
|
93109
|
+
let parsed;
|
|
93110
|
+
try {
|
|
93111
|
+
parsed = new fast_xml_parser_1.XMLParser({ parseTagValue: false, ignoreAttributes: true, trimValues: false }).parse(xml);
|
|
93112
|
+
}
|
|
93113
|
+
catch (_f) {
|
|
92877
93114
|
return [];
|
|
92878
93115
|
}
|
|
92879
|
-
|
|
93116
|
+
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) {
|
|
93117
|
+
return [];
|
|
93118
|
+
}
|
|
93119
|
+
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;
|
|
92880
93120
|
if (desc === undefined) {
|
|
92881
93121
|
return [];
|
|
92882
93122
|
}
|
|
@@ -99214,6 +99454,40 @@ class XMLConsistency {
|
|
|
99214
99454
|
const issues = [];
|
|
99215
99455
|
const texts = obj.getTexts();
|
|
99216
99456
|
const maxLengths = obj.getTextMaxLengths();
|
|
99457
|
+
const hasLabelTexts = (texts === null || texts === void 0 ? void 0 : texts.short) !== undefined
|
|
99458
|
+
|| (texts === null || texts === void 0 ? void 0 : texts.medium) !== undefined
|
|
99459
|
+
|| (texts === null || texts === void 0 ? void 0 : texts.long) !== undefined
|
|
99460
|
+
|| (texts === null || texts === void 0 ? void 0 : texts.heading) !== undefined;
|
|
99461
|
+
if ((texts === null || texts === void 0 ? void 0 : texts.short) !== undefined) {
|
|
99462
|
+
const issue = this.checkRequiredField(file, "SCRLEN1", maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.short);
|
|
99463
|
+
if (issue) {
|
|
99464
|
+
issues.push(issue);
|
|
99465
|
+
}
|
|
99466
|
+
}
|
|
99467
|
+
if ((texts === null || texts === void 0 ? void 0 : texts.medium) !== undefined) {
|
|
99468
|
+
const issue = this.checkRequiredField(file, "SCRLEN2", maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.medium);
|
|
99469
|
+
if (issue) {
|
|
99470
|
+
issues.push(issue);
|
|
99471
|
+
}
|
|
99472
|
+
}
|
|
99473
|
+
if ((texts === null || texts === void 0 ? void 0 : texts.long) !== undefined) {
|
|
99474
|
+
const issue = this.checkRequiredField(file, "SCRLEN3", maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.long);
|
|
99475
|
+
if (issue) {
|
|
99476
|
+
issues.push(issue);
|
|
99477
|
+
}
|
|
99478
|
+
}
|
|
99479
|
+
if ((texts === null || texts === void 0 ? void 0 : texts.heading) !== undefined) {
|
|
99480
|
+
const issue = this.checkRequiredField(file, "HEADLEN", maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.heading);
|
|
99481
|
+
if (issue) {
|
|
99482
|
+
issues.push(issue);
|
|
99483
|
+
}
|
|
99484
|
+
}
|
|
99485
|
+
if (hasLabelTexts) {
|
|
99486
|
+
const issue = this.checkRequiredField(file, "DTELMASTER", obj.getDtelMaster());
|
|
99487
|
+
if (issue) {
|
|
99488
|
+
issues.push(issue);
|
|
99489
|
+
}
|
|
99490
|
+
}
|
|
99217
99491
|
for (const issue of [
|
|
99218
99492
|
this.checkTextLength(file, "DDTEXT", obj.getDescription(), 60),
|
|
99219
99493
|
this.checkTextLength(file, "SCRTEXT_S", texts === null || texts === void 0 ? void 0 : texts.short, maxLengths === null || maxLengths === void 0 ? void 0 : maxLengths.short),
|
|
@@ -99241,6 +99515,12 @@ class XMLConsistency {
|
|
|
99241
99515
|
}
|
|
99242
99516
|
return issues;
|
|
99243
99517
|
}
|
|
99518
|
+
checkRequiredField(file, fieldName, value) {
|
|
99519
|
+
if (value === undefined || value === "") {
|
|
99520
|
+
return issue_1.Issue.atRow(file, 1, `Missing required field ${fieldName} in DD04V`, this.getMetadata().key, this.conf.severity);
|
|
99521
|
+
}
|
|
99522
|
+
return undefined;
|
|
99523
|
+
}
|
|
99244
99524
|
runDomain(obj, file) {
|
|
99245
99525
|
var _a, _b;
|
|
99246
99526
|
const maxTextLength = 60;
|
|
@@ -100650,15 +100930,15 @@ function xmlToArray(data) {
|
|
|
100650
100930
|
}
|
|
100651
100931
|
}
|
|
100652
100932
|
function unescape(str) {
|
|
100653
|
-
if (str
|
|
100933
|
+
if (typeof str !== "string") {
|
|
100654
100934
|
return "";
|
|
100655
100935
|
}
|
|
100656
|
-
|
|
100657
|
-
|
|
100658
|
-
|
|
100659
|
-
|
|
100660
|
-
|
|
100661
|
-
return
|
|
100936
|
+
let result = str.replace(/&/g, "&");
|
|
100937
|
+
result = result.replace(/>/g, ">");
|
|
100938
|
+
result = result.replace(/</g, "<");
|
|
100939
|
+
result = result.replace(/"/g, "\"");
|
|
100940
|
+
result = result.replace(/'/g, "'");
|
|
100941
|
+
return result;
|
|
100662
100942
|
}
|
|
100663
100943
|
//# sourceMappingURL=xml_utils.js.map
|
|
100664
100944
|
|
|
@@ -105021,6 +105301,9 @@ class SourceTranspiler {
|
|
|
105021
105301
|
const context = new _1.TypeNameOrInfer().findType(typ, traversal);
|
|
105022
105302
|
ret.appendString(new SourceTranspiler().transpile(c.getFirstChild(), traversal, context).getCode());
|
|
105023
105303
|
ret.appendString(")");
|
|
105304
|
+
if (this.addGet) {
|
|
105305
|
+
ret.appendString(".get()");
|
|
105306
|
+
}
|
|
105024
105307
|
}
|
|
105025
105308
|
else if (c.get() instanceof core_1.Expressions.ValueBody) {
|
|
105026
105309
|
continue;
|
|
@@ -107050,6 +107333,10 @@ class ValueBodyTranspiler {
|
|
|
107050
107333
|
let extraFields = "";
|
|
107051
107334
|
let baseCode = undefined;
|
|
107052
107335
|
const hasLines = body.findDirectExpression(core_1.Expressions.ValueBodyLine) !== undefined;
|
|
107336
|
+
const outerLet = body.findDirectExpression(core_1.Expressions.Let);
|
|
107337
|
+
const outerLetCode = outerLet === undefined
|
|
107338
|
+
? undefined
|
|
107339
|
+
: new let_1.LetTranspiler().transpile(outerLet, traversal).getCode();
|
|
107053
107340
|
const children = body.getChildren();
|
|
107054
107341
|
for (let i = 0; i < children.length; i++) {
|
|
107055
107342
|
const child = children[i];
|
|
@@ -107092,10 +107379,13 @@ class ValueBodyTranspiler {
|
|
|
107092
107379
|
}
|
|
107093
107380
|
}
|
|
107094
107381
|
i = idx - 1;
|
|
107095
|
-
const result = this.buildForChain(forNodes, typ, traversal, body, baseCode);
|
|
107382
|
+
const result = this.buildForChain(forNodes, typ, traversal, body, baseCode, outerLetCode);
|
|
107096
107383
|
ret = result.chunk;
|
|
107097
107384
|
post = result.post;
|
|
107098
107385
|
}
|
|
107386
|
+
else if (child.get() instanceof core_1.Expressions.Let) {
|
|
107387
|
+
continue;
|
|
107388
|
+
}
|
|
107099
107389
|
else if (child instanceof core_1.Nodes.TokenNode && child.getFirstToken().getStr().toUpperCase() === "DEFAULT") {
|
|
107100
107390
|
// note: this is last in the body, so its okay to prepend and postpend
|
|
107101
107391
|
const sources = body.findDirectExpressions(core_1.Expressions.Source);
|
|
@@ -107118,10 +107408,10 @@ class ValueBodyTranspiler {
|
|
|
107118
107408
|
}
|
|
107119
107409
|
return ret.appendString(post);
|
|
107120
107410
|
}
|
|
107121
|
-
buildForChain(forNodes, typ, traversal, body, baseCode) {
|
|
107411
|
+
buildForChain(forNodes, typ, traversal, body, baseCode, outerLetCode) {
|
|
107122
107412
|
const val = baseCode ?? new type_name_or_infer_1.TypeNameOrInfer().transpile(typ, traversal).getCode();
|
|
107123
107413
|
const chunk = new chunk_1.Chunk();
|
|
107124
|
-
const preLoopDecls = [];
|
|
107414
|
+
const preLoopDecls = outerLetCode === undefined ? [] : [outerLetCode];
|
|
107125
107415
|
const descriptors = [];
|
|
107126
107416
|
const levelIndents = [];
|
|
107127
107417
|
let uniqueCounter = 1;
|