@memberjunction/core-actions 2.54.0 → 2.56.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 (118) hide show
  1. package/dist/custom/ai/execute-ai-prompt.action.d.ts +94 -0
  2. package/dist/custom/ai/execute-ai-prompt.action.d.ts.map +1 -0
  3. package/dist/custom/ai/execute-ai-prompt.action.js +274 -0
  4. package/dist/custom/ai/execute-ai-prompt.action.js.map +1 -0
  5. package/dist/custom/communication/slack-webhook.action.d.ts +101 -0
  6. package/dist/custom/communication/slack-webhook.action.d.ts.map +1 -0
  7. package/dist/custom/communication/slack-webhook.action.js +269 -0
  8. package/dist/custom/communication/slack-webhook.action.js.map +1 -0
  9. package/dist/custom/communication/teams-webhook.action.d.ts +96 -0
  10. package/dist/custom/communication/teams-webhook.action.d.ts.map +1 -0
  11. package/dist/custom/communication/teams-webhook.action.js +275 -0
  12. package/dist/custom/communication/teams-webhook.action.js.map +1 -0
  13. package/dist/custom/data/aggregate-data.action.d.ts +91 -0
  14. package/dist/custom/data/aggregate-data.action.d.ts.map +1 -0
  15. package/dist/custom/data/aggregate-data.action.js +333 -0
  16. package/dist/custom/data/aggregate-data.action.js.map +1 -0
  17. package/dist/custom/data/csv-parser.action.d.ts +68 -0
  18. package/dist/custom/data/csv-parser.action.d.ts.map +1 -0
  19. package/dist/custom/data/csv-parser.action.js +184 -0
  20. package/dist/custom/data/csv-parser.action.js.map +1 -0
  21. package/dist/custom/data/data-mapper.action.d.ts +89 -0
  22. package/dist/custom/data/data-mapper.action.d.ts.map +1 -0
  23. package/dist/custom/data/data-mapper.action.js +325 -0
  24. package/dist/custom/data/data-mapper.action.js.map +1 -0
  25. package/dist/custom/data/json-transform.action.d.ts +57 -0
  26. package/dist/custom/data/json-transform.action.d.ts.map +1 -0
  27. package/dist/custom/data/json-transform.action.js +205 -0
  28. package/dist/custom/data/json-transform.action.js.map +1 -0
  29. package/dist/custom/data/xml-parser.action.d.ts +85 -0
  30. package/dist/custom/data/xml-parser.action.d.ts.map +1 -0
  31. package/dist/custom/data/xml-parser.action.js +326 -0
  32. package/dist/custom/data/xml-parser.action.js.map +1 -0
  33. package/dist/custom/files/excel-reader.action.d.ts +86 -0
  34. package/dist/custom/files/excel-reader.action.d.ts.map +1 -0
  35. package/dist/custom/files/excel-reader.action.js +348 -0
  36. package/dist/custom/files/excel-reader.action.js.map +1 -0
  37. package/dist/custom/files/excel-writer.action.d.ts +79 -0
  38. package/dist/custom/files/excel-writer.action.d.ts.map +1 -0
  39. package/dist/custom/files/excel-writer.action.js +325 -0
  40. package/dist/custom/files/excel-writer.action.js.map +1 -0
  41. package/dist/custom/files/file-compress.action.d.ts +90 -0
  42. package/dist/custom/files/file-compress.action.d.ts.map +1 -0
  43. package/dist/custom/files/file-compress.action.js +346 -0
  44. package/dist/custom/files/file-compress.action.js.map +1 -0
  45. package/dist/custom/files/pdf-extractor.action.d.ts +86 -0
  46. package/dist/custom/files/pdf-extractor.action.d.ts.map +1 -0
  47. package/dist/custom/files/pdf-extractor.action.js +247 -0
  48. package/dist/custom/files/pdf-extractor.action.js.map +1 -0
  49. package/dist/custom/files/pdf-generator.action.d.ts +70 -0
  50. package/dist/custom/files/pdf-generator.action.d.ts.map +1 -0
  51. package/dist/custom/files/pdf-generator.action.js +286 -0
  52. package/dist/custom/files/pdf-generator.action.js.map +1 -0
  53. package/dist/custom/integration/api-rate-limiter.action.d.ts +88 -0
  54. package/dist/custom/integration/api-rate-limiter.action.d.ts.map +1 -0
  55. package/dist/custom/integration/api-rate-limiter.action.js +363 -0
  56. package/dist/custom/integration/api-rate-limiter.action.js.map +1 -0
  57. package/dist/custom/integration/graphql-query.action.d.ts +92 -0
  58. package/dist/custom/integration/graphql-query.action.d.ts.map +1 -0
  59. package/dist/custom/integration/graphql-query.action.js +251 -0
  60. package/dist/custom/integration/graphql-query.action.js.map +1 -0
  61. package/dist/custom/integration/http-request.action.d.ts +96 -0
  62. package/dist/custom/integration/http-request.action.d.ts.map +1 -0
  63. package/dist/custom/integration/http-request.action.js +316 -0
  64. package/dist/custom/integration/http-request.action.js.map +1 -0
  65. package/dist/custom/integration/oauth-flow.action.d.ts +130 -0
  66. package/dist/custom/integration/oauth-flow.action.d.ts.map +1 -0
  67. package/dist/custom/integration/oauth-flow.action.js +624 -0
  68. package/dist/custom/integration/oauth-flow.action.js.map +1 -0
  69. package/dist/custom/security/password-strength.action.d.ts +129 -0
  70. package/dist/custom/security/password-strength.action.d.ts.map +1 -0
  71. package/dist/custom/security/password-strength.action.js +463 -0
  72. package/dist/custom/security/password-strength.action.js.map +1 -0
  73. package/dist/custom/utilities/base-file-handler.d.ts +54 -0
  74. package/dist/custom/utilities/base-file-handler.d.ts.map +1 -0
  75. package/dist/custom/utilities/base-file-handler.js +167 -0
  76. package/dist/custom/utilities/base-file-handler.js.map +1 -0
  77. package/dist/custom/utilities/index.d.ts +3 -0
  78. package/dist/custom/utilities/index.d.ts.map +1 -0
  79. package/dist/custom/utilities/index.js +19 -0
  80. package/dist/custom/utilities/index.js.map +1 -0
  81. package/dist/custom/utilities/json-param-helper.d.ts +33 -0
  82. package/dist/custom/utilities/json-param-helper.d.ts.map +1 -0
  83. package/dist/custom/utilities/json-param-helper.js +66 -0
  84. package/dist/custom/utilities/json-param-helper.js.map +1 -0
  85. package/dist/custom/web/duckduckgo-rate-limiter.d.ts +85 -0
  86. package/dist/custom/web/duckduckgo-rate-limiter.d.ts.map +1 -0
  87. package/dist/custom/web/duckduckgo-rate-limiter.js +257 -0
  88. package/dist/custom/web/duckduckgo-rate-limiter.js.map +1 -0
  89. package/dist/custom/web/web-search.action.d.ts +1 -0
  90. package/dist/custom/web/web-search.action.d.ts.map +1 -1
  91. package/dist/custom/web/web-search.action.js +48 -20
  92. package/dist/custom/web/web-search.action.js.map +1 -1
  93. package/dist/custom/workflow/conditional.action.d.ts +94 -0
  94. package/dist/custom/workflow/conditional.action.d.ts.map +1 -0
  95. package/dist/custom/workflow/conditional.action.js +274 -0
  96. package/dist/custom/workflow/conditional.action.js.map +1 -0
  97. package/dist/custom/workflow/delay.action.d.ts +76 -0
  98. package/dist/custom/workflow/delay.action.d.ts.map +1 -0
  99. package/dist/custom/workflow/delay.action.js +187 -0
  100. package/dist/custom/workflow/delay.action.js.map +1 -0
  101. package/dist/custom/workflow/loop.action.d.ts +112 -0
  102. package/dist/custom/workflow/loop.action.d.ts.map +1 -0
  103. package/dist/custom/workflow/loop.action.js +380 -0
  104. package/dist/custom/workflow/loop.action.js.map +1 -0
  105. package/dist/custom/workflow/parallel-execute.action.d.ts +105 -0
  106. package/dist/custom/workflow/parallel-execute.action.d.ts.map +1 -0
  107. package/dist/custom/workflow/parallel-execute.action.js +457 -0
  108. package/dist/custom/workflow/parallel-execute.action.js.map +1 -0
  109. package/dist/custom/workflow/retry.action.d.ts +90 -0
  110. package/dist/custom/workflow/retry.action.d.ts.map +1 -0
  111. package/dist/custom/workflow/retry.action.js +378 -0
  112. package/dist/custom/workflow/retry.action.js.map +1 -0
  113. package/dist/index.d.ts +23 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +75 -0
  116. package/dist/index.js.map +1 -1
  117. package/package.json +25 -10
  118. package/readme.md +11270 -101
@@ -0,0 +1,325 @@
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.LoadExcelWriterAction = exports.ExcelWriterAction = 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
+ const json_param_helper_1 = require("../utilities/json-param-helper");
37
+ /**
38
+ * Action that creates Excel files from JSON data
39
+ * Supports multiple sheets, formatting, and formulas
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // Create simple Excel with one sheet
44
+ * await runAction({
45
+ * ActionName: 'Excel Writer',
46
+ * Params: [{
47
+ * Name: 'Sheets',
48
+ * Value: [{
49
+ * name: 'Sales Data',
50
+ * data: [
51
+ * { Product: 'Widget A', Sales: 100, Revenue: 1000 },
52
+ * { Product: 'Widget B', Sales: 150, Revenue: 1500 }
53
+ * ]
54
+ * }]
55
+ * }]
56
+ * });
57
+ *
58
+ * // Create Excel with multiple sheets and formatting
59
+ * await runAction({
60
+ * ActionName: 'Excel Writer',
61
+ * Params: [{
62
+ * Name: 'Sheets',
63
+ * Value: [{
64
+ * name: 'Q1 Sales',
65
+ * data: salesData,
66
+ * headers: ['Product', 'Units', 'Revenue'],
67
+ * columnWidths: [20, 10, 15],
68
+ * styles: {
69
+ * headerStyle: { font: { bold: true }, fill: { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } } }
70
+ * }
71
+ * }, {
72
+ * name: 'Summary',
73
+ * data: summaryData
74
+ * }]
75
+ * }]
76
+ * });
77
+ * ```
78
+ */
79
+ let ExcelWriterAction = class ExcelWriterAction extends base_file_handler_1.BaseFileHandlerAction {
80
+ /**
81
+ * Creates Excel files from JSON data
82
+ *
83
+ * @param params - The action parameters containing:
84
+ * - Sheets: Array of sheet definitions, each containing:
85
+ * - name: Sheet name (required)
86
+ * - data: Array of data rows (required)
87
+ * - headers: Array of column headers (optional, derived from data if not provided)
88
+ * - columnWidths: Array of column widths in characters (optional)
89
+ * - styles: Object with style definitions (optional)
90
+ * - formulas: Array of formula definitions (optional)
91
+ * - OutputFileID: Optional MJ Storage file ID to save to
92
+ * - FileName: Name for the generated Excel file (default: 'workbook.xlsx')
93
+ * - Author: Author metadata (optional)
94
+ * - Title: Title metadata (optional)
95
+ * - Description: Description metadata (optional)
96
+ *
97
+ * @returns Base64 encoded Excel data or FileID if saved
98
+ */
99
+ async InternalRunAction(params) {
100
+ try {
101
+ // Extract parameters
102
+ let sheets;
103
+ try {
104
+ sheets = json_param_helper_1.JSONParamHelper.getRequiredJSONParam(params, 'sheets');
105
+ }
106
+ catch (error) {
107
+ return {
108
+ Success: false,
109
+ Message: error instanceof Error ? error.message : String(error),
110
+ ResultCode: "MISSING_SHEETS"
111
+ };
112
+ }
113
+ const outputFileId = this.getParamValue(params, 'outputfileid');
114
+ const fileName = this.getParamValue(params, 'filename') || 'workbook.xlsx';
115
+ const author = this.getParamValue(params, 'author');
116
+ const title = this.getParamValue(params, 'title');
117
+ const description = this.getParamValue(params, 'description');
118
+ if (!Array.isArray(sheets) || sheets.length === 0) {
119
+ return {
120
+ Success: false,
121
+ Message: "Sheets must be a non-empty array",
122
+ ResultCode: "INVALID_SHEETS"
123
+ };
124
+ }
125
+ // Create workbook
126
+ const workbook = new ExcelJS.Workbook();
127
+ // Set metadata
128
+ workbook.creator = author || 'MemberJunction';
129
+ workbook.created = new Date();
130
+ workbook.modified = new Date();
131
+ if (title)
132
+ workbook.title = title;
133
+ if (description)
134
+ workbook.description = description;
135
+ // Add sheets
136
+ let totalRows = 0;
137
+ let totalColumns = 0;
138
+ for (const sheetDef of sheets) {
139
+ if (!sheetDef.name || !sheetDef.data) {
140
+ return {
141
+ Success: false,
142
+ Message: "Each sheet must have a name and data",
143
+ ResultCode: "INVALID_SHEET_DEFINITION"
144
+ };
145
+ }
146
+ const worksheet = workbook.addWorksheet(sheetDef.name);
147
+ const result = this.populateWorksheet(worksheet, sheetDef);
148
+ totalRows += result.rowCount;
149
+ totalColumns = Math.max(totalColumns, result.columnCount);
150
+ }
151
+ // Generate Excel buffer
152
+ const buffer = await workbook.xlsx.writeBuffer();
153
+ // Save to storage if requested
154
+ if (outputFileId) {
155
+ try {
156
+ const fileId = await this.saveToMJStorage(buffer, fileName, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', params);
157
+ // Add output parameter
158
+ params.Params.push({
159
+ Name: 'GeneratedFileID',
160
+ Type: 'Output',
161
+ Value: fileId
162
+ });
163
+ return {
164
+ Success: true,
165
+ ResultCode: "SUCCESS_SAVED",
166
+ Message: JSON.stringify({
167
+ message: "Excel file generated and saved successfully",
168
+ fileId: fileId,
169
+ fileName: fileName,
170
+ sheets: sheets.length,
171
+ totalRows: totalRows,
172
+ sizeBytes: buffer.length
173
+ }, null, 2)
174
+ };
175
+ }
176
+ catch (error) {
177
+ // If save fails, still return the Excel data
178
+ console.error('Failed to save to storage:', error);
179
+ }
180
+ }
181
+ // Return as base64
182
+ const base64Data = buffer.toString('base64');
183
+ // Add output parameter
184
+ params.Params.push({
185
+ Name: 'ExcelData',
186
+ Type: 'Output',
187
+ Value: base64Data
188
+ });
189
+ return {
190
+ Success: true,
191
+ ResultCode: "SUCCESS",
192
+ Message: JSON.stringify({
193
+ message: "Excel file generated successfully",
194
+ fileName: fileName,
195
+ sheets: sheets.length,
196
+ totalRows: totalRows,
197
+ sizeBytes: buffer.length,
198
+ base64Length: base64Data.length
199
+ }, null, 2)
200
+ };
201
+ }
202
+ catch (error) {
203
+ return {
204
+ Success: false,
205
+ Message: `Failed to create Excel file: ${error instanceof Error ? error.message : String(error)}`,
206
+ ResultCode: "CREATION_FAILED"
207
+ };
208
+ }
209
+ }
210
+ /**
211
+ * Populate worksheet with data
212
+ */
213
+ populateWorksheet(worksheet, sheetDef) {
214
+ const data = sheetDef.data;
215
+ if (!Array.isArray(data) || data.length === 0) {
216
+ return { rowCount: 0, columnCount: 0 };
217
+ }
218
+ // Determine headers
219
+ let headers = sheetDef.headers;
220
+ if (!headers && data.length > 0 && typeof data[0] === 'object' && !Array.isArray(data[0])) {
221
+ headers = Object.keys(data[0]);
222
+ }
223
+ let rowCount = 0;
224
+ let columnCount = 0;
225
+ // Add headers if present
226
+ if (headers) {
227
+ worksheet.addRow(headers);
228
+ rowCount++;
229
+ columnCount = headers.length;
230
+ // Apply header styles if provided
231
+ if (sheetDef.styles?.headerStyle) {
232
+ const headerRow = worksheet.getRow(1);
233
+ this.applyRowStyle(headerRow, sheetDef.styles.headerStyle);
234
+ }
235
+ // Set column widths if provided
236
+ if (sheetDef.columnWidths && Array.isArray(sheetDef.columnWidths)) {
237
+ headers.forEach((header, index) => {
238
+ if (index < sheetDef.columnWidths.length) {
239
+ worksheet.getColumn(index + 1).width = sheetDef.columnWidths[index];
240
+ }
241
+ });
242
+ }
243
+ }
244
+ // Add data rows
245
+ for (const row of data) {
246
+ if (Array.isArray(row)) {
247
+ // Array of arrays
248
+ worksheet.addRow(row);
249
+ columnCount = Math.max(columnCount, row.length);
250
+ }
251
+ else if (typeof row === 'object' && headers) {
252
+ // Array of objects with headers
253
+ const rowData = headers.map(header => row[header] ?? '');
254
+ worksheet.addRow(rowData);
255
+ }
256
+ else {
257
+ // Single value
258
+ worksheet.addRow([row]);
259
+ columnCount = Math.max(columnCount, 1);
260
+ }
261
+ rowCount++;
262
+ }
263
+ // Apply data styles if provided
264
+ if (sheetDef.styles?.dataStyle) {
265
+ for (let i = headers ? 2 : 1; i <= rowCount; i++) {
266
+ const row = worksheet.getRow(i);
267
+ this.applyRowStyle(row, sheetDef.styles.dataStyle);
268
+ }
269
+ }
270
+ // Add formulas if provided
271
+ if (sheetDef.formulas && Array.isArray(sheetDef.formulas)) {
272
+ for (const formula of sheetDef.formulas) {
273
+ if (formula.cell && formula.formula) {
274
+ worksheet.getCell(formula.cell).value = { formula: formula.formula };
275
+ }
276
+ }
277
+ }
278
+ // Auto-fit columns if no widths provided
279
+ if (!sheetDef.columnWidths) {
280
+ worksheet.columns.forEach(column => {
281
+ let maxLength = 0;
282
+ column.eachCell({ includeEmpty: false }, cell => {
283
+ const columnLength = cell.value ? cell.value.toString().length : 10;
284
+ if (columnLength > maxLength) {
285
+ maxLength = columnLength;
286
+ }
287
+ });
288
+ column.width = Math.min(maxLength + 2, 50); // Cap at 50 characters
289
+ });
290
+ }
291
+ return { rowCount, columnCount };
292
+ }
293
+ /**
294
+ * Apply style to a row
295
+ */
296
+ applyRowStyle(row, style) {
297
+ if (style.font) {
298
+ row.font = style.font;
299
+ }
300
+ if (style.fill) {
301
+ row.fill = style.fill;
302
+ }
303
+ if (style.alignment) {
304
+ row.alignment = style.alignment;
305
+ }
306
+ if (style.border) {
307
+ row.border = style.border;
308
+ }
309
+ if (style.height) {
310
+ row.height = style.height;
311
+ }
312
+ }
313
+ };
314
+ exports.ExcelWriterAction = ExcelWriterAction;
315
+ exports.ExcelWriterAction = ExcelWriterAction = __decorate([
316
+ (0, global_1.RegisterClass)(base_file_handler_1.BaseFileHandlerAction, "Excel Writer")
317
+ ], ExcelWriterAction);
318
+ /**
319
+ * Loader function to ensure the ExcelWriterAction class is included in the bundle
320
+ */
321
+ function LoadExcelWriterAction() {
322
+ // Stub function to prevent tree shaking
323
+ }
324
+ exports.LoadExcelWriterAction = LoadExcelWriterAction;
325
+ //# sourceMappingURL=excel-writer.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-writer.action.js","sourceRoot":"","sources":["../../../src/custom/files/excel-writer.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileHandlerAction } from "../utilities/base-file-handler";
3
+ /**
4
+ * Action that compresses or decompresses files
5
+ * Supports ZIP format with various compression levels
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Compress multiple files into ZIP
10
+ * await runAction({
11
+ * ActionName: 'File Compress',
12
+ * Params: [{
13
+ * Name: 'Operation',
14
+ * Value: 'compress'
15
+ * }, {
16
+ * Name: 'Files',
17
+ * Value: [
18
+ * { name: 'report.pdf', data: pdfBase64Data },
19
+ * { name: 'data.csv', data: csvData }
20
+ * ]
21
+ * }]
22
+ * });
23
+ *
24
+ * // Decompress ZIP file
25
+ * await runAction({
26
+ * ActionName: 'File Compress',
27
+ * Params: [{
28
+ * Name: 'Operation',
29
+ * Value: 'decompress'
30
+ * }, {
31
+ * Name: 'FileURL',
32
+ * Value: 'https://example.com/archive.zip'
33
+ * }]
34
+ * });
35
+ *
36
+ * // Compress with options
37
+ * await runAction({
38
+ * ActionName: 'File Compress',
39
+ * Params: [{
40
+ * Name: 'Operation',
41
+ * Value: 'compress'
42
+ * }, {
43
+ * Name: 'Files',
44
+ * Value: filesArray
45
+ * }, {
46
+ * Name: 'CompressionLevel',
47
+ * Value: 9
48
+ * }, {
49
+ * Name: 'OutputFileID',
50
+ * Value: true
51
+ * }]
52
+ * });
53
+ * ```
54
+ */
55
+ export declare class FileCompressAction extends BaseFileHandlerAction {
56
+ /**
57
+ * Compresses or decompresses files
58
+ *
59
+ * @param params - The action parameters containing:
60
+ * - Operation: "compress" | "decompress" (required)
61
+ * - For compress:
62
+ * - Files: Array of file objects with { name: string, data: string/Buffer }
63
+ * - CompressionLevel: 0-9 (default: 6, 0=store only, 9=maximum compression)
64
+ * - Format: "zip" (currently only ZIP supported)
65
+ * - For decompress:
66
+ * - FileID/FileURL/Data: Input compressed file
67
+ * - OutputFileID: Save result to MJ Storage (optional)
68
+ * - FileName: Name for output file (default: 'archive.zip' or 'extracted_files.json')
69
+ *
70
+ * @returns Compressed/decompressed data
71
+ */
72
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
73
+ /**
74
+ * Compress files
75
+ */
76
+ private compress;
77
+ /**
78
+ * Decompress files
79
+ */
80
+ private decompress;
81
+ /**
82
+ * Check if string is base64
83
+ */
84
+ private isBase64;
85
+ }
86
+ /**
87
+ * Loader function to ensure the FileCompressAction class is included in the bundle
88
+ */
89
+ export declare function LoadFileCompressAction(): void;
90
+ //# sourceMappingURL=file-compress.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-compress.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/file-compress.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBACa,kBAAmB,SAAQ,qBAAqB;IAEzD;;;;;;;;;;;;;;;OAeG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2BvF;;OAEG;YACW,QAAQ;IA8ItB;;OAEG;YACW,UAAU;IAiExB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAOnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,SAErC"}