@lokalise/tm-sdk 2.1.0 → 2.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.
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { MandatoryPaginationParams } from '@lokalise/api-common';
|
|
2
|
+
import type { RequestContext } from '@lokalise/fastify-extras';
|
|
2
3
|
import type { ErrorReporter } from '@lokalise/node-core';
|
|
3
4
|
import type { RetryConfig } from 'undici-retry';
|
|
4
5
|
import type { BulkTranslationMemoryMatches, TranslationMemoryMatch, TranslationMemoryRecordsResponse, UpsertRecordDto } from './types/models';
|
|
@@ -10,19 +11,23 @@ export type TranslationMemoryClientConfig = {
|
|
|
10
11
|
errorReporter?: ErrorReporter;
|
|
11
12
|
isEnabled?: boolean;
|
|
12
13
|
};
|
|
14
|
+
export type TranslationMemoryClientContext = {
|
|
15
|
+
reqContext?: RequestContext;
|
|
16
|
+
metadata?: Record<string, unknown>;
|
|
17
|
+
};
|
|
13
18
|
export declare class TranslationMemoryClient {
|
|
14
19
|
private readonly maxFindMatchesRequestSize;
|
|
20
|
+
private readonly isEnabled;
|
|
15
21
|
private readonly httpClient;
|
|
16
|
-
private readonly retryConfig;
|
|
17
22
|
private readonly headers;
|
|
23
|
+
private readonly retryConfig;
|
|
18
24
|
private readonly errorReporter?;
|
|
19
|
-
private readonly isEnabled;
|
|
20
25
|
constructor(config: TranslationMemoryClientConfig);
|
|
21
|
-
findMatches(groupId: string, request: FindMatchesRequest): Promise<TranslationMemoryMatch[]>;
|
|
22
|
-
bulkFindMatches(groupId: string, { filters, options }: BulkFindMatchesRequest): Promise<BulkTranslationMemoryMatches[]>;
|
|
23
|
-
bulkFindMatchesIterative(groupId: string, { filters, options }: BulkFindMatchesRequest): AsyncGenerator<BulkTranslationMemoryMatches[]>;
|
|
24
|
-
getRecords(groupId: string, pagination?: MandatoryPaginationParams): Promise<TranslationMemoryRecordsResponse>;
|
|
25
|
-
upsertRecords(groupId: string, records: UpsertRecordDto[]): Promise<void>;
|
|
26
|
+
findMatches(groupId: string, request: FindMatchesRequest, context?: TranslationMemoryClientContext): Promise<TranslationMemoryMatch[]>;
|
|
27
|
+
bulkFindMatches(groupId: string, { filters, options }: BulkFindMatchesRequest, context?: TranslationMemoryClientContext): Promise<BulkTranslationMemoryMatches[]>;
|
|
28
|
+
bulkFindMatchesIterative(groupId: string, { filters, options }: BulkFindMatchesRequest, context?: TranslationMemoryClientContext): AsyncGenerator<BulkTranslationMemoryMatches[]>;
|
|
29
|
+
getRecords(groupId: string, pagination?: MandatoryPaginationParams, context?: TranslationMemoryClientContext): Promise<TranslationMemoryRecordsResponse>;
|
|
30
|
+
upsertRecords(groupId: string, records: UpsertRecordDto[], context?: TranslationMemoryClientContext): Promise<void>;
|
|
26
31
|
private internalBulkFindMatches;
|
|
27
32
|
private handleError;
|
|
28
33
|
}
|
|
@@ -6,12 +6,13 @@ const objectUtils_1 = require("@lokalise/node-core/dist/src/utils/objectUtils");
|
|
|
6
6
|
const TranslationMemoryClientError_1 = require("./errors/TranslationMemoryClientError");
|
|
7
7
|
class TranslationMemoryClient {
|
|
8
8
|
maxFindMatchesRequestSize = 20; // TODO: TBD
|
|
9
|
+
isEnabled;
|
|
9
10
|
httpClient;
|
|
10
|
-
retryConfig;
|
|
11
11
|
headers;
|
|
12
|
+
retryConfig;
|
|
12
13
|
errorReporter;
|
|
13
|
-
isEnabled;
|
|
14
14
|
constructor(config) {
|
|
15
|
+
this.isEnabled = config.isEnabled ?? true;
|
|
15
16
|
this.httpClient = (0, node_core_1.buildClient)(config.baseUrl);
|
|
16
17
|
this.headers = {
|
|
17
18
|
'Content-Type': 'application/json',
|
|
@@ -32,14 +33,14 @@ class TranslationMemoryClient {
|
|
|
32
33
|
...config.retryConfig,
|
|
33
34
|
};
|
|
34
35
|
this.errorReporter = config.errorReporter;
|
|
35
|
-
this.isEnabled = config.isEnabled ?? true;
|
|
36
36
|
}
|
|
37
|
-
async findMatches(groupId, request) {
|
|
37
|
+
async findMatches(groupId, request, context = {}) {
|
|
38
38
|
if (!this.isEnabled) {
|
|
39
39
|
return [];
|
|
40
40
|
}
|
|
41
41
|
try {
|
|
42
42
|
const response = await (0, node_core_1.sendGet)(this.httpClient, `/v1/groups/${groupId}/actions/find-matches`, {
|
|
43
|
+
reqContext: context.reqContext,
|
|
43
44
|
headers: this.headers,
|
|
44
45
|
retryConfig: this.retryConfig,
|
|
45
46
|
requestLabel: '(tm-sdk) Find matches',
|
|
@@ -48,26 +49,26 @@ class TranslationMemoryClient {
|
|
|
48
49
|
return response.result.body.data;
|
|
49
50
|
}
|
|
50
51
|
catch (e) {
|
|
51
|
-
throw this.handleError(e);
|
|
52
|
+
throw this.handleError(e, context);
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
|
-
async bulkFindMatches(groupId, { filters, options }) {
|
|
55
|
+
async bulkFindMatches(groupId, { filters, options }, context = {}) {
|
|
55
56
|
const response = [];
|
|
56
57
|
for (const part of (0, node_core_1.chunk)(filters, this.maxFindMatchesRequestSize)) {
|
|
57
58
|
const partialResponse = await this.internalBulkFindMatches(groupId, {
|
|
58
59
|
filters: part,
|
|
59
60
|
options,
|
|
60
|
-
});
|
|
61
|
+
}, context);
|
|
61
62
|
response.push(...partialResponse);
|
|
62
63
|
}
|
|
63
64
|
return response;
|
|
64
65
|
}
|
|
65
|
-
async *bulkFindMatchesIterative(groupId, { filters, options }) {
|
|
66
|
+
async *bulkFindMatchesIterative(groupId, { filters, options }, context = {}) {
|
|
66
67
|
for (const part of (0, node_core_1.chunk)(filters, this.maxFindMatchesRequestSize)) {
|
|
67
|
-
yield await this.internalBulkFindMatches(groupId, { filters: part, options });
|
|
68
|
+
yield await this.internalBulkFindMatches(groupId, { filters: part, options }, context);
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
|
-
async getRecords(groupId, pagination) {
|
|
71
|
+
async getRecords(groupId, pagination, context = {}) {
|
|
71
72
|
if (!this.isEnabled) {
|
|
72
73
|
return {
|
|
73
74
|
records: [],
|
|
@@ -76,6 +77,7 @@ class TranslationMemoryClient {
|
|
|
76
77
|
}
|
|
77
78
|
try {
|
|
78
79
|
const response = await (0, node_core_1.sendGet)(this.httpClient, `/v1/groups/${groupId}/records`, {
|
|
80
|
+
reqContext: context.reqContext,
|
|
79
81
|
headers: this.headers,
|
|
80
82
|
retryConfig: this.retryConfig,
|
|
81
83
|
requestLabel: '(tm-sdk) Get records',
|
|
@@ -87,10 +89,10 @@ class TranslationMemoryClient {
|
|
|
87
89
|
};
|
|
88
90
|
}
|
|
89
91
|
catch (e) {
|
|
90
|
-
throw this.handleError(e);
|
|
92
|
+
throw this.handleError(e, context);
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
|
-
async upsertRecords(groupId, records) {
|
|
95
|
+
async upsertRecords(groupId, records, context = {}) {
|
|
94
96
|
if (!this.isEnabled) {
|
|
95
97
|
return;
|
|
96
98
|
}
|
|
@@ -101,16 +103,17 @@ class TranslationMemoryClient {
|
|
|
101
103
|
}
|
|
102
104
|
try {
|
|
103
105
|
await (0, node_core_1.sendPut)(this.httpClient, `/v1/groups/${groupId}/records`, recordsToInsert, {
|
|
106
|
+
reqContext: context.reqContext,
|
|
104
107
|
headers: this.headers,
|
|
105
108
|
retryConfig: this.retryConfig,
|
|
106
109
|
requestLabel: '(tm-sdk) Create or update records',
|
|
107
110
|
});
|
|
108
111
|
}
|
|
109
112
|
catch (e) {
|
|
110
|
-
throw this.handleError(e);
|
|
113
|
+
throw this.handleError(e, context);
|
|
111
114
|
}
|
|
112
115
|
}
|
|
113
|
-
async internalBulkFindMatches(groupId, request) {
|
|
116
|
+
async internalBulkFindMatches(groupId, request, context) {
|
|
114
117
|
const result = [];
|
|
115
118
|
if (!this.isEnabled) {
|
|
116
119
|
return result;
|
|
@@ -136,6 +139,7 @@ class TranslationMemoryClient {
|
|
|
136
139
|
}
|
|
137
140
|
try {
|
|
138
141
|
const response = await (0, node_core_1.sendPost)(this.httpClient, `/v1/groups/${groupId}/actions/bulk-find-matches`, request, {
|
|
142
|
+
reqContext: context.reqContext,
|
|
139
143
|
headers: this.headers,
|
|
140
144
|
retryConfig: this.retryConfig,
|
|
141
145
|
requestLabel: '(tm-sdk) Bulk find matches',
|
|
@@ -144,10 +148,10 @@ class TranslationMemoryClient {
|
|
|
144
148
|
return result;
|
|
145
149
|
}
|
|
146
150
|
catch (e) {
|
|
147
|
-
throw this.handleError(e);
|
|
151
|
+
throw this.handleError(e, context);
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
|
-
handleError(e) {
|
|
154
|
+
handleError(e, context) {
|
|
151
155
|
let error;
|
|
152
156
|
if (e instanceof Error) {
|
|
153
157
|
error = (0, node_core_1.isResponseStatusError)(e) ? new TranslationMemoryClientError_1.TranslationMemoryClientError(e) : e;
|
|
@@ -159,7 +163,13 @@ class TranslationMemoryClient {
|
|
|
159
163
|
details: { error: JSON.stringify(e) },
|
|
160
164
|
});
|
|
161
165
|
}
|
|
162
|
-
this.errorReporter?.report({
|
|
166
|
+
this.errorReporter?.report({
|
|
167
|
+
error,
|
|
168
|
+
context: {
|
|
169
|
+
reqId: context.reqContext?.reqId,
|
|
170
|
+
...context.metadata,
|
|
171
|
+
},
|
|
172
|
+
});
|
|
163
173
|
return error;
|
|
164
174
|
}
|
|
165
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationMemoryClient.js","sourceRoot":"","sources":["../../src/sdk/TranslationMemoryClient.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TranslationMemoryClient.js","sourceRoot":"","sources":["../../src/sdk/TranslationMemoryClient.ts"],"names":[],"mappings":";;;AAGA,mDAQ4B;AAC5B,gFAAqF;AAIrF,wFAAoF;AA+BpF,MAAa,uBAAuB;IACjB,yBAAyB,GAAG,EAAE,CAAA,CAAC,YAAY;IAE3C,SAAS,CAAS;IAClB,UAAU,CAAQ;IAClB,OAAO,CAAyB;IAChC,WAAW,CAAa;IAExB,aAAa,CAAgB;IAE9C,YAAY,MAAqC;QAC/C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAA;QACzC,IAAI,CAAC,UAAU,GAAG,IAAA,uBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,GAAG;YACb,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,MAAM,CAAC,QAAQ,EAAE;SAC3C,CAAA;QACD,IAAI,CAAC,WAAW,GAAG;YACjB,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,CAAC;YACd,2BAA2B,EAAE,GAAG;YAChC,kBAAkB,EAAE;gBAClB,GAAG,EAAE,kBAAkB;gBACvB,GAAG,EAAE,sBAAsB;gBAC3B,GAAG,EAAE,oBAAoB;gBACzB,GAAG,EAAE,wBAAwB;gBAC7B,GAAG,EAAE,sBAAsB;gBAC3B,GAAG,EAAE,mBAAmB;aACzB;YACD,GAAG,MAAM,CAAC,WAAW;SACtB,CAAA;QACD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,OAA2B,EAC3B,UAA0C,EAAE;QAE5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAO,EAC5B,IAAI,CAAC,UAAU,EACf,cAAc,OAAO,uBAAuB,EAC5C;gBACE,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,uBAAuB;gBACrC,KAAK,EAAE,IAAA,kCAAoB,EAAC,OAAO,CAAC;aACrC,CACF,CAAA;YAED,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,EAAE,OAAO,EAAE,OAAO,EAA0B,EAC5C,UAA0C,EAAE;QAE5C,MAAM,QAAQ,GAAmC,EAAE,CAAA;QACnD,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAK,EAAC,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAClE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,uBAAuB,CACxD,OAAO,EACP;gBACE,OAAO,EAAE,IAAI;gBACb,OAAO;aACR,EACD,OAAO,CACR,CAAA;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,CAAC,wBAAwB,CAC7B,OAAe,EACf,EAAE,OAAO,EAAE,OAAO,EAA0B,EAC5C,UAA0C,EAAE;QAE5C,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAK,EAAC,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAClE,MAAM,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,OAAe,EACf,UAAsC,EACtC,UAA0C,EAAE;QAE5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;aACnB,CAAA;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAO,EAC5B,IAAI,CAAC,UAAU,EACf,cAAc,OAAO,UAAU,EAC/B;gBACE,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,sBAAsB;gBACpC,KAAK,EAAE,UAAU;aAClB,CACF,CAAA;YAED,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;gBAClC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;aAChC,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAe,EACf,OAA0B,EAC1B,UAA0C,EAAE;QAE5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,iCAAiC;QACjC,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CACpC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACvF,CAAA;QACD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAA,mBAAO,EAAC,IAAI,CAAC,UAAU,EAAE,cAAc,OAAO,UAAU,EAAE,eAAe,EAAE;gBAC/E,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,mCAAmC;aAClD,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,OAAe,EACf,OAA+B,EAC/B,OAAuC;QAEvC,MAAM,MAAM,GAAmC,EAAE,CAAA;QACjD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;YACxC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAC9D,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACd,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1C,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC/B,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAClC,CAAC;gBACD,OAAO,GAAG,CAAA;YACZ,CAAC,EACD;gBACE,YAAY,EAAE,EAA6B;gBAC3C,eAAe,EAAE,EAA6B;aAC/C,CACF,CAAA;YACD,MAAM,CAAC,IAAI,CACT,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;aAC7D,CAAC,CAAC,CACJ,CAAA;YACD,OAAO,CAAC,OAAO,GAAG,eAAe,CAAA;QACnC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAQ,EAC7B,IAAI,CAAC,UAAU,EACf,cAAc,OAAO,4BAA4B,EACjD,OAAO,EACP;gBACE,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,4BAA4B;aAC3C,CACF,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzC,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,CAAU,EAAE,OAAuC;QACrE,IAAI,KAAwB,CAAA;QAC5B,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,KAAK,GAAG,IAAA,iCAAqB,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,2DAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5E,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,yBAAa,CAAC;gBACxB,OAAO,EAAE,eAAe;gBACxB,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;aACtC,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;YACzB,KAAK;YACL,OAAO,EAAE;gBACP,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK;gBAChC,GAAG,OAAO,CAAC,QAAQ;aACpB;SACF,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAtOD,0DAsOC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lokalise/tm-sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Lokalise",
|
|
6
6
|
"url": "https://lokalise.com/"
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"undici-retry": "^5.0.2"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
+
"@lokalise/fastify-extras": "^16.6.0",
|
|
42
43
|
"@types/node": "20.11.20",
|
|
43
44
|
"@typescript-eslint/eslint-plugin": "^7.0.2",
|
|
44
45
|
"@typescript-eslint/parser": "^7.0.2",
|