@abaplint/core 2.113.45 → 2.113.47

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.
@@ -1550,6 +1550,7 @@ declare class DataDefinition extends AbstractObject {
1550
1550
  setDirty(): void;
1551
1551
  findSourceFile(): IFile | undefined;
1552
1552
  hasParserError(): boolean | undefined;
1553
+ listKeys(): string[];
1553
1554
  parse(): IParseResult;
1554
1555
  getTree(): ExpressionNode | undefined;
1555
1556
  private findSQLViewName;
@@ -13,7 +13,7 @@ class ReadTable {
13
13
  const key = (0, combi_1.seq)((0, combi_1.altPrio)("WITH KEY", "WITH TABLE KEY"), (0, combi_1.alt)(expressions_1.ComponentCompareSimple, components, (0, combi_1.seq)((0, combi_1.optPrio)("="), expressions_1.Source)));
14
14
  const using = (0, combi_1.seq)("USING KEY", (0, combi_1.alt)(expressions_1.Field, expressions_1.Dynamic));
15
15
  const from = (0, combi_1.seq)("FROM", expressions_1.Source);
16
- const perm = (0, combi_1.per)((0, combi_1.alt)(index, key, from), expressions_1.ReadTableTarget, using, comparing, "CASTING", "TRANSPORTING ALL FIELDS", (0, combi_1.seq)("TRANSPORTING", transporting_fields_1.TransportingFields), "BINARY SEARCH");
16
+ const perm = (0, combi_1.per)((0, combi_1.alt)(index, key, from), expressions_1.ReadTableTarget, using, comparing, "CASTING", (0, combi_1.seq)("TRANSPORTING", (0, combi_1.altPrio)("ALL FIELDS", "NO FIELDS", transporting_fields_1.TransportingFields)), "BINARY SEARCH");
17
17
  return (0, combi_1.seq)("READ TABLE", (0, combi_1.alt)(expressions_1.SimpleSource2, (0, combi_1.ver)(version_1.Version.v740sp02, expressions_1.Source)), (0, combi_1.opt)(perm));
18
18
  }
19
19
  }
@@ -492,9 +492,11 @@ class TypeUtils {
492
492
  && this.isCharLike(source)) {
493
493
  return true;
494
494
  }
495
+ else if (source instanceof basic_1.StructureType) {
496
+ return this.isCharLikeStrict(source);
497
+ }
495
498
  else if (source instanceof basic_1.DataReference
496
499
  || source instanceof basic_1.ObjectReferenceType
497
- || source instanceof basic_1.StructureType
498
500
  || source instanceof basic_1.GenericObjectReferenceType) {
499
501
  return false;
500
502
  }
@@ -59,6 +59,17 @@ class DataDefinition extends _abstract_object_1.AbstractObject {
59
59
  hasParserError() {
60
60
  return this.parserError;
61
61
  }
62
+ listKeys() {
63
+ var _a;
64
+ this.parse();
65
+ const ret = [];
66
+ for (const field of ((_a = this.parsedData) === null || _a === void 0 ? void 0 : _a.fields) || []) {
67
+ if (field.key === true) {
68
+ ret.push(field.name);
69
+ }
70
+ }
71
+ return ret;
72
+ }
62
73
  parse() {
63
74
  var _a, _b;
64
75
  if (this.isDirty() === false) {
@@ -67,7 +67,7 @@ class Registry {
67
67
  }
68
68
  static abaplintVersion() {
69
69
  // magic, see build script "version.sh"
70
- return "2.113.45";
70
+ return "2.113.47";
71
71
  }
72
72
  getDDICReferences() {
73
73
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.113.45",
3
+ "version": "2.113.47",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",