@abaplint/cli 2.113.52 → 2.113.54

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 +23 -18
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -6056,7 +6056,8 @@ const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src
6056
6056
  class InlineLoopDefinition extends combi_1.Expression {
6057
6057
  getRunnable() {
6058
6058
  const index = (0, combi_1.seq)("INDEX INTO", _1.TargetField);
6059
- return (0, combi_1.seq)((0, combi_1.altPrio)(_1.TargetFieldSymbol, _1.TargetField), "IN", (0, combi_1.opt)("GROUP"), _1.Source, (0, combi_1.optPrio)(index));
6059
+ const key = (0, combi_1.seq)("USING KEY", _1.SimpleName);
6060
+ return (0, combi_1.seq)((0, combi_1.altPrio)(_1.TargetFieldSymbol, _1.TargetField), "IN", (0, combi_1.opt)("GROUP"), _1.Source, (0, combi_1.optPrio)(key), (0, combi_1.optPrio)(index));
6060
6061
  }
6061
6062
  }
6062
6063
  exports.InlineLoopDefinition = InlineLoopDefinition;
@@ -7291,7 +7292,9 @@ const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src
7291
7292
  class RaiseWith extends combi_1.Expression {
7292
7293
  getRunnable() {
7293
7294
  const wit = (0, combi_1.seq)("WITH", _1.SimpleSource1, (0, combi_1.opt)(_1.SimpleSource1), (0, combi_1.opt)(_1.SimpleSource1), (0, combi_1.opt)(_1.SimpleSource1));
7294
- return wit;
7295
+ // todo: I guess this is from version something?
7296
+ const witComplex = (0, combi_1.seq)("WITH", _1.Source, (0, combi_1.opt)(_1.Source), (0, combi_1.opt)(_1.Source), (0, combi_1.opt)(_1.Source));
7297
+ return (0, combi_1.alt)(wit, witComplex);
7295
7298
  }
7296
7299
  }
7297
7300
  exports.RaiseWith = RaiseWith;
@@ -7458,8 +7461,6 @@ const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src
7458
7461
  const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
7459
7462
  const sql_group_by_1 = __webpack_require__(/*! ./sql_group_by */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_group_by.js");
7460
7463
  const sql_into_structure_1 = __webpack_require__(/*! ./sql_into_structure */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_into_structure.js");
7461
- const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
7462
- const sql_field_name_1 = __webpack_require__(/*! ./sql_field_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_field_name.js");
7463
7464
  const sql_up_to_1 = __webpack_require__(/*! ./sql_up_to */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_up_to.js");
7464
7465
  class Select extends combi_1.Expression {
7465
7466
  getRunnable() {
@@ -7471,8 +7472,7 @@ class Select extends combi_1.Expression {
7471
7472
  // todo, HINTS cannot be anywhere, need an expression dedicated for strict sql
7472
7473
  const perm = (0, combi_1.per)(_1.SQLFrom, into, _1.SQLForAllEntries, where, _1.SQLOrderBy, sql_up_to_1.SQLUpTo, offset, _1.SQLClient, _1.SQLHaving, bypass, sql_group_by_1.SQLGroupBy, fields, _1.DatabaseConnection, _1.SQLHints);
7473
7474
  const permSingle = (0, combi_1.per)(_1.SQLFrom, (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList), where, _1.SQLClient, bypass, sql_group_by_1.SQLGroupBy, fields, _1.DatabaseConnection, _1.SQLHints);
7474
- const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), sql_field_name_1.SQLFieldName, (0, combi_1.tok)(tokens_1.WParenRightW));
7475
- const fieldList = (0, combi_1.optPrio)((0, combi_1.altPrio)(_1.SQLFieldList, paren));
7475
+ const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
7476
7476
  const single = (0, combi_1.seq)("SINGLE", (0, combi_1.optPrio)("FOR UPDATE"), fieldList, permSingle);
7477
7477
  const other = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, perm);
7478
7478
  const ret = (0, combi_1.seq)("SELECT", (0, combi_1.altPrio)(single, other));
@@ -7867,7 +7867,7 @@ const dynamic_1 = __webpack_require__(/*! ./dynamic */ "./node_modules/@abaplint
7867
7867
  const sql_arithmetics_1 = __webpack_require__(/*! ./sql_arithmetics */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_arithmetics.js");
7868
7868
  class SQLAggregation extends combi_1.Expression {
7869
7869
  getRunnable() {
7870
- const f = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), (0, combi_1.altPrio)(sql_arithmetics_1.SQLArithmetics, dynamic_1.Dynamic, _1.SQLFunction));
7870
+ const f = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), (0, combi_1.altPrio)(sql_arithmetics_1.SQLArithmetics, dynamic_1.Dynamic, _1.SQLFunction, _1.SQLCase));
7871
7871
  const fparen = (0, combi_1.seq)("(", _1.Field, ")");
7872
7872
  const count = (0, combi_1.seq)("COUNT", (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenLeft), (0, combi_1.tok)(tokens_1.ParenLeftW)), (0, combi_1.optPrio)("DISTINCT"), (0, combi_1.altPrio)("*", _1.Field, fparen), ")");
7873
7873
  const max = (0, combi_1.seq)("MAX", (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenLeft), (0, combi_1.tok)(tokens_1.ParenLeftW)), f, ")");
@@ -8213,11 +8213,13 @@ exports.SQLFieldList = void 0;
8213
8213
  const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
8214
8214
  const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
8215
8215
  const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
8216
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
8216
8217
  class SQLFieldList extends combi_1.Expression {
8217
8218
  getRunnable() {
8219
+ const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFieldName, (0, combi_1.tok)(tokens_1.WParenRightW));
8218
8220
  const nev = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.starPrio)((0, combi_1.seq)(",", _1.SQLField)));
8219
8221
  const old = (0, combi_1.starPrio)(_1.SQLField);
8220
- return (0, combi_1.altPrio)("*", _1.Dynamic, (0, combi_1.seq)(_1.SQLField, (0, combi_1.alt)(nev, old)));
8222
+ return (0, combi_1.altPrio)("*", _1.Dynamic, (0, combi_1.seq)(_1.SQLField, (0, combi_1.alt)(nev, old)), paren);
8221
8223
  }
8222
8224
  }
8223
8225
  exports.SQLFieldList = SQLFieldList;
@@ -8901,7 +8903,7 @@ class StringTemplateFormatting extends combi_1.Expression {
8901
8903
  const alignOptions = (0, combi_1.altPrio)("LEFT", "RIGHT", "CENTER", _1.Source);
8902
8904
  const dateTimeOptions = (0, combi_1.altPrio)("RAW", "ISO", "USER", "ENVIRONMENT", _1.Source, dynamic_1.Dynamic);
8903
8905
  const timeStampOptions = (0, combi_1.altPrio)("SPACE", "ISO", "USER", "ENVIRONMENT", _1.Source);
8904
- const numberOptions = (0, combi_1.altPrio)("RAW", "USER", "ENVIRONMENT", _1.Source);
8906
+ const numberOptions = (0, combi_1.altPrio)("RAW", "USER", "ENVIRONMENT", _1.Source, dynamic_1.Dynamic);
8905
8907
  const signOptions = (0, combi_1.altPrio)("LEFT", "LEFTPLUS", "LEFTSPACE", "RIGHT", "RIGHTPLUS", "RIGHTSPACE", _1.Source);
8906
8908
  const caseOptions = (0, combi_1.altPrio)("RAW", "UPPER", "LOWER", _1.Source, dynamic_1.Dynamic);
8907
8909
  const zeroXSDOptions = (0, combi_1.altPrio)("YES", "NO", _1.Source);
@@ -9113,7 +9115,7 @@ const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/co
9113
9115
  const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
9114
9116
  class TargetFieldSymbol extends combi_1.Expression {
9115
9117
  getRunnable() {
9116
- return new _1.FieldSymbol();
9118
+ return (0, combi_1.seq)(_1.FieldSymbol, (0, combi_1.optPrio)(_1.TableBody));
9117
9119
  }
9118
9120
  }
9119
9121
  exports.TargetFieldSymbol = TargetFieldSymbol;
@@ -9228,8 +9230,8 @@ const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src
9228
9230
  const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
9229
9231
  class Throw extends combi_1.Expression {
9230
9232
  getRunnable() {
9231
- // todo, MESSAGE
9232
- return (0, combi_1.seq)("THROW", (0, combi_1.opt)("RESUMABLE"), _1.ClassName, (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenLeftW), (0, combi_1.tok)(tokens_1.ParenLeft)), (0, combi_1.opt)((0, combi_1.alt)(_1.Source, _1.ParameterListS)), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.tok)(tokens_1.ParenRightW)));
9233
+ const message = (0, combi_1.seq)("MESSAGE", _1.MessageSource, (0, combi_1.opt)(_1.RaiseWith));
9234
+ return (0, combi_1.seq)("THROW", (0, combi_1.opt)("RESUMABLE"), _1.ClassName, (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenLeftW), (0, combi_1.tok)(tokens_1.ParenLeft)), (0, combi_1.opt)((0, combi_1.alt)(_1.Source, _1.ParameterListS, message)), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.tok)(tokens_1.ParenRightW)));
9233
9235
  }
9234
9236
  }
9235
9237
  exports.Throw = Throw;
@@ -14695,7 +14697,7 @@ class MethodDef {
14695
14697
  const behavior = (0, combi_1.altPrio)((0, combi_1.seq)("VALIDATE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("MODIFY IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("READ IMPORTING", expressions_1.MethodParamName, (0, combi_1.altPrio)(forRead, forfunction)), (0, combi_1.seq)("FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.NamespaceSimpleName, "FOR", expressions_1.NamespaceSimpleName, result), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR CREATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR UPDATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR READ", expressions_1.TypeName, result), (0, combi_1.seq)((0, combi_1.alt)("BEHAVIOR", "LOCK"), "IMPORTING", expressions_1.MethodParamName, "FOR LOCK", expressions_1.TypeName), (0, combi_1.seq)("DETERMINE", (0, combi_1.alt)("ON MODIFY", "ON SAVE"), "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("GLOBAL AUTHORIZATION IMPORTING REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE AUTHORIZATION IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result));
14696
14698
  // todo, this is only from version something
14697
14699
  const amdp = (0, combi_1.seq)("AMDP OPTIONS CDS SESSION CLIENT CURRENT", (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefRaising));
14698
- const ret = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), expressions_1.EventHandler), parameters, testing, (0, combi_1.seq)("FOR", (0, combi_1.alt)(tableFunction, ddl, behavior)), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
14700
+ const ret = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), (0, combi_1.optPrio)(def), expressions_1.EventHandler), parameters, testing, (0, combi_1.seq)("FOR", (0, combi_1.alt)(tableFunction, ddl, behavior)), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
14699
14701
  return ret;
14700
14702
  }
14701
14703
  }
@@ -22949,6 +22951,9 @@ class TypeUtils {
22949
22951
  return this.isAssignable(source, target);
22950
22952
  }
22951
22953
  isAssignable(source, target) {
22954
+ if (source === undefined || target === undefined) {
22955
+ return true;
22956
+ }
22952
22957
  /*
22953
22958
  console.dir(source);
22954
22959
  console.dir(target);
@@ -39822,7 +39827,7 @@ exports.CDSDetermineTypes = void 0;
39822
39827
  const basic_1 = __webpack_require__(/*! ../abap/types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
39823
39828
  const ddic_1 = __webpack_require__(/*! ../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
39824
39829
  class CDSDetermineTypes {
39825
- parseType(reg, parsedData) {
39830
+ parseType(reg, parsedData, ddlsName) {
39826
39831
  const ddic = new ddic_1.DDIC(reg);
39827
39832
  if ((parsedData === null || parsedData === void 0 ? void 0 : parsedData.fields.length) === 0) {
39828
39833
  return new basic_1.VoidType("DDLS:todo");
@@ -39848,7 +39853,7 @@ class CDSDetermineTypes {
39848
39853
  if ((source === null || source === void 0 ? void 0 : source.name) === undefined) {
39849
39854
  components.push({
39850
39855
  name: f.name,
39851
- type: new basic_1.UnknownType("CDS parser error, unknown source"),
39856
+ type: new basic_1.UnknownType("CDS parser error, unknown source, " + ddlsName),
39852
39857
  });
39853
39858
  continue;
39854
39859
  }
@@ -39893,7 +39898,7 @@ class CDSDetermineTypes {
39893
39898
  else {
39894
39899
  components.push({
39895
39900
  name: f.name,
39896
- type: new basic_1.VoidType("DDLS:fieldname"),
39901
+ type: new basic_1.VoidType("DDLS:fieldname:" + ddlsName),
39897
39902
  });
39898
39903
  }
39899
39904
  }
@@ -46824,7 +46829,7 @@ class DataDefinition extends _abstract_object_1.AbstractObject {
46824
46829
  }
46825
46830
  parseType(reg) {
46826
46831
  this.parse();
46827
- return new cds_determine_types_1.CDSDetermineTypes().parseType(reg, this.parsedData);
46832
+ return new cds_determine_types_1.CDSDetermineTypes().parseType(reg, this.parsedData, this.getName());
46828
46833
  }
46829
46834
  getParsedData() {
46830
46835
  return this.parsedData;
@@ -53126,7 +53131,7 @@ class Registry {
53126
53131
  }
53127
53132
  static abaplintVersion() {
53128
53133
  // magic, see build script "version.sh"
53129
- return "2.113.52";
53134
+ return "2.113.54";
53130
53135
  }
53131
53136
  getDDICReferences() {
53132
53137
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.113.52",
3
+ "version": "2.113.54",
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.52",
41
+ "@abaplint/core": "^2.113.54",
42
42
  "@types/chai": "^4.3.20",
43
43
  "@types/glob": "^8.1.0",
44
44
  "@types/minimist": "^1.2.5",