@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.
Files changed (336) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/LICENSE +21 -0
  3. package/README.md +282 -14
  4. package/dist/ConfluenceAuth.d.ts +76 -0
  5. package/dist/ConfluenceAuth.d.ts.map +1 -0
  6. package/dist/ConfluenceAuth.js +356 -0
  7. package/dist/ConfluenceAuth.js.map +1 -0
  8. package/dist/ConfluenceClient.d.ts +26 -2
  9. package/dist/ConfluenceClient.d.ts.map +1 -1
  10. package/dist/ConfluenceClient.js +98 -92
  11. package/dist/ConfluenceClient.js.map +1 -1
  12. package/dist/ConfluenceConfig.d.ts +4 -24
  13. package/dist/ConfluenceConfig.d.ts.map +1 -1
  14. package/dist/ConfluenceConfig.js +45 -7
  15. package/dist/ConfluenceConfig.js.map +1 -1
  16. package/dist/ConfluenceError.d.ts +89 -6
  17. package/dist/ConfluenceError.d.ts.map +1 -1
  18. package/dist/ConfluenceError.js +88 -5
  19. package/dist/ConfluenceError.js.map +1 -1
  20. package/dist/GitError.d.ts +103 -0
  21. package/dist/GitError.d.ts.map +1 -0
  22. package/dist/GitError.js +85 -0
  23. package/dist/GitError.js.map +1 -0
  24. package/dist/GitService.d.ts +175 -0
  25. package/dist/GitService.d.ts.map +1 -0
  26. package/dist/GitService.js +431 -0
  27. package/dist/GitService.js.map +1 -0
  28. package/dist/LocalFileSystem.d.ts +29 -4
  29. package/dist/LocalFileSystem.d.ts.map +1 -1
  30. package/dist/LocalFileSystem.js +80 -6
  31. package/dist/LocalFileSystem.js.map +1 -1
  32. package/dist/MarkdownConverter.d.ts +49 -2
  33. package/dist/MarkdownConverter.d.ts.map +1 -1
  34. package/dist/MarkdownConverter.js +73 -111
  35. package/dist/MarkdownConverter.js.map +1 -1
  36. package/dist/SchemaConverterError.d.ts +108 -0
  37. package/dist/SchemaConverterError.d.ts.map +1 -0
  38. package/dist/SchemaConverterError.js +84 -0
  39. package/dist/SchemaConverterError.js.map +1 -0
  40. package/dist/Schemas.d.ts +225 -1
  41. package/dist/Schemas.d.ts.map +1 -1
  42. package/dist/Schemas.js +155 -6
  43. package/dist/Schemas.js.map +1 -1
  44. package/dist/SyncEngine.d.ts +30 -20
  45. package/dist/SyncEngine.d.ts.map +1 -1
  46. package/dist/SyncEngine.js +566 -117
  47. package/dist/SyncEngine.js.map +1 -1
  48. package/dist/ast/BlockNode.d.ts +468 -0
  49. package/dist/ast/BlockNode.d.ts.map +1 -0
  50. package/dist/ast/BlockNode.js +319 -0
  51. package/dist/ast/BlockNode.js.map +1 -0
  52. package/dist/ast/Document.d.ts +244 -0
  53. package/dist/ast/Document.d.ts.map +1 -0
  54. package/dist/ast/Document.js +69 -0
  55. package/dist/ast/Document.js.map +1 -0
  56. package/dist/ast/InlineNode.d.ts +477 -0
  57. package/dist/ast/InlineNode.d.ts.map +1 -0
  58. package/dist/ast/InlineNode.js +263 -0
  59. package/dist/ast/InlineNode.js.map +1 -0
  60. package/dist/ast/MacroNode.d.ts +267 -0
  61. package/dist/ast/MacroNode.d.ts.map +1 -0
  62. package/dist/ast/MacroNode.js +164 -0
  63. package/dist/ast/MacroNode.js.map +1 -0
  64. package/dist/ast/index.d.ts +10 -0
  65. package/dist/ast/index.d.ts.map +1 -0
  66. package/dist/ast/index.js +14 -0
  67. package/dist/ast/index.js.map +1 -0
  68. package/dist/bin.js +33 -149
  69. package/dist/bin.js.map +1 -1
  70. package/dist/commands/auth.d.ts +15 -0
  71. package/dist/commands/auth.d.ts.map +1 -0
  72. package/dist/commands/auth.js +86 -0
  73. package/dist/commands/auth.js.map +1 -0
  74. package/dist/commands/clone.d.ts +12 -0
  75. package/dist/commands/clone.d.ts.map +1 -0
  76. package/dist/commands/clone.js +93 -0
  77. package/dist/commands/clone.js.map +1 -0
  78. package/dist/commands/delete.d.ts +13 -0
  79. package/dist/commands/delete.d.ts.map +1 -0
  80. package/dist/commands/delete.js +48 -0
  81. package/dist/commands/delete.js.map +1 -0
  82. package/dist/commands/errorHandler.d.ts +14 -0
  83. package/dist/commands/errorHandler.d.ts.map +1 -0
  84. package/dist/commands/errorHandler.js +33 -0
  85. package/dist/commands/errorHandler.js.map +1 -0
  86. package/dist/commands/git.d.ts +22 -0
  87. package/dist/commands/git.d.ts.map +1 -0
  88. package/dist/commands/git.js +72 -0
  89. package/dist/commands/git.js.map +1 -0
  90. package/dist/commands/index.d.ts +11 -0
  91. package/dist/commands/index.d.ts.map +1 -0
  92. package/dist/commands/index.js +11 -0
  93. package/dist/commands/index.js.map +1 -0
  94. package/dist/commands/layers.d.ts +31 -0
  95. package/dist/commands/layers.d.ts.map +1 -0
  96. package/dist/commands/layers.js +137 -0
  97. package/dist/commands/layers.js.map +1 -0
  98. package/dist/commands/new.d.ts +9 -0
  99. package/dist/commands/new.d.ts.map +1 -0
  100. package/dist/commands/new.js +80 -0
  101. package/dist/commands/new.js.map +1 -0
  102. package/dist/commands/pageTree.d.ts +18 -0
  103. package/dist/commands/pageTree.d.ts.map +1 -0
  104. package/dist/commands/pageTree.js +20 -0
  105. package/dist/commands/pageTree.js.map +1 -0
  106. package/dist/commands/shared.d.ts +15 -0
  107. package/dist/commands/shared.d.ts.map +1 -0
  108. package/dist/commands/shared.js +27 -0
  109. package/dist/commands/shared.js.map +1 -0
  110. package/dist/commands/sync.d.ts +15 -0
  111. package/dist/commands/sync.d.ts.map +1 -0
  112. package/dist/commands/sync.js +101 -0
  113. package/dist/commands/sync.js.map +1 -0
  114. package/dist/index.d.ts +10 -1
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +14 -0
  117. package/dist/index.js.map +1 -1
  118. package/dist/internal/NodeLayers.d.ts +7 -0
  119. package/dist/internal/NodeLayers.d.ts.map +1 -0
  120. package/dist/internal/NodeLayers.js +19 -0
  121. package/dist/internal/NodeLayers.js.map +1 -0
  122. package/dist/internal/frontmatter.d.ts +10 -0
  123. package/dist/internal/frontmatter.d.ts.map +1 -1
  124. package/dist/internal/frontmatter.js +16 -0
  125. package/dist/internal/frontmatter.js.map +1 -1
  126. package/dist/internal/gitCommands.d.ts +78 -0
  127. package/dist/internal/gitCommands.d.ts.map +1 -0
  128. package/dist/internal/gitCommands.js +156 -0
  129. package/dist/internal/gitCommands.js.map +1 -0
  130. package/dist/internal/hashUtils.d.ts +42 -1
  131. package/dist/internal/hashUtils.d.ts.map +1 -1
  132. package/dist/internal/hashUtils.js +38 -2
  133. package/dist/internal/hashUtils.js.map +1 -1
  134. package/dist/internal/oauthServer.d.ts +55 -0
  135. package/dist/internal/oauthServer.d.ts.map +1 -0
  136. package/dist/internal/oauthServer.js +110 -0
  137. package/dist/internal/oauthServer.js.map +1 -0
  138. package/dist/internal/pathUtils.d.ts +21 -4
  139. package/dist/internal/pathUtils.d.ts.map +1 -1
  140. package/dist/internal/pathUtils.js +24 -13
  141. package/dist/internal/pathUtils.js.map +1 -1
  142. package/dist/internal/tokenStorage.d.ts +75 -0
  143. package/dist/internal/tokenStorage.d.ts.map +1 -0
  144. package/dist/internal/tokenStorage.js +149 -0
  145. package/dist/internal/tokenStorage.js.map +1 -0
  146. package/dist/internal/userCache.d.ts +42 -0
  147. package/dist/internal/userCache.d.ts.map +1 -0
  148. package/dist/internal/userCache.js +51 -0
  149. package/dist/internal/userCache.js.map +1 -0
  150. package/dist/parsers/ConfluenceParser.d.ts +26 -0
  151. package/dist/parsers/ConfluenceParser.d.ts.map +1 -0
  152. package/dist/parsers/ConfluenceParser.js +792 -0
  153. package/dist/parsers/ConfluenceParser.js.map +1 -0
  154. package/dist/parsers/MarkdownParser.d.ts +26 -0
  155. package/dist/parsers/MarkdownParser.d.ts.map +1 -0
  156. package/dist/parsers/MarkdownParser.js +873 -0
  157. package/dist/parsers/MarkdownParser.js.map +1 -0
  158. package/dist/parsers/index.d.ts +8 -0
  159. package/dist/parsers/index.d.ts.map +1 -0
  160. package/dist/parsers/index.js +8 -0
  161. package/dist/parsers/index.js.map +1 -0
  162. package/dist/schemas/ConfluenceSchema.d.ts +21 -0
  163. package/dist/schemas/ConfluenceSchema.d.ts.map +1 -0
  164. package/dist/schemas/ConfluenceSchema.js +38 -0
  165. package/dist/schemas/ConfluenceSchema.js.map +1 -0
  166. package/dist/schemas/ConversionSchema.d.ts +35 -0
  167. package/dist/schemas/ConversionSchema.d.ts.map +1 -0
  168. package/dist/schemas/ConversionSchema.js +208 -0
  169. package/dist/schemas/ConversionSchema.js.map +1 -0
  170. package/dist/schemas/MarkdownSchema.d.ts +21 -0
  171. package/dist/schemas/MarkdownSchema.d.ts.map +1 -0
  172. package/dist/schemas/MarkdownSchema.js +38 -0
  173. package/dist/schemas/MarkdownSchema.js.map +1 -0
  174. package/dist/schemas/hast/HastFromHtml.d.ts +27 -0
  175. package/dist/schemas/hast/HastFromHtml.d.ts.map +1 -0
  176. package/dist/schemas/hast/HastFromHtml.js +107 -0
  177. package/dist/schemas/hast/HastFromHtml.js.map +1 -0
  178. package/dist/schemas/hast/HastSchema.d.ts +195 -0
  179. package/dist/schemas/hast/HastSchema.d.ts.map +1 -0
  180. package/dist/schemas/hast/HastSchema.js +183 -0
  181. package/dist/schemas/hast/HastSchema.js.map +1 -0
  182. package/dist/schemas/hast/index.d.ts +9 -0
  183. package/dist/schemas/hast/index.d.ts.map +1 -0
  184. package/dist/schemas/hast/index.js +3 -0
  185. package/dist/schemas/hast/index.js.map +1 -0
  186. package/dist/schemas/index.d.ts +14 -0
  187. package/dist/schemas/index.d.ts.map +1 -0
  188. package/dist/schemas/index.js +16 -0
  189. package/dist/schemas/index.js.map +1 -0
  190. package/dist/schemas/mdast/MdastFromMarkdown.d.ts +30 -0
  191. package/dist/schemas/mdast/MdastFromMarkdown.d.ts.map +1 -0
  192. package/dist/schemas/mdast/MdastFromMarkdown.js +79 -0
  193. package/dist/schemas/mdast/MdastFromMarkdown.js.map +1 -0
  194. package/dist/schemas/mdast/MdastSchema.d.ts +385 -0
  195. package/dist/schemas/mdast/MdastSchema.d.ts.map +1 -0
  196. package/dist/schemas/mdast/MdastSchema.js +266 -0
  197. package/dist/schemas/mdast/MdastSchema.js.map +1 -0
  198. package/dist/schemas/mdast/index.d.ts +10 -0
  199. package/dist/schemas/mdast/index.d.ts.map +1 -0
  200. package/dist/schemas/mdast/index.js +4 -0
  201. package/dist/schemas/mdast/index.js.map +1 -0
  202. package/dist/schemas/mdast/mdastToString.d.ts +13 -0
  203. package/dist/schemas/mdast/mdastToString.d.ts.map +1 -0
  204. package/dist/schemas/mdast/mdastToString.js +85 -0
  205. package/dist/schemas/mdast/mdastToString.js.map +1 -0
  206. package/dist/schemas/nodes/block/BlockSchema.d.ts +43 -0
  207. package/dist/schemas/nodes/block/BlockSchema.d.ts.map +1 -0
  208. package/dist/schemas/nodes/block/BlockSchema.js +634 -0
  209. package/dist/schemas/nodes/block/BlockSchema.js.map +1 -0
  210. package/dist/schemas/nodes/block/index.d.ts +7 -0
  211. package/dist/schemas/nodes/block/index.d.ts.map +1 -0
  212. package/dist/schemas/nodes/block/index.js +7 -0
  213. package/dist/schemas/nodes/block/index.js.map +1 -0
  214. package/dist/schemas/nodes/index.d.ts +9 -0
  215. package/dist/schemas/nodes/index.d.ts.map +1 -0
  216. package/dist/schemas/nodes/index.js +12 -0
  217. package/dist/schemas/nodes/index.js.map +1 -0
  218. package/dist/schemas/nodes/inline/InlineSchema.d.ts +48 -0
  219. package/dist/schemas/nodes/inline/InlineSchema.d.ts.map +1 -0
  220. package/dist/schemas/nodes/inline/InlineSchema.js +436 -0
  221. package/dist/schemas/nodes/inline/InlineSchema.js.map +1 -0
  222. package/dist/schemas/nodes/inline/index.d.ts +7 -0
  223. package/dist/schemas/nodes/inline/index.d.ts.map +1 -0
  224. package/dist/schemas/nodes/inline/index.js +7 -0
  225. package/dist/schemas/nodes/inline/index.js.map +1 -0
  226. package/dist/schemas/nodes/macro/MacroSchema.d.ts +27 -0
  227. package/dist/schemas/nodes/macro/MacroSchema.d.ts.map +1 -0
  228. package/dist/schemas/nodes/macro/MacroSchema.js +162 -0
  229. package/dist/schemas/nodes/macro/MacroSchema.js.map +1 -0
  230. package/dist/schemas/nodes/macro/index.d.ts +7 -0
  231. package/dist/schemas/nodes/macro/index.d.ts.map +1 -0
  232. package/dist/schemas/nodes/macro/index.js +7 -0
  233. package/dist/schemas/nodes/macro/index.js.map +1 -0
  234. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts +24 -0
  235. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts.map +1 -0
  236. package/dist/schemas/preprocessing/ConfluencePreprocessor.js +351 -0
  237. package/dist/schemas/preprocessing/ConfluencePreprocessor.js.map +1 -0
  238. package/dist/schemas/preprocessing/index.d.ts +8 -0
  239. package/dist/schemas/preprocessing/index.d.ts.map +1 -0
  240. package/dist/schemas/preprocessing/index.js +2 -0
  241. package/dist/schemas/preprocessing/index.js.map +1 -0
  242. package/dist/serializers/ConfluenceSerializer.d.ts +30 -0
  243. package/dist/serializers/ConfluenceSerializer.d.ts.map +1 -0
  244. package/dist/serializers/ConfluenceSerializer.js +551 -0
  245. package/dist/serializers/ConfluenceSerializer.js.map +1 -0
  246. package/dist/serializers/MarkdownSerializer.d.ts +34 -0
  247. package/dist/serializers/MarkdownSerializer.d.ts.map +1 -0
  248. package/dist/serializers/MarkdownSerializer.js +355 -0
  249. package/dist/serializers/MarkdownSerializer.js.map +1 -0
  250. package/dist/serializers/index.d.ts +8 -0
  251. package/dist/serializers/index.d.ts.map +1 -0
  252. package/dist/serializers/index.js +8 -0
  253. package/dist/serializers/index.js.map +1 -0
  254. package/package.json +27 -16
  255. package/src/ConfluenceAuth.ts +571 -0
  256. package/src/ConfluenceClient.ts +188 -156
  257. package/src/ConfluenceConfig.ts +63 -7
  258. package/src/ConfluenceError.ts +110 -14
  259. package/src/GitError.ts +92 -0
  260. package/src/GitService.ts +859 -0
  261. package/src/LocalFileSystem.ts +179 -9
  262. package/src/MarkdownConverter.ts +126 -122
  263. package/src/SchemaConverterError.ts +108 -0
  264. package/src/Schemas.ts +223 -6
  265. package/src/SyncEngine.ts +745 -162
  266. package/src/ast/BlockNode.ts +425 -0
  267. package/src/ast/Document.ts +90 -0
  268. package/src/ast/InlineNode.ts +323 -0
  269. package/src/ast/MacroNode.ts +245 -0
  270. package/src/ast/index.ts +83 -0
  271. package/src/bin.ts +50 -249
  272. package/src/commands/auth.ts +117 -0
  273. package/src/commands/clone.ts +145 -0
  274. package/src/commands/delete.ts +57 -0
  275. package/src/commands/errorHandler.ts +32 -0
  276. package/src/commands/git.ts +114 -0
  277. package/src/commands/index.ts +10 -0
  278. package/src/commands/layers.ts +211 -0
  279. package/src/commands/new.ts +99 -0
  280. package/src/commands/pageTree.ts +40 -0
  281. package/src/commands/shared.ts +35 -0
  282. package/src/commands/sync.ts +129 -0
  283. package/src/index.ts +21 -1
  284. package/src/internal/NodeLayers.ts +21 -0
  285. package/src/internal/frontmatter.ts +21 -0
  286. package/src/internal/gitCommands.ts +229 -0
  287. package/src/internal/hashUtils.ts +65 -3
  288. package/src/internal/oauthServer.ts +199 -0
  289. package/src/internal/pathUtils.ts +34 -17
  290. package/src/internal/tokenStorage.ts +240 -0
  291. package/src/internal/userCache.ts +90 -0
  292. package/src/parsers/ConfluenceParser.ts +950 -0
  293. package/src/parsers/MarkdownParser.ts +1198 -0
  294. package/src/parsers/index.ts +8 -0
  295. package/src/schemas/ConfluenceSchema.ts +56 -0
  296. package/src/schemas/ConversionSchema.ts +318 -0
  297. package/src/schemas/MarkdownSchema.ts +56 -0
  298. package/src/schemas/hast/HastFromHtml.ts +153 -0
  299. package/src/schemas/hast/HastSchema.ts +274 -0
  300. package/src/schemas/hast/index.ts +35 -0
  301. package/src/schemas/index.ts +20 -0
  302. package/src/schemas/mdast/MdastFromMarkdown.ts +118 -0
  303. package/src/schemas/mdast/MdastSchema.ts +566 -0
  304. package/src/schemas/mdast/index.ts +59 -0
  305. package/src/schemas/mdast/mdastToString.ts +102 -0
  306. package/src/schemas/nodes/block/BlockSchema.ts +773 -0
  307. package/src/schemas/nodes/block/index.ts +13 -0
  308. package/src/schemas/nodes/index.ts +20 -0
  309. package/src/schemas/nodes/inline/InlineSchema.ts +523 -0
  310. package/src/schemas/nodes/inline/index.ts +14 -0
  311. package/src/schemas/nodes/macro/MacroSchema.ts +226 -0
  312. package/src/schemas/nodes/macro/index.ts +6 -0
  313. package/src/schemas/preprocessing/ConfluencePreprocessor.ts +446 -0
  314. package/src/schemas/preprocessing/index.ts +8 -0
  315. package/src/serializers/ConfluenceSerializer.ts +717 -0
  316. package/src/serializers/MarkdownSerializer.ts +493 -0
  317. package/src/serializers/index.ts +8 -0
  318. package/test/GitService.test.ts +209 -0
  319. package/test/MarkdownConverter.test.ts +37 -3
  320. package/test/Schemas.test.ts +97 -2
  321. package/test/ast/BlockNode.test.ts +265 -0
  322. package/test/ast/Document.test.ts +126 -0
  323. package/test/ast/InlineNode.test.ts +161 -0
  324. package/test/fixtures/integration-test.html.fixture +103 -0
  325. package/test/fixtures/integration-test.md.expected +257 -0
  326. package/test/integration.test.ts +269 -0
  327. package/test/oauthServer.test.ts +50 -0
  328. package/test/parsers/ConfluenceParser.test.ts +283 -0
  329. package/test/schemas/ConfluencePreprocessor.test.ts +180 -0
  330. package/test/schemas/ConversionSchema.test.ts +159 -0
  331. package/test/schemas/HastSchema.test.ts +138 -0
  332. package/test/schemas/MdastSchema.test.ts +145 -0
  333. package/test/schemas/nodes/block/BlockSchema.test.ts +173 -0
  334. package/test/schemas/nodes/inline/InlineSchema.test.ts +198 -0
  335. package/test/schemas/nodes/macro/MacroSchema.test.ts +142 -0
  336. package/test/tokenStorage.test.ts +99 -0
@@ -0,0 +1,30 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,551 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfluenceSerializer.js","sourceRoot":"","sources":["../../src/serializers/ConfluenceSerializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
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
@@ -0,0 +1 @@
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"}