@abaplint/cli 2.113.131 → 2.113.133

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.
Files changed (2) hide show
  1. package/build/cli.js +216 -14
  2. package/package.json +5 -5
package/build/cli.js CHANGED
@@ -4850,7 +4850,8 @@ class CorrespondingBody extends combi_1.Expression {
4850
4850
  const mapping = (0, combi_1.seq)("MAPPING", (0, combi_1.plus)((0, combi_1.seq)(_1.ComponentName, "=", component_chain_1.ComponentChain)));
4851
4851
  const baseParen = (0, combi_1.seq)("BASE", (0, combi_1.tok)(tokens_1.WParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
4852
4852
  const discarding = (0, combi_1.ver)(version_1.Version.v751, "DISCARDING DUPLICATES");
4853
- return (0, combi_1.seq)((0, combi_1.optPrio)("DEEP"), (0, combi_1.optPrio)(baseParen), _1.Source, (0, combi_1.optPrio)(discarding), (0, combi_1.optPrio)(mapping), (0, combi_1.optPrio)("CHANGING CONTROL"), (0, combi_1.optPrio)((0, combi_1.seq)("EXCEPT", (0, combi_1.alt)((0, combi_1.plus)(_1.Field), "*"))));
4853
+ return (0, combi_1.seq)((0, combi_1.optPrio)("DEEP"), (0, combi_1.optPrio)(baseParen), _1.Source, (0, combi_1.optPrio)(discarding), (0, combi_1.optPrio)(mapping), (0, combi_1.optPrio)("CHANGING CONTROL"), (0, combi_1.optPrio)("MAPPING FROM ENTITY USING CONTROL"), // todo, version something?
4854
+ (0, combi_1.optPrio)((0, combi_1.seq)("EXCEPT", (0, combi_1.alt)((0, combi_1.plus)(_1.Field), "*"))));
4854
4855
  }
4855
4856
  }
4856
4857
  exports.CorrespondingBody = CorrespondingBody;
@@ -8486,7 +8487,7 @@ const integer_1 = __webpack_require__(/*! ./integer */ "./node_modules/@abaplint
8486
8487
  const sql_function_input_1 = __webpack_require__(/*! ./sql_function_input */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function_input.js");
8487
8488
  class SQLFunction extends combi_1.Expression {
8488
8489
  getRunnable() {
8489
- const castTypes = (0, combi_1.altPrio)((0, combi_1.seq)("CHAR", (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)))), (0, combi_1.seq)("DEC", (0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, ",", integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.seq)("NUMC", (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)))), "FLTP", "INT2", "INT8");
8490
+ const castTypes = (0, combi_1.altPrio)((0, combi_1.seq)("CHAR", (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)))), (0, combi_1.seq)("DEC", (0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, ",", integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.seq)("NUMC", (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)))), "FLTP", "INT2", "INT4", "INT8");
8490
8491
  const commaParam = (0, combi_1.seq)(",", sql_function_input_1.SQLFunctionInput);
8491
8492
  // note: the function names are not keywords, they are usually in lower case
8492
8493
  const abs = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^abs$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
@@ -9466,7 +9467,8 @@ class TypeStructure extends combi_1.Expression {
9466
9467
  const reportedEarly = (0, combi_1.seq)("REPORTED EARLY", _1.NamespaceSimpleName);
9467
9468
  const structure = (0, combi_1.seq)("STRUCTURE FOR", (0, combi_1.altPrio)(hier, evt, create, update, action, permissionsRequest, readResult));
9468
9469
  const response = (0, combi_1.seq)("RESPONSE FOR", (0, combi_1.altPrio)(failedEarly, mappedEarly, reportedEarly));
9469
- return (0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(structure, response));
9470
+ const request = (0, combi_1.seq)("REQUEST FOR CHANGE", _1.NamespaceSimpleName);
9471
+ return (0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(structure, response, request));
9470
9472
  }
9471
9473
  }
9472
9474
  exports.TypeStructure = TypeStructure;
@@ -11375,7 +11377,7 @@ class CommitEntities {
11375
11377
  const failed = (0, combi_1.seq)("FAILED", expressions_1.Target);
11376
11378
  const reported = (0, combi_1.seq)("REPORTED", expressions_1.Target);
11377
11379
  const responses = (0, combi_1.seq)("RESPONSES", failed, reported);
11378
- const s = (0, combi_1.seq)("COMMIT ENTITIES", (0, combi_1.optPrio)("IN SIMULATION MODE"), (0, combi_1.opt)(responses), (0, combi_1.opt)((0, combi_1.seq)("RESPONSE OF", expressions_1.NamespaceSimpleName, failed, reported)));
11380
+ const s = (0, combi_1.seq)("COMMIT ENTITIES", (0, combi_1.optPrio)("IN SIMULATION MODE"), (0, combi_1.opt)(responses), (0, combi_1.opt)((0, combi_1.seq)("RESPONSE OF", expressions_1.NamespaceSimpleName, (0, combi_1.per)(failed, reported))));
11379
11381
  return (0, combi_1.ver)(version_1.Version.v754, s);
11380
11382
  }
11381
11383
  }
@@ -14204,6 +14206,7 @@ __exportStar(__webpack_require__(/*! ./modify_entities */ "./node_modules/@abapl
14204
14206
  __exportStar(__webpack_require__(/*! ./read_entities */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/read_entities.js"), exports);
14205
14207
  __exportStar(__webpack_require__(/*! ./rollback_entities */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/rollback_entities.js"), exports);
14206
14208
  __exportStar(__webpack_require__(/*! ./summary */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/summary.js"), exports);
14209
+ __exportStar(__webpack_require__(/*! ./input */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/input.js"), exports);
14207
14210
  __exportStar(__webpack_require__(/*! ./on_change */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/on_change.js"), exports);
14208
14211
  __exportStar(__webpack_require__(/*! ./at_user_command */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/at_user_command.js"), exports);
14209
14212
  __exportStar(__webpack_require__(/*! ./position */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/position.js"), exports);
@@ -14485,6 +14488,28 @@ exports.Initialization = Initialization;
14485
14488
 
14486
14489
  /***/ }),
14487
14490
 
14491
+ /***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/input.js":
14492
+ /*!*************************************************************************************!*\
14493
+ !*** ./node_modules/@abaplint/core/build/src/abap/2_statements/statements/input.js ***!
14494
+ \*************************************************************************************/
14495
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14496
+
14497
+ "use strict";
14498
+
14499
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
14500
+ exports.Input = void 0;
14501
+ const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
14502
+ const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
14503
+ class Input {
14504
+ getMatcher() {
14505
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "INPUT");
14506
+ }
14507
+ }
14508
+ exports.Input = Input;
14509
+ //# sourceMappingURL=input.js.map
14510
+
14511
+ /***/ }),
14512
+
14488
14513
  /***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/insert_database.js":
14489
14514
  /*!***********************************************************************************************!*\
14490
14515
  !*** ./node_modules/@abaplint/core/build/src/abap/2_statements/statements/insert_database.js ***!
@@ -14955,20 +14980,18 @@ class MethodDef {
14955
14980
  const def = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("DEFAULT", (0, combi_1.altPrio)("FAIL", "IGNORE")));
14956
14981
  const parameters = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)("FINAL", def, expressions_1.Abstract)), (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefChanging), (0, combi_1.optPrio)(expressions_1.MethodDefReturning), (0, combi_1.optPrio)((0, combi_1.altPrio)(expressions_1.MethodDefRaising, expressions_1.MethodDefExceptions)));
14957
14982
  const testing = (0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), "FOR TESTING", (0, combi_1.optPrio)((0, combi_1.altPrio)(expressions_1.MethodDefRaising, expressions_1.MethodDefExceptions)));
14958
- // todo, this is only from version something
14959
- const tableFunction = (0, combi_1.seq)("TABLE FUNCTION", expressions_1.NamespaceSimpleName);
14960
- // todo, this is only from version something
14961
- const ddl = "DDL OBJECT OPTIONS CDS SESSION CLIENT REQUIRED";
14962
14983
  const result = (0, combi_1.seq)("RESULT", expressions_1.MethodParamName);
14963
14984
  const link = (0, combi_1.seq)("LINK", expressions_1.MethodParamName);
14964
14985
  const full = (0, combi_1.seq)("FULL", expressions_1.MethodParamName);
14965
14986
  const modify = (0, combi_1.alt)((0, combi_1.seq)("FOR ACTION", expressions_1.TypeName, (0, combi_1.optPrio)(result)), (0, combi_1.seq)("FOR CREATE", (0, combi_1.alt)(expressions_1.TypeName, expressions_1.EntityAssociation)), (0, combi_1.seq)("FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("FOR UPDATE", expressions_1.TypeName));
14966
14987
  const forRead = (0, combi_1.seq)("FOR READ", (0, combi_1.alt)(expressions_1.TypeName, expressions_1.EntityAssociation), (0, combi_1.optPrio)(full), result, (0, combi_1.optPrio)(link));
14967
14988
  const forfunction = (0, combi_1.seq)("FOR FUNCTION", expressions_1.TypeName, result);
14968
- const behavior = (0, combi_1.altPrio)((0, combi_1.seq)("VALIDATE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("MODIFY IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("READ IMPORTING", expressions_1.MethodParamName, (0, combi_1.altPrio)(forRead, forfunction)), (0, combi_1.seq)("FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.NamespaceSimpleName, "FOR", expressions_1.NamespaceSimpleName, result), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR CREATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR UPDATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR READ", expressions_1.TypeName, result), (0, combi_1.seq)((0, combi_1.alt)("BEHAVIOR", "LOCK"), "IMPORTING", expressions_1.MethodParamName, "FOR LOCK", expressions_1.TypeName), (0, combi_1.seq)("DETERMINE", (0, combi_1.alt)("ON MODIFY", "ON SAVE"), "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("GLOBAL AUTHORIZATION IMPORTING REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE AUTHORIZATION IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result));
14989
+ const behavior = (0, combi_1.altPrio)("DDL OBJECT OPTIONS CDS SESSION CLIENT REQUIRED", // todo, this is only from version something
14990
+ (0, combi_1.seq)("TABLE FUNCTION", expressions_1.NamespaceSimpleName), // todo, this is only from version something
14991
+ (0, combi_1.seq)("VALIDATE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("MODIFY IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("PRECHECK IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("READ IMPORTING", expressions_1.MethodParamName, (0, combi_1.altPrio)(forRead, forfunction)), (0, combi_1.seq)("FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.NamespaceSimpleName, "FOR", expressions_1.NamespaceSimpleName, result), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR CREATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR UPDATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR READ", expressions_1.TypeName, result), (0, combi_1.seq)((0, combi_1.alt)("BEHAVIOR", "LOCK"), "IMPORTING", expressions_1.MethodParamName, "FOR LOCK", expressions_1.TypeName), (0, combi_1.seq)("DETERMINE", (0, combi_1.alt)("ON MODIFY", "ON SAVE"), "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("GLOBAL AUTHORIZATION IMPORTING REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE AUTHORIZATION IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result));
14969
14992
  // todo, this is only from version something
14970
14993
  const amdp = (0, combi_1.seq)("AMDP OPTIONS", (0, combi_1.optPrio)("READ-ONLY"), "CDS SESSION CLIENT CURRENT", (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefRaising));
14971
- const ret = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), (0, combi_1.optPrio)(def), expressions_1.EventHandler), parameters, testing, (0, combi_1.seq)("FOR", (0, combi_1.alt)(tableFunction, ddl, behavior)), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
14994
+ const ret = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), (0, combi_1.optPrio)(def), expressions_1.EventHandler), parameters, testing, (0, combi_1.seq)("FOR", behavior), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
14972
14995
  return ret;
14973
14996
  }
14974
14997
  }
@@ -24290,6 +24313,9 @@ class BasicTypes {
24290
24313
  if (found && this.isOccurs(node)) {
24291
24314
  found = new Types.TableType(found, { withHeader: text.includes("WITH HEADER LINE"), keyType: Types.TableKeyType.default }, qualifiedName);
24292
24315
  }
24316
+ else if (text.endsWith(" WITH HEADER LINE") && found instanceof Types.TableType) {
24317
+ found = new Types.TableType(found.getRowType(), { withHeader: true, keyType: Types.TableKeyType.default }, qualifiedName);
24318
+ }
24293
24319
  }
24294
24320
  else if (text.startsWith("TYPE LINE OF ")) {
24295
24321
  const sub = node.findFirstExpression(Expressions.TypeName);
@@ -27853,10 +27879,12 @@ class Select {
27853
27879
  var _a, _b;
27854
27880
  let expr = undefined;
27855
27881
  const ret = [];
27856
- expr = node.findFirstExpression(Expressions.SQLFieldList);
27857
- if (expr === undefined) {
27882
+ if (node.get() instanceof Expressions.SelectLoop) {
27858
27883
  expr = node.findFirstExpression(Expressions.SQLFieldListLoop);
27859
27884
  }
27885
+ else {
27886
+ expr = node.findFirstExpression(Expressions.SQLFieldList);
27887
+ }
27860
27888
  if (((_a = expr === null || expr === void 0 ? void 0 : expr.getFirstChild()) === null || _a === void 0 ? void 0 : _a.get()) instanceof Expressions.Dynamic) {
27861
27889
  dynamic_1.Dynamic.runSyntax(expr.getFirstChild(), input);
27862
27890
  }
@@ -33349,7 +33377,9 @@ class ReadTable {
33349
33377
  }
33350
33378
  const type = source_1.Source.runSyntax(s, input);
33351
33379
  if (s === afterKey) {
33352
- if (type instanceof basic_1.StringType || type instanceof basic_1.TableType || type instanceof basic_1.ObjectReferenceType) {
33380
+ if (type instanceof basic_1.StringType
33381
+ || (type instanceof basic_1.TableType && type.isWithHeader() === false)
33382
+ || type instanceof basic_1.ObjectReferenceType) {
33353
33383
  const message = "Key cannot be string or table or reference";
33354
33384
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, s.getFirstToken(), message));
33355
33385
  return;
@@ -47101,6 +47131,37 @@ exports.BusinessCatalogAppAssignment = BusinessCatalogAppAssignment;
47101
47131
 
47102
47132
  /***/ }),
47103
47133
 
47134
+ /***/ "./node_modules/@abaplint/core/build/src/objects/business_configuration_maintenance_object.js":
47135
+ /*!****************************************************************************************************!*\
47136
+ !*** ./node_modules/@abaplint/core/build/src/objects/business_configuration_maintenance_object.js ***!
47137
+ \****************************************************************************************************/
47138
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
47139
+
47140
+ "use strict";
47141
+
47142
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
47143
+ exports.BusinessConfigurationMaintenanceObject = void 0;
47144
+ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
47145
+ class BusinessConfigurationMaintenanceObject extends _abstract_object_1.AbstractObject {
47146
+ getType() {
47147
+ return "SMBC";
47148
+ }
47149
+ getAllowedNaming() {
47150
+ return {
47151
+ maxLength: 60, // todo
47152
+ allowNamespace: true,
47153
+ };
47154
+ }
47155
+ getDescription() {
47156
+ // todo
47157
+ return undefined;
47158
+ }
47159
+ }
47160
+ exports.BusinessConfigurationMaintenanceObject = BusinessConfigurationMaintenanceObject;
47161
+ //# sourceMappingURL=business_configuration_maintenance_object.js.map
47162
+
47163
+ /***/ }),
47164
+
47104
47165
  /***/ "./node_modules/@abaplint/core/build/src/objects/business_configuration_set.js":
47105
47166
  /*!*************************************************************************************!*\
47106
47167
  !*** ./node_modules/@abaplint/core/build/src/objects/business_configuration_set.js ***!
@@ -47715,6 +47776,37 @@ exports.ConceptsOfPackage = ConceptsOfPackage;
47715
47776
 
47716
47777
  /***/ }),
47717
47778
 
47779
+ /***/ "./node_modules/@abaplint/core/build/src/objects/custom_data_browser_object.js":
47780
+ /*!*************************************************************************************!*\
47781
+ !*** ./node_modules/@abaplint/core/build/src/objects/custom_data_browser_object.js ***!
47782
+ \*************************************************************************************/
47783
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
47784
+
47785
+ "use strict";
47786
+
47787
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
47788
+ exports.CustomDataBrowserObject = void 0;
47789
+ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
47790
+ class CustomDataBrowserObject extends _abstract_object_1.AbstractObject {
47791
+ getType() {
47792
+ return "CDBO";
47793
+ }
47794
+ getAllowedNaming() {
47795
+ return {
47796
+ maxLength: 32,
47797
+ allowNamespace: true,
47798
+ };
47799
+ }
47800
+ getDescription() {
47801
+ // todo
47802
+ return undefined;
47803
+ }
47804
+ }
47805
+ exports.CustomDataBrowserObject = CustomDataBrowserObject;
47806
+ //# sourceMappingURL=custom_data_browser_object.js.map
47807
+
47808
+ /***/ }),
47809
+
47718
47810
  /***/ "./node_modules/@abaplint/core/build/src/objects/customer_enhancement_project.js":
47719
47811
  /*!***************************************************************************************!*\
47720
47812
  !*** ./node_modules/@abaplint/core/build/src/objects/customer_enhancement_project.js ***!
@@ -49118,6 +49210,37 @@ exports.GatewayModelMetadata = GatewayModelMetadata;
49118
49210
 
49119
49211
  /***/ }),
49120
49212
 
49213
+ /***/ "./node_modules/@abaplint/core/build/src/objects/gateway_odata_group_and_assignment.js":
49214
+ /*!*********************************************************************************************!*\
49215
+ !*** ./node_modules/@abaplint/core/build/src/objects/gateway_odata_group_and_assignment.js ***!
49216
+ \*********************************************************************************************/
49217
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
49218
+
49219
+ "use strict";
49220
+
49221
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
49222
+ exports.GatewayODataGroupAndAssignment = void 0;
49223
+ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
49224
+ class GatewayODataGroupAndAssignment extends _abstract_object_1.AbstractObject {
49225
+ getType() {
49226
+ return "G4BA";
49227
+ }
49228
+ getAllowedNaming() {
49229
+ return {
49230
+ maxLength: 32,
49231
+ allowNamespace: true,
49232
+ };
49233
+ }
49234
+ getDescription() {
49235
+ // todo
49236
+ return undefined;
49237
+ }
49238
+ }
49239
+ exports.GatewayODataGroupAndAssignment = GatewayODataGroupAndAssignment;
49240
+ //# sourceMappingURL=gateway_odata_group_and_assignment.js.map
49241
+
49242
+ /***/ }),
49243
+
49121
49244
  /***/ "./node_modules/@abaplint/core/build/src/objects/gateway_project.js":
49122
49245
  /*!**************************************************************************!*\
49123
49246
  !*** ./node_modules/@abaplint/core/build/src/objects/gateway_project.js ***!
@@ -49730,6 +49853,7 @@ __exportStar(__webpack_require__(/*! ./bsp_application */ "./node_modules/@abapl
49730
49853
  __exportStar(__webpack_require__(/*! ./business_add_in_implementation */ "./node_modules/@abaplint/core/build/src/objects/business_add_in_implementation.js"), exports);
49731
49854
  __exportStar(__webpack_require__(/*! ./business_catalog_app_assignment */ "./node_modules/@abaplint/core/build/src/objects/business_catalog_app_assignment.js"), exports);
49732
49855
  __exportStar(__webpack_require__(/*! ./business_catalog */ "./node_modules/@abaplint/core/build/src/objects/business_catalog.js"), exports);
49856
+ __exportStar(__webpack_require__(/*! ./business_configuration_maintenance_object */ "./node_modules/@abaplint/core/build/src/objects/business_configuration_maintenance_object.js"), exports);
49733
49857
  __exportStar(__webpack_require__(/*! ./business_configuration_set */ "./node_modules/@abaplint/core/build/src/objects/business_configuration_set.js"), exports);
49734
49858
  __exportStar(__webpack_require__(/*! ./business_function_assignment */ "./node_modules/@abaplint/core/build/src/objects/business_function_assignment.js"), exports);
49735
49859
  __exportStar(__webpack_require__(/*! ./business_function_set_assignment */ "./node_modules/@abaplint/core/build/src/objects/business_function_set_assignment.js"), exports);
@@ -49746,6 +49870,7 @@ __exportStar(__webpack_require__(/*! ./communication_scenario */ "./node_modules
49746
49870
  __exportStar(__webpack_require__(/*! ./composite_enhancement_implementation */ "./node_modules/@abaplint/core/build/src/objects/composite_enhancement_implementation.js"), exports);
49747
49871
  __exportStar(__webpack_require__(/*! ./composite_enhancement_spot */ "./node_modules/@abaplint/core/build/src/objects/composite_enhancement_spot.js"), exports);
49748
49872
  __exportStar(__webpack_require__(/*! ./concepts_of_package */ "./node_modules/@abaplint/core/build/src/objects/concepts_of_package.js"), exports);
49873
+ __exportStar(__webpack_require__(/*! ./custom_data_browser_object */ "./node_modules/@abaplint/core/build/src/objects/custom_data_browser_object.js"), exports);
49749
49874
  __exportStar(__webpack_require__(/*! ./customer_enhancement_project */ "./node_modules/@abaplint/core/build/src/objects/customer_enhancement_project.js"), exports);
49750
49875
  __exportStar(__webpack_require__(/*! ./customizing_attributes */ "./node_modules/@abaplint/core/build/src/objects/customizing_attributes.js"), exports);
49751
49876
  __exportStar(__webpack_require__(/*! ./customizing_img_activity */ "./node_modules/@abaplint/core/build/src/objects/customizing_img_activity.js"), exports);
@@ -49773,6 +49898,7 @@ __exportStar(__webpack_require__(/*! ./format_type */ "./node_modules/@abaplint/
49773
49898
  __exportStar(__webpack_require__(/*! ./function_group */ "./node_modules/@abaplint/core/build/src/objects/function_group.js"), exports);
49774
49899
  __exportStar(__webpack_require__(/*! ./gateway_model_metadata */ "./node_modules/@abaplint/core/build/src/objects/gateway_model_metadata.js"), exports);
49775
49900
  __exportStar(__webpack_require__(/*! ./gateway_model */ "./node_modules/@abaplint/core/build/src/objects/gateway_model.js"), exports);
49901
+ __exportStar(__webpack_require__(/*! ./gateway_odata_group_and_assignment */ "./node_modules/@abaplint/core/build/src/objects/gateway_odata_group_and_assignment.js"), exports);
49776
49902
  __exportStar(__webpack_require__(/*! ./gateway_project */ "./node_modules/@abaplint/core/build/src/objects/gateway_project.js"), exports);
49777
49903
  __exportStar(__webpack_require__(/*! ./gateway_service_groups_metadata */ "./node_modules/@abaplint/core/build/src/objects/gateway_service_groups_metadata.js"), exports);
49778
49904
  __exportStar(__webpack_require__(/*! ./gateway_service */ "./node_modules/@abaplint/core/build/src/objects/gateway_service.js"), exports);
@@ -49793,6 +49919,7 @@ __exportStar(__webpack_require__(/*! ./inbound_service */ "./node_modules/@abapl
49793
49919
  __exportStar(__webpack_require__(/*! ./info_area */ "./node_modules/@abaplint/core/build/src/objects/info_area.js"), exports);
49794
49920
  __exportStar(__webpack_require__(/*! ./info_object */ "./node_modules/@abaplint/core/build/src/objects/info_object.js"), exports);
49795
49921
  __exportStar(__webpack_require__(/*! ./interface */ "./node_modules/@abaplint/core/build/src/objects/interface.js"), exports);
49922
+ __exportStar(__webpack_require__(/*! ./knowledge_transfer_document */ "./node_modules/@abaplint/core/build/src/objects/knowledge_transfer_document.js"), exports);
49796
49923
  __exportStar(__webpack_require__(/*! ./lock_object */ "./node_modules/@abaplint/core/build/src/objects/lock_object.js"), exports);
49797
49924
  __exportStar(__webpack_require__(/*! ./maintenance_and_transport_object */ "./node_modules/@abaplint/core/build/src/objects/maintenance_and_transport_object.js"), exports);
49798
49925
  __exportStar(__webpack_require__(/*! ./message_class */ "./node_modules/@abaplint/core/build/src/objects/message_class.js"), exports);
@@ -49828,6 +49955,7 @@ __exportStar(__webpack_require__(/*! ./object_characteristic */ "./node_modules/
49828
49955
  __exportStar(__webpack_require__(/*! ./outbound_service */ "./node_modules/@abaplint/core/build/src/objects/outbound_service.js"), exports);
49829
49956
  __exportStar(__webpack_require__(/*! ./package_interface */ "./node_modules/@abaplint/core/build/src/objects/package_interface.js"), exports);
49830
49957
  __exportStar(__webpack_require__(/*! ./package */ "./node_modules/@abaplint/core/build/src/objects/package.js"), exports);
49958
+ __exportStar(__webpack_require__(/*! ./page_format */ "./node_modules/@abaplint/core/build/src/objects/page_format.js"), exports);
49831
49959
  __exportStar(__webpack_require__(/*! ./parameter */ "./node_modules/@abaplint/core/build/src/objects/parameter.js"), exports);
49832
49960
  __exportStar(__webpack_require__(/*! ./personalization_object */ "./node_modules/@abaplint/core/build/src/objects/personalization_object.js"), exports);
49833
49961
  __exportStar(__webpack_require__(/*! ./program */ "./node_modules/@abaplint/core/build/src/objects/program.js"), exports);
@@ -50020,6 +50148,37 @@ exports.Interface = Interface;
50020
50148
 
50021
50149
  /***/ }),
50022
50150
 
50151
+ /***/ "./node_modules/@abaplint/core/build/src/objects/knowledge_transfer_document.js":
50152
+ /*!**************************************************************************************!*\
50153
+ !*** ./node_modules/@abaplint/core/build/src/objects/knowledge_transfer_document.js ***!
50154
+ \**************************************************************************************/
50155
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
50156
+
50157
+ "use strict";
50158
+
50159
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
50160
+ exports.KnowledgeTransferDocument = void 0;
50161
+ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
50162
+ class KnowledgeTransferDocument extends _abstract_object_1.AbstractObject {
50163
+ getType() {
50164
+ return "SKTD";
50165
+ }
50166
+ getAllowedNaming() {
50167
+ return {
50168
+ maxLength: 60, // todo
50169
+ allowNamespace: true,
50170
+ };
50171
+ }
50172
+ getDescription() {
50173
+ // todo
50174
+ return undefined;
50175
+ }
50176
+ }
50177
+ exports.KnowledgeTransferDocument = KnowledgeTransferDocument;
50178
+ //# sourceMappingURL=knowledge_transfer_document.js.map
50179
+
50180
+ /***/ }),
50181
+
50023
50182
  /***/ "./node_modules/@abaplint/core/build/src/objects/lock_object.js":
50024
50183
  /*!**********************************************************************!*\
50025
50184
  !*** ./node_modules/@abaplint/core/build/src/objects/lock_object.js ***!
@@ -51360,6 +51519,37 @@ exports.PackageInterface = PackageInterface;
51360
51519
 
51361
51520
  /***/ }),
51362
51521
 
51522
+ /***/ "./node_modules/@abaplint/core/build/src/objects/page_format.js":
51523
+ /*!**********************************************************************!*\
51524
+ !*** ./node_modules/@abaplint/core/build/src/objects/page_format.js ***!
51525
+ \**********************************************************************/
51526
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
51527
+
51528
+ "use strict";
51529
+
51530
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
51531
+ exports.PageFormat = void 0;
51532
+ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
51533
+ class PageFormat extends _abstract_object_1.AbstractObject {
51534
+ getType() {
51535
+ return "SPPF";
51536
+ }
51537
+ getAllowedNaming() {
51538
+ return {
51539
+ maxLength: 30,
51540
+ allowNamespace: true,
51541
+ };
51542
+ }
51543
+ getDescription() {
51544
+ // todo
51545
+ return undefined;
51546
+ }
51547
+ }
51548
+ exports.PageFormat = PageFormat;
51549
+ //# sourceMappingURL=page_format.js.map
51550
+
51551
+ /***/ }),
51552
+
51363
51553
  /***/ "./node_modules/@abaplint/core/build/src/objects/parameter.js":
51364
51554
  /*!********************************************************************!*\
51365
51555
  !*** ./node_modules/@abaplint/core/build/src/objects/parameter.js ***!
@@ -54354,7 +54544,7 @@ class Registry {
54354
54544
  }
54355
54545
  static abaplintVersion() {
54356
54546
  // magic, see build script "version.sh"
54357
- return "2.113.131";
54547
+ return "2.113.133";
54358
54548
  }
54359
54549
  getDDICReferences() {
54360
54550
  return this.ddicReferences;
@@ -67326,6 +67516,7 @@ ENDIF.
67326
67516
  return issues;
67327
67517
  }
67328
67518
  analyze(file, cond) {
67519
+ var _a, _b;
67329
67520
  const issues = [];
67330
67521
  let comparator = "";
67331
67522
  let found = false;
@@ -67351,6 +67542,17 @@ ENDIF.
67351
67542
  found = true; // dont report for the simple case that contains quick fixes
67352
67543
  }
67353
67544
  }
67545
+ else if (c instanceof nodes_1.ExpressionNode
67546
+ && c.get() instanceof Expressions.Compare
67547
+ && ((_a = c.getFirstChild()) === null || _a === void 0 ? void 0 : _a.get()) instanceof Expressions.Source
67548
+ && c.getChildren().length === 3) {
67549
+ const concat = (_b = c.getFirstChild()) === null || _b === void 0 ? void 0 : _b.concatTokens();
67550
+ if ((concat === null || concat === void 0 ? void 0 : concat.startsWith("(")) && concat.endsWith(")")) {
67551
+ const message = "Parentheses can be removed";
67552
+ const issue = issue_1.Issue.atToken(file, c.getFirstToken(), message, this.getMetadata().key, this.conf.severity);
67553
+ issues.push(issue);
67554
+ }
67555
+ }
67354
67556
  if (comparator === "") {
67355
67557
  comparator = current;
67356
67558
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.113.131",
3
+ "version": "2.113.133",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,21 +38,21 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.113.131",
41
+ "@abaplint/core": "^2.113.133",
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.0.3",
45
+ "@types/node": "^24.0.7",
46
46
  "@types/progress": "^2.0.7",
47
47
  "chai": "^4.5.0",
48
48
  "p-limit": "^3.1.0",
49
49
  "chalk": "^5.4.1",
50
- "eslint": "^9.29.0",
50
+ "eslint": "^9.30.0",
51
51
  "glob": "^11.0.3",
52
52
  "json5": "^2.2.3",
53
53
  "memfs": "^4.17.2",
54
54
  "minimist": "^1.2.8",
55
- "mocha": "^11.6.0",
55
+ "mocha": "^11.7.1",
56
56
  "progress": "^2.0.3",
57
57
  "typescript": "^5.8.3",
58
58
  "webpack": "^5.99.9",