@yxw007/translate 0.5.0 → 1.0.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.
Files changed (57) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +84 -37
  3. package/README_zh-CN.md +84 -32
  4. package/dist/browser/index.cjs +2262 -3004
  5. package/dist/browser/index.esm.js +2262 -2998
  6. package/dist/browser/index.esm.min.js +28 -1
  7. package/dist/browser/index.min.cjs +28 -1
  8. package/dist/browser/index.umd.js +2392 -3130
  9. package/dist/browser/index.umd.min.js +28 -1
  10. package/dist/engines/amazon.d.ts +7 -0
  11. package/dist/engines/azure.d.ts +9 -0
  12. package/dist/engines/baidu.d.ts +6 -0
  13. package/dist/engines/deepl.d.ts +88 -0
  14. package/dist/engines/google.d.ts +3 -0
  15. package/dist/engines/helper.d.ts +2 -0
  16. package/dist/engines/index.d.ts +16 -0
  17. package/dist/engines/openai.d.ts +8 -0
  18. package/dist/engines/tencent.d.ts +7 -0
  19. package/dist/engines/yandex.d.ts +5 -0
  20. package/dist/index.d.ts +15 -3048
  21. package/dist/language/check/baidu.d.ts +9 -0
  22. package/dist/language/check/index.d.ts +775 -0
  23. package/dist/language/engines/amazon.d.ts +158 -0
  24. package/dist/language/engines/azure.d.ts +278 -0
  25. package/dist/language/engines/baidu.d.ts +424 -0
  26. package/dist/language/engines/deepl.d.ts +77 -0
  27. package/dist/language/engines/google.d.ts +494 -0
  28. package/dist/language/engines/index.d.ts +1973 -0
  29. package/dist/language/engines/openai.d.ts +494 -0
  30. package/dist/language/engines/tencent.d.ts +44 -0
  31. package/dist/language/index.d.ts +8 -0
  32. package/dist/language/origin/deepl.d.ts +36 -0
  33. package/dist/language/origin/index.d.ts +998 -0
  34. package/dist/language/origin/tencent.d.ts +22 -0
  35. package/dist/language/target/amazon.d.ts +78 -0
  36. package/dist/language/target/azure.d.ts +138 -0
  37. package/dist/language/target/baidu.d.ts +211 -0
  38. package/dist/language/target/deepl.d.ts +39 -0
  39. package/dist/language/target/google.d.ts +246 -0
  40. package/dist/language/target/index.d.ts +1000 -0
  41. package/dist/language/target/tencent.d.ts +21 -0
  42. package/dist/node/index.cjs +2260 -2972
  43. package/dist/node/index.js +2259 -2967
  44. package/dist/node/index.min.cjs +28 -1
  45. package/dist/node/index.min.js +28 -1
  46. package/dist/package.json +113 -122
  47. package/dist/types/index.d.ts +56 -0
  48. package/dist/types/typescript.d.ts +1 -0
  49. package/dist/utils/cache.d.ts +15 -0
  50. package/dist/utils/check.d.ts +2 -0
  51. package/dist/utils/constant.d.ts +2 -0
  52. package/dist/utils/index.d.ts +6 -0
  53. package/dist/utils/logger.d.ts +6 -0
  54. package/dist/utils/node.d.ts +2 -0
  55. package/dist/utils/path.d.ts +1 -0
  56. package/dist/utils/utils.d.ts +7 -0
  57. package/package.json +14 -23
package/dist/package.json CHANGED
@@ -1,122 +1,113 @@
1
- {
2
- "name": "@yxw007/translate",
3
- "version": "0.5.0",
4
- "description": "A simple library that supports multiple translation engines",
5
- "author": "Potter<aa4790139@gmail.com>",
6
- "homepage": "https://github.com/yxw007/translate",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/yxw007/translate.git"
10
- },
11
- "bugs": {
12
- "url": "https://github.com/yxw007/translate/issues"
13
- },
14
- "publishConfig": {
15
- "access": "public"
16
- },
17
- "scripts": {
18
- "lint": "eslint . && prettier -c src",
19
- "lint:fix": "eslint . --fix && prettier -w src",
20
- "build": "pnpm clean && tsx script/build.ts",
21
- "build:dev": "pnpm clean && tsx script/build.ts --dev",
22
- "clean": "rm -rf dist",
23
- "test": "vitest --run",
24
- "test:coverage": "vitest --coverage --run",
25
- "release": "pnpm changelogen --release -i",
26
- "prepare": "husky"
27
- },
28
- "type": "module",
29
- "main": "./dist/node/index.cjs",
30
- "module": "./dist/node/index.js",
31
- "types": "./dist/index.d.ts",
32
- "exports": {
33
- ".": {
34
- "browser": {
35
- "require": "./dist/browser/index.cjs",
36
- "default": "./dist/browser/index.esm.js",
37
- "types": "./dist/index.d.ts"
38
- },
39
- "default": {
40
- "require": "./dist/node/index.cjs",
41
- "default": "./dist/node/index.js",
42
- "types": "./dist/index.d.ts"
43
- }
44
- }
45
- },
46
- "files": [
47
- "dist",
48
- "README_zh-CN.md",
49
- "README.md",
50
- "package.json"
51
- ],
52
- "keywords": [
53
- "typescript",
54
- "node",
55
- "browser",
56
- "translate",
57
- "translation",
58
- "google",
59
- "i18n",
60
- "l10n",
61
- "localization",
62
- "internationalization",
63
- "azure",
64
- "amazon",
65
- "baidu",
66
- "yandex",
67
- "ai",
68
- "deepl",
69
- "tencent"
70
- ],
71
- "husky": {
72
- "hooks": {
73
- "pre-commit": "lint-staged"
74
- }
75
- },
76
- "lint-staged": {
77
- "**/*.{ts}": [
78
- "pnpm lint:fix"
79
- ]
80
- },
81
- "license": "MIT",
82
- "devDependencies": {
83
- "@commitlint/config-conventional": "^19.2.2",
84
- "@eslint/js": "^8.57.0",
85
- "@rollup/plugin-alias": "^5.1.0",
86
- "@rollup/plugin-commonjs": "^26.0.1",
87
- "@rollup/plugin-json": "^6.1.0",
88
- "@rollup/plugin-node-resolve": "^15.2.3",
89
- "@rollup/plugin-terser": "^0.4.4",
90
- "@rollup/plugin-typescript": "^11.1.6",
91
- "@types/crypto-js": "^4.2.2",
92
- "@types/eslint__js": "^8.42.3",
93
- "@types/node": "^22.5.0",
94
- "@vitest/coverage-v8": "^2.0.5",
95
- "chalk": "^5.3.0",
96
- "changelogen": "^0.5.5",
97
- "commitlint": "^19.4.0",
98
- "dotenv": "^16.4.5",
99
- "eslint": "^8.57.0",
100
- "globals": "^15.9.0",
101
- "husky": "^9.1.5",
102
- "lint-staged": "^15.2.9",
103
- "maxmin": "^4.1.0",
104
- "prettier": "^3.3.3",
105
- "rollup": "^4.21.1",
106
- "rollup-plugin-dts": "^6.1.1",
107
- "tslib": "^2.7.0",
108
- "tsx": "^4.19.2",
109
- "typescript": "^5.5.4",
110
- "typescript-eslint": "^8.3.0",
111
- "vitest": "^2.0.5",
112
- "yargs": "^18.0.0"
113
- },
114
- "volta": {
115
- "node": "22.3.0"
116
- },
117
- "peerDependencies": {
118
- "@aws-sdk/client-translate": "^3.637.0",
119
- "@smithy/smithy-client": "^3.2.0",
120
- "crypto-js": "^4.2.0"
121
- }
122
- }
1
+ {
2
+ "name": "@yxw007/translate",
3
+ "version": "1.0.0",
4
+ "description": "A simple library that supports multiple translation engines",
5
+ "author": "Potter<aa4790139@gmail.com>",
6
+ "homepage": "https://github.com/yxw007/translate",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/yxw007/translate.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/yxw007/translate/issues"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "scripts": {
18
+ "lint": "oxlint . && oxfmt --check .",
19
+ "lint:fix": "oxlint . --fix && oxfmt .",
20
+ "format": "oxfmt .",
21
+ "format:check": "oxfmt --check .",
22
+ "build": "pnpm clean && tsx script/build.ts",
23
+ "build:dev": "pnpm clean && tsx script/build.ts --dev",
24
+ "clean": "rm -rf dist",
25
+ "test": "vitest --run",
26
+ "test:coverage": "vitest --coverage --run",
27
+ "release": "pnpm changelogen --release -i",
28
+ "prepare": "husky"
29
+ },
30
+ "type": "module",
31
+ "main": "./dist/node/index.cjs",
32
+ "module": "./dist/node/index.js",
33
+ "types": "./dist/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "browser": {
37
+ "require": "./dist/browser/index.cjs",
38
+ "default": "./dist/browser/index.esm.js",
39
+ "types": "./dist/index.d.ts"
40
+ },
41
+ "default": {
42
+ "require": "./dist/node/index.cjs",
43
+ "default": "./dist/node/index.js",
44
+ "types": "./dist/index.d.ts"
45
+ }
46
+ }
47
+ },
48
+ "files": [
49
+ "dist",
50
+ "README_zh-CN.md",
51
+ "README.md",
52
+ "package.json"
53
+ ],
54
+ "keywords": [
55
+ "typescript",
56
+ "node",
57
+ "browser",
58
+ "translate",
59
+ "translation",
60
+ "google",
61
+ "i18n",
62
+ "l10n",
63
+ "localization",
64
+ "internationalization",
65
+ "azure",
66
+ "amazon",
67
+ "baidu",
68
+ "yandex",
69
+ "ai",
70
+ "deepl",
71
+ "tencent"
72
+ ],
73
+ "husky": {
74
+ "hooks": {
75
+ "pre-commit": "lint-staged"
76
+ }
77
+ },
78
+ "lint-staged": {
79
+ "**/*.{ts}": [
80
+ "pnpm lint:fix"
81
+ ]
82
+ },
83
+ "license": "MIT",
84
+ "devDependencies": {
85
+ "@commitlint/config-conventional": "^19.2.2",
86
+ "@types/crypto-js": "^4.2.2",
87
+ "@types/node": "^22.5.0",
88
+ "@vitest/coverage-v8": "^4.1.2",
89
+ "chalk": "^5.3.0",
90
+ "changelogen": "^0.6.2",
91
+ "commitlint": "^19.4.0",
92
+ "dotenv": "^16.4.5",
93
+ "husky": "^9.1.5",
94
+ "lint-staged": "^16.4.0",
95
+ "maxmin": "^4.1.0",
96
+ "oxfmt": "^0.42.0",
97
+ "oxlint": "^1.57.0",
98
+ "rolldown": "1.0.0-rc.12",
99
+ "tslib": "^2.7.0",
100
+ "tsx": "^4.21.0",
101
+ "typescript": "^5.5.4",
102
+ "vite": "^8.0.3",
103
+ "vitest": "^4.1.2"
104
+ },
105
+ "volta": {
106
+ "node": "22.3.0"
107
+ },
108
+ "peerDependencies": {
109
+ "@aws-sdk/client-translate": "^3.637.0",
110
+ "@smithy/smithy-client": "^3.2.0",
111
+ "crypto-js": "^4.2.0"
112
+ }
113
+ }
@@ -0,0 +1,56 @@
1
+ import type { BuiltinEngineLanguageMap, BuiltinFromLanguageMap, BuiltinToLanguageMap } from "../language/engines";
2
+ export * from "./typescript";
3
+ export type Engines = keyof BuiltinEngineLanguageMap;
4
+ export type LanguageMap = Readonly<Record<string, string>>;
5
+ export type LanguageName<T extends LanguageMap = LanguageMap> = Extract<keyof T, string>;
6
+ export type LanguageCode<T extends LanguageMap = LanguageMap> = T[LanguageName<T>];
7
+ export type FromLanguage<T extends string = Engines> = T extends Engines ? BuiltinFromLanguageMap[T] : string;
8
+ export type ToLanguage<T extends string = Engines> = T extends Engines ? BuiltinToLanguageMap[T] : string;
9
+ export type TranslateOptions<T extends string = Engines> = {
10
+ from?: FromLanguage<T>;
11
+ to: ToLanguage<T>;
12
+ engine?: T;
13
+ /**
14
+ * Cache time in milliseconds
15
+ */
16
+ cache_time?: number | undefined;
17
+ /**
18
+ * Domain to use for translation
19
+ */
20
+ domain?: string | undefined;
21
+ /**
22
+ * Maximum number of characters
23
+ * default: 1000, -1 means no limit
24
+ */
25
+ max_character_num?: number | undefined;
26
+ };
27
+ export type CheckLanguageOptions<T extends string = Engines> = Pick<TranslateOptions<T>, "max_character_num" | "engine">;
28
+ export interface BaseEngineOption {
29
+ fromLanguages?: LanguageMap;
30
+ toLanguages?: LanguageMap;
31
+ }
32
+ export type EngineTranslateOptions<T extends string = string> = Omit<TranslateOptions<T>, "engine">;
33
+ export type Engine = {
34
+ name: string;
35
+ getFromLanguages: () => LanguageMap;
36
+ getToLanguages: () => LanguageMap;
37
+ normalFromLanguage: (language?: string) => string;
38
+ normalToLanguage: (language?: string) => string;
39
+ checkLanguage?: (text: string) => Promise<string>;
40
+ translate: (text: string | string[], opts: EngineTranslateOptions) => Promise<string[]>;
41
+ };
42
+ export interface CacheRecord {
43
+ value: unknown;
44
+ timeout?: number;
45
+ expire: number;
46
+ }
47
+ export declare class TranslationError extends Error {
48
+ region: string;
49
+ constructor(region: string, message: string);
50
+ }
51
+ export declare class CheckLanguageError extends Error {
52
+ region: string;
53
+ constructor(region: string, message: string);
54
+ }
55
+ export declare const OPEN_AI_MODELS: readonly ["o1-preview", "o1-preview-2024-09-12", "o1-mini-2024-09-12", "o1-mini", "dall-e-2", "gpt-3.5-turbo", "gpt-3.5-turbo-0125", "babbage-002", "davinci-002", "dall-e-3", "text-embedding-3-large", "gpt-3.5-turbo-16k", "tts-1-hd-1106", "text-embedding-ada-002", "text-embedding-3-small", "tts-1-hd", "whisper-1", "gpt-3.5-turbo-1106", "gpt-3.5-turbo-instruct", "gpt-4o-mini-2024-07-18", "gpt-4o-mini", "tts-1", "tts-1-1106", "gpt-3.5-turbo-instruct-0914"];
56
+ export type OpenAIModel = (typeof OPEN_AI_MODELS)[number];
@@ -0,0 +1 @@
1
+ export type ValuesOf<T> = T[keyof T];
@@ -0,0 +1,15 @@
1
+ import { CacheRecord } from "../types";
2
+ export declare class Cache {
3
+ private cache;
4
+ constructor();
5
+ /**
6
+ * @param key
7
+ * @param value
8
+ * @param time millisecond
9
+ */
10
+ set(key: string, value: any, time: number): void;
11
+ get(key: string): CacheRecord | undefined;
12
+ delete(key: string): boolean;
13
+ private del;
14
+ clear(): void;
15
+ }
@@ -0,0 +1,2 @@
1
+ export declare function isString(val: any): val is string;
2
+ export declare function isFunction(val: any): boolean;
@@ -0,0 +1,2 @@
1
+ export declare const appName: string;
2
+ export declare const defaultMaxCharacterNum = 1000;
@@ -0,0 +1,6 @@
1
+ export * from "./cache";
2
+ export * from "./logger";
3
+ export * from "./path";
4
+ export * from "./check";
5
+ export * from "../types/typescript";
6
+ export * from "./utils";
@@ -0,0 +1,6 @@
1
+ export declare function useLogger(name?: string): {
2
+ log(...args: any): void;
3
+ info(...args: any): void;
4
+ error(...args: any): void;
5
+ warn(...args: any): void;
6
+ };
@@ -0,0 +1,2 @@
1
+ export declare function cleanDir(dir: string): Promise<void>;
2
+ export declare function copyDir(src: string, dest: string): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function normalizedPath(filePath: string): string;
@@ -0,0 +1,7 @@
1
+ import { TranslationError } from "..";
2
+ export declare function sleep(ms: number): Promise<unknown>;
3
+ export declare function getGapLine(): string;
4
+ export declare function getErrorMessages<T extends Error>(e: T, prefix?: string): string;
5
+ export declare function throwResponseError(name: string, res: any): Promise<TranslationError>;
6
+ export declare function splitText(text: string, maxCharacterNum: number): string[];
7
+ export declare function isOverMaxCharacterNum(text: string[] | undefined | null, max_character_num: number): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yxw007/translate",
3
- "version": "0.5.0",
3
+ "version": "1.0.0",
4
4
  "description": "A simple library that supports multiple translation engines",
5
5
  "author": "Potter<aa4790139@gmail.com>",
6
6
  "homepage": "https://github.com/yxw007/translate",
@@ -70,35 +70,24 @@
70
70
  "license": "MIT",
71
71
  "devDependencies": {
72
72
  "@commitlint/config-conventional": "^19.2.2",
73
- "@eslint/js": "^8.57.0",
74
- "@rollup/plugin-alias": "^5.1.0",
75
- "@rollup/plugin-commonjs": "^26.0.1",
76
- "@rollup/plugin-json": "^6.1.0",
77
- "@rollup/plugin-node-resolve": "^15.2.3",
78
- "@rollup/plugin-terser": "^0.4.4",
79
- "@rollup/plugin-typescript": "^11.1.6",
80
73
  "@types/crypto-js": "^4.2.2",
81
- "@types/eslint__js": "^8.42.3",
82
74
  "@types/node": "^22.5.0",
83
- "@vitest/coverage-v8": "^2.0.5",
75
+ "@vitest/coverage-v8": "^4.1.2",
84
76
  "chalk": "^5.3.0",
85
- "changelogen": "^0.5.5",
77
+ "changelogen": "^0.6.2",
86
78
  "commitlint": "^19.4.0",
87
79
  "dotenv": "^16.4.5",
88
- "eslint": "^8.57.0",
89
- "globals": "^15.9.0",
90
80
  "husky": "^9.1.5",
91
- "lint-staged": "^15.2.9",
81
+ "lint-staged": "^16.4.0",
92
82
  "maxmin": "^4.1.0",
93
- "prettier": "^3.3.3",
94
- "rollup": "^4.21.1",
95
- "rollup-plugin-dts": "^6.1.1",
83
+ "oxfmt": "^0.42.0",
84
+ "oxlint": "^1.57.0",
85
+ "rolldown": "1.0.0-rc.12",
96
86
  "tslib": "^2.7.0",
97
- "tsx": "^4.19.2",
87
+ "tsx": "^4.21.0",
98
88
  "typescript": "^5.5.4",
99
- "typescript-eslint": "^8.3.0",
100
- "vitest": "^2.0.5",
101
- "yargs": "^18.0.0"
89
+ "vite": "^8.0.3",
90
+ "vitest": "^4.1.2"
102
91
  },
103
92
  "volta": {
104
93
  "node": "22.3.0"
@@ -109,8 +98,10 @@
109
98
  "crypto-js": "^4.2.0"
110
99
  },
111
100
  "scripts": {
112
- "lint": "eslint . && prettier -c src",
113
- "lint:fix": "eslint . --fix && prettier -w src",
101
+ "lint": "oxlint . && oxfmt --check .",
102
+ "lint:fix": "oxlint . --fix && oxfmt .",
103
+ "format": "oxfmt .",
104
+ "format:check": "oxfmt --check .",
114
105
  "build": "pnpm clean && tsx script/build.ts",
115
106
  "build:dev": "pnpm clean && tsx script/build.ts --dev",
116
107
  "clean": "rm -rf dist",