elseware-nodejs 1.6.0 → 1.7.1
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 +97 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +42 -1
- package/dist/index.d.ts +42 -1
- package/dist/index.js +90 -6
- package/dist/index.js.map +1 -1
- package/package.json +75 -72
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# elseware-nodejs
|
|
1
|
+
# elseware-nodejs
|
package/dist/index.cjs
CHANGED
|
@@ -3,8 +3,12 @@
|
|
|
3
3
|
var mongoose = require('mongoose');
|
|
4
4
|
var dotenv = require('dotenv');
|
|
5
5
|
var storageBlob = require('@azure/storage-blob');
|
|
6
|
-
var
|
|
6
|
+
var fs3 = require('fs');
|
|
7
7
|
var cloudinaryModule = require('cloudinary');
|
|
8
|
+
var nodemailer = require('nodemailer');
|
|
9
|
+
var path = require('path');
|
|
10
|
+
var Handlebars = require('handlebars');
|
|
11
|
+
var juice = require('juice');
|
|
8
12
|
var jwt = require('jsonwebtoken');
|
|
9
13
|
var multer = require('multer');
|
|
10
14
|
|
|
@@ -12,8 +16,12 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
12
16
|
|
|
13
17
|
var mongoose__default = /*#__PURE__*/_interopDefault(mongoose);
|
|
14
18
|
var dotenv__default = /*#__PURE__*/_interopDefault(dotenv);
|
|
15
|
-
var
|
|
19
|
+
var fs3__default = /*#__PURE__*/_interopDefault(fs3);
|
|
16
20
|
var cloudinaryModule__default = /*#__PURE__*/_interopDefault(cloudinaryModule);
|
|
21
|
+
var nodemailer__default = /*#__PURE__*/_interopDefault(nodemailer);
|
|
22
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
23
|
+
var Handlebars__default = /*#__PURE__*/_interopDefault(Handlebars);
|
|
24
|
+
var juice__default = /*#__PURE__*/_interopDefault(juice);
|
|
17
25
|
var jwt__default = /*#__PURE__*/_interopDefault(jwt);
|
|
18
26
|
var multer__default = /*#__PURE__*/_interopDefault(multer);
|
|
19
27
|
|
|
@@ -5163,8 +5171,8 @@ var AzureBlobStorageService = class {
|
|
|
5163
5171
|
// Upload file
|
|
5164
5172
|
async uploadFile(localPath, blobName, onProgress) {
|
|
5165
5173
|
const blockBlobClient = this.containerClient.getBlockBlobClient(blobName);
|
|
5166
|
-
const fileSize =
|
|
5167
|
-
const readStream =
|
|
5174
|
+
const fileSize = fs3__default.default.statSync(localPath).size;
|
|
5175
|
+
const readStream = fs3__default.default.createReadStream(localPath);
|
|
5168
5176
|
await blockBlobClient.uploadStream(
|
|
5169
5177
|
readStream,
|
|
5170
5178
|
4 * 1024 * 1024,
|
|
@@ -5189,7 +5197,7 @@ var AzureBlobStorageService = class {
|
|
|
5189
5197
|
const fileSize = response.contentLength || 0;
|
|
5190
5198
|
let downloaded = 0;
|
|
5191
5199
|
return new Promise((resolve, reject) => {
|
|
5192
|
-
const writable =
|
|
5200
|
+
const writable = fs3__default.default.createWriteStream(downloadPath);
|
|
5193
5201
|
response.readableStreamBody?.on("data", (chunk) => {
|
|
5194
5202
|
downloaded += chunk.length;
|
|
5195
5203
|
if (onProgress && fileSize > 0) {
|
|
@@ -5252,7 +5260,7 @@ var CloudinaryService = class {
|
|
|
5252
5260
|
}
|
|
5253
5261
|
// Upload file to Cloudinary
|
|
5254
5262
|
async uploadFile(filePath, options = {}) {
|
|
5255
|
-
if (!
|
|
5263
|
+
if (!fs3__default.default.existsSync(filePath)) {
|
|
5256
5264
|
throw new Error(`File not found: ${filePath}`);
|
|
5257
5265
|
}
|
|
5258
5266
|
const folderPath = this.buildFolderPath(options.folder);
|
|
@@ -5299,6 +5307,86 @@ var CloudinaryService = class {
|
|
|
5299
5307
|
return this.rootFolder || subFolder;
|
|
5300
5308
|
}
|
|
5301
5309
|
};
|
|
5310
|
+
var SMTPProvider = class {
|
|
5311
|
+
transporter;
|
|
5312
|
+
constructor(config) {
|
|
5313
|
+
this.transporter = nodemailer__default.default.createTransport({
|
|
5314
|
+
host: config.host,
|
|
5315
|
+
port: config.port,
|
|
5316
|
+
secure: config.port === 465,
|
|
5317
|
+
auth: {
|
|
5318
|
+
user: config.user,
|
|
5319
|
+
pass: config.pass
|
|
5320
|
+
}
|
|
5321
|
+
});
|
|
5322
|
+
}
|
|
5323
|
+
async sendMail({ to, subject, html, from }) {
|
|
5324
|
+
await this.transporter.sendMail({
|
|
5325
|
+
from,
|
|
5326
|
+
to,
|
|
5327
|
+
subject,
|
|
5328
|
+
html
|
|
5329
|
+
});
|
|
5330
|
+
}
|
|
5331
|
+
};
|
|
5332
|
+
var TemplateEngine = class {
|
|
5333
|
+
static templateCache = {};
|
|
5334
|
+
static cssCache = {};
|
|
5335
|
+
// Load ALL CSS files from styles folder
|
|
5336
|
+
static loadAllCSS(stylesDir) {
|
|
5337
|
+
if (!fs3__default.default.existsSync(stylesDir)) return "";
|
|
5338
|
+
const files = fs3__default.default.readdirSync(stylesDir).filter((f) => f.endsWith(".css"));
|
|
5339
|
+
let combinedCSS = "";
|
|
5340
|
+
for (const file of files) {
|
|
5341
|
+
const filePath = path__default.default.join(stylesDir, file);
|
|
5342
|
+
if (!this.cssCache[filePath]) {
|
|
5343
|
+
this.cssCache[filePath] = fs3__default.default.readFileSync(filePath, "utf-8");
|
|
5344
|
+
}
|
|
5345
|
+
combinedCSS += this.cssCache[filePath] + "\n";
|
|
5346
|
+
}
|
|
5347
|
+
return combinedCSS;
|
|
5348
|
+
}
|
|
5349
|
+
static render(templateName, data, templateDir) {
|
|
5350
|
+
const templateKey = `${templateDir}:${templateName}`;
|
|
5351
|
+
if (!this.templateCache[templateKey]) {
|
|
5352
|
+
const filePath = path__default.default.join(templateDir, `${templateName}.hbs`);
|
|
5353
|
+
const source = fs3__default.default.readFileSync(filePath, "utf-8");
|
|
5354
|
+
this.templateCache[templateKey] = Handlebars__default.default.compile(source);
|
|
5355
|
+
}
|
|
5356
|
+
const stylesDir = path__default.default.join(templateDir, "styles");
|
|
5357
|
+
const css = this.loadAllCSS(stylesDir);
|
|
5358
|
+
const rawHtml = this.templateCache[templateKey]({
|
|
5359
|
+
...data,
|
|
5360
|
+
styles: css
|
|
5361
|
+
});
|
|
5362
|
+
return juice__default.default(rawHtml);
|
|
5363
|
+
}
|
|
5364
|
+
};
|
|
5365
|
+
|
|
5366
|
+
// src/services/email/email.service.ts
|
|
5367
|
+
var EmailService = class {
|
|
5368
|
+
provider;
|
|
5369
|
+
from;
|
|
5370
|
+
templateDir;
|
|
5371
|
+
constructor(provider, from, templateDir) {
|
|
5372
|
+
this.provider = provider;
|
|
5373
|
+
this.from = from;
|
|
5374
|
+
this.templateDir = templateDir;
|
|
5375
|
+
}
|
|
5376
|
+
async send(options) {
|
|
5377
|
+
const html = TemplateEngine.render(
|
|
5378
|
+
options.template,
|
|
5379
|
+
options.data,
|
|
5380
|
+
this.templateDir
|
|
5381
|
+
);
|
|
5382
|
+
await this.provider.sendMail({
|
|
5383
|
+
to: options.to,
|
|
5384
|
+
subject: options.subject,
|
|
5385
|
+
html,
|
|
5386
|
+
from: this.from
|
|
5387
|
+
});
|
|
5388
|
+
}
|
|
5389
|
+
};
|
|
5302
5390
|
var JWTService = class {
|
|
5303
5391
|
accessSecret;
|
|
5304
5392
|
refreshSecret;
|
|
@@ -5524,6 +5612,7 @@ exports.DirectedGraph = DirectedGraph;
|
|
|
5524
5612
|
exports.DisjointSetUnion = DisjointSetUnion;
|
|
5525
5613
|
exports.DoublyLinkedList = DoublyLinkedList;
|
|
5526
5614
|
exports.DynamicArray = DynamicArray;
|
|
5615
|
+
exports.EmailService = EmailService;
|
|
5527
5616
|
exports.FenwickTree = FenwickTree;
|
|
5528
5617
|
exports.FibNode = FibNode;
|
|
5529
5618
|
exports.FibonacciHeap = FibonacciHeap;
|
|
@@ -5552,6 +5641,7 @@ exports.QuadTree = QuadTree;
|
|
|
5552
5641
|
exports.Queue = Queue;
|
|
5553
5642
|
exports.RadixTree = RadixTree;
|
|
5554
5643
|
exports.RedBlackTree = RedBlackTree;
|
|
5644
|
+
exports.SMTPProvider = SMTPProvider;
|
|
5555
5645
|
exports.SegmentTree = SegmentTree;
|
|
5556
5646
|
exports.Set = Set2;
|
|
5557
5647
|
exports.SinglyLinkedList = SinglyLinkedList;
|
|
@@ -5561,6 +5651,7 @@ exports.Stack = Stack;
|
|
|
5561
5651
|
exports.StaticArray = StaticArray;
|
|
5562
5652
|
exports.SuffixArray = SuffixArray;
|
|
5563
5653
|
exports.SuffixTree = SuffixTree;
|
|
5654
|
+
exports.TemplateEngine = TemplateEngine;
|
|
5564
5655
|
exports.TernarySearchTree = TernarySearchTree;
|
|
5565
5656
|
exports.TreeNode = TreeNode;
|
|
5566
5657
|
exports.Trie = Trie;
|