akeyless-server-commons 1.0.120 → 1.0.121
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/cjs/helpers/email_helpers.d.ts +3 -1
- package/dist/cjs/helpers/email_helpers.js +89 -2
- package/dist/cjs/helpers/email_helpers.js.map +1 -1
- package/dist/cjs/types/interfaces/email.d.ts +8 -0
- package/dist/esm/helpers/email_helpers.d.ts +3 -1
- package/dist/esm/helpers/email_helpers.js +63 -1
- package/dist/esm/helpers/email_helpers.js.map +1 -1
- package/dist/esm/types/interfaces/email.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
import { EmailData } from "../types";
|
|
1
|
+
import { EmailData, EmailAttachment } from "../types";
|
|
2
|
+
export declare const create_attachment_from_file: (file_path: string, filename?: string, disposition?: "attachment" | "inline") => Promise<EmailAttachment>;
|
|
3
|
+
export declare const create_attachment_from_buffer: (buffer: Buffer, filename: string, mime_type: string, disposition?: "attachment" | "inline") => EmailAttachment;
|
|
2
4
|
export declare const send_email: (email_data: EmailData) => Promise<void>;
|
|
@@ -1,4 +1,27 @@
|
|
|
1
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 __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -12,16 +35,75 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
36
|
};
|
|
14
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.send_email = void 0;
|
|
38
|
+
exports.send_email = exports.create_attachment_from_buffer = exports.create_attachment_from_file = void 0;
|
|
16
39
|
const mail_1 = __importDefault(require("@sendgrid/mail"));
|
|
17
40
|
const _1 = require(".");
|
|
18
41
|
const managers_1 = require("../managers");
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const create_attachment_from_file = (file_path_1, filename_1, ...args_1) => __awaiter(void 0, [file_path_1, filename_1, ...args_1], void 0, function* (file_path, filename, disposition = "attachment") {
|
|
45
|
+
try {
|
|
46
|
+
const content = fs.readFileSync(file_path);
|
|
47
|
+
const base64_content = content.toString("base64");
|
|
48
|
+
const mime_type = get_mime_type(file_path);
|
|
49
|
+
return {
|
|
50
|
+
content: base64_content,
|
|
51
|
+
filename: filename || path.basename(file_path),
|
|
52
|
+
type: mime_type,
|
|
53
|
+
disposition,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
managers_1.logger.error("error creating attachment from file", { error, file_path });
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
exports.create_attachment_from_file = create_attachment_from_file;
|
|
62
|
+
const create_attachment_from_buffer = (buffer, filename, mime_type, disposition = "attachment") => {
|
|
63
|
+
return {
|
|
64
|
+
content: buffer.toString("base64"),
|
|
65
|
+
filename,
|
|
66
|
+
type: mime_type,
|
|
67
|
+
disposition,
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
exports.create_attachment_from_buffer = create_attachment_from_buffer;
|
|
71
|
+
const get_mime_type = (file_path) => {
|
|
72
|
+
const ext = path.extname(file_path).toLowerCase();
|
|
73
|
+
const mime_types = {
|
|
74
|
+
".pdf": "application/pdf",
|
|
75
|
+
".doc": "application/msword",
|
|
76
|
+
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
77
|
+
".xls": "application/vnd.ms-excel",
|
|
78
|
+
".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
79
|
+
".ppt": "application/vnd.ms-powerpoint",
|
|
80
|
+
".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
81
|
+
".txt": "text/plain",
|
|
82
|
+
".csv": "text/csv",
|
|
83
|
+
".json": "application/json",
|
|
84
|
+
".xml": "application/xml",
|
|
85
|
+
".zip": "application/zip",
|
|
86
|
+
".rar": "application/x-rar-compressed",
|
|
87
|
+
".7z": "application/x-7z-compressed",
|
|
88
|
+
".jpg": "image/jpeg",
|
|
89
|
+
".jpeg": "image/jpeg",
|
|
90
|
+
".png": "image/png",
|
|
91
|
+
".gif": "image/gif",
|
|
92
|
+
".bmp": "image/bmp",
|
|
93
|
+
".svg": "image/svg+xml",
|
|
94
|
+
".mp3": "audio/mpeg",
|
|
95
|
+
".mp4": "video/mp4",
|
|
96
|
+
".avi": "video/x-msvideo",
|
|
97
|
+
".mov": "video/quicktime",
|
|
98
|
+
};
|
|
99
|
+
return mime_types[ext] || "application/octet-stream";
|
|
100
|
+
};
|
|
19
101
|
const send_email = (email_data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
102
|
var _a;
|
|
21
103
|
try {
|
|
22
104
|
const emails_settings = (yield (0, _1.get_document_by_id)("nx-settings", "emails"));
|
|
23
105
|
const { sendgrid_api_key, groups, default_from } = emails_settings;
|
|
24
|
-
let { from, to, cc, group_name, body_html, body_plain_text, subject, entity_for_audit } = email_data;
|
|
106
|
+
let { from, to, cc, group_name, body_html, body_plain_text, subject, entity_for_audit, attachments } = email_data;
|
|
25
107
|
/// validate data
|
|
26
108
|
if (!(to === null || to === void 0 ? void 0 : to.length) && !(group_name === null || group_name === void 0 ? void 0 : group_name.length)) {
|
|
27
109
|
throw "must supply a 'group_name' or 'to' value ";
|
|
@@ -59,6 +141,7 @@ const send_email = (email_data) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
59
141
|
to,
|
|
60
142
|
cc,
|
|
61
143
|
html: body_html,
|
|
144
|
+
attachments: attachments,
|
|
62
145
|
}
|
|
63
146
|
: {
|
|
64
147
|
subject,
|
|
@@ -66,10 +149,14 @@ const send_email = (email_data) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
66
149
|
to,
|
|
67
150
|
cc,
|
|
68
151
|
text: body_plain_text,
|
|
152
|
+
attachments: attachments,
|
|
69
153
|
};
|
|
70
154
|
if (!msg.cc) {
|
|
71
155
|
delete msg.cc;
|
|
72
156
|
}
|
|
157
|
+
if (!(attachments === null || attachments === void 0 ? void 0 : attachments.length)) {
|
|
158
|
+
delete msg.attachments;
|
|
159
|
+
}
|
|
73
160
|
/// send email
|
|
74
161
|
const email_result = yield mail_1.default.send(msg);
|
|
75
162
|
if (email_result[0].statusCode !== 202) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email_helpers.js","sourceRoot":"","sources":["../../../src/helpers/email_helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email_helpers.js","sourceRoot":"","sources":["../../../src/helpers/email_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,14 @@ export interface EmailData {
|
|
|
10
10
|
cc?: string | string[];
|
|
11
11
|
body_plain_text?: string;
|
|
12
12
|
body_html?: string;
|
|
13
|
+
attachments?: EmailAttachment[];
|
|
14
|
+
}
|
|
15
|
+
export interface EmailAttachment {
|
|
16
|
+
content: string;
|
|
17
|
+
filename: string;
|
|
18
|
+
type?: string;
|
|
19
|
+
disposition?: "attachment" | "inline";
|
|
20
|
+
content_id?: string;
|
|
13
21
|
}
|
|
14
22
|
export interface EmailSettings {
|
|
15
23
|
default_from: {
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
import { EmailData } from "../types";
|
|
1
|
+
import { EmailData, EmailAttachment } from "../types";
|
|
2
|
+
export declare const create_attachment_from_file: (file_path: string, filename?: string, disposition?: "attachment" | "inline") => Promise<EmailAttachment>;
|
|
3
|
+
export declare const create_attachment_from_buffer: (buffer: Buffer, filename: string, mime_type: string, disposition?: "attachment" | "inline") => EmailAttachment;
|
|
2
4
|
export declare const send_email: (email_data: EmailData) => Promise<void>;
|
|
@@ -10,12 +10,69 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import sendgrid from "@sendgrid/mail";
|
|
11
11
|
import { add_audit_record, get_document_by_id } from ".";
|
|
12
12
|
import { logger } from "../managers";
|
|
13
|
+
import * as fs from "fs";
|
|
14
|
+
import * as path from "path";
|
|
15
|
+
export const create_attachment_from_file = (file_path_1, filename_1, ...args_1) => __awaiter(void 0, [file_path_1, filename_1, ...args_1], void 0, function* (file_path, filename, disposition = "attachment") {
|
|
16
|
+
try {
|
|
17
|
+
const content = fs.readFileSync(file_path);
|
|
18
|
+
const base64_content = content.toString("base64");
|
|
19
|
+
const mime_type = get_mime_type(file_path);
|
|
20
|
+
return {
|
|
21
|
+
content: base64_content,
|
|
22
|
+
filename: filename || path.basename(file_path),
|
|
23
|
+
type: mime_type,
|
|
24
|
+
disposition,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
logger.error("error creating attachment from file", { error, file_path });
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
export const create_attachment_from_buffer = (buffer, filename, mime_type, disposition = "attachment") => {
|
|
33
|
+
return {
|
|
34
|
+
content: buffer.toString("base64"),
|
|
35
|
+
filename,
|
|
36
|
+
type: mime_type,
|
|
37
|
+
disposition,
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
const get_mime_type = (file_path) => {
|
|
41
|
+
const ext = path.extname(file_path).toLowerCase();
|
|
42
|
+
const mime_types = {
|
|
43
|
+
".pdf": "application/pdf",
|
|
44
|
+
".doc": "application/msword",
|
|
45
|
+
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
46
|
+
".xls": "application/vnd.ms-excel",
|
|
47
|
+
".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
48
|
+
".ppt": "application/vnd.ms-powerpoint",
|
|
49
|
+
".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
50
|
+
".txt": "text/plain",
|
|
51
|
+
".csv": "text/csv",
|
|
52
|
+
".json": "application/json",
|
|
53
|
+
".xml": "application/xml",
|
|
54
|
+
".zip": "application/zip",
|
|
55
|
+
".rar": "application/x-rar-compressed",
|
|
56
|
+
".7z": "application/x-7z-compressed",
|
|
57
|
+
".jpg": "image/jpeg",
|
|
58
|
+
".jpeg": "image/jpeg",
|
|
59
|
+
".png": "image/png",
|
|
60
|
+
".gif": "image/gif",
|
|
61
|
+
".bmp": "image/bmp",
|
|
62
|
+
".svg": "image/svg+xml",
|
|
63
|
+
".mp3": "audio/mpeg",
|
|
64
|
+
".mp4": "video/mp4",
|
|
65
|
+
".avi": "video/x-msvideo",
|
|
66
|
+
".mov": "video/quicktime",
|
|
67
|
+
};
|
|
68
|
+
return mime_types[ext] || "application/octet-stream";
|
|
69
|
+
};
|
|
13
70
|
export const send_email = (email_data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
71
|
var _a;
|
|
15
72
|
try {
|
|
16
73
|
const emails_settings = (yield get_document_by_id("nx-settings", "emails"));
|
|
17
74
|
const { sendgrid_api_key, groups, default_from } = emails_settings;
|
|
18
|
-
let { from, to, cc, group_name, body_html, body_plain_text, subject, entity_for_audit } = email_data;
|
|
75
|
+
let { from, to, cc, group_name, body_html, body_plain_text, subject, entity_for_audit, attachments } = email_data;
|
|
19
76
|
/// validate data
|
|
20
77
|
if (!(to === null || to === void 0 ? void 0 : to.length) && !(group_name === null || group_name === void 0 ? void 0 : group_name.length)) {
|
|
21
78
|
throw "must supply a 'group_name' or 'to' value ";
|
|
@@ -53,6 +110,7 @@ export const send_email = (email_data) => __awaiter(void 0, void 0, void 0, func
|
|
|
53
110
|
to,
|
|
54
111
|
cc,
|
|
55
112
|
html: body_html,
|
|
113
|
+
attachments: attachments,
|
|
56
114
|
}
|
|
57
115
|
: {
|
|
58
116
|
subject,
|
|
@@ -60,10 +118,14 @@ export const send_email = (email_data) => __awaiter(void 0, void 0, void 0, func
|
|
|
60
118
|
to,
|
|
61
119
|
cc,
|
|
62
120
|
text: body_plain_text,
|
|
121
|
+
attachments: attachments,
|
|
63
122
|
};
|
|
64
123
|
if (!msg.cc) {
|
|
65
124
|
delete msg.cc;
|
|
66
125
|
}
|
|
126
|
+
if (!(attachments === null || attachments === void 0 ? void 0 : attachments.length)) {
|
|
127
|
+
delete msg.attachments;
|
|
128
|
+
}
|
|
67
129
|
/// send email
|
|
68
130
|
const email_result = yield sendgrid.send(msg);
|
|
69
131
|
if (email_result[0].statusCode !== 202) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email_helpers.js","sourceRoot":"","sources":["../../../src/helpers/email_helpers.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,QAA8B,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"email_helpers.js","sourceRoot":"","sources":["../../../src/helpers/email_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,14 @@ export interface EmailData {
|
|
|
10
10
|
cc?: string | string[];
|
|
11
11
|
body_plain_text?: string;
|
|
12
12
|
body_html?: string;
|
|
13
|
+
attachments?: EmailAttachment[];
|
|
14
|
+
}
|
|
15
|
+
export interface EmailAttachment {
|
|
16
|
+
content: string;
|
|
17
|
+
filename: string;
|
|
18
|
+
type?: string;
|
|
19
|
+
disposition?: "attachment" | "inline";
|
|
20
|
+
content_id?: string;
|
|
13
21
|
}
|
|
14
22
|
export interface EmailSettings {
|
|
15
23
|
default_from: {
|