ztechno_core 0.0.50 → 0.0.54
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/lib/mail_service.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import SMTPTransport from 'nodemailer/lib/smtp-transport';
|
|
1
2
|
import { MailOptionsHtml, MailOptionsText, MailServiceOptions } from './typings/mail_types';
|
|
2
3
|
export declare class ZMailService {
|
|
3
4
|
private opt;
|
|
4
5
|
constructor(opt: MailServiceOptions);
|
|
5
|
-
send(mailOpts: MailOptionsText | MailOptionsHtml): Promise<
|
|
6
|
+
send(mailOpts: MailOptionsText | MailOptionsHtml): Promise<SMTPTransport.SentMessageInfo>;
|
|
6
7
|
}
|
package/lib/mail_service.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var __importDefault =
|
|
3
|
+
(this && this.__importDefault) ||
|
|
4
|
+
function (mod) {
|
|
5
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
6
|
+
};
|
|
2
7
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
8
|
exports.ZMailService = void 0;
|
|
4
|
-
const
|
|
9
|
+
const nodemailer_1 = __importDefault(require('nodemailer'));
|
|
5
10
|
class ZMailService {
|
|
6
11
|
constructor(opt) {
|
|
7
12
|
this.opt = opt;
|
|
8
13
|
}
|
|
9
14
|
send(mailOpts) {
|
|
10
|
-
const mailTransporter =
|
|
15
|
+
const mailTransporter = nodemailer_1.default.createTransport({
|
|
11
16
|
service: 'gmail',
|
|
12
17
|
auth: this.opt.auth,
|
|
13
18
|
});
|
|
@@ -17,6 +22,8 @@ class ZMailService {
|
|
|
17
22
|
subject: mailOpts.subject,
|
|
18
23
|
text: mailOpts.body || undefined,
|
|
19
24
|
html: mailOpts.html || undefined,
|
|
25
|
+
dkim: this.opt.dkim ?? mailOpts.dkim,
|
|
26
|
+
priority: mailOpts.priority,
|
|
20
27
|
};
|
|
21
28
|
return new Promise((resolve, reject) => {
|
|
22
29
|
mailTransporter.sendMail(mailDetails, function (err, data) {
|
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
import { ZSqlService } from './sql_service';
|
|
2
1
|
import { TranslateData, dbTranslationRow } from '.';
|
|
2
|
+
import { ATranslateLang, TranslateServiceOptions } from './typings/translate_types';
|
|
3
3
|
export declare class ZTranslateService {
|
|
4
4
|
private opt;
|
|
5
5
|
private localCache;
|
|
6
6
|
private get sql();
|
|
7
7
|
surpressErrors: boolean;
|
|
8
|
-
getLanguages():
|
|
8
|
+
getLanguages(): ATranslateLang[];
|
|
9
9
|
getSourceLang(): string;
|
|
10
10
|
getDefaultLang(): string;
|
|
11
|
-
constructor(opt:
|
|
12
|
-
sqlService: ZSqlService;
|
|
13
|
-
googleApiKey: string;
|
|
14
|
-
languages?: string[];
|
|
15
|
-
defaultLang?: string;
|
|
16
|
-
sourceLang?: string;
|
|
17
|
-
});
|
|
11
|
+
constructor(opt: TranslateServiceOptions);
|
|
18
12
|
private codes;
|
|
19
13
|
getLang(cookies: { [key: string]: string }): string;
|
|
20
14
|
translateText(langOrReq: string | any, text: string): Promise<string>;
|
package/lib/translate_service.js
CHANGED
|
@@ -9,7 +9,12 @@ class ZTranslateService {
|
|
|
9
9
|
return this.opt.sqlService;
|
|
10
10
|
}
|
|
11
11
|
getLanguages() {
|
|
12
|
-
return
|
|
12
|
+
return (
|
|
13
|
+
this.opt.languages || [
|
|
14
|
+
{ lang: 'en', text: 'English' },
|
|
15
|
+
{ lang: 'nl', text: 'Nederlands' },
|
|
16
|
+
]
|
|
17
|
+
);
|
|
13
18
|
}
|
|
14
19
|
getSourceLang() {
|
|
15
20
|
return this.opt.sourceLang || 'en';
|
|
@@ -33,17 +38,14 @@ class ZTranslateService {
|
|
|
33
38
|
[`™`]: `™`,
|
|
34
39
|
};
|
|
35
40
|
translate.key = opt.googleApiKey;
|
|
36
|
-
this.getLanguages().map((lang) => (this.localCache[lang] = {}));
|
|
41
|
+
this.getLanguages().map((lang) => (this.localCache[lang.lang] = {}));
|
|
37
42
|
setInterval(() => this.clearLocalCache(), 1000 * 60 * 60); // Every Hour
|
|
38
43
|
}
|
|
39
44
|
getLang(cookies) {
|
|
40
45
|
const defaultLang = this.getDefaultLang();
|
|
41
46
|
const langKey = (cookies.lang || defaultLang).toLowerCase();
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
return defaultLang;
|
|
45
|
-
}
|
|
46
|
-
return langKey;
|
|
47
|
+
const foundLang = this.getLanguages().find((l) => l.lang === langKey);
|
|
48
|
+
return foundLang === undefined ? defaultLang : foundLang.lang;
|
|
47
49
|
}
|
|
48
50
|
async translateText(langOrReq, text) {
|
|
49
51
|
const lang = typeof langOrReq === 'string' ? langOrReq : this.getLang(langOrReq.cookies);
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import nodemailer from 'nodemailer';
|
|
1
2
|
export type MailServiceOptions = {
|
|
2
3
|
auth: {
|
|
3
4
|
user: string;
|
|
4
5
|
pass: string;
|
|
5
6
|
};
|
|
6
7
|
mailSender: string;
|
|
7
|
-
}
|
|
8
|
+
} & Partial<Pick<nodemailer.SendMailOptions, 'dkim'>>;
|
|
8
9
|
export type MailOptionsBase = {
|
|
9
10
|
recipient: string;
|
|
10
11
|
subject: string;
|
|
11
12
|
from?: string;
|
|
12
|
-
}
|
|
13
|
+
} & Partial<Pick<nodemailer.SendMailOptions, 'dkim' | 'priority'>>;
|
|
13
14
|
export type MailOptionsText = MailOptionsBase & {
|
|
14
15
|
body: string;
|
|
15
16
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ZSqlService } from '../sql_service';
|
|
1
2
|
export type ZDom = {} & ZNode;
|
|
2
3
|
export type ZNode = {
|
|
3
4
|
getAttribute: (attr: string) => string;
|
|
@@ -32,3 +33,14 @@ export type dbTranslationRow = {
|
|
|
32
33
|
key: string;
|
|
33
34
|
value: string;
|
|
34
35
|
};
|
|
36
|
+
export type ATranslateLang = {
|
|
37
|
+
lang: string;
|
|
38
|
+
text: string;
|
|
39
|
+
};
|
|
40
|
+
export type TranslateServiceOptions = {
|
|
41
|
+
sqlService: ZSqlService;
|
|
42
|
+
googleApiKey: string;
|
|
43
|
+
languages?: ATranslateLang[];
|
|
44
|
+
defaultLang?: string;
|
|
45
|
+
sourceLang?: string;
|
|
46
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ztechno_core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.54",
|
|
4
4
|
"description": "Core files for ztechno framework",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/jest": "^29.2.3",
|
|
31
31
|
"@types/mysql": "^2.15.21",
|
|
32
|
+
"@types/nodemailer": "^6.4.14",
|
|
32
33
|
"jest": "^29.3.1",
|
|
33
34
|
"prettier": "^2.7.1",
|
|
34
35
|
"ts-jest": "^29.0.3",
|