@abaplint/core 2.113.116 → 2.113.118

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.
@@ -1625,6 +1625,7 @@ declare class DataDefinition_2 extends Expression {
1625
1625
 
1626
1626
  declare class DataElement extends AbstractObject {
1627
1627
  private parsedXML;
1628
+ private parsedType;
1628
1629
  getType(): string;
1629
1630
  getDescription(): string | undefined;
1630
1631
  getAllowedNaming(): {
@@ -3514,6 +3515,15 @@ declare interface InfoAlias {
3514
3515
  component: string;
3515
3516
  }
3516
3517
 
3518
+ declare class InfoArea extends AbstractObject {
3519
+ getType(): string;
3520
+ getAllowedNaming(): {
3521
+ maxLength: number;
3522
+ allowNamespace: boolean;
3523
+ };
3524
+ getDescription(): string | undefined;
3525
+ }
3526
+
3517
3527
  declare interface InfoAttribute {
3518
3528
  name: string;
3519
3529
  identifier: Identifier;
@@ -4874,6 +4884,7 @@ declare namespace Objects {
4874
4884
  ABAPQueryQuery,
4875
4885
  ActivationVariant,
4876
4886
  APIReleaseState,
4887
+ ApplicationDescriptorsFiori,
4877
4888
  ApplicationJobCatalogEntry,
4878
4889
  ApplicationJobTemplate,
4879
4890
  ApplicationLogObject,
@@ -4882,11 +4893,11 @@ declare namespace Objects {
4882
4893
  ATCCheckObject,
4883
4894
  ATCCheckVariant,
4884
4895
  AuthorizationCheckField,
4885
- ApplicationDescriptorsFiori,
4886
4896
  AuthorizationGroup,
4887
4897
  AuthorizationObjectClass,
4888
4898
  AuthorizationObjectExtension,
4889
4899
  AuthorizationObject,
4900
+ BADIDefinition,
4890
4901
  BehaviorDefinition,
4891
4902
  BRFPlusSystemApplication,
4892
4903
  BSPApplication,
@@ -4900,8 +4911,6 @@ declare namespace Objects {
4900
4911
  BusinessObjectType,
4901
4912
  ParsedMetadataExtension,
4902
4913
  CDSMetadataExtension,
4903
- BADIDefinition,
4904
- EntityType,
4905
4914
  CDSType,
4906
4915
  ChangeDocument,
4907
4916
  ChapterOfBookStructure,
@@ -4931,6 +4940,7 @@ declare namespace Objects {
4931
4940
  EnhancementImplementation,
4932
4941
  IBadiDefinition,
4933
4942
  EnhancementSpot,
4943
+ EntityType,
4934
4944
  EventBinding,
4935
4945
  EventConsumer,
4936
4946
  ExtensionIndex,
@@ -4943,7 +4953,6 @@ declare namespace Objects {
4943
4953
  GatewayModel,
4944
4954
  GatewayProject,
4945
4955
  GatewayServiceGroupsMetadata,
4946
- WebReportingTemplate,
4947
4956
  GatewayService,
4948
4957
  GatewayVocabularyAnnotation,
4949
4958
  GeneralHierarchyStorageExtrensionName,
@@ -4959,6 +4968,7 @@ declare namespace Objects {
4959
4968
  IdocExtension,
4960
4969
  Idoc,
4961
4970
  InboundService,
4971
+ InfoArea,
4962
4972
  InfoObject,
4963
4973
  Interface,
4964
4974
  LockObject,
@@ -5033,7 +5043,8 @@ declare namespace Objects {
5033
5043
  WebDynproApplication,
5034
5044
  WebDynproComponentConfiguration,
5035
5045
  WebDynproComponent,
5036
- WebMIME
5046
+ WebMIME,
5047
+ WebReportingTemplate
5037
5048
  }
5038
5049
  }
5039
5050
  export { Objects }
@@ -6816,6 +6827,7 @@ declare class SystemCall implements IStatement {
6816
6827
 
6817
6828
  declare class Table extends AbstractObject {
6818
6829
  private parsedData;
6830
+ private parsedType;
6819
6831
  getType(): string;
6820
6832
  getDescription(): string | undefined;
6821
6833
  getAllowedNaming(): IAllowedNaming;
@@ -6,9 +6,9 @@ const expressions_1 = require("../expressions");
6
6
  class Add {
7
7
  getMatcher() {
8
8
  const to = (0, combi_1.seq)("TO", expressions_1.Target);
9
- const accordingTo = (0, combi_1.seq)("ACCORDING TO", expressions_1.FieldSub);
10
- const giving = (0, combi_1.seq)("GIVING", expressions_1.FieldSub, (0, combi_1.opt)(accordingTo));
11
- const then = (0, combi_1.seq)("THEN", expressions_1.FieldSub, "UNTIL", expressions_1.FieldSub, (0, combi_1.alt)(giving, to));
9
+ const accordingTo = (0, combi_1.seq)("ACCORDING TO", expressions_1.Source);
10
+ const giving = (0, combi_1.seq)("GIVING", expressions_1.Source);
11
+ const then = (0, combi_1.seq)("THEN", expressions_1.Source, "UNTIL", expressions_1.Source, (0, combi_1.opt)((0, combi_1.per)(giving, accordingTo)), (0, combi_1.opt)(to));
12
12
  const ret = (0, combi_1.seq)("ADD", expressions_1.Source, (0, combi_1.altPrio)(to, then));
13
13
  return ret;
14
14
  }
@@ -8,8 +8,9 @@ class DynproLoop {
8
8
  const into = (0, combi_1.seq)("INTO", simple_source2_1.SimpleSource2);
9
9
  const cursor = (0, combi_1.seq)("CURSOR", simple_source2_1.SimpleSource2);
10
10
  const withControl = (0, combi_1.seq)("WITH CONTROL", simple_source2_1.SimpleSource2);
11
- const fromTo = (0, combi_1.seq)("FROM", simple_source2_1.SimpleSource2, "TO", simple_source2_1.SimpleSource2);
12
- return (0, combi_1.seq)("LOOP AT", simple_source2_1.SimpleSource2, (0, combi_1.per)(into, withControl, cursor, fromTo));
11
+ const from = (0, combi_1.seq)("FROM", simple_source2_1.SimpleSource2);
12
+ const to = (0, combi_1.seq)("TO", simple_source2_1.SimpleSource2);
13
+ return (0, combi_1.seq)("LOOP AT", simple_source2_1.SimpleSource2, (0, combi_1.per)(into, withControl, cursor, from, to));
13
14
  }
14
15
  }
15
16
  exports.DynproLoop = DynproLoop;
@@ -9,7 +9,8 @@ class Field {
9
9
  getMatcher() {
10
10
  const module = (0, combi_1.seq)("MODULE", expressions_1.FormName, (0, combi_1.opt)((0, combi_1.alt)("ON INPUT", "ON REQUEST", "ON CHAIN-REQUEST")));
11
11
  const values = (0, combi_1.seq)("VALUES", (0, combi_1.tok)(tokens_1.WParenLeft), "BETWEEN", expressions_1.Constant, "AND", expressions_1.Constant, (0, combi_1.tok)(tokens_1.ParenRightW));
12
- const ret = (0, combi_1.seq)("FIELD", expressions_1.FieldChain, (0, combi_1.opt)((0, combi_1.alt)(module, values)));
12
+ const wit = (0, combi_1.seq)("WITH", expressions_1.FieldChain);
13
+ const ret = (0, combi_1.seq)("FIELD", expressions_1.FieldChain, (0, combi_1.opt)((0, combi_1.altPrio)(module, values, wit)));
13
14
  return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
14
15
  }
15
16
  }
@@ -4,9 +4,10 @@ exports.ProcessAfterInput = void 0;
4
4
  const Statements = require("../../2_statements/statements");
5
5
  const _combi_1 = require("./_combi");
6
6
  const chain_1 = require("./chain");
7
+ const loop_1 = require("./loop");
7
8
  class ProcessAfterInput {
8
9
  getMatcher() {
9
- const pai = (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.Module), (0, _combi_1.sta)(Statements.Field), (0, _combi_1.sta)(Statements.CallSubscreen), (0, _combi_1.sub)(chain_1.Chain)));
10
+ const pai = (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.Module), (0, _combi_1.sta)(Statements.Field), (0, _combi_1.sta)(Statements.CallSubscreen), (0, _combi_1.sub)(chain_1.Chain), (0, _combi_1.sub)(loop_1.Loop)));
10
11
  return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.ProcessAfterInput), pai);
11
12
  }
12
13
  }
@@ -25,11 +25,11 @@ class FindGlobalDefinitions {
25
25
  candidates.push(o);
26
26
  }
27
27
  else if (o instanceof objects_1.DataElement
28
- || o instanceof objects_1.View
28
+ || o instanceof objects_1.Table
29
29
  || o instanceof objects_1.TableType
30
+ || o instanceof objects_1.View
30
31
  || o instanceof objects_1.LockObject
31
- || o instanceof objects_1.AuthorizationCheckField
32
- || o instanceof objects_1.Table) {
32
+ || o instanceof objects_1.AuthorizationCheckField) {
33
33
  o.parseType(this.reg); // make sure the references are set after parsing finishes
34
34
  }
35
35
  }
@@ -8,6 +8,7 @@ const source_1 = require("../expressions/source");
8
8
  const target_1 = require("../expressions/target");
9
9
  const _syntax_input_1 = require("../_syntax_input");
10
10
  const assert_error_1 = require("../assert_error");
11
+ const dynamic_1 = require("../expressions/dynamic");
11
12
  class Perform {
12
13
  runSyntax(node, input) {
13
14
  if (!(node.get() instanceof Statements.Perform)) {
@@ -35,7 +36,9 @@ class Perform {
35
36
  if (node.findFirstExpression(Expressions.IncludeName)) {
36
37
  return; // in external program, not checked, todo
37
38
  }
38
- if (node.findFirstExpression(Expressions.Dynamic)) {
39
+ const dynamic = node.findFirstExpression(Expressions.Dynamic);
40
+ if (dynamic) {
41
+ new dynamic_1.Dynamic().runSyntax(dynamic, input);
39
42
  return; // todo, maybe some parts can be checked
40
43
  }
41
44
  const expr = node.findFirstExpression(Expressions.FormName);
@@ -8,6 +8,7 @@ class DataElement extends _abstract_object_1.AbstractObject {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  this.parsedXML = undefined;
11
+ this.parsedType = undefined;
11
12
  }
12
13
  getType() {
13
14
  return "DTEL";
@@ -25,6 +26,7 @@ class DataElement extends _abstract_object_1.AbstractObject {
25
26
  }
26
27
  setDirty() {
27
28
  this.parsedXML = undefined;
29
+ this.parsedType = undefined;
28
30
  super.setDirty();
29
31
  }
30
32
  getDomainName() {
@@ -45,6 +47,9 @@ class DataElement extends _abstract_object_1.AbstractObject {
45
47
  lookup = { type: new Types.UnknownType("Data Element " + this.getName() + ", parser error") };
46
48
  }
47
49
  else {
50
+ if (this.parsedType) {
51
+ return this.parsedType;
52
+ }
48
53
  const ddic = new ddic_1.DDIC(reg);
49
54
  if (this.parsedXML.refkind === "D") {
50
55
  if (this.parsedXML.domname === undefined || this.parsedXML.domname === "") {
@@ -84,7 +89,8 @@ class DataElement extends _abstract_object_1.AbstractObject {
84
89
  references.push({ object: lookup.object });
85
90
  }
86
91
  reg.getDDICReferences().setUsing(this, references);
87
- return lookup.type;
92
+ this.parsedType = lookup.type;
93
+ return this.parsedType;
88
94
  }
89
95
  parse() {
90
96
  var _a, _b, _c;
@@ -18,6 +18,7 @@ __exportStar(require("./abap_query_functional_area"), exports);
18
18
  __exportStar(require("./abap_query_query"), exports);
19
19
  __exportStar(require("./activation_variant"), exports);
20
20
  __exportStar(require("./api_release_state"), exports);
21
+ __exportStar(require("./application_descriptors_fiori"), exports);
21
22
  __exportStar(require("./application_job_catalog_entry"), exports);
22
23
  __exportStar(require("./application_job_template"), exports);
23
24
  __exportStar(require("./application_log_object"), exports);
@@ -26,11 +27,11 @@ __exportStar(require("./atc_check_category"), exports);
26
27
  __exportStar(require("./atc_check_object"), exports);
27
28
  __exportStar(require("./atc_check_variant"), exports);
28
29
  __exportStar(require("./authorization_check_field"), exports);
29
- __exportStar(require("./application_descriptors_fiori"), exports);
30
30
  __exportStar(require("./authorization_group"), exports);
31
31
  __exportStar(require("./authorization_object_class"), exports);
32
32
  __exportStar(require("./authorization_object_extension"), exports);
33
33
  __exportStar(require("./authorization_object"), exports);
34
+ __exportStar(require("./badi_definition"), exports);
34
35
  __exportStar(require("./behavior_definition"), exports);
35
36
  __exportStar(require("./brf_plus_system_application"), exports);
36
37
  __exportStar(require("./bsp_application"), exports);
@@ -43,8 +44,6 @@ __exportStar(require("./business_function_set_assignment"), exports);
43
44
  __exportStar(require("./business_object_model"), exports);
44
45
  __exportStar(require("./business_object_type"), exports);
45
46
  __exportStar(require("./cds_metadata_extension"), exports);
46
- __exportStar(require("./badi_definition"), exports);
47
- __exportStar(require("./entity_type"), exports);
48
47
  __exportStar(require("./cds_type"), exports);
49
48
  __exportStar(require("./change_document"), exports);
50
49
  __exportStar(require("./chapter_of_book_structure"), exports);
@@ -70,6 +69,7 @@ __exportStar(require("./ecatt_test_data_container"), exports);
70
69
  __exportStar(require("./ecatt_test_script"), exports);
71
70
  __exportStar(require("./enhancement_implementation"), exports);
72
71
  __exportStar(require("./enhancement_spot"), exports);
72
+ __exportStar(require("./entity_type"), exports);
73
73
  __exportStar(require("./event_binding"), exports);
74
74
  __exportStar(require("./event_binding"), exports);
75
75
  __exportStar(require("./event_consumer"), exports);
@@ -83,7 +83,6 @@ __exportStar(require("./gateway_model_metadata"), exports);
83
83
  __exportStar(require("./gateway_model"), exports);
84
84
  __exportStar(require("./gateway_project"), exports);
85
85
  __exportStar(require("./gateway_service_groups_metadata"), exports);
86
- __exportStar(require("./web_reporting_template"), exports);
87
86
  __exportStar(require("./gateway_service"), exports);
88
87
  __exportStar(require("./gateway_vocabulary_annotation"), exports);
89
88
  __exportStar(require("./general_hierarchy_storage_extrension_name"), exports);
@@ -99,6 +98,7 @@ __exportStar(require("./icf_service"), exports);
99
98
  __exportStar(require("./idoc_extension"), exports);
100
99
  __exportStar(require("./idoc"), exports);
101
100
  __exportStar(require("./inbound_service"), exports);
101
+ __exportStar(require("./info_area"), exports);
102
102
  __exportStar(require("./info_object"), exports);
103
103
  __exportStar(require("./interface"), exports);
104
104
  __exportStar(require("./lock_object"), exports);
@@ -172,4 +172,5 @@ __exportStar(require("./web_dynpro_application"), exports);
172
172
  __exportStar(require("./web_dynpro_component_configuration"), exports);
173
173
  __exportStar(require("./web_dynpro_component"), exports);
174
174
  __exportStar(require("./web_mime"), exports);
175
+ __exportStar(require("./web_reporting_template"), exports);
175
176
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfoArea = void 0;
4
+ const _abstract_object_1 = require("./_abstract_object");
5
+ class InfoArea extends _abstract_object_1.AbstractObject {
6
+ getType() {
7
+ return "AREA";
8
+ }
9
+ getAllowedNaming() {
10
+ return {
11
+ maxLength: 30,
12
+ allowNamespace: true,
13
+ };
14
+ }
15
+ getDescription() {
16
+ // todo
17
+ return undefined;
18
+ }
19
+ }
20
+ exports.InfoArea = InfoArea;
21
+ //# sourceMappingURL=info_area.js.map
@@ -26,6 +26,10 @@ var TableCategory;
26
26
  TableCategory["Append"] = "APPEND";
27
27
  })(TableCategory || (exports.TableCategory = TableCategory = {}));
28
28
  class Table extends _abstract_object_1.AbstractObject {
29
+ constructor() {
30
+ super(...arguments);
31
+ this.parsedType = undefined;
32
+ }
29
33
  getType() {
30
34
  return "TABL";
31
35
  }
@@ -50,6 +54,7 @@ class Table extends _abstract_object_1.AbstractObject {
50
54
  }
51
55
  setDirty() {
52
56
  this.parsedData = undefined;
57
+ this.parsedType = undefined;
53
58
  super.setDirty();
54
59
  }
55
60
  listKeys(reg) {
@@ -87,6 +92,9 @@ class Table extends _abstract_object_1.AbstractObject {
87
92
  && this.parsedData.dataClass === "USER3") {
88
93
  return new Types.UnknownType("Data class = USER3 not allowed in cloud");
89
94
  }
95
+ if (this.parsedType) {
96
+ return this.parsedType;
97
+ }
90
98
  const references = [];
91
99
  const components = [];
92
100
  const ddic = new ddic_1.DDIC(reg);
@@ -137,25 +145,6 @@ class Table extends _abstract_object_1.AbstractObject {
137
145
  else {
138
146
  components.push({ name: field.FIELDNAME, type: found });
139
147
  }
140
- /*
141
- } else if (comptype === "S" && field.FIELDNAME.startsWith(".INCLU-")) {
142
- const lookup = ddic.lookupTableOrView(field.PRECFIELD);
143
- if (lookup.object) {
144
- references.push({object: lookup.object});
145
- }
146
- const found = lookup.type;
147
- if (found instanceof Types.VoidType) {
148
- // set the full structure to void
149
- return found;
150
- } else if (found instanceof Types.StructureType) {
151
- const suffix = field.FIELDNAME.split("-")[1];
152
- for (const c of found.getComponents()) {
153
- components.push({name: c.name + suffix, type: c.type});
154
- }
155
- } else if (found instanceof Types.UnknownType) {
156
- return found;
157
- }
158
- */
159
148
  }
160
149
  else if (comptype === "S") {
161
150
  const lookup = ddic.lookupTableOrView(field.ROLLNAME);
@@ -250,7 +239,8 @@ class Table extends _abstract_object_1.AbstractObject {
250
239
  return new Types.UnknownType("Table/Structure " + this.getName() + " does not contain any components");
251
240
  }
252
241
  reg.getDDICReferences().setUsing(this, references);
253
- return new Types.StructureType(components, this.getName(), this.getName(), this.getDescription());
242
+ this.parsedType = new Types.StructureType(components, this.getName(), this.getName(), this.getDescription());
243
+ return this.parsedType;
254
244
  }
255
245
  getTableCategory() {
256
246
  var _a;
@@ -67,7 +67,7 @@ class Registry {
67
67
  }
68
68
  static abaplintVersion() {
69
69
  // magic, see build script "version.sh"
70
- return "2.113.116";
70
+ return "2.113.118";
71
71
  }
72
72
  getDDICReferences() {
73
73
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.113.116",
3
+ "version": "2.113.118",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -53,7 +53,7 @@
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": "^22.15.18",
56
+ "@types/node": "^22.15.19",
57
57
  "chai": "^4.5.0",
58
58
  "eslint": "^9.27.0",
59
59
  "mocha": "^11.3.0",