@abaplint/transpiler-cli 2.10.9 → 2.10.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bundle.js +809 -160
- package/package.json +5 -5
package/build/bundle.js
CHANGED
|
@@ -4781,6 +4781,7 @@ __exportStar(__webpack_require__(/*! ./kernel_id */ "./node_modules/@abaplint/co
|
|
|
4781
4781
|
__exportStar(__webpack_require__(/*! ./language */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/language.js"), exports);
|
|
4782
4782
|
__exportStar(__webpack_require__(/*! ./length */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/length.js"), exports);
|
|
4783
4783
|
__exportStar(__webpack_require__(/*! ./let */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/let.js"), exports);
|
|
4784
|
+
__exportStar(__webpack_require__(/*! ./lob_handle */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/lob_handle.js"), exports);
|
|
4784
4785
|
__exportStar(__webpack_require__(/*! ./loop_group_by_component */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by_component.js"), exports);
|
|
4785
4786
|
__exportStar(__webpack_require__(/*! ./loop_group_by_target */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by_target.js"), exports);
|
|
4786
4787
|
__exportStar(__webpack_require__(/*! ./loop_group_by */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by.js"), exports);
|
|
@@ -4874,16 +4875,15 @@ __exportStar(__webpack_require__(/*! ./sql_into_table */ "./node_modules/@abapli
|
|
|
4874
4875
|
__exportStar(__webpack_require__(/*! ./sql_join */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_join.js"), exports);
|
|
4875
4876
|
__exportStar(__webpack_require__(/*! ./sql_order_by */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_order_by.js"), exports);
|
|
4876
4877
|
__exportStar(__webpack_require__(/*! ./sql_path */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_path.js"), exports);
|
|
4878
|
+
__exportStar(__webpack_require__(/*! ./sql_source_no_space */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_source_no_space.js"), exports);
|
|
4877
4879
|
__exportStar(__webpack_require__(/*! ./sql_source_simple */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_source_simple.js"), exports);
|
|
4878
4880
|
__exportStar(__webpack_require__(/*! ./sql_source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_source.js"), exports);
|
|
4879
|
-
__exportStar(__webpack_require__(/*! ./sql_source_no_space */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_source_no_space.js"), exports);
|
|
4880
4881
|
__exportStar(__webpack_require__(/*! ./sql_target */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_target.js"), exports);
|
|
4881
4882
|
__exportStar(__webpack_require__(/*! ./sql_up_to */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_up_to.js"), exports);
|
|
4882
4883
|
__exportStar(__webpack_require__(/*! ./string_template_formatting */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/string_template_formatting.js"), exports);
|
|
4883
4884
|
__exportStar(__webpack_require__(/*! ./string_template_source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/string_template_source.js"), exports);
|
|
4884
4885
|
__exportStar(__webpack_require__(/*! ./string_template */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/string_template.js"), exports);
|
|
4885
4886
|
__exportStar(__webpack_require__(/*! ./super_class_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/super_class_name.js"), exports);
|
|
4886
|
-
__exportStar(__webpack_require__(/*! ./type_structure */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/type_structure.js"), exports);
|
|
4887
4887
|
__exportStar(__webpack_require__(/*! ./switch_body */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/switch_body.js"), exports);
|
|
4888
4888
|
__exportStar(__webpack_require__(/*! ./table_body */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/table_body.js"), exports);
|
|
4889
4889
|
__exportStar(__webpack_require__(/*! ./table_expression */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/table_expression.js"), exports);
|
|
@@ -4899,6 +4899,7 @@ __exportStar(__webpack_require__(/*! ./transporting_fields */ "./node_modules/@a
|
|
|
4899
4899
|
__exportStar(__webpack_require__(/*! ./type_name_or_infer */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/type_name_or_infer.js"), exports);
|
|
4900
4900
|
__exportStar(__webpack_require__(/*! ./type_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/type_name.js"), exports);
|
|
4901
4901
|
__exportStar(__webpack_require__(/*! ./type_param */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/type_param.js"), exports);
|
|
4902
|
+
__exportStar(__webpack_require__(/*! ./type_structure */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/type_structure.js"), exports);
|
|
4902
4903
|
__exportStar(__webpack_require__(/*! ./type_table_key */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/type_table_key.js"), exports);
|
|
4903
4904
|
__exportStar(__webpack_require__(/*! ./type_table */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/type_table.js"), exports);
|
|
4904
4905
|
__exportStar(__webpack_require__(/*! ./type */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/type.js"), exports);
|
|
@@ -5167,6 +5168,28 @@ exports.Let = Let;
|
|
|
5167
5168
|
|
|
5168
5169
|
/***/ }),
|
|
5169
5170
|
|
|
5171
|
+
/***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/lob_handle.js":
|
|
5172
|
+
/*!*******************************************************************************************!*\
|
|
5173
|
+
!*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/lob_handle.js ***!
|
|
5174
|
+
\*******************************************************************************************/
|
|
5175
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
5176
|
+
|
|
5177
|
+
"use strict";
|
|
5178
|
+
|
|
5179
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
5180
|
+
exports.LOBHandle = void 0;
|
|
5181
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
|
|
5182
|
+
const Expressions = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
5183
|
+
class LOBHandle extends combi_1.Expression {
|
|
5184
|
+
getRunnable() {
|
|
5185
|
+
return (0, combi_1.seq)("WRITER FOR COLUMNS", Expressions.Field);
|
|
5186
|
+
}
|
|
5187
|
+
}
|
|
5188
|
+
exports.LOBHandle = LOBHandle;
|
|
5189
|
+
//# sourceMappingURL=lob_handle.js.map
|
|
5190
|
+
|
|
5191
|
+
/***/ }),
|
|
5192
|
+
|
|
5170
5193
|
/***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by.js":
|
|
5171
5194
|
/*!**********************************************************************************************!*\
|
|
5172
5195
|
!*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/loop_group_by.js ***!
|
|
@@ -5307,7 +5330,7 @@ const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/co
|
|
|
5307
5330
|
class MessageClass extends combi_1.Expression {
|
|
5308
5331
|
getRunnable() {
|
|
5309
5332
|
// "&1" can be used for almost anything(field names, method names etc.) in macros
|
|
5310
|
-
return (0, combi_1.regex)(/^>?
|
|
5333
|
+
return (0, combi_1.regex)(/^>?[\w\/]+#?@?\/?!?&?>?\$?$/);
|
|
5311
5334
|
}
|
|
5312
5335
|
}
|
|
5313
5336
|
exports.MessageClass = MessageClass;
|
|
@@ -6405,7 +6428,7 @@ class SelectLoop extends combi_1.Expression {
|
|
|
6405
6428
|
const packTab = (0, combi_1.seq)(pack, _1.SQLIntoTable);
|
|
6406
6429
|
const into = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
|
|
6407
6430
|
const perm = (0, combi_1.per)(_1.SQLFrom, where, sql_up_to_1.SQLUpTo, sql_order_by_1.SQLOrderBy, sql_having_1.SQLHaving, _1.SQLClient, bypass, _1.SQLGroupBy, _1.SQLForAllEntries, (0, combi_1.alt)(tab, into, packTab));
|
|
6408
|
-
const strict = (0, combi_1.seq)(_1.SQLFrom, (0, combi_1.ver)(version_1.Version.v750, _1.SQLFields), where, into, sql_up_to_1.SQLUpTo);
|
|
6431
|
+
const strict = (0, combi_1.seq)(_1.SQLFrom, (0, combi_1.ver)(version_1.Version.v750, _1.SQLFields), (0, combi_1.optPrio)((0, combi_1.seq)(where, into, sql_up_to_1.SQLUpTo)));
|
|
6409
6432
|
const ret = (0, combi_1.seq)("SELECT", (0, combi_1.altPrio)((0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), sql_field_list_loop_1.SQLFieldListLoop, perm), strict), (0, combi_1.optPrio)(sql_hints_1.SQLHints));
|
|
6410
6433
|
return ret;
|
|
6411
6434
|
}
|
|
@@ -8089,7 +8112,7 @@ class Type extends combi_1.Expression {
|
|
|
8089
8112
|
getRunnable() {
|
|
8090
8113
|
const typeType = (0, combi_1.seq)(_1.TypeName, (0, combi_1.optPrio)(_1.Default));
|
|
8091
8114
|
const like = (0, combi_1.altPrio)((0, combi_1.seq)("LINE OF", _1.FieldChain), (0, combi_1.seq)("REF TO", _1.FieldChain), _1.FieldChain);
|
|
8092
|
-
const type = (0, combi_1.altPrio)((0, combi_1.seq)("LINE OF", typeType), (0, combi_1.seq)("REF TO", typeType), typeType);
|
|
8115
|
+
const type = (0, combi_1.altPrio)((0, combi_1.seq)("LINE OF", typeType), (0, combi_1.seq)("REF TO", typeType), (0, combi_1.seq)(typeType, (0, combi_1.optPrio)(_1.LOBHandle)));
|
|
8093
8116
|
const ret = (0, combi_1.altPrio)((0, combi_1.seq)("LIKE", like), (0, combi_1.seq)("TYPE", type));
|
|
8094
8117
|
return ret;
|
|
8095
8118
|
}
|
|
@@ -14358,7 +14381,7 @@ const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@a
|
|
|
14358
14381
|
class Ranges {
|
|
14359
14382
|
getMatcher() {
|
|
14360
14383
|
const occurs = (0, combi_1.seq)("OCCURS", expressions_1.Source);
|
|
14361
|
-
const ret = (0, combi_1.seq)("RANGES", expressions_1.SimpleName, "FOR", expressions_1.
|
|
14384
|
+
const ret = (0, combi_1.seq)("RANGES", expressions_1.SimpleName, "FOR", expressions_1.SimpleFieldChain2, (0, combi_1.opt)(occurs));
|
|
14362
14385
|
return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
|
|
14363
14386
|
}
|
|
14364
14387
|
}
|
|
@@ -17511,7 +17534,7 @@ const protected_section_1 = __webpack_require__(/*! ./protected_section */ "./no
|
|
|
17511
17534
|
const public_section_1 = __webpack_require__(/*! ./public_section */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/public_section.js");
|
|
17512
17535
|
class ClassDefinition {
|
|
17513
17536
|
getMatcher() {
|
|
17514
|
-
const body = (0, _combi_1.seq)((0, _combi_1.opt)((0, _combi_1.sta)(Statements.SetExtendedCheck)), (0, _combi_1.star)((0, _combi_1.sta)(Statements.TypePools)), (0, _combi_1.opt)((0, _combi_1.sub)(public_section_1.PublicSection)), (0, _combi_1.
|
|
17537
|
+
const body = (0, _combi_1.seq)((0, _combi_1.opt)((0, _combi_1.sta)(Statements.SetExtendedCheck)), (0, _combi_1.star)((0, _combi_1.sta)(Statements.TypePools)), (0, _combi_1.opt)((0, _combi_1.sub)(public_section_1.PublicSection)), (0, _combi_1.opt)((0, _combi_1.sub)(protected_section_1.ProtectedSection)), (0, _combi_1.opt)((0, _combi_1.sub)(private_section_1.PrivateSection)), (0, _combi_1.opt)((0, _combi_1.sta)(Statements.SetExtendedCheck)));
|
|
17515
17538
|
return (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.ClassDefinition), body, (0, _combi_1.sta)(Statements.EndClass));
|
|
17516
17539
|
}
|
|
17517
17540
|
}
|
|
@@ -17939,7 +17962,7 @@ __exportStar(__webpack_require__(/*! ./private_section */ "./node_modules/@abapl
|
|
|
17939
17962
|
__exportStar(__webpack_require__(/*! ./protected_section */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/protected_section.js"), exports);
|
|
17940
17963
|
__exportStar(__webpack_require__(/*! ./provide */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/provide.js"), exports);
|
|
17941
17964
|
__exportStar(__webpack_require__(/*! ./public_section */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/public_section.js"), exports);
|
|
17942
|
-
__exportStar(__webpack_require__(/*! ./
|
|
17965
|
+
__exportStar(__webpack_require__(/*! ./section_contents */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/section_contents.js"), exports);
|
|
17943
17966
|
__exportStar(__webpack_require__(/*! ./select */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/select.js"), exports);
|
|
17944
17967
|
__exportStar(__webpack_require__(/*! ./statics */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/statics.js"), exports);
|
|
17945
17968
|
__exportStar(__webpack_require__(/*! ./test_injection */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/test_injection.js"), exports);
|
|
@@ -17967,10 +17990,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
17967
17990
|
exports.Interface = void 0;
|
|
17968
17991
|
const Statements = __webpack_require__(/*! ../../2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
17969
17992
|
const _combi_1 = __webpack_require__(/*! ./_combi */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/_combi.js");
|
|
17970
|
-
const
|
|
17993
|
+
const section_contents_1 = __webpack_require__(/*! ./section_contents */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/section_contents.js");
|
|
17971
17994
|
class Interface {
|
|
17972
17995
|
getMatcher() {
|
|
17973
|
-
const intf = (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.Interface), (0, _combi_1.star)((0, _combi_1.sub)(
|
|
17996
|
+
const intf = (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.Interface), (0, _combi_1.star)((0, _combi_1.sub)(section_contents_1.SectionContents)), (0, _combi_1.sta)(Statements.EndInterface));
|
|
17974
17997
|
return intf;
|
|
17975
17998
|
}
|
|
17976
17999
|
}
|
|
@@ -18017,8 +18040,7 @@ const _combi_1 = __webpack_require__(/*! ./_combi */ "./node_modules/@abaplint/c
|
|
|
18017
18040
|
const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/index.js");
|
|
18018
18041
|
class Loop {
|
|
18019
18042
|
getMatcher() {
|
|
18020
|
-
|
|
18021
|
-
return (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.Loop), (0, _combi_1.star)(body), (0, _combi_1.sta)(Statements.EndLoop));
|
|
18043
|
+
return (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.Loop), (0, _combi_1.star)((0, _combi_1.sub)(_1.Body)), (0, _combi_1.sta)(Statements.EndLoop));
|
|
18022
18044
|
}
|
|
18023
18045
|
}
|
|
18024
18046
|
exports.Loop = Loop;
|
|
@@ -18113,7 +18135,7 @@ const _statement_1 = __webpack_require__(/*! ../../2_statements/statements/_stat
|
|
|
18113
18135
|
class Normal {
|
|
18114
18136
|
getMatcher() {
|
|
18115
18137
|
// note that the sequence of alternatives here influences performance
|
|
18116
|
-
return (0, _combi_1.alt)((0, _combi_1.sta)(Statements.Move), (0, _combi_1.sta)(Statements.Call), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sub)(Structures.If), (0, _combi_1.sta)(Statements.Clear), (0, _combi_1.sta)(Statements.FieldSymbol), (0, _combi_1.sta)(Statements.CreateObject), (0, _combi_1.sta)(Statements.CallFunction), (0, _combi_1.sta)(_statement_1.MacroCall), (0, _combi_1.sub)(Structures.LoopAtScreen), (0, _combi_1.sub)(Structures.Loop), (0, _combi_1.sta)(Statements.Append), (0, _combi_1.sub)(Structures.Try), (0, _combi_1.sta)(Statements.ReadTable), (0, _combi_1.sta)(Statements.Assert), (0, _combi_1.sta)(Statements.Return), (0, _combi_1.sta)(Statements.Select), (0, _combi_1.sta)(Statements.Assign), (0, _combi_1.sta)(Statements.InsertInternal), (0, _combi_1.sta)(Statements.DeleteInternal), (0, _combi_1.sta)(Statements.Concatenate), (0, _combi_1.sub)(Structures.Case), (0, _combi_1.sub)(Structures.CaseType), (0, _combi_1.sub)(Structures.Enhancement), (0, _combi_1.sub)(Structures.EnhancementSection), (0, _combi_1.sta)(Statements.AddCorresponding), (0, _combi_1.sta)(Statements.Add), (0, _combi_1.sta)(Statements.AssignLocalCopy), (0, _combi_1.sta)(Statements.AuthorityCheck), (0, _combi_1.sta)(Statements.Back), (0, _combi_1.sta)(Statements.Break), (0, _combi_1.sta)(Statements.BreakId), (0, _combi_1.sta)(Statements.CallDatabase), (0, _combi_1.sta)(Statements.CallDialog), (0, _combi_1.sta)(Statements.CallKernel), (0, _combi_1.sta)(Statements.CallOLE), (0, _combi_1.sta)(Statements.CallScreen), (0, _combi_1.sta)(Statements.ModifyScreen), (0, _combi_1.sta)(Statements.CallSelectionScreen), (0, _combi_1.sta)(Statements.CallTransaction), (0, _combi_1.sta)(Statements.CallTransformation), (0, _combi_1.sta)(Statements.Check), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sta)(Statements.CloseCursor), (0, _combi_1.sta)(Statements.CloseDataset), (0, _combi_1.sta)(Statements.Collect), (0, _combi_1.sta)(Statements.Commit), (0, _combi_1.sta)(Statements.Communication), (0, _combi_1.sta)(Statements.Compute), (0, _combi_1.sta)(Statements.CallBadi), (0, _combi_1.sta)(Statements.Condense), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Contexts), (0, _combi_1.sta)(Statements.Continue), (0, _combi_1.sta)(Statements.ConvertText), (0, _combi_1.sta)(Statements.Convert), (0, _combi_1.sta)(Statements.CreateData), (0, _combi_1.sta)(Statements.CreateOLE), (0, _combi_1.sta)(Statements.DeleteCluster), (0, _combi_1.sta)(Statements.DeleteDatabase), (0, _combi_1.sta)(Statements.DeleteDataset), (0, _combi_1.sta)(Statements.DeleteDynpro), (0, _combi_1.sta)(Statements.DeleteMemory), (0, _combi_1.sta)(Statements.DeleteReport), (0, _combi_1.sta)(Statements.DeleteTextpool), (0, _combi_1.sta)(Statements.Demand), (0, _combi_1.sta)(Statements.Describe), (0, _combi_1.sta)(Statements.Detail), (0, _combi_1.sta)(Statements.Divide), (0, _combi_1.sta)(Statements.EditorCall), (0, _combi_1.sta)(Statements.EnhancementPoint), (0, _combi_1.sta)(Statements.Exit), (0, _combi_1.sta)(Statements.ExportDynpro), (0, _combi_1.sta)(Statements.Export), (0, _combi_1.sta)(Statements.Extract), (0, _combi_1.sta)(Statements.FetchNextCursor), (0, _combi_1.sta)(Statements.FieldGroup), (0, _combi_1.sta)(Statements.Fields), (0, _combi_1.sta)(Statements.Find), (0, _combi_1.sta)(Statements.Format), (0, _combi_1.sta)(Statements.FreeMemory), (0, _combi_1.sta)(Statements.FreeObject), (0, _combi_1.sta)(Statements.Free), (0, _combi_1.sta)(Statements.GenerateDynpro), (0, _combi_1.sta)(Statements.GenerateReport), (0, _combi_1.sta)(Statements.GenerateSubroutine), (0, _combi_1.sta)(Statements.GetBadi), (0, _combi_1.sta)(Statements.GetBit), (0, _combi_1.sta)(Statements.GetCursor), (0, _combi_1.sta)(Statements.GetDataset), (0, _combi_1.sta)(Statements.GetLocale), (0, _combi_1.sta)(Statements.GetParameter), (0, _combi_1.sta)(Statements.GetPFStatus), (0, _combi_1.sta)(Statements.GetProperty), (0, _combi_1.sta)(Statements.GetReference), (0, _combi_1.sta)(Statements.GetRunTime), (0, _combi_1.sta)(Statements.GetTime), (0, _combi_1.sta)(Statements.Hide), (0, _combi_1.sta)(Statements.Nodes), (0, _combi_1.sta)(Statements.ImportDynpro), (0, _combi_1.sta)(Statements.ImportNametab), (0, _combi_1.sta)(Statements.MoveCorresponding), (0, _combi_1.sta)(Statements.Import), (0, _combi_1.sta)(Statements.Infotypes), (0, _combi_1.sta)(Statements.Include), // include does not have to be at top level
|
|
18138
|
+
return (0, _combi_1.alt)((0, _combi_1.sta)(Statements.Move), (0, _combi_1.sta)(Statements.Call), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sub)(Structures.If), (0, _combi_1.sta)(Statements.Clear), (0, _combi_1.sta)(Statements.FieldSymbol), (0, _combi_1.sta)(Statements.CreateObject), (0, _combi_1.sta)(Statements.CallFunction), (0, _combi_1.sta)(_statement_1.MacroCall), (0, _combi_1.sub)(Structures.LoopAtScreen), (0, _combi_1.sub)(Structures.Loop), (0, _combi_1.sta)(Statements.Append), (0, _combi_1.sub)(Structures.Try), (0, _combi_1.sub)(Structures.OnChange), (0, _combi_1.sta)(Statements.ReadTable), (0, _combi_1.sta)(Statements.Assert), (0, _combi_1.sta)(Statements.Return), (0, _combi_1.sta)(Statements.Select), (0, _combi_1.sta)(Statements.Assign), (0, _combi_1.sta)(Statements.InsertInternal), (0, _combi_1.sta)(Statements.DeleteInternal), (0, _combi_1.sta)(Statements.Concatenate), (0, _combi_1.sub)(Structures.Case), (0, _combi_1.sub)(Structures.CaseType), (0, _combi_1.sub)(Structures.Enhancement), (0, _combi_1.sub)(Structures.EnhancementSection), (0, _combi_1.sta)(Statements.AddCorresponding), (0, _combi_1.sta)(Statements.Add), (0, _combi_1.sta)(Statements.AssignLocalCopy), (0, _combi_1.sta)(Statements.AuthorityCheck), (0, _combi_1.sta)(Statements.Back), (0, _combi_1.sta)(Statements.Break), (0, _combi_1.sta)(Statements.BreakId), (0, _combi_1.sta)(Statements.CallDatabase), (0, _combi_1.sta)(Statements.CallDialog), (0, _combi_1.sta)(Statements.CallKernel), (0, _combi_1.sta)(Statements.CallOLE), (0, _combi_1.sta)(Statements.CallScreen), (0, _combi_1.sta)(Statements.ModifyScreen), (0, _combi_1.sta)(Statements.CallSelectionScreen), (0, _combi_1.sta)(Statements.CallTransaction), (0, _combi_1.sta)(Statements.CallTransformation), (0, _combi_1.sta)(Statements.Check), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sta)(Statements.CloseCursor), (0, _combi_1.sta)(Statements.CloseDataset), (0, _combi_1.sta)(Statements.Collect), (0, _combi_1.sta)(Statements.Commit), (0, _combi_1.sta)(Statements.Communication), (0, _combi_1.sta)(Statements.Compute), (0, _combi_1.sta)(Statements.CallBadi), (0, _combi_1.sta)(Statements.Condense), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Contexts), (0, _combi_1.sta)(Statements.Continue), (0, _combi_1.sta)(Statements.ConvertText), (0, _combi_1.sta)(Statements.Convert), (0, _combi_1.sta)(Statements.CreateData), (0, _combi_1.sta)(Statements.CreateOLE), (0, _combi_1.sta)(Statements.DeleteCluster), (0, _combi_1.sta)(Statements.DeleteDatabase), (0, _combi_1.sta)(Statements.DeleteDataset), (0, _combi_1.sta)(Statements.DeleteDynpro), (0, _combi_1.sta)(Statements.DeleteMemory), (0, _combi_1.sta)(Statements.DeleteReport), (0, _combi_1.sta)(Statements.DeleteTextpool), (0, _combi_1.sta)(Statements.Demand), (0, _combi_1.sta)(Statements.Describe), (0, _combi_1.sta)(Statements.Detail), (0, _combi_1.sta)(Statements.Divide), (0, _combi_1.sta)(Statements.EditorCall), (0, _combi_1.sta)(Statements.EnhancementPoint), (0, _combi_1.sta)(Statements.Exit), (0, _combi_1.sta)(Statements.ExportDynpro), (0, _combi_1.sta)(Statements.Export), (0, _combi_1.sta)(Statements.Extract), (0, _combi_1.sta)(Statements.FetchNextCursor), (0, _combi_1.sta)(Statements.FieldGroup), (0, _combi_1.sta)(Statements.Fields), (0, _combi_1.sta)(Statements.Find), (0, _combi_1.sta)(Statements.Format), (0, _combi_1.sta)(Statements.FreeMemory), (0, _combi_1.sta)(Statements.FreeObject), (0, _combi_1.sta)(Statements.Free), (0, _combi_1.sta)(Statements.GenerateDynpro), (0, _combi_1.sta)(Statements.GenerateReport), (0, _combi_1.sta)(Statements.GenerateSubroutine), (0, _combi_1.sta)(Statements.GetBadi), (0, _combi_1.sta)(Statements.GetBit), (0, _combi_1.sta)(Statements.GetCursor), (0, _combi_1.sta)(Statements.GetDataset), (0, _combi_1.sta)(Statements.GetLocale), (0, _combi_1.sta)(Statements.GetParameter), (0, _combi_1.sta)(Statements.GetPFStatus), (0, _combi_1.sta)(Statements.GetProperty), (0, _combi_1.sta)(Statements.GetReference), (0, _combi_1.sta)(Statements.GetRunTime), (0, _combi_1.sta)(Statements.GetTime), (0, _combi_1.sta)(Statements.Hide), (0, _combi_1.sta)(Statements.Nodes), (0, _combi_1.sta)(Statements.ImportDynpro), (0, _combi_1.sta)(Statements.ImportNametab), (0, _combi_1.sta)(Statements.MoveCorresponding), (0, _combi_1.sta)(Statements.Import), (0, _combi_1.sta)(Statements.Infotypes), (0, _combi_1.sta)(Statements.Include), // include does not have to be at top level
|
|
18117
18139
|
(0, _combi_1.sta)(Statements.InsertDatabase), (0, _combi_1.sta)(Statements.InsertReport), (0, _combi_1.sta)(Statements.InsertTextpool), (0, _combi_1.sta)(Statements.InsertFieldGroup), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.Leave), (0, _combi_1.sta)(Statements.LoadReport), (0, _combi_1.sta)(Statements.Local), (0, _combi_1.sta)(Statements.With), (0, _combi_1.sta)(Statements.LogPoint), (0, _combi_1.sta)(Statements.Message), (0, _combi_1.sta)(Statements.ModifyLine), (0, _combi_1.sta)(Statements.ModifyDatabase), (0, _combi_1.sta)(Statements.ModifyInternal), (0, _combi_1.sta)(Statements.Multiply), (0, _combi_1.sta)(Statements.NewLine), (0, _combi_1.sta)(Statements.NewPage), (0, _combi_1.sta)(Statements.OpenCursor), (0, _combi_1.sta)(Statements.OpenDataset), (0, _combi_1.sta)(Statements.Overlay), (0, _combi_1.sta)(Statements.Pack), (0, _combi_1.sta)(Statements.Perform), (0, _combi_1.sta)(Statements.FormDefinition), (0, _combi_1.sta)(Statements.Position), (0, _combi_1.sta)(Statements.Put), (0, _combi_1.sta)(Statements.PrintControl), (0, _combi_1.sta)(Statements.RaiseEvent), (0, _combi_1.sta)(Statements.RaiseEntityEvent), (0, _combi_1.sta)(Statements.Raise), (0, _combi_1.sta)(Statements.Ranges), (0, _combi_1.sta)(Statements.ReadDataset), (0, _combi_1.sta)(Statements.ReadLine), (0, _combi_1.sta)(Statements.ReadReport), (0, _combi_1.sta)(Statements.ReadTextpool), (0, _combi_1.sta)(Statements.Receive), (0, _combi_1.sta)(Statements.RefreshControl), (0, _combi_1.sta)(Statements.Refresh), (0, _combi_1.sta)(Statements.Reject), (0, _combi_1.sta)(Statements.Replace), (0, _combi_1.sta)(Statements.Reserve), (0, _combi_1.sta)(Statements.Resume), (0, _combi_1.sta)(Statements.Retry), (0, _combi_1.sta)(Statements.Rollback), (0, _combi_1.sta)(Statements.Scan), (0, _combi_1.sta)(Statements.ScrollList), (0, _combi_1.sta)(Statements.Search), (0, _combi_1.sta)(Statements.SetBit), (0, _combi_1.sta)(Statements.SetBlank), (0, _combi_1.sta)(Statements.SetCountry), (0, _combi_1.sta)(Statements.SetCursor), (0, _combi_1.sta)(Statements.SetDataset), (0, _combi_1.sta)(Statements.SetExtendedCheck), (0, _combi_1.sta)(Statements.SetHandler), (0, _combi_1.sta)(Statements.SetLanguage), (0, _combi_1.sta)(Statements.SetLeft), (0, _combi_1.sta)(Statements.SetLocale), (0, _combi_1.sta)(Statements.SetMargin), (0, _combi_1.sta)(Statements.SetParameter), (0, _combi_1.sta)(Statements.SetPFStatus), (0, _combi_1.sta)(Statements.SetProperty), (0, _combi_1.sta)(Statements.SetRunTime), (0, _combi_1.sta)(Statements.SetScreen), (0, _combi_1.sta)(Statements.SetTitlebar), (0, _combi_1.sta)(Statements.SetUserCommand), (0, _combi_1.sta)(Statements.SetUpdateTask), (0, _combi_1.sta)(Statements.Shift), (0, _combi_1.sta)(Statements.Skip), (0, _combi_1.sta)(Statements.SortDataset), (0, _combi_1.sta)(Statements.Sort), (0, _combi_1.sta)(Statements.Static), (0, _combi_1.sta)(Statements.Split), (0, _combi_1.sta)(Statements.Stop), (0, _combi_1.sta)(Statements.Submit), (0, _combi_1.sta)(Statements.Summary), (0, _combi_1.sta)(Statements.SubtractCorresponding), (0, _combi_1.sta)(Statements.Subtract), (0, _combi_1.sta)(Statements.SuppressDialog), (0, _combi_1.sta)(Statements.Supply), (0, _combi_1.sta)(Statements.Sum), (0, _combi_1.sta)(Statements.SyntaxCheck), (0, _combi_1.sta)(Statements.SystemCall), (0, _combi_1.sta)(Statements.Tables), (0, _combi_1.sta)(Statements.Transfer), (0, _combi_1.sta)(Statements.Translate), (0, _combi_1.sta)(Statements.Type), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.Uline), (0, _combi_1.sta)(Statements.Unassign), (0, _combi_1.sta)(Statements.Unpack), (0, _combi_1.sta)(Statements.UpdateDatabase), (0, _combi_1.sta)(Statements.Wait), (0, _combi_1.sta)(Statements.Window), (0, _combi_1.sta)(Statements.Write), (0, _combi_1.sta)(Statements.CommitEntities), (0, _combi_1.sta)(Statements.GetPermissions), (0, _combi_1.sta)(Statements.SetLocks), (0, _combi_1.sta)(Statements.ModifyEntities), (0, _combi_1.sta)(Statements.ReadEntities), (0, _combi_1.sta)(Statements.RollbackEntities), (0, _combi_1.sub)(Structures.Define), (0, _combi_1.sub)(Structures.TestInjection), (0, _combi_1.sub)(Structures.TestSeam), (0, _combi_1.sub)(Structures.TypeMesh), (0, _combi_1.sub)(Structures.Provide), (0, _combi_1.sub)(Structures.CatchSystemExceptions), (0, _combi_1.sub)(Structures.At), (0, _combi_1.sub)(Structures.AtFirst), (0, _combi_1.sub)(Structures.AtLast), (0, _combi_1.sub)(Structures.Constants), (0, _combi_1.sub)(Structures.Types), (0, _combi_1.sub)(Structures.Statics), (0, _combi_1.sub)(Structures.Select), (0, _combi_1.sub)(Structures.Data), (0, _combi_1.sub)(Structures.TypeEnum), (0, _combi_1.sub)(Structures.While), (0, _combi_1.sub)(Structures.With), (0, _combi_1.sub)(Structures.Do), (0, _combi_1.sub)(Structures.ExecSQL));
|
|
18118
18140
|
}
|
|
18119
18141
|
}
|
|
@@ -18157,10 +18179,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
18157
18179
|
exports.PrivateSection = void 0;
|
|
18158
18180
|
const Statements = __webpack_require__(/*! ../../2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
18159
18181
|
const _combi_1 = __webpack_require__(/*! ./_combi */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/_combi.js");
|
|
18160
|
-
const
|
|
18182
|
+
const section_contents_1 = __webpack_require__(/*! ./section_contents */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/section_contents.js");
|
|
18161
18183
|
class PrivateSection {
|
|
18162
18184
|
getMatcher() {
|
|
18163
|
-
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Private), (0, _combi_1.opt)((0, _combi_1.sub)(
|
|
18185
|
+
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Private), (0, _combi_1.opt)((0, _combi_1.sub)(section_contents_1.SectionContents)));
|
|
18164
18186
|
}
|
|
18165
18187
|
}
|
|
18166
18188
|
exports.PrivateSection = PrivateSection;
|
|
@@ -18180,10 +18202,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
18180
18202
|
exports.ProtectedSection = void 0;
|
|
18181
18203
|
const Statements = __webpack_require__(/*! ../../2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
18182
18204
|
const _combi_1 = __webpack_require__(/*! ./_combi */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/_combi.js");
|
|
18183
|
-
const
|
|
18205
|
+
const section_contents_1 = __webpack_require__(/*! ./section_contents */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/section_contents.js");
|
|
18184
18206
|
class ProtectedSection {
|
|
18185
18207
|
getMatcher() {
|
|
18186
|
-
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Protected), (0, _combi_1.opt)((0, _combi_1.sub)(
|
|
18208
|
+
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Protected), (0, _combi_1.opt)((0, _combi_1.sub)(section_contents_1.SectionContents)));
|
|
18187
18209
|
}
|
|
18188
18210
|
}
|
|
18189
18211
|
exports.ProtectedSection = ProtectedSection;
|
|
@@ -18226,10 +18248,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
18226
18248
|
exports.PublicSection = void 0;
|
|
18227
18249
|
const Statements = __webpack_require__(/*! ../../2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
18228
18250
|
const _combi_1 = __webpack_require__(/*! ./_combi */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/_combi.js");
|
|
18229
|
-
const
|
|
18251
|
+
const section_contents_1 = __webpack_require__(/*! ./section_contents */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/section_contents.js");
|
|
18230
18252
|
class PublicSection {
|
|
18231
18253
|
getMatcher() {
|
|
18232
|
-
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Public), (0, _combi_1.opt)((0, _combi_1.sub)(
|
|
18254
|
+
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Public), (0, _combi_1.opt)((0, _combi_1.sub)(section_contents_1.SectionContents)));
|
|
18233
18255
|
}
|
|
18234
18256
|
}
|
|
18235
18257
|
exports.PublicSection = PublicSection;
|
|
@@ -18237,10 +18259,10 @@ exports.PublicSection = PublicSection;
|
|
|
18237
18259
|
|
|
18238
18260
|
/***/ }),
|
|
18239
18261
|
|
|
18240
|
-
/***/ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/
|
|
18241
|
-
|
|
18242
|
-
!*** ./node_modules/@abaplint/core/build/src/abap/3_structures/structures/
|
|
18243
|
-
|
|
18262
|
+
/***/ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/section_contents.js":
|
|
18263
|
+
/*!************************************************************************************************!*\
|
|
18264
|
+
!*** ./node_modules/@abaplint/core/build/src/abap/3_structures/structures/section_contents.js ***!
|
|
18265
|
+
\************************************************************************************************/
|
|
18244
18266
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
18245
18267
|
|
|
18246
18268
|
"use strict";
|
|
@@ -18257,11 +18279,11 @@ const data_1 = __webpack_require__(/*! ./data */ "./node_modules/@abaplint/core/
|
|
|
18257
18279
|
const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/index.js");
|
|
18258
18280
|
class SectionContents {
|
|
18259
18281
|
getMatcher() {
|
|
18260
|
-
return (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.MethodDef), (0, _combi_1.sta)(Statements.InterfaceDef), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sta)(Statements.ClassData), (0, _combi_1.sta)(Statements.Events), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Aliases), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sub)(types_1.Types), (0, _combi_1.sub)(constants_1.Constants), (0, _combi_1.sub)(type_enum_1.TypeEnum), (0, _combi_1.sub)(_1.TypeMesh), (0, _combi_1.sub)(data_1.Data), (0, _combi_1.sub)(class_data_1.ClassData), (0, _combi_1.sta)(Statements.Type)));
|
|
18282
|
+
return (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.MethodDef), (0, _combi_1.sta)(Statements.InterfaceDef), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sta)(Statements.ClassData), (0, _combi_1.sta)(Statements.Events), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Aliases), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sta)(Statements.Include), (0, _combi_1.sub)(types_1.Types), (0, _combi_1.sub)(constants_1.Constants), (0, _combi_1.sub)(type_enum_1.TypeEnum), (0, _combi_1.sub)(_1.TypeMesh), (0, _combi_1.sub)(data_1.Data), (0, _combi_1.sub)(class_data_1.ClassData), (0, _combi_1.sta)(Statements.Type)));
|
|
18261
18283
|
}
|
|
18262
18284
|
}
|
|
18263
18285
|
exports.SectionContents = SectionContents;
|
|
18264
|
-
//# sourceMappingURL=
|
|
18286
|
+
//# sourceMappingURL=section_contents.js.map
|
|
18265
18287
|
|
|
18266
18288
|
/***/ }),
|
|
18267
18289
|
|
|
@@ -19044,7 +19066,6 @@ var Visibility;
|
|
|
19044
19066
|
|
|
19045
19067
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19046
19068
|
exports.BuiltIn = exports.BuiltInMethod = void 0;
|
|
19047
|
-
/* eslint-disable max-len */
|
|
19048
19069
|
const _typed_identifier_1 = __webpack_require__(/*! ../types/_typed_identifier */ "./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js");
|
|
19049
19070
|
const basic_1 = __webpack_require__(/*! ../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
|
|
19050
19071
|
const tokens_1 = __webpack_require__(/*! ../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
|
|
@@ -20367,7 +20388,7 @@ class CurrentScope {
|
|
|
20367
20388
|
}
|
|
20368
20389
|
const upper = name.toUpperCase();
|
|
20369
20390
|
if (this.current.getData().vars[upper] !== undefined) {
|
|
20370
|
-
//
|
|
20391
|
+
// console.dir(new Error().stack);
|
|
20371
20392
|
throw new Error(`Variable name "${name}" already defined`);
|
|
20372
20393
|
}
|
|
20373
20394
|
else if (this.isOO() && this.current.getData().types[upper] !== undefined) {
|
|
@@ -20385,6 +20406,7 @@ class CurrentScope {
|
|
|
20385
20406
|
}
|
|
20386
20407
|
const upper = name.toUpperCase();
|
|
20387
20408
|
if (parent.getData().vars[upper] !== undefined) {
|
|
20409
|
+
// console.dir(new Error().stack);
|
|
20388
20410
|
throw new Error(`Variable name "${name}" already defined`);
|
|
20389
20411
|
}
|
|
20390
20412
|
else if (this.isOO() && parent.getData().types[upper] !== undefined) {
|
|
@@ -20876,7 +20898,7 @@ class ObjectOriented {
|
|
|
20876
20898
|
}
|
|
20877
20899
|
if (name.includes("~")) {
|
|
20878
20900
|
const interfaceName = upper.split("~")[0];
|
|
20879
|
-
if (
|
|
20901
|
+
if (this.listInterfacesRecursive(def).includes(interfaceName)) {
|
|
20880
20902
|
return this.searchAttributeName(this.scope.findInterfaceDefinition(interfaceName), name.split("~")[1]);
|
|
20881
20903
|
}
|
|
20882
20904
|
}
|
|
@@ -21038,7 +21060,19 @@ class ObjectOriented {
|
|
|
21038
21060
|
}
|
|
21039
21061
|
return ignore;
|
|
21040
21062
|
}
|
|
21041
|
-
|
|
21063
|
+
/** returns list of interfaces implemented, recursive */
|
|
21064
|
+
listInterfacesRecursive(definition) {
|
|
21065
|
+
const list = [];
|
|
21066
|
+
for (const i of definition.getImplementing()) {
|
|
21067
|
+
const upper = i.name.toUpperCase();
|
|
21068
|
+
list.push(upper);
|
|
21069
|
+
const def = this.scope.findInterfaceDefinition(upper);
|
|
21070
|
+
if (def) {
|
|
21071
|
+
list.push(...this.listInterfacesRecursive(def));
|
|
21072
|
+
}
|
|
21073
|
+
}
|
|
21074
|
+
return [...new Set(list)];
|
|
21075
|
+
}
|
|
21042
21076
|
fromInterfaces(definition, skip) {
|
|
21043
21077
|
const ignore = [];
|
|
21044
21078
|
for (const i of definition.getImplementing()) {
|
|
@@ -21880,7 +21914,6 @@ exports.AssertError = AssertError;
|
|
|
21880
21914
|
|
|
21881
21915
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
21882
21916
|
exports.BasicTypes = void 0;
|
|
21883
|
-
/* eslint-disable default-case */
|
|
21884
21917
|
const _typed_identifier_1 = __webpack_require__(/*! ../types/_typed_identifier */ "./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js");
|
|
21885
21918
|
const Expressions = __webpack_require__(/*! ../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
21886
21919
|
const Statements = __webpack_require__(/*! ../2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
@@ -26682,7 +26715,7 @@ class StringTemplate {
|
|
|
26682
26715
|
&& !(type instanceof basic_1.NumericGenericType)
|
|
26683
26716
|
&& !(type instanceof basic_1.NumericType)
|
|
26684
26717
|
&& !(type instanceof basic_1.AnyType)) {
|
|
26685
|
-
const message =
|
|
26718
|
+
const message = `Cannot apply ALPHA to this type (${type.constructor.name})`;
|
|
26686
26719
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, format.getFirstToken(), message));
|
|
26687
26720
|
return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
|
|
26688
26721
|
}
|
|
@@ -30343,8 +30376,11 @@ class Loop {
|
|
|
30343
30376
|
let rowType = undefined;
|
|
30344
30377
|
const concat = node.concatTokens().toUpperCase();
|
|
30345
30378
|
if (sourceType === undefined) {
|
|
30346
|
-
|
|
30347
|
-
|
|
30379
|
+
// if its a dynpro table control loop, then dont issue error
|
|
30380
|
+
if (concat !== "LOOP.") {
|
|
30381
|
+
const message = "No source type determined";
|
|
30382
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
30383
|
+
}
|
|
30348
30384
|
return;
|
|
30349
30385
|
}
|
|
30350
30386
|
else if (sourceType instanceof basic_1.UnknownType) {
|
|
@@ -31197,7 +31233,7 @@ class Ranges {
|
|
|
31197
31233
|
runSyntax(node, input) {
|
|
31198
31234
|
var _a;
|
|
31199
31235
|
const nameToken = (_a = node.findFirstExpression(Expressions.SimpleName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
|
|
31200
|
-
const typeExpression = node.findFirstExpression(Expressions.
|
|
31236
|
+
const typeExpression = node.findFirstExpression(Expressions.SimpleFieldChain2);
|
|
31201
31237
|
if (typeExpression === undefined) {
|
|
31202
31238
|
throw new assert_error_1.AssertError("Ranges, unexpected node");
|
|
31203
31239
|
}
|
|
@@ -33937,7 +33973,13 @@ exports.ArtifactsABAP = ArtifactsABAP;
|
|
|
33937
33973
|
"use strict";
|
|
33938
33974
|
|
|
33939
33975
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33940
|
-
exports.FlowGraph = void 0;
|
|
33976
|
+
exports.FlowGraph = exports.FLOW_EDGE_TYPE = void 0;
|
|
33977
|
+
var FLOW_EDGE_TYPE;
|
|
33978
|
+
(function (FLOW_EDGE_TYPE) {
|
|
33979
|
+
FLOW_EDGE_TYPE["true"] = "true";
|
|
33980
|
+
FLOW_EDGE_TYPE["false"] = "false";
|
|
33981
|
+
FLOW_EDGE_TYPE["undefined"] = "undefined";
|
|
33982
|
+
})(FLOW_EDGE_TYPE || (exports.FLOW_EDGE_TYPE = FLOW_EDGE_TYPE = {}));
|
|
33941
33983
|
class FlowGraph {
|
|
33942
33984
|
constructor(counter) {
|
|
33943
33985
|
this.edges = {};
|
|
@@ -33948,14 +33990,17 @@ class FlowGraph {
|
|
|
33948
33990
|
getStart() {
|
|
33949
33991
|
return this.startNode;
|
|
33950
33992
|
}
|
|
33993
|
+
getLabel() {
|
|
33994
|
+
return this.label;
|
|
33995
|
+
}
|
|
33951
33996
|
getEnd() {
|
|
33952
33997
|
return this.endNode;
|
|
33953
33998
|
}
|
|
33954
|
-
addEdge(from, to) {
|
|
33999
|
+
addEdge(from, to, type) {
|
|
33955
34000
|
if (this.edges[from] === undefined) {
|
|
33956
34001
|
this.edges[from] = {};
|
|
33957
34002
|
}
|
|
33958
|
-
this.edges[from][to] =
|
|
34003
|
+
this.edges[from][to] = type;
|
|
33959
34004
|
}
|
|
33960
34005
|
removeEdge(from, to) {
|
|
33961
34006
|
if (this.edges[from] === undefined) {
|
|
@@ -33970,7 +34015,7 @@ class FlowGraph {
|
|
|
33970
34015
|
const list = [];
|
|
33971
34016
|
for (const from of Object.keys(this.edges)) {
|
|
33972
34017
|
for (const to of Object.keys(this.edges[from])) {
|
|
33973
|
-
list.push({ from, to });
|
|
34018
|
+
list.push({ from, to, type: this.edges[from][to] });
|
|
33974
34019
|
}
|
|
33975
34020
|
}
|
|
33976
34021
|
return list;
|
|
@@ -33999,12 +34044,12 @@ class FlowGraph {
|
|
|
33999
34044
|
return Object.keys(this.edges).length > 0;
|
|
34000
34045
|
}
|
|
34001
34046
|
/** return value: end node of to graph */
|
|
34002
|
-
addGraph(from, to) {
|
|
34047
|
+
addGraph(from, to, type) {
|
|
34003
34048
|
if (to.hasEdges() === false) {
|
|
34004
34049
|
return from;
|
|
34005
34050
|
}
|
|
34006
|
-
this.addEdge(from, to.getStart());
|
|
34007
|
-
to.listEdges().forEach(e => this.addEdge(e.from, e.to));
|
|
34051
|
+
this.addEdge(from, to.getStart(), type);
|
|
34052
|
+
to.listEdges().forEach(e => this.addEdge(e.from, e.to, e.type));
|
|
34008
34053
|
return to.getEnd();
|
|
34009
34054
|
}
|
|
34010
34055
|
toJSON() {
|
|
@@ -34013,7 +34058,8 @@ class FlowGraph {
|
|
|
34013
34058
|
toTextEdges() {
|
|
34014
34059
|
let graph = "";
|
|
34015
34060
|
for (const l of this.listEdges()) {
|
|
34016
|
-
|
|
34061
|
+
const label = l.type === FLOW_EDGE_TYPE.undefined ? "" : ` [label="${l.type}"]`;
|
|
34062
|
+
graph += `"${l.from}" -> "${l.to}"${label};\n`;
|
|
34017
34063
|
}
|
|
34018
34064
|
return graph.trim();
|
|
34019
34065
|
}
|
|
@@ -34031,22 +34077,22 @@ ${this.toTextEdges()}
|
|
|
34031
34077
|
}`;
|
|
34032
34078
|
}
|
|
34033
34079
|
listSources(node) {
|
|
34034
|
-
const set =
|
|
34080
|
+
const set = [];
|
|
34035
34081
|
for (const l of this.listEdges()) {
|
|
34036
34082
|
if (node === l.to) {
|
|
34037
|
-
set.
|
|
34083
|
+
set.push({ name: l.from, type: l.type });
|
|
34038
34084
|
}
|
|
34039
34085
|
}
|
|
34040
|
-
return
|
|
34086
|
+
return set;
|
|
34041
34087
|
}
|
|
34042
34088
|
listTargets(node) {
|
|
34043
|
-
const set =
|
|
34089
|
+
const set = [];
|
|
34044
34090
|
for (const l of this.listEdges()) {
|
|
34045
34091
|
if (node === l.from) {
|
|
34046
|
-
set.
|
|
34092
|
+
set.push({ name: l.to, type: l.type });
|
|
34047
34093
|
}
|
|
34048
34094
|
}
|
|
34049
|
-
return
|
|
34095
|
+
return set;
|
|
34050
34096
|
}
|
|
34051
34097
|
/** removes all nodes containing "#" that have one in-going and one out-going edge */
|
|
34052
34098
|
reduce() {
|
|
@@ -34059,20 +34105,30 @@ ${this.toTextEdges()}
|
|
|
34059
34105
|
if (sources.length > 0 && targets.length > 0) {
|
|
34060
34106
|
// hash node in the middle of the graph
|
|
34061
34107
|
for (const s of sources) {
|
|
34062
|
-
this.removeEdge(s, node);
|
|
34108
|
+
this.removeEdge(s.name, node);
|
|
34063
34109
|
}
|
|
34064
34110
|
for (const t of targets) {
|
|
34065
|
-
this.removeEdge(node, t);
|
|
34111
|
+
this.removeEdge(node, t.name);
|
|
34066
34112
|
}
|
|
34067
34113
|
for (const s of sources) {
|
|
34068
34114
|
for (const t of targets) {
|
|
34069
|
-
|
|
34115
|
+
let type = FLOW_EDGE_TYPE.undefined;
|
|
34116
|
+
if (s.type !== FLOW_EDGE_TYPE.undefined) {
|
|
34117
|
+
type = s.type;
|
|
34118
|
+
}
|
|
34119
|
+
if (t.type !== FLOW_EDGE_TYPE.undefined) {
|
|
34120
|
+
if (type !== FLOW_EDGE_TYPE.undefined) {
|
|
34121
|
+
throw new Error("reduce: cannot merge, different edge types");
|
|
34122
|
+
}
|
|
34123
|
+
type = t.type;
|
|
34124
|
+
}
|
|
34125
|
+
this.addEdge(s.name, t.name, type);
|
|
34070
34126
|
}
|
|
34071
34127
|
}
|
|
34072
34128
|
}
|
|
34073
34129
|
if (node.startsWith("end#") && sources.length === 0) {
|
|
34074
34130
|
for (const t of targets) {
|
|
34075
|
-
this.removeEdge(node, t);
|
|
34131
|
+
this.removeEdge(node, t.name);
|
|
34076
34132
|
}
|
|
34077
34133
|
}
|
|
34078
34134
|
}
|
|
@@ -34084,6 +34140,42 @@ exports.FlowGraph = FlowGraph;
|
|
|
34084
34140
|
|
|
34085
34141
|
/***/ }),
|
|
34086
34142
|
|
|
34143
|
+
/***/ "./node_modules/@abaplint/core/build/src/abap/flow/selection_events.js":
|
|
34144
|
+
/*!*****************************************************************************!*\
|
|
34145
|
+
!*** ./node_modules/@abaplint/core/build/src/abap/flow/selection_events.js ***!
|
|
34146
|
+
\*****************************************************************************/
|
|
34147
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
34148
|
+
|
|
34149
|
+
"use strict";
|
|
34150
|
+
|
|
34151
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34152
|
+
exports.DECLARATION_STUFF = exports.SELECTION_EVENTS = void 0;
|
|
34153
|
+
const Statements = __webpack_require__(/*! ../2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
34154
|
+
exports.SELECTION_EVENTS = [
|
|
34155
|
+
Statements.StartOfSelection,
|
|
34156
|
+
Statements.AtSelectionScreen,
|
|
34157
|
+
Statements.AtLineSelection,
|
|
34158
|
+
Statements.AtUserCommand,
|
|
34159
|
+
Statements.EndOfSelection,
|
|
34160
|
+
Statements.Initialization,
|
|
34161
|
+
Statements.TopOfPage,
|
|
34162
|
+
Statements.LoadOfProgram,
|
|
34163
|
+
Statements.EndOfPage,
|
|
34164
|
+
];
|
|
34165
|
+
exports.DECLARATION_STUFF = [
|
|
34166
|
+
Statements.Data,
|
|
34167
|
+
Statements.DataBegin,
|
|
34168
|
+
Statements.Constant,
|
|
34169
|
+
Statements.Tables,
|
|
34170
|
+
Statements.Include, // this is not super correct, but anyhow
|
|
34171
|
+
Statements.Parameter,
|
|
34172
|
+
Statements.SelectionScreen,
|
|
34173
|
+
Statements.ConstantBegin,
|
|
34174
|
+
];
|
|
34175
|
+
//# sourceMappingURL=selection_events.js.map
|
|
34176
|
+
|
|
34177
|
+
/***/ }),
|
|
34178
|
+
|
|
34087
34179
|
/***/ "./node_modules/@abaplint/core/build/src/abap/flow/statement_flow.js":
|
|
34088
34180
|
/*!***************************************************************************!*\
|
|
34089
34181
|
!*** ./node_modules/@abaplint/core/build/src/abap/flow/statement_flow.js ***!
|
|
@@ -34099,32 +34191,91 @@ const Structures = __webpack_require__(/*! ../3_structures/structures */ "./node
|
|
|
34099
34191
|
const Statements = __webpack_require__(/*! ../2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
34100
34192
|
const Expressions = __webpack_require__(/*! ../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
34101
34193
|
const flow_graph_1 = __webpack_require__(/*! ./flow_graph */ "./node_modules/@abaplint/core/build/src/abap/flow/flow_graph.js");
|
|
34194
|
+
const objects_1 = __webpack_require__(/*! ../../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
|
|
34195
|
+
const selection_events_1 = __webpack_require__(/*! ./selection_events */ "./node_modules/@abaplint/core/build/src/abap/flow/selection_events.js");
|
|
34102
34196
|
class StatementFlow {
|
|
34103
34197
|
constructor() {
|
|
34104
34198
|
this.counter = 0;
|
|
34105
34199
|
}
|
|
34106
|
-
build(stru) {
|
|
34107
|
-
var _a, _b;
|
|
34200
|
+
build(stru, obj) {
|
|
34201
|
+
var _a, _b, _c, _d;
|
|
34108
34202
|
const ret = [];
|
|
34109
|
-
|
|
34110
|
-
|
|
34111
|
-
|
|
34112
|
-
|
|
34113
|
-
|
|
34114
|
-
|
|
34115
|
-
|
|
34116
|
-
|
|
34117
|
-
|
|
34118
|
-
|
|
34119
|
-
|
|
34120
|
-
|
|
34121
|
-
|
|
34122
|
-
|
|
34123
|
-
|
|
34203
|
+
let name = "";
|
|
34204
|
+
const structures = stru.findAllStructuresMulti([
|
|
34205
|
+
Structures.Form, Structures.ClassImplementation, Structures.FunctionModule, Structures.Module
|
|
34206
|
+
]);
|
|
34207
|
+
for (const s of structures) {
|
|
34208
|
+
if (s.get() instanceof Structures.Form) {
|
|
34209
|
+
name = "FORM " + ((_a = s.findFirstExpression(Expressions.FormName)) === null || _a === void 0 ? void 0 : _a.concatTokens());
|
|
34210
|
+
ret.push(this.run(s, name));
|
|
34211
|
+
}
|
|
34212
|
+
else if (s.get() instanceof Structures.ClassImplementation) {
|
|
34213
|
+
const className = (_b = s.findFirstExpression(Expressions.ClassName)) === null || _b === void 0 ? void 0 : _b.concatTokens();
|
|
34214
|
+
for (const method of s.findDirectStructures(Structures.Method)) {
|
|
34215
|
+
const methodName = (_c = method.findFirstExpression(Expressions.MethodName)) === null || _c === void 0 ? void 0 : _c.concatTokens();
|
|
34216
|
+
name = "METHOD " + methodName + ", CLASS " + className;
|
|
34217
|
+
ret.push(this.run(method, name));
|
|
34218
|
+
}
|
|
34219
|
+
}
|
|
34220
|
+
else if (s.get() instanceof Structures.FunctionModule) {
|
|
34221
|
+
name = "FUNCTION " + ((_d = s.findFirstExpression(Expressions.Field)) === null || _d === void 0 ? void 0 : _d.concatTokens());
|
|
34222
|
+
ret.push(this.run(s, name));
|
|
34223
|
+
}
|
|
34224
|
+
else if (s.get() instanceof Structures.Module) {
|
|
34225
|
+
name = s.getFirstStatement().concatTokens().toUpperCase();
|
|
34226
|
+
ret.push(this.run(s, name));
|
|
34227
|
+
}
|
|
34228
|
+
else {
|
|
34229
|
+
throw new Error("StatementFlow, unknown structure");
|
|
34230
|
+
}
|
|
34231
|
+
}
|
|
34232
|
+
if (obj instanceof objects_1.Program) {
|
|
34233
|
+
// find the top level events
|
|
34234
|
+
let inEvent = false;
|
|
34235
|
+
let collected = [];
|
|
34236
|
+
for (const s of stru.getChildren() || []) {
|
|
34237
|
+
if (selection_events_1.SELECTION_EVENTS.some(f => s.get() instanceof f)) {
|
|
34238
|
+
if (inEvent === true) {
|
|
34239
|
+
ret.push(this.runEvent(collected, name));
|
|
34240
|
+
}
|
|
34241
|
+
collected = [];
|
|
34242
|
+
inEvent = true;
|
|
34243
|
+
name = s.concatTokens();
|
|
34244
|
+
}
|
|
34245
|
+
else if (s.get() instanceof Structures.Normal) {
|
|
34246
|
+
collected.push(s);
|
|
34247
|
+
}
|
|
34248
|
+
else {
|
|
34249
|
+
if (inEvent === true) {
|
|
34250
|
+
ret.push(this.runEvent(collected, name));
|
|
34251
|
+
inEvent = false;
|
|
34252
|
+
}
|
|
34253
|
+
collected = [];
|
|
34254
|
+
}
|
|
34255
|
+
}
|
|
34256
|
+
if (inEvent === true) {
|
|
34257
|
+
ret.push(this.runEvent(collected, name));
|
|
34258
|
+
}
|
|
34259
|
+
else if (collected.length > 0) {
|
|
34260
|
+
// implicit START-OF-SELECTION
|
|
34261
|
+
ret.push(this.runEvent(collected, "START-OF-SELECTION."));
|
|
34262
|
+
}
|
|
34124
34263
|
}
|
|
34125
34264
|
return ret.map(f => f.reduce());
|
|
34126
34265
|
}
|
|
34127
34266
|
////////////////////
|
|
34267
|
+
runEvent(s, name) {
|
|
34268
|
+
this.counter = 1;
|
|
34269
|
+
const graph = this.traverseBody(s, { procedureEnd: "end#1" });
|
|
34270
|
+
graph.setLabel(name);
|
|
34271
|
+
return graph;
|
|
34272
|
+
}
|
|
34273
|
+
run(s, name) {
|
|
34274
|
+
this.counter = 1;
|
|
34275
|
+
const graph = this.traverseBody(this.findBody(s), { procedureEnd: "end#1" });
|
|
34276
|
+
graph.setLabel(name);
|
|
34277
|
+
return graph;
|
|
34278
|
+
}
|
|
34128
34279
|
findBody(f) {
|
|
34129
34280
|
var _a;
|
|
34130
34281
|
return ((_a = f.findDirectStructure(Structures.Body)) === null || _a === void 0 ? void 0 : _a.getChildren()) || [];
|
|
@@ -34153,7 +34304,7 @@ class StatementFlow {
|
|
|
34153
34304
|
traverseBody(children, context) {
|
|
34154
34305
|
const graph = new flow_graph_1.FlowGraph(this.counter++);
|
|
34155
34306
|
if (children.length === 0) {
|
|
34156
|
-
graph.addEdge(graph.getStart(), graph.getEnd());
|
|
34307
|
+
graph.addEdge(graph.getStart(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34157
34308
|
return graph;
|
|
34158
34309
|
}
|
|
34159
34310
|
let current = graph.getStart();
|
|
@@ -34162,44 +34313,44 @@ class StatementFlow {
|
|
|
34162
34313
|
const firstChild = c.getFirstChild(); // "Normal" only has one child
|
|
34163
34314
|
if (firstChild instanceof nodes_1.StatementNode) {
|
|
34164
34315
|
const name = this.buildName(firstChild);
|
|
34165
|
-
graph.addEdge(current, name);
|
|
34316
|
+
graph.addEdge(current, name, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34166
34317
|
current = name;
|
|
34167
34318
|
if (firstChild.get() instanceof Statements.Check) {
|
|
34168
34319
|
if (context.loopStart) {
|
|
34169
|
-
graph.addEdge(name, context.loopStart);
|
|
34320
|
+
graph.addEdge(name, context.loopStart, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34170
34321
|
}
|
|
34171
34322
|
else {
|
|
34172
|
-
graph.addEdge(name, context.procedureEnd);
|
|
34323
|
+
graph.addEdge(name, context.procedureEnd, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34173
34324
|
}
|
|
34174
34325
|
}
|
|
34175
34326
|
else if (firstChild.get() instanceof Statements.Assert) {
|
|
34176
|
-
graph.addEdge(name, context.procedureEnd);
|
|
34327
|
+
graph.addEdge(name, context.procedureEnd, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34177
34328
|
}
|
|
34178
34329
|
else if (firstChild.get() instanceof Statements.Continue && context.loopStart) {
|
|
34179
|
-
graph.addEdge(name, context.loopStart);
|
|
34330
|
+
graph.addEdge(name, context.loopStart, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34180
34331
|
return graph;
|
|
34181
34332
|
}
|
|
34182
34333
|
else if (firstChild.get() instanceof Statements.Exit) {
|
|
34183
34334
|
if (context.loopEnd) {
|
|
34184
|
-
graph.addEdge(name, context.loopEnd);
|
|
34335
|
+
graph.addEdge(name, context.loopEnd, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34185
34336
|
}
|
|
34186
34337
|
else {
|
|
34187
|
-
graph.addEdge(name, context.procedureEnd);
|
|
34338
|
+
graph.addEdge(name, context.procedureEnd, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34188
34339
|
}
|
|
34189
34340
|
return graph;
|
|
34190
34341
|
}
|
|
34191
34342
|
else if (firstChild.get() instanceof Statements.Return) {
|
|
34192
|
-
graph.addEdge(name, context.procedureEnd);
|
|
34343
|
+
graph.addEdge(name, context.procedureEnd, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34193
34344
|
return graph;
|
|
34194
34345
|
}
|
|
34195
34346
|
}
|
|
34196
34347
|
else if (firstChild instanceof nodes_1.StructureNode) {
|
|
34197
34348
|
const sub = this.traverseStructure(firstChild, context);
|
|
34198
|
-
current = graph.addGraph(current, sub);
|
|
34349
|
+
current = graph.addGraph(current, sub, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34199
34350
|
}
|
|
34200
34351
|
}
|
|
34201
34352
|
}
|
|
34202
|
-
graph.addEdge(current, graph.getEnd());
|
|
34353
|
+
graph.addEdge(current, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34203
34354
|
return graph;
|
|
34204
34355
|
}
|
|
34205
34356
|
traverseStructure(n, context) {
|
|
@@ -34212,9 +34363,9 @@ class StatementFlow {
|
|
|
34212
34363
|
if (type instanceof Structures.If) {
|
|
34213
34364
|
const ifName = this.buildName(n.findDirectStatement(Statements.If));
|
|
34214
34365
|
const sub = this.traverseBody(this.findBody(n), context);
|
|
34215
|
-
graph.addEdge(current, ifName);
|
|
34216
|
-
graph.addGraph(ifName, sub);
|
|
34217
|
-
graph.addEdge(sub.getEnd(), graph.getEnd());
|
|
34366
|
+
graph.addEdge(current, ifName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34367
|
+
graph.addGraph(ifName, sub, flow_graph_1.FLOW_EDGE_TYPE.true);
|
|
34368
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34218
34369
|
current = ifName;
|
|
34219
34370
|
for (const e of n.findDirectStructures(Structures.ElseIf)) {
|
|
34220
34371
|
const elseifst = e.findDirectStatement(Statements.ElseIf);
|
|
@@ -34223,9 +34374,9 @@ class StatementFlow {
|
|
|
34223
34374
|
}
|
|
34224
34375
|
const elseIfName = this.buildName(elseifst);
|
|
34225
34376
|
const sub = this.traverseBody(this.findBody(e), context);
|
|
34226
|
-
graph.addEdge(current, elseIfName);
|
|
34227
|
-
graph.addGraph(elseIfName, sub);
|
|
34228
|
-
graph.addEdge(sub.getEnd(), graph.getEnd());
|
|
34377
|
+
graph.addEdge(current, elseIfName, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34378
|
+
graph.addGraph(elseIfName, sub, flow_graph_1.FLOW_EDGE_TYPE.true);
|
|
34379
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34229
34380
|
current = elseIfName;
|
|
34230
34381
|
}
|
|
34231
34382
|
const els = n.findDirectStructure(Structures.Else);
|
|
@@ -34233,12 +34384,12 @@ class StatementFlow {
|
|
|
34233
34384
|
if (els && elsest) {
|
|
34234
34385
|
const elseName = this.buildName(elsest);
|
|
34235
34386
|
const sub = this.traverseBody(this.findBody(els), context);
|
|
34236
|
-
graph.addEdge(current, elseName);
|
|
34237
|
-
graph.addGraph(elseName, sub);
|
|
34238
|
-
graph.addEdge(sub.getEnd(), graph.getEnd());
|
|
34387
|
+
graph.addEdge(current, elseName, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34388
|
+
graph.addGraph(elseName, sub, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34389
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34239
34390
|
}
|
|
34240
34391
|
else {
|
|
34241
|
-
graph.addEdge(ifName, graph.getEnd());
|
|
34392
|
+
graph.addEdge(ifName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34242
34393
|
}
|
|
34243
34394
|
}
|
|
34244
34395
|
else if (type instanceof Structures.Loop
|
|
@@ -34246,33 +34397,54 @@ class StatementFlow {
|
|
|
34246
34397
|
|| type instanceof Structures.With
|
|
34247
34398
|
|| type instanceof Structures.Provide
|
|
34248
34399
|
|| type instanceof Structures.Select
|
|
34400
|
+
|| type instanceof Structures.LoopAtScreen
|
|
34249
34401
|
|| type instanceof Structures.Do) {
|
|
34250
34402
|
const loopName = this.buildName(n.getFirstStatement());
|
|
34251
34403
|
const sub = this.traverseBody(this.findBody(n), Object.assign(Object.assign({}, context), { loopStart: loopName, loopEnd: graph.getEnd() }));
|
|
34252
|
-
graph.addEdge(current, loopName);
|
|
34253
|
-
graph.addGraph(loopName, sub);
|
|
34254
|
-
graph.addEdge(sub.getEnd(), loopName);
|
|
34255
|
-
graph.addEdge(loopName, graph.getEnd());
|
|
34404
|
+
graph.addEdge(current, loopName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34405
|
+
graph.addGraph(loopName, sub, flow_graph_1.FLOW_EDGE_TYPE.true);
|
|
34406
|
+
graph.addEdge(sub.getEnd(), loopName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34407
|
+
graph.addEdge(loopName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34408
|
+
}
|
|
34409
|
+
else if (type instanceof Structures.Data
|
|
34410
|
+
|| type instanceof Structures.Constants
|
|
34411
|
+
|| type instanceof Structures.Types) {
|
|
34412
|
+
// these doesnt affect control flow, so just take the first statement
|
|
34413
|
+
const statement = n.getFirstStatement();
|
|
34414
|
+
const name = this.buildName(statement);
|
|
34415
|
+
graph.addEdge(current, name, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34416
|
+
graph.addEdge(name, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34417
|
+
}
|
|
34418
|
+
else if (type instanceof Structures.AtFirst
|
|
34419
|
+
|| type instanceof Structures.AtLast
|
|
34420
|
+
|| type instanceof Structures.At
|
|
34421
|
+
|| type instanceof Structures.OnChange) {
|
|
34422
|
+
const name = this.buildName(n.getFirstStatement());
|
|
34423
|
+
const body = this.traverseBody(this.findBody(n), context);
|
|
34424
|
+
graph.addEdge(current, name, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34425
|
+
graph.addGraph(name, body, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34426
|
+
graph.addEdge(body.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34427
|
+
graph.addEdge(current, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34256
34428
|
}
|
|
34257
34429
|
else if (type instanceof Structures.Try) {
|
|
34258
34430
|
const tryName = this.buildName(n.getFirstStatement());
|
|
34259
34431
|
const body = this.traverseBody(this.findBody(n), context);
|
|
34260
|
-
graph.addEdge(current, tryName);
|
|
34261
|
-
graph.addGraph(tryName, body);
|
|
34262
|
-
graph.addEdge(body.getEnd(), graph.getEnd());
|
|
34432
|
+
graph.addEdge(current, tryName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34433
|
+
graph.addGraph(tryName, body, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34434
|
+
graph.addEdge(body.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34263
34435
|
for (const c of n.findDirectStructures(Structures.Catch)) {
|
|
34264
34436
|
const catchName = this.buildName(c.getFirstStatement());
|
|
34265
34437
|
const catchBody = this.traverseBody(this.findBody(c), context);
|
|
34266
34438
|
// TODO: this does not take exceptions into account
|
|
34267
|
-
graph.addEdge(body.getEnd(), catchName);
|
|
34268
|
-
graph.addGraph(catchName, catchBody);
|
|
34269
|
-
graph.addEdge(catchBody.getEnd(), graph.getEnd());
|
|
34439
|
+
graph.addEdge(body.getEnd(), catchName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34440
|
+
graph.addGraph(catchName, catchBody, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34441
|
+
graph.addEdge(catchBody.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34270
34442
|
}
|
|
34271
34443
|
// TODO, handle CLEANUP
|
|
34272
34444
|
}
|
|
34273
34445
|
else if (type instanceof Structures.Case) {
|
|
34274
34446
|
const caseName = this.buildName(n.getFirstStatement());
|
|
34275
|
-
graph.addEdge(current, caseName);
|
|
34447
|
+
graph.addEdge(current, caseName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34276
34448
|
let othersFound = false;
|
|
34277
34449
|
for (const w of n.findDirectStructures(Structures.When)) {
|
|
34278
34450
|
const first = w.getFirstStatement();
|
|
@@ -34284,17 +34456,17 @@ class StatementFlow {
|
|
|
34284
34456
|
}
|
|
34285
34457
|
const firstName = this.buildName(first);
|
|
34286
34458
|
const sub = this.traverseBody(this.findBody(w), context);
|
|
34287
|
-
graph.addEdge(caseName, firstName);
|
|
34288
|
-
graph.addGraph(firstName, sub);
|
|
34289
|
-
graph.addEdge(sub.getEnd(), graph.getEnd());
|
|
34459
|
+
graph.addEdge(caseName, firstName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34460
|
+
graph.addGraph(firstName, sub, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34461
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34290
34462
|
}
|
|
34291
34463
|
if (othersFound === false) {
|
|
34292
|
-
graph.addEdge(caseName, graph.getEnd());
|
|
34464
|
+
graph.addEdge(caseName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34293
34465
|
}
|
|
34294
34466
|
}
|
|
34295
34467
|
else if (type instanceof Structures.CaseType) {
|
|
34296
34468
|
const caseName = this.buildName(n.getFirstStatement());
|
|
34297
|
-
graph.addEdge(current, caseName);
|
|
34469
|
+
graph.addEdge(current, caseName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34298
34470
|
let othersFound = false;
|
|
34299
34471
|
for (const w of n.findDirectStructures(Structures.WhenType)) {
|
|
34300
34472
|
const first = w.getFirstStatement();
|
|
@@ -34306,12 +34478,12 @@ class StatementFlow {
|
|
|
34306
34478
|
}
|
|
34307
34479
|
const firstName = this.buildName(first);
|
|
34308
34480
|
const sub = this.traverseBody(this.findBody(w), context);
|
|
34309
|
-
graph.addEdge(caseName, firstName);
|
|
34310
|
-
graph.addGraph(firstName, sub);
|
|
34311
|
-
graph.addEdge(sub.getEnd(), graph.getEnd());
|
|
34481
|
+
graph.addEdge(caseName, firstName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34482
|
+
graph.addGraph(firstName, sub, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34483
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34312
34484
|
}
|
|
34313
34485
|
if (othersFound === false) {
|
|
34314
|
-
graph.addEdge(caseName, graph.getEnd());
|
|
34486
|
+
graph.addEdge(caseName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34315
34487
|
}
|
|
34316
34488
|
}
|
|
34317
34489
|
else {
|
|
@@ -35550,7 +35722,7 @@ class CharacterType extends _abstract_type_1.AbstractType {
|
|
|
35550
35722
|
this.length = length;
|
|
35551
35723
|
}
|
|
35552
35724
|
cloneType(input) {
|
|
35553
|
-
const clone = Object.assign({}, this.getAbstractTypeData())
|
|
35725
|
+
const clone = Object.assign({}, this.getAbstractTypeData());
|
|
35554
35726
|
if (input.qualifiedName) {
|
|
35555
35727
|
clone.qualifiedName = input.qualifiedName;
|
|
35556
35728
|
}
|
|
@@ -40045,6 +40217,7 @@ class DDIC {
|
|
|
40045
40217
|
switch (text) {
|
|
40046
40218
|
case "DEC": // 1 <= len <= 31
|
|
40047
40219
|
case "D16F": // 1 <= len <= 31
|
|
40220
|
+
case "D16D":
|
|
40048
40221
|
case "D34F": // 1 <= len <= 31
|
|
40049
40222
|
case "DF16_DEC": // 1 <= len <= 31
|
|
40050
40223
|
case "DF34_DEC": // 1 <= len <= 31
|
|
@@ -40897,8 +41070,8 @@ exports.MemoryFile = MemoryFile;
|
|
|
40897
41070
|
"use strict";
|
|
40898
41071
|
|
|
40899
41072
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
40900
|
-
exports.
|
|
40901
|
-
exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility = exports.Info = exports.Diagnostics = exports.Rename = void 0;
|
|
41073
|
+
exports.ABAPFile = exports.RulesRunner = exports.SpaghettiScope = exports.SyntaxLogic = exports.ABAPObject = exports.Tokens = exports.ExpressionsCDS = exports.CDSParser = exports.LanguageServerTypes = exports.DDLParser = exports.FLOW_EDGE_TYPE = exports.FlowGraph = exports.StatementFlow = exports.NativeSQL = exports.MacroContent = exports.MacroCall = exports.applyEditList = exports.applyEditSingle = exports.SpaghettiScopeNode = exports.AbstractFile = exports.Token = exports.ScopeType = exports.BasicTypes = exports.TypedIdentifier = exports.AbstractType = exports.VirtualPosition = exports.Comment = exports.Unknown = exports.Empty = exports.Identifier = exports.Nodes = exports.Types = exports.Expressions = exports.Statements = exports.Structures = exports.SkipLogic = exports.Objects = exports.ArtifactsRules = exports.ArtifactsObjects = exports.ArtifactsABAP = exports.BuiltIn = exports.MethodLengthStats = exports.LanguageServer = exports.Registry = exports.CyclomaticComplexityStats = exports.ReferenceType = exports.Version = exports.Config = exports.Issue = exports.MemoryFile = void 0;
|
|
41074
|
+
exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility = exports.Info = exports.Diagnostics = exports.Rename = exports.PrettyPrinter = exports.Position = exports.CurrentScope = void 0;
|
|
40902
41075
|
const issue_1 = __webpack_require__(/*! ./issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
40903
41076
|
Object.defineProperty(exports, "Issue", ({ enumerable: true, get: function () { return issue_1.Issue; } }));
|
|
40904
41077
|
const config_1 = __webpack_require__(/*! ./config */ "./node_modules/@abaplint/core/build/src/config.js");
|
|
@@ -41006,6 +41179,11 @@ const diagnostics_1 = __webpack_require__(/*! ./lsp/diagnostics */ "./node_modul
|
|
|
41006
41179
|
Object.defineProperty(exports, "Diagnostics", ({ enumerable: true, get: function () { return diagnostics_1.Diagnostics; } }));
|
|
41007
41180
|
const _edit_1 = __webpack_require__(/*! ./lsp/_edit */ "./node_modules/@abaplint/core/build/src/lsp/_edit.js");
|
|
41008
41181
|
Object.defineProperty(exports, "LSPEdit", ({ enumerable: true, get: function () { return _edit_1.LSPEdit; } }));
|
|
41182
|
+
const statement_flow_1 = __webpack_require__(/*! ./abap/flow/statement_flow */ "./node_modules/@abaplint/core/build/src/abap/flow/statement_flow.js");
|
|
41183
|
+
Object.defineProperty(exports, "StatementFlow", ({ enumerable: true, get: function () { return statement_flow_1.StatementFlow; } }));
|
|
41184
|
+
const flow_graph_1 = __webpack_require__(/*! ./abap/flow/flow_graph */ "./node_modules/@abaplint/core/build/src/abap/flow/flow_graph.js");
|
|
41185
|
+
Object.defineProperty(exports, "FlowGraph", ({ enumerable: true, get: function () { return flow_graph_1.FlowGraph; } }));
|
|
41186
|
+
Object.defineProperty(exports, "FLOW_EDGE_TYPE", ({ enumerable: true, get: function () { return flow_graph_1.FLOW_EDGE_TYPE; } }));
|
|
41009
41187
|
//# sourceMappingURL=index.js.map
|
|
41010
41188
|
|
|
41011
41189
|
/***/ }),
|
|
@@ -41242,8 +41420,10 @@ const _typed_identifier_1 = __webpack_require__(/*! ../abap/types/_typed_identif
|
|
|
41242
41420
|
const _reference_1 = __webpack_require__(/*! ../abap/5_syntax/_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
|
|
41243
41421
|
const _builtin_1 = __webpack_require__(/*! ../abap/5_syntax/_builtin */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_builtin.js");
|
|
41244
41422
|
const _scope_type_1 = __webpack_require__(/*! ../abap/5_syntax/_scope_type */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_scope_type.js");
|
|
41423
|
+
const objects_1 = __webpack_require__(/*! ../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
|
|
41245
41424
|
const types_1 = __webpack_require__(/*! ../abap/types */ "./node_modules/@abaplint/core/build/src/abap/types/index.js");
|
|
41246
41425
|
const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/_statement.js");
|
|
41426
|
+
const include_graph_1 = __webpack_require__(/*! ../utils/include_graph */ "./node_modules/@abaplint/core/build/src/utils/include_graph.js");
|
|
41247
41427
|
class LSPLookup {
|
|
41248
41428
|
static lookup(cursor, reg, obj) {
|
|
41249
41429
|
var _a, _b;
|
|
@@ -41256,7 +41436,17 @@ class LSPLookup {
|
|
|
41256
41436
|
if (fm) {
|
|
41257
41437
|
return { hover: "Function Module " + fm };
|
|
41258
41438
|
}
|
|
41259
|
-
|
|
41439
|
+
let main = obj;
|
|
41440
|
+
if (obj instanceof objects_1.Program && obj.isInclude()) {
|
|
41441
|
+
// todo: this is slow
|
|
41442
|
+
const ig = new include_graph_1.IncludeGraph(reg);
|
|
41443
|
+
const mains = ig.listMainForInclude(cursor.identifier.getFilename());
|
|
41444
|
+
if (mains.length === 1) {
|
|
41445
|
+
// yea, well, or it has to be a popup
|
|
41446
|
+
main = reg.findObjectForFile(reg.getFileByName(mains[0])) || obj;
|
|
41447
|
+
}
|
|
41448
|
+
}
|
|
41449
|
+
const bottomScope = new syntax_1.SyntaxLogic(reg, main).run().spaghetti.lookupPosition(cursor.identifier.getStart(), cursor.identifier.getFilename());
|
|
41260
41450
|
if (bottomScope === undefined) {
|
|
41261
41451
|
return undefined;
|
|
41262
41452
|
}
|
|
@@ -42790,11 +42980,15 @@ class LanguageServer {
|
|
|
42790
42980
|
if (file === undefined) {
|
|
42791
42981
|
return "file not found";
|
|
42792
42982
|
}
|
|
42983
|
+
const obj = this.reg.findObjectForFile(file);
|
|
42984
|
+
if (obj === undefined) {
|
|
42985
|
+
return "obj not found";
|
|
42986
|
+
}
|
|
42793
42987
|
const stru = file.getStructure();
|
|
42794
42988
|
if (stru === undefined) {
|
|
42795
42989
|
return "empty structure";
|
|
42796
42990
|
}
|
|
42797
|
-
const graphs = new statement_flow_1.StatementFlow().build(stru);
|
|
42991
|
+
const graphs = new statement_flow_1.StatementFlow().build(stru, obj);
|
|
42798
42992
|
const wiz = graphs.map(g => g.toDigraph());
|
|
42799
42993
|
return JSON.stringify(wiz);
|
|
42800
42994
|
}
|
|
@@ -43659,6 +43853,45 @@ exports.AbstractObject = AbstractObject;
|
|
|
43659
43853
|
|
|
43660
43854
|
/***/ }),
|
|
43661
43855
|
|
|
43856
|
+
/***/ "./node_modules/@abaplint/core/build/src/objects/_dynpros.js":
|
|
43857
|
+
/*!*******************************************************************!*\
|
|
43858
|
+
!*** ./node_modules/@abaplint/core/build/src/objects/_dynpros.js ***!
|
|
43859
|
+
\*******************************************************************/
|
|
43860
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
43861
|
+
|
|
43862
|
+
"use strict";
|
|
43863
|
+
|
|
43864
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
43865
|
+
exports.parseDynpros = parseDynpros;
|
|
43866
|
+
const xml_utils_1 = __webpack_require__(/*! ../xml_utils */ "./node_modules/@abaplint/core/build/src/xml_utils.js");
|
|
43867
|
+
function parseDynpros(parsed) {
|
|
43868
|
+
var _a, _b, _c, _d;
|
|
43869
|
+
const dynpros = [];
|
|
43870
|
+
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;
|
|
43871
|
+
if (xmlDynpros !== undefined) {
|
|
43872
|
+
for (const d of (0, xml_utils_1.xmlToArray)(xmlDynpros.item)) {
|
|
43873
|
+
const fields = [];
|
|
43874
|
+
for (const f of (0, xml_utils_1.xmlToArray)((_d = d.FIELDS) === null || _d === void 0 ? void 0 : _d.RPY_DYFATC)) {
|
|
43875
|
+
fields.push({
|
|
43876
|
+
name: f.NAME,
|
|
43877
|
+
type: f.TYPE,
|
|
43878
|
+
length: f.LENGTH,
|
|
43879
|
+
});
|
|
43880
|
+
}
|
|
43881
|
+
dynpros.push({
|
|
43882
|
+
number: d.HEADER.SCREEN,
|
|
43883
|
+
description: d.HEADER.DESCRIPT,
|
|
43884
|
+
nextScreen: d.HEADER.NEXTSCREEN,
|
|
43885
|
+
fields: fields,
|
|
43886
|
+
});
|
|
43887
|
+
}
|
|
43888
|
+
}
|
|
43889
|
+
return dynpros;
|
|
43890
|
+
}
|
|
43891
|
+
//# sourceMappingURL=_dynpros.js.map
|
|
43892
|
+
|
|
43893
|
+
/***/ }),
|
|
43894
|
+
|
|
43662
43895
|
/***/ "./node_modules/@abaplint/core/build/src/objects/_unknown_object.js":
|
|
43663
43896
|
/*!**************************************************************************!*\
|
|
43664
43897
|
!*** ./node_modules/@abaplint/core/build/src/objects/_unknown_object.js ***!
|
|
@@ -43703,6 +43936,68 @@ exports.UnknownObject = UnknownObject;
|
|
|
43703
43936
|
|
|
43704
43937
|
/***/ }),
|
|
43705
43938
|
|
|
43939
|
+
/***/ "./node_modules/@abaplint/core/build/src/objects/abap_query_functional_area.js":
|
|
43940
|
+
/*!*************************************************************************************!*\
|
|
43941
|
+
!*** ./node_modules/@abaplint/core/build/src/objects/abap_query_functional_area.js ***!
|
|
43942
|
+
\*************************************************************************************/
|
|
43943
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
43944
|
+
|
|
43945
|
+
"use strict";
|
|
43946
|
+
|
|
43947
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
43948
|
+
exports.ABAPQueryFunctionalArea = void 0;
|
|
43949
|
+
const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
|
|
43950
|
+
class ABAPQueryFunctionalArea extends _abstract_object_1.AbstractObject {
|
|
43951
|
+
getType() {
|
|
43952
|
+
return "AQSG";
|
|
43953
|
+
}
|
|
43954
|
+
getAllowedNaming() {
|
|
43955
|
+
return {
|
|
43956
|
+
maxLength: 60, // todo
|
|
43957
|
+
allowNamespace: true,
|
|
43958
|
+
};
|
|
43959
|
+
}
|
|
43960
|
+
getDescription() {
|
|
43961
|
+
// todo
|
|
43962
|
+
return undefined;
|
|
43963
|
+
}
|
|
43964
|
+
}
|
|
43965
|
+
exports.ABAPQueryFunctionalArea = ABAPQueryFunctionalArea;
|
|
43966
|
+
//# sourceMappingURL=abap_query_functional_area.js.map
|
|
43967
|
+
|
|
43968
|
+
/***/ }),
|
|
43969
|
+
|
|
43970
|
+
/***/ "./node_modules/@abaplint/core/build/src/objects/abap_query_query.js":
|
|
43971
|
+
/*!***************************************************************************!*\
|
|
43972
|
+
!*** ./node_modules/@abaplint/core/build/src/objects/abap_query_query.js ***!
|
|
43973
|
+
\***************************************************************************/
|
|
43974
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
43975
|
+
|
|
43976
|
+
"use strict";
|
|
43977
|
+
|
|
43978
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
43979
|
+
exports.ABAPQueryQuery = void 0;
|
|
43980
|
+
const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
|
|
43981
|
+
class ABAPQueryQuery extends _abstract_object_1.AbstractObject {
|
|
43982
|
+
getType() {
|
|
43983
|
+
return "AQQU";
|
|
43984
|
+
}
|
|
43985
|
+
getAllowedNaming() {
|
|
43986
|
+
return {
|
|
43987
|
+
maxLength: 60, // todo
|
|
43988
|
+
allowNamespace: true,
|
|
43989
|
+
};
|
|
43990
|
+
}
|
|
43991
|
+
getDescription() {
|
|
43992
|
+
// todo
|
|
43993
|
+
return undefined;
|
|
43994
|
+
}
|
|
43995
|
+
}
|
|
43996
|
+
exports.ABAPQueryQuery = ABAPQueryQuery;
|
|
43997
|
+
//# sourceMappingURL=abap_query_query.js.map
|
|
43998
|
+
|
|
43999
|
+
/***/ }),
|
|
44000
|
+
|
|
43706
44001
|
/***/ "./node_modules/@abaplint/core/build/src/objects/activation_variant.js":
|
|
43707
44002
|
/*!*****************************************************************************!*\
|
|
43708
44003
|
!*** ./node_modules/@abaplint/core/build/src/objects/activation_variant.js ***!
|
|
@@ -45288,6 +45583,7 @@ class DataElement extends _abstract_object_1.AbstractObject {
|
|
|
45288
45583
|
}
|
|
45289
45584
|
getDescription() {
|
|
45290
45585
|
var _a;
|
|
45586
|
+
this.parse();
|
|
45291
45587
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.description;
|
|
45292
45588
|
}
|
|
45293
45589
|
getAllowedNaming() {
|
|
@@ -45305,6 +45601,11 @@ class DataElement extends _abstract_object_1.AbstractObject {
|
|
|
45305
45601
|
this.parse();
|
|
45306
45602
|
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.domname;
|
|
45307
45603
|
}
|
|
45604
|
+
getTexts() {
|
|
45605
|
+
var _a;
|
|
45606
|
+
this.parse();
|
|
45607
|
+
return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.texts;
|
|
45608
|
+
}
|
|
45308
45609
|
parseType(reg) {
|
|
45309
45610
|
const references = [];
|
|
45310
45611
|
let lookup = undefined;
|
|
@@ -45363,6 +45664,12 @@ class DataElement extends _abstract_object_1.AbstractObject {
|
|
|
45363
45664
|
datatype: dd04v === null || dd04v === void 0 ? void 0 : dd04v.DATATYPE,
|
|
45364
45665
|
leng: dd04v === null || dd04v === void 0 ? void 0 : dd04v.LENG,
|
|
45365
45666
|
decimals: dd04v === null || dd04v === void 0 ? void 0 : dd04v.DECIMALS,
|
|
45667
|
+
texts: {
|
|
45668
|
+
short: dd04v === null || dd04v === void 0 ? void 0 : dd04v.SCRTEXT_S,
|
|
45669
|
+
medium: dd04v === null || dd04v === void 0 ? void 0 : dd04v.SCRTEXT_M,
|
|
45670
|
+
long: dd04v === null || dd04v === void 0 ? void 0 : dd04v.SCRTEXT_L,
|
|
45671
|
+
heading: dd04v === null || dd04v === void 0 ? void 0 : dd04v.REPTEXT,
|
|
45672
|
+
},
|
|
45366
45673
|
};
|
|
45367
45674
|
const end = Date.now();
|
|
45368
45675
|
return { updated: true, runtime: end - start };
|
|
@@ -46000,18 +46307,23 @@ const _abap_object_1 = __webpack_require__(/*! ./_abap_object */ "./node_modules
|
|
|
46000
46307
|
const types_1 = __webpack_require__(/*! ../abap/types */ "./node_modules/@abaplint/core/build/src/abap/types/index.js");
|
|
46001
46308
|
const xml_utils_1 = __webpack_require__(/*! ../xml_utils */ "./node_modules/@abaplint/core/build/src/xml_utils.js");
|
|
46002
46309
|
const fast_xml_parser_1 = __webpack_require__(/*! fast-xml-parser */ "./node_modules/fast-xml-parser/src/fxp.js");
|
|
46310
|
+
const _dynpros_1 = __webpack_require__(/*! ./_dynpros */ "./node_modules/@abaplint/core/build/src/objects/_dynpros.js");
|
|
46003
46311
|
class FunctionGroup extends _abap_object_1.ABAPObject {
|
|
46004
46312
|
constructor() {
|
|
46005
46313
|
super(...arguments);
|
|
46006
46314
|
this.includes = undefined;
|
|
46007
46315
|
this.modules = undefined;
|
|
46316
|
+
this.description = undefined;
|
|
46317
|
+
this.dynpros = undefined;
|
|
46008
46318
|
}
|
|
46009
46319
|
getType() {
|
|
46010
46320
|
return "FUGR";
|
|
46011
46321
|
}
|
|
46012
46322
|
getDescription() {
|
|
46013
|
-
|
|
46014
|
-
|
|
46323
|
+
if (this.description === undefined) {
|
|
46324
|
+
this.parseXML();
|
|
46325
|
+
}
|
|
46326
|
+
return this.description;
|
|
46015
46327
|
}
|
|
46016
46328
|
setDirty() {
|
|
46017
46329
|
super.setDirty();
|
|
@@ -46024,6 +46336,12 @@ class FunctionGroup extends _abap_object_1.ABAPObject {
|
|
|
46024
46336
|
allowNamespace: true,
|
|
46025
46337
|
};
|
|
46026
46338
|
}
|
|
46339
|
+
getDynpros() {
|
|
46340
|
+
if (this.dynpros === undefined) {
|
|
46341
|
+
this.parseXML();
|
|
46342
|
+
}
|
|
46343
|
+
return this.dynpros || [];
|
|
46344
|
+
}
|
|
46027
46345
|
getSequencedFiles() {
|
|
46028
46346
|
const main = this.getMainABAPFile();
|
|
46029
46347
|
if (main === undefined) {
|
|
@@ -46125,22 +46443,24 @@ class FunctionGroup extends _abap_object_1.ABAPObject {
|
|
|
46125
46443
|
}
|
|
46126
46444
|
/////////////////////////////////
|
|
46127
46445
|
parseXML() {
|
|
46128
|
-
var _a, _b;
|
|
46446
|
+
var _a, _b, _c;
|
|
46129
46447
|
this.includes = [];
|
|
46130
46448
|
this.modules = [];
|
|
46131
46449
|
const parsed = this.parseRaw2();
|
|
46132
46450
|
if (parsed === undefined) {
|
|
46133
46451
|
return;
|
|
46134
46452
|
}
|
|
46453
|
+
this.description = (_a = parsed.abapGit["asx:abap"]["asx:values"]) === null || _a === void 0 ? void 0 : _a.AREAT;
|
|
46454
|
+
this.dynpros = (0, _dynpros_1.parseDynpros)(parsed);
|
|
46135
46455
|
// INCLUDES
|
|
46136
|
-
const includes = (
|
|
46456
|
+
const includes = (_b = parsed.abapGit["asx:abap"]["asx:values"]) === null || _b === void 0 ? void 0 : _b.INCLUDES;
|
|
46137
46457
|
if (includes !== undefined) {
|
|
46138
46458
|
for (const i of (0, xml_utils_1.xmlToArray)(includes.SOBJ_NAME)) {
|
|
46139
46459
|
this.includes.push(i);
|
|
46140
46460
|
}
|
|
46141
46461
|
}
|
|
46142
46462
|
// FUNCTION MODULES
|
|
46143
|
-
const functions = (
|
|
46463
|
+
const functions = (_c = parsed.abapGit["asx:abap"]["asx:values"]) === null || _c === void 0 ? void 0 : _c.FUNCTIONS;
|
|
46144
46464
|
for (const module of (0, xml_utils_1.xmlToArray)(functions === null || functions === void 0 ? void 0 : functions.item)) {
|
|
46145
46465
|
this.modules.push(new types_1.FunctionModuleDefinition(module));
|
|
46146
46466
|
}
|
|
@@ -46810,6 +47130,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
46810
47130
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
46811
47131
|
};
|
|
46812
47132
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
47133
|
+
__exportStar(__webpack_require__(/*! ./abap_query_functional_area */ "./node_modules/@abaplint/core/build/src/objects/abap_query_functional_area.js"), exports);
|
|
47134
|
+
__exportStar(__webpack_require__(/*! ./abap_query_query */ "./node_modules/@abaplint/core/build/src/objects/abap_query_query.js"), exports);
|
|
46813
47135
|
__exportStar(__webpack_require__(/*! ./activation_variant */ "./node_modules/@abaplint/core/build/src/objects/activation_variant.js"), exports);
|
|
46814
47136
|
__exportStar(__webpack_require__(/*! ./api_release_state */ "./node_modules/@abaplint/core/build/src/objects/api_release_state.js"), exports);
|
|
46815
47137
|
__exportStar(__webpack_require__(/*! ./application_job_catalog_entry */ "./node_modules/@abaplint/core/build/src/objects/application_job_catalog_entry.js"), exports);
|
|
@@ -48497,7 +48819,7 @@ exports.PersonalizationObject = PersonalizationObject;
|
|
|
48497
48819
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
48498
48820
|
exports.Program = void 0;
|
|
48499
48821
|
const _abap_object_1 = __webpack_require__(/*! ./_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
|
|
48500
|
-
const
|
|
48822
|
+
const _dynpros_1 = __webpack_require__(/*! ./_dynpros */ "./node_modules/@abaplint/core/build/src/objects/_dynpros.js");
|
|
48501
48823
|
class Program extends _abap_object_1.ABAPObject {
|
|
48502
48824
|
getType() {
|
|
48503
48825
|
return "PROG";
|
|
@@ -48533,11 +48855,10 @@ class Program extends _abap_object_1.ABAPObject {
|
|
|
48533
48855
|
}
|
|
48534
48856
|
getDynpros() {
|
|
48535
48857
|
this.parseXML();
|
|
48536
|
-
return this.parsedXML.dynpros;
|
|
48858
|
+
return this.parsedXML.dynpros || [];
|
|
48537
48859
|
}
|
|
48538
48860
|
////////////////////////////
|
|
48539
48861
|
parseXML() {
|
|
48540
|
-
var _a, _b, _c, _d;
|
|
48541
48862
|
if (this.parsedXML !== undefined) {
|
|
48542
48863
|
return;
|
|
48543
48864
|
}
|
|
@@ -48551,24 +48872,7 @@ class Program extends _abap_object_1.ABAPObject {
|
|
|
48551
48872
|
};
|
|
48552
48873
|
return;
|
|
48553
48874
|
}
|
|
48554
|
-
const dynpros =
|
|
48555
|
-
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;
|
|
48556
|
-
if (xmlDynpros !== undefined) {
|
|
48557
|
-
for (const d of (0, xml_utils_1.xmlToArray)(xmlDynpros.item)) {
|
|
48558
|
-
const fields = [];
|
|
48559
|
-
for (const f of (0, xml_utils_1.xmlToArray)((_d = d.FIELDS) === null || _d === void 0 ? void 0 : _d.RPY_DYFATC)) {
|
|
48560
|
-
fields.push({
|
|
48561
|
-
name: f.NAME,
|
|
48562
|
-
type: f.TYPE,
|
|
48563
|
-
length: f.LENGTH,
|
|
48564
|
-
});
|
|
48565
|
-
}
|
|
48566
|
-
dynpros.push({
|
|
48567
|
-
number: d.HEADER.SCREEN,
|
|
48568
|
-
fields: fields,
|
|
48569
|
-
});
|
|
48570
|
-
}
|
|
48571
|
-
}
|
|
48875
|
+
const dynpros = (0, _dynpros_1.parseDynpros)(parsed);
|
|
48572
48876
|
this.parsedXML = {
|
|
48573
48877
|
isInclude: file ? file.getRaw().includes("<SUBC>I</SUBC>") : false,
|
|
48574
48878
|
isModulePool: file ? file.getRaw().includes("<SUBC>M</SUBC>") : false,
|
|
@@ -49807,8 +50111,11 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
49807
50111
|
return "TABL";
|
|
49808
50112
|
}
|
|
49809
50113
|
getDescription() {
|
|
49810
|
-
|
|
49811
|
-
|
|
50114
|
+
var _a;
|
|
50115
|
+
if (this.parsedData === undefined) {
|
|
50116
|
+
this.parseXML();
|
|
50117
|
+
}
|
|
50118
|
+
return (_a = this.parsedData) === null || _a === void 0 ? void 0 : _a.description;
|
|
49812
50119
|
}
|
|
49813
50120
|
getAllowedNaming() {
|
|
49814
50121
|
let length = 30;
|
|
@@ -50036,7 +50343,7 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
50036
50343
|
}
|
|
50037
50344
|
///////////////
|
|
50038
50345
|
parseXML() {
|
|
50039
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
50346
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
50040
50347
|
const parsed = super.parseRaw2();
|
|
50041
50348
|
if (parsed === undefined) {
|
|
50042
50349
|
return;
|
|
@@ -50054,9 +50361,10 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
50054
50361
|
}
|
|
50055
50362
|
// table category
|
|
50056
50363
|
this.parsedData.tableCategory = (_f = (_e = parsed.abapGit["asx:abap"]["asx:values"]) === null || _e === void 0 ? void 0 : _e.DD02V) === null || _f === void 0 ? void 0 : _f.TABCLASS;
|
|
50057
|
-
this.parsedData.
|
|
50364
|
+
this.parsedData.description = (_h = (_g = parsed.abapGit["asx:abap"]["asx:values"]) === null || _g === void 0 ? void 0 : _g.DD02V) === null || _h === void 0 ? void 0 : _h.DDTEXT;
|
|
50365
|
+
this.parsedData.dataClass = (_k = (_j = parsed.abapGit["asx:abap"]["asx:values"]) === null || _j === void 0 ? void 0 : _j.DD09L) === null || _k === void 0 ? void 0 : _k.TABART;
|
|
50058
50366
|
// fields
|
|
50059
|
-
const fields = (
|
|
50367
|
+
const fields = (_l = parsed.abapGit["asx:abap"]["asx:values"]) === null || _l === void 0 ? void 0 : _l.DD03P_TABLE;
|
|
50060
50368
|
for (const field of (0, xml_utils_1.xmlToArray)(fields === null || fields === void 0 ? void 0 : fields.DD03P)) {
|
|
50061
50369
|
this.parsedData.fields.push({
|
|
50062
50370
|
FIELDNAME: field.FIELDNAME,
|
|
@@ -51341,7 +51649,7 @@ class Registry {
|
|
|
51341
51649
|
}
|
|
51342
51650
|
static abaplintVersion() {
|
|
51343
51651
|
// magic, see build script "version.sh"
|
|
51344
|
-
return "2.
|
|
51652
|
+
return "2.113.6";
|
|
51345
51653
|
}
|
|
51346
51654
|
getDDICReferences() {
|
|
51347
51655
|
return this.ddicReferences;
|
|
@@ -51979,6 +52287,111 @@ exports.Abapdoc = Abapdoc;
|
|
|
51979
52287
|
|
|
51980
52288
|
/***/ }),
|
|
51981
52289
|
|
|
52290
|
+
/***/ "./node_modules/@abaplint/core/build/src/rules/add_test_attributes.js":
|
|
52291
|
+
/*!****************************************************************************!*\
|
|
52292
|
+
!*** ./node_modules/@abaplint/core/build/src/rules/add_test_attributes.js ***!
|
|
52293
|
+
\****************************************************************************/
|
|
52294
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
52295
|
+
|
|
52296
|
+
"use strict";
|
|
52297
|
+
|
|
52298
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
52299
|
+
exports.AddTestAttributes = exports.AddTestAttributesConf = void 0;
|
|
52300
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
52301
|
+
const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@abaplint/core/build/src/rules/_abap_rule.js");
|
|
52302
|
+
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
52303
|
+
const Statements = __webpack_require__(/*! ../abap/2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
52304
|
+
const Structures = __webpack_require__(/*! ../abap/3_structures/structures */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/index.js");
|
|
52305
|
+
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
52306
|
+
class AddTestAttributesConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
52307
|
+
}
|
|
52308
|
+
exports.AddTestAttributesConf = AddTestAttributesConf;
|
|
52309
|
+
class AddTestAttributes extends _abap_rule_1.ABAPRule {
|
|
52310
|
+
constructor() {
|
|
52311
|
+
super(...arguments);
|
|
52312
|
+
this.conf = new AddTestAttributesConf();
|
|
52313
|
+
}
|
|
52314
|
+
getMetadata() {
|
|
52315
|
+
return {
|
|
52316
|
+
key: "add_test_attributes",
|
|
52317
|
+
title: "Add test attributes for tests classes with test methods",
|
|
52318
|
+
shortDescription: `Add test attributes DURATION and RISK LEVEL for tests classes with test methods`,
|
|
52319
|
+
tags: [_irule_1.RuleTag.SingleFile],
|
|
52320
|
+
badExample: `CLASS ltcl_test1 DEFINITION FINAL FOR TESTING.
|
|
52321
|
+
PUBLIC SECTION.
|
|
52322
|
+
PROTECTED SECTION.
|
|
52323
|
+
PRIVATE SECTION.
|
|
52324
|
+
METHODS test FOR TESTING RAISING cx_static_check.
|
|
52325
|
+
ENDCLASS.
|
|
52326
|
+
|
|
52327
|
+
CLASS ltcl_test1 IMPLEMENTATION.
|
|
52328
|
+
METHOD test.
|
|
52329
|
+
ENDMETHOD.
|
|
52330
|
+
ENDCLASS.`,
|
|
52331
|
+
goodExample: `CLASS ltcl_test2 DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
52332
|
+
PUBLIC SECTION.
|
|
52333
|
+
PROTECTED SECTION.
|
|
52334
|
+
PRIVATE SECTION.
|
|
52335
|
+
METHODS test FOR TESTING RAISING cx_static_check.
|
|
52336
|
+
ENDCLASS.
|
|
52337
|
+
|
|
52338
|
+
CLASS ltcl_test2 IMPLEMENTATION.
|
|
52339
|
+
METHOD test.
|
|
52340
|
+
ENDMETHOD.
|
|
52341
|
+
ENDCLASS.`,
|
|
52342
|
+
};
|
|
52343
|
+
}
|
|
52344
|
+
getConfig() {
|
|
52345
|
+
return this.conf;
|
|
52346
|
+
}
|
|
52347
|
+
setConfig(conf) {
|
|
52348
|
+
this.conf = conf;
|
|
52349
|
+
}
|
|
52350
|
+
runParsed(file) {
|
|
52351
|
+
const issues = [];
|
|
52352
|
+
const stru = file.getStructure();
|
|
52353
|
+
if (stru === undefined) {
|
|
52354
|
+
return [];
|
|
52355
|
+
}
|
|
52356
|
+
for (const classStructure of stru.findAllStructures(Structures.ClassDefinition)) {
|
|
52357
|
+
const cdef = classStructure.findFirstStatement(Statements.ClassDefinition);
|
|
52358
|
+
if (cdef === undefined) {
|
|
52359
|
+
continue;
|
|
52360
|
+
}
|
|
52361
|
+
const cdefConcat = cdef === null || cdef === void 0 ? void 0 : cdef.concatTokens().toUpperCase();
|
|
52362
|
+
if ((cdefConcat === null || cdefConcat === void 0 ? void 0 : cdefConcat.includes(" FOR TESTING")) === false) {
|
|
52363
|
+
continue;
|
|
52364
|
+
}
|
|
52365
|
+
const hasDuration = cdefConcat === null || cdefConcat === void 0 ? void 0 : cdefConcat.includes(" DURATION ");
|
|
52366
|
+
const hasRiskLevel = cdefConcat === null || cdefConcat === void 0 ? void 0 : cdefConcat.includes(" RISK LEVEL ");
|
|
52367
|
+
if (hasDuration === true && hasRiskLevel === true) {
|
|
52368
|
+
continue;
|
|
52369
|
+
}
|
|
52370
|
+
let hasTestMethod = false;
|
|
52371
|
+
for (const mdef of classStructure.findAllStatements(Statements.MethodDef)) {
|
|
52372
|
+
const concat = mdef.concatTokens().toUpperCase();
|
|
52373
|
+
if (concat.includes(" FOR TESTING")) {
|
|
52374
|
+
hasTestMethod = true;
|
|
52375
|
+
}
|
|
52376
|
+
}
|
|
52377
|
+
if (hasTestMethod === false) {
|
|
52378
|
+
continue;
|
|
52379
|
+
}
|
|
52380
|
+
if (hasDuration === false) {
|
|
52381
|
+
issues.push(issue_1.Issue.atStatement(file, cdef, "Add DURATION", this.getMetadata().key, this.getConfig().severity));
|
|
52382
|
+
}
|
|
52383
|
+
if (hasRiskLevel === false) {
|
|
52384
|
+
issues.push(issue_1.Issue.atStatement(file, cdef, "Add RISK LEVEL", this.getMetadata().key, this.getConfig().severity));
|
|
52385
|
+
}
|
|
52386
|
+
}
|
|
52387
|
+
return issues;
|
|
52388
|
+
}
|
|
52389
|
+
}
|
|
52390
|
+
exports.AddTestAttributes = AddTestAttributes;
|
|
52391
|
+
//# sourceMappingURL=add_test_attributes.js.map
|
|
52392
|
+
|
|
52393
|
+
/***/ }),
|
|
52394
|
+
|
|
51982
52395
|
/***/ "./node_modules/@abaplint/core/build/src/rules/align_parameters.js":
|
|
51983
52396
|
/*!*************************************************************************!*\
|
|
51984
52397
|
!*** ./node_modules/@abaplint/core/build/src/rules/align_parameters.js ***!
|
|
@@ -53389,7 +53802,6 @@ class CDSLegacyView {
|
|
|
53389
53802
|
key: "cds_legacy_view",
|
|
53390
53803
|
title: "CDS Legacy View",
|
|
53391
53804
|
shortDescription: `Identify CDS Legacy Views`,
|
|
53392
|
-
// eslint-disable-next-line max-len
|
|
53393
53805
|
extendedInformation: `Use DEFINE VIEW ENTITY instead of DEFINE VIEW
|
|
53394
53806
|
|
|
53395
53807
|
https://blogs.sap.com/2021/10/16/a-new-generation-of-cds-views-how-to-migrate-your-cds-views-to-cds-view-entities/
|
|
@@ -59403,6 +59815,100 @@ exports.EasyToFindMessages = EasyToFindMessages;
|
|
|
59403
59815
|
|
|
59404
59816
|
/***/ }),
|
|
59405
59817
|
|
|
59818
|
+
/***/ "./node_modules/@abaplint/core/build/src/rules/empty_event.js":
|
|
59819
|
+
/*!********************************************************************!*\
|
|
59820
|
+
!*** ./node_modules/@abaplint/core/build/src/rules/empty_event.js ***!
|
|
59821
|
+
\********************************************************************/
|
|
59822
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
59823
|
+
|
|
59824
|
+
"use strict";
|
|
59825
|
+
|
|
59826
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
59827
|
+
exports.EmptyEvent = exports.EmptyEventConf = void 0;
|
|
59828
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
59829
|
+
const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@abaplint/core/build/src/rules/_abap_rule.js");
|
|
59830
|
+
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
59831
|
+
const Structures = __webpack_require__(/*! ../abap/3_structures/structures */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/index.js");
|
|
59832
|
+
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
59833
|
+
const objects_1 = __webpack_require__(/*! ../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
|
|
59834
|
+
const selection_events_1 = __webpack_require__(/*! ../abap/flow/selection_events */ "./node_modules/@abaplint/core/build/src/abap/flow/selection_events.js");
|
|
59835
|
+
class EmptyEventConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
59836
|
+
}
|
|
59837
|
+
exports.EmptyEventConf = EmptyEventConf;
|
|
59838
|
+
class EmptyEvent extends _abap_rule_1.ABAPRule {
|
|
59839
|
+
constructor() {
|
|
59840
|
+
super(...arguments);
|
|
59841
|
+
this.conf = new EmptyEventConf();
|
|
59842
|
+
}
|
|
59843
|
+
getMetadata() {
|
|
59844
|
+
return {
|
|
59845
|
+
key: "empty_event",
|
|
59846
|
+
title: "Empty selection screen or list processing event block",
|
|
59847
|
+
shortDescription: `Empty selection screen or list processing event block`,
|
|
59848
|
+
extendedInformation: ``,
|
|
59849
|
+
tags: [_irule_1.RuleTag.SingleFile],
|
|
59850
|
+
badExample: `
|
|
59851
|
+
INITIALIZATION.
|
|
59852
|
+
WRITE 'hello'.
|
|
59853
|
+
END-OF-SELECTION.`,
|
|
59854
|
+
goodExample: `
|
|
59855
|
+
START-OF-SELECTION.
|
|
59856
|
+
PERFORM sdf.
|
|
59857
|
+
COMMIT WORK.`,
|
|
59858
|
+
};
|
|
59859
|
+
}
|
|
59860
|
+
getConfig() {
|
|
59861
|
+
return this.conf;
|
|
59862
|
+
}
|
|
59863
|
+
setConfig(conf) {
|
|
59864
|
+
this.conf = conf;
|
|
59865
|
+
}
|
|
59866
|
+
runParsed(file, obj) {
|
|
59867
|
+
const issues = [];
|
|
59868
|
+
if (!(obj instanceof objects_1.Program) || obj.isInclude()) {
|
|
59869
|
+
return issues;
|
|
59870
|
+
}
|
|
59871
|
+
const stru = file.getStructure();
|
|
59872
|
+
if (stru === undefined) {
|
|
59873
|
+
return [];
|
|
59874
|
+
}
|
|
59875
|
+
let currentEvent = undefined;
|
|
59876
|
+
let children = [];
|
|
59877
|
+
for (const s of stru.getChildren() || []) {
|
|
59878
|
+
if (selection_events_1.SELECTION_EVENTS.some(f => s.get() instanceof f)) {
|
|
59879
|
+
if (currentEvent !== undefined && children.length === 0) {
|
|
59880
|
+
issues.push(issue_1.Issue.atStatement(file, currentEvent, "Empty event", this.getMetadata().key, this.getConfig().severity));
|
|
59881
|
+
}
|
|
59882
|
+
children = [];
|
|
59883
|
+
currentEvent = s;
|
|
59884
|
+
}
|
|
59885
|
+
else if (s.get() instanceof Structures.Normal) {
|
|
59886
|
+
const stru = s;
|
|
59887
|
+
// ignore declaration stuff
|
|
59888
|
+
if (selection_events_1.DECLARATION_STUFF.some(d => { var _a; return ((_a = stru.getFirstStatement()) === null || _a === void 0 ? void 0 : _a.get()) instanceof d; })) {
|
|
59889
|
+
continue;
|
|
59890
|
+
}
|
|
59891
|
+
children.push(s);
|
|
59892
|
+
}
|
|
59893
|
+
else {
|
|
59894
|
+
if (currentEvent !== undefined && children.length === 0) {
|
|
59895
|
+
issues.push(issue_1.Issue.atStatement(file, currentEvent, "Empty event", this.getMetadata().key, this.getConfig().severity));
|
|
59896
|
+
}
|
|
59897
|
+
children = [];
|
|
59898
|
+
currentEvent = undefined;
|
|
59899
|
+
}
|
|
59900
|
+
}
|
|
59901
|
+
if (currentEvent !== undefined && children.length === 0) {
|
|
59902
|
+
issues.push(issue_1.Issue.atStatement(file, currentEvent, "Empty event", this.getMetadata().key, this.getConfig().severity));
|
|
59903
|
+
}
|
|
59904
|
+
return issues;
|
|
59905
|
+
}
|
|
59906
|
+
}
|
|
59907
|
+
exports.EmptyEvent = EmptyEvent;
|
|
59908
|
+
//# sourceMappingURL=empty_event.js.map
|
|
59909
|
+
|
|
59910
|
+
/***/ }),
|
|
59911
|
+
|
|
59406
59912
|
/***/ "./node_modules/@abaplint/core/build/src/rules/empty_line_in_statement.js":
|
|
59407
59913
|
/*!********************************************************************************!*\
|
|
59408
59914
|
!*** ./node_modules/@abaplint/core/build/src/rules/empty_line_in_statement.js ***!
|
|
@@ -61769,6 +62275,109 @@ exports.ImplementMethods = ImplementMethods;
|
|
|
61769
62275
|
|
|
61770
62276
|
/***/ }),
|
|
61771
62277
|
|
|
62278
|
+
/***/ "./node_modules/@abaplint/core/build/src/rules/implicit_start_of_selection.js":
|
|
62279
|
+
/*!************************************************************************************!*\
|
|
62280
|
+
!*** ./node_modules/@abaplint/core/build/src/rules/implicit_start_of_selection.js ***!
|
|
62281
|
+
\************************************************************************************/
|
|
62282
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
62283
|
+
|
|
62284
|
+
"use strict";
|
|
62285
|
+
|
|
62286
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
62287
|
+
exports.ImplicitStartOfSelection = exports.ImplicitStartOfSelectionConf = void 0;
|
|
62288
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
62289
|
+
const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@abaplint/core/build/src/rules/_abap_rule.js");
|
|
62290
|
+
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
62291
|
+
const Structures = __webpack_require__(/*! ../abap/3_structures/structures */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/index.js");
|
|
62292
|
+
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
62293
|
+
const objects_1 = __webpack_require__(/*! ../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
|
|
62294
|
+
const nodes_1 = __webpack_require__(/*! ../abap/nodes */ "./node_modules/@abaplint/core/build/src/abap/nodes/index.js");
|
|
62295
|
+
const selection_events_1 = __webpack_require__(/*! ../abap/flow/selection_events */ "./node_modules/@abaplint/core/build/src/abap/flow/selection_events.js");
|
|
62296
|
+
class ImplicitStartOfSelectionConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
62297
|
+
}
|
|
62298
|
+
exports.ImplicitStartOfSelectionConf = ImplicitStartOfSelectionConf;
|
|
62299
|
+
class ImplicitStartOfSelection extends _abap_rule_1.ABAPRule {
|
|
62300
|
+
constructor() {
|
|
62301
|
+
super(...arguments);
|
|
62302
|
+
this.conf = new ImplicitStartOfSelectionConf();
|
|
62303
|
+
}
|
|
62304
|
+
getMetadata() {
|
|
62305
|
+
return {
|
|
62306
|
+
key: "implicit_start_of_selection",
|
|
62307
|
+
title: "Implicit START-OF-SELECTION",
|
|
62308
|
+
shortDescription: `Add explicit selection screen event handling`,
|
|
62309
|
+
extendedInformation: `Only runs for executable programs
|
|
62310
|
+
|
|
62311
|
+
https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-us/abapstart-of-selection.htm`,
|
|
62312
|
+
tags: [_irule_1.RuleTag.SingleFile],
|
|
62313
|
+
badExample: `REPORT zfoo.
|
|
62314
|
+
WRITE 'hello'.`,
|
|
62315
|
+
goodExample: `
|
|
62316
|
+
START-OF-SELECTION.
|
|
62317
|
+
WRITE 'hello'.`,
|
|
62318
|
+
};
|
|
62319
|
+
}
|
|
62320
|
+
getConfig() {
|
|
62321
|
+
return this.conf;
|
|
62322
|
+
}
|
|
62323
|
+
setConfig(conf) {
|
|
62324
|
+
this.conf = conf;
|
|
62325
|
+
}
|
|
62326
|
+
runParsed(file, obj) {
|
|
62327
|
+
const issues = [];
|
|
62328
|
+
if (!(obj instanceof objects_1.Program) || obj.isInclude()) {
|
|
62329
|
+
return issues;
|
|
62330
|
+
}
|
|
62331
|
+
const stru = file.getStructure();
|
|
62332
|
+
if (stru === undefined) {
|
|
62333
|
+
return [];
|
|
62334
|
+
}
|
|
62335
|
+
let inEvent = false;
|
|
62336
|
+
let collected = [];
|
|
62337
|
+
for (const s of stru.getChildren() || []) {
|
|
62338
|
+
if (selection_events_1.SELECTION_EVENTS.some(f => s.get() instanceof f)) {
|
|
62339
|
+
if (inEvent === false && collected.length > 0) {
|
|
62340
|
+
// implicit START-OF-SELECTION
|
|
62341
|
+
let first = collected[0];
|
|
62342
|
+
if (first instanceof nodes_1.StructureNode) {
|
|
62343
|
+
first = first.getFirstStatement();
|
|
62344
|
+
}
|
|
62345
|
+
issues.push(issue_1.Issue.atStatement(file, first, "Implicit START-OF-SELECTION", this.getMetadata().key, this.getConfig().severity));
|
|
62346
|
+
}
|
|
62347
|
+
collected = [];
|
|
62348
|
+
inEvent = true;
|
|
62349
|
+
}
|
|
62350
|
+
else if (s.get() instanceof Structures.Normal) {
|
|
62351
|
+
const stru = s;
|
|
62352
|
+
// ignore declaration stuff
|
|
62353
|
+
if (selection_events_1.DECLARATION_STUFF.some(d => { var _a; return ((_a = stru.getFirstStatement()) === null || _a === void 0 ? void 0 : _a.get()) instanceof d; })) {
|
|
62354
|
+
continue;
|
|
62355
|
+
}
|
|
62356
|
+
collected.push(s);
|
|
62357
|
+
}
|
|
62358
|
+
else {
|
|
62359
|
+
if (inEvent === true) {
|
|
62360
|
+
inEvent = false;
|
|
62361
|
+
}
|
|
62362
|
+
collected = [];
|
|
62363
|
+
}
|
|
62364
|
+
}
|
|
62365
|
+
if (inEvent === false && collected.length > 0) {
|
|
62366
|
+
// implicit START-OF-SELECTION
|
|
62367
|
+
let first = collected[0];
|
|
62368
|
+
if (first instanceof nodes_1.StructureNode) {
|
|
62369
|
+
first = first.getFirstStatement();
|
|
62370
|
+
}
|
|
62371
|
+
issues.push(issue_1.Issue.atStatement(file, first, "Implicit START-OF-SELECTION", this.getMetadata().key, this.getConfig().severity));
|
|
62372
|
+
}
|
|
62373
|
+
return issues;
|
|
62374
|
+
}
|
|
62375
|
+
}
|
|
62376
|
+
exports.ImplicitStartOfSelection = ImplicitStartOfSelection;
|
|
62377
|
+
//# sourceMappingURL=implicit_start_of_selection.js.map
|
|
62378
|
+
|
|
62379
|
+
/***/ }),
|
|
62380
|
+
|
|
61772
62381
|
/***/ "./node_modules/@abaplint/core/build/src/rules/in_statement_indentation.js":
|
|
61773
62382
|
/*!*********************************************************************************!*\
|
|
61774
62383
|
!*** ./node_modules/@abaplint/core/build/src/rules/in_statement_indentation.js ***!
|
|
@@ -62072,6 +62681,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
62072
62681
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
62073
62682
|
__exportStar(__webpack_require__(/*! ./7bit_ascii */ "./node_modules/@abaplint/core/build/src/rules/7bit_ascii.js"), exports);
|
|
62074
62683
|
__exportStar(__webpack_require__(/*! ./abapdoc */ "./node_modules/@abaplint/core/build/src/rules/abapdoc.js"), exports);
|
|
62684
|
+
__exportStar(__webpack_require__(/*! ./add_test_attributes */ "./node_modules/@abaplint/core/build/src/rules/add_test_attributes.js"), exports);
|
|
62075
62685
|
__exportStar(__webpack_require__(/*! ./align_parameters */ "./node_modules/@abaplint/core/build/src/rules/align_parameters.js"), exports);
|
|
62076
62686
|
__exportStar(__webpack_require__(/*! ./align_pseudo_comments */ "./node_modules/@abaplint/core/build/src/rules/align_pseudo_comments.js"), exports);
|
|
62077
62687
|
__exportStar(__webpack_require__(/*! ./align_type_expressions */ "./node_modules/@abaplint/core/build/src/rules/align_type_expressions.js"), exports);
|
|
@@ -62113,6 +62723,7 @@ __exportStar(__webpack_require__(/*! ./double_space */ "./node_modules/@abaplint
|
|
|
62113
62723
|
__exportStar(__webpack_require__(/*! ./downport */ "./node_modules/@abaplint/core/build/src/rules/downport.js"), exports);
|
|
62114
62724
|
__exportStar(__webpack_require__(/*! ./dynpro_checks */ "./node_modules/@abaplint/core/build/src/rules/dynpro_checks.js"), exports);
|
|
62115
62725
|
__exportStar(__webpack_require__(/*! ./easy_to_find_messages */ "./node_modules/@abaplint/core/build/src/rules/easy_to_find_messages.js"), exports);
|
|
62726
|
+
__exportStar(__webpack_require__(/*! ./empty_event */ "./node_modules/@abaplint/core/build/src/rules/empty_event.js"), exports);
|
|
62116
62727
|
__exportStar(__webpack_require__(/*! ./empty_line_in_statement */ "./node_modules/@abaplint/core/build/src/rules/empty_line_in_statement.js"), exports);
|
|
62117
62728
|
__exportStar(__webpack_require__(/*! ./empty_statement */ "./node_modules/@abaplint/core/build/src/rules/empty_statement.js"), exports);
|
|
62118
62729
|
__exportStar(__webpack_require__(/*! ./empty_structure */ "./node_modules/@abaplint/core/build/src/rules/empty_structure.js"), exports);
|
|
@@ -62134,6 +62745,7 @@ __exportStar(__webpack_require__(/*! ./identical_descriptions */ "./node_modules
|
|
|
62134
62745
|
__exportStar(__webpack_require__(/*! ./identical_form_names */ "./node_modules/@abaplint/core/build/src/rules/identical_form_names.js"), exports);
|
|
62135
62746
|
__exportStar(__webpack_require__(/*! ./if_in_if */ "./node_modules/@abaplint/core/build/src/rules/if_in_if.js"), exports);
|
|
62136
62747
|
__exportStar(__webpack_require__(/*! ./implement_methods */ "./node_modules/@abaplint/core/build/src/rules/implement_methods.js"), exports);
|
|
62748
|
+
__exportStar(__webpack_require__(/*! ./implicit_start_of_selection */ "./node_modules/@abaplint/core/build/src/rules/implicit_start_of_selection.js"), exports);
|
|
62137
62749
|
__exportStar(__webpack_require__(/*! ./in_statement_indentation */ "./node_modules/@abaplint/core/build/src/rules/in_statement_indentation.js"), exports);
|
|
62138
62750
|
__exportStar(__webpack_require__(/*! ./indentation */ "./node_modules/@abaplint/core/build/src/rules/indentation.js"), exports);
|
|
62139
62751
|
__exportStar(__webpack_require__(/*! ./inline_data_old_versions */ "./node_modules/@abaplint/core/build/src/rules/inline_data_old_versions.js"), exports);
|
|
@@ -74420,7 +75032,7 @@ function xmlToArray(data) {
|
|
|
74420
75032
|
if (data === undefined) {
|
|
74421
75033
|
return [];
|
|
74422
75034
|
}
|
|
74423
|
-
else if (data
|
|
75035
|
+
else if (Array.isArray(data)) {
|
|
74424
75036
|
return data;
|
|
74425
75037
|
}
|
|
74426
75038
|
else {
|
|
@@ -87710,6 +88322,35 @@ module.exports = {
|
|
|
87710
88322
|
|
|
87711
88323
|
/***/ }),
|
|
87712
88324
|
|
|
88325
|
+
/***/ "./node_modules/fast-xml-parser/src/ignoreAttributes.js":
|
|
88326
|
+
/*!**************************************************************!*\
|
|
88327
|
+
!*** ./node_modules/fast-xml-parser/src/ignoreAttributes.js ***!
|
|
88328
|
+
\**************************************************************/
|
|
88329
|
+
/***/ ((module) => {
|
|
88330
|
+
|
|
88331
|
+
function getIgnoreAttributesFn(ignoreAttributes) {
|
|
88332
|
+
if (typeof ignoreAttributes === 'function') {
|
|
88333
|
+
return ignoreAttributes
|
|
88334
|
+
}
|
|
88335
|
+
if (Array.isArray(ignoreAttributes)) {
|
|
88336
|
+
return (attrName) => {
|
|
88337
|
+
for (const pattern of ignoreAttributes) {
|
|
88338
|
+
if (typeof pattern === 'string' && attrName === pattern) {
|
|
88339
|
+
return true
|
|
88340
|
+
}
|
|
88341
|
+
if (pattern instanceof RegExp && pattern.test(attrName)) {
|
|
88342
|
+
return true
|
|
88343
|
+
}
|
|
88344
|
+
}
|
|
88345
|
+
}
|
|
88346
|
+
}
|
|
88347
|
+
return () => false
|
|
88348
|
+
}
|
|
88349
|
+
|
|
88350
|
+
module.exports = getIgnoreAttributesFn
|
|
88351
|
+
|
|
88352
|
+
/***/ }),
|
|
88353
|
+
|
|
87713
88354
|
/***/ "./node_modules/fast-xml-parser/src/util.js":
|
|
87714
88355
|
/*!**************************************************!*\
|
|
87715
88356
|
!*** ./node_modules/fast-xml-parser/src/util.js ***!
|
|
@@ -88239,6 +88880,7 @@ function getPositionFromMatch(match) {
|
|
|
88239
88880
|
|
|
88240
88881
|
//parse Empty Node as self closing node
|
|
88241
88882
|
const buildFromOrderedJs = __webpack_require__(/*! ./orderedJs2Xml */ "./node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js");
|
|
88883
|
+
const getIgnoreAttributesFn = __webpack_require__(/*! ../ignoreAttributes */ "./node_modules/fast-xml-parser/src/ignoreAttributes.js")
|
|
88242
88884
|
|
|
88243
88885
|
const defaultOptions = {
|
|
88244
88886
|
attributeNamePrefix: '@_',
|
|
@@ -88276,11 +88918,12 @@ const defaultOptions = {
|
|
|
88276
88918
|
|
|
88277
88919
|
function Builder(options) {
|
|
88278
88920
|
this.options = Object.assign({}, defaultOptions, options);
|
|
88279
|
-
if (this.options.ignoreAttributes || this.options.attributesGroupName) {
|
|
88921
|
+
if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {
|
|
88280
88922
|
this.isAttribute = function(/*a*/) {
|
|
88281
88923
|
return false;
|
|
88282
88924
|
};
|
|
88283
88925
|
} else {
|
|
88926
|
+
this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)
|
|
88284
88927
|
this.attrPrefixLen = this.options.attributeNamePrefix.length;
|
|
88285
88928
|
this.isAttribute = isAttribute;
|
|
88286
88929
|
}
|
|
@@ -88309,13 +88952,14 @@ Builder.prototype.build = function(jObj) {
|
|
|
88309
88952
|
[this.options.arrayNodeName] : jObj
|
|
88310
88953
|
}
|
|
88311
88954
|
}
|
|
88312
|
-
return this.j2x(jObj, 0).val;
|
|
88955
|
+
return this.j2x(jObj, 0, []).val;
|
|
88313
88956
|
}
|
|
88314
88957
|
};
|
|
88315
88958
|
|
|
88316
|
-
Builder.prototype.j2x = function(jObj, level) {
|
|
88959
|
+
Builder.prototype.j2x = function(jObj, level, ajPath) {
|
|
88317
88960
|
let attrStr = '';
|
|
88318
88961
|
let val = '';
|
|
88962
|
+
const jPath = ajPath.join('.')
|
|
88319
88963
|
for (let key in jObj) {
|
|
88320
88964
|
if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;
|
|
88321
88965
|
if (typeof jObj[key] === 'undefined') {
|
|
@@ -88338,9 +88982,9 @@ Builder.prototype.j2x = function(jObj, level) {
|
|
|
88338
88982
|
} else if (typeof jObj[key] !== 'object') {
|
|
88339
88983
|
//premitive type
|
|
88340
88984
|
const attr = this.isAttribute(key);
|
|
88341
|
-
if (attr) {
|
|
88985
|
+
if (attr && !this.ignoreAttributesFn(attr, jPath)) {
|
|
88342
88986
|
attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);
|
|
88343
|
-
}else {
|
|
88987
|
+
} else if (!attr) {
|
|
88344
88988
|
//tag value
|
|
88345
88989
|
if (key === this.options.textNodeName) {
|
|
88346
88990
|
let newval = this.options.tagValueProcessor(key, '' + jObj[key]);
|
|
@@ -88364,13 +89008,13 @@ Builder.prototype.j2x = function(jObj, level) {
|
|
|
88364
89008
|
// val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
|
|
88365
89009
|
} else if (typeof item === 'object') {
|
|
88366
89010
|
if(this.options.oneListGroup){
|
|
88367
|
-
const result = this.j2x(item, level + 1);
|
|
89011
|
+
const result = this.j2x(item, level + 1, ajPath.concat(key));
|
|
88368
89012
|
listTagVal += result.val;
|
|
88369
89013
|
if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {
|
|
88370
89014
|
listTagAttr += result.attrStr
|
|
88371
89015
|
}
|
|
88372
89016
|
}else{
|
|
88373
|
-
listTagVal += this.processTextOrObjNode(item, key, level)
|
|
89017
|
+
listTagVal += this.processTextOrObjNode(item, key, level, ajPath)
|
|
88374
89018
|
}
|
|
88375
89019
|
} else {
|
|
88376
89020
|
if (this.options.oneListGroup) {
|
|
@@ -88395,7 +89039,7 @@ Builder.prototype.j2x = function(jObj, level) {
|
|
|
88395
89039
|
attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);
|
|
88396
89040
|
}
|
|
88397
89041
|
} else {
|
|
88398
|
-
val += this.processTextOrObjNode(jObj[key], key, level)
|
|
89042
|
+
val += this.processTextOrObjNode(jObj[key], key, level, ajPath)
|
|
88399
89043
|
}
|
|
88400
89044
|
}
|
|
88401
89045
|
}
|
|
@@ -88410,8 +89054,8 @@ Builder.prototype.buildAttrPairStr = function(attrName, val){
|
|
|
88410
89054
|
} else return ' ' + attrName + '="' + val + '"';
|
|
88411
89055
|
}
|
|
88412
89056
|
|
|
88413
|
-
function processTextOrObjNode (object, key, level) {
|
|
88414
|
-
const result = this.j2x(object, level + 1);
|
|
89057
|
+
function processTextOrObjNode (object, key, level, ajPath) {
|
|
89058
|
+
const result = this.j2x(object, level + 1, ajPath.concat(key));
|
|
88415
89059
|
if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {
|
|
88416
89060
|
return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);
|
|
88417
89061
|
} else {
|
|
@@ -88899,6 +89543,7 @@ const util = __webpack_require__(/*! ../util */ "./node_modules/fast-xml-parser/
|
|
|
88899
89543
|
const xmlNode = __webpack_require__(/*! ./xmlNode */ "./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js");
|
|
88900
89544
|
const readDocType = __webpack_require__(/*! ./DocTypeReader */ "./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js");
|
|
88901
89545
|
const toNumber = __webpack_require__(/*! strnum */ "./node_modules/strnum/strnum.js");
|
|
89546
|
+
const getIgnoreAttributesFn = __webpack_require__(/*! ../ignoreAttributes */ "./node_modules/fast-xml-parser/src/ignoreAttributes.js")
|
|
88902
89547
|
|
|
88903
89548
|
// const regx =
|
|
88904
89549
|
// '<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)'
|
|
@@ -88947,6 +89592,7 @@ class OrderedObjParser{
|
|
|
88947
89592
|
this.readStopNodeData = readStopNodeData;
|
|
88948
89593
|
this.saveTextToParentTag = saveTextToParentTag;
|
|
88949
89594
|
this.addChild = addChild;
|
|
89595
|
+
this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)
|
|
88950
89596
|
}
|
|
88951
89597
|
|
|
88952
89598
|
}
|
|
@@ -89019,7 +89665,7 @@ function resolveNameSpace(tagname) {
|
|
|
89019
89665
|
const attrsRegx = new RegExp('([^\\s=]+)\\s*(=\\s*([\'"])([\\s\\S]*?)\\3)?', 'gm');
|
|
89020
89666
|
|
|
89021
89667
|
function buildAttributesMap(attrStr, jPath, tagName) {
|
|
89022
|
-
if (
|
|
89668
|
+
if (this.options.ignoreAttributes !== true && typeof attrStr === 'string') {
|
|
89023
89669
|
// attrStr = attrStr.replace(/\r?\n/g, ' ');
|
|
89024
89670
|
//attrStr = attrStr || attrStr.trim();
|
|
89025
89671
|
|
|
@@ -89028,6 +89674,9 @@ function buildAttributesMap(attrStr, jPath, tagName) {
|
|
|
89028
89674
|
const attrs = {};
|
|
89029
89675
|
for (let i = 0; i < len; i++) {
|
|
89030
89676
|
const attrName = this.resolveNameSpace(matches[i][1]);
|
|
89677
|
+
if (this.ignoreAttributesFn(attrName, jPath)) {
|
|
89678
|
+
continue
|
|
89679
|
+
}
|
|
89031
89680
|
let oldVal = matches[i][4];
|
|
89032
89681
|
let aName = this.options.attributeNamePrefix + attrName;
|
|
89033
89682
|
if (attrName.length) {
|