@jagadeesh52423/atlassian-mcp-server 1.1.1 → 1.2.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.
Files changed (151) hide show
  1. package/.env.example +6 -1
  2. package/README.md +26 -14
  3. package/dist/config.d.ts +2 -1
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +7 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/constants.d.ts +0 -4
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/constants.js +0 -5
  10. package/dist/constants.js.map +1 -1
  11. package/dist/formatters/adf-formatter.d.ts +35 -4
  12. package/dist/formatters/adf-formatter.d.ts.map +1 -1
  13. package/dist/formatters/adf-formatter.js +691 -156
  14. package/dist/formatters/adf-formatter.js.map +1 -1
  15. package/dist/formatters/adf-to-text.d.ts +9 -0
  16. package/dist/formatters/adf-to-text.d.ts.map +1 -0
  17. package/dist/formatters/adf-to-text.js +25 -0
  18. package/dist/formatters/adf-to-text.js.map +1 -0
  19. package/dist/formatters/index.d.ts +7 -1
  20. package/dist/formatters/index.d.ts.map +1 -1
  21. package/dist/formatters/index.js +7 -1
  22. package/dist/formatters/index.js.map +1 -1
  23. package/dist/formatters/markdown-to-adf.d.ts +6 -0
  24. package/dist/formatters/markdown-to-adf.d.ts.map +1 -0
  25. package/dist/formatters/markdown-to-adf.js +27 -0
  26. package/dist/formatters/markdown-to-adf.js.map +1 -0
  27. package/dist/handlers/base-handler.d.ts +5 -0
  28. package/dist/handlers/base-handler.d.ts.map +1 -0
  29. package/dist/handlers/base-handler.js +7 -0
  30. package/dist/handlers/base-handler.js.map +1 -0
  31. package/dist/handlers/bitbucket-handlers.d.ts +9 -1
  32. package/dist/handlers/bitbucket-handlers.d.ts.map +1 -1
  33. package/dist/handlers/bitbucket-handlers.js +51 -191
  34. package/dist/handlers/bitbucket-handlers.js.map +1 -1
  35. package/dist/handlers/confluence-handlers.d.ts +2 -1
  36. package/dist/handlers/confluence-handlers.d.ts.map +1 -1
  37. package/dist/handlers/confluence-handlers.js +46 -243
  38. package/dist/handlers/confluence-handlers.js.map +1 -1
  39. package/dist/handlers/jira-handlers.d.ts +9 -1
  40. package/dist/handlers/jira-handlers.d.ts.map +1 -1
  41. package/dist/handlers/jira-handlers.js +144 -575
  42. package/dist/handlers/jira-handlers.js.map +1 -1
  43. package/dist/index.js +123 -194
  44. package/dist/index.js.map +1 -1
  45. package/dist/registry/tool-registry.d.ts +11 -0
  46. package/dist/registry/tool-registry.d.ts.map +1 -0
  47. package/dist/registry/tool-registry.js +24 -0
  48. package/dist/registry/tool-registry.js.map +1 -0
  49. package/dist/services/bitbucket.d.ts +7 -0
  50. package/dist/services/bitbucket.d.ts.map +1 -1
  51. package/dist/services/bitbucket.js +36 -74
  52. package/dist/services/bitbucket.js.map +1 -1
  53. package/dist/services/confluence.d.ts +52 -10
  54. package/dist/services/confluence.d.ts.map +1 -1
  55. package/dist/services/confluence.js +247 -311
  56. package/dist/services/confluence.js.map +1 -1
  57. package/dist/services/jira/agile.d.ts +33 -0
  58. package/dist/services/jira/agile.d.ts.map +1 -0
  59. package/dist/services/jira/agile.js +118 -0
  60. package/dist/services/jira/agile.js.map +1 -0
  61. package/dist/services/jira/attachments.d.ts +7 -0
  62. package/dist/services/jira/attachments.d.ts.map +1 -0
  63. package/dist/services/jira/attachments.js +26 -0
  64. package/dist/services/jira/attachments.js.map +1 -0
  65. package/dist/services/jira/base.d.ts +8 -0
  66. package/dist/services/jira/base.d.ts.map +1 -0
  67. package/dist/services/jira/base.js +10 -0
  68. package/dist/services/jira/base.js.map +1 -0
  69. package/dist/services/jira/comments.d.ts +8 -0
  70. package/dist/services/jira/comments.d.ts.map +1 -0
  71. package/dist/services/jira/comments.js +33 -0
  72. package/dist/services/jira/comments.js.map +1 -0
  73. package/dist/services/jira/issues.d.ts +32 -0
  74. package/dist/services/jira/issues.d.ts.map +1 -0
  75. package/dist/services/jira/issues.js +177 -0
  76. package/dist/services/jira/issues.js.map +1 -0
  77. package/dist/services/jira/labels.d.ts +7 -0
  78. package/dist/services/jira/labels.d.ts.map +1 -0
  79. package/dist/services/jira/labels.js +21 -0
  80. package/dist/services/jira/labels.js.map +1 -0
  81. package/dist/services/jira/links.d.ts +9 -0
  82. package/dist/services/jira/links.d.ts.map +1 -0
  83. package/dist/services/jira/links.js +55 -0
  84. package/dist/services/jira/links.js.map +1 -0
  85. package/dist/services/jira/metadata.d.ts +8 -0
  86. package/dist/services/jira/metadata.d.ts.map +1 -0
  87. package/dist/services/jira/metadata.js +32 -0
  88. package/dist/services/jira/metadata.js.map +1 -0
  89. package/dist/services/jira/subtasks.d.ts +9 -0
  90. package/dist/services/jira/subtasks.d.ts.map +1 -0
  91. package/dist/services/jira/subtasks.js +32 -0
  92. package/dist/services/jira/subtasks.js.map +1 -0
  93. package/dist/services/jira/transitions.d.ts +16 -0
  94. package/dist/services/jira/transitions.d.ts.map +1 -0
  95. package/dist/services/jira/transitions.js +203 -0
  96. package/dist/services/jira/transitions.js.map +1 -0
  97. package/dist/services/jira/versions.d.ts +19 -0
  98. package/dist/services/jira/versions.d.ts.map +1 -0
  99. package/dist/services/jira/versions.js +62 -0
  100. package/dist/services/jira/versions.js.map +1 -0
  101. package/dist/services/jira/watchers.d.ts +7 -0
  102. package/dist/services/jira/watchers.d.ts.map +1 -0
  103. package/dist/services/jira/watchers.js +23 -0
  104. package/dist/services/jira/watchers.js.map +1 -0
  105. package/dist/services/jira/worklogs.d.ts +8 -0
  106. package/dist/services/jira/worklogs.d.ts.map +1 -0
  107. package/dist/services/jira/worklogs.js +37 -0
  108. package/dist/services/jira/worklogs.js.map +1 -0
  109. package/dist/services/jira.d.ts +58 -103
  110. package/dist/services/jira.d.ts.map +1 -1
  111. package/dist/services/jira.js +100 -1481
  112. package/dist/services/jira.js.map +1 -1
  113. package/dist/snapshot/decorators/bitbucket-snapshots.d.ts +4 -0
  114. package/dist/snapshot/decorators/bitbucket-snapshots.d.ts.map +1 -0
  115. package/dist/snapshot/decorators/bitbucket-snapshots.js +65 -0
  116. package/dist/snapshot/decorators/bitbucket-snapshots.js.map +1 -0
  117. package/dist/snapshot/decorators/confluence-snapshots.d.ts +4 -0
  118. package/dist/snapshot/decorators/confluence-snapshots.d.ts.map +1 -0
  119. package/dist/snapshot/decorators/confluence-snapshots.js +71 -0
  120. package/dist/snapshot/decorators/confluence-snapshots.js.map +1 -0
  121. package/dist/snapshot/decorators/jira-snapshots.d.ts +4 -0
  122. package/dist/snapshot/decorators/jira-snapshots.d.ts.map +1 -0
  123. package/dist/snapshot/decorators/jira-snapshots.js +171 -0
  124. package/dist/snapshot/decorators/jira-snapshots.js.map +1 -0
  125. package/dist/snapshot/index.d.ts +7 -0
  126. package/dist/snapshot/index.d.ts.map +1 -0
  127. package/dist/snapshot/index.js +7 -0
  128. package/dist/snapshot/index.js.map +1 -0
  129. package/dist/snapshot/snapshot-decorator.d.ts +4 -0
  130. package/dist/snapshot/snapshot-decorator.d.ts.map +1 -0
  131. package/dist/snapshot/snapshot-decorator.js +74 -0
  132. package/dist/snapshot/snapshot-decorator.js.map +1 -0
  133. package/dist/snapshot/snapshot-manager.d.ts +9 -0
  134. package/dist/snapshot/snapshot-manager.d.ts.map +1 -0
  135. package/dist/snapshot/snapshot-manager.js +56 -0
  136. package/dist/snapshot/snapshot-manager.js.map +1 -0
  137. package/dist/snapshot/snapshot-types.d.ts +26 -0
  138. package/dist/snapshot/snapshot-types.d.ts.map +1 -0
  139. package/dist/snapshot/snapshot-types.js +2 -0
  140. package/dist/snapshot/snapshot-types.js.map +1 -0
  141. package/dist/tools/bitbucket-tools.d.ts.map +1 -1
  142. package/dist/tools/bitbucket-tools.js +30 -0
  143. package/dist/tools/bitbucket-tools.js.map +1 -1
  144. package/dist/tools/confluence-tools.js +12 -12
  145. package/dist/tools/confluence-tools.js.map +1 -1
  146. package/dist/tools/jira-tools.d.ts.map +1 -1
  147. package/dist/tools/jira-tools.js +35 -3
  148. package/dist/tools/jira-tools.js.map +1 -1
  149. package/dist/types.d.ts +17 -2
  150. package/dist/types.d.ts.map +1 -1
  151. package/package.json +6 -2
package/.env.example CHANGED
@@ -23,4 +23,9 @@ ATLASSIAN_DOMAIN=your-domain.atlassian.net
23
23
  ATLASSIAN_EMAIL=your-email@example.com
24
24
  ATLASSIAN_API_TOKEN=your-fallback-api-token
25
25
  ATLASSIAN_CLIENT_ID=your-client-id
26
- ATLASSIAN_CLIENT_SECRET=your-client-secret
26
+ ATLASSIAN_CLIENT_SECRET=your-client-secret
27
+
28
+ # Snapshot Safety Net
29
+ MCP_SNAPSHOTS_ENABLED=true
30
+ MCP_SNAPSHOT_DIR=~/.atlassian-mcp-snapshots
31
+ MCP_SNAPSHOT_RETENTION_DAYS=30
package/README.md CHANGED
@@ -5,6 +5,17 @@
5
5
 
6
6
  A comprehensive Model Context Protocol (MCP) server that provides AI assistants with access to Atlassian APIs including Jira, Confluence, and Bitbucket. **84 tools** across 3 services — the most complete Atlassian MCP server available.
7
7
 
8
+ ## Confluence content format (v1.2.0+)
9
+
10
+ Confluence input/output uses **ADF (Atlassian Document Format)**, not storage HTML or wiki markup:
11
+
12
+ - **Input** — `confluence_create_page`, `confluence_update_page`, `confluence_add_comment`, `confluence_update_comment` accept **Markdown**. The server converts it to ADF using the official `@atlaskit/editor-markdown-transformer` and submits via the Confluence v2 API.
13
+ - **Output** — `confluence_get_page`, `confluence_get_pages_by_space`, `confluence_get_comments` return the body as a parsed **ADF JSON** document (an object, not a string). `ConfluencePage.content` and `ConfluenceComment.body` are typed `any` to reflect the JSON shape.
14
+ - **CQL search** — `confluence_search_pages` still uses the **v1** REST endpoint (`/wiki/rest/api/search`) because v2 has no CQL equivalent. The `content` field on search hits is opaque legacy storage HTML; fetch the page by id with `confluence_get_page` for the ADF body.
15
+ - **Image embedding** — inline image embedding (`confluence_embed_image`, and `confluence_create_page` with `images: [...]`) is **not supported in v1.2.0** because ADF media nodes require Atlassian Media API tokens. Calling either path returns an explicit error. Use `confluence_add_attachment` to upload files and reference them from the Confluence UI.
16
+
17
+ This is a breaking change from v1.1.x, which returned Confluence storage-format HTML strings. See "Phase 4 cleanup" in `docs/superpowers/specs/2026-05-08-adf-formatter-replacement-design.md`.
18
+
8
19
  ## Feature Comparison
9
20
 
10
21
  How we stack up against the official Atlassian MCP server and the popular sooperset/mcp-atlassian:
@@ -20,11 +31,13 @@ How we stack up against the official Atlassian MCP server and the popular sooper
20
31
  | Get/Add comments | YES | YES | YES |
21
32
  | **Update/Delete comment** | **YES** | NO | NO |
22
33
  | Get/Add/Delete attachments | YES | NO | YES |
23
- | **Embed image (with positioning)** | **YES** | NO | NO |
24
- | **Create page with inline images** | **YES** | NO | NO |
34
+ | Embed image (with positioning) | NO¹ | NO | NO |
35
+ | Create page with inline images | NO¹ | NO | NO |
25
36
  | Get/Add/Remove labels | YES | NO | Partial |
26
37
  | **Page version history** | YES | NO | YES |
27
38
 
39
+ ¹ Removed in v1.2.0 alongside the Confluence v2 / ADF migration. ADF media nodes need the Atlassian Media API; reinstating inline embedding is tracked as future work. Use `confluence_add_attachment` to upload files.
40
+
28
41
  ### Jira
29
42
 
30
43
  | Feature | Ours | Official Atlassian | sooperset |
@@ -62,8 +75,8 @@ How we stack up against the official Atlassian MCP server and the popular sooper
62
75
  - **Only MCP server covering all 3 Atlassian products** — Confluence + Jira + Bitbucket
63
76
  - **Deepest CRUD coverage** — update/delete on comments, worklogs, labels where competitors only do create/read
64
77
  - **Smart Field Handling** — AI-driven field suggestions during Jira transitions, unique to this server
65
- - **Image embedding** — Confluence image embedding with positioning control, unique to this server
66
78
  - **84 total tools** vs ~45 (Official) and ~58 (sooperset)
79
+ - **ADF / Confluence v2 native** — pages and comments are stored and returned as ADF, the format Confluence Cloud uses internally; markdown input is converted via the official `@atlaskit/editor-markdown-transformer`
67
80
 
68
81
  ## Features
69
82
 
@@ -74,10 +87,9 @@ How we stack up against the official Atlassian MCP server and the popular sooper
74
87
  - **Child Pages**: Get child pages of a parent page
75
88
  - **Page History**: View version history of a page
76
89
  - **Attachments**: Add, list, and delete attachments
77
- - **Comments**: Full CRUD operations on page comments
90
+ - **Comments**: Full CRUD operations on page footer comments
78
91
  - **Labels**: Get, add, and remove labels on pages
79
- - **Images**: Embed images in page content with positioning control
80
- - Full support for Confluence storage format
92
+ - **ADF / v2 API**: input is markdown (converted to ADF via official @atlaskit transformers); output is ADF JSON. CQL search stays on v1.
81
93
 
82
94
  ### Jira Integration (48 tools)
83
95
  - Search issues by text, filters, or JQL query
@@ -291,10 +303,10 @@ Add the following to your Claude Desktop configuration file:
291
303
 
292
304
  | Tool | Description |
293
305
  |------|-------------|
294
- | `confluence_search_pages` | Search pages by text query |
295
- | `confluence_get_page` | Get specific page by ID |
296
- | `confluence_create_page` | Create new page with content and optional inline images |
297
- | `confluence_update_page` | Update existing page |
306
+ | `confluence_search_pages` | Search pages by CQL text query (legacy v1; result `content` is opaque storage HTML) |
307
+ | `confluence_get_page` | Get specific page by ID — returns ADF JSON `content` |
308
+ | `confluence_create_page` | Create new page (markdown → ADF). Inline image embedding not supported in v1.2.0. |
309
+ | `confluence_update_page` | Update existing page (markdown → ADF) |
298
310
  | `confluence_delete_page` | Delete a page |
299
311
  | `confluence_get_spaces` | List all spaces |
300
312
  | `confluence_get_pages_by_space` | Get pages from specific space |
@@ -303,10 +315,10 @@ Add the following to your Claude Desktop configuration file:
303
315
  | `confluence_get_attachments` | List attachments on a page |
304
316
  | `confluence_add_attachment` | Add attachment to a page |
305
317
  | `confluence_delete_attachment` | Delete attachment from a page |
306
- | `confluence_embed_image` | Embed image in page content with positioning |
307
- | `confluence_get_comments` | Get comments on a page |
308
- | `confluence_add_comment` | Add comment to a page |
309
- | `confluence_update_comment` | Update existing comment |
318
+ | `confluence_embed_image` | NOT SUPPORTED in v1.2.0 — returns an error. Use `confluence_add_attachment`. |
319
+ | `confluence_get_comments` | Get footer comments on a page — returns ADF JSON `body` |
320
+ | `confluence_add_comment` | Add footer comment (markdown → ADF) |
321
+ | `confluence_update_comment` | Update existing footer comment (markdown → ADF) |
310
322
  | `confluence_delete_comment` | Delete comment from a page |
311
323
  | `confluence_get_labels` | Get labels on a page |
312
324
  | `confluence_add_labels` | Add labels to a page |
package/dist/config.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import { ConfluenceConfig, JiraConfig, AtlassianConfig, BitbucketConfig } from './types.js';
1
+ import { ConfluenceConfig, JiraConfig, AtlassianConfig, BitbucketConfig, SnapshotConfig } from './types.js';
2
2
  export declare const confluenceConfig: ConfluenceConfig;
3
3
  export declare const jiraConfig: JiraConfig;
4
4
  export declare const atlassianConfig: AtlassianConfig;
5
5
  export declare const bitbucketConfig: BitbucketConfig;
6
+ export declare const snapshotConfig: SnapshotConfig;
6
7
  export declare function validateConfig(): void;
7
8
  export declare function getConfluenceAuth(): string;
8
9
  export declare function getJiraAuth(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI5F,eAAO,MAAM,gBAAgB,EAAE,gBAI9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAMxB,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAI7B,CAAC;AAEF,wBAAgB,cAAc,IAAI,IAAI,CAmBrC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAGD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5G,eAAO,MAAM,gBAAgB,EAAE,gBAI9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAMxB,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAI7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAI5B,CAAC;AAEF,wBAAgB,cAAc,IAAI,IAAI,CAmBrC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAGD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
package/dist/config.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import dotenv from 'dotenv';
2
+ import * as os from 'os';
3
+ import * as path from 'path';
2
4
  dotenv.config();
3
5
  export const confluenceConfig = {
4
6
  domain: process.env.CONFLUENCE_DOMAIN || process.env.ATLASSIAN_DOMAIN || '',
@@ -25,6 +27,11 @@ export const bitbucketConfig = {
25
27
  username: process.env.BITBUCKET_USERNAME || '',
26
28
  apiToken: process.env.BITBUCKET_API_TOKEN || '',
27
29
  };
30
+ export const snapshotConfig = {
31
+ enabled: process.env.MCP_SNAPSHOTS_ENABLED !== 'false',
32
+ dir: process.env.MCP_SNAPSHOT_DIR || path.join(os.homedir(), '.atlassian-mcp-snapshots'),
33
+ retentionDays: parseInt(process.env.MCP_SNAPSHOT_RETENTION_DAYS || '30', 10),
34
+ };
28
35
  export function validateConfig() {
29
36
  const errors = [];
30
37
  // Check if we have at least one service configured
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -30,10 +30,6 @@ export declare const API_ENDPOINTS: {
30
30
  readonly JIRA_ATTACHMENT: "/rest/api/3/attachment";
31
31
  readonly BITBUCKET_BASE_URL: "https://api.bitbucket.org/2.0";
32
32
  };
33
- export declare const CONFLUENCE_EXPAND: {
34
- readonly PAGE_DEFAULT: readonly ["body.storage", "version", "space"];
35
- readonly COMMENT_DEFAULT: readonly ["body.storage", "version", "history"];
36
- };
37
33
  export declare const JIRA_FIELDS: {
38
34
  readonly SEARCH_FIELDS: "summary,description,status,assignee,created,updated";
39
35
  readonly ISSUE_FIELDS: readonly ["summary", "description", "status", "assignee", "created", "updated"];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAGX,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;;;;;;;;CAiBhB,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAGX,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAGX,eAAO,MAAM,cAAc;;oCAEF,MAAM;kCACR,MAAM;CACnB,CAAC;AAGX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;CAcR,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAGX,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;;;;;;;;CAiBhB,CAAC;AAGX,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAGX,eAAO,MAAM,cAAc;;oCAEF,MAAM;kCACR,MAAM;CACnB,CAAC;AAGX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;CAcR,CAAC"}
package/dist/constants.js CHANGED
@@ -36,11 +36,6 @@ export const API_ENDPOINTS = {
36
36
  // Bitbucket
37
37
  BITBUCKET_BASE_URL: 'https://api.bitbucket.org/2.0',
38
38
  };
39
- // Confluence expand options
40
- export const CONFLUENCE_EXPAND = {
41
- PAGE_DEFAULT: ['body.storage', 'version', 'space'],
42
- COMMENT_DEFAULT: ['body.storage', 'version', 'history'],
43
- };
44
39
  // Jira field defaults
45
40
  export const JIRA_FIELDS = {
46
41
  SEARCH_FIELDS: 'summary,description,status,assignee,created,updated',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sBAAsB;AACtB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,wBAAwB,EAAE,EAAE;IAC5B,kBAAkB,EAAE,EAAE;IACtB,uBAAuB,EAAE,EAAE;IAC3B,iBAAiB,EAAE,EAAE;CACb,CAAC;AAEX,iBAAiB;AACjB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,MAAM;IACvB,gBAAgB,EAAE,MAAM;IACxB,oBAAoB,EAAE,KAAK;IAC3B,wBAAwB,EAAE,OAAO;IACjC,kBAAkB,EAAE,MAAM;IAC1B,qBAAqB,EAAE,MAAM;CACrB,CAAC;AAEX,gBAAgB;AAChB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,aAAa;IACb,kBAAkB,EAAE,wBAAwB;IAC5C,yBAAyB,EAAE,+BAA+B;IAC1D,gBAAgB,EAAE,sBAAsB;IAExC,OAAO;IACP,WAAW,EAAE,wBAAwB;IACrC,UAAU,EAAE,mBAAmB;IAC/B,YAAY,EAAE,qBAAqB;IACnC,gBAAgB,EAAE,yBAAyB;IAC3C,eAAe,EAAE,uBAAuB;IACxC,oBAAoB,EAAE,2BAA2B;IACjD,eAAe,EAAE,wBAAwB;IAEzC,YAAY;IACZ,kBAAkB,EAAE,+BAA+B;CAC3C,CAAC;AAEX,4BAA4B;AAC5B,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,YAAY,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD,eAAe,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC;CAC/C,CAAC;AAEX,sBAAsB;AACtB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa,EAAE,qDAAqD;IACpE,YAAY,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;CAC5E,CAAC;AAEX,4BAA4B;AAC5B,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;CACd,CAAC;AAEX,iBAAiB;AACjB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,kBAAkB,EAAE,iDAAiD;IACrE,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,mBAAmB,IAAI,EAAE;IAC3D,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,iBAAiB,IAAI,EAAE;CAC/C,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;CACN,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sBAAsB;AACtB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,wBAAwB,EAAE,EAAE;IAC5B,kBAAkB,EAAE,EAAE;IACtB,uBAAuB,EAAE,EAAE;IAC3B,iBAAiB,EAAE,EAAE;CACb,CAAC;AAEX,iBAAiB;AACjB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,MAAM;IACvB,gBAAgB,EAAE,MAAM;IACxB,oBAAoB,EAAE,KAAK;IAC3B,wBAAwB,EAAE,OAAO;IACjC,kBAAkB,EAAE,MAAM;IAC1B,qBAAqB,EAAE,MAAM;CACrB,CAAC;AAEX,gBAAgB;AAChB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,aAAa;IACb,kBAAkB,EAAE,wBAAwB;IAC5C,yBAAyB,EAAE,+BAA+B;IAC1D,gBAAgB,EAAE,sBAAsB;IAExC,OAAO;IACP,WAAW,EAAE,wBAAwB;IACrC,UAAU,EAAE,mBAAmB;IAC/B,YAAY,EAAE,qBAAqB;IACnC,gBAAgB,EAAE,yBAAyB;IAC3C,eAAe,EAAE,uBAAuB;IACxC,oBAAoB,EAAE,2BAA2B;IACjD,eAAe,EAAE,wBAAwB;IAEzC,YAAY;IACZ,kBAAkB,EAAE,+BAA+B;CAC3C,CAAC;AAEX,sBAAsB;AACtB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa,EAAE,qDAAqD;IACpE,YAAY,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;CAC5E,CAAC;AAEX,4BAA4B;AAC5B,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;CACd,CAAC;AAEX,iBAAiB;AACjB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,kBAAkB,EAAE,iDAAiD;IACrE,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,mBAAmB,IAAI,EAAE;IAC3D,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,iBAAiB,IAAI,EAAE;CAC/C,CAAC;AAEX,wCAAwC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;CACN,CAAC"}
@@ -3,23 +3,54 @@
3
3
  * Handles conversion between plain text/markdown and ADF format used by Jira API v3
4
4
  */
5
5
  /**
6
- * Extracts plain text from ADF (Atlassian Document Format) body
6
+ * Extracts plain text from ADF (Atlassian Document Format) body.
7
+ * Follows sooperset's recursive '\n'-joining approach.
7
8
  */
8
9
  export declare function extractTextFromADF(body: any): string;
9
10
  /**
10
- * Formats wiki markup to cleaner text
11
+ * Formats wiki markup to cleaner markdown text.
12
+ *
13
+ * Handles (in order):
14
+ * - {code} / {noformat} blocks → fenced code (extracted as placeholders first
15
+ * so their contents are never touched by later transforms)
16
+ * - Wiki tables ||h|| → markdown tables (pre-pass)
17
+ * - {quote} → > blockquote
18
+ * - {note}/{warning}/{info}/{tip}→ labelled blockquote
19
+ * - [text|url] / [~user] / [url] → markdown links / @mention / bare URL
20
+ * - \\ → newline
21
+ * - # item / ## item → 1. / nested ordered list (wiki list syntax)
22
+ * - h1. … h6. → # … ###### (must come AFTER list conversion)
23
+ * - ---- / {panel} / {color} / checkboxes (existing)
11
24
  */
12
25
  export declare function formatWikiMarkup(text: string): string;
13
26
  /**
14
27
  * Parses inline formatting like **bold**, *italic*, `code`, {{code}}
28
+ * When wikiMode is true, single *text* is treated as bold (wiki convention).
29
+ * Also handles [text|url] wiki links and [text](url) markdown links.
15
30
  */
16
- export declare function parseInlineFormatting(text: string): any[];
31
+ export declare function parseInlineFormatting(text: string, wikiMode?: boolean): any[];
17
32
  /**
18
- * Enhanced description parser that converts text to proper ADF format
33
+ * Enhanced description parser that converts text to proper ADF format.
34
+ * Auto-detects wiki markup vs markdown and adjusts parsing accordingly.
19
35
  */
20
36
  export declare function parseDescriptionToADF(description: string): any;
21
37
  /**
22
38
  * Convert description to wiki markup text format
23
39
  */
24
40
  export declare function parseDescriptionToWikiMarkup(description: string): string;
41
+ /**
42
+ * Converts LLM-produced markdown to Confluence storage format (XHTML).
43
+ * If the input already looks like storage format it is returned unchanged.
44
+ *
45
+ * Supported elements:
46
+ * - ATX headings (#–######)
47
+ * - Fenced code blocks (``` lang … ```) → ac:structured-macro "code"
48
+ * - Blockquotes (> …)
49
+ * - Unordered lists (- / * / +)
50
+ * - Ordered lists (1. …)
51
+ * - Markdown tables
52
+ * - Horizontal rules (---, ***, ___)
53
+ * - Inline: **bold**, *italic*, ~~strike~~, `code`, [text](url)
54
+ */
55
+ export declare function markdownToConfluenceStorage(markdown: string): string;
25
56
  //# sourceMappingURL=adf-formatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adf-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/adf-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAqGpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBrD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,EAAE,CAmHzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAgT9D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6FxE"}
1
+ {"version":3,"file":"adf-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/adf-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyLH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAKpD;AAqDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqErD;AAqBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,GAAG,EAAE,CAwKpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CA0Y9D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6HxE;AA0DD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA2HpE"}