@abaplint/cli 2.112.6 → 2.112.8

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/cli.js +77 -33
  2. package/package.json +6 -6
package/build/cli.js CHANGED
@@ -22098,9 +22098,9 @@ class ObjectOriented {
22098
22098
  return ignore;
22099
22099
  }
22100
22100
  // returns list of interfaces implemented
22101
- fromInterfaces(classDefinition, skip) {
22101
+ fromInterfaces(definition, skip) {
22102
22102
  const ignore = [];
22103
- for (const i of classDefinition.getImplementing()) {
22103
+ for (const i of definition.getImplementing()) {
22104
22104
  ignore.push(...this.fromInterfaceByName(i.name, ignore.concat(skip || [])));
22105
22105
  }
22106
22106
  return ignore;
@@ -23734,7 +23734,7 @@ class BasicTypes {
23734
23734
  const attr = token.getStr();
23735
23735
  const c = new _object_oriented_1.ObjectOriented(this.input.scope).searchConstantName(obj, attr);
23736
23736
  if (c instanceof class_constant_1.ClassConstant) {
23737
- this.input.scope.addReference(firstToken, obj, _reference_1.ReferenceType.ObjectOrientedReference, this.input.filename);
23737
+ this.input.scope.addReference(firstToken, obj, _reference_1.ReferenceType.ObjectOrientedReference, this.input.filename, { ooName: obj.getName() });
23738
23738
  this.input.scope.addReference(token, c, _reference_1.ReferenceType.DataReadReference, this.input.filename);
23739
23739
  const val = c.getValue();
23740
23740
  if (typeof val === "string") {
@@ -38730,6 +38730,7 @@ const _scope_type_1 = __webpack_require__(/*! ../5_syntax/_scope_type */ "./node
38730
38730
  const event_definition_1 = __webpack_require__(/*! ./event_definition */ "./node_modules/@abaplint/core/build/src/abap/types/event_definition.js");
38731
38731
  const method_definitions_1 = __webpack_require__(/*! ./method_definitions */ "./node_modules/@abaplint/core/build/src/abap/types/method_definitions.js");
38732
38732
  const _reference_1 = __webpack_require__(/*! ../5_syntax/_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
38733
+ const _object_oriented_1 = __webpack_require__(/*! ../5_syntax/_object_oriented */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_object_oriented.js");
38733
38734
  class InterfaceDefinition extends _identifier_1.Identifier {
38734
38735
  constructor(node, input) {
38735
38736
  if (!(node.get() instanceof Structures.Interface)) {
@@ -38795,32 +38796,12 @@ class InterfaceDefinition extends _identifier_1.Identifier {
38795
38796
  }
38796
38797
  parse(input, node) {
38797
38798
  this.checkInterfacesExists(input, node);
38799
+ const helper = new _object_oriented_1.ObjectOriented(input.scope);
38800
+ helper.fromInterfaces(this);
38798
38801
  // todo, proper sequencing, the statements should be processed line by line
38799
38802
  this.attributes = new class_attributes_1.Attributes(node, input);
38800
38803
  this.typeDefinitions = this.attributes.getTypes();
38801
38804
  this.aliases = this.attributes.getAliases();
38802
- // todo, cleanup aliases, vs "object_oriented.ts" vs "class_implementation.ts"
38803
- // this adds the aliased types to scope?
38804
- /*
38805
- for (const a of this.aliases) {
38806
- const [objName, fieldName] = a.getComponent().split("~");
38807
- const idef = input.scope.findInterfaceDefinition(objName);
38808
- if (idef) {
38809
- const foundType = idef.getTypeDefinitions().getByName(fieldName);
38810
- if (foundType) {
38811
- input.scope.addTypeNamed(a.getName(), foundType);
38812
- } else {
38813
- const foundField = idef.getAttributes().findByName(fieldName);
38814
- if (foundField && foundField instanceof ClassConstant) {
38815
- const token = new TokenIdentifier(a.getStart(), a.getName());
38816
- const id = new TypedIdentifier(token, input.filename, foundField.getType());
38817
- const constant = new ClassConstant(id, Visibility.Public, foundField.getValue());
38818
- input.scope.addIdentifier(constant);
38819
- }
38820
- }
38821
- }
38822
- }
38823
- */
38824
38805
  const events = node.findAllStatements(Statements.Events);
38825
38806
  for (const e of events) {
38826
38807
  this.events.push(new event_definition_1.EventDefinition(e, visibility_1.Visibility.Public, input));
@@ -39684,6 +39665,9 @@ class CDSParser {
39684
39665
  if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
39685
39666
  res = combi_1.Combi.run(new Expressions.CDSDefineCustom(), tokens, version_1.defaultVersion);
39686
39667
  }
39668
+ if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
39669
+ res = combi_1.Combi.run(new Expressions.CDSExtendView(), tokens, version_1.defaultVersion);
39670
+ }
39687
39671
  if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
39688
39672
  return undefined;
39689
39673
  }
@@ -40154,6 +40138,31 @@ exports.CDSElement = CDSElement;
40154
40138
 
40155
40139
  /***/ }),
40156
40140
 
40141
+ /***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_extend_view.js":
40142
+ /*!**********************************************************************************!*\
40143
+ !*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_extend_view.js ***!
40144
+ \**********************************************************************************/
40145
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
40146
+
40147
+ "use strict";
40148
+
40149
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
40150
+ exports.CDSExtendView = void 0;
40151
+ const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/cds/expressions/index.js");
40152
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
40153
+ const cds_name_1 = __webpack_require__(/*! ./cds_name */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_name.js");
40154
+ class CDSExtendView extends combi_1.Expression {
40155
+ getRunnable() {
40156
+ const namedot = (0, combi_1.seq)(cds_name_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(".", cds_name_1.CDSName)), (0, combi_1.opt)(_1.CDSAs));
40157
+ const valueNested = (0, combi_1.seq)("{", namedot, (0, combi_1.star)((0, combi_1.seq)(",", namedot)), "}");
40158
+ return (0, combi_1.seq)((0, combi_1.star)(_1.CDSAnnotation), (0, combi_1.str)("EXTEND VIEW"), (0, combi_1.opt)((0, combi_1.str)("ENTITY")), cds_name_1.CDSName, (0, combi_1.str)("WITH"), (0, combi_1.opt)(cds_name_1.CDSName), valueNested, (0, combi_1.opt)(";"));
40159
+ }
40160
+ }
40161
+ exports.CDSExtendView = CDSExtendView;
40162
+ //# sourceMappingURL=cds_extend_view.js.map
40163
+
40164
+ /***/ }),
40165
+
40157
40166
  /***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_function.js":
40158
40167
  /*!*******************************************************************************!*\
40159
40168
  !*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_function.js ***!
@@ -40222,6 +40231,28 @@ exports.CDSGroupBy = CDSGroupBy;
40222
40231
 
40223
40232
  /***/ }),
40224
40233
 
40234
+ /***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_having.js":
40235
+ /*!*****************************************************************************!*\
40236
+ !*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_having.js ***!
40237
+ \*****************************************************************************/
40238
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
40239
+
40240
+ "use strict";
40241
+
40242
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
40243
+ exports.CDSHaving = void 0;
40244
+ const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/cds/expressions/index.js");
40245
+ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
40246
+ class CDSHaving extends combi_1.Expression {
40247
+ getRunnable() {
40248
+ return (0, combi_1.seq)("HAVING", _1.CDSCondition);
40249
+ }
40250
+ }
40251
+ exports.CDSHaving = CDSHaving;
40252
+ //# sourceMappingURL=cds_having.js.map
40253
+
40254
+ /***/ }),
40255
+
40225
40256
  /***/ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_integer.js":
40226
40257
  /*!******************************************************************************!*\
40227
40258
  !*** ./node_modules/@abaplint/core/build/src/cds/expressions/cds_integer.js ***!
@@ -40400,7 +40431,7 @@ class CDSSelect extends combi_1.Expression {
40400
40431
  const fields = (0, combi_1.opt)((0, combi_1.seq)((0, combi_1.star)((0, combi_1.seq)(_1.CDSElement, ",")), _1.CDSElement));
40401
40432
  const distinct = (0, combi_1.str)("DISTINCT");
40402
40433
  const elements = (0, combi_1.seq)((0, combi_1.str)("{"), (0, combi_1.plus)(_1.CDSElement), (0, combi_1.star)((0, combi_1.seq)(",", _1.CDSElement)), (0, combi_1.str)("}"));
40403
- return (0, combi_1.seq)("SELECT", (0, combi_1.opt)(distinct), (0, combi_1.opt)(fields), "FROM", _1.CDSSource, (0, combi_1.opt)(_1.CDSParametersSelect), (0, combi_1.opt)(_1.CDSAs), (0, combi_1.star)(cds_join_1.CDSJoin), (0, combi_1.star)(_1.CDSComposition), (0, combi_1.star)(cds_association_1.CDSAssociation), (0, combi_1.star)(_1.CDSComposition), (0, combi_1.opt)(elements), (0, combi_1.opt)(_1.CDSGroupBy), (0, combi_1.opt)(_1.CDSWhere), (0, combi_1.opt)((0, combi_1.seq)("UNION", (0, combi_1.opt)("ALL"), CDSSelect)));
40434
+ return (0, combi_1.seq)("SELECT", (0, combi_1.opt)(distinct), (0, combi_1.opt)(fields), "FROM", _1.CDSSource, (0, combi_1.opt)(_1.CDSParametersSelect), (0, combi_1.opt)(_1.CDSAs), (0, combi_1.star)(cds_join_1.CDSJoin), (0, combi_1.star)(_1.CDSComposition), (0, combi_1.star)(cds_association_1.CDSAssociation), (0, combi_1.star)(_1.CDSComposition), (0, combi_1.opt)(elements), (0, combi_1.opt)(_1.CDSWhere), (0, combi_1.opt)(_1.CDSGroupBy), (0, combi_1.opt)(_1.CDSHaving), (0, combi_1.opt)((0, combi_1.seq)("UNION", (0, combi_1.opt)("ALL"), CDSSelect)));
40404
40435
  }
40405
40436
  }
40406
40437
  exports.CDSSelect = CDSSelect;
@@ -40562,14 +40593,16 @@ __exportStar(__webpack_require__(/*! ./cds_define_custom */ "./node_modules/@aba
40562
40593
  __exportStar(__webpack_require__(/*! ./cds_define_projection */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_projection.js"), exports);
40563
40594
  __exportStar(__webpack_require__(/*! ./cds_define_view */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_define_view.js"), exports);
40564
40595
  __exportStar(__webpack_require__(/*! ./cds_element */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_element.js"), exports);
40596
+ __exportStar(__webpack_require__(/*! ./cds_extend_view */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_extend_view.js"), exports);
40565
40597
  __exportStar(__webpack_require__(/*! ./cds_function */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_function.js"), exports);
40566
40598
  __exportStar(__webpack_require__(/*! ./cds_group_by */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_group_by.js"), exports);
40567
- __exportStar(__webpack_require__(/*! ./cds_provider_contract */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_provider_contract.js"), exports);
40599
+ __exportStar(__webpack_require__(/*! ./cds_having */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_having.js"), exports);
40568
40600
  __exportStar(__webpack_require__(/*! ./cds_integer */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_integer.js"), exports);
40569
40601
  __exportStar(__webpack_require__(/*! ./cds_join */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_join.js"), exports);
40570
40602
  __exportStar(__webpack_require__(/*! ./cds_name */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_name.js"), exports);
40571
40603
  __exportStar(__webpack_require__(/*! ./cds_parameters_select */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_parameters_select.js"), exports);
40572
40604
  __exportStar(__webpack_require__(/*! ./cds_parameters */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_parameters.js"), exports);
40605
+ __exportStar(__webpack_require__(/*! ./cds_provider_contract */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_provider_contract.js"), exports);
40573
40606
  __exportStar(__webpack_require__(/*! ./cds_relation */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_relation.js"), exports);
40574
40607
  __exportStar(__webpack_require__(/*! ./cds_select */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_select.js"), exports);
40575
40608
  __exportStar(__webpack_require__(/*! ./cds_source */ "./node_modules/@abaplint/core/build/src/cds/expressions/cds_source.js"), exports);
@@ -52350,7 +52383,7 @@ class Registry {
52350
52383
  }
52351
52384
  static abaplintVersion() {
52352
52385
  // magic, see build script "version.sh"
52353
- return "2.112.6";
52386
+ return "2.112.8";
52354
52387
  }
52355
52388
  getDDICReferences() {
52356
52389
  return this.ddicReferences;
@@ -56440,7 +56473,7 @@ class CyclicOO {
56440
56473
  return {
56441
56474
  key: "cyclic_oo",
56442
56475
  title: "Cyclic OO",
56443
- shortDescription: `Finds cyclic OO references`,
56476
+ shortDescription: `Finds cyclic/circular OO references`,
56444
56477
  extendedInformation: `Runs for global INTF + CLAS objects
56445
56478
 
56446
56479
  Objects must be without syntax errors for this rule to take effect
@@ -76419,6 +76452,7 @@ Builder.prototype.j2x = function(jObj, level) {
76419
76452
  //repeated nodes
76420
76453
  const arrLen = jObj[key].length;
76421
76454
  let listTagVal = "";
76455
+ let listTagAttr = "";
76422
76456
  for (let j = 0; j < arrLen; j++) {
76423
76457
  const item = jObj[key][j];
76424
76458
  if (typeof item === 'undefined') {
@@ -76428,17 +76462,27 @@ Builder.prototype.j2x = function(jObj, level) {
76428
76462
  else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
76429
76463
  // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
76430
76464
  } else if (typeof item === 'object') {
76431
- if(this.options.oneListGroup ){
76432
- listTagVal += this.j2x(item, level + 1).val;
76465
+ if(this.options.oneListGroup){
76466
+ const result = this.j2x(item, level + 1);
76467
+ listTagVal += result.val;
76468
+ if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {
76469
+ listTagAttr += result.attrStr
76470
+ }
76433
76471
  }else{
76434
76472
  listTagVal += this.processTextOrObjNode(item, key, level)
76435
76473
  }
76436
76474
  } else {
76437
- listTagVal += this.buildTextValNode(item, key, '', level);
76475
+ if (this.options.oneListGroup) {
76476
+ let textValue = this.options.tagValueProcessor(key, item);
76477
+ textValue = this.replaceEntitiesValue(textValue);
76478
+ listTagVal += textValue;
76479
+ } else {
76480
+ listTagVal += this.buildTextValNode(item, key, '', level);
76481
+ }
76438
76482
  }
76439
76483
  }
76440
76484
  if(this.options.oneListGroup){
76441
- listTagVal = this.buildObjectNode(listTagVal, key, '', level);
76485
+ listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);
76442
76486
  }
76443
76487
  val += listTagVal;
76444
76488
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.112.6",
3
+ "version": "2.112.8",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,23 +38,23 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.112.6",
41
+ "@abaplint/core": "^2.112.8",
42
42
  "@types/chai": "^4.3.16",
43
43
  "@types/glob": "^8.1.0",
44
44
  "@types/minimist": "^1.2.5",
45
45
  "@types/mocha": "^10.0.7",
46
- "@types/node": "^20.14.11",
46
+ "@types/node": "^22.0.0",
47
47
  "@types/progress": "^2.0.7",
48
- "chai": "^4.4.1",
48
+ "chai": "^4.5.0",
49
49
  "chalk": "^5.3.0",
50
50
  "eslint": "^8.57.0",
51
51
  "glob": "^7.2.3",
52
52
  "json5": "^2.2.3",
53
- "memfs": "^4.9.3",
53
+ "memfs": "=4.9.3",
54
54
  "minimist": "^1.2.8",
55
55
  "mocha": "^10.7.0",
56
56
  "progress": "^2.0.3",
57
- "typescript": "^5.5.3",
57
+ "typescript": "^5.5.4",
58
58
  "webpack": "^5.93.0",
59
59
  "webpack-cli": "^5.1.4",
60
60
  "xml-js": "^1.6.11"