@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
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import * as FileSystem from "@effect/platform/FileSystem";
|
|
7
|
-
import * as Path from "@effect/platform/Path";
|
|
8
6
|
import * as Context from "effect/Context";
|
|
9
7
|
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as FileSystem from "effect/FileSystem";
|
|
10
9
|
import * as Layer from "effect/Layer";
|
|
10
|
+
import * as Path from "effect/Path";
|
|
11
11
|
import type { ContentHash } from "./Brand.js";
|
|
12
12
|
import type { FrontMatterError } from "./ConfluenceError.js";
|
|
13
13
|
import { FileSystemError } from "./ConfluenceError.js";
|
|
@@ -35,7 +35,7 @@ export interface PageTreeNode {
|
|
|
35
35
|
/** Child pages */
|
|
36
36
|
readonly children: ReadonlyArray<PageTreeNode>;
|
|
37
37
|
}
|
|
38
|
-
declare const LocalFileSystem_base: Context.
|
|
38
|
+
declare const LocalFileSystem_base: Context.ServiceClass<LocalFileSystem, "@knpkv/confluence-to-markdown/LocalFileSystem", {
|
|
39
39
|
/**
|
|
40
40
|
* Read a markdown file with front-matter.
|
|
41
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalFileSystem.d.ts","sourceRoot":"","sources":["../src/LocalFileSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"LocalFileSystem.d.ts","sourceRoot":"","sources":["../src/LocalFileSystem.ts"],"names":[],"mappings":"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"}
|
package/dist/LocalFileSystem.js
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import * as FileSystem from "@effect/platform/FileSystem";
|
|
7
|
-
import * as Path from "@effect/platform/Path";
|
|
8
6
|
import * as Context from "effect/Context";
|
|
9
7
|
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as FileSystem from "effect/FileSystem";
|
|
10
9
|
import * as Layer from "effect/Layer";
|
|
10
|
+
import * as Path from "effect/Path";
|
|
11
11
|
import { FileSystemError } from "./ConfluenceError.js";
|
|
12
12
|
import { parseMarkdown, serializeMarkdown, serializeNewPageMarkdown } from "./internal/frontmatter.js";
|
|
13
13
|
import { computeHash, HashServiceLive } from "./internal/hashUtils.js";
|
|
@@ -29,7 +29,7 @@ import { pageToDir, pageToPath } from "./internal/pathUtils.js";
|
|
|
29
29
|
*
|
|
30
30
|
* @category FileSystem
|
|
31
31
|
*/
|
|
32
|
-
export class LocalFileSystem extends Context.
|
|
32
|
+
export class LocalFileSystem extends Context.Service()("@knpkv/confluence-to-markdown/LocalFileSystem") {
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Layer that provides LocalFileSystem.
|
|
@@ -55,7 +55,7 @@ export const layer = Layer.effect(LocalFileSystem, Effect.gen(function* () {
|
|
|
55
55
|
});
|
|
56
56
|
const writeMarkdownFile = (filePath, frontMatter, content) => Effect.gen(function* () {
|
|
57
57
|
const dir = pathService.dirname(filePath);
|
|
58
|
-
yield* fs.makeDirectory(dir, { recursive: true }).pipe(Effect.
|
|
58
|
+
yield* fs.makeDirectory(dir, { recursive: true }).pipe(Effect.mapError((cause) => new FileSystemError({ operation: "mkdir", path: dir, cause })));
|
|
59
59
|
const serialized = serializeMarkdown(frontMatter, content);
|
|
60
60
|
// Atomic write: write to temp file, then rename
|
|
61
61
|
const tempPath = `${filePath}.tmp.${Date.now()}`;
|
|
@@ -89,7 +89,7 @@ export const layer = Layer.effect(LocalFileSystem, Effect.gen(function* () {
|
|
|
89
89
|
const exists = (filePath) => fs.exists(filePath).pipe(Effect.mapError((cause) => new FileSystemError({ operation: "read", path: filePath, cause })));
|
|
90
90
|
const writeFile = (filePath, content) => Effect.gen(function* () {
|
|
91
91
|
const dir = pathService.dirname(filePath);
|
|
92
|
-
yield* fs.makeDirectory(dir, { recursive: true }).pipe(Effect.
|
|
92
|
+
yield* fs.makeDirectory(dir, { recursive: true }).pipe(Effect.mapError((cause) => new FileSystemError({ operation: "mkdir", path: dir, cause })));
|
|
93
93
|
// Atomic write: write to temp file, then rename
|
|
94
94
|
const tempPath = `${filePath}.tmp.${Date.now()}`;
|
|
95
95
|
yield* fs.writeFileString(tempPath, content).pipe(Effect.mapError((cause) => new FileSystemError({ operation: "write", path: filePath, cause })));
|
|
@@ -100,7 +100,7 @@ export const layer = Layer.effect(LocalFileSystem, Effect.gen(function* () {
|
|
|
100
100
|
const getPageDir = (title, parentPath) => pageToDir(title, parentPath).pipe(Effect.provide(Layer.succeed(Path.Path, pathService)));
|
|
101
101
|
const writeNewPageFile = (filePath, frontMatter, content) => Effect.gen(function* () {
|
|
102
102
|
const dir = pathService.dirname(filePath);
|
|
103
|
-
yield* fs.makeDirectory(dir, { recursive: true }).pipe(Effect.
|
|
103
|
+
yield* fs.makeDirectory(dir, { recursive: true }).pipe(Effect.mapError((cause) => new FileSystemError({ operation: "mkdir", path: dir, cause })));
|
|
104
104
|
const serialized = serializeNewPageMarkdown(frontMatter, content);
|
|
105
105
|
// Atomic write: write to temp file, then rename
|
|
106
106
|
const tempPath = `${filePath}.tmp.${Date.now()}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalFileSystem.js","sourceRoot":"","sources":["../src/LocalFileSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"LocalFileSystem.js","sourceRoot":"","sources":["../src/LocalFileSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +1,27 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HTML to Markdown conversion service using AST-based approach.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
1
|
import * as Context from "effect/Context";
|
|
7
2
|
import * as Effect from "effect/Effect";
|
|
8
3
|
import * as Layer from "effect/Layer";
|
|
9
|
-
import
|
|
4
|
+
import { AdfSchemaValidator } from "./AdfSchemaValidator.js";
|
|
5
|
+
import { AtlaskitTransformers } from "./AtlaskitTransformers.js";
|
|
10
6
|
import { ConversionError } from "./ConfluenceError.js";
|
|
11
|
-
|
|
12
|
-
import { type SerializeOptions } from "./serializers/MarkdownSerializer.js";
|
|
13
|
-
declare const MarkdownConverter_base: Context.TagClass<MarkdownConverter, "@knpkv/confluence-to-markdown/MarkdownConverter", {
|
|
14
|
-
/**
|
|
15
|
-
* Convert Confluence storage format (HTML) to GitHub Flavored Markdown.
|
|
16
|
-
*/
|
|
17
|
-
readonly htmlToMarkdown: (html: string, options?: SerializeOptions) => Effect.Effect<string, ConversionError>;
|
|
18
|
-
/**
|
|
19
|
-
* Convert GitHub Flavored Markdown to HTML (Confluence storage format).
|
|
20
|
-
*/
|
|
21
|
-
readonly markdownToHtml: (markdown: string) => Effect.Effect<string, ConversionError>;
|
|
7
|
+
declare const MarkdownConverter_base: Context.ServiceClass<MarkdownConverter, "@knpkv/confluence-to-markdown/MarkdownConverter", {
|
|
22
8
|
/**
|
|
23
|
-
*
|
|
9
|
+
* Convert an ADF JSON document (as wire-format string) to GitHub Flavored
|
|
10
|
+
* Markdown. Checks against the canonical @atlaskit/adf-schema before
|
|
11
|
+
* walking; violations are logged as warnings (remote drift), and only a
|
|
12
|
+
* document too malformed to walk at all fails with ConversionError.
|
|
24
13
|
*/
|
|
25
|
-
readonly
|
|
14
|
+
readonly adfToMarkdown: (adfJson: string) => Effect.Effect<string, ConversionError>;
|
|
26
15
|
/**
|
|
27
|
-
*
|
|
16
|
+
* Convert GitHub Flavored Markdown to a JSON-stringified ADF document.
|
|
17
|
+
* Routes through the official @atlaskit transformers; validates the
|
|
18
|
+
* produced ADF against the canonical schema before stringification.
|
|
28
19
|
*/
|
|
29
|
-
readonly
|
|
30
|
-
/**
|
|
31
|
-
* Serialize Document AST to Confluence HTML.
|
|
32
|
-
*/
|
|
33
|
-
readonly astToHtml: (doc: Document) => Effect.Effect<string, SerializeError>;
|
|
34
|
-
/**
|
|
35
|
-
* Serialize Document AST to Markdown.
|
|
36
|
-
*/
|
|
37
|
-
readonly astToMarkdown: (doc: Document) => Effect.Effect<string, SerializeError>;
|
|
20
|
+
readonly markdownToAdf: (markdown: string) => Effect.Effect<string, ConversionError>;
|
|
38
21
|
}>;
|
|
39
22
|
/**
|
|
40
|
-
* Markdown conversion service
|
|
23
|
+
* Markdown conversion service. Public surface is two delegating methods —
|
|
24
|
+
* `adfToMarkdown` (pull) and `markdownToAdf` (push).
|
|
41
25
|
*
|
|
42
26
|
* @example
|
|
43
27
|
* ```typescript
|
|
@@ -46,13 +30,8 @@ declare const MarkdownConverter_base: Context.TagClass<MarkdownConverter, "@knpk
|
|
|
46
30
|
*
|
|
47
31
|
* const program = Effect.gen(function* () {
|
|
48
32
|
* const converter = yield* MarkdownConverter
|
|
49
|
-
* const md = yield* converter.
|
|
50
|
-
* console.log(md) // # Hello\n\nWorld
|
|
33
|
+
* const md = yield* converter.adfToMarkdown(adfJson)
|
|
51
34
|
* })
|
|
52
|
-
*
|
|
53
|
-
* Effect.runPromise(
|
|
54
|
-
* program.pipe(Effect.provide(MarkdownConverter.layer))
|
|
55
|
-
* )
|
|
56
35
|
* ```
|
|
57
36
|
*
|
|
58
37
|
* @category Conversion
|
|
@@ -64,34 +43,6 @@ export declare class MarkdownConverter extends MarkdownConverter_base {
|
|
|
64
43
|
*
|
|
65
44
|
* @category Layers
|
|
66
45
|
*/
|
|
67
|
-
export declare const layer: Layer.Layer<MarkdownConverter>;
|
|
68
|
-
/**
|
|
69
|
-
* Schema-based layer for MarkdownConverter using Effect Schema transforms.
|
|
70
|
-
*
|
|
71
|
-
* This is an alternative implementation that uses the new Schema-based
|
|
72
|
-
* conversion pipeline. It provides the same API as the default layer.
|
|
73
|
-
*
|
|
74
|
-
* Note: For full fidelity, continue to use the default layer. This schema-based
|
|
75
|
-
* layer is useful for simpler use cases or when you want to leverage Schema
|
|
76
|
-
* composition.
|
|
77
|
-
*
|
|
78
|
-
* @example
|
|
79
|
-
* ```typescript
|
|
80
|
-
* import { MarkdownConverter, schemaBasedLayer } from "@knpkv/confluence-to-markdown/MarkdownConverter"
|
|
81
|
-
* import { Effect } from "effect"
|
|
82
|
-
*
|
|
83
|
-
* const program = Effect.gen(function* () {
|
|
84
|
-
* const converter = yield* MarkdownConverter
|
|
85
|
-
* const md = yield* converter.htmlToMarkdown("<h1>Hello</h1>")
|
|
86
|
-
* })
|
|
87
|
-
*
|
|
88
|
-
* Effect.runPromise(
|
|
89
|
-
* program.pipe(Effect.provide(schemaBasedLayer))
|
|
90
|
-
* )
|
|
91
|
-
* ```
|
|
92
|
-
*
|
|
93
|
-
* @category Layers
|
|
94
|
-
*/
|
|
95
|
-
export declare const schemaBasedLayer: Layer.Layer<MarkdownConverter>;
|
|
46
|
+
export declare const layer: Layer.Layer<MarkdownConverter, never, AtlaskitTransformers | AdfSchemaValidator>;
|
|
96
47
|
export {};
|
|
97
48
|
//# sourceMappingURL=MarkdownConverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownConverter.d.ts","sourceRoot":"","sources":["../src/MarkdownConverter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MarkdownConverter.d.ts","sourceRoot":"","sources":["../src/MarkdownConverter.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;IAsBlD;;;;;OAKG;4BACqB,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAEnF;;;;OAIG;4BACqB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;;AAjCxF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAkB,SAAQ,sBAkBe;CAAG;AA8BzD;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,iBAAiB,EACjB,KAAK,EACL,oBAAoB,GAAG,kBAAkB,CA0D1C,CAAA"}
|
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HTML to Markdown conversion service using AST-based approach.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
1
|
import * as Context from "effect/Context";
|
|
7
2
|
import * as Effect from "effect/Effect";
|
|
8
3
|
import * as Layer from "effect/Layer";
|
|
9
4
|
import * as Schema from "effect/Schema";
|
|
5
|
+
import { revertPlaceholders } from "./AdfPlaceholders.js";
|
|
6
|
+
import { AdfSchemaValidator } from "./AdfSchemaValidator.js";
|
|
7
|
+
import { walk } from "./AdfWalker.js";
|
|
8
|
+
import { AtlaskitTransformers } from "./AtlaskitTransformers.js";
|
|
10
9
|
import { ConversionError } from "./ConfluenceError.js";
|
|
11
|
-
import { parseConfluenceHtml } from "./parsers/ConfluenceParser.js";
|
|
12
|
-
import { parseMarkdown } from "./parsers/MarkdownParser.js";
|
|
13
|
-
import { ParseError } from "./SchemaConverterError.js";
|
|
14
|
-
import { ConfluenceToMarkdown, DocumentFromHast, DocumentFromMdast } from "./schemas/ConversionSchema.js";
|
|
15
|
-
import { HastFromHtml } from "./schemas/hast/index.js";
|
|
16
|
-
import { MdastFromMarkdown } from "./schemas/mdast/index.js";
|
|
17
|
-
import { PreprocessedHtmlFromConfluence } from "./schemas/preprocessing/index.js";
|
|
18
|
-
import { serializeToConfluence } from "./serializers/ConfluenceSerializer.js";
|
|
19
|
-
import { serializeToMarkdown } from "./serializers/MarkdownSerializer.js";
|
|
20
10
|
/**
|
|
21
|
-
* Markdown conversion service
|
|
11
|
+
* Markdown conversion service. Public surface is two delegating methods —
|
|
12
|
+
* `adfToMarkdown` (pull) and `markdownToAdf` (push).
|
|
22
13
|
*
|
|
23
14
|
* @example
|
|
24
15
|
* ```typescript
|
|
@@ -27,87 +18,75 @@ import { serializeToMarkdown } from "./serializers/MarkdownSerializer.js";
|
|
|
27
18
|
*
|
|
28
19
|
* const program = Effect.gen(function* () {
|
|
29
20
|
* const converter = yield* MarkdownConverter
|
|
30
|
-
* const md = yield* converter.
|
|
31
|
-
* console.log(md) // # Hello\n\nWorld
|
|
21
|
+
* const md = yield* converter.adfToMarkdown(adfJson)
|
|
32
22
|
* })
|
|
33
|
-
*
|
|
34
|
-
* Effect.runPromise(
|
|
35
|
-
* program.pipe(Effect.provide(MarkdownConverter.layer))
|
|
36
|
-
* )
|
|
37
23
|
* ```
|
|
38
24
|
*
|
|
39
25
|
* @category Conversion
|
|
40
26
|
*/
|
|
41
|
-
export class MarkdownConverter extends Context.
|
|
27
|
+
export class MarkdownConverter extends Context.Service()("@knpkv/confluence-to-markdown/MarkdownConverter") {
|
|
42
28
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
29
|
+
const warningSummary = (w) => {
|
|
30
|
+
switch (w._tag) {
|
|
31
|
+
case "UnsupportedNode":
|
|
32
|
+
return `${w._tag} ${w.nodeType}`;
|
|
33
|
+
case "LossyMark":
|
|
34
|
+
return `${w._tag} ${w.mark}`;
|
|
35
|
+
case "MediaWithoutUrl":
|
|
36
|
+
return `${w._tag} ${w.mediaId}`;
|
|
37
|
+
case "UnsupportedExtension":
|
|
38
|
+
return `${w._tag} ${w.nodeType} ${w.extensionKey || "?"}`;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const toConversionError = (direction) => (cause) => new ConversionError({ direction, cause });
|
|
42
|
+
// The least structure the walker needs: a doc node with a content array.
|
|
43
|
+
// Anything failing this isn't "schema drift", it's not an ADF document —
|
|
44
|
+
// advisory validation must not let it through (walking `null` is a defect;
|
|
45
|
+
// walking `{}` silently produces an empty page).
|
|
46
|
+
const isWalkableDoc = Schema.is(Schema.Struct({
|
|
47
|
+
type: Schema.Literal("doc"),
|
|
48
|
+
content: Schema.Array(Schema.Unknown)
|
|
63
49
|
}));
|
|
64
50
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* This is an alternative implementation that uses the new Schema-based
|
|
68
|
-
* conversion pipeline. It provides the same API as the default layer.
|
|
69
|
-
*
|
|
70
|
-
* Note: For full fidelity, continue to use the default layer. This schema-based
|
|
71
|
-
* layer is useful for simpler use cases or when you want to leverage Schema
|
|
72
|
-
* composition.
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* ```typescript
|
|
76
|
-
* import { MarkdownConverter, schemaBasedLayer } from "@knpkv/confluence-to-markdown/MarkdownConverter"
|
|
77
|
-
* import { Effect } from "effect"
|
|
78
|
-
*
|
|
79
|
-
* const program = Effect.gen(function* () {
|
|
80
|
-
* const converter = yield* MarkdownConverter
|
|
81
|
-
* const md = yield* converter.htmlToMarkdown("<h1>Hello</h1>")
|
|
82
|
-
* })
|
|
83
|
-
*
|
|
84
|
-
* Effect.runPromise(
|
|
85
|
-
* program.pipe(Effect.provide(schemaBasedLayer))
|
|
86
|
-
* )
|
|
87
|
-
* ```
|
|
51
|
+
* Layer that provides the MarkdownConverter service.
|
|
88
52
|
*
|
|
89
53
|
* @category Layers
|
|
90
54
|
*/
|
|
91
|
-
export const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
55
|
+
export const layer = Layer.effect(MarkdownConverter, Effect.gen(function* () {
|
|
56
|
+
const transformers = yield* AtlaskitTransformers;
|
|
57
|
+
const validator = yield* AdfSchemaValidator;
|
|
58
|
+
const adfToMarkdown = (adfJson) => Effect.gen(function* () {
|
|
59
|
+
const raw = yield* Effect.try({
|
|
60
|
+
try: () => JSON.parse(adfJson),
|
|
61
|
+
catch: (cause) => new ConversionError({ direction: "adfToMarkdown", cause })
|
|
62
|
+
});
|
|
63
|
+
// Incoming validation is advisory: the canonical @atlaskit schema is
|
|
64
|
+
// routinely stricter than what Confluence Cloud actually emits (old
|
|
65
|
+
// revisions, experimental nodes), so a failure here usually means
|
|
66
|
+
// "schema drift", not "broken document". Log + continue. Outgoing
|
|
67
|
+
// validation stays strict because we control that side.
|
|
68
|
+
const doc = yield* validator.check(raw, "incoming").pipe(Effect.catchTag("AdfSchemaError", (err) => isWalkableDoc(raw)
|
|
69
|
+
? Effect.gen(function* () {
|
|
70
|
+
yield* Effect.logWarning(`adf schema (incoming): ${err.issues.length} issue(s); first: ${err.issues.slice(0, 3).map((i) => `${i.instancePath ?? "?"} ${i.keyword ?? "?"} ${i.message ?? ""}`.trim()).join(" | ")}`);
|
|
71
|
+
return raw;
|
|
72
|
+
})
|
|
73
|
+
: Effect.fail(toConversionError("adfToMarkdown")(err))));
|
|
74
|
+
const { markdown, warnings } = walk(doc);
|
|
75
|
+
for (const w of warnings) {
|
|
76
|
+
yield* Effect.logWarning(`adf walker: ${warningSummary(w)}`, w);
|
|
96
77
|
}
|
|
97
|
-
return
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const
|
|
107
|
-
return
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
astToHtml: (doc) => serializeToConfluence(doc),
|
|
111
|
-
astToMarkdown: (doc) => serializeToMarkdown(doc)
|
|
78
|
+
return markdown;
|
|
79
|
+
});
|
|
80
|
+
const markdownToAdf = (markdown) => Effect.gen(function* () {
|
|
81
|
+
const adf = yield* transformers.use(({ json, md }) => json.encode(md.parse(markdown))).pipe(Effect.mapError(toConversionError("markdownToAdf")));
|
|
82
|
+
// The walker emits HTML/comment placeholders for Confluence-only nodes
|
|
83
|
+
// (status, extension). @atlaskit's markdown transformer doesn't know
|
|
84
|
+
// these, so they come through as plain text. Rewrite them back into
|
|
85
|
+
// the structured nodes Confluence expects before validation.
|
|
86
|
+
const reverted = revertPlaceholders(adf);
|
|
87
|
+
const validated = yield* validator.check(reverted, "outgoing").pipe(Effect.mapError(toConversionError("markdownToAdf")));
|
|
88
|
+
return JSON.stringify(validated);
|
|
89
|
+
});
|
|
90
|
+
return MarkdownConverter.of({ adfToMarkdown, markdownToAdf });
|
|
112
91
|
}));
|
|
113
92
|
//# sourceMappingURL=MarkdownConverter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownConverter.js","sourceRoot":"","sources":["../src/MarkdownConverter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MarkdownConverter.js","sourceRoot":"","sources":["../src/MarkdownConverter.ts"],"names":[],"mappings":"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"}
|