@memberjunction/core-actions 2.54.0 → 2.55.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/dist/custom/ai/execute-ai-prompt.action.d.ts +94 -0
- package/dist/custom/ai/execute-ai-prompt.action.d.ts.map +1 -0
- package/dist/custom/ai/execute-ai-prompt.action.js +274 -0
- package/dist/custom/ai/execute-ai-prompt.action.js.map +1 -0
- package/dist/custom/communication/slack-webhook.action.d.ts +101 -0
- package/dist/custom/communication/slack-webhook.action.d.ts.map +1 -0
- package/dist/custom/communication/slack-webhook.action.js +269 -0
- package/dist/custom/communication/slack-webhook.action.js.map +1 -0
- package/dist/custom/communication/teams-webhook.action.d.ts +96 -0
- package/dist/custom/communication/teams-webhook.action.d.ts.map +1 -0
- package/dist/custom/communication/teams-webhook.action.js +275 -0
- package/dist/custom/communication/teams-webhook.action.js.map +1 -0
- package/dist/custom/data/aggregate-data.action.d.ts +91 -0
- package/dist/custom/data/aggregate-data.action.d.ts.map +1 -0
- package/dist/custom/data/aggregate-data.action.js +333 -0
- package/dist/custom/data/aggregate-data.action.js.map +1 -0
- package/dist/custom/data/csv-parser.action.d.ts +68 -0
- package/dist/custom/data/csv-parser.action.d.ts.map +1 -0
- package/dist/custom/data/csv-parser.action.js +184 -0
- package/dist/custom/data/csv-parser.action.js.map +1 -0
- package/dist/custom/data/data-mapper.action.d.ts +89 -0
- package/dist/custom/data/data-mapper.action.d.ts.map +1 -0
- package/dist/custom/data/data-mapper.action.js +325 -0
- package/dist/custom/data/data-mapper.action.js.map +1 -0
- package/dist/custom/data/json-transform.action.d.ts +57 -0
- package/dist/custom/data/json-transform.action.d.ts.map +1 -0
- package/dist/custom/data/json-transform.action.js +205 -0
- package/dist/custom/data/json-transform.action.js.map +1 -0
- package/dist/custom/data/xml-parser.action.d.ts +85 -0
- package/dist/custom/data/xml-parser.action.d.ts.map +1 -0
- package/dist/custom/data/xml-parser.action.js +326 -0
- package/dist/custom/data/xml-parser.action.js.map +1 -0
- package/dist/custom/files/excel-reader.action.d.ts +86 -0
- package/dist/custom/files/excel-reader.action.d.ts.map +1 -0
- package/dist/custom/files/excel-reader.action.js +348 -0
- package/dist/custom/files/excel-reader.action.js.map +1 -0
- package/dist/custom/files/excel-writer.action.d.ts +79 -0
- package/dist/custom/files/excel-writer.action.d.ts.map +1 -0
- package/dist/custom/files/excel-writer.action.js +325 -0
- package/dist/custom/files/excel-writer.action.js.map +1 -0
- package/dist/custom/files/file-compress.action.d.ts +90 -0
- package/dist/custom/files/file-compress.action.d.ts.map +1 -0
- package/dist/custom/files/file-compress.action.js +346 -0
- package/dist/custom/files/file-compress.action.js.map +1 -0
- package/dist/custom/files/pdf-extractor.action.d.ts +86 -0
- package/dist/custom/files/pdf-extractor.action.d.ts.map +1 -0
- package/dist/custom/files/pdf-extractor.action.js +247 -0
- package/dist/custom/files/pdf-extractor.action.js.map +1 -0
- package/dist/custom/files/pdf-generator.action.d.ts +70 -0
- package/dist/custom/files/pdf-generator.action.d.ts.map +1 -0
- package/dist/custom/files/pdf-generator.action.js +286 -0
- package/dist/custom/files/pdf-generator.action.js.map +1 -0
- package/dist/custom/integration/api-rate-limiter.action.d.ts +88 -0
- package/dist/custom/integration/api-rate-limiter.action.d.ts.map +1 -0
- package/dist/custom/integration/api-rate-limiter.action.js +363 -0
- package/dist/custom/integration/api-rate-limiter.action.js.map +1 -0
- package/dist/custom/integration/graphql-query.action.d.ts +92 -0
- package/dist/custom/integration/graphql-query.action.d.ts.map +1 -0
- package/dist/custom/integration/graphql-query.action.js +251 -0
- package/dist/custom/integration/graphql-query.action.js.map +1 -0
- package/dist/custom/integration/http-request.action.d.ts +96 -0
- package/dist/custom/integration/http-request.action.d.ts.map +1 -0
- package/dist/custom/integration/http-request.action.js +316 -0
- package/dist/custom/integration/http-request.action.js.map +1 -0
- package/dist/custom/integration/oauth-flow.action.d.ts +130 -0
- package/dist/custom/integration/oauth-flow.action.d.ts.map +1 -0
- package/dist/custom/integration/oauth-flow.action.js +624 -0
- package/dist/custom/integration/oauth-flow.action.js.map +1 -0
- package/dist/custom/security/password-strength.action.d.ts +129 -0
- package/dist/custom/security/password-strength.action.d.ts.map +1 -0
- package/dist/custom/security/password-strength.action.js +463 -0
- package/dist/custom/security/password-strength.action.js.map +1 -0
- package/dist/custom/utilities/base-file-handler.d.ts +54 -0
- package/dist/custom/utilities/base-file-handler.d.ts.map +1 -0
- package/dist/custom/utilities/base-file-handler.js +167 -0
- package/dist/custom/utilities/base-file-handler.js.map +1 -0
- package/dist/custom/utilities/index.d.ts +3 -0
- package/dist/custom/utilities/index.d.ts.map +1 -0
- package/dist/custom/utilities/index.js +19 -0
- package/dist/custom/utilities/index.js.map +1 -0
- package/dist/custom/utilities/json-param-helper.d.ts +33 -0
- package/dist/custom/utilities/json-param-helper.d.ts.map +1 -0
- package/dist/custom/utilities/json-param-helper.js +66 -0
- package/dist/custom/utilities/json-param-helper.js.map +1 -0
- package/dist/custom/web/duckduckgo-rate-limiter.d.ts +72 -0
- package/dist/custom/web/duckduckgo-rate-limiter.d.ts.map +1 -0
- package/dist/custom/web/duckduckgo-rate-limiter.js +175 -0
- package/dist/custom/web/duckduckgo-rate-limiter.js.map +1 -0
- package/dist/custom/web/web-search.action.d.ts +1 -0
- package/dist/custom/web/web-search.action.d.ts.map +1 -1
- package/dist/custom/web/web-search.action.js +48 -20
- package/dist/custom/web/web-search.action.js.map +1 -1
- package/dist/custom/workflow/conditional.action.d.ts +94 -0
- package/dist/custom/workflow/conditional.action.d.ts.map +1 -0
- package/dist/custom/workflow/conditional.action.js +274 -0
- package/dist/custom/workflow/conditional.action.js.map +1 -0
- package/dist/custom/workflow/delay.action.d.ts +76 -0
- package/dist/custom/workflow/delay.action.d.ts.map +1 -0
- package/dist/custom/workflow/delay.action.js +187 -0
- package/dist/custom/workflow/delay.action.js.map +1 -0
- package/dist/custom/workflow/loop.action.d.ts +112 -0
- package/dist/custom/workflow/loop.action.d.ts.map +1 -0
- package/dist/custom/workflow/loop.action.js +380 -0
- package/dist/custom/workflow/loop.action.js.map +1 -0
- package/dist/custom/workflow/parallel-execute.action.d.ts +105 -0
- package/dist/custom/workflow/parallel-execute.action.d.ts.map +1 -0
- package/dist/custom/workflow/parallel-execute.action.js +457 -0
- package/dist/custom/workflow/parallel-execute.action.js.map +1 -0
- package/dist/custom/workflow/retry.action.d.ts +90 -0
- package/dist/custom/workflow/retry.action.d.ts.map +1 -0
- package/dist/custom/workflow/retry.action.js +378 -0
- package/dist/custom/workflow/retry.action.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -1
- package/package.json +25 -10
- package/readme.md +11270 -101
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.LoadExcelReaderAction = exports.ExcelReaderAction = void 0;
|
|
33
|
+
const global_1 = require("@memberjunction/global");
|
|
34
|
+
const base_file_handler_1 = require("../utilities/base-file-handler");
|
|
35
|
+
const ExcelJS = __importStar(require("exceljs"));
|
|
36
|
+
/**
|
|
37
|
+
* Action that reads Excel files and converts them to JSON format
|
|
38
|
+
* Supports multiple sheets, ranges, and various data types
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // Read entire Excel file
|
|
43
|
+
* await runAction({
|
|
44
|
+
* ActionName: 'Excel Reader',
|
|
45
|
+
* Params: [{
|
|
46
|
+
* Name: 'FileURL',
|
|
47
|
+
* Value: 'https://example.com/data.xlsx'
|
|
48
|
+
* }]
|
|
49
|
+
* });
|
|
50
|
+
*
|
|
51
|
+
* // Read specific sheet with headers
|
|
52
|
+
* await runAction({
|
|
53
|
+
* ActionName: 'Excel Reader',
|
|
54
|
+
* Params: [{
|
|
55
|
+
* Name: 'FileID',
|
|
56
|
+
* Value: 'uuid-of-excel-file'
|
|
57
|
+
* }, {
|
|
58
|
+
* Name: 'SheetName',
|
|
59
|
+
* Value: 'Sales Data'
|
|
60
|
+
* }, {
|
|
61
|
+
* Name: 'HasHeaders',
|
|
62
|
+
* Value: true
|
|
63
|
+
* }]
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* // Read specific range
|
|
67
|
+
* await runAction({
|
|
68
|
+
* ActionName: 'Excel Reader',
|
|
69
|
+
* Params: [{
|
|
70
|
+
* Name: 'ExcelData',
|
|
71
|
+
* Value: base64ExcelData
|
|
72
|
+
* }, {
|
|
73
|
+
* Name: 'Range',
|
|
74
|
+
* Value: 'A1:D10'
|
|
75
|
+
* }]
|
|
76
|
+
* });
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
let ExcelReaderAction = class ExcelReaderAction extends base_file_handler_1.BaseFileHandlerAction {
|
|
80
|
+
/**
|
|
81
|
+
* Reads Excel files and converts to JSON
|
|
82
|
+
*
|
|
83
|
+
* @param params - The action parameters containing:
|
|
84
|
+
* - FileID: UUID of MJ Storage file (optional)
|
|
85
|
+
* - FileURL: URL of Excel file (optional)
|
|
86
|
+
* - ExcelData: Base64 encoded Excel data (optional)
|
|
87
|
+
* - SheetName: Specific sheet name to read (optional, default: first sheet)
|
|
88
|
+
* - SheetIndex: Sheet index (0-based, alternative to SheetName)
|
|
89
|
+
* - Range: A1 notation range like 'A1:D10' (optional)
|
|
90
|
+
* - HasHeaders: Boolean - first row contains headers (default: true)
|
|
91
|
+
* - DateFormat: How to format dates - 'ISO' | 'Excel' | 'Local' (default: 'ISO')
|
|
92
|
+
* - EmptyCellValue: Value to use for empty cells (default: null)
|
|
93
|
+
* - IncludeHidden: Include hidden rows/columns (default: false)
|
|
94
|
+
*
|
|
95
|
+
* @returns Array of objects (if headers) or array of arrays
|
|
96
|
+
*/
|
|
97
|
+
async InternalRunAction(params) {
|
|
98
|
+
try {
|
|
99
|
+
// Get file content
|
|
100
|
+
const fileContent = await this.getFileContent(params, 'exceldata', 'fileid', 'fileurl');
|
|
101
|
+
// Get parameters
|
|
102
|
+
const sheetName = this.getParamValue(params, 'sheetname');
|
|
103
|
+
const sheetIndex = this.getNumericParam(params, 'sheetindex', -1);
|
|
104
|
+
const range = this.getParamValue(params, 'range');
|
|
105
|
+
const hasHeaders = this.getBooleanParam(params, 'hasheaders', true);
|
|
106
|
+
const dateFormat = this.getParamValue(params, 'dateformat') || 'ISO';
|
|
107
|
+
const emptyCellValue = this.getParamValue(params, 'emptycellvalue') ?? null;
|
|
108
|
+
const includeHidden = this.getBooleanParam(params, 'includehidden', false);
|
|
109
|
+
// Convert to Buffer if needed
|
|
110
|
+
let excelBuffer;
|
|
111
|
+
if (typeof fileContent.content === 'string') {
|
|
112
|
+
// Check if it's base64
|
|
113
|
+
if (this.isBase64(fileContent.content)) {
|
|
114
|
+
excelBuffer = Buffer.from(fileContent.content, 'base64');
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
excelBuffer = Buffer.from(fileContent.content, 'binary');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
excelBuffer = fileContent.content;
|
|
122
|
+
}
|
|
123
|
+
// Read Excel file
|
|
124
|
+
const workbook = new ExcelJS.Workbook();
|
|
125
|
+
await workbook.xlsx.load(excelBuffer);
|
|
126
|
+
// Get the target worksheet
|
|
127
|
+
let worksheet;
|
|
128
|
+
if (sheetName) {
|
|
129
|
+
worksheet = workbook.getWorksheet(sheetName);
|
|
130
|
+
if (!worksheet) {
|
|
131
|
+
return {
|
|
132
|
+
Success: false,
|
|
133
|
+
Message: `Sheet '${sheetName}' not found in Excel file`,
|
|
134
|
+
ResultCode: "SHEET_NOT_FOUND"
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (sheetIndex >= 0) {
|
|
139
|
+
worksheet = workbook.getWorksheet(sheetIndex + 1); // ExcelJS uses 1-based index
|
|
140
|
+
if (!worksheet) {
|
|
141
|
+
return {
|
|
142
|
+
Success: false,
|
|
143
|
+
Message: `Sheet index ${sheetIndex} not found in Excel file`,
|
|
144
|
+
ResultCode: "SHEET_NOT_FOUND"
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Get first worksheet
|
|
150
|
+
worksheet = workbook.worksheets[0];
|
|
151
|
+
if (!worksheet) {
|
|
152
|
+
return {
|
|
153
|
+
Success: false,
|
|
154
|
+
Message: "No worksheets found in Excel file",
|
|
155
|
+
ResultCode: "NO_SHEETS"
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Extract data
|
|
160
|
+
const data = this.extractSheetData(worksheet, {
|
|
161
|
+
range,
|
|
162
|
+
hasHeaders,
|
|
163
|
+
dateFormat,
|
|
164
|
+
emptyCellValue,
|
|
165
|
+
includeHidden
|
|
166
|
+
});
|
|
167
|
+
// Get workbook metadata
|
|
168
|
+
const metadata = {
|
|
169
|
+
sheetName: worksheet.name,
|
|
170
|
+
totalSheets: workbook.worksheets.length,
|
|
171
|
+
sheetNames: workbook.worksheets.map(ws => ws.name),
|
|
172
|
+
rowCount: data.rowCount,
|
|
173
|
+
columnCount: data.columnCount,
|
|
174
|
+
source: fileContent.source,
|
|
175
|
+
fileName: fileContent.fileName
|
|
176
|
+
};
|
|
177
|
+
// Add output parameter
|
|
178
|
+
params.Params.push({
|
|
179
|
+
Name: 'ExtractedData',
|
|
180
|
+
Type: 'Output',
|
|
181
|
+
Value: data.data
|
|
182
|
+
});
|
|
183
|
+
return {
|
|
184
|
+
Success: true,
|
|
185
|
+
ResultCode: "SUCCESS",
|
|
186
|
+
Message: JSON.stringify({
|
|
187
|
+
data: data.data,
|
|
188
|
+
...metadata,
|
|
189
|
+
headers: data.headers
|
|
190
|
+
}, null, 2)
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
return {
|
|
195
|
+
Success: false,
|
|
196
|
+
Message: `Failed to read Excel file: ${error instanceof Error ? error.message : String(error)}`,
|
|
197
|
+
ResultCode: "READ_FAILED"
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Check if string is base64 encoded
|
|
203
|
+
*/
|
|
204
|
+
isBase64(str) {
|
|
205
|
+
try {
|
|
206
|
+
return Buffer.from(str, 'base64').toString('base64') === str;
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Extract data from worksheet
|
|
214
|
+
*/
|
|
215
|
+
extractSheetData(worksheet, options) {
|
|
216
|
+
const rows = [];
|
|
217
|
+
let headers = [];
|
|
218
|
+
let rowCount = 0;
|
|
219
|
+
let columnCount = 0;
|
|
220
|
+
// Determine range
|
|
221
|
+
let startRow = 1;
|
|
222
|
+
let endRow = worksheet.rowCount;
|
|
223
|
+
let startCol = 1;
|
|
224
|
+
let endCol = worksheet.columnCount;
|
|
225
|
+
if (options.range) {
|
|
226
|
+
const rangeMatch = options.range.match(/([A-Z]+)(\d+):([A-Z]+)(\d+)/);
|
|
227
|
+
if (rangeMatch) {
|
|
228
|
+
startCol = this.columnToNumber(rangeMatch[1]);
|
|
229
|
+
startRow = parseInt(rangeMatch[2]);
|
|
230
|
+
endCol = this.columnToNumber(rangeMatch[3]);
|
|
231
|
+
endRow = parseInt(rangeMatch[4]);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Extract headers if present
|
|
235
|
+
if (options.hasHeaders && startRow <= endRow) {
|
|
236
|
+
const headerRow = worksheet.getRow(startRow);
|
|
237
|
+
if (!options.includeHidden && headerRow.hidden) {
|
|
238
|
+
startRow++;
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
for (let col = startCol; col <= endCol; col++) {
|
|
242
|
+
const cell = headerRow.getCell(col);
|
|
243
|
+
headers.push(this.getCellValue(cell, options) || `Column${col}`);
|
|
244
|
+
}
|
|
245
|
+
startRow++;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Extract data rows
|
|
249
|
+
for (let rowNum = startRow; rowNum <= endRow; rowNum++) {
|
|
250
|
+
const row = worksheet.getRow(rowNum);
|
|
251
|
+
// Skip hidden rows if requested
|
|
252
|
+
if (!options.includeHidden && row.hidden) {
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
const rowData = options.hasHeaders ? {} : [];
|
|
256
|
+
let hasData = false;
|
|
257
|
+
for (let col = startCol; col <= endCol; col++) {
|
|
258
|
+
const cell = row.getCell(col);
|
|
259
|
+
const value = this.getCellValue(cell, options);
|
|
260
|
+
if (value !== null && value !== undefined && value !== '') {
|
|
261
|
+
hasData = true;
|
|
262
|
+
}
|
|
263
|
+
if (options.hasHeaders) {
|
|
264
|
+
const header = headers[col - startCol];
|
|
265
|
+
rowData[header] = value;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
rowData.push(value);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
// Only add row if it has data
|
|
272
|
+
if (hasData || options.emptyCellValue !== null) {
|
|
273
|
+
rows.push(rowData);
|
|
274
|
+
rowCount++;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
columnCount = endCol - startCol + 1;
|
|
278
|
+
return {
|
|
279
|
+
data: rows,
|
|
280
|
+
headers: options.hasHeaders ? headers : null,
|
|
281
|
+
rowCount,
|
|
282
|
+
columnCount
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get cell value with proper type handling
|
|
287
|
+
*/
|
|
288
|
+
getCellValue(cell, options) {
|
|
289
|
+
if (!cell || cell.value === null || cell.value === undefined) {
|
|
290
|
+
return options.emptyCellValue;
|
|
291
|
+
}
|
|
292
|
+
// Handle different cell types
|
|
293
|
+
switch (cell.type) {
|
|
294
|
+
case ExcelJS.ValueType.Number:
|
|
295
|
+
return cell.value;
|
|
296
|
+
case ExcelJS.ValueType.String:
|
|
297
|
+
return cell.value;
|
|
298
|
+
case ExcelJS.ValueType.Date:
|
|
299
|
+
const date = cell.value;
|
|
300
|
+
switch (options.dateFormat) {
|
|
301
|
+
case 'Excel':
|
|
302
|
+
return cell.value; // Return as Excel serial number
|
|
303
|
+
case 'Local':
|
|
304
|
+
return date.toLocaleString();
|
|
305
|
+
case 'ISO':
|
|
306
|
+
default:
|
|
307
|
+
return date.toISOString();
|
|
308
|
+
}
|
|
309
|
+
case ExcelJS.ValueType.Boolean:
|
|
310
|
+
return cell.value;
|
|
311
|
+
case ExcelJS.ValueType.Error:
|
|
312
|
+
return `#ERROR: ${cell.value}`;
|
|
313
|
+
case ExcelJS.ValueType.Formula:
|
|
314
|
+
// Return the result of the formula
|
|
315
|
+
return cell.value.result || options.emptyCellValue;
|
|
316
|
+
case ExcelJS.ValueType.Hyperlink:
|
|
317
|
+
const hyperlink = cell.value;
|
|
318
|
+
return hyperlink.text || hyperlink.hyperlink;
|
|
319
|
+
case ExcelJS.ValueType.RichText:
|
|
320
|
+
const richText = cell.value;
|
|
321
|
+
return richText.richText.map(rt => rt.text).join('');
|
|
322
|
+
default:
|
|
323
|
+
return cell.value;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Convert column letter to number (A=1, B=2, etc.)
|
|
328
|
+
*/
|
|
329
|
+
columnToNumber(column) {
|
|
330
|
+
let result = 0;
|
|
331
|
+
for (let i = 0; i < column.length; i++) {
|
|
332
|
+
result = result * 26 + (column.charCodeAt(i) - 64);
|
|
333
|
+
}
|
|
334
|
+
return result;
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
exports.ExcelReaderAction = ExcelReaderAction;
|
|
338
|
+
exports.ExcelReaderAction = ExcelReaderAction = __decorate([
|
|
339
|
+
(0, global_1.RegisterClass)(base_file_handler_1.BaseFileHandlerAction, "Excel Reader")
|
|
340
|
+
], ExcelReaderAction);
|
|
341
|
+
/**
|
|
342
|
+
* Loader function to ensure the ExcelReaderAction class is included in the bundle
|
|
343
|
+
*/
|
|
344
|
+
function LoadExcelReaderAction() {
|
|
345
|
+
// Stub function to prevent tree shaking
|
|
346
|
+
}
|
|
347
|
+
exports.LoadExcelReaderAction = LoadExcelReaderAction;
|
|
348
|
+
//# sourceMappingURL=excel-reader.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"excel-reader.action.js","sourceRoot":"","sources":["../../../src/custom/files/excel-reader.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
|
+
import { BaseFileHandlerAction } from "../utilities/base-file-handler";
|
|
3
|
+
/**
|
|
4
|
+
* Action that creates Excel files from JSON data
|
|
5
|
+
* Supports multiple sheets, formatting, and formulas
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // Create simple Excel with one sheet
|
|
10
|
+
* await runAction({
|
|
11
|
+
* ActionName: 'Excel Writer',
|
|
12
|
+
* Params: [{
|
|
13
|
+
* Name: 'Sheets',
|
|
14
|
+
* Value: [{
|
|
15
|
+
* name: 'Sales Data',
|
|
16
|
+
* data: [
|
|
17
|
+
* { Product: 'Widget A', Sales: 100, Revenue: 1000 },
|
|
18
|
+
* { Product: 'Widget B', Sales: 150, Revenue: 1500 }
|
|
19
|
+
* ]
|
|
20
|
+
* }]
|
|
21
|
+
* }]
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* // Create Excel with multiple sheets and formatting
|
|
25
|
+
* await runAction({
|
|
26
|
+
* ActionName: 'Excel Writer',
|
|
27
|
+
* Params: [{
|
|
28
|
+
* Name: 'Sheets',
|
|
29
|
+
* Value: [{
|
|
30
|
+
* name: 'Q1 Sales',
|
|
31
|
+
* data: salesData,
|
|
32
|
+
* headers: ['Product', 'Units', 'Revenue'],
|
|
33
|
+
* columnWidths: [20, 10, 15],
|
|
34
|
+
* styles: {
|
|
35
|
+
* headerStyle: { font: { bold: true }, fill: { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } } }
|
|
36
|
+
* }
|
|
37
|
+
* }, {
|
|
38
|
+
* name: 'Summary',
|
|
39
|
+
* data: summaryData
|
|
40
|
+
* }]
|
|
41
|
+
* }]
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare class ExcelWriterAction extends BaseFileHandlerAction {
|
|
46
|
+
/**
|
|
47
|
+
* Creates Excel files from JSON data
|
|
48
|
+
*
|
|
49
|
+
* @param params - The action parameters containing:
|
|
50
|
+
* - Sheets: Array of sheet definitions, each containing:
|
|
51
|
+
* - name: Sheet name (required)
|
|
52
|
+
* - data: Array of data rows (required)
|
|
53
|
+
* - headers: Array of column headers (optional, derived from data if not provided)
|
|
54
|
+
* - columnWidths: Array of column widths in characters (optional)
|
|
55
|
+
* - styles: Object with style definitions (optional)
|
|
56
|
+
* - formulas: Array of formula definitions (optional)
|
|
57
|
+
* - OutputFileID: Optional MJ Storage file ID to save to
|
|
58
|
+
* - FileName: Name for the generated Excel file (default: 'workbook.xlsx')
|
|
59
|
+
* - Author: Author metadata (optional)
|
|
60
|
+
* - Title: Title metadata (optional)
|
|
61
|
+
* - Description: Description metadata (optional)
|
|
62
|
+
*
|
|
63
|
+
* @returns Base64 encoded Excel data or FileID if saved
|
|
64
|
+
*/
|
|
65
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
66
|
+
/**
|
|
67
|
+
* Populate worksheet with data
|
|
68
|
+
*/
|
|
69
|
+
private populateWorksheet;
|
|
70
|
+
/**
|
|
71
|
+
* Apply style to a row
|
|
72
|
+
*/
|
|
73
|
+
private applyRowStyle;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Loader function to ensure the ExcelWriterAction class is included in the bundle
|
|
77
|
+
*/
|
|
78
|
+
export declare function LoadExcelWriterAction(): void;
|
|
79
|
+
//# sourceMappingURL=excel-writer.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"excel-writer.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/excel-writer.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAIvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAExD;;;;;;;;;;;;;;;;;;OAkBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+HvF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyFzB;;OAEG;IACH,OAAO,CAAC,aAAa;CAiBxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,SAEpC"}
|