@abaplint/transpiler-cli 2.10.8 → 2.10.10
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 +341 -119
- 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;
|
|
@@ -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
|
}
|
|
@@ -34099,32 +34155,105 @@ const Structures = __webpack_require__(/*! ../3_structures/structures */ "./node
|
|
|
34099
34155
|
const Statements = __webpack_require__(/*! ../2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
34100
34156
|
const Expressions = __webpack_require__(/*! ../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
34101
34157
|
const flow_graph_1 = __webpack_require__(/*! ./flow_graph */ "./node_modules/@abaplint/core/build/src/abap/flow/flow_graph.js");
|
|
34158
|
+
// Levels: top, FORM, METHOD, FUNCTION-MODULE, (MODULE, AT, END-OF-*, GET, START-OF-SELECTION, TOP-OF-PAGE)
|
|
34159
|
+
//
|
|
34160
|
+
// Loop branching: LOOP, DO, WHILE, SELECT(loop), WITH, PROVIDE
|
|
34161
|
+
//
|
|
34162
|
+
// Branching: IF, CASE, CASE TYPE OF, TRY, ON, CATCH SYSTEM-EXCEPTIONS, AT
|
|
34163
|
+
//
|
|
34164
|
+
// Conditional exits: CHECK, ASSERT
|
|
34165
|
+
//
|
|
34166
|
+
// Exits: RETURN, EXIT, RAISE(not RESUMABLE), MESSAGE(type E and A?), CONTINUE, REJECT, RESUME, STOP
|
|
34167
|
+
//
|
|
34168
|
+
// Not handled? INCLUDE + malplaced macro calls
|
|
34169
|
+
/////////////////////////////////////
|
|
34170
|
+
// TODO: handling static exceptions(only static), refactor some logic from UncaughtException to common file
|
|
34171
|
+
// TODO: RAISE
|
|
34172
|
+
const FLOW_EVENTS = [
|
|
34173
|
+
Statements.StartOfSelection,
|
|
34174
|
+
Statements.AtSelectionScreen,
|
|
34175
|
+
Statements.AtLineSelection,
|
|
34176
|
+
Statements.AtUserCommand,
|
|
34177
|
+
Statements.EndOfSelection,
|
|
34178
|
+
Statements.Initialization,
|
|
34179
|
+
Statements.TopOfPage,
|
|
34180
|
+
Statements.EndOfPage,
|
|
34181
|
+
];
|
|
34102
34182
|
class StatementFlow {
|
|
34103
34183
|
constructor() {
|
|
34104
34184
|
this.counter = 0;
|
|
34105
34185
|
}
|
|
34106
34186
|
build(stru) {
|
|
34107
|
-
var _a, _b;
|
|
34187
|
+
var _a, _b, _c, _d;
|
|
34108
34188
|
const ret = [];
|
|
34109
|
-
|
|
34110
|
-
|
|
34111
|
-
|
|
34112
|
-
|
|
34113
|
-
|
|
34114
|
-
|
|
34115
|
-
|
|
34116
|
-
|
|
34117
|
-
|
|
34118
|
-
|
|
34119
|
-
|
|
34120
|
-
|
|
34121
|
-
|
|
34122
|
-
|
|
34123
|
-
|
|
34189
|
+
let name = "";
|
|
34190
|
+
const structures = stru.findAllStructuresMulti([Structures.Form, Structures.ClassImplementation, Structures.FunctionModule]);
|
|
34191
|
+
for (const s of structures) {
|
|
34192
|
+
if (s.get() instanceof Structures.Form) {
|
|
34193
|
+
name = "FORM " + ((_a = s.findFirstExpression(Expressions.FormName)) === null || _a === void 0 ? void 0 : _a.concatTokens());
|
|
34194
|
+
ret.push(this.run(s, name));
|
|
34195
|
+
}
|
|
34196
|
+
else if (s.get() instanceof Structures.ClassImplementation) {
|
|
34197
|
+
const className = (_b = s.findFirstExpression(Expressions.ClassName)) === null || _b === void 0 ? void 0 : _b.concatTokens();
|
|
34198
|
+
for (const method of s.findDirectStructures(Structures.Method)) {
|
|
34199
|
+
const methodName = (_c = method.findFirstExpression(Expressions.MethodName)) === null || _c === void 0 ? void 0 : _c.concatTokens();
|
|
34200
|
+
name = "METHOD " + methodName + ", CLASS " + className;
|
|
34201
|
+
ret.push(this.run(method, name));
|
|
34202
|
+
}
|
|
34203
|
+
}
|
|
34204
|
+
else if (s.get() instanceof Structures.FunctionModule) {
|
|
34205
|
+
name = "FUNCTION " + ((_d = s.findFirstExpression(Expressions.Field)) === null || _d === void 0 ? void 0 : _d.concatTokens());
|
|
34206
|
+
ret.push(this.run(s, name));
|
|
34207
|
+
}
|
|
34208
|
+
else {
|
|
34209
|
+
throw new Error("StatementFlow, unknown structure");
|
|
34210
|
+
}
|
|
34211
|
+
}
|
|
34212
|
+
// find the top level events
|
|
34213
|
+
let inFlow = false;
|
|
34214
|
+
let collected = [];
|
|
34215
|
+
for (const s of stru.getChildren() || []) {
|
|
34216
|
+
if (FLOW_EVENTS.some(f => s.get() instanceof f)) {
|
|
34217
|
+
if (inFlow === true) {
|
|
34218
|
+
ret.push(this.runEvent(collected, name));
|
|
34219
|
+
}
|
|
34220
|
+
collected = [];
|
|
34221
|
+
inFlow = true;
|
|
34222
|
+
name = s.concatTokens();
|
|
34223
|
+
}
|
|
34224
|
+
else if (s.get() instanceof Structures.Normal) {
|
|
34225
|
+
collected.push(s);
|
|
34226
|
+
}
|
|
34227
|
+
else {
|
|
34228
|
+
if (inFlow === true) {
|
|
34229
|
+
ret.push(this.runEvent(collected, name));
|
|
34230
|
+
inFlow = false;
|
|
34231
|
+
}
|
|
34232
|
+
collected = [];
|
|
34233
|
+
}
|
|
34234
|
+
}
|
|
34235
|
+
if (inFlow === true) {
|
|
34236
|
+
ret.push(this.runEvent(collected, name));
|
|
34237
|
+
}
|
|
34238
|
+
else if (collected.length > 0) {
|
|
34239
|
+
// implicit START-OF-SELECTION
|
|
34240
|
+
ret.push(this.runEvent(collected, "START-OF-SELECTION."));
|
|
34124
34241
|
}
|
|
34125
34242
|
return ret.map(f => f.reduce());
|
|
34126
34243
|
}
|
|
34127
34244
|
////////////////////
|
|
34245
|
+
runEvent(s, name) {
|
|
34246
|
+
this.counter = 1;
|
|
34247
|
+
const graph = this.traverseBody(s, { procedureEnd: "end#1" });
|
|
34248
|
+
graph.setLabel(name);
|
|
34249
|
+
return graph;
|
|
34250
|
+
}
|
|
34251
|
+
run(s, name) {
|
|
34252
|
+
this.counter = 1;
|
|
34253
|
+
const graph = this.traverseBody(this.findBody(s), { procedureEnd: "end#1" });
|
|
34254
|
+
graph.setLabel(name);
|
|
34255
|
+
return graph;
|
|
34256
|
+
}
|
|
34128
34257
|
findBody(f) {
|
|
34129
34258
|
var _a;
|
|
34130
34259
|
return ((_a = f.findDirectStructure(Structures.Body)) === null || _a === void 0 ? void 0 : _a.getChildren()) || [];
|
|
@@ -34153,7 +34282,7 @@ class StatementFlow {
|
|
|
34153
34282
|
traverseBody(children, context) {
|
|
34154
34283
|
const graph = new flow_graph_1.FlowGraph(this.counter++);
|
|
34155
34284
|
if (children.length === 0) {
|
|
34156
|
-
graph.addEdge(graph.getStart(), graph.getEnd());
|
|
34285
|
+
graph.addEdge(graph.getStart(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34157
34286
|
return graph;
|
|
34158
34287
|
}
|
|
34159
34288
|
let current = graph.getStart();
|
|
@@ -34162,44 +34291,44 @@ class StatementFlow {
|
|
|
34162
34291
|
const firstChild = c.getFirstChild(); // "Normal" only has one child
|
|
34163
34292
|
if (firstChild instanceof nodes_1.StatementNode) {
|
|
34164
34293
|
const name = this.buildName(firstChild);
|
|
34165
|
-
graph.addEdge(current, name);
|
|
34294
|
+
graph.addEdge(current, name, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34166
34295
|
current = name;
|
|
34167
34296
|
if (firstChild.get() instanceof Statements.Check) {
|
|
34168
34297
|
if (context.loopStart) {
|
|
34169
|
-
graph.addEdge(name, context.loopStart);
|
|
34298
|
+
graph.addEdge(name, context.loopStart, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34170
34299
|
}
|
|
34171
34300
|
else {
|
|
34172
|
-
graph.addEdge(name, context.procedureEnd);
|
|
34301
|
+
graph.addEdge(name, context.procedureEnd, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34173
34302
|
}
|
|
34174
34303
|
}
|
|
34175
34304
|
else if (firstChild.get() instanceof Statements.Assert) {
|
|
34176
|
-
graph.addEdge(name, context.procedureEnd);
|
|
34305
|
+
graph.addEdge(name, context.procedureEnd, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34177
34306
|
}
|
|
34178
34307
|
else if (firstChild.get() instanceof Statements.Continue && context.loopStart) {
|
|
34179
|
-
graph.addEdge(name, context.loopStart);
|
|
34308
|
+
graph.addEdge(name, context.loopStart, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34180
34309
|
return graph;
|
|
34181
34310
|
}
|
|
34182
34311
|
else if (firstChild.get() instanceof Statements.Exit) {
|
|
34183
34312
|
if (context.loopEnd) {
|
|
34184
|
-
graph.addEdge(name, context.loopEnd);
|
|
34313
|
+
graph.addEdge(name, context.loopEnd, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34185
34314
|
}
|
|
34186
34315
|
else {
|
|
34187
|
-
graph.addEdge(name, context.procedureEnd);
|
|
34316
|
+
graph.addEdge(name, context.procedureEnd, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34188
34317
|
}
|
|
34189
34318
|
return graph;
|
|
34190
34319
|
}
|
|
34191
34320
|
else if (firstChild.get() instanceof Statements.Return) {
|
|
34192
|
-
graph.addEdge(name, context.procedureEnd);
|
|
34321
|
+
graph.addEdge(name, context.procedureEnd, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34193
34322
|
return graph;
|
|
34194
34323
|
}
|
|
34195
34324
|
}
|
|
34196
34325
|
else if (firstChild instanceof nodes_1.StructureNode) {
|
|
34197
34326
|
const sub = this.traverseStructure(firstChild, context);
|
|
34198
|
-
current = graph.addGraph(current, sub);
|
|
34327
|
+
current = graph.addGraph(current, sub, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34199
34328
|
}
|
|
34200
34329
|
}
|
|
34201
34330
|
}
|
|
34202
|
-
graph.addEdge(current, graph.getEnd());
|
|
34331
|
+
graph.addEdge(current, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34203
34332
|
return graph;
|
|
34204
34333
|
}
|
|
34205
34334
|
traverseStructure(n, context) {
|
|
@@ -34212,9 +34341,9 @@ class StatementFlow {
|
|
|
34212
34341
|
if (type instanceof Structures.If) {
|
|
34213
34342
|
const ifName = this.buildName(n.findDirectStatement(Statements.If));
|
|
34214
34343
|
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());
|
|
34344
|
+
graph.addEdge(current, ifName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34345
|
+
graph.addGraph(ifName, sub, flow_graph_1.FLOW_EDGE_TYPE.true);
|
|
34346
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34218
34347
|
current = ifName;
|
|
34219
34348
|
for (const e of n.findDirectStructures(Structures.ElseIf)) {
|
|
34220
34349
|
const elseifst = e.findDirectStatement(Statements.ElseIf);
|
|
@@ -34223,9 +34352,9 @@ class StatementFlow {
|
|
|
34223
34352
|
}
|
|
34224
34353
|
const elseIfName = this.buildName(elseifst);
|
|
34225
34354
|
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());
|
|
34355
|
+
graph.addEdge(current, elseIfName, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34356
|
+
graph.addGraph(elseIfName, sub, flow_graph_1.FLOW_EDGE_TYPE.true);
|
|
34357
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34229
34358
|
current = elseIfName;
|
|
34230
34359
|
}
|
|
34231
34360
|
const els = n.findDirectStructure(Structures.Else);
|
|
@@ -34233,12 +34362,12 @@ class StatementFlow {
|
|
|
34233
34362
|
if (els && elsest) {
|
|
34234
34363
|
const elseName = this.buildName(elsest);
|
|
34235
34364
|
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());
|
|
34365
|
+
graph.addEdge(current, elseName, flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34366
|
+
graph.addGraph(elseName, sub, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34367
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34239
34368
|
}
|
|
34240
34369
|
else {
|
|
34241
|
-
graph.addEdge(ifName, graph.getEnd());
|
|
34370
|
+
graph.addEdge(ifName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34242
34371
|
}
|
|
34243
34372
|
}
|
|
34244
34373
|
else if (type instanceof Structures.Loop
|
|
@@ -34246,33 +34375,53 @@ class StatementFlow {
|
|
|
34246
34375
|
|| type instanceof Structures.With
|
|
34247
34376
|
|| type instanceof Structures.Provide
|
|
34248
34377
|
|| type instanceof Structures.Select
|
|
34378
|
+
|| type instanceof Structures.LoopAtScreen
|
|
34249
34379
|
|| type instanceof Structures.Do) {
|
|
34250
34380
|
const loopName = this.buildName(n.getFirstStatement());
|
|
34251
34381
|
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());
|
|
34382
|
+
graph.addEdge(current, loopName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34383
|
+
graph.addGraph(loopName, sub, flow_graph_1.FLOW_EDGE_TYPE.true);
|
|
34384
|
+
graph.addEdge(sub.getEnd(), loopName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34385
|
+
graph.addEdge(loopName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.false);
|
|
34386
|
+
}
|
|
34387
|
+
else if (type instanceof Structures.Data
|
|
34388
|
+
|| type instanceof Structures.Types) {
|
|
34389
|
+
// these doesnt affect control flow, so just take the first statement
|
|
34390
|
+
const statement = n.getFirstStatement();
|
|
34391
|
+
const name = this.buildName(statement);
|
|
34392
|
+
graph.addEdge(current, name, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34393
|
+
graph.addEdge(name, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34394
|
+
}
|
|
34395
|
+
else if (type instanceof Structures.AtFirst
|
|
34396
|
+
|| type instanceof Structures.AtLast
|
|
34397
|
+
|| type instanceof Structures.At
|
|
34398
|
+
|| type instanceof Structures.OnChange) {
|
|
34399
|
+
const name = this.buildName(n.getFirstStatement());
|
|
34400
|
+
const body = this.traverseBody(this.findBody(n), context);
|
|
34401
|
+
graph.addEdge(current, name, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34402
|
+
graph.addGraph(name, body, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34403
|
+
graph.addEdge(body.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34404
|
+
graph.addEdge(current, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34256
34405
|
}
|
|
34257
34406
|
else if (type instanceof Structures.Try) {
|
|
34258
34407
|
const tryName = this.buildName(n.getFirstStatement());
|
|
34259
34408
|
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());
|
|
34409
|
+
graph.addEdge(current, tryName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34410
|
+
graph.addGraph(tryName, body, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34411
|
+
graph.addEdge(body.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34263
34412
|
for (const c of n.findDirectStructures(Structures.Catch)) {
|
|
34264
34413
|
const catchName = this.buildName(c.getFirstStatement());
|
|
34265
34414
|
const catchBody = this.traverseBody(this.findBody(c), context);
|
|
34266
34415
|
// 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());
|
|
34416
|
+
graph.addEdge(body.getEnd(), catchName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34417
|
+
graph.addGraph(catchName, catchBody, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34418
|
+
graph.addEdge(catchBody.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34270
34419
|
}
|
|
34271
34420
|
// TODO, handle CLEANUP
|
|
34272
34421
|
}
|
|
34273
34422
|
else if (type instanceof Structures.Case) {
|
|
34274
34423
|
const caseName = this.buildName(n.getFirstStatement());
|
|
34275
|
-
graph.addEdge(current, caseName);
|
|
34424
|
+
graph.addEdge(current, caseName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34276
34425
|
let othersFound = false;
|
|
34277
34426
|
for (const w of n.findDirectStructures(Structures.When)) {
|
|
34278
34427
|
const first = w.getFirstStatement();
|
|
@@ -34284,17 +34433,17 @@ class StatementFlow {
|
|
|
34284
34433
|
}
|
|
34285
34434
|
const firstName = this.buildName(first);
|
|
34286
34435
|
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());
|
|
34436
|
+
graph.addEdge(caseName, firstName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34437
|
+
graph.addGraph(firstName, sub, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34438
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34290
34439
|
}
|
|
34291
34440
|
if (othersFound === false) {
|
|
34292
|
-
graph.addEdge(caseName, graph.getEnd());
|
|
34441
|
+
graph.addEdge(caseName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34293
34442
|
}
|
|
34294
34443
|
}
|
|
34295
34444
|
else if (type instanceof Structures.CaseType) {
|
|
34296
34445
|
const caseName = this.buildName(n.getFirstStatement());
|
|
34297
|
-
graph.addEdge(current, caseName);
|
|
34446
|
+
graph.addEdge(current, caseName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34298
34447
|
let othersFound = false;
|
|
34299
34448
|
for (const w of n.findDirectStructures(Structures.WhenType)) {
|
|
34300
34449
|
const first = w.getFirstStatement();
|
|
@@ -34306,12 +34455,12 @@ class StatementFlow {
|
|
|
34306
34455
|
}
|
|
34307
34456
|
const firstName = this.buildName(first);
|
|
34308
34457
|
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());
|
|
34458
|
+
graph.addEdge(caseName, firstName, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34459
|
+
graph.addGraph(firstName, sub, flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34460
|
+
graph.addEdge(sub.getEnd(), graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34312
34461
|
}
|
|
34313
34462
|
if (othersFound === false) {
|
|
34314
|
-
graph.addEdge(caseName, graph.getEnd());
|
|
34463
|
+
graph.addEdge(caseName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.undefined);
|
|
34315
34464
|
}
|
|
34316
34465
|
}
|
|
34317
34466
|
else {
|
|
@@ -35550,7 +35699,7 @@ class CharacterType extends _abstract_type_1.AbstractType {
|
|
|
35550
35699
|
this.length = length;
|
|
35551
35700
|
}
|
|
35552
35701
|
cloneType(input) {
|
|
35553
|
-
const clone = Object.assign({}, this.getAbstractTypeData())
|
|
35702
|
+
const clone = Object.assign({}, this.getAbstractTypeData());
|
|
35554
35703
|
if (input.qualifiedName) {
|
|
35555
35704
|
clone.qualifiedName = input.qualifiedName;
|
|
35556
35705
|
}
|
|
@@ -40045,6 +40194,7 @@ class DDIC {
|
|
|
40045
40194
|
switch (text) {
|
|
40046
40195
|
case "DEC": // 1 <= len <= 31
|
|
40047
40196
|
case "D16F": // 1 <= len <= 31
|
|
40197
|
+
case "D16D":
|
|
40048
40198
|
case "D34F": // 1 <= len <= 31
|
|
40049
40199
|
case "DF16_DEC": // 1 <= len <= 31
|
|
40050
40200
|
case "DF34_DEC": // 1 <= len <= 31
|
|
@@ -40897,8 +41047,8 @@ exports.MemoryFile = MemoryFile;
|
|
|
40897
41047
|
"use strict";
|
|
40898
41048
|
|
|
40899
41049
|
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;
|
|
41050
|
+
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;
|
|
41051
|
+
exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility = exports.Info = exports.Diagnostics = exports.Rename = exports.PrettyPrinter = exports.Position = exports.CurrentScope = void 0;
|
|
40902
41052
|
const issue_1 = __webpack_require__(/*! ./issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
40903
41053
|
Object.defineProperty(exports, "Issue", ({ enumerable: true, get: function () { return issue_1.Issue; } }));
|
|
40904
41054
|
const config_1 = __webpack_require__(/*! ./config */ "./node_modules/@abaplint/core/build/src/config.js");
|
|
@@ -41006,6 +41156,11 @@ const diagnostics_1 = __webpack_require__(/*! ./lsp/diagnostics */ "./node_modul
|
|
|
41006
41156
|
Object.defineProperty(exports, "Diagnostics", ({ enumerable: true, get: function () { return diagnostics_1.Diagnostics; } }));
|
|
41007
41157
|
const _edit_1 = __webpack_require__(/*! ./lsp/_edit */ "./node_modules/@abaplint/core/build/src/lsp/_edit.js");
|
|
41008
41158
|
Object.defineProperty(exports, "LSPEdit", ({ enumerable: true, get: function () { return _edit_1.LSPEdit; } }));
|
|
41159
|
+
const statement_flow_1 = __webpack_require__(/*! ./abap/flow/statement_flow */ "./node_modules/@abaplint/core/build/src/abap/flow/statement_flow.js");
|
|
41160
|
+
Object.defineProperty(exports, "StatementFlow", ({ enumerable: true, get: function () { return statement_flow_1.StatementFlow; } }));
|
|
41161
|
+
const flow_graph_1 = __webpack_require__(/*! ./abap/flow/flow_graph */ "./node_modules/@abaplint/core/build/src/abap/flow/flow_graph.js");
|
|
41162
|
+
Object.defineProperty(exports, "FlowGraph", ({ enumerable: true, get: function () { return flow_graph_1.FlowGraph; } }));
|
|
41163
|
+
Object.defineProperty(exports, "FLOW_EDGE_TYPE", ({ enumerable: true, get: function () { return flow_graph_1.FLOW_EDGE_TYPE; } }));
|
|
41009
41164
|
//# sourceMappingURL=index.js.map
|
|
41010
41165
|
|
|
41011
41166
|
/***/ }),
|
|
@@ -43703,6 +43858,68 @@ exports.UnknownObject = UnknownObject;
|
|
|
43703
43858
|
|
|
43704
43859
|
/***/ }),
|
|
43705
43860
|
|
|
43861
|
+
/***/ "./node_modules/@abaplint/core/build/src/objects/abap_query_functional_area.js":
|
|
43862
|
+
/*!*************************************************************************************!*\
|
|
43863
|
+
!*** ./node_modules/@abaplint/core/build/src/objects/abap_query_functional_area.js ***!
|
|
43864
|
+
\*************************************************************************************/
|
|
43865
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
43866
|
+
|
|
43867
|
+
"use strict";
|
|
43868
|
+
|
|
43869
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
43870
|
+
exports.ABAPQueryFunctionalArea = void 0;
|
|
43871
|
+
const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
|
|
43872
|
+
class ABAPQueryFunctionalArea extends _abstract_object_1.AbstractObject {
|
|
43873
|
+
getType() {
|
|
43874
|
+
return "AQSG";
|
|
43875
|
+
}
|
|
43876
|
+
getAllowedNaming() {
|
|
43877
|
+
return {
|
|
43878
|
+
maxLength: 60, // todo
|
|
43879
|
+
allowNamespace: true,
|
|
43880
|
+
};
|
|
43881
|
+
}
|
|
43882
|
+
getDescription() {
|
|
43883
|
+
// todo
|
|
43884
|
+
return undefined;
|
|
43885
|
+
}
|
|
43886
|
+
}
|
|
43887
|
+
exports.ABAPQueryFunctionalArea = ABAPQueryFunctionalArea;
|
|
43888
|
+
//# sourceMappingURL=abap_query_functional_area.js.map
|
|
43889
|
+
|
|
43890
|
+
/***/ }),
|
|
43891
|
+
|
|
43892
|
+
/***/ "./node_modules/@abaplint/core/build/src/objects/abap_query_query.js":
|
|
43893
|
+
/*!***************************************************************************!*\
|
|
43894
|
+
!*** ./node_modules/@abaplint/core/build/src/objects/abap_query_query.js ***!
|
|
43895
|
+
\***************************************************************************/
|
|
43896
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
43897
|
+
|
|
43898
|
+
"use strict";
|
|
43899
|
+
|
|
43900
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
43901
|
+
exports.ABAPQueryQuery = void 0;
|
|
43902
|
+
const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
|
|
43903
|
+
class ABAPQueryQuery extends _abstract_object_1.AbstractObject {
|
|
43904
|
+
getType() {
|
|
43905
|
+
return "AQQU";
|
|
43906
|
+
}
|
|
43907
|
+
getAllowedNaming() {
|
|
43908
|
+
return {
|
|
43909
|
+
maxLength: 60, // todo
|
|
43910
|
+
allowNamespace: true,
|
|
43911
|
+
};
|
|
43912
|
+
}
|
|
43913
|
+
getDescription() {
|
|
43914
|
+
// todo
|
|
43915
|
+
return undefined;
|
|
43916
|
+
}
|
|
43917
|
+
}
|
|
43918
|
+
exports.ABAPQueryQuery = ABAPQueryQuery;
|
|
43919
|
+
//# sourceMappingURL=abap_query_query.js.map
|
|
43920
|
+
|
|
43921
|
+
/***/ }),
|
|
43922
|
+
|
|
43706
43923
|
/***/ "./node_modules/@abaplint/core/build/src/objects/activation_variant.js":
|
|
43707
43924
|
/*!*****************************************************************************!*\
|
|
43708
43925
|
!*** ./node_modules/@abaplint/core/build/src/objects/activation_variant.js ***!
|
|
@@ -46810,6 +47027,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
46810
47027
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
46811
47028
|
};
|
|
46812
47029
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
47030
|
+
__exportStar(__webpack_require__(/*! ./abap_query_functional_area */ "./node_modules/@abaplint/core/build/src/objects/abap_query_functional_area.js"), exports);
|
|
47031
|
+
__exportStar(__webpack_require__(/*! ./abap_query_query */ "./node_modules/@abaplint/core/build/src/objects/abap_query_query.js"), exports);
|
|
46813
47032
|
__exportStar(__webpack_require__(/*! ./activation_variant */ "./node_modules/@abaplint/core/build/src/objects/activation_variant.js"), exports);
|
|
46814
47033
|
__exportStar(__webpack_require__(/*! ./api_release_state */ "./node_modules/@abaplint/core/build/src/objects/api_release_state.js"), exports);
|
|
46815
47034
|
__exportStar(__webpack_require__(/*! ./application_job_catalog_entry */ "./node_modules/@abaplint/core/build/src/objects/application_job_catalog_entry.js"), exports);
|
|
@@ -49807,8 +50026,11 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
49807
50026
|
return "TABL";
|
|
49808
50027
|
}
|
|
49809
50028
|
getDescription() {
|
|
49810
|
-
|
|
49811
|
-
|
|
50029
|
+
var _a;
|
|
50030
|
+
if (this.parsedData === undefined) {
|
|
50031
|
+
this.parseXML();
|
|
50032
|
+
}
|
|
50033
|
+
return (_a = this.parsedData) === null || _a === void 0 ? void 0 : _a.description;
|
|
49812
50034
|
}
|
|
49813
50035
|
getAllowedNaming() {
|
|
49814
50036
|
let length = 30;
|
|
@@ -50036,7 +50258,7 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
50036
50258
|
}
|
|
50037
50259
|
///////////////
|
|
50038
50260
|
parseXML() {
|
|
50039
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
50261
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
50040
50262
|
const parsed = super.parseRaw2();
|
|
50041
50263
|
if (parsed === undefined) {
|
|
50042
50264
|
return;
|
|
@@ -50054,9 +50276,10 @@ class Table extends _abstract_object_1.AbstractObject {
|
|
|
50054
50276
|
}
|
|
50055
50277
|
// table category
|
|
50056
50278
|
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.
|
|
50279
|
+
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;
|
|
50280
|
+
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
50281
|
// fields
|
|
50059
|
-
const fields = (
|
|
50282
|
+
const fields = (_l = parsed.abapGit["asx:abap"]["asx:values"]) === null || _l === void 0 ? void 0 : _l.DD03P_TABLE;
|
|
50060
50283
|
for (const field of (0, xml_utils_1.xmlToArray)(fields === null || fields === void 0 ? void 0 : fields.DD03P)) {
|
|
50061
50284
|
this.parsedData.fields.push({
|
|
50062
50285
|
FIELDNAME: field.FIELDNAME,
|
|
@@ -51341,7 +51564,7 @@ class Registry {
|
|
|
51341
51564
|
}
|
|
51342
51565
|
static abaplintVersion() {
|
|
51343
51566
|
// magic, see build script "version.sh"
|
|
51344
|
-
return "2.112.
|
|
51567
|
+
return "2.112.22";
|
|
51345
51568
|
}
|
|
51346
51569
|
getDDICReferences() {
|
|
51347
51570
|
return this.ddicReferences;
|
|
@@ -53389,7 +53612,6 @@ class CDSLegacyView {
|
|
|
53389
53612
|
key: "cds_legacy_view",
|
|
53390
53613
|
title: "CDS Legacy View",
|
|
53391
53614
|
shortDescription: `Identify CDS Legacy Views`,
|
|
53392
|
-
// eslint-disable-next-line max-len
|
|
53393
53615
|
extendedInformation: `Use DEFINE VIEW ENTITY instead of DEFINE VIEW
|
|
53394
53616
|
|
|
53395
53617
|
https://blogs.sap.com/2021/10/16/a-new-generation-of-cds-views-how-to-migrate-your-cds-views-to-cds-view-entities/
|
|
@@ -74420,7 +74642,7 @@ function xmlToArray(data) {
|
|
|
74420
74642
|
if (data === undefined) {
|
|
74421
74643
|
return [];
|
|
74422
74644
|
}
|
|
74423
|
-
else if (data
|
|
74645
|
+
else if (Array.isArray(data)) {
|
|
74424
74646
|
return data;
|
|
74425
74647
|
}
|
|
74426
74648
|
else {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.10",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
"author": "abaplint",
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@abaplint/transpiler": "^2.10.
|
|
29
|
+
"@abaplint/transpiler": "^2.10.10",
|
|
30
30
|
"@types/glob": "^8.1.0",
|
|
31
31
|
"glob": "=7.2.0",
|
|
32
32
|
"@types/progress": "^2.0.7",
|
|
33
|
-
"@types/node": "^22.1
|
|
34
|
-
"@abaplint/core": "^2.112.
|
|
33
|
+
"@types/node": "^22.5.1",
|
|
34
|
+
"@abaplint/core": "^2.112.22",
|
|
35
35
|
"progress": "^2.0.3",
|
|
36
|
-
"webpack": "^5.
|
|
36
|
+
"webpack": "^5.94.0",
|
|
37
37
|
"webpack-cli": "^5.1.4",
|
|
38
38
|
"typescript": "^5.5.4"
|
|
39
39
|
}
|