@knpkv/confluence-to-markdown 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/README.md +58 -14
- package/dist/AdfPlaceholders.d.ts +42 -0
- package/dist/AdfPlaceholders.d.ts.map +1 -0
- package/dist/AdfPlaceholders.js +547 -0
- package/dist/AdfPlaceholders.js.map +1 -0
- package/dist/AdfSchemaValidator.d.ts +37 -0
- package/dist/AdfSchemaValidator.d.ts.map +1 -0
- package/dist/AdfSchemaValidator.js +37 -0
- package/dist/AdfSchemaValidator.js.map +1 -0
- package/dist/AdfWalker.d.ts +39 -0
- package/dist/AdfWalker.d.ts.map +1 -0
- package/dist/AdfWalker.js +527 -0
- package/dist/AdfWalker.js.map +1 -0
- package/dist/AtlaskitTransformers.d.ts +35 -0
- package/dist/AtlaskitTransformers.d.ts.map +1 -0
- package/dist/AtlaskitTransformers.js +48 -0
- package/dist/AtlaskitTransformers.js.map +1 -0
- package/dist/Brand.d.ts +6 -6
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +8 -6
- package/dist/Brand.js.map +1 -1
- package/dist/ConfluenceAuth.d.ts +4 -4
- package/dist/ConfluenceAuth.d.ts.map +1 -1
- package/dist/ConfluenceAuth.js +15 -27
- package/dist/ConfluenceAuth.js.map +1 -1
- package/dist/ConfluenceClient.d.ts +4 -4
- package/dist/ConfluenceClient.d.ts.map +1 -1
- package/dist/ConfluenceClient.js +21 -14
- package/dist/ConfluenceClient.js.map +1 -1
- package/dist/ConfluenceConfig.d.ts +3 -3
- package/dist/ConfluenceConfig.d.ts.map +1 -1
- package/dist/ConfluenceConfig.js +13 -11
- package/dist/ConfluenceConfig.js.map +1 -1
- package/dist/ConfluenceError.d.ts +56 -4
- package/dist/ConfluenceError.d.ts.map +1 -1
- package/dist/ConfluenceError.js +30 -1
- package/dist/ConfluenceError.js.map +1 -1
- package/dist/GitService.d.ts +11 -3
- package/dist/GitService.d.ts.map +1 -1
- package/dist/GitService.js +19 -27
- package/dist/GitService.js.map +1 -1
- package/dist/LocalFileSystem.d.ts +3 -3
- package/dist/LocalFileSystem.d.ts.map +1 -1
- package/dist/LocalFileSystem.js +6 -6
- package/dist/LocalFileSystem.js.map +1 -1
- package/dist/MarkdownConverter.d.ts +16 -65
- package/dist/MarkdownConverter.d.ts.map +1 -1
- package/dist/MarkdownConverter.js +64 -85
- package/dist/MarkdownConverter.js.map +1 -1
- package/dist/Schemas.d.ts +128 -141
- package/dist/Schemas.d.ts.map +1 -1
- package/dist/Schemas.js +21 -23
- package/dist/Schemas.js.map +1 -1
- package/dist/SyncEngine.d.ts +8 -5
- package/dist/SyncEngine.d.ts.map +1 -1
- package/dist/SyncEngine.js +189 -113
- package/dist/SyncEngine.js.map +1 -1
- package/dist/bin.js +23 -35
- package/dist/bin.js.map +1 -1
- package/dist/commands/auth.d.ts +2 -14
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +11 -16
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/clone.d.ts +4 -6
- package/dist/commands/clone.d.ts.map +1 -1
- package/dist/commands/clone.js +34 -32
- package/dist/commands/clone.js.map +1 -1
- package/dist/commands/delete.d.ts +2 -10
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +5 -4
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/errorHandler.d.ts +2 -1
- package/dist/commands/errorHandler.d.ts.map +1 -1
- package/dist/commands/errorHandler.js +22 -15
- package/dist/commands/errorHandler.js.map +1 -1
- package/dist/commands/fetch.d.ts +27 -0
- package/dist/commands/fetch.d.ts.map +1 -0
- package/dist/commands/fetch.js +48 -0
- package/dist/commands/fetch.js.map +1 -0
- package/dist/commands/git.d.ts +7 -10
- package/dist/commands/git.d.ts.map +1 -1
- package/dist/commands/git.js +6 -6
- package/dist/commands/git.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/layers.d.ts +10 -9
- package/dist/commands/layers.d.ts.map +1 -1
- package/dist/commands/layers.js +41 -30
- package/dist/commands/layers.js.map +1 -1
- package/dist/commands/new.d.ts +2 -6
- package/dist/commands/new.d.ts.map +1 -1
- package/dist/commands/new.js +5 -4
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/pageInput.d.ts +19 -0
- package/dist/commands/pageInput.d.ts.map +1 -0
- package/dist/commands/pageInput.js +68 -0
- package/dist/commands/pageInput.js.map +1 -0
- package/dist/commands/root.d.ts +8 -0
- package/dist/commands/root.d.ts.map +1 -0
- package/dist/commands/root.js +29 -0
- package/dist/commands/root.js.map +1 -0
- package/dist/commands/sync.d.ts +6 -9
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +5 -6
- package/dist/commands/sync.js.map +1 -1
- package/dist/index.d.ts +3 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -13
- package/dist/index.js.map +1 -1
- package/dist/internal/NodeLayers.d.ts.map +1 -1
- package/dist/internal/NodeLayers.js +1 -2
- package/dist/internal/NodeLayers.js.map +1 -1
- package/dist/internal/adfMetadata.d.ts +30 -0
- package/dist/internal/adfMetadata.d.ts.map +1 -0
- package/dist/internal/adfMetadata.js +126 -0
- package/dist/internal/adfMetadata.js.map +1 -0
- package/dist/internal/cleanMarkdown.d.ts +5 -0
- package/dist/internal/cleanMarkdown.d.ts.map +1 -0
- package/dist/internal/cleanMarkdown.js +13 -0
- package/dist/internal/cleanMarkdown.js.map +1 -0
- package/dist/internal/frontmatter.d.ts.map +1 -1
- package/dist/internal/frontmatter.js +41 -8
- package/dist/internal/frontmatter.js.map +1 -1
- package/dist/internal/gitCommands.d.ts +9 -3
- package/dist/internal/gitCommands.d.ts.map +1 -1
- package/dist/internal/gitCommands.js +18 -9
- package/dist/internal/gitCommands.js.map +1 -1
- package/dist/internal/hashUtils.d.ts +1 -1
- package/dist/internal/hashUtils.d.ts.map +1 -1
- package/dist/internal/hashUtils.js +1 -1
- package/dist/internal/hashUtils.js.map +1 -1
- package/dist/internal/oauthServer.d.ts +10 -5
- package/dist/internal/oauthServer.d.ts.map +1 -1
- package/dist/internal/oauthServer.js +19 -40
- package/dist/internal/oauthServer.js.map +1 -1
- package/dist/internal/pathUtils.d.ts +1 -1
- package/dist/internal/pathUtils.d.ts.map +1 -1
- package/dist/internal/pathUtils.js +1 -1
- package/dist/internal/pathUtils.js.map +1 -1
- package/dist/internal/process.d.ts +15 -0
- package/dist/internal/process.d.ts.map +1 -0
- package/dist/internal/process.js +10 -0
- package/dist/internal/process.js.map +1 -0
- package/dist/internal/stdio.d.ts +6 -0
- package/dist/internal/stdio.d.ts.map +1 -0
- package/dist/internal/stdio.js +15 -0
- package/dist/internal/stdio.js.map +1 -0
- package/dist/internal/tokenStorage.d.ts +3 -13
- package/dist/internal/tokenStorage.d.ts.map +1 -1
- package/dist/internal/tokenStorage.js +26 -24
- package/dist/internal/tokenStorage.js.map +1 -1
- package/dist/internal/userCache.d.ts +1 -1
- package/dist/internal/userCache.d.ts.map +1 -1
- package/dist/internal/userCache.js +1 -1
- package/dist/internal/userCache.js.map +1 -1
- package/package.json +29 -20
- package/skills/confluence/SKILL.md +143 -0
- package/skills/confluence/agents/openai.yaml +4 -0
- package/src/AdfPlaceholders.ts +563 -0
- package/src/AdfSchemaValidator.ts +65 -0
- package/src/AdfWalker.ts +591 -0
- package/src/AtlaskitTransformers.ts +70 -0
- package/src/Brand.ts +11 -16
- package/src/ConfluenceAuth.ts +22 -30
- package/src/ConfluenceClient.ts +28 -24
- package/src/ConfluenceConfig.ts +14 -14
- package/src/ConfluenceError.ts +65 -3
- package/src/GitService.ts +39 -49
- package/src/LocalFileSystem.ts +7 -9
- package/src/MarkdownConverter.ts +108 -143
- package/src/Schemas.ts +17 -16
- package/src/SyncEngine.ts +272 -127
- package/src/atlaskit-adf-schema.d.ts +3 -0
- package/src/bin.ts +30 -56
- package/src/commands/auth.ts +21 -18
- package/src/commands/clone.ts +46 -38
- package/src/commands/delete.ts +5 -4
- package/src/commands/errorHandler.ts +25 -18
- package/src/commands/fetch.ts +90 -0
- package/src/commands/git.ts +6 -6
- package/src/commands/index.ts +1 -0
- package/src/commands/layers.ts +64 -37
- package/src/commands/new.ts +5 -4
- package/src/commands/pageInput.ts +103 -0
- package/src/commands/root.ts +59 -0
- package/src/commands/sync.ts +7 -6
- package/src/index.ts +3 -18
- package/src/internal/NodeLayers.ts +1 -2
- package/src/internal/adfMetadata.ts +145 -0
- package/src/internal/cleanMarkdown.ts +15 -0
- package/src/internal/frontmatter.ts +45 -8
- package/src/internal/gitCommands.ts +23 -17
- package/src/internal/hashUtils.ts +2 -2
- package/src/internal/oauthServer.ts +84 -105
- package/src/internal/pathUtils.ts +1 -1
- package/src/internal/process.ts +15 -0
- package/src/internal/stdio.ts +22 -0
- package/src/internal/tokenStorage.ts +39 -29
- package/src/internal/userCache.ts +2 -2
- package/test/AdfPlaceholders.test.ts +508 -0
- package/test/AdfSchemaValidator.test.ts +34 -0
- package/test/AdfWalker.test.ts +676 -0
- package/test/AtlaskitTransformers.test.ts +25 -0
- package/test/Brand.test.ts +11 -11
- package/test/GitService.test.ts +6 -2
- package/test/MarkdownConverter.test.ts +121 -105
- package/test/RoundTrip.test.ts +521 -0
- package/test/Schemas.test.ts +40 -40
- package/test/adfMetadata.test.ts +110 -0
- package/test/cleanMarkdown.test.ts +36 -0
- package/test/commandHarness.test.ts +79 -0
- package/test/commandHarness.ts +147 -0
- package/test/fetch.test.ts +61 -0
- package/test/frontmatter.test.ts +41 -0
- package/test/integration.test.ts +569 -156
- package/test/layers.test.ts +12 -0
- package/test/oauthServer.test.ts +4 -5
- package/test/pageInput.test.ts +83 -0
- package/test/tokenStorage.test.ts +17 -17
- package/dist/SchemaConverterError.d.ts +0 -108
- package/dist/SchemaConverterError.d.ts.map +0 -1
- package/dist/SchemaConverterError.js +0 -84
- package/dist/SchemaConverterError.js.map +0 -1
- package/dist/ast/BlockNode.d.ts +0 -453
- package/dist/ast/BlockNode.d.ts.map +0 -1
- package/dist/ast/BlockNode.js +0 -310
- package/dist/ast/BlockNode.js.map +0 -1
- package/dist/ast/Document.d.ts +0 -216
- package/dist/ast/Document.d.ts.map +0 -1
- package/dist/ast/Document.js +0 -69
- package/dist/ast/Document.js.map +0 -1
- package/dist/ast/InlineNode.d.ts +0 -477
- package/dist/ast/InlineNode.d.ts.map +0 -1
- package/dist/ast/InlineNode.js +0 -263
- package/dist/ast/InlineNode.js.map +0 -1
- package/dist/ast/MacroNode.d.ts +0 -267
- package/dist/ast/MacroNode.d.ts.map +0 -1
- package/dist/ast/MacroNode.js +0 -164
- package/dist/ast/MacroNode.js.map +0 -1
- package/dist/ast/index.d.ts +0 -10
- package/dist/ast/index.d.ts.map +0 -1
- package/dist/ast/index.js +0 -14
- package/dist/ast/index.js.map +0 -1
- package/dist/parsers/ConfluenceParser.d.ts +0 -26
- package/dist/parsers/ConfluenceParser.d.ts.map +0 -1
- package/dist/parsers/ConfluenceParser.js +0 -797
- package/dist/parsers/ConfluenceParser.js.map +0 -1
- package/dist/parsers/MarkdownParser.d.ts +0 -26
- package/dist/parsers/MarkdownParser.d.ts.map +0 -1
- package/dist/parsers/MarkdownParser.js +0 -982
- package/dist/parsers/MarkdownParser.js.map +0 -1
- package/dist/parsers/index.d.ts +0 -8
- package/dist/parsers/index.d.ts.map +0 -1
- package/dist/parsers/index.js +0 -8
- package/dist/parsers/index.js.map +0 -1
- package/dist/schemas/ConfluenceSchema.d.ts +0 -21
- package/dist/schemas/ConfluenceSchema.d.ts.map +0 -1
- package/dist/schemas/ConfluenceSchema.js +0 -38
- package/dist/schemas/ConfluenceSchema.js.map +0 -1
- package/dist/schemas/ConversionSchema.d.ts +0 -35
- package/dist/schemas/ConversionSchema.d.ts.map +0 -1
- package/dist/schemas/ConversionSchema.js +0 -208
- package/dist/schemas/ConversionSchema.js.map +0 -1
- package/dist/schemas/MarkdownSchema.d.ts +0 -21
- package/dist/schemas/MarkdownSchema.d.ts.map +0 -1
- package/dist/schemas/MarkdownSchema.js +0 -38
- package/dist/schemas/MarkdownSchema.js.map +0 -1
- package/dist/schemas/hast/HastFromHtml.d.ts +0 -27
- package/dist/schemas/hast/HastFromHtml.d.ts.map +0 -1
- package/dist/schemas/hast/HastFromHtml.js +0 -107
- package/dist/schemas/hast/HastFromHtml.js.map +0 -1
- package/dist/schemas/hast/HastSchema.d.ts +0 -195
- package/dist/schemas/hast/HastSchema.d.ts.map +0 -1
- package/dist/schemas/hast/HastSchema.js +0 -183
- package/dist/schemas/hast/HastSchema.js.map +0 -1
- package/dist/schemas/hast/index.d.ts +0 -9
- package/dist/schemas/hast/index.d.ts.map +0 -1
- package/dist/schemas/hast/index.js +0 -3
- package/dist/schemas/hast/index.js.map +0 -1
- package/dist/schemas/index.d.ts +0 -14
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js +0 -16
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/mdast/MdastFromMarkdown.d.ts +0 -30
- package/dist/schemas/mdast/MdastFromMarkdown.d.ts.map +0 -1
- package/dist/schemas/mdast/MdastFromMarkdown.js +0 -79
- package/dist/schemas/mdast/MdastFromMarkdown.js.map +0 -1
- package/dist/schemas/mdast/MdastSchema.d.ts +0 -385
- package/dist/schemas/mdast/MdastSchema.d.ts.map +0 -1
- package/dist/schemas/mdast/MdastSchema.js +0 -266
- package/dist/schemas/mdast/MdastSchema.js.map +0 -1
- package/dist/schemas/mdast/index.d.ts +0 -10
- package/dist/schemas/mdast/index.d.ts.map +0 -1
- package/dist/schemas/mdast/index.js +0 -4
- package/dist/schemas/mdast/index.js.map +0 -1
- package/dist/schemas/mdast/mdastToString.d.ts +0 -13
- package/dist/schemas/mdast/mdastToString.d.ts.map +0 -1
- package/dist/schemas/mdast/mdastToString.js +0 -85
- package/dist/schemas/mdast/mdastToString.js.map +0 -1
- package/dist/schemas/nodes/block/BlockSchema.d.ts +0 -43
- package/dist/schemas/nodes/block/BlockSchema.d.ts.map +0 -1
- package/dist/schemas/nodes/block/BlockSchema.js +0 -634
- package/dist/schemas/nodes/block/BlockSchema.js.map +0 -1
- package/dist/schemas/nodes/block/index.d.ts +0 -7
- package/dist/schemas/nodes/block/index.d.ts.map +0 -1
- package/dist/schemas/nodes/block/index.js +0 -7
- package/dist/schemas/nodes/block/index.js.map +0 -1
- package/dist/schemas/nodes/index.d.ts +0 -9
- package/dist/schemas/nodes/index.d.ts.map +0 -1
- package/dist/schemas/nodes/index.js +0 -12
- package/dist/schemas/nodes/index.js.map +0 -1
- package/dist/schemas/nodes/inline/InlineSchema.d.ts +0 -48
- package/dist/schemas/nodes/inline/InlineSchema.d.ts.map +0 -1
- package/dist/schemas/nodes/inline/InlineSchema.js +0 -436
- package/dist/schemas/nodes/inline/InlineSchema.js.map +0 -1
- package/dist/schemas/nodes/inline/index.d.ts +0 -7
- package/dist/schemas/nodes/inline/index.d.ts.map +0 -1
- package/dist/schemas/nodes/inline/index.js +0 -7
- package/dist/schemas/nodes/inline/index.js.map +0 -1
- package/dist/schemas/nodes/macro/MacroSchema.d.ts +0 -27
- package/dist/schemas/nodes/macro/MacroSchema.d.ts.map +0 -1
- package/dist/schemas/nodes/macro/MacroSchema.js +0 -162
- package/dist/schemas/nodes/macro/MacroSchema.js.map +0 -1
- package/dist/schemas/nodes/macro/index.d.ts +0 -7
- package/dist/schemas/nodes/macro/index.d.ts.map +0 -1
- package/dist/schemas/nodes/macro/index.js +0 -7
- package/dist/schemas/nodes/macro/index.js.map +0 -1
- package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts +0 -24
- package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts.map +0 -1
- package/dist/schemas/preprocessing/ConfluencePreprocessor.js +0 -359
- package/dist/schemas/preprocessing/ConfluencePreprocessor.js.map +0 -1
- package/dist/schemas/preprocessing/index.d.ts +0 -8
- package/dist/schemas/preprocessing/index.d.ts.map +0 -1
- package/dist/schemas/preprocessing/index.js +0 -2
- package/dist/schemas/preprocessing/index.js.map +0 -1
- package/dist/serializers/ConfluenceSerializer.d.ts +0 -30
- package/dist/serializers/ConfluenceSerializer.d.ts.map +0 -1
- package/dist/serializers/ConfluenceSerializer.js +0 -560
- package/dist/serializers/ConfluenceSerializer.js.map +0 -1
- package/dist/serializers/MarkdownSerializer.d.ts +0 -34
- package/dist/serializers/MarkdownSerializer.d.ts.map +0 -1
- package/dist/serializers/MarkdownSerializer.js +0 -395
- package/dist/serializers/MarkdownSerializer.js.map +0 -1
- package/dist/serializers/index.d.ts +0 -8
- package/dist/serializers/index.d.ts.map +0 -1
- package/dist/serializers/index.js +0 -8
- package/dist/serializers/index.js.map +0 -1
- package/src/SchemaConverterError.ts +0 -108
- package/src/ast/BlockNode.ts +0 -469
- package/src/ast/Document.ts +0 -90
- package/src/ast/InlineNode.ts +0 -323
- package/src/ast/MacroNode.ts +0 -245
- package/src/ast/index.ts +0 -83
- package/src/parsers/ConfluenceParser.ts +0 -956
- package/src/parsers/MarkdownParser.ts +0 -1338
- package/src/parsers/index.ts +0 -8
- package/src/schemas/ConfluenceSchema.ts +0 -56
- package/src/schemas/ConversionSchema.ts +0 -318
- package/src/schemas/MarkdownSchema.ts +0 -56
- package/src/schemas/hast/HastFromHtml.ts +0 -153
- package/src/schemas/hast/HastSchema.ts +0 -274
- package/src/schemas/hast/index.ts +0 -35
- package/src/schemas/index.ts +0 -20
- package/src/schemas/mdast/MdastFromMarkdown.ts +0 -118
- package/src/schemas/mdast/MdastSchema.ts +0 -566
- package/src/schemas/mdast/index.ts +0 -59
- package/src/schemas/mdast/mdastToString.ts +0 -102
- package/src/schemas/nodes/block/BlockSchema.ts +0 -773
- package/src/schemas/nodes/block/index.ts +0 -13
- package/src/schemas/nodes/index.ts +0 -20
- package/src/schemas/nodes/inline/InlineSchema.ts +0 -523
- package/src/schemas/nodes/inline/index.ts +0 -14
- package/src/schemas/nodes/macro/MacroSchema.ts +0 -226
- package/src/schemas/nodes/macro/index.ts +0 -6
- package/src/schemas/preprocessing/ConfluencePreprocessor.ts +0 -455
- package/src/schemas/preprocessing/index.ts +0 -8
- package/src/serializers/ConfluenceSerializer.ts +0 -737
- package/src/serializers/MarkdownSerializer.ts +0 -543
- package/src/serializers/index.ts +0 -8
- package/test/ast/BlockNode.test.ts +0 -265
- package/test/ast/Document.test.ts +0 -126
- package/test/ast/InlineNode.test.ts +0 -161
- package/test/fixtures/integration-test.html.fixture +0 -103
- package/test/fixtures/integration-test.md.expected +0 -257
- package/test/parsers/ConfluenceParser.test.ts +0 -452
- package/test/schemas/ConfluencePreprocessor.test.ts +0 -180
- package/test/schemas/ConversionSchema.test.ts +0 -159
- package/test/schemas/HastSchema.test.ts +0 -138
- package/test/schemas/MdastSchema.test.ts +0 -145
- package/test/schemas/nodes/block/BlockSchema.test.ts +0 -173
- package/test/schemas/nodes/inline/InlineSchema.test.ts +0 -198
- package/test/schemas/nodes/macro/MacroSchema.test.ts +0 -142
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSerializer.d.ts","sourceRoot":"","sources":["../../src/serializers/MarkdownSerializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAA;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,eAAO,MAAM,mBAAmB,GAC9B,KAAK,QAAQ,EACb,UAAS,gBAAqB,KAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAmBnC,CAAA"}
|
|
@@ -1,395 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Serializer for AST to Markdown.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
|
-
import * as Effect from "effect/Effect";
|
|
7
|
-
export const serializeToMarkdown = (doc, options = {}) => Effect.gen(function* () {
|
|
8
|
-
const { includeRawSource = true } = options;
|
|
9
|
-
const parts = [];
|
|
10
|
-
for (const node of doc.children) {
|
|
11
|
-
const serialized = yield* serializeDocumentNode(node);
|
|
12
|
-
parts.push(serialized);
|
|
13
|
-
}
|
|
14
|
-
const content = parts.join("\n\n");
|
|
15
|
-
// Embed rawConfluence in comment for 1-to-1 roundtrip preservation
|
|
16
|
-
if (includeRawSource && doc.rawConfluence !== undefined) {
|
|
17
|
-
// Encode entire raw HTML for roundtrip
|
|
18
|
-
const encoded = Buffer.from(doc.rawConfluence, "utf-8").toString("base64");
|
|
19
|
-
return `${content}\n\n<!--cf:raw:${encoded}-->`;
|
|
20
|
-
}
|
|
21
|
-
return content;
|
|
22
|
-
});
|
|
23
|
-
/**
|
|
24
|
-
* Serialize a document node to Markdown.
|
|
25
|
-
*/
|
|
26
|
-
const serializeDocumentNode = (node) => Effect.gen(function* () {
|
|
27
|
-
switch (node._tag) {
|
|
28
|
-
// Block nodes
|
|
29
|
-
case "Heading":
|
|
30
|
-
return yield* serializeHeading(node);
|
|
31
|
-
case "Paragraph":
|
|
32
|
-
return yield* serializeParagraph({
|
|
33
|
-
children: node.children,
|
|
34
|
-
alignment: node.alignment,
|
|
35
|
-
indent: node.indent
|
|
36
|
-
});
|
|
37
|
-
case "CodeBlock":
|
|
38
|
-
return serializeCodeBlock(node);
|
|
39
|
-
case "ThematicBreak":
|
|
40
|
-
return "---";
|
|
41
|
-
case "Image":
|
|
42
|
-
return serializeImage(node);
|
|
43
|
-
case "Table":
|
|
44
|
-
return yield* serializeTable(node);
|
|
45
|
-
case "List":
|
|
46
|
-
return yield* serializeList(node);
|
|
47
|
-
case "BlockQuote":
|
|
48
|
-
return yield* serializeBlockQuote(node);
|
|
49
|
-
case "UnsupportedBlock":
|
|
50
|
-
return node.rawMarkdown || node.rawHtml || "";
|
|
51
|
-
// Macro nodes
|
|
52
|
-
case "InfoPanel":
|
|
53
|
-
return yield* serializeInfoPanel(node);
|
|
54
|
-
case "ExpandMacro":
|
|
55
|
-
return yield* serializeExpandMacro(node);
|
|
56
|
-
case "TocMacro":
|
|
57
|
-
return serializeTocMacro(node);
|
|
58
|
-
case "CodeMacro":
|
|
59
|
-
return serializeCodeMacro(node);
|
|
60
|
-
case "StatusMacro":
|
|
61
|
-
return serializeStatusMacro(node);
|
|
62
|
-
case "TaskList":
|
|
63
|
-
return yield* serializeTaskList(node.children);
|
|
64
|
-
default:
|
|
65
|
-
return "";
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
/**
|
|
69
|
-
* Serialize heading.
|
|
70
|
-
*/
|
|
71
|
-
const serializeHeading = (node) => Effect.gen(function* () {
|
|
72
|
-
const prefix = "#".repeat(node.level);
|
|
73
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
74
|
-
return `${prefix} ${content}`;
|
|
75
|
-
});
|
|
76
|
-
/**
|
|
77
|
-
* Serialize paragraph.
|
|
78
|
-
*/
|
|
79
|
-
const serializeParagraph = (node) => Effect.gen(function* () {
|
|
80
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
81
|
-
// If has alignment or indent, wrap in HTML div for roundtrip
|
|
82
|
-
if (node.alignment || node.indent) {
|
|
83
|
-
const styles = [];
|
|
84
|
-
if (node.alignment)
|
|
85
|
-
styles.push(`text-align: ${node.alignment};`);
|
|
86
|
-
if (node.indent)
|
|
87
|
-
styles.push(`margin-left: ${node.indent}px;`);
|
|
88
|
-
return `<p style="${styles.join(" ")}">${content}</p>`;
|
|
89
|
-
}
|
|
90
|
-
return content;
|
|
91
|
-
});
|
|
92
|
-
/**
|
|
93
|
-
* Serialize code block.
|
|
94
|
-
*/
|
|
95
|
-
const serializeCodeBlock = (node) => {
|
|
96
|
-
const lang = node.language || "";
|
|
97
|
-
return `\`\`\`${lang}\n${node.code}\n\`\`\``;
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* Serialize image (supports both URL and Confluence attachments).
|
|
101
|
-
* Uses comment-encoding for attachments to preserve roundtrip fidelity.
|
|
102
|
-
*/
|
|
103
|
-
const serializeImage = (node) => {
|
|
104
|
-
// If image has attachment or align/width, use comment encoding for roundtrip
|
|
105
|
-
if (node.attachment || node.align || node.width) {
|
|
106
|
-
const parts = [];
|
|
107
|
-
if (node.attachment) {
|
|
108
|
-
parts.push(`f=${encodeURIComponent(node.attachment.filename)}`);
|
|
109
|
-
if (node.attachment.version)
|
|
110
|
-
parts.push(`v=${node.attachment.version}`);
|
|
111
|
-
}
|
|
112
|
-
if (node.src)
|
|
113
|
-
parts.push(`s=${encodeURIComponent(node.src)}`);
|
|
114
|
-
if (node.alt)
|
|
115
|
-
parts.push(`a=${encodeURIComponent(node.alt)}`);
|
|
116
|
-
if (node.title)
|
|
117
|
-
parts.push(`t=${encodeURIComponent(node.title)}`);
|
|
118
|
-
if (node.align)
|
|
119
|
-
parts.push(`al=${node.align}`);
|
|
120
|
-
if (node.width)
|
|
121
|
-
parts.push(`w=${node.width}`);
|
|
122
|
-
return `<!--cf:image:${parts.join("|")}-->`;
|
|
123
|
-
}
|
|
124
|
-
// Simple external image - use markdown syntax
|
|
125
|
-
const alt = node.alt || "";
|
|
126
|
-
const title = node.title ? ` "${node.title}"` : "";
|
|
127
|
-
const src = node.src || "";
|
|
128
|
-
return ``;
|
|
129
|
-
};
|
|
130
|
-
/**
|
|
131
|
-
* Serialize table.
|
|
132
|
-
*/
|
|
133
|
-
const serializeTable = (node) => Effect.gen(function* () {
|
|
134
|
-
const lines = [];
|
|
135
|
-
// Markdown tables require a header divider. When the source had no <thead>,
|
|
136
|
-
// emit a synthetic empty header so the table still renders. A leading
|
|
137
|
-
// <!--cf:synth-thead--> marker discriminates it from a legitimate empty
|
|
138
|
-
// header — MarkdownParser strips the marker and drops only that synthetic row,
|
|
139
|
-
// so a real Confluence <thead> with empty <th>s round-trips intact.
|
|
140
|
-
const columnCount = node.header?.cells.length ?? node.rows[0]?.cells.length ?? 0;
|
|
141
|
-
const synthMarker = "<!--cf:synth-thead-->";
|
|
142
|
-
let prefix = "";
|
|
143
|
-
if (node.header) {
|
|
144
|
-
const headerCells = [];
|
|
145
|
-
for (const cell of node.header.cells) {
|
|
146
|
-
headerCells.push(yield* serializeInlineNodes(cell.children));
|
|
147
|
-
}
|
|
148
|
-
lines.push(`| ${headerCells.join(" | ")} |`);
|
|
149
|
-
lines.push(`| ${headerCells.map(() => "---").join(" | ")} |`);
|
|
150
|
-
}
|
|
151
|
-
else if (columnCount > 0) {
|
|
152
|
-
prefix = `${synthMarker}\n\n`;
|
|
153
|
-
lines.push(`| ${Array(columnCount).fill("").join(" | ")} |`);
|
|
154
|
-
lines.push(`| ${Array(columnCount).fill("---").join(" | ")} |`);
|
|
155
|
-
}
|
|
156
|
-
// Body rows
|
|
157
|
-
for (const row of node.rows) {
|
|
158
|
-
const cells = [];
|
|
159
|
-
for (const cell of row.cells) {
|
|
160
|
-
cells.push(yield* serializeInlineNodes(cell.children));
|
|
161
|
-
}
|
|
162
|
-
lines.push(`| ${cells.join(" | ")} |`);
|
|
163
|
-
}
|
|
164
|
-
return `${prefix}${lines.join("\n")}`;
|
|
165
|
-
});
|
|
166
|
-
/**
|
|
167
|
-
* Serialize list.
|
|
168
|
-
*/
|
|
169
|
-
const serializeList = (node) => Effect.gen(function* () {
|
|
170
|
-
const lines = [];
|
|
171
|
-
let counter = node.start || 1;
|
|
172
|
-
for (const item of node.children) {
|
|
173
|
-
const prefix = node.ordered ? `${counter}.` : "-";
|
|
174
|
-
const checkbox = item.checked !== undefined ? (item.checked ? "[x] " : "[ ] ") : "";
|
|
175
|
-
// Serialize item content
|
|
176
|
-
const itemParts = [];
|
|
177
|
-
for (const child of item.children) {
|
|
178
|
-
const serialized = yield* serializeSimpleBlock(child);
|
|
179
|
-
itemParts.push(serialized);
|
|
180
|
-
}
|
|
181
|
-
const content = itemParts.join("\n");
|
|
182
|
-
const indentedContent = content
|
|
183
|
-
.split("\n")
|
|
184
|
-
.map((line, i) => (i === 0 ? `${prefix} ${checkbox}${line}` : ` ${line}`))
|
|
185
|
-
.join("\n");
|
|
186
|
-
lines.push(indentedContent);
|
|
187
|
-
counter++;
|
|
188
|
-
}
|
|
189
|
-
return lines.join("\n");
|
|
190
|
-
});
|
|
191
|
-
/**
|
|
192
|
-
* Serialize simple block (for nested content).
|
|
193
|
-
*/
|
|
194
|
-
const serializeSimpleBlock = (node) => Effect.gen(function* () {
|
|
195
|
-
switch (node._tag) {
|
|
196
|
-
case "Heading":
|
|
197
|
-
return yield* serializeHeading(node);
|
|
198
|
-
case "Paragraph":
|
|
199
|
-
return yield* serializeParagraph(node);
|
|
200
|
-
case "CodeBlock":
|
|
201
|
-
return serializeCodeBlock(node);
|
|
202
|
-
case "ThematicBreak":
|
|
203
|
-
return "---";
|
|
204
|
-
case "Image":
|
|
205
|
-
return serializeImage(node);
|
|
206
|
-
case "Table":
|
|
207
|
-
return yield* serializeTable(node);
|
|
208
|
-
case "UnsupportedBlock": {
|
|
209
|
-
const unsupported = node;
|
|
210
|
-
return unsupported.rawMarkdown || unsupported.rawHtml || "";
|
|
211
|
-
}
|
|
212
|
-
case "List":
|
|
213
|
-
return yield* serializeList(node);
|
|
214
|
-
default:
|
|
215
|
-
return "";
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
/**
|
|
219
|
-
* Serialize block quote.
|
|
220
|
-
*/
|
|
221
|
-
const serializeBlockQuote = (node) => Effect.gen(function* () {
|
|
222
|
-
const lines = [];
|
|
223
|
-
for (const child of node.children) {
|
|
224
|
-
const serialized = yield* serializeSimpleBlock(child);
|
|
225
|
-
const quoted = serialized.split("\n").map((line) => `> ${line}`).join("\n");
|
|
226
|
-
lines.push(quoted);
|
|
227
|
-
}
|
|
228
|
-
return lines.join("\n>\n");
|
|
229
|
-
});
|
|
230
|
-
/**
|
|
231
|
-
* Serialize info panel to container syntax.
|
|
232
|
-
*/
|
|
233
|
-
const serializeInfoPanel = (node) => Effect.gen(function* () {
|
|
234
|
-
const type = node.panelType;
|
|
235
|
-
const title = node.title ? ` ${node.title}` : "";
|
|
236
|
-
const lines = [`:::${type}${title}`];
|
|
237
|
-
for (const child of node.children) {
|
|
238
|
-
const serialized = yield* serializeSimpleBlock(child);
|
|
239
|
-
lines.push(serialized);
|
|
240
|
-
}
|
|
241
|
-
lines.push(":::");
|
|
242
|
-
return lines.join("\n");
|
|
243
|
-
});
|
|
244
|
-
/**
|
|
245
|
-
* Serialize expand macro as a GFM-compatible <details> block.
|
|
246
|
-
*
|
|
247
|
-
* The opening and closing HTML tags are recognised on round-trip by
|
|
248
|
-
* MarkdownParser to rebuild the ExpandMacro AST node. Body content is rendered
|
|
249
|
-
* as ordinary markdown so it shows up in viewers (Obsidian, GitHub, etc.).
|
|
250
|
-
*/
|
|
251
|
-
const serializeExpandMacro = (node) => Effect.gen(function* () {
|
|
252
|
-
const title = node.title || "";
|
|
253
|
-
const contentParts = [];
|
|
254
|
-
for (const child of node.children) {
|
|
255
|
-
const serialized = yield* serializeSimpleBlock(child);
|
|
256
|
-
contentParts.push(serialized);
|
|
257
|
-
}
|
|
258
|
-
const body = contentParts.join("\n\n");
|
|
259
|
-
const summary = `<summary>${escapeHtml(title)}</summary>`;
|
|
260
|
-
return `<details>\n${summary}\n\n${body}\n\n</details>`;
|
|
261
|
-
});
|
|
262
|
-
const escapeHtml = (s) => s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
263
|
-
/**
|
|
264
|
-
* Serialize TOC macro.
|
|
265
|
-
*/
|
|
266
|
-
const serializeTocMacro = (_node) => {
|
|
267
|
-
return "[[toc]]";
|
|
268
|
-
};
|
|
269
|
-
/**
|
|
270
|
-
* Serialize code macro (similar to code block but may have title).
|
|
271
|
-
*/
|
|
272
|
-
const serializeCodeMacro = (node) => {
|
|
273
|
-
const lang = node.language || "";
|
|
274
|
-
const title = node.title ? ` title="${node.title}"` : "";
|
|
275
|
-
return `\`\`\`${lang}${title}\n${node.code}\n\`\`\``;
|
|
276
|
-
};
|
|
277
|
-
/**
|
|
278
|
-
* Serialize status macro.
|
|
279
|
-
*/
|
|
280
|
-
const serializeStatusMacro = (node) => {
|
|
281
|
-
return `**[${node.text}]**`;
|
|
282
|
-
};
|
|
283
|
-
/**
|
|
284
|
-
* Serialize task list - preserve as comment-encoded for roundtrip (single line).
|
|
285
|
-
*/
|
|
286
|
-
const serializeTaskList = (children) => Effect.gen(function* () {
|
|
287
|
-
const items = [];
|
|
288
|
-
for (const item of children) {
|
|
289
|
-
const body = yield* serializeInlineNodes(item.body);
|
|
290
|
-
// Encode task item - use | separator to avoid : in content issues
|
|
291
|
-
items.push(`${item.id}|${item.uuid}|${item.status}|${encodeURIComponent(body)}`);
|
|
292
|
-
}
|
|
293
|
-
// Single line comment to prevent remark from splitting
|
|
294
|
-
return `<!--cf:tasklist:${items.join(";")}-->`;
|
|
295
|
-
});
|
|
296
|
-
/**
|
|
297
|
-
* Serialize inline nodes to Markdown.
|
|
298
|
-
*/
|
|
299
|
-
const serializeInlineNodes = (nodes) => Effect.gen(function* () {
|
|
300
|
-
const parts = [];
|
|
301
|
-
for (const node of nodes) {
|
|
302
|
-
parts.push(yield* serializeInlineNode(node));
|
|
303
|
-
}
|
|
304
|
-
return parts.join("");
|
|
305
|
-
});
|
|
306
|
-
/**
|
|
307
|
-
* Serialize inline node to Markdown.
|
|
308
|
-
*/
|
|
309
|
-
const serializeInlineNode = (node) => Effect.gen(function* () {
|
|
310
|
-
switch (node._tag) {
|
|
311
|
-
case "Text":
|
|
312
|
-
return node.value;
|
|
313
|
-
case "Strong": {
|
|
314
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
315
|
-
return `**${content}**`;
|
|
316
|
-
}
|
|
317
|
-
case "Emphasis": {
|
|
318
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
319
|
-
return `*${content}*`;
|
|
320
|
-
}
|
|
321
|
-
case "Underline": {
|
|
322
|
-
// No native markdown support, use HTML
|
|
323
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
324
|
-
return `<u>${content}</u>`;
|
|
325
|
-
}
|
|
326
|
-
case "Strikethrough": {
|
|
327
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
328
|
-
return `~~${content}~~`;
|
|
329
|
-
}
|
|
330
|
-
case "Subscript": {
|
|
331
|
-
// No native markdown support, use HTML
|
|
332
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
333
|
-
return `<sub>${content}</sub>`;
|
|
334
|
-
}
|
|
335
|
-
case "Superscript": {
|
|
336
|
-
// No native markdown support, use HTML
|
|
337
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
338
|
-
return `<sup>${content}</sup>`;
|
|
339
|
-
}
|
|
340
|
-
case "InlineCode":
|
|
341
|
-
return `\`${node.value}\``;
|
|
342
|
-
case "Link": {
|
|
343
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
344
|
-
const title = node.title ? ` "${node.title}"` : "";
|
|
345
|
-
return `[${content}](${node.href}${title})`;
|
|
346
|
-
}
|
|
347
|
-
case "LineBreak":
|
|
348
|
-
return " \n";
|
|
349
|
-
case "Emoticon":
|
|
350
|
-
// Wrap in HTML comment with URL-encoded values
|
|
351
|
-
return `<!--cf:emoticon:${encodeURIComponent(node.shortname)}|${encodeURIComponent(node.emojiId)}|${encodeURIComponent(node.fallback)}-->`;
|
|
352
|
-
case "UserMention":
|
|
353
|
-
// Render as a markdown link so the mention is visible in viewers.
|
|
354
|
-
// The #cf-user: URL fragment is the round-trip carrier — MarkdownParser
|
|
355
|
-
// rebuilds the UserMention node when it sees a link with that prefix.
|
|
356
|
-
return `[@${node.accountId}](#cf-user:${encodeURIComponent(node.accountId)})`;
|
|
357
|
-
case "DateTime":
|
|
358
|
-
// Wrap in HTML comment to prevent remark from parsing
|
|
359
|
-
return `<!--cf:date:${node.datetime}-->`;
|
|
360
|
-
case "ColoredText": {
|
|
361
|
-
// Preserve as HTML for roundtrip
|
|
362
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
363
|
-
return `<span style="color: ${node.color};">${content}</span>`;
|
|
364
|
-
}
|
|
365
|
-
case "Highlight": {
|
|
366
|
-
// Preserve as HTML for roundtrip
|
|
367
|
-
const content = yield* serializeInlineNodes(node.children);
|
|
368
|
-
return `<span style="background-color: ${node.backgroundColor};">${content}</span>`;
|
|
369
|
-
}
|
|
370
|
-
case "UnsupportedInline": {
|
|
371
|
-
// Some inline macros are stored as UnsupportedInline carrying a comment-
|
|
372
|
-
// encoded round-trip marker. Rewrite the round-trippable ones as visible
|
|
373
|
-
// markdown links so they show up in viewers; MarkdownParser reverses this.
|
|
374
|
-
// The raw payload is already URL-encoded (ConfluenceParser uses
|
|
375
|
-
// encodeURIComponent), so we decode the title for human-readable link
|
|
376
|
-
// text and pass the encoded value through to the URL fragment as-is.
|
|
377
|
-
const statusMatch = node.raw.match(/^<!--cf:status:([^;]*);([^;]*)-->$/);
|
|
378
|
-
if (statusMatch) {
|
|
379
|
-
const text = decodeURIComponent(statusMatch[1] ?? "");
|
|
380
|
-
const color = statusMatch[2] ?? "";
|
|
381
|
-
return `[${text}](#cf-status:${color})`;
|
|
382
|
-
}
|
|
383
|
-
const tocMatch = node.raw.match(/^<!--cf:toc:([^;]*);([^;]*)-->$/);
|
|
384
|
-
if (tocMatch) {
|
|
385
|
-
const min = tocMatch[1] ?? "";
|
|
386
|
-
const max = tocMatch[2] ?? "";
|
|
387
|
-
return `[Table of Contents](#cf-toc:${min}:${max})`;
|
|
388
|
-
}
|
|
389
|
-
return node.raw;
|
|
390
|
-
}
|
|
391
|
-
default:
|
|
392
|
-
return "";
|
|
393
|
-
}
|
|
394
|
-
});
|
|
395
|
-
//# sourceMappingURL=MarkdownSerializer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSerializer.js","sourceRoot":"","sources":["../../src/serializers/MarkdownSerializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serializers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error types for schema-based conversion.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
|
-
import * as Data from "effect/Data"
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Error thrown when parsing HTML or Markdown fails.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import { Effect } from "effect"
|
|
14
|
-
* import { ParseError } from "@knpkv/confluence-to-markdown/SchemaConverterError"
|
|
15
|
-
*
|
|
16
|
-
* Effect.gen(function* () {
|
|
17
|
-
* // ... parsing operation
|
|
18
|
-
* }).pipe(
|
|
19
|
-
* Effect.catchTag("ParseError", (error) =>
|
|
20
|
-
* Effect.sync(() => console.error(`Parse error: ${error.message}`))
|
|
21
|
-
* )
|
|
22
|
-
* )
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @category Errors
|
|
26
|
-
*/
|
|
27
|
-
export class ParseError extends Data.TaggedError("ParseError")<{
|
|
28
|
-
readonly source: "confluence" | "markdown"
|
|
29
|
-
readonly message: string
|
|
30
|
-
readonly position?: { readonly line: number; readonly column: number }
|
|
31
|
-
readonly rawContent?: string
|
|
32
|
-
}> {}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Error thrown when serializing AST to HTML or Markdown fails.
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```typescript
|
|
39
|
-
* import { Effect } from "effect"
|
|
40
|
-
* import { SerializeError } from "@knpkv/confluence-to-markdown/SchemaConverterError"
|
|
41
|
-
*
|
|
42
|
-
* Effect.gen(function* () {
|
|
43
|
-
* // ... serialization operation
|
|
44
|
-
* }).pipe(
|
|
45
|
-
* Effect.catchTag("SerializeError", (error) =>
|
|
46
|
-
* Effect.sync(() => console.error(`Serialize error: ${error.message}`))
|
|
47
|
-
* )
|
|
48
|
-
* )
|
|
49
|
-
* ```
|
|
50
|
-
*
|
|
51
|
-
* @category Errors
|
|
52
|
-
*/
|
|
53
|
-
export class SerializeError extends Data.TaggedError("SerializeError")<{
|
|
54
|
-
readonly target: "confluence" | "markdown"
|
|
55
|
-
readonly nodeType: string
|
|
56
|
-
readonly message: string
|
|
57
|
-
}> {}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Error thrown when migrating between schema versions fails.
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* ```typescript
|
|
64
|
-
* import { Effect } from "effect"
|
|
65
|
-
* import { MigrationError } from "@knpkv/confluence-to-markdown/SchemaConverterError"
|
|
66
|
-
*
|
|
67
|
-
* Effect.gen(function* () {
|
|
68
|
-
* // ... migration operation
|
|
69
|
-
* }).pipe(
|
|
70
|
-
* Effect.catchTag("MigrationError", (error) =>
|
|
71
|
-
* Effect.sync(() =>
|
|
72
|
-
* console.error(`Migration error: ${error.nodeType} v${error.fromVersion} -> v${error.toVersion}`)
|
|
73
|
-
* )
|
|
74
|
-
* )
|
|
75
|
-
* )
|
|
76
|
-
* ```
|
|
77
|
-
*
|
|
78
|
-
* @category Errors
|
|
79
|
-
*/
|
|
80
|
-
export class MigrationError extends Data.TaggedError("MigrationError")<{
|
|
81
|
-
readonly nodeType: string
|
|
82
|
-
readonly fromVersion: number
|
|
83
|
-
readonly toVersion: number
|
|
84
|
-
readonly message: string
|
|
85
|
-
}> {}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Union of all schema converter errors.
|
|
89
|
-
*
|
|
90
|
-
* @category Errors
|
|
91
|
-
*/
|
|
92
|
-
export type SchemaConverterError = ParseError | SerializeError | MigrationError
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Type guard to check if error is a SchemaConverterError.
|
|
96
|
-
*
|
|
97
|
-
* @param error - The error to check
|
|
98
|
-
* @returns True if error is a SchemaConverterError
|
|
99
|
-
*
|
|
100
|
-
* @category Utilities
|
|
101
|
-
*/
|
|
102
|
-
export const isSchemaConverterError = (error: unknown): error is SchemaConverterError =>
|
|
103
|
-
typeof error === "object" &&
|
|
104
|
-
error !== null &&
|
|
105
|
-
"_tag" in error &&
|
|
106
|
-
["ParseError", "SerializeError", "MigrationError"].includes(
|
|
107
|
-
(error as { _tag: string })._tag
|
|
108
|
-
)
|