@scopieflows/apps-common 0.12.3
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/package.json +19 -0
- package/src/index.d.ts +6 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +9 -0
- package/src/index.js.map +1 -0
- package/src/lib/authentication/index.d.ts +16 -0
- package/src/lib/authentication/index.d.ts.map +1 -0
- package/src/lib/authentication/index.js +9 -0
- package/src/lib/authentication/index.js.map +1 -0
- package/src/lib/helpers/index.d.ts +37 -0
- package/src/lib/helpers/index.d.ts.map +1 -0
- package/src/lib/helpers/index.js +268 -0
- package/src/lib/helpers/index.js.map +1 -0
- package/src/lib/http/axios/axios-http-client.d.ts +13 -0
- package/src/lib/http/axios/axios-http-client.d.ts.map +1 -0
- package/src/lib/http/axios/axios-http-client.js +96 -0
- package/src/lib/http/axios/axios-http-client.js.map +1 -0
- package/src/lib/http/core/base-http-client.d.ts +20 -0
- package/src/lib/http/core/base-http-client.d.ts.map +1 -0
- package/src/lib/http/core/base-http-client.js +52 -0
- package/src/lib/http/core/base-http-client.js.map +1 -0
- package/src/lib/http/core/delegating-authentication-converter.d.ts +18 -0
- package/src/lib/http/core/delegating-authentication-converter.d.ts.map +1 -0
- package/src/lib/http/core/delegating-authentication-converter.js +33 -0
- package/src/lib/http/core/delegating-authentication-converter.js.map +1 -0
- package/src/lib/http/core/http-client.d.ts +10 -0
- package/src/lib/http/core/http-client.d.ts.map +1 -0
- package/src/lib/http/core/http-client.js +6 -0
- package/src/lib/http/core/http-client.js.map +1 -0
- package/src/lib/http/core/http-error.d.ts +24 -0
- package/src/lib/http/core/http-error.d.ts.map +1 -0
- package/src/lib/http/core/http-error.js +46 -0
- package/src/lib/http/core/http-error.js.map +1 -0
- package/src/lib/http/core/http-header.d.ts +7 -0
- package/src/lib/http/core/http-header.d.ts.map +1 -0
- package/src/lib/http/core/http-header.js +11 -0
- package/src/lib/http/core/http-header.js.map +1 -0
- package/src/lib/http/core/http-headers.d.ts +2 -0
- package/src/lib/http/core/http-headers.d.ts.map +1 -0
- package/src/lib/http/core/http-headers.js +3 -0
- package/src/lib/http/core/http-headers.js.map +1 -0
- package/src/lib/http/core/http-message-body.d.ts +2 -0
- package/src/lib/http/core/http-message-body.d.ts.map +1 -0
- package/src/lib/http/core/http-message-body.js +3 -0
- package/src/lib/http/core/http-message-body.js.map +1 -0
- package/src/lib/http/core/http-method.d.ts +9 -0
- package/src/lib/http/core/http-method.d.ts.map +1 -0
- package/src/lib/http/core/http-method.js +13 -0
- package/src/lib/http/core/http-method.js.map +1 -0
- package/src/lib/http/core/http-request-body.d.ts +3 -0
- package/src/lib/http/core/http-request-body.d.ts.map +1 -0
- package/src/lib/http/core/http-request-body.js +3 -0
- package/src/lib/http/core/http-request-body.js.map +1 -0
- package/src/lib/http/core/http-request.d.ts +18 -0
- package/src/lib/http/core/http-request.d.ts.map +1 -0
- package/src/lib/http/core/http-request.js +3 -0
- package/src/lib/http/core/http-request.js.map +1 -0
- package/src/lib/http/core/http-response.d.ts +8 -0
- package/src/lib/http/core/http-response.d.ts.map +1 -0
- package/src/lib/http/core/http-response.js +3 -0
- package/src/lib/http/core/http-response.js.map +1 -0
- package/src/lib/http/core/media-type.d.ts +5 -0
- package/src/lib/http/core/media-type.d.ts.map +1 -0
- package/src/lib/http/core/media-type.js +9 -0
- package/src/lib/http/core/media-type.js.map +1 -0
- package/src/lib/http/core/query-params.d.ts +2 -0
- package/src/lib/http/core/query-params.d.ts.map +1 -0
- package/src/lib/http/core/query-params.js +3 -0
- package/src/lib/http/core/query-params.js.map +1 -0
- package/src/lib/http/index.d.ts +14 -0
- package/src/lib/http/index.d.ts.map +1 -0
- package/src/lib/http/index.js +17 -0
- package/src/lib/http/index.js.map +1 -0
- package/src/lib/polling/index.d.ts +58 -0
- package/src/lib/polling/index.d.ts.map +1 -0
- package/src/lib/polling/index.js +136 -0
- package/src/lib/polling/index.js.map +1 -0
- package/src/lib/validation/index.d.ts +5 -0
- package/src/lib/validation/index.d.ts.map +1 -0
- package/src/lib/validation/index.js +26 -0
- package/src/lib/validation/index.js.map +1 -0
package/package.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@scopieflows/apps-common",
|
|
3
|
+
"version": "0.12.3",
|
|
4
|
+
"type": "commonjs",
|
|
5
|
+
"main": "./src/index.js",
|
|
6
|
+
"types": "./src/index.d.ts",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@scopieflows/apps-framework": "0.28.1",
|
|
9
|
+
"@scopieflows/shared": "0.54.0",
|
|
10
|
+
"axios": "1.15.0",
|
|
11
|
+
"axios-retry": "4.4.1",
|
|
12
|
+
"form-data": "4.0.4",
|
|
13
|
+
"http-proxy-agent": "7.0.2",
|
|
14
|
+
"https-proxy-agent": "7.0.6",
|
|
15
|
+
"mime-types": "2.1.35",
|
|
16
|
+
"tslib": "2.6.2",
|
|
17
|
+
"zod": "4.3.6"
|
|
18
|
+
}
|
|
19
|
+
}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./lib/authentication"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./lib/helpers"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./lib/http"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./lib/polling"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./lib/validation"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,wDAA8B;AAC9B,qDAA2B;AAC3B,wDAA8B;AAC9B,2DAAiC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Authentication = BearerTokenAuthentication | BasicAuthentication;
|
|
2
|
+
export declare enum AuthenticationType {
|
|
3
|
+
BEARER_TOKEN = "BEARER_TOKEN",
|
|
4
|
+
BASIC = "BASIC"
|
|
5
|
+
}
|
|
6
|
+
export type BaseAuthentication<T extends AuthenticationType> = {
|
|
7
|
+
type: T;
|
|
8
|
+
};
|
|
9
|
+
export type BearerTokenAuthentication = BaseAuthentication<AuthenticationType.BEARER_TOKEN> & {
|
|
10
|
+
token: string;
|
|
11
|
+
};
|
|
12
|
+
export type BasicAuthentication = BaseAuthentication<AuthenticationType.BASIC> & {
|
|
13
|
+
username: string;
|
|
14
|
+
password: string;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/authentication/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,yBAAyB,GAAG,mBAAmB,CAAC;AAE7E,oBAAY,kBAAkB;IAC5B,YAAY,iBAAiB;IAC7B,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,kBAAkB,IAAI;IAC7D,IAAI,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACnC,kBAAkB,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEJ,MAAM,MAAM,mBAAmB,GAC7B,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthenticationType = void 0;
|
|
4
|
+
var AuthenticationType;
|
|
5
|
+
(function (AuthenticationType) {
|
|
6
|
+
AuthenticationType["BEARER_TOKEN"] = "BEARER_TOKEN";
|
|
7
|
+
AuthenticationType["BASIC"] = "BASIC";
|
|
8
|
+
})(AuthenticationType || (exports.AuthenticationType = AuthenticationType = {}));
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/authentication/index.ts"],"names":[],"mappings":";;;AAEA,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,mDAA6B,CAAA;IAC7B,qCAAe,CAAA;AACjB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { OAuth2PropertyValue, PieceAuthProperty, Property, StaticDropdownProperty, StaticPropsValue, InputPropertyMap, AppConnectionValueForAuthProperty, ExtractPieceAuthPropertyTypeForMethods } from '@scopieflows/apps-framework';
|
|
2
|
+
import { HttpHeaders, HttpMethod, QueryParams } from '../http';
|
|
3
|
+
export declare const getAccessTokenOrThrow: (auth: OAuth2PropertyValue | undefined) => string;
|
|
4
|
+
type BaseUrlGetter<PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined> = (auth?: AppConnectionValueForAuthProperty<ExtractPieceAuthPropertyTypeForMethods<PieceAuth>>) => string;
|
|
5
|
+
export declare function createCustomApiCallAction<PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined>({ auth, baseUrl, authMapping, description, displayName, name, props, extraProps, authLocation, }: {
|
|
6
|
+
auth?: PieceAuth;
|
|
7
|
+
baseUrl: BaseUrlGetter<PieceAuth>;
|
|
8
|
+
authMapping?: (auth: AppConnectionValueForAuthProperty<ExtractPieceAuthPropertyTypeForMethods<PieceAuth>>, propsValue: StaticPropsValue<any>) => Promise<HttpHeaders | QueryParams>;
|
|
9
|
+
description?: string | null;
|
|
10
|
+
displayName?: string | null;
|
|
11
|
+
name?: string | null;
|
|
12
|
+
props?: {
|
|
13
|
+
url?: Partial<ReturnType<typeof Property.ShortText>>;
|
|
14
|
+
method?: Partial<StaticDropdownProperty<HttpMethod, boolean>>;
|
|
15
|
+
headers?: Partial<ReturnType<typeof Property.Object>>;
|
|
16
|
+
queryParams?: Partial<ReturnType<typeof Property.Object>>;
|
|
17
|
+
body?: Partial<ReturnType<typeof Property.Json>>;
|
|
18
|
+
failsafe?: Partial<ReturnType<typeof Property.Checkbox>>;
|
|
19
|
+
timeout?: Partial<ReturnType<typeof Property.Number>>;
|
|
20
|
+
};
|
|
21
|
+
extraProps?: InputPropertyMap;
|
|
22
|
+
authLocation?: 'headers' | 'queryParams';
|
|
23
|
+
}): import("@scopieflows/apps-framework").IAction<PieceAuth, {
|
|
24
|
+
url: import("@scopieflows/apps-framework").DynamicProperties<true, PieceAuth | undefined>;
|
|
25
|
+
method: StaticDropdownProperty<HttpMethod, false> | StaticDropdownProperty<HttpMethod, true>;
|
|
26
|
+
headers: import("@scopieflows/apps-framework").ObjectProperty<false> | import("@scopieflows/apps-framework").ObjectProperty<true>;
|
|
27
|
+
queryParams: import("@scopieflows/apps-framework").ObjectProperty<false> | import("@scopieflows/apps-framework").ObjectProperty<true>;
|
|
28
|
+
body_type: StaticDropdownProperty<string, false>;
|
|
29
|
+
body: import("@scopieflows/apps-framework").DynamicProperties<false, PieceAuth | undefined>;
|
|
30
|
+
response_is_binary: import("@scopieflows/apps-framework").CheckboxProperty<false>;
|
|
31
|
+
failsafe: import("@scopieflows/apps-framework").CheckboxProperty<false> | import("@scopieflows/apps-framework").CheckboxProperty<true>;
|
|
32
|
+
timeout: import("@scopieflows/apps-framework").NumberProperty<false> | import("@scopieflows/apps-framework").NumberProperty<true>;
|
|
33
|
+
followRedirects: import("@scopieflows/apps-framework").CheckboxProperty<false>;
|
|
34
|
+
}>;
|
|
35
|
+
export declare function is_chromium_installed(): boolean;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,sBAAsB,EAEtB,gBAAgB,EAChB,gBAAgB,EAEhB,iCAAiC,EACjC,sCAAsC,EAEvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,WAAW,EACX,UAAU,EAEV,WAAW,EAEZ,MAAM,SAAS,CAAC;AAMjB,eAAO,MAAM,qBAAqB,SAC1B,mBAAmB,GAAG,SAAS,KACpC,MAQF,CAAC;AAqCF,KAAK,aAAa,CAChB,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,SAAS,IACnE,CACF,IAAI,CAAC,EAAE,iCAAiC,CACtC,sCAAsC,CAAC,SAAS,CAAC,CAClD,KACE,MAAM,CAAC;AACZ,wBAAgB,yBAAyB,CACvC,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,SAAS,EACrE,EACA,IAAI,EACJ,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,IAAI,EACJ,KAAK,EACL,UAAU,EACV,YAAwB,GACzB,EAAE;IACD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,iCAAiC,CACrC,sCAAsC,CAAC,SAAS,CAAC,CAClD,EACD,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAC9B,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;IAExC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;KACvD,CAAC;IACF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,YAAY,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CAC1C;;;;;;;;;;;GA8QA;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAG/C"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAccessTokenOrThrow = void 0;
|
|
4
|
+
exports.createCustomApiCallAction = createCustomApiCallAction;
|
|
5
|
+
exports.is_chromium_installed = is_chromium_installed;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const pieces_framework_1 = require("@scopieflows/apps-framework");
|
|
8
|
+
const http_1 = require("../http");
|
|
9
|
+
const shared_1 = require("@scopieflows/shared");
|
|
10
|
+
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
11
|
+
const mime_types_1 = tslib_1.__importDefault(require("mime-types"));
|
|
12
|
+
const form_data_1 = tslib_1.__importDefault(require("form-data"));
|
|
13
|
+
const getAccessTokenOrThrow = (auth) => {
|
|
14
|
+
const accessToken = auth === null || auth === void 0 ? void 0 : auth.access_token;
|
|
15
|
+
if (accessToken === undefined) {
|
|
16
|
+
throw new Error('Invalid bearer token');
|
|
17
|
+
}
|
|
18
|
+
return accessToken;
|
|
19
|
+
};
|
|
20
|
+
exports.getAccessTokenOrThrow = getAccessTokenOrThrow;
|
|
21
|
+
const joinBaseUrlWithRelativePath = ({ baseUrl, relativePath, }) => {
|
|
22
|
+
const baseUrlWithSlash = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
|
|
23
|
+
const relativePathWithoutSlash = relativePath.startsWith('/')
|
|
24
|
+
? relativePath.slice(1)
|
|
25
|
+
: relativePath;
|
|
26
|
+
return `${baseUrlWithSlash}${relativePathWithoutSlash}`;
|
|
27
|
+
};
|
|
28
|
+
const getBaseUrlForDescription = (baseUrl, auth) => {
|
|
29
|
+
const exampleBaseUrl = `https://api.example.com`;
|
|
30
|
+
try {
|
|
31
|
+
const baseUrlValue = auth ? baseUrl(auth) : undefined;
|
|
32
|
+
const baseUrlValueWithoutTrailingSlash = (baseUrlValue === null || baseUrlValue === void 0 ? void 0 : baseUrlValue.endsWith('/'))
|
|
33
|
+
? baseUrlValue.slice(0, -1)
|
|
34
|
+
: baseUrlValue;
|
|
35
|
+
return baseUrlValueWithoutTrailingSlash !== null && baseUrlValueWithoutTrailingSlash !== void 0 ? baseUrlValueWithoutTrailingSlash : exampleBaseUrl;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
//If baseUrl fails we stil want to return a valid baseUrl for description
|
|
39
|
+
{
|
|
40
|
+
return exampleBaseUrl;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
function createCustomApiCallAction({ auth, baseUrl, authMapping, description, displayName, name, props, extraProps, authLocation = 'headers', }) {
|
|
45
|
+
var _a, _b, _c, _d, _e;
|
|
46
|
+
return (0, pieces_framework_1.createAction)({
|
|
47
|
+
name: name ? name : 'custom_api_call',
|
|
48
|
+
displayName: displayName ? displayName : 'Custom API Call',
|
|
49
|
+
description: description
|
|
50
|
+
? description
|
|
51
|
+
: 'Make a custom API call to a specific endpoint',
|
|
52
|
+
auth,
|
|
53
|
+
requireAuth: auth ? true : false,
|
|
54
|
+
props: Object.assign({ url: pieces_framework_1.Property.DynamicProperties({
|
|
55
|
+
auth,
|
|
56
|
+
displayName: '',
|
|
57
|
+
required: true,
|
|
58
|
+
refreshers: [],
|
|
59
|
+
props: (_a) => tslib_1.__awaiter(this, [_a], void 0, function* ({ auth }) {
|
|
60
|
+
var _b;
|
|
61
|
+
return {
|
|
62
|
+
url: pieces_framework_1.Property.ShortText(Object.assign({ displayName: 'URL', description: `You can either use the full URL or the relative path to the base URL
|
|
63
|
+
i.e ${getBaseUrlForDescription(baseUrl, auth)}/resource or /resource`, required: true, defaultValue: auth ? baseUrl(auth) : '' }, ((_b = props === null || props === void 0 ? void 0 : props.url) !== null && _b !== void 0 ? _b : {}))),
|
|
64
|
+
};
|
|
65
|
+
}),
|
|
66
|
+
}), method: pieces_framework_1.Property.StaticDropdown(Object.assign({ displayName: 'Method', required: true, options: {
|
|
67
|
+
options: Object.values(http_1.HttpMethod).map((v) => {
|
|
68
|
+
return {
|
|
69
|
+
label: v,
|
|
70
|
+
value: v,
|
|
71
|
+
};
|
|
72
|
+
}),
|
|
73
|
+
} }, ((_a = props === null || props === void 0 ? void 0 : props.method) !== null && _a !== void 0 ? _a : {}))), headers: pieces_framework_1.Property.Object(Object.assign({ displayName: 'Headers', description: 'Authorization headers are injected automatically from your connection.', required: true }, ((_b = props === null || props === void 0 ? void 0 : props.headers) !== null && _b !== void 0 ? _b : {}))), queryParams: pieces_framework_1.Property.Object(Object.assign({ displayName: 'Query Parameters', required: true }, ((_c = props === null || props === void 0 ? void 0 : props.queryParams) !== null && _c !== void 0 ? _c : {}))), body_type: pieces_framework_1.Property.StaticDropdown({
|
|
74
|
+
displayName: 'Body Type',
|
|
75
|
+
required: false,
|
|
76
|
+
defaultValue: 'none',
|
|
77
|
+
options: {
|
|
78
|
+
disabled: false,
|
|
79
|
+
options: [
|
|
80
|
+
{
|
|
81
|
+
label: 'None',
|
|
82
|
+
value: 'none',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
label: 'JSON',
|
|
86
|
+
value: 'json',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
label: 'Form Data',
|
|
90
|
+
value: 'form_data',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
label: 'Raw',
|
|
94
|
+
value: 'raw',
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
}), body: pieces_framework_1.Property.DynamicProperties({
|
|
99
|
+
auth,
|
|
100
|
+
displayName: 'Body',
|
|
101
|
+
refreshers: ['body_type'],
|
|
102
|
+
required: false,
|
|
103
|
+
props: (_a) => tslib_1.__awaiter(this, [_a], void 0, function* ({ body_type }) {
|
|
104
|
+
var _b;
|
|
105
|
+
if (!body_type)
|
|
106
|
+
return {};
|
|
107
|
+
const bodyTypeInput = body_type;
|
|
108
|
+
const fields = {};
|
|
109
|
+
switch (bodyTypeInput) {
|
|
110
|
+
case 'none':
|
|
111
|
+
break;
|
|
112
|
+
case 'json':
|
|
113
|
+
fields['data'] = pieces_framework_1.Property.Json(Object.assign({ displayName: 'JSON Body', required: true }, ((_b = props === null || props === void 0 ? void 0 : props.body) !== null && _b !== void 0 ? _b : {})));
|
|
114
|
+
break;
|
|
115
|
+
case 'raw':
|
|
116
|
+
fields['data'] = pieces_framework_1.Property.LongText({
|
|
117
|
+
displayName: 'Raw Body',
|
|
118
|
+
required: true,
|
|
119
|
+
});
|
|
120
|
+
break;
|
|
121
|
+
case 'form_data':
|
|
122
|
+
fields['data'] = pieces_framework_1.Property.Array({
|
|
123
|
+
displayName: 'Form Data',
|
|
124
|
+
required: true,
|
|
125
|
+
properties: {
|
|
126
|
+
fieldName: pieces_framework_1.Property.ShortText({
|
|
127
|
+
displayName: 'Field Name',
|
|
128
|
+
required: true,
|
|
129
|
+
}),
|
|
130
|
+
fieldType: pieces_framework_1.Property.StaticDropdown({
|
|
131
|
+
displayName: 'Field Type',
|
|
132
|
+
required: true,
|
|
133
|
+
options: {
|
|
134
|
+
disabled: false,
|
|
135
|
+
options: [
|
|
136
|
+
{ label: 'Text', value: 'text' },
|
|
137
|
+
{ label: 'File', value: 'file' },
|
|
138
|
+
],
|
|
139
|
+
},
|
|
140
|
+
}),
|
|
141
|
+
textFieldValue: pieces_framework_1.Property.LongText({
|
|
142
|
+
displayName: 'Text Field Value',
|
|
143
|
+
required: false,
|
|
144
|
+
}),
|
|
145
|
+
fileFieldValue: pieces_framework_1.Property.File({
|
|
146
|
+
displayName: 'File Field Value',
|
|
147
|
+
required: false,
|
|
148
|
+
}),
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
return fields;
|
|
154
|
+
}),
|
|
155
|
+
}), response_is_binary: pieces_framework_1.Property.Checkbox({
|
|
156
|
+
displayName: 'Response is Binary ?',
|
|
157
|
+
description: 'Enable for files like PDFs, images, etc.',
|
|
158
|
+
required: false,
|
|
159
|
+
defaultValue: false,
|
|
160
|
+
}), failsafe: pieces_framework_1.Property.Checkbox(Object.assign({ displayName: 'No Error on Failure', required: false }, ((_d = props === null || props === void 0 ? void 0 : props.failsafe) !== null && _d !== void 0 ? _d : {}))), timeout: pieces_framework_1.Property.Number(Object.assign({ displayName: 'Timeout (in seconds)', required: false }, ((_e = props === null || props === void 0 ? void 0 : props.timeout) !== null && _e !== void 0 ? _e : {}))), followRedirects: pieces_framework_1.Property.Checkbox({
|
|
161
|
+
displayName: 'Follow redirects',
|
|
162
|
+
required: false,
|
|
163
|
+
defaultValue: false,
|
|
164
|
+
}) }, extraProps),
|
|
165
|
+
run: (context) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
166
|
+
var _a;
|
|
167
|
+
const { method, url, headers, queryParams, body, body_type, failsafe, timeout, response_is_binary, followRedirects, } = context.propsValue;
|
|
168
|
+
(0, shared_1.assertNotNullOrUndefined)(method, 'Method');
|
|
169
|
+
(0, shared_1.assertNotNullOrUndefined)(url, 'URL');
|
|
170
|
+
const authValue = !(0, shared_1.isNil)(authMapping)
|
|
171
|
+
? yield authMapping(context.auth, context.propsValue)
|
|
172
|
+
: {};
|
|
173
|
+
const urlValue = url['url'];
|
|
174
|
+
const fullUrl = urlValue.startsWith('http://') || urlValue.startsWith('https://')
|
|
175
|
+
? urlValue
|
|
176
|
+
: joinBaseUrlWithRelativePath({
|
|
177
|
+
baseUrl: baseUrl(context.auth),
|
|
178
|
+
relativePath: urlValue,
|
|
179
|
+
});
|
|
180
|
+
const request = {
|
|
181
|
+
method,
|
|
182
|
+
url: fullUrl,
|
|
183
|
+
headers: Object.assign(Object.assign({}, (headers !== null && headers !== void 0 ? headers : {})), (authLocation === 'headers' || !(0, shared_1.isNil)(authLocation)
|
|
184
|
+
? authValue
|
|
185
|
+
: {})),
|
|
186
|
+
queryParams: Object.assign(Object.assign({}, (authLocation === 'queryParams' ? authValue : {})), ((_a = queryParams) !== null && _a !== void 0 ? _a : {})),
|
|
187
|
+
timeout: timeout ? timeout * 1000 : 0,
|
|
188
|
+
followRedirects,
|
|
189
|
+
};
|
|
190
|
+
// Set response type to arraybuffer if binary response is expected
|
|
191
|
+
if (response_is_binary) {
|
|
192
|
+
request.responseType = 'arraybuffer';
|
|
193
|
+
}
|
|
194
|
+
if (body) {
|
|
195
|
+
if (body_type && body_type !== 'none') {
|
|
196
|
+
const bodyInput = body['data'];
|
|
197
|
+
if (body_type === 'form_data') {
|
|
198
|
+
const formBodyInput = bodyInput;
|
|
199
|
+
const formData = new form_data_1.default();
|
|
200
|
+
for (const { fieldName, fieldType, textFieldValue, fileFieldValue, } of formBodyInput) {
|
|
201
|
+
if (fieldType === 'text' && !(0, shared_1.isEmpty)(textFieldValue)) {
|
|
202
|
+
formData.append(fieldName, textFieldValue);
|
|
203
|
+
}
|
|
204
|
+
else if (fieldType === 'file' && !(0, shared_1.isEmpty)(fileFieldValue)) {
|
|
205
|
+
formData.append(fieldName, fileFieldValue.data, {
|
|
206
|
+
filename: fileFieldValue === null || fileFieldValue === void 0 ? void 0 : fileFieldValue.filename,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
request.body = formData;
|
|
211
|
+
request.headers = Object.assign(Object.assign({}, request.headers), formData.getHeaders());
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
request.body = bodyInput;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else if (!body_type) {
|
|
218
|
+
request.body = body;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
try {
|
|
222
|
+
const response = yield http_1.httpClient.sendRequest(request);
|
|
223
|
+
return yield handleBinaryResponse(context.files, response.body, response.status, response.headers, response_is_binary);
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
if (failsafe) {
|
|
227
|
+
return error.errorMessage();
|
|
228
|
+
}
|
|
229
|
+
throw error;
|
|
230
|
+
}
|
|
231
|
+
}),
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function is_chromium_installed() {
|
|
235
|
+
const chromiumPath = '/usr/bin/chromium';
|
|
236
|
+
return fs_1.default.existsSync(chromiumPath);
|
|
237
|
+
}
|
|
238
|
+
const handleBinaryResponse = (files, bodyContent, status, headers, isBinary) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
239
|
+
let body;
|
|
240
|
+
if (isBinary && isBinaryBody(bodyContent)) {
|
|
241
|
+
const contentTypeValue = Array.isArray(headers === null || headers === void 0 ? void 0 : headers['content-type'])
|
|
242
|
+
? headers['content-type'][0]
|
|
243
|
+
: headers === null || headers === void 0 ? void 0 : headers['content-type'];
|
|
244
|
+
const fileExtension = mime_types_1.default.extension(contentTypeValue !== null && contentTypeValue !== void 0 ? contentTypeValue : '') || 'txt';
|
|
245
|
+
let bufferData;
|
|
246
|
+
if (bodyContent instanceof ArrayBuffer) {
|
|
247
|
+
bufferData = Buffer.from(new Uint8Array(bodyContent));
|
|
248
|
+
}
|
|
249
|
+
else if (Buffer.isBuffer(bodyContent)) {
|
|
250
|
+
bufferData = bodyContent;
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
bufferData = Buffer.from(bodyContent);
|
|
254
|
+
}
|
|
255
|
+
body = yield files.write({
|
|
256
|
+
fileName: `output.${fileExtension}`,
|
|
257
|
+
data: bufferData,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
body = bodyContent;
|
|
262
|
+
}
|
|
263
|
+
return { status, headers, body };
|
|
264
|
+
});
|
|
265
|
+
const isBinaryBody = (body) => {
|
|
266
|
+
return body instanceof ArrayBuffer || Buffer.isBuffer(body);
|
|
267
|
+
};
|
|
268
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/helpers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { DelegatingAuthenticationConverter } from '../core/delegating-authentication-converter';
|
|
3
|
+
import { BaseHttpClient } from '../core/base-http-client';
|
|
4
|
+
import { HttpMessageBody } from '../core/http-message-body';
|
|
5
|
+
import { HttpRequest } from '../core/http-request';
|
|
6
|
+
import { HttpResponse } from '../core/http-response';
|
|
7
|
+
import { HttpRequestBody } from '../core/http-request-body';
|
|
8
|
+
export declare class AxiosHttpClient extends BaseHttpClient {
|
|
9
|
+
constructor(baseUrl?: string, authenticationConverter?: DelegatingAuthenticationConverter);
|
|
10
|
+
sendRequest<ResponseBody extends HttpMessageBody = any>(request: HttpRequest<HttpRequestBody>, axiosClient?: AxiosInstance): Promise<HttpResponse<ResponseBody>>;
|
|
11
|
+
private getAxiosRequestMethod;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=axios-http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axios-http-client.d.ts","sourceRoot":"","sources":["../../../../../src/lib/http/axios/axios-http-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAC;AAIjE,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAI5D,qBAAa,eAAgB,SAAQ,cAAc;gBAE/C,OAAO,SAAK,EACZ,uBAAuB,GAAE,iCAA2E;IAKhG,WAAW,CAAC,YAAY,SAAS,eAAe,GAAG,GAAG,EAC1D,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,EACrC,WAAW,CAAC,EAAE,aAAa,GAC1B,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAmFtC,OAAO,CAAC,qBAAqB;CAG9B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AxiosHttpClient = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
const axios_retry_1 = tslib_1.__importDefault(require("axios-retry"));
|
|
7
|
+
const http_proxy_agent_1 = require("http-proxy-agent");
|
|
8
|
+
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
9
|
+
const delegating_authentication_converter_1 = require("../core/delegating-authentication-converter");
|
|
10
|
+
const base_http_client_1 = require("../core/base-http-client");
|
|
11
|
+
const http_error_1 = require("../core/http-error");
|
|
12
|
+
class AxiosHttpClient extends base_http_client_1.BaseHttpClient {
|
|
13
|
+
constructor(baseUrl = '', authenticationConverter = new delegating_authentication_converter_1.DelegatingAuthenticationConverter()) {
|
|
14
|
+
super(baseUrl, authenticationConverter);
|
|
15
|
+
}
|
|
16
|
+
sendRequest(request, axiosClient) {
|
|
17
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
try {
|
|
20
|
+
const axiosInstance = axiosClient || axios_1.default.create();
|
|
21
|
+
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
|
|
22
|
+
const { urlWithoutQueryParams, queryParams: urlQueryParams } = this.getUrl(request);
|
|
23
|
+
const headers = this.getHeaders(request);
|
|
24
|
+
const axiosRequestMethod = this.getAxiosRequestMethod(request.method);
|
|
25
|
+
const timeout = request.timeout ? request.timeout : 0;
|
|
26
|
+
const queryParams = request.queryParams || {};
|
|
27
|
+
const responseType = request.responseType || 'json';
|
|
28
|
+
for (const [key, value] of Object.entries(queryParams)) {
|
|
29
|
+
urlQueryParams.append(key, value);
|
|
30
|
+
}
|
|
31
|
+
const config = {
|
|
32
|
+
method: axiosRequestMethod,
|
|
33
|
+
url: urlWithoutQueryParams,
|
|
34
|
+
params: urlQueryParams,
|
|
35
|
+
headers,
|
|
36
|
+
data: request.body,
|
|
37
|
+
timeout,
|
|
38
|
+
responseType,
|
|
39
|
+
};
|
|
40
|
+
const httpProxy = (_a = process.env['HTTP_PROXY']) !== null && _a !== void 0 ? _a : process.env['http_proxy'];
|
|
41
|
+
const httpsProxy = (_b = process.env['HTTPS_PROXY']) !== null && _b !== void 0 ? _b : process.env['https_proxy'];
|
|
42
|
+
if (httpProxy) {
|
|
43
|
+
config.httpAgent = new http_proxy_agent_1.HttpProxyAgent(httpProxy);
|
|
44
|
+
}
|
|
45
|
+
if (httpsProxy) {
|
|
46
|
+
config.httpsAgent = new https_proxy_agent_1.HttpsProxyAgent(httpsProxy);
|
|
47
|
+
}
|
|
48
|
+
if (httpProxy || httpsProxy) {
|
|
49
|
+
config.proxy = false;
|
|
50
|
+
}
|
|
51
|
+
if (request.followRedirects === false) {
|
|
52
|
+
config.maxRedirects = 0;
|
|
53
|
+
config.validateStatus = (status) => {
|
|
54
|
+
var _a;
|
|
55
|
+
if (status >= 400)
|
|
56
|
+
return false;
|
|
57
|
+
if ((_a = request.followRedirects) !== null && _a !== void 0 ? _a : false) {
|
|
58
|
+
return status >= 200 && status < 300;
|
|
59
|
+
}
|
|
60
|
+
return status >= 200 && status < 400;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (request.retries && request.retries > 0) {
|
|
64
|
+
(0, axios_retry_1.default)(axiosInstance, {
|
|
65
|
+
retries: request.retries,
|
|
66
|
+
retryDelay: axios_retry_1.default.exponentialDelay,
|
|
67
|
+
retryCondition: (error) => {
|
|
68
|
+
return (axios_retry_1.default.isNetworkOrIdempotentRequestError(error) ||
|
|
69
|
+
(error.response && error.response.status >= 500) ||
|
|
70
|
+
false);
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const response = yield axiosInstance.request(config);
|
|
75
|
+
return {
|
|
76
|
+
status: response.status,
|
|
77
|
+
headers: response.headers,
|
|
78
|
+
body: response.data,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
if (axios_1.default.isAxiosError(e)) {
|
|
83
|
+
const httpError = new http_error_1.HttpError(request.body, e);
|
|
84
|
+
console.error('[HttpClient#(sanitized error message)] Request failed:', httpError);
|
|
85
|
+
throw httpError;
|
|
86
|
+
}
|
|
87
|
+
throw e;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
getAxiosRequestMethod(httpMethod) {
|
|
92
|
+
return httpMethod.toString();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.AxiosHttpClient = AxiosHttpClient;
|
|
96
|
+
//# sourceMappingURL=axios-http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axios-http-client.js","sourceRoot":"","sources":["../../../../../src/lib/http/axios/axios-http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DelegatingAuthenticationConverter } from './delegating-authentication-converter';
|
|
2
|
+
import type { HttpClient } from './http-client';
|
|
3
|
+
import type { HttpHeaders } from './http-headers';
|
|
4
|
+
import type { HttpMessageBody } from './http-message-body';
|
|
5
|
+
import type { HttpRequest } from './http-request';
|
|
6
|
+
import { HttpRequestBody } from './http-request-body';
|
|
7
|
+
import { HttpResponse } from './http-response';
|
|
8
|
+
export declare abstract class BaseHttpClient implements HttpClient {
|
|
9
|
+
private readonly baseUrl;
|
|
10
|
+
private readonly authenticationConverter;
|
|
11
|
+
constructor(baseUrl: string, authenticationConverter: DelegatingAuthenticationConverter);
|
|
12
|
+
abstract sendRequest<RequestBody extends HttpMessageBody, ResponseBody extends HttpMessageBody>(request: HttpRequest<RequestBody>): Promise<HttpResponse<ResponseBody>>;
|
|
13
|
+
protected getUrl<RequestBody extends HttpMessageBody>(request: HttpRequest<RequestBody>): {
|
|
14
|
+
urlWithoutQueryParams: string;
|
|
15
|
+
queryParams: URLSearchParams;
|
|
16
|
+
};
|
|
17
|
+
protected getHeaders<RequestBody extends HttpRequestBody>(request: HttpRequest<RequestBody>): HttpHeaders;
|
|
18
|
+
private populateAuthentication;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=base-http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-http-client.d.ts","sourceRoot":"","sources":["../../../../../src/lib/http/core/base-http-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,8BAAsB,cAAe,YAAW,UAAU;IAEtD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBADvB,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,iCAAiC;IAG7E,QAAQ,CAAC,WAAW,CAClB,WAAW,SAAS,eAAe,EACnC,YAAY,SAAS,eAAe,EACpC,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAEzE,SAAS,CAAC,MAAM,CAAC,WAAW,SAAS,eAAe,EAClD,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,GAChC;QACD,qBAAqB,EAAE,MAAM,CAAC;QAC9B,WAAW,EAAE,eAAe,CAAC;KAC9B;IAcD,SAAS,CAAC,UAAU,CAAC,WAAW,SAAS,eAAe,EACtD,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,GAChC,WAAW;IA0Bd,OAAO,CAAC,sBAAsB;CAM/B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseHttpClient = void 0;
|
|
4
|
+
const http_header_1 = require("./http-header");
|
|
5
|
+
const media_type_1 = require("./media-type");
|
|
6
|
+
class BaseHttpClient {
|
|
7
|
+
constructor(baseUrl, authenticationConverter) {
|
|
8
|
+
this.baseUrl = baseUrl;
|
|
9
|
+
this.authenticationConverter = authenticationConverter;
|
|
10
|
+
}
|
|
11
|
+
getUrl(request) {
|
|
12
|
+
const url = new URL(`${this.baseUrl}${request.url}`);
|
|
13
|
+
const urlWithoutQueryParams = `${url.origin}${url.pathname}`;
|
|
14
|
+
const queryParams = new URLSearchParams();
|
|
15
|
+
// Extract query parameters
|
|
16
|
+
url.searchParams.forEach((value, key) => {
|
|
17
|
+
queryParams.append(key, value);
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
urlWithoutQueryParams,
|
|
21
|
+
queryParams,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
getHeaders(request) {
|
|
25
|
+
var _a;
|
|
26
|
+
let requestHeaders = {
|
|
27
|
+
[http_header_1.HttpHeader.ACCEPT]: media_type_1.MediaType.APPLICATION_JSON,
|
|
28
|
+
};
|
|
29
|
+
if (request.authentication) {
|
|
30
|
+
this.populateAuthentication(request.authentication, requestHeaders);
|
|
31
|
+
}
|
|
32
|
+
if (request.body) {
|
|
33
|
+
switch ((_a = request.headers) === null || _a === void 0 ? void 0 : _a['Content-Type']) {
|
|
34
|
+
case 'text/csv':
|
|
35
|
+
requestHeaders[http_header_1.HttpHeader.CONTENT_TYPE] = media_type_1.MediaType.TEXT_CSV;
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
requestHeaders[http_header_1.HttpHeader.CONTENT_TYPE] = media_type_1.MediaType.APPLICATION_JSON;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (request.headers) {
|
|
43
|
+
requestHeaders = Object.assign(Object.assign({}, requestHeaders), request.headers);
|
|
44
|
+
}
|
|
45
|
+
return requestHeaders;
|
|
46
|
+
}
|
|
47
|
+
populateAuthentication(authentication, headers) {
|
|
48
|
+
this.authenticationConverter.convert(authentication, headers);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.BaseHttpClient = BaseHttpClient;
|
|
52
|
+
//# sourceMappingURL=base-http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-http-client.js","sourceRoot":"","sources":["../../../../../src/lib/http/core/base-http-client.ts"],"names":[],"mappings":";;;AAGA,+CAA2C;AAM3C,6CAAyC;AAEzC,MAAsB,cAAc;IAClC,YACmB,OAAe,EACf,uBAA0D;QAD1D,YAAO,GAAP,OAAO,CAAQ;QACf,4BAAuB,GAAvB,uBAAuB,CAAmC;IAC1E,CAAC;IAOM,MAAM,CACd,OAAiC;QAKjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,MAAM,qBAAqB,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAC1C,2BAA2B;QAC3B,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO;YACL,qBAAqB;YACrB,WAAW;SACZ,CAAC;IACJ,CAAC;IAES,UAAU,CAClB,OAAiC;;QAEjC,IAAI,cAAc,GAAgB;YAChC,CAAC,wBAAU,CAAC,MAAM,CAAC,EAAE,sBAAS,CAAC,gBAAgB;SAChD,CAAC;QAEF,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,QAAQ,MAAA,OAAO,CAAC,OAAO,0CAAG,cAAc,CAAC,EAAE,CAAC;gBAC1C,KAAK,UAAU;oBACb,cAAc,CAAC,wBAAU,CAAC,YAAY,CAAC,GAAG,sBAAS,CAAC,QAAQ,CAAC;oBAC7D,MAAM;gBAER;oBACE,cAAc,CAAC,wBAAU,CAAC,YAAY,CAAC,GAAG,sBAAS,CAAC,gBAAgB,CAAC;oBACrE,MAAM;YACV,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,cAAc,mCAAQ,cAAc,GAAK,OAAO,CAAC,OAAO,CAAE,CAAC;QAC7D,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,sBAAsB,CAC5B,cAA8B,EAC9B,OAAoB;QAEpB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;CACF;AAhED,wCAgEC"}
|