@herb-tools/node 0.9.0 → 0.9.1

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 (44) hide show
  1. package/binding.gyp +1 -0
  2. package/dist/herb-node.cjs +1 -1
  3. package/dist/herb-node.esm.js +1 -1
  4. package/extension/error_helpers.cpp +204 -1
  5. package/extension/error_helpers.h +8 -1
  6. package/extension/extension_helpers.cpp +3 -1
  7. package/extension/herb.cpp +11 -0
  8. package/extension/libherb/analyze/action_view/attribute_extraction_helpers.c +14 -1
  9. package/extension/libherb/analyze/action_view/content_tag.c +19 -11
  10. package/extension/libherb/analyze/action_view/link_to.c +25 -1
  11. package/extension/libherb/analyze/action_view/registry.c +23 -0
  12. package/extension/libherb/analyze/action_view/tag.c +14 -8
  13. package/extension/libherb/analyze/action_view/tag_helper_handler.h +2 -0
  14. package/extension/libherb/analyze/action_view/tag_helpers.c +78 -11
  15. package/extension/libherb/analyze/analyze.c +3 -0
  16. package/extension/libherb/analyze/missing_end.c +1 -1
  17. package/extension/libherb/analyze/prism_annotate.c +4 -2
  18. package/extension/libherb/analyze/render_nodes.c +761 -0
  19. package/extension/libherb/analyze/render_nodes.h +11 -0
  20. package/extension/libherb/analyze/transform.c +8 -1
  21. package/extension/libherb/ast_nodes.c +98 -1
  22. package/extension/libherb/ast_nodes.h +38 -1
  23. package/extension/libherb/ast_pretty_print.c +75 -1
  24. package/extension/libherb/ast_pretty_print.h +1 -1
  25. package/extension/libherb/errors.c +380 -1
  26. package/extension/libherb/errors.h +59 -1
  27. package/extension/libherb/include/analyze/action_view/tag_helper_handler.h +2 -0
  28. package/extension/libherb/include/analyze/render_nodes.h +11 -0
  29. package/extension/libherb/include/ast_nodes.h +38 -1
  30. package/extension/libherb/include/ast_pretty_print.h +1 -1
  31. package/extension/libherb/include/errors.h +59 -1
  32. package/extension/libherb/include/parser.h +1 -0
  33. package/extension/libherb/include/util/hb_foreach.h +1 -1
  34. package/extension/libherb/include/version.h +1 -1
  35. package/extension/libherb/parser.c +1 -0
  36. package/extension/libherb/parser.h +1 -0
  37. package/extension/libherb/parser_match_tags.c +21 -1
  38. package/extension/libherb/util/hb_foreach.h +1 -1
  39. package/extension/libherb/version.h +1 -1
  40. package/extension/libherb/visitor.c +21 -1
  41. package/extension/nodes.cpp +143 -1
  42. package/extension/nodes.h +3 -1
  43. package/package.json +2 -2
  44. package/CHANGELOG.md +0 -19
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.0/templates/src/include/errors.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.1/templates/src/include/errors.h.erb
3
3
 
4
4
  #ifndef HERB_ERRORS_H
5
5
  #define HERB_ERRORS_H
@@ -37,6 +37,13 @@ typedef enum {
37
37
  UNCLOSED_ERB_TAG_ERROR,
38
38
  STRAY_ERB_CLOSING_TAG_ERROR,
39
39
  NESTED_ERB_TAG_ERROR,
40
+ RENDER_AMBIGUOUS_LOCALS_ERROR,
41
+ RENDER_MISSING_LOCALS_ERROR,
42
+ RENDER_NO_ARGUMENTS_ERROR,
43
+ RENDER_CONFLICTING_PARTIAL_ERROR,
44
+ RENDER_INVALID_AS_OPTION_ERROR,
45
+ RENDER_OBJECT_AND_COLLECTION_ERROR,
46
+ RENDER_LAYOUT_WITHOUT_BLOCK_ERROR,
40
47
  } error_type_T;
41
48
 
42
49
  typedef struct ERROR_STRUCT {
@@ -179,6 +186,43 @@ typedef struct {
179
186
  size_t nested_tag_column;
180
187
  } NESTED_ERB_TAG_ERROR_T;
181
188
 
189
+ typedef struct {
190
+ ERROR_T base;
191
+ hb_string_T partial;
192
+ } RENDER_AMBIGUOUS_LOCALS_ERROR_T;
193
+
194
+ typedef struct {
195
+ ERROR_T base;
196
+ hb_string_T partial;
197
+ hb_string_T keywords;
198
+ } RENDER_MISSING_LOCALS_ERROR_T;
199
+
200
+ typedef struct {
201
+ ERROR_T base;
202
+ /* no additional fields */
203
+ } RENDER_NO_ARGUMENTS_ERROR_T;
204
+
205
+ typedef struct {
206
+ ERROR_T base;
207
+ hb_string_T positional_partial;
208
+ hb_string_T keyword_partial;
209
+ } RENDER_CONFLICTING_PARTIAL_ERROR_T;
210
+
211
+ typedef struct {
212
+ ERROR_T base;
213
+ hb_string_T as_value;
214
+ } RENDER_INVALID_AS_OPTION_ERROR_T;
215
+
216
+ typedef struct {
217
+ ERROR_T base;
218
+ /* no additional fields */
219
+ } RENDER_OBJECT_AND_COLLECTION_ERROR_T;
220
+
221
+ typedef struct {
222
+ ERROR_T base;
223
+ hb_string_T layout;
224
+ } RENDER_LAYOUT_WITHOUT_BLOCK_ERROR_T;
225
+
182
226
  UNEXPECTED_ERROR_T* unexpected_error_init(hb_string_T description, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T* allocator);
183
227
  void append_unexpected_error(hb_string_T description, hb_string_T expected, hb_string_T found, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
184
228
  UNEXPECTED_TOKEN_ERROR_T* unexpected_token_error_init(token_type_T expected_type, token_T* found, position_T start, position_T end, hb_allocator_T* allocator);
@@ -225,6 +269,20 @@ STRAY_ERB_CLOSING_TAG_ERROR_T* stray_erb_closing_tag_error_init(position_T start
225
269
  void append_stray_erb_closing_tag_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
226
270
  NESTED_ERB_TAG_ERROR_T* nested_erb_tag_error_init(token_T* opening_tag, size_t nested_tag_line, size_t nested_tag_column, position_T start, position_T end, hb_allocator_T* allocator);
227
271
  void append_nested_erb_tag_error(token_T* opening_tag, size_t nested_tag_line, size_t nested_tag_column, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
272
+ RENDER_AMBIGUOUS_LOCALS_ERROR_T* render_ambiguous_locals_error_init(hb_string_T partial, position_T start, position_T end, hb_allocator_T* allocator);
273
+ void append_render_ambiguous_locals_error(hb_string_T partial, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
274
+ RENDER_MISSING_LOCALS_ERROR_T* render_missing_locals_error_init(hb_string_T partial, hb_string_T keywords, position_T start, position_T end, hb_allocator_T* allocator);
275
+ void append_render_missing_locals_error(hb_string_T partial, hb_string_T keywords, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
276
+ RENDER_NO_ARGUMENTS_ERROR_T* render_no_arguments_error_init(position_T start, position_T end, hb_allocator_T* allocator);
277
+ void append_render_no_arguments_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
278
+ RENDER_CONFLICTING_PARTIAL_ERROR_T* render_conflicting_partial_error_init(hb_string_T positional_partial, hb_string_T keyword_partial, position_T start, position_T end, hb_allocator_T* allocator);
279
+ void append_render_conflicting_partial_error(hb_string_T positional_partial, hb_string_T keyword_partial, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
280
+ RENDER_INVALID_AS_OPTION_ERROR_T* render_invalid_as_option_error_init(hb_string_T as_value, position_T start, position_T end, hb_allocator_T* allocator);
281
+ void append_render_invalid_as_option_error(hb_string_T as_value, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
282
+ RENDER_OBJECT_AND_COLLECTION_ERROR_T* render_object_and_collection_error_init(position_T start, position_T end, hb_allocator_T* allocator);
283
+ void append_render_object_and_collection_error(position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
284
+ RENDER_LAYOUT_WITHOUT_BLOCK_ERROR_T* render_layout_without_block_error_init(hb_string_T layout, position_T start, position_T end, hb_allocator_T* allocator);
285
+ void append_render_layout_without_block_error(hb_string_T layout, position_T start, position_T end, hb_allocator_T* allocator, hb_array_T* errors);
228
286
 
229
287
  void error_init(ERROR_T* error, error_type_T type, position_T start, position_T end);
230
288
 
@@ -21,6 +21,7 @@ typedef struct PARSER_OPTIONS_STRUCT {
21
21
  bool analyze;
22
22
  bool strict;
23
23
  bool action_view_helpers;
24
+ bool render_nodes;
24
25
  bool prism_program;
25
26
  bool prism_nodes;
26
27
  bool prism_nodes_deep;
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.0/templates/src/include/util/hb_foreach.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.1/templates/src/include/util/hb_foreach.h.erb
3
3
 
4
4
  #ifndef HB_FOREACH_H
5
5
  #define HB_FOREACH_H
@@ -1,6 +1,6 @@
1
1
  #ifndef HERB_VERSION_H
2
2
  #define HERB_VERSION_H
3
3
 
4
- #define HERB_VERSION "0.9.0"
4
+ #define HERB_VERSION "0.9.1"
5
5
 
6
6
  #endif
@@ -37,6 +37,7 @@ const parser_options_T HERB_DEFAULT_PARSER_OPTIONS = { .track_whitespace = false
37
37
  .analyze = true,
38
38
  .strict = true,
39
39
  .action_view_helpers = false,
40
+ .render_nodes = false,
40
41
  .prism_nodes_deep = false,
41
42
  .prism_nodes = false,
42
43
  .prism_program = false };
@@ -21,6 +21,7 @@ typedef struct PARSER_OPTIONS_STRUCT {
21
21
  bool analyze;
22
22
  bool strict;
23
23
  bool action_view_helpers;
24
+ bool render_nodes;
24
25
  bool prism_program;
25
26
  bool prism_nodes;
26
27
  bool prism_nodes_deep;
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.0/templates/src/parser_match_tags.c.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.1/templates/src/parser_match_tags.c.erb
3
3
 
4
4
  #include "include/parser.h"
5
5
  #include "include/ast_nodes.h"
@@ -360,6 +360,26 @@ bool match_tags_visitor(const AST_NODE_T* node, void* data) {
360
360
 
361
361
 
362
362
 
363
+ case AST_RUBY_RENDER_LOCAL_NODE: {
364
+ const AST_RUBY_RENDER_LOCAL_NODE_T* ruby_render_local_node = (const AST_RUBY_RENDER_LOCAL_NODE_T*) node;
365
+
366
+ if (ruby_render_local_node->value != NULL) {
367
+ herb_visit_node((AST_NODE_T*) ruby_render_local_node->value, match_tags_visitor, context);
368
+ }
369
+ } break;
370
+
371
+
372
+
373
+ case AST_ERB_RENDER_NODE: {
374
+ const AST_ERB_RENDER_NODE_T* erb_render_node = (const AST_ERB_RENDER_NODE_T*) node;
375
+
376
+ if (erb_render_node->locals != NULL) {
377
+ match_tags_in_node_array(erb_render_node->locals, context->errors, context->options, context->allocator);
378
+ }
379
+ } break;
380
+
381
+
382
+
363
383
 
364
384
 
365
385
  case AST_ERB_IN_NODE: {
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.0/templates/src/include/util/hb_foreach.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.1/templates/src/include/util/hb_foreach.h.erb
3
3
 
4
4
  #ifndef HB_FOREACH_H
5
5
  #define HB_FOREACH_H
@@ -1,6 +1,6 @@
1
1
  #ifndef HERB_VERSION_H
2
2
  #define HERB_VERSION_H
3
3
 
4
- #define HERB_VERSION "0.9.0"
4
+ #define HERB_VERSION "0.9.1"
5
5
 
6
6
  #endif
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.0/templates/src/visitor.c.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.1/templates/src/visitor.c.erb
3
3
 
4
4
  #include <stdio.h>
5
5
 
@@ -421,6 +421,26 @@ void herb_visit_child_nodes(const AST_NODE_T *node, bool (*visitor)(const AST_NO
421
421
 
422
422
  } break;
423
423
 
424
+ case AST_RUBY_RENDER_LOCAL_NODE: {
425
+ const AST_RUBY_RENDER_LOCAL_NODE_T* ruby_render_local_node = ((const AST_RUBY_RENDER_LOCAL_NODE_T *) node);
426
+
427
+ if (ruby_render_local_node->value != NULL) {
428
+ herb_visit_node((AST_NODE_T *) ruby_render_local_node->value, visitor, data);
429
+ }
430
+
431
+ } break;
432
+
433
+ case AST_ERB_RENDER_NODE: {
434
+ const AST_ERB_RENDER_NODE_T* erb_render_node = ((const AST_ERB_RENDER_NODE_T *) node);
435
+
436
+ if (erb_render_node->locals != NULL) {
437
+ for (size_t index = 0; index < hb_array_size(erb_render_node->locals); index++) {
438
+ herb_visit_node(hb_array_get(erb_render_node->locals, index), visitor, data);
439
+ }
440
+ }
441
+
442
+ } break;
443
+
424
444
  case AST_ERB_IN_NODE: {
425
445
  const AST_ERB_IN_NODE_T* erb_in_node = ((const AST_ERB_IN_NODE_T *) node);
426
446
 
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.0/templates/javascript/packages/node/extension/nodes.cpp.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.1/templates/javascript/packages/node/extension/nodes.cpp.erb
3
3
 
4
4
  #include <node_api.h>
5
5
  #include "error_helpers.h"
@@ -1462,6 +1462,142 @@ napi_value erb_unless_nodeNodeFromCStruct(napi_env env, AST_ERB_UNLESS_NODE_T* e
1462
1462
  napi_set_named_property(env, result, "end_node", end_node);
1463
1463
 
1464
1464
 
1465
+ return result;
1466
+ }
1467
+ napi_value ruby_render_local_nodeNodeFromCStruct(napi_env env, AST_RUBY_RENDER_LOCAL_NODE_T* ruby_render_local_node) {
1468
+ if (!ruby_render_local_node) {
1469
+ napi_value null_value;
1470
+ napi_get_null(env, &null_value);
1471
+ return null_value;
1472
+ }
1473
+
1474
+ napi_value result;
1475
+ napi_create_object(env, &result);
1476
+
1477
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&ruby_render_local_node->base));
1478
+ napi_set_named_property(env, result, "type", type);
1479
+
1480
+ napi_value location = CreateLocation(env, ruby_render_local_node->base.location);
1481
+ napi_set_named_property(env, result, "location", location);
1482
+
1483
+ napi_value errors = ErrorsArrayFromCArray(env, ruby_render_local_node->base.errors);
1484
+ napi_set_named_property(env, result, "errors", errors);
1485
+
1486
+ napi_value name = CreateToken(env, ruby_render_local_node->name);
1487
+ napi_set_named_property(env, result, "name", name);
1488
+
1489
+ napi_value value = NodeFromCStruct(env, (AST_NODE_T*) ruby_render_local_node->value);
1490
+ napi_set_named_property(env, result, "value", value);
1491
+
1492
+
1493
+ return result;
1494
+ }
1495
+ napi_value erb_render_nodeNodeFromCStruct(napi_env env, AST_ERB_RENDER_NODE_T* erb_render_node) {
1496
+ if (!erb_render_node) {
1497
+ napi_value null_value;
1498
+ napi_get_null(env, &null_value);
1499
+ return null_value;
1500
+ }
1501
+
1502
+ napi_value result;
1503
+ napi_create_object(env, &result);
1504
+
1505
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_render_node->base));
1506
+ napi_set_named_property(env, result, "type", type);
1507
+
1508
+ napi_value location = CreateLocation(env, erb_render_node->base.location);
1509
+ napi_set_named_property(env, result, "location", location);
1510
+
1511
+ napi_value errors = ErrorsArrayFromCArray(env, erb_render_node->base.errors);
1512
+ napi_set_named_property(env, result, "errors", errors);
1513
+
1514
+ napi_value tag_opening = CreateToken(env, erb_render_node->tag_opening);
1515
+ napi_set_named_property(env, result, "tag_opening", tag_opening);
1516
+
1517
+ napi_value content = CreateToken(env, erb_render_node->content);
1518
+ napi_set_named_property(env, result, "content", content);
1519
+
1520
+ napi_value tag_closing = CreateToken(env, erb_render_node->tag_closing);
1521
+ napi_set_named_property(env, result, "tag_closing", tag_closing);
1522
+
1523
+ /* analyzed_ruby is internal parser state, not exposed to JavaScript */
1524
+ napi_value analyzed_ruby;
1525
+ napi_get_null(env, &analyzed_ruby);
1526
+ napi_set_named_property(env, result, "analyzed_ruby", analyzed_ruby);
1527
+
1528
+ napi_value prism_node;
1529
+ if (erb_render_node->prism_node.node != NULL && erb_render_node->prism_node.parser != NULL) {
1530
+ pm_buffer_t pm_buffer = { 0 };
1531
+ pm_serialize(erb_render_node->prism_node.parser, erb_render_node->prism_node.node, &pm_buffer);
1532
+
1533
+ if (pm_buffer.length > 0) {
1534
+ void* buffer_data;
1535
+ napi_create_buffer_copy(env, pm_buffer.length, pm_buffer.value, &buffer_data, &prism_node);
1536
+ } else {
1537
+ napi_get_null(env, &prism_node);
1538
+ }
1539
+
1540
+ pm_buffer_free(&pm_buffer);
1541
+ } else {
1542
+ napi_get_null(env, &prism_node);
1543
+ }
1544
+ napi_set_named_property(env, result, "prism_node", prism_node);
1545
+
1546
+ napi_value partial = CreateToken(env, erb_render_node->partial);
1547
+ napi_set_named_property(env, result, "partial", partial);
1548
+
1549
+ napi_value template_path = CreateToken(env, erb_render_node->template_path);
1550
+ napi_set_named_property(env, result, "template_path", template_path);
1551
+
1552
+ napi_value layout = CreateToken(env, erb_render_node->layout);
1553
+ napi_set_named_property(env, result, "layout", layout);
1554
+
1555
+ napi_value file = CreateToken(env, erb_render_node->file);
1556
+ napi_set_named_property(env, result, "file", file);
1557
+
1558
+ napi_value inline_template = CreateToken(env, erb_render_node->inline_template);
1559
+ napi_set_named_property(env, result, "inline_template", inline_template);
1560
+
1561
+ napi_value body = CreateToken(env, erb_render_node->body);
1562
+ napi_set_named_property(env, result, "body", body);
1563
+
1564
+ napi_value plain = CreateToken(env, erb_render_node->plain);
1565
+ napi_set_named_property(env, result, "plain", plain);
1566
+
1567
+ napi_value html = CreateToken(env, erb_render_node->html);
1568
+ napi_set_named_property(env, result, "html", html);
1569
+
1570
+ napi_value renderable = CreateToken(env, erb_render_node->renderable);
1571
+ napi_set_named_property(env, result, "renderable", renderable);
1572
+
1573
+ napi_value collection = CreateToken(env, erb_render_node->collection);
1574
+ napi_set_named_property(env, result, "collection", collection);
1575
+
1576
+ napi_value object = CreateToken(env, erb_render_node->object);
1577
+ napi_set_named_property(env, result, "object", object);
1578
+
1579
+ napi_value as_name = CreateToken(env, erb_render_node->as_name);
1580
+ napi_set_named_property(env, result, "as_name", as_name);
1581
+
1582
+ napi_value spacer_template = CreateToken(env, erb_render_node->spacer_template);
1583
+ napi_set_named_property(env, result, "spacer_template", spacer_template);
1584
+
1585
+ napi_value formats = CreateToken(env, erb_render_node->formats);
1586
+ napi_set_named_property(env, result, "formats", formats);
1587
+
1588
+ napi_value variants = CreateToken(env, erb_render_node->variants);
1589
+ napi_set_named_property(env, result, "variants", variants);
1590
+
1591
+ napi_value handlers = CreateToken(env, erb_render_node->handlers);
1592
+ napi_set_named_property(env, result, "handlers", handlers);
1593
+
1594
+ napi_value content_type = CreateToken(env, erb_render_node->content_type);
1595
+ napi_set_named_property(env, result, "content_type", content_type);
1596
+
1597
+ napi_value locals = NodesArrayFromCArray(env, erb_render_node->locals);
1598
+ napi_set_named_property(env, result, "locals", locals);
1599
+
1600
+
1465
1601
  return result;
1466
1602
  }
1467
1603
  napi_value erb_yield_nodeNodeFromCStruct(napi_env env, AST_ERB_YIELD_NODE_T* erb_yield_node) {
@@ -1673,6 +1809,12 @@ napi_value NodeFromCStruct(napi_env env, AST_NODE_T* node) {
1673
1809
  case AST_ERB_UNLESS_NODE:
1674
1810
  return erb_unless_nodeNodeFromCStruct(env, (AST_ERB_UNLESS_NODE_T*) node);
1675
1811
  break;
1812
+ case AST_RUBY_RENDER_LOCAL_NODE:
1813
+ return ruby_render_local_nodeNodeFromCStruct(env, (AST_RUBY_RENDER_LOCAL_NODE_T*) node);
1814
+ break;
1815
+ case AST_ERB_RENDER_NODE:
1816
+ return erb_render_nodeNodeFromCStruct(env, (AST_ERB_RENDER_NODE_T*) node);
1817
+ break;
1676
1818
  case AST_ERB_YIELD_NODE:
1677
1819
  return erb_yield_nodeNodeFromCStruct(env, (AST_ERB_YIELD_NODE_T*) node);
1678
1820
  break;
package/extension/nodes.h CHANGED
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.0/templates/javascript/packages/node/extension/nodes.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.9.1/templates/javascript/packages/node/extension/nodes.h.erb
3
3
 
4
4
  #ifndef HERB_EXTENSION_NODES_H
5
5
  #define HERB_EXTENSION_NODES_H
@@ -49,6 +49,8 @@ napi_value erb_rescue_nodeNodeFromCStruct(napi_env env, AST_ERB_RESCUE_NODE_T* e
49
49
  napi_value erb_ensure_nodeNodeFromCStruct(napi_env env, AST_ERB_ENSURE_NODE_T* erb_ensure_node);
50
50
  napi_value erb_begin_nodeNodeFromCStruct(napi_env env, AST_ERB_BEGIN_NODE_T* erb_begin_node);
51
51
  napi_value erb_unless_nodeNodeFromCStruct(napi_env env, AST_ERB_UNLESS_NODE_T* erb_unless_node);
52
+ napi_value ruby_render_local_nodeNodeFromCStruct(napi_env env, AST_RUBY_RENDER_LOCAL_NODE_T* ruby_render_local_node);
53
+ napi_value erb_render_nodeNodeFromCStruct(napi_env env, AST_ERB_RENDER_NODE_T* erb_render_node);
52
54
  napi_value erb_yield_nodeNodeFromCStruct(napi_env env, AST_ERB_YIELD_NODE_T* erb_yield_node);
53
55
  napi_value erb_in_nodeNodeFromCStruct(napi_env env, AST_ERB_IN_NODE_T* erb_in_node);
54
56
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herb-tools/node",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "Native Node.js addon for HTML-aware ERB parsing using Herb.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -52,7 +52,7 @@
52
52
  "host": "https://github.com/marcoroth/herb/releases/download/"
53
53
  },
54
54
  "dependencies": {
55
- "@herb-tools/core": "0.9.0",
55
+ "@herb-tools/core": "0.9.1",
56
56
  "@mapbox/node-pre-gyp": "^2.0.3",
57
57
  "node-addon-api": "^8.6.0",
58
58
  "node-pre-gyp-github": "^2.0.0"
package/CHANGELOG.md DELETED
@@ -1,19 +0,0 @@
1
- ## 0.3.1 (2025-06-23)
2
-
3
- This was a version bump only for @herb-tools/node to align it with other projects, there were no code changes.
4
-
5
- ## 0.3.0 (2025-06-21)
6
-
7
- This was a version bump only for @herb-tools/node to align it with other projects, there were no code changes.
8
-
9
- ## 0.2.0 (2025-06-11)
10
-
11
- This was a version bump only for @herb-tools/node to align it with other projects, there were no code changes.
12
-
13
- ## 0.1.1 (2025-04-20)
14
-
15
- This was a version bump only for @herb-tools/node to align it with other projects, there were no code changes.
16
-
17
- ## 0.1.0 (2025-04-15)
18
-
19
- This was a version bump only for @herb-tools/node to align it with other projects, there were no code changes.