@abaplint/transpiler-cli 2.13.96 → 2.13.97

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.
Files changed (2) hide show
  1. package/build/bundle.js +682 -757
  2. package/package.json +3 -3
package/build/bundle.js CHANGED
@@ -13866,7 +13866,7 @@ const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@a
13866
13866
  class CreateData {
13867
13867
  getMatcher() {
13868
13868
  const areaHandle = (0, combi_1.seq)("AREA HANDLE", expressions_1.Source);
13869
- const typeHandle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.Source);
13869
+ const typeHandle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.SimpleSource3);
13870
13870
  const type = (0, combi_1.seq)((0, combi_1.alt)("TYPE", "TYPE REF TO", "TYPE TABLE OF", "TYPE TABLE OF REF TO", "TYPE SORTED TABLE OF", "TYPE HASHED TABLE OF", "TYPE STANDARD TABLE OF", "TYPE LINE OF"), (0, combi_1.alt)(expressions_1.TypeName, expressions_1.Dynamic));
13871
13871
  const like = (0, combi_1.seq)((0, combi_1.alt)("LIKE", "LIKE HASHED TABLE OF", "LIKE LINE OF", "LIKE STANDARD TABLE OF", "LIKE SORTED TABLE OF", "LIKE TABLE OF"), (0, combi_1.alt)(expressions_1.Source, expressions_1.Dynamic));
13872
13872
  const length = (0, combi_1.seq)("LENGTH", expressions_1.Source);
@@ -17108,7 +17108,7 @@ class Loop {
17108
17108
  getMatcher() {
17109
17109
  const where = (0, combi_1.seq)("WHERE", (0, combi_1.alt)(expressions_1.ComponentCond, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.Dynamic)));
17110
17110
  const group = (0, combi_1.ver)(version_1.Release.v740sp08, (0, combi_1.seq)("GROUP BY", loop_group_by_1.LoopGroupBy), { also: combi_1.AlsoIn.OpenABAP });
17111
- const step = (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("STEP", expressions_1.Source));
17111
+ const step = (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("STEP", expressions_1.Source), { also: combi_1.AlsoIn.OpenABAP });
17112
17112
  const from = (0, combi_1.seq)("FROM", expressions_1.Source);
17113
17113
  const to = (0, combi_1.seq)("TO", expressions_1.Source);
17114
17114
  const usingKey = (0, combi_1.seq)("USING KEY", (0, combi_1.altPrio)(expressions_1.SimpleName, expressions_1.Dynamic));
@@ -30083,6 +30083,72 @@ function checkOffsetLength(source, sourceType, method, input) {
30083
30083
 
30084
30084
  /***/ },
30085
30085
 
30086
+ /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_text_symbol.js"
30087
+ /*!***********************************************************************************************!*\
30088
+ !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_text_symbol.js ***!
30089
+ \***********************************************************************************************/
30090
+ (__unused_webpack_module, exports, __webpack_require__) {
30091
+
30092
+ "use strict";
30093
+
30094
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
30095
+ if (k2 === undefined) k2 = k;
30096
+ var desc = Object.getOwnPropertyDescriptor(m, k);
30097
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
30098
+ desc = { enumerable: true, get: function() { return m[k]; } };
30099
+ }
30100
+ Object.defineProperty(o, k2, desc);
30101
+ }) : (function(o, m, k, k2) {
30102
+ if (k2 === undefined) k2 = k;
30103
+ o[k2] = m[k];
30104
+ }));
30105
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30106
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30107
+ }) : function(o, v) {
30108
+ o["default"] = v;
30109
+ });
30110
+ var __importStar = (this && this.__importStar) || (function () {
30111
+ var ownKeys = function(o) {
30112
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30113
+ var ar = [];
30114
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30115
+ return ar;
30116
+ };
30117
+ return ownKeys(o);
30118
+ };
30119
+ return function (mod) {
30120
+ if (mod && mod.__esModule) return mod;
30121
+ var result = {};
30122
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
30123
+ __setModuleDefault(result, mod);
30124
+ return result;
30125
+ };
30126
+ })();
30127
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
30128
+ exports.checkTextSymbol = checkTextSymbol;
30129
+ const Expressions = __importStar(__webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js"));
30130
+ const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
30131
+ const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
30132
+ // A text symbol, 'text'(001), is a character literal of type C. Unlike a plain
30133
+ // literal it does not convert when passed to a method parameter typed STRING,
30134
+ // the system reports it as not type-compatible. Returns true if an issue was reported.
30135
+ function checkTextSymbol(source, parameterType, input) {
30136
+ if (source === undefined || !(parameterType instanceof basic_1.StringType)) {
30137
+ return false;
30138
+ }
30139
+ const children = source.getChildren();
30140
+ const constant = children.length === 1 ? source.findDirectExpression(Expressions.Constant) : undefined;
30141
+ if ((constant === null || constant === void 0 ? void 0 : constant.findDirectExpression(Expressions.TextElementString)) === undefined) {
30142
+ return false;
30143
+ }
30144
+ const message = `Text symbol "${source.concatTokens()}" is a character literal, not type-compatible with a STRING parameter`;
30145
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, source.getFirstToken(), message));
30146
+ return true;
30147
+ }
30148
+ //# sourceMappingURL=_check_text_symbol.js.map
30149
+
30150
+ /***/ },
30151
+
30086
30152
  /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/attribute_chain.js"
30087
30153
  /*!********************************************************************************************!*\
30088
30154
  !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/attribute_chain.js ***!
@@ -33460,6 +33526,7 @@ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/
33460
33526
  const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
33461
33527
  const constant_1 = __webpack_require__(/*! ./constant */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/constant.js");
33462
33528
  const _check_offset_length_1 = __webpack_require__(/*! ./_check_offset_length */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_offset_length.js");
33529
+ const _check_text_symbol_1 = __webpack_require__(/*! ./_check_text_symbol */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_text_symbol.js");
33463
33530
  class MethodCallParam {
33464
33531
  static runSyntax(node, input, method) {
33465
33532
  if (!(node.get() instanceof Expressions.MethodCallParam)) {
@@ -33532,6 +33599,9 @@ class MethodCallParam {
33532
33599
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
33533
33600
  return;
33534
33601
  }
33602
+ else if ((0, _check_text_symbol_1.checkTextSymbol)(child, targetType, input)) {
33603
+ return;
33604
+ }
33535
33605
  else if (new _type_utils_1.TypeUtils(input.scope).isAssignableStrict(sourceType, targetType, child) === false) {
33536
33606
  const message = "Method parameter type not compatible";
33537
33607
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -33783,6 +33853,7 @@ const assert_error_1 = __webpack_require__(/*! ../assert_error */ "./node_module
33783
33853
  const field_chain_1 = __webpack_require__(/*! ./field_chain */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/field_chain.js");
33784
33854
  const _reference_1 = __webpack_require__(/*! ../_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
33785
33855
  const _check_offset_length_1 = __webpack_require__(/*! ./_check_offset_length */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_offset_length.js");
33856
+ const _check_text_symbol_1 = __webpack_require__(/*! ./_check_text_symbol */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/_check_text_symbol.js");
33786
33857
  class MethodParameters {
33787
33858
  constructor() {
33788
33859
  this.requiredParameters = undefined;
@@ -33934,6 +34005,9 @@ class MethodParameters {
33934
34005
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
33935
34006
  continue;
33936
34007
  }
34008
+ else if ((0, _check_text_symbol_1.checkTextSymbol)(item.source, parameter.getType(), input)) {
34009
+ return;
34010
+ }
33937
34011
  else if (new _type_utils_1.TypeUtils(input.scope).isAssignableStrict(item.sourceType, parameter.getType(), item.source) === false) {
33938
34012
  const message = "Method parameter type not compatible, " + item.name;
33939
34013
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -34952,6 +35026,13 @@ class Select {
34952
35026
  const intoTable = node.findDirectExpression(Expressions.SQLIntoTable);
34953
35027
  if (intoTable) {
34954
35028
  const inline = intoTable.findFirstExpression(Expressions.InlineData);
35029
+ if (inline
35030
+ && intoTable.findDirectTokenByText("INTO") !== undefined
35031
+ && intoTable.findDirectTokenByText("CORRESPONDING") !== undefined
35032
+ && !(0, version_1.releaseAtLeast)(input.scope.getRelease(), version_1.Release.v755)) {
35033
+ const message = "INTO CORRESPONDING FIELDS OF TABLE with an inline declaration requires 7.55";
35034
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
35035
+ }
34955
35036
  if (inline) {
34956
35037
  inline_data_1.InlineData.runSyntax(inline, input, this.buildTableType(fields, dbSources, input.scope, from));
34957
35038
  }
@@ -40114,6 +40195,9 @@ class CreateData {
40114
40195
  return;
40115
40196
  }
40116
40197
  }
40198
+ for (const s of node.findDirectExpressions(Expressions.SimpleSource3)) {
40199
+ source_1.Source.runSyntax(s, input);
40200
+ }
40117
40201
  for (const t of node.findDirectExpressions(Expressions.Target)) {
40118
40202
  target_1.Target.runSyntax(t, input);
40119
40203
  }
@@ -43415,14 +43499,21 @@ class Loop {
43415
43499
  // https://github.com/abap2xlsx/abap2xlsx/issues/1341
43416
43500
  const keyName = node.findExpressionAfterToken("KEY");
43417
43501
  let key = undefined;
43418
- if ((keyName === null || keyName === void 0 ? void 0 : keyName.get()) instanceof Expressions.SimpleName) {
43419
- // it might be dynamic, in that case we cannot check anything
43420
- key = (_b = topType.getOptions().secondary) === null || _b === void 0 ? void 0 : _b.find(k => k.name.toUpperCase() === keyName.getFirstToken().getStr().toUpperCase());
43502
+ const name = (keyName === null || keyName === void 0 ? void 0 : keyName.get()) instanceof Expressions.SimpleName ? keyName.getFirstToken().getStr().toUpperCase() : undefined;
43503
+ // it might be dynamic, in that case we cannot check anything; and
43504
+ // primary_key is the predefined name of the primary key every table has
43505
+ if (name !== undefined && name !== "PRIMARY_KEY") {
43506
+ key = (_b = topType.getOptions().secondary) === null || _b === void 0 ? void 0 : _b.find(k => k.name.toUpperCase() === name);
43421
43507
  if (key === undefined) {
43422
43508
  const message = "Key " + (keyName === null || keyName === void 0 ? void 0 : keyName.concatTokens()) + " not found in table type";
43423
43509
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
43424
43510
  return;
43425
43511
  }
43512
+ if (cond.findDirectTokenByText("OR") !== undefined) {
43513
+ const message = "Loop, secondary key requires an optimizable WHERE, top-level OR not allowed";
43514
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
43515
+ return;
43516
+ }
43426
43517
  if (!(0, version_1.releaseAtLeast)(input.scope.getRelease(), version_1.Release.v740sp02)) {
43427
43518
  const compares = cond.findAllExpressionsRecursive(Expressions.ComponentCompare).map(c => c.concatTokens().toUpperCase());
43428
43519
  for (const keyField of key.keyFields) {
@@ -44085,6 +44176,7 @@ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/
44085
44176
  const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
44086
44177
  const dereference_1 = __webpack_require__(/*! ../expressions/dereference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/dereference.js");
44087
44178
  const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
44179
+ const nodes_1 = __webpack_require__(/*! ../../nodes */ "./node_modules/@abaplint/core/build/src/abap/nodes/index.js");
44088
44180
  class Move {
44089
44181
  runSyntax(node, input) {
44090
44182
  const targets = node.findDirectExpressions(Expressions.Target);
@@ -44116,6 +44208,13 @@ class Move {
44116
44208
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
44117
44209
  return;
44118
44210
  }
44211
+ if (inline === undefined
44212
+ && node.findDirectTokenByText("=") !== undefined
44213
+ && Move.isRefInferIntoGenericFieldSymbol(targets, source, targetType)) {
44214
+ const message = "REF #( ) cannot infer a type from a generic target, use REF data( ) or a named type";
44215
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, source.getFirstToken(), message));
44216
+ return;
44217
+ }
44119
44218
  if (node.findDirectExpression(Expressions.Dereference)) {
44120
44219
  sourceType = dereference_1.Dereference.runSyntax(node, sourceType, input);
44121
44220
  }
@@ -44139,6 +44238,26 @@ class Move {
44139
44238
  return;
44140
44239
  }
44141
44240
  }
44241
+ /** target = REF #( ... ), with the single target being a field symbol typed "any" or "data",
44242
+ * the type of REF # is inferred from the target, which is generic */
44243
+ static isRefInferIntoGenericFieldSymbol(targets, source, targetType) {
44244
+ var _a;
44245
+ if (targets.length !== 1 || source === undefined) {
44246
+ return false;
44247
+ }
44248
+ else if (!(targetType instanceof basic_1.AnyType) && !(targetType instanceof basic_1.DataType)) {
44249
+ return false;
44250
+ }
44251
+ const targetChildren = targets[0].getChildren();
44252
+ if (targetChildren.length !== 1 || !(targetChildren[0].get() instanceof Expressions.TargetFieldSymbol)) {
44253
+ return false;
44254
+ }
44255
+ const first = source.getFirstChild();
44256
+ if (!(first instanceof nodes_1.TokenNode) || first.getFirstToken().getStr().toUpperCase() !== "REF") {
44257
+ return false;
44258
+ }
44259
+ return ((_a = source.findDirectExpression(Expressions.TypeNameOrInfer)) === null || _a === void 0 ? void 0 : _a.concatTokens()) === "#";
44260
+ }
44142
44261
  }
44143
44262
  exports.Move = Move;
44144
44263
  //# sourceMappingURL=move.js.map
@@ -49780,38 +49899,45 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
49780
49899
  exports.ArtifactsABAP = void 0;
49781
49900
  const Statements = __importStar(__webpack_require__(/*! ./2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js"));
49782
49901
  const Expressions = __importStar(__webpack_require__(/*! ./2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js"));
49783
- const combi_1 = __webpack_require__(/*! ./2_statements/combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
49784
49902
  const Structures = __importStar(__webpack_require__(/*! ./3_structures/structures */ "./node_modules/@abaplint/core/build/src/abap/3_structures/structures/index.js"));
49903
+ /*
49785
49904
  class List {
49786
- constructor() {
49787
- this.words = [];
49788
- }
49789
- add(keywords, source) {
49790
- for (const w of keywords) {
49791
- const index = this.find(w);
49792
- if (index >= 0) {
49793
- this.words[index].source.push(source);
49794
- }
49795
- else {
49796
- this.words.push({ word: w, source: [source] });
49797
- }
49798
- }
49799
- }
49800
- get() {
49801
- return this.words;
49905
+ private readonly words: IKeyword[];
49906
+
49907
+ public constructor() {
49908
+ this.words = [];
49909
+ }
49910
+
49911
+ public add(keywords: string[], source: string): void {
49912
+ for (const w of keywords) {
49913
+ const index = this.find(w);
49914
+ if (index >= 0) {
49915
+ this.words[index].source.push(source);
49916
+ } else {
49917
+ this.words.push({word: w, source: [source]});
49918
+ }
49802
49919
  }
49803
- find(keyword) {
49804
- for (let i = 0; i < this.words.length; i++) {
49805
- if (this.words[i].word === keyword) {
49806
- return i;
49807
- }
49808
- }
49809
- return -1;
49920
+ }
49921
+
49922
+ public get(): IKeyword[] {
49923
+ return this.words;
49924
+ }
49925
+
49926
+ private find(keyword: string): number {
49927
+ for (let i = 0; i < this.words.length; i++) {
49928
+ if (this.words[i].word === keyword) {
49929
+ return i;
49930
+ }
49810
49931
  }
49932
+ return -1;
49933
+ }
49811
49934
  }
49812
- function className(cla) {
49813
- return cla.constructor.name;
49935
+
49936
+
49937
+ function className(cla: any) {
49938
+ return cla.constructor.name;
49814
49939
  }
49940
+ */
49815
49941
  class ArtifactsABAP {
49816
49942
  static getStructures() {
49817
49943
  const ret = [];
@@ -49843,16 +49969,6 @@ class ArtifactsABAP {
49843
49969
  }
49844
49970
  return ret;
49845
49971
  }
49846
- static getKeywords() {
49847
- const list = new List();
49848
- for (const stat of this.getStatements()) {
49849
- list.add(combi_1.Combi.listKeywords(stat.getMatcher()), "statement_" + className(stat));
49850
- }
49851
- for (const expr of this.getExpressions()) {
49852
- list.add(combi_1.Combi.listKeywords(new expr().getRunnable()), "expression_" + className(expr));
49853
- }
49854
- return list.get();
49855
- }
49856
49972
  }
49857
49973
  exports.ArtifactsABAP = ArtifactsABAP;
49858
49974
  //# sourceMappingURL=artifacts.js.map
@@ -61725,6 +61841,9 @@ class AbstractObject {
61725
61841
  this.old = [];
61726
61842
  this.dirty = false;
61727
61843
  }
61844
+ getDescription() {
61845
+ return undefined;
61846
+ }
61728
61847
  getParsingIssues() {
61729
61848
  return this.old;
61730
61849
  }
@@ -61915,9 +62034,6 @@ class UnknownObject extends _abstract_object_1.AbstractObject {
61915
62034
  allowNamespace: true,
61916
62035
  };
61917
62036
  }
61918
- getDescription() {
61919
- return undefined;
61920
- }
61921
62037
  getParsingIssues() {
61922
62038
  const pos = new position_1.Position(1, 1);
61923
62039
  const file = this.getFiles()[0];
@@ -61952,10 +62068,6 @@ class ABAPQueryFunctionalArea extends _abstract_object_1.AbstractObject {
61952
62068
  allowNamespace: true,
61953
62069
  };
61954
62070
  }
61955
- getDescription() {
61956
- // todo
61957
- return undefined;
61958
- }
61959
62071
  }
61960
62072
  exports.ABAPQueryFunctionalArea = ABAPQueryFunctionalArea;
61961
62073
  //# sourceMappingURL=abap_query_functional_area.js.map
@@ -61983,10 +62095,6 @@ class ABAPQueryQuery extends _abstract_object_1.AbstractObject {
61983
62095
  allowNamespace: true,
61984
62096
  };
61985
62097
  }
61986
- getDescription() {
61987
- // todo
61988
- return undefined;
61989
- }
61990
62098
  }
61991
62099
  exports.ABAPQueryQuery = ABAPQueryQuery;
61992
62100
  //# sourceMappingURL=abap_query_query.js.map
@@ -62014,10 +62122,6 @@ class ActivationVariant extends _abstract_object_1.AbstractObject {
62014
62122
  allowNamespace: true,
62015
62123
  };
62016
62124
  }
62017
- getDescription() {
62018
- // todo
62019
- return undefined;
62020
- }
62021
62125
  }
62022
62126
  exports.ActivationVariant = ActivationVariant;
62023
62127
  //# sourceMappingURL=activation_variant.js.map
@@ -62045,10 +62149,6 @@ class APIReleaseState extends _abstract_object_1.AbstractObject {
62045
62149
  allowNamespace: true,
62046
62150
  };
62047
62151
  }
62048
- getDescription() {
62049
- // todo
62050
- return undefined;
62051
- }
62052
62152
  }
62053
62153
  exports.APIReleaseState = APIReleaseState;
62054
62154
  //# sourceMappingURL=api_release_state.js.map
@@ -62076,10 +62176,6 @@ class ApplicationDescriptorsFiori extends _abstract_object_1.AbstractObject {
62076
62176
  allowNamespace: true,
62077
62177
  };
62078
62178
  }
62079
- getDescription() {
62080
- // todo
62081
- return undefined;
62082
- }
62083
62179
  }
62084
62180
  exports.ApplicationDescriptorsFiori = ApplicationDescriptorsFiori;
62085
62181
  //# sourceMappingURL=application_descriptors_fiori.js.map
@@ -62107,10 +62203,6 @@ class ApplicationJobCatalogEntry extends _abstract_object_1.AbstractObject {
62107
62203
  allowNamespace: true,
62108
62204
  };
62109
62205
  }
62110
- getDescription() {
62111
- // todo
62112
- return undefined;
62113
- }
62114
62206
  }
62115
62207
  exports.ApplicationJobCatalogEntry = ApplicationJobCatalogEntry;
62116
62208
  //# sourceMappingURL=application_job_catalog_entry.js.map
@@ -62138,10 +62230,6 @@ class ApplicationJobTemplate extends _abstract_object_1.AbstractObject {
62138
62230
  allowNamespace: true,
62139
62231
  };
62140
62232
  }
62141
- getDescription() {
62142
- // todo
62143
- return undefined;
62144
- }
62145
62233
  }
62146
62234
  exports.ApplicationJobTemplate = ApplicationJobTemplate;
62147
62235
  //# sourceMappingURL=application_job_template.js.map
@@ -62169,10 +62257,6 @@ class ApplicationLogObject extends _abstract_object_1.AbstractObject {
62169
62257
  allowNamespace: true,
62170
62258
  };
62171
62259
  }
62172
- getDescription() {
62173
- // todo
62174
- return undefined;
62175
- }
62176
62260
  }
62177
62261
  exports.ApplicationLogObject = ApplicationLogObject;
62178
62262
  //# sourceMappingURL=application_log_object.js.map
@@ -62200,10 +62284,6 @@ class AssignmentServiceToAuthorizationGroup extends _abstract_object_1.AbstractO
62200
62284
  allowNamespace: true,
62201
62285
  };
62202
62286
  }
62203
- getDescription() {
62204
- // todo
62205
- return undefined;
62206
- }
62207
62287
  }
62208
62288
  exports.AssignmentServiceToAuthorizationGroup = AssignmentServiceToAuthorizationGroup;
62209
62289
  //# sourceMappingURL=assignment_service_to_authorization_group.js.map
@@ -62231,10 +62311,6 @@ class ATCCheckCategory extends _abstract_object_1.AbstractObject {
62231
62311
  allowNamespace: true,
62232
62312
  };
62233
62313
  }
62234
- getDescription() {
62235
- // todo
62236
- return undefined;
62237
- }
62238
62314
  }
62239
62315
  exports.ATCCheckCategory = ATCCheckCategory;
62240
62316
  //# sourceMappingURL=atc_check_category.js.map
@@ -62262,10 +62338,6 @@ class ATCCheckObject extends _abstract_object_1.AbstractObject {
62262
62338
  allowNamespace: true,
62263
62339
  };
62264
62340
  }
62265
- getDescription() {
62266
- // todo
62267
- return undefined;
62268
- }
62269
62341
  }
62270
62342
  exports.ATCCheckObject = ATCCheckObject;
62271
62343
  //# sourceMappingURL=atc_check_object.js.map
@@ -62293,10 +62365,6 @@ class ATCCheckVariant extends _abstract_object_1.AbstractObject {
62293
62365
  allowNamespace: true,
62294
62366
  };
62295
62367
  }
62296
- getDescription() {
62297
- // todo
62298
- return undefined;
62299
- }
62300
62368
  }
62301
62369
  exports.ATCCheckVariant = ATCCheckVariant;
62302
62370
  //# sourceMappingURL=atc_check_variant.js.map
@@ -62330,10 +62398,6 @@ class AuthorizationCheckField extends _abstract_object_1.AbstractObject {
62330
62398
  this.parsedXML = undefined;
62331
62399
  super.setDirty();
62332
62400
  }
62333
- getDescription() {
62334
- // todo
62335
- return undefined;
62336
- }
62337
62401
  getDataElementName() {
62338
62402
  var _a;
62339
62403
  this.parse();
@@ -62406,10 +62470,6 @@ class AuthorizationGroup extends _abstract_object_1.AbstractObject {
62406
62470
  allowNamespace: true,
62407
62471
  };
62408
62472
  }
62409
- getDescription() {
62410
- // todo
62411
- return undefined;
62412
- }
62413
62473
  }
62414
62474
  exports.AuthorizationGroup = AuthorizationGroup;
62415
62475
  //# sourceMappingURL=authorization_group.js.map
@@ -62437,10 +62497,6 @@ class AuthorizationObject extends _abstract_object_1.AbstractObject {
62437
62497
  allowNamespace: true,
62438
62498
  };
62439
62499
  }
62440
- getDescription() {
62441
- // todo
62442
- return undefined;
62443
- }
62444
62500
  }
62445
62501
  exports.AuthorizationObject = AuthorizationObject;
62446
62502
  //# sourceMappingURL=authorization_object.js.map
@@ -62468,10 +62524,6 @@ class AuthorizationObjectClass extends _abstract_object_1.AbstractObject {
62468
62524
  allowNamespace: false,
62469
62525
  };
62470
62526
  }
62471
- getDescription() {
62472
- // todo
62473
- return undefined;
62474
- }
62475
62527
  }
62476
62528
  exports.AuthorizationObjectClass = AuthorizationObjectClass;
62477
62529
  //# sourceMappingURL=authorization_object_class.js.map
@@ -62499,10 +62551,6 @@ class AuthorizationObjectExtension extends _abstract_object_1.AbstractObject {
62499
62551
  allowNamespace: true,
62500
62552
  };
62501
62553
  }
62502
- getDescription() {
62503
- // todo
62504
- return undefined;
62505
- }
62506
62554
  }
62507
62555
  exports.AuthorizationObjectExtension = AuthorizationObjectExtension;
62508
62556
  //# sourceMappingURL=authorization_object_extension.js.map
@@ -62530,10 +62578,6 @@ class BADIDefinition extends _abstract_object_1.AbstractObject {
62530
62578
  allowNamespace: true,
62531
62579
  };
62532
62580
  }
62533
- getDescription() {
62534
- // todo
62535
- return undefined;
62536
- }
62537
62581
  }
62538
62582
  exports.BADIDefinition = BADIDefinition;
62539
62583
  //# sourceMappingURL=badi_definition.js.map
@@ -62565,10 +62609,6 @@ class BehaviorDefinition extends _abstract_object_1.AbstractObject {
62565
62609
  allowNamespace: true,
62566
62610
  };
62567
62611
  }
62568
- getDescription() {
62569
- // todo
62570
- return undefined;
62571
- }
62572
62612
  setDirty() {
62573
62613
  this.parsedData = undefined;
62574
62614
  super.setDirty();
@@ -62639,10 +62679,6 @@ class BRFPlusSystemApplication extends _abstract_object_1.AbstractObject {
62639
62679
  allowNamespace: true,
62640
62680
  };
62641
62681
  }
62642
- getDescription() {
62643
- // todo
62644
- return undefined;
62645
- }
62646
62682
  }
62647
62683
  exports.BRFPlusSystemApplication = BRFPlusSystemApplication;
62648
62684
  //# sourceMappingURL=brf_plus_system_application.js.map
@@ -62670,10 +62706,6 @@ class BSPApplication extends _abstract_object_1.AbstractObject {
62670
62706
  allowNamespace: true,
62671
62707
  };
62672
62708
  }
62673
- getDescription() {
62674
- // todo
62675
- return undefined;
62676
- }
62677
62709
  }
62678
62710
  exports.BSPApplication = BSPApplication;
62679
62711
  //# sourceMappingURL=bsp_application.js.map
@@ -62701,10 +62733,6 @@ class BusinessAddInImplementation extends _abstract_object_1.AbstractObject {
62701
62733
  allowNamespace: true,
62702
62734
  };
62703
62735
  }
62704
- getDescription() {
62705
- // todo
62706
- return undefined;
62707
- }
62708
62736
  }
62709
62737
  exports.BusinessAddInImplementation = BusinessAddInImplementation;
62710
62738
  //# sourceMappingURL=business_add_in_implementation.js.map
@@ -62732,10 +62760,6 @@ class BusinessCatalog extends _abstract_object_1.AbstractObject {
62732
62760
  allowNamespace: true,
62733
62761
  };
62734
62762
  }
62735
- getDescription() {
62736
- // todo
62737
- return undefined;
62738
- }
62739
62763
  }
62740
62764
  exports.BusinessCatalog = BusinessCatalog;
62741
62765
  //# sourceMappingURL=business_catalog.js.map
@@ -62763,10 +62787,6 @@ class BusinessCatalogAppAssignment extends _abstract_object_1.AbstractObject {
62763
62787
  allowNamespace: true,
62764
62788
  };
62765
62789
  }
62766
- getDescription() {
62767
- // todo
62768
- return undefined;
62769
- }
62770
62790
  }
62771
62791
  exports.BusinessCatalogAppAssignment = BusinessCatalogAppAssignment;
62772
62792
  //# sourceMappingURL=business_catalog_app_assignment.js.map
@@ -62794,10 +62814,6 @@ class BusinessConfigurationMaintenanceObject extends _abstract_object_1.Abstract
62794
62814
  allowNamespace: true,
62795
62815
  };
62796
62816
  }
62797
- getDescription() {
62798
- // todo
62799
- return undefined;
62800
- }
62801
62817
  }
62802
62818
  exports.BusinessConfigurationMaintenanceObject = BusinessConfigurationMaintenanceObject;
62803
62819
  //# sourceMappingURL=business_configuration_maintenance_object.js.map
@@ -62825,10 +62841,6 @@ class BusinessConfigurationSet extends _abstract_object_1.AbstractObject {
62825
62841
  allowNamespace: true,
62826
62842
  };
62827
62843
  }
62828
- getDescription() {
62829
- // todo
62830
- return undefined;
62831
- }
62832
62844
  }
62833
62845
  exports.BusinessConfigurationSet = BusinessConfigurationSet;
62834
62846
  //# sourceMappingURL=business_configuration_set.js.map
@@ -62856,10 +62868,6 @@ class BusinessFunctionAssignment extends _abstract_object_1.AbstractObject {
62856
62868
  allowNamespace: true,
62857
62869
  };
62858
62870
  }
62859
- getDescription() {
62860
- // todo
62861
- return undefined;
62862
- }
62863
62871
  }
62864
62872
  exports.BusinessFunctionAssignment = BusinessFunctionAssignment;
62865
62873
  //# sourceMappingURL=business_function_assignment.js.map
@@ -62887,10 +62895,6 @@ class BusinessFunctionSetAssignment extends _abstract_object_1.AbstractObject {
62887
62895
  allowNamespace: true,
62888
62896
  };
62889
62897
  }
62890
- getDescription() {
62891
- // todo
62892
- return undefined;
62893
- }
62894
62898
  }
62895
62899
  exports.BusinessFunctionSetAssignment = BusinessFunctionSetAssignment;
62896
62900
  //# sourceMappingURL=business_function_set_assignment.js.map
@@ -62918,10 +62922,6 @@ class BusinessObjectModel extends _abstract_object_1.AbstractObject {
62918
62922
  allowNamespace: true,
62919
62923
  };
62920
62924
  }
62921
- getDescription() {
62922
- // todo
62923
- return undefined;
62924
- }
62925
62925
  }
62926
62926
  exports.BusinessObjectModel = BusinessObjectModel;
62927
62927
  //# sourceMappingURL=business_object_model.js.map
@@ -62949,10 +62949,6 @@ class BusinessObjectType extends _abstract_object_1.AbstractObject {
62949
62949
  allowNamespace: true,
62950
62950
  };
62951
62951
  }
62952
- getDescription() {
62953
- // todo
62954
- return undefined;
62955
- }
62956
62952
  }
62957
62953
  exports.BusinessObjectType = BusinessObjectType;
62958
62954
  //# sourceMappingURL=business_object_type.js.map
@@ -62980,10 +62976,6 @@ class CDSEntityBuffer extends _abstract_object_1.AbstractObject {
62980
62976
  allowNamespace: true,
62981
62977
  };
62982
62978
  }
62983
- getDescription() {
62984
- // todo
62985
- return undefined;
62986
- }
62987
62979
  }
62988
62980
  exports.CDSEntityBuffer = CDSEntityBuffer;
62989
62981
  //# sourceMappingURL=cds_entity_buffer.js.map
@@ -63017,6 +63009,11 @@ class CDSMetadataExtension extends _abstract_object_1.AbstractObject {
63017
63009
  allowNamespace: true,
63018
63010
  };
63019
63011
  }
63012
+ setDirty() {
63013
+ this.parsedData = undefined;
63014
+ this.parserError = undefined;
63015
+ super.setDirty();
63016
+ }
63020
63017
  hasParserError() {
63021
63018
  return this.parserError;
63022
63019
  }
@@ -63035,10 +63032,6 @@ class CDSMetadataExtension extends _abstract_object_1.AbstractObject {
63035
63032
  this.dirty = false;
63036
63033
  return { updated: true, runtime: Date.now() - start };
63037
63034
  }
63038
- getDescription() {
63039
- // todo
63040
- return undefined;
63041
- }
63042
63035
  findSourceFile() {
63043
63036
  return this.getFiles().find(f => f.getFilename().endsWith(".asddlxs") || f.getFilename().endsWith(".acds"));
63044
63037
  }
@@ -63069,10 +63062,6 @@ class CDSType extends _abstract_object_1.AbstractObject {
63069
63062
  allowNamespace: true,
63070
63063
  };
63071
63064
  }
63072
- getDescription() {
63073
- // todo
63074
- return undefined;
63075
- }
63076
63065
  }
63077
63066
  exports.CDSType = CDSType;
63078
63067
  //# sourceMappingURL=cds_type.js.map
@@ -63100,10 +63089,6 @@ class ChangeDocument extends _abstract_object_1.AbstractObject {
63100
63089
  allowNamespace: true,
63101
63090
  };
63102
63091
  }
63103
- getDescription() {
63104
- // todo
63105
- return undefined;
63106
- }
63107
63092
  }
63108
63093
  exports.ChangeDocument = ChangeDocument;
63109
63094
  //# sourceMappingURL=change_document.js.map
@@ -63131,10 +63116,6 @@ class ChapterOfBookStructure extends _abstract_object_1.AbstractObject {
63131
63116
  allowNamespace: true,
63132
63117
  };
63133
63118
  }
63134
- getDescription() {
63135
- // todo
63136
- return undefined;
63137
- }
63138
63119
  }
63139
63120
  exports.ChapterOfBookStructure = ChapterOfBookStructure;
63140
63121
  //# sourceMappingURL=chapter_of_book_structure.js.map
@@ -63162,10 +63143,6 @@ class CheckpointGroup extends _abstract_object_1.AbstractObject {
63162
63143
  allowNamespace: true,
63163
63144
  };
63164
63145
  }
63165
- getDescription() {
63166
- // todo
63167
- return undefined;
63168
- }
63169
63146
  }
63170
63147
  exports.CheckpointGroup = CheckpointGroup;
63171
63148
  //# sourceMappingURL=checkpoint_group.js.map
@@ -63313,10 +63290,6 @@ class Classification extends _abstract_object_1.AbstractObject {
63313
63290
  allowNamespace: true,
63314
63291
  };
63315
63292
  }
63316
- getDescription() {
63317
- // todo
63318
- return undefined;
63319
- }
63320
63293
  }
63321
63294
  exports.Classification = Classification;
63322
63295
  //# sourceMappingURL=classification.js.map
@@ -63344,10 +63317,6 @@ class CommunicationScenario extends _abstract_object_1.AbstractObject {
63344
63317
  allowNamespace: true,
63345
63318
  };
63346
63319
  }
63347
- getDescription() {
63348
- // todo
63349
- return undefined;
63350
- }
63351
63320
  }
63352
63321
  exports.CommunicationScenario = CommunicationScenario;
63353
63322
  //# sourceMappingURL=communication_scenario.js.map
@@ -63375,10 +63344,6 @@ class CompositeEnhancementImplementation extends _abstract_object_1.AbstractObje
63375
63344
  allowNamespace: true,
63376
63345
  };
63377
63346
  }
63378
- getDescription() {
63379
- // todo
63380
- return undefined;
63381
- }
63382
63347
  }
63383
63348
  exports.CompositeEnhancementImplementation = CompositeEnhancementImplementation;
63384
63349
  //# sourceMappingURL=composite_enhancement_implementation.js.map
@@ -63406,10 +63371,6 @@ class CompositeEnhancementSpot extends _abstract_object_1.AbstractObject {
63406
63371
  allowNamespace: true,
63407
63372
  };
63408
63373
  }
63409
- getDescription() {
63410
- // todo
63411
- return undefined;
63412
- }
63413
63374
  }
63414
63375
  exports.CompositeEnhancementSpot = CompositeEnhancementSpot;
63415
63376
  //# sourceMappingURL=composite_enhancement_spot.js.map
@@ -63438,10 +63399,6 @@ class ConceptsOfPackage extends _abstract_object_1.AbstractObject {
63438
63399
  customRegex: new RegExp(/^(\/[A-Z_\d]{3,8}\/)?[A-Z_-\d<> ]+$/i),
63439
63400
  };
63440
63401
  }
63441
- getDescription() {
63442
- // todo
63443
- return undefined;
63444
- }
63445
63402
  }
63446
63403
  exports.ConceptsOfPackage = ConceptsOfPackage;
63447
63404
  //# sourceMappingURL=concepts_of_package.js.map
@@ -63469,10 +63426,6 @@ class CustomDataBrowserObject extends _abstract_object_1.AbstractObject {
63469
63426
  allowNamespace: true,
63470
63427
  };
63471
63428
  }
63472
- getDescription() {
63473
- // todo
63474
- return undefined;
63475
- }
63476
63429
  }
63477
63430
  exports.CustomDataBrowserObject = CustomDataBrowserObject;
63478
63431
  //# sourceMappingURL=custom_data_browser_object.js.map
@@ -63500,10 +63453,6 @@ class CustomerEnhancementProject extends _abstract_object_1.AbstractObject {
63500
63453
  allowNamespace: true,
63501
63454
  };
63502
63455
  }
63503
- getDescription() {
63504
- // todo
63505
- return undefined;
63506
- }
63507
63456
  }
63508
63457
  exports.CustomerEnhancementProject = CustomerEnhancementProject;
63509
63458
  //# sourceMappingURL=customer_enhancement_project.js.map
@@ -63531,10 +63480,6 @@ class CustomizingAttributes extends _abstract_object_1.AbstractObject {
63531
63480
  allowNamespace: true,
63532
63481
  };
63533
63482
  }
63534
- getDescription() {
63535
- // todo
63536
- return undefined;
63537
- }
63538
63483
  }
63539
63484
  exports.CustomizingAttributes = CustomizingAttributes;
63540
63485
  //# sourceMappingURL=customizing_attributes.js.map
@@ -63562,10 +63507,6 @@ class CustomizingImgActivity extends _abstract_object_1.AbstractObject {
63562
63507
  allowNamespace: true,
63563
63508
  };
63564
63509
  }
63565
- getDescription() {
63566
- // todo
63567
- return undefined;
63568
- }
63569
63510
  }
63570
63511
  exports.CustomizingImgActivity = CustomizingImgActivity;
63571
63512
  //# sourceMappingURL=customizing_img_activity.js.map
@@ -63593,10 +63534,6 @@ class CustomizingTransaction extends _abstract_object_1.AbstractObject {
63593
63534
  allowNamespace: true,
63594
63535
  };
63595
63536
  }
63596
- getDescription() {
63597
- // todo
63598
- return undefined;
63599
- }
63600
63537
  }
63601
63538
  exports.CustomizingTransaction = CustomizingTransaction;
63602
63539
  //# sourceMappingURL=customizing_transaction.js.map
@@ -63624,10 +63561,6 @@ class DataControl extends _abstract_object_1.AbstractObject {
63624
63561
  allowNamespace: true,
63625
63562
  };
63626
63563
  }
63627
- getDescription() {
63628
- // todo
63629
- return undefined;
63630
- }
63631
63564
  }
63632
63565
  exports.DataControl = DataControl;
63633
63566
  //# sourceMappingURL=data_control.js.map
@@ -64196,10 +64129,6 @@ class DatastoreObject extends _abstract_object_1.AbstractObject {
64196
64129
  allowNamespace: true,
64197
64130
  };
64198
64131
  }
64199
- getDescription() {
64200
- // todo
64201
- return undefined;
64202
- }
64203
64132
  }
64204
64133
  exports.DatastoreObject = DatastoreObject;
64205
64134
  //# sourceMappingURL=datastore_object.js.map
@@ -64227,10 +64156,6 @@ class DialogModule extends _abstract_object_1.AbstractObject {
64227
64156
  allowNamespace: true,
64228
64157
  };
64229
64158
  }
64230
- getDescription() {
64231
- // todo
64232
- return undefined;
64233
- }
64234
64159
  }
64235
64160
  exports.DialogModule = DialogModule;
64236
64161
  //# sourceMappingURL=dialog_module.js.map
@@ -64258,10 +64183,6 @@ class Documentation extends _abstract_object_1.AbstractObject {
64258
64183
  allowNamespace: true,
64259
64184
  };
64260
64185
  }
64261
- getDescription() {
64262
- // todo
64263
- return undefined;
64264
- }
64265
64186
  }
64266
64187
  exports.Documentation = Documentation;
64267
64188
  //# sourceMappingURL=documentation.js.map
@@ -64465,11 +64386,13 @@ class Domain extends _abstract_object_1.AbstractObject {
64465
64386
  getFixedValues() {
64466
64387
  var _a;
64467
64388
  var _b;
64389
+ this.parse();
64468
64390
  return (_b = (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.values) !== null && _b !== void 0 ? _b : [];
64469
64391
  }
64470
64392
  getFixedValuesTranslations() {
64471
64393
  var _a;
64472
64394
  var _b;
64395
+ this.parse();
64473
64396
  return (_b = (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.valuesTranslations) !== null && _b !== void 0 ? _b : [];
64474
64397
  }
64475
64398
  getAFFFile() {
@@ -64502,10 +64425,6 @@ class EcattTestConfiguration extends _abstract_object_1.AbstractObject {
64502
64425
  allowNamespace: true,
64503
64426
  };
64504
64427
  }
64505
- getDescription() {
64506
- // todo
64507
- return undefined;
64508
- }
64509
64428
  }
64510
64429
  exports.EcattTestConfiguration = EcattTestConfiguration;
64511
64430
  //# sourceMappingURL=ecatt_test_configuration.js.map
@@ -64533,10 +64452,6 @@ class EcattTestDataContainer extends _abstract_object_1.AbstractObject {
64533
64452
  allowNamespace: true,
64534
64453
  };
64535
64454
  }
64536
- getDescription() {
64537
- // todo
64538
- return undefined;
64539
- }
64540
64455
  }
64541
64456
  exports.EcattTestDataContainer = EcattTestDataContainer;
64542
64457
  //# sourceMappingURL=ecatt_test_data_container.js.map
@@ -64564,10 +64479,6 @@ class EcattTestScript extends _abstract_object_1.AbstractObject {
64564
64479
  allowNamespace: true,
64565
64480
  };
64566
64481
  }
64567
- getDescription() {
64568
- // todo
64569
- return undefined;
64570
- }
64571
64482
  }
64572
64483
  exports.EcattTestScript = EcattTestScript;
64573
64484
  //# sourceMappingURL=ecatt_test_script.js.map
@@ -64595,10 +64506,6 @@ class EmailTemplate extends _abstract_object_1.AbstractObject {
64595
64506
  allowNamespace: true,
64596
64507
  };
64597
64508
  }
64598
- getDescription() {
64599
- // todo
64600
- return undefined;
64601
- }
64602
64509
  }
64603
64510
  exports.EmailTemplate = EmailTemplate;
64604
64511
  //# sourceMappingURL=email_template.js.map
@@ -64680,10 +64587,6 @@ class EnhancementSpot extends _abstract_object_1.AbstractObject {
64680
64587
  getType() {
64681
64588
  return "ENHS";
64682
64589
  }
64683
- getDescription() {
64684
- // todo
64685
- return undefined;
64686
- }
64687
64590
  getAllowedNaming() {
64688
64591
  return {
64689
64592
  maxLength: 30,
@@ -64743,10 +64646,6 @@ class EntityType extends _abstract_object_1.AbstractObject {
64743
64646
  allowNamespace: true,
64744
64647
  };
64745
64648
  }
64746
- getDescription() {
64747
- // todo
64748
- return undefined;
64749
- }
64750
64649
  }
64751
64650
  exports.EntityType = EntityType;
64752
64651
  //# sourceMappingURL=entity_type.js.map
@@ -64774,10 +64673,6 @@ class EventBinding extends _abstract_object_1.AbstractObject {
64774
64673
  allowNamespace: true,
64775
64674
  };
64776
64675
  }
64777
- getDescription() {
64778
- // todo
64779
- return undefined;
64780
- }
64781
64676
  }
64782
64677
  exports.EventBinding = EventBinding;
64783
64678
  //# sourceMappingURL=event_binding.js.map
@@ -64805,10 +64700,6 @@ class EventConsumer extends _abstract_object_1.AbstractObject {
64805
64700
  allowNamespace: true,
64806
64701
  };
64807
64702
  }
64808
- getDescription() {
64809
- // todo
64810
- return undefined;
64811
- }
64812
64703
  }
64813
64704
  exports.EventConsumer = EventConsumer;
64814
64705
  //# sourceMappingURL=event_consumer.js.map
@@ -64900,10 +64791,6 @@ class FieldCatalog extends _abstract_object_1.AbstractObject {
64900
64791
  allowNamespace: true,
64901
64792
  };
64902
64793
  }
64903
- getDescription() {
64904
- // todo
64905
- return undefined;
64906
- }
64907
64794
  }
64908
64795
  exports.FieldCatalog = FieldCatalog;
64909
64796
  //# sourceMappingURL=field_catalog.js.map
@@ -64931,10 +64818,6 @@ class FormObjectForm extends _abstract_object_1.AbstractObject {
64931
64818
  allowNamespace: true,
64932
64819
  };
64933
64820
  }
64934
- getDescription() {
64935
- // todo
64936
- return undefined;
64937
- }
64938
64821
  }
64939
64822
  exports.FormObjectForm = FormObjectForm;
64940
64823
  //# sourceMappingURL=form_object_form.js.map
@@ -64962,10 +64845,6 @@ class FormObjectInterface extends _abstract_object_1.AbstractObject {
64962
64845
  allowNamespace: true,
64963
64846
  };
64964
64847
  }
64965
- getDescription() {
64966
- // todo
64967
- return undefined;
64968
- }
64969
64848
  }
64970
64849
  exports.FormObjectInterface = FormObjectInterface;
64971
64850
  //# sourceMappingURL=form_object_interface.js.map
@@ -64993,10 +64872,6 @@ class FormatType extends _abstract_object_1.AbstractObject {
64993
64872
  allowNamespace: true,
64994
64873
  };
64995
64874
  }
64996
- getDescription() {
64997
- // todo
64998
- return undefined;
64999
- }
65000
64875
  }
65001
64876
  exports.FormatType = FormatType;
65002
64877
  //# sourceMappingURL=format_type.js.map
@@ -65229,10 +65104,6 @@ class GatewayModel extends _abstract_object_1.AbstractObject {
65229
65104
  allowNamespace: true,
65230
65105
  };
65231
65106
  }
65232
- getDescription() {
65233
- // todo
65234
- return undefined;
65235
- }
65236
65107
  }
65237
65108
  exports.GatewayModel = GatewayModel;
65238
65109
  //# sourceMappingURL=gateway_model.js.map
@@ -65260,10 +65131,6 @@ class GatewayModelMetadata extends _abstract_object_1.AbstractObject {
65260
65131
  allowNamespace: true,
65261
65132
  };
65262
65133
  }
65263
- getDescription() {
65264
- // todo
65265
- return undefined;
65266
- }
65267
65134
  }
65268
65135
  exports.GatewayModelMetadata = GatewayModelMetadata;
65269
65136
  //# sourceMappingURL=gateway_model_metadata.js.map
@@ -65291,10 +65158,6 @@ class GatewayODataGroupAndAssignment extends _abstract_object_1.AbstractObject {
65291
65158
  allowNamespace: true,
65292
65159
  };
65293
65160
  }
65294
- getDescription() {
65295
- // todo
65296
- return undefined;
65297
- }
65298
65161
  }
65299
65162
  exports.GatewayODataGroupAndAssignment = GatewayODataGroupAndAssignment;
65300
65163
  //# sourceMappingURL=gateway_odata_group_and_assignment.js.map
@@ -65322,10 +65185,6 @@ class GatewayProject extends _abstract_object_1.AbstractObject {
65322
65185
  allowNamespace: true,
65323
65186
  };
65324
65187
  }
65325
- getDescription() {
65326
- // todo
65327
- return undefined;
65328
- }
65329
65188
  }
65330
65189
  exports.GatewayProject = GatewayProject;
65331
65190
  //# sourceMappingURL=gateway_project.js.map
@@ -65353,10 +65212,6 @@ class GatewayService extends _abstract_object_1.AbstractObject {
65353
65212
  allowNamespace: true,
65354
65213
  };
65355
65214
  }
65356
- getDescription() {
65357
- // todo
65358
- return undefined;
65359
- }
65360
65215
  }
65361
65216
  exports.GatewayService = GatewayService;
65362
65217
  //# sourceMappingURL=gateway_service.js.map
@@ -65384,10 +65239,6 @@ class GatewayServiceGroupsMetadata extends _abstract_object_1.AbstractObject {
65384
65239
  allowNamespace: true,
65385
65240
  };
65386
65241
  }
65387
- getDescription() {
65388
- // todo
65389
- return undefined;
65390
- }
65391
65242
  }
65392
65243
  exports.GatewayServiceGroupsMetadata = GatewayServiceGroupsMetadata;
65393
65244
  //# sourceMappingURL=gateway_service_groups_metadata.js.map
@@ -65415,10 +65266,6 @@ class GatewayVocabularyAnnotation extends _abstract_object_1.AbstractObject {
65415
65266
  allowNamespace: true,
65416
65267
  };
65417
65268
  }
65418
- getDescription() {
65419
- // todo
65420
- return undefined;
65421
- }
65422
65269
  }
65423
65270
  exports.GatewayVocabularyAnnotation = GatewayVocabularyAnnotation;
65424
65271
  //# sourceMappingURL=gateway_vocabulary_annotation.js.map
@@ -65446,10 +65293,6 @@ class GeneralHierarchyStorageExtrensionName extends _abstract_object_1.AbstractO
65446
65293
  allowNamespace: true,
65447
65294
  };
65448
65295
  }
65449
- getDescription() {
65450
- // todo
65451
- return undefined;
65452
- }
65453
65296
  }
65454
65297
  exports.GeneralHierarchyStorageExtrensionName = GeneralHierarchyStorageExtrensionName;
65455
65298
  //# sourceMappingURL=general_hierarchy_storage_extrension_name.js.map
@@ -65477,10 +65320,6 @@ class GeneralStorageStructure extends _abstract_object_1.AbstractObject {
65477
65320
  allowNamespace: true,
65478
65321
  };
65479
65322
  }
65480
- getDescription() {
65481
- // todo
65482
- return undefined;
65483
- }
65484
65323
  }
65485
65324
  exports.GeneralStorageStructure = GeneralStorageStructure;
65486
65325
  //# sourceMappingURL=general_storage_structure.js.map
@@ -65508,10 +65347,6 @@ class GeneralText extends _abstract_object_1.AbstractObject {
65508
65347
  allowNamespace: true,
65509
65348
  };
65510
65349
  }
65511
- getDescription() {
65512
- // todo
65513
- return undefined;
65514
- }
65515
65350
  }
65516
65351
  exports.GeneralText = GeneralText;
65517
65352
  //# sourceMappingURL=general_text.js.map
@@ -65539,10 +65374,6 @@ class HttpService extends _abstract_object_1.AbstractObject {
65539
65374
  allowNamespace: true,
65540
65375
  };
65541
65376
  }
65542
- getDescription() {
65543
- // todo
65544
- return undefined;
65545
- }
65546
65377
  }
65547
65378
  exports.HttpService = HttpService;
65548
65379
  //# sourceMappingURL=http_service.js.map
@@ -65570,10 +65401,6 @@ class IACBinaryData extends _abstract_object_1.AbstractObject {
65570
65401
  allowNamespace: true,
65571
65402
  };
65572
65403
  }
65573
- getDescription() {
65574
- // todo
65575
- return undefined;
65576
- }
65577
65404
  }
65578
65405
  exports.IACBinaryData = IACBinaryData;
65579
65406
  //# sourceMappingURL=iac_binary_data.js.map
@@ -65601,10 +65428,6 @@ class IACLanguageResource extends _abstract_object_1.AbstractObject {
65601
65428
  allowNamespace: true,
65602
65429
  };
65603
65430
  }
65604
- getDescription() {
65605
- // todo
65606
- return undefined;
65607
- }
65608
65431
  }
65609
65432
  exports.IACLanguageResource = IACLanguageResource;
65610
65433
  //# sourceMappingURL=iac_language_resource.js.map
@@ -65632,10 +65455,6 @@ class IACService extends _abstract_object_1.AbstractObject {
65632
65455
  allowNamespace: true,
65633
65456
  };
65634
65457
  }
65635
- getDescription() {
65636
- // todo
65637
- return undefined;
65638
- }
65639
65458
  }
65640
65459
  exports.IACService = IACService;
65641
65460
  //# sourceMappingURL=iac_service.js.map
@@ -65663,10 +65482,6 @@ class IACTemplate extends _abstract_object_1.AbstractObject {
65663
65482
  allowNamespace: true,
65664
65483
  };
65665
65484
  }
65666
- getDescription() {
65667
- // todo
65668
- return undefined;
65669
- }
65670
65485
  }
65671
65486
  exports.IACTemplate = IACTemplate;
65672
65487
  //# sourceMappingURL=iac_template.js.map
@@ -65694,10 +65509,6 @@ class IAMApp extends _abstract_object_1.AbstractObject {
65694
65509
  allowNamespace: true,
65695
65510
  };
65696
65511
  }
65697
- getDescription() {
65698
- // todo
65699
- return undefined;
65700
- }
65701
65512
  }
65702
65513
  exports.IAMApp = IAMApp;
65703
65514
  //# sourceMappingURL=iam_app.js.map
@@ -65730,10 +65541,6 @@ class ICFService extends _abstract_object_1.AbstractObject {
65730
65541
  this.parsedXML = undefined;
65731
65542
  super.setDirty();
65732
65543
  }
65733
- getDescription() {
65734
- // todo
65735
- return undefined;
65736
- }
65737
65544
  getURL() {
65738
65545
  var _a;
65739
65546
  this.parse();
@@ -65795,10 +65602,6 @@ class Idoc extends _abstract_object_1.AbstractObject {
65795
65602
  allowNamespace: true,
65796
65603
  };
65797
65604
  }
65798
- getDescription() {
65799
- // todo
65800
- return undefined;
65801
- }
65802
65605
  }
65803
65606
  exports.Idoc = Idoc;
65804
65607
  //# sourceMappingURL=idoc.js.map
@@ -65826,10 +65629,6 @@ class IdocExtension extends _abstract_object_1.AbstractObject {
65826
65629
  allowNamespace: false,
65827
65630
  };
65828
65631
  }
65829
- getDescription() {
65830
- // todo
65831
- return undefined;
65832
- }
65833
65632
  }
65834
65633
  exports.IdocExtension = IdocExtension;
65835
65634
  //# sourceMappingURL=idoc_extension.js.map
@@ -65857,10 +65656,6 @@ class InboundService extends _abstract_object_1.AbstractObject {
65857
65656
  allowNamespace: true,
65858
65657
  };
65859
65658
  }
65860
- getDescription() {
65861
- // todo
65862
- return undefined;
65863
- }
65864
65659
  }
65865
65660
  exports.InboundService = InboundService;
65866
65661
  //# sourceMappingURL=inbound_service.js.map
@@ -66082,10 +65877,6 @@ class InfoArea extends _abstract_object_1.AbstractObject {
66082
65877
  allowNamespace: true,
66083
65878
  };
66084
65879
  }
66085
- getDescription() {
66086
- // todo
66087
- return undefined;
66088
- }
66089
65880
  }
66090
65881
  exports.InfoArea = InfoArea;
66091
65882
  //# sourceMappingURL=info_area.js.map
@@ -66113,10 +65904,6 @@ class InfoObject extends _abstract_object_1.AbstractObject {
66113
65904
  allowNamespace: true,
66114
65905
  };
66115
65906
  }
66116
- getDescription() {
66117
- // todo
66118
- return undefined;
66119
- }
66120
65907
  }
66121
65908
  exports.InfoObject = InfoObject;
66122
65909
  //# sourceMappingURL=info_object.js.map
@@ -66234,10 +66021,6 @@ class KnowledgeTransferDocument extends _abstract_object_1.AbstractObject {
66234
66021
  allowNamespace: true,
66235
66022
  };
66236
66023
  }
66237
- getDescription() {
66238
- // todo
66239
- return undefined;
66240
- }
66241
66024
  }
66242
66025
  exports.KnowledgeTransferDocument = KnowledgeTransferDocument;
66243
66026
  //# sourceMappingURL=knowledge_transfer_document.js.map
@@ -66368,10 +66151,6 @@ class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {
66368
66151
  getType() {
66369
66152
  return "TOBJ";
66370
66153
  }
66371
- getDescription() {
66372
- // todo
66373
- return undefined;
66374
- }
66375
66154
  getAllowedNaming() {
66376
66155
  return {
66377
66156
  maxLength: 31,
@@ -66565,10 +66344,6 @@ class MessagingChannel extends _abstract_object_1.AbstractObject {
66565
66344
  allowNamespace: true,
66566
66345
  };
66567
66346
  }
66568
- getDescription() {
66569
- // todo
66570
- return undefined;
66571
- }
66572
66347
  }
66573
66348
  exports.MessagingChannel = MessagingChannel;
66574
66349
  //# sourceMappingURL=messaging_channel.js.map
@@ -66602,6 +66377,7 @@ class MIMEObject extends _abstract_object_1.AbstractObject {
66602
66377
  }
66603
66378
  isFolder() {
66604
66379
  var _a;
66380
+ this.parse();
66605
66381
  return ((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.FOLDER) === "X";
66606
66382
  }
66607
66383
  getAllowedNaming() {
@@ -66623,10 +66399,6 @@ class MIMEObject extends _abstract_object_1.AbstractObject {
66623
66399
  this.parsedXML = undefined;
66624
66400
  super.setDirty();
66625
66401
  }
66626
- getDescription() {
66627
- // this object type does not have a description
66628
- return undefined;
66629
- }
66630
66402
  parse() {
66631
66403
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
66632
66404
  if (this.parsedXML) {
@@ -66674,10 +66446,6 @@ class Namespace extends _abstract_object_1.AbstractObject {
66674
66446
  customRegex: new RegExp(/^\/[A-Z_\d]{3,8}\/$/i),
66675
66447
  };
66676
66448
  }
66677
- getDescription() {
66678
- // todo
66679
- return undefined;
66680
- }
66681
66449
  }
66682
66450
  exports.Namespace = Namespace;
66683
66451
  //# sourceMappingURL=namespace.js.map
@@ -66706,10 +66474,6 @@ class NeptuneAPI extends _abstract_object_1.AbstractObject {
66706
66474
  customRegex: /.*/i,
66707
66475
  };
66708
66476
  }
66709
- getDescription() {
66710
- // todo
66711
- return undefined;
66712
- }
66713
66477
  }
66714
66478
  exports.NeptuneAPI = NeptuneAPI;
66715
66479
  //# sourceMappingURL=neptune_api.js.map
@@ -66737,10 +66501,6 @@ class NeptuneApp extends _abstract_object_1.AbstractObject {
66737
66501
  allowNamespace: true,
66738
66502
  };
66739
66503
  }
66740
- getDescription() {
66741
- // todo
66742
- return undefined;
66743
- }
66744
66504
  }
66745
66505
  exports.NeptuneApp = NeptuneApp;
66746
66506
  //# sourceMappingURL=neptune_app.js.map
@@ -66768,10 +66528,6 @@ class NeptuneCustomColor extends _abstract_object_1.AbstractObject {
66768
66528
  allowNamespace: true,
66769
66529
  };
66770
66530
  }
66771
- getDescription() {
66772
- // todo
66773
- return undefined;
66774
- }
66775
66531
  }
66776
66532
  exports.NeptuneCustomColor = NeptuneCustomColor;
66777
66533
  //# sourceMappingURL=neptune_custom_color.js.map
@@ -66799,10 +66555,6 @@ class NeptuneCustomJSHelper extends _abstract_object_1.AbstractObject {
66799
66555
  allowNamespace: true,
66800
66556
  };
66801
66557
  }
66802
- getDescription() {
66803
- // todo
66804
- return undefined;
66805
- }
66806
66558
  }
66807
66559
  exports.NeptuneCustomJSHelper = NeptuneCustomJSHelper;
66808
66560
  //# sourceMappingURL=neptune_custom_js_helper.js.map
@@ -66830,10 +66582,6 @@ class NeptuneDocumentation extends _abstract_object_1.AbstractObject {
66830
66582
  allowNamespace: true,
66831
66583
  };
66832
66584
  }
66833
- getDescription() {
66834
- // todo
66835
- return undefined;
66836
- }
66837
66585
  }
66838
66586
  exports.NeptuneDocumentation = NeptuneDocumentation;
66839
66587
  //# sourceMappingURL=neptune_documentation.js.map
@@ -66861,10 +66609,6 @@ class NeptuneEnhancement extends _abstract_object_1.AbstractObject {
66861
66609
  allowNamespace: true,
66862
66610
  };
66863
66611
  }
66864
- getDescription() {
66865
- // todo
66866
- return undefined;
66867
- }
66868
66612
  }
66869
66613
  exports.NeptuneEnhancement = NeptuneEnhancement;
66870
66614
  //# sourceMappingURL=neptune_enhancement.js.map
@@ -66892,10 +66636,6 @@ class NeptuneLaunchpad extends _abstract_object_1.AbstractObject {
66892
66636
  allowNamespace: true,
66893
66637
  };
66894
66638
  }
66895
- getDescription() {
66896
- // todo
66897
- return undefined;
66898
- }
66899
66639
  }
66900
66640
  exports.NeptuneLaunchpad = NeptuneLaunchpad;
66901
66641
  //# sourceMappingURL=neptune_launchpad.js.map
@@ -66923,10 +66663,6 @@ class NeptuneLaunchpadLayout extends _abstract_object_1.AbstractObject {
66923
66663
  allowNamespace: true,
66924
66664
  };
66925
66665
  }
66926
- getDescription() {
66927
- // todo
66928
- return undefined;
66929
- }
66930
66666
  }
66931
66667
  exports.NeptuneLaunchpadLayout = NeptuneLaunchpadLayout;
66932
66668
  //# sourceMappingURL=neptune_launchpad_layout.js.map
@@ -66954,10 +66690,6 @@ class NeptuneLoginPage extends _abstract_object_1.AbstractObject {
66954
66690
  allowNamespace: true,
66955
66691
  };
66956
66692
  }
66957
- getDescription() {
66958
- // todo
66959
- return undefined;
66960
- }
66961
66693
  }
66962
66694
  exports.NeptuneLoginPage = NeptuneLoginPage;
66963
66695
  //# sourceMappingURL=neptune_login_page.js.map
@@ -66985,10 +66717,6 @@ class NeptuneMediaLibrary extends _abstract_object_1.AbstractObject {
66985
66717
  allowNamespace: true,
66986
66718
  };
66987
66719
  }
66988
- getDescription() {
66989
- // todo
66990
- return undefined;
66991
- }
66992
66720
  }
66993
66721
  exports.NeptuneMediaLibrary = NeptuneMediaLibrary;
66994
66722
  //# sourceMappingURL=neptune_media_library.js.map
@@ -67016,10 +66744,6 @@ class NeptuneMediaPack extends _abstract_object_1.AbstractObject {
67016
66744
  allowNamespace: true,
67017
66745
  };
67018
66746
  }
67019
- getDescription() {
67020
- // todo
67021
- return undefined;
67022
- }
67023
66747
  }
67024
66748
  exports.NeptuneMediaPack = NeptuneMediaPack;
67025
66749
  //# sourceMappingURL=neptune_media_pack.js.map
@@ -67047,10 +66771,6 @@ class NeptuneMetadata extends _abstract_object_1.AbstractObject {
67047
66771
  allowNamespace: true,
67048
66772
  };
67049
66773
  }
67050
- getDescription() {
67051
- // todo
67052
- return undefined;
67053
- }
67054
66774
  }
67055
66775
  exports.NeptuneMetadata = NeptuneMetadata;
67056
66776
  //# sourceMappingURL=neptune_metadata.js.map
@@ -67078,10 +66798,6 @@ class NeptuneMobileClient extends _abstract_object_1.AbstractObject {
67078
66798
  allowNamespace: true,
67079
66799
  };
67080
66800
  }
67081
- getDescription() {
67082
- // todo
67083
- return undefined;
67084
- }
67085
66801
  }
67086
66802
  exports.NeptuneMobileClient = NeptuneMobileClient;
67087
66803
  //# sourceMappingURL=neptune_mobile_client.js.map
@@ -67109,10 +66825,6 @@ class NeptuneOData extends _abstract_object_1.AbstractObject {
67109
66825
  allowNamespace: true,
67110
66826
  };
67111
66827
  }
67112
- getDescription() {
67113
- // todo
67114
- return undefined;
67115
- }
67116
66828
  }
67117
66829
  exports.NeptuneOData = NeptuneOData;
67118
66830
  //# sourceMappingURL=neptune_odata.js.map
@@ -67140,10 +66852,6 @@ class NeptunePolicy extends _abstract_object_1.AbstractObject {
67140
66852
  allowNamespace: true,
67141
66853
  };
67142
66854
  }
67143
- getDescription() {
67144
- // todo
67145
- return undefined;
67146
- }
67147
66855
  }
67148
66856
  exports.NeptunePolicy = NeptunePolicy;
67149
66857
  //# sourceMappingURL=neptune_policy.js.map
@@ -67171,10 +66879,6 @@ class NeptuneRFCMapping extends _abstract_object_1.AbstractObject {
67171
66879
  allowNamespace: true,
67172
66880
  };
67173
66881
  }
67174
- getDescription() {
67175
- // todo
67176
- return undefined;
67177
- }
67178
66882
  }
67179
66883
  exports.NeptuneRFCMapping = NeptuneRFCMapping;
67180
66884
  //# sourceMappingURL=neptune_rfc_mapping.js.map
@@ -67202,10 +66906,6 @@ class NeptuneRichTextTemplate extends _abstract_object_1.AbstractObject {
67202
66906
  allowNamespace: true,
67203
66907
  };
67204
66908
  }
67205
- getDescription() {
67206
- // todo
67207
- return undefined;
67208
- }
67209
66909
  }
67210
66910
  exports.NeptuneRichTextTemplate = NeptuneRichTextTemplate;
67211
66911
  //# sourceMappingURL=neptune_rich_text_template.js.map
@@ -67233,10 +66933,6 @@ class NeptuneSplashScreen extends _abstract_object_1.AbstractObject {
67233
66933
  allowNamespace: true,
67234
66934
  };
67235
66935
  }
67236
- getDescription() {
67237
- // todo
67238
- return undefined;
67239
- }
67240
66936
  }
67241
66937
  exports.NeptuneSplashScreen = NeptuneSplashScreen;
67242
66938
  //# sourceMappingURL=neptune_splash_screen.js.map
@@ -67264,10 +66960,6 @@ class NeptuneStickyBanner extends _abstract_object_1.AbstractObject {
67264
66960
  allowNamespace: true,
67265
66961
  };
67266
66962
  }
67267
- getDescription() {
67268
- // todo
67269
- return undefined;
67270
- }
67271
66963
  }
67272
66964
  exports.NeptuneStickyBanner = NeptuneStickyBanner;
67273
66965
  //# sourceMappingURL=neptune_sticky_banner.js.map
@@ -67295,10 +66987,6 @@ class NeptuneTile extends _abstract_object_1.AbstractObject {
67295
66987
  allowNamespace: true,
67296
66988
  };
67297
66989
  }
67298
- getDescription() {
67299
- // todo
67300
- return undefined;
67301
- }
67302
66990
  }
67303
66991
  exports.NeptuneTile = NeptuneTile;
67304
66992
  //# sourceMappingURL=neptune_tile.js.map
@@ -67326,10 +67014,6 @@ class NeptuneTileGroup extends _abstract_object_1.AbstractObject {
67326
67014
  allowNamespace: true,
67327
67015
  };
67328
67016
  }
67329
- getDescription() {
67330
- // todo
67331
- return undefined;
67332
- }
67333
67017
  }
67334
67018
  exports.NeptuneTileGroup = NeptuneTileGroup;
67335
67019
  //# sourceMappingURL=neptune_tile_group.js.map
@@ -67357,10 +67041,6 @@ class NeptuneTileLayout extends _abstract_object_1.AbstractObject {
67357
67041
  allowNamespace: true,
67358
67042
  };
67359
67043
  }
67360
- getDescription() {
67361
- // todo
67362
- return undefined;
67363
- }
67364
67044
  }
67365
67045
  exports.NeptuneTileLayout = NeptuneTileLayout;
67366
67046
  //# sourceMappingURL=neptune_tile_layout.js.map
@@ -67388,10 +67068,6 @@ class NeptuneURLAlias extends _abstract_object_1.AbstractObject {
67388
67068
  allowNamespace: true,
67389
67069
  };
67390
67070
  }
67391
- getDescription() {
67392
- // todo
67393
- return undefined;
67394
- }
67395
67071
  }
67396
67072
  exports.NeptuneURLAlias = NeptuneURLAlias;
67397
67073
  //# sourceMappingURL=neptune_url_alias.js.map
@@ -67485,10 +67161,6 @@ class Oauth2Profile extends _abstract_object_1.AbstractObject {
67485
67161
  allowNamespace: true,
67486
67162
  };
67487
67163
  }
67488
- getDescription() {
67489
- // todo
67490
- return undefined;
67491
- }
67492
67164
  listScopes() {
67493
67165
  var _a, _b, _c, _d, _e;
67494
67166
  const ret = [];
@@ -67525,10 +67197,6 @@ class ObjectCharacteristic extends _abstract_object_1.AbstractObject {
67525
67197
  allowNamespace: true,
67526
67198
  };
67527
67199
  }
67528
- getDescription() {
67529
- // todo
67530
- return undefined;
67531
- }
67532
67200
  }
67533
67201
  exports.ObjectCharacteristic = ObjectCharacteristic;
67534
67202
  //# sourceMappingURL=object_characteristic.js.map
@@ -67556,10 +67224,6 @@ class OutboundService extends _abstract_object_1.AbstractObject {
67556
67224
  allowNamespace: true,
67557
67225
  };
67558
67226
  }
67559
- getDescription() {
67560
- // todo
67561
- return undefined;
67562
- }
67563
67227
  }
67564
67228
  exports.OutboundService = OutboundService;
67565
67229
  //# sourceMappingURL=outbound_service.js.map
@@ -67587,10 +67251,6 @@ class Package extends _abstract_object_1.AbstractObject {
67587
67251
  allowNamespace: true,
67588
67252
  };
67589
67253
  }
67590
- getDescription() {
67591
- // todo
67592
- return undefined;
67593
- }
67594
67254
  }
67595
67255
  exports.Package = Package;
67596
67256
  //# sourceMappingURL=package.js.map
@@ -67618,10 +67278,6 @@ class PackageInterface extends _abstract_object_1.AbstractObject {
67618
67278
  allowNamespace: true,
67619
67279
  };
67620
67280
  }
67621
- getDescription() {
67622
- // todo
67623
- return undefined;
67624
- }
67625
67281
  }
67626
67282
  exports.PackageInterface = PackageInterface;
67627
67283
  //# sourceMappingURL=package_interface.js.map
@@ -67649,10 +67305,6 @@ class PageFormat extends _abstract_object_1.AbstractObject {
67649
67305
  allowNamespace: true,
67650
67306
  };
67651
67307
  }
67652
- getDescription() {
67653
- // todo
67654
- return undefined;
67655
- }
67656
67308
  }
67657
67309
  exports.PageFormat = PageFormat;
67658
67310
  //# sourceMappingURL=page_format.js.map
@@ -67680,10 +67332,6 @@ class Parameter extends _abstract_object_1.AbstractObject {
67680
67332
  allowNamespace: true,
67681
67333
  };
67682
67334
  }
67683
- getDescription() {
67684
- // todo
67685
- return undefined;
67686
- }
67687
67335
  }
67688
67336
  exports.Parameter = Parameter;
67689
67337
  //# sourceMappingURL=parameter.js.map
@@ -67711,10 +67359,6 @@ class PersonalizationObject extends _abstract_object_1.AbstractObject {
67711
67359
  allowNamespace: true,
67712
67360
  };
67713
67361
  }
67714
- getDescription() {
67715
- // todo
67716
- return undefined;
67717
- }
67718
67362
  }
67719
67363
  exports.PersonalizationObject = PersonalizationObject;
67720
67364
  //# sourceMappingURL=personalization_object.js.map
@@ -67959,10 +67603,6 @@ class PushChannel extends _abstract_object_1.AbstractObject {
67959
67603
  allowNamespace: true,
67960
67604
  };
67961
67605
  }
67962
- getDescription() {
67963
- // todo
67964
- return undefined;
67965
- }
67966
67606
  }
67967
67607
  exports.PushChannel = PushChannel;
67968
67608
  //# sourceMappingURL=push_channel.js.map
@@ -67990,10 +67630,6 @@ class QueryUserGroup extends _abstract_object_1.AbstractObject {
67990
67630
  allowNamespace: true,
67991
67631
  };
67992
67632
  }
67993
- getDescription() {
67994
- // todo
67995
- return undefined;
67996
- }
67997
67633
  }
67998
67634
  exports.QueryUserGroup = QueryUserGroup;
67999
67635
  //# sourceMappingURL=query_user_group.js.map
@@ -68960,10 +68596,6 @@ class RestrictionField extends _abstract_object_1.AbstractObject {
68960
68596
  allowNamespace: true,
68961
68597
  };
68962
68598
  }
68963
- getDescription() {
68964
- // todo
68965
- return undefined;
68966
- }
68967
68599
  }
68968
68600
  exports.RestrictionField = RestrictionField;
68969
68601
  //# sourceMappingURL=restriction_field.js.map
@@ -68991,10 +68623,6 @@ class RestrictionType extends _abstract_object_1.AbstractObject {
68991
68623
  allowNamespace: true,
68992
68624
  };
68993
68625
  }
68994
- getDescription() {
68995
- // todo
68996
- return undefined;
68997
- }
68998
68626
  }
68999
68627
  exports.RestrictionType = RestrictionType;
69000
68628
  //# sourceMappingURL=restriction_type.js.map
@@ -69022,10 +68650,6 @@ class RFCService extends _abstract_object_1.AbstractObject {
69022
68650
  allowNamespace: true,
69023
68651
  };
69024
68652
  }
69025
- getDescription() {
69026
- // todo
69027
- return undefined;
69028
- }
69029
68653
  }
69030
68654
  exports.RFCService = RFCService;
69031
68655
  //# sourceMappingURL=rfc_service.js.map
@@ -69053,10 +68677,6 @@ class SAPScript extends _abstract_object_1.AbstractObject {
69053
68677
  allowNamespace: true,
69054
68678
  };
69055
68679
  }
69056
- getDescription() {
69057
- // todo
69058
- return undefined;
69059
- }
69060
68680
  }
69061
68681
  exports.SAPScript = SAPScript;
69062
68682
  //# sourceMappingURL=sapscript.js.map
@@ -69084,10 +68704,6 @@ class SAPScriptStyle extends _abstract_object_1.AbstractObject {
69084
68704
  allowNamespace: true,
69085
68705
  };
69086
68706
  }
69087
- getDescription() {
69088
- // todo
69089
- return undefined;
69090
- }
69091
68707
  }
69092
68708
  exports.SAPScriptStyle = SAPScriptStyle;
69093
68709
  //# sourceMappingURL=sapscript_style.js.map
@@ -69115,10 +68731,6 @@ class ScreenVariant extends _abstract_object_1.AbstractObject {
69115
68731
  allowNamespace: true,
69116
68732
  };
69117
68733
  }
69118
- getDescription() {
69119
- // todo
69120
- return undefined;
69121
- }
69122
68734
  }
69123
68735
  exports.ScreenVariant = ScreenVariant;
69124
68736
  //# sourceMappingURL=screen_variant.js.map
@@ -69146,10 +68758,6 @@ class SearchHelp extends _abstract_object_1.AbstractObject {
69146
68758
  allowNamespace: true,
69147
68759
  };
69148
68760
  }
69149
- getDescription() {
69150
- // todo
69151
- return undefined;
69152
- }
69153
68761
  }
69154
68762
  exports.SearchHelp = SearchHelp;
69155
68763
  //# sourceMappingURL=search_help.js.map
@@ -69177,10 +68785,6 @@ class ServiceBinding extends _abstract_object_1.AbstractObject {
69177
68785
  allowNamespace: true,
69178
68786
  };
69179
68787
  }
69180
- getDescription() {
69181
- // todo
69182
- return undefined;
69183
- }
69184
68788
  }
69185
68789
  exports.ServiceBinding = ServiceBinding;
69186
68790
  //# sourceMappingURL=service_binding.js.map
@@ -69208,10 +68812,6 @@ class ServiceDefinition extends _abstract_object_1.AbstractObject {
69208
68812
  allowNamespace: true,
69209
68813
  };
69210
68814
  }
69211
- getDescription() {
69212
- // todo
69213
- return undefined;
69214
- }
69215
68815
  }
69216
68816
  exports.ServiceDefinition = ServiceDefinition;
69217
68817
  //# sourceMappingURL=service_definition.js.map
@@ -69239,10 +68839,6 @@ class SharedMemory extends _abstract_object_1.AbstractObject {
69239
68839
  allowNamespace: true,
69240
68840
  };
69241
68841
  }
69242
- getDescription() {
69243
- // todo
69244
- return undefined;
69245
- }
69246
68842
  }
69247
68843
  exports.SharedMemory = SharedMemory;
69248
68844
  //# sourceMappingURL=shared_memory.js.map
@@ -69270,10 +68866,6 @@ class SmartForm extends _abstract_object_1.AbstractObject {
69270
68866
  allowNamespace: true,
69271
68867
  };
69272
68868
  }
69273
- getDescription() {
69274
- // todo
69275
- return undefined;
69276
- }
69277
68869
  }
69278
68870
  exports.SmartForm = SmartForm;
69279
68871
  //# sourceMappingURL=smart_form.js.map
@@ -69301,10 +68893,6 @@ class SmartStyle extends _abstract_object_1.AbstractObject {
69301
68893
  allowNamespace: true,
69302
68894
  };
69303
68895
  }
69304
- getDescription() {
69305
- // todo
69306
- return undefined;
69307
- }
69308
68896
  }
69309
68897
  exports.SmartStyle = SmartStyle;
69310
68898
  //# sourceMappingURL=smart_style.js.map
@@ -69332,10 +68920,6 @@ class StandardTask extends _abstract_object_1.AbstractObject {
69332
68920
  allowNamespace: true,
69333
68921
  };
69334
68922
  }
69335
- getDescription() {
69336
- // todo
69337
- return undefined;
69338
- }
69339
68923
  }
69340
68924
  exports.StandardTask = StandardTask;
69341
68925
  //# sourceMappingURL=standard_task.js.map
@@ -69363,10 +68947,6 @@ class SwitchAssignmentHierarchy extends _abstract_object_1.AbstractObject {
69363
68947
  allowNamespace: true,
69364
68948
  };
69365
68949
  }
69366
- getDescription() {
69367
- // todo
69368
- return undefined;
69369
- }
69370
68950
  }
69371
68951
  exports.SwitchAssignmentHierarchy = SwitchAssignmentHierarchy;
69372
68952
  //# sourceMappingURL=switch_assignment_hierarchy.js.map
@@ -69394,10 +68974,6 @@ class SwitchAssignments extends _abstract_object_1.AbstractObject {
69394
68974
  allowNamespace: true,
69395
68975
  };
69396
68976
  }
69397
- getDescription() {
69398
- // todo
69399
- return undefined;
69400
- }
69401
68977
  }
69402
68978
  exports.SwitchAssignments = SwitchAssignments;
69403
68979
  //# sourceMappingURL=switch_assignments.js.map
@@ -70117,10 +69693,6 @@ class TechnicalJobDefinition extends _abstract_object_1.AbstractObject {
70117
69693
  allowNamespace: true,
70118
69694
  };
70119
69695
  }
70120
- getDescription() {
70121
- // todo
70122
- return undefined;
70123
- }
70124
69696
  }
70125
69697
  exports.TechnicalJobDefinition = TechnicalJobDefinition;
70126
69698
  //# sourceMappingURL=technical_job_definition.js.map
@@ -70222,10 +69794,6 @@ class TransactionVariant extends _abstract_object_1.AbstractObject {
70222
69794
  allowNamespace: true,
70223
69795
  };
70224
69796
  }
70225
- getDescription() {
70226
- // todo
70227
- return undefined;
70228
- }
70229
69797
  }
70230
69798
  exports.TransactionVariant = TransactionVariant;
70231
69799
  //# sourceMappingURL=transaction_variant.js.map
@@ -70253,10 +69821,6 @@ class Transformation extends _abstract_object_1.AbstractObject {
70253
69821
  allowNamespace: true,
70254
69822
  };
70255
69823
  }
70256
- getDescription() {
70257
- // todo
70258
- return undefined;
70259
- }
70260
69824
  }
70261
69825
  exports.Transformation = Transformation;
70262
69826
  //# sourceMappingURL=transformation.js.map
@@ -70527,10 +70091,6 @@ class ViewCluster extends _abstract_object_1.AbstractObject {
70527
70091
  allowNamespace: true,
70528
70092
  };
70529
70093
  }
70530
- getDescription() {
70531
- // todo
70532
- return undefined;
70533
- }
70534
70094
  }
70535
70095
  exports.ViewCluster = ViewCluster;
70536
70096
  //# sourceMappingURL=view_cluster.js.map
@@ -70558,10 +70118,6 @@ class VirtualEndPoint extends _abstract_object_1.AbstractObject {
70558
70118
  allowNamespace: true,
70559
70119
  };
70560
70120
  }
70561
- getDescription() {
70562
- // todo
70563
- return undefined;
70564
- }
70565
70121
  }
70566
70122
  exports.VirtualEndPoint = VirtualEndPoint;
70567
70123
  //# sourceMappingURL=virtual_end_point.js.map
@@ -70589,10 +70145,6 @@ class WebDynproApplication extends _abstract_object_1.AbstractObject {
70589
70145
  allowNamespace: true,
70590
70146
  };
70591
70147
  }
70592
- getDescription() {
70593
- // todo
70594
- return undefined;
70595
- }
70596
70148
  }
70597
70149
  exports.WebDynproApplication = WebDynproApplication;
70598
70150
  //# sourceMappingURL=web_dynpro_application.js.map
@@ -70620,10 +70172,6 @@ class WebDynproApplicationConfiguration extends _abstract_object_1.AbstractObjec
70620
70172
  allowNamespace: true,
70621
70173
  };
70622
70174
  }
70623
- getDescription() {
70624
- // todo
70625
- return undefined;
70626
- }
70627
70175
  }
70628
70176
  exports.WebDynproApplicationConfiguration = WebDynproApplicationConfiguration;
70629
70177
  //# sourceMappingURL=web_dynpro_application_configuration.js.map
@@ -70651,10 +70199,6 @@ class WebDynproComponent extends _abstract_object_1.AbstractObject {
70651
70199
  allowNamespace: true,
70652
70200
  };
70653
70201
  }
70654
- getDescription() {
70655
- // todo
70656
- return undefined;
70657
- }
70658
70202
  }
70659
70203
  exports.WebDynproComponent = WebDynproComponent;
70660
70204
  //# sourceMappingURL=web_dynpro_component.js.map
@@ -70682,10 +70226,6 @@ class WebDynproComponentConfiguration extends _abstract_object_1.AbstractObject
70682
70226
  allowNamespace: true,
70683
70227
  };
70684
70228
  }
70685
- getDescription() {
70686
- // todo
70687
- return undefined;
70688
- }
70689
70229
  }
70690
70230
  exports.WebDynproComponentConfiguration = WebDynproComponentConfiguration;
70691
70231
  //# sourceMappingURL=web_dynpro_component_configuration.js.map
@@ -70793,10 +70333,6 @@ class WebReportingTemplate extends _abstract_object_1.AbstractObject {
70793
70333
  allowNamespace: true,
70794
70334
  };
70795
70335
  }
70796
- getDescription() {
70797
- // todo
70798
- return undefined;
70799
- }
70800
70336
  }
70801
70337
  exports.WebReportingTemplate = WebReportingTemplate;
70802
70338
  //# sourceMappingURL=web_reporting_template.js.map
@@ -71361,7 +70897,7 @@ class Registry {
71361
70897
  }
71362
70898
  static abaplintVersion() {
71363
70899
  // magic, see build script "version.js"
71364
- return "2.120.64";
70900
+ return "2.120.65";
71365
70901
  }
71366
70902
  getDDICReferences() {
71367
70903
  return this.ddicReferences;
@@ -81954,8 +81490,8 @@ class ElseAfterAllReturns extends _abap_rule_1.ABAPRule {
81954
81490
  continue;
81955
81491
  }
81956
81492
  const fix = edit_helper_1.EditHelper.merge(edit_helper_1.EditHelper.replaceRange(file, elseStatement.getFirstToken().getStart(), elseStatement.getLastToken().getEnd(), "ENDIF."), edit_helper_1.EditHelper.deleteStatement(file, endifStatement));
81957
- // eslint-disable-next-line max-len
81958
- issues.push(issue_1.Issue.atStatement(file, elseStatement, "Redundant ELSE: all prior branches exit unconditionally", this.getMetadata().key, this.conf.severity, fix));
81493
+ const message = "Redundant ELSE: all prior branches exit unconditionally";
81494
+ issues.push(issue_1.Issue.atStatement(file, elseStatement, message, this.getMetadata().key, this.conf.severity, fix));
81959
81495
  }
81960
81496
  }
81961
81497
  return issues;
@@ -84991,6 +84527,8 @@ const Statements = __importStar(__webpack_require__(/*! ../abap/2_statements/sta
84991
84527
  const Expressions = __importStar(__webpack_require__(/*! ../abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js"));
84992
84528
  const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
84993
84529
  const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
84530
+ const syntax_1 = __webpack_require__(/*! ../abap/5_syntax/syntax */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js");
84531
+ const _reference_1 = __webpack_require__(/*! ../abap/5_syntax/_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
84994
84532
  // todo: abstract methods from superclass parents(might be multiple), if class is not abstract
84995
84533
  class ImplementMethodsConf extends _basic_rule_config_1.BasicRuleConfig {
84996
84534
  }
@@ -85101,7 +84639,7 @@ class ImplementMethods extends _abap_rule_1.ABAPRule {
85101
84639
  return undefined;
85102
84640
  }
85103
84641
  findInterface(identifier, name) {
85104
- const idef = this.findInterfaceByName(name);
84642
+ const idef = this.findInterfaceByName(name, identifier);
85105
84643
  if (idef === undefined) {
85106
84644
  const message = "Implemented interface \"" + name + "\" not found";
85107
84645
  const issue = issue_1.Issue.atIdentifier(identifier, message, this.getMetadata().key, this.conf.severity);
@@ -85109,24 +84647,45 @@ class ImplementMethods extends _abap_rule_1.ABAPRule {
85109
84647
  }
85110
84648
  return idef;
85111
84649
  }
85112
- findInterfaceByName(name) {
84650
+ findInterfaceByName(name, usedAt) {
85113
84651
  var _a;
85114
- let idef = undefined;
85115
84652
  const intf = this.reg.getObject("INTF", name);
85116
- if (intf === undefined) {
85117
- // lookup in localfiles
84653
+ const global = (_a = intf === null || intf === void 0 ? void 0 : intf.getMainABAPFile()) === null || _a === void 0 ? void 0 : _a.getInfo().listInterfaceDefinitions()[0];
84654
+ let local = undefined;
84655
+ for (const file of this.obj.getABAPFiles()) {
84656
+ local = file.getInfo().getInterfaceDefinitionByName(name);
84657
+ if (local) {
84658
+ break;
84659
+ }
84660
+ }
84661
+ if (local === undefined || global === undefined) {
84662
+ return global || local;
84663
+ }
84664
+ // both a local and a global interface exist with the same name, use what the syntax check resolved
84665
+ const resolved = this.findResolvedInterface(name, usedAt);
84666
+ if (resolved !== undefined) {
85118
84667
  for (const file of this.obj.getABAPFiles()) {
85119
- const found = file.getInfo().getInterfaceDefinitionByName(name);
85120
- if (found) {
85121
- idef = found;
85122
- break;
84668
+ for (const idef of file.getInfo().listInterfaceDefinitions()) {
84669
+ if (idef.identifier.equals(resolved)) {
84670
+ return idef;
84671
+ }
85123
84672
  }
85124
84673
  }
85125
84674
  }
85126
- else {
85127
- idef = (_a = intf.getMainABAPFile()) === null || _a === void 0 ? void 0 : _a.getInfo().listInterfaceDefinitions()[0];
84675
+ return global;
84676
+ }
84677
+ findResolvedInterface(name, usedAt) {
84678
+ var _a, _b, _c;
84679
+ const scope = new syntax_1.SyntaxLogic(this.reg, this.obj).run().spaghetti.lookupPosition(usedAt.getStart(), usedAt.getFilename());
84680
+ const upper = name.toUpperCase();
84681
+ for (const ref of (scope === null || scope === void 0 ? void 0 : scope.getData().references) || []) {
84682
+ if (ref.referenceType === _reference_1.ReferenceType.ObjectOrientedReference
84683
+ && ((_a = ref.extra) === null || _a === void 0 ? void 0 : _a.ooType) === "INTF"
84684
+ && ((_c = (_b = ref.extra) === null || _b === void 0 ? void 0 : _b.ooName) === null || _c === void 0 ? void 0 : _c.toUpperCase()) === upper) {
84685
+ return ref.resolved;
84686
+ }
85128
84687
  }
85129
- return idef;
84688
+ return undefined;
85130
84689
  }
85131
84690
  /** including implemented super interfaces */
85132
84691
  findInterfaceMethods(idef) {
@@ -85245,7 +84804,7 @@ class ImplementMethods extends _abap_rule_1.ABAPRule {
85245
84804
  }
85246
84805
  if (found === undefined) {
85247
84806
  for (const i of def.interfaces) {
85248
- const idef = this.findInterfaceByName(i.name);
84807
+ const idef = this.findInterfaceByName(i.name, def.identifier);
85249
84808
  if (idef === undefined) {
85250
84809
  continue;
85251
84810
  }
@@ -85937,6 +85496,7 @@ __exportStar(__webpack_require__(/*! ./prefer_string_template */ "./node_modules
85937
85496
  __exportStar(__webpack_require__(/*! ./prefer_returning_to_exporting */ "./node_modules/@abaplint/core/build/src/rules/prefer_returning_to_exporting.js"), exports);
85938
85497
  __exportStar(__webpack_require__(/*! ./prefer_xsdbool */ "./node_modules/@abaplint/core/build/src/rules/prefer_xsdbool.js"), exports);
85939
85498
  __exportStar(__webpack_require__(/*! ./preferred_compare_operator */ "./node_modules/@abaplint/core/build/src/rules/preferred_compare_operator.js"), exports);
85499
+ __exportStar(__webpack_require__(/*! ./preferred_parameter_ignored */ "./node_modules/@abaplint/core/build/src/rules/preferred_parameter_ignored.js"), exports);
85940
85500
  __exportStar(__webpack_require__(/*! ./prefix_is_current_class */ "./node_modules/@abaplint/core/build/src/rules/prefix_is_current_class.js"), exports);
85941
85501
  __exportStar(__webpack_require__(/*! ./reduce_procedural_code */ "./node_modules/@abaplint/core/build/src/rules/reduce_procedural_code.js"), exports);
85942
85502
  __exportStar(__webpack_require__(/*! ./reduce_string_templates */ "./node_modules/@abaplint/core/build/src/rules/reduce_string_templates.js"), exports);
@@ -94978,6 +94538,157 @@ exports.PreferredCompareOperator = PreferredCompareOperator;
94978
94538
 
94979
94539
  /***/ },
94980
94540
 
94541
+ /***/ "./node_modules/@abaplint/core/build/src/rules/preferred_parameter_ignored.js"
94542
+ /*!************************************************************************************!*\
94543
+ !*** ./node_modules/@abaplint/core/build/src/rules/preferred_parameter_ignored.js ***!
94544
+ \************************************************************************************/
94545
+ (__unused_webpack_module, exports, __webpack_require__) {
94546
+
94547
+ "use strict";
94548
+
94549
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
94550
+ if (k2 === undefined) k2 = k;
94551
+ var desc = Object.getOwnPropertyDescriptor(m, k);
94552
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
94553
+ desc = { enumerable: true, get: function() { return m[k]; } };
94554
+ }
94555
+ Object.defineProperty(o, k2, desc);
94556
+ }) : (function(o, m, k, k2) {
94557
+ if (k2 === undefined) k2 = k;
94558
+ o[k2] = m[k];
94559
+ }));
94560
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
94561
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
94562
+ }) : function(o, v) {
94563
+ o["default"] = v;
94564
+ });
94565
+ var __importStar = (this && this.__importStar) || (function () {
94566
+ var ownKeys = function(o) {
94567
+ ownKeys = Object.getOwnPropertyNames || function (o) {
94568
+ var ar = [];
94569
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
94570
+ return ar;
94571
+ };
94572
+ return ownKeys(o);
94573
+ };
94574
+ return function (mod) {
94575
+ if (mod && mod.__esModule) return mod;
94576
+ var result = {};
94577
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
94578
+ __setModuleDefault(result, mod);
94579
+ return result;
94580
+ };
94581
+ })();
94582
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
94583
+ exports.PreferredParameterIgnored = exports.PreferredParameterIgnoredConf = void 0;
94584
+ const Expressions = __importStar(__webpack_require__(/*! ../abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js"));
94585
+ const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
94586
+ const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
94587
+ const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@abaplint/core/build/src/rules/_abap_rule.js");
94588
+ const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
94589
+ const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
94590
+ class PreferredParameterIgnoredConf extends _basic_rule_config_1.BasicRuleConfig {
94591
+ }
94592
+ exports.PreferredParameterIgnoredConf = PreferredParameterIgnoredConf;
94593
+ class PreferredParameterIgnored extends _abap_rule_1.ABAPRule {
94594
+ constructor() {
94595
+ super(...arguments);
94596
+ this.conf = new PreferredParameterIgnoredConf();
94597
+ }
94598
+ getMetadata() {
94599
+ return {
94600
+ key: "preferred_parameter_ignored",
94601
+ title: "PREFERRED PARAMETER is ignored",
94602
+ shortDescription: `PREFERRED PARAMETER on an IMPORTING clause that still has a mandatory
94603
+ parameter. The addition names the parameter a positional call fills, which only
94604
+ means something when every parameter may be left out - so with a mandatory one
94605
+ present it does nothing.`,
94606
+ extendedInformation: `\`PREFERRED PARAMETER\` names the importing parameter that a call filling exactly
94607
+ one parameter positionally fills. That question only arises when a parameter
94608
+ may be LEFT OUT, so the addition is ignored while any importing parameter is
94609
+ neither \`OPTIONAL\` nor carries a \`DEFAULT\`.
94610
+
94611
+ The compiler warns "Declare the parameter as OPTIONAL. The addition PREFERRED
94612
+ PARAMETER is ignored if non-optional parameters are used", yet it still lets a
94613
+ call leave the preferred parameter out. So the quick fix declares the mandatory
94614
+ importing parameters OPTIONAL, as the compiler asks: every call that compiles
94615
+ today keeps compiling. Removing the addition instead would turn the calls that
94616
+ leave the preferred parameter out into syntax errors.`,
94617
+ tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Quickfix],
94618
+ badExample: `METHODS meth
94619
+ IMPORTING
94620
+ val TYPE string
94621
+ other TYPE i OPTIONAL
94622
+ PREFERRED PARAMETER val.`,
94623
+ goodExample: `METHODS meth
94624
+ IMPORTING
94625
+ val TYPE string OPTIONAL
94626
+ other TYPE i OPTIONAL
94627
+ PREFERRED PARAMETER val.`,
94628
+ };
94629
+ }
94630
+ getConfig() {
94631
+ return this.conf;
94632
+ }
94633
+ setConfig(conf) {
94634
+ this.conf = conf;
94635
+ }
94636
+ runParsed(file) {
94637
+ var _a;
94638
+ var _b;
94639
+ const issues = [];
94640
+ for (const statement of file.getStatements()) {
94641
+ const importing = statement.findFirstExpression(Expressions.MethodDefImporting);
94642
+ if (importing === undefined) {
94643
+ continue;
94644
+ }
94645
+ const preferred = this.preferredTokens(importing);
94646
+ if (preferred === undefined) {
94647
+ continue;
94648
+ }
94649
+ const mandatory = this.mandatoryParameters(importing);
94650
+ if (mandatory.length === 0) {
94651
+ continue;
94652
+ }
94653
+ const fix = edit_helper_1.EditHelper.mergeList(mandatory.map(p => edit_helper_1.EditHelper.insertAt(file, p.getLastToken().getEnd(), " OPTIONAL")));
94654
+ const name = (_b = (_a = mandatory[0].findFirstExpression(Expressions.MethodParamName)) === null || _a === void 0 ? void 0 : _a.concatTokens()) !== null && _b !== void 0 ? _b : mandatory[0].concatTokens();
94655
+ const message = `PREFERRED PARAMETER is ignored while ${name} is not optional`;
94656
+ issues.push(issue_1.Issue.atStatement(file, statement, message, this.getMetadata().key, this.conf.severity, fix));
94657
+ }
94658
+ return issues;
94659
+ }
94660
+ ////////////////
94661
+ /** The span of `PREFERRED PARAMETER <name>`, or undefined when the clause
94662
+ * does not carry the addition. */
94663
+ preferredTokens(importing) {
94664
+ const tokens = importing.getTokens();
94665
+ for (let i = 0; i + 2 < tokens.length; i++) {
94666
+ if (tokens[i].getStr().toUpperCase() === "PREFERRED"
94667
+ && tokens[i + 1].getStr().toUpperCase() === "PARAMETER") {
94668
+ return { start: tokens[i].getStart(), end: tokens[i + 2].getEnd() };
94669
+ }
94670
+ }
94671
+ return undefined;
94672
+ }
94673
+ /** The importing parameters that are neither OPTIONAL nor have a DEFAULT,
94674
+ * empty when every one of them may be left out. */
94675
+ mandatoryParameters(importing) {
94676
+ const ret = [];
94677
+ for (const param of importing.findDirectExpressions(Expressions.MethodParamOptional)) {
94678
+ const concat = param.concatTokens().toUpperCase();
94679
+ if (concat.endsWith(" OPTIONAL") || concat.includes(" DEFAULT ")) {
94680
+ continue;
94681
+ }
94682
+ ret.push(param);
94683
+ }
94684
+ return ret;
94685
+ }
94686
+ }
94687
+ exports.PreferredParameterIgnored = PreferredParameterIgnored;
94688
+ //# sourceMappingURL=preferred_parameter_ignored.js.map
94689
+
94690
+ /***/ },
94691
+
94981
94692
  /***/ "./node_modules/@abaplint/core/build/src/rules/prefix_is_current_class.js"
94982
94693
  /*!********************************************************************************!*\
94983
94694
  !*** ./node_modules/@abaplint/core/build/src/rules/prefix_is_current_class.js ***!
@@ -104494,7 +104205,8 @@ class Chunk {
104494
104205
  }
104495
104206
  const indentationByLine = this.mappings.length > 0 ? [] : undefined;
104496
104207
  for (const l of this.raw.split("\n")) {
104497
- if (l.startsWith("}")) {
104208
+ // trimStart, a pre-indented closing brace must still close its level
104209
+ if (l.trimStart().startsWith("}")) {
104498
104210
  i = i - 1;
104499
104211
  }
104500
104212
  // clamp so unbalanced braces never produce a negative indent/shift
@@ -108411,22 +108123,18 @@ class ReduceBodyTranspiler {
108411
108123
  for (const declaration of declarations) {
108412
108124
  ret.appendString(declaration + "\n");
108413
108125
  }
108414
- let indent = "";
108415
- const levelIndents = [];
108126
+ // no manual indentation, Chunk.runIndentationLogic indents by brace depth,
108127
+ // pre-indented closing braces would not be recognized and drift the indentation
108416
108128
  for (const descriptor of descriptors) {
108417
- this.appendBlocks(ret, descriptor.beforeLoop, indent);
108418
- ret.appendString(indent + descriptor.open + "\n");
108419
- indent += " ";
108420
- levelIndents.push(indent);
108421
- this.appendBlocks(ret, descriptor.preBody, indent);
108129
+ this.appendBlocks(ret, descriptor.beforeLoop);
108130
+ ret.appendString(descriptor.open + "\n");
108131
+ this.appendBlocks(ret, descriptor.preBody);
108422
108132
  }
108423
- this.appendBlock(ret, this.transpileNext(body, traversal), indent);
108133
+ this.appendBlock(ret, this.transpileNext(body, traversal));
108424
108134
  for (let i = descriptors.length - 1; i >= 0; i--) {
108425
108135
  const descriptor = descriptors[i];
108426
- const currentIndent = levelIndents[i];
108427
- this.appendBlocks(ret, descriptor.postBody, currentIndent);
108428
- indent = currentIndent.substring(0, Math.max(0, currentIndent.length - 2));
108429
- ret.appendString(indent + descriptor.close + "\n");
108136
+ this.appendBlocks(ret, descriptor.postBody);
108137
+ ret.appendString(descriptor.close + "\n");
108430
108138
  }
108431
108139
  ret.appendString(`return ${returnField};\n`);
108432
108140
  ret.appendString("})())");
@@ -108646,15 +108354,15 @@ class ReduceBodyTranspiler {
108646
108354
  }
108647
108355
  return ret;
108648
108356
  }
108649
- appendBlocks(ret, blocks, indent) {
108357
+ appendBlocks(ret, blocks) {
108650
108358
  for (const block of blocks) {
108651
- this.appendBlock(ret, block, indent);
108359
+ this.appendBlock(ret, block);
108652
108360
  }
108653
108361
  }
108654
- appendBlock(ret, block, indent) {
108362
+ appendBlock(ret, block) {
108655
108363
  for (const line of block.split("\n")) {
108656
108364
  if (line.trim() !== "") {
108657
- ret.appendString(indent + line.replace(/\r/g, "") + "\n");
108365
+ ret.appendString(line.replace(/\r/g, "") + "\n");
108658
108366
  }
108659
108367
  }
108660
108368
  }
@@ -108770,11 +108478,15 @@ const corresponding_body_1 = __webpack_require__(/*! ./corresponding_body */ "./
108770
108478
  const filter_body_1 = __webpack_require__(/*! ./filter_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/filter_body.js");
108771
108479
  const reduce_body_1 = __webpack_require__(/*! ./reduce_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/reduce_body.js");
108772
108480
  const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
108481
+ const let_1 = __webpack_require__(/*! ./let */ "./node_modules/@abaplint/transpiler/build/src/expressions/let.js");
108773
108482
  const value_body_1 = __webpack_require__(/*! ./value_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/value_body.js");
108774
108483
  class SourceTranspiler {
108775
108484
  addGet;
108776
- constructor(addGet = false) {
108485
+ int8;
108486
+ /** int8: the calculation type is int8, each operation gets its left operand as an int8 */
108487
+ constructor(addGet = false, int8 = false) {
108777
108488
  this.addGet = addGet;
108489
+ this.int8 = int8;
108778
108490
  }
108779
108491
  // the operands of a chain of & / && (the rearranger leaves them as a binary
108780
108492
  // tree of Source nodes); an empty list when the node is not such a chain
@@ -108842,6 +108554,8 @@ class SourceTranspiler {
108842
108554
  break;
108843
108555
  }
108844
108556
  }
108557
+ // int8: whether the operand left of the next operator is already an int8
108558
+ let leftIsInt8 = false;
108845
108559
  for (let i = startIdx; i < children.length; i++) {
108846
108560
  const c = children[i];
108847
108561
  const isLast = i === children.length - 1;
@@ -108859,7 +108573,18 @@ class SourceTranspiler {
108859
108573
  ret.appendChunk(traversal.traverse(c));
108860
108574
  }
108861
108575
  else if (c.get() instanceof core_1.Expressions.ArithOperator) {
108862
- ret = new chunk_1.Chunk().appendChunk(traversal.traverse(c)).appendString("(").appendChunk(ret).appendString(",");
108576
+ // "/" rounds in calculation type int8, the runtime's divide() does not know the target
108577
+ const operator = this.int8 === true && c.concatTokens().trim() === "/"
108578
+ ? new chunk_1.Chunk().append("abap.operators.divideInt8", c, traversal)
108579
+ : traversal.traverse(c);
108580
+ if (this.int8 === true && leftIsInt8 === false) {
108581
+ ret = new chunk_1.Chunk().appendChunk(operator).appendString("(new abap.types.Integer8().set(").appendChunk(ret).appendString("),");
108582
+ }
108583
+ else {
108584
+ ret = new chunk_1.Chunk().appendChunk(operator).appendString("(").appendChunk(ret).appendString(",");
108585
+ }
108586
+ // the result of an operation with an int8 operand is an int8
108587
+ leftIsInt8 = true;
108863
108588
  post.appendString(")");
108864
108589
  if (this.addGet) {
108865
108590
  post.append(".get()", c, traversal);
@@ -108876,7 +108601,8 @@ class SourceTranspiler {
108876
108601
  }
108877
108602
  }
108878
108603
  else if (c.get() instanceof core_1.Expressions.Source) {
108879
- ret.appendChunk(new SourceTranspiler(this.addGet).transpile(c, traversal));
108604
+ ret.appendChunk(new SourceTranspiler(this.addGet, this.int8).transpile(c, traversal));
108605
+ leftIsInt8 = c.findDirectExpression(core_1.Expressions.ArithOperator) !== undefined;
108880
108606
  }
108881
108607
  else if (c.get() instanceof core_1.Expressions.Arrow) {
108882
108608
  ret = new chunk_1.Chunk().appendString("(").appendChunk(ret).appendString(").get().");
@@ -108912,13 +108638,19 @@ class SourceTranspiler {
108912
108638
  }
108913
108639
  ret = new chunk_1.Chunk().appendString(new _1.TypeNameOrInfer().transpile(typ, traversal).getCode());
108914
108640
  ret.appendString(".set(");
108915
- // todo: handle LET
108916
108641
  const context = new _1.TypeNameOrInfer().findType(typ, traversal);
108917
- ret.appendString(new SourceTranspiler().transpile(c.getFirstChild(), traversal, context).getCode());
108642
+ const convSource = c.findDirectExpression(core_1.Expressions.Source);
108643
+ ret.appendString(new SourceTranspiler().transpile(convSource, traversal, context).getCode());
108918
108644
  ret.appendString(")");
108919
108645
  if (this.addGet) {
108920
108646
  ret.appendString(".get()");
108921
108647
  }
108648
+ const convLet = c.findDirectExpression(core_1.Expressions.Let);
108649
+ if (convLet) {
108650
+ // the LET bindings are declared in a scope of their own, before the value is built
108651
+ const letCode = new let_1.LetTranspiler().transpile(convLet, traversal).getCode();
108652
+ ret = new chunk_1.Chunk().appendString(`(await (async () => { ${letCode} return ${ret.getCode()}; })())`);
108653
+ }
108922
108654
  }
108923
108655
  else if (c.get() instanceof core_1.Expressions.ValueBody) {
108924
108656
  continue;
@@ -111045,6 +110777,7 @@ class ValueBodyTranspiler {
111045
110777
  const outerLetCode = outerLet === undefined
111046
110778
  ? undefined
111047
110779
  : new let_1.LetTranspiler().transpile(outerLet, traversal).getCode();
110780
+ let hasFor = false;
111048
110781
  const children = body.getChildren();
111049
110782
  for (let i = 0; i < children.length; i++) {
111050
110783
  const child = children[i];
@@ -111087,6 +110820,7 @@ class ValueBodyTranspiler {
111087
110820
  }
111088
110821
  }
111089
110822
  i = idx - 1;
110823
+ hasFor = true;
111090
110824
  const result = this.buildForChain(forNodes, typ, traversal, body, baseCode, outerLetCode);
111091
110825
  ret = result.chunk;
111092
110826
  post = result.post;
@@ -111114,14 +110848,18 @@ class ValueBodyTranspiler {
111114
110848
  throw new Error("ValueBodyTranspiler, unknown " + child.get().constructor.name + " \"" + child.concatTokens()) + "\"";
111115
110849
  }
111116
110850
  }
111117
- return ret.appendString(post);
110851
+ ret.appendString(post);
110852
+ if (outerLetCode !== undefined && hasFor === false) {
110853
+ // without FOR the LET bindings are declared here, in a scope of their own, before the value is built
110854
+ ret = new chunk_1.Chunk().appendString(`(await (async () => { ${outerLetCode} return ${ret.getCode()}; })())`);
110855
+ }
110856
+ return ret;
111118
110857
  }
111119
110858
  buildForChain(forNodes, typ, traversal, body, baseCode, outerLetCode) {
111120
110859
  const val = baseCode ?? new type_name_or_infer_1.TypeNameOrInfer().transpile(typ, traversal).getCode();
111121
110860
  const chunk = new chunk_1.Chunk();
111122
110861
  const preLoopDecls = outerLetCode === undefined ? [] : [outerLetCode];
111123
110862
  const descriptors = [];
111124
- const levelIndents = [];
111125
110863
  let uniqueCounter = 1;
111126
110864
  for (const child of forNodes) {
111127
110865
  const loop = child.findDirectExpression(core_1.Expressions.InlineLoopDefinition);
@@ -111237,11 +110975,11 @@ class ValueBodyTranspiler {
111237
110975
  letCode = new let_1.LetTranspiler().transpile(llet, traversal).getCode();
111238
110976
  }
111239
110977
  const condCode = traversal.traverse(cond).getCode();
111240
- const preCheck = hasWhile ? `if (!(${condCode})) {\n break;\n}` : "";
110978
+ const preCheck = hasWhile ? `if (!(${condCode})) {\nbreak;\n}` : "";
111241
110979
  const postLoop = [];
111242
110980
  postLoop.push(incrementLine);
111243
110981
  if (hasUntil) {
111244
- postLoop.push(`if (${condCode}) {\n break;\n}`);
110982
+ postLoop.push(`if (${condCode}) {\nbreak;\n}`);
111245
110983
  }
111246
110984
  descriptors.push({
111247
110985
  beforeLoop: [declare, `${counterName}.set(${start});`],
@@ -111256,34 +110994,31 @@ class ValueBodyTranspiler {
111256
110994
  throw new Error("ValueBodyTranspiler FOR internal error");
111257
110995
  }
111258
110996
  chunk.appendString("await (async () => {\n");
111259
- this.appendBlocks(chunk, preLoopDecls, "");
110997
+ this.appendBlocks(chunk, preLoopDecls);
111260
110998
  chunk.appendString(`const VAL = ${val};\n`);
111261
- let indent = "";
110999
+ // no manual indentation, Chunk.runIndentationLogic indents by brace depth,
111000
+ // pre-indented closing braces would not be recognized and drift the indentation
111262
111001
  for (const desc of descriptors) {
111263
- this.appendBlocks(chunk, desc.beforeLoop, indent);
111264
- chunk.appendString(indent + desc.open + "\n");
111265
- indent += " ";
111266
- levelIndents.push(indent);
111267
- this.appendBlocks(chunk, desc.preBody, indent);
111002
+ this.appendBlocks(chunk, desc.beforeLoop);
111003
+ chunk.appendString(desc.open + "\n");
111004
+ this.appendBlocks(chunk, desc.preBody);
111268
111005
  }
111269
- chunk.appendString(indent + "VAL");
111006
+ chunk.appendString("VAL");
111270
111007
  let post = ";\n";
111271
111008
  for (let i = descriptors.length - 1; i >= 0; i--) {
111272
111009
  const desc = descriptors[i];
111273
- const currentIndent = levelIndents[i] ?? "";
111274
- post += this.blocksToString(desc.postBody, currentIndent);
111275
- const parentIndent = currentIndent.substring(0, Math.max(0, currentIndent.length - 2));
111276
- post += parentIndent + desc.close + "\n";
111010
+ post += this.blocksToString(desc.postBody);
111011
+ post += desc.close + "\n";
111277
111012
  }
111278
111013
  post += "return VAL;\n})()";
111279
111014
  return { chunk, post };
111280
111015
  }
111281
- appendBlocks(chunk, blocks, indent) {
111016
+ appendBlocks(chunk, blocks) {
111282
111017
  for (const block of blocks) {
111283
- this.appendBlock(chunk, block, indent);
111018
+ this.appendBlock(chunk, block);
111284
111019
  }
111285
111020
  }
111286
- appendBlock(chunk, block, indent) {
111021
+ appendBlock(chunk, block) {
111287
111022
  if (block === "") {
111288
111023
  return;
111289
111024
  }
@@ -111293,10 +111028,10 @@ class ValueBodyTranspiler {
111293
111028
  if (clean.trim() === "") {
111294
111029
  continue;
111295
111030
  }
111296
- chunk.appendString(indent + clean + "\n");
111031
+ chunk.appendString(clean + "\n");
111297
111032
  }
111298
111033
  }
111299
- blocksToString(blocks, indent) {
111034
+ blocksToString(blocks) {
111300
111035
  let ret = "";
111301
111036
  for (const block of blocks) {
111302
111037
  if (block === "") {
@@ -111308,7 +111043,7 @@ class ValueBodyTranspiler {
111308
111043
  if (clean.trim() === "") {
111309
111044
  continue;
111310
111045
  }
111311
- ret += indent + clean + "\n";
111046
+ ret += clean + "\n";
111312
111047
  }
111313
111048
  }
111314
111049
  return ret;
@@ -113518,15 +113253,16 @@ class AssignTranspiler {
113518
113253
  if (node?.findFirstExpression(abaplint.Expressions.TableExpression) === undefined) {
113519
113254
  return code;
113520
113255
  }
113256
+ // not indented, Chunk.runIndentationLogic indents by brace depth
113521
113257
  return `(await (async () => {
113522
- try {
113523
- return ${code};
113524
- } catch (error) {
113525
- if (abap.isLineNotFound(error)) {
113526
- return undefined;
113527
- }
113528
- throw error;
113529
- }
113258
+ try {
113259
+ return ${code};
113260
+ } catch (error) {
113261
+ if (abap.isLineNotFound(error)) {
113262
+ return undefined;
113263
+ }
113264
+ throw error;
113265
+ }
113530
113266
  })())`;
113531
113267
  }
113532
113268
  transpile(node, traversal) {
@@ -114010,7 +113746,7 @@ class CallTranspiler {
114010
113746
  post += `\nabap.builtin.sy.get().subrc.set(0);
114011
113747
  } catch (e) {
114012
113748
  if (e.classic) {
114013
- switch (e.classic.toUpperCase()) {\n`;
113749
+ switch (e.classic.toUpperCase()) {\n`;
114014
113750
  for (const e of node.findAllExpressions(abaplint.Expressions.ParameterException)) {
114015
113751
  const name = e.getFirstToken().getStr().toUpperCase();
114016
113752
  // todo, also handle SimpleChain,
@@ -114029,9 +113765,9 @@ if (e.classic) {
114029
113765
  post += `case "${name}": abap.builtin.sy.get().subrc.set(${value}); break;\n`;
114030
113766
  }
114031
113767
  }
114032
- post += ` }
113768
+ post += `}
114033
113769
  } else {
114034
- throw e;
113770
+ throw e;
114035
113771
  }
114036
113772
  }`;
114037
113773
  return { pre, post };
@@ -114116,12 +113852,13 @@ class CallFunctionTranspiler {
114116
113852
  }
114117
113853
  const calling = node.findExpressionAfterToken("CALLING");
114118
113854
  const dest = node.findDirectExpression(abaplint.Expressions.Destination)?.findDirectExpression(abaplint.Expressions.Source);
114119
- if (dest) {
113855
+ const updateTask = node.findDirectTokenByText("UPDATE") !== undefined;
113856
+ if (dest && updateTask === false) {
114120
113857
  const s = new expressions_1.SourceTranspiler(true).transpile(dest, traversal);
114121
113858
  param = param.replace("{", ",").replace(/}$/, "");
114122
113859
  ret.appendString(`await abap.statements.callFunction({name:${fmname},destination:${s.getCode()}${param}});`);
114123
113860
  }
114124
- else if (calling) {
113861
+ else if (calling && updateTask === false) {
114125
113862
  param = param.replace("{", ",").replace(/}$/, "");
114126
113863
  // typically used in combination with STARTING NEW TASK so dont await,
114127
113864
  ret.appendString(`abap.statements.callFunction({name:${fmname},calling:this.${calling.concatTokens().toLowerCase()}${param}});`);
@@ -114131,7 +113868,13 @@ class CallFunctionTranspiler {
114131
113868
  const call = `abap.FunctionModules[${fmname}]`;
114132
113869
  // eslint-disable-next-line max-len
114133
113870
  ret.appendString(`if (${call} === undefined) { if (${illegalFunc} === undefined) { throw "CX_SY_DYN_CALL_ILLEGAL_FUNC not found"; } else { throw await new ${illegalFunc}().constructor_({function: new abap.types.String().set(${fmname})});} }\n`);
114134
- ret.appendString(`await ${call}(${param});`);
113871
+ if (updateTask) {
113872
+ param = param.replace("{", ",").replace(/}$/, "");
113873
+ ret.appendString(`await abap.statements.callFunction({name:${fmname},updateTask:true${param}});`);
113874
+ }
113875
+ else {
113876
+ ret.appendString(`await ${call}(${param});`);
113877
+ }
114135
113878
  }
114136
113879
  if (exceptions) {
114137
113880
  const build = call_1.CallTranspiler.buildExceptions(exceptions);
@@ -115422,7 +115165,7 @@ class CreateDataTranspiler {
115422
115165
  }
115423
115166
  const handle = node.findExpressionAfterToken("HANDLE");
115424
115167
  if (handle) {
115425
- const so = traversal.traverse(node.findDirectExpression(abaplint.Expressions.Source));
115168
+ const so = traversal.traverse(handle);
115426
115169
  const lookup = traversal.lookupClassOrInterface("KERNEL_CREATE_DATA_HANDLE", node.getFirstToken());
115427
115170
  const call = `await ${lookup}.call({handle: ${so.getCode()}, dref: ${target.getCode()}});`;
115428
115171
  return new chunk_1.Chunk().append(`if (${lookup} === undefined) throw new Error("CreateData, kernel class missing");\n${call}`, node, traversal);
@@ -117300,12 +117043,82 @@ exports.FunctionPoolTranspiler = FunctionPoolTranspiler;
117300
117043
 
117301
117044
  "use strict";
117302
117045
 
117046
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
117047
+ if (k2 === undefined) k2 = k;
117048
+ var desc = Object.getOwnPropertyDescriptor(m, k);
117049
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
117050
+ desc = { enumerable: true, get: function() { return m[k]; } };
117051
+ }
117052
+ Object.defineProperty(o, k2, desc);
117053
+ }) : (function(o, m, k, k2) {
117054
+ if (k2 === undefined) k2 = k;
117055
+ o[k2] = m[k];
117056
+ }));
117057
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
117058
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
117059
+ }) : function(o, v) {
117060
+ o["default"] = v;
117061
+ });
117062
+ var __importStar = (this && this.__importStar) || (function () {
117063
+ var ownKeys = function(o) {
117064
+ ownKeys = Object.getOwnPropertyNames || function (o) {
117065
+ var ar = [];
117066
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
117067
+ return ar;
117068
+ };
117069
+ return ownKeys(o);
117070
+ };
117071
+ return function (mod) {
117072
+ if (mod && mod.__esModule) return mod;
117073
+ var result = {};
117074
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
117075
+ __setModuleDefault(result, mod);
117076
+ return result;
117077
+ };
117078
+ })();
117303
117079
  Object.defineProperty(exports, "__esModule", ({ value: true }));
117304
117080
  exports.GenerateSubroutineTranspiler = void 0;
117081
+ const abaplint = __importStar(__webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js"));
117305
117082
  const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
117083
+ // GENERATE SUBROUTINE POOL cannot be supported, there is no compiler at runtime.
117084
+ // The statement is refused without an exception: sy-subrc = 8 (documented as "other
117085
+ // generation error"), NAME initial, MESSAGE filled, LINE 0 and WORD initial. This is
117086
+ // a refusal of its own, not what a system answers; the other additions are left untouched.
117306
117087
  class GenerateSubroutineTranspiler {
117307
- transpile(_node, _traversal) {
117308
- return new chunk_1.Chunk(`throw new Error("GenerateSubroutine, not supported, transpiler");`);
117088
+ transpile(node, traversal) {
117089
+ const ret = new chunk_1.Chunk();
117090
+ const name = this.findAddition(node, "NAME");
117091
+ if (name) {
117092
+ ret.appendString(traversal.traverse(name).getCode() + ".clear();\n");
117093
+ }
117094
+ const message = this.findAddition(node, "MESSAGE");
117095
+ if (message) {
117096
+ ret.appendString(traversal.traverse(message).getCode() + `.set("GENERATE SUBROUTINE POOL is not supported");\n`);
117097
+ }
117098
+ const line = this.findAddition(node, "LINE");
117099
+ if (line) {
117100
+ ret.appendString(traversal.traverse(line).getCode() + ".set(0);\n");
117101
+ }
117102
+ const word = this.findAddition(node, "WORD");
117103
+ if (word) {
117104
+ ret.appendString(traversal.traverse(word).getCode() + ".clear();\n");
117105
+ }
117106
+ ret.append("abap.builtin.sy.get().subrc.set(8);", node, traversal);
117107
+ return ret;
117108
+ }
117109
+ /** the expression directly after the addition keyword, MESSAGE does not match MESSAGE-ID */
117110
+ findAddition(node, keyword) {
117111
+ const children = node.getChildren();
117112
+ for (let i = 0; i < children.length - 1; i++) {
117113
+ const child = children[i];
117114
+ const next = children[i + 1];
117115
+ if (child instanceof abaplint.Nodes.TokenNode
117116
+ && child.getFirstToken().getStr().toUpperCase() === keyword
117117
+ && next instanceof abaplint.Nodes.ExpressionNode) {
117118
+ return next;
117119
+ }
117120
+ }
117121
+ return undefined;
117309
117122
  }
117310
117123
  }
117311
117124
  exports.GenerateSubroutineTranspiler = GenerateSubroutineTranspiler;
@@ -119339,6 +119152,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
119339
119152
  exports.MoveTranspiler = void 0;
119340
119153
  const abaplint = __importStar(__webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js"));
119341
119154
  const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
119155
+ const source_1 = __webpack_require__(/*! ../expressions/source */ "./node_modules/@abaplint/transpiler/build/src/expressions/source.js");
119342
119156
  class MoveTranspiler {
119343
119157
  transpile(node, traversal) {
119344
119158
  const sourceExpression = node.findDirectExpression(abaplint.Expressions.Source);
@@ -119358,7 +119172,9 @@ class MoveTranspiler {
119358
119172
  ret.appendString(target + `.set(abap.alphaIn(${tSource.getCode()}, ${target}, ${target}));`);
119359
119173
  return ret;
119360
119174
  }
119361
- let source = traversal.traverse(sourceExpression);
119175
+ let source = this.isInt8Calculation(node, sourceExpression, targetExpressions.length, traversal)
119176
+ ? new source_1.SourceTranspiler(false, true).transpile(sourceExpression, traversal)
119177
+ : traversal.traverse(sourceExpression);
119362
119178
  const second = node.getChildren()[1]?.concatTokens();
119363
119179
  switch (second) {
119364
119180
  case "?=":
@@ -119420,6 +119236,72 @@ class MoveTranspiler {
119420
119236
  }
119421
119237
  return ret;
119422
119238
  }
119239
+ // The calculation type of an arithmetic expression comes from its operands and the target
119240
+ // field, the type with the largest range wins. With operands of type i or int8 it is int8
119241
+ // when the target or an operand is int8: i * i into int8 is exact up to 2^62, and "/"
119242
+ // rounds. The runtime decides by the operands alone and does not know the target, so here
119243
+ // the operands are converted to int8 before the calculation. Only for an i or int8 target
119244
+ // and operands whose type is known to be i or int8, and not for **, which counts as f
119245
+ isInt8Calculation(node, source, targets, traversal) {
119246
+ if (source === undefined
119247
+ || targets !== 1
119248
+ || source.findFirstExpression(abaplint.Expressions.ArithOperator) === undefined) {
119249
+ return false;
119250
+ }
119251
+ const scope = traversal.findCurrentScopeByToken(node.getFirstToken());
119252
+ const target = traversal.determineType(node, scope);
119253
+ const found = { int8: target instanceof abaplint.BasicTypes.Integer8Type };
119254
+ if (found.int8 === false && !(target instanceof abaplint.BasicTypes.IntegerType)) {
119255
+ return false;
119256
+ }
119257
+ return this.integerOperands(source, scope, found) && found.int8;
119258
+ }
119259
+ integerOperands(node, scope, found) {
119260
+ for (const c of node.getChildren()) {
119261
+ if (c instanceof abaplint.Nodes.TokenNode) {
119262
+ if (["(", ")", "-", "+"].includes(c.getFirstToken().getStr()) === false) {
119263
+ return false;
119264
+ }
119265
+ }
119266
+ else if (c.get() instanceof abaplint.Expressions.Source) {
119267
+ if (this.integerOperands(c, scope, found) === false) {
119268
+ return false;
119269
+ }
119270
+ }
119271
+ else if (c.get() instanceof abaplint.Expressions.ArithOperator) {
119272
+ if (["+", "-", "*", "/", "DIV", "MOD"].includes(c.concatTokens().toUpperCase()) === false) {
119273
+ return false;
119274
+ }
119275
+ }
119276
+ else if (c.get() instanceof abaplint.Expressions.Constant) {
119277
+ const integer = c.findDirectExpression(abaplint.Expressions.Integer);
119278
+ if (integer === undefined) {
119279
+ return false;
119280
+ }
119281
+ else if (Math.abs(parseInt(integer.concatTokens().replace(/ /g, ""), 10)) > 2147483647) {
119282
+ // the transpiler makes an int8 of a literal outside the range of i
119283
+ found.int8 = true;
119284
+ }
119285
+ }
119286
+ else if (c.get() instanceof abaplint.Expressions.FieldChain) {
119287
+ const children = c.getChildren();
119288
+ if (children.length !== 1) {
119289
+ return false;
119290
+ }
119291
+ const type = scope?.findVariable(children[0].concatTokens())?.getType();
119292
+ if (!(type instanceof abaplint.BasicTypes.IntegerType) && !(type instanceof abaplint.BasicTypes.Integer8Type)) {
119293
+ return false;
119294
+ }
119295
+ if (type instanceof abaplint.BasicTypes.Integer8Type) {
119296
+ found.int8 = true;
119297
+ }
119298
+ }
119299
+ else {
119300
+ return false;
119301
+ }
119302
+ }
119303
+ return true;
119304
+ }
119423
119305
  }
119424
119306
  exports.MoveTranspiler = MoveTranspiler;
119425
119307
  //# sourceMappingURL=move.js.map
@@ -119910,16 +119792,18 @@ class PerformTranspiler {
119910
119792
  return new chunk_1.Chunk(`throw new Error("PerformTranspiler FormName not found");`);
119911
119793
  }
119912
119794
  else if (node.concatTokens().toUpperCase().includes(" IN PROGRAM ")) {
119913
- // todo: throw exception if not found?
119914
119795
  const expression = node.findExpressionAfterToken("PROGRAM");
119915
119796
  let ref = "";
119797
+ let program = "";
119916
119798
  if (expression?.get() instanceof abaplint.Expressions.Dynamic) {
119917
119799
  const name = expression.getChildren()[1].concatTokens() + ".get().trimEnd()";
119918
119800
  ref = `abap.Forms['PROG-' + ${name} + '-${formName.concatTokens().toUpperCase()}']`;
119801
+ program = `'PROG-' + ${name} + '-'`;
119919
119802
  }
119920
119803
  else {
119921
119804
  const progName = expression?.concatTokens().toUpperCase();
119922
119805
  ref = `abap.Forms['PROG-${progName}-${formName.concatTokens().toUpperCase()}']`;
119806
+ program = `'PROG-${progName}-'`;
119923
119807
  }
119924
119808
  const params = [];
119925
119809
  // hacky hack
@@ -119931,6 +119815,16 @@ class PerformTranspiler {
119931
119815
  if (node.concatTokens().toUpperCase().includes(" IF FOUND")) {
119932
119816
  call = `if (${ref} !== undefined) { ${call} }`;
119933
119817
  }
119818
+ else {
119819
+ // the form is missing from a program whose forms are registered: CX_SY_DYN_CALL_ILLEGAL_FORM,
119820
+ // no form of the program is registered: CX_SY_PROGRAM_NOT_FOUND
119821
+ const raise = (name) => {
119822
+ const cls = traversal.lookupClassOrInterface(`'${name}'`, node.getFirstToken(), true);
119823
+ return `if (${cls} === undefined) { throw "${name} not found"; } else { throw await new ${cls}().constructor_(); }`;
119824
+ };
119825
+ const loaded = `Object.keys(abap.Forms).some(k => k.startsWith(${program}))`;
119826
+ call = `if (${ref} === undefined) { if (${loaded}) { ${raise("CX_SY_DYN_CALL_ILLEGAL_FORM")} } else { ${raise("CX_SY_PROGRAM_NOT_FOUND")} } }\n` + call;
119827
+ }
119934
119828
  return new chunk_1.Chunk(call);
119935
119829
  }
119936
119830
  else {
@@ -121273,24 +121167,25 @@ class SelectTranspiler {
121273
121167
  // DB key alone is wrong for projections (INTO CORRESPONDING FIELDS
121274
121168
  // without the key fields crashed on the missing component names)
121275
121169
  const by = `Object.keys(${target}.getRowType().get())`;
121170
+ // generated code is not indented, Chunk.runIndentationLogic indents by brace depth
121276
121171
  const dedup = `if (!(${target} instanceof abap.types.HashedTable) && ${target}.getOptions()?.primaryKey?.type !== "SORTED") {
121277
- abap.statements.sort(${target}, {by: ${by}.map(k => { return {component: k}; })});
121278
- await abap.statements.deleteInternal(${target}, {adjacent: true, allFields: true});
121279
- }`;
121172
+ abap.statements.sort(${target}, {by: ${by}.map(k => { return {component: k}; })});
121173
+ await abap.statements.deleteInternal(${target}, {adjacent: true, allFields: true});
121174
+ }`;
121280
121175
  const at = where.startsWith("WHERE ") ? select.indexOf(where) : -1;
121281
121176
  // UP TO with ORDER BY keeps the first n rows in that order; the blocks
121282
121177
  // trim after the de-duplicating sort, so that pair stays row by row
121283
121178
  if (concat.startsWith("SELECT SINGLE ") || at < 0 || (upTo && orderBy)) {
121284
121179
  const code = `if (${faeTranspiled}.array().length === 0) {
121285
- await abap.statements.select(${target}, {select: "${selectEmpty.trim()}"${extra}});
121180
+ await abap.statements.select(${target}, {select: "${selectEmpty.trim()}"${extra}});
121286
121181
  } else {
121287
- const ${unique2} = ${faeTranspiled}.array();
121288
- ${target}.clear();
121289
- for await (const ${unique} of ${unique2}) {
121290
- await abap.statements.select(${target}, {select: "${select.trim()}"${extra}}, {appending: true});
121291
- }
121292
- ${dedup}
121293
- abap.builtin.sy.get().dbcnt.set(${target}.getArrayLength());
121182
+ const ${unique2} = ${faeTranspiled}.array();
121183
+ ${target}.clear();
121184
+ for await (const ${unique} of ${unique2}) {
121185
+ await abap.statements.select(${target}, {select: "${select.trim()}"${extra}}, {appending: true});
121186
+ }
121187
+ ${dedup}
121188
+ abap.builtin.sy.get().dbcnt.set(${target}.getArrayLength());
121294
121189
  }`;
121295
121190
  return new chunk_1.Chunk().append(code, node, traversal);
121296
121191
  }
@@ -121318,29 +121213,29 @@ class SelectTranspiler {
121318
121213
  const unique3 = unique_identifier_1.UniqueIdentifier.get();
121319
121214
  const unique4 = unique_identifier_1.UniqueIdentifier.get();
121320
121215
  const code = `if (${faeTranspiled}.array().length === 0) {
121321
- await abap.statements.select(${target}, {select: "${selectEmpty.trim()}"${extra}});
121216
+ await abap.statements.select(${target}, {select: "${selectEmpty.trim()}"${extra}});
121322
121217
  } else {
121323
- const ${unique2} = ${faeTranspiled}.array();
121324
- ${target}.clear();
121325
- const ${unique3} = (${unique}) => "(${condition})";
121326
- for (let ${unique4} = 0; ${unique4} < ${unique2}.length; ${unique4} += 50) {
121327
- const ${unique4}where = ${unique2}.slice(${unique4}, ${unique4} + 50).map(${unique3}).join(" OR ");
121328
- await abap.statements.select(${target}, {select: "${head}WHERE " + ${unique4}where + " ${tail.trim()}"${extra}}, {appending: true});
121329
- }
121330
- ${dedup}
121331
- const ${unique4}max = ${upToCode};
121332
- if (${unique4}max > 0 && ${target}.getArrayLength() > ${unique4}max) {
121333
- if (${target} instanceof abap.types.HashedTable) {
121334
- for (const ${unique4}row of ${target}.array().slice(${unique4}max)) {
121335
- await abap.statements.deleteInternal(${target}, {fromValue: ${unique4}row});
121336
- }
121337
- } else {
121338
- while (${target}.getArrayLength() > ${unique4}max) {
121339
- ${target}.deleteIndex(${target}.getArrayLength() - 1);
121340
- }
121341
- }
121342
- }
121343
- abap.builtin.sy.get().dbcnt.set(${target}.getArrayLength());
121218
+ const ${unique2} = ${faeTranspiled}.array();
121219
+ ${target}.clear();
121220
+ const ${unique3} = (${unique}) => "(${condition})";
121221
+ for (let ${unique4} = 0; ${unique4} < ${unique2}.length; ${unique4} += 50) {
121222
+ const ${unique4}where = ${unique2}.slice(${unique4}, ${unique4} + 50).map(${unique3}).join(" OR ");
121223
+ await abap.statements.select(${target}, {select: "${head}WHERE " + ${unique4}where + " ${tail.trim()}"${extra}}, {appending: true});
121224
+ }
121225
+ ${dedup}
121226
+ const ${unique4}max = ${upToCode};
121227
+ if (${unique4}max > 0 && ${target}.getArrayLength() > ${unique4}max) {
121228
+ if (${target} instanceof abap.types.HashedTable) {
121229
+ for (const ${unique4}row of ${target}.array().slice(${unique4}max)) {
121230
+ await abap.statements.deleteInternal(${target}, {fromValue: ${unique4}row});
121231
+ }
121232
+ } else {
121233
+ while (${target}.getArrayLength() > ${unique4}max) {
121234
+ ${target}.deleteIndex(${target}.getArrayLength() - 1);
121235
+ }
121236
+ }
121237
+ }
121238
+ abap.builtin.sy.get().dbcnt.set(${target}.getArrayLength());
121344
121239
  }`;
121345
121240
  return new chunk_1.Chunk().append(code, node, traversal);
121346
121241
  }
@@ -122118,7 +122013,8 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/
122118
122013
  class SortTranspiler {
122119
122014
  transpile(node, traversal) {
122120
122015
  const concat = node.concatTokens().toUpperCase();
122121
- const components = node.findDirectExpressions(abaplint.Expressions.ComponentChain);
122016
+ const components = node.getChildren().filter(c => c instanceof abaplint.Nodes.ExpressionNode
122017
+ && (c.get() instanceof abaplint.Expressions.ComponentChain || this.isDynamicName(c, traversal)));
122122
122018
  const options = [];
122123
122019
  if (concat.includes(" BY ") === false) {
122124
122020
  const descending = node.findDirectTokenByText("DESCENDING") !== undefined;
@@ -122130,12 +122026,14 @@ class SortTranspiler {
122130
122026
  const by = [];
122131
122027
  for (const c of components) {
122132
122028
  const next = this.findNextText(c, node);
122133
- const concat = expressions_1.ComponentChainTranspiler.concat(c, traversal);
122029
+ const component = c.get() instanceof abaplint.Expressions.Dynamic
122030
+ ? this.dynamicName(c, traversal)
122031
+ : `"${expressions_1.ComponentChainTranspiler.concat(c, traversal)}"`;
122134
122032
  if (next === "DESCENDING") {
122135
- by.push(`{component: "${concat}", descending: true}`);
122033
+ by.push(`{component: ${component}, descending: true}`);
122136
122034
  }
122137
122035
  else {
122138
- by.push(`{component: "${concat}"}`);
122036
+ by.push(`{component: ${component}}`);
122139
122037
  }
122140
122038
  }
122141
122039
  options.push(`by: [${by.join(",")}]`);
@@ -122143,6 +122041,32 @@ class SortTranspiler {
122143
122041
  const target = traversal.traverse(node.findDirectExpression(abaplint.Expressions.Target)).getCode();
122144
122042
  return new chunk_1.Chunk().append("abap.statements.sort(" + target + ",{" + options.join(",") + "});", node, traversal);
122145
122043
  }
122044
+ // "BY (name)" with the component name in a literal or a character-like field; a sort order table
122045
+ // (abap_sortorder_tab) is not handled here
122046
+ isDynamicName(c, traversal) {
122047
+ if (!(c.get() instanceof abaplint.Expressions.Dynamic)) {
122048
+ return false;
122049
+ }
122050
+ if (c.findFirstExpression(abaplint.Expressions.ConstantString)) {
122051
+ return true;
122052
+ }
122053
+ const field = c.findFirstExpression(abaplint.Expressions.FieldChain);
122054
+ if (field === undefined) {
122055
+ return false;
122056
+ }
122057
+ const token = field.getFirstToken();
122058
+ const type = traversal.findCurrentScopeByToken(token)?.findVariable(token.getStr())?.getType();
122059
+ return !(type instanceof abaplint.BasicTypes.TableType);
122060
+ }
122061
+ dynamicName(c, traversal) {
122062
+ const constant = c.findFirstExpression(abaplint.Expressions.ConstantString);
122063
+ if (constant) {
122064
+ const str = constant.getFirstToken().getStr();
122065
+ return JSON.stringify(str.substring(1, str.length - 1).toLowerCase().trimEnd());
122066
+ }
122067
+ const field = c.findFirstExpression(abaplint.Expressions.FieldChain);
122068
+ return new expressions_1.FieldChainTranspiler(true).transpile(field, traversal).getCode() + ".toLowerCase().trimEnd()";
122069
+ }
122146
122070
  findNextText(c, parent) {
122147
122071
  const children = parent.getChildren();
122148
122072
  for (let i = 0; i < children.length; i++) {
@@ -123788,17 +123712,18 @@ class ClassDefinitionTranspiler {
123788
123712
  }
123789
123713
  else {
123790
123714
  // its an abstract class with only abstract methods
123715
+ // not indented, Chunk.runIndentationLogic indents by brace depth
123791
123716
  return new chunk_1.Chunk(`
123792
123717
  class ${className?.toLowerCase()} {
123793
- static INTERNAL_TYPE = 'CLAS';
123794
- static IMPLEMENTED_INTERFACES = [];
123795
- static INTERNAL_NAME = 'ABSTRACT_CLASS_INTERNAL_NAME';
123796
- static ATTRIBUTES = {};
123797
- async constructor_() {
123798
- this.me = new abap.types.ABAPObject();
123799
- this.me.set(this);
123800
- return this;
123801
- }
123718
+ static INTERNAL_TYPE = 'CLAS';
123719
+ static IMPLEMENTED_INTERFACES = [];
123720
+ static INTERNAL_NAME = 'ABSTRACT_CLASS_INTERNAL_NAME';
123721
+ static ATTRIBUTES = {};
123722
+ async constructor_() {
123723
+ this.me = new abap.types.ABAPObject();
123724
+ this.me.set(this);
123725
+ return this;
123726
+ }
123802
123727
  }`);
123803
123728
  }
123804
123729
  }