@dune2/cli 0.5.1 → 0.5.2
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/dist/{chunk-SVCF6X5K.js → chunk-2DSIJDNZ.js} +2 -2
- package/dist/{chunk-4BXCANQI.js → chunk-555YTWSW.js} +2 -2
- package/dist/{chunk-4BXCANQI.js.map → chunk-555YTWSW.js.map} +1 -1
- package/dist/cli.js +7 -11
- package/dist/cli.js.map +1 -1
- package/dist/{download-NS56QNEI.js → download-ZZKXRKW5.js} +6 -6
- package/dist/{extract-7YVZJT6N.js → extract-DGQMSBR5.js} +7 -10
- package/dist/extract-DGQMSBR5.js.map +1 -0
- package/dist/{generateApi-TMEDGY2V.js → generateApi-A4RH4WFR.js} +3 -3
- package/dist/index.d.ts +1 -6
- package/dist/index.js +2 -7
- package/dist/{initConfig-DHDY6MWT.js → initConfig-QRYGDQR7.js} +3 -3
- package/dist/{namespace-IDUS7AMO.js → namespace-4FUD4GZ2.js} +3 -3
- package/dist/normalizeConfig.js +1 -1
- package/dist/{upload-WCPUDBKZ.js → upload-OUXQZAW4.js} +6 -6
- package/package.json +4 -5
- package/dist/chunk-BSWWGPSV.js +0 -60
- package/dist/chunk-BSWWGPSV.js.map +0 -1
- package/dist/downloadFromPlatform-6ZUZTZAX.js +0 -11
- package/dist/downloadFromPlatform-6ZUZTZAX.js.map +0 -1
- package/dist/extract-7YVZJT6N.js.map +0 -1
- package/dist/uploadToTranslatePlatform-GK4VUXIU.js +0 -45
- package/dist/uploadToTranslatePlatform-GK4VUXIU.js.map +0 -1
- /package/dist/{chunk-SVCF6X5K.js.map → chunk-2DSIJDNZ.js.map} +0 -0
- /package/dist/{download-NS56QNEI.js.map → download-ZZKXRKW5.js.map} +0 -0
- /package/dist/{generateApi-TMEDGY2V.js.map → generateApi-A4RH4WFR.js.map} +0 -0
- /package/dist/{initConfig-DHDY6MWT.js.map → initConfig-QRYGDQR7.js.map} +0 -0
- /package/dist/{namespace-IDUS7AMO.js.map → namespace-4FUD4GZ2.js.map} +0 -0
- /package/dist/{upload-WCPUDBKZ.js.map → upload-OUXQZAW4.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
normalizeConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-555YTWSW.js";
|
|
4
4
|
|
|
5
5
|
// src/shared/config/index.ts
|
|
6
6
|
import JoyCon from "joycon";
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
configName,
|
|
20
20
|
getConfig
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
22
|
+
//# sourceMappingURL=chunk-2DSIJDNZ.js.map
|
|
@@ -22,7 +22,7 @@ function resolveSheetId(str) {
|
|
|
22
22
|
return str;
|
|
23
23
|
}
|
|
24
24
|
const url = new URL(str);
|
|
25
|
-
const matched = match("/spreadsheets/d/:id*", {
|
|
25
|
+
const matched = match("/spreadsheets/d{/:id}*", {
|
|
26
26
|
decode: decodeURIComponent
|
|
27
27
|
})(url.pathname);
|
|
28
28
|
return matched ? (_a = matched.params.id) == null ? void 0 : _a[0] : str;
|
|
@@ -85,4 +85,4 @@ export {
|
|
|
85
85
|
normalizeConfig,
|
|
86
86
|
apiConfigNormalizer
|
|
87
87
|
};
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-555YTWSW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared/config/normalizeConfig.ts","../src/shared/defaultJsonSorter.ts","../src/shared/resolveSheetId.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport { defaultJsonSorter } from \"../defaultJsonSorter\";\nimport { resolveSheetId } from \"../resolveSheetId\";\nimport { ApiConfig, Config, I18nConfig } from \"./types\";\nexport function normalizeConfig(config: Config): Config {\n const defaultI18nConfig: I18nConfig = {\n i18nDir: \"./src/i18n\",\n i18nFileName: \"{locale}.i18n.json\",\n position: { key: \"B\", zh: \"C\", en: \"D\", in: \"E\" },\n parseStartIndex: 2,\n };\n config.cwd ??= process.cwd();\n config.cacheDir ??= path.join(config.cwd, \"node_modules/.cache/dune-cli\");\n\n //#region i18n 配置标准化\n if (!config.i18n || !config.i18n?.length) {\n config.i18n = [defaultI18nConfig];\n }\n\n // 格式化 i18n 配置\n config.i18n = config.i18n.map((item) => {\n item = Object.assign({}, defaultI18nConfig, item);\n item.cwd ??= config.cwd;\n item.locales = Object.keys(item.position!).filter((item) => item !== \"key\");\n item.sheetId = resolveSheetId(item.sheetId);\n item.jsonSorter = defaultJsonSorter;\n item.enabled ??= true;\n item.defaultLocale ??= \"zh\";\n\n //#region namespace\n item.namespaceSeparator ??= \".\";\n //#endregion\n\n const defaultTranslatePlatform: I18nConfig[\"translatePlatform\"] = {\n url: \"https://test-transfer.duneproject.xyz\",\n enable: !!item.translatePlatform?.project,\n };\n _.defaults(item.translatePlatform, defaultTranslatePlatform);\n return item;\n });\n //#endregion\n\n //#region api 配置标准化\n config.api ??= [];\n config.api = config.api.map(apiConfigNormalizer);\n //#endregion\n return config;\n}\nexport function apiConfigNormalizer(item: ApiConfig) {\n item.output ??= \"./src/apis\";\n // 没有配置 urlTransformer 时,给 requestFnImportPath 赋默认值\n // 优先使用 urlTransformer\n if (!item.urlTransformer) {\n item.requestFnImportPath ??= `import requestFn from '@/utils/request';`;\n }\n item.RequestBuilderImportPath ??= `import { RequestBuilder } from '@dune2/tools/rq';`;\n item.enableTs ??= true;\n item.enabled ??= true;\n item.format ??= true;\n item.responseSchemaTransformer ??= (schema) =>\n schema.properties?.data ?? schema;\n return item;\n}\n","import _ from \"lodash\";\n\n/**\n * 对 JSON 对象的键进行排序\n * @param obj 要排序的 JSON 对象\n * @returns 排序后的 JSON 对象\n */\nexport function defaultJsonSorter<T extends Record<string, any>>(obj: T) {\n const keys = Object.keys(obj);\n const sortedKeys = _.sortBy(keys); // 使用 lodash 库的 sortBy 方法对键进行排序\n const sortedObj = sortedKeys.reduce((acc, key) => {\n acc[key as keyof T] = obj[key];\n return acc;\n }, {} as T);\n\n return sortedObj as T;\n}\n","/**\n * input:\n * \"https://docs.google.com/spreadsheets/d/1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk/edit#gid=1740568548\"\n * output:\n * \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n * --\n * input: \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n * output: \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n */\nimport { match } from \"path-to-regexp\";\n\nexport function resolveSheetId(str?: string) {\n if (!str || !str?.startsWith(\"http\")) {\n return str;\n }\n const url = new URL(str);\n const matched = match<{ id: string[] }>(\"/spreadsheets/d/:id*\", {\n decode: decodeURIComponent,\n })(url.pathname);\n return matched ? matched.params.id?.[0] : str;\n}\n"],"mappings":";AAAA,OAAOA,QAAO;AACd,OAAO,UAAU;;;ACDjB,OAAO,OAAO;AAOP,SAAS,kBAAiD,KAAQ;AACvE,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,QAAM,aAAa,EAAE,OAAO,IAAI;AAChC,QAAM,YAAY,WAAW,OAAO,CAAC,KAAK,QAAQ;AAChD,QAAI,GAAc,IAAI,IAAI,GAAG;AAC7B,WAAO;AAAA,EACT,GAAG,CAAC,CAAM;AAEV,SAAO;AACT;;;ACPA,SAAS,aAAa;AAEf,SAAS,eAAe,KAAc;AAX7C;AAYE,MAAI,CAAC,OAAO,EAAC,2BAAK,WAAW,UAAS;AACpC,WAAO;AAAA,EACT;AACA,QAAM,MAAM,IAAI,IAAI,GAAG;AACvB,QAAM,UAAU,MAAwB,
|
|
1
|
+
{"version":3,"sources":["../src/shared/config/normalizeConfig.ts","../src/shared/defaultJsonSorter.ts","../src/shared/resolveSheetId.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport { defaultJsonSorter } from \"../defaultJsonSorter\";\nimport { resolveSheetId } from \"../resolveSheetId\";\nimport { ApiConfig, Config, I18nConfig } from \"./types\";\nexport function normalizeConfig(config: Config): Config {\n const defaultI18nConfig: I18nConfig = {\n i18nDir: \"./src/i18n\",\n i18nFileName: \"{locale}.i18n.json\",\n position: { key: \"B\", zh: \"C\", en: \"D\", in: \"E\" },\n parseStartIndex: 2,\n };\n config.cwd ??= process.cwd();\n config.cacheDir ??= path.join(config.cwd, \"node_modules/.cache/dune-cli\");\n\n //#region i18n 配置标准化\n if (!config.i18n || !config.i18n?.length) {\n config.i18n = [defaultI18nConfig];\n }\n\n // 格式化 i18n 配置\n config.i18n = config.i18n.map((item) => {\n item = Object.assign({}, defaultI18nConfig, item);\n item.cwd ??= config.cwd;\n item.locales = Object.keys(item.position!).filter((item) => item !== \"key\");\n item.sheetId = resolveSheetId(item.sheetId);\n item.jsonSorter = defaultJsonSorter;\n item.enabled ??= true;\n item.defaultLocale ??= \"zh\";\n\n //#region namespace\n item.namespaceSeparator ??= \".\";\n //#endregion\n\n const defaultTranslatePlatform: I18nConfig[\"translatePlatform\"] = {\n url: \"https://test-transfer.duneproject.xyz\",\n enable: !!item.translatePlatform?.project,\n };\n _.defaults(item.translatePlatform, defaultTranslatePlatform);\n return item;\n });\n //#endregion\n\n //#region api 配置标准化\n config.api ??= [];\n config.api = config.api.map(apiConfigNormalizer);\n //#endregion\n return config;\n}\nexport function apiConfigNormalizer(item: ApiConfig) {\n item.output ??= \"./src/apis\";\n // 没有配置 urlTransformer 时,给 requestFnImportPath 赋默认值\n // 优先使用 urlTransformer\n if (!item.urlTransformer) {\n item.requestFnImportPath ??= `import requestFn from '@/utils/request';`;\n }\n item.RequestBuilderImportPath ??= `import { RequestBuilder } from '@dune2/tools/rq';`;\n item.enableTs ??= true;\n item.enabled ??= true;\n item.format ??= true;\n item.responseSchemaTransformer ??= (schema) =>\n schema.properties?.data ?? schema;\n return item;\n}\n","import _ from \"lodash\";\n\n/**\n * 对 JSON 对象的键进行排序\n * @param obj 要排序的 JSON 对象\n * @returns 排序后的 JSON 对象\n */\nexport function defaultJsonSorter<T extends Record<string, any>>(obj: T) {\n const keys = Object.keys(obj);\n const sortedKeys = _.sortBy(keys); // 使用 lodash 库的 sortBy 方法对键进行排序\n const sortedObj = sortedKeys.reduce((acc, key) => {\n acc[key as keyof T] = obj[key];\n return acc;\n }, {} as T);\n\n return sortedObj as T;\n}\n","/**\n * input:\n * \"https://docs.google.com/spreadsheets/d/1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk/edit#gid=1740568548\"\n * output:\n * \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n * --\n * input: \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n * output: \"1C9-Dol3oO20W9_FhiVlxNsDhOaaejJIgAZYRkonGmfk\"\n */\nimport { match } from \"path-to-regexp\";\n\nexport function resolveSheetId(str?: string) {\n if (!str || !str?.startsWith(\"http\")) {\n return str;\n }\n const url = new URL(str);\n const matched = match<{ id: string[] }>(\"/spreadsheets/d{/:id}*\", {\n decode: decodeURIComponent,\n })(url.pathname);\n\n return matched ? matched.params.id?.[0] : str;\n}\n"],"mappings":";AAAA,OAAOA,QAAO;AACd,OAAO,UAAU;;;ACDjB,OAAO,OAAO;AAOP,SAAS,kBAAiD,KAAQ;AACvE,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,QAAM,aAAa,EAAE,OAAO,IAAI;AAChC,QAAM,YAAY,WAAW,OAAO,CAAC,KAAK,QAAQ;AAChD,QAAI,GAAc,IAAI,IAAI,GAAG;AAC7B,WAAO;AAAA,EACT,GAAG,CAAC,CAAM;AAEV,SAAO;AACT;;;ACPA,SAAS,aAAa;AAEf,SAAS,eAAe,KAAc;AAX7C;AAYE,MAAI,CAAC,OAAO,EAAC,2BAAK,WAAW,UAAS;AACpC,WAAO;AAAA,EACT;AACA,QAAM,MAAM,IAAI,IAAI,GAAG;AACvB,QAAM,UAAU,MAAwB,0BAA0B;AAAA,IAChE,QAAQ;AAAA,EACV,CAAC,EAAE,IAAI,QAAQ;AAEf,SAAO,WAAU,aAAQ,OAAO,OAAf,mBAAoB,KAAK;AAC5C;;;AFhBO,SAAS,gBAAgB,QAAwB;AALxD;AAME,QAAM,oBAAgC;AAAA,IACpC,SAAS;AAAA,IACT,cAAc;AAAA,IACd,UAAU,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI;AAAA,IAChD,iBAAiB;AAAA,EACnB;AACA,SAAO,QAAQ,QAAQ,IAAI;AAC3B,SAAO,aAAa,KAAK,KAAK,OAAO,KAAK,8BAA8B;AAGxE,MAAI,CAAC,OAAO,QAAQ,GAAC,YAAO,SAAP,mBAAa,SAAQ;AACxC,WAAO,OAAO,CAAC,iBAAiB;AAAA,EAClC;AAGA,SAAO,OAAO,OAAO,KAAK,IAAI,CAAC,SAAS;AArB1C,QAAAC;AAsBI,WAAO,OAAO,OAAO,CAAC,GAAG,mBAAmB,IAAI;AAChD,SAAK,QAAQ,OAAO;AACpB,SAAK,UAAU,OAAO,KAAK,KAAK,QAAS,EAAE,OAAO,CAACC,UAASA,UAAS,KAAK;AAC1E,SAAK,UAAU,eAAe,KAAK,OAAO;AAC1C,SAAK,aAAa;AAClB,SAAK,YAAY;AACjB,SAAK,kBAAkB;AAGvB,SAAK,uBAAuB;AAG5B,UAAM,2BAA4D;AAAA,MAChE,KAAK;AAAA,MACL,QAAQ,CAAC,GAACD,MAAA,KAAK,sBAAL,gBAAAA,IAAwB;AAAA,IACpC;AACA,IAAAE,GAAE,SAAS,KAAK,mBAAmB,wBAAwB;AAC3D,WAAO;AAAA,EACT,CAAC;AAID,SAAO,QAAQ,CAAC;AAChB,SAAO,MAAM,OAAO,IAAI,IAAI,mBAAmB;AAE/C,SAAO;AACT;AACO,SAAS,oBAAoB,MAAiB;AACnD,OAAK,WAAW;AAGhB,MAAI,CAAC,KAAK,gBAAgB;AACxB,SAAK,wBAAwB;AAAA,EAC/B;AACA,OAAK,6BAA6B;AAClC,OAAK,aAAa;AAClB,OAAK,YAAY;AACjB,OAAK,WAAW;AAChB,OAAK,8BAA8B,CAAC,WAAQ;AA5D9C;AA6DI,yBAAO,eAAP,mBAAmB,SAAQ;AAAA;AAC7B,SAAO;AACT;","names":["_","_a","item","_"]}
|
package/dist/cli.js
CHANGED
|
@@ -8,31 +8,27 @@ var version = "0.5.1";
|
|
|
8
8
|
|
|
9
9
|
// src/cli.ts
|
|
10
10
|
cli.command("download", "\u751F\u6210\u7FFB\u8BD1\u6587\u4EF6").example("dune download").action(async () => {
|
|
11
|
-
const { download } = await import("./download-
|
|
11
|
+
const { download } = await import("./download-ZZKXRKW5.js");
|
|
12
12
|
await download();
|
|
13
13
|
});
|
|
14
14
|
cli.command("extract", "\u63D0\u53D6\u4EE3\u7801\u4E2D\u7684\u6587\u6848").option("--deleteUnused", "\u5220\u9664\u672A\u4F7F\u7528\u7684\u6587\u6848").example("dune extract").action(async (args) => {
|
|
15
|
-
const { extract } = await import("./extract-
|
|
15
|
+
const { extract } = await import("./extract-DGQMSBR5.js");
|
|
16
16
|
await extract(args);
|
|
17
17
|
});
|
|
18
18
|
cli.command("namespaceSwc", "\u6DFB\u52A0 namespace \u524D\u7F00\uFF0C\u7531 swc \u9A71\u52A8").example("dune namespaceSwc").action(async () => {
|
|
19
|
-
const { namespace } = await import("./namespace-
|
|
19
|
+
const { namespace } = await import("./namespace-4FUD4GZ2.js");
|
|
20
20
|
return namespace({ mode: "swc" });
|
|
21
21
|
});
|
|
22
22
|
cli.command("namespaceReg", "\u6DFB\u52A0 namespace \u524D\u7F00\uFF0C\u7531\u6B63\u5219\u9A71\u52A8").example("dune namespaceReg").action(async () => {
|
|
23
|
-
const { namespace } = await import("./namespace-
|
|
23
|
+
const { namespace } = await import("./namespace-4FUD4GZ2.js");
|
|
24
24
|
return namespace({ mode: "reg" });
|
|
25
25
|
});
|
|
26
26
|
cli.command("upload", "\u4E0A\u4F20\u7FFB\u8BD1\u6587\u4EF6").example("dune upload").action(async (args) => {
|
|
27
|
-
const { upload } = await import("./upload-
|
|
27
|
+
const { upload } = await import("./upload-OUXQZAW4.js");
|
|
28
28
|
await upload();
|
|
29
29
|
});
|
|
30
|
-
cli.command("downloadFromPlatform", "\u4ECE\u7FFB\u8BD1\u5E73\u53F0\u4E0B\u8F7D\u6587\u4EF6").example("dune downloadFromPlatform").action(async () => {
|
|
31
|
-
const { downloadFromPlatform } = await import("./downloadFromPlatform-6ZUZTZAX.js");
|
|
32
|
-
await downloadFromPlatform();
|
|
33
|
-
});
|
|
34
30
|
cli.command("generateApi", "\u751F\u6210 api \u6587\u4EF6").example("dune generateApi").action(async () => {
|
|
35
|
-
const { generateApi } = await import("./generateApi-
|
|
31
|
+
const { generateApi } = await import("./generateApi-A4RH4WFR.js");
|
|
36
32
|
await generateApi();
|
|
37
33
|
});
|
|
38
34
|
cli.command("login", "\u767B\u5F55").action(async () => {
|
|
@@ -56,7 +52,7 @@ exp : ${new Date(googleAuth.tokens.expiry_date).toLocaleString()}
|
|
|
56
52
|
}
|
|
57
53
|
});
|
|
58
54
|
cli.command("init", "\u521D\u59CB\u5316\u914D\u7F6E\u6587\u4EF6").example("dune init").action(async () => {
|
|
59
|
-
const { initConfig } = await import("./initConfig-
|
|
55
|
+
const { initConfig } = await import("./initConfig-QRYGDQR7.js");
|
|
60
56
|
await initConfig();
|
|
61
57
|
});
|
|
62
58
|
cli.command("interactive", "\u4EA4\u4E92\u5F0F\u64CD\u4F5C").example("dune interactive").alias("i").action(async (args) => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../package.json","../src/cli.ts"],"sourcesContent":["{\n \"name\": \"@dune2/cli\",\n \"version\": \"0.5.1\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/liaoyinglong/next-tools.git\",\n \"directory\": \"packages/cli\"\n },\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\"\n },\n \"./cli\": {\n \"import\": \"./dist/cli.js\"\n },\n \"./normalizeConfig\": {\n \"import\": \"./dist/normalizeConfig.js\"\n },\n \"./prettier\": {\n \"import\": \"./dist/prettier.js\",\n \"require\": \"./dist/prettier.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"types\": \"dist/index.d.ts\",\n \"bin\": {\n \"dune\": \"./dist/cli.js\"\n },\n \"files\": [\n \"dist\"\n ],\n \"scripts\": {\n \"build\": \"shx rm -rf ./dist && tsup --splitting\",\n \"dev\": \"pnpm run build --watch\",\n \"lint\": \"tsc --diagnostics --noEmit\",\n \"test\": \"vitest run\",\n \"test:u\": \"vitest -u\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"@dune2/wasm\": \"workspace:*\",\n \"
|
|
1
|
+
{"version":3,"sources":["../package.json","../src/cli.ts"],"sourcesContent":["{\n \"name\": \"@dune2/cli\",\n \"version\": \"0.5.1\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/liaoyinglong/next-tools.git\",\n \"directory\": \"packages/cli\"\n },\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\"\n },\n \"./cli\": {\n \"import\": \"./dist/cli.js\"\n },\n \"./normalizeConfig\": {\n \"import\": \"./dist/normalizeConfig.js\"\n },\n \"./prettier\": {\n \"import\": \"./dist/prettier.js\",\n \"require\": \"./dist/prettier.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"types\": \"dist/index.d.ts\",\n \"bin\": {\n \"dune\": \"./dist/cli.js\"\n },\n \"files\": [\n \"dist\"\n ],\n \"scripts\": {\n \"build\": \"shx rm -rf ./dist && tsup --splitting\",\n \"dev\": \"pnpm run build --watch\",\n \"lint\": \"tsc --diagnostics --noEmit\",\n \"test\": \"vitest run\",\n \"test:u\": \"vitest -u\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"@dune2/wasm\": \"workspace:*\",\n \"cac\": \"^6.7.14\",\n \"cli-table3\": \"^0.6.3\",\n \"connect\": \"^3.7.0\",\n \"debug\": \"^4.3.4\",\n \"enquirer\": \"^2.3.6\",\n \"fs-extra\": \"^11.2.0\",\n \"globby\": \"^14.0.1\",\n \"googleapis\": \"108.0.0\",\n \"joycon\": \"^3.1.1\",\n \"json-schema-to-typescript\": \"15.0.0\",\n \"lodash\": \"^4.17.21\",\n \"open\": \"^10.1.0\",\n \"p-map\": \"^7.0.2\",\n \"path-to-regexp\": \"7.1.0\",\n \"picocolors\": \"^1.0.0\"\n },\n \"devDependencies\": {\n \"@types/debug\": \"^4.1.7\",\n \"@types/lodash\": \"^4.14.186\",\n \"gaxios\": \"*\",\n \"google-auth-library\": \"*\",\n \"openapi-types\": \"^12.0.2\",\n \"prettier\": \"^3\",\n \"tsup\": \"8\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n","#!/usr/bin/env node\nimport { version } from \"../package.json\";\nimport { cli } from \"./shared\";\n//#region 翻译相关\n\ncli\n .command(\"download\", \"生成翻译文件\")\n .example(\"dune download\")\n .action(async () => {\n const { download } = await import(\"./commands/download\");\n await download();\n });\ncli\n .command(\"extract\", \"提取代码中的文案\")\n .option(\"--deleteUnused\", \"删除未使用的文案\")\n .example(\"dune extract\")\n .action(async (args) => {\n const { extract } = await import(\"./commands/extract\");\n await extract(args);\n });\n\ncli\n .command(\"namespaceSwc\", \"添加 namespace 前缀,由 swc 驱动\")\n .example(\"dune namespaceSwc\")\n .action(async () => {\n const { namespace } = await import(\"./commands/namespace\");\n return namespace({ mode: \"swc\" });\n });\n\ncli\n .command(\"namespaceReg\", \"添加 namespace 前缀,由正则驱动\")\n .example(\"dune namespaceReg\")\n .action(async () => {\n const { namespace } = await import(\"./commands/namespace\");\n return namespace({ mode: \"reg\" });\n });\n\ncli\n .command(\"upload\", \"上传翻译文件\")\n .example(\"dune upload\")\n .action(async (args) => {\n const { upload } = await import(\"./commands/upload\");\n await upload();\n });\n\n//#endregion\n\n//#region api 相关\ncli\n .command(\"generateApi\", \"生成 api 文件\")\n .example(\"dune generateApi\")\n .action(async () => {\n const { generateApi } = await import(\"./commands/generateApi\");\n await generateApi();\n });\n//#endregion\n\n//#region user 相关\ncli.command(\"login\", \"登录\").action(async () => {\n const { googleAuth } = await import(\"./shared/google/auth\");\n await googleAuth.initCredentials();\n});\ncli.command(\"logout\", \"退出\").action(async () => {\n const { googleAuth } = await import(\"./shared/google/auth\");\n await googleAuth.removeCredentials();\n});\ncli.command(\"userInfo\", \"用户信息\").action(async () => {\n const { googleAuth } = await import(\"./shared/google/auth\");\n if (googleAuth.tokens) {\n console.log(`\\\nemail: ${googleAuth.tokens.email}\naud : ${googleAuth.tokens.aud}\nexp : ${new Date(googleAuth.tokens.expiry_date).toLocaleString()}\n`);\n } else {\n console.log(\"未登录\");\n console.log(`运行 dune login 登录`);\n }\n});\n//#endregion\n\ncli\n .command(\"init\", \"初始化配置文件\")\n .example(\"dune init\")\n .action(async () => {\n const { initConfig } = await import(\"./commands/initConfig\");\n await initConfig();\n });\n\ncli\n .command(\"interactive\", \"交互式操作\")\n .example(\"dune interactive\")\n .alias(\"i\")\n .action(async (args) => {\n const { interactive } = await import(\"./commands/interactive\");\n await interactive(args);\n });\n\n// make default command run interactive\ncli.command(\"\").action(async (args) => {\n const { interactive } = await import(\"./commands/interactive\");\n await interactive(args);\n});\n\ncli.version(version);\ncli.help();\n\n(async () => {\n try {\n // Parse CLI args without running the command\n cli.parse(process.argv, { run: false });\n // Run the command yourself\n // You only need `await` when your command action returns a Promise\n await cli.runMatchedCommand();\n } catch (error) {\n // Handle error here..\n // e.g.\n // console.error(error.stack)\n // process.exit(1)\n }\n})();\n"],"mappings":";;;;;;AAEE,cAAW;;;ACGb,IACG,QAAQ,YAAY,sCAAQ,EAC5B,QAAQ,eAAe,EACvB,OAAO,YAAY;AAClB,QAAM,EAAE,SAAS,IAAI,MAAM,OAAO,wBAAqB;AACvD,QAAM,SAAS;AACjB,CAAC;AACH,IACG,QAAQ,WAAW,kDAAU,EAC7B,OAAO,kBAAkB,kDAAU,EACnC,QAAQ,cAAc,EACtB,OAAO,OAAO,SAAS;AACtB,QAAM,EAAE,QAAQ,IAAI,MAAM,OAAO,uBAAoB;AACrD,QAAM,QAAQ,IAAI;AACpB,CAAC;AAEH,IACG,QAAQ,gBAAgB,kEAA0B,EAClD,QAAQ,mBAAmB,EAC3B,OAAO,YAAY;AAClB,QAAM,EAAE,UAAU,IAAI,MAAM,OAAO,yBAAsB;AACzD,SAAO,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,CAAC;AAEH,IACG,QAAQ,gBAAgB,yEAAuB,EAC/C,QAAQ,mBAAmB,EAC3B,OAAO,YAAY;AAClB,QAAM,EAAE,UAAU,IAAI,MAAM,OAAO,yBAAsB;AACzD,SAAO,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,CAAC;AAEH,IACG,QAAQ,UAAU,sCAAQ,EAC1B,QAAQ,aAAa,EACrB,OAAO,OAAO,SAAS;AACtB,QAAM,EAAE,OAAO,IAAI,MAAM,OAAO,sBAAmB;AACnD,QAAM,OAAO;AACf,CAAC;AAKH,IACG,QAAQ,eAAe,+BAAW,EAClC,QAAQ,kBAAkB,EAC1B,OAAO,YAAY;AAClB,QAAM,EAAE,YAAY,IAAI,MAAM,OAAO,2BAAwB;AAC7D,QAAM,YAAY;AACpB,CAAC;AAIH,IAAI,QAAQ,SAAS,cAAI,EAAE,OAAO,YAAY;AAC5C,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,oBAAsB;AAC1D,QAAM,WAAW,gBAAgB;AACnC,CAAC;AACD,IAAI,QAAQ,UAAU,cAAI,EAAE,OAAO,YAAY;AAC7C,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,oBAAsB;AAC1D,QAAM,WAAW,kBAAkB;AACrC,CAAC;AACD,IAAI,QAAQ,YAAY,0BAAM,EAAE,OAAO,YAAY;AACjD,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,oBAAsB;AAC1D,MAAI,WAAW,QAAQ;AACrB,YAAQ,IAAI,UACP,WAAW,OAAO,KAAK;AAAA,SACvB,WAAW,OAAO,GAAG;AAAA,SACrB,IAAI,KAAK,WAAW,OAAO,WAAW,EAAE,eAAe,CAAC;AAAA,CAChE;AAAA,EACC,OAAO;AACL,YAAQ,IAAI,oBAAK;AACjB,YAAQ,IAAI,sCAAkB;AAAA,EAChC;AACF,CAAC;AAGD,IACG,QAAQ,QAAQ,4CAAS,EACzB,QAAQ,WAAW,EACnB,OAAO,YAAY;AAClB,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,0BAAuB;AAC3D,QAAM,WAAW;AACnB,CAAC;AAEH,IACG,QAAQ,eAAe,gCAAO,EAC9B,QAAQ,kBAAkB,EAC1B,MAAM,GAAG,EACT,OAAO,OAAO,SAAS;AACtB,QAAM,EAAE,YAAY,IAAI,MAAM,OAAO,2BAAwB;AAC7D,QAAM,YAAY,IAAI;AACxB,CAAC;AAGH,IAAI,QAAQ,EAAE,EAAE,OAAO,OAAO,SAAS;AACrC,QAAM,EAAE,YAAY,IAAI,MAAM,OAAO,2BAAwB;AAC7D,QAAM,YAAY,IAAI;AACxB,CAAC;AAED,IAAI,QAAQ,OAAO;AACnB,IAAI,KAAK;AAAA,CAER,YAAY;AACX,MAAI;AAEF,QAAI,MAAM,QAAQ,MAAM,EAAE,KAAK,MAAM,CAAC;AAGtC,UAAM,IAAI,kBAAkB;AAAA,EAC9B,SAAS,OAAO;AAAA,EAKhB;AACF,GAAG;","names":[]}
|
|
@@ -3,16 +3,16 @@ import {
|
|
|
3
3
|
} from "./chunk-IKJLPHF7.js";
|
|
4
4
|
import "./chunk-6UFZ6KLX.js";
|
|
5
5
|
import "./chunk-KNC7XY4Z.js";
|
|
6
|
-
import {
|
|
7
|
-
promptI18nConfigEnable
|
|
8
|
-
} from "./chunk-2SEEW5WZ.js";
|
|
9
6
|
import {
|
|
10
7
|
I18nData
|
|
11
8
|
} from "./chunk-ADQ6JLT6.js";
|
|
9
|
+
import {
|
|
10
|
+
promptI18nConfigEnable
|
|
11
|
+
} from "./chunk-2SEEW5WZ.js";
|
|
12
12
|
import {
|
|
13
13
|
getConfig
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-2DSIJDNZ.js";
|
|
15
|
+
import "./chunk-555YTWSW.js";
|
|
16
16
|
import {
|
|
17
17
|
createLogger
|
|
18
18
|
} from "./chunk-UGSBKD2I.js";
|
|
@@ -46,4 +46,4 @@ async function download() {
|
|
|
46
46
|
export {
|
|
47
47
|
download
|
|
48
48
|
};
|
|
49
|
-
//# sourceMappingURL=download-
|
|
49
|
+
//# sourceMappingURL=download-ZZKXRKW5.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
promptI18nConfigEnable
|
|
3
|
-
} from "./chunk-2SEEW5WZ.js";
|
|
4
1
|
import {
|
|
5
2
|
I18nData
|
|
6
3
|
} from "./chunk-ADQ6JLT6.js";
|
|
4
|
+
import {
|
|
5
|
+
promptI18nConfigEnable
|
|
6
|
+
} from "./chunk-2SEEW5WZ.js";
|
|
7
7
|
import {
|
|
8
8
|
getConfig
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-2DSIJDNZ.js";
|
|
10
|
+
import "./chunk-555YTWSW.js";
|
|
11
11
|
import {
|
|
12
12
|
createLogger
|
|
13
13
|
} from "./chunk-UGSBKD2I.js";
|
|
@@ -84,10 +84,7 @@ async function extract(opts) {
|
|
|
84
84
|
console.log(pc.bold("\u4EE5\u4E0B\u672A\u80FD\u6210\u529F\u63D0\u53D6\u7684\u6587\u6848\uFF0C\u8BF7\u624B\u52A8\u5904\u7406\uFF1A"));
|
|
85
85
|
console.log(errMsgs.join(os.EOL));
|
|
86
86
|
}
|
|
87
|
-
I18nData.printStatistic("\u63D0\u53D6\u7ED3\u679C
|
|
88
|
-
await import("./uploadToTranslatePlatform-GK4VUXIU.js").then(
|
|
89
|
-
(mod) => mod.uploadToTranslatePlatform(configItem, i18nDataArr)
|
|
90
|
-
);
|
|
87
|
+
I18nData.printStatistic("\u63D0\u53D6\u7ED3\u679C\uFF1A", i18nDataArr);
|
|
91
88
|
}
|
|
92
89
|
}
|
|
93
90
|
async function saveExtractedMetaData(config, extractedI18nDataMap) {
|
|
@@ -113,4 +110,4 @@ async function saveExtractedMetaData(config, extractedI18nDataMap) {
|
|
|
113
110
|
export {
|
|
114
111
|
extract
|
|
115
112
|
};
|
|
116
|
-
//# sourceMappingURL=extract-
|
|
113
|
+
//# sourceMappingURL=extract-DGQMSBR5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/extract/index.ts"],"sourcesContent":["import fs from \"fs-extra\";\nimport { globby } from \"globby\";\nimport os from \"os\";\nimport pMap from \"p-map\";\nimport path from \"path\";\nimport pc from \"picocolors\";\nimport { createLogger } from \"../../shared\";\nimport { getConfig, I18nConfig } from \"../../shared/config\";\nimport { ExtractedMap, I18nData } from \"../../shared/i18nData\";\nimport { promptI18nConfigEnable } from \"../../shared/promptConfigEnable\";\n\nconst log = createLogger(\"extract\");\n\n/**\n * 提取文案\n */\nexport async function extract(opts?: { deleteUnused: boolean }) {\n const config = await getConfig();\n const { extract } = await import(\"@dune2/wasm\");\n\n let i18nConfigs = await promptI18nConfigEnable(\n config.i18n?.filter((item) => !item.disableExtract),\n );\n\n // 这是使得任务串行,方便看日志\n for (const configItem of i18nConfigs) {\n const files = await globby(\n [\n `./src/**/**.{js,jsx,ts,tsx}`,\n \"!**/node_modules/**\",\n \"!**.d.ts\",\n \"!**/.next/**\",\n \"!**/out/**\",\n ].concat(configItem.include ?? []),\n { cwd: configItem.cwd },\n );\n log.info(\"预计共解析 %s 个文件\", pc.green(files.length));\n let errMsgs: string[] = [];\n const extractedI18nDataMap: ExtractedMap = new Map();\n\n await pMap(\n files,\n async (file) => {\n const content = await fs.readFile(file, \"utf-8\");\n const res = await extract(content, file);\n if (res.data.size) {\n log.info(\n \"从 %s 中提取到 %s 条文案\",\n pc.dim(file),\n pc.green(res.data.size),\n );\n res.data.forEach((value, key) => {\n let cur = extractedI18nDataMap.get(key)!;\n const hasCache = !!cur;\n if (!hasCache) {\n cur = { ...value, files: [] };\n }\n cur.files.push(\n path.resolve(file) + \":\" + value.line + \":\" + value.column,\n );\n // 优先使用 提取出来的文案\n cur.messages = value.messages || cur.messages;\n\n if (!hasCache) {\n extractedI18nDataMap.set(key, cur);\n }\n });\n }\n if (res.errMsg) {\n errMsgs.push(res.errMsg);\n }\n },\n { concurrency: 20 },\n );\n\n await saveExtractedMetaData(configItem, extractedI18nDataMap);\n\n const i18nDataArr = await pMap(configItem.locales ?? [], async (locale) => {\n const i18nData = new I18nData(locale, configItem, opts?.deleteUnused);\n await i18nData.updateByExtractedData(extractedI18nDataMap);\n await i18nData.saveToDisk();\n return i18nData;\n });\n if (errMsgs.length) {\n console.log(pc.bold(\"以下未能成功提取的文案,请手动处理:\"));\n console.log(errMsgs.join(os.EOL));\n }\n I18nData.printStatistic(\"提取结果:\", i18nDataArr);\n }\n}\n\n/**\n * 保存相关的提取信息\n */\nasync function saveExtractedMetaData(\n config: I18nConfig,\n extractedI18nDataMap: ExtractedMap,\n) {\n const { i18nDir } = config;\n // case:\n // input: \"./src/i18n\"\n // output: \"src_i18n.extractedLog.json\"\n const prefix = i18nDir!.replace(\"./\", \"\").replace(/\\//g, \"_\");\n const filename = `${prefix}.extractedLog.json`;\n\n const metaDataJsonPath = path.join(i18nDir!, filename);\n\n await fs.ensureFile(metaDataJsonPath);\n\n // extractedI18nDataMap 是个 Map 需要转成换 json\n let data = Array.from(extractedI18nDataMap.entries()).map(\n ([key, value]) => value,\n );\n // 按照 id 排序\n data = data.sort((a, b) => {\n return a.id.localeCompare(b.id);\n });\n\n await fs.writeJSON(\n metaDataJsonPath,\n\n data,\n {\n spaces: 2,\n },\n );\n}\n"],"mappings":"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","names":["extract"]}
|
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
} from "./chunk-2SEEW5WZ.js";
|
|
7
7
|
import {
|
|
8
8
|
getConfig
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-2DSIJDNZ.js";
|
|
10
|
+
import "./chunk-555YTWSW.js";
|
|
11
11
|
import {
|
|
12
12
|
createLogger
|
|
13
13
|
} from "./chunk-UGSBKD2I.js";
|
|
@@ -269,4 +269,4 @@ export {
|
|
|
269
269
|
generateApiRequestCode,
|
|
270
270
|
markCircularToRef
|
|
271
271
|
};
|
|
272
|
-
//# sourceMappingURL=generateApi-
|
|
272
|
+
//# sourceMappingURL=generateApi-A4RH4WFR.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -71,9 +71,4 @@ declare function numberToLetter(n: number): string;
|
|
|
71
71
|
|
|
72
72
|
declare function resolveSheetId(str?: string): string | undefined;
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
* 从 翻译平台下载翻译文件
|
|
76
|
-
*/
|
|
77
|
-
declare function downloadFromPlatform(): Promise<void>;
|
|
78
|
-
|
|
79
|
-
export { Config, configName, defaultJsonSorter, defineConfig, downloadFromPlatform, getConfig, googleSheet, letterToNumber, numberToLetter, resolveSheetId };
|
|
74
|
+
export { Config, configName, defaultJsonSorter, defineConfig, getConfig, googleSheet, letterToNumber, numberToLetter, resolveSheetId };
|
package/dist/index.js
CHANGED
|
@@ -1,28 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
downloadFromPlatform
|
|
3
|
-
} from "./chunk-BSWWGPSV.js";
|
|
4
1
|
import {
|
|
5
2
|
googleSheet,
|
|
6
3
|
letterToNumber,
|
|
7
4
|
numberToLetter
|
|
8
5
|
} from "./chunk-6UFZ6KLX.js";
|
|
9
6
|
import "./chunk-KNC7XY4Z.js";
|
|
10
|
-
import "./chunk-ADQ6JLT6.js";
|
|
11
7
|
import {
|
|
12
8
|
configName,
|
|
13
9
|
defineConfig,
|
|
14
10
|
getConfig
|
|
15
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2DSIJDNZ.js";
|
|
16
12
|
import {
|
|
17
13
|
defaultJsonSorter,
|
|
18
14
|
resolveSheetId
|
|
19
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-555YTWSW.js";
|
|
20
16
|
import "./chunk-UGSBKD2I.js";
|
|
21
17
|
export {
|
|
22
18
|
configName,
|
|
23
19
|
defaultJsonSorter,
|
|
24
20
|
defineConfig,
|
|
25
|
-
downloadFromPlatform,
|
|
26
21
|
getConfig,
|
|
27
22
|
googleSheet,
|
|
28
23
|
letterToNumber,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
configName,
|
|
3
3
|
getConfig
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-2DSIJDNZ.js";
|
|
5
|
+
import "./chunk-555YTWSW.js";
|
|
6
6
|
import {
|
|
7
7
|
createLogger
|
|
8
8
|
} from "./chunk-UGSBKD2I.js";
|
|
@@ -33,4 +33,4 @@ var initConfig = async () => {
|
|
|
33
33
|
export {
|
|
34
34
|
initConfig
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=initConfig-
|
|
36
|
+
//# sourceMappingURL=initConfig-QRYGDQR7.js.map
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
} from "./chunk-Q7UJ456X.js";
|
|
4
4
|
import {
|
|
5
5
|
getConfig
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-2DSIJDNZ.js";
|
|
7
|
+
import "./chunk-555YTWSW.js";
|
|
8
8
|
import {
|
|
9
9
|
createLogger
|
|
10
10
|
} from "./chunk-UGSBKD2I.js";
|
|
@@ -134,4 +134,4 @@ async function namespace(params) {
|
|
|
134
134
|
export {
|
|
135
135
|
namespace
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=namespace-
|
|
137
|
+
//# sourceMappingURL=namespace-4FUD4GZ2.js.map
|
package/dist/normalizeConfig.js
CHANGED
|
@@ -6,17 +6,17 @@ import {
|
|
|
6
6
|
letterToNumber
|
|
7
7
|
} from "./chunk-6UFZ6KLX.js";
|
|
8
8
|
import "./chunk-KNC7XY4Z.js";
|
|
9
|
-
import {
|
|
10
|
-
promptI18nConfigEnable
|
|
11
|
-
} from "./chunk-2SEEW5WZ.js";
|
|
12
9
|
import {
|
|
13
10
|
I18nData,
|
|
14
11
|
sleep
|
|
15
12
|
} from "./chunk-ADQ6JLT6.js";
|
|
13
|
+
import {
|
|
14
|
+
promptI18nConfigEnable
|
|
15
|
+
} from "./chunk-2SEEW5WZ.js";
|
|
16
16
|
import {
|
|
17
17
|
getConfig
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-2DSIJDNZ.js";
|
|
19
|
+
import "./chunk-555YTWSW.js";
|
|
20
20
|
import {
|
|
21
21
|
createLogger
|
|
22
22
|
} from "./chunk-UGSBKD2I.js";
|
|
@@ -89,4 +89,4 @@ async function upload() {
|
|
|
89
89
|
export {
|
|
90
90
|
upload
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=upload-
|
|
92
|
+
//# sourceMappingURL=upload-OUXQZAW4.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dune2/cli",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/liaoyinglong/next-tools.git",
|
|
@@ -32,7 +32,6 @@
|
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@apidevtools/swagger-parser": "^10.1.0",
|
|
35
|
-
"axios": "^1.6.2",
|
|
36
35
|
"cac": "^6.7.14",
|
|
37
36
|
"cli-table3": "^0.6.3",
|
|
38
37
|
"connect": "^3.7.0",
|
|
@@ -40,13 +39,13 @@
|
|
|
40
39
|
"enquirer": "^2.3.6",
|
|
41
40
|
"fs-extra": "^11.2.0",
|
|
42
41
|
"globby": "^14.0.1",
|
|
43
|
-
"googleapis": "
|
|
42
|
+
"googleapis": "108.0.0",
|
|
44
43
|
"joycon": "^3.1.1",
|
|
45
|
-
"json-schema-to-typescript": "
|
|
44
|
+
"json-schema-to-typescript": "15.0.0",
|
|
46
45
|
"lodash": "^4.17.21",
|
|
47
46
|
"open": "^10.1.0",
|
|
48
47
|
"p-map": "^7.0.2",
|
|
49
|
-
"path-to-regexp": "
|
|
48
|
+
"path-to-regexp": "7.1.0",
|
|
50
49
|
"picocolors": "^1.0.0",
|
|
51
50
|
"@dune2/wasm": "0.4.0"
|
|
52
51
|
},
|
package/dist/chunk-BSWWGPSV.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
I18nData
|
|
3
|
-
} from "./chunk-ADQ6JLT6.js";
|
|
4
|
-
import {
|
|
5
|
-
getConfig
|
|
6
|
-
} from "./chunk-SVCF6X5K.js";
|
|
7
|
-
import {
|
|
8
|
-
createLogger
|
|
9
|
-
} from "./chunk-UGSBKD2I.js";
|
|
10
|
-
|
|
11
|
-
// src/commands/downloadFromPlatform.ts
|
|
12
|
-
import axios from "axios";
|
|
13
|
-
import pMap from "p-map";
|
|
14
|
-
var logger = createLogger("downloadFromPlatform");
|
|
15
|
-
async function downloadFromPlatform() {
|
|
16
|
-
var _a;
|
|
17
|
-
const config = await getConfig();
|
|
18
|
-
const i18nConfig = (_a = config.i18n) == null ? void 0 : _a[0];
|
|
19
|
-
if (!i18nConfig) {
|
|
20
|
-
logger.error("i18n \u914D\u7F6E\u4E3A\u7A7A");
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const { translatePlatform, locales } = i18nConfig;
|
|
24
|
-
if (!(translatePlatform == null ? void 0 : translatePlatform.enable)) {
|
|
25
|
-
logger.info("translatePlatform.enable \u4E3A false\uFF0C\u4E0D\u4F1A\u4E0B\u8F7D");
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
logger.info("\u5F00\u59CB\u4ECE\u7FFB\u8BD1\u5E73\u53F0\u4E0B\u8F7D\u7FFB\u8BD1\u6587\u4EF6");
|
|
29
|
-
const res = await axios({
|
|
30
|
-
baseURL: translatePlatform.url,
|
|
31
|
-
url: "/v1/dune-i18n/public/findAll",
|
|
32
|
-
params: {
|
|
33
|
-
projectName: translatePlatform.project
|
|
34
|
-
}
|
|
35
|
-
}).catch((err) => {
|
|
36
|
-
throw new TransError(err, "\u8BF7\u6C42\u7FFB\u8BD1\u5E73\u53F0\u5931\u8D25");
|
|
37
|
-
});
|
|
38
|
-
const data = res.data.data;
|
|
39
|
-
if (!data) {
|
|
40
|
-
throw new TransError(res.data, "data \u4E3A\u7A7A");
|
|
41
|
-
}
|
|
42
|
-
await pMap(locales ?? [], async (locale) => {
|
|
43
|
-
const i18nData = new I18nData(locale, i18nConfig);
|
|
44
|
-
await i18nData.updateFromSheetData((data == null ? void 0 : data[locale]) ?? {});
|
|
45
|
-
await i18nData.saveToDisk();
|
|
46
|
-
return i18nData;
|
|
47
|
-
});
|
|
48
|
-
logger.info("\u4ECE\u7FFB\u8BD1\u5E73\u53F0\u4E0B\u8F7D\u7FFB\u8BD1\u6587\u4EF6\u5B8C\u6210");
|
|
49
|
-
}
|
|
50
|
-
var TransError = class extends Error {
|
|
51
|
-
constructor(data, message = "") {
|
|
52
|
-
super(`\u83B7\u53D6\u7FFB\u8BD1\u5E73\u53F0\u6570\u636E\u5931\u8D25: ${message}`);
|
|
53
|
-
this.data = data;
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export {
|
|
58
|
-
downloadFromPlatform
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=chunk-BSWWGPSV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/downloadFromPlatform.ts"],"sourcesContent":["import axios from \"axios\";\nimport pMap from \"p-map\";\nimport { createLogger } from \"../shared\";\nimport { getConfig } from \"../shared/config\";\nimport { I18nData } from \"../shared/i18nData\";\n\nconst logger = createLogger(\"downloadFromPlatform\");\n\n/**\n * 从 翻译平台下载翻译文件\n */\nexport async function downloadFromPlatform() {\n const config = await getConfig();\n // 只有配置了 translatePlatform 才会下载\n // TODO: 暂时只支持一个,后续支持多个\n const i18nConfig = config.i18n?.[0];\n if (!i18nConfig) {\n logger.error(\"i18n 配置为空\");\n return;\n }\n const { translatePlatform, locales } = i18nConfig;\n if (!translatePlatform?.enable) {\n logger.info(\"translatePlatform.enable 为 false,不会下载\");\n return;\n }\n logger.info(\"开始从翻译平台下载翻译文件\");\n const res = await axios({\n baseURL: translatePlatform.url,\n url: \"/v1/dune-i18n/public/findAll\",\n params: {\n projectName: translatePlatform.project,\n },\n }).catch((err) => {\n throw new TransError(err, \"请求翻译平台失败\");\n });\n\n const data = res.data.data;\n if (!data) {\n throw new TransError(res.data, \"data 为空\");\n }\n\n await pMap(locales ?? [], async (locale) => {\n const i18nData = new I18nData(locale, i18nConfig);\n await i18nData.updateFromSheetData(data?.[locale] ?? {});\n await i18nData.saveToDisk();\n return i18nData;\n });\n logger.info(\"从翻译平台下载翻译文件完成\");\n}\n\nclass TransError extends Error {\n constructor(public data: any, message: string = \"\") {\n super(`获取翻译平台数据失败: ${message}`);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,UAAU;AAKjB,IAAM,SAAS,aAAa,sBAAsB;AAKlD,eAAsB,uBAAuB;AAX7C;AAYE,QAAM,SAAS,MAAM,UAAU;AAG/B,QAAM,cAAa,YAAO,SAAP,mBAAc;AACjC,MAAI,CAAC,YAAY;AACf,WAAO,MAAM,+BAAW;AACxB;AAAA,EACF;AACA,QAAM,EAAE,mBAAmB,QAAQ,IAAI;AACvC,MAAI,EAAC,uDAAmB,SAAQ;AAC9B,WAAO,KAAK,qEAAuC;AACnD;AAAA,EACF;AACA,SAAO,KAAK,gFAAe;AAC3B,QAAM,MAAM,MAAM,MAAM;AAAA,IACtB,SAAS,kBAAkB;AAAA,IAC3B,KAAK;AAAA,IACL,QAAQ;AAAA,MACN,aAAa,kBAAkB;AAAA,IACjC;AAAA,EACF,CAAC,EAAE,MAAM,CAAC,QAAQ;AAChB,UAAM,IAAI,WAAW,KAAK,kDAAU;AAAA,EACtC,CAAC;AAED,QAAM,OAAO,IAAI,KAAK;AACtB,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,WAAW,IAAI,MAAM,mBAAS;AAAA,EAC1C;AAEA,QAAM,KAAK,WAAW,CAAC,GAAG,OAAO,WAAW;AAC1C,UAAM,WAAW,IAAI,SAAS,QAAQ,UAAU;AAChD,UAAM,SAAS,qBAAoB,6BAAO,YAAW,CAAC,CAAC;AACvD,UAAM,SAAS,WAAW;AAC1B,WAAO;AAAA,EACT,CAAC;AACD,SAAO,KAAK,gFAAe;AAC7B;AAEA,IAAM,aAAN,cAAyB,MAAM;AAAA,EAC7B,YAAmB,MAAW,UAAkB,IAAI;AAClD,UAAM,iEAAe,OAAO,EAAE;AADb;AAAA,EAEnB;AACF;","names":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
downloadFromPlatform
|
|
3
|
-
} from "./chunk-BSWWGPSV.js";
|
|
4
|
-
import "./chunk-ADQ6JLT6.js";
|
|
5
|
-
import "./chunk-SVCF6X5K.js";
|
|
6
|
-
import "./chunk-4BXCANQI.js";
|
|
7
|
-
import "./chunk-UGSBKD2I.js";
|
|
8
|
-
export {
|
|
9
|
-
downloadFromPlatform
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=downloadFromPlatform-6ZUZTZAX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/extract/index.ts"],"sourcesContent":["import fs from \"fs-extra\";\nimport { globby } from \"globby\";\nimport os from \"os\";\nimport pMap from \"p-map\";\nimport path from \"path\";\nimport pc from \"picocolors\";\nimport { createLogger } from \"../../shared\";\nimport { getConfig, I18nConfig } from \"../../shared/config\";\nimport { ExtractedMap, I18nData } from \"../../shared/i18nData\";\nimport { promptI18nConfigEnable } from \"../../shared/promptConfigEnable\";\n\nconst log = createLogger(\"extract\");\n\n/**\n * 提取文案\n */\nexport async function extract(opts?: { deleteUnused: boolean }) {\n const config = await getConfig();\n const { extract } = await import(\"@dune2/wasm\");\n\n let i18nConfigs = await promptI18nConfigEnable(\n config.i18n?.filter((item) => !item.disableExtract)\n );\n\n // 这是使得任务串行,方便看日志\n for (const configItem of i18nConfigs) {\n const files = await globby(\n [\n `./src/**/**.{js,jsx,ts,tsx}`,\n \"!**/node_modules/**\",\n \"!**.d.ts\",\n \"!**/.next/**\",\n \"!**/out/**\",\n ].concat(configItem.include ?? []),\n { cwd: configItem.cwd }\n );\n log.info(\"预计共解析 %s 个文件\", pc.green(files.length));\n let errMsgs: string[] = [];\n const extractedI18nDataMap: ExtractedMap = new Map();\n\n await pMap(\n files,\n async (file) => {\n const content = await fs.readFile(file, \"utf-8\");\n const res = await extract(content, file);\n if (res.data.size) {\n log.info(\n \"从 %s 中提取到 %s 条文案\",\n pc.dim(file),\n pc.green(res.data.size)\n );\n res.data.forEach((value, key) => {\n let cur = extractedI18nDataMap.get(key)!;\n const hasCache = !!cur;\n if (!hasCache) {\n cur = { ...value, files: [] };\n }\n cur.files.push(\n path.resolve(file) + \":\" + value.line + \":\" + value.column\n );\n // 优先使用 提取出来的文案\n cur.messages = value.messages || cur.messages;\n\n if (!hasCache) {\n extractedI18nDataMap.set(key, cur);\n }\n });\n }\n if (res.errMsg) {\n errMsgs.push(res.errMsg);\n }\n },\n { concurrency: 20 }\n );\n\n await saveExtractedMetaData(configItem, extractedI18nDataMap);\n\n const i18nDataArr = await pMap(configItem.locales ?? [], async (locale) => {\n const i18nData = new I18nData(locale, configItem, opts?.deleteUnused);\n await i18nData.updateByExtractedData(extractedI18nDataMap);\n await i18nData.saveToDisk();\n return i18nData;\n });\n if (errMsgs.length) {\n console.log(pc.bold(\"以下未能成功提取的文案,请手动处理:\"));\n console.log(errMsgs.join(os.EOL));\n }\n I18nData.printStatistic(\"提取结果: \", i18nDataArr);\n\n await import(\"./uploadToTranslatePlatform\").then((mod) =>\n mod.uploadToTranslatePlatform(configItem, i18nDataArr)\n );\n }\n}\n\n/**\n * 保存相关的提取信息\n */\nasync function saveExtractedMetaData(\n config: I18nConfig,\n extractedI18nDataMap: ExtractedMap\n) {\n const { i18nDir } = config;\n // case:\n // input: \"./src/i18n\"\n // output: \"src_i18n.extractedLog.json\"\n const prefix = i18nDir!.replace(\"./\", \"\").replace(/\\//g, \"_\");\n const filename = `${prefix}.extractedLog.json`;\n\n const metaDataJsonPath = path.join(i18nDir!, filename);\n\n await fs.ensureFile(metaDataJsonPath);\n\n // extractedI18nDataMap 是个 Map 需要转成换json\n let data = Array.from(extractedI18nDataMap.entries()).map(\n ([key, value]) => value\n );\n // 按照 id 排序\n data = data.sort((a, b) => {\n return a.id.localeCompare(b.id);\n });\n\n await fs.writeJSON(\n metaDataJsonPath,\n\n data,\n {\n spaces: 2,\n }\n );\n}\n"],"mappings":"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","names":["extract"]}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createLogger
|
|
3
|
-
} from "./chunk-UGSBKD2I.js";
|
|
4
|
-
|
|
5
|
-
// src/commands/extract/uploadToTranslatePlatform.ts
|
|
6
|
-
import axios from "axios";
|
|
7
|
-
import https from "https";
|
|
8
|
-
import pc from "picocolors";
|
|
9
|
-
var agent = new https.Agent({
|
|
10
|
-
rejectUnauthorized: false
|
|
11
|
-
});
|
|
12
|
-
var log = createLogger("uploadToPlatform");
|
|
13
|
-
async function uploadToTranslatePlatform(config, i18nDataArr) {
|
|
14
|
-
const { translatePlatform, defaultLocale } = config;
|
|
15
|
-
if (translatePlatform == null ? void 0 : translatePlatform.enable) {
|
|
16
|
-
log.info(pc.bold("\u5F00\u59CB\u4E0A\u4F20\u81F3\u7FFB\u8BD1\u5E73\u53F0"));
|
|
17
|
-
const defaultII18nData = i18nDataArr.find(
|
|
18
|
-
(item) => item.locale === defaultLocale
|
|
19
|
-
);
|
|
20
|
-
if (!defaultII18nData) {
|
|
21
|
-
log.error("\u6CA1\u6709\u627E\u5230\u9ED8\u8BA4\u8BED\u8A00\u7684\u7FFB\u8BD1\u6587\u4EF6 %s", defaultLocale);
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
try {
|
|
25
|
-
const res = await axios({
|
|
26
|
-
method: "post",
|
|
27
|
-
baseURL: translatePlatform.url,
|
|
28
|
-
url: `/v1/dune-i18n/public/uploadTranslateData`,
|
|
29
|
-
data: {
|
|
30
|
-
localeCode: defaultLocale,
|
|
31
|
-
translateData: defaultII18nData.data,
|
|
32
|
-
projectName: translatePlatform.project
|
|
33
|
-
},
|
|
34
|
-
httpsAgent: agent
|
|
35
|
-
});
|
|
36
|
-
log.info("\u4E0A\u4F20\u7ED3\u679C: %o", res.data);
|
|
37
|
-
} catch (e) {
|
|
38
|
-
log.error("\u4E0A\u4F20\u5931\u8D25 %s %s", e.message, e.code);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export {
|
|
43
|
-
uploadToTranslatePlatform
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=uploadToTranslatePlatform-GK4VUXIU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/extract/uploadToTranslatePlatform.ts"],"sourcesContent":["import axios from \"axios\";\nimport https from \"https\";\nimport pc from \"picocolors\";\nimport { createLogger } from \"../../shared\";\nimport { I18nConfig } from \"../../shared/config\";\nimport { I18nData } from \"../../shared/i18nData\";\nconst agent = new https.Agent({\n rejectUnauthorized: false,\n});\n\nconst log = createLogger(\"uploadToPlatform\");\n\nexport async function uploadToTranslatePlatform(\n config: I18nConfig,\n i18nDataArr: I18nData[]\n) {\n const { translatePlatform, defaultLocale } = config;\n\n if (translatePlatform?.enable) {\n log.info(pc.bold(\"开始上传至翻译平台\"));\n const defaultII18nData = i18nDataArr.find(\n (item) => item.locale === defaultLocale\n );\n if (!defaultII18nData) {\n log.error(\"没有找到默认语言的翻译文件 %s\", defaultLocale);\n return;\n }\n try {\n // 调用 translatePlatform 的接口\n const res = await axios({\n method: \"post\",\n baseURL: translatePlatform.url,\n url: `/v1/dune-i18n/public/uploadTranslateData`,\n data: {\n localeCode: defaultLocale,\n translateData: defaultII18nData.data,\n projectName: translatePlatform.project,\n },\n httpsAgent: agent,\n });\n log.info(\"上传结果: %o\", res.data);\n } catch (e) {\n log.error(\"上传失败 %s %s\", e.message, e.code);\n }\n }\n}\n"],"mappings":";;;;;AAAA,OAAO,WAAW;AAClB,OAAO,WAAW;AAClB,OAAO,QAAQ;AAIf,IAAM,QAAQ,IAAI,MAAM,MAAM;AAAA,EAC5B,oBAAoB;AACtB,CAAC;AAED,IAAM,MAAM,aAAa,kBAAkB;AAE3C,eAAsB,0BACpB,QACA,aACA;AACA,QAAM,EAAE,mBAAmB,cAAc,IAAI;AAE7C,MAAI,uDAAmB,QAAQ;AAC7B,QAAI,KAAK,GAAG,KAAK,wDAAW,CAAC;AAC7B,UAAM,mBAAmB,YAAY;AAAA,MACnC,CAAC,SAAS,KAAK,WAAW;AAAA,IAC5B;AACA,QAAI,CAAC,kBAAkB;AACrB,UAAI,MAAM,qFAAoB,aAAa;AAC3C;AAAA,IACF;AACA,QAAI;AAEF,YAAM,MAAM,MAAM,MAAM;AAAA,QACtB,QAAQ;AAAA,QACR,SAAS,kBAAkB;AAAA,QAC3B,KAAK;AAAA,QACL,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,eAAe,iBAAiB;AAAA,UAChC,aAAa,kBAAkB;AAAA,QACjC;AAAA,QACA,YAAY;AAAA,MACd,CAAC;AACD,UAAI,KAAK,gCAAY,IAAI,IAAI;AAAA,IAC/B,SAAS,GAAG;AACV,UAAI,MAAM,kCAAc,EAAE,SAAS,EAAE,IAAI;AAAA,IAC3C;AAAA,EACF;AACF;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|