@abaplint/transpiler-cli 2.11.39 → 2.11.41

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 +101 -5
  2. package/package.json +3 -3
package/build/bundle.js CHANGED
@@ -4379,7 +4379,7 @@ class For extends combi_1.Expression {
4379
4379
  const t = (0, combi_1.alt)(_1.TargetField, _1.TargetFieldSymbol);
4380
4380
  const groups = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("GROUPS", t, "OF", t, "IN", _1.Source, (0, combi_1.optPrio)(groupBy)));
4381
4381
  const f = (0, combi_1.seq)("FOR", (0, combi_1.alt)(itera, inn, groups), (0, combi_1.optPrio)(_1.Let));
4382
- return (0, combi_1.ver)(version_1.Version.v740sp05, f);
4382
+ return (0, combi_1.ver)(version_1.Version.v740sp05, f, version_1.Version.OpenABAP);
4383
4383
  }
4384
4384
  }
4385
4385
  exports.For = For;
@@ -53791,7 +53791,7 @@ class Registry {
53791
53791
  }
53792
53792
  static abaplintVersion() {
53793
53793
  // magic, see build script "version.sh"
53794
- return "2.113.180";
53794
+ return "2.113.181";
53795
53795
  }
53796
53796
  getDDICReferences() {
53797
53797
  return this.ddicReferences;
@@ -79502,6 +79502,7 @@ __exportStar(__webpack_require__(/*! ./field_symbol */ "./node_modules/@abaplint
79502
79502
  __exportStar(__webpack_require__(/*! ./function_exporting */ "./node_modules/@abaplint/transpiler/build/src/expressions/function_exporting.js"), exports);
79503
79503
  __exportStar(__webpack_require__(/*! ./table_expression */ "./node_modules/@abaplint/transpiler/build/src/expressions/table_expression.js"), exports);
79504
79504
  __exportStar(__webpack_require__(/*! ./function_parameters */ "./node_modules/@abaplint/transpiler/build/src/expressions/function_parameters.js"), exports);
79505
+ __exportStar(__webpack_require__(/*! ./let */ "./node_modules/@abaplint/transpiler/build/src/expressions/let.js"), exports);
79505
79506
  __exportStar(__webpack_require__(/*! ./message_number */ "./node_modules/@abaplint/transpiler/build/src/expressions/message_number.js"), exports);
79506
79507
  __exportStar(__webpack_require__(/*! ./method_call_body */ "./node_modules/@abaplint/transpiler/build/src/expressions/method_call_body.js"), exports);
79507
79508
  __exportStar(__webpack_require__(/*! ./method_call_chain */ "./node_modules/@abaplint/transpiler/build/src/expressions/method_call_chain.js"), exports);
@@ -79548,6 +79549,50 @@ __exportStar(__webpack_require__(/*! ./type_name_or_infer */ "./node_modules/@ab
79548
79549
 
79549
79550
  /***/ }),
79550
79551
 
79552
+ /***/ "./node_modules/@abaplint/transpiler/build/src/expressions/let.js":
79553
+ /*!************************************************************************!*\
79554
+ !*** ./node_modules/@abaplint/transpiler/build/src/expressions/let.js ***!
79555
+ \************************************************************************/
79556
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
79557
+
79558
+ "use strict";
79559
+
79560
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
79561
+ exports.LetTranspiler = void 0;
79562
+ const core_1 = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
79563
+ const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
79564
+ const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
79565
+ class LetTranspiler {
79566
+ transpile(node, traversal) {
79567
+ if (!(node.get() instanceof core_1.Expressions.Let)) {
79568
+ throw new Error("LetTranspiler, Expected Let");
79569
+ }
79570
+ const ret = new chunk_1.Chunk();
79571
+ for (const def of node.findAllExpressions(core_1.Expressions.InlineFieldDefinition)) {
79572
+ const nameToken = def.findDirectExpression(core_1.Expressions.Field);
79573
+ if (nameToken === undefined) {
79574
+ throw new Error("LetTranspiler, Expected Field");
79575
+ }
79576
+ const name = nameToken?.concatTokens();
79577
+ const scope = traversal.findCurrentScopeByToken(node.getFirstToken());
79578
+ const variable = scope?.findVariable(name);
79579
+ if (variable === undefined) {
79580
+ throw new Error("LetTranspiler, Expected Variable");
79581
+ }
79582
+ ret.appendString(transpile_types_1.TranspileTypes.declare(variable));
79583
+ const source = def.findDirectExpression(core_1.Expressions.Source);
79584
+ if (source) {
79585
+ ret.appendString(name + `.set(${traversal.traverse(source).getCode()});`);
79586
+ }
79587
+ }
79588
+ return ret;
79589
+ }
79590
+ }
79591
+ exports.LetTranspiler = LetTranspiler;
79592
+ //# sourceMappingURL=let.js.map
79593
+
79594
+ /***/ }),
79595
+
79551
79596
  /***/ "./node_modules/@abaplint/transpiler/build/src/expressions/message_number.js":
79552
79597
  /*!***********************************************************************************!*\
79553
79598
  !*** ./node_modules/@abaplint/transpiler/build/src/expressions/message_number.js ***!
@@ -81626,6 +81671,10 @@ const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/tr
81626
81671
  const type_name_or_infer_1 = __webpack_require__(/*! ./type_name_or_infer */ "./node_modules/@abaplint/transpiler/build/src/expressions/type_name_or_infer.js");
81627
81672
  const value_body_line_1 = __webpack_require__(/*! ./value_body_line */ "./node_modules/@abaplint/transpiler/build/src/expressions/value_body_line.js");
81628
81673
  const field_assignment_1 = __webpack_require__(/*! ./field_assignment */ "./node_modules/@abaplint/transpiler/build/src/expressions/field_assignment.js");
81674
+ const statements_1 = __webpack_require__(/*! ../statements */ "./node_modules/@abaplint/transpiler/build/src/statements/index.js");
81675
+ const source_field_symbol_1 = __webpack_require__(/*! ./source_field_symbol */ "./node_modules/@abaplint/transpiler/build/src/expressions/source_field_symbol.js");
81676
+ const transpile_types_1 = __webpack_require__(/*! ../transpile_types */ "./node_modules/@abaplint/transpiler/build/src/transpile_types.js");
81677
+ const let_1 = __webpack_require__(/*! ./let */ "./node_modules/@abaplint/transpiler/build/src/expressions/let.js");
81629
81678
  class ValueBodyTranspiler {
81630
81679
  transpile(typ, body, traversal) {
81631
81680
  if (!(typ.get() instanceof core_1.Expressions.TypeNameOrInfer)) {
@@ -81633,8 +81682,13 @@ class ValueBodyTranspiler {
81633
81682
  }
81634
81683
  let ret = new chunk_1.Chunk().appendString(new type_name_or_infer_1.TypeNameOrInfer().transpile(typ, traversal).getCode());
81635
81684
  const context = new type_name_or_infer_1.TypeNameOrInfer().findType(typ, traversal);
81636
- const hasLines = body.findDirectExpression(core_1.Expressions.ValueBodyLine) !== undefined;
81685
+ if (context instanceof core_1.BasicTypes.VoidType || context instanceof core_1.BasicTypes.UnknownType) {
81686
+ // compile option is runtime error, or it failed during the validation step
81687
+ return new chunk_1.Chunk(transpile_types_1.TranspileTypes.toType(context));
81688
+ }
81689
+ let post = "";
81637
81690
  let extraFields = "";
81691
+ const hasLines = body.findDirectExpression(core_1.Expressions.ValueBodyLine) !== undefined;
81638
81692
  for (const child of body.getChildren()) {
81639
81693
  if (child.get() instanceof core_1.Expressions.FieldAssignment && child instanceof core_1.Nodes.ExpressionNode) {
81640
81694
  const transpiled = new field_assignment_1.FieldAssignmentTranspiler().transpile(child, traversal).getCode();
@@ -81651,7 +81705,7 @@ class ValueBodyTranspiler {
81651
81705
  }
81652
81706
  else if (child.get() instanceof core_1.Expressions.ValueBodyLine && child instanceof core_1.Nodes.ExpressionNode) {
81653
81707
  if (!(context instanceof core_1.BasicTypes.TableType)) {
81654
- throw new Error("ValueBodyTranspiler, Expected BasicTypes");
81708
+ throw new Error("ValueBodyTranspiler, Expected BasicTypes, " + body.concatTokens());
81655
81709
  }
81656
81710
  const rowType = context.getRowType();
81657
81711
  ret.appendString(new value_body_line_1.ValueBodyLineTranspiler().transpile(rowType, child, traversal, extraFields).getCode());
@@ -81660,11 +81714,52 @@ class ValueBodyTranspiler {
81660
81714
  const source = traversal.traverse(child);
81661
81715
  ret.appendString(".set(" + source.getCode() + ".clone())");
81662
81716
  }
81717
+ else if (child.get() instanceof core_1.Expressions.For && child instanceof core_1.Nodes.ExpressionNode) {
81718
+ if (["THEN", "UNTIL", "WHILE", "FROM", "TO", "WHERE", "GROUPS"].some(token => child.findDirectTokenByText(token))) {
81719
+ throw new Error("ValueBody FOR todo, " + body.concatTokens());
81720
+ }
81721
+ const loop = child.findDirectExpression(core_1.Expressions.InlineLoopDefinition);
81722
+ if (loop === undefined) {
81723
+ throw new Error("ValueBody FOR todo, " + body.concatTokens());
81724
+ }
81725
+ const base = loop.findDirectExpression(core_1.Expressions.ValueBase);
81726
+ if (base) {
81727
+ throw new Error("ValueBody FOR todo, base, " + body.concatTokens());
81728
+ }
81729
+ let targetDeclare = "";
81730
+ let targetAction = "";
81731
+ const fs = loop.findDirectExpression(core_1.Expressions.TargetFieldSymbol);
81732
+ if (fs) {
81733
+ targetDeclare = new statements_1.FieldSymbolTranspiler().transpile(fs, traversal).getCode();
81734
+ const targetName = new source_field_symbol_1.SourceFieldSymbolTranspiler().transpile(fs, traversal).getCode();
81735
+ targetAction = `${targetName}.assign(unique1);`;
81736
+ }
81737
+ else {
81738
+ const field = traversal.traverse(loop.findDirectExpression(core_1.Expressions.TargetField));
81739
+ if (field === undefined) {
81740
+ throw new Error("ValueBody FOR empty field todo, " + body.concatTokens());
81741
+ }
81742
+ targetAction = `const ${field.getCode()} = unique1.clone();`;
81743
+ }
81744
+ const llet = child.findDirectExpression(core_1.Expressions.Let);
81745
+ if (llet) {
81746
+ targetAction += new let_1.LetTranspiler().transpile(llet, traversal).getCode();
81747
+ }
81748
+ const source = traversal.traverse(loop.findDirectExpression(core_1.Expressions.Source)).getCode();
81749
+ const val = new type_name_or_infer_1.TypeNameOrInfer().transpile(typ, traversal).getCode();
81750
+ ret = new chunk_1.Chunk().appendString(`await (async () => {
81751
+ ${targetDeclare}
81752
+ const VAL = ${val};
81753
+ for await (const unique1 of abap.statements.loop(${source})) {
81754
+ ${targetAction}
81755
+ VAL`);
81756
+ post = ";\n}\nreturn VAL;\n})()";
81757
+ }
81663
81758
  else {
81664
81759
  throw new Error("ValueBodyTranspiler, unknown " + child.get().constructor.name + " \"" + child.concatTokens()) + "\"";
81665
81760
  }
81666
81761
  }
81667
- return ret;
81762
+ return ret.appendString(post);
81668
81763
  }
81669
81764
  }
81670
81765
  exports.ValueBodyTranspiler = ValueBodyTranspiler;
@@ -91666,6 +91761,7 @@ exports.config = {
91666
91761
  "DTEL",
91667
91762
  "ENHS",
91668
91763
  "ENQU",
91764
+ "HTTP",
91669
91765
  "FUGR",
91670
91766
  "INTF",
91671
91767
  "IWMO",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.11.39",
3
+ "version": "2.11.41",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -27,8 +27,8 @@
27
27
  "author": "abaplint",
28
28
  "license": "MIT",
29
29
  "devDependencies": {
30
- "@abaplint/core": "^2.113.180",
31
- "@abaplint/transpiler": "^2.11.39",
30
+ "@abaplint/core": "^2.113.181",
31
+ "@abaplint/transpiler": "^2.11.41",
32
32
  "@types/glob": "^8.1.0",
33
33
  "@types/node": "^24.3.0",
34
34
  "@types/progress": "^2.0.7",