@lokalise/polyglot-sdk 3.1.0 → 3.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 CHANGED
@@ -3,3 +3,4 @@ export { PolyglotError } from './sdk/errors/PolyglotError';
3
3
  export * from './sdk/types/client';
4
4
  export * from './sdk/types/requests';
5
5
  export * from './sdk/types/responses';
6
+ export * from './sdk/types/callbacks';
package/dist/index.js CHANGED
@@ -9,4 +9,5 @@ Object.defineProperty(exports, "PolyglotError", { enumerable: true, get: functio
9
9
  tslib_1.__exportStar(require("./sdk/types/client"), exports);
10
10
  tslib_1.__exportStar(require("./sdk/types/requests"), exports);
11
11
  tslib_1.__exportStar(require("./sdk/types/responses"), exports);
12
+ tslib_1.__exportStar(require("./sdk/types/callbacks"), exports);
12
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,uDAAqD;AAA5C,gHAAA,cAAc,OAAA;AACvB,4DAA0D;AAAjD,8GAAA,aAAa,OAAA;AACtB,6DAAkC;AAClC,+DAAoC;AACpC,gEAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,uDAAqD;AAA5C,gHAAA,cAAc,OAAA;AACvB,4DAA0D;AAAjD,8GAAA,aAAa,OAAA;AACtB,6DAAkC;AAClC,+DAAoC;AACpC,gEAAqC;AACrC,gEAAqC"}
@@ -1,5 +1,6 @@
1
- import type { ClientOptions, PolyglotClientConfig } from './types/client';
2
- import type { GenerateVariantsRequest, LqaSyncRequest, TranslateSyncRequest } from './types/requests';
1
+ import type { Either } from '@lokalise/node-core';
2
+ import type { ClientOptions, ClientOptionsWithRequestContext, PolyglotClientConfig } from './types/client';
3
+ import type { GenerateVariantsRequest, LqaSyncRequest, TranslateAsyncRequestBody, TranslateSyncRequest } from './types/requests';
3
4
  import type { ContentUnitLqaResponse, ContentUnitTranslationResponse, PolyglotClientSyncIterativeResponse } from './types/responses';
4
5
  export declare class PolyglotClient {
5
6
  private readonly client;
@@ -23,7 +24,9 @@ export declare class PolyglotClient {
23
24
  */
24
25
  generateVariants(request: GenerateVariantsRequest, options?: ClientOptions): Promise<string[]>;
25
26
  private callTranslateSyncApi;
27
+ translateAsync(requestBody: TranslateAsyncRequestBody, options: ClientOptionsWithRequestContext): Promise<Either<Error, 'scheduled' | 'nothingToTranslate'>>;
26
28
  private callLqaSyncApi;
29
+ private wrapWithErrorHandling;
27
30
  /**
28
31
  * Calls the provided request function and logs the execution time and metadata with the provided logger
29
32
  * @private
@@ -2,8 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PolyglotClient = void 0;
4
4
  const node_core_1 = require("@lokalise/node-core");
5
+ const typeUtils_1 = require("@lokalise/node-core/dist/src/utils/typeUtils");
5
6
  const PolyglotError_1 = require("./errors/PolyglotError");
6
7
  const polyglotChunkHandler_1 = require("./polyglotChunkHandler");
8
+ const segmentUtils_1 = require("./segmentUtils");
7
9
  const DEFAULT_CLIENT_OPTIONS = {
8
10
  timeout: 30000,
9
11
  };
@@ -50,12 +52,7 @@ class PolyglotClient {
50
52
  for (const requestChunked of chunks) {
51
53
  yield {
52
54
  response: await this.callTranslateSyncApi(requestChunked, resolvedOptions),
53
- segmentIdsProcessedByContentUnitId: requestChunked.contentUnits.reduce((acc, cu) => {
54
- if (!acc[cu.id])
55
- acc[cu.id] = [];
56
- acc[cu.id].push(...cu.segments.map((s) => s.id));
57
- return acc;
58
- }, {}),
55
+ segmentIdsProcessedByContentUnitId: (0, segmentUtils_1.groupTranslationSegmentIdsProcessedByContentUnitId)(requestChunked.contentUnits),
59
56
  };
60
57
  }
61
58
  }
@@ -68,12 +65,7 @@ class PolyglotClient {
68
65
  for (const requestChunked of chunks) {
69
66
  yield {
70
67
  response: await this.callLqaSyncApi(requestChunked, options),
71
- segmentIdsProcessedByContentUnitId: requestChunked.contentUnits.reduce((acc, cu) => {
72
- if (!acc[cu.id])
73
- acc[cu.id] = [];
74
- acc[cu.id].push(...cu.segments.flatMap((s) => s.translations).map((t) => t.id));
75
- return acc;
76
- }, {}),
68
+ segmentIdsProcessedByContentUnitId: (0, segmentUtils_1.groupLqaSegmentIdsProcessedByContentUnitId)(requestChunked.contentUnits),
77
69
  };
78
70
  }
79
71
  }
@@ -134,6 +126,42 @@ class PolyglotClient {
134
126
  });
135
127
  return result.body.contentUnits;
136
128
  }
129
+ async translateAsync(requestBody, options) {
130
+ const contentUnits = requestBody.contentUnits.filter((contentUnit) => contentUnit.segments.length > 0);
131
+ if (contentUnits.length === 0) {
132
+ return (0, node_core_1.success)('nothingToTranslate');
133
+ }
134
+ const resolvedOptions = resolveOptions(options);
135
+ const requestLabel = 'Translate asynchronously (Polyglot)';
136
+ const result = await this.wrapWithErrorHandling(() => {
137
+ return (0, node_core_1.sendPost)(this.client, '/v1/content/actions/translate-async', requestBody, {
138
+ reqContext: resolvedOptions.reqContext,
139
+ retryConfig: this.retryConfig,
140
+ throwOnError: false,
141
+ timeout: resolvedOptions.timeout,
142
+ headers: {
143
+ ...this.clientHeaders,
144
+ 'x-fake-processing': resolvedOptions.fakeProcessing ? 'true' : undefined,
145
+ },
146
+ requestLabel,
147
+ });
148
+ });
149
+ if (result.error) {
150
+ return result;
151
+ }
152
+ if (result.result.statusCode === 202) {
153
+ return (0, node_core_1.success)('scheduled');
154
+ }
155
+ else {
156
+ return (0, node_core_1.failure)(new node_core_1.InternalError({
157
+ message: 'Failed to schedule asynchronous translation',
158
+ errorCode: 'FAILED_TO_SCHEDULE_ASYNC_TRANSLATION',
159
+ details: {
160
+ originCorrelationId: requestBody.originCorrelationId,
161
+ },
162
+ }));
163
+ }
164
+ }
137
165
  async callLqaSyncApi(request, options) {
138
166
  const resolvedOptions = resolveOptions(options);
139
167
  const requestLabel = 'Review with LQA synchronously (Polyglot)';
@@ -159,6 +187,18 @@ class PolyglotClient {
159
187
  });
160
188
  return result.body.contentUnits;
161
189
  }
190
+ async wrapWithErrorHandling(innerFn) {
191
+ try {
192
+ const { result, error } = await innerFn();
193
+ if (error) {
194
+ return (0, node_core_1.failure)(this.wrapError(error));
195
+ }
196
+ return (0, node_core_1.success)(result);
197
+ }
198
+ catch (error) {
199
+ return (0, node_core_1.failure)(this.wrapError(error));
200
+ }
201
+ }
162
202
  /**
163
203
  * Calls the provided request function and logs the execution time and metadata with the provided logger
164
204
  * @private
@@ -190,7 +230,7 @@ class PolyglotClient {
190
230
  }
191
231
  wrapError(e) {
192
232
  let error;
193
- if (e instanceof Error) {
233
+ if ((0, typeUtils_1.isError)(e)) {
194
234
  error = (0, node_core_1.isResponseStatusError)(e) ? new PolyglotError_1.PolyglotError(e) : e;
195
235
  }
196
236
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"PolyglotClient.js","sourceRoot":"","sources":["../../src/sdk/PolyglotClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolyglotClient.js","sourceRoot":"","sources":["../../src/sdk/PolyglotClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { LqaContentUnit, TranslateSyncContentUnits } from './types/requests';
2
+ export declare function groupTranslationSegmentIdsProcessedByContentUnitId(contentUnits: readonly TranslateSyncContentUnits[]): Record<string, string[]>;
3
+ export declare function groupLqaSegmentIdsProcessedByContentUnitId(contentUnits: readonly LqaContentUnit[]): Record<string, string[]>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.groupLqaSegmentIdsProcessedByContentUnitId = exports.groupTranslationSegmentIdsProcessedByContentUnitId = void 0;
4
+ function groupTranslationSegmentIdsProcessedByContentUnitId(contentUnits) {
5
+ return contentUnits.reduce((acc, cu) => {
6
+ if (!acc[cu.id])
7
+ acc[cu.id] = [];
8
+ acc[cu.id].push(...cu.segments.map((s) => s.id));
9
+ return acc;
10
+ }, {});
11
+ }
12
+ exports.groupTranslationSegmentIdsProcessedByContentUnitId = groupTranslationSegmentIdsProcessedByContentUnitId;
13
+ function groupLqaSegmentIdsProcessedByContentUnitId(contentUnits) {
14
+ return contentUnits.reduce((acc, cu) => {
15
+ if (!acc[cu.id])
16
+ acc[cu.id] = [];
17
+ acc[cu.id].push(...cu.segments.flatMap((s) => s.translations).map((t) => t.id));
18
+ return acc;
19
+ }, {});
20
+ }
21
+ exports.groupLqaSegmentIdsProcessedByContentUnitId = groupLqaSegmentIdsProcessedByContentUnitId;
22
+ //# sourceMappingURL=segmentUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segmentUtils.js","sourceRoot":"","sources":["../../src/sdk/segmentUtils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,kDAAkD,CAChE,YAAkD;IAElD,OAAO,YAAY,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;QAChC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChD,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAA8B,CAC/B,CAAA;AACH,CAAC;AAXD,gHAWC;AAED,SAAgB,0CAA0C,CACxD,YAAuC;IAEvC,OAAO,YAAY,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;QAChC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/E,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAA8B,CAC/B,CAAA;AACH,CAAC;AAXD,gGAWC"}
@@ -0,0 +1,4 @@
1
+ import type { ContentUnitTranslationResponse, PolyglotSyncResponse } from './responses';
2
+ export type TranslateAsyncCallbackRequestBody = PolyglotSyncResponse<ContentUnitTranslationResponse> & {
3
+ originCorrelationId: string;
4
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=callbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../../src/sdk/types/callbacks.ts"],"names":[],"mappings":""}
@@ -7,6 +7,12 @@ export type ClientOptions = {
7
7
  metadata?: Record<string, string>;
8
8
  timeout?: number;
9
9
  };
10
+ export type ClientOptionsWithRequestContext = {
11
+ fakeProcessing?: boolean;
12
+ reqContext: RequestContext;
13
+ metadata?: Record<string, string>;
14
+ timeout?: number;
15
+ };
10
16
  export type InstrumentationOptions = {
11
17
  requestLabel: string;
12
18
  callMetadata?: Record<string, string>;
@@ -5,6 +5,11 @@ export type TranslateSyncRequest = {
5
5
  context?: PolyglotAssetsRequest;
6
6
  integration?: IntegrationKind;
7
7
  };
8
+ export type TranslateAsyncRequestBody = TranslateSyncRequest & {
9
+ callbackUrl: string;
10
+ callbackToken: string;
11
+ originCorrelationId: string;
12
+ };
8
13
  export type TranslateSyncContentUnits = {
9
14
  id: string;
10
15
  segments: {
@@ -8,6 +8,7 @@ export type PolyglotSyncResponse<T extends object> = {
8
8
  contentUnits: T[];
9
9
  integration: string;
10
10
  };
11
+ export type PolyglotAsyncResponse = Record<string, never>;
11
12
  export type ContentUnitTranslationResponse = {
12
13
  id: string;
13
14
  segments: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/polyglot-sdk",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "author": {
5
5
  "name": "Lokalise",
6
6
  "url": "https://lokalise.com/"
@@ -42,7 +42,7 @@
42
42
  "zod": "^3.22.4"
43
43
  },
44
44
  "devDependencies": {
45
- "@types/node": "^20.12.2",
45
+ "@types/node": "^20.12.5",
46
46
  "@typescript-eslint/eslint-plugin": "^7.4.0",
47
47
  "@typescript-eslint/parser": "^7.4.0",
48
48
  "@vitest/coverage-v8": "^0.34.6",
@@ -50,11 +50,11 @@
50
50
  "eslint": "^8.57.0",
51
51
  "eslint-plugin-import": "^2.29.1",
52
52
  "eslint-plugin-vitest": "^0.4.1",
53
- "mockttp": "^3.10.1",
53
+ "mockttp": "^3.10.2",
54
54
  "prettier": "^3.2.5",
55
55
  "shx": "^0.3.4",
56
56
  "ts-deepmerge": "^7.0.0",
57
- "typescript": "5.4.3",
57
+ "typescript": "5.4.4",
58
58
  "vitest": "^0.34.6"
59
59
  }
60
60
  }