@lokalise/connector-shell 2.4.0 → 3.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.
@@ -12,7 +12,6 @@ export declare class EnvController extends AbstractController<EnvControllerContr
12
12
  }, import("zod/v4/core").$strip>>;
13
13
  supportedContentTypes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
14
14
  features: import("zod").ZodOptional<import("zod").ZodObject<{
15
- skippingEmptyTranslations: import("zod").ZodOptional<import("zod").ZodBoolean>;
16
15
  showSkipEmptyOptionOnImport: import("zod").ZodOptional<import("zod").ZodBoolean>;
17
16
  supportedImportTags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
18
17
  id: import("zod").ZodString;
@@ -23,7 +22,6 @@ export declare class EnvController extends AbstractController<EnvControllerContr
23
22
  metadataFields: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{
24
23
  type: import("zod").ZodEnum<{
25
24
  FOLDER_HIERARCHY: "FOLDER_HIERARCHY";
26
- TAGS: "TAGS";
27
25
  }>;
28
26
  }, import("zod/v4/core").$strip>>>;
29
27
  fieldDefinitions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
@@ -49,7 +47,6 @@ export declare class EnvController extends AbstractController<EnvControllerContr
49
47
  }, import("zod/v4/core").$strip>>;
50
48
  supportedContentTypes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
51
49
  features: import("zod").ZodOptional<import("zod").ZodObject<{
52
- skippingEmptyTranslations: import("zod").ZodOptional<import("zod").ZodBoolean>;
53
50
  showSkipEmptyOptionOnImport: import("zod").ZodOptional<import("zod").ZodBoolean>;
54
51
  supportedImportTags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
55
52
  id: import("zod").ZodString;
@@ -60,7 +57,6 @@ export declare class EnvController extends AbstractController<EnvControllerContr
60
57
  metadataFields: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{
61
58
  type: import("zod").ZodEnum<{
62
59
  FOLDER_HIERARCHY: "FOLDER_HIERARCHY";
63
- TAGS: "TAGS";
64
60
  }>;
65
61
  }, import("zod/v4/core").$strip>>>;
66
62
  fieldDefinitions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
@@ -10,17 +10,17 @@ export declare class PublishController extends AbstractController<PublishControl
10
10
  groupId: import("zod").ZodString;
11
11
  metadata: import("zod").ZodRecord<import("zod").ZodAny, import("zod").ZodAny>;
12
12
  translations: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
13
- translatedSource: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
13
+ translatedSourceMap: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<readonly [import("zod").ZodObject<{
14
14
  type: import("zod").ZodLiteral<"inline">;
15
15
  value: import("zod").ZodString;
16
- storageId: import("zod").ZodOptional<import("zod").ZodNever>;
16
+ fileUrl: import("zod").ZodOptional<import("zod").ZodNever>;
17
17
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
18
18
  type: import("zod").ZodLiteral<"remote">;
19
- storageId: import("zod").ZodString;
19
+ fileUrl: import("zod").ZodString;
20
20
  contentSize: import("zod").ZodOptional<import("zod").ZodString>;
21
21
  filePath: import("zod").ZodOptional<import("zod").ZodString>;
22
22
  value: import("zod").ZodOptional<import("zod").ZodNever>;
23
- }, import("zod/v4/core").$strip>]>>;
23
+ }, import("zod/v4/core").$strip>]>>>;
24
24
  }, import("zod/v4/core").$strip>>;
25
25
  defaultLocale: import("zod").ZodString;
26
26
  exportOptions: import("zod").ZodOptional<import("zod").ZodObject<{
@@ -21,17 +21,17 @@ export declare class TranslateController extends AbstractController<TranslateCon
21
21
  groupId: import("zod").ZodString;
22
22
  metadata: import("zod").ZodRecord<import("zod").ZodAny, import("zod").ZodAny>;
23
23
  translations: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
24
- translatedSource: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
24
+ translatedSourceMap: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<readonly [import("zod").ZodObject<{
25
25
  type: import("zod").ZodLiteral<"inline">;
26
26
  value: import("zod").ZodString;
27
- storageId: import("zod").ZodOptional<import("zod").ZodNever>;
27
+ fileUrl: import("zod").ZodOptional<import("zod").ZodNever>;
28
28
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
29
29
  type: import("zod").ZodLiteral<"remote">;
30
- storageId: import("zod").ZodString;
30
+ fileUrl: import("zod").ZodString;
31
31
  contentSize: import("zod").ZodOptional<import("zod").ZodString>;
32
32
  filePath: import("zod").ZodOptional<import("zod").ZodString>;
33
33
  value: import("zod").ZodOptional<import("zod").ZodNever>;
34
- }, import("zod/v4/core").$strip>]>>;
34
+ }, import("zod/v4/core").$strip>]>>>;
35
35
  itemGroups: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
36
36
  id: import("zod").ZodString;
37
37
  name: import("zod").ZodString;
@@ -62,17 +62,17 @@ export declare class TranslateController extends AbstractController<TranslateCon
62
62
  groupId: import("zod").ZodString;
63
63
  metadata: import("zod").ZodRecord<import("zod").ZodAny, import("zod").ZodAny>;
64
64
  translations: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>;
65
- translatedSource: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
65
+ translatedSourceMap: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<readonly [import("zod").ZodObject<{
66
66
  type: import("zod").ZodLiteral<"inline">;
67
67
  value: import("zod").ZodString;
68
- storageId: import("zod").ZodOptional<import("zod").ZodNever>;
68
+ fileUrl: import("zod").ZodOptional<import("zod").ZodNever>;
69
69
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
70
70
  type: import("zod").ZodLiteral<"remote">;
71
- storageId: import("zod").ZodString;
71
+ fileUrl: import("zod").ZodString;
72
72
  contentSize: import("zod").ZodOptional<import("zod").ZodString>;
73
73
  filePath: import("zod").ZodOptional<import("zod").ZodString>;
74
74
  value: import("zod").ZodOptional<import("zod").ZodNever>;
75
- }, import("zod/v4/core").$strip>]>>;
75
+ }, import("zod/v4/core").$strip>]>>>;
76
76
  itemGroups: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
77
77
  id: import("zod").ZodString;
78
78
  name: import("zod").ZodString;
@@ -1,3 +1,6 @@
1
+ import { writeFileSync } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
1
4
  import { CONNECTOR_ID_HEADER, postTranslateContract } from '@lokalise/connector-api-contracts';
2
5
  import { buildFastifyPayloadRoute } from '@lokalise/fastify-api-contracts';
3
6
  import { AbstractController } from 'opinionated-machine';
@@ -23,6 +26,22 @@ export class TranslateController extends AbstractController {
23
26
  itemsCount: items.length,
24
27
  items: stringValueSerializer(items),
25
28
  }, `Content translated via ${adapter.getConnectorName()} adapter`);
29
+ // DEBUG: write each item's HTML translation to a file for manual inspection
30
+ for (const item of items) {
31
+ if (item.translations) {
32
+ for (const [locale, html] of Object.entries(item.translations)) {
33
+ const filename = `translate-debug-${item.uniqueId}-${locale}-${Date.now()}.html`;
34
+ const filepath = join(tmpdir(), filename);
35
+ try {
36
+ writeFileSync(filepath, html, 'utf-8');
37
+ req.reqContext.logger.info({ filepath, uniqueId: item.uniqueId, locale, sizeBytes: html.length }, 'DEBUG: Wrote translated HTML to file');
38
+ }
39
+ catch (err) {
40
+ req.reqContext.logger.warn({ err, filepath }, 'DEBUG: Failed to write HTML debug file');
41
+ }
42
+ }
43
+ }
44
+ }
26
45
  await reply.send({ items });
27
46
  }, this.protectedRouteMetadataMapper());
28
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"translateController.js","sourceRoot":"","sources":["../../src/translate/translateController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAA8B,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAKrE,OAAO,mBAAmB,CAAA;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAI3D,MAAM,OAAO,mBAAoB,SAAQ,kBAAoD;IACpF,MAAM,CAAC,SAAS,GAAG;QACxB,aAAa,EAAE,qBAAqB;KAC5B,CAAA;IACO,QAAQ,CAAyB;IACjC,4BAA4B,CAAqC;IAElF,YAAY,YAAwC;QAClD,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAA;QACrC,IAAI,CAAC,4BAA4B,GAAG,YAAY,CAAC,mCAAmC,CAAA;IACtF,CAAC;IAED,IAAY,aAAa;QACvB,OAAO,wBAAwB,CAC7B,qBAAqB,EACrB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YACnB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAA;YAC/E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,UAAU,CACrD,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,IAAI,CAAC,OAAO,EAChB,GAAG,CAAC,IAAI,CAAC,KAAK,EACd,GAAG,CAAC,IAAI,CAAC,aAAa,EACtB,GAAG,CAAC,UAAU,EACd,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAChB,CAAA;YAED,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CACzB;gBACE,UAAU,EAAE,KAAK,CAAC,MAAM;gBACxB,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC;aACpC,EACD,0BAA0B,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAC/D,CAAA;YAED,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7B,CAAC,EACD,IAAI,CAAC,4BAA4B,EAAE,CACpC,CAAA;IACH,CAAC;IAED,WAAW;QACT,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,aAAa;SACyB,CAAA;IAC9D,CAAC"}
1
+ {"version":3,"file":"translateController.js","sourceRoot":"","sources":["../../src/translate/translateController.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/connector-shell",
3
- "version": "2.4.0",
3
+ "version": "3.1.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -48,15 +48,15 @@
48
48
  "opinionated-machine": "^5.2.0"
49
49
  },
50
50
  "peerDependencies": {
51
- "@lokalise/connector-api-contracts": "^1.44.0",
51
+ "@lokalise/connector-api-contracts": "^2.0.0",
52
52
  "zod": "^4.1.12",
53
53
  "fastify": "^5.6.2"
54
54
  },
55
55
  "devDependencies": {
56
- "@biomejs/biome": "^2.4.6",
56
+ "@biomejs/biome": "^2.4.7",
57
57
  "@lokalise/biome-config": "^3.1.1",
58
58
  "@lokalise/tsconfig": "^3.1.0",
59
- "@types/node": "^25.4.0",
59
+ "@types/node": "^25.5.0",
60
60
  "@vitest/coverage-v8": "^3.2.4",
61
61
  "typescript": "^5.9.3",
62
62
  "vitest": "^3.2.4"