@deeplx/core 0.1.2 → 0.2.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 CHANGED
@@ -24,6 +24,7 @@ An unofficial but powerful and easy-to-use yet free DeepL API client for Node.js
24
24
  - [Supported languages](#supported-languages)
25
25
  - [Example 1](#example-1)
26
26
  - [Example 2](#example-2)
27
+ - [Example 3](#example-3)
27
28
  - [Sponsors and Backers](#sponsors-and-backers)
28
29
  - [Sponsors](#sponsors)
29
30
  - [Backers](#backers)
@@ -32,7 +33,7 @@ An unofficial but powerful and easy-to-use yet free DeepL API client for Node.js
32
33
 
33
34
  ## Online Service
34
35
 
35
- <https://deeplx.vercel.app/translate>
36
+ <https://deeplx.1stg.me/translate>
36
37
 
37
38
  ## Installation
38
39
 
@@ -99,18 +100,35 @@ await translate('你好', 'NL')
99
100
 
100
101
  ### Example 2
101
102
 
102
- This will translate a `danish` text into `german` in informal tone:
103
+ This will translate a `danish` text into `german`:
103
104
 
104
105
  ```js
105
106
  import { translate } from '@deeplx/core'
106
107
 
107
- await translate('Ring til mig!', 'german', 'danish', false)
108
+ await translate('Ring til mig!', 'german', 'danish')
108
109
  ```
109
110
 
110
111
  ```log
111
112
  'Ruf mich an!'
112
113
  ```
113
114
 
115
+ ### Example 3
116
+
117
+ This will translate a text using a proxy and a DeepL Pro session cookie:
118
+
119
+ ```js
120
+ import { translate } from '@deeplx/core'
121
+
122
+ await translate('Hello World', 'ZH', 'EN', {
123
+ proxyUrl: 'http://127.0.0.1:7890',
124
+ dlSession: 'your_dl_session_cookie',
125
+ })
126
+ ```
127
+
128
+ ```log
129
+ '你好,世界'
130
+ ```
131
+
114
132
  ## Sponsors and Backers
115
133
 
116
134
  [![Sponsors and Backers](https://raw.githubusercontent.com/1stG/static/master/sponsors.svg)](https://github.com/sponsors/JounQin)
package/lib/api.d.ts CHANGED
@@ -1,2 +1,6 @@
1
1
  import type { SourceLanguage, TargetLanguage } from './constants.ts';
2
- export declare const translate: (text: string, targetLang: TargetLanguage, sourceLang?: SourceLanguage, formal?: boolean) => Promise<string>;
2
+ export interface TranslateOptions {
3
+ dlSession?: string;
4
+ proxyUrl?: string;
5
+ }
6
+ export declare const translate: (text: string, targetLang: TargetLanguage, sourceLang?: SourceLanguage, options?: TranslateOptions) => Promise<string>;
package/lib/api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { translateByDeepLX } from "./translate.js";
2
- export const translate = async (text, targetLang, sourceLang, formal) => {
3
- const result = await translateByDeepLX(sourceLang, targetLang, text, formal);
2
+ export const translate = async (text, targetLang, sourceLang, options) => {
3
+ const result = await translateByDeepLX(sourceLang, targetLang, text, options?.proxyUrl, options?.dlSession);
4
4
  if ('message' in result) {
5
5
  throw new Error(result.message, { cause: result });
6
6
  }
package/lib/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,IAAY,EACZ,UAA0B,EAC1B,UAA2B,EAC3B,MAAgB,EAChB,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5E,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAOlD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,IAAY,EACZ,UAA0B,EAC1B,UAA2B,EAC3B,OAA0B,EAC1B,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,UAAU,EACV,UAAU,EACV,IAAI,EACJ,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,SAAS,CACnB,CAAA;IACD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import type { ValueOf } from './types.ts';
2
2
  export declare const SUPPORTED_LANGUAGES: readonly [{
3
+ readonly code: "AR";
4
+ readonly language: "Arabic";
5
+ }, {
3
6
  readonly code: "BG";
4
7
  readonly language: "Bulgarian";
5
- }, {
6
- readonly code: "ZH";
7
- readonly language: "Chinese";
8
8
  }, {
9
9
  readonly code: "CS";
10
10
  readonly language: "Czech";
@@ -12,11 +12,26 @@ export declare const SUPPORTED_LANGUAGES: readonly [{
12
12
  readonly code: "DA";
13
13
  readonly language: "Danish";
14
14
  }, {
15
- readonly code: "NL";
16
- readonly language: "Dutch";
15
+ readonly code: "DE";
16
+ readonly language: "German";
17
+ }, {
18
+ readonly code: "EL";
19
+ readonly language: "Greek";
17
20
  }, {
18
21
  readonly code: "EN";
19
22
  readonly language: "English";
23
+ }, {
24
+ readonly code: "EN-GB";
25
+ readonly language: "English (British)";
26
+ }, {
27
+ readonly code: "EN-US";
28
+ readonly language: "English (American)";
29
+ }, {
30
+ readonly code: "ES";
31
+ readonly language: "Spanish";
32
+ }, {
33
+ readonly code: "ES-419";
34
+ readonly language: "Spanish (Latin American)";
20
35
  }, {
21
36
  readonly code: "ET";
22
37
  readonly language: "Estonian";
@@ -27,14 +42,14 @@ export declare const SUPPORTED_LANGUAGES: readonly [{
27
42
  readonly code: "FR";
28
43
  readonly language: "French";
29
44
  }, {
30
- readonly code: "DE";
31
- readonly language: "German";
32
- }, {
33
- readonly code: "EL";
34
- readonly language: "Greek";
45
+ readonly code: "HE";
46
+ readonly language: "Hebrew";
35
47
  }, {
36
48
  readonly code: "HU";
37
49
  readonly language: "Hungarian";
50
+ }, {
51
+ readonly code: "ID";
52
+ readonly language: "Indonesian";
38
53
  }, {
39
54
  readonly code: "IT";
40
55
  readonly language: "Italian";
@@ -42,17 +57,32 @@ export declare const SUPPORTED_LANGUAGES: readonly [{
42
57
  readonly code: "JA";
43
58
  readonly language: "Japanese";
44
59
  }, {
45
- readonly code: "LV";
46
- readonly language: "Latvian";
60
+ readonly code: "KO";
61
+ readonly language: "Korean";
47
62
  }, {
48
63
  readonly code: "LT";
49
64
  readonly language: "Lithuanian";
65
+ }, {
66
+ readonly code: "LV";
67
+ readonly language: "Latvian";
68
+ }, {
69
+ readonly code: "NB";
70
+ readonly language: "Norwegian Bokmål";
71
+ }, {
72
+ readonly code: "NL";
73
+ readonly language: "Dutch";
50
74
  }, {
51
75
  readonly code: "PL";
52
76
  readonly language: "Polish";
53
77
  }, {
54
78
  readonly code: "PT";
55
79
  readonly language: "Portuguese";
80
+ }, {
81
+ readonly code: "PT-BR";
82
+ readonly language: "Portuguese (Brazilian)";
83
+ }, {
84
+ readonly code: "PT-PT";
85
+ readonly language: "Portuguese (European)";
56
86
  }, {
57
87
  readonly code: "RO";
58
88
  readonly language: "Romanian";
@@ -65,34 +95,46 @@ export declare const SUPPORTED_LANGUAGES: readonly [{
65
95
  }, {
66
96
  readonly code: "SL";
67
97
  readonly language: "Slovenian";
68
- }, {
69
- readonly code: "ES";
70
- readonly language: "Spanish";
71
98
  }, {
72
99
  readonly code: "SV";
73
100
  readonly language: "Swedish";
74
101
  }, {
75
102
  readonly code: "TR";
76
103
  readonly language: "Turkish";
77
- }, {
78
- readonly code: "ID";
79
- readonly language: "Indonesian";
80
104
  }, {
81
105
  readonly code: "UK";
82
106
  readonly language: "Ukrainian";
107
+ }, {
108
+ readonly code: "VI";
109
+ readonly language: "Vietnamese";
110
+ }, {
111
+ readonly code: "ZH";
112
+ readonly language: "Chinese";
113
+ }, {
114
+ readonly code: "ZH-HANS";
115
+ readonly language: "Chinese (Simplified)";
116
+ }, {
117
+ readonly code: "ZH-HANT";
118
+ readonly language: "Chinese (Traditional)";
83
119
  }];
84
120
  export type SupportedLanguage = ValueOf<typeof SUPPORTED_LANGUAGES>;
85
121
  export type SupportedCode = SupportedLanguage['code'];
86
122
  export type Language = SupportedCode | SupportedLanguage['language'] | `${SupportedCode}-${string}`;
87
123
  export type TargetLanguage = Language | Lowercase<Language> | Uppercase<Language>;
88
124
  export type SourceLanguage = TargetLanguage | 'auto';
89
- export declare const FORMALITY_TONES: Set<"undefined" | "formal" | "informal">;
90
- export type FormalityTone = ValueOf<typeof FORMALITY_TONES>;
91
- export declare const API_URL = "https://www2.deepl.com/jsonrpc";
125
+ export declare const ONESHOT_FREE_ENDPOINT = "https://oneshot-free.www.deepl.com/v1/translate";
126
+ export declare const ONESHOT_PRO_ENDPOINT = "https://oneshot-pro.www.deepl.com/v1/translate";
127
+ export declare const IMPERSONATED_CHROME_MAJOR = "120";
128
+ export declare const CHROME_EXTENSION_VERSION = "1.86.0";
129
+ export declare const CHROME_EXTENSION_ID = "cofdbpoegempjloogbagkncekinflcnj";
130
+ export declare const MAX_FREE_TEXT_LENGTH = 1500;
92
131
  export declare const HTTP_STATUS_OK = 200;
93
132
  export declare const HTTP_STATUS_BAD_REQUEST = 400;
94
133
  export declare const HTTP_STATUS_NOT_FOUND = 404;
95
134
  export declare const HTTP_STATUS_NOT_ALLOWED = 405;
135
+ export declare const HTTP_STATUS_PAYLOAD_TOO_LARGE = 413;
136
+ export declare const HTTP_STATUS_TOO_MANY_REQUESTS = 429;
96
137
  export declare const HTTP_STATUS_INTERNAL_ERROR = 500;
97
138
  export declare const HTTP_STATUS_SERVICE_UNAVAILABLE = 503;
98
- export declare const COMMON_HEADERS: HeadersInit;
139
+ export declare const TARGET_LANG_MAP: Record<string, string>;
140
+ export declare const SOURCE_LANG_MAP: Record<string, string>;
package/lib/constants.js CHANGED
@@ -1,56 +1,102 @@
1
1
  export const SUPPORTED_LANGUAGES = [
2
+ { code: 'AR', language: 'Arabic' },
2
3
  { code: 'BG', language: 'Bulgarian' },
3
- { code: 'ZH', language: 'Chinese' },
4
4
  { code: 'CS', language: 'Czech' },
5
5
  { code: 'DA', language: 'Danish' },
6
- { code: 'NL', language: 'Dutch' },
6
+ { code: 'DE', language: 'German' },
7
+ { code: 'EL', language: 'Greek' },
7
8
  { code: 'EN', language: 'English' },
9
+ { code: 'EN-GB', language: 'English (British)' },
10
+ { code: 'EN-US', language: 'English (American)' },
11
+ { code: 'ES', language: 'Spanish' },
12
+ { code: 'ES-419', language: 'Spanish (Latin American)' },
8
13
  { code: 'ET', language: 'Estonian' },
9
14
  { code: 'FI', language: 'Finnish' },
10
15
  { code: 'FR', language: 'French' },
11
- { code: 'DE', language: 'German' },
12
- { code: 'EL', language: 'Greek' },
16
+ { code: 'HE', language: 'Hebrew' },
13
17
  { code: 'HU', language: 'Hungarian' },
18
+ { code: 'ID', language: 'Indonesian' },
14
19
  { code: 'IT', language: 'Italian' },
15
20
  { code: 'JA', language: 'Japanese' },
16
- { code: 'LV', language: 'Latvian' },
21
+ { code: 'KO', language: 'Korean' },
17
22
  { code: 'LT', language: 'Lithuanian' },
23
+ { code: 'LV', language: 'Latvian' },
24
+ { code: 'NB', language: 'Norwegian Bokmål' },
25
+ { code: 'NL', language: 'Dutch' },
18
26
  { code: 'PL', language: 'Polish' },
19
27
  { code: 'PT', language: 'Portuguese' },
28
+ { code: 'PT-BR', language: 'Portuguese (Brazilian)' },
29
+ { code: 'PT-PT', language: 'Portuguese (European)' },
20
30
  { code: 'RO', language: 'Romanian' },
21
31
  { code: 'RU', language: 'Russian' },
22
32
  { code: 'SK', language: 'Slovak' },
23
33
  { code: 'SL', language: 'Slovenian' },
24
- { code: 'ES', language: 'Spanish' },
25
34
  { code: 'SV', language: 'Swedish' },
26
35
  { code: 'TR', language: 'Turkish' },
27
- { code: 'ID', language: 'Indonesian' },
28
36
  { code: 'UK', language: 'Ukrainian' },
37
+ { code: 'VI', language: 'Vietnamese' },
38
+ { code: 'ZH', language: 'Chinese' },
39
+ { code: 'ZH-HANS', language: 'Chinese (Simplified)' },
40
+ { code: 'ZH-HANT', language: 'Chinese (Traditional)' },
29
41
  ];
30
- export const FORMALITY_TONES = new Set([
31
- 'formal',
32
- 'informal',
33
- 'undefined',
34
- ]);
35
- export const API_URL = 'https://www2.deepl.com/jsonrpc';
42
+ export const ONESHOT_FREE_ENDPOINT = 'https://oneshot-free.www.deepl.com/v1/translate';
43
+ export const ONESHOT_PRO_ENDPOINT = 'https://oneshot-pro.www.deepl.com/v1/translate';
44
+ export const IMPERSONATED_CHROME_MAJOR = '120';
45
+ export const CHROME_EXTENSION_VERSION = '1.86.0';
46
+ export const CHROME_EXTENSION_ID = 'cofdbpoegempjloogbagkncekinflcnj';
47
+ export const MAX_FREE_TEXT_LENGTH = 1500;
36
48
  export const HTTP_STATUS_OK = 200;
37
49
  export const HTTP_STATUS_BAD_REQUEST = 400;
38
50
  export const HTTP_STATUS_NOT_FOUND = 404;
39
51
  export const HTTP_STATUS_NOT_ALLOWED = 405;
52
+ export const HTTP_STATUS_PAYLOAD_TOO_LARGE = 413;
53
+ export const HTTP_STATUS_TOO_MANY_REQUESTS = 429;
40
54
  export const HTTP_STATUS_INTERNAL_ERROR = 500;
41
55
  export const HTTP_STATUS_SERVICE_UNAVAILABLE = 503;
42
- export const COMMON_HEADERS = {
43
- 'Content-Type': 'application/json',
44
- 'User-Agent': 'DeepL/1627620 CFNetwork/3826.500.62.2.1 Darwin/24.4.0',
45
- Accept: '*/*',
46
- 'X-App-Os-Name': 'iOS',
47
- 'X-App-Os-Version': '18.4.0',
48
- 'Accept-Language': 'en-US,en;q=0.9',
49
- 'Accept-Encoding': 'gzip, deflate, br',
50
- 'X-App-Device': 'iPhone16,2',
51
- Referer: 'https://www.deepl.com/',
52
- 'X-Product': 'translator',
53
- 'X-App-Build': '1627620',
54
- 'X-App-Version': '25.1',
56
+ export const TARGET_LANG_MAP = {
57
+ AR: 'ar',
58
+ BG: 'bg',
59
+ CS: 'cs',
60
+ DA: 'da',
61
+ DE: 'de',
62
+ EL: 'el',
63
+ 'EN-GB': 'en-GB',
64
+ 'EN-US': 'en-US',
65
+ ES: 'es',
66
+ 'ES-419': 'es-419',
67
+ ET: 'et',
68
+ FI: 'fi',
69
+ FR: 'fr',
70
+ HE: 'he',
71
+ HU: 'hu',
72
+ ID: 'id',
73
+ IT: 'it',
74
+ JA: 'ja',
75
+ KO: 'ko',
76
+ LT: 'lt',
77
+ LV: 'lv',
78
+ NB: 'nb',
79
+ NL: 'nl',
80
+ PL: 'pl',
81
+ 'PT-BR': 'pt-BR',
82
+ 'PT-PT': 'pt-PT',
83
+ RO: 'ro',
84
+ RU: 'ru',
85
+ SK: 'sk',
86
+ SL: 'sl',
87
+ SV: 'sv',
88
+ TR: 'tr',
89
+ UK: 'uk',
90
+ VI: 'vi',
91
+ ZH: 'zh-Hans',
92
+ 'ZH-HANS': 'zh-Hans',
93
+ 'ZH-HANT': 'zh-Hant',
94
+ EN: 'en-US',
95
+ PT: 'pt-BR',
96
+ };
97
+ export const SOURCE_LANG_MAP = {
98
+ ...TARGET_LANG_MAP,
99
+ EN: 'en',
100
+ PT: 'pt',
55
101
  };
56
102
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}