@abaplint/cli 2.117.1 → 2.117.3

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 +18 -10
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -47123,6 +47123,7 @@ function parseDynpros(parsed) {
47123
47123
  name: f.NAME,
47124
47124
  type: f.TYPE,
47125
47125
  length: parseNumber(f.LENGTH),
47126
+ vislength: parseNumber(f.VISLENGTH),
47126
47127
  line: parseNumber(f.LINE),
47127
47128
  column: parseNumber(f.COLUMN),
47128
47129
  height: parseNumber(f.HEIGHT),
@@ -55815,7 +55816,7 @@ class Registry {
55815
55816
  }
55816
55817
  static abaplintVersion() {
55817
55818
  // magic, see build script "version.sh"
55818
- return "2.117.1";
55819
+ return "2.117.3";
55819
55820
  }
55820
55821
  getDDICReferences() {
55821
55822
  return this.ddicReferences;
@@ -64156,15 +64157,15 @@ class DynproChecks {
64156
64157
  const ret = [];
64157
64158
  for (let index = 0; index < dynpro.fields.length; index++) {
64158
64159
  const current = dynpro.fields[index];
64159
- if (current.name === undefined) {
64160
+ if (current.name === undefined || current.type === "FRAME") {
64160
64161
  continue;
64161
64162
  }
64162
64163
  for (let compare = index + 1; compare < dynpro.fields.length; compare++) {
64163
64164
  const other = dynpro.fields[compare];
64164
- if (other.name === undefined || this.overlaps(current, other) === false) {
64165
+ if (other.name === undefined || other.type === "FRAME" || this.overlaps(current, other) === false) {
64165
64166
  continue;
64166
64167
  }
64167
- const message = `Screen ${dynpro.number}, fields ${current.name} and ${other.name} are overlapping`;
64168
+ const message = `Screen ${dynpro.number}, ${current.type} ${current.name} and ${other.type} ${other.name} are overlapping`;
64168
64169
  ret.push(issue_1.Issue.atPosition(file, new position_1.Position(1, 1), message, this.getMetadata().key, this.getConfig().severity));
64169
64170
  }
64170
64171
  }
@@ -64181,8 +64182,8 @@ class DynproChecks {
64181
64182
  if (firstLastLine < second.line || secondLastLine < first.line) {
64182
64183
  return false;
64183
64184
  }
64184
- const firstLastColumn = first.column + Math.max(first.length, 1) - 1;
64185
- const secondLastColumn = second.column + Math.max(second.length, 1) - 1;
64185
+ const firstLastColumn = first.column + Math.max(first.vislength || first.length, 1) - 1;
64186
+ const secondLastColumn = second.column + Math.max(second.vislength || second.length, 1) - 1;
64186
64187
  return first.column <= secondLastColumn && second.column <= firstLastColumn;
64187
64188
  }
64188
64189
  }
@@ -70315,7 +70316,8 @@ class MSAGConsistency {
70315
70316
  key: "msag_consistency",
70316
70317
  title: "MSAG consistency check",
70317
70318
  shortDescription: `Checks the validity of messages in message classes`,
70318
- extendedInformation: `Message numbers must be 3 digits, message text must not be empty, no message number duplicates`,
70319
+ extendedInformation: `Message numbers must be 3 digits, message text must not be empty,\n` +
70320
+ `message text must not exceed 73 characters, no message number duplicates`,
70319
70321
  };
70320
70322
  }
70321
70323
  getDescription(reason) {
@@ -70351,6 +70353,12 @@ class MSAGConsistency {
70351
70353
  const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, text, this.getMetadata().key, this.conf.severity);
70352
70354
  issues.push(issue);
70353
70355
  }
70356
+ if (message.getMessage().length > 73) {
70357
+ const text = `Message text too long (max 73 characters): message ${message.getNumber()}`;
70358
+ const position = new position_1.Position(1, 1);
70359
+ const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, text, this.getMetadata().key, this.conf.severity);
70360
+ issues.push(issue);
70361
+ }
70354
70362
  const num = message.getNumber();
70355
70363
  if (numbers.has(num)) {
70356
70364
  const text = "Duplicate message number " + num;
@@ -70364,7 +70372,7 @@ class MSAGConsistency {
70364
70372
  if (this.getConfig().numericParameters === true) {
70365
70373
  const placeholderCount = message.getPlaceholderCount();
70366
70374
  if (placeholderCount > 4) {
70367
- const text = `More than 4 placeholders in mesasge ${message.getNumber()}`;
70375
+ const text = `More than 4 placeholders in message ${message.getNumber()}`;
70368
70376
  const position = new position_1.Position(1, 1);
70369
70377
  const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, text, this.getMetadata().key, this.conf.severity);
70370
70378
  issues.push(issue);
@@ -75603,7 +75611,7 @@ class SMIMConsistency {
75603
75611
  key: "smim_consistency",
75604
75612
  title: "SMIM consistency check",
75605
75613
  shortDescription: `SMIM consistency check`,
75606
- extendedInformation: "Check folders exists",
75614
+ extendedInformation: "Checks that the parent folder of each MIME object exists in the registry. The SAP system folder /SAP/PUBLIC is always allowed as a parent even if not present in the repository.",
75607
75615
  };
75608
75616
  }
75609
75617
  getConfig() {
@@ -75622,7 +75630,7 @@ class SMIMConsistency {
75622
75630
  return [];
75623
75631
  }
75624
75632
  const base = this.base(obj.getURL() || "");
75625
- if (base !== "" && this.findFolder(base) === false) {
75633
+ if (base !== "" && base !== "/SAP/PUBLIC" && this.findFolder(base) === false) {
75626
75634
  const message = `Parent folder "${base}" not found`;
75627
75635
  const position = new position_1.Position(1, 1);
75628
75636
  const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, message, this.getMetadata().key, this.conf.severity);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.117.1",
3
+ "version": "2.117.3",
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.117.1",
41
+ "@abaplint/core": "^2.117.3",
42
42
  "@types/chai": "^4.3.20",
43
43
  "@types/minimist": "^1.2.5",
44
44
  "@types/mocha": "^10.0.10",