@memberjunction/core-actions 5.24.0 → 5.25.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.
Files changed (78) hide show
  1. package/dist/custom/files/add-document-content.action.d.ts +20 -0
  2. package/dist/custom/files/add-document-content.action.d.ts.map +1 -0
  3. package/dist/custom/files/add-document-content.action.js +74 -0
  4. package/dist/custom/files/add-document-content.action.js.map +1 -0
  5. package/dist/custom/files/base-file-storage.action.d.ts +6 -9
  6. package/dist/custom/files/base-file-storage.action.d.ts.map +1 -1
  7. package/dist/custom/files/base-file-storage.action.js +14 -39
  8. package/dist/custom/files/base-file-storage.action.js.map +1 -1
  9. package/dist/custom/files/create-document.action.d.ts +19 -0
  10. package/dist/custom/files/create-document.action.d.ts.map +1 -0
  11. package/dist/custom/files/create-document.action.js +65 -0
  12. package/dist/custom/files/create-document.action.js.map +1 -0
  13. package/dist/custom/files/excel-reader.action.js +1 -1
  14. package/dist/custom/files/excel-reader.action.js.map +1 -1
  15. package/dist/custom/files/finalize-document.action.d.ts +21 -0
  16. package/dist/custom/files/finalize-document.action.d.ts.map +1 -0
  17. package/dist/custom/files/finalize-document.action.js +94 -0
  18. package/dist/custom/files/finalize-document.action.js.map +1 -0
  19. package/dist/custom/files/index.d.ts +5 -0
  20. package/dist/custom/files/index.d.ts.map +1 -1
  21. package/dist/custom/files/index.js +6 -0
  22. package/dist/custom/files/index.js.map +1 -1
  23. package/dist/custom/files/list-storage-providers.action.d.ts.map +1 -1
  24. package/dist/custom/files/list-storage-providers.action.js +6 -33
  25. package/dist/custom/files/list-storage-providers.action.js.map +1 -1
  26. package/dist/custom/files/modify-document-section.action.d.ts +19 -0
  27. package/dist/custom/files/modify-document-section.action.d.ts.map +1 -0
  28. package/dist/custom/files/modify-document-section.action.js +85 -0
  29. package/dist/custom/files/modify-document-section.action.js.map +1 -0
  30. package/dist/custom/files/pdf-extractor.action.d.ts +8 -14
  31. package/dist/custom/files/pdf-extractor.action.d.ts.map +1 -1
  32. package/dist/custom/files/pdf-extractor.action.js +89 -91
  33. package/dist/custom/files/pdf-extractor.action.js.map +1 -1
  34. package/dist/custom/files/preview-document.action.d.ts +17 -0
  35. package/dist/custom/files/preview-document.action.d.ts.map +1 -0
  36. package/dist/custom/files/preview-document.action.js +50 -0
  37. package/dist/custom/files/preview-document.action.js.map +1 -0
  38. package/dist/custom/geo/scheduled-geocoding.action.d.ts +135 -0
  39. package/dist/custom/geo/scheduled-geocoding.action.d.ts.map +1 -0
  40. package/dist/custom/geo/scheduled-geocoding.action.js +428 -0
  41. package/dist/custom/geo/scheduled-geocoding.action.js.map +1 -0
  42. package/dist/custom/search/search.action.d.ts +67 -0
  43. package/dist/custom/search/search.action.d.ts.map +1 -0
  44. package/dist/custom/search/search.action.js +211 -0
  45. package/dist/custom/search/search.action.js.map +1 -0
  46. package/dist/custom/utilities/artifact-builder-service.d.ts +139 -0
  47. package/dist/custom/utilities/artifact-builder-service.d.ts.map +1 -0
  48. package/dist/custom/utilities/artifact-builder-service.js +338 -0
  49. package/dist/custom/utilities/artifact-builder-service.js.map +1 -0
  50. package/dist/custom/utilities/base-file-handler.d.ts +25 -3
  51. package/dist/custom/utilities/base-file-handler.d.ts.map +1 -1
  52. package/dist/custom/utilities/base-file-handler.js +81 -28
  53. package/dist/custom/utilities/base-file-handler.js.map +1 -1
  54. package/dist/custom/utilities/docx-renderer.d.ts +61 -0
  55. package/dist/custom/utilities/docx-renderer.d.ts.map +1 -0
  56. package/dist/custom/utilities/docx-renderer.js +409 -0
  57. package/dist/custom/utilities/docx-renderer.js.map +1 -0
  58. package/dist/custom/utilities/pdf-renderer.d.ts +53 -0
  59. package/dist/custom/utilities/pdf-renderer.d.ts.map +1 -0
  60. package/dist/custom/utilities/pdf-renderer.js +315 -0
  61. package/dist/custom/utilities/pdf-renderer.js.map +1 -0
  62. package/dist/custom/utilities/xlsx-renderer.d.ts +120 -0
  63. package/dist/custom/utilities/xlsx-renderer.d.ts.map +1 -0
  64. package/dist/custom/utilities/xlsx-renderer.js +165 -0
  65. package/dist/custom/utilities/xlsx-renderer.js.map +1 -0
  66. package/dist/index.d.ts +2 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +3 -2
  69. package/dist/index.js.map +1 -1
  70. package/package.json +31 -27
  71. package/dist/custom/files/excel-writer.action.d.ts +0 -88
  72. package/dist/custom/files/excel-writer.action.d.ts.map +0 -1
  73. package/dist/custom/files/excel-writer.action.js +0 -326
  74. package/dist/custom/files/excel-writer.action.js.map +0 -1
  75. package/dist/custom/files/pdf-generator.action.d.ts +0 -66
  76. package/dist/custom/files/pdf-generator.action.d.ts.map +0 -1
  77. package/dist/custom/files/pdf-generator.action.js +0 -254
  78. package/dist/custom/files/pdf-generator.action.js.map +0 -1
@@ -0,0 +1,315 @@
1
+ /**
2
+ * PDF rendering engine extracted from PDFGeneratorAction.
3
+ * Used by both the single-shot PDF Generator action and the incremental ArtifactBuilderService.
4
+ */
5
+ import PDFDocument from "pdfkit";
6
+ import { Parser } from 'htmlparser2';
7
+ export const DEFAULT_PDF_OPTIONS = {
8
+ margin: { top: 72, bottom: 72, left: 72, right: 72 },
9
+ fontSize: 12,
10
+ font: 'Helvetica',
11
+ orientation: 'portrait',
12
+ size: 'Letter'
13
+ };
14
+ // ── Rendering ─────────────────────────────────────────────────────────────────
15
+ /**
16
+ * Render an array of PDFNodeType nodes to a PDF buffer using pdfkit.
17
+ */
18
+ export function renderPDFFromNodes(nodes, options) {
19
+ return new Promise((resolve, reject) => {
20
+ try {
21
+ const doc = new PDFDocument({
22
+ size: options.size,
23
+ layout: options.orientation,
24
+ margins: options.margin,
25
+ info: { Title: 'Generated Document', Author: 'MemberJunction', Creator: 'PDF Generator Action' }
26
+ });
27
+ const chunks = [];
28
+ doc.on('data', (chunk) => chunks.push(chunk));
29
+ doc.on('end', () => resolve(Buffer.concat(chunks)));
30
+ doc.on('error', reject);
31
+ renderNodes(doc, nodes, options);
32
+ doc.end();
33
+ }
34
+ catch (error) {
35
+ reject(error);
36
+ }
37
+ });
38
+ }
39
+ /**
40
+ * Render an HTML string to a PDF buffer.
41
+ * If contentType is 'markdown', converts to HTML first using the provided marked function.
42
+ */
43
+ export async function renderPDFFromHTML(htmlContent, options) {
44
+ const nodes = parseHTML(htmlContent);
45
+ return renderPDFFromNodes(nodes, options);
46
+ }
47
+ // ── Internal renderers ────────────────────────────────────────────────────────
48
+ function renderNodes(doc, nodes, options) {
49
+ for (const node of nodes) {
50
+ renderNode(doc, node, options);
51
+ }
52
+ }
53
+ function renderNode(doc, node, options) {
54
+ switch (node.type) {
55
+ case 'heading':
56
+ renderHeading(doc, node, options);
57
+ break;
58
+ case 'paragraph':
59
+ renderParagraph(doc, node, options);
60
+ break;
61
+ case 'list':
62
+ renderList(doc, node, options);
63
+ break;
64
+ case 'table':
65
+ renderTable(doc, node, options);
66
+ break;
67
+ case 'image':
68
+ renderImage(doc, node);
69
+ break;
70
+ case 'hr':
71
+ renderHR(doc, options);
72
+ break;
73
+ case 'br':
74
+ doc.moveDown(0.5);
75
+ break;
76
+ }
77
+ }
78
+ function renderHeading(doc, node, options) {
79
+ const sizemap = { 1: 24, 2: 20, 3: 16, 4: 14, 5: 13, 6: 12 };
80
+ const size = sizemap[node.level] ?? 12;
81
+ doc.font(`${options.font}-Bold`).fontSize(size).text(node.text, { align: 'left' });
82
+ doc.font(options.font).fontSize(options.fontSize);
83
+ doc.moveDown(0.5);
84
+ }
85
+ function renderParagraph(doc, node, options) {
86
+ const font = node.bold
87
+ ? `${options.font}-Bold`
88
+ : node.italic
89
+ ? `${options.font}-Oblique`
90
+ : options.font;
91
+ doc.font(font).fontSize(options.fontSize).text(node.text, { align: 'left' });
92
+ doc.font(options.font);
93
+ doc.moveDown(0.3);
94
+ }
95
+ function renderList(doc, node, options) {
96
+ doc.font(options.font).fontSize(options.fontSize);
97
+ doc.list(node.items, { bulletRadius: 2, textIndent: 20, bulletIndent: 10 });
98
+ doc.moveDown(0.3);
99
+ }
100
+ function renderTable(doc, node, options) {
101
+ const colCount = Math.max(node.headers.length, ...node.rows.map(r => r.length));
102
+ if (colCount === 0)
103
+ return;
104
+ const usableWidth = doc.page.width - doc.page.margins.left - doc.page.margins.right;
105
+ const colWidth = usableWidth / colCount;
106
+ const rowHeight = options.fontSize + 8;
107
+ const x = doc.page.margins.left;
108
+ let y = doc.y;
109
+ // Headers
110
+ doc.font(`${options.font}-Bold`).fontSize(options.fontSize);
111
+ for (let c = 0; c < colCount; c++) {
112
+ doc.rect(x + c * colWidth, y, colWidth, rowHeight).stroke();
113
+ doc.text(node.headers[c] ?? '', x + c * colWidth + 4, y + 4, {
114
+ width: colWidth - 8, height: rowHeight - 4, ellipsis: true
115
+ });
116
+ }
117
+ y += rowHeight;
118
+ // Rows
119
+ doc.font(options.font).fontSize(options.fontSize);
120
+ for (const row of node.rows) {
121
+ for (let c = 0; c < colCount; c++) {
122
+ doc.rect(x + c * colWidth, y, colWidth, rowHeight).stroke();
123
+ doc.text(row[c] ?? '', x + c * colWidth + 4, y + 4, {
124
+ width: colWidth - 8, height: rowHeight - 4, ellipsis: true
125
+ });
126
+ }
127
+ y += rowHeight;
128
+ }
129
+ doc.y = y + 4;
130
+ doc.moveDown(0.3);
131
+ }
132
+ function renderImage(doc, node) {
133
+ if (!node.src)
134
+ return;
135
+ const dataUri = /^data:image\/(png|jpe?g|gif|webp);base64,(.+)$/i.exec(node.src);
136
+ if (!dataUri)
137
+ return;
138
+ try {
139
+ const imageBuffer = Buffer.from(dataUri[2], 'base64');
140
+ const maxWidth = doc.page.width - doc.page.margins.left - doc.page.margins.right;
141
+ doc.image(imageBuffer, { fit: [maxWidth, 400], align: 'center' });
142
+ doc.moveDown(0.3);
143
+ }
144
+ catch {
145
+ // Skip images that can't be decoded rather than crashing the whole PDF
146
+ }
147
+ }
148
+ function renderHR(doc, options) {
149
+ const x = doc.page.margins.left;
150
+ const width = doc.page.width - doc.page.margins.left - doc.page.margins.right;
151
+ doc.moveTo(x, doc.y).lineTo(x + width, doc.y).stroke();
152
+ doc.moveDown(0.5);
153
+ doc.fontSize(options.fontSize);
154
+ }
155
+ // ── HTML → PDFNodeType[] parser ───────────────────────────────────────────────
156
+ /**
157
+ * Parse an HTML string into a flat list of renderable nodes using htmlparser2.
158
+ */
159
+ export function parseHTML(html) {
160
+ const nodes = [];
161
+ const tagStack = [];
162
+ let currentText = '';
163
+ let inHeading = false;
164
+ let headingLevel = 1;
165
+ let inParagraph = false;
166
+ let boldDepth = 0;
167
+ let italicDepth = 0;
168
+ let inList = false;
169
+ let listOrdered = false;
170
+ let listItems = [];
171
+ let inListItem = false;
172
+ let listItemText = '';
173
+ let inTable = false;
174
+ let inThead = false;
175
+ let tableHeaders = [];
176
+ let tableRows = [];
177
+ let currentRow = [];
178
+ let inCell = false;
179
+ let cellText = '';
180
+ const flushText = () => {
181
+ const t = currentText.trim();
182
+ currentText = '';
183
+ return t;
184
+ };
185
+ const parser = new Parser({
186
+ onopentag(name, attribs) {
187
+ tagStack.push(name);
188
+ if (/^h[1-6]$/.test(name)) {
189
+ inHeading = true;
190
+ headingLevel = parseInt(name[1]);
191
+ currentText = '';
192
+ }
193
+ else if (name === 'p') {
194
+ inParagraph = true;
195
+ currentText = '';
196
+ }
197
+ else if (name === 'strong' || name === 'b') {
198
+ boldDepth++;
199
+ }
200
+ else if (name === 'em' || name === 'i') {
201
+ italicDepth++;
202
+ }
203
+ else if (name === 'ul' || name === 'ol') {
204
+ inList = true;
205
+ listOrdered = name === 'ol';
206
+ listItems = [];
207
+ }
208
+ else if (name === 'li') {
209
+ inListItem = true;
210
+ listItemText = '';
211
+ }
212
+ else if (name === 'table') {
213
+ inTable = true;
214
+ tableHeaders = [];
215
+ tableRows = [];
216
+ }
217
+ else if (name === 'thead') {
218
+ inThead = true;
219
+ }
220
+ else if (name === 'tbody') {
221
+ // no-op, tracked via inTable
222
+ }
223
+ else if (name === 'tr') {
224
+ currentRow = [];
225
+ }
226
+ else if (name === 'th' || name === 'td') {
227
+ inCell = true;
228
+ cellText = '';
229
+ }
230
+ else if (name === 'img') {
231
+ nodes.push({ type: 'image', src: attribs['src'] ?? '', alt: attribs['alt'] });
232
+ }
233
+ else if (name === 'hr') {
234
+ nodes.push({ type: 'hr' });
235
+ }
236
+ else if (name === 'br') {
237
+ nodes.push({ type: 'br' });
238
+ }
239
+ },
240
+ ontext(text) {
241
+ const cleaned = text.replace(/\s+/g, ' ');
242
+ if (inCell) {
243
+ cellText += cleaned;
244
+ }
245
+ else if (inListItem) {
246
+ listItemText += cleaned;
247
+ }
248
+ else if (inHeading || inParagraph) {
249
+ currentText += cleaned;
250
+ }
251
+ },
252
+ onclosetag(name) {
253
+ tagStack.pop();
254
+ if (/^h[1-6]$/.test(name) && inHeading) {
255
+ const text = flushText();
256
+ if (text)
257
+ nodes.push({ type: 'heading', level: headingLevel, text });
258
+ inHeading = false;
259
+ }
260
+ else if (name === 'p' && inParagraph) {
261
+ const text = flushText();
262
+ if (text) {
263
+ nodes.push({ type: 'paragraph', text, bold: boldDepth > 0, italic: italicDepth > 0 });
264
+ }
265
+ inParagraph = false;
266
+ }
267
+ else if (name === 'strong' || name === 'b') {
268
+ boldDepth = Math.max(0, boldDepth - 1);
269
+ }
270
+ else if (name === 'em' || name === 'i') {
271
+ italicDepth = Math.max(0, italicDepth - 1);
272
+ }
273
+ else if (name === 'li' && inListItem) {
274
+ const text = listItemText.trim();
275
+ if (text)
276
+ listItems.push(text);
277
+ inListItem = false;
278
+ listItemText = '';
279
+ }
280
+ else if ((name === 'ul' || name === 'ol') && inList) {
281
+ if (listItems.length > 0) {
282
+ nodes.push({ type: 'list', items: listItems, ordered: listOrdered });
283
+ }
284
+ inList = false;
285
+ listItems = [];
286
+ }
287
+ else if (name === 'th' || name === 'td') {
288
+ const text = cellText.trim();
289
+ currentRow.push(text);
290
+ inCell = false;
291
+ cellText = '';
292
+ }
293
+ else if (name === 'tr') {
294
+ if (inThead) {
295
+ tableHeaders = currentRow;
296
+ }
297
+ else {
298
+ tableRows.push(currentRow);
299
+ }
300
+ currentRow = [];
301
+ }
302
+ else if (name === 'thead') {
303
+ inThead = false;
304
+ }
305
+ else if (name === 'table' && inTable) {
306
+ nodes.push({ type: 'table', headers: tableHeaders, rows: tableRows });
307
+ inTable = false;
308
+ }
309
+ }
310
+ }, { decodeEntities: true });
311
+ parser.write(html);
312
+ parser.end();
313
+ return nodes;
314
+ }
315
+ //# sourceMappingURL=pdf-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-renderer.js","sourceRoot":"","sources":["../../../src/custom/utilities/pdf-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Excel rendering utilities extracted from ExcelWriterAction.
3
+ * The actual rendering is delegated to ExportEngine.toExcelMultiSheet().
4
+ * This module handles input normalization and style conversion.
5
+ */
6
+ import { SheetDefinition, CellStyle } from '@memberjunction/export-engine';
7
+ export interface ExcelOptions {
8
+ fileName?: string;
9
+ author?: string;
10
+ title?: string;
11
+ description?: string;
12
+ }
13
+ /**
14
+ * Input sheet definition format (accepts legacy ExcelJS-style objects)
15
+ */
16
+ export interface SheetInputDefinition {
17
+ name: string;
18
+ data?: Record<string, unknown>[] | unknown[][];
19
+ /** Alternative to data: LLMs sometimes send rows+columns instead */
20
+ rows?: unknown[][];
21
+ columns?: string[];
22
+ headers?: string[];
23
+ columnWidths?: number[];
24
+ styles?: {
25
+ headerStyle?: LegacyStyle;
26
+ dataStyle?: LegacyStyle;
27
+ };
28
+ headerStyle?: LegacyStyle;
29
+ dataStyle?: LegacyStyle;
30
+ formulas?: Array<{
31
+ cell: string;
32
+ formula: string;
33
+ result?: unknown;
34
+ }>;
35
+ autoFilter?: boolean | string;
36
+ freeze?: {
37
+ row?: number;
38
+ column?: number;
39
+ };
40
+ }
41
+ /**
42
+ * Legacy ExcelJS-style style object
43
+ */
44
+ export interface LegacyStyle {
45
+ font?: {
46
+ bold?: boolean;
47
+ italic?: boolean;
48
+ underline?: boolean;
49
+ strike?: boolean;
50
+ size?: number;
51
+ name?: string;
52
+ color?: {
53
+ argb?: string;
54
+ } | string;
55
+ };
56
+ fill?: {
57
+ type?: string;
58
+ pattern?: string;
59
+ fgColor?: {
60
+ argb?: string;
61
+ } | string;
62
+ bgColor?: {
63
+ argb?: string;
64
+ } | string;
65
+ };
66
+ alignment?: {
67
+ horizontal?: 'left' | 'center' | 'right' | 'fill' | 'justify';
68
+ vertical?: 'top' | 'middle' | 'bottom';
69
+ wrapText?: boolean;
70
+ };
71
+ border?: {
72
+ top?: {
73
+ style?: string;
74
+ color?: {
75
+ argb?: string;
76
+ } | string;
77
+ };
78
+ bottom?: {
79
+ style?: string;
80
+ color?: {
81
+ argb?: string;
82
+ } | string;
83
+ };
84
+ left?: {
85
+ style?: string;
86
+ color?: {
87
+ argb?: string;
88
+ } | string;
89
+ };
90
+ right?: {
91
+ style?: string;
92
+ color?: {
93
+ argb?: string;
94
+ } | string;
95
+ };
96
+ };
97
+ }
98
+ export interface ExcelRenderResult {
99
+ buffer: Buffer;
100
+ sheetCount?: number;
101
+ rowCount?: number;
102
+ sizeBytes?: number;
103
+ }
104
+ /**
105
+ * Render sheet input definitions to an Excel buffer via ExportEngine.
106
+ */
107
+ export declare function renderExcelFromSheets(sheets: SheetInputDefinition[], options?: ExcelOptions): Promise<ExcelRenderResult>;
108
+ /**
109
+ * Convert columns+rows format to the data array format expected by export-engine.
110
+ */
111
+ export declare function normalizeRowsToData(rows: unknown[][], columns?: string[]): Record<string, unknown>[];
112
+ /**
113
+ * Convert the input sheet definition to the export-engine SheetDefinition format
114
+ */
115
+ export declare function convertToSheetDefinition(input: SheetInputDefinition): SheetDefinition;
116
+ /**
117
+ * Convert legacy ExcelJS-style objects to export-engine CellStyle format
118
+ */
119
+ export declare function convertLegacyStyle(style: LegacyStyle): CellStyle;
120
+ //# sourceMappingURL=xlsx-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlsx-renderer.d.ts","sourceRoot":"","sources":["../../../src/custom/utilities/xlsx-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Excel rendering utilities extracted from ExcelWriterAction.
3
+ * The actual rendering is delegated to ExportEngine.toExcelMultiSheet().
4
+ * This module handles input normalization and style conversion.
5
+ */
6
+ import { ExportEngine } from '@memberjunction/export-engine';
7
+ // ── Rendering ─────────────────────────────────────────────────────────────────
8
+ /**
9
+ * Render sheet input definitions to an Excel buffer via ExportEngine.
10
+ */
11
+ export async function renderExcelFromSheets(sheets, options = {}) {
12
+ const sheetDefinitions = [];
13
+ for (const sheetInput of sheets) {
14
+ // Normalize: LLMs sometimes send columns+rows instead of data
15
+ if (!sheetInput.data && sheetInput.rows) {
16
+ sheetInput.data = normalizeRowsToData(sheetInput.rows, sheetInput.columns);
17
+ }
18
+ if (!sheetInput.name || !sheetInput.data) {
19
+ throw new Error("Each sheet must have a name and data");
20
+ }
21
+ sheetDefinitions.push(convertToSheetDefinition(sheetInput));
22
+ }
23
+ const fileName = (options.fileName || 'workbook.xlsx').replace(/\.xlsx$/i, '');
24
+ const result = await ExportEngine.toExcelMultiSheet(sheetDefinitions, {
25
+ fileName,
26
+ metadata: {
27
+ author: options.author || 'MemberJunction',
28
+ title: options.title,
29
+ description: options.description
30
+ }
31
+ });
32
+ if (!result.success || !result.data) {
33
+ throw new Error(result.error || 'Failed to generate Excel file');
34
+ }
35
+ return {
36
+ buffer: Buffer.from(result.data),
37
+ sheetCount: result.sheetCount,
38
+ rowCount: result.rowCount,
39
+ sizeBytes: result.sizeBytes,
40
+ };
41
+ }
42
+ // ── Input normalization ───────────────────────────────────────────────────────
43
+ /**
44
+ * Convert columns+rows format to the data array format expected by export-engine.
45
+ */
46
+ export function normalizeRowsToData(rows, columns) {
47
+ if (columns && columns.length > 0) {
48
+ return rows.map(row => {
49
+ const obj = {};
50
+ columns.forEach((col, i) => { obj[col] = row[i]; });
51
+ return obj;
52
+ });
53
+ }
54
+ return rows;
55
+ }
56
+ /**
57
+ * Convert the input sheet definition to the export-engine SheetDefinition format
58
+ */
59
+ export function convertToSheetDefinition(input) {
60
+ const sheetDef = {
61
+ name: input.name,
62
+ data: input.data,
63
+ includeHeaders: true
64
+ };
65
+ if (input.headers) {
66
+ sheetDef.headers = input.headers;
67
+ }
68
+ else if (input.columns) {
69
+ sheetDef.headers = input.columns;
70
+ }
71
+ if (input.columnWidths) {
72
+ sheetDef.columnWidths = input.columnWidths;
73
+ }
74
+ if (input.styles?.headerStyle) {
75
+ sheetDef.headerStyle = convertLegacyStyle(input.styles.headerStyle);
76
+ }
77
+ else if (input.headerStyle) {
78
+ sheetDef.headerStyle = convertLegacyStyle(input.headerStyle);
79
+ }
80
+ if (input.styles?.dataStyle) {
81
+ sheetDef.dataStyle = convertLegacyStyle(input.styles.dataStyle);
82
+ }
83
+ else if (input.dataStyle) {
84
+ sheetDef.dataStyle = convertLegacyStyle(input.dataStyle);
85
+ }
86
+ if (input.formulas) {
87
+ sheetDef.formulas = input.formulas.map(f => ({
88
+ cell: f.cell,
89
+ formula: f.formula,
90
+ result: f.result
91
+ }));
92
+ }
93
+ if (input.autoFilter !== undefined) {
94
+ sheetDef.autoFilter = input.autoFilter;
95
+ }
96
+ if (input.freeze) {
97
+ sheetDef.freeze = input.freeze;
98
+ }
99
+ return sheetDef;
100
+ }
101
+ // ── Style conversion ──────────────────────────────────────────────────────────
102
+ /**
103
+ * Convert legacy ExcelJS-style objects to export-engine CellStyle format
104
+ */
105
+ export function convertLegacyStyle(style) {
106
+ const result = {};
107
+ if (style.font) {
108
+ result.font = {
109
+ bold: style.font.bold,
110
+ italic: style.font.italic,
111
+ underline: style.font.underline,
112
+ strike: style.font.strike,
113
+ size: style.font.size,
114
+ name: style.font.name
115
+ };
116
+ const fontColor = extractColorValue(style.font.color);
117
+ if (fontColor) {
118
+ result.font.color = fontColor;
119
+ }
120
+ }
121
+ if (style.fill) {
122
+ result.fill = {
123
+ pattern: (style.fill.pattern || 'solid')
124
+ };
125
+ const fgColor = extractColorValue(style.fill.fgColor);
126
+ if (fgColor) {
127
+ result.fill.fgColor = fgColor;
128
+ }
129
+ }
130
+ if (style.alignment) {
131
+ result.alignment = {
132
+ horizontal: style.alignment.horizontal,
133
+ vertical: style.alignment.vertical,
134
+ wrapText: style.alignment.wrapText
135
+ };
136
+ }
137
+ if (style.border) {
138
+ result.border = {};
139
+ if (style.border.top)
140
+ result.border.top = convertBorderSide(style.border.top);
141
+ if (style.border.bottom)
142
+ result.border.bottom = convertBorderSide(style.border.bottom);
143
+ if (style.border.left)
144
+ result.border.left = convertBorderSide(style.border.left);
145
+ if (style.border.right)
146
+ result.border.right = convertBorderSide(style.border.right);
147
+ }
148
+ return result;
149
+ }
150
+ function extractColorValue(color) {
151
+ if (!color)
152
+ return undefined;
153
+ if (typeof color === 'string')
154
+ return color;
155
+ if (color.argb)
156
+ return color.argb.substring(2);
157
+ return undefined;
158
+ }
159
+ function convertBorderSide(side) {
160
+ return {
161
+ style: (side.style || 'thin'),
162
+ color: extractColorValue(side.color)
163
+ };
164
+ }
165
+ //# sourceMappingURL=xlsx-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlsx-renderer.js","sourceRoot":"","sources":["../../../src/custom/utilities/xlsx-renderer.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export * from './custom/utilities/census-data-lookup.action.js';
19
19
  export * from './custom/utilities/external-change-detection.action.js';
20
20
  export * from './custom/utilities/qr-code.action.js';
21
21
  export * from './custom/utilities/address-services.action.js';
22
+ export * from './custom/geo/scheduled-geocoding.action.js';
22
23
  export * from './custom/web/web-search.action.js';
23
24
  export * from './custom/web/web-page-content.action.js';
24
25
  export * from './custom/web/url-link-validator.action.js';
@@ -37,10 +38,8 @@ export * from './custom/data/get-entity-list.action.js';
37
38
  export * from './custom/data/run-stored-query.action.js';
38
39
  export * from './custom/data/search-query-catalog.action.js';
39
40
  export * from './custom/code-execution/execute-code.action.js';
40
- export * from './custom/files/pdf-generator.action.js';
41
41
  export * from './custom/files/pdf-extractor.action.js';
42
42
  export * from './custom/files/excel-reader.action.js';
43
- export * from './custom/files/excel-writer.action.js';
44
43
  export * from './custom/files/file-compress.action.js';
45
44
  export * from './custom/files/index.js';
46
45
  export * from './custom/files/get-file-content.action.js';
@@ -81,4 +80,5 @@ export * from './custom/visualization/shared/svg-utils.js';
81
80
  export * from './custom/visualization/shared/svg-theming.js';
82
81
  export * from './custom/visualization/shared/mermaid-types.js';
83
82
  export * from './custom/mcp/index.js';
83
+ export * from './custom/search/search.action.js';
84
84
  //# sourceMappingURL=index.d.ts.map