@knpkv/confluence-to-markdown 0.2.0 → 0.4.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/CHANGELOG.md +60 -0
- package/LICENSE +21 -0
- package/README.md +282 -14
- package/dist/ConfluenceAuth.d.ts +76 -0
- package/dist/ConfluenceAuth.d.ts.map +1 -0
- package/dist/ConfluenceAuth.js +356 -0
- package/dist/ConfluenceAuth.js.map +1 -0
- package/dist/ConfluenceClient.d.ts +26 -2
- package/dist/ConfluenceClient.d.ts.map +1 -1
- package/dist/ConfluenceClient.js +98 -92
- package/dist/ConfluenceClient.js.map +1 -1
- package/dist/ConfluenceConfig.d.ts +4 -24
- package/dist/ConfluenceConfig.d.ts.map +1 -1
- package/dist/ConfluenceConfig.js +45 -7
- package/dist/ConfluenceConfig.js.map +1 -1
- package/dist/ConfluenceError.d.ts +89 -6
- package/dist/ConfluenceError.d.ts.map +1 -1
- package/dist/ConfluenceError.js +88 -5
- package/dist/ConfluenceError.js.map +1 -1
- package/dist/GitError.d.ts +103 -0
- package/dist/GitError.d.ts.map +1 -0
- package/dist/GitError.js +85 -0
- package/dist/GitError.js.map +1 -0
- package/dist/GitService.d.ts +175 -0
- package/dist/GitService.d.ts.map +1 -0
- package/dist/GitService.js +431 -0
- package/dist/GitService.js.map +1 -0
- package/dist/LocalFileSystem.d.ts +29 -4
- package/dist/LocalFileSystem.d.ts.map +1 -1
- package/dist/LocalFileSystem.js +80 -6
- package/dist/LocalFileSystem.js.map +1 -1
- package/dist/MarkdownConverter.d.ts +49 -2
- package/dist/MarkdownConverter.d.ts.map +1 -1
- package/dist/MarkdownConverter.js +73 -111
- package/dist/MarkdownConverter.js.map +1 -1
- package/dist/SchemaConverterError.d.ts +108 -0
- package/dist/SchemaConverterError.d.ts.map +1 -0
- package/dist/SchemaConverterError.js +84 -0
- package/dist/SchemaConverterError.js.map +1 -0
- package/dist/Schemas.d.ts +225 -1
- package/dist/Schemas.d.ts.map +1 -1
- package/dist/Schemas.js +155 -6
- package/dist/Schemas.js.map +1 -1
- package/dist/SyncEngine.d.ts +30 -20
- package/dist/SyncEngine.d.ts.map +1 -1
- package/dist/SyncEngine.js +566 -117
- package/dist/SyncEngine.js.map +1 -1
- package/dist/ast/BlockNode.d.ts +468 -0
- package/dist/ast/BlockNode.d.ts.map +1 -0
- package/dist/ast/BlockNode.js +319 -0
- package/dist/ast/BlockNode.js.map +1 -0
- package/dist/ast/Document.d.ts +244 -0
- package/dist/ast/Document.d.ts.map +1 -0
- package/dist/ast/Document.js +69 -0
- package/dist/ast/Document.js.map +1 -0
- package/dist/ast/InlineNode.d.ts +477 -0
- package/dist/ast/InlineNode.d.ts.map +1 -0
- package/dist/ast/InlineNode.js +263 -0
- package/dist/ast/InlineNode.js.map +1 -0
- package/dist/ast/MacroNode.d.ts +267 -0
- package/dist/ast/MacroNode.d.ts.map +1 -0
- package/dist/ast/MacroNode.js +164 -0
- package/dist/ast/MacroNode.js.map +1 -0
- package/dist/ast/index.d.ts +10 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/index.js +14 -0
- package/dist/ast/index.js.map +1 -0
- package/dist/bin.js +33 -149
- package/dist/bin.js.map +1 -1
- package/dist/commands/auth.d.ts +15 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +86 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/clone.d.ts +12 -0
- package/dist/commands/clone.d.ts.map +1 -0
- package/dist/commands/clone.js +93 -0
- package/dist/commands/clone.js.map +1 -0
- package/dist/commands/delete.d.ts +13 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +48 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/errorHandler.d.ts +14 -0
- package/dist/commands/errorHandler.d.ts.map +1 -0
- package/dist/commands/errorHandler.js +33 -0
- package/dist/commands/errorHandler.js.map +1 -0
- package/dist/commands/git.d.ts +22 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +72 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/index.d.ts +11 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +11 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/layers.d.ts +31 -0
- package/dist/commands/layers.d.ts.map +1 -0
- package/dist/commands/layers.js +137 -0
- package/dist/commands/layers.js.map +1 -0
- package/dist/commands/new.d.ts +9 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +80 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/pageTree.d.ts +18 -0
- package/dist/commands/pageTree.d.ts.map +1 -0
- package/dist/commands/pageTree.js +20 -0
- package/dist/commands/pageTree.js.map +1 -0
- package/dist/commands/shared.d.ts +15 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +27 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/sync.d.ts +15 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +101 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/NodeLayers.d.ts +7 -0
- package/dist/internal/NodeLayers.d.ts.map +1 -0
- package/dist/internal/NodeLayers.js +19 -0
- package/dist/internal/NodeLayers.js.map +1 -0
- package/dist/internal/frontmatter.d.ts +10 -0
- package/dist/internal/frontmatter.d.ts.map +1 -1
- package/dist/internal/frontmatter.js +16 -0
- package/dist/internal/frontmatter.js.map +1 -1
- package/dist/internal/gitCommands.d.ts +78 -0
- package/dist/internal/gitCommands.d.ts.map +1 -0
- package/dist/internal/gitCommands.js +156 -0
- package/dist/internal/gitCommands.js.map +1 -0
- package/dist/internal/hashUtils.d.ts +42 -1
- package/dist/internal/hashUtils.d.ts.map +1 -1
- package/dist/internal/hashUtils.js +38 -2
- package/dist/internal/hashUtils.js.map +1 -1
- package/dist/internal/oauthServer.d.ts +55 -0
- package/dist/internal/oauthServer.d.ts.map +1 -0
- package/dist/internal/oauthServer.js +110 -0
- package/dist/internal/oauthServer.js.map +1 -0
- package/dist/internal/pathUtils.d.ts +21 -4
- package/dist/internal/pathUtils.d.ts.map +1 -1
- package/dist/internal/pathUtils.js +24 -13
- package/dist/internal/pathUtils.js.map +1 -1
- package/dist/internal/tokenStorage.d.ts +75 -0
- package/dist/internal/tokenStorage.d.ts.map +1 -0
- package/dist/internal/tokenStorage.js +149 -0
- package/dist/internal/tokenStorage.js.map +1 -0
- package/dist/internal/userCache.d.ts +42 -0
- package/dist/internal/userCache.d.ts.map +1 -0
- package/dist/internal/userCache.js +51 -0
- package/dist/internal/userCache.js.map +1 -0
- package/dist/parsers/ConfluenceParser.d.ts +26 -0
- package/dist/parsers/ConfluenceParser.d.ts.map +1 -0
- package/dist/parsers/ConfluenceParser.js +792 -0
- package/dist/parsers/ConfluenceParser.js.map +1 -0
- package/dist/parsers/MarkdownParser.d.ts +26 -0
- package/dist/parsers/MarkdownParser.d.ts.map +1 -0
- package/dist/parsers/MarkdownParser.js +873 -0
- package/dist/parsers/MarkdownParser.js.map +1 -0
- package/dist/parsers/index.d.ts +8 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +8 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/schemas/ConfluenceSchema.d.ts +21 -0
- package/dist/schemas/ConfluenceSchema.d.ts.map +1 -0
- package/dist/schemas/ConfluenceSchema.js +38 -0
- package/dist/schemas/ConfluenceSchema.js.map +1 -0
- package/dist/schemas/ConversionSchema.d.ts +35 -0
- package/dist/schemas/ConversionSchema.d.ts.map +1 -0
- package/dist/schemas/ConversionSchema.js +208 -0
- package/dist/schemas/ConversionSchema.js.map +1 -0
- package/dist/schemas/MarkdownSchema.d.ts +21 -0
- package/dist/schemas/MarkdownSchema.d.ts.map +1 -0
- package/dist/schemas/MarkdownSchema.js +38 -0
- package/dist/schemas/MarkdownSchema.js.map +1 -0
- package/dist/schemas/hast/HastFromHtml.d.ts +27 -0
- package/dist/schemas/hast/HastFromHtml.d.ts.map +1 -0
- package/dist/schemas/hast/HastFromHtml.js +107 -0
- package/dist/schemas/hast/HastFromHtml.js.map +1 -0
- package/dist/schemas/hast/HastSchema.d.ts +195 -0
- package/dist/schemas/hast/HastSchema.d.ts.map +1 -0
- package/dist/schemas/hast/HastSchema.js +183 -0
- package/dist/schemas/hast/HastSchema.js.map +1 -0
- package/dist/schemas/hast/index.d.ts +9 -0
- package/dist/schemas/hast/index.d.ts.map +1 -0
- package/dist/schemas/hast/index.js +3 -0
- package/dist/schemas/hast/index.js.map +1 -0
- package/dist/schemas/index.d.ts +14 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +16 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/mdast/MdastFromMarkdown.d.ts +30 -0
- package/dist/schemas/mdast/MdastFromMarkdown.d.ts.map +1 -0
- package/dist/schemas/mdast/MdastFromMarkdown.js +79 -0
- package/dist/schemas/mdast/MdastFromMarkdown.js.map +1 -0
- package/dist/schemas/mdast/MdastSchema.d.ts +385 -0
- package/dist/schemas/mdast/MdastSchema.d.ts.map +1 -0
- package/dist/schemas/mdast/MdastSchema.js +266 -0
- package/dist/schemas/mdast/MdastSchema.js.map +1 -0
- package/dist/schemas/mdast/index.d.ts +10 -0
- package/dist/schemas/mdast/index.d.ts.map +1 -0
- package/dist/schemas/mdast/index.js +4 -0
- package/dist/schemas/mdast/index.js.map +1 -0
- package/dist/schemas/mdast/mdastToString.d.ts +13 -0
- package/dist/schemas/mdast/mdastToString.d.ts.map +1 -0
- package/dist/schemas/mdast/mdastToString.js +85 -0
- package/dist/schemas/mdast/mdastToString.js.map +1 -0
- package/dist/schemas/nodes/block/BlockSchema.d.ts +43 -0
- package/dist/schemas/nodes/block/BlockSchema.d.ts.map +1 -0
- package/dist/schemas/nodes/block/BlockSchema.js +634 -0
- package/dist/schemas/nodes/block/BlockSchema.js.map +1 -0
- package/dist/schemas/nodes/block/index.d.ts +7 -0
- package/dist/schemas/nodes/block/index.d.ts.map +1 -0
- package/dist/schemas/nodes/block/index.js +7 -0
- package/dist/schemas/nodes/block/index.js.map +1 -0
- package/dist/schemas/nodes/index.d.ts +9 -0
- package/dist/schemas/nodes/index.d.ts.map +1 -0
- package/dist/schemas/nodes/index.js +12 -0
- package/dist/schemas/nodes/index.js.map +1 -0
- package/dist/schemas/nodes/inline/InlineSchema.d.ts +48 -0
- package/dist/schemas/nodes/inline/InlineSchema.d.ts.map +1 -0
- package/dist/schemas/nodes/inline/InlineSchema.js +436 -0
- package/dist/schemas/nodes/inline/InlineSchema.js.map +1 -0
- package/dist/schemas/nodes/inline/index.d.ts +7 -0
- package/dist/schemas/nodes/inline/index.d.ts.map +1 -0
- package/dist/schemas/nodes/inline/index.js +7 -0
- package/dist/schemas/nodes/inline/index.js.map +1 -0
- package/dist/schemas/nodes/macro/MacroSchema.d.ts +27 -0
- package/dist/schemas/nodes/macro/MacroSchema.d.ts.map +1 -0
- package/dist/schemas/nodes/macro/MacroSchema.js +162 -0
- package/dist/schemas/nodes/macro/MacroSchema.js.map +1 -0
- package/dist/schemas/nodes/macro/index.d.ts +7 -0
- package/dist/schemas/nodes/macro/index.d.ts.map +1 -0
- package/dist/schemas/nodes/macro/index.js +7 -0
- package/dist/schemas/nodes/macro/index.js.map +1 -0
- package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts +24 -0
- package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts.map +1 -0
- package/dist/schemas/preprocessing/ConfluencePreprocessor.js +351 -0
- package/dist/schemas/preprocessing/ConfluencePreprocessor.js.map +1 -0
- package/dist/schemas/preprocessing/index.d.ts +8 -0
- package/dist/schemas/preprocessing/index.d.ts.map +1 -0
- package/dist/schemas/preprocessing/index.js +2 -0
- package/dist/schemas/preprocessing/index.js.map +1 -0
- package/dist/serializers/ConfluenceSerializer.d.ts +30 -0
- package/dist/serializers/ConfluenceSerializer.d.ts.map +1 -0
- package/dist/serializers/ConfluenceSerializer.js +551 -0
- package/dist/serializers/ConfluenceSerializer.js.map +1 -0
- package/dist/serializers/MarkdownSerializer.d.ts +34 -0
- package/dist/serializers/MarkdownSerializer.d.ts.map +1 -0
- package/dist/serializers/MarkdownSerializer.js +355 -0
- package/dist/serializers/MarkdownSerializer.js.map +1 -0
- package/dist/serializers/index.d.ts +8 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/serializers/index.js +8 -0
- package/dist/serializers/index.js.map +1 -0
- package/package.json +27 -16
- package/src/ConfluenceAuth.ts +571 -0
- package/src/ConfluenceClient.ts +188 -156
- package/src/ConfluenceConfig.ts +63 -7
- package/src/ConfluenceError.ts +110 -14
- package/src/GitError.ts +92 -0
- package/src/GitService.ts +859 -0
- package/src/LocalFileSystem.ts +179 -9
- package/src/MarkdownConverter.ts +126 -122
- package/src/SchemaConverterError.ts +108 -0
- package/src/Schemas.ts +223 -6
- package/src/SyncEngine.ts +745 -162
- package/src/ast/BlockNode.ts +425 -0
- package/src/ast/Document.ts +90 -0
- package/src/ast/InlineNode.ts +323 -0
- package/src/ast/MacroNode.ts +245 -0
- package/src/ast/index.ts +83 -0
- package/src/bin.ts +50 -249
- package/src/commands/auth.ts +117 -0
- package/src/commands/clone.ts +145 -0
- package/src/commands/delete.ts +57 -0
- package/src/commands/errorHandler.ts +32 -0
- package/src/commands/git.ts +114 -0
- package/src/commands/index.ts +10 -0
- package/src/commands/layers.ts +211 -0
- package/src/commands/new.ts +99 -0
- package/src/commands/pageTree.ts +40 -0
- package/src/commands/shared.ts +35 -0
- package/src/commands/sync.ts +129 -0
- package/src/index.ts +21 -1
- package/src/internal/NodeLayers.ts +21 -0
- package/src/internal/frontmatter.ts +21 -0
- package/src/internal/gitCommands.ts +229 -0
- package/src/internal/hashUtils.ts +65 -3
- package/src/internal/oauthServer.ts +199 -0
- package/src/internal/pathUtils.ts +34 -17
- package/src/internal/tokenStorage.ts +240 -0
- package/src/internal/userCache.ts +90 -0
- package/src/parsers/ConfluenceParser.ts +950 -0
- package/src/parsers/MarkdownParser.ts +1198 -0
- package/src/parsers/index.ts +8 -0
- package/src/schemas/ConfluenceSchema.ts +56 -0
- package/src/schemas/ConversionSchema.ts +318 -0
- package/src/schemas/MarkdownSchema.ts +56 -0
- package/src/schemas/hast/HastFromHtml.ts +153 -0
- package/src/schemas/hast/HastSchema.ts +274 -0
- package/src/schemas/hast/index.ts +35 -0
- package/src/schemas/index.ts +20 -0
- package/src/schemas/mdast/MdastFromMarkdown.ts +118 -0
- package/src/schemas/mdast/MdastSchema.ts +566 -0
- package/src/schemas/mdast/index.ts +59 -0
- package/src/schemas/mdast/mdastToString.ts +102 -0
- package/src/schemas/nodes/block/BlockSchema.ts +773 -0
- package/src/schemas/nodes/block/index.ts +13 -0
- package/src/schemas/nodes/index.ts +20 -0
- package/src/schemas/nodes/inline/InlineSchema.ts +523 -0
- package/src/schemas/nodes/inline/index.ts +14 -0
- package/src/schemas/nodes/macro/MacroSchema.ts +226 -0
- package/src/schemas/nodes/macro/index.ts +6 -0
- package/src/schemas/preprocessing/ConfluencePreprocessor.ts +446 -0
- package/src/schemas/preprocessing/index.ts +8 -0
- package/src/serializers/ConfluenceSerializer.ts +717 -0
- package/src/serializers/MarkdownSerializer.ts +493 -0
- package/src/serializers/index.ts +8 -0
- package/test/GitService.test.ts +209 -0
- package/test/MarkdownConverter.test.ts +37 -3
- package/test/Schemas.test.ts +97 -2
- package/test/ast/BlockNode.test.ts +265 -0
- package/test/ast/Document.test.ts +126 -0
- package/test/ast/InlineNode.test.ts +161 -0
- package/test/fixtures/integration-test.html.fixture +103 -0
- package/test/fixtures/integration-test.md.expected +257 -0
- package/test/integration.test.ts +269 -0
- package/test/oauthServer.test.ts +50 -0
- package/test/parsers/ConfluenceParser.test.ts +283 -0
- package/test/schemas/ConfluencePreprocessor.test.ts +180 -0
- package/test/schemas/ConversionSchema.test.ts +159 -0
- package/test/schemas/HastSchema.test.ts +138 -0
- package/test/schemas/MdastSchema.test.ts +145 -0
- package/test/schemas/nodes/block/BlockSchema.test.ts +173 -0
- package/test/schemas/nodes/inline/InlineSchema.test.ts +198 -0
- package/test/schemas/nodes/macro/MacroSchema.test.ts +142 -0
- package/test/tokenStorage.test.ts +99 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HastFromHtml.js","sourceRoot":"","sources":["../../../src/schemas/hast/HastFromHtml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effect Schema definitions for HAST (Hypertext Abstract Syntax Tree) nodes.
|
|
3
|
+
*
|
|
4
|
+
* HAST is the intermediate representation used when parsing HTML.
|
|
5
|
+
* These schemas provide type-safe transformation between raw HTML and our AST.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import * as Schema from "effect/Schema";
|
|
10
|
+
/**
|
|
11
|
+
* HAST element properties type.
|
|
12
|
+
*
|
|
13
|
+
* @category Types
|
|
14
|
+
*/
|
|
15
|
+
export type HastProperties = Record<string, unknown>;
|
|
16
|
+
/**
|
|
17
|
+
* HAST text node type.
|
|
18
|
+
*
|
|
19
|
+
* @category Types
|
|
20
|
+
*/
|
|
21
|
+
export interface HastText {
|
|
22
|
+
readonly _tag: "text";
|
|
23
|
+
readonly value: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* HAST comment node type.
|
|
27
|
+
*
|
|
28
|
+
* @category Types
|
|
29
|
+
*/
|
|
30
|
+
export interface HastComment {
|
|
31
|
+
readonly _tag: "comment";
|
|
32
|
+
readonly value: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* HAST doctype node type.
|
|
36
|
+
*
|
|
37
|
+
* @category Types
|
|
38
|
+
*/
|
|
39
|
+
export interface HastDoctype {
|
|
40
|
+
readonly _tag: "doctype";
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* HAST element node type.
|
|
44
|
+
*
|
|
45
|
+
* @category Types
|
|
46
|
+
*/
|
|
47
|
+
export interface HastElement {
|
|
48
|
+
readonly _tag: "element";
|
|
49
|
+
readonly tagName: string;
|
|
50
|
+
readonly properties: HastProperties;
|
|
51
|
+
readonly children: ReadonlyArray<HastNode>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Union of all HAST node types.
|
|
55
|
+
*
|
|
56
|
+
* @category Types
|
|
57
|
+
*/
|
|
58
|
+
export type HastNode = HastText | HastElement | HastComment | HastDoctype;
|
|
59
|
+
/**
|
|
60
|
+
* HAST root node type.
|
|
61
|
+
*
|
|
62
|
+
* @category Types
|
|
63
|
+
*/
|
|
64
|
+
export interface HastRoot {
|
|
65
|
+
readonly _tag: "root";
|
|
66
|
+
readonly children: ReadonlyArray<HastNode>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Create a HAST text node.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* import { makeHastText } from "@knpkv/confluence-to-markdown/schemas/hast"
|
|
74
|
+
*
|
|
75
|
+
* const text = makeHastText("Hello world")
|
|
76
|
+
* console.log(text.value) // "Hello world"
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @category Constructors
|
|
80
|
+
*/
|
|
81
|
+
export declare const makeHastText: (value: string) => HastText;
|
|
82
|
+
/**
|
|
83
|
+
* Create a HAST comment node.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* import { makeHastComment } from "@knpkv/confluence-to-markdown/schemas/hast"
|
|
88
|
+
*
|
|
89
|
+
* const comment = makeHastComment("cf:layout-start")
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @category Constructors
|
|
93
|
+
*/
|
|
94
|
+
export declare const makeHastComment: (value: string) => HastComment;
|
|
95
|
+
/**
|
|
96
|
+
* Create a HAST doctype node.
|
|
97
|
+
*
|
|
98
|
+
* @category Constructors
|
|
99
|
+
*/
|
|
100
|
+
export declare const makeHastDoctype: () => HastDoctype;
|
|
101
|
+
/**
|
|
102
|
+
* Create a HAST element node.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* import { makeHastElement, makeHastText } from "@knpkv/confluence-to-markdown/schemas/hast"
|
|
107
|
+
*
|
|
108
|
+
* const heading = makeHastElement("h1", { id: "title" }, [makeHastText("Hello")])
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* @category Constructors
|
|
112
|
+
*/
|
|
113
|
+
export declare const makeHastElement: (tagName: string, properties?: HastProperties, children?: ReadonlyArray<HastNode>) => HastElement;
|
|
114
|
+
/**
|
|
115
|
+
* Create a HAST root node.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* import { makeHastRoot, makeHastElement, makeHastText } from "@knpkv/confluence-to-markdown/schemas/hast"
|
|
120
|
+
*
|
|
121
|
+
* const root = makeHastRoot([
|
|
122
|
+
* makeHastElement("p", {}, [makeHastText("Content")])
|
|
123
|
+
* ])
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* @category Constructors
|
|
127
|
+
*/
|
|
128
|
+
export declare const makeHastRoot: (children: ReadonlyArray<HastNode>) => HastRoot;
|
|
129
|
+
/**
|
|
130
|
+
* Type guard to check if a HastNode is a HastElement.
|
|
131
|
+
*
|
|
132
|
+
* @category Guards
|
|
133
|
+
*/
|
|
134
|
+
export declare const isHastElement: (node: HastNode) => node is HastElement;
|
|
135
|
+
/**
|
|
136
|
+
* Type guard to check if a HastNode is a HastText.
|
|
137
|
+
*
|
|
138
|
+
* @category Guards
|
|
139
|
+
*/
|
|
140
|
+
export declare const isHastText: (node: HastNode) => node is HastText;
|
|
141
|
+
/**
|
|
142
|
+
* Type guard to check if a HastNode is a HastComment.
|
|
143
|
+
*
|
|
144
|
+
* @category Guards
|
|
145
|
+
*/
|
|
146
|
+
export declare const isHastComment: (node: HastNode) => node is HastComment;
|
|
147
|
+
/**
|
|
148
|
+
* Get text content from a HastNode recursively.
|
|
149
|
+
*
|
|
150
|
+
* @category Utilities
|
|
151
|
+
*/
|
|
152
|
+
export declare const getTextContent: (node: HastNode) => string;
|
|
153
|
+
/**
|
|
154
|
+
* Schema for HAST text node.
|
|
155
|
+
*
|
|
156
|
+
* @category Schemas
|
|
157
|
+
*/
|
|
158
|
+
export declare const HastTextSchema: Schema.Schema<HastText>;
|
|
159
|
+
/**
|
|
160
|
+
* Schema for HAST comment node.
|
|
161
|
+
*
|
|
162
|
+
* @category Schemas
|
|
163
|
+
*/
|
|
164
|
+
export declare const HastCommentSchema: Schema.Schema<HastComment>;
|
|
165
|
+
/**
|
|
166
|
+
* Schema for HAST doctype node.
|
|
167
|
+
*
|
|
168
|
+
* @category Schemas
|
|
169
|
+
*/
|
|
170
|
+
export declare const HastDoctypeSchema: Schema.Schema<HastDoctype>;
|
|
171
|
+
/**
|
|
172
|
+
* Schema for HAST properties.
|
|
173
|
+
*
|
|
174
|
+
* @category Schemas
|
|
175
|
+
*/
|
|
176
|
+
export declare const HastPropertiesSchema: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
|
|
177
|
+
/**
|
|
178
|
+
* Schema for HAST element node.
|
|
179
|
+
*
|
|
180
|
+
* @category Schemas
|
|
181
|
+
*/
|
|
182
|
+
export declare const HastElementSchema: Schema.Schema<HastElement>;
|
|
183
|
+
/**
|
|
184
|
+
* Schema for HAST node union.
|
|
185
|
+
*
|
|
186
|
+
* @category Schemas
|
|
187
|
+
*/
|
|
188
|
+
export declare const HastNodeSchema: Schema.Schema<HastNode>;
|
|
189
|
+
/**
|
|
190
|
+
* Schema for HAST root.
|
|
191
|
+
*
|
|
192
|
+
* @category Schemas
|
|
193
|
+
*/
|
|
194
|
+
export declare const HastRootSchema: Schema.Schema<HastRoot>;
|
|
195
|
+
//# sourceMappingURL=HastSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HastSchema.d.ts","sourceRoot":"","sources":["../../../src/schemas/hast/HastSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effect Schema definitions for HAST (Hypertext Abstract Syntax Tree) nodes.
|
|
3
|
+
*
|
|
4
|
+
* HAST is the intermediate representation used when parsing HTML.
|
|
5
|
+
* These schemas provide type-safe transformation between raw HTML and our AST.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import * as Schema from "effect/Schema";
|
|
10
|
+
/**
|
|
11
|
+
* Create a HAST text node.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { makeHastText } from "@knpkv/confluence-to-markdown/schemas/hast"
|
|
16
|
+
*
|
|
17
|
+
* const text = makeHastText("Hello world")
|
|
18
|
+
* console.log(text.value) // "Hello world"
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @category Constructors
|
|
22
|
+
*/
|
|
23
|
+
export const makeHastText = (value) => ({
|
|
24
|
+
_tag: "text",
|
|
25
|
+
value
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Create a HAST comment node.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* import { makeHastComment } from "@knpkv/confluence-to-markdown/schemas/hast"
|
|
33
|
+
*
|
|
34
|
+
* const comment = makeHastComment("cf:layout-start")
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @category Constructors
|
|
38
|
+
*/
|
|
39
|
+
export const makeHastComment = (value) => ({
|
|
40
|
+
_tag: "comment",
|
|
41
|
+
value
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Create a HAST doctype node.
|
|
45
|
+
*
|
|
46
|
+
* @category Constructors
|
|
47
|
+
*/
|
|
48
|
+
export const makeHastDoctype = () => ({
|
|
49
|
+
_tag: "doctype"
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Create a HAST element node.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* import { makeHastElement, makeHastText } from "@knpkv/confluence-to-markdown/schemas/hast"
|
|
57
|
+
*
|
|
58
|
+
* const heading = makeHastElement("h1", { id: "title" }, [makeHastText("Hello")])
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* @category Constructors
|
|
62
|
+
*/
|
|
63
|
+
export const makeHastElement = (tagName, properties = {}, children = []) => ({
|
|
64
|
+
_tag: "element",
|
|
65
|
+
tagName,
|
|
66
|
+
properties,
|
|
67
|
+
children
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* Create a HAST root node.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* import { makeHastRoot, makeHastElement, makeHastText } from "@knpkv/confluence-to-markdown/schemas/hast"
|
|
75
|
+
*
|
|
76
|
+
* const root = makeHastRoot([
|
|
77
|
+
* makeHastElement("p", {}, [makeHastText("Content")])
|
|
78
|
+
* ])
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @category Constructors
|
|
82
|
+
*/
|
|
83
|
+
export const makeHastRoot = (children) => ({
|
|
84
|
+
_tag: "root",
|
|
85
|
+
children
|
|
86
|
+
});
|
|
87
|
+
/**
|
|
88
|
+
* Type guard to check if a HastNode is a HastElement.
|
|
89
|
+
*
|
|
90
|
+
* @category Guards
|
|
91
|
+
*/
|
|
92
|
+
export const isHastElement = (node) => node._tag === "element";
|
|
93
|
+
/**
|
|
94
|
+
* Type guard to check if a HastNode is a HastText.
|
|
95
|
+
*
|
|
96
|
+
* @category Guards
|
|
97
|
+
*/
|
|
98
|
+
export const isHastText = (node) => node._tag === "text";
|
|
99
|
+
/**
|
|
100
|
+
* Type guard to check if a HastNode is a HastComment.
|
|
101
|
+
*
|
|
102
|
+
* @category Guards
|
|
103
|
+
*/
|
|
104
|
+
export const isHastComment = (node) => node._tag === "comment";
|
|
105
|
+
/**
|
|
106
|
+
* Get text content from a HastNode recursively.
|
|
107
|
+
*
|
|
108
|
+
* @category Utilities
|
|
109
|
+
*/
|
|
110
|
+
export const getTextContent = (node) => {
|
|
111
|
+
if (isHastText(node)) {
|
|
112
|
+
return node.value;
|
|
113
|
+
}
|
|
114
|
+
if (isHastElement(node)) {
|
|
115
|
+
return node.children.map(getTextContent).join("");
|
|
116
|
+
}
|
|
117
|
+
return "";
|
|
118
|
+
};
|
|
119
|
+
// Schema definitions for validation
|
|
120
|
+
/**
|
|
121
|
+
* Schema for HAST text node.
|
|
122
|
+
*
|
|
123
|
+
* @category Schemas
|
|
124
|
+
*/
|
|
125
|
+
export const HastTextSchema = Schema.Struct({
|
|
126
|
+
_tag: Schema.Literal("text"),
|
|
127
|
+
value: Schema.String
|
|
128
|
+
});
|
|
129
|
+
/**
|
|
130
|
+
* Schema for HAST comment node.
|
|
131
|
+
*
|
|
132
|
+
* @category Schemas
|
|
133
|
+
*/
|
|
134
|
+
export const HastCommentSchema = Schema.Struct({
|
|
135
|
+
_tag: Schema.Literal("comment"),
|
|
136
|
+
value: Schema.String
|
|
137
|
+
});
|
|
138
|
+
/**
|
|
139
|
+
* Schema for HAST doctype node.
|
|
140
|
+
*
|
|
141
|
+
* @category Schemas
|
|
142
|
+
*/
|
|
143
|
+
export const HastDoctypeSchema = Schema.Struct({
|
|
144
|
+
_tag: Schema.Literal("doctype")
|
|
145
|
+
});
|
|
146
|
+
/**
|
|
147
|
+
* Schema for HAST properties.
|
|
148
|
+
*
|
|
149
|
+
* @category Schemas
|
|
150
|
+
*/
|
|
151
|
+
export const HastPropertiesSchema = Schema.Record({
|
|
152
|
+
key: Schema.String,
|
|
153
|
+
value: Schema.Unknown
|
|
154
|
+
});
|
|
155
|
+
// Forward reference for recursive schema
|
|
156
|
+
const HastNodeSchemaLazy = Schema.suspend(() => HastNodeSchema);
|
|
157
|
+
/**
|
|
158
|
+
* Schema for HAST element node.
|
|
159
|
+
*
|
|
160
|
+
* @category Schemas
|
|
161
|
+
*/
|
|
162
|
+
export const HastElementSchema = Schema.Struct({
|
|
163
|
+
_tag: Schema.Literal("element"),
|
|
164
|
+
tagName: Schema.String,
|
|
165
|
+
properties: HastPropertiesSchema,
|
|
166
|
+
children: Schema.Array(HastNodeSchemaLazy)
|
|
167
|
+
});
|
|
168
|
+
/**
|
|
169
|
+
* Schema for HAST node union.
|
|
170
|
+
*
|
|
171
|
+
* @category Schemas
|
|
172
|
+
*/
|
|
173
|
+
export const HastNodeSchema = Schema.Union(HastTextSchema, HastElementSchema, HastCommentSchema, HastDoctypeSchema);
|
|
174
|
+
/**
|
|
175
|
+
* Schema for HAST root.
|
|
176
|
+
*
|
|
177
|
+
* @category Schemas
|
|
178
|
+
*/
|
|
179
|
+
export const HastRootSchema = Schema.Struct({
|
|
180
|
+
_tag: Schema.Literal("root"),
|
|
181
|
+
children: Schema.Array(HastNodeSchema)
|
|
182
|
+
});
|
|
183
|
+
//# sourceMappingURL=HastSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HastSchema.js","sourceRoot":"","sources":["../../../src/schemas/hast/HastSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAmEvC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAY,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,MAAM;IACZ,KAAK;CACN,CAAC,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAe,EAAE,CAAC,CAAC;IAC9D,IAAI,EAAE,SAAS;IACf,KAAK;CACN,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAgB,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,SAAS;CAChB,CAAC,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAe,EACf,aAA6B,EAAE,EAC/B,WAAoC,EAAE,EACzB,EAAE,CAAC,CAAC;IACjB,IAAI,EAAE,SAAS;IACf,OAAO;IACP,UAAU;IACV,QAAQ;CACT,CAAC,CAAA;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAiC,EAAY,EAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,MAAM;IACZ,QAAQ;CACT,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAc,EAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAA;AAE7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAc,EAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;AAEpF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAc,EAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAA;AAE7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAc,EAAU,EAAE;IACvD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,oCAAoC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B,MAAM,CAAC,MAAM,CAAC;IACnE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B,MAAM,CAAC,MAAM,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B,MAAM,CAAC,MAAM,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;CAChC,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,KAAK,EAAE,MAAM,CAAC,OAAO;CACtB,CAAC,CAAA;AAEF,yCAAyC;AACzC,MAAM,kBAAkB,GAA4B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAA;AAExF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B,MAAM,CAAC,MAAM,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,UAAU,EAAE,oBAAoB;IAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC;CAC3C,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B,MAAM,CAAC,KAAK,CACjE,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAA4B,MAAM,CAAC,MAAM,CAAC;IACnE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;CACvC,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HAST (Hypertext Abstract Syntax Tree) schemas.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
export type { HastComment, HastDoctype, HastElement, HastNode, HastProperties, HastRoot, HastText } from "./HastSchema.js";
|
|
7
|
+
export { getTextContent, HastCommentSchema, HastDoctypeSchema, HastElementSchema, HastNodeSchema, HastPropertiesSchema, HastRootSchema, HastTextSchema, isHastComment, isHastElement, isHastText, makeHastComment, makeHastDoctype, makeHastElement, makeHastRoot, makeHastText } from "./HastSchema.js";
|
|
8
|
+
export { HastFromHtml } from "./HastFromHtml.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/hast/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,QAAQ,EACT,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { getTextContent, HastCommentSchema, HastDoctypeSchema, HastElementSchema, HastNodeSchema, HastPropertiesSchema, HastRootSchema, HastTextSchema, isHastComment, isHastElement, isHastText, makeHastComment, makeHastDoctype, makeHastElement, makeHastRoot, makeHastText } from "./HastSchema.js";
|
|
2
|
+
export { HastFromHtml } from "./HastFromHtml.js";
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/hast/index.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,YAAY,EACb,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bi-directional schemas for AST transformations.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
export { DocumentFromConfluence } from "./ConfluenceSchema.js";
|
|
7
|
+
export { ConfluenceToMarkdown, DocumentFromHast, DocumentFromMdast } from "./ConversionSchema.js";
|
|
8
|
+
export { DocumentFromMarkdown } from "./MarkdownSchema.js";
|
|
9
|
+
export * from "./nodes/index.js";
|
|
10
|
+
export { PreprocessedHtmlFromConfluence } from "./preprocessing/index.js";
|
|
11
|
+
export type { PreprocessedHtml } from "./preprocessing/index.js";
|
|
12
|
+
export * from "./hast/index.js";
|
|
13
|
+
export * from "./mdast/index.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,cAAc,kBAAkB,CAAA;AAGhC,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAA;AACzE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGhE,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bi-directional schemas for AST transformations.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
export { DocumentFromConfluence } from "./ConfluenceSchema.js";
|
|
7
|
+
export { ConfluenceToMarkdown, DocumentFromHast, DocumentFromMdast } from "./ConversionSchema.js";
|
|
8
|
+
export { DocumentFromMarkdown } from "./MarkdownSchema.js";
|
|
9
|
+
// Re-export node schemas
|
|
10
|
+
export * from "./nodes/index.js";
|
|
11
|
+
// Re-export preprocessing
|
|
12
|
+
export { PreprocessedHtmlFromConfluence } from "./preprocessing/index.js";
|
|
13
|
+
// Re-export HAST/MDAST types and schemas
|
|
14
|
+
export * from "./hast/index.js";
|
|
15
|
+
export * from "./mdast/index.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,yBAAyB;AACzB,cAAc,kBAAkB,CAAA;AAEhC,0BAA0B;AAC1B,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAA;AAGzE,yCAAyC;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
import type { MdastRoot } from "./MdastSchema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Transform Markdown string to MDAST root.
|
|
5
|
+
*
|
|
6
|
+
* Uses remark-parse to parse Markdown and converts the result to our schema types.
|
|
7
|
+
* Supports bidirectional transformation (decode Markdown -> MDAST, encode MDAST -> Markdown).
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { MdastFromMarkdown } from "@knpkv/confluence-to-markdown/schemas/mdast"
|
|
12
|
+
* import * as Schema from "effect/Schema"
|
|
13
|
+
* import { Effect } from "effect"
|
|
14
|
+
*
|
|
15
|
+
* const program = Effect.gen(function* () {
|
|
16
|
+
* const mdast = yield* Schema.decode(MdastFromMarkdown)("# Hello\n\nWorld")
|
|
17
|
+
* console.log(mdast.children.length) // 2
|
|
18
|
+
* console.log(mdast.children[0].type) // "heading"
|
|
19
|
+
* })
|
|
20
|
+
*
|
|
21
|
+
* Effect.runPromise(program)
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @category Mdast
|
|
25
|
+
*/
|
|
26
|
+
export declare const MdastFromMarkdown: Schema.transformOrFail<typeof Schema.String, Schema.Schema<MdastRoot, {
|
|
27
|
+
type: "root";
|
|
28
|
+
children: ReadonlyArray<unknown>;
|
|
29
|
+
}, never>, never>;
|
|
30
|
+
//# sourceMappingURL=MdastFromMarkdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdastFromMarkdown.d.ts","sourceRoot":"","sources":["../../../src/schemas/mdast/MdastFromMarkdown.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAKvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAwCjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,iBAAiB;;;iBAwC7B,CAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema transformation from Markdown string to MDAST (Markdown Abstract Syntax Tree).
|
|
3
|
+
*
|
|
4
|
+
* Uses remark-parse for Markdown parsing and wraps the result in Effect Schema types.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as ParseResult from "effect/ParseResult";
|
|
10
|
+
import * as Schema from "effect/Schema";
|
|
11
|
+
import remarkGfm from "remark-gfm";
|
|
12
|
+
import remarkParse from "remark-parse";
|
|
13
|
+
import remarkStringify from "remark-stringify";
|
|
14
|
+
import { unified } from "unified";
|
|
15
|
+
import { makeMdastRoot, MdastRootSchema } from "./MdastSchema.js";
|
|
16
|
+
/**
|
|
17
|
+
* Convert unist node from remark-parse to our MdastNode type.
|
|
18
|
+
* For now, we pass through the structure since MdastNode types match unist closely.
|
|
19
|
+
*/
|
|
20
|
+
const convertToMdastRoot = (root) =>
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
makeMdastRoot(root.children);
|
|
23
|
+
/**
|
|
24
|
+
* Convert our MdastRoot type back to unist format for serialization.
|
|
25
|
+
*/
|
|
26
|
+
const convertFromMdastRoot = (root) => ({
|
|
27
|
+
type: "root",
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
children: root.children
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Transform Markdown string to MDAST root.
|
|
33
|
+
*
|
|
34
|
+
* Uses remark-parse to parse Markdown and converts the result to our schema types.
|
|
35
|
+
* Supports bidirectional transformation (decode Markdown -> MDAST, encode MDAST -> Markdown).
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* import { MdastFromMarkdown } from "@knpkv/confluence-to-markdown/schemas/mdast"
|
|
40
|
+
* import * as Schema from "effect/Schema"
|
|
41
|
+
* import { Effect } from "effect"
|
|
42
|
+
*
|
|
43
|
+
* const program = Effect.gen(function* () {
|
|
44
|
+
* const mdast = yield* Schema.decode(MdastFromMarkdown)("# Hello\n\nWorld")
|
|
45
|
+
* console.log(mdast.children.length) // 2
|
|
46
|
+
* console.log(mdast.children[0].type) // "heading"
|
|
47
|
+
* })
|
|
48
|
+
*
|
|
49
|
+
* Effect.runPromise(program)
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @category Mdast
|
|
53
|
+
*/
|
|
54
|
+
export const MdastFromMarkdown = Schema.transformOrFail(Schema.String, MdastRootSchema, {
|
|
55
|
+
strict: true,
|
|
56
|
+
decode: (markdown, _options, ast) => Effect.try({
|
|
57
|
+
try: () => {
|
|
58
|
+
const result = unified()
|
|
59
|
+
.use(remarkParse)
|
|
60
|
+
.use(remarkGfm)
|
|
61
|
+
.parse(markdown);
|
|
62
|
+
return convertToMdastRoot(result);
|
|
63
|
+
},
|
|
64
|
+
catch: (error) => new ParseResult.Type(ast, markdown, `Markdown parse error: ${error instanceof Error ? error.message : String(error)}`)
|
|
65
|
+
}),
|
|
66
|
+
encode: (mdast, _options, ast) => Effect.try({
|
|
67
|
+
try: () => {
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
|
+
const unist = convertFromMdastRoot(mdast);
|
|
70
|
+
return unified()
|
|
71
|
+
.use(remarkGfm)
|
|
72
|
+
.use(remarkStringify, { bullet: "-", emphasis: "_" })
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
74
|
+
.stringify(unist);
|
|
75
|
+
},
|
|
76
|
+
catch: (error) => new ParseResult.Type(ast, mdast, `Markdown stringify error: ${error instanceof Error ? error.message : String(error)}`)
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=MdastFromMarkdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdastFromMarkdown.js","sourceRoot":"","sources":["../../../src/schemas/mdast/MdastFromMarkdown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,eAAe,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAsBjE;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,IAAe,EAAa,EAAE;AACxD,8DAA8D;AAC9D,aAAa,CAAC,IAAI,CAAC,QAAe,CAAC,CAAA;AAErC;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,IAAe,EAAa,EAAE,CAAC,CAAC;IAC5D,IAAI,EAAE,MAAM;IACZ,8DAA8D;IAC9D,QAAQ,EAAE,IAAI,CAAC,QAAe;CAC/B,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,eAAe,CACrD,MAAM,CAAC,MAAM,EACb,eAAe,EACf;IACE,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAClC,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE;YACR,MAAM,MAAM,GAAG,OAAO,EAAE;iBACrB,GAAG,CAAC,WAAW,CAAC;iBAChB,GAAG,CAAC,SAAS,CAAC;iBACd,KAAK,CAAC,QAAQ,CAAc,CAAA;YAC/B,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,IAAI,CAClB,GAAG,EACH,QAAQ,EACR,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClF;KACJ,CAAC;IACJ,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAC/B,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE;YACR,8DAA8D;YAC9D,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAY,CAAC,CAAA;YAChD,OAAO,OAAO,EAAE;iBACb,GAAG,CAAC,SAAS,CAAC;iBACd,GAAG,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;gBACrD,8DAA8D;iBAC7D,SAAS,CAAC,KAAY,CAAC,CAAA;QAC5B,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,IAAI,CAClB,GAAG,EACH,KAAK,EACL,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtF;KACJ,CAAC;CACL,CACF,CAAA"}
|