@lokalise/node-core 2.5.2 → 4.0.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
@@ -1,5 +1,5 @@
1
- export { sendPut, sendPutBinary, sendDelete, sendPatch, sendGet, sendPost, httpClient, } from './src/http/httpClient';
2
- export type { GetRequestOptions, DeleteRequestOptions, RequestOptions, Response, HttpRequestContext, } from './src/http/httpClient';
1
+ export { sendPut, sendPutBinary, sendDelete, sendPatch, sendGet, sendPost, httpClient, buildClient, } from './src/http/httpClient';
2
+ export type { RequestOptions, Response, HttpRequestContext } from './src/http/httpClient';
3
3
  export { PublicNonRecoverableError } from './src/errors/PublicNonRecoverableError';
4
4
  export type { PublicNonRecoverableErrorParams } from './src/errors/PublicNonRecoverableError';
5
5
  export { InternalError } from './src/errors/InternalError';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEmptyObject = exports.copyWithoutUndefined = exports.pickWithoutUndefined = exports.pick = exports.groupBy = exports.chunk = exports.createRangeValidator = exports.ensureClosingSlashTransformer = exports.ConfigScope = exports.InternalError = exports.PublicNonRecoverableError = exports.httpClient = exports.sendPost = exports.sendGet = exports.sendPatch = exports.sendDelete = exports.sendPutBinary = exports.sendPut = void 0;
3
+ exports.isEmptyObject = exports.copyWithoutUndefined = exports.pickWithoutUndefined = exports.pick = exports.groupBy = exports.chunk = exports.createRangeValidator = exports.ensureClosingSlashTransformer = exports.ConfigScope = exports.InternalError = exports.PublicNonRecoverableError = exports.buildClient = exports.httpClient = exports.sendPost = exports.sendGet = exports.sendPatch = exports.sendDelete = exports.sendPutBinary = exports.sendPut = void 0;
4
4
  var httpClient_1 = require("./src/http/httpClient");
5
5
  Object.defineProperty(exports, "sendPut", { enumerable: true, get: function () { return httpClient_1.sendPut; } });
6
6
  Object.defineProperty(exports, "sendPutBinary", { enumerable: true, get: function () { return httpClient_1.sendPutBinary; } });
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "sendPatch", { enumerable: true, get: function ()
9
9
  Object.defineProperty(exports, "sendGet", { enumerable: true, get: function () { return httpClient_1.sendGet; } });
10
10
  Object.defineProperty(exports, "sendPost", { enumerable: true, get: function () { return httpClient_1.sendPost; } });
11
11
  Object.defineProperty(exports, "httpClient", { enumerable: true, get: function () { return httpClient_1.httpClient; } });
12
+ Object.defineProperty(exports, "buildClient", { enumerable: true, get: function () { return httpClient_1.buildClient; } });
12
13
  var PublicNonRecoverableError_1 = require("./src/errors/PublicNonRecoverableError");
13
14
  Object.defineProperty(exports, "PublicNonRecoverableError", { enumerable: true, get: function () { return PublicNonRecoverableError_1.PublicNonRecoverableError; } });
14
15
  var InternalError_1 = require("./src/errors/InternalError");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,oDAQ8B;AAP5B,qGAAA,OAAO,OAAA;AACP,2GAAA,aAAa,OAAA;AACb,wGAAA,UAAU,OAAA;AACV,uGAAA,SAAS,OAAA;AACT,qGAAA,OAAO,OAAA;AACP,sGAAA,QAAQ,OAAA;AACR,wGAAA,UAAU,OAAA;AAUZ,oFAAkF;AAAzE,sIAAA,yBAAyB,OAAA;AAGlC,4DAA0D;AAAjD,8GAAA,aAAa,OAAA;AAGtB,wDAAsD;AAA7C,0GAAA,WAAW,OAAA;AACpB,sEAA+E;AAAtE,mIAAA,6BAA6B,OAAA;AACtC,kEAAoE;AAA3D,wHAAA,oBAAoB,OAAA;AAU7B,qDAA8C;AAArC,mGAAA,KAAK,OAAA;AACd,uDAMgC;AAL9B,sGAAA,OAAO,OAAA;AACP,mGAAA,IAAI,OAAA;AACJ,mHAAA,oBAAoB,OAAA;AACpB,mHAAA,oBAAoB,OAAA;AACpB,4GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,oDAS8B;AAR5B,qGAAA,OAAO,OAAA;AACP,2GAAA,aAAa,OAAA;AACb,wGAAA,UAAU,OAAA;AACV,uGAAA,SAAS,OAAA;AACT,qGAAA,OAAO,OAAA;AACP,sGAAA,QAAQ,OAAA;AACR,wGAAA,UAAU,OAAA;AACV,yGAAA,WAAW,OAAA;AAIb,oFAAkF;AAAzE,sIAAA,yBAAyB,OAAA;AAGlC,4DAA0D;AAAjD,8GAAA,aAAa,OAAA;AAGtB,wDAAsD;AAA7C,0GAAA,WAAW,OAAA;AACpB,sEAA+E;AAAtE,mIAAA,6BAA6B,OAAA;AACtC,kEAAoE;AAA3D,wHAAA,oBAAoB,OAAA;AAU7B,qDAA8C;AAArC,mGAAA,KAAK,OAAA;AACd,uDAMgC;AAL9B,sGAAA,OAAO,OAAA;AACP,mGAAA,IAAI,OAAA;AACJ,mHAAA,oBAAoB,OAAA;AACpB,mHAAA,oBAAoB,OAAA;AACpB,4GAAA,aAAa,OAAA"}
@@ -14,4 +14,11 @@ type Right<U> = {
14
14
  * @see {@link https://antman-does-software.com/stop-catching-errors-in-typescript-use-the-either-type-to-make-your-code-predictable Further reading on motivation for Either type}
15
15
  */
16
16
  export type Either<T, U> = NonNullable<Left<T> | Right<U>>;
17
+ /***
18
+ * Variation of Either, which may or may not have Error set, but always has Result
19
+ */
20
+ export type DefiniteEither<T, U> = {
21
+ error?: T;
22
+ result: U;
23
+ };
17
24
  export {};
@@ -1,39 +1,37 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import type { Readable } from 'stream';
4
+ import { Client } from 'undici';
4
5
  import type { FormData } from 'undici';
6
+ import type { RequestResult, RetryConfig } from 'undici-retry';
7
+ import type { DefiniteEither } from '../errors/either';
5
8
  type RecordObject = Record<string, any>;
6
9
  export type HttpRequestContext = {
7
10
  reqId: string;
8
11
  };
9
- export type GetRequestOptions = {
10
- headers?: RecordObject;
11
- query?: RecordObject;
12
- timeout?: number;
13
- throwOnError?: boolean;
14
- reqContext?: HttpRequestContext;
15
- safeParseJson?: boolean;
16
- };
17
- export type DeleteRequestOptions = GetRequestOptions;
18
12
  export type RequestOptions = {
19
13
  headers?: RecordObject;
20
14
  query?: RecordObject;
21
- timeout?: number;
15
+ timeout: number | undefined;
22
16
  throwOnError?: boolean;
23
17
  reqContext?: HttpRequestContext;
24
18
  safeParseJson?: boolean;
19
+ disableKeepAlive?: boolean;
20
+ retryConfig?: Omit<RetryConfig, 'safeParseJson'>;
21
+ clientOptions?: Client.Options;
25
22
  };
26
23
  export type Response<T> = {
27
24
  body: T;
28
25
  headers: RecordObject;
29
26
  statusCode: number;
30
27
  };
31
- export declare function sendGet<T>(baseUrl: string, path: string, options?: GetRequestOptions): Promise<Response<T>>;
32
- export declare function sendDelete<T>(baseUrl: string, path: string, options?: DeleteRequestOptions): Promise<Response<T>>;
33
- export declare function sendPost<T>(baseUrl: string, path: string, body: RecordObject | undefined, options?: RequestOptions): Promise<Response<T>>;
34
- export declare function sendPut<T>(baseUrl: string, path: string, body: RecordObject | undefined, options?: RequestOptions): Promise<Response<T>>;
35
- export declare function sendPutBinary<T>(baseUrl: string, path: string, body: Buffer | Uint8Array | Readable | null | FormData, options?: RequestOptions): Promise<Response<T>>;
36
- export declare function sendPatch<T>(baseUrl: string, path: string, body: RecordObject | undefined, options?: RequestOptions): Promise<Response<T>>;
28
+ export declare function sendGet<T>(client: Client, path: string, options?: Partial<RequestOptions>): Promise<DefiniteEither<RequestResult<unknown>, RequestResult<T>>>;
29
+ export declare function sendDelete<T>(client: Client, path: string, options?: Partial<RequestOptions>): Promise<DefiniteEither<RequestResult<unknown>, RequestResult<T>>>;
30
+ export declare function sendPost<T>(client: Client, path: string, body: RecordObject | undefined, options?: Partial<RequestOptions>): Promise<DefiniteEither<RequestResult<unknown>, RequestResult<T>>>;
31
+ export declare function sendPut<T>(client: Client, path: string, body: RecordObject | undefined, options?: Partial<RequestOptions>): Promise<DefiniteEither<RequestResult<unknown>, RequestResult<T>>>;
32
+ export declare function sendPutBinary<T>(client: Client, path: string, body: Buffer | Uint8Array | Readable | null | FormData, options?: Partial<RequestOptions>): Promise<DefiniteEither<RequestResult<unknown>, RequestResult<T>>>;
33
+ export declare function sendPatch<T>(client: Client, path: string, body: RecordObject | undefined, options?: Partial<RequestOptions>): Promise<DefiniteEither<RequestResult<unknown>, RequestResult<T>>>;
34
+ export declare function buildClient(baseUrl: string, clientOptions?: Client.Options): Client;
37
35
  export declare const httpClient: {
38
36
  get: typeof sendGet;
39
37
  post: typeof sendPost;
@@ -1,60 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.httpClient = exports.sendPatch = exports.sendPutBinary = exports.sendPut = exports.sendPost = exports.sendDelete = exports.sendGet = void 0;
3
+ exports.httpClient = exports.buildClient = exports.sendPatch = exports.sendPutBinary = exports.sendPut = exports.sendPost = exports.sendDelete = exports.sendGet = void 0;
4
4
  const undici_1 = require("undici");
5
+ const undici_retry_1 = require("undici-retry");
5
6
  const InternalError_1 = require("../errors/InternalError");
6
7
  const objectUtils_1 = require("../utils/objectUtils");
7
- const defaultOptions = {
8
+ const DEFAULT_OPTIONS = {
8
9
  throwOnError: true,
9
10
  timeout: 30000,
10
11
  };
11
- async function sendGet(baseUrl, path, options = defaultOptions) {
12
- const url = resolveUrl(baseUrl, path);
13
- const response = await (0, undici_1.request)(url, {
12
+ const defaultClientOptions = {
13
+ keepAliveMaxTimeout: 300000,
14
+ keepAliveTimeout: 4000,
15
+ };
16
+ async function sendGet(client, path, options = {}) {
17
+ const result = await (0, undici_retry_1.sendWithRetry)(client, {
18
+ ...DEFAULT_OPTIONS,
19
+ path: path,
14
20
  method: 'GET',
15
21
  query: options.query,
16
22
  headers: (0, objectUtils_1.copyWithoutUndefined)({
17
23
  'x-request-id': options.reqContext?.reqId,
18
24
  ...options.headers,
19
25
  }),
26
+ reset: options.disableKeepAlive ?? false,
20
27
  bodyTimeout: options.timeout,
21
- throwOnError: options.throwOnError,
22
- });
23
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
24
- const resolvedBody = await resolveBody(response, options.safeParseJson);
25
- return {
26
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
27
- body: resolvedBody,
28
- headers: response.headers,
29
- statusCode: response.statusCode,
30
- };
28
+ throwOnError: false,
29
+ }, resolveRetryConfig(options));
30
+ return resolveResult(result, options.throwOnError ?? DEFAULT_OPTIONS.throwOnError);
31
31
  }
32
32
  exports.sendGet = sendGet;
33
- async function sendDelete(baseUrl, path, options = defaultOptions) {
34
- const url = resolveUrl(baseUrl, path);
35
- const response = await (0, undici_1.request)(url, {
33
+ async function sendDelete(client, path, options = {}) {
34
+ const result = await (0, undici_retry_1.sendWithRetry)(client, {
35
+ ...DEFAULT_OPTIONS,
36
+ path,
36
37
  method: 'DELETE',
37
38
  query: options.query,
38
39
  headers: (0, objectUtils_1.copyWithoutUndefined)({
39
40
  'x-request-id': options.reqContext?.reqId,
40
41
  ...options.headers,
41
42
  }),
43
+ reset: options.disableKeepAlive ?? false,
42
44
  bodyTimeout: options.timeout,
43
- throwOnError: options.throwOnError,
44
- });
45
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
46
- const resolvedBody = await resolveBody(response, options.safeParseJson);
47
- return {
48
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
49
- body: resolvedBody,
50
- headers: response.headers,
51
- statusCode: response.statusCode,
52
- };
45
+ throwOnError: false,
46
+ }, resolveRetryConfig(options));
47
+ return resolveResult(result, options.throwOnError ?? DEFAULT_OPTIONS.throwOnError);
53
48
  }
54
49
  exports.sendDelete = sendDelete;
55
- async function sendPost(baseUrl, path, body, options = defaultOptions) {
56
- const url = resolveUrl(baseUrl, path);
57
- const response = await (0, undici_1.request)(url, {
50
+ async function sendPost(client, path, body, options = {}) {
51
+ const result = await (0, undici_retry_1.sendWithRetry)(client, {
52
+ ...DEFAULT_OPTIONS,
53
+ path: path,
58
54
  method: 'POST',
59
55
  body: body ? JSON.stringify(body) : undefined,
60
56
  query: options.query,
@@ -62,22 +58,17 @@ async function sendPost(baseUrl, path, body, options = defaultOptions) {
62
58
  'x-request-id': options.reqContext?.reqId,
63
59
  ...options.headers,
64
60
  }),
61
+ reset: options.disableKeepAlive ?? false,
65
62
  bodyTimeout: options.timeout,
66
- throwOnError: options.throwOnError,
67
- });
68
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
69
- const resolvedBody = await resolveBody(response, options.safeParseJson);
70
- return {
71
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
72
- body: resolvedBody,
73
- headers: response.headers,
74
- statusCode: response.statusCode,
75
- };
63
+ throwOnError: false,
64
+ }, resolveRetryConfig(options));
65
+ return resolveResult(result, options.throwOnError ?? DEFAULT_OPTIONS.throwOnError);
76
66
  }
77
67
  exports.sendPost = sendPost;
78
- async function sendPut(baseUrl, path, body, options = defaultOptions) {
79
- const url = resolveUrl(baseUrl, path);
80
- const response = await (0, undici_1.request)(url, {
68
+ async function sendPut(client, path, body, options = {}) {
69
+ const result = await (0, undici_retry_1.sendWithRetry)(client, {
70
+ ...DEFAULT_OPTIONS,
71
+ path: path,
81
72
  method: 'PUT',
82
73
  body: body ? JSON.stringify(body) : undefined,
83
74
  query: options.query,
@@ -85,22 +76,17 @@ async function sendPut(baseUrl, path, body, options = defaultOptions) {
85
76
  'x-request-id': options.reqContext?.reqId,
86
77
  ...options.headers,
87
78
  }),
79
+ reset: options.disableKeepAlive ?? false,
88
80
  bodyTimeout: options.timeout,
89
- throwOnError: options.throwOnError,
90
- });
91
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
92
- const resolvedBody = await resolveBody(response, options.safeParseJson);
93
- return {
94
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
95
- body: resolvedBody,
96
- headers: response.headers,
97
- statusCode: response.statusCode,
98
- };
81
+ throwOnError: false,
82
+ }, resolveRetryConfig(options));
83
+ return resolveResult(result, options.throwOnError ?? DEFAULT_OPTIONS.throwOnError);
99
84
  }
100
85
  exports.sendPut = sendPut;
101
- async function sendPutBinary(baseUrl, path, body, options = defaultOptions) {
102
- const url = resolveUrl(baseUrl, path);
103
- const response = await (0, undici_1.request)(url, {
86
+ async function sendPutBinary(client, path, body, options = {}) {
87
+ const result = await (0, undici_retry_1.sendWithRetry)(client, {
88
+ ...DEFAULT_OPTIONS,
89
+ path: path,
104
90
  method: 'PUT',
105
91
  body,
106
92
  query: options.query,
@@ -108,22 +94,17 @@ async function sendPutBinary(baseUrl, path, body, options = defaultOptions) {
108
94
  'x-request-id': options.reqContext?.reqId,
109
95
  ...options.headers,
110
96
  }),
97
+ reset: options.disableKeepAlive ?? false,
111
98
  bodyTimeout: options.timeout,
112
- throwOnError: options.throwOnError,
113
- });
114
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
115
- const resolvedBody = await resolveBody(response, options.safeParseJson);
116
- return {
117
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
118
- body: resolvedBody,
119
- headers: response.headers,
120
- statusCode: response.statusCode,
121
- };
99
+ throwOnError: false,
100
+ }, resolveRetryConfig(options));
101
+ return resolveResult(result, options.throwOnError ?? DEFAULT_OPTIONS.throwOnError);
122
102
  }
123
103
  exports.sendPutBinary = sendPutBinary;
124
- async function sendPatch(baseUrl, path, body, options = defaultOptions) {
125
- const url = resolveUrl(baseUrl, path);
126
- const response = await (0, undici_1.request)(url, {
104
+ async function sendPatch(client, path, body, options = {}) {
105
+ const result = await (0, undici_retry_1.sendWithRetry)(client, {
106
+ ...DEFAULT_OPTIONS,
107
+ path: path,
127
108
  method: 'PATCH',
128
109
  body: body ? JSON.stringify(body) : undefined,
129
110
  query: options.query,
@@ -131,46 +112,44 @@ async function sendPatch(baseUrl, path, body, options = defaultOptions) {
131
112
  'x-request-id': options.reqContext?.reqId,
132
113
  ...options.headers,
133
114
  }),
115
+ reset: options.disableKeepAlive ?? false,
134
116
  bodyTimeout: options.timeout,
135
- throwOnError: options.throwOnError,
136
- });
137
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
138
- const resolvedBody = await resolveBody(response, options.safeParseJson);
139
- return {
140
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
141
- body: resolvedBody,
142
- headers: response.headers,
143
- statusCode: response.statusCode,
144
- };
117
+ throwOnError: false,
118
+ }, resolveRetryConfig(options));
119
+ return resolveResult(result, options.throwOnError ?? DEFAULT_OPTIONS.throwOnError);
145
120
  }
146
121
  exports.sendPatch = sendPatch;
147
- async function resolveBody(response, safeParseJson = false) {
148
- // There can never be multiple content-type headers, see https://www.rfc-editor.org/rfc/rfc7230#section-3.2.2
149
- const contentType = response.headers['content-type'];
150
- if (contentType?.startsWith('application/json')) {
151
- if (!safeParseJson) {
152
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
153
- return await response.body.json();
122
+ function resolveRetryConfig(options) {
123
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
124
+ return options.retryConfig
125
+ ? {
126
+ ...options.retryConfig,
127
+ safeParseJson: options.safeParseJson ?? false,
154
128
  }
155
- const rawBody = await response.body.text();
156
- try {
157
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
158
- return JSON.parse(rawBody);
159
- }
160
- catch (err) {
161
- throw new InternalError_1.InternalError({
162
- message: 'Error while parsing HTTP JSON response',
163
- errorCode: 'INVALID_HTTP_RESPONSE_JSON',
164
- details: {
165
- rawBody,
166
- },
167
- });
168
- }
169
- }
170
- return await response.body.text();
129
+ : {
130
+ ...undici_retry_1.DEFAULT_RETRY_CONFIG,
131
+ safeParseJson: options.safeParseJson ?? false,
132
+ };
171
133
  }
172
- function resolveUrl(baseUrl, path) {
173
- return new URL(path, baseUrl).href;
134
+ function buildClient(baseUrl, clientOptions) {
135
+ const newClient = new undici_1.Client(baseUrl, {
136
+ ...defaultClientOptions,
137
+ ...clientOptions,
138
+ });
139
+ return newClient;
140
+ }
141
+ exports.buildClient = buildClient;
142
+ function resolveResult(requestResult, throwOnError) {
143
+ if (requestResult.error && throwOnError) {
144
+ throw new InternalError_1.InternalError({
145
+ message: `Response status code ${requestResult.error.statusCode}`,
146
+ details: {
147
+ response: requestResult.error,
148
+ },
149
+ errorCode: 'REQUEST_ERROR',
150
+ });
151
+ }
152
+ return requestResult;
174
153
  }
175
154
  exports.httpClient = {
176
155
  get: sendGet,
@@ -1 +1 @@
1
- {"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../../src/http/httpClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../../src/http/httpClient.ts"],"names":[],"mappings":"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"}
@@ -11,17 +11,25 @@ const JSON_HEADERS = {
11
11
  const TEXT_HEADERS = {
12
12
  'content-type': 'text/plain',
13
13
  };
14
+ const baseUrl = 'https://fakestoreapi.com';
14
15
  describe('httpClient', () => {
15
16
  let mockAgent;
17
+ let client;
16
18
  beforeEach(() => {
17
19
  mockAgent = new undici_1.MockAgent();
18
20
  mockAgent.disableNetConnect();
19
21
  (0, undici_1.setGlobalDispatcher)(mockAgent);
22
+ client = mockAgent.get(baseUrl);
23
+ });
24
+ describe('buildClient', () => {
25
+ it('creates a client', () => {
26
+ const client = (0, httpClient_1.buildClient)(baseUrl);
27
+ expect(client).toBeInstanceOf(undici_1.Client);
28
+ });
20
29
  });
21
30
  describe('GET', () => {
22
31
  it('returns original payload when breaking during parsing', async () => {
23
32
  expect.assertions(1);
24
- const client = mockAgent.get('https://fakestoreapi.com');
25
33
  client
26
34
  .intercept({
27
35
  path: '/products/1',
@@ -29,7 +37,7 @@ describe('httpClient', () => {
29
37
  })
30
38
  .reply(200, 'this is not a real json', { headers: JSON_HEADERS });
31
39
  try {
32
- await (0, httpClient_1.sendGet)('https://fakestoreapi.com', 'products/1', { safeParseJson: true });
40
+ await (0, httpClient_1.sendGet)(client, '/products/1', { safeParseJson: true });
33
41
  }
34
42
  catch (err) {
35
43
  // This is needed, because built-in error assertions do not assert nested fields
@@ -44,18 +52,16 @@ describe('httpClient', () => {
44
52
  }
45
53
  });
46
54
  it('GET without queryParams', async () => {
47
- const client = mockAgent.get('https://fakestoreapi.com');
48
55
  client
49
56
  .intercept({
50
57
  path: '/products/1',
51
58
  method: 'GET',
52
59
  })
53
60
  .reply(200, mockProduct1_json_1.default, { headers: JSON_HEADERS });
54
- const result = await (0, httpClient_1.sendGet)('https://fakestoreapi.com', 'products/1');
55
- expect(result.body).toEqual(mockProduct1_json_1.default);
61
+ const result = await (0, httpClient_1.sendGet)(client, '/products/1');
62
+ expect(result.result.body).toEqual(mockProduct1_json_1.default);
56
63
  });
57
64
  it('GET returning text', async () => {
58
- const client = mockAgent.get('https://fakestoreapi.com');
59
65
  client
60
66
  .intercept({
61
67
  path: '/products/1',
@@ -64,22 +70,20 @@ describe('httpClient', () => {
64
70
  .reply(200, 'just text', {
65
71
  headers: TEXT_HEADERS,
66
72
  });
67
- const result = await (0, httpClient_1.sendGet)('https://fakestoreapi.com', 'products/1');
68
- expect(result.body).toBe('just text');
73
+ const result = await (0, httpClient_1.sendGet)(client, '/products/1');
74
+ expect(result.result.body).toBe('just text');
69
75
  });
70
76
  it('GET returning text without content type', async () => {
71
- const client = mockAgent.get('https://fakestoreapi.com');
72
77
  client
73
78
  .intercept({
74
79
  path: '/products/1',
75
80
  method: 'GET',
76
81
  })
77
82
  .reply(200, 'just text', {});
78
- const result = await (0, httpClient_1.sendGet)('https://fakestoreapi.com', 'products/1');
79
- expect(result.body).toBe('just text');
83
+ const result = await (0, httpClient_1.sendGet)(client, '/products/1');
84
+ expect(result.result.body).toBe('just text');
80
85
  });
81
86
  it('GET with queryParams', async () => {
82
- const client = mockAgent.get('https://fakestoreapi.com');
83
87
  const query = {
84
88
  limit: 3,
85
89
  };
@@ -90,27 +94,97 @@ describe('httpClient', () => {
90
94
  query,
91
95
  })
92
96
  .reply(200, mockProductsLimit3_json_1.default, { headers: JSON_HEADERS });
93
- const result = await (0, httpClient_1.sendGet)('https://fakestoreapi.com', 'products', {
97
+ const result = await (0, httpClient_1.sendGet)(client, '/products', {
98
+ query,
99
+ });
100
+ expect(result.result.body).toEqual(mockProductsLimit3_json_1.default);
101
+ });
102
+ it('Throws an error on internal error', async () => {
103
+ expect.assertions(1);
104
+ const query = {
105
+ limit: 3,
106
+ };
107
+ client
108
+ .intercept({
109
+ path: '/products',
110
+ method: 'GET',
111
+ query,
112
+ })
113
+ .replyWithError(new Error('connection error'));
114
+ await expect((0, httpClient_1.sendGet)(client, '/products', {
94
115
  query,
116
+ })).rejects.toMatchObject({
117
+ message: 'connection error',
118
+ });
119
+ });
120
+ it('Returns error response', async () => {
121
+ expect.assertions(1);
122
+ const query = {
123
+ limit: 3,
124
+ };
125
+ client
126
+ .intercept({
127
+ path: '/products',
128
+ method: 'GET',
129
+ query,
130
+ })
131
+ .reply(400, 'Invalid request');
132
+ await expect((0, httpClient_1.sendGet)(client, '/products', {
133
+ query,
134
+ })).rejects.toMatchObject({
135
+ message: 'Response status code 400',
136
+ details: {
137
+ response: {
138
+ body: 'Invalid request',
139
+ statusCode: 400,
140
+ },
141
+ },
95
142
  });
96
- expect(result.body).toEqual(mockProductsLimit3_json_1.default);
143
+ });
144
+ it('Works with retry', async () => {
145
+ expect.assertions(1);
146
+ const query = {
147
+ limit: 3,
148
+ };
149
+ client
150
+ .intercept({
151
+ path: '/products',
152
+ method: 'GET',
153
+ query,
154
+ })
155
+ .reply(500, 'Invalid request');
156
+ client
157
+ .intercept({
158
+ path: '/products',
159
+ method: 'GET',
160
+ query,
161
+ })
162
+ .reply(200, 'OK');
163
+ const response = await (0, httpClient_1.sendGet)(client, '/products', {
164
+ query,
165
+ retryConfig: {
166
+ statusCodesToRetry: [500],
167
+ retryOnTimeout: false,
168
+ delayBetweenAttemptsInMsecs: 0,
169
+ maxAttempts: 2,
170
+ },
171
+ });
172
+ expect(response.result.body).toBe('OK');
97
173
  });
98
174
  });
99
175
  describe('DELETE', () => {
100
176
  it('DELETE without queryParams', async () => {
101
- const client = mockAgent.get('https://fakestoreapi.com');
102
177
  client
103
178
  .intercept({
104
179
  path: '/products/1',
105
180
  method: 'DELETE',
106
181
  })
107
182
  .reply(204, undefined, { headers: TEXT_HEADERS });
108
- const result = await (0, httpClient_1.sendDelete)('https://fakestoreapi.com', 'products/1');
109
- expect(result.statusCode).toBe(204);
110
- expect(result.body).toBe('');
183
+ const result = await (0, httpClient_1.sendDelete)(client, '/products/1');
184
+ expect(result.result.statusCode).toBe(204);
185
+ expect(result.result.body).toBe('');
111
186
  });
112
187
  it('DELETE with queryParams', async () => {
113
- const client = mockAgent.get('https://fakestoreapi.com');
114
188
  const query = {
115
189
  limit: 3,
116
190
  };
@@ -121,38 +195,53 @@ describe('httpClient', () => {
121
195
  query,
122
196
  })
123
197
  .reply(204, undefined, { headers: TEXT_HEADERS });
124
- const result = await (0, httpClient_1.sendDelete)('https://fakestoreapi.com', 'products', {
198
+ const result = await (0, httpClient_1.sendDelete)(client, '/products', {
125
199
  query,
126
200
  });
127
- expect(result.statusCode).toBe(204);
128
- expect(result.body).toBe('');
201
+ expect(result.result.statusCode).toBe(204);
202
+ expect(result.result.body).toBe('');
203
+ });
204
+ it('Throws an error on internal error', async () => {
205
+ expect.assertions(1);
206
+ const query = {
207
+ limit: 3,
208
+ };
209
+ client
210
+ .intercept({
211
+ path: '/products',
212
+ method: 'DELETE',
213
+ query,
214
+ })
215
+ .replyWithError(new Error('connection error'));
216
+ await expect((0, httpClient_1.sendDelete)(client, '/products', {
217
+ query,
218
+ })).rejects.toMatchObject({
219
+ message: 'connection error',
220
+ });
129
221
  });
130
222
  });
131
223
  describe('POST', () => {
132
224
  it('POST without queryParams', async () => {
133
- const client = mockAgent.get('https://fakestoreapi.com');
134
225
  client
135
226
  .intercept({
136
227
  path: '/products',
137
228
  method: 'POST',
138
229
  })
139
230
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
140
- const result = await (0, httpClient_1.sendPost)('https://fakestoreapi.com', 'products', mockProduct1_json_1.default);
141
- expect(result.body).toEqual({ id: 21 });
231
+ const result = await (0, httpClient_1.sendPost)(client, '/products', mockProduct1_json_1.default);
232
+ expect(result.result.body).toEqual({ id: 21 });
142
233
  });
143
234
  it('POST without body', async () => {
144
- const client = mockAgent.get('https://fakestoreapi.com');
145
235
  client
146
236
  .intercept({
147
237
  path: '/products',
148
238
  method: 'POST',
149
239
  })
150
240
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
151
- const result = await (0, httpClient_1.sendPost)('https://fakestoreapi.com', 'products', undefined);
152
- expect(result.body).toEqual({ id: 21 });
241
+ const result = await (0, httpClient_1.sendPost)(client, '/products', undefined);
242
+ expect(result.result.body).toEqual({ id: 21 });
153
243
  });
154
244
  it('POST with queryParams', async () => {
155
- const client = mockAgent.get('https://fakestoreapi.com');
156
245
  const query = {
157
246
  limit: 3,
158
247
  };
@@ -163,47 +252,61 @@ describe('httpClient', () => {
163
252
  query,
164
253
  })
165
254
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
166
- const result = await (0, httpClient_1.sendPost)('https://fakestoreapi.com', 'products', mockProduct1_json_1.default, {
255
+ const result = await (0, httpClient_1.sendPost)(client, '/products', mockProduct1_json_1.default, {
167
256
  query,
168
257
  });
169
- expect(result.body).toEqual({ id: 21 });
258
+ expect(result.result.body).toEqual({ id: 21 });
170
259
  });
171
260
  it('POST that returns 400 throws an error', async () => {
172
- const client = mockAgent.get('https://fakestoreapi.com');
173
261
  client
174
262
  .intercept({
175
263
  path: '/products',
176
264
  method: 'POST',
177
265
  })
178
266
  .reply(400, { errorCode: 'err' }, { headers: JSON_HEADERS });
179
- await expect((0, httpClient_1.sendPost)('https://fakestoreapi.com', 'products', mockProduct1_json_1.default)).rejects.toThrow('Response status code 400: Bad Request');
267
+ await expect((0, httpClient_1.sendPost)(client, '/products', mockProduct1_json_1.default)).rejects.toThrow('Response status code 400');
268
+ });
269
+ it('Throws an error on internal error', async () => {
270
+ expect.assertions(1);
271
+ const query = {
272
+ limit: 3,
273
+ };
274
+ client
275
+ .intercept({
276
+ path: '/products',
277
+ method: 'POST',
278
+ query,
279
+ })
280
+ .replyWithError(new Error('connection error'));
281
+ await expect((0, httpClient_1.sendPost)(client, '/products', undefined, {
282
+ query,
283
+ })).rejects.toMatchObject({
284
+ message: 'connection error',
285
+ });
180
286
  });
181
287
  });
182
288
  describe('PUT', () => {
183
289
  it('PUT without queryParams', async () => {
184
- const client = mockAgent.get('https://fakestoreapi.com');
185
290
  client
186
291
  .intercept({
187
292
  path: '/products/1',
188
293
  method: 'PUT',
189
294
  })
190
295
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
191
- const result = await (0, httpClient_1.sendPut)('https://fakestoreapi.com', 'products/1', mockProduct1_json_1.default);
192
- expect(result.body).toEqual({ id: 21 });
296
+ const result = await (0, httpClient_1.sendPut)(client, '/products/1', mockProduct1_json_1.default);
297
+ expect(result.result.body).toEqual({ id: 21 });
193
298
  });
194
299
  it('PUT without body', async () => {
195
- const client = mockAgent.get('https://fakestoreapi.com');
196
300
  client
197
301
  .intercept({
198
302
  path: '/products/1',
199
303
  method: 'PUT',
200
304
  })
201
305
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
202
- const result = await (0, httpClient_1.sendPut)('https://fakestoreapi.com', 'products/1', undefined);
203
- expect(result.body).toEqual({ id: 21 });
306
+ const result = await (0, httpClient_1.sendPut)(client, '/products/1', undefined);
307
+ expect(result.result.body).toEqual({ id: 21 });
204
308
  });
205
309
  it('PUT with queryParams', async () => {
206
- const client = mockAgent.get('https://fakestoreapi.com');
207
310
  const query = {
208
311
  limit: 3,
209
312
  };
@@ -214,36 +317,51 @@ describe('httpClient', () => {
214
317
  query,
215
318
  })
216
319
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
217
- const result = await (0, httpClient_1.sendPut)('https://fakestoreapi.com', 'products/1', mockProduct1_json_1.default, {
320
+ const result = await (0, httpClient_1.sendPut)(client, '/products/1', mockProduct1_json_1.default, {
218
321
  query,
219
322
  });
220
- expect(result.body).toEqual({ id: 21 });
323
+ expect(result.result.body).toEqual({ id: 21 });
221
324
  });
222
325
  it('PUT that returns 400 throws an error', async () => {
223
- const client = mockAgent.get('https://fakestoreapi.com');
224
326
  client
225
327
  .intercept({
226
328
  path: '/products/1',
227
329
  method: 'PUT',
228
330
  })
229
331
  .reply(400, { errorCode: 'err' }, { headers: JSON_HEADERS });
230
- await expect((0, httpClient_1.sendPut)('https://fakestoreapi.com', 'products/1', mockProduct1_json_1.default)).rejects.toThrow('Response status code 400: Bad Request');
332
+ await expect((0, httpClient_1.sendPut)(client, '/products/1', mockProduct1_json_1.default)).rejects.toThrow('Response status code 400');
333
+ });
334
+ it('Throws an error on internal error', async () => {
335
+ expect.assertions(1);
336
+ const query = {
337
+ limit: 3,
338
+ };
339
+ client
340
+ .intercept({
341
+ path: '/products',
342
+ method: 'PUT',
343
+ query,
344
+ })
345
+ .replyWithError(new Error('connection error'));
346
+ await expect((0, httpClient_1.sendPut)(client, '/products', undefined, {
347
+ query,
348
+ })).rejects.toMatchObject({
349
+ message: 'connection error',
350
+ });
231
351
  });
232
352
  });
233
353
  describe('PUT binary', () => {
234
354
  it('PUT without queryParams', async () => {
235
- const client = mockAgent.get('https://fakestoreapi.com');
236
355
  client
237
356
  .intercept({
238
357
  path: '/products/1',
239
358
  method: 'PUT',
240
359
  })
241
360
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
242
- const result = await (0, httpClient_1.sendPutBinary)('https://fakestoreapi.com', 'products/1', Buffer.from('text'));
243
- expect(result.body).toEqual({ id: 21 });
361
+ const result = await (0, httpClient_1.sendPutBinary)(client, '/products/1', Buffer.from('text'));
362
+ expect(result.result.body).toEqual({ id: 21 });
244
363
  });
245
364
  it('PUT with queryParams', async () => {
246
- const client = mockAgent.get('https://fakestoreapi.com');
247
365
  const query = {
248
366
  limit: 3,
249
367
  };
@@ -254,47 +372,61 @@ describe('httpClient', () => {
254
372
  query,
255
373
  })
256
374
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
257
- const result = await (0, httpClient_1.sendPutBinary)('https://fakestoreapi.com', 'products/1', Buffer.from('text'), {
375
+ const result = await (0, httpClient_1.sendPutBinary)(client, '/products/1', Buffer.from('text'), {
258
376
  query,
259
377
  });
260
- expect(result.body).toEqual({ id: 21 });
378
+ expect(result.result.body).toEqual({ id: 21 });
261
379
  });
262
380
  it('PUT that returns 400 throws an error', async () => {
263
- const client = mockAgent.get('https://fakestoreapi.com');
264
381
  client
265
382
  .intercept({
266
383
  path: '/products/1',
267
384
  method: 'PUT',
268
385
  })
269
386
  .reply(400, { errorCode: 'err' }, { headers: JSON_HEADERS });
270
- await expect((0, httpClient_1.sendPutBinary)('https://fakestoreapi.com', 'products/1', Buffer.from('text'))).rejects.toThrow('Response status code 400: Bad Request');
387
+ await expect((0, httpClient_1.sendPutBinary)(client, '/products/1', Buffer.from('text'))).rejects.toThrow('Response status code 400');
388
+ });
389
+ it('Throws an error on internal error', async () => {
390
+ expect.assertions(1);
391
+ const query = {
392
+ limit: 3,
393
+ };
394
+ client
395
+ .intercept({
396
+ path: '/products',
397
+ method: 'PUT',
398
+ query,
399
+ })
400
+ .replyWithError(new Error('connection error'));
401
+ await expect((0, httpClient_1.sendPutBinary)(client, '/products', null, {
402
+ query,
403
+ })).rejects.toMatchObject({
404
+ message: 'connection error',
405
+ });
271
406
  });
272
407
  });
273
408
  describe('PATCH', () => {
274
409
  it('PATCH without queryParams', async () => {
275
- const client = mockAgent.get('https://fakestoreapi.com');
276
410
  client
277
411
  .intercept({
278
412
  path: '/products/1',
279
413
  method: 'PATCH',
280
414
  })
281
415
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
282
- const result = await (0, httpClient_1.sendPatch)('https://fakestoreapi.com', 'products/1', mockProduct1_json_1.default);
283
- expect(result.body).toEqual({ id: 21 });
416
+ const result = await (0, httpClient_1.sendPatch)(client, '/products/1', mockProduct1_json_1.default);
417
+ expect(result.result.body).toEqual({ id: 21 });
284
418
  });
285
419
  it('PATCH without body', async () => {
286
- const client = mockAgent.get('https://fakestoreapi.com');
287
420
  client
288
421
  .intercept({
289
422
  path: '/products/1',
290
423
  method: 'PATCH',
291
424
  })
292
425
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
293
- const result = await (0, httpClient_1.sendPatch)('https://fakestoreapi.com', 'products/1', undefined);
294
- expect(result.body).toEqual({ id: 21 });
426
+ const result = await (0, httpClient_1.sendPatch)(client, '/products/1', undefined);
427
+ expect(result.result.body).toEqual({ id: 21 });
295
428
  });
296
429
  it('PATCH with queryParams', async () => {
297
- const client = mockAgent.get('https://fakestoreapi.com');
298
430
  const query = {
299
431
  limit: 3,
300
432
  };
@@ -305,20 +437,37 @@ describe('httpClient', () => {
305
437
  query,
306
438
  })
307
439
  .reply(200, { id: 21 }, { headers: JSON_HEADERS });
308
- const result = await (0, httpClient_1.sendPatch)('https://fakestoreapi.com', 'products/1', mockProduct1_json_1.default, {
440
+ const result = await (0, httpClient_1.sendPatch)(client, '/products/1', mockProduct1_json_1.default, {
309
441
  query,
310
442
  });
311
- expect(result.body).toEqual({ id: 21 });
443
+ expect(result.result.body).toEqual({ id: 21 });
312
444
  });
313
445
  it('PATCH that returns 400 throws an error', async () => {
314
- const client = mockAgent.get('https://fakestoreapi.com');
315
446
  client
316
447
  .intercept({
317
448
  path: '/products/1',
318
449
  method: 'PATCH',
319
450
  })
320
451
  .reply(400, { errorCode: 'err' }, { headers: JSON_HEADERS });
321
- await expect((0, httpClient_1.sendPatch)('https://fakestoreapi.com', 'products/1', mockProduct1_json_1.default)).rejects.toThrow('Response status code 400: Bad Request');
452
+ await expect((0, httpClient_1.sendPatch)(client, '/products/1', mockProduct1_json_1.default)).rejects.toThrow('Response status code 400');
453
+ });
454
+ it('Throws an error on internal error', async () => {
455
+ expect.assertions(1);
456
+ const query = {
457
+ limit: 3,
458
+ };
459
+ client
460
+ .intercept({
461
+ path: '/products',
462
+ method: 'PATCH',
463
+ query,
464
+ })
465
+ .replyWithError(new Error('connection error'));
466
+ await expect((0, httpClient_1.sendPatch)(client, '/products', undefined, {
467
+ query,
468
+ })).rejects.toMatchObject({
469
+ message: 'connection error',
470
+ });
322
471
  });
323
472
  });
324
473
  });
@@ -1 +1 @@
1
- {"version":3,"file":"httpClient.spec.js","sourceRoot":"","sources":["../../../src/http/httpClient.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpClient.spec.js","sourceRoot":"","sources":["../../../src/http/httpClient.spec.ts"],"names":[],"mappings":";;;AACA,mCAA+D;AAE/D,6CAQqB;AACrB,8FAAwD;AACxD,0GAAoE;AAEpE,MAAM,YAAY,GAAG;IACnB,cAAc,EAAE,kBAAkB;CACnC,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,cAAc,EAAE,YAAY;CAC7B,CAAA;AAED,MAAM,OAAO,GAAG,0BAA0B,CAAA;AAE1C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,SAAoB,CAAA;IACxB,IAAI,MAA8B,CAAA;IAClC,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,kBAAS,EAAE,CAAA;QAC3B,SAAS,CAAC,iBAAiB,EAAE,CAAA;QAC7B,IAAA,4BAAmB,EAAC,SAAS,CAAC,CAAA;QAC9B,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAsC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,MAAM,GAAG,IAAA,wBAAW,EAAC,OAAO,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,eAAM,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEnE,IAAI;gBACF,MAAM,IAAA,oBAAO,EAAC,MAAM,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;aAC9D;YAAC,OAAO,GAAG,EAAE;gBACZ,gFAAgF;gBAChF,sDAAsD;gBACtD,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;oBACxB,OAAO,EAAE,wCAAwC;oBACjD,SAAS,EAAE,4BAA4B;oBACvC,OAAO,EAAE;wBACP,OAAO,EAAE,yBAAyB;qBACnC;iBACF,CAAC,CAAA;aACH;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,2BAAY,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEtD,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAO,EAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YAEnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,2BAAY,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAClC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE;gBACvB,OAAO,EAAE,YAAY;aACtB,CAAC,CAAA;YAEJ,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAO,EAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YAEnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;YAE9B,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAO,EAAS,MAAM,EAAE,aAAa,CAAC,CAAA;YAE3D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,iCAAkB,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAE5D,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAO,EAAC,MAAM,EAAE,WAAW,EAAE;gBAChD,KAAK;aACN,CAAC,CAAA;YAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,iCAAkB,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAEhD,MAAM,MAAM,CACV,IAAA,oBAAO,EAAC,MAAM,EAAE,WAAW,EAAE;gBAC3B,KAAK;aACN,CAAC,CACH,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;YAEhC,MAAM,MAAM,CACV,IAAA,oBAAO,EAAC,MAAM,EAAE,WAAW,EAAE;gBAC3B,KAAK;aACN,CAAC,CACH,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,0BAA0B;gBACnC,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,IAAI,EAAE,iBAAiB;wBACvB,UAAU,EAAE,GAAG;qBAChB;iBACF;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;YAChC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAEnB,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAO,EAAC,MAAM,EAAE,WAAW,EAAE;gBAClD,KAAK;gBACL,WAAW,EAAE;oBACX,kBAAkB,EAAE,CAAC,GAAG,CAAC;oBACzB,cAAc,EAAE,KAAK;oBACrB,2BAA2B,EAAE,CAAC;oBAC9B,WAAW,EAAE,CAAC;iBACf;aACF,CAAC,CAAA;YAEF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,QAAQ;aACjB,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEnD,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAU,EAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YAEtD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,QAAQ;gBAChB,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEnD,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAU,EAAC,MAAM,EAAE,WAAW,EAAE;gBACnD,KAAK;aACN,CAAC,CAAA;YAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,QAAQ;gBAChB,KAAK;aACN,CAAC;iBACD,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAEhD,MAAM,MAAM,CACV,IAAA,uBAAU,EAAC,MAAM,EAAE,WAAW,EAAE;gBAC9B,KAAK;aACN,CAAC,CACH,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,MAAM;aACf,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAQ,EAAC,MAAM,EAAE,WAAW,EAAE,2BAAY,CAAC,CAAA;YAEhE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;YACjC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,MAAM;aACf,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAQ,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;YAE7D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,MAAM;gBACd,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAQ,EAAC,MAAM,EAAE,WAAW,EAAE,2BAAY,EAAE;gBAC/D,KAAK;aACN,CAAC,CAAA;YAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,MAAM;aACf,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAE9D,MAAM,MAAM,CAAC,IAAA,qBAAQ,EAAC,MAAM,EAAE,WAAW,EAAE,2BAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACvE,0BAA0B,CAC3B,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,MAAM;gBACd,KAAK;aACN,CAAC;iBACD,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAEhD,MAAM,MAAM,CACV,IAAA,qBAAQ,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;gBACvC,KAAK;aACN,CAAC,CACH,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAO,EAAC,MAAM,EAAE,aAAa,EAAE,2BAAY,CAAC,CAAA;YAEjE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAO,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;YAE9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAO,EAAC,MAAM,EAAE,aAAa,EAAE,2BAAY,EAAE;gBAChE,KAAK;aACN,CAAC,CAAA;YAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAE9D,MAAM,MAAM,CAAC,IAAA,oBAAO,EAAC,MAAM,EAAE,aAAa,EAAE,2BAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACxE,0BAA0B,CAC3B,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAEhD,MAAM,MAAM,CACV,IAAA,oBAAO,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;gBACtC,KAAK;aACN,CAAC,CACH,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YAE9E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7E,KAAK;aACN,CAAC,CAAA;YAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAE9D,MAAM,MAAM,CAAC,IAAA,0BAAa,EAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrF,0BAA0B,CAC3B,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK;aACN,CAAC;iBACD,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAEhD,MAAM,MAAM,CACV,IAAA,0BAAa,EAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE;gBACvC,KAAK;aACN,CAAC,CACH,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,OAAO;aAChB,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAS,EAAC,MAAM,EAAE,aAAa,EAAE,2BAAY,CAAC,CAAA;YAEnE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAClC,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,OAAO;aAChB,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAS,EAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;YAEhE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,OAAO;gBACf,KAAK;aACN,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAEpD,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAS,EAAC,MAAM,EAAE,aAAa,EAAE,2BAAY,EAAE;gBAClE,KAAK;aACN,CAAC,CAAA;YAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,OAAO;aAChB,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;YAE9D,MAAM,MAAM,CAAC,IAAA,sBAAS,EAAC,MAAM,EAAE,aAAa,EAAE,2BAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC1E,0BAA0B,CAC3B,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,CAAC;aACT,CAAA;YAED,MAAM;iBACH,SAAS,CAAC;gBACT,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,OAAO;gBACf,KAAK;aACN,CAAC;iBACD,cAAc,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAEhD,MAAM,MAAM,CACV,IAAA,sBAAS,EAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;gBACxC,KAAK;aACN,CAAC,CACH,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -6,7 +6,6 @@ function copyWithoutUndefined(originalValue) {
6
6
  // @ts-ignore
7
7
  if (originalValue[key] !== undefined) {
8
8
  // @ts-ignore
9
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
10
9
  acc[key] = originalValue[key];
11
10
  }
12
11
  return acc;
@@ -20,7 +19,6 @@ function pick(source, propNames) {
20
19
  // @ts-ignore
21
20
  if (propNames[idx] in source) {
22
21
  // @ts-ignore
23
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
24
22
  result[propNames[idx]] = source[propNames[idx]];
25
23
  }
26
24
  idx += 1;
@@ -35,7 +33,6 @@ function pickWithoutUndefined(source, propNames) {
35
33
  // @ts-ignore
36
34
  if (propNames[idx] in source && source[propNames[idx]] !== undefined) {
37
35
  // @ts-ignore
38
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
39
36
  result[propNames[idx]] = source[propNames[idx]];
40
37
  }
41
38
  idx += 1;
@@ -55,7 +52,7 @@ exports.isEmptyObject = isEmptyObject;
55
52
  function groupBy(inputArray, propName) {
56
53
  return inputArray.reduce((result, entry) => {
57
54
  // @ts-ignore
58
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
55
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
59
56
  const key = entry[propName];
60
57
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
61
58
  if (Object.hasOwnProperty.call(result, key)) {
@@ -1 +1 @@
1
- {"version":3,"file":"objectUtils.js","sourceRoot":"","sources":["../../../src/utils/objectUtils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,oBAAoB,CAQlC,aAAgB;IAChB,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpD,aAAa;QACb,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YACpC,aAAa;YACb,mEAAmE;YACnE,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;SAC9B;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAA6B,CAAqB,CAAA;AACvD,CAAC;AAlBD,oDAkBC;AAED,SAAgB,IAAI,CAClB,MAAS,EACT,SAAuB;IAEvB,MAAM,MAAM,GAAG,EAAO,CAAA;IACtB,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE;QAC7B,aAAa;QACb,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE;YAC5B,aAAa;YACb,mEAAmE;YACnE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;SAChD;QACD,GAAG,IAAI,CAAC,CAAA;KACT;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAhBD,oBAgBC;AAED,SAAgB,oBAAoB,CAClC,MAAS,EACT,SAAuB;IAEvB,MAAM,MAAM,GAAG,EAAO,CAAA;IACtB,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE;QAC7B,aAAa;QACb,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE;YACpE,aAAa;YACb,mEAAmE;YACnE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;SAChD;QACD,GAAG,IAAI,CAAC,CAAA;KACT;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAhBD,oDAgBC;AAED,SAAgB,aAAa,CAAC,MAA+B;IAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACxB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YAClF,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAPD,sCAOC;AAED,SAAgB,OAAO,CAAI,UAAe,EAAE,QAAgB;IAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACzC,aAAa;QACb,8GAA8G;QAC9G,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE3B,iEAAiE;QACjE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC3C,aAAa;YACb,wGAAwG;YACxG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SACxB;aAAM;YACL,aAAa;YACb,sEAAsE;YACtE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;SACtB;QACD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC;AAlBD,0BAkBC"}
1
+ {"version":3,"file":"objectUtils.js","sourceRoot":"","sources":["../../../src/utils/objectUtils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,oBAAoB,CAQlC,aAAgB;IAChB,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpD,aAAa;QACb,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YACpC,aAAa;YACb,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;SAC9B;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAA6B,CAAqB,CAAA;AACvD,CAAC;AAjBD,oDAiBC;AAED,SAAgB,IAAI,CAClB,MAAS,EACT,SAAuB;IAEvB,MAAM,MAAM,GAAG,EAAO,CAAA;IACtB,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE;QAC7B,aAAa;QACb,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE;YAC5B,aAAa;YACb,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;SAChD;QACD,GAAG,IAAI,CAAC,CAAA;KACT;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAfD,oBAeC;AAED,SAAgB,oBAAoB,CAClC,MAAS,EACT,SAAuB;IAEvB,MAAM,MAAM,GAAG,EAAO,CAAA;IACtB,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE;QAC7B,aAAa;QACb,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE;YACpE,aAAa;YACb,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;SAChD;QACD,GAAG,IAAI,CAAC,CAAA;KACT;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAfD,oDAeC;AAED,SAAgB,aAAa,CAAC,MAA+B;IAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACxB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YAClF,OAAO,KAAK,CAAA;SACb;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAPD,sCAOC;AAED,SAAgB,OAAO,CAAI,UAAe,EAAE,QAAgB;IAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACzC,aAAa;QACb,sEAAsE;QACtE,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE3B,iEAAiE;QACjE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YAC3C,aAAa;YACb,wGAAwG;YACxG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SACxB;aAAM;YACL,aAAa;YACb,sEAAsE;YACtE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;SACtB;QACD,OAAO,MAAM,CAAA;IACf,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC;AAlBD,0BAkBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/node-core",
3
- "version": "2.5.2",
3
+ "version": "4.0.0",
4
4
  "author": {
5
5
  "name": "Lokalise",
6
6
  "url": "https://lokalise.com/"
@@ -34,21 +34,22 @@
34
34
  "prepublishOnly": "npm run build"
35
35
  },
36
36
  "dependencies": {
37
- "undici": "^5.17.1"
37
+ "undici": "^5.19.1",
38
+ "undici-retry": "^1.1.0"
38
39
  },
39
40
  "devDependencies": {
40
41
  "@types/jest": "^29.4.0",
41
- "@types/node": "^18.11.18",
42
- "@typescript-eslint/eslint-plugin": "^5.50.0",
43
- "@typescript-eslint/parser": "^5.50.0",
42
+ "@types/node": "^18.13.0",
43
+ "@typescript-eslint/eslint-plugin": "^5.51.0",
44
+ "@typescript-eslint/parser": "^5.51.0",
44
45
  "auto-changelog": "^2.4.0",
45
46
  "eslint": "^8.33.0",
46
47
  "eslint-config-prettier": "^8.6.0",
47
48
  "eslint-plugin-import": "^2.27.5",
48
49
  "eslint-plugin-jest": "^27.2.1",
49
50
  "eslint-plugin-prettier": "^4.2.1",
50
- "jest": "^29.4.1",
51
- "prettier": "^2.8.3",
51
+ "jest": "^29.4.2",
52
+ "prettier": "^2.8.4",
52
53
  "ts-jest": "^29.0.5",
53
54
  "typescript": "4.9.5"
54
55
  }