@abaplint/cli 2.113.33 → 2.113.34

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 +63 -7
  2. package/package.json +4 -4
package/build/cli.js CHANGED
@@ -39722,20 +39722,71 @@ exports.ArtifactsRules = ArtifactsRules;
39722
39722
  Object.defineProperty(exports, "__esModule", ({ value: true }));
39723
39723
  exports.CDSDetermineTypes = void 0;
39724
39724
  const basic_1 = __webpack_require__(/*! ../abap/types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
39725
+ const ddic_1 = __webpack_require__(/*! ../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
39725
39726
  class CDSDetermineTypes {
39726
- parseType(_reg, parsedData) {
39727
+ parseType(reg, parsedData) {
39728
+ const ddic = new ddic_1.DDIC(reg);
39727
39729
  if ((parsedData === null || parsedData === void 0 ? void 0 : parsedData.fields.length) === 0) {
39728
39730
  return new basic_1.VoidType("DDLS:todo");
39729
39731
  }
39730
39732
  else {
39731
39733
  const components = [];
39732
39734
  for (const f of (parsedData === null || parsedData === void 0 ? void 0 : parsedData.fields) || []) {
39733
- components.push({
39734
- name: f.name,
39735
- type: new basic_1.VoidType("DDLS:fieldname"),
39736
- });
39735
+ if (f.prefix !== "") {
39736
+ const source = parsedData.sources.find((s) => { var _a; return ((_a = s.as) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === f.prefix.toUpperCase(); });
39737
+ if ((source === null || source === void 0 ? void 0 : source.name) === undefined) {
39738
+ components.push({
39739
+ name: f.name,
39740
+ type: new basic_1.UnknownType("CDS parser error, unknown source"),
39741
+ });
39742
+ continue;
39743
+ }
39744
+ const lookup = ddic.lookupTableOrView(source.name);
39745
+ if (lookup.type) {
39746
+ if (lookup.type instanceof basic_1.StructureType) {
39747
+ const type = lookup.type.getComponentByName(f.name);
39748
+ if (type) {
39749
+ components.push({
39750
+ name: f.name,
39751
+ type: type,
39752
+ });
39753
+ }
39754
+ else {
39755
+ components.push({
39756
+ name: f.name,
39757
+ type: new basic_1.UnknownType(f.name + " not found in " + source.name + ", CDSDetermineTypes"),
39758
+ });
39759
+ }
39760
+ }
39761
+ else {
39762
+ // its void or unknown
39763
+ components.push({
39764
+ name: f.name,
39765
+ type: lookup.type,
39766
+ });
39767
+ }
39768
+ }
39769
+ else if (reg.inErrorNamespace(source.name)) {
39770
+ components.push({
39771
+ name: f.name,
39772
+ type: new basic_1.UnknownType(source.name + " not found, CDSDetermineTypes"),
39773
+ });
39774
+ }
39775
+ else {
39776
+ components.push({
39777
+ name: f.name,
39778
+ type: new basic_1.VoidType(source.name),
39779
+ });
39780
+ }
39781
+ }
39782
+ else {
39783
+ components.push({
39784
+ name: f.name,
39785
+ type: new basic_1.VoidType("DDLS:fieldname"),
39786
+ });
39787
+ }
39737
39788
  }
39738
- return new basic_1.StructureType(components);
39789
+ return new basic_1.StructureType(components, parsedData.definitionName, parsedData.definitionName, parsedData.description);
39739
39790
  }
39740
39791
  }
39741
39792
  }
@@ -46696,6 +46747,7 @@ class DataDefinition extends _abstract_object_1.AbstractObject {
46696
46747
  expr = tree.findFirstExpression(expressions_1.CDSDefineProjection);
46697
46748
  }
46698
46749
  for (const e of (expr === null || expr === void 0 ? void 0 : expr.findDirectExpressions(expressions_1.CDSElement)) || []) {
46750
+ let prefix = "";
46699
46751
  let found = (_a = e.findDirectExpression(expressions_1.CDSAs)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(expressions_1.CDSName);
46700
46752
  if (found === undefined) {
46701
46753
  const list = e.findAllExpressions(expressions_1.CDSName);
@@ -46704,6 +46756,9 @@ class DataDefinition extends _abstract_object_1.AbstractObject {
46704
46756
  }
46705
46757
  else {
46706
46758
  found = list[list.length - 1];
46759
+ if (list.length > 1) {
46760
+ prefix = list[0].concatTokens();
46761
+ }
46707
46762
  }
46708
46763
  }
46709
46764
  if (found === undefined) {
@@ -46720,6 +46775,7 @@ class DataDefinition extends _abstract_object_1.AbstractObject {
46720
46775
  this.parsedData.fields.push({
46721
46776
  name: name,
46722
46777
  annotations: annotations,
46778
+ prefix: prefix,
46723
46779
  key: e.findDirectTokenByText("KEY") !== undefined,
46724
46780
  });
46725
46781
  }
@@ -52894,7 +52950,7 @@ class Registry {
52894
52950
  }
52895
52951
  static abaplintVersion() {
52896
52952
  // magic, see build script "version.sh"
52897
- return "2.113.33";
52953
+ return "2.113.34";
52898
52954
  }
52899
52955
  getDDICReferences() {
52900
52956
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.113.33",
3
+ "version": "2.113.34",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,12 +38,12 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.113.33",
41
+ "@abaplint/core": "^2.113.34",
42
42
  "@types/chai": "^4.3.20",
43
43
  "@types/glob": "^8.1.0",
44
44
  "@types/minimist": "^1.2.5",
45
45
  "@types/mocha": "^10.0.9",
46
- "@types/node": "^22.8.2",
46
+ "@types/node": "^22.8.4",
47
47
  "@types/progress": "^2.0.7",
48
48
  "chai": "^4.5.0",
49
49
  "chalk": "^5.3.0",
@@ -52,7 +52,7 @@
52
52
  "json5": "^2.2.3",
53
53
  "memfs": "^4.14.0",
54
54
  "minimist": "^1.2.8",
55
- "mocha": "^10.7.3",
55
+ "mocha": "^10.8.1",
56
56
  "progress": "^2.0.3",
57
57
  "typescript": "^5.6.3",
58
58
  "webpack": "^5.95.0",