@knpkv/confluence-to-markdown 0.2.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/LICENSE +21 -0
  3. package/README.md +282 -14
  4. package/dist/ConfluenceAuth.d.ts +76 -0
  5. package/dist/ConfluenceAuth.d.ts.map +1 -0
  6. package/dist/ConfluenceAuth.js +366 -0
  7. package/dist/ConfluenceAuth.js.map +1 -0
  8. package/dist/ConfluenceClient.d.ts +26 -12
  9. package/dist/ConfluenceClient.d.ts.map +1 -1
  10. package/dist/ConfluenceClient.js +139 -97
  11. package/dist/ConfluenceClient.js.map +1 -1
  12. package/dist/ConfluenceConfig.d.ts +4 -24
  13. package/dist/ConfluenceConfig.d.ts.map +1 -1
  14. package/dist/ConfluenceConfig.js +45 -7
  15. package/dist/ConfluenceConfig.js.map +1 -1
  16. package/dist/ConfluenceError.d.ts +99 -16
  17. package/dist/ConfluenceError.d.ts.map +1 -1
  18. package/dist/ConfluenceError.js +88 -5
  19. package/dist/ConfluenceError.js.map +1 -1
  20. package/dist/GitError.d.ts +103 -0
  21. package/dist/GitError.d.ts.map +1 -0
  22. package/dist/GitError.js +85 -0
  23. package/dist/GitError.js.map +1 -0
  24. package/dist/GitService.d.ts +175 -0
  25. package/dist/GitService.d.ts.map +1 -0
  26. package/dist/GitService.js +431 -0
  27. package/dist/GitService.js.map +1 -0
  28. package/dist/LocalFileSystem.d.ts +29 -4
  29. package/dist/LocalFileSystem.d.ts.map +1 -1
  30. package/dist/LocalFileSystem.js +80 -6
  31. package/dist/LocalFileSystem.js.map +1 -1
  32. package/dist/MarkdownConverter.d.ts +49 -2
  33. package/dist/MarkdownConverter.d.ts.map +1 -1
  34. package/dist/MarkdownConverter.js +73 -111
  35. package/dist/MarkdownConverter.js.map +1 -1
  36. package/dist/SchemaConverterError.d.ts +108 -0
  37. package/dist/SchemaConverterError.d.ts.map +1 -0
  38. package/dist/SchemaConverterError.js +84 -0
  39. package/dist/SchemaConverterError.js.map +1 -0
  40. package/dist/Schemas.d.ts +225 -1
  41. package/dist/Schemas.d.ts.map +1 -1
  42. package/dist/Schemas.js +155 -6
  43. package/dist/Schemas.js.map +1 -1
  44. package/dist/SyncEngine.d.ts +30 -20
  45. package/dist/SyncEngine.d.ts.map +1 -1
  46. package/dist/SyncEngine.js +566 -117
  47. package/dist/SyncEngine.js.map +1 -1
  48. package/dist/ast/BlockNode.d.ts +468 -0
  49. package/dist/ast/BlockNode.d.ts.map +1 -0
  50. package/dist/ast/BlockNode.js +319 -0
  51. package/dist/ast/BlockNode.js.map +1 -0
  52. package/dist/ast/Document.d.ts +244 -0
  53. package/dist/ast/Document.d.ts.map +1 -0
  54. package/dist/ast/Document.js +69 -0
  55. package/dist/ast/Document.js.map +1 -0
  56. package/dist/ast/InlineNode.d.ts +477 -0
  57. package/dist/ast/InlineNode.d.ts.map +1 -0
  58. package/dist/ast/InlineNode.js +263 -0
  59. package/dist/ast/InlineNode.js.map +1 -0
  60. package/dist/ast/MacroNode.d.ts +267 -0
  61. package/dist/ast/MacroNode.d.ts.map +1 -0
  62. package/dist/ast/MacroNode.js +164 -0
  63. package/dist/ast/MacroNode.js.map +1 -0
  64. package/dist/ast/index.d.ts +10 -0
  65. package/dist/ast/index.d.ts.map +1 -0
  66. package/dist/ast/index.js +14 -0
  67. package/dist/ast/index.js.map +1 -0
  68. package/dist/bin.js +33 -149
  69. package/dist/bin.js.map +1 -1
  70. package/dist/commands/auth.d.ts +15 -0
  71. package/dist/commands/auth.d.ts.map +1 -0
  72. package/dist/commands/auth.js +86 -0
  73. package/dist/commands/auth.js.map +1 -0
  74. package/dist/commands/clone.d.ts +12 -0
  75. package/dist/commands/clone.d.ts.map +1 -0
  76. package/dist/commands/clone.js +93 -0
  77. package/dist/commands/clone.js.map +1 -0
  78. package/dist/commands/delete.d.ts +13 -0
  79. package/dist/commands/delete.d.ts.map +1 -0
  80. package/dist/commands/delete.js +48 -0
  81. package/dist/commands/delete.js.map +1 -0
  82. package/dist/commands/errorHandler.d.ts +14 -0
  83. package/dist/commands/errorHandler.d.ts.map +1 -0
  84. package/dist/commands/errorHandler.js +33 -0
  85. package/dist/commands/errorHandler.js.map +1 -0
  86. package/dist/commands/git.d.ts +22 -0
  87. package/dist/commands/git.d.ts.map +1 -0
  88. package/dist/commands/git.js +72 -0
  89. package/dist/commands/git.js.map +1 -0
  90. package/dist/commands/index.d.ts +11 -0
  91. package/dist/commands/index.d.ts.map +1 -0
  92. package/dist/commands/index.js +11 -0
  93. package/dist/commands/index.js.map +1 -0
  94. package/dist/commands/layers.d.ts +31 -0
  95. package/dist/commands/layers.d.ts.map +1 -0
  96. package/dist/commands/layers.js +137 -0
  97. package/dist/commands/layers.js.map +1 -0
  98. package/dist/commands/new.d.ts +9 -0
  99. package/dist/commands/new.d.ts.map +1 -0
  100. package/dist/commands/new.js +80 -0
  101. package/dist/commands/new.js.map +1 -0
  102. package/dist/commands/pageTree.d.ts +18 -0
  103. package/dist/commands/pageTree.d.ts.map +1 -0
  104. package/dist/commands/pageTree.js +20 -0
  105. package/dist/commands/pageTree.js.map +1 -0
  106. package/dist/commands/shared.d.ts +15 -0
  107. package/dist/commands/shared.d.ts.map +1 -0
  108. package/dist/commands/shared.js +27 -0
  109. package/dist/commands/shared.js.map +1 -0
  110. package/dist/commands/sync.d.ts +15 -0
  111. package/dist/commands/sync.d.ts.map +1 -0
  112. package/dist/commands/sync.js +101 -0
  113. package/dist/commands/sync.js.map +1 -0
  114. package/dist/index.d.ts +10 -1
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +14 -0
  117. package/dist/index.js.map +1 -1
  118. package/dist/internal/NodeLayers.d.ts +7 -0
  119. package/dist/internal/NodeLayers.d.ts.map +1 -0
  120. package/dist/internal/NodeLayers.js +19 -0
  121. package/dist/internal/NodeLayers.js.map +1 -0
  122. package/dist/internal/frontmatter.d.ts +10 -0
  123. package/dist/internal/frontmatter.d.ts.map +1 -1
  124. package/dist/internal/frontmatter.js +16 -0
  125. package/dist/internal/frontmatter.js.map +1 -1
  126. package/dist/internal/gitCommands.d.ts +78 -0
  127. package/dist/internal/gitCommands.d.ts.map +1 -0
  128. package/dist/internal/gitCommands.js +156 -0
  129. package/dist/internal/gitCommands.js.map +1 -0
  130. package/dist/internal/hashUtils.d.ts +42 -1
  131. package/dist/internal/hashUtils.d.ts.map +1 -1
  132. package/dist/internal/hashUtils.js +38 -2
  133. package/dist/internal/hashUtils.js.map +1 -1
  134. package/dist/internal/oauthServer.d.ts +55 -0
  135. package/dist/internal/oauthServer.d.ts.map +1 -0
  136. package/dist/internal/oauthServer.js +110 -0
  137. package/dist/internal/oauthServer.js.map +1 -0
  138. package/dist/internal/pathUtils.d.ts +21 -4
  139. package/dist/internal/pathUtils.d.ts.map +1 -1
  140. package/dist/internal/pathUtils.js +24 -13
  141. package/dist/internal/pathUtils.js.map +1 -1
  142. package/dist/internal/tokenStorage.d.ts +75 -0
  143. package/dist/internal/tokenStorage.d.ts.map +1 -0
  144. package/dist/internal/tokenStorage.js +149 -0
  145. package/dist/internal/tokenStorage.js.map +1 -0
  146. package/dist/internal/userCache.d.ts +42 -0
  147. package/dist/internal/userCache.d.ts.map +1 -0
  148. package/dist/internal/userCache.js +51 -0
  149. package/dist/internal/userCache.js.map +1 -0
  150. package/dist/parsers/ConfluenceParser.d.ts +26 -0
  151. package/dist/parsers/ConfluenceParser.d.ts.map +1 -0
  152. package/dist/parsers/ConfluenceParser.js +792 -0
  153. package/dist/parsers/ConfluenceParser.js.map +1 -0
  154. package/dist/parsers/MarkdownParser.d.ts +26 -0
  155. package/dist/parsers/MarkdownParser.d.ts.map +1 -0
  156. package/dist/parsers/MarkdownParser.js +873 -0
  157. package/dist/parsers/MarkdownParser.js.map +1 -0
  158. package/dist/parsers/index.d.ts +8 -0
  159. package/dist/parsers/index.d.ts.map +1 -0
  160. package/dist/parsers/index.js +8 -0
  161. package/dist/parsers/index.js.map +1 -0
  162. package/dist/schemas/ConfluenceSchema.d.ts +21 -0
  163. package/dist/schemas/ConfluenceSchema.d.ts.map +1 -0
  164. package/dist/schemas/ConfluenceSchema.js +38 -0
  165. package/dist/schemas/ConfluenceSchema.js.map +1 -0
  166. package/dist/schemas/ConversionSchema.d.ts +35 -0
  167. package/dist/schemas/ConversionSchema.d.ts.map +1 -0
  168. package/dist/schemas/ConversionSchema.js +208 -0
  169. package/dist/schemas/ConversionSchema.js.map +1 -0
  170. package/dist/schemas/MarkdownSchema.d.ts +21 -0
  171. package/dist/schemas/MarkdownSchema.d.ts.map +1 -0
  172. package/dist/schemas/MarkdownSchema.js +38 -0
  173. package/dist/schemas/MarkdownSchema.js.map +1 -0
  174. package/dist/schemas/hast/HastFromHtml.d.ts +27 -0
  175. package/dist/schemas/hast/HastFromHtml.d.ts.map +1 -0
  176. package/dist/schemas/hast/HastFromHtml.js +107 -0
  177. package/dist/schemas/hast/HastFromHtml.js.map +1 -0
  178. package/dist/schemas/hast/HastSchema.d.ts +195 -0
  179. package/dist/schemas/hast/HastSchema.d.ts.map +1 -0
  180. package/dist/schemas/hast/HastSchema.js +183 -0
  181. package/dist/schemas/hast/HastSchema.js.map +1 -0
  182. package/dist/schemas/hast/index.d.ts +9 -0
  183. package/dist/schemas/hast/index.d.ts.map +1 -0
  184. package/dist/schemas/hast/index.js +3 -0
  185. package/dist/schemas/hast/index.js.map +1 -0
  186. package/dist/schemas/index.d.ts +14 -0
  187. package/dist/schemas/index.d.ts.map +1 -0
  188. package/dist/schemas/index.js +16 -0
  189. package/dist/schemas/index.js.map +1 -0
  190. package/dist/schemas/mdast/MdastFromMarkdown.d.ts +30 -0
  191. package/dist/schemas/mdast/MdastFromMarkdown.d.ts.map +1 -0
  192. package/dist/schemas/mdast/MdastFromMarkdown.js +79 -0
  193. package/dist/schemas/mdast/MdastFromMarkdown.js.map +1 -0
  194. package/dist/schemas/mdast/MdastSchema.d.ts +385 -0
  195. package/dist/schemas/mdast/MdastSchema.d.ts.map +1 -0
  196. package/dist/schemas/mdast/MdastSchema.js +266 -0
  197. package/dist/schemas/mdast/MdastSchema.js.map +1 -0
  198. package/dist/schemas/mdast/index.d.ts +10 -0
  199. package/dist/schemas/mdast/index.d.ts.map +1 -0
  200. package/dist/schemas/mdast/index.js +4 -0
  201. package/dist/schemas/mdast/index.js.map +1 -0
  202. package/dist/schemas/mdast/mdastToString.d.ts +13 -0
  203. package/dist/schemas/mdast/mdastToString.d.ts.map +1 -0
  204. package/dist/schemas/mdast/mdastToString.js +85 -0
  205. package/dist/schemas/mdast/mdastToString.js.map +1 -0
  206. package/dist/schemas/nodes/block/BlockSchema.d.ts +43 -0
  207. package/dist/schemas/nodes/block/BlockSchema.d.ts.map +1 -0
  208. package/dist/schemas/nodes/block/BlockSchema.js +634 -0
  209. package/dist/schemas/nodes/block/BlockSchema.js.map +1 -0
  210. package/dist/schemas/nodes/block/index.d.ts +7 -0
  211. package/dist/schemas/nodes/block/index.d.ts.map +1 -0
  212. package/dist/schemas/nodes/block/index.js +7 -0
  213. package/dist/schemas/nodes/block/index.js.map +1 -0
  214. package/dist/schemas/nodes/index.d.ts +9 -0
  215. package/dist/schemas/nodes/index.d.ts.map +1 -0
  216. package/dist/schemas/nodes/index.js +12 -0
  217. package/dist/schemas/nodes/index.js.map +1 -0
  218. package/dist/schemas/nodes/inline/InlineSchema.d.ts +48 -0
  219. package/dist/schemas/nodes/inline/InlineSchema.d.ts.map +1 -0
  220. package/dist/schemas/nodes/inline/InlineSchema.js +436 -0
  221. package/dist/schemas/nodes/inline/InlineSchema.js.map +1 -0
  222. package/dist/schemas/nodes/inline/index.d.ts +7 -0
  223. package/dist/schemas/nodes/inline/index.d.ts.map +1 -0
  224. package/dist/schemas/nodes/inline/index.js +7 -0
  225. package/dist/schemas/nodes/inline/index.js.map +1 -0
  226. package/dist/schemas/nodes/macro/MacroSchema.d.ts +27 -0
  227. package/dist/schemas/nodes/macro/MacroSchema.d.ts.map +1 -0
  228. package/dist/schemas/nodes/macro/MacroSchema.js +162 -0
  229. package/dist/schemas/nodes/macro/MacroSchema.js.map +1 -0
  230. package/dist/schemas/nodes/macro/index.d.ts +7 -0
  231. package/dist/schemas/nodes/macro/index.d.ts.map +1 -0
  232. package/dist/schemas/nodes/macro/index.js +7 -0
  233. package/dist/schemas/nodes/macro/index.js.map +1 -0
  234. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts +24 -0
  235. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts.map +1 -0
  236. package/dist/schemas/preprocessing/ConfluencePreprocessor.js +351 -0
  237. package/dist/schemas/preprocessing/ConfluencePreprocessor.js.map +1 -0
  238. package/dist/schemas/preprocessing/index.d.ts +8 -0
  239. package/dist/schemas/preprocessing/index.d.ts.map +1 -0
  240. package/dist/schemas/preprocessing/index.js +2 -0
  241. package/dist/schemas/preprocessing/index.js.map +1 -0
  242. package/dist/serializers/ConfluenceSerializer.d.ts +30 -0
  243. package/dist/serializers/ConfluenceSerializer.d.ts.map +1 -0
  244. package/dist/serializers/ConfluenceSerializer.js +551 -0
  245. package/dist/serializers/ConfluenceSerializer.js.map +1 -0
  246. package/dist/serializers/MarkdownSerializer.d.ts +34 -0
  247. package/dist/serializers/MarkdownSerializer.d.ts.map +1 -0
  248. package/dist/serializers/MarkdownSerializer.js +355 -0
  249. package/dist/serializers/MarkdownSerializer.js.map +1 -0
  250. package/dist/serializers/index.d.ts +8 -0
  251. package/dist/serializers/index.d.ts.map +1 -0
  252. package/dist/serializers/index.js +8 -0
  253. package/dist/serializers/index.js.map +1 -0
  254. package/package.json +32 -21
  255. package/src/ConfluenceAuth.ts +581 -0
  256. package/src/ConfluenceClient.ts +230 -165
  257. package/src/ConfluenceConfig.ts +63 -7
  258. package/src/ConfluenceError.ts +110 -14
  259. package/src/GitError.ts +92 -0
  260. package/src/GitService.ts +859 -0
  261. package/src/LocalFileSystem.ts +179 -9
  262. package/src/MarkdownConverter.ts +126 -122
  263. package/src/SchemaConverterError.ts +108 -0
  264. package/src/Schemas.ts +223 -6
  265. package/src/SyncEngine.ts +745 -162
  266. package/src/ast/BlockNode.ts +425 -0
  267. package/src/ast/Document.ts +90 -0
  268. package/src/ast/InlineNode.ts +323 -0
  269. package/src/ast/MacroNode.ts +245 -0
  270. package/src/ast/index.ts +83 -0
  271. package/src/bin.ts +50 -249
  272. package/src/commands/auth.ts +117 -0
  273. package/src/commands/clone.ts +145 -0
  274. package/src/commands/delete.ts +57 -0
  275. package/src/commands/errorHandler.ts +32 -0
  276. package/src/commands/git.ts +114 -0
  277. package/src/commands/index.ts +10 -0
  278. package/src/commands/layers.ts +211 -0
  279. package/src/commands/new.ts +99 -0
  280. package/src/commands/pageTree.ts +40 -0
  281. package/src/commands/shared.ts +35 -0
  282. package/src/commands/sync.ts +129 -0
  283. package/src/index.ts +21 -1
  284. package/src/internal/NodeLayers.ts +21 -0
  285. package/src/internal/frontmatter.ts +21 -0
  286. package/src/internal/gitCommands.ts +229 -0
  287. package/src/internal/hashUtils.ts +65 -3
  288. package/src/internal/oauthServer.ts +199 -0
  289. package/src/internal/pathUtils.ts +34 -17
  290. package/src/internal/tokenStorage.ts +240 -0
  291. package/src/internal/userCache.ts +90 -0
  292. package/src/parsers/ConfluenceParser.ts +950 -0
  293. package/src/parsers/MarkdownParser.ts +1198 -0
  294. package/src/parsers/index.ts +8 -0
  295. package/src/schemas/ConfluenceSchema.ts +56 -0
  296. package/src/schemas/ConversionSchema.ts +318 -0
  297. package/src/schemas/MarkdownSchema.ts +56 -0
  298. package/src/schemas/hast/HastFromHtml.ts +153 -0
  299. package/src/schemas/hast/HastSchema.ts +274 -0
  300. package/src/schemas/hast/index.ts +35 -0
  301. package/src/schemas/index.ts +20 -0
  302. package/src/schemas/mdast/MdastFromMarkdown.ts +118 -0
  303. package/src/schemas/mdast/MdastSchema.ts +566 -0
  304. package/src/schemas/mdast/index.ts +59 -0
  305. package/src/schemas/mdast/mdastToString.ts +102 -0
  306. package/src/schemas/nodes/block/BlockSchema.ts +773 -0
  307. package/src/schemas/nodes/block/index.ts +13 -0
  308. package/src/schemas/nodes/index.ts +20 -0
  309. package/src/schemas/nodes/inline/InlineSchema.ts +523 -0
  310. package/src/schemas/nodes/inline/index.ts +14 -0
  311. package/src/schemas/nodes/macro/MacroSchema.ts +226 -0
  312. package/src/schemas/nodes/macro/index.ts +6 -0
  313. package/src/schemas/preprocessing/ConfluencePreprocessor.ts +446 -0
  314. package/src/schemas/preprocessing/index.ts +8 -0
  315. package/src/serializers/ConfluenceSerializer.ts +717 -0
  316. package/src/serializers/MarkdownSerializer.ts +493 -0
  317. package/src/serializers/index.ts +8 -0
  318. package/test/GitService.test.ts +209 -0
  319. package/test/MarkdownConverter.test.ts +37 -3
  320. package/test/Schemas.test.ts +97 -2
  321. package/test/ast/BlockNode.test.ts +265 -0
  322. package/test/ast/Document.test.ts +126 -0
  323. package/test/ast/InlineNode.test.ts +161 -0
  324. package/test/fixtures/integration-test.html.fixture +103 -0
  325. package/test/fixtures/integration-test.md.expected +257 -0
  326. package/test/integration.test.ts +269 -0
  327. package/test/oauthServer.test.ts +50 -0
  328. package/test/parsers/ConfluenceParser.test.ts +283 -0
  329. package/test/schemas/ConfluencePreprocessor.test.ts +180 -0
  330. package/test/schemas/ConversionSchema.test.ts +159 -0
  331. package/test/schemas/HastSchema.test.ts +138 -0
  332. package/test/schemas/MdastSchema.test.ts +145 -0
  333. package/test/schemas/nodes/block/BlockSchema.test.ts +173 -0
  334. package/test/schemas/nodes/inline/InlineSchema.test.ts +198 -0
  335. package/test/schemas/nodes/macro/MacroSchema.test.ts +142 -0
  336. package/test/tokenStorage.test.ts +99 -0
@@ -1,4 +1,4 @@
1
- declare const ConfigNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
1
+ declare const ConfigNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
2
2
  readonly _tag: "ConfigNotFoundError";
3
3
  } & Readonly<A>;
4
4
  /**
@@ -22,9 +22,13 @@ declare const ConfigNotFoundError_base: new <A extends Record<string, any> = {}>
22
22
  */
23
23
  export declare class ConfigNotFoundError extends ConfigNotFoundError_base<{
24
24
  readonly path: string;
25
+ readonly message: string;
25
26
  }> {
27
+ constructor(params: {
28
+ path: string;
29
+ });
26
30
  }
27
- declare const ConfigParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
31
+ declare const ConfigParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
28
32
  readonly _tag: "ConfigParseError";
29
33
  } & Readonly<A>;
30
34
  /**
@@ -35,9 +39,26 @@ declare const ConfigParseError_base: new <A extends Record<string, any> = {}>(ar
35
39
  export declare class ConfigParseError extends ConfigParseError_base<{
36
40
  readonly path: string;
37
41
  readonly cause: unknown;
42
+ readonly message: string;
43
+ }> {
44
+ constructor(params: {
45
+ path: string;
46
+ cause: unknown;
47
+ });
48
+ }
49
+ declare const ConfigError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
50
+ readonly _tag: "ConfigError";
51
+ } & Readonly<A>;
52
+ /**
53
+ * Error thrown when configuration validation fails.
54
+ *
55
+ * @category Errors
56
+ */
57
+ export declare class ConfigError extends ConfigError_base<{
58
+ readonly message: string;
38
59
  }> {
39
60
  }
40
- declare const AuthMissingError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
61
+ declare const AuthMissingError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
41
62
  readonly _tag: "AuthMissingError";
42
63
  } & Readonly<A>;
43
64
  /**
@@ -51,8 +72,8 @@ declare const AuthMissingError_base: new <A extends Record<string, any> = {}>(ar
51
72
  * Effect.gen(function* () {
52
73
  * // ... operation that needs auth
53
74
  * }).pipe(
54
- * Effect.catchTag("AuthMissingError", () =>
55
- * Effect.sync(() => console.error("Set CONFLUENCE_API_KEY or run: confluence auth login"))
75
+ * Effect.catchTag("AuthMissingError", (error) =>
76
+ * Effect.sync(() => console.error(error.message))
56
77
  * )
57
78
  * )
58
79
  * ```
@@ -62,9 +83,11 @@ declare const AuthMissingError_base: new <A extends Record<string, any> = {}>(ar
62
83
  export declare class AuthMissingError extends AuthMissingError_base<{
63
84
  readonly message: string;
64
85
  }> {
65
- constructor();
86
+ constructor(params?: {
87
+ message?: string;
88
+ });
66
89
  }
67
- declare const ApiError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
90
+ declare const ApiError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
68
91
  readonly _tag: "ApiError";
69
92
  } & Readonly<A>;
70
93
  /**
@@ -79,7 +102,7 @@ export declare class ApiError extends ApiError_base<{
79
102
  readonly pageId?: string;
80
103
  }> {
81
104
  }
82
- declare const RateLimitError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
105
+ declare const RateLimitError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
83
106
  readonly _tag: "RateLimitError";
84
107
  } & Readonly<A>;
85
108
  /**
@@ -88,10 +111,14 @@ declare const RateLimitError_base: new <A extends Record<string, any> = {}>(args
88
111
  * @category Errors
89
112
  */
90
113
  export declare class RateLimitError extends RateLimitError_base<{
91
- readonly retryAfter?: number;
114
+ readonly retryAfter?: number | undefined;
115
+ readonly message: string;
92
116
  }> {
117
+ constructor(params?: {
118
+ retryAfter?: number;
119
+ });
93
120
  }
94
- declare const ConversionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
121
+ declare const ConversionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
95
122
  readonly _tag: "ConversionError";
96
123
  } & Readonly<A>;
97
124
  /**
@@ -102,9 +129,14 @@ declare const ConversionError_base: new <A extends Record<string, any> = {}>(arg
102
129
  export declare class ConversionError extends ConversionError_base<{
103
130
  readonly direction: "htmlToMarkdown" | "markdownToHtml";
104
131
  readonly cause: unknown;
132
+ readonly message: string;
105
133
  }> {
134
+ constructor(params: {
135
+ direction: "htmlToMarkdown" | "markdownToHtml";
136
+ cause: unknown;
137
+ });
106
138
  }
107
- declare const ConflictError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
139
+ declare const ConflictError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
108
140
  readonly _tag: "ConflictError";
109
141
  } & Readonly<A>;
110
142
  /**
@@ -117,9 +149,16 @@ export declare class ConflictError extends ConflictError_base<{
117
149
  readonly localVersion: number;
118
150
  readonly remoteVersion: number;
119
151
  readonly path: string;
152
+ readonly message: string;
120
153
  }> {
154
+ constructor(params: {
155
+ pageId: string;
156
+ localVersion: number;
157
+ remoteVersion: number;
158
+ path: string;
159
+ });
121
160
  }
122
- declare const FileSystemError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
161
+ declare const FileSystemError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
123
162
  readonly _tag: "FileSystemError";
124
163
  } & Readonly<A>;
125
164
  /**
@@ -131,9 +170,15 @@ export declare class FileSystemError extends FileSystemError_base<{
131
170
  readonly operation: "read" | "write" | "delete" | "mkdir" | "rename";
132
171
  readonly path: string;
133
172
  readonly cause: unknown;
173
+ readonly message: string;
134
174
  }> {
175
+ constructor(params: {
176
+ operation: "read" | "write" | "delete" | "mkdir" | "rename";
177
+ path: string;
178
+ cause: unknown;
179
+ });
135
180
  }
136
- declare const OAuthError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
181
+ declare const OAuthError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
137
182
  readonly _tag: "OAuthError";
138
183
  } & Readonly<A>;
139
184
  /**
@@ -142,11 +187,16 @@ declare const OAuthError_base: new <A extends Record<string, any> = {}>(args: im
142
187
  * @category Errors
143
188
  */
144
189
  export declare class OAuthError extends OAuthError_base<{
145
- readonly step: "authorize" | "token" | "refresh";
190
+ readonly step: "authorize" | "token" | "refresh" | "revoke";
146
191
  readonly cause: unknown;
192
+ readonly message: string;
147
193
  }> {
194
+ constructor(params: {
195
+ step: "authorize" | "token" | "refresh" | "revoke";
196
+ cause: unknown;
197
+ });
148
198
  }
149
- declare const FrontMatterError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
199
+ declare const FrontMatterError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
150
200
  readonly _tag: "FrontMatterError";
151
201
  } & Readonly<A>;
152
202
  /**
@@ -157,6 +207,39 @@ declare const FrontMatterError_base: new <A extends Record<string, any> = {}>(ar
157
207
  export declare class FrontMatterError extends FrontMatterError_base<{
158
208
  readonly path: string;
159
209
  readonly cause: unknown;
210
+ readonly message: string;
211
+ }> {
212
+ constructor(params: {
213
+ path: string;
214
+ cause: unknown;
215
+ });
216
+ }
217
+ declare const StructureError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
218
+ readonly _tag: "StructureError";
219
+ } & Readonly<A>;
220
+ /**
221
+ * Error thrown when directory structure is inconsistent.
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * import { Effect } from "effect"
226
+ * import { StructureError } from "@knpkv/confluence-to-markdown/ConfluenceError"
227
+ *
228
+ * Effect.gen(function* () {
229
+ * // ... validate structure
230
+ * }).pipe(
231
+ * Effect.catchTag("StructureError", (error) =>
232
+ * Effect.sync(() => console.error(`${error.message}\nAdvice: ${error.advice}`))
233
+ * )
234
+ * )
235
+ * ```
236
+ *
237
+ * @category Errors
238
+ */
239
+ export declare class StructureError extends StructureError_base<{
240
+ readonly path: string;
241
+ readonly advice: string;
242
+ readonly message: string;
160
243
  }> {
161
244
  }
162
245
  /**
@@ -164,7 +247,7 @@ export declare class FrontMatterError extends FrontMatterError_base<{
164
247
  *
165
248
  * @category Errors
166
249
  */
167
- export type ConfluenceError = ConfigNotFoundError | ConfigParseError | AuthMissingError | ApiError | RateLimitError | ConversionError | ConflictError | FileSystemError | OAuthError | FrontMatterError;
250
+ export type ConfluenceError = ConfigNotFoundError | ConfigParseError | ConfigError | AuthMissingError | ApiError | RateLimitError | ConversionError | ConflictError | FileSystemError | OAuthError | FrontMatterError | StructureError;
168
251
  /**
169
252
  * Type guard to check if error is a ConfluenceError.
170
253
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ConfluenceError.d.ts","sourceRoot":"","sources":["../src/ConfluenceError.ts"],"names":[],"mappings":";;;AAOA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,mBAAoB,SAAQ,yBAAwC;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;CAAG;;;;AAEL;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAC;;CAID;;;;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,cAA6B;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;IACvD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,mBAAkC;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,qBAAoC;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,gBAA+B;IAC7D,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;CAAG;AAEL;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,cAAc,GACd,eAAe,GACf,aAAa,GACb,eAAe,GACf,UAAU,GACV,gBAAgB,CAAA;AAEpB;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAed,CAAA"}
1
+ {"version":3,"file":"ConfluenceError.d.ts","sourceRoot":"","sources":["../src/ConfluenceError.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,12 @@ import * as Data from "effect/Data";
24
24
  * @category Errors
25
25
  */
26
26
  export class ConfigNotFoundError extends Data.TaggedError("ConfigNotFoundError") {
27
+ constructor(params) {
28
+ super({
29
+ path: params.path,
30
+ message: `Config not found: ${params.path}\nRun 'confluence clone' to initialize.`
31
+ });
32
+ }
27
33
  }
28
34
  /**
29
35
  * Error thrown when .confluence.json parsing fails.
@@ -31,6 +37,20 @@ export class ConfigNotFoundError extends Data.TaggedError("ConfigNotFoundError")
31
37
  * @category Errors
32
38
  */
33
39
  export class ConfigParseError extends Data.TaggedError("ConfigParseError") {
40
+ constructor(params) {
41
+ super({
42
+ path: params.path,
43
+ cause: params.cause,
44
+ message: `Invalid config file: ${params.path}`
45
+ });
46
+ }
47
+ }
48
+ /**
49
+ * Error thrown when configuration validation fails.
50
+ *
51
+ * @category Errors
52
+ */
53
+ export class ConfigError extends Data.TaggedError("ConfigError") {
34
54
  }
35
55
  /**
36
56
  * Error thrown when authentication is missing.
@@ -43,8 +63,8 @@ export class ConfigParseError extends Data.TaggedError("ConfigParseError") {
43
63
  * Effect.gen(function* () {
44
64
  * // ... operation that needs auth
45
65
  * }).pipe(
46
- * Effect.catchTag("AuthMissingError", () =>
47
- * Effect.sync(() => console.error("Set CONFLUENCE_API_KEY or run: confluence auth login"))
66
+ * Effect.catchTag("AuthMissingError", (error) =>
67
+ * Effect.sync(() => console.error(error.message))
48
68
  * )
49
69
  * )
50
70
  * ```
@@ -52,8 +72,11 @@ export class ConfigParseError extends Data.TaggedError("ConfigParseError") {
52
72
  * @category Errors
53
73
  */
54
74
  export class AuthMissingError extends Data.TaggedError("AuthMissingError") {
55
- constructor() {
56
- super({ message: "CONFLUENCE_API_KEY env var or OAuth2 credentials required" });
75
+ constructor(params) {
76
+ super({
77
+ message: params?.message ??
78
+ "Not authenticated. Run 'confluence login' or set CONFLUENCE_API_KEY + CONFLUENCE_EMAIL"
79
+ });
57
80
  }
58
81
  }
59
82
  /**
@@ -69,6 +92,12 @@ export class ApiError extends Data.TaggedError("ApiError") {
69
92
  * @category Errors
70
93
  */
71
94
  export class RateLimitError extends Data.TaggedError("RateLimitError") {
95
+ constructor(params) {
96
+ const message = params?.retryAfter
97
+ ? `Rate limited. Retry after ${params.retryAfter}s.`
98
+ : "Rate limited. Please wait and try again.";
99
+ super({ retryAfter: params?.retryAfter, message });
100
+ }
72
101
  }
73
102
  /**
74
103
  * Error thrown when HTML/Markdown conversion fails.
@@ -76,6 +105,13 @@ export class RateLimitError extends Data.TaggedError("RateLimitError") {
76
105
  * @category Errors
77
106
  */
78
107
  export class ConversionError extends Data.TaggedError("ConversionError") {
108
+ constructor(params) {
109
+ super({
110
+ direction: params.direction,
111
+ cause: params.cause,
112
+ message: `Conversion failed (${params.direction}): ${params.cause}`
113
+ });
114
+ }
79
115
  }
80
116
  /**
81
117
  * Error thrown when sync conflict is detected.
@@ -83,6 +119,12 @@ export class ConversionError extends Data.TaggedError("ConversionError") {
83
119
  * @category Errors
84
120
  */
85
121
  export class ConflictError extends Data.TaggedError("ConflictError") {
122
+ constructor(params) {
123
+ super({
124
+ ...params,
125
+ message: `Conflict: ${params.path} (local v${params.localVersion} vs remote v${params.remoteVersion})`
126
+ });
127
+ }
86
128
  }
87
129
  /**
88
130
  * Error thrown when file system operation fails.
@@ -90,6 +132,12 @@ export class ConflictError extends Data.TaggedError("ConflictError") {
90
132
  * @category Errors
91
133
  */
92
134
  export class FileSystemError extends Data.TaggedError("FileSystemError") {
135
+ constructor(params) {
136
+ super({
137
+ ...params,
138
+ message: `File ${params.operation} failed: ${params.path}`
139
+ });
140
+ }
93
141
  }
94
142
  /**
95
143
  * Error thrown when OAuth2 flow fails.
@@ -97,6 +145,12 @@ export class FileSystemError extends Data.TaggedError("FileSystemError") {
97
145
  * @category Errors
98
146
  */
99
147
  export class OAuthError extends Data.TaggedError("OAuthError") {
148
+ constructor(params) {
149
+ super({
150
+ ...params,
151
+ message: `OAuth ${params.step} failed: ${params.cause}`
152
+ });
153
+ }
100
154
  }
101
155
  /**
102
156
  * Error thrown when front-matter parsing fails.
@@ -104,6 +158,33 @@ export class OAuthError extends Data.TaggedError("OAuthError") {
104
158
  * @category Errors
105
159
  */
106
160
  export class FrontMatterError extends Data.TaggedError("FrontMatterError") {
161
+ constructor(params) {
162
+ super({
163
+ ...params,
164
+ message: `Invalid front-matter in: ${params.path}`
165
+ });
166
+ }
167
+ }
168
+ /**
169
+ * Error thrown when directory structure is inconsistent.
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * import { Effect } from "effect"
174
+ * import { StructureError } from "@knpkv/confluence-to-markdown/ConfluenceError"
175
+ *
176
+ * Effect.gen(function* () {
177
+ * // ... validate structure
178
+ * }).pipe(
179
+ * Effect.catchTag("StructureError", (error) =>
180
+ * Effect.sync(() => console.error(`${error.message}\nAdvice: ${error.advice}`))
181
+ * )
182
+ * )
183
+ * ```
184
+ *
185
+ * @category Errors
186
+ */
187
+ export class StructureError extends Data.TaggedError("StructureError") {
107
188
  }
108
189
  /**
109
190
  * Type guard to check if error is a ConfluenceError.
@@ -119,6 +200,7 @@ export const isConfluenceError = (error) => typeof error === "object" &&
119
200
  [
120
201
  "ConfigNotFoundError",
121
202
  "ConfigParseError",
203
+ "ConfigError",
122
204
  "AuthMissingError",
123
205
  "ApiError",
124
206
  "RateLimitError",
@@ -126,6 +208,7 @@ export const isConfluenceError = (error) => typeof error === "object" &&
126
208
  "ConflictError",
127
209
  "FileSystemError",
128
210
  "OAuthError",
129
- "FrontMatterError"
211
+ "FrontMatterError",
212
+ "StructureError"
130
213
  ].includes(error._tag);
131
214
  //# sourceMappingURL=ConfluenceError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfluenceError.js","sourceRoot":"","sources":["../src/ConfluenceError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAEnC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,mBAAoB,SAAQ,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAE7E;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAGvE;CAAG;AAEL;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAEvE;IACA;QACE,KAAK,CAAC,EAAE,OAAO,EAAE,2DAA2D,EAAE,CAAC,CAAA;IACjF,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,QAAS,SAAQ,IAAI,CAAC,WAAW,CAAC,UAAU,CAKvD;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAEnE;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAGrE;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,IAAI,CAAC,WAAW,CAAC,eAAe,CAKjE;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAIrE;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI,CAAC,WAAW,CAAC,YAAY,CAG3D;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAGvE;CAAG;AAmBL;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA4B,EAAE,CAC5E,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACf;QACE,qBAAqB;QACrB,kBAAkB;QAClB,kBAAkB;QAClB,UAAU;QACV,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,iBAAiB;QACjB,YAAY;QACZ,kBAAkB;KACnB,CAAC,QAAQ,CAAE,KAA0B,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"ConfluenceError.js","sourceRoot":"","sources":["../src/ConfluenceError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ declare const GitError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
2
+ readonly _tag: "GitError";
3
+ } & Readonly<A>;
4
+ /**
5
+ * Base git error for command execution failures.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { GitError } from "@knpkv/confluence-to-markdown/GitError"
10
+ *
11
+ * const error = new GitError({
12
+ * command: "git commit",
13
+ * message: "nothing to commit",
14
+ * exitCode: 1
15
+ * })
16
+ * ```
17
+ *
18
+ * @category Error
19
+ */
20
+ export declare class GitError extends GitError_base<{
21
+ readonly command: string;
22
+ readonly message: string;
23
+ readonly exitCode?: number;
24
+ }> {
25
+ }
26
+ declare const GitNotInstalledError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
27
+ readonly _tag: "GitNotInstalledError";
28
+ } & Readonly<A>;
29
+ /**
30
+ * Error when git is not installed on the system.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * import { GitNotInstalledError } from "@knpkv/confluence-to-markdown/GitError"
35
+ *
36
+ * const error = new GitNotInstalledError({
37
+ * message: "git command not found"
38
+ * })
39
+ * ```
40
+ *
41
+ * @category Error
42
+ */
43
+ export declare class GitNotInstalledError extends GitNotInstalledError_base<{
44
+ readonly message: string;
45
+ }> {
46
+ }
47
+ declare const GitNoChangesError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
48
+ readonly _tag: "GitNoChangesError";
49
+ } & Readonly<A>;
50
+ /**
51
+ * Error when there are no changes to commit.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * import { GitNoChangesError } from "@knpkv/confluence-to-markdown/GitError"
56
+ *
57
+ * const error = new GitNoChangesError({})
58
+ * ```
59
+ *
60
+ * @category Error
61
+ */
62
+ export declare class GitNoChangesError extends GitNoChangesError_base<{}> {
63
+ }
64
+ declare const GitMergeConflictError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
65
+ readonly _tag: "GitMergeConflictError";
66
+ } & Readonly<A>;
67
+ /**
68
+ * Error when merge conflicts exist.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * import { GitMergeConflictError } from "@knpkv/confluence-to-markdown/GitError"
73
+ *
74
+ * const error = new GitMergeConflictError({
75
+ * files: ["docs/page1.md", "docs/page2.md"]
76
+ * })
77
+ * ```
78
+ *
79
+ * @category Error
80
+ */
81
+ export declare class GitMergeConflictError extends GitMergeConflictError_base<{
82
+ readonly files: ReadonlyArray<string>;
83
+ }> {
84
+ }
85
+ declare const GitNotInitializedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
86
+ readonly _tag: "GitNotInitializedError";
87
+ } & Readonly<A>;
88
+ /**
89
+ * Error when git repository is not initialized.
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * import { GitNotInitializedError } from "@knpkv/confluence-to-markdown/GitError"
94
+ *
95
+ * const error = new GitNotInitializedError({})
96
+ * ```
97
+ *
98
+ * @category Error
99
+ */
100
+ export declare class GitNotInitializedError extends GitNotInitializedError_base<{}> {
101
+ }
102
+ export {};
103
+ //# sourceMappingURL=GitError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitError.d.ts","sourceRoot":"","sources":["../src/GitError.ts"],"names":[],"mappings":";;;AAOA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,QAAS,SAAQ,cAA6B;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B,CAAC;CAAG;;;;AAEL;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAqB,SAAQ,0BAAyC;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAC;CAAG;;;;AAEL;;;;;;;;;;;GAWG;AACH,qBAAa,iBAAkB,SAAQ,uBAAsC,EAAE,CAAC;CAAG;;;;AAEnF;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAsB,SAAQ,2BAA0C;IACnF,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC,CAAC;CAAG;;;;AAEL;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,SAAQ,4BAA2C,EAAE,CAAC;CAAG"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Git-specific error types.
3
+ *
4
+ * @module
5
+ */
6
+ import * as Data from "effect/Data";
7
+ /**
8
+ * Base git error for command execution failures.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { GitError } from "@knpkv/confluence-to-markdown/GitError"
13
+ *
14
+ * const error = new GitError({
15
+ * command: "git commit",
16
+ * message: "nothing to commit",
17
+ * exitCode: 1
18
+ * })
19
+ * ```
20
+ *
21
+ * @category Error
22
+ */
23
+ export class GitError extends Data.TaggedError("GitError") {
24
+ }
25
+ /**
26
+ * Error when git is not installed on the system.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import { GitNotInstalledError } from "@knpkv/confluence-to-markdown/GitError"
31
+ *
32
+ * const error = new GitNotInstalledError({
33
+ * message: "git command not found"
34
+ * })
35
+ * ```
36
+ *
37
+ * @category Error
38
+ */
39
+ export class GitNotInstalledError extends Data.TaggedError("GitNotInstalledError") {
40
+ }
41
+ /**
42
+ * Error when there are no changes to commit.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * import { GitNoChangesError } from "@knpkv/confluence-to-markdown/GitError"
47
+ *
48
+ * const error = new GitNoChangesError({})
49
+ * ```
50
+ *
51
+ * @category Error
52
+ */
53
+ export class GitNoChangesError extends Data.TaggedError("GitNoChangesError") {
54
+ }
55
+ /**
56
+ * Error when merge conflicts exist.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * import { GitMergeConflictError } from "@knpkv/confluence-to-markdown/GitError"
61
+ *
62
+ * const error = new GitMergeConflictError({
63
+ * files: ["docs/page1.md", "docs/page2.md"]
64
+ * })
65
+ * ```
66
+ *
67
+ * @category Error
68
+ */
69
+ export class GitMergeConflictError extends Data.TaggedError("GitMergeConflictError") {
70
+ }
71
+ /**
72
+ * Error when git repository is not initialized.
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * import { GitNotInitializedError } from "@knpkv/confluence-to-markdown/GitError"
77
+ *
78
+ * const error = new GitNotInitializedError({})
79
+ * ```
80
+ *
81
+ * @category Error
82
+ */
83
+ export class GitNotInitializedError extends Data.TaggedError("GitNotInitializedError") {
84
+ }
85
+ //# sourceMappingURL=GitError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitError.js","sourceRoot":"","sources":["../src/GitError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,QAAS,SAAQ,IAAI,CAAC,WAAW,CAAC,UAAU,CAIvD;CAAG;AAEL;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAE/E;CAAG;AAEL;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,iBAAkB,SAAQ,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAK;CAAG;AAEnF;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,qBAAsB,SAAQ,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAEjF;CAAG;AAEL;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,sBAAuB,SAAQ,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAK;CAAG"}