@herb-tools/node 0.8.10 → 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.
- package/binding.gyp +27 -8
- package/dist/herb-node.cjs +41 -12
- package/dist/herb-node.cjs.map +1 -1
- package/dist/herb-node.esm.js +8 -1
- package/dist/herb-node.esm.js.map +1 -1
- package/dist/types/node-backend.d.ts +3 -1
- package/extension/error_helpers.cpp +598 -73
- package/extension/error_helpers.h +20 -3
- package/extension/extension_helpers.cpp +40 -35
- package/extension/extension_helpers.h +2 -2
- package/extension/herb.cpp +194 -64
- package/extension/libherb/analyze/action_view/attribute_extraction_helpers.c +303 -0
- package/extension/libherb/analyze/action_view/attribute_extraction_helpers.h +36 -0
- package/extension/libherb/analyze/action_view/content_tag.c +78 -0
- package/extension/libherb/analyze/action_view/link_to.c +167 -0
- package/extension/libherb/analyze/action_view/registry.c +83 -0
- package/extension/libherb/analyze/action_view/tag.c +70 -0
- package/extension/libherb/analyze/action_view/tag_helper_handler.h +43 -0
- package/extension/libherb/analyze/action_view/tag_helper_node_builders.c +305 -0
- package/extension/libherb/analyze/action_view/tag_helper_node_builders.h +70 -0
- package/extension/libherb/analyze/action_view/tag_helpers.c +815 -0
- package/extension/libherb/analyze/action_view/tag_helpers.h +38 -0
- package/extension/libherb/analyze/action_view/turbo_frame_tag.c +88 -0
- package/extension/libherb/analyze/analyze.c +885 -0
- package/extension/libherb/{include → analyze}/analyze.h +14 -4
- package/extension/libherb/{analyzed_ruby.c → analyze/analyzed_ruby.c} +13 -11
- package/extension/libherb/{analyzed_ruby.h → analyze/analyzed_ruby.h} +3 -3
- package/extension/libherb/analyze/builders.c +343 -0
- package/extension/libherb/analyze/builders.h +27 -0
- package/extension/libherb/analyze/conditional_elements.c +594 -0
- package/extension/libherb/analyze/conditional_elements.h +9 -0
- package/extension/libherb/analyze/conditional_open_tags.c +640 -0
- package/extension/libherb/analyze/conditional_open_tags.h +9 -0
- package/extension/libherb/analyze/control_type.c +250 -0
- package/extension/libherb/analyze/control_type.h +14 -0
- package/extension/libherb/{analyze_helpers.c → analyze/helpers.c} +48 -23
- package/extension/libherb/{analyze_helpers.h → analyze/helpers.h} +4 -2
- package/extension/libherb/analyze/invalid_structures.c +193 -0
- package/extension/libherb/analyze/invalid_structures.h +11 -0
- package/extension/libherb/{analyze_missing_end.c → analyze/missing_end.c} +33 -22
- package/extension/libherb/analyze/parse_errors.c +84 -0
- package/extension/libherb/analyze/prism_annotate.c +399 -0
- package/extension/libherb/analyze/prism_annotate.h +16 -0
- package/extension/libherb/analyze/render_nodes.c +761 -0
- package/extension/libherb/analyze/render_nodes.h +11 -0
- package/extension/libherb/{analyze_transform.c → analyze/transform.c} +24 -3
- package/extension/libherb/ast_node.c +17 -7
- package/extension/libherb/ast_node.h +11 -5
- package/extension/libherb/ast_nodes.c +760 -388
- package/extension/libherb/ast_nodes.h +155 -39
- package/extension/libherb/ast_pretty_print.c +265 -7
- package/extension/libherb/ast_pretty_print.h +6 -1
- package/extension/libherb/element_source.h +3 -8
- package/extension/libherb/errors.c +1455 -520
- package/extension/libherb/errors.h +207 -56
- package/extension/libherb/extract.c +145 -49
- package/extension/libherb/extract.h +21 -5
- package/extension/libherb/herb.c +52 -34
- package/extension/libherb/herb.h +18 -6
- package/extension/libherb/herb_prism_node.h +13 -0
- package/extension/libherb/html_util.c +241 -12
- package/extension/libherb/html_util.h +7 -2
- package/extension/libherb/include/analyze/action_view/attribute_extraction_helpers.h +36 -0
- package/extension/libherb/include/analyze/action_view/tag_helper_handler.h +43 -0
- package/extension/libherb/include/analyze/action_view/tag_helper_node_builders.h +70 -0
- package/extension/libherb/include/analyze/action_view/tag_helpers.h +38 -0
- package/extension/libherb/{analyze.h → include/analyze/analyze.h} +14 -4
- package/extension/libherb/include/{analyzed_ruby.h → analyze/analyzed_ruby.h} +3 -3
- package/extension/libherb/include/analyze/builders.h +27 -0
- package/extension/libherb/include/analyze/conditional_elements.h +9 -0
- package/extension/libherb/include/analyze/conditional_open_tags.h +9 -0
- package/extension/libherb/include/analyze/control_type.h +14 -0
- package/extension/libherb/include/{analyze_helpers.h → analyze/helpers.h} +4 -2
- package/extension/libherb/include/analyze/invalid_structures.h +11 -0
- package/extension/libherb/include/analyze/prism_annotate.h +16 -0
- package/extension/libherb/include/analyze/render_nodes.h +11 -0
- package/extension/libherb/include/ast_node.h +11 -5
- package/extension/libherb/include/ast_nodes.h +155 -39
- package/extension/libherb/include/ast_pretty_print.h +6 -1
- package/extension/libherb/include/element_source.h +3 -8
- package/extension/libherb/include/errors.h +207 -56
- package/extension/libherb/include/extract.h +21 -5
- package/extension/libherb/include/herb.h +18 -6
- package/extension/libherb/include/herb_prism_node.h +13 -0
- package/extension/libherb/include/html_util.h +7 -2
- package/extension/libherb/include/io.h +3 -1
- package/extension/libherb/include/lex_helpers.h +29 -0
- package/extension/libherb/include/lexer.h +1 -1
- package/extension/libherb/include/lexer_peek_helpers.h +87 -13
- package/extension/libherb/include/lexer_struct.h +2 -0
- package/extension/libherb/include/location.h +2 -1
- package/extension/libherb/include/parser.h +28 -2
- package/extension/libherb/include/parser_helpers.h +19 -3
- package/extension/libherb/include/pretty_print.h +10 -5
- package/extension/libherb/include/prism_context.h +45 -0
- package/extension/libherb/include/prism_helpers.h +10 -7
- package/extension/libherb/include/prism_serialized.h +12 -0
- package/extension/libherb/include/token.h +16 -4
- package/extension/libherb/include/token_struct.h +10 -3
- package/extension/libherb/include/utf8.h +2 -1
- package/extension/libherb/include/util/hb_allocator.h +78 -0
- package/extension/libherb/include/util/hb_arena.h +6 -1
- package/extension/libherb/include/util/hb_arena_debug.h +12 -1
- package/extension/libherb/include/util/hb_array.h +7 -3
- package/extension/libherb/include/util/hb_buffer.h +6 -4
- package/extension/libherb/include/util/hb_foreach.h +79 -0
- package/extension/libherb/include/util/hb_narray.h +8 -4
- package/extension/libherb/include/util/hb_string.h +56 -9
- package/extension/libherb/include/util.h +6 -3
- package/extension/libherb/include/version.h +1 -1
- package/extension/libherb/io.c +3 -2
- package/extension/libherb/io.h +3 -1
- package/extension/libherb/lex_helpers.h +29 -0
- package/extension/libherb/lexer.c +42 -30
- package/extension/libherb/lexer.h +1 -1
- package/extension/libherb/lexer_peek_helpers.c +12 -74
- package/extension/libherb/lexer_peek_helpers.h +87 -13
- package/extension/libherb/lexer_struct.h +2 -0
- package/extension/libherb/location.c +2 -2
- package/extension/libherb/location.h +2 -1
- package/extension/libherb/main.c +53 -28
- package/extension/libherb/parser.c +784 -247
- package/extension/libherb/parser.h +28 -2
- package/extension/libherb/parser_helpers.c +110 -23
- package/extension/libherb/parser_helpers.h +19 -3
- package/extension/libherb/parser_match_tags.c +130 -49
- package/extension/libherb/pretty_print.c +29 -24
- package/extension/libherb/pretty_print.h +10 -5
- package/extension/libherb/prism_context.h +45 -0
- package/extension/libherb/prism_helpers.c +30 -27
- package/extension/libherb/prism_helpers.h +10 -7
- package/extension/libherb/prism_serialized.h +12 -0
- package/extension/libherb/ruby_parser.c +2 -0
- package/extension/libherb/token.c +151 -66
- package/extension/libherb/token.h +16 -4
- package/extension/libherb/token_matchers.c +0 -1
- package/extension/libherb/token_struct.h +10 -3
- package/extension/libherb/utf8.c +7 -6
- package/extension/libherb/utf8.h +2 -1
- package/extension/libherb/util/hb_allocator.c +341 -0
- package/extension/libherb/util/hb_allocator.h +78 -0
- package/extension/libherb/util/hb_arena.c +81 -56
- package/extension/libherb/util/hb_arena.h +6 -1
- package/extension/libherb/util/hb_arena_debug.c +32 -17
- package/extension/libherb/util/hb_arena_debug.h +12 -1
- package/extension/libherb/util/hb_array.c +30 -15
- package/extension/libherb/util/hb_array.h +7 -3
- package/extension/libherb/util/hb_buffer.c +17 -21
- package/extension/libherb/util/hb_buffer.h +6 -4
- package/extension/libherb/util/hb_foreach.h +79 -0
- package/extension/libherb/util/hb_narray.c +22 -7
- package/extension/libherb/util/hb_narray.h +8 -4
- package/extension/libherb/util/hb_string.c +49 -35
- package/extension/libherb/util/hb_string.h +56 -9
- package/extension/libherb/util.c +21 -11
- package/extension/libherb/util.h +6 -3
- package/extension/libherb/version.h +1 -1
- package/extension/libherb/visitor.c +68 -1
- package/extension/nodes.cpp +593 -6
- package/extension/nodes.h +10 -1
- package/package.json +12 -8
- package/src/node-backend.ts +11 -1
- package/dist/types/index-cjs.d.cts +0 -1
- package/extension/libherb/analyze.c +0 -1608
- package/extension/libherb/element_source.c +0 -12
- package/extension/libherb/include/util/hb_system.h +0 -9
- package/extension/libherb/util/hb_system.c +0 -30
- package/extension/libherb/util/hb_system.h +0 -9
- package/src/index-cjs.cts +0 -22
- /package/dist/types/{index-esm.d.mts → index.d.ts} +0 -0
- /package/src/{index-esm.mts → index.ts} +0 -0
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.
|
|
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
|
|
@@ -16,11 +16,18 @@ napi_value NodesArrayFromCArray(napi_env env, hb_array_T* array);
|
|
|
16
16
|
napi_value document_nodeNodeFromCStruct(napi_env env, AST_DOCUMENT_NODE_T* document_node);
|
|
17
17
|
napi_value literal_nodeNodeFromCStruct(napi_env env, AST_LITERAL_NODE_T* literal_node);
|
|
18
18
|
napi_value html_open_tag_nodeNodeFromCStruct(napi_env env, AST_HTML_OPEN_TAG_NODE_T* html_open_tag_node);
|
|
19
|
+
napi_value html_conditional_open_tag_nodeNodeFromCStruct(napi_env env, AST_HTML_CONDITIONAL_OPEN_TAG_NODE_T* html_conditional_open_tag_node);
|
|
19
20
|
napi_value html_close_tag_nodeNodeFromCStruct(napi_env env, AST_HTML_CLOSE_TAG_NODE_T* html_close_tag_node);
|
|
21
|
+
napi_value html_omitted_close_tag_nodeNodeFromCStruct(napi_env env, AST_HTML_OMITTED_CLOSE_TAG_NODE_T* html_omitted_close_tag_node);
|
|
22
|
+
napi_value html_virtual_close_tag_nodeNodeFromCStruct(napi_env env, AST_HTML_VIRTUAL_CLOSE_TAG_NODE_T* html_virtual_close_tag_node);
|
|
20
23
|
napi_value html_element_nodeNodeFromCStruct(napi_env env, AST_HTML_ELEMENT_NODE_T* html_element_node);
|
|
24
|
+
napi_value html_conditional_element_nodeNodeFromCStruct(napi_env env, AST_HTML_CONDITIONAL_ELEMENT_NODE_T* html_conditional_element_node);
|
|
21
25
|
napi_value html_attribute_value_nodeNodeFromCStruct(napi_env env, AST_HTML_ATTRIBUTE_VALUE_NODE_T* html_attribute_value_node);
|
|
22
26
|
napi_value html_attribute_name_nodeNodeFromCStruct(napi_env env, AST_HTML_ATTRIBUTE_NAME_NODE_T* html_attribute_name_node);
|
|
23
27
|
napi_value html_attribute_nodeNodeFromCStruct(napi_env env, AST_HTML_ATTRIBUTE_NODE_T* html_attribute_node);
|
|
28
|
+
napi_value ruby_literal_nodeNodeFromCStruct(napi_env env, AST_RUBY_LITERAL_NODE_T* ruby_literal_node);
|
|
29
|
+
napi_value ruby_html_attributes_splat_nodeNodeFromCStruct(napi_env env, AST_RUBY_HTML_ATTRIBUTES_SPLAT_NODE_T* ruby_html_attributes_splat_node);
|
|
30
|
+
napi_value erb_open_tag_nodeNodeFromCStruct(napi_env env, AST_ERB_OPEN_TAG_NODE_T* erb_open_tag_node);
|
|
24
31
|
napi_value html_text_nodeNodeFromCStruct(napi_env env, AST_HTML_TEXT_NODE_T* html_text_node);
|
|
25
32
|
napi_value html_comment_nodeNodeFromCStruct(napi_env env, AST_HTML_COMMENT_NODE_T* html_comment_node);
|
|
26
33
|
napi_value html_doctype_nodeNodeFromCStruct(napi_env env, AST_HTML_DOCTYPE_NODE_T* html_doctype_node);
|
|
@@ -42,6 +49,8 @@ napi_value erb_rescue_nodeNodeFromCStruct(napi_env env, AST_ERB_RESCUE_NODE_T* e
|
|
|
42
49
|
napi_value erb_ensure_nodeNodeFromCStruct(napi_env env, AST_ERB_ENSURE_NODE_T* erb_ensure_node);
|
|
43
50
|
napi_value erb_begin_nodeNodeFromCStruct(napi_env env, AST_ERB_BEGIN_NODE_T* erb_begin_node);
|
|
44
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);
|
|
45
54
|
napi_value erb_yield_nodeNodeFromCStruct(napi_env env, AST_ERB_YIELD_NODE_T* erb_yield_node);
|
|
46
55
|
napi_value erb_in_nodeNodeFromCStruct(napi_env env, AST_ERB_IN_NODE_T* erb_in_node);
|
|
47
56
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@herb-tools/node",
|
|
3
|
-
"version": "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",
|
|
@@ -14,14 +14,18 @@
|
|
|
14
14
|
"gypfile": true,
|
|
15
15
|
"main": "./dist/herb-node.cjs",
|
|
16
16
|
"module": "./dist/herb-node.esm.js",
|
|
17
|
-
"types": "./dist/types/index
|
|
17
|
+
"types": "./dist/types/index.d.ts",
|
|
18
18
|
"exports": {
|
|
19
19
|
"./package.json": "./package.json",
|
|
20
20
|
".": {
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
"import": {
|
|
22
|
+
"types": "./dist/types/index.d.ts",
|
|
23
|
+
"default": "./dist/herb-node.esm.js"
|
|
24
|
+
},
|
|
25
|
+
"require": {
|
|
26
|
+
"types": "./dist/types/index.d.ts",
|
|
27
|
+
"default": "./dist/herb-node.cjs"
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
30
|
},
|
|
27
31
|
"scripts": {
|
|
@@ -48,9 +52,9 @@
|
|
|
48
52
|
"host": "https://github.com/marcoroth/herb/releases/download/"
|
|
49
53
|
},
|
|
50
54
|
"dependencies": {
|
|
51
|
-
"@herb-tools/core": "0.
|
|
55
|
+
"@herb-tools/core": "0.9.1",
|
|
52
56
|
"@mapbox/node-pre-gyp": "^2.0.3",
|
|
53
|
-
"node-addon-api": "^8.
|
|
57
|
+
"node-addon-api": "^8.6.0",
|
|
54
58
|
"node-pre-gyp-github": "^2.0.0"
|
|
55
59
|
},
|
|
56
60
|
"files": [
|
package/src/node-backend.ts
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs"
|
|
2
|
+
|
|
1
3
|
import packageJSON from "../package.json" with { type: "json" }
|
|
2
4
|
|
|
3
|
-
import { HerbBackend } from "@herb-tools/core"
|
|
5
|
+
import { HerbBackend, LexResult, ParseResult } from "@herb-tools/core"
|
|
4
6
|
|
|
5
7
|
export class HerbBackendNode extends HerbBackend {
|
|
8
|
+
lexFile(path: string): LexResult {
|
|
9
|
+
return this.lex(readFileSync(path, "utf-8"))
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
parseFile(path: string): ParseResult {
|
|
13
|
+
return this.parse(readFileSync(path, "utf-8"))
|
|
14
|
+
}
|
|
15
|
+
|
|
6
16
|
backendVersion(): string {
|
|
7
17
|
return `${packageJSON.name}@${packageJSON.version}`
|
|
8
18
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|