@leancodepl/intl 9.4.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/CHANGELOG.md +42 -0
- package/README.md +154 -0
- package/package.json +25 -0
- package/src/TranslationsServiceClient.d.ts +13 -0
- package/src/TranslationsServiceClient.js +3 -0
- package/src/TranslationsServiceClient.js.map +1 -0
- package/src/bin.d.ts +2 -0
- package/src/bin.js +129 -0
- package/src/bin.js.map +1 -0
- package/src/commands/diff.d.ts +9 -0
- package/src/commands/diff.js +35 -0
- package/src/commands/diff.js.map +1 -0
- package/src/commands/download.d.ts +10 -0
- package/src/commands/download.js +39 -0
- package/src/commands/download.js.map +1 -0
- package/src/commands/local.d.ts +11 -0
- package/src/commands/local.js +117 -0
- package/src/commands/local.js.map +1 -0
- package/src/commands/sync.d.ts +12 -0
- package/src/commands/sync.js +34 -0
- package/src/commands/sync.js.map +1 -0
- package/src/commands/upload.d.ts +10 -0
- package/src/commands/upload.js +32 -0
- package/src/commands/upload.js.map +1 -0
- package/src/formatjs.d.ts +21 -0
- package/src/formatjs.js +60 -0
- package/src/formatjs.js.map +1 -0
- package/src/index.d.ts +6 -0
- package/src/index.js +16 -0
- package/src/index.js.map +1 -0
- package/src/mergeWithEnv.d.ts +7 -0
- package/src/mergeWithEnv.js +14 -0
- package/src/mergeWithEnv.js.map +1 -0
- package/src/mkTranslationsServiceClient.d.ts +5 -0
- package/src/mkTranslationsServiceClient.js +14 -0
- package/src/mkTranslationsServiceClient.js.map +1 -0
- package/src/poeditor/POEditorClient.d.ts +19 -0
- package/src/poeditor/POEditorClient.js +88 -0
- package/src/poeditor/POEditorClient.js.map +1 -0
- package/src/poeditor/api.generated/api.d.ts +2570 -0
- package/src/poeditor/api.generated/api.js +2586 -0
- package/src/poeditor/api.generated/api.js.map +1 -0
- package/src/poeditor/api.generated/base.d.ts +66 -0
- package/src/poeditor/api.generated/base.js +70 -0
- package/src/poeditor/api.generated/base.js.map +1 -0
- package/src/poeditor/api.generated/common.d.ts +65 -0
- package/src/poeditor/api.generated/common.js +146 -0
- package/src/poeditor/api.generated/common.js.map +1 -0
- package/src/poeditor/api.generated/configuration.d.ts +91 -0
- package/src/poeditor/api.generated/configuration.js +100 -0
- package/src/poeditor/api.generated/configuration.js.map +1 -0
- package/src/poeditor/api.generated/index.d.ts +13 -0
- package/src/poeditor/api.generated/index.js +18 -0
- package/src/poeditor/api.generated/index.js.map +1 -0
- package/src/poeditor/generatePoeditorClient.d.ts +1 -0
- package/src/poeditor/generatePoeditorClient.js +54 -0
- package/src/poeditor/generatePoeditorClient.js.map +1 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
import type { TranslationsServiceClient } from "../TranslationsServiceClient";
|
|
3
|
+
export declare const syncCommandOptionsSchema: z.ZodObject<{
|
|
4
|
+
srcPattern: z.ZodString;
|
|
5
|
+
outputDir: z.ZodString;
|
|
6
|
+
languages: z.ZodArray<z.ZodString>;
|
|
7
|
+
defaultLanguage: z.ZodString;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export type SyncCommandOptions = z.infer<typeof syncCommandOptionsSchema> & {
|
|
10
|
+
translationsServiceClient: TranslationsServiceClient;
|
|
11
|
+
};
|
|
12
|
+
export declare function sync({ srcPattern, outputDir, languages, translationsServiceClient, defaultLanguage, }: SyncCommandOptions): Promise<void>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncCommandOptionsSchema = void 0;
|
|
4
|
+
exports.sync = sync;
|
|
5
|
+
const v4_1 = require("zod/v4");
|
|
6
|
+
const download_1 = require("./download");
|
|
7
|
+
const upload_1 = require("./upload");
|
|
8
|
+
exports.syncCommandOptionsSchema = v4_1.z.object({
|
|
9
|
+
srcPattern: v4_1.z.string(),
|
|
10
|
+
outputDir: v4_1.z.string(),
|
|
11
|
+
languages: v4_1.z.array(v4_1.z.string()),
|
|
12
|
+
defaultLanguage: v4_1.z.string(),
|
|
13
|
+
});
|
|
14
|
+
async function sync({ srcPattern, outputDir, languages, translationsServiceClient, defaultLanguage, }) {
|
|
15
|
+
try {
|
|
16
|
+
console.log("Starting sync operation...");
|
|
17
|
+
await (0, upload_1.upload)({
|
|
18
|
+
srcPattern,
|
|
19
|
+
translationsServiceClient,
|
|
20
|
+
defaultLanguage,
|
|
21
|
+
});
|
|
22
|
+
await (0, download_1.download)({
|
|
23
|
+
outputDir,
|
|
24
|
+
languages,
|
|
25
|
+
translationsServiceClient,
|
|
26
|
+
});
|
|
27
|
+
console.log("Sync completed successfully!");
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error("Error in sync command:", error);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../../packages/intl/src/commands/sync.ts"],"names":[],"mappings":";;;AAgBA,oBA2BC;AA3CD,+BAA0B;AAC1B,yCAAqC;AACrC,qCAAiC;AAGpB,QAAA,wBAAwB,GAAG,MAAC,CAAC,MAAM,CAAC;IAC/C,UAAU,EAAE,MAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,MAAC,CAAC,KAAK,CAAC,MAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAA;AAMK,KAAK,UAAU,IAAI,CAAC,EACzB,UAAU,EACV,SAAS,EACT,SAAS,EACT,yBAAyB,EACzB,eAAe,GACI;IACnB,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;QAEzC,MAAM,IAAA,eAAM,EAAC;YACX,UAAU;YACV,yBAAyB;YACzB,eAAe;SAChB,CAAC,CAAA;QAEF,MAAM,IAAA,mBAAQ,EAAC;YACb,SAAS;YACT,SAAS;YACT,yBAAyB;SAC1B,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
import type { TranslationsServiceClient } from "../TranslationsServiceClient";
|
|
3
|
+
export declare const uploadCommandOptionsSchema: z.ZodObject<{
|
|
4
|
+
srcPattern: z.ZodString;
|
|
5
|
+
defaultLanguage: z.ZodString;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type UploadCommandOptions = z.infer<typeof uploadCommandOptionsSchema> & {
|
|
8
|
+
translationsServiceClient: TranslationsServiceClient;
|
|
9
|
+
};
|
|
10
|
+
export declare function upload({ srcPattern, translationsServiceClient, defaultLanguage }: UploadCommandOptions): Promise<void>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uploadCommandOptionsSchema = void 0;
|
|
4
|
+
exports.upload = upload;
|
|
5
|
+
const v4_1 = require("zod/v4");
|
|
6
|
+
const formatjs_1 = require("../formatjs");
|
|
7
|
+
exports.uploadCommandOptionsSchema = v4_1.z.object({
|
|
8
|
+
srcPattern: v4_1.z.string(),
|
|
9
|
+
defaultLanguage: v4_1.z.string(),
|
|
10
|
+
});
|
|
11
|
+
async function upload({ srcPattern, translationsServiceClient, defaultLanguage }) {
|
|
12
|
+
try {
|
|
13
|
+
console.log("Extracting messages from source files...");
|
|
14
|
+
const messages = (0, formatjs_1.extractMessages)(srcPattern);
|
|
15
|
+
const messageCount = Object.keys(messages).length;
|
|
16
|
+
console.log(`Extracted ${messageCount} messages`);
|
|
17
|
+
if (messageCount === 0) {
|
|
18
|
+
console.log("No messages found. Make sure your source files contain formatjs messages.");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.log("Uploading terms to translation service...");
|
|
22
|
+
await translationsServiceClient.uploadTerms(messages);
|
|
23
|
+
console.log(`Uploading default translations (${defaultLanguage}) to translation service...`);
|
|
24
|
+
await translationsServiceClient.uploadTranslations(messages, defaultLanguage);
|
|
25
|
+
console.log("Upload completed successfully!");
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.error("Error in upload command:", error);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../../../packages/intl/src/commands/upload.ts"],"names":[],"mappings":";;;AAaA,wBA2BC;AAxCD,+BAA0B;AAC1B,0CAA6C;AAGhC,QAAA,0BAA0B,GAAG,MAAC,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,MAAC,CAAC,MAAM,EAAE;IACtB,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAA;AAMK,KAAK,UAAU,MAAM,CAAC,EAAE,UAAU,EAAE,yBAAyB,EAAE,eAAe,EAAwB;IAC3G,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;QAEvD,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,UAAU,CAAC,CAAA;QAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;QAEjD,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,WAAW,CAAC,CAAA;QAEjD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAA;YACxF,OAAM;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;QAExD,MAAM,yBAAyB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAErD,OAAO,CAAC,GAAG,CAAC,mCAAmC,eAAe,6BAA6B,CAAC,CAAA;QAE5F,MAAM,yBAAyB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;QAE7E,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface ExtractedMessage {
|
|
2
|
+
defaultMessage: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
file?: string;
|
|
5
|
+
}
|
|
6
|
+
export type ExtractedMessages = Record<string, ExtractedMessage>;
|
|
7
|
+
export declare function extractMessages(pattern?: string): ExtractedMessages;
|
|
8
|
+
export declare function compileTranslations({ inputDir, outputDir, options, }: {
|
|
9
|
+
inputDir: string;
|
|
10
|
+
outputDir: string;
|
|
11
|
+
options?: {
|
|
12
|
+
ast?: boolean;
|
|
13
|
+
format?: string;
|
|
14
|
+
};
|
|
15
|
+
}): void;
|
|
16
|
+
export declare function createTranslationsTempDir(prefix?: string): string;
|
|
17
|
+
export declare function writeTranslationsToTempDir({ translations, language, tempDir, }: {
|
|
18
|
+
translations: Record<string, string>;
|
|
19
|
+
language: string;
|
|
20
|
+
tempDir: string;
|
|
21
|
+
}): string;
|
package/src/formatjs.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractMessages = extractMessages;
|
|
4
|
+
exports.compileTranslations = compileTranslations;
|
|
5
|
+
exports.createTranslationsTempDir = createTranslationsTempDir;
|
|
6
|
+
exports.writeTranslationsToTempDir = writeTranslationsToTempDir;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const os_1 = require("os");
|
|
10
|
+
const path_1 = require("path");
|
|
11
|
+
function extractMessages(pattern = "src/**/*.{ts,tsx}") {
|
|
12
|
+
const tempFile = (0, path_1.join)((0, os_1.tmpdir)(), `messages-${Date.now()}.json`);
|
|
13
|
+
try {
|
|
14
|
+
const command = [
|
|
15
|
+
"npx",
|
|
16
|
+
"@formatjs/cli",
|
|
17
|
+
"extract",
|
|
18
|
+
`"${pattern}"`,
|
|
19
|
+
"--out-file",
|
|
20
|
+
`"${tempFile}"`,
|
|
21
|
+
"--preserve-whitespace",
|
|
22
|
+
"--extract-source-location",
|
|
23
|
+
].join(" ");
|
|
24
|
+
(0, child_process_1.execSync)(command);
|
|
25
|
+
const messagesText = (0, fs_1.readFileSync)(tempFile, "utf-8");
|
|
26
|
+
(0, fs_1.rmSync)(tempFile);
|
|
27
|
+
return JSON.parse(messagesText);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
throw new Error(`Failed to extract messages. Error: ${error}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function compileTranslations({ inputDir, outputDir, options = {}, }) {
|
|
34
|
+
const { ast = true, format = "simple" } = options;
|
|
35
|
+
try {
|
|
36
|
+
const command = [
|
|
37
|
+
"npx",
|
|
38
|
+
"@formatjs/cli",
|
|
39
|
+
"compile-folder",
|
|
40
|
+
...(ast ? ["--ast"] : []),
|
|
41
|
+
"--format",
|
|
42
|
+
format,
|
|
43
|
+
inputDir,
|
|
44
|
+
outputDir,
|
|
45
|
+
].join(" ");
|
|
46
|
+
(0, child_process_1.execSync)(command);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
throw new Error(`Failed to compile translations. Error: ${error}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function createTranslationsTempDir(prefix = "intl-") {
|
|
53
|
+
return (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), prefix));
|
|
54
|
+
}
|
|
55
|
+
function writeTranslationsToTempDir({ translations, language, tempDir, }) {
|
|
56
|
+
const filePath = (0, path_1.join)(tempDir, `${language}.json`);
|
|
57
|
+
(0, fs_1.writeFileSync)(filePath, JSON.stringify(translations, null, 2));
|
|
58
|
+
return filePath;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=formatjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatjs.js","sourceRoot":"","sources":["../../../../packages/intl/src/formatjs.ts"],"names":[],"mappings":";;AAaA,0CAuBC;AAED,kDA0BC;AAED,8DAEC;AAED,gEAYC;AAlFD,iDAAwC;AACxC,2BAAqE;AACrE,2BAA2B;AAC3B,+BAA2B;AAU3B,SAAgB,eAAe,CAAC,OAAO,GAAG,mBAAmB;IAC3D,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAE9D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG;YACd,KAAK;YACL,eAAe;YACf,SAAS;YACT,IAAI,OAAO,GAAG;YACd,YAAY;YACZ,IAAI,QAAQ,GAAG;YACf,uBAAuB;YACvB,2BAA2B;SAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAA,wBAAQ,EAAC,OAAO,CAAC,CAAA;QAEjB,MAAM,YAAY,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACpD,IAAA,WAAM,EAAC,QAAQ,CAAC,CAAA;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAA;IAChE,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,OAAO,GAAG,EAAE,GAKb;IACC,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAA;IAEjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG;YACd,KAAK;YACL,eAAe;YACf,gBAAgB;YAChB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,UAAU;YACV,MAAM;YACN,QAAQ;YACR,SAAS;SACV,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACX,IAAA,wBAAQ,EAAC,OAAO,CAAC,CAAA;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAA;IACpE,CAAC;AACH,CAAC;AAED,SAAgB,yBAAyB,CAAC,MAAM,GAAG,OAAO;IACxD,OAAO,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,MAAM,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,SAAgB,0BAA0B,CAAC,EACzC,YAAY,EACZ,QAAQ,EACR,OAAO,GAKR;IACC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAA;IAClD,IAAA,kBAAa,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9D,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { diff } from "./commands/diff";
|
|
2
|
+
export { download } from "./commands/download";
|
|
3
|
+
export { local } from "./commands/local";
|
|
4
|
+
export { sync } from "./commands/sync";
|
|
5
|
+
export { upload } from "./commands/upload";
|
|
6
|
+
export { mkTranslationsServiceClient } from "./mkTranslationsServiceClient";
|
package/src/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mkTranslationsServiceClient = exports.upload = exports.sync = exports.local = exports.download = exports.diff = void 0;
|
|
4
|
+
var diff_1 = require("./commands/diff");
|
|
5
|
+
Object.defineProperty(exports, "diff", { enumerable: true, get: function () { return diff_1.diff; } });
|
|
6
|
+
var download_1 = require("./commands/download");
|
|
7
|
+
Object.defineProperty(exports, "download", { enumerable: true, get: function () { return download_1.download; } });
|
|
8
|
+
var local_1 = require("./commands/local");
|
|
9
|
+
Object.defineProperty(exports, "local", { enumerable: true, get: function () { return local_1.local; } });
|
|
10
|
+
var sync_1 = require("./commands/sync");
|
|
11
|
+
Object.defineProperty(exports, "sync", { enumerable: true, get: function () { return sync_1.sync; } });
|
|
12
|
+
var upload_1 = require("./commands/upload");
|
|
13
|
+
Object.defineProperty(exports, "upload", { enumerable: true, get: function () { return upload_1.upload; } });
|
|
14
|
+
var mkTranslationsServiceClient_1 = require("./mkTranslationsServiceClient");
|
|
15
|
+
Object.defineProperty(exports, "mkTranslationsServiceClient", { enumerable: true, get: function () { return mkTranslationsServiceClient_1.mkTranslationsServiceClient; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/intl/src/index.ts"],"names":[],"mappings":";;;AAAA,wCAAsC;AAA7B,4FAAA,IAAI,OAAA;AACb,gDAA8C;AAArC,oGAAA,QAAQ,OAAA;AACjB,0CAAwC;AAA/B,8FAAA,KAAK,OAAA;AACd,wCAAsC;AAA7B,4FAAA,IAAI,OAAA;AACb,4CAA0C;AAAjC,gGAAA,MAAM,OAAA;AACf,6EAA2E;AAAlE,0IAAA,2BAA2B,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeWithEnv = mergeWithEnv;
|
|
4
|
+
function mergeWithEnv(options) {
|
|
5
|
+
const poeditorApiToken = options.poeditorApiToken || process.env["POEDITOR_API_TOKEN"];
|
|
6
|
+
const poeditorProjectId = options.poeditorProjectId ||
|
|
7
|
+
(process.env["POEDITOR_PROJECT_ID"] ? parseInt(process.env["POEDITOR_PROJECT_ID"], 10) : undefined);
|
|
8
|
+
return {
|
|
9
|
+
...options,
|
|
10
|
+
poeditorApiToken,
|
|
11
|
+
poeditorProjectId,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=mergeWithEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeWithEnv.js","sourceRoot":"","sources":["../../../../packages/intl/src/mergeWithEnv.ts"],"names":[],"mappings":";;AAAA,oCAaC;AAbD,SAAgB,YAAY,CAC1B,OAAU;IAEV,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACtF,MAAM,iBAAiB,GACrB,OAAO,CAAC,iBAAiB;QACzB,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAErG,OAAO;QACL,GAAG,OAAO;QACV,gBAAgB;QAChB,iBAAiB;KAClB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mkTranslationsServiceClient = mkTranslationsServiceClient;
|
|
4
|
+
const POEditorClient_1 = require("./poeditor/POEditorClient");
|
|
5
|
+
function mkTranslationsServiceClient({ poeditorApiToken, poeditorProjectId, }) {
|
|
6
|
+
if (!!poeditorApiToken && !!poeditorProjectId) {
|
|
7
|
+
return new POEditorClient_1.POEditorClient({
|
|
8
|
+
apiToken: poeditorApiToken,
|
|
9
|
+
projectId: poeditorProjectId,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
throw new Error("No configuration for translations service client provided.");
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=mkTranslationsServiceClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mkTranslationsServiceClient.js","sourceRoot":"","sources":["../../../../packages/intl/src/mkTranslationsServiceClient.ts"],"names":[],"mappings":";;AAGA,kEAeC;AAlBD,8DAA0D;AAG1D,SAAgB,2BAA2B,CAAC,EAC1C,gBAAgB,EAChB,iBAAiB,GAIlB;IACC,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC9C,OAAO,IAAI,+BAAc,CAAC;YACxB,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,iBAAiB;SAC7B,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;AAC/E,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ExtractedMessages } from "../formatjs";
|
|
2
|
+
import type { Term, TranslationsServiceClient } from "../TranslationsServiceClient";
|
|
3
|
+
export interface POEditorClientConfig {
|
|
4
|
+
apiToken: string;
|
|
5
|
+
projectId: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class POEditorClient implements TranslationsServiceClient {
|
|
8
|
+
private apiToken;
|
|
9
|
+
private projectId;
|
|
10
|
+
private axiosInstance;
|
|
11
|
+
private projectsApi;
|
|
12
|
+
private termsApi;
|
|
13
|
+
private translationsApi;
|
|
14
|
+
constructor(config: POEditorClientConfig);
|
|
15
|
+
downloadTranslations(language: string): Promise<Record<string, string>>;
|
|
16
|
+
uploadTerms(messages: ExtractedMessages): Promise<void>;
|
|
17
|
+
uploadTranslations(messages: ExtractedMessages, language: string): Promise<void>;
|
|
18
|
+
downloadTerms(): Promise<Term[]>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POEditorClient = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
const api_generated_1 = require("./api.generated");
|
|
7
|
+
class POEditorClient {
|
|
8
|
+
apiToken;
|
|
9
|
+
projectId;
|
|
10
|
+
axiosInstance;
|
|
11
|
+
projectsApi;
|
|
12
|
+
termsApi;
|
|
13
|
+
translationsApi;
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.apiToken = config.apiToken;
|
|
16
|
+
this.projectId = config.projectId;
|
|
17
|
+
this.axiosInstance = axios_1.default.create({
|
|
18
|
+
baseURL: "https://api.poeditor.com/v2",
|
|
19
|
+
});
|
|
20
|
+
const apiConfig = new api_generated_1.Configuration({
|
|
21
|
+
apiKey: config.apiToken,
|
|
22
|
+
});
|
|
23
|
+
this.projectsApi = new api_generated_1.ProjectsApi(apiConfig, undefined, this.axiosInstance);
|
|
24
|
+
this.termsApi = new api_generated_1.TermsApi(apiConfig, undefined, this.axiosInstance);
|
|
25
|
+
this.translationsApi = new api_generated_1.TranslationsApi(apiConfig, undefined, this.axiosInstance);
|
|
26
|
+
}
|
|
27
|
+
async downloadTranslations(language) {
|
|
28
|
+
try {
|
|
29
|
+
const response = await this.projectsApi.projectsExport(this.projectId, language, api_generated_1.ProjectsExportTypeEnum.KeyValueJson, this.apiToken);
|
|
30
|
+
if (response.data.result?.url) {
|
|
31
|
+
const translationsResponse = await this.axiosInstance.get(response.data.result.url);
|
|
32
|
+
return translationsResponse.data || {};
|
|
33
|
+
}
|
|
34
|
+
throw new Error("No download URL received from POEditor");
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new Error(`Failed to download translations for ${language}: ${error}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async uploadTerms(messages) {
|
|
41
|
+
try {
|
|
42
|
+
const terms = Object.entries(messages).map(([key, details]) => ({
|
|
43
|
+
term: key,
|
|
44
|
+
context: details.description,
|
|
45
|
+
reference: details.file,
|
|
46
|
+
comment: `Default: ${details.defaultMessage}`,
|
|
47
|
+
}));
|
|
48
|
+
await this.termsApi.termsAdd(this.projectId, JSON.stringify(terms), this.apiToken);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
throw new Error(`Failed to upload terms: ${error}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async uploadTranslations(messages, language) {
|
|
55
|
+
try {
|
|
56
|
+
const translations = Object.entries(messages).map(([term, details]) => ({
|
|
57
|
+
term,
|
|
58
|
+
translation: {
|
|
59
|
+
content: details.defaultMessage,
|
|
60
|
+
fuzzy: 0,
|
|
61
|
+
},
|
|
62
|
+
}));
|
|
63
|
+
await this.translationsApi.translationsAdd(this.projectId, language, JSON.stringify(translations), this.apiToken);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
throw new Error(`Failed to upload translations for ${language}: ${error}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async downloadTerms() {
|
|
70
|
+
try {
|
|
71
|
+
const response = await this.termsApi.termsList(this.projectId, this.apiToken);
|
|
72
|
+
if (response.data.result?.terms) {
|
|
73
|
+
return response.data.result.terms.map(term => ({
|
|
74
|
+
term: term.term || "",
|
|
75
|
+
context: term.context || "",
|
|
76
|
+
reference: term.reference || "",
|
|
77
|
+
comment: term.comment || "",
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new Error(`Failed to get terms: ${error}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.POEditorClient = POEditorClient;
|
|
88
|
+
//# sourceMappingURL=POEditorClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"POEditorClient.js","sourceRoot":"","sources":["../../../../../packages/intl/src/poeditor/POEditorClient.ts"],"names":[],"mappings":"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"}
|