@knpkv/confluence-to-markdown 0.2.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/LICENSE +21 -0
- package/README.md +282 -14
- package/dist/ConfluenceAuth.d.ts +76 -0
- package/dist/ConfluenceAuth.d.ts.map +1 -0
- package/dist/ConfluenceAuth.js +356 -0
- package/dist/ConfluenceAuth.js.map +1 -0
- package/dist/ConfluenceClient.d.ts +26 -2
- package/dist/ConfluenceClient.d.ts.map +1 -1
- package/dist/ConfluenceClient.js +98 -92
- package/dist/ConfluenceClient.js.map +1 -1
- package/dist/ConfluenceConfig.d.ts +4 -24
- package/dist/ConfluenceConfig.d.ts.map +1 -1
- package/dist/ConfluenceConfig.js +45 -7
- package/dist/ConfluenceConfig.js.map +1 -1
- package/dist/ConfluenceError.d.ts +89 -6
- package/dist/ConfluenceError.d.ts.map +1 -1
- package/dist/ConfluenceError.js +88 -5
- package/dist/ConfluenceError.js.map +1 -1
- package/dist/GitError.d.ts +103 -0
- package/dist/GitError.d.ts.map +1 -0
- package/dist/GitError.js +85 -0
- package/dist/GitError.js.map +1 -0
- package/dist/GitService.d.ts +175 -0
- package/dist/GitService.d.ts.map +1 -0
- package/dist/GitService.js +431 -0
- package/dist/GitService.js.map +1 -0
- package/dist/LocalFileSystem.d.ts +29 -4
- package/dist/LocalFileSystem.d.ts.map +1 -1
- package/dist/LocalFileSystem.js +80 -6
- package/dist/LocalFileSystem.js.map +1 -1
- package/dist/MarkdownConverter.d.ts +49 -2
- package/dist/MarkdownConverter.d.ts.map +1 -1
- package/dist/MarkdownConverter.js +73 -111
- package/dist/MarkdownConverter.js.map +1 -1
- package/dist/SchemaConverterError.d.ts +108 -0
- package/dist/SchemaConverterError.d.ts.map +1 -0
- package/dist/SchemaConverterError.js +84 -0
- package/dist/SchemaConverterError.js.map +1 -0
- package/dist/Schemas.d.ts +225 -1
- package/dist/Schemas.d.ts.map +1 -1
- package/dist/Schemas.js +155 -6
- package/dist/Schemas.js.map +1 -1
- package/dist/SyncEngine.d.ts +30 -20
- package/dist/SyncEngine.d.ts.map +1 -1
- package/dist/SyncEngine.js +566 -117
- package/dist/SyncEngine.js.map +1 -1
- package/dist/ast/BlockNode.d.ts +468 -0
- package/dist/ast/BlockNode.d.ts.map +1 -0
- package/dist/ast/BlockNode.js +319 -0
- package/dist/ast/BlockNode.js.map +1 -0
- package/dist/ast/Document.d.ts +244 -0
- package/dist/ast/Document.d.ts.map +1 -0
- package/dist/ast/Document.js +69 -0
- package/dist/ast/Document.js.map +1 -0
- package/dist/ast/InlineNode.d.ts +477 -0
- package/dist/ast/InlineNode.d.ts.map +1 -0
- package/dist/ast/InlineNode.js +263 -0
- package/dist/ast/InlineNode.js.map +1 -0
- package/dist/ast/MacroNode.d.ts +267 -0
- package/dist/ast/MacroNode.d.ts.map +1 -0
- package/dist/ast/MacroNode.js +164 -0
- package/dist/ast/MacroNode.js.map +1 -0
- package/dist/ast/index.d.ts +10 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/index.js +14 -0
- package/dist/ast/index.js.map +1 -0
- package/dist/bin.js +33 -149
- package/dist/bin.js.map +1 -1
- package/dist/commands/auth.d.ts +15 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +86 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/clone.d.ts +12 -0
- package/dist/commands/clone.d.ts.map +1 -0
- package/dist/commands/clone.js +93 -0
- package/dist/commands/clone.js.map +1 -0
- package/dist/commands/delete.d.ts +13 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +48 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/errorHandler.d.ts +14 -0
- package/dist/commands/errorHandler.d.ts.map +1 -0
- package/dist/commands/errorHandler.js +33 -0
- package/dist/commands/errorHandler.js.map +1 -0
- package/dist/commands/git.d.ts +22 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +72 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/index.d.ts +11 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +11 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/layers.d.ts +31 -0
- package/dist/commands/layers.d.ts.map +1 -0
- package/dist/commands/layers.js +137 -0
- package/dist/commands/layers.js.map +1 -0
- package/dist/commands/new.d.ts +9 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +80 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/pageTree.d.ts +18 -0
- package/dist/commands/pageTree.d.ts.map +1 -0
- package/dist/commands/pageTree.js +20 -0
- package/dist/commands/pageTree.js.map +1 -0
- package/dist/commands/shared.d.ts +15 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +27 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/sync.d.ts +15 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +101 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/NodeLayers.d.ts +7 -0
- package/dist/internal/NodeLayers.d.ts.map +1 -0
- package/dist/internal/NodeLayers.js +19 -0
- package/dist/internal/NodeLayers.js.map +1 -0
- package/dist/internal/frontmatter.d.ts +10 -0
- package/dist/internal/frontmatter.d.ts.map +1 -1
- package/dist/internal/frontmatter.js +16 -0
- package/dist/internal/frontmatter.js.map +1 -1
- package/dist/internal/gitCommands.d.ts +78 -0
- package/dist/internal/gitCommands.d.ts.map +1 -0
- package/dist/internal/gitCommands.js +156 -0
- package/dist/internal/gitCommands.js.map +1 -0
- package/dist/internal/hashUtils.d.ts +42 -1
- package/dist/internal/hashUtils.d.ts.map +1 -1
- package/dist/internal/hashUtils.js +38 -2
- package/dist/internal/hashUtils.js.map +1 -1
- package/dist/internal/oauthServer.d.ts +55 -0
- package/dist/internal/oauthServer.d.ts.map +1 -0
- package/dist/internal/oauthServer.js +110 -0
- package/dist/internal/oauthServer.js.map +1 -0
- package/dist/internal/pathUtils.d.ts +21 -4
- package/dist/internal/pathUtils.d.ts.map +1 -1
- package/dist/internal/pathUtils.js +24 -13
- package/dist/internal/pathUtils.js.map +1 -1
- package/dist/internal/tokenStorage.d.ts +75 -0
- package/dist/internal/tokenStorage.d.ts.map +1 -0
- package/dist/internal/tokenStorage.js +149 -0
- package/dist/internal/tokenStorage.js.map +1 -0
- package/dist/internal/userCache.d.ts +42 -0
- package/dist/internal/userCache.d.ts.map +1 -0
- package/dist/internal/userCache.js +51 -0
- package/dist/internal/userCache.js.map +1 -0
- package/dist/parsers/ConfluenceParser.d.ts +26 -0
- package/dist/parsers/ConfluenceParser.d.ts.map +1 -0
- package/dist/parsers/ConfluenceParser.js +792 -0
- package/dist/parsers/ConfluenceParser.js.map +1 -0
- package/dist/parsers/MarkdownParser.d.ts +26 -0
- package/dist/parsers/MarkdownParser.d.ts.map +1 -0
- package/dist/parsers/MarkdownParser.js +873 -0
- package/dist/parsers/MarkdownParser.js.map +1 -0
- package/dist/parsers/index.d.ts +8 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +8 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/schemas/ConfluenceSchema.d.ts +21 -0
- package/dist/schemas/ConfluenceSchema.d.ts.map +1 -0
- package/dist/schemas/ConfluenceSchema.js +38 -0
- package/dist/schemas/ConfluenceSchema.js.map +1 -0
- package/dist/schemas/ConversionSchema.d.ts +35 -0
- package/dist/schemas/ConversionSchema.d.ts.map +1 -0
- package/dist/schemas/ConversionSchema.js +208 -0
- package/dist/schemas/ConversionSchema.js.map +1 -0
- package/dist/schemas/MarkdownSchema.d.ts +21 -0
- package/dist/schemas/MarkdownSchema.d.ts.map +1 -0
- package/dist/schemas/MarkdownSchema.js +38 -0
- package/dist/schemas/MarkdownSchema.js.map +1 -0
- package/dist/schemas/hast/HastFromHtml.d.ts +27 -0
- package/dist/schemas/hast/HastFromHtml.d.ts.map +1 -0
- package/dist/schemas/hast/HastFromHtml.js +107 -0
- package/dist/schemas/hast/HastFromHtml.js.map +1 -0
- package/dist/schemas/hast/HastSchema.d.ts +195 -0
- package/dist/schemas/hast/HastSchema.d.ts.map +1 -0
- package/dist/schemas/hast/HastSchema.js +183 -0
- package/dist/schemas/hast/HastSchema.js.map +1 -0
- package/dist/schemas/hast/index.d.ts +9 -0
- package/dist/schemas/hast/index.d.ts.map +1 -0
- package/dist/schemas/hast/index.js +3 -0
- package/dist/schemas/hast/index.js.map +1 -0
- package/dist/schemas/index.d.ts +14 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +16 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/mdast/MdastFromMarkdown.d.ts +30 -0
- package/dist/schemas/mdast/MdastFromMarkdown.d.ts.map +1 -0
- package/dist/schemas/mdast/MdastFromMarkdown.js +79 -0
- package/dist/schemas/mdast/MdastFromMarkdown.js.map +1 -0
- package/dist/schemas/mdast/MdastSchema.d.ts +385 -0
- package/dist/schemas/mdast/MdastSchema.d.ts.map +1 -0
- package/dist/schemas/mdast/MdastSchema.js +266 -0
- package/dist/schemas/mdast/MdastSchema.js.map +1 -0
- package/dist/schemas/mdast/index.d.ts +10 -0
- package/dist/schemas/mdast/index.d.ts.map +1 -0
- package/dist/schemas/mdast/index.js +4 -0
- package/dist/schemas/mdast/index.js.map +1 -0
- package/dist/schemas/mdast/mdastToString.d.ts +13 -0
- package/dist/schemas/mdast/mdastToString.d.ts.map +1 -0
- package/dist/schemas/mdast/mdastToString.js +85 -0
- package/dist/schemas/mdast/mdastToString.js.map +1 -0
- package/dist/schemas/nodes/block/BlockSchema.d.ts +43 -0
- package/dist/schemas/nodes/block/BlockSchema.d.ts.map +1 -0
- package/dist/schemas/nodes/block/BlockSchema.js +634 -0
- package/dist/schemas/nodes/block/BlockSchema.js.map +1 -0
- package/dist/schemas/nodes/block/index.d.ts +7 -0
- package/dist/schemas/nodes/block/index.d.ts.map +1 -0
- package/dist/schemas/nodes/block/index.js +7 -0
- package/dist/schemas/nodes/block/index.js.map +1 -0
- package/dist/schemas/nodes/index.d.ts +9 -0
- package/dist/schemas/nodes/index.d.ts.map +1 -0
- package/dist/schemas/nodes/index.js +12 -0
- package/dist/schemas/nodes/index.js.map +1 -0
- package/dist/schemas/nodes/inline/InlineSchema.d.ts +48 -0
- package/dist/schemas/nodes/inline/InlineSchema.d.ts.map +1 -0
- package/dist/schemas/nodes/inline/InlineSchema.js +436 -0
- package/dist/schemas/nodes/inline/InlineSchema.js.map +1 -0
- package/dist/schemas/nodes/inline/index.d.ts +7 -0
- package/dist/schemas/nodes/inline/index.d.ts.map +1 -0
- package/dist/schemas/nodes/inline/index.js +7 -0
- package/dist/schemas/nodes/inline/index.js.map +1 -0
- package/dist/schemas/nodes/macro/MacroSchema.d.ts +27 -0
- package/dist/schemas/nodes/macro/MacroSchema.d.ts.map +1 -0
- package/dist/schemas/nodes/macro/MacroSchema.js +162 -0
- package/dist/schemas/nodes/macro/MacroSchema.js.map +1 -0
- package/dist/schemas/nodes/macro/index.d.ts +7 -0
- package/dist/schemas/nodes/macro/index.d.ts.map +1 -0
- package/dist/schemas/nodes/macro/index.js +7 -0
- package/dist/schemas/nodes/macro/index.js.map +1 -0
- package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts +24 -0
- package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts.map +1 -0
- package/dist/schemas/preprocessing/ConfluencePreprocessor.js +351 -0
- package/dist/schemas/preprocessing/ConfluencePreprocessor.js.map +1 -0
- package/dist/schemas/preprocessing/index.d.ts +8 -0
- package/dist/schemas/preprocessing/index.d.ts.map +1 -0
- package/dist/schemas/preprocessing/index.js +2 -0
- package/dist/schemas/preprocessing/index.js.map +1 -0
- package/dist/serializers/ConfluenceSerializer.d.ts +30 -0
- package/dist/serializers/ConfluenceSerializer.d.ts.map +1 -0
- package/dist/serializers/ConfluenceSerializer.js +551 -0
- package/dist/serializers/ConfluenceSerializer.js.map +1 -0
- package/dist/serializers/MarkdownSerializer.d.ts +34 -0
- package/dist/serializers/MarkdownSerializer.d.ts.map +1 -0
- package/dist/serializers/MarkdownSerializer.js +355 -0
- package/dist/serializers/MarkdownSerializer.js.map +1 -0
- package/dist/serializers/index.d.ts +8 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/serializers/index.js +8 -0
- package/dist/serializers/index.js.map +1 -0
- package/package.json +27 -16
- package/src/ConfluenceAuth.ts +571 -0
- package/src/ConfluenceClient.ts +188 -156
- package/src/ConfluenceConfig.ts +63 -7
- package/src/ConfluenceError.ts +110 -14
- package/src/GitError.ts +92 -0
- package/src/GitService.ts +859 -0
- package/src/LocalFileSystem.ts +179 -9
- package/src/MarkdownConverter.ts +126 -122
- package/src/SchemaConverterError.ts +108 -0
- package/src/Schemas.ts +223 -6
- package/src/SyncEngine.ts +745 -162
- package/src/ast/BlockNode.ts +425 -0
- package/src/ast/Document.ts +90 -0
- package/src/ast/InlineNode.ts +323 -0
- package/src/ast/MacroNode.ts +245 -0
- package/src/ast/index.ts +83 -0
- package/src/bin.ts +50 -249
- package/src/commands/auth.ts +117 -0
- package/src/commands/clone.ts +145 -0
- package/src/commands/delete.ts +57 -0
- package/src/commands/errorHandler.ts +32 -0
- package/src/commands/git.ts +114 -0
- package/src/commands/index.ts +10 -0
- package/src/commands/layers.ts +211 -0
- package/src/commands/new.ts +99 -0
- package/src/commands/pageTree.ts +40 -0
- package/src/commands/shared.ts +35 -0
- package/src/commands/sync.ts +129 -0
- package/src/index.ts +21 -1
- package/src/internal/NodeLayers.ts +21 -0
- package/src/internal/frontmatter.ts +21 -0
- package/src/internal/gitCommands.ts +229 -0
- package/src/internal/hashUtils.ts +65 -3
- package/src/internal/oauthServer.ts +199 -0
- package/src/internal/pathUtils.ts +34 -17
- package/src/internal/tokenStorage.ts +240 -0
- package/src/internal/userCache.ts +90 -0
- package/src/parsers/ConfluenceParser.ts +950 -0
- package/src/parsers/MarkdownParser.ts +1198 -0
- package/src/parsers/index.ts +8 -0
- package/src/schemas/ConfluenceSchema.ts +56 -0
- package/src/schemas/ConversionSchema.ts +318 -0
- package/src/schemas/MarkdownSchema.ts +56 -0
- package/src/schemas/hast/HastFromHtml.ts +153 -0
- package/src/schemas/hast/HastSchema.ts +274 -0
- package/src/schemas/hast/index.ts +35 -0
- package/src/schemas/index.ts +20 -0
- package/src/schemas/mdast/MdastFromMarkdown.ts +118 -0
- package/src/schemas/mdast/MdastSchema.ts +566 -0
- package/src/schemas/mdast/index.ts +59 -0
- package/src/schemas/mdast/mdastToString.ts +102 -0
- package/src/schemas/nodes/block/BlockSchema.ts +773 -0
- package/src/schemas/nodes/block/index.ts +13 -0
- package/src/schemas/nodes/index.ts +20 -0
- package/src/schemas/nodes/inline/InlineSchema.ts +523 -0
- package/src/schemas/nodes/inline/index.ts +14 -0
- package/src/schemas/nodes/macro/MacroSchema.ts +226 -0
- package/src/schemas/nodes/macro/index.ts +6 -0
- package/src/schemas/preprocessing/ConfluencePreprocessor.ts +446 -0
- package/src/schemas/preprocessing/index.ts +8 -0
- package/src/serializers/ConfluenceSerializer.ts +717 -0
- package/src/serializers/MarkdownSerializer.ts +493 -0
- package/src/serializers/index.ts +8 -0
- package/test/GitService.test.ts +209 -0
- package/test/MarkdownConverter.test.ts +37 -3
- package/test/Schemas.test.ts +97 -2
- package/test/ast/BlockNode.test.ts +265 -0
- package/test/ast/Document.test.ts +126 -0
- package/test/ast/InlineNode.test.ts +161 -0
- package/test/fixtures/integration-test.html.fixture +103 -0
- package/test/fixtures/integration-test.md.expected +257 -0
- package/test/integration.test.ts +269 -0
- package/test/oauthServer.test.ts +50 -0
- package/test/parsers/ConfluenceParser.test.ts +283 -0
- package/test/schemas/ConfluencePreprocessor.test.ts +180 -0
- package/test/schemas/ConversionSchema.test.ts +159 -0
- package/test/schemas/HastSchema.test.ts +138 -0
- package/test/schemas/MdastSchema.test.ts +145 -0
- package/test/schemas/nodes/block/BlockSchema.test.ts +173 -0
- package/test/schemas/nodes/inline/InlineSchema.test.ts +198 -0
- package/test/schemas/nodes/macro/MacroSchema.test.ts +142 -0
- package/test/tokenStorage.test.ts +99 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI error handler.
|
|
3
|
+
*
|
|
4
|
+
* We use custom error handling instead of built-in options because:
|
|
5
|
+
* - Cause.pretty() includes stack traces which are noisy for CLI users
|
|
6
|
+
* - Logger.pretty is for logging, not error output
|
|
7
|
+
* - NodeRuntime.runMain error reporting shows full cause structure
|
|
8
|
+
*/
|
|
9
|
+
import * as Cause from "effect/Cause";
|
|
10
|
+
/**
|
|
11
|
+
* Print errors to stderr without stack traces.
|
|
12
|
+
*/
|
|
13
|
+
export const handleError = (cause) => {
|
|
14
|
+
if (Cause.isEmpty(cause))
|
|
15
|
+
return;
|
|
16
|
+
for (const error of Cause.failures(cause)) {
|
|
17
|
+
if (error && typeof error === "object" && "message" in error) {
|
|
18
|
+
process.stderr.write(`${error.message}\n`);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
process.stderr.write(`${String(error)}\n`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
for (const defect of Cause.defects(cause)) {
|
|
25
|
+
if (defect instanceof Error) {
|
|
26
|
+
process.stderr.write(`Error: ${defect.message}\n`);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
process.stderr.write(`Error: ${String(defect)}\n`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=errorHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/commands/errorHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,KAAqB,EAAQ,EAAE;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAM;IAEhC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,KAA6B,CAAC,OAAO,IAAI,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,OAAO,IAAI,CAAC,CAAA;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git commands (commit, log, diff) for Confluence CLI.
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "@effect/cli";
|
|
5
|
+
import * as Option from "effect/Option";
|
|
6
|
+
import { ConfluenceConfig } from "../ConfluenceConfig.js";
|
|
7
|
+
import { GitService } from "../GitService.js";
|
|
8
|
+
export declare const commitCommand: Command.Command<"commit", ConfluenceConfig | GitService, import("../GitService.js").GitServiceError, {
|
|
9
|
+
readonly message: Option.Option<string>;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const logCommand: Command.Command<"log", GitService, import("../GitService.js").GitServiceError, {
|
|
12
|
+
readonly limit: number;
|
|
13
|
+
readonly oneline: boolean;
|
|
14
|
+
readonly since: Option.Option<string>;
|
|
15
|
+
readonly file: Option.Option<string>;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const diffCommand: Command.Command<"diff", GitService, import("../GitService.js").GitServiceError, {
|
|
18
|
+
readonly staged: boolean;
|
|
19
|
+
readonly commit: Option.Option<string>;
|
|
20
|
+
readonly file: Option.Option<string>;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/commands/git.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAQ,OAAO,EAAW,MAAM,aAAa,CAAA;AAGpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAS7C,eAAO,MAAM,aAAa;;EAgByC,CAAA;AAoBnE,eAAO,MAAM,UAAU;;;;;EA4B+B,CAAA;AActD,eAAO,MAAM,WAAW;;;;EAkB4C,CAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git commands (commit, log, diff) for Confluence CLI.
|
|
3
|
+
*/
|
|
4
|
+
import { Args, Command, Options } from "@effect/cli";
|
|
5
|
+
import * as Console from "effect/Console";
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Option from "effect/Option";
|
|
8
|
+
import { ConfluenceConfig } from "../ConfluenceConfig.js";
|
|
9
|
+
import { GitService } from "../GitService.js";
|
|
10
|
+
// === Commit command ===
|
|
11
|
+
const commitMessageOption = Options.text("message").pipe(Options.withAlias("m"), Options.withDescription("Commit message"), Options.optional);
|
|
12
|
+
export const commitCommand = Command.make("commit", { message: commitMessageOption }, ({ message }) => Effect.gen(function* () {
|
|
13
|
+
const git = yield* GitService;
|
|
14
|
+
const config = yield* ConfluenceConfig;
|
|
15
|
+
// Sync from external docs path to .confluence/ (skips if docsPath is inside .confluence/)
|
|
16
|
+
yield* git.syncFromDocs(config.docsPath, config.trackedPaths);
|
|
17
|
+
yield* git.addAll();
|
|
18
|
+
const msg = Option.isSome(message) ? message.value : "Manual commit";
|
|
19
|
+
const hash = yield* git.commit({ message: msg });
|
|
20
|
+
yield* Console.log(`Committed: ${hash.substring(0, 7)}`);
|
|
21
|
+
})).pipe(Command.withDescription("Stage and commit current changes"));
|
|
22
|
+
// === Log command ===
|
|
23
|
+
const logLimitOption = Options.integer("limit").pipe(Options.withAlias("n"), Options.withDescription("Number of commits to show"), Options.withDefault(10));
|
|
24
|
+
const logOnelineOption = Options.boolean("oneline").pipe(Options.withDescription("Show compact one-line format"));
|
|
25
|
+
const logSinceOption = Options.text("since").pipe(Options.withDescription("Show commits since date (e.g., '2024-01-01')"), Options.optional);
|
|
26
|
+
const logFileArg = Args.text({ name: "file" }).pipe(Args.optional);
|
|
27
|
+
export const logCommand = Command.make("log", { limit: logLimitOption, oneline: logOnelineOption, since: logSinceOption, file: logFileArg }, ({ file, limit, oneline, since }) => Effect.gen(function* () {
|
|
28
|
+
const git = yield* GitService;
|
|
29
|
+
const opts = {
|
|
30
|
+
n: limit,
|
|
31
|
+
oneline,
|
|
32
|
+
...(Option.isSome(since) ? { since: since.value } : {}),
|
|
33
|
+
...(Option.isSome(file) ? { file: file.value } : {})
|
|
34
|
+
};
|
|
35
|
+
const commits = yield* git.log(opts);
|
|
36
|
+
if (commits.length === 0) {
|
|
37
|
+
yield* Console.log("No commits yet");
|
|
38
|
+
}
|
|
39
|
+
else if (oneline) {
|
|
40
|
+
for (const commit of commits) {
|
|
41
|
+
yield* Console.log(`${commit.hash.substring(0, 7)} ${commit.message}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
for (const commit of commits) {
|
|
46
|
+
yield* Console.log(`commit ${commit.hash}`);
|
|
47
|
+
yield* Console.log(`Author: ${commit.author} <${commit.email}>`);
|
|
48
|
+
yield* Console.log(`Date: ${commit.date.toISOString()}`);
|
|
49
|
+
yield* Console.log(`\n ${commit.message}\n`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
})).pipe(Command.withDescription("Show commit history"));
|
|
53
|
+
// === Diff command ===
|
|
54
|
+
const diffStagedOption = Options.boolean("staged").pipe(Options.withDescription("Show staged changes"));
|
|
55
|
+
const diffCommitOption = Options.text("commit").pipe(Options.withDescription("Compare with specific commit"), Options.optional);
|
|
56
|
+
const diffFileArg = Args.text({ name: "file" }).pipe(Args.optional);
|
|
57
|
+
export const diffCommand = Command.make("diff", { staged: diffStagedOption, commit: diffCommitOption, file: diffFileArg }, ({ commit, file, staged }) => Effect.gen(function* () {
|
|
58
|
+
const git = yield* GitService;
|
|
59
|
+
const opts = {
|
|
60
|
+
staged,
|
|
61
|
+
...(Option.isSome(commit) ? { commit: commit.value } : {}),
|
|
62
|
+
...(Option.isSome(file) ? { file: file.value } : {})
|
|
63
|
+
};
|
|
64
|
+
const diff = yield* git.diff(opts);
|
|
65
|
+
if (diff === "") {
|
|
66
|
+
yield* Console.log("No changes");
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
yield* Console.log(diff);
|
|
70
|
+
}
|
|
71
|
+
})).pipe(Command.withDescription("Show changes in working directory"));
|
|
72
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/commands/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI commands for confluence-to-markdown.
|
|
3
|
+
*/
|
|
4
|
+
export { authCommand } from "./auth.js";
|
|
5
|
+
export { cloneCommand } from "./clone.js";
|
|
6
|
+
export { deleteCommand } from "./delete.js";
|
|
7
|
+
export { commitCommand, diffCommand, logCommand } from "./git.js";
|
|
8
|
+
export { newCommand } from "./new.js";
|
|
9
|
+
export { getAuth } from "./shared.js";
|
|
10
|
+
export { pullCommand, pushCommand, statusCommand } from "./sync.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI commands for confluence-to-markdown.
|
|
3
|
+
*/
|
|
4
|
+
export { authCommand } from "./auth.js";
|
|
5
|
+
export { cloneCommand } from "./clone.js";
|
|
6
|
+
export { deleteCommand } from "./delete.js";
|
|
7
|
+
export { commitCommand, diffCommand, logCommand } from "./git.js";
|
|
8
|
+
export { newCommand } from "./new.js";
|
|
9
|
+
export { getAuth } from "./shared.js";
|
|
10
|
+
export { pullCommand, pushCommand, statusCommand } from "./sync.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer definitions for CLI commands.
|
|
3
|
+
*/
|
|
4
|
+
import * as NodeContext from "@effect/platform-node/NodeContext";
|
|
5
|
+
import * as Layer from "effect/Layer";
|
|
6
|
+
import { ConfluenceAuth } from "../ConfluenceAuth.js";
|
|
7
|
+
import { ConfluenceClient } from "../ConfluenceClient.js";
|
|
8
|
+
import { ConfluenceConfig } from "../ConfluenceConfig.js";
|
|
9
|
+
import { GitService } from "../GitService.js";
|
|
10
|
+
import { SyncEngine } from "../SyncEngine.js";
|
|
11
|
+
/**
|
|
12
|
+
* Full app layer with all services.
|
|
13
|
+
*/
|
|
14
|
+
export declare const AppLayer: Layer.Layer<ConfluenceAuth | import("@effect/platform/HttpClient").HttpClient | ConfluenceClient | ConfluenceConfig | GitService | NodeContext.NodeContext | import("../LocalFileSystem.js").LocalFileSystem | import("../MarkdownConverter.js").MarkdownConverter | import("../internal/userCache.js").UserCache | SyncEngine, import("../ConfluenceError.js").ConfigNotFoundError | import("../ConfluenceError.js").ConfigParseError | import("../ConfluenceError.js").AuthMissingError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").OAuthError, never>;
|
|
15
|
+
/**
|
|
16
|
+
* Auth-only layer for login/logout commands.
|
|
17
|
+
*/
|
|
18
|
+
export declare const AuthOnlyLayer: Layer.Layer<ConfluenceAuth | import("@effect/platform/HttpClient").HttpClient | ConfluenceClient | ConfluenceConfig | GitService | NodeContext.NodeContext | import("../LocalFileSystem.js").LocalFileSystem | import("../MarkdownConverter.js").MarkdownConverter | import("../internal/userCache.js").UserCache | SyncEngine, never, never>;
|
|
19
|
+
/**
|
|
20
|
+
* Minimal layer for help - uses real GitService for clone.
|
|
21
|
+
*/
|
|
22
|
+
export declare const MinimalLayer: Layer.Layer<ConfluenceAuth | ConfluenceClient | ConfluenceConfig | GitService | NodeContext.NodeContext | import("../LocalFileSystem.js").LocalFileSystem | import("../MarkdownConverter.js").MarkdownConverter | import("../internal/userCache.js").UserCache | SyncEngine, never, never>;
|
|
23
|
+
/**
|
|
24
|
+
* Clone layer - needs auth + git but builds SyncEngine dynamically.
|
|
25
|
+
*/
|
|
26
|
+
export declare const CloneLayer: Layer.Layer<ConfluenceAuth | import("@effect/platform/HttpClient").HttpClient | ConfluenceClient | ConfluenceConfig | GitService | NodeContext.NodeContext | import("../LocalFileSystem.js").LocalFileSystem | import("../MarkdownConverter.js").MarkdownConverter | import("../internal/userCache.js").UserCache | SyncEngine, never, never>;
|
|
27
|
+
/**
|
|
28
|
+
* Determine which layer to use based on command.
|
|
29
|
+
*/
|
|
30
|
+
export declare const getLayerType: () => "full" | "auth" | "clone" | "minimal";
|
|
31
|
+
//# sourceMappingURL=layers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/commands/layers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAA;AAIhE,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,cAAc,EAAgC,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAA+D,MAAM,wBAAwB,CAAA;AACtH,OAAO,EACL,gBAAgB,EAGjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,UAAU,EAA4B,MAAM,kBAAkB,CAAA;AAIvE,OAAO,EAA4B,UAAU,EAAE,MAAM,kBAAkB,CAAA;AA+GvE;;GAEG;AACH,eAAO,MAAM,QAAQ,kkBAUpB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,+UAUzB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,4RAUxB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,+UAWtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAe3D,CAAA"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer definitions for CLI commands.
|
|
3
|
+
*/
|
|
4
|
+
import * as NodeContext from "@effect/platform-node/NodeContext";
|
|
5
|
+
import * as NodeHttpClient from "@effect/platform-node/NodeHttpClient";
|
|
6
|
+
import * as NodeTerminal from "@effect/platform-node/NodeTerminal";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as Layer from "effect/Layer";
|
|
9
|
+
import { ConfluenceAuth, layer as ConfluenceAuthLayer } from "../ConfluenceAuth.js";
|
|
10
|
+
import { ConfluenceClient, layer as ConfluenceClientLayer } from "../ConfluenceClient.js";
|
|
11
|
+
import { ConfluenceConfig, layer as ConfluenceConfigLayer, layerFromValues as ConfluenceConfigLayerFromValues } from "../ConfluenceConfig.js";
|
|
12
|
+
import { GitService, layer as GitServiceLayer } from "../GitService.js";
|
|
13
|
+
import { UserCacheLayer } from "../internal/userCache.js";
|
|
14
|
+
import { layer as LocalFileSystemLayer } from "../LocalFileSystem.js";
|
|
15
|
+
import { layer as MarkdownConverterLayer } from "../MarkdownConverter.js";
|
|
16
|
+
import { layer as SyncEngineLayer, SyncEngine } from "../SyncEngine.js";
|
|
17
|
+
import { getAuth } from "./shared.js";
|
|
18
|
+
// Dummy config layer for help/init
|
|
19
|
+
const DummyConfigLayer = ConfluenceConfigLayerFromValues({
|
|
20
|
+
rootPageId: "dummy",
|
|
21
|
+
baseUrl: "https://dummy.atlassian.net",
|
|
22
|
+
docsPath: ".confluence/docs",
|
|
23
|
+
excludePatterns: [],
|
|
24
|
+
saveSource: false,
|
|
25
|
+
trackedPaths: ["**/*.md"]
|
|
26
|
+
});
|
|
27
|
+
// Dummy client layer for help/init (will fail if actually used)
|
|
28
|
+
const DummyConfluenceClientLayer = Layer.succeed(ConfluenceClient, ConfluenceClient.of({
|
|
29
|
+
getPage: () => Effect.dieMessage("Not configured"),
|
|
30
|
+
getChildren: () => Effect.dieMessage("Not configured"),
|
|
31
|
+
getAllChildren: () => Effect.dieMessage("Not configured"),
|
|
32
|
+
createPage: () => Effect.dieMessage("Not configured"),
|
|
33
|
+
updatePage: () => Effect.dieMessage("Not configured"),
|
|
34
|
+
deletePage: () => Effect.dieMessage("Not configured"),
|
|
35
|
+
getPageVersions: () => Effect.dieMessage("Not configured"),
|
|
36
|
+
getUser: () => Effect.dieMessage("Not configured"),
|
|
37
|
+
getSpaceId: () => Effect.dieMessage("Not configured"),
|
|
38
|
+
setEditorVersion: () => Effect.dieMessage("Not configured")
|
|
39
|
+
}));
|
|
40
|
+
// Dummy sync engine that will fail if actually used
|
|
41
|
+
const DummySyncEngineLayer = Layer.succeed(SyncEngine, SyncEngine.of({
|
|
42
|
+
pull: () => Effect.dieMessage("Not configured - run 'confluence clone' first"),
|
|
43
|
+
push: (_options) => Effect.dieMessage("Not configured - run 'confluence clone' first"),
|
|
44
|
+
status: () => Effect.dieMessage("Not configured - run 'confluence clone' first")
|
|
45
|
+
}));
|
|
46
|
+
// Dummy git layer for auth/minimal
|
|
47
|
+
const notConfigured = () => Effect.dieMessage("Not configured - run 'confluence clone' first");
|
|
48
|
+
const DummyGitServiceLayer = Layer.succeed(GitService, GitService.of({
|
|
49
|
+
validateGit: notConfigured,
|
|
50
|
+
init: notConfigured,
|
|
51
|
+
isInitialized: () => Effect.succeed(false),
|
|
52
|
+
status: notConfigured,
|
|
53
|
+
commit: notConfigured,
|
|
54
|
+
log: notConfigured,
|
|
55
|
+
diff: notConfigured,
|
|
56
|
+
addAll: notConfigured,
|
|
57
|
+
hasConflicts: () => Effect.succeed(false),
|
|
58
|
+
mergeContinue: notConfigured,
|
|
59
|
+
syncFromDocs: notConfigured,
|
|
60
|
+
syncToDocs: notConfigured,
|
|
61
|
+
getHead: notConfigured,
|
|
62
|
+
getCurrentBranch: notConfigured,
|
|
63
|
+
createBranch: notConfigured,
|
|
64
|
+
checkout: notConfigured,
|
|
65
|
+
reset: notConfigured,
|
|
66
|
+
deleteBranch: notConfigured,
|
|
67
|
+
getParent: notConfigured,
|
|
68
|
+
cherryPick: (_ref, _options) => notConfigured(),
|
|
69
|
+
getChangedFiles: notConfigured,
|
|
70
|
+
showFile: notConfigured,
|
|
71
|
+
amend: notConfigured,
|
|
72
|
+
logRange: notConfigured,
|
|
73
|
+
branchExists: notConfigured,
|
|
74
|
+
updateBranch: notConfigured,
|
|
75
|
+
merge: notConfigured,
|
|
76
|
+
getDeletedFiles: notConfigured,
|
|
77
|
+
getFileContentAt: notConfigured
|
|
78
|
+
}));
|
|
79
|
+
// Dummy auth layer for init/help
|
|
80
|
+
const DummyConfluenceAuthLayer = Layer.succeed(ConfluenceAuth, ConfluenceAuth.of({
|
|
81
|
+
configure: () => Effect.dieMessage("Not configured"),
|
|
82
|
+
isConfigured: () => Effect.succeed(false),
|
|
83
|
+
login: () => Effect.dieMessage("Not configured"),
|
|
84
|
+
logout: () => Effect.dieMessage("Not configured"),
|
|
85
|
+
getAccessToken: () => Effect.dieMessage("Not configured"),
|
|
86
|
+
getCloudId: () => Effect.dieMessage("Not configured"),
|
|
87
|
+
getCurrentUser: () => Effect.succeed(null),
|
|
88
|
+
isLoggedIn: () => Effect.succeed(false)
|
|
89
|
+
}));
|
|
90
|
+
// Auth layer with HTTP client
|
|
91
|
+
const AuthLive = ConfluenceAuthLayer.pipe(Layer.provide(NodeHttpClient.layer));
|
|
92
|
+
// Build client layer dynamically based on auth
|
|
93
|
+
const ConfluenceClientLive = Layer.unwrapEffect(Effect.gen(function* () {
|
|
94
|
+
const auth = yield* getAuth();
|
|
95
|
+
const config = yield* ConfluenceConfig;
|
|
96
|
+
const clientConfig = {
|
|
97
|
+
baseUrl: config.baseUrl,
|
|
98
|
+
auth
|
|
99
|
+
};
|
|
100
|
+
return ConfluenceClientLayer(clientConfig);
|
|
101
|
+
}));
|
|
102
|
+
/**
|
|
103
|
+
* Full app layer with all services.
|
|
104
|
+
*/
|
|
105
|
+
export const AppLayer = SyncEngineLayer.pipe(Layer.provideMerge(UserCacheLayer), Layer.provideMerge(GitServiceLayer), Layer.provideMerge(ConfluenceClientLive), Layer.provideMerge(MarkdownConverterLayer), Layer.provideMerge(LocalFileSystemLayer), Layer.provideMerge(ConfluenceConfigLayer()), Layer.provideMerge(AuthLive), Layer.provideMerge(NodeHttpClient.layer), Layer.provideMerge(NodeContext.layer));
|
|
106
|
+
/**
|
|
107
|
+
* Auth-only layer for login/logout commands.
|
|
108
|
+
*/
|
|
109
|
+
export const AuthOnlyLayer = DummySyncEngineLayer.pipe(Layer.provideMerge(UserCacheLayer), Layer.provideMerge(DummyGitServiceLayer), Layer.provideMerge(DummyConfluenceClientLayer), Layer.provideMerge(AuthLive), Layer.provideMerge(MarkdownConverterLayer), Layer.provideMerge(LocalFileSystemLayer), Layer.provideMerge(DummyConfigLayer), Layer.provideMerge(NodeHttpClient.layer), Layer.provideMerge(NodeContext.layer));
|
|
110
|
+
/**
|
|
111
|
+
* Minimal layer for help - uses real GitService for clone.
|
|
112
|
+
*/
|
|
113
|
+
export const MinimalLayer = DummySyncEngineLayer.pipe(Layer.provideMerge(UserCacheLayer), Layer.provideMerge(GitServiceLayer), Layer.provideMerge(DummyConfluenceClientLayer), Layer.provideMerge(DummyConfluenceAuthLayer), Layer.provideMerge(MarkdownConverterLayer), Layer.provideMerge(LocalFileSystemLayer), Layer.provideMerge(DummyConfigLayer), Layer.provideMerge(NodeTerminal.layer), Layer.provideMerge(NodeContext.layer));
|
|
114
|
+
/**
|
|
115
|
+
* Clone layer - needs auth + git but builds SyncEngine dynamically.
|
|
116
|
+
*/
|
|
117
|
+
export const CloneLayer = DummySyncEngineLayer.pipe(Layer.provideMerge(UserCacheLayer), Layer.provideMerge(GitServiceLayer), Layer.provideMerge(DummyConfluenceClientLayer), Layer.provideMerge(AuthLive), Layer.provideMerge(MarkdownConverterLayer), Layer.provideMerge(LocalFileSystemLayer), Layer.provideMerge(DummyConfigLayer), Layer.provideMerge(NodeHttpClient.layer), Layer.provideMerge(NodeTerminal.layer), Layer.provideMerge(NodeContext.layer));
|
|
118
|
+
/**
|
|
119
|
+
* Determine which layer to use based on command.
|
|
120
|
+
*/
|
|
121
|
+
export const getLayerType = () => {
|
|
122
|
+
const cmd = process.argv[2];
|
|
123
|
+
// auth commands need auth layer only
|
|
124
|
+
if (cmd === "auth") {
|
|
125
|
+
return "auth";
|
|
126
|
+
}
|
|
127
|
+
// clone needs auth + git but not config-dependent services
|
|
128
|
+
if (cmd === "clone") {
|
|
129
|
+
return "clone";
|
|
130
|
+
}
|
|
131
|
+
// --help, -h, --version don't need config
|
|
132
|
+
if (!cmd || cmd === "--help" || cmd === "-h" || cmd === "--version") {
|
|
133
|
+
return "minimal";
|
|
134
|
+
}
|
|
135
|
+
return "full";
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=layers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/commands/layers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* New page command for Confluence CLI.
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "@effect/cli";
|
|
5
|
+
import * as Path from "@effect/platform/Path";
|
|
6
|
+
import { ConfluenceConfig } from "../ConfluenceConfig.js";
|
|
7
|
+
import { LocalFileSystem } from "../LocalFileSystem.js";
|
|
8
|
+
export declare const newCommand: Command.Command<"new", Path.Path | ConfluenceConfig | import("@effect/platform/Terminal").Terminal | LocalFileSystem, import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").FrontMatterError | import("@effect/platform/Terminal").QuitException, {}>;
|
|
9
|
+
//# sourceMappingURL=new.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAYvD,eAAO,MAAM,UAAU,mRA8E4D,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* New page command for Confluence CLI.
|
|
3
|
+
*/
|
|
4
|
+
import { Command, Prompt } from "@effect/cli";
|
|
5
|
+
import * as Path from "@effect/platform/Path";
|
|
6
|
+
import * as Console from "effect/Console";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import { ConfluenceConfig } from "../ConfluenceConfig.js";
|
|
9
|
+
import { LocalFileSystem } from "../LocalFileSystem.js";
|
|
10
|
+
import { flattenPageTree } from "./pageTree.js";
|
|
11
|
+
/** Slugify a title for use as filename */
|
|
12
|
+
const slugify = (title) => title
|
|
13
|
+
.toLowerCase()
|
|
14
|
+
.replace(/[^a-z0-9\s-]/g, "")
|
|
15
|
+
.replace(/\s+/g, "-")
|
|
16
|
+
.replace(/-+/g, "-")
|
|
17
|
+
.replace(/^-|-$/g, "");
|
|
18
|
+
export const newCommand = Command.make("new", {}, () => Effect.gen(function* () {
|
|
19
|
+
const localFs = yield* LocalFileSystem;
|
|
20
|
+
const config = yield* ConfluenceConfig;
|
|
21
|
+
const pathService = yield* Path.Path;
|
|
22
|
+
const docsPath = pathService.join(process.cwd(), config.docsPath);
|
|
23
|
+
// Build page tree
|
|
24
|
+
yield* Console.log("Scanning page structure...");
|
|
25
|
+
const tree = yield* localFs.buildPageTree(docsPath, config.rootPageId, "Root");
|
|
26
|
+
// Check if we have any pages
|
|
27
|
+
const hasPages = tree.children.length > 0 || tree.pageId !== null;
|
|
28
|
+
if (!hasPages) {
|
|
29
|
+
yield* Console.log("No pages found. Run 'confluence clone' or 'confluence pull' first.");
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Flatten to choices
|
|
33
|
+
const choices = flattenPageTree(tree);
|
|
34
|
+
// Show parent selector
|
|
35
|
+
const parent = yield* Prompt.select({
|
|
36
|
+
message: "Select parent page for the new page:",
|
|
37
|
+
choices
|
|
38
|
+
});
|
|
39
|
+
// Prompt for title
|
|
40
|
+
const title = yield* Prompt.text({
|
|
41
|
+
message: "Enter page title:"
|
|
42
|
+
});
|
|
43
|
+
if (!title.trim()) {
|
|
44
|
+
yield* Console.log("Title cannot be empty");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Generate filename
|
|
48
|
+
const filename = `${slugify(title.trim())}.md`;
|
|
49
|
+
// Determine file path
|
|
50
|
+
// If parent is root (path === ""), create in docsPath
|
|
51
|
+
// If parent has children, create in parent's directory
|
|
52
|
+
let filePath;
|
|
53
|
+
if (parent.path === "") {
|
|
54
|
+
// Root level
|
|
55
|
+
filePath = pathService.join(docsPath, filename);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Under a page - check if parent directory exists
|
|
59
|
+
const parentBasename = pathService.basename(parent.path, ".md");
|
|
60
|
+
const parentDir = pathService.dirname(parent.path);
|
|
61
|
+
const targetDir = parentDir === "." ? parentBasename : pathService.join(parentDir, parentBasename);
|
|
62
|
+
filePath = pathService.join(docsPath, targetDir, filename);
|
|
63
|
+
}
|
|
64
|
+
// Check if file already exists
|
|
65
|
+
const exists = yield* localFs.exists(filePath);
|
|
66
|
+
if (exists) {
|
|
67
|
+
yield* Console.log(`File already exists: ${filePath}`);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// Write new page file with title-only front-matter
|
|
71
|
+
yield* localFs.writeNewPageFile(filePath, { title: title.trim() }, "\n<!-- Write your page content here -->\n");
|
|
72
|
+
const relativePath = pathService.relative(process.cwd(), filePath);
|
|
73
|
+
yield* Console.log(`Created new page: ${relativePath}`);
|
|
74
|
+
yield* Console.log("");
|
|
75
|
+
yield* Console.log("Next steps:");
|
|
76
|
+
yield* Console.log(" 1. Edit the file to add content");
|
|
77
|
+
yield* Console.log(" 2. Run 'confluence commit' to stage changes");
|
|
78
|
+
yield* Console.log(" 3. Run 'confluence push' to create on Confluence");
|
|
79
|
+
})).pipe(Command.withDescription("Create a new page to be pushed to Confluence"));
|
|
80
|
+
//# sourceMappingURL=new.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared page tree utilities for CLI commands.
|
|
3
|
+
*/
|
|
4
|
+
import type { PageTreeNode } from "../LocalFileSystem.js";
|
|
5
|
+
export interface PageChoice {
|
|
6
|
+
readonly title: string;
|
|
7
|
+
readonly value: {
|
|
8
|
+
readonly path: string;
|
|
9
|
+
readonly pageId: string | null;
|
|
10
|
+
readonly nodeTitle: string;
|
|
11
|
+
};
|
|
12
|
+
readonly description?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Flatten page tree to choices with indentation for interactive prompts.
|
|
16
|
+
*/
|
|
17
|
+
export declare const flattenPageTree: (node: PageTreeNode, depth?: number) => ReadonlyArray<PageChoice>;
|
|
18
|
+
//# sourceMappingURL=pageTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageTree.d.ts","sourceRoot":"","sources":["../../src/commands/pageTree.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,YAAY,EAClB,QAAO,MAAU,KAChB,aAAa,CAAC,UAAU,CAkB1B,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flatten page tree to choices with indentation for interactive prompts.
|
|
3
|
+
*/
|
|
4
|
+
export const flattenPageTree = (node, depth = 0) => {
|
|
5
|
+
const indent = " ".repeat(depth);
|
|
6
|
+
const prefix = depth === 0 ? "" : "├─ ";
|
|
7
|
+
const choices = [];
|
|
8
|
+
choices.push({
|
|
9
|
+
title: `${indent}${prefix}${node.title}`,
|
|
10
|
+
value: { path: node.path, pageId: node.pageId, nodeTitle: node.title },
|
|
11
|
+
description: node.pageId ? `Page ID: ${node.pageId}` : "Root"
|
|
12
|
+
});
|
|
13
|
+
for (const child of node.children) {
|
|
14
|
+
for (const choice of flattenPageTree(child, depth + 1)) {
|
|
15
|
+
choices.push(choice);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return choices;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=pageTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageTree.js","sourceRoot":"","sources":["../../src/commands/pageTree.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAkB,EAClB,QAAgB,CAAC,EACU,EAAE;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IACvC,MAAM,OAAO,GAAsB,EAAE,CAAA;IAErC,OAAO,CAAC,IAAI,CAAC;QACX,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;QACxC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE;QACtE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM;KAC9D,CAAC,CAAA;IAEF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { ConfluenceAuth } from "../ConfluenceAuth.js";
|
|
3
|
+
/**
|
|
4
|
+
* Get authentication config from env vars or OAuth.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getAuth: () => Effect.Effect<{
|
|
7
|
+
type: "token";
|
|
8
|
+
email: string;
|
|
9
|
+
token: string;
|
|
10
|
+
} | {
|
|
11
|
+
type: "oauth2";
|
|
12
|
+
accessToken: string;
|
|
13
|
+
cloudId: string;
|
|
14
|
+
}, import("../ConfluenceError.js").AuthMissingError | import("../ConfluenceError.js").FileSystemError | import("../ConfluenceError.js").OAuthError, ConfluenceAuth>;
|
|
15
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAOrD;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;;mKAkBhB,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for CLI commands.
|
|
3
|
+
*/
|
|
4
|
+
import * as Config from "effect/Config";
|
|
5
|
+
import * as Effect from "effect/Effect";
|
|
6
|
+
import * as Option from "effect/Option";
|
|
7
|
+
import { ConfluenceAuth } from "../ConfluenceAuth.js";
|
|
8
|
+
const AuthConfig = Config.all({
|
|
9
|
+
apiKey: Config.string("CONFLUENCE_API_KEY"),
|
|
10
|
+
email: Config.string("CONFLUENCE_EMAIL")
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Get authentication config from env vars or OAuth.
|
|
14
|
+
*/
|
|
15
|
+
export const getAuth = () => Effect.gen(function* () {
|
|
16
|
+
// 1. Try env vars first (backwards compat)
|
|
17
|
+
const envAuth = yield* AuthConfig.pipe(Effect.map(({ apiKey, email }) => ({ type: "token", email, token: apiKey })), Effect.option);
|
|
18
|
+
if (Option.isSome(envAuth)) {
|
|
19
|
+
return envAuth.value;
|
|
20
|
+
}
|
|
21
|
+
// 2. Try OAuth token
|
|
22
|
+
const auth = yield* ConfluenceAuth;
|
|
23
|
+
const accessToken = yield* auth.getAccessToken();
|
|
24
|
+
const cloudId = yield* auth.getCloudId();
|
|
25
|
+
return { type: "oauth2", accessToken, cloudId };
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;CACzC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,2CAA2C;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CACpC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EACrF,MAAM,CAAC,MAAM,CACd,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,KAAK,CAAA;IACtB,CAAC;IAED,qBAAqB;IACrB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,cAAc,CAAA;IAClC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAA;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;IAExC,OAAO,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,CAAA;AAC1D,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync commands (pull, push, status) for Confluence CLI.
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "@effect/cli";
|
|
5
|
+
import { GitService } from "../GitService.js";
|
|
6
|
+
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, {
|
|
8
|
+
readonly force: boolean;
|
|
9
|
+
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, {
|
|
12
|
+
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, {}>;
|
|
15
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +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"}
|