@abaplint/transpiler-cli 2.11.40 → 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 +64 -7
  2. package/package.json +2 -2
package/build/bundle.js CHANGED
@@ -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 ***!
@@ -81628,6 +81673,8 @@ const value_body_line_1 = __webpack_require__(/*! ./value_body_line */ "./node_m
81628
81673
  const field_assignment_1 = __webpack_require__(/*! ./field_assignment */ "./node_modules/@abaplint/transpiler/build/src/expressions/field_assignment.js");
81629
81674
  const statements_1 = __webpack_require__(/*! ../statements */ "./node_modules/@abaplint/transpiler/build/src/statements/index.js");
81630
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");
81631
81678
  class ValueBodyTranspiler {
81632
81679
  transpile(typ, body, traversal) {
81633
81680
  if (!(typ.get() instanceof core_1.Expressions.TypeNameOrInfer)) {
@@ -81635,6 +81682,10 @@ class ValueBodyTranspiler {
81635
81682
  }
81636
81683
  let ret = new chunk_1.Chunk().appendString(new type_name_or_infer_1.TypeNameOrInfer().transpile(typ, traversal).getCode());
81637
81684
  const context = new type_name_or_infer_1.TypeNameOrInfer().findType(typ, traversal);
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
+ }
81638
81689
  let post = "";
81639
81690
  let extraFields = "";
81640
81691
  const hasLines = body.findDirectExpression(core_1.Expressions.ValueBodyLine) !== undefined;
@@ -81654,7 +81705,7 @@ class ValueBodyTranspiler {
81654
81705
  }
81655
81706
  else if (child.get() instanceof core_1.Expressions.ValueBodyLine && child instanceof core_1.Nodes.ExpressionNode) {
81656
81707
  if (!(context instanceof core_1.BasicTypes.TableType)) {
81657
- throw new Error("ValueBodyTranspiler, Expected BasicTypes");
81708
+ throw new Error("ValueBodyTranspiler, Expected BasicTypes, " + body.concatTokens());
81658
81709
  }
81659
81710
  const rowType = context.getRowType();
81660
81711
  ret.appendString(new value_body_line_1.ValueBodyLineTranspiler().transpile(rowType, child, traversal, extraFields).getCode());
@@ -81664,15 +81715,16 @@ class ValueBodyTranspiler {
81664
81715
  ret.appendString(".set(" + source.getCode() + ".clone())");
81665
81716
  }
81666
81717
  else if (child.get() instanceof core_1.Expressions.For && child instanceof core_1.Nodes.ExpressionNode) {
81667
- if (child.getChildren().length !== 2) {
81668
- throw new Error("ValueBody FOR todo, num");
81718
+ if (["THEN", "UNTIL", "WHILE", "FROM", "TO", "WHERE", "GROUPS"].some(token => child.findDirectTokenByText(token))) {
81719
+ throw new Error("ValueBody FOR todo, " + body.concatTokens());
81669
81720
  }
81670
81721
  const loop = child.findDirectExpression(core_1.Expressions.InlineLoopDefinition);
81671
81722
  if (loop === undefined) {
81672
- throw new Error("ValueBody FOR todo");
81723
+ throw new Error("ValueBody FOR todo, " + body.concatTokens());
81673
81724
  }
81674
- else if (loop.getChildren().length !== 3) {
81675
- throw new Error("ValueBody FOR todo, num loop");
81725
+ const base = loop.findDirectExpression(core_1.Expressions.ValueBase);
81726
+ if (base) {
81727
+ throw new Error("ValueBody FOR todo, base, " + body.concatTokens());
81676
81728
  }
81677
81729
  let targetDeclare = "";
81678
81730
  let targetAction = "";
@@ -81685,10 +81737,14 @@ class ValueBodyTranspiler {
81685
81737
  else {
81686
81738
  const field = traversal.traverse(loop.findDirectExpression(core_1.Expressions.TargetField));
81687
81739
  if (field === undefined) {
81688
- throw new Error("ValueBody FOR empty field todo");
81740
+ throw new Error("ValueBody FOR empty field todo, " + body.concatTokens());
81689
81741
  }
81690
81742
  targetAction = `const ${field.getCode()} = unique1.clone();`;
81691
81743
  }
81744
+ const llet = child.findDirectExpression(core_1.Expressions.Let);
81745
+ if (llet) {
81746
+ targetAction += new let_1.LetTranspiler().transpile(llet, traversal).getCode();
81747
+ }
81692
81748
  const source = traversal.traverse(loop.findDirectExpression(core_1.Expressions.Source)).getCode();
81693
81749
  const val = new type_name_or_infer_1.TypeNameOrInfer().transpile(typ, traversal).getCode();
81694
81750
  ret = new chunk_1.Chunk().appendString(`await (async () => {
@@ -91705,6 +91761,7 @@ exports.config = {
91705
91761
  "DTEL",
91706
91762
  "ENHS",
91707
91763
  "ENQU",
91764
+ "HTTP",
91708
91765
  "FUGR",
91709
91766
  "INTF",
91710
91767
  "IWMO",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.11.40",
3
+ "version": "2.11.41",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -28,7 +28,7 @@
28
28
  "license": "MIT",
29
29
  "devDependencies": {
30
30
  "@abaplint/core": "^2.113.181",
31
- "@abaplint/transpiler": "^2.11.40",
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",