@segment/actions-core 1.3.0-next.0 → 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.
Files changed (49) hide show
  1. package/dist/cjs/create-request-client.d.ts +4 -3
  2. package/dist/cjs/create-request-client.js +24 -14
  3. package/dist/cjs/create-test-event.d.ts +2 -0
  4. package/dist/cjs/create-test-event.js +45 -0
  5. package/dist/cjs/create-test-integration.d.ts +36 -0
  6. package/dist/cjs/create-test-integration.js +34 -0
  7. package/dist/cjs/destination-kit/action.d.ts +7 -5
  8. package/dist/cjs/destination-kit/action.js +27 -30
  9. package/dist/cjs/destination-kit/index.d.ts +10 -5
  10. package/dist/cjs/destination-kit/index.js +8 -16
  11. package/dist/cjs/destination-kit/step.d.ts +1 -1
  12. package/dist/cjs/destination-kit/types.d.ts +3 -19
  13. package/dist/cjs/errors.d.ts +7 -0
  14. package/dist/cjs/errors.js +14 -0
  15. package/dist/cjs/fetch.d.ts +3 -0
  16. package/dist/cjs/fetch.js +29 -0
  17. package/dist/cjs/index.d.ts +7 -2
  18. package/dist/cjs/index.js +16 -2
  19. package/dist/cjs/map-values.d.ts +7 -0
  20. package/dist/cjs/map-values.js +16 -0
  21. package/dist/cjs/middleware/add-basic-auth-header.d.ts +3 -0
  22. package/dist/cjs/middleware/add-basic-auth-header.js +21 -0
  23. package/dist/cjs/request-client.d.ts +95 -0
  24. package/dist/cjs/request-client.js +227 -0
  25. package/dist/esm/create-request-client.d.ts +4 -3
  26. package/dist/esm/create-request-client.js +24 -14
  27. package/dist/esm/create-test-event.d.ts +2 -0
  28. package/dist/esm/create-test-event.js +41 -0
  29. package/dist/esm/create-test-integration.d.ts +36 -0
  30. package/dist/esm/create-test-integration.js +30 -0
  31. package/dist/esm/destination-kit/action.d.ts +7 -5
  32. package/dist/esm/destination-kit/action.js +27 -30
  33. package/dist/esm/destination-kit/index.d.ts +10 -5
  34. package/dist/esm/destination-kit/index.js +8 -16
  35. package/dist/esm/destination-kit/step.d.ts +1 -1
  36. package/dist/esm/destination-kit/types.d.ts +3 -19
  37. package/dist/esm/errors.d.ts +7 -0
  38. package/dist/esm/errors.js +10 -0
  39. package/dist/esm/fetch.d.ts +3 -0
  40. package/dist/esm/fetch.js +5 -0
  41. package/dist/esm/index.d.ts +7 -2
  42. package/dist/esm/index.js +5 -1
  43. package/dist/esm/map-values.d.ts +7 -0
  44. package/dist/esm/map-values.js +12 -0
  45. package/dist/esm/middleware/add-basic-auth-header.d.ts +3 -0
  46. package/dist/esm/middleware/add-basic-auth-header.js +16 -0
  47. package/dist/esm/request-client.d.ts +95 -0
  48. package/dist/esm/request-client.js +199 -0
  49. package/package.json +8 -7
@@ -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": "1.3.0-next.0",
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,22 +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
- "http-errors": "^1.8.0",
58
59
  "node-cache": "^5.1.2",
59
60
  "ts-custom-error": "^3.2.0",
60
61
  "uuid": "^8.3.2"
@@ -70,5 +71,5 @@
70
71
  ],
71
72
  "forceExit": true
72
73
  },
73
- "gitHead": "6ef73e023780e101419d558c1004c3f2bd13def3"
74
+ "gitHead": "342abcca32d0f8c8a8970a3cfb06c3fa745eb778"
74
75
  }