@herb-tools/node 0.4.3 → 0.5.0

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.
@@ -6,7 +6,7 @@ import { createRequire } from 'module';
6
6
  import { fileURLToPath } from 'url';
7
7
 
8
8
  var name = "@herb-tools/node";
9
- var version = "0.4.3";
9
+ var version = "0.5.0";
10
10
  var packageJSON = {
11
11
  name: name,
12
12
  version: version};
@@ -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-7/templates/javascript/packages/node/extension/error_helpers.cpp.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/javascript/packages/node/extension/error_helpers.cpp.erb
3
3
 
4
4
  #include <node_api.h>
5
5
  #include "error_helpers.h"
@@ -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-7/templates/javascript/packages/node/extension/error_helpers.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/javascript/packages/node/extension/error_helpers.h.erb
3
3
 
4
4
  #ifndef HERB_EXTENSION_ERRORS_H
5
5
  #define HERB_EXTENSION_ERRORS_H
@@ -50,7 +50,8 @@ static bool analyze_erb_content(const AST_NODE_T* node, void* data) {
50
50
  AST_ERB_CONTENT_NODE_T* erb_content_node = (AST_ERB_CONTENT_NODE_T*) node;
51
51
 
52
52
  const char* opening = erb_content_node->tag_opening->value;
53
- if (strcmp(opening, "<%%") != 0 && strcmp(opening, "<%%=") != 0) {
53
+
54
+ if (strcmp(opening, "<%%") != 0 && strcmp(opening, "<%%=") != 0 && strcmp(opening, "<%#") != 0) {
54
55
  analyzed_ruby_T* analyzed = herb_analyze_ruby(erb_content_node->content->value);
55
56
 
56
57
  if (false) { pretty_print_analyed_ruby(analyzed, erb_content_node->content->value); }
@@ -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-7/templates/src/ast_nodes.c.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/ast_nodes.c.erb
3
3
 
4
4
  #include <stdio.h>
5
5
  #include <stdbool.h>
@@ -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-7/templates/src/include/ast_nodes.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/include/ast_nodes.h.erb
3
3
 
4
4
  #ifndef HERB_AST_NODES_H
5
5
  #define HERB_AST_NODES_H
@@ -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-7/templates/src/ast_pretty_print.c.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/ast_pretty_print.c.erb
3
3
 
4
4
  #include "include/ast_node.h"
5
5
  #include "include/ast_nodes.h"
@@ -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-7/templates/src/include/ast_pretty_print.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/include/ast_pretty_print.h.erb
3
3
 
4
4
  #ifndef HERB_AST_PRETTY_PRINT_H
5
5
  #define HERB_AST_PRETTY_PRINT_H
@@ -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-7/templates/src/errors.c.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/errors.c.erb
3
3
 
4
4
  #include "include/array.h"
5
5
  #include "include/errors.h"
@@ -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-7/templates/src/include/errors.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/include/errors.h.erb
3
3
 
4
4
  #ifndef HERB_ERRORS_H
5
5
  #define HERB_ERRORS_H
@@ -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-7/templates/src/include/ast_nodes.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/include/ast_nodes.h.erb
3
3
 
4
4
  #ifndef HERB_AST_NODES_H
5
5
  #define HERB_AST_NODES_H
@@ -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-7/templates/src/include/ast_pretty_print.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/include/ast_pretty_print.h.erb
3
3
 
4
4
  #ifndef HERB_AST_PRETTY_PRINT_H
5
5
  #define HERB_AST_PRETTY_PRINT_H
@@ -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-7/templates/src/include/errors.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/include/errors.h.erb
3
3
 
4
4
  #ifndef HERB_ERRORS_H
5
5
  #define HERB_ERRORS_H
@@ -5,10 +5,22 @@
5
5
  #include "ast_node.h"
6
6
  #include "lexer.h"
7
7
 
8
+ typedef enum {
9
+ FOREIGN_CONTENT_UNKNOWN = 0,
10
+ FOREIGN_CONTENT_SCRIPT,
11
+ FOREIGN_CONTENT_STYLE,
12
+ // FOREIGN_CONTENT_RUBY,
13
+ // FOREIGN_CONTENT_TEMPLATE
14
+ } foreign_content_type_T;
15
+
16
+ typedef enum { PARSER_STATE_DATA, PARSER_STATE_FOREIGN_CONTENT } parser_state_T;
17
+
8
18
  typedef struct PARSER_STRUCT {
9
19
  lexer_T* lexer;
10
20
  token_T* current_token;
11
21
  array_T* open_tags_stack;
22
+ parser_state_T state;
23
+ foreign_content_type_T foreign_content_type;
12
24
  } parser_T;
13
25
 
14
26
  parser_T* parser_init(lexer_T* lexer);
@@ -24,6 +24,15 @@ void parser_append_literal_node_from_buffer(
24
24
 
25
25
  bool parser_in_svg_context(const parser_T* parser);
26
26
 
27
+ foreign_content_type_T parser_get_foreign_content_type(const char* tag_name);
28
+ bool parser_is_foreign_content_tag(const char* tag_name);
29
+ const char* parser_get_foreign_content_closing_tag(foreign_content_type_T type);
30
+
31
+ void parser_enter_foreign_content(parser_T* parser, foreign_content_type_T type);
32
+ void parser_exit_foreign_content(parser_T* parser);
33
+
34
+ bool parser_is_expected_closing_tag_name(const char* tag_name, foreign_content_type_T expected_type);
35
+
27
36
  token_T* parser_advance(parser_T* parser);
28
37
  token_T* parser_consume_if_present(parser_T* parser, token_type_T type);
29
38
  token_T* parser_consume_expected(parser_T* parser, token_type_T type, array_T* array);
@@ -28,6 +28,7 @@ typedef enum {
28
28
  TOKEN_SLASH, // /
29
29
  TOKEN_EQUALS, // =
30
30
  TOKEN_QUOTE, // ", '
31
+ TOKEN_BACKTICK, // `
31
32
  TOKEN_DASH, // -
32
33
  TOKEN_UNDERSCORE, // _
33
34
  TOKEN_EXCLAMATION, // !
@@ -1,6 +1,6 @@
1
1
  #ifndef HERB_VERSION_H
2
2
  #define HERB_VERSION_H
3
3
 
4
- #define HERB_VERSION "0.4.3"
4
+ #define HERB_VERSION "0.5.0"
5
5
 
6
6
  #endif
@@ -325,6 +325,7 @@ token_T* lexer_next_token(lexer_T* lexer) {
325
325
 
326
326
  case '"':
327
327
  case '\'': return lexer_advance_current(lexer, TOKEN_QUOTE);
328
+ case '`': return lexer_advance_current(lexer, TOKEN_BACKTICK);
328
329
 
329
330
  default: {
330
331
  if (isalnum(lexer->current_character)) { return lexer_parse_identifier(lexer); }
@@ -17,6 +17,7 @@
17
17
  #include <strings.h>
18
18
 
19
19
  static void parser_parse_in_data_state(parser_T* parser, array_T* children, array_T* errors);
20
+ static void parser_parse_foreign_content(parser_T* parser, array_T* children, array_T* errors);
20
21
  static AST_ERB_CONTENT_NODE_T* parser_parse_erb_tag(parser_T* parser);
21
22
 
22
23
  size_t parser_sizeof(void) {
@@ -29,6 +30,8 @@ parser_T* parser_init(lexer_T* lexer) {
29
30
  parser->lexer = lexer;
30
31
  parser->current_token = lexer_next_token(lexer);
31
32
  parser->open_tags_stack = array_init(16);
33
+ parser->state = PARSER_STATE_DATA;
34
+ parser->foreign_content_type = FOREIGN_CONTENT_UNKNOWN;
32
35
 
33
36
  return parser;
34
37
  }
@@ -383,6 +386,30 @@ static AST_HTML_ATTRIBUTE_VALUE_NODE_T* parser_parse_html_attribute_value(parser
383
386
  // <div id="home">
384
387
  if (token_is(parser, TOKEN_QUOTE)) { return parser_parse_quoted_html_attribute_value(parser, children, errors); }
385
388
 
389
+ if (token_is(parser, TOKEN_BACKTICK)) {
390
+ token_T* token = parser_advance(parser);
391
+ position_T* start = position_copy(token->location->start);
392
+ position_T* end = position_copy(token->location->end);
393
+
394
+ append_unexpected_error(
395
+ "Invalid quote character for HTML attribute",
396
+ "single quote (') or double quote (\")",
397
+ "backtick (`)",
398
+ start,
399
+ end,
400
+ errors
401
+ );
402
+
403
+ AST_HTML_ATTRIBUTE_VALUE_NODE_T* value =
404
+ ast_html_attribute_value_node_init(NULL, children, NULL, false, start, end, errors);
405
+
406
+ position_free(start);
407
+ position_free(end);
408
+ token_free(token);
409
+
410
+ return value;
411
+ }
412
+
386
413
  token_T* token = parser_advance(parser);
387
414
 
388
415
  append_unexpected_error(
@@ -412,9 +439,19 @@ static AST_HTML_ATTRIBUTE_VALUE_NODE_T* parser_parse_html_attribute_value(parser
412
439
  static AST_HTML_ATTRIBUTE_NODE_T* parser_parse_html_attribute(parser_T* parser) {
413
440
  AST_HTML_ATTRIBUTE_NAME_NODE_T* attribute_name = parser_parse_html_attribute_name(parser);
414
441
 
442
+ while (token_is_any_of(parser, TOKEN_WHITESPACE, TOKEN_NEWLINE)) {
443
+ token_T* whitespace = parser_advance(parser);
444
+ token_free(whitespace);
445
+ }
446
+
415
447
  token_T* equals = parser_consume_if_present(parser, TOKEN_EQUALS);
416
448
 
417
449
  if (equals != NULL) {
450
+ while (token_is_any_of(parser, TOKEN_WHITESPACE, TOKEN_NEWLINE)) {
451
+ token_T* whitespace = parser_advance(parser);
452
+ token_free(whitespace);
453
+ }
454
+
418
455
  AST_HTML_ATTRIBUTE_VALUE_NODE_T* attribute_value = parser_parse_html_attribute_value(parser);
419
456
 
420
457
  AST_HTML_ATTRIBUTE_NODE_T* attribute_node = ast_html_attribute_node_init(
@@ -596,7 +633,13 @@ static AST_HTML_ELEMENT_NODE_T* parser_parse_html_regular_element(
596
633
 
597
634
  parser_push_open_tag(parser, open_tag->tag_name);
598
635
 
599
- parser_parse_in_data_state(parser, body, errors);
636
+ if (open_tag->tag_name->value && parser_is_foreign_content_tag(open_tag->tag_name->value)) {
637
+ foreign_content_type_T content_type = parser_get_foreign_content_type(open_tag->tag_name->value);
638
+ parser_enter_foreign_content(parser, content_type);
639
+ parser_parse_foreign_content(parser, body, errors);
640
+ } else {
641
+ parser_parse_in_data_state(parser, body, errors);
642
+ }
600
643
 
601
644
  if (!token_is(parser, TOKEN_HTML_TAG_START_CLOSE)) { return parser_handle_missing_close_tag(open_tag, body, errors); }
602
645
 
@@ -687,6 +730,83 @@ static AST_ERB_CONTENT_NODE_T* parser_parse_erb_tag(parser_T* parser) {
687
730
  return erb_node;
688
731
  }
689
732
 
733
+ static void parser_parse_foreign_content(parser_T* parser, array_T* children, array_T* errors) {
734
+ buffer_T content = buffer_new();
735
+ position_T* start = position_copy(parser->current_token->location->start);
736
+ const char* expected_closing_tag = parser_get_foreign_content_closing_tag(parser->foreign_content_type);
737
+
738
+ if (expected_closing_tag == NULL) {
739
+ parser_exit_foreign_content(parser);
740
+ position_free(start);
741
+ buffer_free(&content);
742
+
743
+ return;
744
+ }
745
+
746
+ while (!token_is(parser, TOKEN_EOF)) {
747
+ if (token_is(parser, TOKEN_ERB_START)) {
748
+ parser_append_literal_node_from_buffer(parser, &content, children, start);
749
+
750
+ AST_ERB_CONTENT_NODE_T* erb_node = parser_parse_erb_tag(parser);
751
+ array_append(children, erb_node);
752
+
753
+ position_free(start);
754
+ start = position_copy(parser->current_token->location->start);
755
+
756
+ continue;
757
+ }
758
+
759
+ if (token_is(parser, TOKEN_HTML_TAG_START_CLOSE)) {
760
+ size_t saved_position = parser->lexer->current_position;
761
+ size_t saved_line = parser->lexer->current_line;
762
+ size_t saved_column = parser->lexer->current_column;
763
+ size_t saved_previous_position = parser->lexer->previous_position;
764
+ size_t saved_previous_line = parser->lexer->previous_line;
765
+ size_t saved_previous_column = parser->lexer->previous_column;
766
+
767
+ char saved_char = parser->lexer->current_character;
768
+ lexer_state_T saved_state = parser->lexer->state;
769
+
770
+ token_T* next_token = lexer_next_token(parser->lexer);
771
+ bool is_potential_match = false;
772
+
773
+ if (next_token && next_token->type == TOKEN_IDENTIFIER && next_token->value) {
774
+ is_potential_match = parser_is_expected_closing_tag_name(next_token->value, parser->foreign_content_type);
775
+ }
776
+
777
+ parser->lexer->current_position = saved_position;
778
+ parser->lexer->current_line = saved_line;
779
+ parser->lexer->current_column = saved_column;
780
+ parser->lexer->previous_position = saved_previous_position;
781
+ parser->lexer->previous_line = saved_previous_line;
782
+ parser->lexer->previous_column = saved_previous_column;
783
+ parser->lexer->current_character = saved_char;
784
+ parser->lexer->state = saved_state;
785
+
786
+ if (next_token) { token_free(next_token); }
787
+
788
+ if (is_potential_match) {
789
+ parser_append_literal_node_from_buffer(parser, &content, children, start);
790
+ parser_exit_foreign_content(parser);
791
+
792
+ position_free(start);
793
+ buffer_free(&content);
794
+
795
+ return;
796
+ }
797
+ }
798
+
799
+ token_T* token = parser_advance(parser);
800
+ buffer_append(&content, token->value);
801
+ token_free(token);
802
+ }
803
+
804
+ parser_append_literal_node_from_buffer(parser, &content, children, start);
805
+ parser_exit_foreign_content(parser);
806
+ position_free(start);
807
+ buffer_free(&content);
808
+ }
809
+
690
810
  static void parser_parse_in_data_state(parser_T* parser, array_T* children, array_T* errors) {
691
811
  while (token_is_none_of(parser, TOKEN_HTML_TAG_START_CLOSE, TOKEN_EOF)) {
692
812
  if (token_is(parser, TOKEN_ERB_START)) {
@@ -5,10 +5,22 @@
5
5
  #include "ast_node.h"
6
6
  #include "lexer.h"
7
7
 
8
+ typedef enum {
9
+ FOREIGN_CONTENT_UNKNOWN = 0,
10
+ FOREIGN_CONTENT_SCRIPT,
11
+ FOREIGN_CONTENT_STYLE,
12
+ // FOREIGN_CONTENT_RUBY,
13
+ // FOREIGN_CONTENT_TEMPLATE
14
+ } foreign_content_type_T;
15
+
16
+ typedef enum { PARSER_STATE_DATA, PARSER_STATE_FOREIGN_CONTENT } parser_state_T;
17
+
8
18
  typedef struct PARSER_STRUCT {
9
19
  lexer_T* lexer;
10
20
  token_T* current_token;
11
21
  array_T* open_tags_stack;
22
+ parser_state_T state;
23
+ foreign_content_type_T foreign_content_type;
12
24
  } parser_T;
13
25
 
14
26
  parser_T* parser_init(lexer_T* lexer);
@@ -8,6 +8,7 @@
8
8
  #include "include/lexer.h"
9
9
  #include "include/parser.h"
10
10
  #include "include/token.h"
11
+ #include "include/token_matchers.h"
11
12
 
12
13
  #include <stdio.h>
13
14
  #include <strings.h>
@@ -54,6 +55,43 @@ bool parser_in_svg_context(const parser_T* parser) {
54
55
  return false;
55
56
  }
56
57
 
58
+ // ===== Foreign Content Handling =====
59
+
60
+ foreign_content_type_T parser_get_foreign_content_type(const char* tag_name) {
61
+ if (tag_name == NULL) { return FOREIGN_CONTENT_UNKNOWN; }
62
+
63
+ if (strcasecmp(tag_name, "script") == 0) { return FOREIGN_CONTENT_SCRIPT; }
64
+ if (strcasecmp(tag_name, "style") == 0) { return FOREIGN_CONTENT_STYLE; }
65
+
66
+ return FOREIGN_CONTENT_UNKNOWN;
67
+ }
68
+
69
+ bool parser_is_foreign_content_tag(const char* tag_name) {
70
+ return parser_get_foreign_content_type(tag_name) != FOREIGN_CONTENT_UNKNOWN;
71
+ }
72
+
73
+ const char* parser_get_foreign_content_closing_tag(foreign_content_type_T type) {
74
+ switch (type) {
75
+ case FOREIGN_CONTENT_SCRIPT: return "script";
76
+ case FOREIGN_CONTENT_STYLE: return "style";
77
+ default: return NULL;
78
+ }
79
+ }
80
+
81
+ void parser_enter_foreign_content(parser_T* parser, foreign_content_type_T type) {
82
+ if (parser == NULL) { return; }
83
+
84
+ parser->state = PARSER_STATE_FOREIGN_CONTENT;
85
+ parser->foreign_content_type = type;
86
+ }
87
+
88
+ void parser_exit_foreign_content(parser_T* parser) {
89
+ if (parser == NULL) { return; }
90
+
91
+ parser->state = PARSER_STATE_DATA;
92
+ parser->foreign_content_type = FOREIGN_CONTENT_UNKNOWN;
93
+ }
94
+
57
95
  void parser_append_unexpected_error(parser_T* parser, const char* description, const char* expected, array_T* errors) {
58
96
  token_T* token = parser_advance(parser);
59
97
 
@@ -166,3 +204,11 @@ void parser_handle_mismatched_tags(
166
204
  );
167
205
  }
168
206
  }
207
+
208
+ bool parser_is_expected_closing_tag_name(const char* tag_name, foreign_content_type_T expected_type) {
209
+ const char* expected_tag_name = parser_get_foreign_content_closing_tag(expected_type);
210
+
211
+ if (expected_tag_name == NULL || tag_name == NULL) { return false; }
212
+
213
+ return strcmp(tag_name, expected_tag_name) == 0;
214
+ }
@@ -24,6 +24,15 @@ void parser_append_literal_node_from_buffer(
24
24
 
25
25
  bool parser_in_svg_context(const parser_T* parser);
26
26
 
27
+ foreign_content_type_T parser_get_foreign_content_type(const char* tag_name);
28
+ bool parser_is_foreign_content_tag(const char* tag_name);
29
+ const char* parser_get_foreign_content_closing_tag(foreign_content_type_T type);
30
+
31
+ void parser_enter_foreign_content(parser_T* parser, foreign_content_type_T type);
32
+ void parser_exit_foreign_content(parser_T* parser);
33
+
34
+ bool parser_is_expected_closing_tag_name(const char* tag_name, foreign_content_type_T expected_type);
35
+
27
36
  token_T* parser_advance(parser_T* parser);
28
37
  token_T* parser_consume_if_present(parser_T* parser, token_type_T type);
29
38
  token_T* parser_consume_expected(parser_T* parser, token_type_T type, array_T* array);
@@ -55,6 +55,7 @@ const char* token_type_to_string(const token_type_T type) {
55
55
  case TOKEN_HTML_COMMENT_END: return "TOKEN_HTML_COMMENT_END";
56
56
  case TOKEN_EQUALS: return "TOKEN_EQUALS";
57
57
  case TOKEN_QUOTE: return "TOKEN_QUOTE";
58
+ case TOKEN_BACKTICK: return "TOKEN_BACKTICK";
58
59
  case TOKEN_DASH: return "TOKEN_DASH";
59
60
  case TOKEN_UNDERSCORE: return "TOKEN_UNDERSCORE";
60
61
  case TOKEN_EXCLAMATION: return "TOKEN_EXCLAMATION";
@@ -28,6 +28,7 @@ typedef enum {
28
28
  TOKEN_SLASH, // /
29
29
  TOKEN_EQUALS, // =
30
30
  TOKEN_QUOTE, // ", '
31
+ TOKEN_BACKTICK, // `
31
32
  TOKEN_DASH, // -
32
33
  TOKEN_UNDERSCORE, // _
33
34
  TOKEN_EXCLAMATION, // !
@@ -1,6 +1,6 @@
1
1
  #ifndef HERB_VERSION_H
2
2
  #define HERB_VERSION_H
3
3
 
4
- #define HERB_VERSION "0.4.3"
4
+ #define HERB_VERSION "0.5.0"
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-7/templates/src/visitor.c.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/src/visitor.c.erb
3
3
 
4
4
  #include <stdio.h>
5
5
 
@@ -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-7/templates/javascript/packages/node/extension/nodes.cpp.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/javascript/packages/node/extension/nodes.cpp.erb
3
3
 
4
4
  #include <node_api.h>
5
5
  #include "error_helpers.h"
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-7/templates/javascript/packages/node/extension/nodes.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.5.0/templates/javascript/packages/node/extension/nodes.h.erb
3
3
 
4
4
  #ifndef HERB_EXTENSION_NODES_H
5
5
  #define HERB_EXTENSION_NODES_H
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herb-tools/node",
3
- "version": "0.4.3",
3
+ "version": "0.5.0",
4
4
  "description": "Native Node.js addon for HTML-aware ERB parsing using Herb.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -48,7 +48,7 @@
48
48
  "host": "https://github.com/marcoroth/herb/releases/download/"
49
49
  },
50
50
  "dependencies": {
51
- "@herb-tools/core": "0.4.3",
51
+ "@herb-tools/core": "0.5.0",
52
52
  "@mapbox/node-pre-gyp": "^2.0.0",
53
53
  "node-addon-api": "^5.1.0",
54
54
  "node-pre-gyp-github": "^2.0.0"