elseware-nodejs 1.5.3 → 1.7.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/README.md +1 -1
- package/dist/index.cjs +126 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +60 -1
- package/dist/index.d.ts +60 -1
- package/dist/index.js +119 -1
- package/dist/index.js.map +1 -1
- package/package.json +74 -71
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# elseware-nodejs
|
|
1
|
+
# elseware-nodejs
|
package/dist/index.cjs
CHANGED
|
@@ -5,7 +5,11 @@ var dotenv = require('dotenv');
|
|
|
5
5
|
var storageBlob = require('@azure/storage-blob');
|
|
6
6
|
var fs = require('fs');
|
|
7
7
|
var cloudinaryModule = require('cloudinary');
|
|
8
|
+
var nodemailer = require('nodemailer');
|
|
9
|
+
var path = require('path');
|
|
10
|
+
var Handlebars = require('handlebars');
|
|
8
11
|
var jwt = require('jsonwebtoken');
|
|
12
|
+
var multer = require('multer');
|
|
9
13
|
|
|
10
14
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
15
|
|
|
@@ -13,7 +17,11 @@ var mongoose__default = /*#__PURE__*/_interopDefault(mongoose);
|
|
|
13
17
|
var dotenv__default = /*#__PURE__*/_interopDefault(dotenv);
|
|
14
18
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
15
19
|
var cloudinaryModule__default = /*#__PURE__*/_interopDefault(cloudinaryModule);
|
|
20
|
+
var nodemailer__default = /*#__PURE__*/_interopDefault(nodemailer);
|
|
21
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
22
|
+
var Handlebars__default = /*#__PURE__*/_interopDefault(Handlebars);
|
|
16
23
|
var jwt__default = /*#__PURE__*/_interopDefault(jwt);
|
|
24
|
+
var multer__default = /*#__PURE__*/_interopDefault(multer);
|
|
17
25
|
|
|
18
26
|
// src/errors/appError.ts
|
|
19
27
|
var AppError = class extends Error {
|
|
@@ -5297,6 +5305,65 @@ var CloudinaryService = class {
|
|
|
5297
5305
|
return this.rootFolder || subFolder;
|
|
5298
5306
|
}
|
|
5299
5307
|
};
|
|
5308
|
+
var SMTPProvider = class {
|
|
5309
|
+
transporter;
|
|
5310
|
+
constructor(config) {
|
|
5311
|
+
this.transporter = nodemailer__default.default.createTransport({
|
|
5312
|
+
host: config.host,
|
|
5313
|
+
port: config.port,
|
|
5314
|
+
secure: config.port === 465,
|
|
5315
|
+
auth: {
|
|
5316
|
+
user: config.user,
|
|
5317
|
+
pass: config.pass
|
|
5318
|
+
}
|
|
5319
|
+
});
|
|
5320
|
+
}
|
|
5321
|
+
async sendMail({ to, subject, html, from }) {
|
|
5322
|
+
await this.transporter.sendMail({
|
|
5323
|
+
from,
|
|
5324
|
+
to,
|
|
5325
|
+
subject,
|
|
5326
|
+
html
|
|
5327
|
+
});
|
|
5328
|
+
}
|
|
5329
|
+
};
|
|
5330
|
+
var TemplateEngine = class {
|
|
5331
|
+
static cache = {};
|
|
5332
|
+
static render(templateName, data, templateDir) {
|
|
5333
|
+
const cacheKey = `${templateDir}:${templateName}`;
|
|
5334
|
+
if (!this.cache[cacheKey]) {
|
|
5335
|
+
const filePath = path__default.default.join(templateDir, `${templateName}.hbs`);
|
|
5336
|
+
const source = fs__default.default.readFileSync(filePath, "utf-8");
|
|
5337
|
+
this.cache[cacheKey] = Handlebars__default.default.compile(source);
|
|
5338
|
+
}
|
|
5339
|
+
return this.cache[cacheKey](data);
|
|
5340
|
+
}
|
|
5341
|
+
};
|
|
5342
|
+
|
|
5343
|
+
// src/services/email/email.service.ts
|
|
5344
|
+
var EmailService = class {
|
|
5345
|
+
provider;
|
|
5346
|
+
from;
|
|
5347
|
+
templateDir;
|
|
5348
|
+
constructor(provider, from, templateDir) {
|
|
5349
|
+
this.provider = provider;
|
|
5350
|
+
this.from = from;
|
|
5351
|
+
this.templateDir = templateDir;
|
|
5352
|
+
}
|
|
5353
|
+
async send(options) {
|
|
5354
|
+
const html = TemplateEngine.render(
|
|
5355
|
+
options.template,
|
|
5356
|
+
options.data,
|
|
5357
|
+
this.templateDir
|
|
5358
|
+
);
|
|
5359
|
+
await this.provider.sendMail({
|
|
5360
|
+
to: options.to,
|
|
5361
|
+
subject: options.subject,
|
|
5362
|
+
html,
|
|
5363
|
+
from: this.from
|
|
5364
|
+
});
|
|
5365
|
+
}
|
|
5366
|
+
};
|
|
5300
5367
|
var JWTService = class {
|
|
5301
5368
|
accessSecret;
|
|
5302
5369
|
refreshSecret;
|
|
@@ -5412,6 +5479,61 @@ var JWTService = class {
|
|
|
5412
5479
|
return value;
|
|
5413
5480
|
}
|
|
5414
5481
|
};
|
|
5482
|
+
var MulterFileHandlerService = class {
|
|
5483
|
+
storage;
|
|
5484
|
+
options;
|
|
5485
|
+
constructor(options = {}) {
|
|
5486
|
+
this.options = options;
|
|
5487
|
+
this.storage = options.storage === "memory" ? multer__default.default.memoryStorage() : multer__default.default.diskStorage({});
|
|
5488
|
+
}
|
|
5489
|
+
// File Filter
|
|
5490
|
+
fileFilter = (req, file, cb) => {
|
|
5491
|
+
const { allowedMimeTypes, allowedExtensions } = this.options;
|
|
5492
|
+
const mimeType = file.mimetype;
|
|
5493
|
+
const extFromMime = mimeType.split("/")[1]?.toLowerCase();
|
|
5494
|
+
if (allowedMimeTypes?.length) {
|
|
5495
|
+
if (!allowedMimeTypes.includes(mimeType)) {
|
|
5496
|
+
return cb(
|
|
5497
|
+
new AppError(
|
|
5498
|
+
`Invalid file type! Allowed: ${allowedMimeTypes.join(", ")}`,
|
|
5499
|
+
400
|
|
5500
|
+
),
|
|
5501
|
+
false
|
|
5502
|
+
);
|
|
5503
|
+
}
|
|
5504
|
+
}
|
|
5505
|
+
if (allowedExtensions?.length) {
|
|
5506
|
+
if (!extFromMime || !allowedExtensions.includes(extFromMime)) {
|
|
5507
|
+
return cb(
|
|
5508
|
+
new AppError(
|
|
5509
|
+
`Invalid file extension! Allowed: ${allowedExtensions.join(", ")}`,
|
|
5510
|
+
400
|
|
5511
|
+
),
|
|
5512
|
+
false
|
|
5513
|
+
);
|
|
5514
|
+
}
|
|
5515
|
+
}
|
|
5516
|
+
cb(null, true);
|
|
5517
|
+
};
|
|
5518
|
+
// Build multer instance
|
|
5519
|
+
buildUploader() {
|
|
5520
|
+
return multer__default.default({
|
|
5521
|
+
storage: this.storage,
|
|
5522
|
+
fileFilter: this.fileFilter,
|
|
5523
|
+
limits: this.options.fileSizeLimit ? { fileSize: this.options.fileSizeLimit } : void 0
|
|
5524
|
+
});
|
|
5525
|
+
}
|
|
5526
|
+
// Public API
|
|
5527
|
+
single(fieldName) {
|
|
5528
|
+
return this.buildUploader().single(fieldName);
|
|
5529
|
+
}
|
|
5530
|
+
array(fieldName, maxCount) {
|
|
5531
|
+
return this.buildUploader().array(fieldName, maxCount);
|
|
5532
|
+
}
|
|
5533
|
+
fields(fields) {
|
|
5534
|
+
return this.buildUploader().fields(fields);
|
|
5535
|
+
}
|
|
5536
|
+
};
|
|
5415
5537
|
|
|
5416
5538
|
// src/utils/time.ts
|
|
5417
5539
|
function milliseconds(value) {
|
|
@@ -5467,6 +5589,7 @@ exports.DirectedGraph = DirectedGraph;
|
|
|
5467
5589
|
exports.DisjointSetUnion = DisjointSetUnion;
|
|
5468
5590
|
exports.DoublyLinkedList = DoublyLinkedList;
|
|
5469
5591
|
exports.DynamicArray = DynamicArray;
|
|
5592
|
+
exports.EmailService = EmailService;
|
|
5470
5593
|
exports.FenwickTree = FenwickTree;
|
|
5471
5594
|
exports.FibNode = FibNode;
|
|
5472
5595
|
exports.FibonacciHeap = FibonacciHeap;
|
|
@@ -5484,6 +5607,7 @@ exports.MaxHeap = MaxHeap;
|
|
|
5484
5607
|
exports.MaxStack = MaxStack;
|
|
5485
5608
|
exports.MinHeap = MinHeap;
|
|
5486
5609
|
exports.MinStack = MinStack;
|
|
5610
|
+
exports.MulterFileHandlerService = MulterFileHandlerService;
|
|
5487
5611
|
exports.MultiSet = MultiSet;
|
|
5488
5612
|
exports.Node = Node;
|
|
5489
5613
|
exports.OrderedSet = OrderedSet;
|
|
@@ -5494,6 +5618,7 @@ exports.QuadTree = QuadTree;
|
|
|
5494
5618
|
exports.Queue = Queue;
|
|
5495
5619
|
exports.RadixTree = RadixTree;
|
|
5496
5620
|
exports.RedBlackTree = RedBlackTree;
|
|
5621
|
+
exports.SMTPProvider = SMTPProvider;
|
|
5497
5622
|
exports.SegmentTree = SegmentTree;
|
|
5498
5623
|
exports.Set = Set2;
|
|
5499
5624
|
exports.SinglyLinkedList = SinglyLinkedList;
|
|
@@ -5503,6 +5628,7 @@ exports.Stack = Stack;
|
|
|
5503
5628
|
exports.StaticArray = StaticArray;
|
|
5504
5629
|
exports.SuffixArray = SuffixArray;
|
|
5505
5630
|
exports.SuffixTree = SuffixTree;
|
|
5631
|
+
exports.TemplateEngine = TemplateEngine;
|
|
5506
5632
|
exports.TernarySearchTree = TernarySearchTree;
|
|
5507
5633
|
exports.TreeNode = TreeNode;
|
|
5508
5634
|
exports.Trie = Trie;
|