@knpkv/confluence-to-markdown 0.6.0 → 0.7.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.
Files changed (357) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +21 -0
  3. package/README.md +22 -13
  4. package/dist/AdfPlaceholders.d.ts +42 -0
  5. package/dist/AdfPlaceholders.d.ts.map +1 -0
  6. package/dist/AdfPlaceholders.js +547 -0
  7. package/dist/AdfPlaceholders.js.map +1 -0
  8. package/dist/AdfSchemaValidator.d.ts +37 -0
  9. package/dist/AdfSchemaValidator.d.ts.map +1 -0
  10. package/dist/AdfSchemaValidator.js +37 -0
  11. package/dist/AdfSchemaValidator.js.map +1 -0
  12. package/dist/AdfWalker.d.ts +39 -0
  13. package/dist/AdfWalker.d.ts.map +1 -0
  14. package/dist/AdfWalker.js +527 -0
  15. package/dist/AdfWalker.js.map +1 -0
  16. package/dist/AtlaskitTransformers.d.ts +35 -0
  17. package/dist/AtlaskitTransformers.d.ts.map +1 -0
  18. package/dist/AtlaskitTransformers.js +48 -0
  19. package/dist/AtlaskitTransformers.js.map +1 -0
  20. package/dist/Brand.d.ts +6 -6
  21. package/dist/Brand.d.ts.map +1 -1
  22. package/dist/Brand.js +8 -6
  23. package/dist/Brand.js.map +1 -1
  24. package/dist/ConfluenceAuth.d.ts +4 -4
  25. package/dist/ConfluenceAuth.d.ts.map +1 -1
  26. package/dist/ConfluenceAuth.js +37 -39
  27. package/dist/ConfluenceAuth.js.map +1 -1
  28. package/dist/ConfluenceClient.d.ts +7 -17
  29. package/dist/ConfluenceClient.d.ts.map +1 -1
  30. package/dist/ConfluenceClient.js +81 -38
  31. package/dist/ConfluenceClient.js.map +1 -1
  32. package/dist/ConfluenceConfig.d.ts +3 -3
  33. package/dist/ConfluenceConfig.d.ts.map +1 -1
  34. package/dist/ConfluenceConfig.js +13 -11
  35. package/dist/ConfluenceConfig.js.map +1 -1
  36. package/dist/ConfluenceError.d.ts +68 -16
  37. package/dist/ConfluenceError.d.ts.map +1 -1
  38. package/dist/ConfluenceError.js +30 -1
  39. package/dist/ConfluenceError.js.map +1 -1
  40. package/dist/GitError.d.ts +5 -5
  41. package/dist/GitService.d.ts +11 -3
  42. package/dist/GitService.d.ts.map +1 -1
  43. package/dist/GitService.js +22 -27
  44. package/dist/GitService.js.map +1 -1
  45. package/dist/LocalFileSystem.d.ts +3 -3
  46. package/dist/LocalFileSystem.d.ts.map +1 -1
  47. package/dist/LocalFileSystem.js +6 -6
  48. package/dist/LocalFileSystem.js.map +1 -1
  49. package/dist/MarkdownConverter.d.ts +16 -65
  50. package/dist/MarkdownConverter.d.ts.map +1 -1
  51. package/dist/MarkdownConverter.js +64 -85
  52. package/dist/MarkdownConverter.js.map +1 -1
  53. package/dist/Schemas.d.ts +128 -141
  54. package/dist/Schemas.d.ts.map +1 -1
  55. package/dist/Schemas.js +21 -23
  56. package/dist/Schemas.js.map +1 -1
  57. package/dist/SyncEngine.d.ts +8 -5
  58. package/dist/SyncEngine.d.ts.map +1 -1
  59. package/dist/SyncEngine.js +189 -113
  60. package/dist/SyncEngine.js.map +1 -1
  61. package/dist/bin.js +23 -35
  62. package/dist/bin.js.map +1 -1
  63. package/dist/commands/auth.d.ts +2 -14
  64. package/dist/commands/auth.d.ts.map +1 -1
  65. package/dist/commands/auth.js +11 -16
  66. package/dist/commands/auth.js.map +1 -1
  67. package/dist/commands/clone.d.ts +4 -6
  68. package/dist/commands/clone.d.ts.map +1 -1
  69. package/dist/commands/clone.js +34 -32
  70. package/dist/commands/clone.js.map +1 -1
  71. package/dist/commands/delete.d.ts +2 -10
  72. package/dist/commands/delete.d.ts.map +1 -1
  73. package/dist/commands/delete.js +5 -4
  74. package/dist/commands/delete.js.map +1 -1
  75. package/dist/commands/errorHandler.d.ts +2 -1
  76. package/dist/commands/errorHandler.d.ts.map +1 -1
  77. package/dist/commands/errorHandler.js +22 -15
  78. package/dist/commands/errorHandler.js.map +1 -1
  79. package/dist/commands/fetch.d.ts +27 -0
  80. package/dist/commands/fetch.d.ts.map +1 -0
  81. package/dist/commands/fetch.js +48 -0
  82. package/dist/commands/fetch.js.map +1 -0
  83. package/dist/commands/git.d.ts +7 -10
  84. package/dist/commands/git.d.ts.map +1 -1
  85. package/dist/commands/git.js +6 -6
  86. package/dist/commands/git.js.map +1 -1
  87. package/dist/commands/index.d.ts +1 -0
  88. package/dist/commands/index.d.ts.map +1 -1
  89. package/dist/commands/index.js +1 -0
  90. package/dist/commands/index.js.map +1 -1
  91. package/dist/commands/layers.d.ts +10 -9
  92. package/dist/commands/layers.d.ts.map +1 -1
  93. package/dist/commands/layers.js +41 -30
  94. package/dist/commands/layers.js.map +1 -1
  95. package/dist/commands/new.d.ts +2 -6
  96. package/dist/commands/new.d.ts.map +1 -1
  97. package/dist/commands/new.js +5 -4
  98. package/dist/commands/new.js.map +1 -1
  99. package/dist/commands/pageInput.d.ts +19 -0
  100. package/dist/commands/pageInput.d.ts.map +1 -0
  101. package/dist/commands/pageInput.js +68 -0
  102. package/dist/commands/pageInput.js.map +1 -0
  103. package/dist/commands/root.d.ts +8 -0
  104. package/dist/commands/root.d.ts.map +1 -0
  105. package/dist/commands/root.js +29 -0
  106. package/dist/commands/root.js.map +1 -0
  107. package/dist/commands/sync.d.ts +6 -9
  108. package/dist/commands/sync.d.ts.map +1 -1
  109. package/dist/commands/sync.js +5 -6
  110. package/dist/commands/sync.js.map +1 -1
  111. package/dist/index.d.ts +3 -8
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +2 -13
  114. package/dist/index.js.map +1 -1
  115. package/dist/internal/NodeLayers.d.ts.map +1 -1
  116. package/dist/internal/NodeLayers.js +1 -2
  117. package/dist/internal/NodeLayers.js.map +1 -1
  118. package/dist/internal/adfMetadata.d.ts +30 -0
  119. package/dist/internal/adfMetadata.d.ts.map +1 -0
  120. package/dist/internal/adfMetadata.js +126 -0
  121. package/dist/internal/adfMetadata.js.map +1 -0
  122. package/dist/internal/cleanMarkdown.d.ts +5 -0
  123. package/dist/internal/cleanMarkdown.d.ts.map +1 -0
  124. package/dist/internal/cleanMarkdown.js +13 -0
  125. package/dist/internal/cleanMarkdown.js.map +1 -0
  126. package/dist/internal/frontmatter.d.ts.map +1 -1
  127. package/dist/internal/frontmatter.js +41 -8
  128. package/dist/internal/frontmatter.js.map +1 -1
  129. package/dist/internal/gitCommands.d.ts +9 -3
  130. package/dist/internal/gitCommands.d.ts.map +1 -1
  131. package/dist/internal/gitCommands.js +18 -9
  132. package/dist/internal/gitCommands.js.map +1 -1
  133. package/dist/internal/hashUtils.d.ts +1 -1
  134. package/dist/internal/hashUtils.d.ts.map +1 -1
  135. package/dist/internal/hashUtils.js +1 -1
  136. package/dist/internal/hashUtils.js.map +1 -1
  137. package/dist/internal/oauthServer.d.ts +10 -5
  138. package/dist/internal/oauthServer.d.ts.map +1 -1
  139. package/dist/internal/oauthServer.js +19 -40
  140. package/dist/internal/oauthServer.js.map +1 -1
  141. package/dist/internal/pathUtils.d.ts +1 -1
  142. package/dist/internal/pathUtils.d.ts.map +1 -1
  143. package/dist/internal/pathUtils.js +1 -1
  144. package/dist/internal/pathUtils.js.map +1 -1
  145. package/dist/internal/process.d.ts +15 -0
  146. package/dist/internal/process.d.ts.map +1 -0
  147. package/dist/internal/process.js +10 -0
  148. package/dist/internal/process.js.map +1 -0
  149. package/dist/internal/stdio.d.ts +6 -0
  150. package/dist/internal/stdio.d.ts.map +1 -0
  151. package/dist/internal/stdio.js +15 -0
  152. package/dist/internal/stdio.js.map +1 -0
  153. package/dist/internal/tokenStorage.d.ts +3 -13
  154. package/dist/internal/tokenStorage.d.ts.map +1 -1
  155. package/dist/internal/tokenStorage.js +26 -24
  156. package/dist/internal/tokenStorage.js.map +1 -1
  157. package/dist/internal/userCache.d.ts +1 -1
  158. package/dist/internal/userCache.d.ts.map +1 -1
  159. package/dist/internal/userCache.js +1 -1
  160. package/dist/internal/userCache.js.map +1 -1
  161. package/package.json +30 -30
  162. package/skills/confluence/SKILL.md +143 -0
  163. package/skills/confluence/agents/openai.yaml +4 -0
  164. package/src/AdfPlaceholders.ts +310 -13
  165. package/src/AdfSchemaValidator.ts +2 -4
  166. package/src/AdfWalker.ts +122 -42
  167. package/src/AtlaskitTransformers.ts +2 -4
  168. package/src/Brand.ts +11 -16
  169. package/src/ConfluenceAuth.ts +22 -30
  170. package/src/ConfluenceClient.ts +24 -20
  171. package/src/ConfluenceConfig.ts +14 -14
  172. package/src/GitService.ts +39 -49
  173. package/src/LocalFileSystem.ts +7 -9
  174. package/src/MarkdownConverter.ts +2 -4
  175. package/src/Schemas.ts +13 -12
  176. package/src/SyncEngine.ts +151 -53
  177. package/src/bin.ts +30 -56
  178. package/src/commands/auth.ts +21 -18
  179. package/src/commands/clone.ts +38 -37
  180. package/src/commands/delete.ts +5 -4
  181. package/src/commands/errorHandler.ts +25 -18
  182. package/src/commands/fetch.ts +90 -0
  183. package/src/commands/git.ts +6 -6
  184. package/src/commands/index.ts +1 -0
  185. package/src/commands/layers.ts +53 -33
  186. package/src/commands/new.ts +5 -4
  187. package/src/commands/pageInput.ts +103 -0
  188. package/src/commands/root.ts +59 -0
  189. package/src/commands/sync.ts +7 -6
  190. package/src/internal/NodeLayers.ts +1 -2
  191. package/src/internal/adfMetadata.ts +145 -0
  192. package/src/internal/cleanMarkdown.ts +15 -0
  193. package/src/internal/frontmatter.ts +45 -8
  194. package/src/internal/gitCommands.ts +23 -17
  195. package/src/internal/hashUtils.ts +2 -2
  196. package/src/internal/oauthServer.ts +84 -105
  197. package/src/internal/pathUtils.ts +1 -1
  198. package/src/internal/process.ts +15 -0
  199. package/src/internal/stdio.ts +22 -0
  200. package/src/internal/tokenStorage.ts +39 -29
  201. package/src/internal/userCache.ts +2 -2
  202. package/test/AdfPlaceholders.test.ts +213 -0
  203. package/test/AdfSchemaValidator.test.ts +6 -6
  204. package/test/AdfWalker.test.ts +167 -21
  205. package/test/AtlaskitTransformers.test.ts +4 -4
  206. package/test/Brand.test.ts +11 -11
  207. package/test/GitService.test.ts +6 -2
  208. package/test/MarkdownConverter.test.ts +12 -11
  209. package/test/RoundTrip.test.ts +258 -3
  210. package/test/Schemas.test.ts +40 -40
  211. package/test/adfMetadata.test.ts +110 -0
  212. package/test/cleanMarkdown.test.ts +36 -0
  213. package/test/commandHarness.test.ts +79 -0
  214. package/test/commandHarness.ts +147 -0
  215. package/test/fetch.test.ts +61 -0
  216. package/test/frontmatter.test.ts +41 -0
  217. package/test/integration.test.ts +569 -156
  218. package/test/layers.test.ts +12 -0
  219. package/test/oauthServer.test.ts +4 -5
  220. package/test/pageInput.test.ts +83 -0
  221. package/test/tokenStorage.test.ts +17 -17
  222. package/dist/SchemaConverterError.d.ts +0 -108
  223. package/dist/SchemaConverterError.d.ts.map +0 -1
  224. package/dist/SchemaConverterError.js +0 -84
  225. package/dist/SchemaConverterError.js.map +0 -1
  226. package/dist/ast/BlockNode.d.ts +0 -468
  227. package/dist/ast/BlockNode.d.ts.map +0 -1
  228. package/dist/ast/BlockNode.js +0 -319
  229. package/dist/ast/BlockNode.js.map +0 -1
  230. package/dist/ast/Document.d.ts +0 -244
  231. package/dist/ast/Document.d.ts.map +0 -1
  232. package/dist/ast/Document.js +0 -69
  233. package/dist/ast/Document.js.map +0 -1
  234. package/dist/ast/InlineNode.d.ts +0 -477
  235. package/dist/ast/InlineNode.d.ts.map +0 -1
  236. package/dist/ast/InlineNode.js +0 -263
  237. package/dist/ast/InlineNode.js.map +0 -1
  238. package/dist/ast/MacroNode.d.ts +0 -267
  239. package/dist/ast/MacroNode.d.ts.map +0 -1
  240. package/dist/ast/MacroNode.js +0 -164
  241. package/dist/ast/MacroNode.js.map +0 -1
  242. package/dist/ast/index.d.ts +0 -10
  243. package/dist/ast/index.d.ts.map +0 -1
  244. package/dist/ast/index.js +0 -14
  245. package/dist/ast/index.js.map +0 -1
  246. package/dist/parsers/ConfluenceParser.d.ts +0 -26
  247. package/dist/parsers/ConfluenceParser.d.ts.map +0 -1
  248. package/dist/parsers/ConfluenceParser.js +0 -792
  249. package/dist/parsers/ConfluenceParser.js.map +0 -1
  250. package/dist/parsers/MarkdownParser.d.ts +0 -26
  251. package/dist/parsers/MarkdownParser.d.ts.map +0 -1
  252. package/dist/parsers/MarkdownParser.js +0 -873
  253. package/dist/parsers/MarkdownParser.js.map +0 -1
  254. package/dist/parsers/index.d.ts +0 -8
  255. package/dist/parsers/index.d.ts.map +0 -1
  256. package/dist/parsers/index.js +0 -8
  257. package/dist/parsers/index.js.map +0 -1
  258. package/dist/parsers/preprocessing/ConfluencePreprocessing.d.ts +0 -23
  259. package/dist/parsers/preprocessing/ConfluencePreprocessing.d.ts.map +0 -1
  260. package/dist/parsers/preprocessing/ConfluencePreprocessing.js +0 -323
  261. package/dist/parsers/preprocessing/ConfluencePreprocessing.js.map +0 -1
  262. package/dist/parsers/preprocessing/index.d.ts +0 -7
  263. package/dist/parsers/preprocessing/index.d.ts.map +0 -1
  264. package/dist/parsers/preprocessing/index.js +0 -7
  265. package/dist/parsers/preprocessing/index.js.map +0 -1
  266. package/dist/schemas/ConfluenceSchema.d.ts +0 -21
  267. package/dist/schemas/ConfluenceSchema.d.ts.map +0 -1
  268. package/dist/schemas/ConfluenceSchema.js +0 -38
  269. package/dist/schemas/ConfluenceSchema.js.map +0 -1
  270. package/dist/schemas/ConversionSchema.d.ts +0 -35
  271. package/dist/schemas/ConversionSchema.d.ts.map +0 -1
  272. package/dist/schemas/ConversionSchema.js +0 -208
  273. package/dist/schemas/ConversionSchema.js.map +0 -1
  274. package/dist/schemas/MarkdownSchema.d.ts +0 -21
  275. package/dist/schemas/MarkdownSchema.d.ts.map +0 -1
  276. package/dist/schemas/MarkdownSchema.js +0 -38
  277. package/dist/schemas/MarkdownSchema.js.map +0 -1
  278. package/dist/schemas/hast/HastFromHtml.d.ts +0 -27
  279. package/dist/schemas/hast/HastFromHtml.d.ts.map +0 -1
  280. package/dist/schemas/hast/HastFromHtml.js +0 -107
  281. package/dist/schemas/hast/HastFromHtml.js.map +0 -1
  282. package/dist/schemas/hast/HastSchema.d.ts +0 -195
  283. package/dist/schemas/hast/HastSchema.d.ts.map +0 -1
  284. package/dist/schemas/hast/HastSchema.js +0 -183
  285. package/dist/schemas/hast/HastSchema.js.map +0 -1
  286. package/dist/schemas/hast/index.d.ts +0 -9
  287. package/dist/schemas/hast/index.d.ts.map +0 -1
  288. package/dist/schemas/hast/index.js +0 -3
  289. package/dist/schemas/hast/index.js.map +0 -1
  290. package/dist/schemas/index.d.ts +0 -14
  291. package/dist/schemas/index.d.ts.map +0 -1
  292. package/dist/schemas/index.js +0 -16
  293. package/dist/schemas/index.js.map +0 -1
  294. package/dist/schemas/mdast/MdastFromMarkdown.d.ts +0 -30
  295. package/dist/schemas/mdast/MdastFromMarkdown.d.ts.map +0 -1
  296. package/dist/schemas/mdast/MdastFromMarkdown.js +0 -79
  297. package/dist/schemas/mdast/MdastFromMarkdown.js.map +0 -1
  298. package/dist/schemas/mdast/MdastSchema.d.ts +0 -385
  299. package/dist/schemas/mdast/MdastSchema.d.ts.map +0 -1
  300. package/dist/schemas/mdast/MdastSchema.js +0 -266
  301. package/dist/schemas/mdast/MdastSchema.js.map +0 -1
  302. package/dist/schemas/mdast/index.d.ts +0 -10
  303. package/dist/schemas/mdast/index.d.ts.map +0 -1
  304. package/dist/schemas/mdast/index.js +0 -4
  305. package/dist/schemas/mdast/index.js.map +0 -1
  306. package/dist/schemas/mdast/mdastToString.d.ts +0 -13
  307. package/dist/schemas/mdast/mdastToString.d.ts.map +0 -1
  308. package/dist/schemas/mdast/mdastToString.js +0 -85
  309. package/dist/schemas/mdast/mdastToString.js.map +0 -1
  310. package/dist/schemas/nodes/block/BlockSchema.d.ts +0 -43
  311. package/dist/schemas/nodes/block/BlockSchema.d.ts.map +0 -1
  312. package/dist/schemas/nodes/block/BlockSchema.js +0 -634
  313. package/dist/schemas/nodes/block/BlockSchema.js.map +0 -1
  314. package/dist/schemas/nodes/block/index.d.ts +0 -7
  315. package/dist/schemas/nodes/block/index.d.ts.map +0 -1
  316. package/dist/schemas/nodes/block/index.js +0 -7
  317. package/dist/schemas/nodes/block/index.js.map +0 -1
  318. package/dist/schemas/nodes/index.d.ts +0 -9
  319. package/dist/schemas/nodes/index.d.ts.map +0 -1
  320. package/dist/schemas/nodes/index.js +0 -12
  321. package/dist/schemas/nodes/index.js.map +0 -1
  322. package/dist/schemas/nodes/inline/InlineSchema.d.ts +0 -48
  323. package/dist/schemas/nodes/inline/InlineSchema.d.ts.map +0 -1
  324. package/dist/schemas/nodes/inline/InlineSchema.js +0 -436
  325. package/dist/schemas/nodes/inline/InlineSchema.js.map +0 -1
  326. package/dist/schemas/nodes/inline/index.d.ts +0 -7
  327. package/dist/schemas/nodes/inline/index.d.ts.map +0 -1
  328. package/dist/schemas/nodes/inline/index.js +0 -7
  329. package/dist/schemas/nodes/inline/index.js.map +0 -1
  330. package/dist/schemas/nodes/macro/MacroSchema.d.ts +0 -27
  331. package/dist/schemas/nodes/macro/MacroSchema.d.ts.map +0 -1
  332. package/dist/schemas/nodes/macro/MacroSchema.js +0 -162
  333. package/dist/schemas/nodes/macro/MacroSchema.js.map +0 -1
  334. package/dist/schemas/nodes/macro/index.d.ts +0 -7
  335. package/dist/schemas/nodes/macro/index.d.ts.map +0 -1
  336. package/dist/schemas/nodes/macro/index.js +0 -7
  337. package/dist/schemas/nodes/macro/index.js.map +0 -1
  338. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts +0 -53
  339. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts.map +0 -1
  340. package/dist/schemas/preprocessing/ConfluencePreprocessor.js +0 -349
  341. package/dist/schemas/preprocessing/ConfluencePreprocessor.js.map +0 -1
  342. package/dist/schemas/preprocessing/index.d.ts +0 -8
  343. package/dist/schemas/preprocessing/index.d.ts.map +0 -1
  344. package/dist/schemas/preprocessing/index.js +0 -2
  345. package/dist/schemas/preprocessing/index.js.map +0 -1
  346. package/dist/serializers/ConfluenceSerializer.d.ts +0 -30
  347. package/dist/serializers/ConfluenceSerializer.d.ts.map +0 -1
  348. package/dist/serializers/ConfluenceSerializer.js +0 -551
  349. package/dist/serializers/ConfluenceSerializer.js.map +0 -1
  350. package/dist/serializers/MarkdownSerializer.d.ts +0 -34
  351. package/dist/serializers/MarkdownSerializer.d.ts.map +0 -1
  352. package/dist/serializers/MarkdownSerializer.js +0 -355
  353. package/dist/serializers/MarkdownSerializer.js.map +0 -1
  354. package/dist/serializers/index.d.ts +0 -8
  355. package/dist/serializers/index.d.ts.map +0 -1
  356. package/dist/serializers/index.js +0 -8
  357. package/dist/serializers/index.js.map +0 -1
@@ -1,208 +0,0 @@
1
- /**
2
- * Direct conversion schema: Confluence HTML <-> Markdown.
3
- *
4
- * Composes preprocessing, parsing, and serialization into a single transform.
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 { makeDocument } from "../ast/Document.js";
12
- import { HastFromHtml, isHastElement } from "./hast/index.js";
13
- import { MdastFromMarkdown, mdastToString } from "./mdast/index.js";
14
- import { blockNodeFromHastElement, blockNodeFromMdast, blockNodeToMdast } from "./nodes/index.js";
15
- import { macroNodeFromHastElement, macroNodeToMdast } from "./nodes/macro/index.js";
16
- import { PreprocessedHtmlFromConfluence } from "./preprocessing/index.js";
17
- /**
18
- * Parse HAST children to simple block nodes.
19
- * Note: Returns BlockNode which is broader than SimpleBlock used by macros,
20
- * but at runtime only simple blocks are returned from single-level parsing.
21
- */
22
- const parseBlockChildren = (children) => Effect.forEach(children.filter(isHastElement), (el) => blockNodeFromHastElement(el).pipe(Effect.map((node) => (node !== null ? [node] : [])))).pipe(Effect.map((arrays) => arrays.flat()));
23
- /**
24
- * Parse single HAST element to document node (block or macro).
25
- */
26
- const documentNodeFromHastElement = (element) => Effect.gen(function* () {
27
- // Try macro first
28
- const macro = yield* macroNodeFromHastElement(element, parseBlockChildren);
29
- if (macro !== null) {
30
- return macro;
31
- }
32
- // Fall back to block
33
- const block = yield* blockNodeFromHastElement(element);
34
- return block;
35
- });
36
- /**
37
- * Parse HAST root to Document AST.
38
- */
39
- const documentFromHastRoot = (root, rawConfluence) => Effect.gen(function* () {
40
- const elements = root.children.filter(isHastElement);
41
- const nodeArrays = yield* Effect.forEach(elements, (el) => documentNodeFromHastElement(el).pipe(Effect.map((node) => (node !== null ? [node] : []))));
42
- const children = nodeArrays.flat();
43
- return makeDocument(children, rawConfluence);
44
- });
45
- /**
46
- * Parse MDAST root to Document AST.
47
- */
48
- const documentFromMdastRoot = (root) => {
49
- const children = [];
50
- for (const node of root.children) {
51
- const blockContent = node;
52
- const block = blockNodeFromMdast(blockContent);
53
- children.push(block);
54
- }
55
- return makeDocument(children);
56
- };
57
- /**
58
- * Check if node is a macro node.
59
- */
60
- const isMacroNode = (node) => {
61
- return node._tag === "InfoPanel" ||
62
- node._tag === "ExpandMacro" ||
63
- node._tag === "TocMacro" ||
64
- node._tag === "CodeMacro" ||
65
- node._tag === "StatusMacro";
66
- };
67
- /**
68
- * Serialize Document AST to Markdown.
69
- */
70
- const documentToMarkdown = (doc) => {
71
- const parts = [];
72
- for (const node of doc.children) {
73
- const mdast = isMacroNode(node)
74
- ? macroNodeToMdast(node)
75
- : blockNodeToMdast(node);
76
- parts.push(mdastToString(mdast));
77
- }
78
- return parts.join("\n\n");
79
- };
80
- /**
81
- * Schema for transforming preprocessed Confluence HTML to Document AST.
82
- */
83
- export const DocumentFromHast = Schema.transformOrFail(Schema.Any, Schema.Any, {
84
- strict: true,
85
- decode: (root, _options, ast) => documentFromHastRoot(root).pipe(Effect.mapError((e) => new ParseResult.Type(ast, root, e.message))),
86
- encode: (_doc, _options, ast) => Effect.fail(new ParseResult.Type(ast, _doc, "Document to HAST encoding not implemented"))
87
- });
88
- /**
89
- * Schema for transforming MDAST root to Document AST.
90
- */
91
- export const DocumentFromMdast = Schema.transformOrFail(Schema.Any, Schema.Any, {
92
- strict: true,
93
- decode: (root, _options, _ast) => Effect.succeed(documentFromMdastRoot(root)),
94
- encode: (_doc, _options, ast) => Effect.fail(new ParseResult.Type(ast, _doc, "Document to MDAST encoding not implemented"))
95
- });
96
- /**
97
- * Direct conversion schema: Confluence HTML string <-> Markdown string.
98
- *
99
- * @example
100
- * ```typescript
101
- * import { ConfluenceToMarkdown } from "@knpkv/confluence-to-markdown/schemas/ConversionSchema"
102
- * import { Schema, Effect } from "effect"
103
- *
104
- * // Decode: Confluence HTML -> Markdown
105
- * const markdown = Effect.runSync(
106
- * Schema.decode(ConfluenceToMarkdown)(confluenceHtml)
107
- * )
108
- *
109
- * // Encode: Markdown -> Confluence HTML (limited support)
110
- * const html = Effect.runSync(
111
- * Schema.encode(ConfluenceToMarkdown)(markdown)
112
- * )
113
- * ```
114
- *
115
- * @category Schemas
116
- */
117
- export const ConfluenceToMarkdown = Schema.transformOrFail(Schema.String, Schema.String, {
118
- strict: true,
119
- decode: (html, _options, ast) => Effect.gen(function* () {
120
- // Preprocess
121
- const preprocessed = yield* Schema.decode(PreprocessedHtmlFromConfluence)(html).pipe(Effect.mapError((e) => new ParseResult.Type(ast, html, `Preprocessing failed: ${e.message}`)));
122
- // Parse to HAST
123
- const hast = yield* Schema.decode(HastFromHtml)(preprocessed).pipe(Effect.mapError((e) => new ParseResult.Type(ast, html, `HAST parsing failed: ${e.message}`)));
124
- // Convert to Document
125
- const doc = yield* documentFromHastRoot(hast, html).pipe(Effect.mapError((e) => new ParseResult.Type(ast, html, `Document conversion failed: ${e.message}`)));
126
- // Serialize to Markdown
127
- return documentToMarkdown(doc);
128
- }),
129
- encode: (md, _options, ast) => Schema.decode(MdastFromMarkdown)(md).pipe(Effect.mapError((e) => new ParseResult.Type(ast, md, `MDAST parsing failed: ${e.message}`)), Effect.map((mdast) => {
130
- const doc = documentFromMdastRoot(mdast);
131
- // Note: Full HTML serialization is complex; return basic HTML
132
- // For full fidelity, use the existing ConfluenceSerializer
133
- const parts = [];
134
- for (const node of doc.children) {
135
- parts.push(documentNodeToHtml(node));
136
- }
137
- return parts.join("\n");
138
- }))
139
- });
140
- /**
141
- * Basic document node to HTML conversion.
142
- */
143
- const documentNodeToHtml = (node) => {
144
- switch (node._tag) {
145
- case "Heading":
146
- return `<h${node.level}>${node.children.map(inlineToHtml).join("")}</h${node.level}>`;
147
- case "Paragraph":
148
- return `<p>${node.children.map(inlineToHtml).join("")}</p>`;
149
- case "CodeBlock":
150
- return `<pre><code${node.language ? ` class="language-${node.language}"` : ""}>${escapeHtml(node.code)}</code></pre>`;
151
- case "ThematicBreak":
152
- return "<hr />";
153
- case "Image":
154
- return `<img src="${escapeHtml(node.src ?? "")}" alt="${escapeHtml(node.alt ?? "")}" />`;
155
- case "BlockQuote":
156
- return `<blockquote>${node.children.map((c) => documentNodeToHtml(c)).join("")}</blockquote>`;
157
- case "List": {
158
- const tag = node.ordered ? "ol" : "ul";
159
- return `<${tag}>${node.children.map((item) => `<li>${item.children.map((c) => documentNodeToHtml(c)).join("")}</li>`).join("")}</${tag}>`;
160
- }
161
- case "Table":
162
- return `<table>${node.rows.map((row) => `<tr>${row.cells.map((cell) => cell.isHeader
163
- ? `<th>${cell.children.map(inlineToHtml).join("")}</th>`
164
- : `<td>${cell.children.map(inlineToHtml).join("")}</td>`).join("")}</tr>`).join("")}</table>`;
165
- case "InfoPanel":
166
- return `<div data-macro="${node.panelType}">${node.children.map((c) => documentNodeToHtml(c)).join("")}</div>`;
167
- case "ExpandMacro":
168
- return `<details><summary>${escapeHtml(node.title ?? "")}</summary>${node.children.map((c) => documentNodeToHtml(c)).join("")}</details>`;
169
- case "TocMacro":
170
- return `<nav data-macro="toc"></nav>`;
171
- case "CodeMacro":
172
- return `<pre data-macro="code"${node.language ? ` data-language="${node.language}"` : ""}><code>${escapeHtml(node.code)}</code></pre>`;
173
- case "StatusMacro":
174
- return `<span data-macro="status" data-color="${node.color}">${escapeHtml(node.text)}</span>`;
175
- default:
176
- return "";
177
- }
178
- };
179
- /**
180
- * Basic inline node to HTML.
181
- */
182
- const inlineToHtml = (node) => {
183
- switch (node._tag) {
184
- case "Text":
185
- return escapeHtml(node.value ?? "");
186
- case "Strong":
187
- return `<strong>${node.children?.map(inlineToHtml).join("") ?? ""}</strong>`;
188
- case "Emphasis":
189
- return `<em>${node.children?.map(inlineToHtml).join("") ?? ""}</em>`;
190
- case "InlineCode":
191
- return `<code>${escapeHtml(node.value ?? "")}</code>`;
192
- case "Link":
193
- return `<a href="${escapeHtml(node.url ?? "")}">${node.children?.map(inlineToHtml).join("") ?? ""}</a>`;
194
- case "LineBreak":
195
- return "<br />";
196
- default:
197
- return "";
198
- }
199
- };
200
- /**
201
- * Escape HTML special characters.
202
- */
203
- const escapeHtml = (str) => str
204
- .replace(/&/g, "&amp;")
205
- .replace(/</g, "&lt;")
206
- .replace(/>/g, "&gt;")
207
- .replace(/"/g, "&quot;");
208
- //# sourceMappingURL=ConversionSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConversionSchema.js","sourceRoot":"","sources":["../../src/schemas/ConversionSchema.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import * as Schema from "effect/Schema";
2
- import type { Document } from "../ast/Document.js";
3
- /**
4
- * Bi-directional schema: Markdown string <-> Document AST.
5
- *
6
- * @example
7
- * ```typescript
8
- * import { DocumentFromMarkdown } from "@knpkv/confluence-to-markdown/schemas/MarkdownSchema"
9
- * import { Schema, Effect } from "effect"
10
- *
11
- * // Decode: Markdown -> AST
12
- * const decodeResult = Schema.decodeUnknown(DocumentFromMarkdown)(markdownString)
13
- *
14
- * // Encode: AST -> Markdown
15
- * const encodeResult = Schema.encode(DocumentFromMarkdown)(document)
16
- * ```
17
- *
18
- * @category Schemas
19
- */
20
- export declare const DocumentFromMarkdown: Schema.Schema<Document, string, never>;
21
- //# sourceMappingURL=MarkdownSchema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownSchema.d.ts","sourceRoot":"","sources":["../../src/schemas/MarkdownSchema.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAUlD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAC9C,QAAQ,EACR,MAAM,EACN,KAAK,CAiBN,CAAA"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Bi-directional schema for Markdown <-> AST transformation.
3
- *
4
- * @module
5
- */
6
- import * as Effect from "effect/Effect";
7
- import * as ParseResult from "effect/ParseResult";
8
- import * as Schema from "effect/Schema";
9
- import { parseMarkdown } from "../parsers/MarkdownParser.js";
10
- import { serializeToMarkdown } from "../serializers/MarkdownSerializer.js";
11
- /**
12
- * Schema.Type placeholder for Document to use with transformOrFail.
13
- * We use Schema.Any since Document is already a union type.
14
- */
15
- const DocumentSchema = Schema.Any;
16
- /**
17
- * Bi-directional schema: Markdown string <-> Document AST.
18
- *
19
- * @example
20
- * ```typescript
21
- * import { DocumentFromMarkdown } from "@knpkv/confluence-to-markdown/schemas/MarkdownSchema"
22
- * import { Schema, Effect } from "effect"
23
- *
24
- * // Decode: Markdown -> AST
25
- * const decodeResult = Schema.decodeUnknown(DocumentFromMarkdown)(markdownString)
26
- *
27
- * // Encode: AST -> Markdown
28
- * const encodeResult = Schema.encode(DocumentFromMarkdown)(document)
29
- * ```
30
- *
31
- * @category Schemas
32
- */
33
- export const DocumentFromMarkdown = Schema.transformOrFail(Schema.String, DocumentSchema, {
34
- strict: true,
35
- decode: (md, _opts, ast) => Effect.mapError(parseMarkdown(md), (err) => new ParseResult.Type(ast, md, err.message)),
36
- encode: (doc, _opts, ast) => Effect.mapError(serializeToMarkdown(doc), (err) => new ParseResult.Type(ast, doc, err.message))
37
- });
38
- //# sourceMappingURL=MarkdownSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownSchema.js","sourceRoot":"","sources":["../../src/schemas/MarkdownSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAE1E;;;GAGG;AACH,MAAM,cAAc,GAAG,MAAM,CAAC,GAAwC,CAAA;AAEtE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAI7B,MAAM,CAAC,eAAe,CACxB,MAAM,CAAC,MAAM,EACb,cAAc,EACd;IACE,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACzB,MAAM,CAAC,QAAQ,CACb,aAAa,CAAC,EAAE,CAAC,EACjB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CACpD;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAC1B,MAAM,CAAC,QAAQ,CACb,mBAAmB,CAAC,GAAG,CAAC,EACxB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CACrD;CACJ,CACF,CAAA"}
@@ -1,27 +0,0 @@
1
- import * as Schema from "effect/Schema";
2
- import type { HastRoot } from "./HastSchema.js";
3
- /**
4
- * Transform HTML string to HAST root.
5
- *
6
- * Uses rehype-parse to parse HTML and converts the result to our schema types.
7
- * Supports bidirectional transformation (decode HTML -> HAST, encode HAST -> HTML).
8
- *
9
- * @example
10
- * ```typescript
11
- * import { HastFromHtml } from "@knpkv/confluence-to-markdown/schemas/hast"
12
- * import * as Schema from "effect/Schema"
13
- * import { Effect } from "effect"
14
- *
15
- * const program = Effect.gen(function* () {
16
- * const hast = yield* Schema.decode(HastFromHtml)("<h1>Hello</h1><p>World</p>")
17
- * console.log(hast.children.length) // 2
18
- * console.log(hast.children[0]._tag) // "element"
19
- * })
20
- *
21
- * Effect.runPromise(program)
22
- * ```
23
- *
24
- * @category Hast
25
- */
26
- export declare const HastFromHtml: Schema.Schema<HastRoot, string>;
27
- //# sourceMappingURL=HastFromHtml.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HastFromHtml.d.ts","sourceRoot":"","sources":["../../../src/schemas/hast/HastFromHtml.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAiFzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAmCxD,CAAA"}
@@ -1,107 +0,0 @@
1
- /**
2
- * Schema transformation from HTML string to HAST (Hypertext Abstract Syntax Tree).
3
- *
4
- * Uses rehype-parse for HTML 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 rehypeParse from "rehype-parse";
12
- import rehypeStringify from "rehype-stringify";
13
- import { unified } from "unified";
14
- import { HastRootSchema, makeHastComment, makeHastDoctype, makeHastElement, makeHastRoot, makeHastText } from "./HastSchema.js";
15
- /**
16
- * Convert unist node from rehype-parse to our HastNode type.
17
- */
18
- const convertToHastNode = (node) => {
19
- switch (node.type) {
20
- case "text":
21
- return makeHastText(node.value ?? "");
22
- case "comment":
23
- return makeHastComment(node.value ?? "");
24
- case "doctype":
25
- return makeHastDoctype();
26
- case "element":
27
- return makeHastElement(node.tagName ?? "div", node.properties ?? {}, (node.children ?? []).map(convertToHastNode));
28
- default:
29
- // Unknown node type - treat as comment to preserve
30
- return makeHastComment(`unknown:${node.type}`);
31
- }
32
- };
33
- /**
34
- * Convert our HastNode type back to unist format for serialization.
35
- */
36
- const convertFromHastNode = (node) => {
37
- switch (node._tag) {
38
- case "text":
39
- return { type: "text", value: node.value };
40
- case "comment":
41
- return { type: "comment", value: node.value };
42
- case "doctype":
43
- return { type: "doctype" };
44
- case "element":
45
- return {
46
- type: "element",
47
- tagName: node.tagName,
48
- properties: node.properties,
49
- children: node.children.map(convertFromHastNode)
50
- };
51
- }
52
- };
53
- /**
54
- * Convert unist root to HastRoot.
55
- */
56
- const convertToHastRoot = (root) => makeHastRoot(root.children.map(convertToHastNode));
57
- /**
58
- * Convert HastRoot back to unist root for serialization.
59
- */
60
- const convertFromHastRoot = (root) => ({
61
- type: "root",
62
- children: root.children.map(convertFromHastNode)
63
- });
64
- /**
65
- * Transform HTML string to HAST root.
66
- *
67
- * Uses rehype-parse to parse HTML and converts the result to our schema types.
68
- * Supports bidirectional transformation (decode HTML -> HAST, encode HAST -> HTML).
69
- *
70
- * @example
71
- * ```typescript
72
- * import { HastFromHtml } from "@knpkv/confluence-to-markdown/schemas/hast"
73
- * import * as Schema from "effect/Schema"
74
- * import { Effect } from "effect"
75
- *
76
- * const program = Effect.gen(function* () {
77
- * const hast = yield* Schema.decode(HastFromHtml)("<h1>Hello</h1><p>World</p>")
78
- * console.log(hast.children.length) // 2
79
- * console.log(hast.children[0]._tag) // "element"
80
- * })
81
- *
82
- * Effect.runPromise(program)
83
- * ```
84
- *
85
- * @category Hast
86
- */
87
- export const HastFromHtml = Schema.transformOrFail(Schema.String, HastRootSchema, {
88
- strict: true,
89
- decode: (html, _options, ast) => Effect.try({
90
- try: () => {
91
- const result = unified()
92
- .use(rehypeParse, { fragment: true })
93
- .parse(html);
94
- return convertToHastRoot(result);
95
- },
96
- catch: (error) => new ParseResult.Type(ast, html, `HTML parse error: ${error instanceof Error ? error.message : String(error)}`)
97
- }),
98
- encode: (hast, _options, ast) => Effect.try({
99
- try: () => {
100
- const unist = convertFromHastRoot(hast);
101
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
- return unified().use(rehypeStringify).stringify(unist);
103
- },
104
- catch: (error) => new ParseResult.Type(ast, hast, `HTML stringify error: ${error instanceof Error ? error.message : String(error)}`)
105
- })
106
- });
107
- //# sourceMappingURL=HastFromHtml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HastFromHtml.js","sourceRoot":"","sources":["../../../src/schemas/hast/HastFromHtml.ts"],"names":[],"mappings":"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"}
@@ -1,195 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"HastSchema.d.ts","sourceRoot":"","sources":["../../../src/schemas/hast/HastSchema.ts"],"names":[],"mappings":"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"}