@abaplint/core 2.113.131 → 2.113.133
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 +55 -0
- package/build/src/abap/2_statements/expressions/corresponding_body.js +2 -1
- package/build/src/abap/2_statements/expressions/sql_function.js +1 -1
- package/build/src/abap/2_statements/expressions/type_structure.js +2 -1
- package/build/src/abap/2_statements/statements/commit_entities.js +1 -1
- package/build/src/abap/2_statements/statements/index.js +1 -0
- package/build/src/abap/2_statements/statements/input.js +12 -0
- package/build/src/abap/2_statements/statements/method_def.js +4 -6
- package/build/src/abap/5_syntax/basic_types.js +3 -0
- package/build/src/abap/5_syntax/expressions/select.js +4 -2
- package/build/src/abap/5_syntax/statements/read_table.js +3 -1
- package/build/src/objects/business_configuration_maintenance_object.js +21 -0
- package/build/src/objects/custom_data_browser_object.js +21 -0
- package/build/src/objects/gateway_odata_group_and_assignment.js +21 -0
- package/build/src/objects/index.js +5 -0
- package/build/src/objects/knowledge_transfer_document.js +21 -0
- package/build/src/objects/page_format.js +21 -0
- package/build/src/registry.js +1 -1
- package/build/src/rules/many_parentheses.js +12 -0
- package/package.json +4 -4
package/build/abaplint.d.ts
CHANGED
|
@@ -652,6 +652,15 @@ declare class BusinessCatalogAppAssignment extends AbstractObject {
|
|
|
652
652
|
getDescription(): string | undefined;
|
|
653
653
|
}
|
|
654
654
|
|
|
655
|
+
declare class BusinessConfigurationMaintenanceObject extends AbstractObject {
|
|
656
|
+
getType(): string;
|
|
657
|
+
getAllowedNaming(): {
|
|
658
|
+
maxLength: number;
|
|
659
|
+
allowNamespace: boolean;
|
|
660
|
+
};
|
|
661
|
+
getDescription(): string | undefined;
|
|
662
|
+
}
|
|
663
|
+
|
|
655
664
|
declare class BusinessConfigurationSet extends AbstractObject {
|
|
656
665
|
getType(): string;
|
|
657
666
|
getAllowedNaming(): {
|
|
@@ -1520,6 +1529,15 @@ export declare class CurrentScope {
|
|
|
1520
1529
|
pop(end: Position): SpaghettiScope;
|
|
1521
1530
|
}
|
|
1522
1531
|
|
|
1532
|
+
declare class CustomDataBrowserObject extends AbstractObject {
|
|
1533
|
+
getType(): string;
|
|
1534
|
+
getAllowedNaming(): {
|
|
1535
|
+
maxLength: number;
|
|
1536
|
+
allowNamespace: boolean;
|
|
1537
|
+
};
|
|
1538
|
+
getDescription(): string | undefined;
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1523
1541
|
declare class CustomerEnhancementProject extends AbstractObject {
|
|
1524
1542
|
getType(): string;
|
|
1525
1543
|
getAllowedNaming(): {
|
|
@@ -2852,6 +2870,15 @@ declare class GatewayModelMetadata extends AbstractObject {
|
|
|
2852
2870
|
getDescription(): string | undefined;
|
|
2853
2871
|
}
|
|
2854
2872
|
|
|
2873
|
+
declare class GatewayODataGroupAndAssignment extends AbstractObject {
|
|
2874
|
+
getType(): string;
|
|
2875
|
+
getAllowedNaming(): {
|
|
2876
|
+
maxLength: number;
|
|
2877
|
+
allowNamespace: boolean;
|
|
2878
|
+
};
|
|
2879
|
+
getDescription(): string | undefined;
|
|
2880
|
+
}
|
|
2881
|
+
|
|
2855
2882
|
declare class GatewayProject extends AbstractObject {
|
|
2856
2883
|
getType(): string;
|
|
2857
2884
|
getAllowedNaming(): {
|
|
@@ -3660,6 +3687,10 @@ export declare interface INode {
|
|
|
3660
3687
|
getLastToken(): Token;
|
|
3661
3688
|
}
|
|
3662
3689
|
|
|
3690
|
+
declare class Input implements IStatement {
|
|
3691
|
+
getMatcher(): IStatementRunnable;
|
|
3692
|
+
}
|
|
3693
|
+
|
|
3663
3694
|
declare class InsertDatabase implements IStatement {
|
|
3664
3695
|
getMatcher(): IStatementRunnable;
|
|
3665
3696
|
}
|
|
@@ -4135,6 +4166,15 @@ declare class KernelId extends Expression {
|
|
|
4135
4166
|
getRunnable(): IStatementRunnable;
|
|
4136
4167
|
}
|
|
4137
4168
|
|
|
4169
|
+
declare class KnowledgeTransferDocument extends AbstractObject {
|
|
4170
|
+
getType(): string;
|
|
4171
|
+
getAllowedNaming(): {
|
|
4172
|
+
maxLength: number;
|
|
4173
|
+
allowNamespace: boolean;
|
|
4174
|
+
};
|
|
4175
|
+
getDescription(): string | undefined;
|
|
4176
|
+
}
|
|
4177
|
+
|
|
4138
4178
|
declare class Language extends Expression {
|
|
4139
4179
|
getRunnable(): IStatementRunnable;
|
|
4140
4180
|
}
|
|
@@ -4913,6 +4953,7 @@ declare namespace Objects {
|
|
|
4913
4953
|
BusinessAddInImplementation,
|
|
4914
4954
|
BusinessCatalogAppAssignment,
|
|
4915
4955
|
BusinessCatalog,
|
|
4956
|
+
BusinessConfigurationMaintenanceObject,
|
|
4916
4957
|
BusinessConfigurationSet,
|
|
4917
4958
|
BusinessFunctionAssignment,
|
|
4918
4959
|
BusinessFunctionSetAssignment,
|
|
@@ -4931,6 +4972,7 @@ declare namespace Objects {
|
|
|
4931
4972
|
CompositeEnhancementImplementation,
|
|
4932
4973
|
CompositeEnhancementSpot,
|
|
4933
4974
|
ConceptsOfPackage,
|
|
4975
|
+
CustomDataBrowserObject,
|
|
4934
4976
|
CustomerEnhancementProject,
|
|
4935
4977
|
CustomizingAttributes,
|
|
4936
4978
|
CustomizingImgActivity,
|
|
@@ -4960,6 +5002,7 @@ declare namespace Objects {
|
|
|
4960
5002
|
FunctionGroup,
|
|
4961
5003
|
GatewayModelMetadata,
|
|
4962
5004
|
GatewayModel,
|
|
5005
|
+
GatewayODataGroupAndAssignment,
|
|
4963
5006
|
GatewayProject,
|
|
4964
5007
|
GatewayServiceGroupsMetadata,
|
|
4965
5008
|
GatewayService,
|
|
@@ -4980,6 +5023,7 @@ declare namespace Objects {
|
|
|
4980
5023
|
InfoArea,
|
|
4981
5024
|
InfoObject,
|
|
4982
5025
|
Interface,
|
|
5026
|
+
KnowledgeTransferDocument,
|
|
4983
5027
|
LockObject,
|
|
4984
5028
|
MaintenanceAndTransportObject,
|
|
4985
5029
|
MessageClass,
|
|
@@ -5015,6 +5059,7 @@ declare namespace Objects {
|
|
|
5015
5059
|
OutboundService,
|
|
5016
5060
|
PackageInterface,
|
|
5017
5061
|
Package,
|
|
5062
|
+
PageFormat,
|
|
5018
5063
|
Parameter,
|
|
5019
5064
|
PersonalizationObject,
|
|
5020
5065
|
Program,
|
|
@@ -5130,6 +5175,15 @@ declare class PackedType extends AbstractType {
|
|
|
5130
5175
|
toCDS(): string;
|
|
5131
5176
|
}
|
|
5132
5177
|
|
|
5178
|
+
declare class PageFormat extends AbstractObject {
|
|
5179
|
+
getType(): string;
|
|
5180
|
+
getAllowedNaming(): {
|
|
5181
|
+
maxLength: number;
|
|
5182
|
+
allowNamespace: boolean;
|
|
5183
|
+
};
|
|
5184
|
+
getDescription(): string | undefined;
|
|
5185
|
+
}
|
|
5186
|
+
|
|
5133
5187
|
declare class Parameter extends AbstractObject {
|
|
5134
5188
|
getType(): string;
|
|
5135
5189
|
getAllowedNaming(): {
|
|
@@ -6345,6 +6399,7 @@ declare namespace Statements {
|
|
|
6345
6399
|
ReadEntities,
|
|
6346
6400
|
RollbackEntities,
|
|
6347
6401
|
Summary,
|
|
6402
|
+
Input,
|
|
6348
6403
|
OnChange_2 as OnChange,
|
|
6349
6404
|
AtUserCommand,
|
|
6350
6405
|
Position_2 as Position,
|
|
@@ -11,7 +11,8 @@ class CorrespondingBody extends combi_1.Expression {
|
|
|
11
11
|
const mapping = (0, combi_1.seq)("MAPPING", (0, combi_1.plus)((0, combi_1.seq)(_1.ComponentName, "=", component_chain_1.ComponentChain)));
|
|
12
12
|
const baseParen = (0, combi_1.seq)("BASE", (0, combi_1.tok)(tokens_1.WParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
13
13
|
const discarding = (0, combi_1.ver)(version_1.Version.v751, "DISCARDING DUPLICATES");
|
|
14
|
-
return (0, combi_1.seq)((0, combi_1.optPrio)("DEEP"), (0, combi_1.optPrio)(baseParen), _1.Source, (0, combi_1.optPrio)(discarding), (0, combi_1.optPrio)(mapping), (0, combi_1.optPrio)("CHANGING CONTROL"), (0, combi_1.optPrio)(
|
|
14
|
+
return (0, combi_1.seq)((0, combi_1.optPrio)("DEEP"), (0, combi_1.optPrio)(baseParen), _1.Source, (0, combi_1.optPrio)(discarding), (0, combi_1.optPrio)(mapping), (0, combi_1.optPrio)("CHANGING CONTROL"), (0, combi_1.optPrio)("MAPPING FROM ENTITY USING CONTROL"), // todo, version something?
|
|
15
|
+
(0, combi_1.optPrio)((0, combi_1.seq)("EXCEPT", (0, combi_1.alt)((0, combi_1.plus)(_1.Field), "*"))));
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
exports.CorrespondingBody = CorrespondingBody;
|
|
@@ -8,7 +8,7 @@ const integer_1 = require("./integer");
|
|
|
8
8
|
const sql_function_input_1 = require("./sql_function_input");
|
|
9
9
|
class SQLFunction extends combi_1.Expression {
|
|
10
10
|
getRunnable() {
|
|
11
|
-
const castTypes = (0, combi_1.altPrio)((0, combi_1.seq)("CHAR", (0, combi_1.optPrio)((0, combi_1.seq)((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)), (0, combi_1.seq)("NUMC", (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)))), "FLTP", "INT2", "INT8");
|
|
11
|
+
const castTypes = (0, combi_1.altPrio)((0, combi_1.seq)("CHAR", (0, combi_1.optPrio)((0, combi_1.seq)((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)), (0, combi_1.seq)("NUMC", (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)))), "FLTP", "INT2", "INT4", "INT8");
|
|
12
12
|
const commaParam = (0, combi_1.seq)(",", sql_function_input_1.SQLFunctionInput);
|
|
13
13
|
// note: the function names are not keywords, they are usually in lower case
|
|
14
14
|
const abs = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^abs$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
@@ -18,7 +18,8 @@ class TypeStructure extends combi_1.Expression {
|
|
|
18
18
|
const reportedEarly = (0, combi_1.seq)("REPORTED EARLY", _1.NamespaceSimpleName);
|
|
19
19
|
const structure = (0, combi_1.seq)("STRUCTURE FOR", (0, combi_1.altPrio)(hier, evt, create, update, action, permissionsRequest, readResult));
|
|
20
20
|
const response = (0, combi_1.seq)("RESPONSE FOR", (0, combi_1.altPrio)(failedEarly, mappedEarly, reportedEarly));
|
|
21
|
-
|
|
21
|
+
const request = (0, combi_1.seq)("REQUEST FOR CHANGE", _1.NamespaceSimpleName);
|
|
22
|
+
return (0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(structure, response, request));
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
exports.TypeStructure = TypeStructure;
|
|
@@ -9,7 +9,7 @@ class CommitEntities {
|
|
|
9
9
|
const failed = (0, combi_1.seq)("FAILED", expressions_1.Target);
|
|
10
10
|
const reported = (0, combi_1.seq)("REPORTED", expressions_1.Target);
|
|
11
11
|
const responses = (0, combi_1.seq)("RESPONSES", failed, reported);
|
|
12
|
-
const s = (0, combi_1.seq)("COMMIT ENTITIES", (0, combi_1.optPrio)("IN SIMULATION MODE"), (0, combi_1.opt)(responses), (0, combi_1.opt)((0, combi_1.seq)("RESPONSE OF", expressions_1.NamespaceSimpleName, failed, reported)));
|
|
12
|
+
const s = (0, combi_1.seq)("COMMIT ENTITIES", (0, combi_1.optPrio)("IN SIMULATION MODE"), (0, combi_1.opt)(responses), (0, combi_1.opt)((0, combi_1.seq)("RESPONSE OF", expressions_1.NamespaceSimpleName, (0, combi_1.per)(failed, reported))));
|
|
13
13
|
return (0, combi_1.ver)(version_1.Version.v754, s);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -105,6 +105,7 @@ __exportStar(require("./modify_entities"), exports);
|
|
|
105
105
|
__exportStar(require("./read_entities"), exports);
|
|
106
106
|
__exportStar(require("./rollback_entities"), exports);
|
|
107
107
|
__exportStar(require("./summary"), exports);
|
|
108
|
+
__exportStar(require("./input"), exports);
|
|
108
109
|
__exportStar(require("./on_change"), exports);
|
|
109
110
|
__exportStar(require("./at_user_command"), exports);
|
|
110
111
|
__exportStar(require("./position"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Input = void 0;
|
|
4
|
+
const combi_1 = require("../combi");
|
|
5
|
+
const version_1 = require("../../../version");
|
|
6
|
+
class Input {
|
|
7
|
+
getMatcher() {
|
|
8
|
+
return (0, combi_1.verNot)(version_1.Version.Cloud, "INPUT");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.Input = Input;
|
|
12
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -9,20 +9,18 @@ class MethodDef {
|
|
|
9
9
|
const def = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("DEFAULT", (0, combi_1.altPrio)("FAIL", "IGNORE")));
|
|
10
10
|
const parameters = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)("FINAL", def, expressions_1.Abstract)), (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefChanging), (0, combi_1.optPrio)(expressions_1.MethodDefReturning), (0, combi_1.optPrio)((0, combi_1.altPrio)(expressions_1.MethodDefRaising, expressions_1.MethodDefExceptions)));
|
|
11
11
|
const testing = (0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), "FOR TESTING", (0, combi_1.optPrio)((0, combi_1.altPrio)(expressions_1.MethodDefRaising, expressions_1.MethodDefExceptions)));
|
|
12
|
-
// todo, this is only from version something
|
|
13
|
-
const tableFunction = (0, combi_1.seq)("TABLE FUNCTION", expressions_1.NamespaceSimpleName);
|
|
14
|
-
// todo, this is only from version something
|
|
15
|
-
const ddl = "DDL OBJECT OPTIONS CDS SESSION CLIENT REQUIRED";
|
|
16
12
|
const result = (0, combi_1.seq)("RESULT", expressions_1.MethodParamName);
|
|
17
13
|
const link = (0, combi_1.seq)("LINK", expressions_1.MethodParamName);
|
|
18
14
|
const full = (0, combi_1.seq)("FULL", expressions_1.MethodParamName);
|
|
19
15
|
const modify = (0, combi_1.alt)((0, combi_1.seq)("FOR ACTION", expressions_1.TypeName, (0, combi_1.optPrio)(result)), (0, combi_1.seq)("FOR CREATE", (0, combi_1.alt)(expressions_1.TypeName, expressions_1.EntityAssociation)), (0, combi_1.seq)("FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("FOR UPDATE", expressions_1.TypeName));
|
|
20
16
|
const forRead = (0, combi_1.seq)("FOR READ", (0, combi_1.alt)(expressions_1.TypeName, expressions_1.EntityAssociation), (0, combi_1.optPrio)(full), result, (0, combi_1.optPrio)(link));
|
|
21
17
|
const forfunction = (0, combi_1.seq)("FOR FUNCTION", expressions_1.TypeName, result);
|
|
22
|
-
const behavior = (0, combi_1.altPrio)(
|
|
18
|
+
const behavior = (0, combi_1.altPrio)("DDL OBJECT OPTIONS CDS SESSION CLIENT REQUIRED", // todo, this is only from version something
|
|
19
|
+
(0, combi_1.seq)("TABLE FUNCTION", expressions_1.NamespaceSimpleName), // todo, this is only from version something
|
|
20
|
+
(0, combi_1.seq)("VALIDATE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("MODIFY IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("PRECHECK IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("READ IMPORTING", expressions_1.MethodParamName, (0, combi_1.altPrio)(forRead, forfunction)), (0, combi_1.seq)("FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.NamespaceSimpleName, "FOR", expressions_1.NamespaceSimpleName, result), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR CREATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR UPDATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR READ", expressions_1.TypeName, result), (0, combi_1.seq)((0, combi_1.alt)("BEHAVIOR", "LOCK"), "IMPORTING", expressions_1.MethodParamName, "FOR LOCK", expressions_1.TypeName), (0, combi_1.seq)("DETERMINE", (0, combi_1.alt)("ON MODIFY", "ON SAVE"), "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("GLOBAL AUTHORIZATION IMPORTING REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE AUTHORIZATION IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result));
|
|
23
21
|
// todo, this is only from version something
|
|
24
22
|
const amdp = (0, combi_1.seq)("AMDP OPTIONS", (0, combi_1.optPrio)("READ-ONLY"), "CDS SESSION CLIENT CURRENT", (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefRaising));
|
|
25
|
-
const ret = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), (0, combi_1.optPrio)(def), expressions_1.EventHandler), parameters, testing, (0, combi_1.seq)("FOR",
|
|
23
|
+
const ret = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), (0, combi_1.optPrio)(def), expressions_1.EventHandler), parameters, testing, (0, combi_1.seq)("FOR", behavior), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
|
|
26
24
|
return ret;
|
|
27
25
|
}
|
|
28
26
|
}
|
|
@@ -513,6 +513,9 @@ class BasicTypes {
|
|
|
513
513
|
if (found && this.isOccurs(node)) {
|
|
514
514
|
found = new Types.TableType(found, { withHeader: text.includes("WITH HEADER LINE"), keyType: Types.TableKeyType.default }, qualifiedName);
|
|
515
515
|
}
|
|
516
|
+
else if (text.endsWith(" WITH HEADER LINE") && found instanceof Types.TableType) {
|
|
517
|
+
found = new Types.TableType(found.getRowType(), { withHeader: true, keyType: Types.TableKeyType.default }, qualifiedName);
|
|
518
|
+
}
|
|
516
519
|
}
|
|
517
520
|
else if (text.startsWith("TYPE LINE OF ")) {
|
|
518
521
|
const sub = node.findFirstExpression(Expressions.TypeName);
|
|
@@ -252,10 +252,12 @@ class Select {
|
|
|
252
252
|
var _a, _b;
|
|
253
253
|
let expr = undefined;
|
|
254
254
|
const ret = [];
|
|
255
|
-
|
|
256
|
-
if (expr === undefined) {
|
|
255
|
+
if (node.get() instanceof Expressions.SelectLoop) {
|
|
257
256
|
expr = node.findFirstExpression(Expressions.SQLFieldListLoop);
|
|
258
257
|
}
|
|
258
|
+
else {
|
|
259
|
+
expr = node.findFirstExpression(Expressions.SQLFieldList);
|
|
260
|
+
}
|
|
259
261
|
if (((_a = expr === null || expr === void 0 ? void 0 : expr.getFirstChild()) === null || _a === void 0 ? void 0 : _a.get()) instanceof Expressions.Dynamic) {
|
|
260
262
|
dynamic_1.Dynamic.runSyntax(expr.getFirstChild(), input);
|
|
261
263
|
}
|
|
@@ -62,7 +62,9 @@ class ReadTable {
|
|
|
62
62
|
}
|
|
63
63
|
const type = source_1.Source.runSyntax(s, input);
|
|
64
64
|
if (s === afterKey) {
|
|
65
|
-
if (type instanceof basic_1.StringType
|
|
65
|
+
if (type instanceof basic_1.StringType
|
|
66
|
+
|| (type instanceof basic_1.TableType && type.isWithHeader() === false)
|
|
67
|
+
|| type instanceof basic_1.ObjectReferenceType) {
|
|
66
68
|
const message = "Key cannot be string or table or reference";
|
|
67
69
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, s.getFirstToken(), message));
|
|
68
70
|
return;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BusinessConfigurationMaintenanceObject = void 0;
|
|
4
|
+
const _abstract_object_1 = require("./_abstract_object");
|
|
5
|
+
class BusinessConfigurationMaintenanceObject extends _abstract_object_1.AbstractObject {
|
|
6
|
+
getType() {
|
|
7
|
+
return "SMBC";
|
|
8
|
+
}
|
|
9
|
+
getAllowedNaming() {
|
|
10
|
+
return {
|
|
11
|
+
maxLength: 60, // todo
|
|
12
|
+
allowNamespace: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
getDescription() {
|
|
16
|
+
// todo
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.BusinessConfigurationMaintenanceObject = BusinessConfigurationMaintenanceObject;
|
|
21
|
+
//# sourceMappingURL=business_configuration_maintenance_object.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomDataBrowserObject = void 0;
|
|
4
|
+
const _abstract_object_1 = require("./_abstract_object");
|
|
5
|
+
class CustomDataBrowserObject extends _abstract_object_1.AbstractObject {
|
|
6
|
+
getType() {
|
|
7
|
+
return "CDBO";
|
|
8
|
+
}
|
|
9
|
+
getAllowedNaming() {
|
|
10
|
+
return {
|
|
11
|
+
maxLength: 32,
|
|
12
|
+
allowNamespace: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
getDescription() {
|
|
16
|
+
// todo
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.CustomDataBrowserObject = CustomDataBrowserObject;
|
|
21
|
+
//# sourceMappingURL=custom_data_browser_object.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GatewayODataGroupAndAssignment = void 0;
|
|
4
|
+
const _abstract_object_1 = require("./_abstract_object");
|
|
5
|
+
class GatewayODataGroupAndAssignment extends _abstract_object_1.AbstractObject {
|
|
6
|
+
getType() {
|
|
7
|
+
return "G4BA";
|
|
8
|
+
}
|
|
9
|
+
getAllowedNaming() {
|
|
10
|
+
return {
|
|
11
|
+
maxLength: 32,
|
|
12
|
+
allowNamespace: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
getDescription() {
|
|
16
|
+
// todo
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.GatewayODataGroupAndAssignment = GatewayODataGroupAndAssignment;
|
|
21
|
+
//# sourceMappingURL=gateway_odata_group_and_assignment.js.map
|
|
@@ -38,6 +38,7 @@ __exportStar(require("./bsp_application"), exports);
|
|
|
38
38
|
__exportStar(require("./business_add_in_implementation"), exports);
|
|
39
39
|
__exportStar(require("./business_catalog_app_assignment"), exports);
|
|
40
40
|
__exportStar(require("./business_catalog"), exports);
|
|
41
|
+
__exportStar(require("./business_configuration_maintenance_object"), exports);
|
|
41
42
|
__exportStar(require("./business_configuration_set"), exports);
|
|
42
43
|
__exportStar(require("./business_function_assignment"), exports);
|
|
43
44
|
__exportStar(require("./business_function_set_assignment"), exports);
|
|
@@ -54,6 +55,7 @@ __exportStar(require("./communication_scenario"), exports);
|
|
|
54
55
|
__exportStar(require("./composite_enhancement_implementation"), exports);
|
|
55
56
|
__exportStar(require("./composite_enhancement_spot"), exports);
|
|
56
57
|
__exportStar(require("./concepts_of_package"), exports);
|
|
58
|
+
__exportStar(require("./custom_data_browser_object"), exports);
|
|
57
59
|
__exportStar(require("./customer_enhancement_project"), exports);
|
|
58
60
|
__exportStar(require("./customizing_attributes"), exports);
|
|
59
61
|
__exportStar(require("./customizing_img_activity"), exports);
|
|
@@ -81,6 +83,7 @@ __exportStar(require("./format_type"), exports);
|
|
|
81
83
|
__exportStar(require("./function_group"), exports);
|
|
82
84
|
__exportStar(require("./gateway_model_metadata"), exports);
|
|
83
85
|
__exportStar(require("./gateway_model"), exports);
|
|
86
|
+
__exportStar(require("./gateway_odata_group_and_assignment"), exports);
|
|
84
87
|
__exportStar(require("./gateway_project"), exports);
|
|
85
88
|
__exportStar(require("./gateway_service_groups_metadata"), exports);
|
|
86
89
|
__exportStar(require("./gateway_service"), exports);
|
|
@@ -101,6 +104,7 @@ __exportStar(require("./inbound_service"), exports);
|
|
|
101
104
|
__exportStar(require("./info_area"), exports);
|
|
102
105
|
__exportStar(require("./info_object"), exports);
|
|
103
106
|
__exportStar(require("./interface"), exports);
|
|
107
|
+
__exportStar(require("./knowledge_transfer_document"), exports);
|
|
104
108
|
__exportStar(require("./lock_object"), exports);
|
|
105
109
|
__exportStar(require("./maintenance_and_transport_object"), exports);
|
|
106
110
|
__exportStar(require("./message_class"), exports);
|
|
@@ -136,6 +140,7 @@ __exportStar(require("./object_characteristic"), exports);
|
|
|
136
140
|
__exportStar(require("./outbound_service"), exports);
|
|
137
141
|
__exportStar(require("./package_interface"), exports);
|
|
138
142
|
__exportStar(require("./package"), exports);
|
|
143
|
+
__exportStar(require("./page_format"), exports);
|
|
139
144
|
__exportStar(require("./parameter"), exports);
|
|
140
145
|
__exportStar(require("./personalization_object"), exports);
|
|
141
146
|
__exportStar(require("./program"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KnowledgeTransferDocument = void 0;
|
|
4
|
+
const _abstract_object_1 = require("./_abstract_object");
|
|
5
|
+
class KnowledgeTransferDocument extends _abstract_object_1.AbstractObject {
|
|
6
|
+
getType() {
|
|
7
|
+
return "SKTD";
|
|
8
|
+
}
|
|
9
|
+
getAllowedNaming() {
|
|
10
|
+
return {
|
|
11
|
+
maxLength: 60, // todo
|
|
12
|
+
allowNamespace: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
getDescription() {
|
|
16
|
+
// todo
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.KnowledgeTransferDocument = KnowledgeTransferDocument;
|
|
21
|
+
//# sourceMappingURL=knowledge_transfer_document.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PageFormat = void 0;
|
|
4
|
+
const _abstract_object_1 = require("./_abstract_object");
|
|
5
|
+
class PageFormat extends _abstract_object_1.AbstractObject {
|
|
6
|
+
getType() {
|
|
7
|
+
return "SPPF";
|
|
8
|
+
}
|
|
9
|
+
getAllowedNaming() {
|
|
10
|
+
return {
|
|
11
|
+
maxLength: 30,
|
|
12
|
+
allowNamespace: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
getDescription() {
|
|
16
|
+
// todo
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.PageFormat = PageFormat;
|
|
21
|
+
//# sourceMappingURL=page_format.js.map
|
package/build/src/registry.js
CHANGED
|
@@ -116,6 +116,7 @@ ENDIF.
|
|
|
116
116
|
return issues;
|
|
117
117
|
}
|
|
118
118
|
analyze(file, cond) {
|
|
119
|
+
var _a, _b;
|
|
119
120
|
const issues = [];
|
|
120
121
|
let comparator = "";
|
|
121
122
|
let found = false;
|
|
@@ -141,6 +142,17 @@ ENDIF.
|
|
|
141
142
|
found = true; // dont report for the simple case that contains quick fixes
|
|
142
143
|
}
|
|
143
144
|
}
|
|
145
|
+
else if (c instanceof nodes_1.ExpressionNode
|
|
146
|
+
&& c.get() instanceof Expressions.Compare
|
|
147
|
+
&& ((_a = c.getFirstChild()) === null || _a === void 0 ? void 0 : _a.get()) instanceof Expressions.Source
|
|
148
|
+
&& c.getChildren().length === 3) {
|
|
149
|
+
const concat = (_b = c.getFirstChild()) === null || _b === void 0 ? void 0 : _b.concatTokens();
|
|
150
|
+
if ((concat === null || concat === void 0 ? void 0 : concat.startsWith("(")) && concat.endsWith(")")) {
|
|
151
|
+
const message = "Parentheses can be removed";
|
|
152
|
+
const issue = issue_1.Issue.atToken(file, c.getFirstToken(), message, this.getMetadata().key, this.conf.severity);
|
|
153
|
+
issues.push(issue);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
144
156
|
if (comparator === "") {
|
|
145
157
|
comparator = current;
|
|
146
158
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.113.
|
|
3
|
+
"version": "2.113.133",
|
|
4
4
|
"description": "abaplint - Core API",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"typings": "build/abaplint.d.ts",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"@microsoft/api-extractor": "^7.52.8",
|
|
54
54
|
"@types/chai": "^4.3.20",
|
|
55
55
|
"@types/mocha": "^10.0.10",
|
|
56
|
-
"@types/node": "^24.0.
|
|
56
|
+
"@types/node": "^24.0.7",
|
|
57
57
|
"chai": "^4.5.0",
|
|
58
|
-
"eslint": "^9.
|
|
59
|
-
"mocha": "^11.
|
|
58
|
+
"eslint": "^9.30.0",
|
|
59
|
+
"mocha": "^11.7.1",
|
|
60
60
|
"c8": "^10.1.3",
|
|
61
61
|
"source-map-support": "^0.5.21",
|
|
62
62
|
"ts-json-schema-generator": "^2.4.0",
|