ztechno_core 0.0.61 → 0.0.63

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/index.d.ts CHANGED
@@ -14,6 +14,6 @@ export {
14
14
  MailServiceOptions,
15
15
  MailResponse,
16
16
  } from './typings/mail_types';
17
- 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';
18
18
  export { ZRequiredUserColumns, ZUser, ZUserCredentials, ZUserSession } from './typings/user_types';
19
19
  export { ZCryptoService, ZMailService, ZSqlService, ZTranslateService, ZUserService, ZEngineBase };
@@ -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>;
@@ -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 DomParser = require('dom-parser');
5
- const translate = require('translate');
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
  [`&#163`]: `£`,
38
42
  [`&#8482`]: `™`,
39
43
  };
40
- translate.key = opt.googleApiKey;
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 translate(text, {
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 = htmlParser.parseFromString(html);
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
  }
@@ -171,10 +178,10 @@ class ZTranslateService {
171
178
  });
172
179
  }
173
180
  async fetch(key, lang) {
174
- const results = await this.sql.query(`SELECT \`value\` FROM translations WHERE \`lang\`=? AND \`key\`=?`, [
175
- lang,
176
- key,
177
- ]);
181
+ const results = await this.sql.query(
182
+ `SELECT \`value\` FROM translations WHERE \`lang\`=? AND \`key\`=CONVERT(? USING utf8mb3)`,
183
+ [lang, key],
184
+ );
178
185
  if (results.length > 0) {
179
186
  // api.query(`UPDATE translations SET last_used=CURRENT_TIMESTAMP WHERE \`lang\`=? AND \`key\`=?`, [lang, key])
180
187
  // .catch(err => console.error(err))
@@ -1,17 +1,17 @@
1
1
  import { ZSqlService } from '../sql_service';
2
- export type ZDom = {} & ZNode;
3
- export type ZNode = {
2
+ export type Dom = {} & Node;
3
+ export type Node = {
4
4
  getAttribute: (attr: string) => string;
5
- getElementsByTagName: (tag: string) => ZNode[];
6
- getElementsByClassName: (cls: string) => ZNode[];
7
- getElementById: (id: string) => ZNode;
8
- getElementsByName: (name: string) => ZNode[];
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: ZNode[];
12
- firstChild: ZNode;
13
- lastChild: ZNode;
14
- parentNode: ZNode;
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
- } & ZNode;
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.61",
3
+ "version": "0.0.63",
4
4
  "description": "Core files for ztechno framework",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@types/express": "^5.0.0",
42
- "dom-parser": "^0.1.6",
42
+ "dom-parser": "^1.1.5",
43
43
  "mysql": "^2.18.1",
44
44
  "nodemailer": "^6.8.0",
45
45
  "translate": "^1.4.1"