univapay-node 2.1.1 → 3.0.1
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/cjs/api/RestAPI.d.ts +44 -39
- package/dist/cjs/api/RestAPI.js +136 -220
- package/dist/cjs/api/RestAPI.js.map +1 -1
- package/dist/cjs/api/index.js +1 -1
- package/dist/cjs/api/utils/JWT.js +11 -12
- package/dist/cjs/api/utils/JWT.js.map +1 -1
- package/dist/cjs/api/utils/payload.js +16 -23
- package/dist/cjs/api/utils/payload.js.map +1 -1
- package/dist/cjs/api/utils/userAgent.js +14 -16
- package/dist/cjs/api/utils/userAgent.js.map +1 -1
- package/dist/cjs/common/constants.d.ts +1 -0
- package/dist/cjs/common/constants.js +2 -1
- package/dist/cjs/common/constants.js.map +1 -1
- package/dist/cjs/common/index.js +1 -1
- package/dist/cjs/errors/APIError.d.ts +7 -5
- package/dist/cjs/errors/APIError.js +8 -12
- package/dist/cjs/errors/APIError.js.map +1 -1
- package/dist/cjs/errors/JWTError.js +5 -9
- package/dist/cjs/errors/JWTError.js.map +1 -1
- package/dist/cjs/errors/PathParameterError.js +6 -10
- package/dist/cjs/errors/PathParameterError.js.map +1 -1
- package/dist/cjs/errors/RequestParameterError.js +6 -10
- package/dist/cjs/errors/RequestParameterError.js.map +1 -1
- package/dist/cjs/errors/RequestResponseError.js +32 -48
- package/dist/cjs/errors/RequestResponseError.js.map +1 -1
- package/dist/cjs/errors/TimeoutError.js +7 -11
- package/dist/cjs/errors/TimeoutError.js.map +1 -1
- package/dist/cjs/errors/index.js +1 -1
- package/dist/cjs/errors/parser.js +5 -5
- package/dist/cjs/errors/parser.js.map +1 -1
- package/dist/cjs/index.js +28 -31
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/resources/BankAccounts.d.ts +13 -7
- package/dist/cjs/resources/BankAccounts.js +29 -29
- package/dist/cjs/resources/BankAccounts.js.map +1 -1
- package/dist/cjs/resources/CRUDResource.d.ts +6 -6
- package/dist/cjs/resources/CRUDResource.js +22 -26
- package/dist/cjs/resources/CRUDResource.js.map +1 -1
- package/dist/cjs/resources/Cancels.d.ts +8 -9
- package/dist/cjs/resources/Cancels.js +22 -33
- package/dist/cjs/resources/Cancels.js.map +1 -1
- package/dist/cjs/resources/Captures.d.ts +9 -4
- package/dist/cjs/resources/Captures.js +8 -13
- package/dist/cjs/resources/Captures.js.map +1 -1
- package/dist/cjs/resources/Charges.d.ts +9 -10
- package/dist/cjs/resources/Charges.js +28 -45
- package/dist/cjs/resources/Charges.js.map +1 -1
- package/dist/cjs/resources/CheckoutInfo.d.ts +3 -2
- package/dist/cjs/resources/CheckoutInfo.js +7 -12
- package/dist/cjs/resources/CheckoutInfo.js.map +1 -1
- package/dist/cjs/resources/ECFormLinks.d.ts +3 -2
- package/dist/cjs/resources/ECFormLinks.js +7 -12
- package/dist/cjs/resources/ECFormLinks.js.map +1 -1
- package/dist/cjs/resources/ECForms.d.ts +3 -2
- package/dist/cjs/resources/ECForms.js +8 -13
- package/dist/cjs/resources/ECForms.js.map +1 -1
- package/dist/cjs/resources/ECInfo.d.ts +3 -2
- package/dist/cjs/resources/ECInfo.js +7 -12
- package/dist/cjs/resources/ECInfo.js.map +1 -1
- package/dist/cjs/resources/Emails.d.ts +3 -2
- package/dist/cjs/resources/Emails.js +7 -12
- package/dist/cjs/resources/Emails.js.map +1 -1
- package/dist/cjs/resources/ExchangeRates.d.ts +3 -2
- package/dist/cjs/resources/ExchangeRates.js +7 -12
- package/dist/cjs/resources/ExchangeRates.js.map +1 -1
- package/dist/cjs/resources/Ledgers.d.ts +5 -3
- package/dist/cjs/resources/Ledgers.js +12 -16
- package/dist/cjs/resources/Ledgers.js.map +1 -1
- package/dist/cjs/resources/Merchants.d.ts +3 -2
- package/dist/cjs/resources/Merchants.js +7 -12
- package/dist/cjs/resources/Merchants.js.map +1 -1
- package/dist/cjs/resources/Platforms.d.ts +3 -2
- package/dist/cjs/resources/Platforms.js +8 -12
- package/dist/cjs/resources/Platforms.js.map +1 -1
- package/dist/cjs/resources/Products.d.ts +3 -2
- package/dist/cjs/resources/Products.js +7 -12
- package/dist/cjs/resources/Products.js.map +1 -1
- package/dist/cjs/resources/Refunds.d.ts +10 -10
- package/dist/cjs/resources/Refunds.js +26 -36
- package/dist/cjs/resources/Refunds.js.map +1 -1
- package/dist/cjs/resources/Resource.d.ts +9 -3
- package/dist/cjs/resources/Resource.js +27 -38
- package/dist/cjs/resources/Resource.js.map +1 -1
- package/dist/cjs/resources/Stores.d.ts +11 -6
- package/dist/cjs/resources/Stores.js +24 -25
- package/dist/cjs/resources/Stores.js.map +1 -1
- package/dist/cjs/resources/Subscriptions.d.ts +24 -21
- package/dist/cjs/resources/Subscriptions.js +82 -116
- package/dist/cjs/resources/Subscriptions.js.map +1 -1
- package/dist/cjs/resources/TemporaryTokenAlias.d.ts +8 -6
- package/dist/cjs/resources/TemporaryTokenAlias.js +25 -20
- package/dist/cjs/resources/TemporaryTokenAlias.js.map +1 -1
- package/dist/cjs/resources/TransactionTokens.d.ts +12 -7
- package/dist/cjs/resources/TransactionTokens.js +28 -32
- package/dist/cjs/resources/TransactionTokens.js.map +1 -1
- package/dist/cjs/resources/Transfers.d.ts +7 -4
- package/dist/cjs/resources/Transfers.js +17 -21
- package/dist/cjs/resources/Transfers.js.map +1 -1
- package/dist/cjs/resources/Verification.d.ts +7 -4
- package/dist/cjs/resources/Verification.js +23 -26
- package/dist/cjs/resources/Verification.js.map +1 -1
- package/dist/cjs/resources/WebHooks.d.ts +11 -6
- package/dist/cjs/resources/WebHooks.js +24 -25
- package/dist/cjs/resources/WebHooks.js.map +1 -1
- package/dist/cjs/resources/common/ignoreDescriptor.d.ts +2 -2
- package/dist/cjs/resources/common/ignoreDescriptor.js +18 -25
- package/dist/cjs/resources/common/ignoreDescriptor.js.map +1 -1
- package/dist/cjs/resources/index.js +1 -1
- package/dist/cjs/sdk/PaymentsSDK.js +10 -14
- package/dist/cjs/sdk/PaymentsSDK.js.map +1 -1
- package/dist/cjs/sdk/index.js +1 -1
- package/dist/cjs/sdk/index.js.map +1 -1
- package/dist/cjs/utils/fetch.js +13 -32
- package/dist/cjs/utils/fetch.js.map +1 -1
- package/dist/cjs/utils/index.js +1 -1
- package/dist/cjs/utils/object.js +18 -24
- package/dist/cjs/utils/object.js.map +1 -1
- package/dist/esm/api/RestAPI.d.ts +44 -39
- package/dist/esm/api/RestAPI.js +123 -209
- package/dist/esm/api/RestAPI.js.map +1 -1
- package/dist/esm/api/utils/JWT.js +7 -8
- package/dist/esm/api/utils/JWT.js.map +1 -1
- package/dist/esm/api/utils/payload.js +13 -20
- package/dist/esm/api/utils/payload.js.map +1 -1
- package/dist/esm/api/utils/userAgent.js +11 -13
- package/dist/esm/api/utils/userAgent.js.map +1 -1
- package/dist/esm/common/constants.d.ts +1 -0
- package/dist/esm/common/constants.js +9 -8
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/errors/APIError.d.ts +7 -5
- package/dist/esm/errors/APIError.js +8 -13
- package/dist/esm/errors/APIError.js.map +1 -1
- package/dist/esm/errors/JWTError.js +5 -10
- package/dist/esm/errors/JWTError.js.map +1 -1
- package/dist/esm/errors/PathParameterError.js +6 -11
- package/dist/esm/errors/PathParameterError.js.map +1 -1
- package/dist/esm/errors/RequestParameterError.js +6 -11
- package/dist/esm/errors/RequestParameterError.js.map +1 -1
- package/dist/esm/errors/RequestResponseError.js +29 -49
- package/dist/esm/errors/RequestResponseError.js.map +1 -1
- package/dist/esm/errors/TimeoutError.js +7 -12
- package/dist/esm/errors/TimeoutError.js.map +1 -1
- package/dist/esm/errors/parser.js +1 -1
- package/dist/esm/errors/parser.js.map +1 -1
- package/dist/esm/index.js +26 -31
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/resources/BankAccounts.d.ts +13 -7
- package/dist/esm/resources/BankAccounts.js +27 -28
- package/dist/esm/resources/BankAccounts.js.map +1 -1
- package/dist/esm/resources/CRUDResource.d.ts +6 -6
- package/dist/esm/resources/CRUDResource.js +20 -25
- package/dist/esm/resources/CRUDResource.js.map +1 -1
- package/dist/esm/resources/Cancels.d.ts +8 -9
- package/dist/esm/resources/Cancels.js +21 -33
- package/dist/esm/resources/Cancels.js.map +1 -1
- package/dist/esm/resources/Captures.d.ts +9 -4
- package/dist/esm/resources/Captures.js +7 -13
- package/dist/esm/resources/Captures.js.map +1 -1
- package/dist/esm/resources/Charges.d.ts +9 -10
- package/dist/esm/resources/Charges.js +25 -43
- package/dist/esm/resources/Charges.js.map +1 -1
- package/dist/esm/resources/CheckoutInfo.d.ts +3 -2
- package/dist/esm/resources/CheckoutInfo.js +5 -11
- package/dist/esm/resources/CheckoutInfo.js.map +1 -1
- package/dist/esm/resources/ECFormLinks.d.ts +3 -2
- package/dist/esm/resources/ECFormLinks.js +6 -12
- package/dist/esm/resources/ECFormLinks.js.map +1 -1
- package/dist/esm/resources/ECForms.d.ts +3 -2
- package/dist/esm/resources/ECForms.js +7 -13
- package/dist/esm/resources/ECForms.js.map +1 -1
- package/dist/esm/resources/ECInfo.d.ts +3 -2
- package/dist/esm/resources/ECInfo.js +6 -12
- package/dist/esm/resources/ECInfo.js.map +1 -1
- package/dist/esm/resources/Emails.d.ts +3 -2
- package/dist/esm/resources/Emails.js +6 -12
- package/dist/esm/resources/Emails.js.map +1 -1
- package/dist/esm/resources/ExchangeRates.d.ts +3 -2
- package/dist/esm/resources/ExchangeRates.js +5 -11
- package/dist/esm/resources/ExchangeRates.js.map +1 -1
- package/dist/esm/resources/Ledgers.d.ts +5 -3
- package/dist/esm/resources/Ledgers.js +10 -15
- package/dist/esm/resources/Ledgers.js.map +1 -1
- package/dist/esm/resources/Merchants.d.ts +3 -2
- package/dist/esm/resources/Merchants.js +5 -11
- package/dist/esm/resources/Merchants.js.map +1 -1
- package/dist/esm/resources/Platforms.d.ts +3 -2
- package/dist/esm/resources/Platforms.js +6 -11
- package/dist/esm/resources/Platforms.js.map +1 -1
- package/dist/esm/resources/Products.d.ts +3 -2
- package/dist/esm/resources/Products.js +6 -12
- package/dist/esm/resources/Products.js.map +1 -1
- package/dist/esm/resources/Refunds.d.ts +10 -10
- package/dist/esm/resources/Refunds.js +25 -36
- package/dist/esm/resources/Refunds.js.map +1 -1
- package/dist/esm/resources/Resource.d.ts +9 -3
- package/dist/esm/resources/Resource.js +23 -35
- package/dist/esm/resources/Resource.js.map +1 -1
- package/dist/esm/resources/Stores.d.ts +11 -6
- package/dist/esm/resources/Stores.js +23 -25
- package/dist/esm/resources/Stores.js.map +1 -1
- package/dist/esm/resources/Subscriptions.d.ts +24 -21
- package/dist/esm/resources/Subscriptions.js +78 -114
- package/dist/esm/resources/Subscriptions.js.map +1 -1
- package/dist/esm/resources/TemporaryTokenAlias.d.ts +8 -6
- package/dist/esm/resources/TemporaryTokenAlias.js +23 -19
- package/dist/esm/resources/TemporaryTokenAlias.js.map +1 -1
- package/dist/esm/resources/TransactionTokens.d.ts +12 -7
- package/dist/esm/resources/TransactionTokens.js +26 -31
- package/dist/esm/resources/TransactionTokens.js.map +1 -1
- package/dist/esm/resources/Transfers.d.ts +7 -4
- package/dist/esm/resources/Transfers.js +15 -20
- package/dist/esm/resources/Transfers.js.map +1 -1
- package/dist/esm/resources/Verification.d.ts +7 -4
- package/dist/esm/resources/Verification.js +21 -25
- package/dist/esm/resources/Verification.js.map +1 -1
- package/dist/esm/resources/WebHooks.d.ts +11 -6
- package/dist/esm/resources/WebHooks.js +23 -25
- package/dist/esm/resources/WebHooks.js.map +1 -1
- package/dist/esm/resources/common/ignoreDescriptor.d.ts +2 -2
- package/dist/esm/resources/common/ignoreDescriptor.js +17 -24
- package/dist/esm/resources/common/ignoreDescriptor.js.map +1 -1
- package/dist/esm/sdk/PaymentsSDK.js +8 -13
- package/dist/esm/sdk/PaymentsSDK.js.map +1 -1
- package/dist/esm/utils/fetch.js +10 -29
- package/dist/esm/utils/fetch.js.map +1 -1
- package/dist/esm/utils/object.js +15 -22
- package/dist/esm/utils/object.js.map +1 -1
- package/package.json +7 -7
|
@@ -6,6 +6,28 @@ import { EventEmitter } from "events";
|
|
|
6
6
|
import { RequestErrorCode, ResponseErrorCode } from "../errors/APIError.js";
|
|
7
7
|
import { ProcessingMode } from "../resources/common/enums.js";
|
|
8
8
|
import { JWTPayload } from "./utils/JWT.js";
|
|
9
|
+
export declare type PollParams<Response> = {
|
|
10
|
+
/**
|
|
11
|
+
* Condition for which the response is considered to be successful and stop the polling
|
|
12
|
+
*/
|
|
13
|
+
successCondition: (response: Response) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Condition to cancel the polling without triggering error
|
|
16
|
+
*/
|
|
17
|
+
cancelCondition?: (response: Response) => boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Time after which a TimeoutError will be triggered and the poll will be canceled
|
|
20
|
+
*/
|
|
21
|
+
timeout?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Interval between polls
|
|
24
|
+
*/
|
|
25
|
+
interval?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Callback to be triggered at each poll iteration
|
|
28
|
+
*/
|
|
29
|
+
iterationCallback?: (response: Response) => void;
|
|
30
|
+
};
|
|
9
31
|
export declare enum HTTPMethod {
|
|
10
32
|
GET = "GET",
|
|
11
33
|
POST = "POST",
|
|
@@ -45,9 +67,6 @@ export interface ErrorResponse {
|
|
|
45
67
|
code: ResponseErrorCode | RequestErrorCode;
|
|
46
68
|
errors: (SubError | ValidationError)[];
|
|
47
69
|
}
|
|
48
|
-
export declare type ResponseCallback<A> = (response: A | Error) => void;
|
|
49
|
-
export declare type PromiseResolve<A> = (value?: A | PromiseLike<A>) => void;
|
|
50
|
-
export declare type PromiseReject = (reason?: any) => void;
|
|
51
70
|
export interface AuthParams {
|
|
52
71
|
jwt?: string;
|
|
53
72
|
secret?: string;
|
|
@@ -56,14 +75,28 @@ export interface AuthParams {
|
|
|
56
75
|
authToken?: string;
|
|
57
76
|
appId?: string;
|
|
58
77
|
}
|
|
59
|
-
export
|
|
78
|
+
export declare type PollData = {
|
|
60
79
|
polling?: boolean;
|
|
61
|
-
}
|
|
62
|
-
export declare type
|
|
80
|
+
};
|
|
81
|
+
export declare type PollExecute<A> = () => Promise<A>;
|
|
63
82
|
export declare type SendData<Data> = Data;
|
|
83
|
+
export declare type ApiSendOptions = {
|
|
84
|
+
/**
|
|
85
|
+
* Validate the JWT before calling the route and adds the authorization header to the request.
|
|
86
|
+
*/
|
|
87
|
+
requireAuth?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Add the custom type to the header. Defaults to `application/json`
|
|
90
|
+
*/
|
|
91
|
+
acceptType?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Custom formatter to format the request object to the API (skipped for blobs)
|
|
94
|
+
*/
|
|
95
|
+
keyFormatter?: (key: string) => string;
|
|
96
|
+
};
|
|
64
97
|
export declare class RestAPI extends EventEmitter {
|
|
65
98
|
endpoint: string;
|
|
66
|
-
jwt: JWTPayload<
|
|
99
|
+
jwt: JWTPayload<unknown>;
|
|
67
100
|
origin: string;
|
|
68
101
|
secret: string;
|
|
69
102
|
/**
|
|
@@ -82,39 +115,11 @@ export declare class RestAPI extends EventEmitter {
|
|
|
82
115
|
/**
|
|
83
116
|
* @internal
|
|
84
117
|
*/
|
|
85
|
-
send<ResponseBody, Data = unknown>(method: HTTPMethod, uri: string, data?: SendData<Data>, auth?: AuthParams,
|
|
86
|
-
protected getHeaders<Data
|
|
118
|
+
send<ResponseBody, Data = unknown>(method: HTTPMethod, uri: string, data?: SendData<Data>, auth?: AuthParams, options?: ApiSendOptions): Promise<ResponseBody | string | Blob | FormData>;
|
|
119
|
+
protected getHeaders<Data = unknown>(data: SendData<Data>, auth: AuthParams, payload: boolean, acceptType?: string): Headers;
|
|
87
120
|
/**
|
|
88
121
|
* @internal
|
|
89
122
|
*/
|
|
90
|
-
longPolling<Response>(
|
|
91
|
-
|
|
92
|
-
* API call to be repeated
|
|
93
|
-
*/
|
|
94
|
-
promise: PromiseCreator<Response>,
|
|
95
|
-
/**
|
|
96
|
-
* Condition for which the response is considered to be successful and stop the polling
|
|
97
|
-
*/
|
|
98
|
-
successCondition: (response: Response) => boolean,
|
|
99
|
-
/**
|
|
100
|
-
* Condition to cancel the polling without triggering error
|
|
101
|
-
*/
|
|
102
|
-
cancelCondition?: (response: Response) => boolean,
|
|
103
|
-
/**
|
|
104
|
-
* Callback to be triggered at the end of the long polling
|
|
105
|
-
*/
|
|
106
|
-
callback?: ResponseCallback<Response>,
|
|
107
|
-
/**
|
|
108
|
-
* Time after which a TimeoutError will be triggered and the poll will be canceled
|
|
109
|
-
*/
|
|
110
|
-
timeout?: number,
|
|
111
|
-
/**
|
|
112
|
-
* Interval between polls
|
|
113
|
-
*/
|
|
114
|
-
interval?: number,
|
|
115
|
-
/**
|
|
116
|
-
* Callback to be triggered at each poll iteration
|
|
117
|
-
*/
|
|
118
|
-
iterationCallback?: (response: Response) => void): Promise<Response>;
|
|
119
|
-
ping(callback?: ResponseCallback<void>): Promise<void>;
|
|
123
|
+
longPolling<Response>(execute: PollExecute<Response>, pollParams: PollParams<Response>): Promise<Response>;
|
|
124
|
+
ping(): Promise<void>;
|
|
120
125
|
}
|
package/dist/cjs/api/RestAPI.js
CHANGED
|
@@ -4,21 +4,21 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.RestAPI = exports.HTTPMethod = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
8
|
+
const json_bigint_1 = require("@apimatic/json-bigint");
|
|
9
|
+
const events_1 = require("events");
|
|
10
|
+
const p_timeout_1 = tslib_1.__importDefault(require("p-timeout"));
|
|
11
|
+
const query_string_1 = require("query-string");
|
|
12
|
+
const constants_js_1 = require("../common/constants.js");
|
|
13
|
+
const APIError_js_1 = require("../errors/APIError.js");
|
|
14
|
+
const parser_js_1 = require("../errors/parser.js");
|
|
15
|
+
const RequestResponseError_js_1 = require("../errors/RequestResponseError.js");
|
|
16
|
+
const TimeoutError_js_1 = require("../errors/TimeoutError.js");
|
|
17
|
+
const fetch_js_1 = require("../utils/fetch.js");
|
|
18
|
+
const object_js_1 = require("../utils/object.js");
|
|
19
|
+
const JWT_js_1 = require("./utils/JWT.js");
|
|
20
|
+
const payload_js_1 = require("./utils/payload.js");
|
|
21
|
+
const userAgent_js_1 = require("./utils/userAgent.js");
|
|
22
22
|
var HTTPMethod;
|
|
23
23
|
(function (HTTPMethod) {
|
|
24
24
|
HTTPMethod["GET"] = "GET";
|
|
@@ -29,144 +29,103 @@ var HTTPMethod;
|
|
|
29
29
|
HTTPMethod["OPTION"] = "OPTION";
|
|
30
30
|
HTTPMethod["HEAD"] = "HEAD";
|
|
31
31
|
})(HTTPMethod = exports.HTTPMethod || (exports.HTTPMethod = {}));
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
? data
|
|
36
|
-
: (0,
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
const getRequestBody = (data, keyFormatter = object_js_1.toSnakeCase) => (0, object_js_1.isBlob)(data)
|
|
33
|
+
? data
|
|
34
|
+
: (0, payload_js_1.containsBinaryData)(data)
|
|
35
|
+
? (0, payload_js_1.objectToFormData)(data, keyFormatter, ["metadata"])
|
|
36
|
+
: (0, json_bigint_1.stringify)((0, object_js_1.transformKeys)(data, keyFormatter, ["metadata"]));
|
|
37
|
+
const stringifyParams = (data) => {
|
|
38
|
+
const query = (0, query_string_1.stringify)((0, object_js_1.transformKeys)(data, object_js_1.toSnakeCase), { arrayFormat: "bracket" });
|
|
39
|
+
return query ? `?${query}` : "";
|
|
39
40
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
const execRequest = async (execute) => {
|
|
42
|
+
try {
|
|
43
|
+
const response = await execute();
|
|
44
|
+
return response;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const err = error instanceof TimeoutError_js_1.TimeoutError || error instanceof RequestResponseError_js_1.ResponseError ? error : (0, parser_js_1.fromError)(error);
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
43
50
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
response = _a.sent();
|
|
53
|
-
if (typeof callback === "function") {
|
|
54
|
-
callback(response);
|
|
55
|
-
}
|
|
56
|
-
return [2 /*return*/, response];
|
|
57
|
-
case 2:
|
|
58
|
-
error_1 = _a.sent();
|
|
59
|
-
err = error_1 instanceof TimeoutError_js_1.TimeoutError ? error_1 : (0, parser_js_1.fromError)(error_1);
|
|
60
|
-
if (typeof callback === "function") {
|
|
61
|
-
callback(err);
|
|
62
|
-
}
|
|
63
|
-
throw err;
|
|
64
|
-
case 3: return [2 /*return*/];
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}); };
|
|
68
|
-
var RestAPI = /** @class */ (function (_super) {
|
|
69
|
-
tslib_1.__extends(RestAPI, _super);
|
|
70
|
-
function RestAPI(options) {
|
|
71
|
-
if (options === void 0) { options = {}; }
|
|
72
|
-
var _this = _super.call(this) || this;
|
|
73
|
-
_this._jwtRaw = null;
|
|
74
|
-
_this.handleUpdateJWT = function () { return undefined; };
|
|
75
|
-
_this.endpoint = options.endpoint || process.env[constants_js_1.ENV_KEY_ENDPOINT] || constants_js_1.DEFAULT_ENDPOINT;
|
|
76
|
-
_this.origin = options.origin || _this.origin;
|
|
77
|
-
_this.jwtRaw = options.jwt || process.env[constants_js_1.ENV_KEY_APPLICATION_JWT];
|
|
51
|
+
class RestAPI extends events_1.EventEmitter {
|
|
52
|
+
constructor(options = {}) {
|
|
53
|
+
super();
|
|
54
|
+
this._jwtRaw = null;
|
|
55
|
+
this.handleUpdateJWT = () => undefined;
|
|
56
|
+
this.endpoint = options.endpoint || process.env[constants_js_1.ENV_KEY_ENDPOINT] || constants_js_1.DEFAULT_ENDPOINT;
|
|
57
|
+
this.origin = options.origin || this.origin;
|
|
58
|
+
this.jwtRaw = options.jwt || process.env[constants_js_1.ENV_KEY_APPLICATION_JWT];
|
|
78
59
|
if (options.handleUpdateJWT && typeof options.handleUpdateJWT === "function") {
|
|
79
|
-
|
|
60
|
+
this.handleUpdateJWT = options.handleUpdateJWT;
|
|
80
61
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
62
|
+
this.appId = options.appId || process.env[constants_js_1.ENV_KEY_APP_ID];
|
|
63
|
+
this.secret = options.secret || process.env[constants_js_1.ENV_KEY_SECRET];
|
|
64
|
+
this.authToken = options.authToken;
|
|
65
|
+
}
|
|
66
|
+
set jwtRaw(jwtRaw) {
|
|
67
|
+
this.jwt = (0, JWT_js_1.parseJWT)(jwtRaw);
|
|
68
|
+
this._jwtRaw = jwtRaw;
|
|
69
|
+
}
|
|
70
|
+
get jwtRaw() {
|
|
71
|
+
return this._jwtRaw;
|
|
85
72
|
}
|
|
86
|
-
Object.defineProperty(RestAPI.prototype, "jwtRaw", {
|
|
87
|
-
get: function () {
|
|
88
|
-
return this._jwtRaw;
|
|
89
|
-
},
|
|
90
|
-
set: function (jwtRaw) {
|
|
91
|
-
this.jwt = (0, JWT_js_1.parseJWT)(jwtRaw);
|
|
92
|
-
this._jwtRaw = jwtRaw;
|
|
93
|
-
},
|
|
94
|
-
enumerable: false,
|
|
95
|
-
configurable: true
|
|
96
|
-
});
|
|
97
73
|
/**
|
|
98
74
|
* @internal
|
|
99
75
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
timestampUTC = Math.round(dateNow.getTime() / 1000);
|
|
109
|
-
if (requireAuth && this._jwtRaw && this.jwt.exp < timestampUTC) {
|
|
110
|
-
throw new RequestResponseError_js_1.RequestError({
|
|
111
|
-
code: APIError_js_1.ResponseErrorCode.ExpiredLoginToken,
|
|
112
|
-
errors: [],
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
payload = [HTTPMethod.GET, HTTPMethod.DELETE].includes(method) === false;
|
|
116
|
-
params = {
|
|
117
|
-
headers: this.getHeaders(data, auth, payload, acceptType),
|
|
118
|
-
method: method,
|
|
119
|
-
};
|
|
120
|
-
request = new Request("".concat(/^https?:\/\//.test(uri) ? uri : "".concat(this.endpoint).concat(uri)).concat(payload ? "" : stringifyParams(data)), payload ? tslib_1.__assign(tslib_1.__assign({}, params), { body: getRequestBody(data, keyFormatter) }) : params);
|
|
121
|
-
this.emit("request", request);
|
|
122
|
-
return [2 /*return*/, execRequest(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
123
|
-
var response, jwt, noContentStatus, contentType;
|
|
124
|
-
return tslib_1.__generator(this, function (_a) {
|
|
125
|
-
switch (_a.label) {
|
|
126
|
-
case 0: return [4 /*yield*/, fetch(request)];
|
|
127
|
-
case 1:
|
|
128
|
-
response = _a.sent();
|
|
129
|
-
this.emit("response", response);
|
|
130
|
-
jwt = (0, JWT_js_1.extractJWT)(response);
|
|
131
|
-
if (jwt) {
|
|
132
|
-
this.jwtRaw = jwt;
|
|
133
|
-
this.handleUpdateJWT(jwt);
|
|
134
|
-
}
|
|
135
|
-
return [4 /*yield*/, (0, fetch_js_1.checkStatus)(response)];
|
|
136
|
-
case 2:
|
|
137
|
-
_a.sent();
|
|
138
|
-
noContentStatus = 204;
|
|
139
|
-
if (response.status === noContentStatus) {
|
|
140
|
-
return [2 /*return*/, ""];
|
|
141
|
-
}
|
|
142
|
-
contentType = response.headers.get("content-type");
|
|
143
|
-
if (contentType === "application/json") {
|
|
144
|
-
return [2 /*return*/, (0, fetch_js_1.parseJSON)(response, ["metadata"])];
|
|
145
|
-
}
|
|
146
|
-
else if (contentType) {
|
|
147
|
-
if (contentType.indexOf("text/") === 0) {
|
|
148
|
-
return [2 /*return*/, response.text()];
|
|
149
|
-
}
|
|
150
|
-
else if (contentType.indexOf("multipart/") === 0) {
|
|
151
|
-
return [2 /*return*/, response.formData()];
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return [2 /*return*/, response.blob()];
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
}); }, callback)];
|
|
76
|
+
async send(method, uri, data, auth, options = {}) {
|
|
77
|
+
const { requireAuth = true, acceptType, keyFormatter = object_js_1.toSnakeCase } = options;
|
|
78
|
+
const dateNow = new Date();
|
|
79
|
+
const timestampUTC = Math.round(dateNow.getTime() / 1000);
|
|
80
|
+
if (requireAuth && this._jwtRaw && this.jwt.exp < timestampUTC) {
|
|
81
|
+
throw new RequestResponseError_js_1.RequestError({
|
|
82
|
+
code: APIError_js_1.ResponseErrorCode.ExpiredLoginToken,
|
|
83
|
+
errors: [],
|
|
158
84
|
});
|
|
85
|
+
}
|
|
86
|
+
const payload = [HTTPMethod.GET, HTTPMethod.DELETE].includes(method) === false;
|
|
87
|
+
const params = {
|
|
88
|
+
headers: this.getHeaders(data, auth, payload, acceptType),
|
|
89
|
+
method,
|
|
90
|
+
};
|
|
91
|
+
const request = new Request(`${/^https?:\/\//.test(uri) ? uri : `${this.endpoint}${uri}`}${payload ? "" : stringifyParams(data)}`, payload ? { ...params, body: getRequestBody(data, keyFormatter) } : params);
|
|
92
|
+
this.emit("request", request);
|
|
93
|
+
return execRequest(async () => {
|
|
94
|
+
const response = await fetch(request);
|
|
95
|
+
this.emit("response", response);
|
|
96
|
+
const jwt = (0, JWT_js_1.extractJWT)(response);
|
|
97
|
+
if (jwt) {
|
|
98
|
+
this.jwtRaw = jwt;
|
|
99
|
+
this.handleUpdateJWT(jwt);
|
|
100
|
+
}
|
|
101
|
+
await (0, fetch_js_1.checkStatus)(response);
|
|
102
|
+
const noContentStatus = 204;
|
|
103
|
+
if (response.status === noContentStatus) {
|
|
104
|
+
return "";
|
|
105
|
+
}
|
|
106
|
+
const contentType = response.headers.get("content-type");
|
|
107
|
+
if (contentType === "application/json") {
|
|
108
|
+
return (0, fetch_js_1.parseJSON)(response, ["metadata"]);
|
|
109
|
+
}
|
|
110
|
+
else if (contentType) {
|
|
111
|
+
if (contentType.indexOf("text/") === 0) {
|
|
112
|
+
return response.text();
|
|
113
|
+
}
|
|
114
|
+
else if (contentType.indexOf("multipart/") === 0) {
|
|
115
|
+
return response.formData();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return response.blob();
|
|
159
119
|
});
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
var isFormData = (0, payload_js_1.containsBinaryData)(data);
|
|
120
|
+
}
|
|
121
|
+
getHeaders(data, auth, payload, acceptType = "application/json") {
|
|
122
|
+
const headers = new Headers();
|
|
123
|
+
const isFormData = (0, payload_js_1.containsBinaryData)(data);
|
|
165
124
|
headers.append("Accept", acceptType);
|
|
166
125
|
if (!isFormData && payload) {
|
|
167
126
|
headers.append("Content-Type", "application/json");
|
|
168
127
|
}
|
|
169
|
-
|
|
128
|
+
const { origin = this.origin, idempotentKey = null, authToken = this.authToken, appId = this.appId, secret = this.secret, jwt = this.jwtRaw, } = auth || {};
|
|
170
129
|
headers.append("User-Agent", (0, userAgent_js_1.userAgent)());
|
|
171
130
|
if (origin) {
|
|
172
131
|
headers.append("Origin", origin);
|
|
@@ -175,101 +134,58 @@ var RestAPI = /** @class */ (function (_super) {
|
|
|
175
134
|
headers.append(constants_js_1.IDEMPOTENCY_KEY_HEADER, idempotentKey);
|
|
176
135
|
}
|
|
177
136
|
if (authToken) {
|
|
178
|
-
headers.append("Authorization",
|
|
137
|
+
headers.append("Authorization", `Token ${authToken}`);
|
|
179
138
|
}
|
|
180
139
|
else if (appId) {
|
|
181
|
-
headers.append("Authorization",
|
|
140
|
+
headers.append("Authorization", `ApplicationToken ${appId}|${secret || ""}`);
|
|
182
141
|
}
|
|
183
142
|
else if (jwt) {
|
|
184
143
|
if (secret) {
|
|
185
|
-
headers.append("Authorization",
|
|
144
|
+
headers.append("Authorization", `Bearer ${secret}.${jwt}`);
|
|
186
145
|
}
|
|
187
146
|
else {
|
|
188
|
-
headers.append("Authorization",
|
|
147
|
+
headers.append("Authorization", `Bearer ${jwt}`);
|
|
189
148
|
}
|
|
190
149
|
}
|
|
191
150
|
return headers;
|
|
192
|
-
}
|
|
151
|
+
}
|
|
193
152
|
/**
|
|
194
153
|
* @internal
|
|
195
154
|
*/
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Time after which a TimeoutError will be triggered and the poll will be canceled
|
|
215
|
-
*/
|
|
216
|
-
timeout,
|
|
217
|
-
/**
|
|
218
|
-
* Interval between polls
|
|
219
|
-
*/
|
|
220
|
-
interval,
|
|
221
|
-
/**
|
|
222
|
-
* Callback to be triggered at each poll iteration
|
|
223
|
-
*/
|
|
224
|
-
iterationCallback) {
|
|
225
|
-
if (timeout === void 0) { timeout = constants_js_1.POLLING_TIMEOUT; }
|
|
226
|
-
if (interval === void 0) { interval = constants_js_1.POLLING_INTERVAL; }
|
|
227
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
228
|
-
var _this = this;
|
|
229
|
-
return tslib_1.__generator(this, function (_a) {
|
|
230
|
-
return [2 /*return*/, execRequest(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
231
|
-
var repeater;
|
|
232
|
-
var _this = this;
|
|
233
|
-
return tslib_1.__generator(this, function (_a) {
|
|
234
|
-
repeater = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
235
|
-
var result;
|
|
236
|
-
return tslib_1.__generator(this, function (_a) {
|
|
237
|
-
switch (_a.label) {
|
|
238
|
-
case 0: return [4 /*yield*/, promise()];
|
|
239
|
-
case 1:
|
|
240
|
-
result = _a.sent();
|
|
241
|
-
iterationCallback === null || iterationCallback === void 0 ? void 0 : iterationCallback(result);
|
|
242
|
-
if (cancelCondition === null || cancelCondition === void 0 ? void 0 : cancelCondition(result)) {
|
|
243
|
-
return [2 /*return*/, null];
|
|
244
|
-
}
|
|
245
|
-
if (!!successCondition(result)) return [3 /*break*/, 3];
|
|
246
|
-
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, interval); })];
|
|
247
|
-
case 2:
|
|
248
|
-
_a.sent(); // sleep to avoid firing requests too fast
|
|
249
|
-
return [2 /*return*/, repeater()];
|
|
250
|
-
case 3: return [2 /*return*/, result];
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
}); };
|
|
254
|
-
return [2 /*return*/, (0, p_timeout_1.default)(repeater(), timeout, new TimeoutError_js_1.TimeoutError(timeout))];
|
|
255
|
-
});
|
|
256
|
-
}); }, callback)];
|
|
257
|
-
});
|
|
258
|
-
});
|
|
259
|
-
};
|
|
260
|
-
RestAPI.prototype.ping = function (callback) {
|
|
261
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
262
|
-
return tslib_1.__generator(this, function (_a) {
|
|
263
|
-
switch (_a.label) {
|
|
264
|
-
case 0: return [4 /*yield*/, this.send(HTTPMethod.GET, "/heartbeat", null, null, callback, false)];
|
|
265
|
-
case 1:
|
|
266
|
-
_a.sent();
|
|
267
|
-
return [2 /*return*/];
|
|
155
|
+
async longPolling(execute, pollParams) {
|
|
156
|
+
const { successCondition, cancelCondition, iterationCallback, timeout = constants_js_1.POLLING_TIMEOUT, interval = constants_js_1.POLLING_INTERVAL, } = pollParams;
|
|
157
|
+
return execRequest(async () => {
|
|
158
|
+
let internalErrorCount = 0;
|
|
159
|
+
const sleepInterval = () => new Promise((resolve) => setTimeout(resolve, interval));
|
|
160
|
+
const repeater = async () => {
|
|
161
|
+
try {
|
|
162
|
+
const result = await execute();
|
|
163
|
+
iterationCallback?.(result);
|
|
164
|
+
if (cancelCondition?.(result)) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
if (!successCondition(result)) {
|
|
168
|
+
await sleepInterval();
|
|
169
|
+
return repeater();
|
|
170
|
+
}
|
|
171
|
+
return result;
|
|
268
172
|
}
|
|
269
|
-
|
|
173
|
+
catch (error) {
|
|
174
|
+
// Use retry mechanism for 500 as internal server error on API side do not always mean failure
|
|
175
|
+
if (error.errorResponse?.httpCode !== 500 || internalErrorCount >= constants_js_1.MAX_INTERNAL_ERROR_RETRY) {
|
|
176
|
+
throw error;
|
|
177
|
+
}
|
|
178
|
+
internalErrorCount++;
|
|
179
|
+
await sleepInterval();
|
|
180
|
+
return repeater();
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
return (0, p_timeout_1.default)(repeater(), timeout, new TimeoutError_js_1.TimeoutError(timeout));
|
|
270
184
|
});
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
|
|
185
|
+
}
|
|
186
|
+
async ping() {
|
|
187
|
+
await this.send(HTTPMethod.GET, "/heartbeat", null, null, { requireAuth: false });
|
|
188
|
+
}
|
|
189
|
+
}
|
|
274
190
|
exports.RestAPI = RestAPI;
|
|
275
191
|
//# sourceMappingURL=RestAPI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestAPI.js","sourceRoot":"","sources":["../../../src/api/RestAPI.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"RestAPI.js","sourceRoot":"","sources":["../../../src/api/RestAPI.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/api/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./RestAPI.js"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./utils/JWT.js"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./utils/payload.js"), exports);
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractJWT = exports.parseJWT = void 0;
|
|
4
|
-
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
7
7
|
* @module Utils
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function parseJWT(jwt, keepKeys) {
|
|
13
|
-
if (keepKeys === void 0) { keepKeys = false; }
|
|
9
|
+
const jwt_decode_1 = tslib_1.__importDefault(require("jwt-decode"));
|
|
10
|
+
const JWTError_js_1 = require("../../errors/JWTError.js");
|
|
11
|
+
const object_js_1 = require("../../utils/object.js");
|
|
12
|
+
function parseJWT(jwt, keepKeys = false) {
|
|
14
13
|
if (!jwt) {
|
|
15
14
|
return null;
|
|
16
15
|
}
|
|
@@ -18,25 +17,25 @@ function parseJWT(jwt, keepKeys) {
|
|
|
18
17
|
throw new JWTError_js_1.JWTError();
|
|
19
18
|
}
|
|
20
19
|
try {
|
|
21
|
-
|
|
20
|
+
const decoded = (0, jwt_decode_1.default)(jwt);
|
|
22
21
|
return keepKeys || typeof decoded === "string" ? decoded : (0, object_js_1.transformKeys)(decoded, object_js_1.toCamelCase);
|
|
23
22
|
}
|
|
24
|
-
catch
|
|
23
|
+
catch {
|
|
25
24
|
throw new JWTError_js_1.JWTError();
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
exports.parseJWT = parseJWT;
|
|
29
|
-
|
|
28
|
+
const BearerRegexp = /^Bearer (.*)$/i;
|
|
30
29
|
/**
|
|
31
30
|
* @internal
|
|
32
31
|
*/
|
|
33
32
|
function extractJWT(response) {
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
const headerNames = ["authorization", "x-amzn-remapped-authorization", "X-REFRESH-AUTHORIZATION"];
|
|
34
|
+
const header = headerNames.reduce((acc, name) => response.headers.get(name) || acc, null);
|
|
36
35
|
if (header === null) {
|
|
37
36
|
return null;
|
|
38
37
|
}
|
|
39
|
-
|
|
38
|
+
const matches = header.match(BearerRegexp);
|
|
40
39
|
return matches === null ? null : matches[1];
|
|
41
40
|
}
|
|
42
41
|
exports.extractJWT = extractJWT;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JWT.js","sourceRoot":"","sources":["../../../../src/api/utils/JWT.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"JWT.js","sourceRoot":"","sources":["../../../../src/api/utils/JWT.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,oEAAgC;AAEhC,0DAAoD;AACpD,qDAAmE;AAcnE,SAAgB,QAAQ,CAAU,GAAW,EAAE,QAAQ,GAAG,KAAK;IAC3D,IAAI,CAAC,GAAG,EAAE;QACN,OAAO,IAAI,CAAC;KACf;IAED,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,MAAM,IAAI,sBAAQ,EAAE,CAAC;KACxB;IAED,IAAI;QACA,MAAM,OAAO,GAAG,IAAA,oBAAM,EAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,yBAAa,EAAC,OAAO,EAAE,uBAAW,CAAC,CAAC;KAClG;IAAC,MAAM;QACJ,MAAM,IAAI,sBAAQ,EAAE,CAAC;KACxB;AACL,CAAC;AAfD,4BAeC;AAED,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAEtC;;GAEG;AACH,SAAgB,UAAU,CAAC,QAAkB;IACzC,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,+BAA+B,EAAE,yBAAyB,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC;IAE1G,IAAI,MAAM,KAAK,IAAI,EAAE;QACjB,OAAO,IAAI,CAAC;KACf;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3C,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAVD,gCAUC"}
|