@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.
- package/build/abaplint.d.ts +10 -2
- package/build/src/abap/2_statements/expressions/sql_field_list_loop.js +1 -1
- package/build/src/abap/2_statements/expressions/sql_function.js +1 -1
- package/build/src/cds/expressions/cds_define_custom.js +1 -1
- package/build/src/objects/authorization_check_field.js +4 -0
- package/build/src/objects/lock_object.js +4 -0
- package/build/src/objects/maintenance_and_transport_object.js +57 -16
- package/build/src/registry.js +1 -1
- package/build/src/rules/check_ddic.js +1 -0
- package/package.json +1 -1
package/build/abaplint.d.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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;
|
|
@@ -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.
|
|
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
|
-
|
|
29
|
-
|
|
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
|
-
|
|
35
|
-
if (this.
|
|
36
|
-
return;
|
|
66
|
+
parse() {
|
|
67
|
+
var _a, _b, _c, _d;
|
|
68
|
+
if (this.parsedXML) {
|
|
69
|
+
return { updated: false, runtime: 0 };
|
|
37
70
|
}
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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;
|
package/build/src/registry.js
CHANGED
|
@@ -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
|
}
|