@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
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Owned ADF → Markdown tree walker.
3
+ *
4
+ * Pure recursive descent over an ADF document's `node.type` discriminant.
5
+ * Returns GFM markdown plus a list of warnings for lossy or unknown nodes.
6
+ *
7
+ * @module
8
+ */
9
+ import type { DocNode } from "@atlaskit/adf-schema";
10
+ /**
11
+ * Warning emitted by the walker. Surfaced via `Effect.logWarning` at the
12
+ * facade boundary; never escalated to errors so a single weird node cannot
13
+ * break a clone of many pages.
14
+ */
15
+ export type WalkerWarning = {
16
+ readonly _tag: "UnsupportedNode";
17
+ readonly nodeType: string;
18
+ } | {
19
+ readonly _tag: "LossyMark";
20
+ readonly mark: string;
21
+ } | {
22
+ readonly _tag: "MediaWithoutUrl";
23
+ readonly mediaId: string;
24
+ } | {
25
+ readonly _tag: "UnsupportedExtension";
26
+ readonly nodeType: "extension" | "bodiedExtension" | "inlineExtension";
27
+ readonly extensionKey: string;
28
+ readonly extensionType: string;
29
+ };
30
+ export interface WalkResult {
31
+ readonly markdown: string;
32
+ readonly warnings: ReadonlyArray<WalkerWarning>;
33
+ }
34
+ /**
35
+ * Walk an ADF document and emit GFM markdown. Always synchronous; warnings
36
+ * are collected, not thrown.
37
+ */
38
+ export declare const walk: (doc: DocNode) => WalkResult;
39
+ //# sourceMappingURL=AdfWalker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdfWalker.d.ts","sourceRoot":"","sources":["../src/AdfWalker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEnD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC9D;IACA,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;IACtE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B,CAAA;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;CAChD;AAsiBD;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,OAAO,KAAG,UAOnC,CAAA"}
@@ -0,0 +1,527 @@
1
+ // Mid-line characters that change inline parsing in GFM. We deliberately omit
2
+ // `.` and `-` because they only carry meaning at line-start (numbered lists,
3
+ // setext rules) and escaping them mid-line produces noisy output like
4
+ // `v1\.0\.0` for ordinary version strings. Same reasoning drops `#`, `+`, `>`
5
+ // (line-start only), `(`/`)` (only meaningful right after `]`, which we
6
+ // escape), `!` (only meaningful right before `[`, ditto) and `{`/`}` (not
7
+ // special in GFM at all) — escaping those produced noise like `\(v2\)`.
8
+ const ESCAPE_RE = /[\\`*_[\]<|]/g;
9
+ const escapeText = (s) => s.replace(ESCAPE_RE, "\\$&");
10
+ const escapeAttr = (s) => s.replace(/[\\"]/g, "\\$&");
11
+ // For text inside HTML *blocks* (`<details>`/`<summary>`): CommonMark treats
12
+ // everything up to the closing blank line as raw HTML, so backslash escapes
13
+ // would render literally — entity-escape instead.
14
+ const escapeHtml = (s) => s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
15
+ // `(`/`)`/space/`<`/`>`/`\` in a destination break `[text](url)` — wrap in
16
+ // angle brackets, percent-encoding the characters that would terminate or
17
+ // escape the wrapper itself.
18
+ const safeHref = (href) => /[() <>\\]/.test(href) ? `<${href.replace(/[<>\\]/g, (c) => encodeURIComponent(c))}>` : href;
19
+ // Alt text is substituted rather than escaped: @atlaskit's media markdown
20
+ // plugin throws on `\[`/`\]` in alt (making the page un-pushable), and
21
+ // newlines split the construct outright.
22
+ const sanitizeAlt = (s) => s.replace(/\[/g, "(").replace(/\]/g, ")").replace(/\\/g, "/").replace(/\s+/g, " ").trim();
23
+ // ESCAPE_RE deliberately skips characters that are only special at line
24
+ // start, so lines assembled from paragraph text (including after hardBreak)
25
+ // must neutralize leading block markers: ATX headings, blockquotes, list
26
+ // bullets, ordered-list markers, thematic breaks, and setext underlines.
27
+ // A superfluous escape is harmless when the line later lands mid-line
28
+ // (after a list marker etc.) — backslash before punctuation always renders
29
+ // as the bare character.
30
+ const escapeLineStart = (line) => {
31
+ if (/^(#{1,6}|[-+])(\s|$)/.test(line) || line.startsWith(">") || /^-{3,}\s*$/.test(line) || /^=+\s*$/.test(line)) {
32
+ return "\\" + line;
33
+ }
34
+ const ordered = /^(\d+)([.)])(\s|$)/.exec(line)?.[1];
35
+ if (ordered)
36
+ return `${ordered}\\${line.slice(ordered.length)}`;
37
+ return line;
38
+ };
39
+ const escapeLineStarts = (s) => s.split("\n").map(escapeLineStart).join("\n");
40
+ const attrStr = (n, key) => {
41
+ const v = n.attrs?.[key];
42
+ return typeof v === "string" ? v : undefined;
43
+ };
44
+ const attrNum = (n, key) => {
45
+ const v = n.attrs?.[key];
46
+ return typeof v === "number" ? v : undefined;
47
+ };
48
+ const attrRecord = (n, key) => {
49
+ const v = n.attrs?.[key];
50
+ return v !== null && typeof v === "object" && !Array.isArray(v) ? v : undefined;
51
+ };
52
+ const CONFLUENCE_CORE_MACRO_TYPE = "com.atlassian.confluence.macro.core";
53
+ // Deterministic JSON for placeholder metadata: object keys are sorted
54
+ // recursively so the same attrs always produce the same marker/sidecar data,
55
+ // no matter what order Confluence happens to serialize them in. Keeps pull →
56
+ // push → pull a byte-level fixed point (and contentHash stable).
57
+ const stableStringify = (v) => {
58
+ if (Array.isArray(v))
59
+ return `[${v.map(stableStringify).join(",")}]`;
60
+ if (v !== null && typeof v === "object") {
61
+ const entries = Object.entries(v)
62
+ .filter(([, value]) => value !== undefined)
63
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
64
+ .map(([k, value]) => `${JSON.stringify(k)}:${stableStringify(value)}`);
65
+ return `{${entries.join(",")}}`;
66
+ }
67
+ return JSON.stringify(v) ?? "null";
68
+ };
69
+ const inline = (nodes, ctx) => {
70
+ if (!nodes)
71
+ return "";
72
+ let out = "";
73
+ for (const n of nodes)
74
+ out += inlineNode(n, ctx);
75
+ return out;
76
+ };
77
+ const inlineNode = (n, ctx) => {
78
+ switch (n.type) {
79
+ case "text": {
80
+ const marks = n.marks ?? [];
81
+ const text = n.text ?? "";
82
+ // Code spans render their content literally — backslash-escaping inside
83
+ // backticks would emit literal backslashes, which the push side then
84
+ // preserves verbatim, doubling them on every pull/push round-trip.
85
+ const hasCode = marks.some((m) => m.type === "code");
86
+ return applyMarks(hasCode ? text : escapeText(text), marks, ctx);
87
+ }
88
+ case "hardBreak":
89
+ return ctx.inTable ? "<br>" : " \n";
90
+ case "mention": {
91
+ // Confluence stores the mention's `text` attr with the leading `@`
92
+ // already (e.g. "@John Doe"). Strip it so we don't emit `@@John Doe`.
93
+ const id = attrStr(n, "id");
94
+ const raw = attrStr(n, "text") ?? id ?? "";
95
+ const stripped = raw.startsWith("@") ? raw.slice(1) : raw;
96
+ const display = `@${escapeText(stripped)}`;
97
+ // Encode the accountId in a custom-scheme link so the push side can
98
+ // reconstruct a real mention node. Without `id` we can only emit plain
99
+ // text; on push, that becomes plain text in Confluence (lossy).
100
+ return id ? `[${display}](confluence-mention://${encodeURIComponent(id)})` : display;
101
+ }
102
+ case "emoji": {
103
+ return `<!-- adf:${n.type} node=${stableStringify(n)} -->`;
104
+ }
105
+ case "inlineCard": {
106
+ const url = cardUrl(n);
107
+ if (!url) {
108
+ // data-payload smart links have no URL to render — losing one must
109
+ // at least be visible in the logs.
110
+ ctx.warnings.push({ _tag: "UnsupportedNode", nodeType: "inlineCard" });
111
+ return "";
112
+ }
113
+ const attrs = n.attrs ?? { url };
114
+ return `<!-- adf:inlineCard attrs=${stableStringify(attrs)} -->`;
115
+ }
116
+ case "date": {
117
+ return `<!-- adf:${n.type} node=${stableStringify(n)} -->`;
118
+ }
119
+ case "status": {
120
+ const text = attrStr(n, "text") ?? "";
121
+ const color = attrStr(n, "color") ?? "neutral";
122
+ return `<span class="adf-status" data-color="${color}">${escapeText(text)}</span>`;
123
+ }
124
+ case "mediaInline": {
125
+ const id = attrStr(n, "id") ?? "";
126
+ ctx.warnings.push({ _tag: "MediaWithoutUrl", mediaId: id });
127
+ return `<!-- adf:media id=${id} -->`;
128
+ }
129
+ case "inlineExtension":
130
+ return extensionPlaceholder(n, "inlineExtension", ctx);
131
+ default:
132
+ ctx.warnings.push({ _tag: "UnsupportedNode", nodeType: n.type });
133
+ return `<!-- unsupported ADF inline: ${n.type} -->`;
134
+ }
135
+ };
136
+ const extensionPlaceholder = (n, nodeType, ctx) => {
137
+ const extensionKey = attrStr(n, "extensionKey") ?? "";
138
+ const extensionType = attrStr(n, "extensionType") ?? "";
139
+ ctx.warnings.push({ _tag: "UnsupportedExtension", nodeType, extensionKey, extensionType });
140
+ const keyPart = extensionKey ? ` key=${extensionKey}` : "";
141
+ const typePart = extensionType ? ` type=${extensionType}` : "";
142
+ // key/type are repeated for human readability; `attrs` is the source of
143
+ // truth on push — it carries the *full* attrs (parameters, localId, layout)
144
+ // so macros survive a pull → push round-trip with their configuration.
145
+ const attrs = n.attrs ?? {};
146
+ const attrsPart = Object.keys(attrs).length > 0
147
+ ? ` attrs=${stableStringify(attrs)}`
148
+ : "";
149
+ return `<!-- adf:${nodeType}${keyPart}${typePart}${attrsPart} -->`;
150
+ };
151
+ const objectKeys = (v) => Object.keys(v ?? {});
152
+ const isOnlyKeys = (v, keys) => {
153
+ const allowed = new Set(keys);
154
+ return objectKeys(v).every((key) => allowed.has(key));
155
+ };
156
+ const tocLevel = (macroParams, key) => {
157
+ const param = macroParams?.[key];
158
+ if (param === undefined)
159
+ return null;
160
+ if (param === null || typeof param !== "object" || Array.isArray(param))
161
+ return null;
162
+ const record = param;
163
+ if (!isOnlyKeys(record, ["value"]))
164
+ return null;
165
+ const value = record["value"];
166
+ return typeof value === "string" && /^[1-6]$/.test(value) ? value : null;
167
+ };
168
+ const tocMarkdown = (n) => {
169
+ const attrs = n.attrs;
170
+ if (!attrs)
171
+ return null;
172
+ if (attrStr(n, "extensionKey") !== "toc" || attrStr(n, "extensionType") !== CONFLUENCE_CORE_MACRO_TYPE)
173
+ return null;
174
+ if (!isOnlyKeys(attrs, ["extensionKey", "extensionType", "parameters"]))
175
+ return null;
176
+ const parameters = attrRecord(n, "parameters");
177
+ if (!parameters)
178
+ return "[[toc]]";
179
+ if (!isOnlyKeys(parameters, ["macroParams"]))
180
+ return null;
181
+ const macroParams = parameters["macroParams"];
182
+ if (macroParams === null || typeof macroParams !== "object" || Array.isArray(macroParams))
183
+ return null;
184
+ const macroParamRecord = macroParams;
185
+ if (!isOnlyKeys(macroParamRecord, ["minLevel", "maxLevel"]))
186
+ return null;
187
+ const minLevel = tocLevel(macroParamRecord, "minLevel");
188
+ const maxLevel = tocLevel(macroParamRecord, "maxLevel");
189
+ if (macroParamRecord["minLevel"] !== undefined && minLevel === null)
190
+ return null;
191
+ if (macroParamRecord["maxLevel"] !== undefined && maxLevel === null)
192
+ return null;
193
+ const parts = [
194
+ minLevel ? `min=${minLevel}` : "",
195
+ maxLevel ? `max=${maxLevel}` : ""
196
+ ].filter((part) => part.length > 0);
197
+ return parts.length > 0 ? `[[toc:${parts.join(",")}]]` : "[[toc]]";
198
+ };
199
+ const bodiedExtension = (n, ctx) => {
200
+ const open = extensionPlaceholder(n, "bodiedExtension", ctx);
201
+ // Table cells flatten newlines to <br>, which would weld the markers and
202
+ // body into one un-revertible line — emit only the single-line marker
203
+ // there (body dropped; the placeholder warning above covers it).
204
+ if (ctx.inTable)
205
+ return open;
206
+ // Render the body so it stays visible/editable; the end marker lets the
207
+ // push side re-attach everything in between as the bodiedExtension's body.
208
+ // It is emitted even for an empty body so the push side can tell "bodied
209
+ // macro with nothing in it" apart from a legacy/corrupted open marker.
210
+ const body = (n.content ?? []).map((c) => block(c, ctx)).join("\n\n");
211
+ const parts = body.length > 0 ? [open, body] : [open];
212
+ return [...parts, "<!-- adf:/bodiedExtension -->"].join("\n\n");
213
+ };
214
+ const applyMarks = (text, marks, ctx) => {
215
+ let out = text;
216
+ for (const m of marks) {
217
+ switch (m.type) {
218
+ case "code": {
219
+ // Code-span content is unescaped, so per GFM the delimiter must be a
220
+ // backtick run longer than any run inside, space-padded when the
221
+ // content starts/ends with a backtick (or is empty).
222
+ const runs = out.match(/`+/g) ?? [];
223
+ const fence = "`".repeat(runs.reduce((max, r) => Math.max(max, r.length), 0) + 1);
224
+ const pad = out === "" || out.startsWith("`") || out.endsWith("`") ? " " : "";
225
+ out = `${fence}${pad}${out}${pad}${fence}`;
226
+ break;
227
+ }
228
+ case "strong":
229
+ out = `**${out}**`;
230
+ break;
231
+ case "em":
232
+ out = `_${out}_`;
233
+ break;
234
+ case "strike":
235
+ out = `~~${out}~~`;
236
+ break;
237
+ case "link": {
238
+ const href = attrStr(m, "href") ?? "";
239
+ const title = attrStr(m, "title");
240
+ const titlePart = title ? ` "${escapeAttr(title)}"` : "";
241
+ out = `[${out}](${safeHref(href)}${titlePart})`;
242
+ break;
243
+ }
244
+ case "underline":
245
+ ctx.warnings.push({ _tag: "LossyMark", mark: "underline" });
246
+ out = `<u>${out}</u>`;
247
+ break;
248
+ case "textColor": {
249
+ const color = attrStr(m, "color") ?? "";
250
+ ctx.warnings.push({ _tag: "LossyMark", mark: "textColor" });
251
+ out = `<span style="color:${color}">${out}</span>`;
252
+ break;
253
+ }
254
+ case "backgroundColor": {
255
+ const color = attrStr(m, "color") ?? "";
256
+ ctx.warnings.push({ _tag: "LossyMark", mark: "backgroundColor" });
257
+ out = `<span style="background-color:${color}">${out}</span>`;
258
+ break;
259
+ }
260
+ case "subsup": {
261
+ const t = attrStr(m, "type") === "sup" ? "sup" : "sub";
262
+ out = `<${t}>${out}</${t}>`;
263
+ break;
264
+ }
265
+ default:
266
+ ctx.warnings.push({ _tag: "LossyMark", mark: m.type });
267
+ }
268
+ }
269
+ return out;
270
+ };
271
+ const indentLines = (s, indent) => s.split("\n").map((line, i) => (i === 0 ? line : indent + line)).join("\n");
272
+ const block = (n, ctx) => {
273
+ switch (n.type) {
274
+ case "paragraph":
275
+ return paragraph(n, ctx);
276
+ case "heading": {
277
+ const level = Math.min(6, Math.max(1, attrNum(n, "level") ?? 1));
278
+ return "#".repeat(level) + " " + inline(n.content, ctx);
279
+ }
280
+ case "rule":
281
+ return "---";
282
+ case "blockquote":
283
+ return blockquote(n.content, ctx);
284
+ case "codeBlock":
285
+ return codeBlock(n);
286
+ case "bulletList":
287
+ return list(n, ctx, false);
288
+ case "orderedList":
289
+ return list(n, ctx, true);
290
+ case "table":
291
+ return table(n, ctx);
292
+ case "panel":
293
+ return panel(n, ctx);
294
+ case "expand":
295
+ case "nestedExpand":
296
+ return expand(n, ctx);
297
+ case "taskList":
298
+ return taskList(n, ctx);
299
+ case "decisionList":
300
+ return decisionList(n, ctx);
301
+ case "layoutSection":
302
+ return layoutSection(n, ctx);
303
+ case "layoutColumn":
304
+ return layoutColumn(n, ctx);
305
+ case "mediaSingle":
306
+ return mediaSingle(n, ctx);
307
+ case "mediaGroup":
308
+ return mediaGroup(n, ctx);
309
+ case "blockCard":
310
+ case "embedCard":
311
+ return blockCard(n, ctx);
312
+ case "extension":
313
+ return tocMarkdown(n) ?? extensionPlaceholder(n, "extension", ctx);
314
+ case "bodiedExtension":
315
+ return bodiedExtension(n, ctx);
316
+ default:
317
+ ctx.warnings.push({ _tag: "UnsupportedNode", nodeType: n.type });
318
+ return `<!-- unsupported ADF node: ${n.type} -->`;
319
+ }
320
+ };
321
+ const paragraph = (n, ctx) => {
322
+ const body = escapeLineStarts(inline(n.content, ctx));
323
+ const marks = n.marks ?? [];
324
+ if (marks.length === 0 || ctx.inTable)
325
+ return body;
326
+ const marksPart = ` marks=${stableStringify(marks)}`;
327
+ return `<!-- adf:paragraph${marksPart} -->\n\n${body}\n\n<!-- adf:/paragraph -->`;
328
+ };
329
+ const blockquote = (content, ctx) => {
330
+ const inner = (content ?? []).map((c) => block(c, ctx)).join("\n\n");
331
+ return inner.split("\n").map((l) => (l.length === 0 ? ">" : `> ${l}`)).join("\n");
332
+ };
333
+ const codeBlock = (n) => {
334
+ // A fence's info string may not contain backticks (CommonMark) and a
335
+ // newline would inject lines into the code content — the editor UI uses a
336
+ // fixed language list, but the REST API accepts arbitrary strings.
337
+ const lang = (attrStr(n, "language") ?? "").replace(/[`\s]+/g, "");
338
+ const text = (n.content ?? []).map((c) => c.text ?? "").join("");
339
+ // A fixed ``` fence would be terminated early by code that itself contains
340
+ // a triple-backtick run — use one backtick more than the longest run inside.
341
+ const runs = text.match(/`+/g) ?? [];
342
+ const fence = "`".repeat(Math.max(3, runs.reduce((max, r) => Math.max(max, r.length), 0) + 1));
343
+ return fence + lang + "\n" + text + "\n" + fence;
344
+ };
345
+ const listItemBlocks = (item, ctx) => {
346
+ const blocks = item.content ?? [];
347
+ const parts = [];
348
+ for (const b of blocks) {
349
+ if (b.type === "paragraph") {
350
+ // Continuation lines (after hardBreak) sit at line start once the
351
+ // item is indented, so they need the same leading-marker escapes as
352
+ // top-level paragraphs.
353
+ parts.push(escapeLineStarts(inline(b.content, ctx)));
354
+ }
355
+ else {
356
+ parts.push(block(b, ctx));
357
+ }
358
+ }
359
+ return parts.join("\n\n");
360
+ };
361
+ const list = (n, ctx, ordered) => {
362
+ const items = n.content ?? [];
363
+ const startNum = ordered ? Math.max(1, attrNum(n, "order") ?? 1) : 1;
364
+ const indent = " ";
365
+ const inner = [];
366
+ for (let i = 0; i < items.length; i++) {
367
+ const item = items[i];
368
+ if (!item)
369
+ continue;
370
+ const marker = ordered ? `${startNum + i}. ` : "- ";
371
+ const body = listItemBlocks(item, ctx);
372
+ inner.push(marker + indentLines(body, indent));
373
+ }
374
+ return inner.join("\n");
375
+ };
376
+ const tableCellInline = (cell, ctx) => {
377
+ const cellCtx = { ...ctx, inTable: true };
378
+ const blocks = cell.content ?? [];
379
+ const parts = [];
380
+ for (const b of blocks) {
381
+ if (b.type === "paragraph")
382
+ parts.push(inline(b.content, cellCtx));
383
+ else
384
+ parts.push(block(b, cellCtx).replace(/\n/g, "<br>"));
385
+ }
386
+ // Escape `|` so it can't open a new column — but only pipes that aren't
387
+ // already escaped (inline() escapes them in plain text; code spans, URLs
388
+ // and <br>-flattened blocks don't). A pipe is escaped iff it's preceded by
389
+ // an odd run of backslashes, so count the run rather than peek one char.
390
+ return parts.join("<br>").replace(/(\\*)\|/g, (match, backslashes) => backslashes.length % 2 === 0 ? `${backslashes}\\|` : match);
391
+ };
392
+ const table = (n, ctx) => {
393
+ const rows = n.content ?? [];
394
+ if (rows.length === 0)
395
+ return "";
396
+ const renderRow = (row) => (row.content ?? []).map((cell) => tableCellInline(cell, ctx));
397
+ const allRows = rows.map(renderRow);
398
+ const colCount = Math.max(...allRows.map((r) => r.length));
399
+ const pad = (cells) => {
400
+ const out = cells.slice();
401
+ while (out.length < colCount)
402
+ out.push("");
403
+ return out;
404
+ };
405
+ const firstRow = rows[0];
406
+ const firstIsHeader = (firstRow?.content ?? []).every((c) => c.type === "tableHeader");
407
+ const header = firstIsHeader ? pad(allRows[0] ?? []) : Array(colCount).fill("");
408
+ const separator = Array(colCount).fill("---");
409
+ const bodyRows = (firstIsHeader ? allRows.slice(1) : allRows).map(pad);
410
+ const fmt = (cells) => `| ${cells.join(" | ")} |`;
411
+ return encodedBlockNode(n, [fmt(header), fmt(separator), ...bodyRows.map(fmt)].join("\n"), ctx);
412
+ };
413
+ const panel = (n, ctx) => {
414
+ const panelType = attrStr(n, "panelType") ?? "info";
415
+ const attrs = n.attrs ?? { panelType };
416
+ const attrsPart = Object.keys(attrs).length > 0 ? ` attrs=${stableStringify(attrs)}` : "";
417
+ const open = `<!-- adf:panel type=${panelType}${attrsPart} -->`;
418
+ if (ctx.inTable)
419
+ return open;
420
+ const inner = (n.content ?? []).map((c) => block(c, ctx)).join("\n\n");
421
+ const parts = inner.length > 0 ? [open, inner] : [open];
422
+ return [...parts, "<!-- adf:/panel -->"].join("\n\n");
423
+ };
424
+ const encodedBlockNode = (n, body, ctx) => {
425
+ if (ctx.inTable)
426
+ return body;
427
+ const open = `<!-- adf:${n.type} node=${stableStringify(n)} -->`;
428
+ const parts = body.length > 0 ? [open, body] : [open];
429
+ return [...parts, `<!-- adf:/${n.type} -->`].join("\n\n");
430
+ };
431
+ const expand = (n, ctx) => {
432
+ const title = attrStr(n, "title") ?? "";
433
+ // At block level <details> is a CommonMark type-6 HTML block, so the title
434
+ // needs entity escaping. Inside a table cell the flattened output becomes
435
+ // *inline* HTML where the text between tags is still markdown — there the
436
+ // backslash escapes are the correct (and only working) form.
437
+ const safeTitle = ctx.inTable ? escapeText(title) : escapeHtml(title);
438
+ const inner = (n.content ?? []).map((c) => block(c, ctx)).join("\n\n");
439
+ if (ctx.inTable)
440
+ return `<details><summary>${safeTitle}</summary>\n\n${inner}\n\n</details>`;
441
+ return encodedBlockNode(n, `${title}\n\n${inner}`, ctx);
442
+ };
443
+ const taskList = (n, ctx) => {
444
+ const items = n.content ?? [];
445
+ const lines = [];
446
+ for (const item of items) {
447
+ if (item.type !== "taskItem") {
448
+ lines.push(block(item, ctx));
449
+ continue;
450
+ }
451
+ const checked = attrStr(item, "state") === "DONE" ? "x" : " ";
452
+ const text = inline(item.content, ctx);
453
+ lines.push(`- [${checked}] ${text}`);
454
+ }
455
+ return encodedBlockNode(n, lines.join("\n"), ctx);
456
+ };
457
+ const decisionList = (n, ctx) => {
458
+ const items = n.content ?? [];
459
+ const lines = [];
460
+ for (const item of items) {
461
+ if (item.type !== "decisionItem") {
462
+ lines.push(block(item, ctx));
463
+ continue;
464
+ }
465
+ lines.push(`- 🔘 ${inline(item.content, ctx)}`);
466
+ }
467
+ return encodedBlockNode(n, lines.join("\n"), ctx);
468
+ };
469
+ const layoutSection = (n, ctx) => {
470
+ const body = (n.content ?? [])
471
+ .map((column) => block(column, ctx))
472
+ .filter((part) => part.trim().length > 0)
473
+ .join("\n\n");
474
+ return encodedBlockNode(n, body, ctx);
475
+ };
476
+ const layoutColumn = (n, ctx) => (n.content ?? []).map((child) => block(child, ctx)).join("\n\n");
477
+ const cardUrl = (n) => {
478
+ const url = attrStr(n, "url");
479
+ if (url)
480
+ return url;
481
+ const data = attrRecord(n, "data");
482
+ const dataUrl = data?.["url"];
483
+ return typeof dataUrl === "string" ? dataUrl : undefined;
484
+ };
485
+ const blockCard = (n, ctx) => {
486
+ const url = cardUrl(n);
487
+ if (!url) {
488
+ ctx.warnings.push({ _tag: "UnsupportedNode", nodeType: n.type });
489
+ return `<!-- unsupported ADF node: ${n.type} -->`;
490
+ }
491
+ return encodedBlockNode(n, `<${url}>`, ctx);
492
+ };
493
+ const renderMedia = (media, ctx) => {
494
+ const id = (media && attrStr(media, "id")) ?? "";
495
+ const alt = (media && attrStr(media, "alt")) ?? "";
496
+ const url = media && attrStr(media, "url");
497
+ if (url)
498
+ return `![${sanitizeAlt(alt)}](${safeHref(url)})`;
499
+ ctx.warnings.push({ _tag: "MediaWithoutUrl", mediaId: id });
500
+ return `<!-- adf:media id=${id} -->`;
501
+ };
502
+ const mediaSingle = (n, ctx) => {
503
+ const children = n.content ?? [];
504
+ const rendered = renderMedia(children.find((c) => c.type === "media"), ctx);
505
+ const caption = children.find((c) => c.type === "caption");
506
+ const captionText = caption ? inline(caption.content, ctx).trim() : "";
507
+ if (captionText.length === 0)
508
+ return rendered;
509
+ // An em-marked caption already renders as `_…_`; wrapping again would make
510
+ // `__…__` (strong). Leave captions that touch an underscore unwrapped.
511
+ const line = captionText.startsWith("_") || captionText.endsWith("_") ? captionText : `_${captionText}_`;
512
+ return `${rendered}\n${line}`;
513
+ };
514
+ const mediaGroup = (n, ctx) => (n.content ?? []).map((media) => renderMedia(media, ctx)).join("\n\n");
515
+ /**
516
+ * Walk an ADF document and emit GFM markdown. Always synchronous; warnings
517
+ * are collected, not thrown.
518
+ */
519
+ export const walk = (doc) => {
520
+ const ctx = { inTable: false, warnings: [] };
521
+ const root = doc;
522
+ const blocks = (root.content ?? []).map((c) => block(c, ctx));
523
+ const body = blocks.join("\n\n");
524
+ const markdown = body.endsWith("\n") ? body : body + "\n";
525
+ return { markdown, warnings: ctx.warnings };
526
+ };
527
+ //# sourceMappingURL=AdfWalker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdfWalker.js","sourceRoot":"","sources":["../src/AdfWalker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { type JSONDocNode, JSONTransformer } from "@atlaskit/editor-json-transformer";
2
+ import { MarkdownTransformer } from "@atlaskit/editor-markdown-transformer";
3
+ import * as Context from "effect/Context";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Layer from "effect/Layer";
6
+ import { AtlaskitTransformersError } from "./ConfluenceError.js";
7
+ /**
8
+ * Bag of the two transformer instances handed to the `use` callback.
9
+ */
10
+ export interface Transformers {
11
+ readonly md: MarkdownTransformer;
12
+ readonly json: JSONTransformer;
13
+ }
14
+ declare const AtlaskitTransformers_base: Context.ServiceClass<AtlaskitTransformers, "@knpkv/confluence-to-markdown/AtlaskitTransformers", {
15
+ readonly use: <A>(fn: (t: Transformers) => A) => Effect.Effect<A, AtlaskitTransformersError>;
16
+ }>;
17
+ /**
18
+ * Effect service exposing the @atlaskit markdown + JSON transformers via a
19
+ * `use` callback. Errors thrown synchronously by the underlying libraries are
20
+ * surfaced as `AtlaskitTransformersError`.
21
+ *
22
+ * @category Service
23
+ */
24
+ export declare class AtlaskitTransformers extends AtlaskitTransformers_base {
25
+ }
26
+ /**
27
+ * Live Layer providing the wrapped @atlaskit transformers. The transformer
28
+ * instances are module-level singletons; the layer just hands out a
29
+ * `use`-callback service that catches synchronous throws.
30
+ *
31
+ * @category Layers
32
+ */
33
+ export declare const layer: Layer.Layer<AtlaskitTransformers>;
34
+ export type { JSONDocNode };
35
+ //# sourceMappingURL=AtlaskitTransformers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtlaskitTransformers.d.ts","sourceRoot":"","sources":["../src/AtlaskitTransformers.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,WAAW,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAC/B;;kBAgBiB,CAAC,CAAC,EACd,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,CAAC,KACvB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,yBAAyB,CAAC;;AAZpD;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,yBAOe;CAAG;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,oBAAoB,CASnD,CAAA;AAED,YAAY,EAAE,WAAW,EAAE,CAAA"}