@abaplint/cli 2.113.3 → 2.113.4

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 +51 -13
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -7487,7 +7487,7 @@ class SelectLoop extends combi_1.Expression {
7487
7487
  const packTab = (0, combi_1.seq)(pack, _1.SQLIntoTable);
7488
7488
  const into = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
7489
7489
  const perm = (0, combi_1.per)(_1.SQLFrom, where, sql_up_to_1.SQLUpTo, sql_order_by_1.SQLOrderBy, sql_having_1.SQLHaving, _1.SQLClient, bypass, _1.SQLGroupBy, _1.SQLForAllEntries, (0, combi_1.alt)(tab, into, packTab));
7490
- const strict = (0, combi_1.seq)(_1.SQLFrom, (0, combi_1.ver)(version_1.Version.v750, _1.SQLFields), where, into, sql_up_to_1.SQLUpTo);
7490
+ const strict = (0, combi_1.seq)(_1.SQLFrom, (0, combi_1.ver)(version_1.Version.v750, _1.SQLFields), (0, combi_1.optPrio)((0, combi_1.seq)(where, into, sql_up_to_1.SQLUpTo)));
7491
7491
  const ret = (0, combi_1.seq)("SELECT", (0, combi_1.altPrio)((0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), sql_field_list_loop_1.SQLFieldListLoop, perm), strict), (0, combi_1.optPrio)(sql_hints_1.SQLHints));
7492
7492
  return ret;
7493
7493
  }
@@ -35465,6 +35465,7 @@ class StatementFlow {
35465
35465
  graph.addEdge(loopName, graph.getEnd(), flow_graph_1.FLOW_EDGE_TYPE.false);
35466
35466
  }
35467
35467
  else if (type instanceof Structures.Data
35468
+ || type instanceof Structures.Constants
35468
35469
  || type instanceof Structures.Types) {
35469
35470
  // these doesnt affect control flow, so just take the first statement
35470
35471
  const statement = n.getFirstStatement();
@@ -52682,7 +52683,7 @@ class Registry {
52682
52683
  }
52683
52684
  static abaplintVersion() {
52684
52685
  // magic, see build script "version.sh"
52685
- return "2.113.3";
52686
+ return "2.113.4";
52686
52687
  }
52687
52688
  getDDICReferences() {
52688
52689
  return this.ddicReferences;
@@ -76412,6 +76413,35 @@ module.exports = {
76412
76413
 
76413
76414
  /***/ }),
76414
76415
 
76416
+ /***/ "./node_modules/fast-xml-parser/src/ignoreAttributes.js":
76417
+ /*!**************************************************************!*\
76418
+ !*** ./node_modules/fast-xml-parser/src/ignoreAttributes.js ***!
76419
+ \**************************************************************/
76420
+ /***/ ((module) => {
76421
+
76422
+ function getIgnoreAttributesFn(ignoreAttributes) {
76423
+ if (typeof ignoreAttributes === 'function') {
76424
+ return ignoreAttributes
76425
+ }
76426
+ if (Array.isArray(ignoreAttributes)) {
76427
+ return (attrName) => {
76428
+ for (const pattern of ignoreAttributes) {
76429
+ if (typeof pattern === 'string' && attrName === pattern) {
76430
+ return true
76431
+ }
76432
+ if (pattern instanceof RegExp && pattern.test(attrName)) {
76433
+ return true
76434
+ }
76435
+ }
76436
+ }
76437
+ }
76438
+ return () => false
76439
+ }
76440
+
76441
+ module.exports = getIgnoreAttributesFn
76442
+
76443
+ /***/ }),
76444
+
76415
76445
  /***/ "./node_modules/fast-xml-parser/src/util.js":
76416
76446
  /*!**************************************************!*\
76417
76447
  !*** ./node_modules/fast-xml-parser/src/util.js ***!
@@ -76941,6 +76971,7 @@ function getPositionFromMatch(match) {
76941
76971
 
76942
76972
  //parse Empty Node as self closing node
76943
76973
  const buildFromOrderedJs = __webpack_require__(/*! ./orderedJs2Xml */ "./node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js");
76974
+ const getIgnoreAttributesFn = __webpack_require__(/*! ../ignoreAttributes */ "./node_modules/fast-xml-parser/src/ignoreAttributes.js")
76944
76975
 
76945
76976
  const defaultOptions = {
76946
76977
  attributeNamePrefix: '@_',
@@ -76978,11 +77009,12 @@ const defaultOptions = {
76978
77009
 
76979
77010
  function Builder(options) {
76980
77011
  this.options = Object.assign({}, defaultOptions, options);
76981
- if (this.options.ignoreAttributes || this.options.attributesGroupName) {
77012
+ if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {
76982
77013
  this.isAttribute = function(/*a*/) {
76983
77014
  return false;
76984
77015
  };
76985
77016
  } else {
77017
+ this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)
76986
77018
  this.attrPrefixLen = this.options.attributeNamePrefix.length;
76987
77019
  this.isAttribute = isAttribute;
76988
77020
  }
@@ -77011,13 +77043,14 @@ Builder.prototype.build = function(jObj) {
77011
77043
  [this.options.arrayNodeName] : jObj
77012
77044
  }
77013
77045
  }
77014
- return this.j2x(jObj, 0).val;
77046
+ return this.j2x(jObj, 0, []).val;
77015
77047
  }
77016
77048
  };
77017
77049
 
77018
- Builder.prototype.j2x = function(jObj, level) {
77050
+ Builder.prototype.j2x = function(jObj, level, ajPath) {
77019
77051
  let attrStr = '';
77020
77052
  let val = '';
77053
+ const jPath = ajPath.join('.')
77021
77054
  for (let key in jObj) {
77022
77055
  if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;
77023
77056
  if (typeof jObj[key] === 'undefined') {
@@ -77040,9 +77073,9 @@ Builder.prototype.j2x = function(jObj, level) {
77040
77073
  } else if (typeof jObj[key] !== 'object') {
77041
77074
  //premitive type
77042
77075
  const attr = this.isAttribute(key);
77043
- if (attr) {
77076
+ if (attr && !this.ignoreAttributesFn(attr, jPath)) {
77044
77077
  attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);
77045
- }else {
77078
+ } else if (!attr) {
77046
77079
  //tag value
77047
77080
  if (key === this.options.textNodeName) {
77048
77081
  let newval = this.options.tagValueProcessor(key, '' + jObj[key]);
@@ -77066,13 +77099,13 @@ Builder.prototype.j2x = function(jObj, level) {
77066
77099
  // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
77067
77100
  } else if (typeof item === 'object') {
77068
77101
  if(this.options.oneListGroup){
77069
- const result = this.j2x(item, level + 1);
77102
+ const result = this.j2x(item, level + 1, ajPath.concat(key));
77070
77103
  listTagVal += result.val;
77071
77104
  if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {
77072
77105
  listTagAttr += result.attrStr
77073
77106
  }
77074
77107
  }else{
77075
- listTagVal += this.processTextOrObjNode(item, key, level)
77108
+ listTagVal += this.processTextOrObjNode(item, key, level, ajPath)
77076
77109
  }
77077
77110
  } else {
77078
77111
  if (this.options.oneListGroup) {
@@ -77097,7 +77130,7 @@ Builder.prototype.j2x = function(jObj, level) {
77097
77130
  attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);
77098
77131
  }
77099
77132
  } else {
77100
- val += this.processTextOrObjNode(jObj[key], key, level)
77133
+ val += this.processTextOrObjNode(jObj[key], key, level, ajPath)
77101
77134
  }
77102
77135
  }
77103
77136
  }
@@ -77112,8 +77145,8 @@ Builder.prototype.buildAttrPairStr = function(attrName, val){
77112
77145
  } else return ' ' + attrName + '="' + val + '"';
77113
77146
  }
77114
77147
 
77115
- function processTextOrObjNode (object, key, level) {
77116
- const result = this.j2x(object, level + 1);
77148
+ function processTextOrObjNode (object, key, level, ajPath) {
77149
+ const result = this.j2x(object, level + 1, ajPath.concat(key));
77117
77150
  if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {
77118
77151
  return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);
77119
77152
  } else {
@@ -77601,6 +77634,7 @@ const util = __webpack_require__(/*! ../util */ "./node_modules/fast-xml-parser/
77601
77634
  const xmlNode = __webpack_require__(/*! ./xmlNode */ "./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js");
77602
77635
  const readDocType = __webpack_require__(/*! ./DocTypeReader */ "./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js");
77603
77636
  const toNumber = __webpack_require__(/*! strnum */ "./node_modules/strnum/strnum.js");
77637
+ const getIgnoreAttributesFn = __webpack_require__(/*! ../ignoreAttributes */ "./node_modules/fast-xml-parser/src/ignoreAttributes.js")
77604
77638
 
77605
77639
  // const regx =
77606
77640
  // '<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)'
@@ -77649,6 +77683,7 @@ class OrderedObjParser{
77649
77683
  this.readStopNodeData = readStopNodeData;
77650
77684
  this.saveTextToParentTag = saveTextToParentTag;
77651
77685
  this.addChild = addChild;
77686
+ this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)
77652
77687
  }
77653
77688
 
77654
77689
  }
@@ -77721,7 +77756,7 @@ function resolveNameSpace(tagname) {
77721
77756
  const attrsRegx = new RegExp('([^\\s=]+)\\s*(=\\s*([\'"])([\\s\\S]*?)\\3)?', 'gm');
77722
77757
 
77723
77758
  function buildAttributesMap(attrStr, jPath, tagName) {
77724
- if (!this.options.ignoreAttributes && typeof attrStr === 'string') {
77759
+ if (this.options.ignoreAttributes !== true && typeof attrStr === 'string') {
77725
77760
  // attrStr = attrStr.replace(/\r?\n/g, ' ');
77726
77761
  //attrStr = attrStr || attrStr.trim();
77727
77762
 
@@ -77730,6 +77765,9 @@ function buildAttributesMap(attrStr, jPath, tagName) {
77730
77765
  const attrs = {};
77731
77766
  for (let i = 0; i < len; i++) {
77732
77767
  const attrName = this.resolveNameSpace(matches[i][1]);
77768
+ if (this.ignoreAttributesFn(attrName, jPath)) {
77769
+ continue
77770
+ }
77733
77771
  let oldVal = matches[i][4];
77734
77772
  let aName = this.options.attributeNamePrefix + attrName;
77735
77773
  if (attrName.length) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.113.3",
3
+ "version": "2.113.4",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.113.3",
41
+ "@abaplint/core": "^2.113.4",
42
42
  "@types/chai": "^4.3.19",
43
43
  "@types/glob": "^8.1.0",
44
44
  "@types/minimist": "^1.2.5",