@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,30 +0,0 @@
1
- /**
2
- * Serializer for AST to Confluence storage format (HTML).
3
- *
4
- * @module
5
- */
6
- import * as Effect from "effect/Effect";
7
- import type { Document } from "../ast/Document.js";
8
- import type { SerializeError } from "../SchemaConverterError.js";
9
- /**
10
- * Serialize Document AST to Confluence storage format HTML.
11
- *
12
- * @example
13
- * ```typescript
14
- * import { serializeToConfluence } from "@knpkv/confluence-to-markdown/serializers/ConfluenceSerializer"
15
- * import { makeDocument, Heading, Text } from "@knpkv/confluence-to-markdown/ast"
16
- * import { Effect } from "effect"
17
- *
18
- * Effect.gen(function* () {
19
- * const doc = makeDocument([
20
- * new Heading({ level: 1, children: [new Text({ value: "Title" })] })
21
- * ])
22
- * const html = yield* serializeToConfluence(doc)
23
- * console.log(html) // <h1>Title</h1>
24
- * })
25
- * ```
26
- *
27
- * @category Serializers
28
- */
29
- export declare const serializeToConfluence: (doc: Document) => Effect.Effect<string, SerializeError>;
30
- //# sourceMappingURL=ConfluenceSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfluenceSerializer.d.ts","sourceRoot":"","sources":["../../src/serializers/ConfluenceSerializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAA;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAetF,CAAA"}
@@ -1,551 +0,0 @@
1
- /**
2
- * Serializer for AST to Confluence storage format (HTML).
3
- *
4
- * @module
5
- */
6
- import * as Effect from "effect/Effect";
7
- /**
8
- * Serialize Document AST to Confluence storage format HTML.
9
- *
10
- * @example
11
- * ```typescript
12
- * import { serializeToConfluence } from "@knpkv/confluence-to-markdown/serializers/ConfluenceSerializer"
13
- * import { makeDocument, Heading, Text } from "@knpkv/confluence-to-markdown/ast"
14
- * import { Effect } from "effect"
15
- *
16
- * Effect.gen(function* () {
17
- * const doc = makeDocument([
18
- * new Heading({ level: 1, children: [new Text({ value: "Title" })] })
19
- * ])
20
- * const html = yield* serializeToConfluence(doc)
21
- * console.log(html) // <h1>Title</h1>
22
- * })
23
- * ```
24
- *
25
- * @category Serializers
26
- */
27
- export const serializeToConfluence = (doc) => Effect.gen(function* () {
28
- // 1-to-1 roundtrip: if rawConfluence is available, return it as-is
29
- if (doc.rawConfluence !== undefined) {
30
- return doc.rawConfluence;
31
- }
32
- const parts = [];
33
- for (const node of doc.children) {
34
- const serialized = yield* serializeDocumentNode(node);
35
- parts.push(serialized);
36
- }
37
- const raw = parts.join("\n");
38
- // Post-process to reconstruct layouts from markers
39
- return reconstructLayouts(raw);
40
- });
41
- /**
42
- * Reconstruct layouts from marker comments.
43
- *
44
- * Markers:
45
- * - <!--cf:layout-start-->
46
- * - <!--cf:section:index;type;breakoutMode;breakoutWidth;cellCount-->
47
- * - <!--cf:cell:sectionIndex;cellIndex-->
48
- * - <!--cf:section-end:index-->
49
- * - <!--cf:layout-end-->
50
- */
51
- const reconstructLayouts = (html) => {
52
- // Check if there are any layout markers
53
- if (!html.includes("<!--cf:layout-start-->")) {
54
- return html;
55
- }
56
- let result = html;
57
- // Process each layout block
58
- const layoutRegex = /<!--cf:layout-start-->([\s\S]*?)<!--cf:layout-end-->/g;
59
- result = result.replace(layoutRegex, (_, layoutContent) => {
60
- // Parse sections from the content
61
- const sections = [];
62
- // Find all section markers
63
- const sectionRegex = /<!--cf:section:(\d+);([^;]*);([^;]*);([^;]*);(\d+)-->/g;
64
- let sectionMatch;
65
- const sectionMeta = [];
66
- while ((sectionMatch = sectionRegex.exec(layoutContent)) !== null) {
67
- sectionMeta.push({
68
- index: parseInt(sectionMatch[1] ?? "0"),
69
- type: decodeURIComponent(sectionMatch[2] ?? "fixed-width"),
70
- breakoutMode: decodeURIComponent(sectionMatch[3] ?? ""),
71
- breakoutWidth: decodeURIComponent(sectionMatch[4] ?? ""),
72
- cellCount: parseInt(sectionMatch[5] ?? "0")
73
- });
74
- }
75
- // For each section, extract cell content
76
- for (const meta of sectionMeta) {
77
- const cells = [];
78
- for (let cellIndex = 0; cellIndex < meta.cellCount; cellIndex++) {
79
- const cellStartMarker = `<!--cf:cell:${meta.index};${cellIndex}-->`;
80
- const nextCellMarker = `<!--cf:cell:${meta.index};${cellIndex + 1}-->`;
81
- const sectionEndMarker = `<!--cf:section-end:${meta.index}-->`;
82
- const nextSectionMarker = `<!--cf:section:${meta.index + 1};`;
83
- const cellStart = layoutContent.indexOf(cellStartMarker);
84
- if (cellStart === -1)
85
- continue;
86
- const contentStart = cellStart + cellStartMarker.length;
87
- // Find where this cell ends - either next cell, section end, or next section
88
- let cellEnd = layoutContent.length;
89
- const nextCell = layoutContent.indexOf(nextCellMarker, contentStart);
90
- const secEnd = layoutContent.indexOf(sectionEndMarker, contentStart);
91
- const nextSec = layoutContent.indexOf(nextSectionMarker, contentStart);
92
- if (nextCell !== -1 && nextCell < cellEnd)
93
- cellEnd = nextCell;
94
- if (secEnd !== -1 && secEnd < cellEnd)
95
- cellEnd = secEnd;
96
- if (nextSec !== -1 && nextSec < cellEnd)
97
- cellEnd = nextSec;
98
- const cellContent = layoutContent.slice(contentStart, cellEnd).trim();
99
- cells.push(cellContent);
100
- }
101
- sections.push({
102
- type: meta.type,
103
- breakoutMode: meta.breakoutMode,
104
- breakoutWidth: meta.breakoutWidth,
105
- cells
106
- });
107
- }
108
- // Build the layout HTML
109
- const sectionHtml = sections.map((section) => {
110
- const typeAttr = ` ac:type="${escapeHtml(section.type)}"`;
111
- const breakoutModeAttr = section.breakoutMode ? ` ac:breakout-mode="${escapeHtml(section.breakoutMode)}"` : "";
112
- const breakoutWidthAttr = section.breakoutWidth ? ` ac:breakout-width="${escapeHtml(section.breakoutWidth)}"` : "";
113
- const cellsHtml = section.cells.map((c) => `<ac:layout-cell>${c}</ac:layout-cell>`).join("");
114
- return `<ac:layout-section${typeAttr}${breakoutModeAttr}${breakoutWidthAttr}>${cellsHtml}</ac:layout-section>`;
115
- }).join("");
116
- return `<ac:layout>${sectionHtml}</ac:layout>`;
117
- });
118
- return result;
119
- };
120
- /**
121
- * Serialize a document node to Confluence HTML.
122
- */
123
- const serializeDocumentNode = (node) => Effect.gen(function* () {
124
- switch (node._tag) {
125
- // Block nodes
126
- case "Heading":
127
- return yield* serializeHeading({ level: node.level, children: node.children });
128
- case "Paragraph":
129
- return yield* serializeParagraph({
130
- children: node.children,
131
- alignment: node.alignment,
132
- indent: node.indent
133
- });
134
- case "CodeBlock":
135
- return serializeCodeBlock({ code: node.code, language: node.language });
136
- case "ThematicBreak":
137
- return "<hr/>";
138
- case "Image":
139
- return serializeImage({
140
- src: node.src,
141
- attachment: node.attachment,
142
- alt: node.alt,
143
- title: node.title,
144
- align: node.align,
145
- width: node.width
146
- });
147
- case "Table":
148
- return yield* serializeTable({ header: node.header, rows: node.rows });
149
- case "List":
150
- return yield* serializeList({
151
- ordered: node.ordered,
152
- start: node.start,
153
- children: node.children
154
- });
155
- case "BlockQuote":
156
- return yield* serializeBlockQuote({ children: node.children });
157
- case "UnsupportedBlock": {
158
- const raw = node.rawHtml || node.rawMarkdown || "";
159
- // Check for comment-encoded decision list
160
- const decisionMatch = raw.match(/<!--cf:decision:(.*)-->/);
161
- if (decisionMatch) {
162
- const itemsStr = decisionMatch[1] ?? "";
163
- const items = itemsStr.split("|").map((item) => {
164
- const parts = item.split(";");
165
- return {
166
- localId: decodeURIComponent(parts[0] ?? ""),
167
- state: decodeURIComponent(parts[1] ?? ""),
168
- content: decodeURIComponent(parts[2] ?? "")
169
- };
170
- });
171
- const decisionItems = items.map((item) => `<ac:adf-node type="decision-item"><ac:adf-attribute key="local-id">${escapeHtml(item.localId)}</ac:adf-attribute><ac:adf-attribute key="state">${escapeHtml(item.state)}</ac:adf-attribute><ac:adf-content>${escapeHtml(item.content)}</ac:adf-content></ac:adf-node>`).join("");
172
- const fallbackItems = items.map((item) => `<li>${escapeHtml(item.content)}</li>`).join("");
173
- return `<ac:adf-extension><ac:adf-node type="decision-list">${decisionItems}</ac:adf-node><ac:adf-fallback><ul class="decision-list">${fallbackItems}</ul></ac:adf-fallback></ac:adf-extension>`;
174
- }
175
- // Layout markers are passed through - reconstructLayouts will process them
176
- return raw;
177
- }
178
- // Macro nodes - serialize to Confluence macros
179
- case "InfoPanel":
180
- return yield* serializeInfoPanel({
181
- panelType: node.panelType,
182
- title: node.title,
183
- children: node.children
184
- });
185
- case "ExpandMacro":
186
- return yield* serializeExpandMacro({
187
- title: node.title,
188
- children: node.children
189
- });
190
- case "TocMacro":
191
- return serializeTocMacro({ minLevel: node.minLevel, maxLevel: node.maxLevel });
192
- case "CodeMacro":
193
- return serializeCodeMacro({
194
- language: node.language,
195
- title: node.title,
196
- code: node.code,
197
- lineNumbers: node.lineNumbers,
198
- collapse: node.collapse,
199
- firstLine: node.firstLine
200
- });
201
- case "StatusMacro":
202
- return serializeStatusMacro({ text: node.text, color: node.color });
203
- case "TaskList":
204
- return yield* serializeTaskList(node.children);
205
- default:
206
- return "";
207
- }
208
- });
209
- /**
210
- * Serialize heading.
211
- */
212
- const serializeHeading = (node) => Effect.gen(function* () {
213
- const content = yield* serializeInlineNodes(node.children);
214
- return `<h${node.level}>${content}</h${node.level}>`;
215
- });
216
- /**
217
- * Serialize paragraph (with optional alignment and indent).
218
- */
219
- const serializeParagraph = (node) => Effect.gen(function* () {
220
- const content = yield* serializeInlineNodes(node.children);
221
- const styles = [];
222
- if (node.alignment) {
223
- styles.push(`text-align: ${node.alignment};`);
224
- }
225
- if (node.indent) {
226
- styles.push(`margin-left: ${node.indent}px;`);
227
- }
228
- const styleAttr = styles.length > 0 ? ` style="${styles.join(" ")}"` : "";
229
- return `<p${styleAttr}>${content}</p>`;
230
- });
231
- /**
232
- * Serialize code block as Confluence code macro.
233
- */
234
- const serializeCodeBlock = (node) => {
235
- const lang = node.language ? `<ac:parameter ac:name="language">${escapeHtml(node.language)}</ac:parameter>` : "";
236
- return `<ac:structured-macro ac:name="code">${lang}<ac:plain-text-body><![CDATA[${node.code}]]></ac:plain-text-body></ac:structured-macro>`;
237
- };
238
- /**
239
- * Serialize image (supports both URL and Confluence attachments).
240
- */
241
- const serializeImage = (node) => {
242
- // Confluence attachment
243
- if (node.attachment) {
244
- const alignAttr = node.align ? ` ac:align="${node.align}"` : "";
245
- const widthAttr = node.width ? ` ac:width="${node.width}"` : "";
246
- const altAttr = node.alt ? ` ac:alt="${escapeHtml(node.alt)}"` : "";
247
- const versionAttr = node.attachment.version ? ` ri:version-at-save="${node.attachment.version}"` : "";
248
- return `<ac:image${alignAttr}${widthAttr}${altAttr}><ri:attachment ri:filename="${escapeHtml(node.attachment.filename)}"${versionAttr}/></ac:image>`;
249
- }
250
- // URL-based image
251
- const src = node.src ?? "";
252
- const alt = node.alt ? ` alt="${escapeHtml(node.alt)}"` : "";
253
- const title = node.title ? ` title="${escapeHtml(node.title)}"` : "";
254
- return `<img src="${escapeHtml(src)}"${alt}${title}/>`;
255
- };
256
- /**
257
- * Serialize table.
258
- */
259
- const serializeTable = (node) => Effect.gen(function* () {
260
- const parts = ["<table>"];
261
- // Header
262
- if (node.header) {
263
- parts.push("<thead><tr>");
264
- for (const cell of node.header.cells) {
265
- const content = yield* serializeInlineNodes(cell.children);
266
- parts.push(`<th>${content}</th>`);
267
- }
268
- parts.push("</tr></thead>");
269
- }
270
- // Body
271
- if (node.rows.length > 0) {
272
- parts.push("<tbody>");
273
- for (const row of node.rows) {
274
- parts.push("<tr>");
275
- for (const cell of row.cells) {
276
- const tag = cell.isHeader ? "th" : "td";
277
- const content = yield* serializeInlineNodes(cell.children);
278
- parts.push(`<${tag}>${content}</${tag}>`);
279
- }
280
- parts.push("</tr>");
281
- }
282
- parts.push("</tbody>");
283
- }
284
- parts.push("</table>");
285
- return parts.join("");
286
- });
287
- /**
288
- * Serialize list.
289
- */
290
- const serializeList = (node) => Effect.gen(function* () {
291
- const tag = node.ordered ? "ol" : "ul";
292
- const startAttr = node.ordered && node.start && node.start !== 1 ? ` start="${node.start}"` : "";
293
- const parts = [`<${tag}${startAttr}>`];
294
- for (const item of node.children) {
295
- parts.push("<li>");
296
- if (item.checked !== undefined) {
297
- const checked = item.checked ? " checked" : "";
298
- parts.push(`<input type="checkbox"${checked}/>`);
299
- }
300
- for (const child of item.children) {
301
- parts.push(yield* serializeSimpleBlock(child));
302
- }
303
- parts.push("</li>");
304
- }
305
- parts.push(`</${tag}>`);
306
- return parts.join("");
307
- });
308
- /**
309
- * Serialize simple block.
310
- */
311
- const serializeSimpleBlock = (node) => Effect.gen(function* () {
312
- switch (node._tag) {
313
- case "Heading":
314
- return yield* serializeHeading(node);
315
- case "Paragraph":
316
- return yield* serializeParagraph(node);
317
- case "CodeBlock":
318
- return serializeCodeBlock(node);
319
- case "ThematicBreak":
320
- return "<hr/>";
321
- case "Image":
322
- return serializeImage(node);
323
- case "Table":
324
- return yield* serializeTable(node);
325
- case "UnsupportedBlock": {
326
- const unsupported = node;
327
- return unsupported.rawHtml || unsupported.rawMarkdown || "";
328
- }
329
- default:
330
- return "";
331
- }
332
- });
333
- /**
334
- * Serialize block quote.
335
- */
336
- const serializeBlockQuote = (node) => Effect.gen(function* () {
337
- const parts = ["<blockquote>"];
338
- for (const child of node.children) {
339
- parts.push(yield* serializeSimpleBlock(child));
340
- }
341
- parts.push("</blockquote>");
342
- return parts.join("");
343
- });
344
- /**
345
- * Serialize info panel as Confluence macro.
346
- */
347
- const serializeInfoPanel = (node) => Effect.gen(function* () {
348
- const titleParam = node.title
349
- ? `<ac:parameter ac:name="title">${escapeHtml(node.title)}</ac:parameter>`
350
- : "";
351
- const parts = [
352
- `<ac:structured-macro ac:name="${node.panelType}">`,
353
- titleParam,
354
- "<ac:rich-text-body>"
355
- ];
356
- for (const child of node.children) {
357
- parts.push(yield* serializeSimpleBlock(child));
358
- }
359
- parts.push("</ac:rich-text-body>");
360
- parts.push("</ac:structured-macro>");
361
- return parts.join("");
362
- });
363
- /**
364
- * Serialize expand macro as Confluence macro.
365
- */
366
- const serializeExpandMacro = (node) => Effect.gen(function* () {
367
- const titleParam = node.title
368
- ? `<ac:parameter ac:name="title">${escapeHtml(node.title)}</ac:parameter>`
369
- : "";
370
- const parts = [
371
- `<ac:structured-macro ac:name="expand">`,
372
- titleParam,
373
- "<ac:rich-text-body>"
374
- ];
375
- for (const child of node.children) {
376
- parts.push(yield* serializeSimpleBlock(child));
377
- }
378
- parts.push("</ac:rich-text-body>");
379
- parts.push("</ac:structured-macro>");
380
- return parts.join("");
381
- });
382
- /**
383
- * Serialize TOC macro.
384
- */
385
- const serializeTocMacro = (node) => {
386
- const params = [];
387
- if (node.minLevel) {
388
- params.push(`<ac:parameter ac:name="minLevel">${node.minLevel}</ac:parameter>`);
389
- }
390
- if (node.maxLevel) {
391
- params.push(`<ac:parameter ac:name="maxLevel">${node.maxLevel}</ac:parameter>`);
392
- }
393
- return `<ac:structured-macro ac:name="toc">${params.join("")}</ac:structured-macro>`;
394
- };
395
- /**
396
- * Serialize code macro with full options.
397
- */
398
- const serializeCodeMacro = (node) => {
399
- const params = [];
400
- if (node.language) {
401
- params.push(`<ac:parameter ac:name="language">${escapeHtml(node.language)}</ac:parameter>`);
402
- }
403
- if (node.title) {
404
- params.push(`<ac:parameter ac:name="title">${escapeHtml(node.title)}</ac:parameter>`);
405
- }
406
- if (node.lineNumbers) {
407
- params.push(`<ac:parameter ac:name="linenumbers">true</ac:parameter>`);
408
- }
409
- if (node.collapse) {
410
- params.push(`<ac:parameter ac:name="collapse">true</ac:parameter>`);
411
- }
412
- if (node.firstLine) {
413
- params.push(`<ac:parameter ac:name="firstline">${node.firstLine}</ac:parameter>`);
414
- }
415
- return `<ac:structured-macro ac:name="code">${params.join("")}<ac:plain-text-body><![CDATA[${node.code}]]></ac:plain-text-body></ac:structured-macro>`;
416
- };
417
- /**
418
- * Serialize status macro.
419
- */
420
- const serializeStatusMacro = (node) => {
421
- return `<ac:structured-macro ac:name="status"><ac:parameter ac:name="colour">${escapeHtml(node.color)}</ac:parameter><ac:parameter ac:name="title">${escapeHtml(node.text)}</ac:parameter></ac:structured-macro>`;
422
- };
423
- /**
424
- * Serialize task list to Confluence storage format.
425
- */
426
- const serializeTaskList = (children) => Effect.gen(function* () {
427
- const parts = [`<ac:task-list>`];
428
- for (const item of children) {
429
- const body = yield* serializeInlineNodes(item.body);
430
- parts.push(`<ac:task>` +
431
- `<ac:task-id>${item.id}</ac:task-id>` +
432
- `<ac:task-uuid>${item.uuid}</ac:task-uuid>` +
433
- `<ac:task-status>${item.status}</ac:task-status>` +
434
- `<ac:task-body><span class="placeholder-inline-tasks">${body}</span></ac:task-body>` +
435
- `</ac:task>`);
436
- }
437
- parts.push(`</ac:task-list>`);
438
- return parts.join("\n");
439
- });
440
- /**
441
- * Serialize inline nodes to HTML.
442
- */
443
- const serializeInlineNodes = (nodes) => Effect.gen(function* () {
444
- const parts = [];
445
- for (const node of nodes) {
446
- parts.push(yield* serializeInlineNode(node));
447
- }
448
- return parts.join("");
449
- });
450
- /**
451
- * Serialize inline node to HTML.
452
- */
453
- const serializeInlineNode = (node) => Effect.gen(function* () {
454
- switch (node._tag) {
455
- case "Text":
456
- return escapeHtml(node.value);
457
- case "Strong": {
458
- const content = yield* serializeInlineNodes(node.children);
459
- return `<strong>${content}</strong>`;
460
- }
461
- case "Emphasis": {
462
- const content = yield* serializeInlineNodes(node.children);
463
- return `<em>${content}</em>`;
464
- }
465
- case "Underline": {
466
- const content = yield* serializeInlineNodes(node.children);
467
- return `<u>${content}</u>`;
468
- }
469
- case "Strikethrough": {
470
- const content = yield* serializeInlineNodes(node.children);
471
- return `<del>${content}</del>`;
472
- }
473
- case "Subscript": {
474
- const content = yield* serializeInlineNodes(node.children);
475
- return `<sub>${content}</sub>`;
476
- }
477
- case "Superscript": {
478
- const content = yield* serializeInlineNodes(node.children);
479
- return `<sup>${content}</sup>`;
480
- }
481
- case "InlineCode":
482
- return `<code>${escapeHtml(node.value)}</code>`;
483
- case "Link": {
484
- const content = yield* serializeInlineNodes(node.children);
485
- const title = node.title ? ` title="${escapeHtml(node.title)}"` : "";
486
- return `<a href="${escapeHtml(node.href)}"${title}>${content}</a>`;
487
- }
488
- case "LineBreak":
489
- return "<br/>";
490
- case "Emoticon":
491
- return `<ac:emoticon ac:emoji-shortname="${escapeHtml(node.shortname)}" ac:emoji-id="${escapeHtml(node.emojiId)}" ac:emoji-fallback="${escapeHtml(node.fallback)}"/>`;
492
- case "UserMention":
493
- return `<ac:link><ri:user ri:account-id="${escapeHtml(node.accountId)}"/></ac:link>`;
494
- case "DateTime":
495
- return `<time datetime="${escapeHtml(node.datetime)}"/>`;
496
- case "ColoredText": {
497
- const content = yield* serializeInlineNodes(node.children);
498
- return `<span style="color: ${escapeHtml(node.color)};">${content}</span>`;
499
- }
500
- case "Highlight": {
501
- const content = yield* serializeInlineNodes(node.children);
502
- return `<span style="background-color: ${escapeHtml(node.backgroundColor)};">${content}</span>`;
503
- }
504
- case "UnsupportedInline": {
505
- // Check for comment-encoded TOC and convert back to Confluence macro
506
- const tocMatch = node.raw.match(/<!--cf:toc:([^;]*);([^;]*)-->/);
507
- if (tocMatch) {
508
- const minLevel = tocMatch[1];
509
- const maxLevel = tocMatch[2];
510
- let params = "";
511
- if (minLevel)
512
- params += `<ac:parameter ac:name="minLevel">${minLevel}</ac:parameter>`;
513
- if (maxLevel)
514
- params += `<ac:parameter ac:name="maxLevel">${maxLevel}</ac:parameter>`;
515
- return `<ac:structured-macro ac:name="toc">${params}</ac:structured-macro>`;
516
- }
517
- // Check for comment-encoded Status macro
518
- const statusMatch = node.raw.match(/<!--cf:status:([^;]*);([^;]*)-->/);
519
- if (statusMatch) {
520
- const title = decodeURIComponent(statusMatch[1] ?? "");
521
- const color = decodeURIComponent(statusMatch[2] ?? "");
522
- let params = "";
523
- if (title)
524
- params += `<ac:parameter ac:name="title">${escapeHtml(title)}</ac:parameter>`;
525
- if (color)
526
- params += `<ac:parameter ac:name="colour">${escapeHtml(color)}</ac:parameter>`;
527
- return `<ac:structured-macro ac:name="status">${params}</ac:structured-macro>`;
528
- }
529
- // Check for comment-encoded Smart link (Jira, etc.)
530
- const smartLinkMatch = node.raw.match(/<!--cf:smartlink:([^;]*);([^;]*);(.*)-->/);
531
- if (smartLinkMatch) {
532
- const href = decodeURIComponent(smartLinkMatch[1] ?? "");
533
- const appearance = decodeURIComponent(smartLinkMatch[2] ?? "");
534
- const datasource = decodeURIComponent(smartLinkMatch[3] ?? "");
535
- return `<a href="${escapeHtml(href)}" data-card-appearance="${escapeHtml(appearance)}" data-datasource="${escapeHtml(datasource)}">${escapeHtml(href)}</a>`;
536
- }
537
- return node.raw;
538
- }
539
- default:
540
- return "";
541
- }
542
- });
543
- /**
544
- * Escape HTML special characters.
545
- */
546
- const escapeHtml = (str) => str
547
- .replace(/&/g, "&amp;")
548
- .replace(/</g, "&lt;")
549
- .replace(/>/g, "&gt;")
550
- .replace(/"/g, "&quot;");
551
- //# sourceMappingURL=ConfluenceSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfluenceSerializer.js","sourceRoot":"","sources":["../../src/serializers/ConfluenceSerializer.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Serializer for AST to Markdown.
3
- *
4
- * @module
5
- */
6
- import * as Effect from "effect/Effect";
7
- import type { Document } from "../ast/Document.js";
8
- import type { SerializeError } from "../SchemaConverterError.js";
9
- /**
10
- * Serialize Document AST to Markdown.
11
- *
12
- * @example
13
- * ```typescript
14
- * import { serializeToMarkdown } from "@knpkv/confluence-to-markdown/serializers/MarkdownSerializer"
15
- * import { makeDocument, Heading, Text } from "@knpkv/confluence-to-markdown/ast"
16
- * import { Effect } from "effect"
17
- *
18
- * Effect.gen(function* () {
19
- * const doc = makeDocument([
20
- * new Heading({ level: 1, children: [new Text({ value: "Title" })] })
21
- * ])
22
- * const md = yield* serializeToMarkdown(doc)
23
- * console.log(md) // # Title
24
- * })
25
- * ```
26
- *
27
- * @category Serializers
28
- */
29
- export interface SerializeOptions {
30
- /** Include raw Confluence HTML for lossless roundtrip. Default: true */
31
- readonly includeRawSource?: boolean;
32
- }
33
- export declare const serializeToMarkdown: (doc: Document, options?: SerializeOptions) => Effect.Effect<string, SerializeError>;
34
- //# sourceMappingURL=MarkdownSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownSerializer.d.ts","sourceRoot":"","sources":["../../src/serializers/MarkdownSerializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAA;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,eAAO,MAAM,mBAAmB,GAC9B,KAAK,QAAQ,EACb,UAAS,gBAAqB,KAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAmBnC,CAAA"}