ztechno_core 0.0.60 → 0.0.62
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/express.d.ts +1 -6
- package/lib/express.js +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +8 -0
- package/lib/translate_service.d.ts +2 -1
- package/lib/translate_service.js +13 -6
- package/lib/typings/translate_types.d.ts +14 -11
- package/package.json +2 -3
package/lib/express.d.ts
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function middleware(): (
|
|
3
|
-
req: express.Request,
|
|
4
|
-
res: express.Response,
|
|
5
|
-
next: express.NextFunction,
|
|
6
|
-
) => Promise<void>;
|
|
1
|
+
export declare function middleware(): (req: Express.Request, res: Express.Response, next: any) => Promise<any>;
|
package/lib/express.js
CHANGED
|
@@ -6,7 +6,7 @@ function middleware() {
|
|
|
6
6
|
if (req.cookies === undefined) {
|
|
7
7
|
throw new Error(`Module 'cookie-parser' isn't initialized. Please use app.use(cookieParser())`);
|
|
8
8
|
}
|
|
9
|
-
if (req.cookies
|
|
9
|
+
if (req.cookies.session === undefined) {
|
|
10
10
|
return next();
|
|
11
11
|
}
|
|
12
12
|
const auth = await userService.auth({ session: req.cookies?.session });
|
package/lib/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { ZMailService } from './mail_service';
|
|
|
4
4
|
import { ZSqlService } from './sql_service';
|
|
5
5
|
import { ZTranslateService } from './translate_service';
|
|
6
6
|
import { ZUserService } from './user_service';
|
|
7
|
+
export { middleware } from './express';
|
|
7
8
|
export { HashStruct } from './typings/crypto_types';
|
|
8
9
|
export {
|
|
9
10
|
MailOptions,
|
|
@@ -13,6 +14,6 @@ export {
|
|
|
13
14
|
MailServiceOptions,
|
|
14
15
|
MailResponse,
|
|
15
16
|
} from './typings/mail_types';
|
|
16
|
-
export { TranslateData, ZDom, ZNode, ZNodeText, dbTranslationRow } from './typings/translate_types';
|
|
17
|
+
export { TranslateData, Dom as ZDom, Node as ZNode, ZNodeText, dbTranslationRow } from './typings/translate_types';
|
|
17
18
|
export { ZRequiredUserColumns, ZUser, ZUserCredentials, ZUserSession } from './typings/user_types';
|
|
18
19
|
export { ZCryptoService, ZMailService, ZSqlService, ZTranslateService, ZUserService, ZEngineBase };
|
package/lib/index.js
CHANGED
|
@@ -6,6 +6,7 @@ exports.ZEngineBase =
|
|
|
6
6
|
exports.ZSqlService =
|
|
7
7
|
exports.ZMailService =
|
|
8
8
|
exports.ZCryptoService =
|
|
9
|
+
exports.middleware =
|
|
9
10
|
void 0;
|
|
10
11
|
const engine_base_1 = require('./engine_base');
|
|
11
12
|
Object.defineProperty(exports, 'ZEngineBase', {
|
|
@@ -49,3 +50,10 @@ Object.defineProperty(exports, 'ZUserService', {
|
|
|
49
50
|
return user_service_1.ZUserService;
|
|
50
51
|
},
|
|
51
52
|
});
|
|
53
|
+
var express_1 = require('./express');
|
|
54
|
+
Object.defineProperty(exports, 'middleware', {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return express_1.middleware;
|
|
58
|
+
},
|
|
59
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TranslateData, dbTranslationRow } from '
|
|
1
|
+
import { TranslateData, dbTranslationRow } from './index';
|
|
2
2
|
import { ATranslateLang, TranslateServiceOptions } from './typings/translate_types';
|
|
3
3
|
export declare class ZTranslateService {
|
|
4
4
|
private opt;
|
|
@@ -16,6 +16,7 @@ export declare class ZTranslateService {
|
|
|
16
16
|
html: string,
|
|
17
17
|
cookies: {
|
|
18
18
|
lang: string;
|
|
19
|
+
} & {
|
|
19
20
|
[key: string]: string;
|
|
20
21
|
},
|
|
21
22
|
): Promise<string>;
|
package/lib/translate_service.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
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.ZTranslateService = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const htmlParser = new DomParser();
|
|
9
|
+
const dom_parser_1 = require('dom-parser');
|
|
10
|
+
const translate_1 = __importDefault(require('translate'));
|
|
7
11
|
class ZTranslateService {
|
|
8
12
|
get sql() {
|
|
9
13
|
return this.opt.sqlService;
|
|
@@ -37,7 +41,8 @@ class ZTranslateService {
|
|
|
37
41
|
[`£`]: `£`,
|
|
38
42
|
[`™`]: `™`,
|
|
39
43
|
};
|
|
40
|
-
|
|
44
|
+
translate_1.default.key = opt.googleApiKey;
|
|
45
|
+
this.surpressErrors = opt.surpressErrors ?? true;
|
|
41
46
|
this.getLanguages().map((lang) => (this.localCache[lang.lang] = {}));
|
|
42
47
|
setInterval(() => this.clearLocalCache(), 1000 * 60 * 60); // Every Hour
|
|
43
48
|
}
|
|
@@ -80,7 +85,7 @@ class ZTranslateService {
|
|
|
80
85
|
}
|
|
81
86
|
let result;
|
|
82
87
|
try {
|
|
83
|
-
result = await
|
|
88
|
+
result = await (0, translate_1.default)(text, {
|
|
84
89
|
from: this.getSourceLang(),
|
|
85
90
|
to: lang,
|
|
86
91
|
});
|
|
@@ -93,7 +98,7 @@ class ZTranslateService {
|
|
|
93
98
|
async translateHtml(html, cookies) {
|
|
94
99
|
const lang = this.getLang(cookies);
|
|
95
100
|
const srcLang = this.getSourceLang();
|
|
96
|
-
const dom =
|
|
101
|
+
const dom = (0, dom_parser_1.parseFromString)(html);
|
|
97
102
|
const htmlNodes = dom.getElementsByTagName('html');
|
|
98
103
|
const mainNodes = dom.getElementsByTagName('main');
|
|
99
104
|
const isView = htmlNodes.length === 0;
|
|
@@ -108,6 +113,7 @@ class ZTranslateService {
|
|
|
108
113
|
return output.startsWith(`<!DOCTYPE html>`) ? output : `<!DOCTYPE html>\r\n${output}`;
|
|
109
114
|
}
|
|
110
115
|
translateHtmlRec(lang, node, promises, skipTranslate = false) {
|
|
116
|
+
if (this.opt.verbose) this.opt.verbose(node.nodeName, node);
|
|
111
117
|
if (node.getAttribute('notranslate') != null) {
|
|
112
118
|
skipTranslate = true;
|
|
113
119
|
}
|
|
@@ -130,6 +136,7 @@ class ZTranslateService {
|
|
|
130
136
|
})
|
|
131
137
|
.catch((err) => {
|
|
132
138
|
node.text = text;
|
|
139
|
+
if (this.opt.log) this.opt.log(err, node);
|
|
133
140
|
if (!this.surpressErrors) {
|
|
134
141
|
throw err; // TODO: Find out if surpressing is better
|
|
135
142
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { ZSqlService } from '../sql_service';
|
|
2
|
-
export type
|
|
3
|
-
export type
|
|
2
|
+
export type Dom = {} & Node;
|
|
3
|
+
export type Node = {
|
|
4
4
|
getAttribute: (attr: string) => string;
|
|
5
|
-
getElementsByTagName: (tag: string) =>
|
|
6
|
-
getElementsByClassName: (cls: string) =>
|
|
7
|
-
getElementById: (id: string) =>
|
|
8
|
-
getElementsByName: (name: string) =>
|
|
5
|
+
getElementsByTagName: (tag: string) => Node[];
|
|
6
|
+
getElementsByClassName: (cls: string) => Node[];
|
|
7
|
+
getElementById: (id: string) => Node;
|
|
8
|
+
getElementsByName: (name: string) => Node[];
|
|
9
9
|
nodeType: string;
|
|
10
10
|
nodeName: string;
|
|
11
|
-
childNodes:
|
|
12
|
-
firstChild:
|
|
13
|
-
lastChild:
|
|
14
|
-
parentNode:
|
|
11
|
+
childNodes: Node[];
|
|
12
|
+
firstChild: Node;
|
|
13
|
+
lastChild: Node;
|
|
14
|
+
parentNode: Node;
|
|
15
15
|
attributes: any[];
|
|
16
16
|
innerHTML: string;
|
|
17
17
|
outerHTML: string;
|
|
@@ -20,7 +20,7 @@ export type ZNode = {
|
|
|
20
20
|
};
|
|
21
21
|
export type ZNodeText = {
|
|
22
22
|
text: string;
|
|
23
|
-
} &
|
|
23
|
+
} & Node;
|
|
24
24
|
export type TranslateData = {
|
|
25
25
|
value: string;
|
|
26
26
|
meta?: {
|
|
@@ -43,4 +43,7 @@ export type TranslateServiceOptions = {
|
|
|
43
43
|
languages?: ATranslateLang[];
|
|
44
44
|
defaultLang?: string;
|
|
45
45
|
sourceLang?: string;
|
|
46
|
+
surpressErrors?: boolean;
|
|
47
|
+
log?: (data: any, context: any) => any;
|
|
48
|
+
verbose?: (data: any, context: any) => any;
|
|
46
49
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ztechno_core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.62",
|
|
4
4
|
"description": "Core files for ztechno framework",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -39,8 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@types/express": "^5.0.0",
|
|
42
|
-
"dom-parser": "^
|
|
43
|
-
"express": "^4.21.2",
|
|
42
|
+
"dom-parser": "^1.1.5",
|
|
44
43
|
"mysql": "^2.18.1",
|
|
45
44
|
"nodemailer": "^6.8.0",
|
|
46
45
|
"translate": "^1.4.1"
|