@lokalise/polyglot-sdk 24.0.0 → 24.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/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/sdk/PolyglotClient.d.ts +1 -0
- package/dist/sdk/PolyglotClient.js +1 -0
- package/dist/sdk/PolyglotClient.js.map +1 -1
- package/dist/sdk/contracts/contextSufficiencyContracts.d.ts +113 -0
- package/dist/sdk/contracts/contextSufficiencyContracts.js +18 -0
- package/dist/sdk/contracts/contextSufficiencyContracts.js.map +1 -0
- package/dist/sdk/contracts/reviewContracts.d.ts +473 -0
- package/dist/sdk/contracts/reviewContracts.js +33 -0
- package/dist/sdk/contracts/reviewContracts.js.map +1 -0
- package/dist/sdk/contracts/translationContracts.d.ts +920 -0
- package/dist/sdk/contracts/translationContracts.js +86 -0
- package/dist/sdk/contracts/translationContracts.js.map +1 -0
- package/dist/sdk/schemas/common/commonSchemas.js +1 -1
- package/dist/sdk/validation/isSegmentUnderLengthLimit.js +3 -6
- package/dist/sdk/validation/isSegmentUnderLengthLimit.js.map +1 -1
- package/package.json +7 -6
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { defineApiContract, sseResponse } from '@lokalise/api-contracts';
|
|
2
|
+
import z from 'zod/v4';
|
|
3
|
+
import { COMMON_ERROR_RESPONSE_SCHEMA } from "../schemas/common/commonSchemas.js";
|
|
4
|
+
import { CONTEXT_NOT_SUPPORTED_ERROR_SCHEMA, INTEGRATION_NOT_AVAILABLE_ERROR_SCHEMA, INTEGRATION_NOT_ENABLED_ERROR_SCHEMA, LANGUAGE_PAIR_NOT_SUPPORTED_ERROR_SCHEMA, VALIDATION_ERROR_SCHEMA, } from "../schemas/common/errorSchemas.js";
|
|
5
|
+
import { GENERATE_VARIANTS_BODY_SCHEMA, GENERATE_VARIANTS_HEADERS_SCHEMA, GENERATE_VARIANTS_RESPONSE_SCHEMA, } from "../schemas/translation/generateVariants.js";
|
|
6
|
+
import { ERROR_EVENT_SCHEMA, TRANSLATION_EVENT_SCHEMA, } from "../schemas/translation/sharedSchemas.js";
|
|
7
|
+
import { TRANSLATE_ASYNC_BODY_SCHEMA, TRANSLATE_ASYNC_HEADERS_SCHEMA, TRANSLATE_ASYNC_RESPONSE_SCHEMA, } from "../schemas/translation/translateAsyncSchemas.js";
|
|
8
|
+
import { TRANSLATE_SYNC_BODY_SCHEMA, TRANSLATE_SYNC_HEADERS_SCHEMA, TRANSLATE_SYNC_RESPONSE_SCHEMA, } from "../schemas/translation/translateSyncSchemas.js";
|
|
9
|
+
import { TRANSLATE_TEXT_SEGMENT_BODY_SCHEMA, TRANSLATE_TEXT_SEGMENT_HEADERS_SCHEMA, } from "../schemas/translation/translateTextSegmentSchemas.js";
|
|
10
|
+
export const translateAsyncContract = defineApiContract({
|
|
11
|
+
method: 'post',
|
|
12
|
+
pathResolver: () => '/v3/content/actions/translate-async',
|
|
13
|
+
requestBodySchema: TRANSLATE_ASYNC_BODY_SCHEMA,
|
|
14
|
+
requestHeaderSchema: TRANSLATE_ASYNC_HEADERS_SCHEMA,
|
|
15
|
+
summary: 'Translate (async) v3',
|
|
16
|
+
description: 'Schedules a translation from source language to target language. Result is delivered via sending a POST request to a given `callbackUrl`.',
|
|
17
|
+
tags: ['Translation APIs'],
|
|
18
|
+
responsesByStatusCode: {
|
|
19
|
+
202: TRANSLATE_ASYNC_RESPONSE_SCHEMA,
|
|
20
|
+
400: COMMON_ERROR_RESPONSE_SCHEMA,
|
|
21
|
+
503: COMMON_ERROR_RESPONSE_SCHEMA,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
export const translateSyncContract = defineApiContract({
|
|
25
|
+
method: 'post',
|
|
26
|
+
pathResolver: () => '/v2/content/actions/translate-sync',
|
|
27
|
+
requestBodySchema: TRANSLATE_SYNC_BODY_SCHEMA,
|
|
28
|
+
requestHeaderSchema: TRANSLATE_SYNC_HEADERS_SCHEMA,
|
|
29
|
+
summary: 'Translate (sync)',
|
|
30
|
+
description: "Translates a segmented text from source language to target language. Prefer to use Translate (async) in any cases which don't require a result in real-time.",
|
|
31
|
+
tags: ['Translation APIs'],
|
|
32
|
+
responsesByStatusCode: {
|
|
33
|
+
200: TRANSLATE_SYNC_RESPONSE_SCHEMA,
|
|
34
|
+
400: z.union([
|
|
35
|
+
COMMON_ERROR_RESPONSE_SCHEMA,
|
|
36
|
+
VALIDATION_ERROR_SCHEMA,
|
|
37
|
+
LANGUAGE_PAIR_NOT_SUPPORTED_ERROR_SCHEMA,
|
|
38
|
+
CONTEXT_NOT_SUPPORTED_ERROR_SCHEMA,
|
|
39
|
+
]),
|
|
40
|
+
503: z.union([
|
|
41
|
+
COMMON_ERROR_RESPONSE_SCHEMA,
|
|
42
|
+
INTEGRATION_NOT_AVAILABLE_ERROR_SCHEMA,
|
|
43
|
+
INTEGRATION_NOT_ENABLED_ERROR_SCHEMA,
|
|
44
|
+
]),
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
export const generateVariantsContract = defineApiContract({
|
|
48
|
+
method: 'post',
|
|
49
|
+
pathResolver: () => '/v1/content/actions/generate-variants',
|
|
50
|
+
requestBodySchema: GENERATE_VARIANTS_BODY_SCHEMA,
|
|
51
|
+
requestHeaderSchema: GENERATE_VARIANTS_HEADERS_SCHEMA,
|
|
52
|
+
summary: 'Rephrase translation',
|
|
53
|
+
description: 'Generates several different variants of translation for a given text, while trying to avoid previously generated translations.',
|
|
54
|
+
tags: ['Translation APIs'],
|
|
55
|
+
responsesByStatusCode: {
|
|
56
|
+
200: GENERATE_VARIANTS_RESPONSE_SCHEMA,
|
|
57
|
+
400: z.union([COMMON_ERROR_RESPONSE_SCHEMA, VALIDATION_ERROR_SCHEMA]),
|
|
58
|
+
503: z.union([
|
|
59
|
+
COMMON_ERROR_RESPONSE_SCHEMA,
|
|
60
|
+
INTEGRATION_NOT_AVAILABLE_ERROR_SCHEMA,
|
|
61
|
+
INTEGRATION_NOT_ENABLED_ERROR_SCHEMA,
|
|
62
|
+
]),
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
export const translateTextSegmentContract = defineApiContract({
|
|
66
|
+
method: 'post',
|
|
67
|
+
pathResolver: () => '/v1/content/actions/translate-text-segment',
|
|
68
|
+
requestBodySchema: TRANSLATE_TEXT_SEGMENT_BODY_SCHEMA,
|
|
69
|
+
requestHeaderSchema: TRANSLATE_TEXT_SEGMENT_HEADERS_SCHEMA,
|
|
70
|
+
summary: 'Translate text segment',
|
|
71
|
+
description: 'Translates a single text segment from source language to target language and returns results via Server-Sent Events.',
|
|
72
|
+
tags: ['Translation APIs'],
|
|
73
|
+
responsesByStatusCode: {
|
|
74
|
+
200: sseResponse({
|
|
75
|
+
translation: TRANSLATION_EVENT_SCHEMA.shape.data,
|
|
76
|
+
error: ERROR_EVENT_SCHEMA.shape.data,
|
|
77
|
+
}),
|
|
78
|
+
400: z.union([COMMON_ERROR_RESPONSE_SCHEMA, VALIDATION_ERROR_SCHEMA]),
|
|
79
|
+
503: z.union([
|
|
80
|
+
COMMON_ERROR_RESPONSE_SCHEMA,
|
|
81
|
+
INTEGRATION_NOT_AVAILABLE_ERROR_SCHEMA,
|
|
82
|
+
INTEGRATION_NOT_ENABLED_ERROR_SCHEMA,
|
|
83
|
+
]),
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=translationContracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translationContracts.js","sourceRoot":"","sources":["../../../src/sdk/contracts/translationContracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -111,7 +111,7 @@ export const REQUEST_SIZE_LIMIT_MAP = {
|
|
|
111
111
|
*/
|
|
112
112
|
[IntegrationEngineEnum.DEEPL]: 100000,
|
|
113
113
|
/**
|
|
114
|
-
* AI integrations use the default
|
|
114
|
+
* AI integrations use the default limit until we find a way to process larger segments
|
|
115
115
|
* stable and efficiently.
|
|
116
116
|
*/
|
|
117
117
|
[IntegrationEngineEnum.GEMINI]: SEGMENT_VALUE_MAX_LENGTH_DEFAULT,
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { wrapNonTranslatableRegions } from "../helpers/nonTranslatableContentHelper.js";
|
|
1
|
+
import { NON_TRANSLATABLE_END_TAG, NON_TRANSLATABLE_START_TAG, } from '@lokalise/non-translatable-markup';
|
|
3
2
|
import { getRequestSizeLimit } from "./requestSizeLimit.js";
|
|
3
|
+
const NTC_MARKERS_REGEX = new RegExp(`[${NON_TRANSLATABLE_START_TAG}${NON_TRANSLATABLE_END_TAG}]`, 'g');
|
|
4
4
|
export const isSegmentUnderLengthLimit = (value, integration) => {
|
|
5
|
-
|
|
6
|
-
const htmlEscaped = handleHtmlEscape(value, integration);
|
|
7
|
-
const ntcWrapped = wrapNonTranslatableRegions(htmlEscaped, integration);
|
|
8
|
-
return ntcWrapped.length <= limit;
|
|
5
|
+
return value.replace(NTC_MARKERS_REGEX, '').length <= getRequestSizeLimit(integration);
|
|
9
6
|
};
|
|
10
7
|
//# sourceMappingURL=isSegmentUnderLengthLimit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isSegmentUnderLengthLimit.js","sourceRoot":"","sources":["../../../src/sdk/validation/isSegmentUnderLengthLimit.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"isSegmentUnderLengthLimit.js","sourceRoot":"","sources":["../../../src/sdk/validation/isSegmentUnderLengthLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC,IAAI,0BAA0B,GAAG,wBAAwB,GAAG,EAC5D,GAAG,CACJ,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAa,EACb,WAAmC,EAC1B,EAAE;IACX,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAA;AACxF,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lokalise/polyglot-sdk",
|
|
3
|
-
"version": "24.
|
|
3
|
+
"version": "24.2.0",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Lokalise",
|
|
6
6
|
"url": "https://lokalise.com/"
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"postversion": "biome check --write package.json"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
+
"@lokalise/api-contracts": "^6.9.0",
|
|
42
43
|
"@lokalise/backend-http-client": "^10.3.0",
|
|
43
44
|
"@lokalise/fastify-extras": "^30.2.1",
|
|
44
45
|
"@lokalise/id-utils": "^3.0.1",
|
|
@@ -53,17 +54,17 @@
|
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@amplitude/analytics-types": "^2.11.0",
|
|
56
|
-
"@biomejs/biome": "^2.
|
|
57
|
-
"@lokalise/biome-config": "^3.1.
|
|
58
|
-
"@lokalise/tsconfig": "^
|
|
57
|
+
"@biomejs/biome": "^2.4.13",
|
|
58
|
+
"@lokalise/biome-config": "^3.1.1",
|
|
59
|
+
"@lokalise/tsconfig": "^4.0.0",
|
|
59
60
|
"@types/html-escaper": "^3.0.4",
|
|
60
61
|
"@types/node": "^25.6.0",
|
|
61
|
-
"@vitest/coverage-v8": "^4.1.
|
|
62
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
62
63
|
"auto-changelog": "^2.5.0",
|
|
63
64
|
"mockttp": "^4.2.3",
|
|
64
65
|
"rimraf": "^6.1.3",
|
|
65
66
|
"ts-deepmerge": "^7.0.3",
|
|
66
|
-
"typescript": "
|
|
67
|
+
"typescript": "^6.0.3",
|
|
67
68
|
"vitest": "^4.0.14"
|
|
68
69
|
}
|
|
69
70
|
}
|