@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.
@@ -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)((0, combi_1.seq)("EXCEPT", (0, combi_1.alt)((0, combi_1.plus)(_1.Field), "*"))));
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
- return (0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(structure, response));
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)((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)("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));
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", (0, combi_1.alt)(tableFunction, ddl, behavior)), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
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
- expr = node.findFirstExpression(Expressions.SQLFieldList);
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 || type instanceof basic_1.TableType || type instanceof basic_1.ObjectReferenceType) {
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
@@ -67,7 +67,7 @@ class Registry {
67
67
  }
68
68
  static abaplintVersion() {
69
69
  // magic, see build script "version.sh"
70
- return "2.113.131";
70
+ return "2.113.133";
71
71
  }
72
72
  getDDICReferences() {
73
73
  return this.ddicReferences;
@@ -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.131",
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.1",
56
+ "@types/node": "^24.0.7",
57
57
  "chai": "^4.5.0",
58
- "eslint": "^9.29.0",
59
- "mocha": "^11.6.0",
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",