@abaplint/cli 2.115.14 → 2.115.16

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 +206 -40
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -23308,8 +23308,25 @@ class Procedural {
23308
23308
  }
23309
23309
  return undefined;
23310
23310
  }
23311
+ findFunctionGroupScope(fg) {
23312
+ var _a, _b, _c;
23313
+ for (const module of fg.getModules()) {
23314
+ if (module.isGlobalParameters() === false) {
23315
+ continue;
23316
+ }
23317
+ // console.dir(fg.getSequencedFiles());
23318
+ const fmFile = fg.getSequencedFiles().find((f) => { return f.getFilename().endsWith(".fugr." + module.getName().toLowerCase().replace(/\//g, "#") + ".abap"); });
23319
+ if (fmFile === undefined) {
23320
+ continue;
23321
+ }
23322
+ const nameToken = (_c = (_b = (_a = fmFile.getStructure()) === null || _a === void 0 ? void 0 : _a.findFirstStatement(Statements.FunctionModule)) === null || _b === void 0 ? void 0 : _b.findFirstExpression(Expressions.Field)) === null || _c === void 0 ? void 0 : _c.getFirstToken();
23323
+ if (nameToken === undefined) {
23324
+ continue;
23325
+ }
23326
+ this.addFunctionScope(module, nameToken, fmFile.getFilename(), true);
23327
+ }
23328
+ }
23311
23329
  findFunctionScope(obj, node, filename) {
23312
- var _a, _b, _c, _d, _e;
23313
23330
  if (!(obj instanceof objects_1.FunctionGroup)) {
23314
23331
  throw new Error("findFunctionScope, expected function group input");
23315
23332
  }
@@ -23320,6 +23337,13 @@ class Procedural {
23320
23337
  if (definition === undefined) {
23321
23338
  throw new Error("Function module definition \"" + name + "\" not found");
23322
23339
  }
23340
+ if (definition.isGlobalParameters() === true) {
23341
+ return; // already added at global level
23342
+ }
23343
+ this.addFunctionScope(definition, nameToken, filename);
23344
+ }
23345
+ addFunctionScope(definition, nameToken, filename, ignoreIfAlreadyExists = false) {
23346
+ var _a, _b, _c, _d, _e;
23323
23347
  const ddic = new ddic_1.DDIC(this.reg);
23324
23348
  const allNames = new Set();
23325
23349
  for (const param of definition.getParameters()) {
@@ -23405,7 +23429,15 @@ class Procedural {
23405
23429
  }
23406
23430
  else {
23407
23431
  const type = new _typed_identifier_1.TypedIdentifier(nameToken, filename, found);
23408
- this.scope.addNamedIdentifier(param.name, type);
23432
+ if (ignoreIfAlreadyExists === true) {
23433
+ const exists = this.scope.findVariable(param.name);
23434
+ if (exists === undefined) {
23435
+ this.scope.addNamedIdentifier(param.name, type);
23436
+ }
23437
+ }
23438
+ else {
23439
+ this.scope.addNamedIdentifier(param.name, type);
23440
+ }
23409
23441
  allNames.add(param.name.toUpperCase());
23410
23442
  }
23411
23443
  }
@@ -23729,6 +23761,22 @@ class TypeUtils {
23729
23761
  // todo
23730
23762
  return true;
23731
23763
  }
23764
+ isCompareable(source1, source2, node1, node2) {
23765
+ /*
23766
+ console.dir(source1);
23767
+ console.dir(source2);
23768
+ */
23769
+ if (source1 === undefined || source2 === undefined) {
23770
+ return true;
23771
+ }
23772
+ if (source1 instanceof basic_1.HexType && this.isCalculated(node1) && source2 instanceof basic_1.IntegerType) {
23773
+ return false;
23774
+ }
23775
+ if (source2 instanceof basic_1.HexType && this.isCalculated(node2) && source1 instanceof basic_1.IntegerType) {
23776
+ return false;
23777
+ }
23778
+ return true;
23779
+ }
23732
23780
  structureContainsString(structure) {
23733
23781
  for (const c of structure.getComponents()) {
23734
23782
  if (c.type instanceof basic_1.StringType) {
@@ -23758,6 +23806,13 @@ class TypeUtils {
23758
23806
  || node.findFirstExpression(Expressions.ArithOperator) !== undefined;
23759
23807
  return calculated;
23760
23808
  }
23809
+ isAssignableNew(source, target, node) {
23810
+ const calculated = (node === null || node === void 0 ? void 0 : node.findFirstExpression(Expressions.ArithOperator)) !== undefined;
23811
+ if (calculated && source instanceof basic_1.HexType && target instanceof basic_1.IntegerType) {
23812
+ return false;
23813
+ }
23814
+ return this.isAssignable(source, target);
23815
+ }
23761
23816
  isAssignableStrict(source, target, node) {
23762
23817
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
23763
23818
  const calculated = node ? this.isCalculated(node) : false;
@@ -25357,10 +25412,14 @@ const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ ".
25357
25412
  const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source.js");
25358
25413
  const method_call_chain_1 = __webpack_require__(/*! ./method_call_chain */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/method_call_chain.js");
25359
25414
  const source_field_symbol_1 = __webpack_require__(/*! ./source_field_symbol */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source_field_symbol.js");
25415
+ const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
25416
+ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
25360
25417
  class Compare {
25361
25418
  static runSyntax(node, input) {
25362
- for (const t of node.findDirectExpressions(Expressions.Source)) {
25363
- source_1.Source.runSyntax(t, input);
25419
+ const sourceTypes = [];
25420
+ const sources = node.findDirectExpressions(Expressions.Source);
25421
+ for (const t of sources) {
25422
+ sourceTypes.push(source_1.Source.runSyntax(t, input));
25364
25423
  }
25365
25424
  for (const t of node.findDirectExpressions(Expressions.SourceFieldSymbolChain)) {
25366
25425
  source_field_symbol_1.SourceFieldSymbol.runSyntax(t, input);
@@ -25368,6 +25427,12 @@ class Compare {
25368
25427
  for (const t of node.findDirectExpressions(Expressions.MethodCallChain)) {
25369
25428
  method_call_chain_1.MethodCallChain.runSyntax(t, input);
25370
25429
  }
25430
+ if (node.findDirectExpression(Expressions.CompareOperator)
25431
+ && new _type_utils_1.TypeUtils(input.scope).isCompareable(sourceTypes[0], sourceTypes[1], sources[0], sources[1]) === false
25432
+ && sourceTypes.length === 2) {
25433
+ const message = "Incompatible types for comparison";
25434
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
25435
+ }
25371
25436
  }
25372
25437
  }
25373
25438
  exports.Compare = Compare;
@@ -29150,53 +29215,84 @@ exports.SQLSource = SQLSource;
29150
29215
 
29151
29216
  Object.defineProperty(exports, "__esModule", ({ value: true }));
29152
29217
  exports.StringTemplate = void 0;
29218
+ const nodes_1 = __webpack_require__(/*! ../../nodes */ "./node_modules/@abaplint/core/build/src/abap/nodes/index.js");
29153
29219
  const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
29154
29220
  const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
29155
29221
  const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source.js");
29156
29222
  const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
29157
29223
  const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
29224
+ const Tokens = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
29158
29225
  class StringTemplate {
29159
29226
  static runSyntax(node, input) {
29160
29227
  const typeUtils = new _type_utils_1.TypeUtils(input.scope);
29161
29228
  const ret = basic_1.StringType.get();
29162
- for (const templateSource of node.findAllExpressions(Expressions.StringTemplateSource)) {
29163
- const s = templateSource.findDirectExpression(Expressions.Source);
29164
- const type = source_1.Source.runSyntax(s, input, ret);
29165
- if (type === undefined) {
29166
- const message = "No target type determined";
29167
- input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
29168
- return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
29169
- }
29170
- else if ((typeUtils.isCharLike(type) === false
29171
- && typeUtils.isHexLike(type) === false
29172
- && !(type instanceof basic_1.UTCLongType))
29173
- || type instanceof basic_1.StructureType) {
29174
- const message = "String template, not character like, " + type.constructor.name;
29175
- input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
29176
- return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
29229
+ for (const child of node.getChildren()) {
29230
+ if (child instanceof nodes_1.ExpressionNode && child.get() instanceof Expressions.StringTemplateSource) {
29231
+ const s = child.findDirectExpression(Expressions.Source);
29232
+ const type = source_1.Source.runSyntax(s, input, ret);
29233
+ if (type === undefined) {
29234
+ const message = "No target type determined";
29235
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
29236
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
29237
+ }
29238
+ else if ((typeUtils.isCharLike(type) === false
29239
+ && typeUtils.isHexLike(type) === false
29240
+ && !(type instanceof basic_1.UTCLongType))
29241
+ || type instanceof basic_1.StructureType) {
29242
+ const message = "String template, not character like, " + type.constructor.name;
29243
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
29244
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
29245
+ }
29246
+ const format = child.findDirectExpression(Expressions.StringTemplateFormatting);
29247
+ const formatConcat = format === null || format === void 0 ? void 0 : format.concatTokens();
29248
+ for (const formatSource of (format === null || format === void 0 ? void 0 : format.findAllExpressions(Expressions.Source)) || []) {
29249
+ source_1.Source.runSyntax(formatSource, input);
29250
+ }
29251
+ if (format
29252
+ && (formatConcat === null || formatConcat === void 0 ? void 0 : formatConcat.includes("ALPHA = "))
29253
+ && !(type instanceof basic_1.UnknownType)
29254
+ && !(type instanceof basic_1.VoidType)
29255
+ && !(type instanceof basic_1.StringType)
29256
+ && !(type instanceof basic_1.CLikeType)
29257
+ && !(type instanceof basic_1.CharacterType)
29258
+ && !(type instanceof basic_1.NumericGenericType)
29259
+ && !(type instanceof basic_1.NumericType)
29260
+ && !(type instanceof basic_1.AnyType)) {
29261
+ const message = `Cannot apply ALPHA to this type (${type.constructor.name})`;
29262
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, format.getFirstToken(), message));
29263
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
29264
+ }
29177
29265
  }
29178
- const format = templateSource.findDirectExpression(Expressions.StringTemplateFormatting);
29179
- const formatConcat = format === null || format === void 0 ? void 0 : format.concatTokens();
29180
- for (const formatSource of (format === null || format === void 0 ? void 0 : format.findAllExpressions(Expressions.Source)) || []) {
29181
- source_1.Source.runSyntax(formatSource, input);
29182
- }
29183
- if (format
29184
- && (formatConcat === null || formatConcat === void 0 ? void 0 : formatConcat.includes("ALPHA = "))
29185
- && !(type instanceof basic_1.UnknownType)
29186
- && !(type instanceof basic_1.VoidType)
29187
- && !(type instanceof basic_1.StringType)
29188
- && !(type instanceof basic_1.CLikeType)
29189
- && !(type instanceof basic_1.CharacterType)
29190
- && !(type instanceof basic_1.NumericGenericType)
29191
- && !(type instanceof basic_1.NumericType)
29192
- && !(type instanceof basic_1.AnyType)) {
29193
- const message = `Cannot apply ALPHA to this type (${type.constructor.name})`;
29194
- input.issues.push((0, _syntax_input_1.syntaxIssue)(input, format.getFirstToken(), message));
29195
- return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
29266
+ else if (child instanceof nodes_1.TokenNode) {
29267
+ const token = child.get();
29268
+ if (token instanceof Tokens.StringTemplate
29269
+ || token instanceof Tokens.StringTemplateBegin
29270
+ || token instanceof Tokens.StringTemplateMiddle
29271
+ || token instanceof Tokens.StringTemplateEnd) {
29272
+ const issue = this.validateEscapeSequences(token.getStr(), input, child);
29273
+ if (issue) {
29274
+ input.issues.push(issue);
29275
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
29276
+ }
29277
+ }
29196
29278
  }
29197
29279
  }
29198
29280
  return ret;
29199
29281
  }
29282
+ static validateEscapeSequences(str, input, node) {
29283
+ // Valid escape sequences in ABAP string templates: \|, \{, \}, \\, \n, \r, \t
29284
+ const validEscapes = new Set(["\\|", "\\{", "\\}", "\\\\", "\\n", "\\r", "\\t"]);
29285
+ for (let i = 0; i < str.length; i++) {
29286
+ if (str[i] === "\\") {
29287
+ const escape = str.substring(i, i + 2);
29288
+ if (!validEscapes.has(escape)) {
29289
+ return (0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), `Invalid escape sequence "${escape}" in string template`);
29290
+ }
29291
+ i++; // skip the next character as it's part of the escape sequence
29292
+ }
29293
+ }
29294
+ return undefined;
29295
+ }
29200
29296
  }
29201
29297
  exports.StringTemplate = StringTemplate;
29202
29298
  //# sourceMappingURL=string_template.js.map
@@ -33574,7 +33670,7 @@ class Move {
33574
33670
  return;
33575
33671
  }
33576
33672
  }
33577
- else if (new _type_utils_1.TypeUtils(input.scope).isAssignable(sourceType, targetType) === false) {
33673
+ else if (new _type_utils_1.TypeUtils(input.scope).isAssignableNew(sourceType, targetType, source) === false) {
33578
33674
  const message = "Incompatible types";
33579
33675
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
33580
33676
  return;
@@ -36534,6 +36630,9 @@ class SyntaxLogic {
36534
36630
  stype = _scope_type_1.ScopeType.FunctionGroup;
36535
36631
  }
36536
36632
  this.scope.push(stype, this.object.getName(), new position_1.Position(1, 1), main.getFilename());
36633
+ if (this.object instanceof objects_1.FunctionGroup) {
36634
+ this.helpers.proc.findFunctionGroupScope(this.object);
36635
+ }
36537
36636
  }
36538
36637
  }
36539
36638
  else if (this.object instanceof objects_1.TypePool) {
@@ -40230,6 +40329,9 @@ class FunctionModuleDefinition {
40230
40329
  getName() {
40231
40330
  return this.name;
40232
40331
  }
40332
+ isGlobalParameters() {
40333
+ return this.globalParameters;
40334
+ }
40233
40335
  ///////////////
40234
40336
  parse(data) {
40235
40337
  if (data.FUNCNAME === undefined) {
@@ -40238,6 +40340,7 @@ class FunctionModuleDefinition {
40238
40340
  this.name = data.FUNCNAME;
40239
40341
  this.description = data.SHORT_TEXT;
40240
40342
  this.parameters = [];
40343
+ this.globalParameters = data.GLOBAL_FLAG === "X";
40241
40344
  this.moduleType = FunctionModuleType.regular;
40242
40345
  if (data.REMOTE_CALL === "R") {
40243
40346
  this.moduleType = FunctionModuleType.remote;
@@ -55335,7 +55438,7 @@ class Registry {
55335
55438
  }
55336
55439
  static abaplintVersion() {
55337
55440
  // magic, see build script "version.sh"
55338
- return "2.115.14";
55441
+ return "2.115.16";
55339
55442
  }
55340
55443
  getDDICReferences() {
55341
55444
  return this.ddicReferences;
@@ -64389,6 +64492,68 @@ exports.Exporting = Exporting;
64389
64492
 
64390
64493
  /***/ },
64391
64494
 
64495
+ /***/ "./node_modules/@abaplint/core/build/src/rules/fm_global_parameters_obsolete.js"
64496
+ /*!**************************************************************************************!*\
64497
+ !*** ./node_modules/@abaplint/core/build/src/rules/fm_global_parameters_obsolete.js ***!
64498
+ \**************************************************************************************/
64499
+ (__unused_webpack_module, exports, __webpack_require__) {
64500
+
64501
+ "use strict";
64502
+
64503
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
64504
+ exports.FMGlobalParametersObsolete = exports.FMGlobalParametersObsoleteConf = void 0;
64505
+ const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
64506
+ const Objects = __webpack_require__(/*! ../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
64507
+ const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
64508
+ const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
64509
+ class FMGlobalParametersObsoleteConf extends _basic_rule_config_1.BasicRuleConfig {
64510
+ }
64511
+ exports.FMGlobalParametersObsoleteConf = FMGlobalParametersObsoleteConf;
64512
+ class FMGlobalParametersObsolete {
64513
+ constructor() {
64514
+ this.conf = new FMGlobalParametersObsoleteConf();
64515
+ }
64516
+ getMetadata() {
64517
+ return {
64518
+ key: "fm_global_parameters_obsolete",
64519
+ title: "FM Global Parameters Obsolete",
64520
+ shortDescription: `Check for function modules with global parameteers`,
64521
+ extendedInformation: `https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abenglobal_parameters_obsolete.htm`,
64522
+ tags: [],
64523
+ };
64524
+ }
64525
+ initialize(_reg) {
64526
+ return this;
64527
+ }
64528
+ getConfig() {
64529
+ return this.conf;
64530
+ }
64531
+ setConfig(conf) {
64532
+ this.conf = conf;
64533
+ }
64534
+ run(obj) {
64535
+ if (!(obj instanceof Objects.FunctionGroup)) {
64536
+ return [];
64537
+ }
64538
+ const issues = [];
64539
+ for (const module of obj.getModules()) {
64540
+ if (module.isGlobalParameters() === true) {
64541
+ const file = obj.getMainABAPFile();
64542
+ if (file === undefined) {
64543
+ continue;
64544
+ }
64545
+ const message = `Function Module "${module.getName()}" uses obsolete global parameters`;
64546
+ issues.push(issue_1.Issue.atPosition(file, new position_1.Position(1, 1), message, this.getMetadata().key, this.conf.severity));
64547
+ }
64548
+ }
64549
+ return issues;
64550
+ }
64551
+ }
64552
+ exports.FMGlobalParametersObsolete = FMGlobalParametersObsolete;
64553
+ //# sourceMappingURL=fm_global_parameters_obsolete.js.map
64554
+
64555
+ /***/ },
64556
+
64392
64557
  /***/ "./node_modules/@abaplint/core/build/src/rules/forbidden_identifier.js"
64393
64558
  /*!*****************************************************************************!*\
64394
64559
  !*** ./node_modules/@abaplint/core/build/src/rules/forbidden_identifier.js ***!
@@ -66759,6 +66924,7 @@ __exportStar(__webpack_require__(/*! ./empty_structure */ "./node_modules/@abapl
66759
66924
  __exportStar(__webpack_require__(/*! ./exit_or_check */ "./node_modules/@abaplint/core/build/src/rules/exit_or_check.js"), exports);
66760
66925
  __exportStar(__webpack_require__(/*! ./expand_macros */ "./node_modules/@abaplint/core/build/src/rules/expand_macros.js"), exports);
66761
66926
  __exportStar(__webpack_require__(/*! ./exporting */ "./node_modules/@abaplint/core/build/src/rules/exporting.js"), exports);
66927
+ __exportStar(__webpack_require__(/*! ./fm_global_parameters_obsolete */ "./node_modules/@abaplint/core/build/src/rules/fm_global_parameters_obsolete.js"), exports);
66762
66928
  __exportStar(__webpack_require__(/*! ./forbidden_identifier */ "./node_modules/@abaplint/core/build/src/rules/forbidden_identifier.js"), exports);
66763
66929
  __exportStar(__webpack_require__(/*! ./forbidden_pseudo_and_pragma */ "./node_modules/@abaplint/core/build/src/rules/forbidden_pseudo_and_pragma.js"), exports);
66764
66930
  __exportStar(__webpack_require__(/*! ./forbidden_void_type */ "./node_modules/@abaplint/core/build/src/rules/forbidden_void_type.js"), exports);
@@ -66772,6 +66938,7 @@ __exportStar(__webpack_require__(/*! ./identical_conditions */ "./node_modules/@
66772
66938
  __exportStar(__webpack_require__(/*! ./identical_contents */ "./node_modules/@abaplint/core/build/src/rules/identical_contents.js"), exports);
66773
66939
  __exportStar(__webpack_require__(/*! ./identical_descriptions */ "./node_modules/@abaplint/core/build/src/rules/identical_descriptions.js"), exports);
66774
66940
  __exportStar(__webpack_require__(/*! ./identical_form_names */ "./node_modules/@abaplint/core/build/src/rules/identical_form_names.js"), exports);
66941
+ __exportStar(__webpack_require__(/*! ./identical_move */ "./node_modules/@abaplint/core/build/src/rules/identical_move.js"), exports);
66775
66942
  __exportStar(__webpack_require__(/*! ./if_in_if */ "./node_modules/@abaplint/core/build/src/rules/if_in_if.js"), exports);
66776
66943
  __exportStar(__webpack_require__(/*! ./implement_methods */ "./node_modules/@abaplint/core/build/src/rules/implement_methods.js"), exports);
66777
66944
  __exportStar(__webpack_require__(/*! ./implicit_start_of_selection */ "./node_modules/@abaplint/core/build/src/rules/implicit_start_of_selection.js"), exports);
@@ -66783,7 +66950,6 @@ __exportStar(__webpack_require__(/*! ./intf_referencing_clas */ "./node_modules/
66783
66950
  __exportStar(__webpack_require__(/*! ./invalid_table_index */ "./node_modules/@abaplint/core/build/src/rules/invalid_table_index.js"), exports);
66784
66951
  __exportStar(__webpack_require__(/*! ./keep_single_parameter_on_one_line */ "./node_modules/@abaplint/core/build/src/rules/keep_single_parameter_on_one_line.js"), exports);
66785
66952
  __exportStar(__webpack_require__(/*! ./keyword_case */ "./node_modules/@abaplint/core/build/src/rules/keyword_case.js"), exports);
66786
- __exportStar(__webpack_require__(/*! ./identical_move */ "./node_modules/@abaplint/core/build/src/rules/identical_move.js"), exports);
66787
66953
  __exportStar(__webpack_require__(/*! ./line_break_multiple_parameters */ "./node_modules/@abaplint/core/build/src/rules/line_break_multiple_parameters.js"), exports);
66788
66954
  __exportStar(__webpack_require__(/*! ./line_break_style */ "./node_modules/@abaplint/core/build/src/rules/line_break_style.js"), exports);
66789
66955
  __exportStar(__webpack_require__(/*! ./line_length */ "./node_modules/@abaplint/core/build/src/rules/line_length.js"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.115.14",
3
+ "version": "2.115.16",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.115.14",
41
+ "@abaplint/core": "^2.115.16",
42
42
  "@types/chai": "^4.3.20",
43
43
  "@types/minimist": "^1.2.5",
44
44
  "@types/mocha": "^10.0.10",