@abaplint/transpiler-cli 2.6.26 → 2.6.28
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 +98 -48
- package/package.json +4 -4
package/build/bundle.js
CHANGED
|
@@ -19568,21 +19568,28 @@ class CurrentScope {
|
|
|
19568
19568
|
if (name === undefined) {
|
|
19569
19569
|
return { found: false };
|
|
19570
19570
|
}
|
|
19571
|
+
let RTTIPrefix = "";
|
|
19572
|
+
if (this.parentObj.getType() === "PROG") {
|
|
19573
|
+
RTTIPrefix = "\\PROGRAM=" + this.parentObj.getName();
|
|
19574
|
+
}
|
|
19575
|
+
else if (this.parentObj.getType() === "CLAS") {
|
|
19576
|
+
RTTIPrefix = "\\CLASS-POOL=" + this.parentObj.getName();
|
|
19577
|
+
}
|
|
19571
19578
|
const findLocalClass = (_a = this.current) === null || _a === void 0 ? void 0 : _a.findClassDefinition(name);
|
|
19572
19579
|
if (findLocalClass) {
|
|
19573
|
-
return { found: true, id: findLocalClass, type: _reference_1.ReferenceType.ObjectOrientedReference, ooType: "CLAS" };
|
|
19580
|
+
return { found: true, id: findLocalClass, type: _reference_1.ReferenceType.ObjectOrientedReference, ooType: "CLAS", RTTIName: RTTIPrefix + "\\CLASS=" + findLocalClass.getName() };
|
|
19574
19581
|
}
|
|
19575
19582
|
const globalClas = this.reg.getObject("CLAS", name);
|
|
19576
19583
|
if (globalClas) {
|
|
19577
|
-
return { found: true, id: globalClas.getIdentifier(), type: _reference_1.ReferenceType.ObjectOrientedReference, ooType: "CLAS" };
|
|
19584
|
+
return { found: true, id: globalClas.getIdentifier(), type: _reference_1.ReferenceType.ObjectOrientedReference, ooType: "CLAS", RTTIName: "\\CLASS=" + globalClas.getName() };
|
|
19578
19585
|
}
|
|
19579
19586
|
const findLocalInterface = (_b = this.current) === null || _b === void 0 ? void 0 : _b.findInterfaceDefinition(name);
|
|
19580
19587
|
if (findLocalInterface) {
|
|
19581
|
-
return { found: true, id: findLocalInterface, type: _reference_1.ReferenceType.ObjectOrientedReference, ooType: "INTF" };
|
|
19588
|
+
return { found: true, id: findLocalInterface, type: _reference_1.ReferenceType.ObjectOrientedReference, ooType: "INTF", RTTIName: RTTIPrefix + "\\INTERFACE=" + findLocalInterface.getName() };
|
|
19582
19589
|
}
|
|
19583
19590
|
const globalIntf = this.reg.getObject("INTF", name);
|
|
19584
19591
|
if (globalIntf) {
|
|
19585
|
-
return { found: true, id: globalIntf.getIdentifier(), type: _reference_1.ReferenceType.ObjectOrientedReference, ooType: "INTF" };
|
|
19592
|
+
return { found: true, id: globalIntf.getIdentifier(), type: _reference_1.ReferenceType.ObjectOrientedReference, ooType: "INTF", RTTIName: "\\INTERFACE=" + globalIntf.getName() };
|
|
19586
19593
|
}
|
|
19587
19594
|
const def = (_c = this.current) === null || _c === void 0 ? void 0 : _c.findDeferred(name);
|
|
19588
19595
|
if (def !== undefined) {
|
|
@@ -20436,6 +20443,7 @@ class TypeUtils {
|
|
|
20436
20443
|
else if (type instanceof basic_1.XStringType
|
|
20437
20444
|
|| type instanceof basic_1.HexType
|
|
20438
20445
|
|| type instanceof basic_1.VoidType
|
|
20446
|
+
|| type instanceof basic_1.XSequenceType
|
|
20439
20447
|
|| type instanceof basic_1.AnyType
|
|
20440
20448
|
|| type instanceof basic_1.UnknownType) {
|
|
20441
20449
|
return true;
|
|
@@ -21530,7 +21538,7 @@ class BasicTypes {
|
|
|
21530
21538
|
const search = this.scope.existsObject(name);
|
|
21531
21539
|
if (search.found === true && search.id) {
|
|
21532
21540
|
this.scope.addReference(chain.getFirstToken(), search.id, _reference_1.ReferenceType.ObjectOrientedReference, this.filename, { ooType: search.ooType, ooName: name });
|
|
21533
|
-
return new Types.ObjectReferenceType(search.id, name);
|
|
21541
|
+
return new Types.ObjectReferenceType(search.id, { qualifiedName: name, RTTIName: search.RTTIName });
|
|
21534
21542
|
}
|
|
21535
21543
|
}
|
|
21536
21544
|
const found = this.resolveTypeName(chain);
|
|
@@ -21793,7 +21801,7 @@ class Cast {
|
|
|
21793
21801
|
if (tt === undefined || tt instanceof basic_1.VoidType || tt instanceof basic_1.UnknownType) {
|
|
21794
21802
|
const found = scope.findObjectDefinition(typeName);
|
|
21795
21803
|
if (found) {
|
|
21796
|
-
tt = new basic_1.ObjectReferenceType(found, typeName);
|
|
21804
|
+
tt = new basic_1.ObjectReferenceType(found, { qualifiedName: typeName });
|
|
21797
21805
|
}
|
|
21798
21806
|
}
|
|
21799
21807
|
else {
|
|
@@ -24678,10 +24686,23 @@ exports.StringTemplate = void 0;
|
|
|
24678
24686
|
const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
|
|
24679
24687
|
const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
24680
24688
|
const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source.js");
|
|
24689
|
+
const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
|
|
24681
24690
|
class StringTemplate {
|
|
24682
24691
|
runSyntax(node, scope, filename) {
|
|
24683
|
-
|
|
24684
|
-
|
|
24692
|
+
var _a;
|
|
24693
|
+
const typeUtils = new _type_utils_1.TypeUtils(scope);
|
|
24694
|
+
for (const templateSource of node.findAllExpressions(Expressions.StringTemplateSource)) {
|
|
24695
|
+
const s = templateSource.findDirectExpression(Expressions.Source);
|
|
24696
|
+
const type = new source_1.Source().runSyntax(s, scope, filename, new basic_1.StringType({ qualifiedName: "STRING" }));
|
|
24697
|
+
if (type === undefined) {
|
|
24698
|
+
throw new Error("No target type determined");
|
|
24699
|
+
}
|
|
24700
|
+
else if (typeUtils.isCharLike(type) === false && typeUtils.isHexLike(type) === false) {
|
|
24701
|
+
throw new Error("Not character like, " + type.constructor.name);
|
|
24702
|
+
}
|
|
24703
|
+
for (const formatSource of ((_a = templateSource.findDirectExpression(Expressions.StringTemplateFormatting)) === null || _a === void 0 ? void 0 : _a.findAllExpressions(Expressions.Source)) || []) {
|
|
24704
|
+
new source_1.Source().runSyntax(formatSource, scope, filename);
|
|
24705
|
+
}
|
|
24685
24706
|
}
|
|
24686
24707
|
return new basic_1.StringType({ qualifiedName: "STRING" });
|
|
24687
24708
|
}
|
|
@@ -32771,6 +32792,10 @@ class AbstractType {
|
|
|
32771
32792
|
var _a;
|
|
32772
32793
|
return (_a = this.data) === null || _a === void 0 ? void 0 : _a.qualifiedName;
|
|
32773
32794
|
}
|
|
32795
|
+
getRTTIName() {
|
|
32796
|
+
var _a;
|
|
32797
|
+
return (_a = this.data) === null || _a === void 0 ? void 0 : _a.RTTIName;
|
|
32798
|
+
}
|
|
32774
32799
|
getConversionExit() {
|
|
32775
32800
|
var _a;
|
|
32776
32801
|
return (_a = this.data) === null || _a === void 0 ? void 0 : _a.conversionExit;
|
|
@@ -33517,8 +33542,8 @@ exports.ObjectReferenceType = void 0;
|
|
|
33517
33542
|
const _abstract_type_1 = __webpack_require__(/*! ./_abstract_type */ "./node_modules/@abaplint/core/build/src/abap/types/basic/_abstract_type.js");
|
|
33518
33543
|
// use GenericObjectReferenceType for REF TO OBJECT
|
|
33519
33544
|
class ObjectReferenceType extends _abstract_type_1.AbstractType {
|
|
33520
|
-
constructor(id,
|
|
33521
|
-
super(
|
|
33545
|
+
constructor(id, extra) {
|
|
33546
|
+
super(extra);
|
|
33522
33547
|
this.identifier = id;
|
|
33523
33548
|
}
|
|
33524
33549
|
getIdentifierName() {
|
|
@@ -36901,12 +36926,18 @@ class DDIC {
|
|
|
36901
36926
|
const clas = this.reg.getObject("CLAS", name);
|
|
36902
36927
|
const globalClas = clas === null || clas === void 0 ? void 0 : clas.getIdentifier();
|
|
36903
36928
|
if (globalClas) {
|
|
36904
|
-
return {
|
|
36929
|
+
return {
|
|
36930
|
+
type: new basic_1.ObjectReferenceType(globalClas, { qualifiedName: name, RTTIName: "\\CLASS=" + name }),
|
|
36931
|
+
object: clas,
|
|
36932
|
+
};
|
|
36905
36933
|
}
|
|
36906
36934
|
const intf = this.reg.getObject("INTF", name);
|
|
36907
36935
|
const globalIntf = intf === null || intf === void 0 ? void 0 : intf.getIdentifier();
|
|
36908
36936
|
if (globalIntf) {
|
|
36909
|
-
return {
|
|
36937
|
+
return {
|
|
36938
|
+
type: new basic_1.ObjectReferenceType(globalIntf, { qualifiedName: name, RTTIName: "\\INTERFACE=" + name }),
|
|
36939
|
+
object: intf,
|
|
36940
|
+
};
|
|
36910
36941
|
}
|
|
36911
36942
|
if (this.inErrorNamespace(name) === true) {
|
|
36912
36943
|
return { type: new basic_1.UnknownType(name) };
|
|
@@ -38360,6 +38391,9 @@ class LSPLookup {
|
|
|
38360
38391
|
if (variable.getType().getQualifiedName()) {
|
|
38361
38392
|
value += "\n\nQualified Type Name: ```" + variable.getType().getQualifiedName() + "```";
|
|
38362
38393
|
}
|
|
38394
|
+
if (variable.getType().getRTTIName()) {
|
|
38395
|
+
value += "\n\nRTTI Name: ```" + variable.getType().getRTTIName() + "```";
|
|
38396
|
+
}
|
|
38363
38397
|
if (variable.getType().isGeneric() === true) {
|
|
38364
38398
|
value += "\n\nIs Generic Type";
|
|
38365
38399
|
}
|
|
@@ -46483,7 +46517,7 @@ class Registry {
|
|
|
46483
46517
|
}
|
|
46484
46518
|
static abaplintVersion() {
|
|
46485
46519
|
// magic, see build script "version.sh"
|
|
46486
|
-
return "2.97.
|
|
46520
|
+
return "2.97.16";
|
|
46487
46521
|
}
|
|
46488
46522
|
getDDICReferences() {
|
|
46489
46523
|
return this.references;
|
|
@@ -74337,7 +74371,7 @@ class MethodImplementationTranspiler {
|
|
|
74337
74371
|
if (methodName.toUpperCase() === "CONSTRUCTOR" && classDef) {
|
|
74338
74372
|
// note that all ABAP identifiers are lower cased, sometimes the kernel does magic, so it needs to know the method input name
|
|
74339
74373
|
unique = "INPUT";
|
|
74340
|
-
after = traversal.buildConstructorContents(scope.getParent(), classDef);
|
|
74374
|
+
// after = traversal.buildConstructorContents(scope.getParent(), classDef);
|
|
74341
74375
|
methodName = "constructor_";
|
|
74342
74376
|
}
|
|
74343
74377
|
const methodDef = this.findMethodParameters(scope);
|
|
@@ -76660,10 +76694,13 @@ class ClassImplementationTranspiler {
|
|
|
76660
76694
|
const ret = new chunk_1.Chunk();
|
|
76661
76695
|
for (const c of node.getChildren()) {
|
|
76662
76696
|
ret.appendChunk(traversal.traverse(c));
|
|
76697
|
+
if (c.get() instanceof abaplint.Statements.ClassImplementation) {
|
|
76698
|
+
ret.appendString(this.buildConstructor(node.getFirstStatement(), traversal));
|
|
76699
|
+
}
|
|
76663
76700
|
if (c instanceof abaplint.Nodes.StatementNode
|
|
76664
76701
|
&& c.get() instanceof abaplint.Statements.ClassImplementation
|
|
76665
76702
|
&& this.hasConstructor(node) === false) {
|
|
76666
|
-
ret.appendString(
|
|
76703
|
+
ret.appendString("async constructor_(INPUT) {\nif (super.constructor_) { await super.constructor_(INPUT); }\nreturn this;\n}\n");
|
|
76667
76704
|
}
|
|
76668
76705
|
}
|
|
76669
76706
|
ret.appendString(this.buildStatic(node.findFirstExpression(abaplint.Expressions.ClassName), traversal));
|
|
@@ -76777,6 +76814,9 @@ class ClassImplementationTranspiler {
|
|
|
76777
76814
|
}
|
|
76778
76815
|
buildConstructor(node, traversal) {
|
|
76779
76816
|
var _a;
|
|
76817
|
+
if (node === undefined) {
|
|
76818
|
+
throw new Error("buildConstructor node undefined");
|
|
76819
|
+
}
|
|
76780
76820
|
const scope = traversal.findCurrentScopeByToken(node.getFirstToken());
|
|
76781
76821
|
const token = (_a = node.findFirstExpression(abaplint.Expressions.ClassName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
|
|
76782
76822
|
if (token === undefined) {
|
|
@@ -76790,7 +76830,8 @@ class ClassImplementationTranspiler {
|
|
|
76790
76830
|
if (ret === "") {
|
|
76791
76831
|
return ret;
|
|
76792
76832
|
}
|
|
76793
|
-
|
|
76833
|
+
// note: for CALL TRANSFORMATION, its nice that the values are initialized by the JS constructor,
|
|
76834
|
+
return "constructor() {\n" + ret + "}\n";
|
|
76794
76835
|
}
|
|
76795
76836
|
}
|
|
76796
76837
|
exports.ClassImplementationTranspiler = ClassImplementationTranspiler;
|
|
@@ -77499,15 +77540,14 @@ class TranspileTypes {
|
|
|
77499
77540
|
return pre + t.getName().toLowerCase() + " = " + code + ";\n";
|
|
77500
77541
|
}
|
|
77501
77542
|
toType(type) {
|
|
77502
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
77543
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
77503
77544
|
let resolved = "";
|
|
77504
77545
|
let extra = "";
|
|
77505
77546
|
if (type instanceof abaplint.BasicTypes.ObjectReferenceType
|
|
77506
77547
|
|| type instanceof abaplint.BasicTypes.GenericObjectReferenceType) {
|
|
77507
77548
|
resolved = "ABAPObject";
|
|
77508
|
-
|
|
77509
|
-
|
|
77510
|
-
}
|
|
77549
|
+
extra = "{qualifiedName: " + JSON.stringify((_a = type.getQualifiedName()) === null || _a === void 0 ? void 0 : _a.toUpperCase()) +
|
|
77550
|
+
", RTTIName: " + JSON.stringify((_b = type.getRTTIName()) === null || _b === void 0 ? void 0 : _b.toUpperCase()) + "}";
|
|
77511
77551
|
}
|
|
77512
77552
|
else if (type instanceof abaplint.BasicTypes.TableType) {
|
|
77513
77553
|
resolved = "Table";
|
|
@@ -77521,31 +77561,31 @@ class TranspileTypes {
|
|
|
77521
77561
|
else if (type instanceof abaplint.BasicTypes.IntegerType) {
|
|
77522
77562
|
resolved = "Integer";
|
|
77523
77563
|
if (type.getQualifiedName() !== undefined) {
|
|
77524
|
-
extra = "{qualifiedName: \"" + ((
|
|
77564
|
+
extra = "{qualifiedName: \"" + ((_c = type.getQualifiedName()) === null || _c === void 0 ? void 0 : _c.toUpperCase()) + "\"}";
|
|
77525
77565
|
}
|
|
77526
77566
|
}
|
|
77527
77567
|
else if (type instanceof abaplint.BasicTypes.StringType) {
|
|
77528
77568
|
resolved = "String";
|
|
77529
77569
|
if (type.getQualifiedName() !== undefined) {
|
|
77530
|
-
extra = "{qualifiedName: \"" + ((
|
|
77570
|
+
extra = "{qualifiedName: \"" + ((_d = type.getQualifiedName()) === null || _d === void 0 ? void 0 : _d.toUpperCase()) + "\"}";
|
|
77531
77571
|
}
|
|
77532
77572
|
}
|
|
77533
77573
|
else if (type instanceof abaplint.BasicTypes.UTCLongType) {
|
|
77534
77574
|
resolved = "UTCLong";
|
|
77535
77575
|
if (type.getQualifiedName() !== undefined) {
|
|
77536
|
-
extra = "{qualifiedName: \"" + ((
|
|
77576
|
+
extra = "{qualifiedName: \"" + ((_e = type.getQualifiedName()) === null || _e === void 0 ? void 0 : _e.toUpperCase()) + "\"}";
|
|
77537
77577
|
}
|
|
77538
77578
|
}
|
|
77539
77579
|
else if (type instanceof abaplint.BasicTypes.DateType) {
|
|
77540
77580
|
resolved = "Date";
|
|
77541
77581
|
if (type.getQualifiedName() !== undefined) {
|
|
77542
|
-
extra = "{qualifiedName: \"" + ((
|
|
77582
|
+
extra = "{qualifiedName: \"" + ((_f = type.getQualifiedName()) === null || _f === void 0 ? void 0 : _f.toUpperCase()) + "\"}";
|
|
77543
77583
|
}
|
|
77544
77584
|
}
|
|
77545
77585
|
else if (type instanceof abaplint.BasicTypes.TimeType) {
|
|
77546
77586
|
resolved = "Time";
|
|
77547
77587
|
if (type.getQualifiedName() !== undefined) {
|
|
77548
|
-
extra = "{qualifiedName: \"" + ((
|
|
77588
|
+
extra = "{qualifiedName: \"" + ((_g = type.getQualifiedName()) === null || _g === void 0 ? void 0 : _g.toUpperCase()) + "\"}";
|
|
77549
77589
|
}
|
|
77550
77590
|
}
|
|
77551
77591
|
else if (type instanceof abaplint.BasicTypes.DataReference) {
|
|
@@ -77616,7 +77656,7 @@ class TranspileTypes {
|
|
|
77616
77656
|
else if (type instanceof abaplint.BasicTypes.XStringType) {
|
|
77617
77657
|
resolved = "XString";
|
|
77618
77658
|
if (type.getQualifiedName() !== undefined) {
|
|
77619
|
-
extra = "{qualifiedName: \"" + ((
|
|
77659
|
+
extra = "{qualifiedName: \"" + ((_h = type.getQualifiedName()) === null || _h === void 0 ? void 0 : _h.toUpperCase()) + "\"}";
|
|
77620
77660
|
}
|
|
77621
77661
|
}
|
|
77622
77662
|
else if (type instanceof abaplint.BasicTypes.XSequenceType) {
|
|
@@ -77632,13 +77672,13 @@ class TranspileTypes {
|
|
|
77632
77672
|
else if (type instanceof abaplint.BasicTypes.FloatType) {
|
|
77633
77673
|
resolved = "Float";
|
|
77634
77674
|
if (type.getQualifiedName() !== undefined) {
|
|
77635
|
-
extra = "{qualifiedName: \"" + ((
|
|
77675
|
+
extra = "{qualifiedName: \"" + ((_j = type.getQualifiedName()) === null || _j === void 0 ? void 0 : _j.toUpperCase()) + "\"}";
|
|
77636
77676
|
}
|
|
77637
77677
|
}
|
|
77638
77678
|
else if (type instanceof abaplint.BasicTypes.FloatingPointType) {
|
|
77639
77679
|
resolved = "Float";
|
|
77640
77680
|
if (type.getQualifiedName() !== undefined) {
|
|
77641
|
-
extra = "{qualifiedName: \"" + ((
|
|
77681
|
+
extra = "{qualifiedName: \"" + ((_k = type.getQualifiedName()) === null || _k === void 0 ? void 0 : _k.toUpperCase()) + "\"}";
|
|
77642
77682
|
}
|
|
77643
77683
|
}
|
|
77644
77684
|
else if (type instanceof abaplint.BasicTypes.DecFloat34Type) {
|
|
@@ -77989,10 +78029,15 @@ class Traversal {
|
|
|
77989
78029
|
buildConstructorContents(scope, def) {
|
|
77990
78030
|
var _a, _b, _c;
|
|
77991
78031
|
let ret = "";
|
|
77992
|
-
if (def.getSuperClass() !== undefined
|
|
77993
|
-
|
|
77994
|
-
ret += `await super.constructor_(INPUT);\n`;
|
|
78032
|
+
if (def.getSuperClass() !== undefined || def.getName().toUpperCase() === "CX_ROOT") {
|
|
78033
|
+
ret += "super();\n";
|
|
77995
78034
|
}
|
|
78035
|
+
/*
|
|
78036
|
+
if (def.getSuperClass() !== undefined
|
|
78037
|
+
&& def.getMethodDefinitions().getByName("CONSTRUCTOR") === undefined) {
|
|
78038
|
+
ret += `await super.constructor_(INPUT);\n`;
|
|
78039
|
+
}
|
|
78040
|
+
*/
|
|
77996
78041
|
const cName = Traversal.escapeNamespace(def.getName().toLowerCase());
|
|
77997
78042
|
ret += "this.me = new abap.types.ABAPObject();\n";
|
|
77998
78043
|
ret += "this.me.set(this);\n";
|
|
@@ -78149,14 +78194,8 @@ class Traversal {
|
|
|
78149
78194
|
if (def === undefined) {
|
|
78150
78195
|
return "";
|
|
78151
78196
|
}
|
|
78152
|
-
const name = def.getName();
|
|
78153
|
-
|
|
78154
|
-
const prefix = this.buildPrefix();
|
|
78155
|
-
return `abap.Classes['${prefix}-${name.toUpperCase()}'] = ${Traversal.escapeNamespace(name.toLowerCase())};`;
|
|
78156
|
-
}
|
|
78157
|
-
else {
|
|
78158
|
-
return `abap.Classes['${name.toUpperCase()}'] = ${Traversal.escapeNamespace(name.toLowerCase())};`;
|
|
78159
|
-
}
|
|
78197
|
+
const name = this.buildInternalName(def.getName(), def);
|
|
78198
|
+
return `abap.Classes['${name}'] = ${Traversal.escapeNamespace(def.getName().toLowerCase())};`;
|
|
78160
78199
|
}
|
|
78161
78200
|
setValues(identifier, name) {
|
|
78162
78201
|
return Traversal.setValues(identifier, name);
|
|
@@ -80369,8 +80408,20 @@ const parseXml = function(xmlData) {
|
|
|
80369
80408
|
textData = this.saveTextToParentTag(textData, currentNode, jPath);
|
|
80370
80409
|
}
|
|
80371
80410
|
|
|
80372
|
-
|
|
80373
|
-
|
|
80411
|
+
//check if last tag of nested tag was unpaired tag
|
|
80412
|
+
const lastTagName = jPath.substring(jPath.lastIndexOf(".")+1);
|
|
80413
|
+
if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){
|
|
80414
|
+
throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);
|
|
80415
|
+
}
|
|
80416
|
+
let propIndex = 0
|
|
80417
|
+
if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){
|
|
80418
|
+
propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)
|
|
80419
|
+
this.tagsNodeStack.pop();
|
|
80420
|
+
}else{
|
|
80421
|
+
propIndex = jPath.lastIndexOf(".");
|
|
80422
|
+
}
|
|
80423
|
+
jPath = jPath.substring(0, propIndex);
|
|
80424
|
+
|
|
80374
80425
|
currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope
|
|
80375
80426
|
textData = "";
|
|
80376
80427
|
i = closeIndex;
|
|
@@ -80447,23 +80498,22 @@ const parseXml = function(xmlData) {
|
|
|
80447
80498
|
}
|
|
80448
80499
|
}
|
|
80449
80500
|
|
|
80450
|
-
if(tagName !== xmlObj.tagname){
|
|
80451
|
-
jPath += jPath ? "." + tagName : tagName;
|
|
80452
|
-
}
|
|
80453
|
-
|
|
80454
80501
|
//check if last tag was unpaired tag
|
|
80455
80502
|
const lastTag = currentNode;
|
|
80456
80503
|
if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){
|
|
80457
80504
|
currentNode = this.tagsNodeStack.pop();
|
|
80505
|
+
jPath = jPath.substring(0, jPath.lastIndexOf("."));
|
|
80506
|
+
}
|
|
80507
|
+
if(tagName !== xmlObj.tagname){
|
|
80508
|
+
jPath += jPath ? "." + tagName : tagName;
|
|
80458
80509
|
}
|
|
80459
|
-
|
|
80460
80510
|
if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) { //TODO: namespace
|
|
80461
80511
|
let tagContent = "";
|
|
80462
80512
|
//self-closing tag
|
|
80463
80513
|
if(tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1){
|
|
80464
80514
|
i = result.closeIndex;
|
|
80465
80515
|
}
|
|
80466
|
-
//
|
|
80516
|
+
//unpaired tag
|
|
80467
80517
|
else if(this.options.unpairedTags.indexOf(tagName) !== -1){
|
|
80468
80518
|
i = result.closeIndex;
|
|
80469
80519
|
}
|
|
@@ -80506,8 +80556,8 @@ const parseXml = function(xmlData) {
|
|
|
80506
80556
|
if(tagName !== tagExp && attrExpPresent){
|
|
80507
80557
|
childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName);
|
|
80508
80558
|
}
|
|
80509
|
-
jPath = jPath.substr(0, jPath.lastIndexOf("."));
|
|
80510
80559
|
this.addChild(currentNode, childNode, jPath)
|
|
80560
|
+
jPath = jPath.substr(0, jPath.lastIndexOf("."));
|
|
80511
80561
|
}
|
|
80512
80562
|
//opening tag
|
|
80513
80563
|
else{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.28",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
5
|
"bin": {
|
|
6
6
|
"abap_transpile": "./abap_transpile"
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
"author": "abaplint",
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@abaplint/transpiler": "^2.6.
|
|
28
|
+
"@abaplint/transpiler": "^2.6.28",
|
|
29
29
|
"@types/glob": "^7.2.0",
|
|
30
30
|
"glob": "=7.2.0",
|
|
31
31
|
"@types/progress": "^2.0.5",
|
|
32
32
|
"@types/node": "^18.15.13",
|
|
33
|
-
"@abaplint/core": "^2.97.
|
|
33
|
+
"@abaplint/core": "^2.97.16",
|
|
34
34
|
"progress": "^2.0.3",
|
|
35
35
|
"webpack": "^5.80.0",
|
|
36
|
-
"webpack-cli": "^5.0.
|
|
36
|
+
"webpack-cli": "^5.0.2",
|
|
37
37
|
"typescript": "^5.0.4"
|
|
38
38
|
}
|
|
39
39
|
}
|