@segment/actions-core 1.3.0-next.1 → 2.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/cjs/create-request-client.d.ts +4 -3
- package/dist/cjs/create-request-client.js +24 -14
- package/dist/cjs/create-test-event.d.ts +2 -0
- package/dist/cjs/create-test-event.js +45 -0
- package/dist/cjs/create-test-integration.d.ts +36 -0
- package/dist/cjs/create-test-integration.js +34 -0
- package/dist/cjs/destination-kit/action.d.ts +7 -5
- package/dist/cjs/destination-kit/action.js +27 -30
- package/dist/cjs/destination-kit/index.d.ts +10 -5
- package/dist/cjs/destination-kit/index.js +6 -14
- package/dist/cjs/destination-kit/step.d.ts +1 -1
- package/dist/cjs/destination-kit/types.d.ts +3 -19
- package/dist/cjs/fetch.d.ts +3 -0
- package/dist/cjs/fetch.js +29 -0
- package/dist/cjs/index.d.ts +7 -2
- package/dist/cjs/index.js +16 -2
- package/dist/cjs/map-values.d.ts +7 -0
- package/dist/cjs/map-values.js +16 -0
- package/dist/cjs/middleware/add-basic-auth-header.d.ts +3 -0
- package/dist/cjs/middleware/add-basic-auth-header.js +21 -0
- package/dist/cjs/request-client.d.ts +95 -0
- package/dist/cjs/request-client.js +227 -0
- package/dist/esm/create-request-client.d.ts +4 -3
- package/dist/esm/create-request-client.js +24 -14
- package/dist/esm/create-test-event.d.ts +2 -0
- package/dist/esm/create-test-event.js +41 -0
- package/dist/esm/create-test-integration.d.ts +36 -0
- package/dist/esm/create-test-integration.js +30 -0
- package/dist/esm/destination-kit/action.d.ts +7 -5
- package/dist/esm/destination-kit/action.js +27 -30
- package/dist/esm/destination-kit/index.d.ts +10 -5
- package/dist/esm/destination-kit/index.js +6 -14
- package/dist/esm/destination-kit/step.d.ts +1 -1
- package/dist/esm/destination-kit/types.d.ts +3 -19
- package/dist/esm/fetch.d.ts +3 -0
- package/dist/esm/fetch.js +5 -0
- package/dist/esm/index.d.ts +7 -2
- package/dist/esm/index.js +5 -1
- package/dist/esm/map-values.d.ts +7 -0
- package/dist/esm/map-values.js +12 -0
- package/dist/esm/middleware/add-basic-auth-header.d.ts +3 -0
- package/dist/esm/middleware/add-basic-auth-header.js +16 -0
- package/dist/esm/request-client.d.ts +95 -0
- package/dist/esm/request-client.js +199 -0
- package/package.json +8 -6
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import AbortController from 'abort-controller';
|
|
2
|
+
import { CustomError } from 'ts-custom-error';
|
|
3
|
+
import fetch, { Headers, Request, Response } from './fetch';
|
|
4
|
+
import { isObject } from './real-type-of';
|
|
5
|
+
// We need the loose definition of "object" to iterate over things like `[object Headers]`
|
|
6
|
+
const isObjectLike = (value) => {
|
|
7
|
+
return value !== null && typeof value === 'object';
|
|
8
|
+
};
|
|
9
|
+
/** Merges two sets of headers intelligently */
|
|
10
|
+
function mergeHeaders(source1, source2) {
|
|
11
|
+
const result = new Headers(source1 || {});
|
|
12
|
+
const source = new Headers(source2 || {});
|
|
13
|
+
source.forEach((value, key) => {
|
|
14
|
+
// `value` may be the string `undefined` when the source is a Headers object
|
|
15
|
+
if (value === 'undefined') {
|
|
16
|
+
result.delete(key);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
result.set(key, value);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
/** Deeply merge multiple objects or arrays. Arrays get concatenated. */
|
|
25
|
+
function merge(...sources) {
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
let result = {};
|
|
28
|
+
let headers = {};
|
|
29
|
+
for (const source of sources) {
|
|
30
|
+
if (Array.isArray(source)) {
|
|
31
|
+
if (!Array.isArray(result)) {
|
|
32
|
+
result = [];
|
|
33
|
+
}
|
|
34
|
+
// Concatenate arrays (e.g. hooks)
|
|
35
|
+
result = [...result, ...source];
|
|
36
|
+
}
|
|
37
|
+
else if (isObjectLike(source)) {
|
|
38
|
+
// eslint-disable-next-line prefer-const
|
|
39
|
+
for (let [key, value] of Object.entries(source)) {
|
|
40
|
+
// Recurse over objects
|
|
41
|
+
if (isObjectLike(value) && key in result) {
|
|
42
|
+
value = merge(result[key], value);
|
|
43
|
+
}
|
|
44
|
+
// Update the key's value in our copy
|
|
45
|
+
result[key] = value;
|
|
46
|
+
}
|
|
47
|
+
// Merge headers more carefully to handle duplicates
|
|
48
|
+
if (isObjectLike(source.headers)) {
|
|
49
|
+
headers = mergeHeaders(headers, source.headers);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Assign after we've merged all the headers because they are handled specially
|
|
53
|
+
result.headers = headers;
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Validates and merges request options
|
|
59
|
+
*/
|
|
60
|
+
function mergeOptions(...sources) {
|
|
61
|
+
for (const source of sources) {
|
|
62
|
+
if (!isObject(source)) {
|
|
63
|
+
throw new TypeError(`The 'options' argument must be an object`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return merge({}, ...sources);
|
|
67
|
+
}
|
|
68
|
+
function getRequestMethod(method) {
|
|
69
|
+
return method.toUpperCase();
|
|
70
|
+
}
|
|
71
|
+
/** Error thrown when a response has a non-2xx response. */
|
|
72
|
+
export class HTTPError extends CustomError {
|
|
73
|
+
constructor(response, request, options) {
|
|
74
|
+
var _a, _b;
|
|
75
|
+
super((_a = response.statusText) !== null && _a !== void 0 ? _a : String((_b = response.status) !== null && _b !== void 0 ? _b : 'Unknown response error'));
|
|
76
|
+
this.response = response;
|
|
77
|
+
this.request = request;
|
|
78
|
+
this.options = options;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/** Error thrown when a request is aborted because of a client timeout. */
|
|
82
|
+
export class TimeoutError extends CustomError {
|
|
83
|
+
constructor(request, options) {
|
|
84
|
+
super(`Request timed out`);
|
|
85
|
+
this.request = request;
|
|
86
|
+
this.options = options;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Given a request, reject the request when a timeout is exceeded
|
|
91
|
+
*/
|
|
92
|
+
function timeoutFetch(request, abortController, options) {
|
|
93
|
+
return new Promise((resolve, reject) => {
|
|
94
|
+
const timer = setTimeout(() => {
|
|
95
|
+
if (abortController) {
|
|
96
|
+
abortController.abort();
|
|
97
|
+
}
|
|
98
|
+
reject(new TimeoutError(request, options));
|
|
99
|
+
}, options.timeout);
|
|
100
|
+
void fetch(request)
|
|
101
|
+
.then(resolve)
|
|
102
|
+
.catch(reject)
|
|
103
|
+
.then(() => clearTimeout(timer));
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
class RequestClient {
|
|
107
|
+
constructor(url, options = {}) {
|
|
108
|
+
this.setOptions(url, options);
|
|
109
|
+
}
|
|
110
|
+
setOptions(url, options) {
|
|
111
|
+
var _a, _b;
|
|
112
|
+
this.options = {
|
|
113
|
+
...options,
|
|
114
|
+
method: getRequestMethod((_a = options.method) !== null && _a !== void 0 ? _a : 'get'),
|
|
115
|
+
throwHttpErrors: options.throwHttpErrors !== false,
|
|
116
|
+
timeout: (_b = options.timeout) !== null && _b !== void 0 ? _b : 10000
|
|
117
|
+
};
|
|
118
|
+
// Timeout support. Use our own abort controller so consumers can pass in their own `signal`
|
|
119
|
+
// if they wish to use timeouts alongside other logic to abort a request
|
|
120
|
+
this.abortController = new AbortController();
|
|
121
|
+
if (this.options.signal) {
|
|
122
|
+
// Listen to consumer abort events to also abort our internal controller
|
|
123
|
+
this.options.signal.addEventListener('abort', () => {
|
|
124
|
+
this.abortController.abort();
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
// Use our internal abort controller for fetch
|
|
128
|
+
this.options.signal = this.abortController.signal;
|
|
129
|
+
// Construct a request object to send to the Fetch API
|
|
130
|
+
this.request = new Request(url, this.options);
|
|
131
|
+
// Parse search params and merge them with the request URL
|
|
132
|
+
if (this.options.searchParams) {
|
|
133
|
+
// The type is a bit too restrictive, since you can pass in other primitives like `{ foo: 1, bar: true }`
|
|
134
|
+
const searchParams = new URLSearchParams(this.options.searchParams);
|
|
135
|
+
const url = new URL(this.request.url);
|
|
136
|
+
url.search = searchParams.toString();
|
|
137
|
+
// Update the request object with the new url including the search params
|
|
138
|
+
this.request = new Request(new Request(url.toString(), this.request), this.options);
|
|
139
|
+
}
|
|
140
|
+
// Automatically handle json header + stringification as a convenience when using `json` option
|
|
141
|
+
if (this.options.json !== undefined) {
|
|
142
|
+
this.options.body = JSON.stringify(this.options.json);
|
|
143
|
+
this.request.headers.set('content-type', 'application/json');
|
|
144
|
+
this.request = new Request(this.request, { body: this.options.body });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async executeRequest() {
|
|
148
|
+
var _a;
|
|
149
|
+
let response = await this.fetch();
|
|
150
|
+
for (const hook of (_a = this.options.afterResponse) !== null && _a !== void 0 ? _a : []) {
|
|
151
|
+
const modifiedResponse = await hook(this.request, this.options, response.clone());
|
|
152
|
+
if (modifiedResponse instanceof Response) {
|
|
153
|
+
response = modifiedResponse;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Automatically attempt to parse json responses, matching the content-type
|
|
157
|
+
const contentType = response.headers.get('content-type');
|
|
158
|
+
if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json')) {
|
|
159
|
+
try {
|
|
160
|
+
// call `.json` on a clone, to prevent `TypeError: body used already` in callers
|
|
161
|
+
response.data = await response.clone().json();
|
|
162
|
+
}
|
|
163
|
+
catch (_error) {
|
|
164
|
+
// Ignore the error
|
|
165
|
+
response.data = null;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (!response.ok && this.options.throwHttpErrors) {
|
|
169
|
+
throw new HTTPError(response, this.request, this.options);
|
|
170
|
+
}
|
|
171
|
+
return response;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Make a fetch request, running all beforeRequest hooks, and optionally wrap in a timeout
|
|
175
|
+
*/
|
|
176
|
+
async fetch() {
|
|
177
|
+
var _a;
|
|
178
|
+
for (const hook of (_a = this.options.beforeRequest) !== null && _a !== void 0 ? _a : []) {
|
|
179
|
+
const newOptions = await hook({ ...this.options });
|
|
180
|
+
if (newOptions && isObject(newOptions)) {
|
|
181
|
+
this.setOptions(this.request.url, mergeOptions(this.options, newOptions));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (this.options.timeout === false) {
|
|
185
|
+
return fetch(this.request.clone());
|
|
186
|
+
}
|
|
187
|
+
return timeoutFetch(this.request.clone(), this.abortController, this.options);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Creates a new instance of the fetch request client,
|
|
192
|
+
* optionally with default configuration to apply to all requests made with the client
|
|
193
|
+
*/
|
|
194
|
+
export default function createInstance(defaults = {}) {
|
|
195
|
+
const client = (url, options = {}) => new RequestClient(url, mergeOptions(defaults, options)).executeRequest();
|
|
196
|
+
client.extend = (newDefaults) => createInstance(mergeOptions(defaults, newDefaults));
|
|
197
|
+
return client;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVxdWVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxlQUFlLE1BQU0sa0JBQWtCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdDLE9BQU8sS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBb0Z6QywwRkFBMEY7QUFDMUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFjLEVBQXVDLEVBQUU7SUFDM0UsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQTtBQUNwRCxDQUFDLENBQUE7QUFFRCwrQ0FBK0M7QUFDL0MsU0FBUyxZQUFZLENBQUMsT0FBK0IsRUFBRSxPQUErQjtJQUNwRixNQUFNLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUE7SUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRXpDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDNUIsNEVBQTRFO1FBQzVFLElBQUksS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ25CO2FBQU07WUFDTCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtTQUN2QjtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDO0FBRUQsd0VBQXdFO0FBQ3hFLFNBQVMsS0FBSyxDQUFJ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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@segment/actions-core",
|
|
3
3
|
"description": "Core runtime for Destinations Actions.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/segmentio/fab-5-engine",
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"./": "./dist/cjs/"
|
|
15
15
|
},
|
|
16
16
|
"types": "dist/esm/index.d.ts",
|
|
17
|
-
"sideEffects": false,
|
|
18
17
|
"files": [
|
|
19
18
|
"dist",
|
|
20
19
|
"package.json"
|
|
@@ -39,21 +38,24 @@
|
|
|
39
38
|
"typecheck": "tsc --noEmit"
|
|
40
39
|
},
|
|
41
40
|
"devDependencies": {
|
|
41
|
+
"@types/btoa-lite": "^1.0.0",
|
|
42
|
+
"@types/express": "^4.17.11",
|
|
42
43
|
"@types/jest": "^26.0.20",
|
|
43
44
|
"@types/json-schema": "^7.0.7",
|
|
44
|
-
"@types/lodash": "^4.14.168",
|
|
45
45
|
"@types/uuid": "^8.3.0",
|
|
46
|
+
"create-test-server": "^3.0.1",
|
|
46
47
|
"jest": "^26.6.3",
|
|
47
|
-
"lodash": "^4.17.20",
|
|
48
48
|
"nock": "^13.0.4"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@segment/ajv-human-errors": "^1.1.0",
|
|
52
52
|
"@segment/fab5-subscriptions": "^1.0.0",
|
|
53
|
+
"abort-controller": "^3.0.0",
|
|
53
54
|
"aggregate-error": "^3.1.0",
|
|
54
55
|
"ajv": "^6.12.4",
|
|
56
|
+
"btoa-lite": "^1.0.0",
|
|
57
|
+
"cross-fetch": "^3.1.4",
|
|
55
58
|
"dayjs": "^1.10.3",
|
|
56
|
-
"got": "^10.0.0",
|
|
57
59
|
"node-cache": "^5.1.2",
|
|
58
60
|
"ts-custom-error": "^3.2.0",
|
|
59
61
|
"uuid": "^8.3.2"
|
|
@@ -69,5 +71,5 @@
|
|
|
69
71
|
],
|
|
70
72
|
"forceExit": true
|
|
71
73
|
},
|
|
72
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "342abcca32d0f8c8a8970a3cfb06c3fa745eb778"
|
|
73
75
|
}
|