@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.
- package/dist/custom/files/add-document-content.action.d.ts +20 -0
- package/dist/custom/files/add-document-content.action.d.ts.map +1 -0
- package/dist/custom/files/add-document-content.action.js +74 -0
- package/dist/custom/files/add-document-content.action.js.map +1 -0
- package/dist/custom/files/base-file-storage.action.d.ts +6 -9
- package/dist/custom/files/base-file-storage.action.d.ts.map +1 -1
- package/dist/custom/files/base-file-storage.action.js +14 -39
- package/dist/custom/files/base-file-storage.action.js.map +1 -1
- package/dist/custom/files/create-document.action.d.ts +19 -0
- package/dist/custom/files/create-document.action.d.ts.map +1 -0
- package/dist/custom/files/create-document.action.js +65 -0
- package/dist/custom/files/create-document.action.js.map +1 -0
- package/dist/custom/files/excel-reader.action.js +1 -1
- package/dist/custom/files/excel-reader.action.js.map +1 -1
- package/dist/custom/files/finalize-document.action.d.ts +21 -0
- package/dist/custom/files/finalize-document.action.d.ts.map +1 -0
- package/dist/custom/files/finalize-document.action.js +94 -0
- package/dist/custom/files/finalize-document.action.js.map +1 -0
- package/dist/custom/files/index.d.ts +5 -0
- package/dist/custom/files/index.d.ts.map +1 -1
- package/dist/custom/files/index.js +6 -0
- package/dist/custom/files/index.js.map +1 -1
- package/dist/custom/files/list-storage-providers.action.d.ts.map +1 -1
- package/dist/custom/files/list-storage-providers.action.js +6 -33
- package/dist/custom/files/list-storage-providers.action.js.map +1 -1
- package/dist/custom/files/modify-document-section.action.d.ts +19 -0
- package/dist/custom/files/modify-document-section.action.d.ts.map +1 -0
- package/dist/custom/files/modify-document-section.action.js +85 -0
- package/dist/custom/files/modify-document-section.action.js.map +1 -0
- package/dist/custom/files/pdf-extractor.action.d.ts +8 -14
- package/dist/custom/files/pdf-extractor.action.d.ts.map +1 -1
- package/dist/custom/files/pdf-extractor.action.js +89 -91
- package/dist/custom/files/pdf-extractor.action.js.map +1 -1
- package/dist/custom/files/preview-document.action.d.ts +17 -0
- package/dist/custom/files/preview-document.action.d.ts.map +1 -0
- package/dist/custom/files/preview-document.action.js +50 -0
- package/dist/custom/files/preview-document.action.js.map +1 -0
- package/dist/custom/geo/scheduled-geocoding.action.d.ts +135 -0
- package/dist/custom/geo/scheduled-geocoding.action.d.ts.map +1 -0
- package/dist/custom/geo/scheduled-geocoding.action.js +428 -0
- package/dist/custom/geo/scheduled-geocoding.action.js.map +1 -0
- package/dist/custom/search/search.action.d.ts +67 -0
- package/dist/custom/search/search.action.d.ts.map +1 -0
- package/dist/custom/search/search.action.js +211 -0
- package/dist/custom/search/search.action.js.map +1 -0
- package/dist/custom/utilities/artifact-builder-service.d.ts +139 -0
- package/dist/custom/utilities/artifact-builder-service.d.ts.map +1 -0
- package/dist/custom/utilities/artifact-builder-service.js +338 -0
- package/dist/custom/utilities/artifact-builder-service.js.map +1 -0
- package/dist/custom/utilities/base-file-handler.d.ts +25 -3
- package/dist/custom/utilities/base-file-handler.d.ts.map +1 -1
- package/dist/custom/utilities/base-file-handler.js +81 -28
- package/dist/custom/utilities/base-file-handler.js.map +1 -1
- package/dist/custom/utilities/docx-renderer.d.ts +61 -0
- package/dist/custom/utilities/docx-renderer.d.ts.map +1 -0
- package/dist/custom/utilities/docx-renderer.js +409 -0
- package/dist/custom/utilities/docx-renderer.js.map +1 -0
- package/dist/custom/utilities/pdf-renderer.d.ts +53 -0
- package/dist/custom/utilities/pdf-renderer.d.ts.map +1 -0
- package/dist/custom/utilities/pdf-renderer.js +315 -0
- package/dist/custom/utilities/pdf-renderer.js.map +1 -0
- package/dist/custom/utilities/xlsx-renderer.d.ts +120 -0
- package/dist/custom/utilities/xlsx-renderer.d.ts.map +1 -0
- package/dist/custom/utilities/xlsx-renderer.js +165 -0
- package/dist/custom/utilities/xlsx-renderer.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/package.json +31 -27
- package/dist/custom/files/excel-writer.action.d.ts +0 -88
- package/dist/custom/files/excel-writer.action.d.ts.map +0 -1
- package/dist/custom/files/excel-writer.action.js +0 -326
- package/dist/custom/files/excel-writer.action.js.map +0 -1
- package/dist/custom/files/pdf-generator.action.d.ts +0 -66
- package/dist/custom/files/pdf-generator.action.d.ts.map +0 -1
- package/dist/custom/files/pdf-generator.action.js +0 -254
- package/dist/custom/files/pdf-generator.action.js.map +0 -1
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
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;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { RegisterClass } from "@memberjunction/global";
|
|
8
|
-
import { BaseFileHandlerAction } from "../utilities/base-file-handler.js";
|
|
9
|
-
import PDFDocument from "pdfkit";
|
|
10
|
-
import { marked } from "marked";
|
|
11
|
-
import { JSONParamHelper } from "../utilities/json-param-helper.js";
|
|
12
|
-
import { BaseAction } from '@memberjunction/actions';
|
|
13
|
-
/**
|
|
14
|
-
* Action that generates PDF files from HTML or Markdown content
|
|
15
|
-
* Supports various formatting options and can save to MJ Storage
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* // Generate PDF from Markdown
|
|
20
|
-
* await runAction({
|
|
21
|
-
* ActionName: 'PDF Generator',
|
|
22
|
-
* Params: [{
|
|
23
|
-
* Name: 'Content',
|
|
24
|
-
* Value: '# Report Title\n\nThis is the report content...'
|
|
25
|
-
* }, {
|
|
26
|
-
* Name: 'ContentType',
|
|
27
|
-
* Value: 'markdown'
|
|
28
|
-
* }]
|
|
29
|
-
* });
|
|
30
|
-
*
|
|
31
|
-
* // Generate PDF from HTML with custom options
|
|
32
|
-
* await runAction({
|
|
33
|
-
* ActionName: 'PDF Generator',
|
|
34
|
-
* Params: [{
|
|
35
|
-
* Name: 'Content',
|
|
36
|
-
* Value: '<h1>Report</h1><p>Content here...</p>'
|
|
37
|
-
* }, {
|
|
38
|
-
* Name: 'Options',
|
|
39
|
-
* Value: {
|
|
40
|
-
* margin: { top: 50, bottom: 50, left: 72, right: 72 },
|
|
41
|
-
* fontSize: 12,
|
|
42
|
-
* font: 'Helvetica'
|
|
43
|
-
* }
|
|
44
|
-
* }]
|
|
45
|
-
* });
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
let PDFGeneratorAction = class PDFGeneratorAction extends BaseFileHandlerAction {
|
|
49
|
-
/**
|
|
50
|
-
* Generates a PDF from HTML or Markdown content
|
|
51
|
-
*
|
|
52
|
-
* @param params - The action parameters containing:
|
|
53
|
-
* - Content: HTML or Markdown string to convert to PDF
|
|
54
|
-
* - ContentType: "html" | "markdown" (default: "html")
|
|
55
|
-
* - Options: PDF generation options object containing:
|
|
56
|
-
* - margin: { top, bottom, left, right } in points (default: 72)
|
|
57
|
-
* - fontSize: Base font size (default: 12)
|
|
58
|
-
* - font: Font family (default: 'Helvetica')
|
|
59
|
-
* - orientation: 'portrait' | 'landscape' (default: 'portrait')
|
|
60
|
-
* - size: Paper size like 'A4', 'Letter', etc. (default: 'Letter')
|
|
61
|
-
* - OutputFileID: Optional MJ Storage file ID to save to
|
|
62
|
-
* - FileName: Name for the generated PDF (default: 'document.pdf')
|
|
63
|
-
*
|
|
64
|
-
* @returns Base64 encoded PDF data or FileID if saved to storage
|
|
65
|
-
*/
|
|
66
|
-
async InternalRunAction(params) {
|
|
67
|
-
try {
|
|
68
|
-
// Extract parameters
|
|
69
|
-
const content = this.getParamValue(params, 'content');
|
|
70
|
-
const contentType = (this.getParamValue(params, 'contenttype') || 'html').toLowerCase();
|
|
71
|
-
const outputFileId = this.getParamValue(params, 'outputfileid');
|
|
72
|
-
const fileName = this.getParamValue(params, 'filename') || 'document.pdf';
|
|
73
|
-
// Validate content
|
|
74
|
-
if (!content) {
|
|
75
|
-
return {
|
|
76
|
-
Success: false,
|
|
77
|
-
Message: "Content parameter is required",
|
|
78
|
-
ResultCode: "MISSING_CONTENT"
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
// Parse options
|
|
82
|
-
let options = {
|
|
83
|
-
margin: { top: 72, bottom: 72, left: 72, right: 72 },
|
|
84
|
-
fontSize: 12,
|
|
85
|
-
font: 'Helvetica',
|
|
86
|
-
orientation: 'portrait',
|
|
87
|
-
size: 'Letter'
|
|
88
|
-
};
|
|
89
|
-
const customOptions = JSONParamHelper.getJSONParam(params, 'options');
|
|
90
|
-
if (customOptions) {
|
|
91
|
-
options = { ...options, ...customOptions };
|
|
92
|
-
}
|
|
93
|
-
// Convert content if needed
|
|
94
|
-
let htmlContent = content.toString();
|
|
95
|
-
if (contentType === 'markdown') {
|
|
96
|
-
// Convert markdown to HTML
|
|
97
|
-
htmlContent = await marked(htmlContent);
|
|
98
|
-
}
|
|
99
|
-
// Generate PDF
|
|
100
|
-
const pdfBuffer = await this.generatePDF(htmlContent, options);
|
|
101
|
-
// Save to storage if requested
|
|
102
|
-
if (outputFileId) {
|
|
103
|
-
try {
|
|
104
|
-
const fileId = await this.saveToMJStorage(pdfBuffer, fileName, 'application/pdf', params);
|
|
105
|
-
// Add output parameter
|
|
106
|
-
params.Params.push({
|
|
107
|
-
Name: 'GeneratedFileID',
|
|
108
|
-
Type: 'Output',
|
|
109
|
-
Value: fileId
|
|
110
|
-
});
|
|
111
|
-
return {
|
|
112
|
-
Success: true,
|
|
113
|
-
ResultCode: "SUCCESS_SAVED",
|
|
114
|
-
Message: JSON.stringify({
|
|
115
|
-
message: "PDF generated and saved successfully",
|
|
116
|
-
fileId: fileId,
|
|
117
|
-
fileName: fileName,
|
|
118
|
-
sizeBytes: pdfBuffer.length
|
|
119
|
-
}, null, 2)
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
// If save fails, still return the PDF data
|
|
124
|
-
console.error('Failed to save to storage:', error);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
// Return as base64
|
|
128
|
-
const base64Data = pdfBuffer.toString('base64');
|
|
129
|
-
// Add output parameter
|
|
130
|
-
params.Params.push({
|
|
131
|
-
Name: 'PDFData',
|
|
132
|
-
Type: 'Output',
|
|
133
|
-
Value: base64Data
|
|
134
|
-
});
|
|
135
|
-
return {
|
|
136
|
-
Success: true,
|
|
137
|
-
ResultCode: "SUCCESS",
|
|
138
|
-
Message: JSON.stringify({
|
|
139
|
-
message: "PDF generated successfully",
|
|
140
|
-
fileName: fileName,
|
|
141
|
-
sizeBytes: pdfBuffer.length,
|
|
142
|
-
base64Length: base64Data.length
|
|
143
|
-
}, null, 2)
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
catch (error) {
|
|
147
|
-
return {
|
|
148
|
-
Success: false,
|
|
149
|
-
Message: `Failed to generate PDF: ${error instanceof Error ? error.message : String(error)}`,
|
|
150
|
-
ResultCode: "GENERATION_FAILED"
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Generate PDF from HTML content
|
|
156
|
-
*/
|
|
157
|
-
async generatePDF(htmlContent, options) {
|
|
158
|
-
return new Promise((resolve, reject) => {
|
|
159
|
-
try {
|
|
160
|
-
// Create PDF document
|
|
161
|
-
const doc = new PDFDocument({
|
|
162
|
-
size: options.size,
|
|
163
|
-
layout: options.orientation,
|
|
164
|
-
margins: options.margin,
|
|
165
|
-
info: {
|
|
166
|
-
Title: 'Generated Document',
|
|
167
|
-
Author: 'MemberJunction',
|
|
168
|
-
Creator: 'PDF Generator Action'
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
// Collect PDF data
|
|
172
|
-
const chunks = [];
|
|
173
|
-
doc.on('data', (chunk) => chunks.push(chunk));
|
|
174
|
-
doc.on('end', () => resolve(Buffer.concat(chunks)));
|
|
175
|
-
doc.on('error', reject);
|
|
176
|
-
// Set default font
|
|
177
|
-
doc.font(options.font || 'Helvetica');
|
|
178
|
-
doc.fontSize(options.fontSize || 12);
|
|
179
|
-
// Parse and render HTML (simplified - real implementation would need proper HTML parsing)
|
|
180
|
-
const lines = this.parseHTMLToLines(htmlContent);
|
|
181
|
-
for (const line of lines) {
|
|
182
|
-
if (line.type === 'heading') {
|
|
183
|
-
doc.fontSize(line.size || 16).text(line.text, {
|
|
184
|
-
align: line.align || 'left',
|
|
185
|
-
continued: false
|
|
186
|
-
});
|
|
187
|
-
doc.fontSize(options.fontSize || 12);
|
|
188
|
-
}
|
|
189
|
-
else if (line.type === 'paragraph') {
|
|
190
|
-
doc.text(line.text, {
|
|
191
|
-
align: line.align || 'left',
|
|
192
|
-
continued: false
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
else if (line.type === 'list') {
|
|
196
|
-
doc.list([line.text], {
|
|
197
|
-
bulletRadius: 2,
|
|
198
|
-
textIndent: 20,
|
|
199
|
-
bulletIndent: 10
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
// Add spacing between elements
|
|
203
|
-
doc.moveDown(0.5);
|
|
204
|
-
}
|
|
205
|
-
// Finalize PDF
|
|
206
|
-
doc.end();
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
reject(error);
|
|
210
|
-
}
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Simple HTML parser (for demonstration - real implementation would use proper HTML parser)
|
|
215
|
-
*/
|
|
216
|
-
parseHTMLToLines(html) {
|
|
217
|
-
const lines = [];
|
|
218
|
-
// Remove HTML tags but preserve structure
|
|
219
|
-
const text = html
|
|
220
|
-
.replace(/<h1[^>]*>(.*?)<\/h1>/gi, (match, content) => {
|
|
221
|
-
lines.push({ type: 'heading', text: content.trim(), size: 24 });
|
|
222
|
-
return '';
|
|
223
|
-
})
|
|
224
|
-
.replace(/<h2[^>]*>(.*?)<\/h2>/gi, (match, content) => {
|
|
225
|
-
lines.push({ type: 'heading', text: content.trim(), size: 20 });
|
|
226
|
-
return '';
|
|
227
|
-
})
|
|
228
|
-
.replace(/<h3[^>]*>(.*?)<\/h3>/gi, (match, content) => {
|
|
229
|
-
lines.push({ type: 'heading', text: content.trim(), size: 16 });
|
|
230
|
-
return '';
|
|
231
|
-
})
|
|
232
|
-
.replace(/<p[^>]*>(.*?)<\/p>/gi, (match, content) => {
|
|
233
|
-
lines.push({ type: 'paragraph', text: content.trim() });
|
|
234
|
-
return '';
|
|
235
|
-
})
|
|
236
|
-
.replace(/<li[^>]*>(.*?)<\/li>/gi, (match, content) => {
|
|
237
|
-
lines.push({ type: 'list', text: content.trim() });
|
|
238
|
-
return '';
|
|
239
|
-
})
|
|
240
|
-
.replace(/<br\s*\/?>/gi, '\n')
|
|
241
|
-
.replace(/<[^>]+>/g, '');
|
|
242
|
-
// Add any remaining text
|
|
243
|
-
const remainingText = text.trim();
|
|
244
|
-
if (remainingText) {
|
|
245
|
-
lines.push({ type: 'paragraph', text: remainingText });
|
|
246
|
-
}
|
|
247
|
-
return lines;
|
|
248
|
-
}
|
|
249
|
-
};
|
|
250
|
-
PDFGeneratorAction = __decorate([
|
|
251
|
-
RegisterClass(BaseAction, "PDF Generator")
|
|
252
|
-
], PDFGeneratorAction);
|
|
253
|
-
export { PDFGeneratorAction };
|
|
254
|
-
//# sourceMappingURL=pdf-generator.action.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-generator.action.js","sourceRoot":"","sources":["../../../src/custom/files/pdf-generator.action.ts"],"names":[],"mappings":"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"}
|