@crypto512/jicon-mcp 2.2.1 → 2.3.19

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 (228) hide show
  1. package/PROMPT.md +10 -28
  2. package/README.md +39 -6
  3. package/TOOL_LIST.md +542 -407
  4. package/dist/config/constants.d.ts +28 -0
  5. package/dist/config/constants.d.ts.map +1 -1
  6. package/dist/config/constants.js +34 -0
  7. package/dist/config/constants.js.map +1 -1
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +12 -2
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +49 -6
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +18 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/confluence/client.d.ts.map +1 -1
  16. package/dist/confluence/client.js +7 -2
  17. package/dist/confluence/client.js.map +1 -1
  18. package/dist/confluence/formatters.d.ts +20 -0
  19. package/dist/confluence/formatters.d.ts.map +1 -1
  20. package/dist/confluence/formatters.js +74 -8
  21. package/dist/confluence/formatters.js.map +1 -1
  22. package/dist/confluence/tools.d.ts +16 -20
  23. package/dist/confluence/tools.d.ts.map +1 -1
  24. package/dist/confluence/tools.js +71 -68
  25. package/dist/confluence/tools.js.map +1 -1
  26. package/dist/credentials/extractor.d.ts +15 -5
  27. package/dist/credentials/extractor.d.ts.map +1 -1
  28. package/dist/credentials/extractor.js +99 -12
  29. package/dist/credentials/extractor.js.map +1 -1
  30. package/dist/credentials/index.d.ts +4 -3
  31. package/dist/credentials/index.d.ts.map +1 -1
  32. package/dist/credentials/index.js +3 -2
  33. package/dist/credentials/index.js.map +1 -1
  34. package/dist/credentials/types.d.ts +22 -0
  35. package/dist/credentials/types.d.ts.map +1 -1
  36. package/dist/credentials/types.js.map +1 -1
  37. package/dist/index.js +211 -176
  38. package/dist/index.js.map +1 -1
  39. package/dist/jira/activity-tools.d.ts +8 -15
  40. package/dist/jira/activity-tools.d.ts.map +1 -1
  41. package/dist/jira/activity-tools.js +131 -90
  42. package/dist/jira/activity-tools.js.map +1 -1
  43. package/dist/jira/client.d.ts +24 -0
  44. package/dist/jira/client.d.ts.map +1 -1
  45. package/dist/jira/client.js +65 -6
  46. package/dist/jira/client.js.map +1 -1
  47. package/dist/jira/formatters.d.ts +61 -0
  48. package/dist/jira/formatters.d.ts.map +1 -1
  49. package/dist/jira/formatters.js +83 -11
  50. package/dist/jira/formatters.js.map +1 -1
  51. package/dist/jira/tools.d.ts +78 -26
  52. package/dist/jira/tools.d.ts.map +1 -1
  53. package/dist/jira/tools.js +293 -130
  54. package/dist/jira/tools.js.map +1 -1
  55. package/dist/permissions/filter.d.ts.map +1 -1
  56. package/dist/permissions/filter.js +8 -4
  57. package/dist/permissions/filter.js.map +1 -1
  58. package/dist/permissions/tool-registry.d.ts +15 -13
  59. package/dist/permissions/tool-registry.d.ts.map +1 -1
  60. package/dist/permissions/tool-registry.js +19 -10
  61. package/dist/permissions/tool-registry.js.map +1 -1
  62. package/dist/session/context.d.ts +81 -0
  63. package/dist/session/context.d.ts.map +1 -0
  64. package/dist/session/context.js +107 -0
  65. package/dist/session/context.js.map +1 -0
  66. package/dist/session/index.d.ts +12 -0
  67. package/dist/session/index.d.ts.map +1 -0
  68. package/dist/session/index.js +22 -0
  69. package/dist/session/index.js.map +1 -0
  70. package/dist/session/manager.d.ts +186 -0
  71. package/dist/session/manager.d.ts.map +1 -0
  72. package/dist/session/manager.js +383 -0
  73. package/dist/session/manager.js.map +1 -0
  74. package/dist/tempo/client.d.ts +14 -0
  75. package/dist/tempo/client.d.ts.map +1 -1
  76. package/dist/tempo/client.js +57 -0
  77. package/dist/tempo/client.js.map +1 -1
  78. package/dist/tempo/formatters.d.ts +13 -0
  79. package/dist/tempo/formatters.d.ts.map +1 -1
  80. package/dist/tempo/formatters.js +106 -20
  81. package/dist/tempo/formatters.js.map +1 -1
  82. package/dist/tempo/tools.d.ts +14 -13
  83. package/dist/tempo/tools.d.ts.map +1 -1
  84. package/dist/tempo/tools.js +203 -33
  85. package/dist/tempo/tools.js.map +1 -1
  86. package/dist/tempo/types.d.ts +20 -6
  87. package/dist/tempo/types.d.ts.map +1 -1
  88. package/dist/transport/http.d.ts +21 -5
  89. package/dist/transport/http.d.ts.map +1 -1
  90. package/dist/transport/http.js +193 -22
  91. package/dist/transport/http.js.map +1 -1
  92. package/dist/transport/index.d.ts +7 -2
  93. package/dist/transport/index.d.ts.map +1 -1
  94. package/dist/transport/index.js +10 -4
  95. package/dist/transport/index.js.map +1 -1
  96. package/dist/utils/buffer-tools.d.ts +48 -724
  97. package/dist/utils/buffer-tools.d.ts.map +1 -1
  98. package/dist/utils/buffer-tools.js +337 -170
  99. package/dist/utils/buffer-tools.js.map +1 -1
  100. package/dist/utils/content-buffer.d.ts +10 -31
  101. package/dist/utils/content-buffer.d.ts.map +1 -1
  102. package/dist/utils/content-buffer.js +12 -86
  103. package/dist/utils/content-buffer.js.map +1 -1
  104. package/dist/utils/http-client.d.ts.map +1 -1
  105. package/dist/utils/http-client.js +99 -2
  106. package/dist/utils/http-client.js.map +1 -1
  107. package/dist/utils/jicon-help.d.ts +3 -3
  108. package/dist/utils/jicon-help.d.ts.map +1 -1
  109. package/dist/utils/jicon-help.js +164 -312
  110. package/dist/utils/jicon-help.js.map +1 -1
  111. package/dist/utils/logger.d.ts +43 -0
  112. package/dist/utils/logger.d.ts.map +1 -0
  113. package/dist/utils/logger.js +102 -0
  114. package/dist/utils/logger.js.map +1 -0
  115. package/dist/utils/plantuml/tools.d.ts.map +1 -1
  116. package/dist/utils/plantuml/tools.js +10 -9
  117. package/dist/utils/plantuml/tools.js.map +1 -1
  118. package/dist/utils/response-formatter.d.ts +20 -2
  119. package/dist/utils/response-formatter.d.ts.map +1 -1
  120. package/dist/utils/response-formatter.js +147 -17
  121. package/dist/utils/response-formatter.js.map +1 -1
  122. package/dist/utils/sandbox/formatters.d.ts +25 -0
  123. package/dist/utils/sandbox/formatters.d.ts.map +1 -0
  124. package/dist/utils/sandbox/formatters.js +690 -0
  125. package/dist/utils/sandbox/formatters.js.map +1 -0
  126. package/dist/utils/sandbox/helpers.d.ts +16 -0
  127. package/dist/utils/sandbox/helpers.d.ts.map +1 -0
  128. package/dist/utils/sandbox/helpers.js +252 -0
  129. package/dist/utils/sandbox/helpers.js.map +1 -0
  130. package/dist/utils/sandbox/index.d.ts +19 -0
  131. package/dist/utils/sandbox/index.d.ts.map +1 -0
  132. package/dist/utils/sandbox/index.js +269 -0
  133. package/dist/utils/sandbox/index.js.map +1 -0
  134. package/dist/utils/sandbox/schema.d.ts +55 -0
  135. package/dist/utils/sandbox/schema.d.ts.map +1 -0
  136. package/dist/utils/sandbox/schema.js +39 -0
  137. package/dist/utils/sandbox/schema.js.map +1 -0
  138. package/dist/utils/sandbox/types.d.ts +179 -0
  139. package/dist/utils/sandbox/types.d.ts.map +1 -0
  140. package/dist/utils/sandbox/types.js +8 -0
  141. package/dist/utils/sandbox/types.js.map +1 -0
  142. package/dist/utils/schemas/confluence.d.ts +41 -0
  143. package/dist/utils/schemas/confluence.d.ts.map +1 -0
  144. package/dist/utils/schemas/confluence.js +105 -0
  145. package/dist/utils/schemas/confluence.js.map +1 -0
  146. package/dist/utils/schemas/index.d.ts +77 -0
  147. package/dist/utils/schemas/index.d.ts.map +1 -0
  148. package/dist/utils/schemas/index.js +107 -0
  149. package/dist/utils/schemas/index.js.map +1 -0
  150. package/dist/utils/schemas/jira.d.ts +49 -0
  151. package/dist/utils/schemas/jira.d.ts.map +1 -0
  152. package/dist/utils/schemas/jira.js +153 -0
  153. package/dist/utils/schemas/jira.js.map +1 -0
  154. package/dist/utils/schemas/tempo.d.ts +29 -0
  155. package/dist/utils/schemas/tempo.d.ts.map +1 -0
  156. package/dist/utils/schemas/tempo.js +72 -0
  157. package/dist/utils/schemas/tempo.js.map +1 -0
  158. package/dist/utils/whoami-tools.d.ts +17 -0
  159. package/dist/utils/whoami-tools.d.ts.map +1 -0
  160. package/dist/utils/whoami-tools.js +90 -0
  161. package/dist/utils/whoami-tools.js.map +1 -0
  162. package/dist/utils/xhtml/error-locator.js +5 -5
  163. package/dist/utils/xhtml/error-locator.js.map +1 -1
  164. package/package.json +10 -9
  165. package/dist/credentials/client-factory.d.ts +0 -64
  166. package/dist/credentials/client-factory.d.ts.map +0 -1
  167. package/dist/credentials/client-factory.js +0 -110
  168. package/dist/credentials/client-factory.js.map +0 -1
  169. package/dist/credentials/context.d.ts +0 -25
  170. package/dist/credentials/context.d.ts.map +0 -1
  171. package/dist/credentials/context.js +0 -35
  172. package/dist/credentials/context.js.map +0 -1
  173. package/dist/utils/buffer-pipeline/index.d.ts +0 -30
  174. package/dist/utils/buffer-pipeline/index.d.ts.map +0 -1
  175. package/dist/utils/buffer-pipeline/index.js +0 -317
  176. package/dist/utils/buffer-pipeline/index.js.map +0 -1
  177. package/dist/utils/buffer-pipeline/output/csv.d.ts +0 -20
  178. package/dist/utils/buffer-pipeline/output/csv.d.ts.map +0 -1
  179. package/dist/utils/buffer-pipeline/output/csv.js +0 -117
  180. package/dist/utils/buffer-pipeline/output/csv.js.map +0 -1
  181. package/dist/utils/buffer-pipeline/output/json.d.ts +0 -16
  182. package/dist/utils/buffer-pipeline/output/json.d.ts.map +0 -1
  183. package/dist/utils/buffer-pipeline/output/json.js +0 -48
  184. package/dist/utils/buffer-pipeline/output/json.js.map +0 -1
  185. package/dist/utils/buffer-pipeline/output/markdown.d.ts +0 -15
  186. package/dist/utils/buffer-pipeline/output/markdown.d.ts.map +0 -1
  187. package/dist/utils/buffer-pipeline/output/markdown.js +0 -105
  188. package/dist/utils/buffer-pipeline/output/markdown.js.map +0 -1
  189. package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts +0 -16
  190. package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts.map +0 -1
  191. package/dist/utils/buffer-pipeline/output/xhtml-list.js +0 -81
  192. package/dist/utils/buffer-pipeline/output/xhtml-list.js.map +0 -1
  193. package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts +0 -15
  194. package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts.map +0 -1
  195. package/dist/utils/buffer-pipeline/output/xhtml-table.js +0 -176
  196. package/dist/utils/buffer-pipeline/output/xhtml-table.js.map +0 -1
  197. package/dist/utils/buffer-pipeline/schema.d.ts +0 -1878
  198. package/dist/utils/buffer-pipeline/schema.d.ts.map +0 -1
  199. package/dist/utils/buffer-pipeline/schema.js +0 -168
  200. package/dist/utils/buffer-pipeline/schema.js.map +0 -1
  201. package/dist/utils/buffer-pipeline/stages/filter.d.ts +0 -32
  202. package/dist/utils/buffer-pipeline/stages/filter.d.ts.map +0 -1
  203. package/dist/utils/buffer-pipeline/stages/filter.js +0 -208
  204. package/dist/utils/buffer-pipeline/stages/filter.js.map +0 -1
  205. package/dist/utils/buffer-pipeline/stages/format.d.ts +0 -45
  206. package/dist/utils/buffer-pipeline/stages/format.d.ts.map +0 -1
  207. package/dist/utils/buffer-pipeline/stages/format.js +0 -160
  208. package/dist/utils/buffer-pipeline/stages/format.js.map +0 -1
  209. package/dist/utils/buffer-pipeline/stages/group-by.d.ts +0 -25
  210. package/dist/utils/buffer-pipeline/stages/group-by.d.ts.map +0 -1
  211. package/dist/utils/buffer-pipeline/stages/group-by.js +0 -190
  212. package/dist/utils/buffer-pipeline/stages/group-by.js.map +0 -1
  213. package/dist/utils/buffer-pipeline/stages/select.d.ts +0 -54
  214. package/dist/utils/buffer-pipeline/stages/select.d.ts.map +0 -1
  215. package/dist/utils/buffer-pipeline/stages/select.js +0 -228
  216. package/dist/utils/buffer-pipeline/stages/select.js.map +0 -1
  217. package/dist/utils/buffer-pipeline/stages/sort.d.ts +0 -20
  218. package/dist/utils/buffer-pipeline/stages/sort.d.ts.map +0 -1
  219. package/dist/utils/buffer-pipeline/stages/sort.js +0 -96
  220. package/dist/utils/buffer-pipeline/stages/sort.js.map +0 -1
  221. package/dist/utils/buffer-pipeline/types.d.ts +0 -277
  222. package/dist/utils/buffer-pipeline/types.d.ts.map +0 -1
  223. package/dist/utils/buffer-pipeline/types.js +0 -8
  224. package/dist/utils/buffer-pipeline/types.js.map +0 -1
  225. package/dist/utils/plantuml/docker-manager.d.ts +0 -37
  226. package/dist/utils/plantuml/docker-manager.d.ts.map +0 -1
  227. package/dist/utils/plantuml/docker-manager.js +0 -284
  228. package/dist/utils/plantuml/docker-manager.js.map +0 -1
@@ -1,117 +0,0 @@
1
- /**
2
- * CSV Output Generator
3
- *
4
- * Outputs pipeline results as CSV with proper escaping.
5
- */
6
- import { getFieldValue } from "../stages/select.js";
7
- /**
8
- * Escape a value for CSV
9
- * Handles quotes, commas, and newlines
10
- */
11
- function escapeCsvValue(value) {
12
- if (value === null || value === undefined) {
13
- return "";
14
- }
15
- let strValue;
16
- if (Array.isArray(value)) {
17
- strValue = value.join("; ");
18
- }
19
- else if (typeof value === "object") {
20
- strValue = JSON.stringify(value);
21
- }
22
- else {
23
- strValue = String(value);
24
- }
25
- // Check if escaping is needed
26
- const needsQuotes = strValue.includes(",") ||
27
- strValue.includes('"') ||
28
- strValue.includes("\n") ||
29
- strValue.includes("\r");
30
- if (needsQuotes) {
31
- // Escape quotes by doubling them
32
- return `"${strValue.replace(/"/g, '""')}"`;
33
- }
34
- return strValue;
35
- }
36
- /**
37
- * Generate CSV header row
38
- */
39
- function generateHeader(columns) {
40
- return columns.map((col) => escapeCsvValue(col.header)).join(",");
41
- }
42
- /**
43
- * Generate CSV data row
44
- */
45
- function generateRow(item, columns) {
46
- return columns
47
- .map((col) => {
48
- const value = getFieldValue(item.data, col.field);
49
- return escapeCsvValue(value);
50
- })
51
- .join(",");
52
- }
53
- /**
54
- * Generate CSV output
55
- * Requires table configuration for column definitions
56
- */
57
- export function generateCsv(items, config) {
58
- const lines = [];
59
- // Header row
60
- lines.push(generateHeader(config.columns));
61
- // Data rows
62
- for (const item of items) {
63
- lines.push(generateRow(item, config.columns));
64
- }
65
- return lines.join("\n");
66
- }
67
- /**
68
- * Generate a preview of the CSV output
69
- */
70
- export function generateCsvPreview(items, config, maxRows = 3) {
71
- const previewItems = items.slice(0, maxRows);
72
- const lines = [];
73
- // Header row
74
- lines.push(generateHeader(config.columns));
75
- // Data rows
76
- for (const item of previewItems) {
77
- lines.push(generateRow(item, config.columns));
78
- }
79
- if (items.length > maxRows) {
80
- lines.push(`... ${items.length - maxRows} more rows`);
81
- }
82
- return lines.join("\n");
83
- }
84
- /**
85
- * Infer column definitions from data if not provided
86
- */
87
- export function inferColumnsFromData(items) {
88
- if (items.length === 0) {
89
- return [];
90
- }
91
- const firstItem = items[0].data;
92
- const columns = [];
93
- for (const key of Object.keys(firstItem)) {
94
- // Skip internal fields
95
- if (key.startsWith("__"))
96
- continue;
97
- columns.push({
98
- field: key,
99
- header: formatColumnHeader(key),
100
- });
101
- }
102
- return columns;
103
- }
104
- /**
105
- * Format a field name as a column header
106
- * Converts camelCase/snake_case to Title Case
107
- */
108
- function formatColumnHeader(fieldName) {
109
- return fieldName
110
- .replace(/([a-z])([A-Z])/g, "$1 $2") // camelCase -> camel Case
111
- .replace(/_/g, " ") // snake_case -> snake case
112
- .replace(/\./g, " ") // dot.notation -> dot notation
113
- .split(" ")
114
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
115
- .join(" ");
116
- }
117
- //# sourceMappingURL=csv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"csv.js","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/csv.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * JSON Output Generator
3
- *
4
- * Outputs pipeline results as clean JSON.
5
- * Strips internal fields and optionally includes metadata.
6
- */
7
- import type { FormattedItem, OutputConfig } from "../types.js";
8
- /**
9
- * Generate JSON output
10
- */
11
- export declare function generateJson(items: FormattedItem[], config: OutputConfig): string;
12
- /**
13
- * Generate a preview of the JSON output
14
- */
15
- export declare function generateJsonPreview(items: FormattedItem[], _config: OutputConfig, maxItems?: number): string;
16
- //# sourceMappingURL=json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/json.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkB/D;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,YAAY,GACnB,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EAAE,EACtB,OAAO,EAAE,YAAY,EACrB,QAAQ,GAAE,MAAU,GACnB,MAAM,CAWR"}
@@ -1,48 +0,0 @@
1
- /**
2
- * JSON Output Generator
3
- *
4
- * Outputs pipeline results as clean JSON.
5
- * Strips internal fields and optionally includes metadata.
6
- */
7
- /**
8
- * Clean an item by removing internal fields
9
- */
10
- function cleanItem(item) {
11
- const cleaned = {};
12
- for (const [key, value] of Object.entries(item)) {
13
- // Skip internal fields
14
- if (key.startsWith("__"))
15
- continue;
16
- cleaned[key] = value;
17
- }
18
- return cleaned;
19
- }
20
- /**
21
- * Generate JSON output
22
- */
23
- export function generateJson(items, config) {
24
- const cleanedItems = items.map((item) => cleanItem(item.data));
25
- if (config.includeMetadata) {
26
- return JSON.stringify({
27
- metadata: {
28
- itemCount: cleanedItems.length,
29
- generatedAt: new Date().toISOString(),
30
- },
31
- items: cleanedItems,
32
- }, null, 2);
33
- }
34
- return JSON.stringify(cleanedItems, null, 2);
35
- }
36
- /**
37
- * Generate a preview of the JSON output
38
- */
39
- export function generateJsonPreview(items, _config, maxItems = 3) {
40
- const previewItems = items.slice(0, maxItems);
41
- const cleanedItems = previewItems.map((item) => cleanItem(item.data));
42
- const preview = JSON.stringify(cleanedItems, null, 2);
43
- if (items.length > maxItems) {
44
- return `${preview}\n// ... ${items.length - maxItems} more items`;
45
- }
46
- return preview;
47
- }
48
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/json.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,SAAS,SAAS,CAAC,IAA6B;IAC9C,MAAM,OAAO,GAA4B,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,uBAAuB;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAEnC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAsB,EACtB,MAAoB;IAEpB,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,QAAQ,EAAE;gBACR,SAAS,EAAE,YAAY,CAAC,MAAM;gBAC9B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC;YACD,KAAK,EAAE,YAAY;SACpB,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAsB,EACtB,OAAqB,EACrB,WAAmB,CAAC;IAEpB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEtD,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,OAAO,YAAY,KAAK,CAAC,MAAM,GAAG,QAAQ,aAAa,CAAC;IACpE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Markdown Output Generator
3
- *
4
- * Outputs pipeline results as Markdown tables.
5
- */
6
- import type { FormattedItem, TableOutputConfig } from "../types.js";
7
- /**
8
- * Generate Markdown table output
9
- */
10
- export declare function generateMarkdown(items: FormattedItem[], config: TableOutputConfig): string;
11
- /**
12
- * Generate a preview of the Markdown output
13
- */
14
- export declare function generateMarkdownPreview(items: FormattedItem[], config: TableOutputConfig, maxRows?: number): string;
15
- //# sourceMappingURL=markdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/markdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAe,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAkEjF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,iBAAiB,GACxB,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,MAAU,GAClB,MAAM,CAwBR"}
@@ -1,105 +0,0 @@
1
- /**
2
- * Markdown Output Generator
3
- *
4
- * Outputs pipeline results as Markdown tables.
5
- */
6
- import { getFieldValue } from "../stages/select.js";
7
- /**
8
- * Escape a value for Markdown
9
- * Handles pipes and newlines
10
- */
11
- function escapeMarkdownValue(value) {
12
- if (value === null || value === undefined) {
13
- return "";
14
- }
15
- let strValue;
16
- if (Array.isArray(value)) {
17
- strValue = value.join(", ");
18
- }
19
- else if (typeof value === "object") {
20
- strValue = JSON.stringify(value);
21
- }
22
- else {
23
- strValue = String(value);
24
- }
25
- // Escape pipes and newlines
26
- return strValue
27
- .replace(/\|/g, "\\|")
28
- .replace(/\n/g, "<br>");
29
- }
30
- /**
31
- * Generate alignment indicator for markdown table
32
- */
33
- function getAlignment(align) {
34
- switch (align) {
35
- case "center":
36
- return ":---:";
37
- case "right":
38
- return "---:";
39
- default:
40
- return "---";
41
- }
42
- }
43
- /**
44
- * Generate Markdown header row
45
- */
46
- function generateHeader(columns) {
47
- const headers = columns.map((col) => escapeMarkdownValue(col.header));
48
- const separators = columns.map((col) => getAlignment(col.align));
49
- return [
50
- `| ${headers.join(" | ")} |`,
51
- `| ${separators.join(" | ")} |`,
52
- ];
53
- }
54
- /**
55
- * Generate Markdown data row
56
- */
57
- function generateRow(item, columns) {
58
- const cells = columns.map((col) => {
59
- const value = getFieldValue(item.data, col.field);
60
- return escapeMarkdownValue(value);
61
- });
62
- return `| ${cells.join(" | ")} |`;
63
- }
64
- /**
65
- * Generate Markdown table output
66
- */
67
- export function generateMarkdown(items, config) {
68
- const lines = [];
69
- // Title
70
- if (config.title) {
71
- lines.push(`## ${config.title}`);
72
- lines.push("");
73
- }
74
- // Table header
75
- lines.push(...generateHeader(config.columns));
76
- // Data rows
77
- for (const item of items) {
78
- lines.push(generateRow(item, config.columns));
79
- }
80
- return lines.join("\n");
81
- }
82
- /**
83
- * Generate a preview of the Markdown output
84
- */
85
- export function generateMarkdownPreview(items, config, maxRows = 3) {
86
- const previewItems = items.slice(0, maxRows);
87
- const lines = [];
88
- // Title
89
- if (config.title) {
90
- lines.push(`## ${config.title}`);
91
- lines.push("");
92
- }
93
- // Table header
94
- lines.push(...generateHeader(config.columns));
95
- // Data rows
96
- for (const item of previewItems) {
97
- lines.push(generateRow(item, config.columns));
98
- }
99
- if (items.length > maxRows) {
100
- lines.push("");
101
- lines.push(`*... ${items.length - maxRows} more rows*`);
102
- }
103
- return lines.join("\n");
104
- }
105
- //# sourceMappingURL=markdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/markdown.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * XHTML List Output Generator
3
- *
4
- * Generates Confluence-compatible XHTML lists from formatted items.
5
- * Supports bullet, numbered, and unstyled lists with template placeholders.
6
- */
7
- import type { FormattedItem, ListOutputConfig, PipelineContext } from "../types.js";
8
- /**
9
- * Generate XHTML list output
10
- */
11
- export declare function generateXhtmlList(items: FormattedItem[], config: ListOutputConfig, context: PipelineContext): string;
12
- /**
13
- * Generate a preview of the first few items
14
- */
15
- export declare function generateListPreview(items: FormattedItem[], config: ListOutputConfig, context: PipelineContext, maxItems?: number): string;
16
- //# sourceMappingURL=xhtml-list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xhtml-list.d.ts","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/xhtml-list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA0DpF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,eAAe,GACvB,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,eAAe,EACxB,QAAQ,GAAE,MAAU,GACnB,MAAM,CASR"}
@@ -1,81 +0,0 @@
1
- /**
2
- * XHTML List Output Generator
3
- *
4
- * Generates Confluence-compatible XHTML lists from formatted items.
5
- * Supports bullet, numbered, and unstyled lists with template placeholders.
6
- */
7
- import { escapeXml, getEffectiveStyle, formatCellXhtml, styleToInlineCss } from "../stages/format.js";
8
- import { getFieldValue } from "../stages/select.js";
9
- /**
10
- * Process template string, replacing {{field}} placeholders with values
11
- */
12
- function processTemplate(template, item, _context) {
13
- // Find all {{field}} placeholders
14
- const placeholders = template.match(/\{\{(\w+(?:\.\w+)*)\}\}/g) || [];
15
- let result = template;
16
- for (const placeholder of placeholders) {
17
- const fieldPath = placeholder.slice(2, -2);
18
- const value = getFieldValue(item.data, fieldPath);
19
- // Get styling for this field
20
- const style = getEffectiveStyle(item, fieldPath);
21
- const formattedValue = formatCellXhtml(value, style);
22
- result = result.replace(placeholder, formattedValue);
23
- }
24
- // Escape any remaining non-placeholder text
25
- // Split by already-processed HTML tags and escape text between them
26
- // This is a simplified approach - we trust the template author
27
- return result;
28
- }
29
- /**
30
- * Generate a list item
31
- */
32
- function generateListItem(item, template, context) {
33
- const content = processTemplate(template, item, context);
34
- // Apply row-level style if present
35
- let attrs = "";
36
- if (item.rowStyle) {
37
- const css = styleToInlineCss(item.rowStyle);
38
- if (css) {
39
- attrs = ` style="${escapeXml(css)}"`;
40
- }
41
- if (item.rowStyle.cssClass) {
42
- attrs += ` class="${escapeXml(item.rowStyle.cssClass)}"`;
43
- }
44
- }
45
- return `<li${attrs}>${content}</li>`;
46
- }
47
- /**
48
- * Generate XHTML list output
49
- */
50
- export function generateXhtmlList(items, config, context) {
51
- const lines = [];
52
- // Add title if present
53
- if (config.title) {
54
- lines.push(`<h2>${escapeXml(config.title)}</h2>`);
55
- }
56
- // Determine list tag
57
- const listStyle = config.style ?? "bullet";
58
- const listTag = listStyle === "numbered" ? "ol" : "ul";
59
- const listAttr = listStyle === "none" ? ' style="list-style-type: none"' : "";
60
- // List start
61
- lines.push(`<${listTag}${listAttr}>`);
62
- // List items
63
- for (const item of items) {
64
- lines.push(generateListItem(item, config.template, context));
65
- }
66
- // List end
67
- lines.push(`</${listTag}>`);
68
- return lines.join("\n");
69
- }
70
- /**
71
- * Generate a preview of the first few items
72
- */
73
- export function generateListPreview(items, config, context, maxItems = 3) {
74
- const previewItems = items.slice(0, maxItems);
75
- const preview = generateXhtmlList(previewItems, config, context);
76
- if (items.length > maxItems) {
77
- return `${preview}\n<!-- ... ${items.length - maxItems} more items -->`;
78
- }
79
- return preview;
80
- }
81
- //# sourceMappingURL=xhtml-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xhtml-list.js","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/xhtml-list.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * XHTML Table Output Generator
3
- *
4
- * Generates Confluence-compatible XHTML tables from formatted items.
5
- */
6
- import type { FormattedItem, PipelineContext, TableOutputConfig } from "../types.js";
7
- /**
8
- * Generate XHTML table output
9
- */
10
- export declare function generateXhtmlTable(items: FormattedItem[], config: TableOutputConfig, context: PipelineContext): string;
11
- /**
12
- * Generate a preview of the first few rows
13
- */
14
- export declare function generateTablePreview(items: FormattedItem[], config: TableOutputConfig, context: PipelineContext, maxRows?: number): string;
15
- //# sourceMappingURL=xhtml-table.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xhtml-table.d.ts","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/xhtml-table.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAc,eAAe,EAAe,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAmK9G;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,eAAe,GACvB,MAAM,CAmCR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,MAAU,GAClB,MAAM,CASR"}
@@ -1,176 +0,0 @@
1
- /**
2
- * XHTML Table Output Generator
3
- *
4
- * Generates Confluence-compatible XHTML tables from formatted items.
5
- */
6
- import { escapeXml, formatCellXhtml, getEffectiveStyle, styleToInlineCss } from "../stages/format.js";
7
- import { getFieldValue } from "../stages/select.js";
8
- /**
9
- * Generate a link URL based on link config
10
- */
11
- function generateLinkUrl(value, item, link, context) {
12
- const strValue = value === null || value === undefined ? "" : String(value);
13
- if (!strValue)
14
- return null;
15
- switch (link.type) {
16
- case "jira":
17
- if (context.jiraUrl) {
18
- return `${context.jiraUrl}/browse/${strValue}`;
19
- }
20
- return null;
21
- case "confluence":
22
- if (context.confluenceUrl) {
23
- // For page IDs
24
- return `${context.confluenceUrl}/pages/viewpage.action?pageId=${strValue}`;
25
- }
26
- return null;
27
- case "tempo":
28
- // Tempo worklogs don't have direct URLs
29
- return null;
30
- case "custom":
31
- if (link.template) {
32
- // Replace {{field}} placeholders
33
- let url = link.template;
34
- const placeholders = url.match(/\{\{(\w+(?:\.\w+)*)\}\}/g) || [];
35
- for (const placeholder of placeholders) {
36
- const fieldPath = placeholder.slice(2, -2);
37
- const fieldValue = fieldPath === "value" ? strValue : getFieldValue(item, fieldPath);
38
- url = url.replace(placeholder, encodeURIComponent(String(fieldValue ?? "")));
39
- }
40
- return url;
41
- }
42
- return null;
43
- default:
44
- return null;
45
- }
46
- }
47
- /**
48
- * Generate a table cell with optional link and styling
49
- */
50
- function generateCell(value, item, column, context) {
51
- const style = getEffectiveStyle(item, column.field);
52
- let content = formatCellXhtml(value, style);
53
- // Add link if configured
54
- if (column.link) {
55
- const url = generateLinkUrl(value, item.data, column.link, context);
56
- if (url) {
57
- content = `<a href="${escapeXml(url)}">${content}</a>`;
58
- }
59
- }
60
- // Build cell attributes
61
- const attrs = [];
62
- if (column.align && column.align !== "left") {
63
- attrs.push(`style="text-align: ${column.align}"`);
64
- }
65
- if (column.width) {
66
- const existingStyle = attrs.find((a) => a.startsWith("style="));
67
- if (existingStyle) {
68
- const idx = attrs.indexOf(existingStyle);
69
- attrs[idx] = existingStyle.replace('style="', `style="width: ${column.width}; `);
70
- }
71
- else {
72
- attrs.push(`style="width: ${column.width}"`);
73
- }
74
- }
75
- const attrStr = attrs.length > 0 ? " " + attrs.join(" ") : "";
76
- return `<td${attrStr}>${content}</td>`;
77
- }
78
- /**
79
- * Generate a table row
80
- */
81
- function generateRow(item, columns, context, rowNumber) {
82
- const cells = [];
83
- // Add row number cell if enabled
84
- if (rowNumber !== undefined) {
85
- cells.push(`<td style="text-align: right; width: 30px">${rowNumber}</td>`);
86
- }
87
- // Add data cells
88
- for (const column of columns) {
89
- const value = getFieldValue(item.data, column.field);
90
- cells.push(generateCell(value, item, column, context));
91
- }
92
- // Apply row-level style if present
93
- let rowAttrs = "";
94
- if (item.rowStyle) {
95
- const rowCss = styleToInlineCss(item.rowStyle);
96
- if (rowCss) {
97
- rowAttrs = ` style="${escapeXml(rowCss)}"`;
98
- }
99
- if (item.rowStyle.cssClass) {
100
- rowAttrs += ` class="${escapeXml(item.rowStyle.cssClass)}"`;
101
- }
102
- }
103
- return `<tr${rowAttrs}>${cells.join("")}</tr>`;
104
- }
105
- /**
106
- * Generate table header row
107
- */
108
- function generateHeaderRow(columns, showRowNumbers) {
109
- const headers = [];
110
- if (showRowNumbers) {
111
- headers.push(`<th style="text-align: right; width: 30px">#</th>`);
112
- }
113
- for (const column of columns) {
114
- const attrs = [];
115
- if (column.align && column.align !== "left") {
116
- attrs.push(`style="text-align: ${column.align}"`);
117
- }
118
- if (column.width) {
119
- const existingStyle = attrs.find((a) => a.startsWith("style="));
120
- if (existingStyle) {
121
- const idx = attrs.indexOf(existingStyle);
122
- attrs[idx] = existingStyle.replace('style="', `style="width: ${column.width}; `);
123
- }
124
- else {
125
- attrs.push(`style="width: ${column.width}"`);
126
- }
127
- }
128
- const attrStr = attrs.length > 0 ? " " + attrs.join(" ") : "";
129
- headers.push(`<th${attrStr}>${escapeXml(column.header)}</th>`);
130
- }
131
- return `<tr>${headers.join("")}</tr>`;
132
- }
133
- /**
134
- * Generate XHTML table output
135
- */
136
- export function generateXhtmlTable(items, config, context) {
137
- const lines = [];
138
- // Add title if present
139
- if (config.title) {
140
- lines.push(`<h2>${escapeXml(config.title)}</h2>`);
141
- }
142
- // Build table attributes
143
- const tableAttrs = [];
144
- if (config.tableClass) {
145
- tableAttrs.push(`class="${escapeXml(config.tableClass)}"`);
146
- }
147
- const tableAttrStr = tableAttrs.length > 0 ? " " + tableAttrs.join(" ") : "";
148
- // Table start
149
- lines.push(`<table${tableAttrStr}>`);
150
- // Table header
151
- lines.push(`<thead>`);
152
- lines.push(generateHeaderRow(config.columns, config.showRowNumbers ?? false));
153
- lines.push(`</thead>`);
154
- // Table body
155
- lines.push(`<tbody>`);
156
- items.forEach((item, index) => {
157
- const rowNumber = config.showRowNumbers ? index + 1 : undefined;
158
- lines.push(generateRow(item, config.columns, context, rowNumber));
159
- });
160
- lines.push(`</tbody>`);
161
- // Table end
162
- lines.push(`</table>`);
163
- return lines.join("\n");
164
- }
165
- /**
166
- * Generate a preview of the first few rows
167
- */
168
- export function generateTablePreview(items, config, context, maxRows = 3) {
169
- const previewItems = items.slice(0, maxRows);
170
- const preview = generateXhtmlTable(previewItems, config, context);
171
- if (items.length > maxRows) {
172
- return `${preview}\n<!-- ... ${items.length - maxRows} more rows -->`;
173
- }
174
- return preview;
175
- }
176
- //# sourceMappingURL=xhtml-table.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xhtml-table.js","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/xhtml-table.ts"],"names":[],"mappings":"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"}