@lokalise/polyglot-sdk 23.0.3 → 24.1.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/sdk/PolyglotClient.d.ts +4 -2
- package/dist/sdk/PolyglotClient.js +73 -2
- package/dist/sdk/PolyglotClient.js.map +1 -1
- package/dist/sdk/schemas/common/commonSchemas.js +1 -1
- package/dist/sdk/schemas/translation/translateTextSegmentSchemas.d.ts +1 -0
- package/dist/sdk/validation/isSegmentUnderLengthLimit.js +3 -6
- package/dist/sdk/validation/isSegmentUnderLengthLimit.js.map +1 -1
- package/package.json +7 -6
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { InternalError } from '@lokalise/node-core';
|
|
1
|
+
import { type Either, InternalError } from '@lokalise/node-core';
|
|
3
2
|
import { PolyglotError } from './errors/PolyglotError.ts';
|
|
4
3
|
import type { ContextSufficiencySyncBodyInput, ContextSufficiencySyncResponse } from './schemas/context-sufficiency/contextSufficiencySyncSchemas.ts';
|
|
5
4
|
import { type LqaAsyncBodyInput, type LqaAsyncResponse } from './schemas/lqa/lqaAsyncSchemas.ts';
|
|
6
5
|
import type { LqaSyncBodyInput, LqaSyncResponse } from './schemas/lqa/lqaSyncSchemas.ts';
|
|
7
6
|
import type { GenerateVariantsBodyInput, GenerateVariantsResponse } from './schemas/translation/generateVariants.ts';
|
|
7
|
+
import { type TranslationEvent } from './schemas/translation/sharedSchemas.ts';
|
|
8
8
|
import type { TranslateAsyncBodyInput, TranslateAsyncResponse } from './schemas/translation/translateAsyncSchemas.ts';
|
|
9
9
|
import { type TranslateSyncBodyInput, type TranslateSyncResponse } from './schemas/translation/translateSyncSchemas.ts';
|
|
10
|
+
import type { TranslateTextSegmentBodyInput } from './schemas/translation/translateTextSegmentSchemas.ts';
|
|
10
11
|
import type { ClientOptions, PolyglotClientConfig } from './types/client.ts';
|
|
11
12
|
type InstrumentationOutput<T> = Either<PolyglotError | InternalError, T>;
|
|
12
13
|
export declare class PolyglotClient {
|
|
@@ -21,6 +22,7 @@ export declare class PolyglotClient {
|
|
|
21
22
|
generateVariants(request: GenerateVariantsBodyInput, options?: ClientOptions): Promise<InstrumentationOutput<GenerateVariantsResponse>>;
|
|
22
23
|
translateAsync(requestBody: TranslateAsyncBodyInput, options?: ClientOptions): Promise<InstrumentationOutput<TranslateAsyncResponse>>;
|
|
23
24
|
translateSync(requestBody: TranslateSyncBodyInput, options?: ClientOptions): Promise<InstrumentationOutput<TranslateSyncResponse>>;
|
|
25
|
+
translateTextSegment(requestBody: TranslateTextSegmentBodyInput, options?: ClientOptions): Promise<InstrumentationOutput<AsyncIterable<TranslationEvent>>>;
|
|
24
26
|
lqaAsync(requestBody: LqaAsyncBodyInput, options?: ClientOptions): Promise<InstrumentationOutput<LqaAsyncResponse>>;
|
|
25
27
|
lqaSync(requestBody: LqaSyncBodyInput, options?: ClientOptions): Promise<InstrumentationOutput<LqaSyncResponse>>;
|
|
26
28
|
contextSufficiencySync(requestBody: ContextSufficiencySyncBodyInput, options?: ClientOptions): Promise<InstrumentationOutput<ContextSufficiencySyncResponse>>;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
import { buildClient, isResponseStatusError, sendPost, sendPostWithStreamedResponse, } from '@lokalise/backend-http-client';
|
|
3
|
+
import { InternalError, stringValueSerializer, } from '@lokalise/node-core';
|
|
4
|
+
import { ServerSentEventTransformStream } from 'parse-sse';
|
|
3
5
|
import pino from 'pino';
|
|
4
6
|
import { PolyglotError } from "./errors/PolyglotError.js";
|
|
5
7
|
import { CONTEXT_SUFFICIENCY_SYNC_RESPONSE_SCHEMA } from "./schemas/context-sufficiency/contextSufficiencySyncSchemas.js";
|
|
6
8
|
import { LQA_ASYNC_RESPONSE_SCHEMA, } from "./schemas/lqa/lqaAsyncSchemas.js";
|
|
7
9
|
import { LQA_SYNC_RESPONSE_SCHEMA } from "./schemas/lqa/lqaSyncSchemas.js";
|
|
8
10
|
import { GENERATE_VARIANTS_RESPONSE_SCHEMA } from "./schemas/translation/generateVariants.js";
|
|
11
|
+
import { STREAMING_EVENT_SCHEMA, } from "./schemas/translation/sharedSchemas.js";
|
|
9
12
|
import { TRANSLATE_ASYNC_RESPONSE_SCHEMA } from "./schemas/translation/translateAsyncSchemas.js";
|
|
10
13
|
import { TRANSLATE_SYNC_RESPONSE_SCHEMA, } from "./schemas/translation/translateSyncSchemas.js";
|
|
11
14
|
const DEFAULT_CLIENT_OPTIONS = {
|
|
@@ -107,6 +110,38 @@ export class PolyglotClient {
|
|
|
107
110
|
},
|
|
108
111
|
}, options.reqContext?.logger);
|
|
109
112
|
}
|
|
113
|
+
async translateTextSegment(requestBody, options = DEFAULT_CLIENT_OPTIONS) {
|
|
114
|
+
const resolvedOptions = resolveOptions(options);
|
|
115
|
+
const requestLabel = 'Translate text segment (Polyglot)';
|
|
116
|
+
return await this.wrapWithInstrumentation(async () => {
|
|
117
|
+
const response = await sendPostWithStreamedResponse(this.client, '/v1/content/actions/translate-text-segment', requestBody, {
|
|
118
|
+
...this.getRequestOptions(resolvedOptions),
|
|
119
|
+
requestLabel,
|
|
120
|
+
headers: {
|
|
121
|
+
...this.clientHeaders,
|
|
122
|
+
Accept: 'text/event-stream',
|
|
123
|
+
'x-fake-processing': resolvedOptions.fakeProcessing ? 'true' : undefined,
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
...response,
|
|
128
|
+
result: {
|
|
129
|
+
...response.result,
|
|
130
|
+
body: parseTranslationEventStream(response.result.body),
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}, {
|
|
134
|
+
requestLabel,
|
|
135
|
+
callMetadata: {
|
|
136
|
+
...resolvedOptions.metadata,
|
|
137
|
+
languagePair: `${requestBody.sourceLocale} to ${requestBody.targetLocale}`,
|
|
138
|
+
fakeProcessing: JSON.stringify(resolvedOptions.fakeProcessing),
|
|
139
|
+
reqContext: JSON.stringify({
|
|
140
|
+
reqId: resolvedOptions.reqContext?.reqId,
|
|
141
|
+
}),
|
|
142
|
+
},
|
|
143
|
+
}, options.reqContext?.logger);
|
|
144
|
+
}
|
|
110
145
|
async lqaAsync(requestBody, options = DEFAULT_CLIENT_OPTIONS) {
|
|
111
146
|
const resolvedOptions = resolveOptions(options);
|
|
112
147
|
const requestLabel = 'LQA asynchronously (Polyglot)';
|
|
@@ -223,4 +258,40 @@ export class PolyglotClient {
|
|
|
223
258
|
return resultError;
|
|
224
259
|
}
|
|
225
260
|
}
|
|
261
|
+
async function* parseTranslationEventStream(body) {
|
|
262
|
+
const sseStream = Readable.toWeb(body)
|
|
263
|
+
.pipeThrough(new TextDecoderStream())
|
|
264
|
+
.pipeThrough(new ServerSentEventTransformStream());
|
|
265
|
+
for await (const { type, data } of sseStream) {
|
|
266
|
+
let payload;
|
|
267
|
+
try {
|
|
268
|
+
payload = JSON.parse(data);
|
|
269
|
+
}
|
|
270
|
+
catch (cause) {
|
|
271
|
+
throw new InternalError({
|
|
272
|
+
message: 'Polyglot streaming - failed to parse SSE event payload as JSON',
|
|
273
|
+
errorCode: 'INVALID_STREAMING_EVENT',
|
|
274
|
+
details: { type, data },
|
|
275
|
+
cause,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
const validated = STREAMING_EVENT_SCHEMA.safeParse({ event: type, data: payload });
|
|
279
|
+
if (!validated.success) {
|
|
280
|
+
throw new InternalError({
|
|
281
|
+
message: 'Polyglot streaming - SSE event does not match expected schema',
|
|
282
|
+
errorCode: 'INVALID_STREAMING_EVENT',
|
|
283
|
+
details: { type, issues: stringValueSerializer(validated.error.issues) },
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
if (validated.data.event === 'error') {
|
|
287
|
+
const { message, errorCode, details } = validated.data.data;
|
|
288
|
+
throw new InternalError({
|
|
289
|
+
message: `Polyglot streaming - ${message}`,
|
|
290
|
+
errorCode,
|
|
291
|
+
details,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
yield validated.data;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
226
297
|
//# sourceMappingURL=PolyglotClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolyglotClient.js","sourceRoot":"","sources":["../../src/sdk/PolyglotClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PolyglotClient.js","sourceRoot":"","sources":["../../src/sdk/PolyglotClient.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,
|
|
@@ -221,4 +221,5 @@ export declare const TRANSLATE_TEXT_SEGMENT_HEADERS_SCHEMA: z.ZodObject<{
|
|
|
221
221
|
'x-fake-processing': z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
|
|
222
222
|
}, z.core.$strip>;
|
|
223
223
|
export type TranslateTextSegmentBody = z.infer<typeof TRANSLATE_TEXT_SEGMENT_BODY_SCHEMA>;
|
|
224
|
+
export type TranslateTextSegmentBodyInput = z.input<typeof TRANSLATE_TEXT_SEGMENT_BODY_SCHEMA>;
|
|
224
225
|
export type TranslateTextSegmentHeaders = z.infer<typeof TRANSLATE_TEXT_SEGMENT_HEADERS_SCHEMA>;
|
|
@@ -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": "
|
|
3
|
+
"version": "24.1.0",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Lokalise",
|
|
6
6
|
"url": "https://lokalise.com/"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"directory": "packages/polyglot-sdk"
|
|
14
14
|
},
|
|
15
15
|
"engines": {
|
|
16
|
-
"node": ">=
|
|
16
|
+
"node": ">=22.19.0"
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist"
|
|
@@ -39,14 +39,15 @@
|
|
|
39
39
|
"postversion": "biome check --write package.json"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@lokalise/backend-http-client": "^10.0
|
|
42
|
+
"@lokalise/backend-http-client": "^10.3.0",
|
|
43
43
|
"@lokalise/fastify-extras": "^30.2.1",
|
|
44
44
|
"@lokalise/id-utils": "^3.0.1",
|
|
45
45
|
"@lokalise/node-core": "^14.1.0",
|
|
46
46
|
"@lokalise/non-translatable-markup": "^3.1.0",
|
|
47
47
|
"@lokalise/supported-languages": "^3.1.1",
|
|
48
48
|
"html-escaper": "^3.0.3",
|
|
49
|
-
"
|
|
49
|
+
"parse-sse": "^0.1.0",
|
|
50
|
+
"undici": "^8.1.0",
|
|
50
51
|
"undici-retry": "^7.0.0",
|
|
51
52
|
"zod": "^4.3.6"
|
|
52
53
|
},
|
|
@@ -56,8 +57,8 @@
|
|
|
56
57
|
"@lokalise/biome-config": "^3.1.0",
|
|
57
58
|
"@lokalise/tsconfig": "^3.0.0",
|
|
58
59
|
"@types/html-escaper": "^3.0.4",
|
|
59
|
-
"@types/node": "^25.
|
|
60
|
-
"@vitest/coverage-v8": "^4.1.
|
|
60
|
+
"@types/node": "^25.6.0",
|
|
61
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
61
62
|
"auto-changelog": "^2.5.0",
|
|
62
63
|
"mockttp": "^4.2.3",
|
|
63
64
|
"rimraf": "^6.1.3",
|