@abaplint/core 2.94.20 → 2.94.22

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.
@@ -310,6 +310,7 @@ declare class AuthorizationCheckField extends AbstractObject {
310
310
  maxLength: number;
311
311
  allowNamespace: boolean;
312
312
  };
313
+ setDirty(): void;
313
314
  getDescription(): string | undefined;
314
315
  getDataElementName(): string | undefined;
315
316
  parseType(reg: IRegistry): AbstractType;
@@ -3709,6 +3710,7 @@ declare class LockObject extends AbstractObject {
3709
3710
  maxLength: number;
3710
3711
  allowNamespace: boolean;
3711
3712
  };
3713
+ setDirty(): void;
3712
3714
  getPrimaryTable(): string | undefined;
3713
3715
  parseType(reg: IRegistry): AbstractType;
3714
3716
  parse(): {
@@ -3759,7 +3761,7 @@ declare class MacroName extends Expression {
3759
3761
  }
3760
3762
 
3761
3763
  declare class MaintenanceAndTransportObject extends AbstractObject {
3762
- private area;
3764
+ private parsedXML;
3763
3765
  setDirty(): void;
3764
3766
  getType(): string;
3765
3767
  getDescription(): string | undefined;
@@ -3768,7 +3770,13 @@ declare class MaintenanceAndTransportObject extends AbstractObject {
3768
3770
  allowNamespace: boolean;
3769
3771
  };
3770
3772
  getArea(): string | undefined;
3771
- private parseXML;
3773
+ getObjectName(): string | undefined;
3774
+ getObjectType(): string | undefined;
3775
+ parseType(reg: IRegistry): AbstractType;
3776
+ parse(): {
3777
+ updated: boolean;
3778
+ runtime: number;
3779
+ };
3772
3780
  }
3773
3781
 
3774
3782
  export declare class MemoryFile extends AbstractFile {
@@ -11,7 +11,7 @@ class SQLFieldListLoop extends combi_1.Expression {
11
11
  const comma = (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v740sp05, ","));
12
12
  const as = (0, combi_1.seq)("AS", _1.SQLAsName);
13
13
  const someField = (0, combi_1.seq)(_1.SQLField, comma);
14
- const fieldList = (0, combi_1.seq)((0, combi_1.star)(someField), (0, combi_1.alt)(_1.SQLFieldName, sql_path_1.SQLPath), (0, combi_1.optPrio)(as), comma, (0, combi_1.star)(someField));
14
+ const fieldList = (0, combi_1.seq)((0, combi_1.star)(someField), (0, combi_1.alt)(_1.SQLFieldName, sql_path_1.SQLPath, _1.Constant), (0, combi_1.optPrio)(as), comma, (0, combi_1.star)(someField));
15
15
  const fields = (0, combi_1.alt)("*", _1.Dynamic, fieldList);
16
16
  return fields;
17
17
  }
@@ -16,7 +16,7 @@ class SQLFunction extends combi_1.Expression {
16
16
  const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), source_1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
17
17
  const at = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.alt)(simple_source3_1.SimpleSource3, paren)));
18
18
  const param = (0, combi_1.alt)(sql_field_name_1.SQLFieldName, sql_alias_field_1.SQLAliasField, SQLFunction, constant_1.Constant, sql_aggregation_1.SQLAggregation, at);
19
- const castTypes = (0, combi_1.altPrio)((0, combi_1.seq)("CHAR", (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)), "FLTP");
19
+ const castTypes = (0, combi_1.altPrio)((0, combi_1.seq)("CHAR", (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)), "FLTP", "NUMC", "INT8");
20
20
  const abs = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)("abs", (0, combi_1.tok)(tokens_1.ParenLeftW), param, (0, combi_1.tok)(tokens_1.WParenRightW)));
21
21
  const cast = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("cast", (0, combi_1.tok)(tokens_1.ParenLeftW), param, "AS", castTypes, (0, combi_1.tok)(tokens_1.WParenRightW)));
22
22
  const ceil = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)("ceil", (0, combi_1.tok)(tokens_1.ParenLeftW), param, (0, combi_1.tok)(tokens_1.WParenRightW)));
@@ -8,7 +8,7 @@ const cds_type_1 = require("./cds_type");
8
8
  class CDSDefineCustom extends combi_1.Expression {
9
9
  getRunnable() {
10
10
  const field = (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.opt)((0, combi_1.str)("KEY")), cds_name_1.CDSName, ":", cds_type_1.CDSType, ";");
11
- return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)("DEFINE ROOT CUSTOM ENTITY"), cds_name_1.CDSName, (0, combi_1.str)("{"), (0, combi_1.plus)(field), (0, combi_1.str)("}"), (0, combi_1.opt)(";"));
11
+ return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)("DEFINE"), (0, combi_1.opt)((0, combi_1.str)("ROOT")), (0, combi_1.str)("CUSTOM ENTITY"), cds_name_1.CDSName, (0, combi_1.str)("{"), (0, combi_1.plus)(field), (0, combi_1.str)("}"), (0, combi_1.opt)(";"));
12
12
  }
13
13
  }
14
14
  exports.CDSDefineCustom = CDSDefineCustom;
@@ -14,6 +14,10 @@ class AuthorizationCheckField extends _abstract_object_1.AbstractObject {
14
14
  allowNamespace: true,
15
15
  };
16
16
  }
17
+ setDirty() {
18
+ this.parsedXML = undefined;
19
+ super.setDirty();
20
+ }
17
21
  getDescription() {
18
22
  // todo
19
23
  return undefined;
@@ -14,6 +14,10 @@ class LockObject extends _abstract_object_1.AbstractObject {
14
14
  allowNamespace: true,
15
15
  };
16
16
  }
17
+ setDirty() {
18
+ this.parsedXML = undefined;
19
+ super.setDirty();
20
+ }
17
21
  getPrimaryTable() {
18
22
  var _a;
19
23
  this.parse();
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MaintenanceAndTransportObject = void 0;
4
+ const basic_1 = require("../abap/types/basic");
5
+ const ddic_1 = require("../ddic");
4
6
  const _abstract_object_1 = require("./_abstract_object");
5
7
  class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {
6
- constructor() {
7
- super(...arguments);
8
- this.area = undefined;
9
- }
10
8
  setDirty() {
11
9
  super.setDirty();
12
- this.area = undefined;
10
+ this.parsedXML = undefined;
13
11
  }
14
12
  getType() {
15
13
  return "TOBJ";
@@ -25,21 +23,64 @@ class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {
25
23
  };
26
24
  }
27
25
  getArea() {
28
- if (this.area === undefined) {
29
- this.parseXML();
26
+ var _a;
27
+ this.parse();
28
+ return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.area;
29
+ }
30
+ getObjectName() {
31
+ var _a;
32
+ this.parse();
33
+ return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectName;
34
+ }
35
+ getObjectType() {
36
+ var _a;
37
+ this.parse();
38
+ return (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectType;
39
+ }
40
+ parseType(reg) {
41
+ var _a, _b, _c;
42
+ this.parse();
43
+ const references = [];
44
+ const ddic = new ddic_1.DDIC(reg);
45
+ if (((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.objectName) && this.parsedXML.objectType === "S") {
46
+ const found = ddic.lookupTableOrView2(this.parsedXML.objectName);
47
+ if (found) {
48
+ references.push({ object: found });
49
+ reg.getDDICReferences().setUsing(this, references);
50
+ return found.parseType(reg);
51
+ }
52
+ else if (ddic.inErrorNamespace(this.parsedXML.objectName)) {
53
+ return new basic_1.UnknownType(this.parsedXML.objectName + " not found");
54
+ }
55
+ else {
56
+ return new basic_1.VoidType(this.parsedXML.objectName);
57
+ }
58
+ }
59
+ else if (((_b = this.parsedXML) === null || _b === void 0 ? void 0 : _b.objectType) !== "S" && ((_c = this.parsedXML) === null || _c === void 0 ? void 0 : _c.objectName)) {
60
+ return new basic_1.VoidType(this.parsedXML.objectName);
61
+ }
62
+ else {
63
+ return new basic_1.UnknownType("Parsing error");
30
64
  }
31
- return this.area;
32
65
  }
33
- ////////////
34
- parseXML() {
35
- if (this.getFiles().length === 0) {
36
- return;
66
+ parse() {
67
+ var _a, _b, _c, _d;
68
+ if (this.parsedXML) {
69
+ return { updated: false, runtime: 0 };
37
70
  }
38
- const xml = this.getFiles()[0].getRaw();
39
- const result = xml.match(/<AREA>([\w/]+)<\/AREA>/);
40
- if (result) {
41
- this.area = result[1];
71
+ const start = Date.now();
72
+ this.parsedXML = {};
73
+ const parsed = super.parseRaw2();
74
+ if (parsed === undefined
75
+ || parsed.abapGit === undefined
76
+ || parsed.abapGit["asx:abap"]["asx:values"] === undefined) {
77
+ return { updated: false, runtime: 0 };
42
78
  }
79
+ this.parsedXML.area = (_b = (_a = parsed.abapGit["asx:abap"]["asx:values"].TOBJ) === null || _a === void 0 ? void 0 : _a.TVDIR) === null || _b === void 0 ? void 0 : _b.AREA;
80
+ this.parsedXML.objectName = (_c = parsed.abapGit["asx:abap"]["asx:values"].OBJH) === null || _c === void 0 ? void 0 : _c.OBJECTNAME;
81
+ this.parsedXML.objectType = (_d = parsed.abapGit["asx:abap"]["asx:values"].OBJH) === null || _d === void 0 ? void 0 : _d.OBJECTTYPE;
82
+ const end = Date.now();
83
+ return { updated: true, runtime: end - start };
43
84
  }
44
85
  }
45
86
  exports.MaintenanceAndTransportObject = MaintenanceAndTransportObject;
@@ -63,7 +63,7 @@ class Registry {
63
63
  }
64
64
  static abaplintVersion() {
65
65
  // magic, see build script "version.sh"
66
- return "2.94.20";
66
+ return "2.94.22";
67
67
  }
68
68
  getDDICReferences() {
69
69
  return this.references;
@@ -42,6 +42,7 @@ class CheckDDIC {
42
42
  || obj instanceof Objects.View
43
43
  || obj instanceof Objects.AuthorizationCheckField
44
44
  || obj instanceof Objects.LockObject
45
+ || obj instanceof Objects.MaintenanceAndTransportObject
45
46
  || obj instanceof Objects.TableType) {
46
47
  found = obj.parseType(this.reg);
47
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.94.20",
3
+ "version": "2.94.22",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",