@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,19 @@
1
+ /**
2
+ * Shared page input parsing for commands that accept Confluence page IDs.
3
+ */
4
+ import * as Effect from "effect/Effect";
5
+ import { ConfigError } from "../ConfluenceError.js";
6
+ export interface PageInput {
7
+ readonly url?: string | undefined;
8
+ readonly pageId?: string | undefined;
9
+ readonly baseUrl?: string | undefined;
10
+ }
11
+ export interface ResolvedPageInput {
12
+ readonly pageId: string;
13
+ readonly baseUrl: string;
14
+ }
15
+ export declare const validatePageId: (input: string) => Effect.Effect<string, ConfigError>;
16
+ export declare const validateBaseUrl: (input: string) => Effect.Effect<string, ConfigError>;
17
+ export declare const parseConfluencePageUrl: (input: string) => Effect.Effect<ResolvedPageInput, ConfigError>;
18
+ export declare const resolvePageInput: (input: PageInput) => Effect.Effect<ResolvedPageInput, ConfigError>;
19
+ //# sourceMappingURL=pageInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageInput.d.ts","sourceRoot":"","sources":["../../src/commands/pageInput.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAMD,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAK/E,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAc7E,CAAA;AAEJ,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CA8B/F,CAAA;AAEJ,eAAO,MAAM,gBAAgB,GAAI,OAAO,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CA0B5F,CAAA"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Shared page input parsing for commands that accept Confluence page IDs.
3
+ */
4
+ import * as Effect from "effect/Effect";
5
+ import { ConfigError } from "../ConfluenceError.js";
6
+ const isSupportedHost = (host) => /^[a-z0-9-]+\.atlassian\.(?:net|com)$/.test(host);
7
+ const isNumericPageId = (segment) => /^[0-9]+$/.test(segment);
8
+ export const validatePageId = (input) => {
9
+ const pageId = input.trim();
10
+ return pageId.length > 0 && isNumericPageId(pageId)
11
+ ? Effect.succeed(pageId)
12
+ : Effect.fail(new ConfigError({ message: `Invalid Confluence page ID: ${input}` }));
13
+ };
14
+ export const validateBaseUrl = (input) => Effect.gen(function* () {
15
+ const url = yield* Effect.try({
16
+ try: () => new URL(input.trim()),
17
+ catch: () => new ConfigError({ message: `Invalid Confluence URL: ${input}` })
18
+ });
19
+ if (url.protocol !== "https:" || url.pathname !== "/" || !isSupportedHost(url.host)) {
20
+ return yield* Effect.fail(new ConfigError({
21
+ message: `Invalid Confluence URL: ${input}. Expected format: https://yoursite.atlassian.net`
22
+ }));
23
+ }
24
+ return `${url.protocol}//${url.host}`;
25
+ });
26
+ export const parseConfluencePageUrl = (input) => Effect.gen(function* () {
27
+ const url = yield* Effect.try({
28
+ try: () => new URL(input.trim()),
29
+ catch: () => new ConfigError({ message: `Invalid Confluence page URL: ${input}` })
30
+ });
31
+ if (url.protocol !== "https:" || !isSupportedHost(url.host)) {
32
+ return yield* Effect.fail(new ConfigError({
33
+ message: `Unsupported Confluence page URL: ${input}. Expected an https Atlassian Cloud URL.`
34
+ }));
35
+ }
36
+ const segments = url.pathname.split("/").filter((segment) => segment.length > 0);
37
+ const pagesIndex = segments.indexOf("pages");
38
+ const pageIdFromPages = pagesIndex >= 0 ? segments[pagesIndex + 1] : undefined;
39
+ const pageId = pagesIndex >= 0
40
+ ? pageIdFromPages && isNumericPageId(pageIdFromPages) ? pageIdFromPages : undefined
41
+ : segments.find(isNumericPageId);
42
+ if (!pageId) {
43
+ return yield* Effect.fail(new ConfigError({ message: `Could not find a page ID in URL: ${input}` }));
44
+ }
45
+ return {
46
+ pageId,
47
+ baseUrl: `${url.protocol}//${url.host}`
48
+ };
49
+ });
50
+ export const resolvePageInput = (input) => Effect.gen(function* () {
51
+ const url = input.url?.trim();
52
+ const pageId = input.pageId?.trim();
53
+ const baseUrl = input.baseUrl?.trim();
54
+ if (url && (pageId || baseUrl)) {
55
+ return yield* Effect.fail(new ConfigError({ message: "Use either --url or --page-id/--base-url, not both." }));
56
+ }
57
+ if (url) {
58
+ return yield* parseConfluencePageUrl(url);
59
+ }
60
+ if (!pageId || !baseUrl) {
61
+ return yield* Effect.fail(new ConfigError({ message: "Both --page-id and --base-url are required when --url is not provided." }));
62
+ }
63
+ return {
64
+ pageId: yield* validatePageId(pageId),
65
+ baseUrl: yield* validateBaseUrl(baseUrl)
66
+ };
67
+ });
68
+ //# sourceMappingURL=pageInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageInput.js","sourceRoot":"","sources":["../../src/commands/pageInput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Command } from "effect/unstable/cli";
2
+ import { fetchCommand } from "./index.js";
3
+ export interface ConfluenceCommandOptions {
4
+ readonly fetch?: typeof fetchCommand;
5
+ }
6
+ export declare const makeConfluenceCommand: (options?: ConfluenceCommandOptions) => Command.Command<"confluence", {}, {}, import("../ConfluenceError.js").ConfigParseError | import("../ConfluenceError.js").ConfigError | import("../ConfluenceError.js").AuthMissingError | import("../ConfluenceError.js").ApiError | import("../ConfluenceError.js").RateLimitError | import("../ConfluenceError.js").ConversionError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").OAuthError | import("../ConfluenceError.js").FrontMatterError | import("../ConfluenceError.js").StructureError | import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError | (number & import("effect/Brand").Brand<"ExitCode">) | import("../GitError.js").GitError | import("../GitError.js").GitNotInstalledError | import("../GitError.js").GitNoChangesError | import("../GitError.js").GitMergeConflictError | import("../GitError.js").GitNotInitializedError | import("effect/Terminal").QuitError | import("effect/PlatformError").BadArgument, never>;
7
+ export declare const confluenceCommand: Command.Command<"confluence", {}, {}, import("../ConfluenceError.js").ConfigParseError | import("../ConfluenceError.js").ConfigError | import("../ConfluenceError.js").AuthMissingError | import("../ConfluenceError.js").ApiError | import("../ConfluenceError.js").RateLimitError | import("../ConfluenceError.js").ConversionError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").OAuthError | import("../ConfluenceError.js").FrontMatterError | import("../ConfluenceError.js").StructureError | import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError | (number & import("effect/Brand").Brand<"ExitCode">) | import("../GitError.js").GitError | import("../GitError.js").GitNotInstalledError | import("../GitError.js").GitNoChangesError | import("../GitError.js").GitMergeConflictError | import("../GitError.js").GitNotInitializedError | import("effect/Terminal").QuitError | import("effect/PlatformError").BadArgument, never>;
8
+ //# sourceMappingURL=root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/commands/root.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAML,YAAY,EAMb,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,YAAY,CAAA;CACrC;AAiBD,eAAO,MAAM,qBAAqB,GAAI,UAAS,wBAA6B,u9BAiBzE,CAAA;AAEH,eAAO,MAAM,iBAAiB,o9BAA0B,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Root CLI command composition.
3
+ */
4
+ import { makeInstallCommand } from "@knpkv/agent-skills";
5
+ import * as Console from "effect/Console";
6
+ import { Command } from "effect/unstable/cli";
7
+ import { authCommand, cloneCommand, commitCommand, deleteCommand, diffCommand, fetchCommand, logCommand, newCommand, pullCommand, pushCommand, statusCommand } from "./index.js";
8
+ const skillsInstall = makeInstallCommand({
9
+ description: "Install the Confluence agent skill",
10
+ name: "install",
11
+ skills: ["confluence"]
12
+ });
13
+ const skillsCommand = Command.make("skills", {}, () => Console.log("Usage: confluence skills install")).pipe(Command.withDescription("Agent skill commands"), Command.withSubcommands([skillsInstall]));
14
+ export const makeConfluenceCommand = (options = {}) => Command.make("confluence").pipe(Command.withDescription("Sync Confluence pages to local markdown"), Command.withSubcommands([
15
+ cloneCommand,
16
+ authCommand,
17
+ pullCommand,
18
+ pushCommand,
19
+ statusCommand,
20
+ commitCommand,
21
+ logCommand,
22
+ diffCommand,
23
+ options.fetch ?? fetchCommand,
24
+ newCommand,
25
+ deleteCommand,
26
+ skillsCommand
27
+ ]));
28
+ export const confluenceCommand = makeConfluenceCommand();
29
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/commands/root.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAA;AAMnB,MAAM,aAAa,GAAG,kBAAkB,CAAC;IACvC,WAAW,EAAE,oCAAoC;IACjD,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,CAAC,YAAY,CAAC;CACvB,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAChC,QAAQ,EACR,EAAE,EACF,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CACtD,CAAC,IAAI,CACJ,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,EAC/C,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,CAAC,CACzC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAoC,EAAE,EAAE,EAAE,CAC9E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAC7B,OAAO,CAAC,eAAe,CAAC,yCAAyC,CAAC,EAClE,OAAO,CAAC,eAAe,CAAC;IACtB,YAAY;IACZ,WAAW;IACX,WAAW;IACX,WAAW;IACX,aAAa;IACb,aAAa;IACb,UAAU;IACV,WAAW;IACX,OAAO,CAAC,KAAK,IAAI,YAAY;IAC7B,UAAU;IACV,aAAa;IACb,aAAa;CACd,CAAC,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,CAAA"}
@@ -1,15 +1,12 @@
1
- /**
2
- * Sync commands (pull, push, status) for Confluence CLI.
3
- */
4
- import { Command } from "@effect/cli";
1
+ import { Command } from "effect/unstable/cli";
5
2
  import { GitService } from "../GitService.js";
6
3
  import { SyncEngine } from "../SyncEngine.js";
7
- export declare const pullCommand: Command.Command<"pull", SyncEngine, import("../ConfluenceError.js").ApiError | import("../ConfluenceError.js").RateLimitError | import("../ConfluenceError.js").ConversionError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").FrontMatterError | import("../ConfluenceError.js").StructureError | import("../GitService.js").GitServiceError, {
4
+ export declare const pullCommand: Command.Command<"pull", {
8
5
  readonly force: boolean;
9
6
  readonly replayHistory: boolean;
10
- }>;
11
- export declare const pushCommand: Command.Command<"push", GitService | SyncEngine, import("../ConfluenceError.js").ApiError | import("../ConfluenceError.js").RateLimitError | import("../ConfluenceError.js").ConversionError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").FrontMatterError | import("../ConfluenceError.js").StructureError | import("../GitError.js").GitError | import("../GitError.js").GitNotInstalledError | import("../GitError.js").GitNoChangesError | import("../GitError.js").GitMergeConflictError | import("../GitError.js").GitNotInitializedError, {
7
+ }, {}, import("effect/PlatformError").PlatformError | (import("../ConfluenceError.js").ApiError | import("../ConfluenceError.js").RateLimitError | import("../ConfluenceError.js").ConversionError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").FrontMatterError | import("../ConfluenceError.js").StructureError | import("../GitService.js").GitServiceError), import("effect/Terminal").Terminal | SyncEngine>;
8
+ export declare const pushCommand: Command.Command<"push", {
12
9
  readonly dryRun: boolean;
13
- }>;
14
- export declare const statusCommand: Command.Command<"status", GitService | SyncEngine, import("../ConfluenceError.js").ApiError | import("../ConfluenceError.js").RateLimitError | import("../ConfluenceError.js").ConversionError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").FrontMatterError | import("../ConfluenceError.js").StructureError | import("../GitError.js").GitError | import("../GitError.js").GitNotInstalledError | import("../GitError.js").GitNoChangesError | import("../GitError.js").GitMergeConflictError | import("../GitError.js").GitNotInitializedError, {}>;
10
+ }, {}, import("../ConfluenceError.js").ApiError | import("../ConfluenceError.js").RateLimitError | import("../ConfluenceError.js").ConversionError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").FrontMatterError | import("../ConfluenceError.js").StructureError | import("../GitError.js").GitError | import("../GitError.js").GitNotInstalledError | import("../GitError.js").GitNoChangesError | import("../GitError.js").GitMergeConflictError | import("../GitError.js").GitNotInitializedError, GitService | SyncEngine>;
11
+ export declare const statusCommand: Command.Command<"status", {}, {}, import("../ConfluenceError.js").ApiError | import("../ConfluenceError.js").RateLimitError | import("../ConfluenceError.js").ConversionError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").FrontMatterError | import("../ConfluenceError.js").StructureError | import("../GitError.js").GitError | import("../GitError.js").GitNotInstalledError | import("../GitError.js").GitNoChangesError | import("../GitError.js").GitMergeConflictError | import("../GitError.js").GitNotInitializedError, GitService | SyncEngine>;
15
12
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAW,MAAM,aAAa,CAAA;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAY7C,eAAO,MAAM,WAAW;;;EA0B2D,CAAA;AAQnF,eAAO,MAAM,WAAW;;EA0BsD,CAAA;AAG9E,eAAO,MAAM,aAAa,+jBA8C6B,CAAA"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAmB,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAY7C,eAAO,MAAM,WAAW;;;wbAyB2D,CAAA;AAQnF,eAAO,MAAM,WAAW;;siBA0BsD,CAAA;AAG9E,eAAO,MAAM,aAAa,mkBA8C6B,CAAA"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Sync commands (pull, push, status) for Confluence CLI.
3
3
  */
4
- import { Command, Options } from "@effect/cli";
5
4
  import * as Console from "effect/Console";
6
5
  import * as Effect from "effect/Effect";
6
+ import { Command, Flag as Options } from "effect/unstable/cli";
7
7
  import { GitService } from "../GitService.js";
8
+ import { writeStdout } from "../internal/stdio.js";
8
9
  import { SyncEngine } from "../SyncEngine.js";
9
10
  // === Pull command ===
10
11
  const forceOption = Options.boolean("force").pipe(Options.withAlias("f"), Options.withDescription("Overwrite local changes"));
@@ -12,16 +13,14 @@ const replayHistoryOption = Options.boolean("replay-history").pipe(Options.withD
12
13
  export const pullCommand = Command.make("pull", { force: forceOption, replayHistory: replayHistoryOption }, ({ force, replayHistory }) => Effect.gen(function* () {
13
14
  const engine = yield* SyncEngine;
14
15
  yield* Console.log("Pulling pages from Confluence...");
15
- const onProgress = (current, total, message) => {
16
- process.stdout.write(`\r Replaying history: ${current}/${total} - ${message}`);
17
- };
16
+ const onProgress = (current, total, message) => writeStdout(`\r Replaying history: ${current}/${total} - ${message}`);
18
17
  const result = yield* engine.pull({
19
18
  force,
20
19
  replayHistory,
21
20
  ...(replayHistory ? { onProgress } : {})
22
21
  });
23
22
  if (replayHistory) {
24
- process.stdout.write("\r" + " ".repeat(80) + "\r");
23
+ yield* writeStdout("\r" + " ".repeat(80) + "\r");
25
24
  }
26
25
  yield* Console.log(`Pulled ${result.pulled} pages`);
27
26
  if (result.commits > 0) {
@@ -62,7 +61,7 @@ export const statusCommand = Command.make("status", {}, () => Effect.gen(functio
62
61
  const gitInit = yield* git.isInitialized();
63
62
  if (gitInit) {
64
63
  const gitStatus = yield* git.status();
65
- const commitCount = yield* git.log({ n: 1 }).pipe(Effect.map((commits) => commits.length > 0 ? "has commits" : "no commits"), Effect.catchAll(() => Effect.succeed("unknown")));
64
+ const commitCount = yield* git.log({ n: 1 }).pipe(Effect.map((commits) => commits.length > 0 ? "has commits" : "no commits"), Effect.catchIf(() => true, () => Effect.succeed("unknown")));
66
65
  yield* Console.log(`Git: initialized (${commitCount})`);
67
66
  if (gitStatus.hasChanges) {
68
67
  const staged = gitStatus.entries.filter((e) => e.staged).length;
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,9 @@
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
8
+ export { AdfSchemaValidator, layer as AdfSchemaValidatorLayer } from "./AdfSchemaValidator.js";
9
+ export { type WalkerWarning, type WalkResult } from "./AdfWalker.js";
10
+ export { AtlaskitTransformers, layer as AtlaskitTransformersLayer, type Transformers } from "./AtlaskitTransformers.js";
8
11
  export * from "./Brand.js";
9
12
  export { ConfluenceAuth, type ConfluenceAuthService, layer as ConfluenceAuthLayer } from "./ConfluenceAuth.js";
10
13
  export { ConfluenceClient, type ConfluenceClientConfig, type CreatePageRequest, layer as ConfluenceClientLayer, type UpdatePageRequest } from "./ConfluenceClient.js";
@@ -14,12 +17,4 @@ export { layer as LocalFileSystemLayer, type LocalFile, LocalFileSystem } from "
14
17
  export { layer as MarkdownConverterLayer, MarkdownConverter } from "./MarkdownConverter.js";
15
18
  export * from "./Schemas.js";
16
19
  export { layer as SyncEngineLayer, type ProgressCallback, type PullOptions, type PullResult, type PushResult, type StatusResult, SyncEngine, type SyncStatus } from "./SyncEngine.js";
17
- export * from "./ast/index.js";
18
- export { parseConfluenceHtml } from "./parsers/ConfluenceParser.js";
19
- export { parseMarkdown } from "./parsers/MarkdownParser.js";
20
- export { serializeToConfluence } from "./serializers/ConfluenceSerializer.js";
21
- export { serializeToMarkdown } from "./serializers/MarkdownSerializer.js";
22
- export { DocumentFromConfluence } from "./schemas/ConfluenceSchema.js";
23
- export { DocumentFromMarkdown } from "./schemas/MarkdownSchema.js";
24
- export { MigrationError, ParseError, SerializeError } from "./SchemaConverterError.js";
25
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9G,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,IAAI,qBAAqB,EAC9B,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,IAAI,qBAAqB,EAC9B,eAAe,IAAI,+BAA+B,EACnD,MAAM,uBAAuB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,KAAK,IAAI,oBAAoB,EAAE,KAAK,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACrG,OAAO,EAAE,KAAK,IAAI,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,KAAK,IAAI,eAAe,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,UAAU,EACV,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAA;AAGxB,cAAc,gBAAgB,CAAA;AAG9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAG3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,KAAK,IAAI,yBAAyB,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACvH,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9G,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,IAAI,qBAAqB,EAC9B,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,IAAI,qBAAqB,EAC9B,eAAe,IAAI,+BAA+B,EACnD,MAAM,uBAAuB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,KAAK,IAAI,oBAAoB,EAAE,KAAK,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACrG,OAAO,EAAE,KAAK,IAAI,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,KAAK,IAAI,eAAe,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,UAAU,EACV,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
8
+ export { AdfSchemaValidator, layer as AdfSchemaValidatorLayer } from "./AdfSchemaValidator.js";
9
+ export { AtlaskitTransformers, layer as AtlaskitTransformersLayer } from "./AtlaskitTransformers.js";
8
10
  export * from "./Brand.js";
9
11
  export { ConfluenceAuth, layer as ConfluenceAuthLayer } from "./ConfluenceAuth.js";
10
12
  export { ConfluenceClient, layer as ConfluenceClientLayer } from "./ConfluenceClient.js";
@@ -14,17 +16,4 @@ export { layer as LocalFileSystemLayer, LocalFileSystem } from "./LocalFileSyste
14
16
  export { layer as MarkdownConverterLayer, MarkdownConverter } from "./MarkdownConverter.js";
15
17
  export * from "./Schemas.js";
16
18
  export { layer as SyncEngineLayer, SyncEngine } from "./SyncEngine.js";
17
- // AST types
18
- export * from "./ast/index.js";
19
- // Parsers
20
- export { parseConfluenceHtml } from "./parsers/ConfluenceParser.js";
21
- export { parseMarkdown } from "./parsers/MarkdownParser.js";
22
- // Serializers
23
- export { serializeToConfluence } from "./serializers/ConfluenceSerializer.js";
24
- export { serializeToMarkdown } from "./serializers/MarkdownSerializer.js";
25
- // Bi-directional schemas
26
- export { DocumentFromConfluence } from "./schemas/ConfluenceSchema.js";
27
- export { DocumentFromMarkdown } from "./schemas/MarkdownSchema.js";
28
- // Schema converter errors
29
- export { MigrationError, ParseError, SerializeError } from "./SchemaConverterError.js";
30
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,cAAc,EAA8B,KAAK,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9G,OAAO,EACL,gBAAgB,EAGhB,KAAK,IAAI,qBAAqB,EAE/B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,IAAI,qBAAqB,EAC9B,eAAe,IAAI,+BAA+B,EACnD,MAAM,uBAAuB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,KAAK,IAAI,oBAAoB,EAAkB,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACrG,OAAO,EAAE,KAAK,IAAI,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,KAAK,IAAI,eAAe,EAMxB,UAAU,EAEX,MAAM,iBAAiB,CAAA;AAExB,YAAY;AACZ,cAAc,gBAAgB,CAAA;AAE9B,UAAU;AACV,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,cAAc;AACd,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAEzE,yBAAyB;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAE9F,OAAO,EAAE,oBAAoB,EAAE,KAAK,IAAI,yBAAyB,EAAqB,MAAM,2BAA2B,CAAA;AACvH,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,cAAc,EAA8B,KAAK,IAAI,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9G,OAAO,EACL,gBAAgB,EAGhB,KAAK,IAAI,qBAAqB,EAE/B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,IAAI,qBAAqB,EAC9B,eAAe,IAAI,+BAA+B,EACnD,MAAM,uBAAuB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,KAAK,IAAI,oBAAoB,EAAkB,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACrG,OAAO,EAAE,KAAK,IAAI,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,cAAc,cAAc,CAAA;AAC5B,OAAO,EACL,KAAK,IAAI,eAAe,EAMxB,UAAU,EAEX,MAAM,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeLayers.d.ts","sourceRoot":"","sources":["../../src/internal/NodeLayers.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,6FAEjC,CAAA"}
1
+ {"version":3,"file":"NodeLayers.d.ts","sourceRoot":"","sources":["../../src/internal/NodeLayers.ts"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,6FAEjC,CAAA"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Node.js-specific layer implementations.
3
3
  *
4
- * This is the ONLY file that should import directly from node:* modules.
5
- * All other code should use Effect platform abstractions.
4
+ * This file wires package-specific Node runtime layers.
6
5
  *
7
6
  * @module
8
7
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"NodeLayers.js","sourceRoot":"","sources":["../../src/internal/NodeLayers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,cAAc,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CACxD,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAC7D,CAAA"}
1
+ {"version":3,"file":"NodeLayers.js","sourceRoot":"","sources":["../../src/internal/NodeLayers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,cAAc,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CACxD,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAC7D,CAAA"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * External sidecar storage for ADF placeholder metadata.
3
+ *
4
+ * Markdown stays readable by replacing large `attrs={...}` / `node={...}`
5
+ * blobs with `ref=./page.adf.json#id`; the sidecar stores decoded JSON.
6
+ *
7
+ * @module
8
+ */
9
+ import * as Schema from "effect/Schema";
10
+ export type AdfMetadataKind = "attrs" | "marks" | "node";
11
+ export declare const AdfMetadataEntrySchema: Schema.Struct<{
12
+ readonly kind: Schema.Literals<readonly ["attrs", "marks", "node"]>;
13
+ readonly value: Schema.Unknown;
14
+ }>;
15
+ export declare const AdfMetadataSidecarSchema: Schema.Struct<{
16
+ readonly version: Schema.Literal<1>;
17
+ readonly entries: Schema.$Record<Schema.String, Schema.Struct<{
18
+ readonly kind: Schema.Literals<readonly ["attrs", "marks", "node"]>;
19
+ readonly value: Schema.Unknown;
20
+ }>>;
21
+ }>;
22
+ export type AdfMetadataEntry = typeof AdfMetadataEntrySchema.Type;
23
+ export type AdfMetadataSidecar = typeof AdfMetadataSidecarSchema.Type;
24
+ export declare const externalizeAdfMetadata: (markdown: string, sidecarHref: string) => {
25
+ readonly markdown: string;
26
+ readonly sidecar: AdfMetadataSidecar | null;
27
+ };
28
+ export declare const collectAdfMetadataHrefs: (markdown: string) => ReadonlySet<string>;
29
+ export declare const hydrateAdfMetadata: (markdown: string, sidecars: ReadonlyMap<string, AdfMetadataSidecar>) => string;
30
+ //# sourceMappingURL=adfMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adfMetadata.d.ts","sourceRoot":"","sources":["../../src/internal/adfMetadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;AAExD,eAAO,MAAM,sBAAsB;;;EAGjC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;EAGnC,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AACjE,MAAM,MAAM,kBAAkB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAyErE,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,aAAa,MAAM,KAClB;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAS1E,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,WAAW,CAAC,MAAM,CAY5E,CAAA;AAmBD,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,UAAU,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,KAChD,MAAoF,CAAA"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * External sidecar storage for ADF placeholder metadata.
3
+ *
4
+ * Markdown stays readable by replacing large `attrs={...}` / `node={...}`
5
+ * blobs with `ref=./page.adf.json#id`; the sidecar stores decoded JSON.
6
+ *
7
+ * @module
8
+ */
9
+ import * as Schema from "effect/Schema";
10
+ export const AdfMetadataEntrySchema = Schema.Struct({
11
+ kind: Schema.Literals(["attrs", "marks", "node"]),
12
+ value: Schema.Unknown
13
+ });
14
+ export const AdfMetadataSidecarSchema = Schema.Struct({
15
+ version: Schema.Literal(1),
16
+ entries: Schema.Record(Schema.String, AdfMetadataEntrySchema)
17
+ });
18
+ const stableStringify = (v) => {
19
+ if (Array.isArray(v))
20
+ return `[${v.map(stableStringify).join(",")}]`;
21
+ if (v !== null && typeof v === "object") {
22
+ const entries = Object.entries(v)
23
+ .filter(([, value]) => value !== undefined)
24
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
25
+ .map(([k, value]) => `${JSON.stringify(k)}:${stableStringify(value)}`);
26
+ return `{${entries.join(",")}}`;
27
+ }
28
+ return JSON.stringify(v) ?? "null";
29
+ };
30
+ const markerKinds = ["node", "attrs", "marks"];
31
+ const markerType = (line) => {
32
+ const match = /<!--\s*adf:([A-Za-z][A-Za-z0-9]*)/.exec(line);
33
+ return match?.[1] ?? "metadata";
34
+ };
35
+ const fromBase64 = (b64) => {
36
+ const bin = atob(b64);
37
+ return new TextDecoder().decode(Uint8Array.from(bin, (c) => c.charCodeAt(0)));
38
+ };
39
+ const parseMetadataValue = (raw) => {
40
+ const trimmed = raw.trim();
41
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
42
+ try {
43
+ return JSON.parse(trimmed);
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ try {
50
+ const decoded = fromBase64(trimmed);
51
+ if (!decoded.startsWith("{") && !decoded.startsWith("["))
52
+ return null;
53
+ return JSON.parse(decoded);
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ };
59
+ const externalizeLine = (line, sidecarHref, nextId, entries) => {
60
+ if (!line.includes("<!-- adf:") || line.includes("<!-- adf:/"))
61
+ return line;
62
+ const end = line.lastIndexOf("-->");
63
+ if (end === -1)
64
+ return line;
65
+ for (const kind of markerKinds) {
66
+ const needle = ` ${kind}=`;
67
+ const keyStart = line.indexOf(needle);
68
+ if (keyStart === -1 || keyStart > end)
69
+ continue;
70
+ const valueStart = keyStart + needle.length;
71
+ const raw = line.slice(valueStart, end).trim();
72
+ const value = parseMetadataValue(raw);
73
+ if (value === null)
74
+ return line;
75
+ const id = nextId(markerType(line));
76
+ entries[id] = { kind, value };
77
+ return `${line.slice(0, keyStart)} ref=${sidecarHref}#${id} ${line.slice(end)}`;
78
+ }
79
+ return line;
80
+ };
81
+ export const externalizeAdfMetadata = (markdown, sidecarHref) => {
82
+ const entries = {};
83
+ let counter = 0;
84
+ const nextId = (type) => `${type}-${++counter}`;
85
+ const lines = markdown.split("\n").map((line) => externalizeLine(line, sidecarHref, nextId, entries));
86
+ return {
87
+ markdown: lines.join("\n"),
88
+ sidecar: Object.keys(entries).length > 0 ? { version: 1, entries } : null
89
+ };
90
+ };
91
+ export const collectAdfMetadataHrefs = (markdown) => {
92
+ const hrefs = new Set();
93
+ for (const line of markdown.split("\n")) {
94
+ if (!line.includes("<!-- adf:") || !line.includes(" ref="))
95
+ continue;
96
+ const end = line.lastIndexOf("-->");
97
+ const refStart = line.indexOf(" ref=");
98
+ if (end === -1 || refStart === -1 || refStart > end)
99
+ continue;
100
+ const rawRef = line.slice(refStart + " ref=".length, end).trim();
101
+ const href = rawRef.includes("#") ? rawRef.slice(0, rawRef.lastIndexOf("#")) : rawRef;
102
+ if (href.length > 0)
103
+ hrefs.add(href);
104
+ }
105
+ return hrefs;
106
+ };
107
+ const hydrateLine = (line, sidecars) => {
108
+ if (!line.includes("<!-- adf:") || !line.includes(" ref="))
109
+ return line;
110
+ const end = line.lastIndexOf("-->");
111
+ const refStart = line.indexOf(" ref=");
112
+ if (end === -1 || refStart === -1 || refStart > end)
113
+ return line;
114
+ const rawRef = line.slice(refStart + " ref=".length, end).trim();
115
+ const href = rawRef.includes("#") ? rawRef.slice(0, rawRef.lastIndexOf("#")) : rawRef;
116
+ const id = rawRef.includes("#") ? rawRef.slice(rawRef.lastIndexOf("#") + 1) : rawRef;
117
+ const sidecar = sidecars.get(href);
118
+ if (!sidecar)
119
+ return line;
120
+ const entry = sidecar.entries[id];
121
+ if (!entry)
122
+ return line;
123
+ return `${line.slice(0, refStart)} ${entry.kind}=${stableStringify(entry.value)} ${line.slice(end)}`;
124
+ };
125
+ export const hydrateAdfMetadata = (markdown, sidecars) => markdown.split("\n").map((line) => hydrateLine(line, sidecars)).join("\n");
126
+ //# sourceMappingURL=adfMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adfMetadata.js","sourceRoot":"","sources":["../../src/internal/adfMetadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Remove Confluence round-trip metadata from markdown intended for reading.
3
+ */
4
+ export declare const cleanMarkdown: (markdown: string) => string;
5
+ //# sourceMappingURL=cleanMarkdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanMarkdown.d.ts","sourceRoot":"","sources":["../../src/internal/cleanMarkdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAQhD,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Remove Confluence round-trip metadata from markdown intended for reading.
3
+ */
4
+ const ADF_COMMENT_PATTERN = /<!--\s*adf:[\s\S]*?-->/g;
5
+ export const cleanMarkdown = (markdown) => {
6
+ const cleaned = markdown
7
+ .replace(ADF_COMMENT_PATTERN, "")
8
+ .replace(/[ \t]+\n/g, "\n")
9
+ .replace(/\n{3,}/g, "\n\n")
10
+ .trim();
11
+ return cleaned.length > 0 ? `${cleaned}\n` : "";
12
+ };
13
+ //# sourceMappingURL=cleanMarkdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanMarkdown.js","sourceRoot":"","sources":["../../src/internal/cleanMarkdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,mBAAmB,GAAG,yBAAyB,CAAA;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAU,EAAE;IACxD,MAAM,OAAO,GAAG,QAAQ;SACrB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;SAC1B,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAA;IAET,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;AACjD,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/internal/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGxE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB,GAAG,IAAI,CAAA;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAqC7C,CAAA;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,aAAa,eAAe,EAC5B,SAAS,MAAM,KACd,MAYF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,kBAAkB,EAC/B,SAAS,MAAM,KACd,MAOF,CAAA"}
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../src/internal/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGxE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB,GAAG,IAAI,CAAA;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB;AA6BD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,EAChB,SAAS,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAqC7C,CAAA;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,aAAa,eAAe,EAC5B,SAAS,MAAM,KACd,MAYF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,kBAAkB,EAC/B,SAAS,MAAM,KACd,MAOF,CAAA"}