@crypto512/jicon-mcp 1.3.0 → 2.0.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/README.md +68 -85
- package/TOOL_LIST.md +704 -87
- package/dist/config/constants.d.ts +18 -7
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +21 -8
- package/dist/config/constants.js.map +1 -1
- package/dist/config/loader.d.ts +11 -11
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +53 -93
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +3 -6
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +2 -4
- package/dist/config/types.js.map +1 -1
- package/dist/confluence/formatters.js +1 -1
- package/dist/confluence/formatters.js.map +1 -1
- package/dist/confluence/tools.d.ts +4 -0
- package/dist/confluence/tools.d.ts.map +1 -1
- package/dist/confluence/tools.js +180 -125
- package/dist/confluence/tools.js.map +1 -1
- package/dist/index.js +17 -26
- package/dist/index.js.map +1 -1
- package/dist/jira/formatters.d.ts +1 -0
- package/dist/jira/formatters.d.ts.map +1 -1
- package/dist/jira/formatters.js +13 -12
- package/dist/jira/formatters.js.map +1 -1
- package/dist/jira/tools.d.ts +4 -0
- package/dist/jira/tools.d.ts.map +1 -1
- package/dist/jira/tools.js +189 -50
- package/dist/jira/tools.js.map +1 -1
- package/dist/permissions/tool-registry.d.ts +2 -2
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +4 -2
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/permissions/write-home-validator.d.ts.map +1 -1
- package/dist/permissions/write-home-validator.js +13 -3
- package/dist/permissions/write-home-validator.js.map +1 -1
- package/dist/tempo/defaults.d.ts +17 -0
- package/dist/tempo/defaults.d.ts.map +1 -0
- package/dist/tempo/defaults.js +26 -0
- package/dist/tempo/defaults.js.map +1 -0
- package/dist/tempo/tools.d.ts +5 -0
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +108 -34
- package/dist/tempo/tools.js.map +1 -1
- package/dist/utils/buffer-pipeline/index.d.ts +30 -0
- package/dist/utils/buffer-pipeline/index.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/index.js +317 -0
- package/dist/utils/buffer-pipeline/index.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/csv.d.ts +20 -0
- package/dist/utils/buffer-pipeline/output/csv.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/csv.js +117 -0
- package/dist/utils/buffer-pipeline/output/csv.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/json.d.ts +16 -0
- package/dist/utils/buffer-pipeline/output/json.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/json.js +48 -0
- package/dist/utils/buffer-pipeline/output/json.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/markdown.d.ts +15 -0
- package/dist/utils/buffer-pipeline/output/markdown.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/markdown.js +105 -0
- package/dist/utils/buffer-pipeline/output/markdown.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts +16 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.js +81 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts +15 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.js +176 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.js.map +1 -0
- package/dist/utils/buffer-pipeline/schema.d.ts +1878 -0
- package/dist/utils/buffer-pipeline/schema.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/schema.js +168 -0
- package/dist/utils/buffer-pipeline/schema.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/filter.d.ts +32 -0
- package/dist/utils/buffer-pipeline/stages/filter.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/filter.js +208 -0
- package/dist/utils/buffer-pipeline/stages/filter.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/format.d.ts +45 -0
- package/dist/utils/buffer-pipeline/stages/format.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/format.js +160 -0
- package/dist/utils/buffer-pipeline/stages/format.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/group-by.d.ts +25 -0
- package/dist/utils/buffer-pipeline/stages/group-by.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/group-by.js +190 -0
- package/dist/utils/buffer-pipeline/stages/group-by.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/select.d.ts +54 -0
- package/dist/utils/buffer-pipeline/stages/select.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/select.js +228 -0
- package/dist/utils/buffer-pipeline/stages/select.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/sort.d.ts +20 -0
- package/dist/utils/buffer-pipeline/stages/sort.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/sort.js +96 -0
- package/dist/utils/buffer-pipeline/stages/sort.js.map +1 -0
- package/dist/utils/buffer-pipeline/types.d.ts +277 -0
- package/dist/utils/buffer-pipeline/types.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/types.js +8 -0
- package/dist/utils/buffer-pipeline/types.js.map +1 -0
- package/dist/utils/buffer-tools.d.ts +749 -19
- package/dist/utils/buffer-tools.d.ts.map +1 -1
- package/dist/utils/buffer-tools.js +738 -491
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/content-buffer.d.ts +55 -4
- package/dist/utils/content-buffer.d.ts.map +1 -1
- package/dist/utils/content-buffer.js +107 -9
- package/dist/utils/content-buffer.js.map +1 -1
- package/dist/utils/jicon-help.d.ts +1 -1
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +253 -28
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/json-structure.d.ts +121 -0
- package/dist/utils/json-structure.d.ts.map +1 -0
- package/dist/utils/json-structure.js +637 -0
- package/dist/utils/json-structure.js.map +1 -0
- package/dist/utils/plantuml/include-expander.d.ts +31 -30
- package/dist/utils/plantuml/include-expander.d.ts.map +1 -1
- package/dist/utils/plantuml/include-expander.js +167 -133
- package/dist/utils/plantuml/include-expander.js.map +1 -1
- package/dist/utils/plantuml/index.d.ts +3 -3
- package/dist/utils/plantuml/index.d.ts.map +1 -1
- package/dist/utils/plantuml/index.js +4 -4
- package/dist/utils/plantuml/index.js.map +1 -1
- package/dist/utils/plantuml/service.d.ts +13 -24
- package/dist/utils/plantuml/service.d.ts.map +1 -1
- package/dist/utils/plantuml/service.js +49 -99
- package/dist/utils/plantuml/service.js.map +1 -1
- package/dist/utils/plantuml/tools.d.ts.map +1 -1
- package/dist/utils/plantuml/tools.js +33 -72
- package/dist/utils/plantuml/tools.js.map +1 -1
- package/dist/utils/plantuml/types.d.ts +1 -35
- package/dist/utils/plantuml/types.d.ts.map +1 -1
- package/dist/utils/plantuml/types.js +1 -11
- package/dist/utils/plantuml/types.js.map +1 -1
- package/dist/utils/plantuml/validation-helper.d.ts +1 -1
- package/dist/utils/plantuml/validation-helper.js +12 -12
- package/dist/utils/plantuml/validation-helper.js.map +1 -1
- package/dist/utils/response-formatter.d.ts +61 -6
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +174 -91
- package/dist/utils/response-formatter.js.map +1 -1
- package/dist/utils/url-tools.d.ts.map +1 -1
- package/dist/utils/url-tools.js +22 -0
- package/dist/utils/url-tools.js.map +1 -1
- package/dist/utils/xhtml/error-locator.js +2 -2
- package/dist/utils/xhtml/error-locator.js.map +1 -1
- package/dist/utils/xhtml/index.d.ts +1 -1
- package/dist/utils/xhtml/index.d.ts.map +1 -1
- package/dist/utils/xhtml/index.js +1 -1
- package/dist/utils/xhtml/index.js.map +1 -1
- package/dist/utils/xhtml/parser.d.ts +34 -5
- package/dist/utils/xhtml/parser.d.ts.map +1 -1
- package/dist/utils/xhtml/parser.js +66 -11
- package/dist/utils/xhtml/parser.js.map +1 -1
- package/dist/utils/xhtml/plantuml.d.ts.map +1 -1
- package/dist/utils/xhtml/plantuml.js +5 -3
- package/dist/utils/xhtml/plantuml.js.map +1 -1
- package/dist/utils/xhtml/serializer.d.ts.map +1 -1
- package/dist/utils/xhtml/serializer.js +12 -15
- package/dist/utils/xhtml/serializer.js.map +1 -1
- package/package.json +12 -4
- package/crypto512-jicon-mcp-1.3.0.tgz +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xhtml-list.js","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/xhtml-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xhtml-table.js","sourceRoot":"","sources":["../../../../src/utils/buffer-pipeline/output/xhtml-table.ts"],"names":[],"mappings":"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"}
|