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.
@@ -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":"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"}
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":"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"}
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;AACrC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,2BAA2B,GAAG,qCAIf,EAAE,4EAH1B,SAAiB,EACjB,QAAiB,EACjB,cAAuC,YAAY;IAEnD,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAE3C,OAAO;YACH,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9C,IAAI,EAAE,SAAS;YACf,WAAW;SACd,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1E,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CACzC,MAAc,EACd,QAAgB,EAChB,SAAiB,EACjB,cAAuC,YAAY,EACpC,EAAE;IACjB,OAAO;QACH,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClC,QAAQ;QACR,IAAI,EAAE,SAAS;QACf,WAAW;KACd,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAU,EAAE;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,UAAU,GAA2B;QACvC,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,oBAAoB;QAC5B,OAAO,EAAE,yEAAyE;QAClF,MAAM,EAAE,0BAA0B;QAClC,OAAO,EAAE,mEAAmE;QAC5E,MAAM,EAAE,+BAA+B;QACvC,OAAO,EAAE,2EAA2E;QACpF,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,8BAA8B;QACtC,KAAK,EAAE,6BAA6B;QACpC,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;KAC5B,CAAC;IAEF,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAO,UAAqB,EAAE,EAAE;;IACtD,IAAI,CAAC;QACD,MAAM,eAAe,GAAG,CAAC,MAAM,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAkB,CAAC;QAC7F,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;QACnE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;QAClH,iBAAiB;QACjB,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,MAAM,CAAA,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE,CAAC;YACrC,MAAM,2CAA2C,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,IAAI,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAA,EAAE,CAAC;YACjD,MAAM,kDAAkD,CAAC;QAC7D,CAAC;QACD,mBAAmB;QACnB,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtB,MAAM,kCAAkC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACN,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,EAAE,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACrG,CAAC;YACD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACN,IAAI,MAAA,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,0CAAE,MAAM,EAAE,CAAC;oBAChC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC/B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,EAAE,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YACrH,CAAC;QACL,CAAC;QACD,wBAAwB;QACxB,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACrC,mBAAmB;QACnB,MAAM,GAAG,GAAqB,SAAS;YACnC,CAAC,CAAC;gBACI,OAAO;gBACP,IAAI,EAAE,IAAI,IAAI,YAAY;gBAC1B,EAAE;gBACF,EAAE;gBACF,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,WAAW;aAC3B;YACH,CAAC,CAAC;gBACI,OAAO;gBACP,IAAI,EAAE,IAAI,IAAI,YAAY;gBAC1B,EAAE;gBACF,EAAE;gBACF,IAAI,EAAE,eAAgB;gBACtB,WAAW,EAAE,WAAW;aAC3B,CAAC;QACR,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,EAAE,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAA,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,WAAW,CAAC;QAC3B,CAAC;QACD,cAAc;QACd,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YACrC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/B,CAAC;QACD,aAAa;QACb,MAAM,CAAC,GAAG,CAAC,yBAAyB,kCAAO,UAAU,GAAK,GAAG,EAAG,CAAC;QACjE,MAAM,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,kCAAO,UAAU,GAAK,GAAG,EAAG,CAAC;IACtF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC;AACL,CAAC,CAAA,CAAC"}
@@ -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: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akeyless-server-commons",
3
- "version": "1.0.120",
3
+ "version": "1.0.121",
4
4
  "scripts": {
5
5
  "build:cjs": "tsc --project tsconfig.cjs.json",
6
6
  "build:esm": "tsc --project tsconfig.esm.json",