@abaplint/cli 2.115.27 → 2.115.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cli.js +18 -13
- package/package.json +4 -4
package/build/cli.js
CHANGED
|
@@ -41985,10 +41985,13 @@ const cds_integer_1 = __webpack_require__(/*! ./cds_integer */ "./node_modules/@
|
|
|
41985
41985
|
class CDSCondition extends combi_1.Expression {
|
|
41986
41986
|
getRunnable() {
|
|
41987
41987
|
const left = (0, combi_1.altPrio)(_1.CDSString, _1.CDSFunction, _1.CDSAggregate, _1.CDSPrefixedName);
|
|
41988
|
-
const
|
|
41989
|
-
|
|
41990
|
-
|
|
41991
|
-
|
|
41988
|
+
const nonLikeOperators = (0, combi_1.altPrio)("=", (0, combi_1.seq)("!", "="), (0, combi_1.seq)("<", ">"), (0, combi_1.seq)(">", "="), (0, combi_1.seq)("<", "="), "<", ">");
|
|
41989
|
+
const likeOperators = (0, combi_1.altPrio)("LIKE", "NOT LIKE");
|
|
41990
|
+
// Right side of comparison: simple values first, then parenthesized, then full arithmetic last.
|
|
41991
|
+
// CDSArithmetics is last to avoid triggering CDSPrefixedName→CDSCondition→CDSArithmetics cycle.
|
|
41992
|
+
const right = (0, combi_1.altPrio)(_1.CDSArithParen, left, cds_integer_1.CDSInteger, _1.CDSArithmetics);
|
|
41993
|
+
// ESCAPE is only valid with LIKE/NOT LIKE, not with other comparison operators.
|
|
41994
|
+
const compare = (0, combi_1.altPrio)((0, combi_1.seq)(likeOperators, right, (0, combi_1.opt)((0, combi_1.seq)("ESCAPE", _1.CDSString))), (0, combi_1.seq)(nonLikeOperators, right));
|
|
41992
41995
|
const is = (0, combi_1.seq)("IS", (0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)("INITIAL", "NULL"));
|
|
41993
41996
|
const between = (0, combi_1.seq)("BETWEEN", left, "AND", left);
|
|
41994
41997
|
const condition = (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), left, (0, combi_1.altPrio)(compare, is, between));
|
|
@@ -42499,7 +42502,7 @@ class CDSPrefixedName extends combi_1.Expression {
|
|
|
42499
42502
|
// The final segment may also be a string literal: #enum.'value'
|
|
42500
42503
|
// A segment may have a parameterized call: _Assoc( P_Key : value ) or _Assoc[filter]
|
|
42501
42504
|
const segment = (0, combi_1.seq)(".", (0, combi_1.altPrio)(cds_string_1.CDSString, cds_name_1.CDSName), (0, combi_1.opt)((0, combi_1.altPrio)(cds_parameters_select_1.CDSParametersSelect, cds_parameters_1.CDSParameters)), (0, combi_1.opt)(pathFilter));
|
|
42502
|
-
return (0, combi_1.seq)(cds_name_1.CDSName, (0, combi_1.opt)((0, combi_1.altPrio)(cds_parameters_1.CDSParameters, cds_parameters_select_1.CDSParametersSelect)), (0, combi_1.opt)(pathFilter), (0, combi_1.
|
|
42505
|
+
return (0, combi_1.seq)(cds_name_1.CDSName, (0, combi_1.opt)((0, combi_1.altPrio)(cds_parameters_1.CDSParameters, cds_parameters_select_1.CDSParametersSelect)), (0, combi_1.opt)(pathFilter), (0, combi_1.starPrio)(segment));
|
|
42503
42506
|
}
|
|
42504
42507
|
}
|
|
42505
42508
|
exports.CDSPrefixedName = CDSPrefixedName;
|
|
@@ -42571,7 +42574,7 @@ class CDSSelect extends combi_1.Expression {
|
|
|
42571
42574
|
const distinct = (0, combi_1.str)("DISTINCT");
|
|
42572
42575
|
const elementList = (0, combi_1.seq)(_1.CDSElement, (0, combi_1.starPrio)((0, combi_1.seq)(",", _1.CDSElement)));
|
|
42573
42576
|
const elements = (0, combi_1.seq)((0, combi_1.str)("{"), (0, combi_1.altPrio)("*", elementList), (0, combi_1.str)("}"));
|
|
42574
|
-
return (0, combi_1.seq)("SELECT", (0, combi_1.optPrio)(distinct), (0, combi_1.opt)((0, combi_1.
|
|
42577
|
+
return (0, combi_1.seq)("SELECT", (0, combi_1.optPrio)(distinct), (0, combi_1.opt)((0, combi_1.altPrio)("*", fields)), "FROM", _1.CDSSource, (0, combi_1.star)(cds_join_1.CDSJoin), (0, combi_1.star)((0, combi_1.altPrio)(_1.CDSComposition, cds_association_1.CDSAssociation)), (0, combi_1.opt)(elements), (0, combi_1.optPrio)(_1.CDSWhere), (0, combi_1.optPrio)(_1.CDSGroupBy), (0, combi_1.optPrio)(_1.CDSHaving), (0, combi_1.optPrio)((0, combi_1.seq)("UNION", (0, combi_1.optPrio)("ALL"), CDSSelect)));
|
|
42575
42578
|
}
|
|
42576
42579
|
}
|
|
42577
42580
|
exports.CDSSelect = CDSSelect;
|
|
@@ -55673,7 +55676,7 @@ class Registry {
|
|
|
55673
55676
|
}
|
|
55674
55677
|
static abaplintVersion() {
|
|
55675
55678
|
// magic, see build script "version.sh"
|
|
55676
|
-
return "2.115.
|
|
55679
|
+
return "2.115.28";
|
|
55677
55680
|
}
|
|
55678
55681
|
getDDICReferences() {
|
|
55679
55682
|
return this.ddicReferences;
|
|
@@ -69966,6 +69969,8 @@ class ModifyOnlyOwnDBTables {
|
|
|
69966
69969
|
key: "modify_only_own_db_tables",
|
|
69967
69970
|
title: "Modify only own DB tables",
|
|
69968
69971
|
shortDescription: `Modify only own DB tables`,
|
|
69972
|
+
badExample: `DELETE FROM mara WHERE matnr = '123456'.`,
|
|
69973
|
+
goodExample: `DELETE FROM yflight WHERE carrid = 'LH'.`,
|
|
69969
69974
|
extendedInformation: `https://docs.abapopenchecks.org/checks/26/`,
|
|
69970
69975
|
tags: [_irule_1.RuleTag.Security],
|
|
69971
69976
|
};
|
|
@@ -96176,12 +96181,6 @@ var lib = JSON5;
|
|
|
96176
96181
|
/******/ if (cachedModule !== undefined) {
|
|
96177
96182
|
/******/ return cachedModule.exports;
|
|
96178
96183
|
/******/ }
|
|
96179
|
-
/******/ // Check if module exists (development only)
|
|
96180
|
-
/******/ if (__webpack_modules__[moduleId] === undefined) {
|
|
96181
|
-
/******/ var e = new Error("Cannot find module '" + moduleId + "'");
|
|
96182
|
-
/******/ e.code = 'MODULE_NOT_FOUND';
|
|
96183
|
-
/******/ throw e;
|
|
96184
|
-
/******/ }
|
|
96185
96184
|
/******/ // Create a new module (and put it into the cache)
|
|
96186
96185
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
96187
96186
|
/******/ // no module.id needed
|
|
@@ -96190,6 +96189,12 @@ var lib = JSON5;
|
|
|
96190
96189
|
/******/ };
|
|
96191
96190
|
/******/
|
|
96192
96191
|
/******/ // Execute the module function
|
|
96192
|
+
/******/ if (!(moduleId in __webpack_modules__)) {
|
|
96193
|
+
/******/ delete __webpack_module_cache__[moduleId];
|
|
96194
|
+
/******/ var e = new Error("Cannot find module '" + moduleId + "'");
|
|
96195
|
+
/******/ e.code = 'MODULE_NOT_FOUND';
|
|
96196
|
+
/******/ throw e;
|
|
96197
|
+
/******/ }
|
|
96193
96198
|
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
96194
96199
|
/******/
|
|
96195
96200
|
/******/ // Return the exports of the module
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.115.
|
|
3
|
+
"version": "2.115.28",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://abaplint.org",
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@abaplint/core": "^2.115.
|
|
41
|
+
"@abaplint/core": "^2.115.28",
|
|
42
42
|
"@types/chai": "^4.3.20",
|
|
43
43
|
"@types/minimist": "^1.2.5",
|
|
44
44
|
"@types/mocha": "^10.0.10",
|
|
45
|
-
"@types/node": "^24.
|
|
45
|
+
"@types/node": "^24.11.0",
|
|
46
46
|
"@types/progress": "^2.0.7",
|
|
47
47
|
"chai": "^4.5.0",
|
|
48
48
|
"p-limit": "^3.1.0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"mocha": "^11.7.5",
|
|
56
56
|
"progress": "^2.0.3",
|
|
57
57
|
"typescript": "^5.9.3",
|
|
58
|
-
"webpack": "^5.105.
|
|
58
|
+
"webpack": "^5.105.4",
|
|
59
59
|
"webpack-cli": "^6.0.1",
|
|
60
60
|
"xml-js": "^1.6.11"
|
|
61
61
|
}
|