@activepieces/pieces-common 0.2.4 → 0.2.6
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 +5 -5
- package/src/lib/helpers/index.d.ts +15 -1
- package/src/lib/helpers/index.js +82 -1
- package/src/lib/helpers/index.js.map +1 -1
- package/src/lib/http/axios/axios-http-client.js +3 -3
- package/src/lib/http/axios/axios-http-client.js.map +1 -1
- package/src/lib/http/core/base-http-client.d.ts +4 -1
- package/src/lib/http/core/base-http-client.js +10 -1
- package/src/lib/http/core/base-http-client.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@activepieces/pieces-common",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@sinclair/typebox": "0.26.8",
|
|
7
|
-
"axios": "^1.
|
|
7
|
+
"axios": "^1.6.3",
|
|
8
8
|
"dayjs": "1.11.9",
|
|
9
9
|
"is-base64": "1.1.0",
|
|
10
10
|
"lodash": "4.17.21",
|
|
11
11
|
"nanoid": "3.3.6",
|
|
12
12
|
"semver": "7.5.4",
|
|
13
|
-
"@activepieces/pieces-framework": "0.7.
|
|
14
|
-
"@activepieces/shared": "0.10.
|
|
15
|
-
"tslib": "
|
|
13
|
+
"@activepieces/pieces-framework": "0.7.10",
|
|
14
|
+
"@activepieces/shared": "0.10.59",
|
|
15
|
+
"tslib": "2.6.2"
|
|
16
16
|
},
|
|
17
17
|
"main": "./src/index.js"
|
|
18
18
|
}
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
import { OAuth2PropertyValue } from "@activepieces/pieces-framework";
|
|
1
|
+
import { OAuth2PropertyValue, PieceAuthProperty } from "@activepieces/pieces-framework";
|
|
2
|
+
import { HttpHeaders, HttpMethod } from "../http";
|
|
2
3
|
export declare const getAccessTokenOrThrow: (auth: OAuth2PropertyValue | undefined) => string;
|
|
4
|
+
export declare function createCustomApiCallAction({ auth, baseUrl, authMapping }: {
|
|
5
|
+
auth?: PieceAuthProperty;
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
authMapping?: (auth: PieceAuthProperty) => HttpHeaders;
|
|
8
|
+
}): import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").BasicAuthProperty<boolean> | import("@activepieces/pieces-framework").CustomAuthProperty<boolean, any> | import("@activepieces/pieces-framework").OAuth2Property<boolean, import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").SecretTextProperty<boolean>, {
|
|
9
|
+
url: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
10
|
+
method: import("@activepieces/pieces-framework").StaticDropdownProperty<HttpMethod, true>;
|
|
11
|
+
headers: import("@activepieces/pieces-framework").ObjectProperty<true>;
|
|
12
|
+
queryParams: import("@activepieces/pieces-framework").ObjectProperty<true>;
|
|
13
|
+
body: import("@activepieces/pieces-framework").JsonProperty<false>;
|
|
14
|
+
failsafe: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
15
|
+
timeout: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
16
|
+
}>;
|
package/src/lib/helpers/index.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAccessTokenOrThrow = void 0;
|
|
3
|
+
exports.createCustomApiCallAction = exports.getAccessTokenOrThrow = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const http_1 = require("../http");
|
|
7
|
+
const shared_1 = require("@activepieces/shared");
|
|
4
8
|
const getAccessTokenOrThrow = (auth) => {
|
|
5
9
|
const accessToken = auth === null || auth === void 0 ? void 0 : auth.access_token;
|
|
6
10
|
if (accessToken === undefined) {
|
|
@@ -9,4 +13,81 @@ const getAccessTokenOrThrow = (auth) => {
|
|
|
9
13
|
return accessToken;
|
|
10
14
|
};
|
|
11
15
|
exports.getAccessTokenOrThrow = getAccessTokenOrThrow;
|
|
16
|
+
function createCustomApiCallAction({ auth, baseUrl, authMapping }) {
|
|
17
|
+
return (0, pieces_framework_1.createAction)({
|
|
18
|
+
name: 'custom_api_call',
|
|
19
|
+
displayName: 'Custom API Call',
|
|
20
|
+
description: 'Send a custom API call to a specific endpoint',
|
|
21
|
+
auth: auth ? auth : undefined,
|
|
22
|
+
props: {
|
|
23
|
+
url: pieces_framework_1.Property.ShortText({
|
|
24
|
+
displayName: 'URL',
|
|
25
|
+
description: 'The endpoint to use. For example, `/models`',
|
|
26
|
+
required: true,
|
|
27
|
+
}),
|
|
28
|
+
method: pieces_framework_1.Property.StaticDropdown({
|
|
29
|
+
displayName: 'Method',
|
|
30
|
+
required: true,
|
|
31
|
+
options: {
|
|
32
|
+
options: Object.values(http_1.HttpMethod).map(v => {
|
|
33
|
+
return {
|
|
34
|
+
label: v,
|
|
35
|
+
value: v,
|
|
36
|
+
};
|
|
37
|
+
})
|
|
38
|
+
}
|
|
39
|
+
}),
|
|
40
|
+
headers: pieces_framework_1.Property.Object({
|
|
41
|
+
displayName: 'Headers',
|
|
42
|
+
description: 'Authorization headers are injected automatically from your connection.',
|
|
43
|
+
required: true,
|
|
44
|
+
}),
|
|
45
|
+
queryParams: pieces_framework_1.Property.Object({
|
|
46
|
+
displayName: 'Query Parameters',
|
|
47
|
+
required: true,
|
|
48
|
+
}),
|
|
49
|
+
body: pieces_framework_1.Property.Json({
|
|
50
|
+
displayName: 'Body',
|
|
51
|
+
required: false,
|
|
52
|
+
}),
|
|
53
|
+
failsafe: pieces_framework_1.Property.Checkbox({
|
|
54
|
+
displayName: 'No Error on Failure',
|
|
55
|
+
required: false,
|
|
56
|
+
}),
|
|
57
|
+
timeout: pieces_framework_1.Property.Number({
|
|
58
|
+
displayName: 'Timeout (in seconds)',
|
|
59
|
+
required: false,
|
|
60
|
+
}),
|
|
61
|
+
},
|
|
62
|
+
run: (context) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
const { method, url, headers, queryParams, body, failsafe, timeout } = context.propsValue;
|
|
64
|
+
(0, shared_1.assertNotNullOrUndefined)(method, 'Method');
|
|
65
|
+
(0, shared_1.assertNotNullOrUndefined)(url, 'URL');
|
|
66
|
+
let headersValue = headers;
|
|
67
|
+
if (authMapping) {
|
|
68
|
+
headersValue = Object.assign(Object.assign({}, headersValue), authMapping(context.auth));
|
|
69
|
+
}
|
|
70
|
+
const request = {
|
|
71
|
+
method,
|
|
72
|
+
url: `${baseUrl}${url}`,
|
|
73
|
+
headers: headersValue,
|
|
74
|
+
queryParams: queryParams,
|
|
75
|
+
timeout: timeout ? timeout * 1000 : 0,
|
|
76
|
+
};
|
|
77
|
+
if (body) {
|
|
78
|
+
request.body = body;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
return yield http_1.httpClient.sendRequest(request);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (failsafe) {
|
|
85
|
+
return error.errorMessage();
|
|
86
|
+
}
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
exports.createCustomApiCallAction = createCustomApiCallAction;
|
|
12
93
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/common/src/lib/helpers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/common/src/lib/helpers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,14 +15,14 @@ class AxiosHttpClient extends base_http_client_1.BaseHttpClient {
|
|
|
15
15
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
16
16
|
try {
|
|
17
17
|
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
|
|
18
|
-
const
|
|
18
|
+
const { urlWithoutQueryParams, queryParams } = this.getUrl(request);
|
|
19
19
|
const headers = this.getHeaders(request);
|
|
20
20
|
const axiosRequestMethod = this.getAxiosRequestMethod(request.method);
|
|
21
21
|
const timeout = request.timeout ? request.timeout : 0;
|
|
22
22
|
const config = {
|
|
23
23
|
method: axiosRequestMethod,
|
|
24
|
-
url,
|
|
25
|
-
params: request.queryParams,
|
|
24
|
+
url: urlWithoutQueryParams,
|
|
25
|
+
params: Object.assign(Object.assign({}, queryParams), request.queryParams),
|
|
26
26
|
headers,
|
|
27
27
|
data: request.body,
|
|
28
28
|
timeout
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-http-client.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/common/src/lib/http/axios/axios-http-client.ts"],"names":[],"mappings":";;;;AAAA,0DAA+D;AAC/D,qGAAgG;AAChG,+DAA0D;AAC1D,mDAA+C;AAQ/C,MAAa,eAAgB,SAAQ,iCAAc;IAClD,YACC,OAAO,GAAG,EAAE,EACZ,0BAA6D,IAAI,uEAAiC,EAAE;QAEpG,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACzC,CAAC;IAEK,WAAW,CAChB,OAAqC;;;YAErC,IAAI;gBACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,GAAG,GAAG,CAAC;gBAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"axios-http-client.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/common/src/lib/http/axios/axios-http-client.ts"],"names":[],"mappings":";;;;AAAA,0DAA+D;AAC/D,qGAAgG;AAChG,+DAA0D;AAC1D,mDAA+C;AAQ/C,MAAa,eAAgB,SAAQ,iCAAc;IAClD,YACC,OAAO,GAAG,EAAE,EACZ,0BAA6D,IAAI,uEAAiC,EAAE;QAEpG,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACzC,CAAC;IAEK,WAAW,CAChB,OAAqC;;;YAErC,IAAI;gBACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,GAAG,GAAG,CAAC;gBAClD,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAuB;oBAClC,MAAM,EAAE,kBAAkB;oBAC1B,GAAG,EAAE,qBAAqB;oBAC1B,MAAM,kCACF,WAAW,GACX,OAAO,CAAC,WAAW,CACtB;oBACD,OAAO;oBACP,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO;iBACP,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAE5C,OAAO;oBACN,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAE,QAAQ,CAAC,OAAsB;oBACxC,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACnB,CAAC;aACF;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;gBACpD,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;oBAC1B,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,MAAM,CAAC,CAAC;oBACrF,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC;oBAEjF,MAAM,IAAI,sBAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBACrC;gBAED,MAAM,CAAC,CAAC;aACR;;KACD;IAEO,qBAAqB,CAAC,UAAsB;QACnD,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACD;AApDD,0CAoDC"}
|
|
@@ -9,7 +9,10 @@ export declare abstract class BaseHttpClient implements HttpClient {
|
|
|
9
9
|
private readonly authenticationConverter;
|
|
10
10
|
constructor(baseUrl: string, authenticationConverter: DelegatingAuthenticationConverter);
|
|
11
11
|
abstract sendRequest<RequestBody extends HttpMessageBody, ResponseBody extends HttpMessageBody>(request: HttpRequest<RequestBody>): Promise<HttpResponse<ResponseBody>>;
|
|
12
|
-
protected getUrl<RequestBody extends HttpMessageBody>(request: HttpRequest<RequestBody>):
|
|
12
|
+
protected getUrl<RequestBody extends HttpMessageBody>(request: HttpRequest<RequestBody>): {
|
|
13
|
+
urlWithoutQueryParams: string;
|
|
14
|
+
queryParams: Record<string, string>;
|
|
15
|
+
};
|
|
13
16
|
protected getHeaders<RequestBody extends HttpMessageBody>(request: HttpRequest<RequestBody>): HttpHeaders;
|
|
14
17
|
private populateAuthentication;
|
|
15
18
|
}
|
|
@@ -11,7 +11,16 @@ class BaseHttpClient {
|
|
|
11
11
|
}
|
|
12
12
|
getUrl(request) {
|
|
13
13
|
const url = new node_url_1.URL(`${this.baseUrl}${request.url}`);
|
|
14
|
-
|
|
14
|
+
const urlWithoutQueryParams = `${url.origin}${url.pathname}`;
|
|
15
|
+
const queryParams = {};
|
|
16
|
+
// Extract query parameters
|
|
17
|
+
url.searchParams.forEach((value, key) => {
|
|
18
|
+
queryParams[key] = value;
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
urlWithoutQueryParams,
|
|
22
|
+
queryParams,
|
|
23
|
+
};
|
|
15
24
|
}
|
|
16
25
|
getHeaders(request) {
|
|
17
26
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-http-client.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/common/src/lib/http/core/base-http-client.ts"],"names":[],"mappings":";;;AAGA,+CAA2C;AAK3C,6CAAyC;AACzC,uCAA+B;AAE/B,MAAsB,cAAc;IAClC,YACmB,OAAe,EACf,uBAA0D;QAD1D,YAAO,GAAP,OAAO,CAAQ;QACf,4BAAuB,GAAvB,uBAAuB,CAAmC;IAC1E,CAAC;IAOM,MAAM,CACd,OAAiC;
|
|
1
|
+
{"version":3,"file":"base-http-client.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/common/src/lib/http/core/base-http-client.ts"],"names":[],"mappings":";;;AAGA,+CAA2C;AAK3C,6CAAyC;AACzC,uCAA+B;AAE/B,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,cAAG,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,GAA2B,EAAE,CAAA;QAC9C,2BAA2B;QAC3B,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACpC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO;YACL,qBAAqB;YACrB,WAAW;SACZ,CAAA;IACH,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;YAC1B,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;SACrE;QAED,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,QAAQ,MAAA,OAAO,CAAC,OAAO,0CAAG,cAAc,CAAC,EAAE;gBACzC,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;aACT;SACF;QACD,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,cAAc,mCAAQ,cAAc,GAAK,OAAO,CAAC,OAAO,CAAE,CAAC;SAC5D;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"}
|