@abaplint/cli 2.100.6 → 2.101.1

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 +308 -11
  2. package/package.json +4 -4
package/build/cli.js CHANGED
@@ -20401,6 +20401,9 @@ class CurrentScope {
20401
20401
  getVersion() {
20402
20402
  return this.reg.getConfig().getVersion();
20403
20403
  }
20404
+ getRegistry() {
20405
+ return this.reg;
20406
+ }
20404
20407
  addType(type) {
20405
20408
  if (type === undefined) {
20406
20409
  return;
@@ -20500,6 +20503,10 @@ class CurrentScope {
20500
20503
  const position = new _identifier_1.Identifier(usage, filename);
20501
20504
  (_a = this.current) === null || _a === void 0 ? void 0 : _a.getData().references.push({ position, resolved: referencing, referenceType: type, extra });
20502
20505
  }
20506
+ addSQLConversion(fieldName, message, token) {
20507
+ var _a;
20508
+ (_a = this.current) === null || _a === void 0 ? void 0 : _a.getData().sqlConversion.push({ fieldName, message, token });
20509
+ }
20503
20510
  ///////////////////////////
20504
20511
  findFunctionModule(name) {
20505
20512
  if (name === undefined) {
@@ -23386,7 +23393,7 @@ class DatabaseTable {
23386
23393
  const name = token.getStr();
23387
23394
  if (name === "(") {
23388
23395
  // dynamic
23389
- return;
23396
+ return undefined;
23390
23397
  }
23391
23398
  const found = scope.getDDIC().lookupTableOrView2(name);
23392
23399
  if (found === undefined && scope.getDDIC().inErrorNamespace(name) === true) {
@@ -23399,6 +23406,7 @@ class DatabaseTable {
23399
23406
  scope.addReference(token, found.getIdentifier(), _reference_1.ReferenceType.TableReference, filename);
23400
23407
  scope.getDDICReferences().addUsing(scope.getParentObj(), { object: found, token: token, filename: filename });
23401
23408
  }
23409
+ return found;
23402
23410
  }
23403
23411
  }
23404
23412
  exports.DatabaseTable = DatabaseTable;
@@ -25283,17 +25291,16 @@ const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@ab
25283
25291
  const inline_data_1 = __webpack_require__(/*! ./inline_data */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/inline_data.js");
25284
25292
  const target_1 = __webpack_require__(/*! ./target */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/target.js");
25285
25293
  const sql_from_1 = __webpack_require__(/*! ./sql_from */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_from.js");
25286
- const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source.js");
25287
25294
  const sql_for_all_entries_1 = __webpack_require__(/*! ./sql_for_all_entries */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_for_all_entries.js");
25288
25295
  const _scope_type_1 = __webpack_require__(/*! ../_scope_type */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_scope_type.js");
25296
+ const sql_source_1 = __webpack_require__(/*! ./sql_source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_source.js");
25297
+ const sql_compare_1 = __webpack_require__(/*! ./sql_compare */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_compare.js");
25289
25298
  class Select {
25290
25299
  runSyntax(node, scope, filename, skipImplicitInto = false) {
25291
25300
  var _a, _b;
25292
25301
  const token = node.getFirstToken();
25293
25302
  const from = node.findDirectExpression(Expressions.SQLFrom);
25294
- if (from) {
25295
- new sql_from_1.SQLFrom().runSyntax(from, scope, filename);
25296
- }
25303
+ const dbSources = from ? new sql_from_1.SQLFrom().runSyntax(from, scope, filename) : [];
25297
25304
  for (const inline of node.findAllExpressions(Expressions.InlineData)) {
25298
25305
  // todo, for now these are voided
25299
25306
  new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.VoidType("SELECT_todo"));
@@ -25319,11 +25326,22 @@ class Select {
25319
25326
  }
25320
25327
  }
25321
25328
  }
25322
- for (const s of node.findAllExpressions(Expressions.Source)) {
25323
- new source_1.Source().runSyntax(s, scope, filename);
25329
+ // OFFSET
25330
+ for (const s of node.findDirectExpressions(Expressions.SQLSource)) {
25331
+ new sql_source_1.SQLSource().runSyntax(s, scope, filename);
25324
25332
  }
25325
- for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
25326
- new source_1.Source().runSyntax(s, scope, filename);
25333
+ for (const up of node.findDirectExpressions(Expressions.SQLUpTo)) {
25334
+ for (const s of up.findDirectExpressions(Expressions.SQLSource)) {
25335
+ new sql_source_1.SQLSource().runSyntax(s, scope, filename);
25336
+ }
25337
+ }
25338
+ for (const fae of node.findDirectExpressions(Expressions.SQLForAllEntries)) {
25339
+ for (const s of fae.findDirectExpressions(Expressions.SQLSource)) {
25340
+ new sql_source_1.SQLSource().runSyntax(s, scope, filename);
25341
+ }
25342
+ }
25343
+ for (const s of node.findAllExpressions(Expressions.SQLCompare)) {
25344
+ new sql_compare_1.SQLCompare().runSyntax(s, scope, filename, dbSources);
25327
25345
  }
25328
25346
  if (scope.getType() === _scope_type_1.ScopeType.OpenSQL) {
25329
25347
  scope.pop(node.getLastToken().getEnd());
@@ -25683,6 +25701,79 @@ exports.SourceFieldSymbol = SourceFieldSymbol;
25683
25701
 
25684
25702
  /***/ }),
25685
25703
 
25704
+ /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_compare.js":
25705
+ /*!****************************************************************************************!*\
25706
+ !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_compare.js ***!
25707
+ \****************************************************************************************/
25708
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
25709
+
25710
+ "use strict";
25711
+
25712
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
25713
+ exports.SQLCompare = void 0;
25714
+ const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
25715
+ const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
25716
+ const sql_source_1 = __webpack_require__(/*! ./sql_source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_source.js");
25717
+ class SQLCompare {
25718
+ runSyntax(node, scope, filename, tables) {
25719
+ var _a;
25720
+ let sourceType;
25721
+ let token;
25722
+ for (const s of node.findAllExpressions(Expressions.SQLSource)) {
25723
+ token = s.getFirstToken();
25724
+ sourceType = new sql_source_1.SQLSource().runSyntax(s, scope, filename);
25725
+ }
25726
+ const fieldName = (_a = node.findDirectExpression(Expressions.SQLFieldName)) === null || _a === void 0 ? void 0 : _a.concatTokens();
25727
+ if (fieldName && sourceType && token) {
25728
+ // check compatibility for rule sql_value_conversion
25729
+ const targetType = this.findType(fieldName, tables, scope);
25730
+ let message = "";
25731
+ if (sourceType instanceof basic_1.IntegerType
25732
+ && targetType instanceof basic_1.CharacterType) {
25733
+ message = "Integer to CHAR conversion";
25734
+ }
25735
+ else if (sourceType instanceof basic_1.IntegerType
25736
+ && targetType instanceof basic_1.NumericType) {
25737
+ message = "Integer to NUMC conversion";
25738
+ }
25739
+ else if (sourceType instanceof basic_1.NumericType
25740
+ && targetType instanceof basic_1.IntegerType) {
25741
+ message = "NUMC to Integer conversion";
25742
+ }
25743
+ else if (sourceType instanceof basic_1.CharacterType
25744
+ && targetType instanceof basic_1.IntegerType) {
25745
+ message = "CHAR to Integer conversion";
25746
+ }
25747
+ else if (sourceType instanceof basic_1.CharacterType
25748
+ && targetType instanceof basic_1.CharacterType
25749
+ && sourceType.getLength() > targetType.getLength()) {
25750
+ message = "Source field longer than database field, CHAR -> CHAR";
25751
+ }
25752
+ else if (sourceType instanceof basic_1.NumericType
25753
+ && targetType instanceof basic_1.NumericType
25754
+ && sourceType.getLength() > targetType.getLength()) {
25755
+ message = "Source field longer than database field, NUMC -> NUMC";
25756
+ }
25757
+ if (message !== "") {
25758
+ scope.addSQLConversion(fieldName, message, token);
25759
+ }
25760
+ }
25761
+ }
25762
+ findType(fieldName, tables, scope) {
25763
+ for (const t of tables) {
25764
+ const type = t === null || t === void 0 ? void 0 : t.parseType(scope.getRegistry());
25765
+ if (type instanceof basic_1.StructureType) {
25766
+ return type.getComponentByName(fieldName);
25767
+ }
25768
+ }
25769
+ return undefined;
25770
+ }
25771
+ }
25772
+ exports.SQLCompare = SQLCompare;
25773
+ //# sourceMappingURL=sql_compare.js.map
25774
+
25775
+ /***/ }),
25776
+
25686
25777
  /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_for_all_entries.js":
25687
25778
  /*!************************************************************************************************!*\
25688
25779
  !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_for_all_entries.js ***!
@@ -25735,6 +25826,7 @@ const dynamic_1 = __webpack_require__(/*! ./dynamic */ "./node_modules/@abaplint
25735
25826
  const database_table_1 = __webpack_require__(/*! ./database_table */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/database_table.js");
25736
25827
  class SQLFrom {
25737
25828
  runSyntax(node, scope, filename) {
25829
+ const ret = [];
25738
25830
  const fromList = node.findAllExpressions(Expressions.SQLFromSource);
25739
25831
  for (const from of fromList) {
25740
25832
  for (const d of from.findAllExpressions(Expressions.Dynamic)) {
@@ -25742,9 +25834,10 @@ class SQLFrom {
25742
25834
  }
25743
25835
  const dbtab = from.findFirstExpression(Expressions.DatabaseTable);
25744
25836
  if (dbtab !== undefined) {
25745
- new database_table_1.DatabaseTable().runSyntax(dbtab, scope, filename);
25837
+ ret.push(new database_table_1.DatabaseTable().runSyntax(dbtab, scope, filename));
25746
25838
  }
25747
25839
  }
25840
+ return ret;
25748
25841
  }
25749
25842
  }
25750
25843
  exports.SQLFrom = SQLFrom;
@@ -25752,6 +25845,34 @@ exports.SQLFrom = SQLFrom;
25752
25845
 
25753
25846
  /***/ }),
25754
25847
 
25848
+ /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_source.js":
25849
+ /*!***************************************************************************************!*\
25850
+ !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/sql_source.js ***!
25851
+ \***************************************************************************************/
25852
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
25853
+
25854
+ "use strict";
25855
+
25856
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
25857
+ exports.SQLSource = void 0;
25858
+ const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
25859
+ const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source.js");
25860
+ class SQLSource {
25861
+ runSyntax(node, scope, filename) {
25862
+ for (const s of node.findAllExpressions(Expressions.Source)) {
25863
+ return new source_1.Source().runSyntax(s, scope, filename);
25864
+ }
25865
+ for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
25866
+ return new source_1.Source().runSyntax(s, scope, filename);
25867
+ }
25868
+ return undefined;
25869
+ }
25870
+ }
25871
+ exports.SQLSource = SQLSource;
25872
+ //# sourceMappingURL=sql_source.js.map
25873
+
25874
+ /***/ }),
25875
+
25755
25876
  /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/string_template.js":
25756
25877
  /*!********************************************************************************************!*\
25757
25878
  !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/string_template.js ***!
@@ -26349,6 +26470,7 @@ class ScopeData {
26349
26470
  extraLikeTypes: {},
26350
26471
  deferred: [],
26351
26472
  references: [],
26473
+ sqlConversion: [],
26352
26474
  };
26353
26475
  }
26354
26476
  getData() {
@@ -41578,6 +41700,99 @@ exports.AssignmentServiceToAuthorizationGroup = AssignmentServiceToAuthorization
41578
41700
 
41579
41701
  /***/ }),
41580
41702
 
41703
+ /***/ "./node_modules/@abaplint/core/build/src/objects/atc_check_category.js":
41704
+ /*!*****************************************************************************!*\
41705
+ !*** ./node_modules/@abaplint/core/build/src/objects/atc_check_category.js ***!
41706
+ \*****************************************************************************/
41707
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
41708
+
41709
+ "use strict";
41710
+
41711
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
41712
+ exports.ATCCheckCategory = void 0;
41713
+ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
41714
+ class ATCCheckCategory extends _abstract_object_1.AbstractObject {
41715
+ getType() {
41716
+ return "CHKC";
41717
+ }
41718
+ getAllowedNaming() {
41719
+ return {
41720
+ maxLength: 30,
41721
+ allowNamespace: true,
41722
+ };
41723
+ }
41724
+ getDescription() {
41725
+ // todo
41726
+ return undefined;
41727
+ }
41728
+ }
41729
+ exports.ATCCheckCategory = ATCCheckCategory;
41730
+ //# sourceMappingURL=atc_check_category.js.map
41731
+
41732
+ /***/ }),
41733
+
41734
+ /***/ "./node_modules/@abaplint/core/build/src/objects/atc_check_object.js":
41735
+ /*!***************************************************************************!*\
41736
+ !*** ./node_modules/@abaplint/core/build/src/objects/atc_check_object.js ***!
41737
+ \***************************************************************************/
41738
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
41739
+
41740
+ "use strict";
41741
+
41742
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
41743
+ exports.ATCCheckObject = void 0;
41744
+ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
41745
+ class ATCCheckObject extends _abstract_object_1.AbstractObject {
41746
+ getType() {
41747
+ return "CHKO";
41748
+ }
41749
+ getAllowedNaming() {
41750
+ return {
41751
+ maxLength: 30,
41752
+ allowNamespace: true,
41753
+ };
41754
+ }
41755
+ getDescription() {
41756
+ // todo
41757
+ return undefined;
41758
+ }
41759
+ }
41760
+ exports.ATCCheckObject = ATCCheckObject;
41761
+ //# sourceMappingURL=atc_check_object.js.map
41762
+
41763
+ /***/ }),
41764
+
41765
+ /***/ "./node_modules/@abaplint/core/build/src/objects/atc_check_variant.js":
41766
+ /*!****************************************************************************!*\
41767
+ !*** ./node_modules/@abaplint/core/build/src/objects/atc_check_variant.js ***!
41768
+ \****************************************************************************/
41769
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
41770
+
41771
+ "use strict";
41772
+
41773
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
41774
+ exports.ATCCheckVariant = void 0;
41775
+ const _abstract_object_1 = __webpack_require__(/*! ./_abstract_object */ "./node_modules/@abaplint/core/build/src/objects/_abstract_object.js");
41776
+ class ATCCheckVariant extends _abstract_object_1.AbstractObject {
41777
+ getType() {
41778
+ return "CHKV";
41779
+ }
41780
+ getAllowedNaming() {
41781
+ return {
41782
+ maxLength: 30,
41783
+ allowNamespace: true,
41784
+ };
41785
+ }
41786
+ getDescription() {
41787
+ // todo
41788
+ return undefined;
41789
+ }
41790
+ }
41791
+ exports.ATCCheckVariant = ATCCheckVariant;
41792
+ //# sourceMappingURL=atc_check_variant.js.map
41793
+
41794
+ /***/ }),
41795
+
41581
41796
  /***/ "./node_modules/@abaplint/core/build/src/objects/authorization_check_field.js":
41582
41797
  /*!************************************************************************************!*\
41583
41798
  !*** ./node_modules/@abaplint/core/build/src/objects/authorization_check_field.js ***!
@@ -44280,6 +44495,9 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
44280
44495
  __exportStar(__webpack_require__(/*! ./activation_variant */ "./node_modules/@abaplint/core/build/src/objects/activation_variant.js"), exports);
44281
44496
  __exportStar(__webpack_require__(/*! ./api_release_state */ "./node_modules/@abaplint/core/build/src/objects/api_release_state.js"), exports);
44282
44497
  __exportStar(__webpack_require__(/*! ./assignment_service_to_authorization_group */ "./node_modules/@abaplint/core/build/src/objects/assignment_service_to_authorization_group.js"), exports);
44498
+ __exportStar(__webpack_require__(/*! ./atc_check_category */ "./node_modules/@abaplint/core/build/src/objects/atc_check_category.js"), exports);
44499
+ __exportStar(__webpack_require__(/*! ./atc_check_object */ "./node_modules/@abaplint/core/build/src/objects/atc_check_object.js"), exports);
44500
+ __exportStar(__webpack_require__(/*! ./atc_check_variant */ "./node_modules/@abaplint/core/build/src/objects/atc_check_variant.js"), exports);
44283
44501
  __exportStar(__webpack_require__(/*! ./authorization_check_field */ "./node_modules/@abaplint/core/build/src/objects/authorization_check_field.js"), exports);
44284
44502
  __exportStar(__webpack_require__(/*! ./authorization_group */ "./node_modules/@abaplint/core/build/src/objects/authorization_group.js"), exports);
44285
44503
  __exportStar(__webpack_require__(/*! ./authorization_object_class */ "./node_modules/@abaplint/core/build/src/objects/authorization_object_class.js"), exports);
@@ -47757,7 +47975,7 @@ class Registry {
47757
47975
  }
47758
47976
  static abaplintVersion() {
47759
47977
  // magic, see build script "version.sh"
47760
- return "2.100.6";
47978
+ return "2.101.1";
47761
47979
  }
47762
47980
  getDDICReferences() {
47763
47981
  return this.ddicReferences;
@@ -50951,6 +51169,9 @@ class CloudTypes {
50951
51169
  || obj instanceof Objects.InboundService
50952
51170
  || obj instanceof Objects.Interface
50953
51171
  || obj instanceof Objects.LockObject
51172
+ || obj instanceof Objects.ATCCheckCategory
51173
+ || obj instanceof Objects.ATCCheckObject
51174
+ || obj instanceof Objects.ATCCheckVariant
50954
51175
  || obj instanceof Objects.MessageClass
50955
51176
  || obj instanceof Objects.Package
50956
51177
  || obj instanceof Objects.RestrictionType
@@ -57852,6 +58073,7 @@ __exportStar(__webpack_require__(/*! ./smim_consistency */ "./node_modules/@abap
57852
58073
  __exportStar(__webpack_require__(/*! ./space_before_colon */ "./node_modules/@abaplint/core/build/src/rules/space_before_colon.js"), exports);
57853
58074
  __exportStar(__webpack_require__(/*! ./space_before_dot */ "./node_modules/@abaplint/core/build/src/rules/space_before_dot.js"), exports);
57854
58075
  __exportStar(__webpack_require__(/*! ./sql_escape_host_variables */ "./node_modules/@abaplint/core/build/src/rules/sql_escape_host_variables.js"), exports);
58076
+ __exportStar(__webpack_require__(/*! ./sql_value_conversion */ "./node_modules/@abaplint/core/build/src/rules/sql_value_conversion.js"), exports);
57855
58077
  __exportStar(__webpack_require__(/*! ./start_at_tab */ "./node_modules/@abaplint/core/build/src/rules/start_at_tab.js"), exports);
57856
58078
  __exportStar(__webpack_require__(/*! ./static_call_via_instance */ "./node_modules/@abaplint/core/build/src/rules/static_call_via_instance.js"), exports);
57857
58079
  __exportStar(__webpack_require__(/*! ./strict_sql */ "./node_modules/@abaplint/core/build/src/rules/strict_sql.js"), exports);
@@ -64980,6 +65202,81 @@ exports.SQLEscapeHostVariables = SQLEscapeHostVariables;
64980
65202
 
64981
65203
  /***/ }),
64982
65204
 
65205
+ /***/ "./node_modules/@abaplint/core/build/src/rules/sql_value_conversion.js":
65206
+ /*!*****************************************************************************!*\
65207
+ !*** ./node_modules/@abaplint/core/build/src/rules/sql_value_conversion.js ***!
65208
+ \*****************************************************************************/
65209
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
65210
+
65211
+ "use strict";
65212
+
65213
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
65214
+ exports.SQLValueConversion = exports.SQLValueConversionConf = void 0;
65215
+ const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
65216
+ const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
65217
+ const objects_1 = __webpack_require__(/*! ../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
65218
+ const syntax_1 = __webpack_require__(/*! ../abap/5_syntax/syntax */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js");
65219
+ const _abap_object_1 = __webpack_require__(/*! ../objects/_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
65220
+ class SQLValueConversionConf extends _basic_rule_config_1.BasicRuleConfig {
65221
+ }
65222
+ exports.SQLValueConversionConf = SQLValueConversionConf;
65223
+ class SQLValueConversion {
65224
+ constructor() {
65225
+ this.conf = new SQLValueConversionConf();
65226
+ }
65227
+ getMetadata() {
65228
+ return {
65229
+ key: "sql_value_conversion",
65230
+ title: "Implicit SQL Value Conversion",
65231
+ shortDescription: `Ensure types match when selecting from database`,
65232
+ extendedInformation: `
65233
+ * Integer to CHAR conversion
65234
+ * Integer to NUMC conversion
65235
+ * NUMC to Integer conversion
65236
+ * CHAR to Integer conversion
65237
+ * Source field longer than database field, CHAR -> CHAR
65238
+ * Source field longer than database field, NUMC -> NUMC`,
65239
+ tags: [],
65240
+ };
65241
+ }
65242
+ getConfig() {
65243
+ return this.conf;
65244
+ }
65245
+ setConfig(conf) {
65246
+ this.conf = conf;
65247
+ }
65248
+ initialize(reg) {
65249
+ this.reg = reg;
65250
+ return this;
65251
+ }
65252
+ run(obj) {
65253
+ if (!(obj instanceof _abap_object_1.ABAPObject) || obj instanceof objects_1.Interface) {
65254
+ return [];
65255
+ }
65256
+ // messages defined in sql_compare.ts
65257
+ const issues = this.traverse(new syntax_1.SyntaxLogic(this.reg, obj).run().spaghetti.getTop());
65258
+ return issues;
65259
+ }
65260
+ traverse(node) {
65261
+ const ret = [];
65262
+ for (const r of node.getData().sqlConversion) {
65263
+ const file = this.reg.getFileByName(node.getIdentifier().filename);
65264
+ if (file === undefined) {
65265
+ continue;
65266
+ }
65267
+ ret.push(issue_1.Issue.atToken(file, r.token, r.message, this.getMetadata().key, this.getConfig().severity));
65268
+ }
65269
+ for (const c of node.getChildren()) {
65270
+ ret.push(...this.traverse(c));
65271
+ }
65272
+ return ret;
65273
+ }
65274
+ }
65275
+ exports.SQLValueConversion = SQLValueConversion;
65276
+ //# sourceMappingURL=sql_value_conversion.js.map
65277
+
65278
+ /***/ }),
65279
+
64983
65280
  /***/ "./node_modules/@abaplint/core/build/src/rules/start_at_tab.js":
64984
65281
  /*!*********************************************************************!*\
64985
65282
  !*** ./node_modules/@abaplint/core/build/src/rules/start_at_tab.js ***!
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.100.6",
3
+ "version": "2.101.1",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,16 +38,16 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.100.6",
41
+ "@abaplint/core": "^2.101.1",
42
42
  "@types/chai": "^4.3.5",
43
43
  "@types/glob": "^7.2.0",
44
44
  "@types/minimist": "^1.2.2",
45
45
  "@types/mocha": "^10.0.1",
46
- "@types/node": "^20.2.1",
46
+ "@types/node": "^20.2.3",
47
47
  "@types/progress": "^2.0.5",
48
48
  "chai": "^4.3.7",
49
49
  "chalk": "^5.2.0",
50
- "eslint": "^8.40.0",
50
+ "eslint": "^8.41.0",
51
51
  "glob": "^7.2.3",
52
52
  "json5": "^2.2.3",
53
53
  "memfs": "^3.5.1",