got 14.2.1 → 14.4.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/source/as-promise/index.js +5 -5
- package/dist/source/core/calculate-retry-delay.d.ts +1 -1
- package/dist/source/core/index.js +3 -5
- package/dist/source/core/options.d.ts +2 -2
- package/dist/source/core/options.js +1 -1
- package/dist/source/core/utils/proxy-events.js +2 -2
- package/dist/source/core/utils/unhandle.d.ts +2 -2
- package/dist/source/core/utils/unhandle.js +3 -3
- package/dist/source/create.js +2 -6
- package/dist/source/types.d.ts +87 -40
- package/package.json +18 -16
- package/readme.md +8 -14
|
@@ -3,7 +3,7 @@ import is from '@sindresorhus/is';
|
|
|
3
3
|
import PCancelable from 'p-cancelable';
|
|
4
4
|
import { HTTPError, RetryError, } from '../core/errors.js';
|
|
5
5
|
import Request from '../core/index.js';
|
|
6
|
-
import { parseBody, isResponseOk, ParseError } from '../core/response.js';
|
|
6
|
+
import { parseBody, isResponseOk, ParseError, } from '../core/response.js';
|
|
7
7
|
import proxyEvents from '../core/utils/proxy-events.js';
|
|
8
8
|
import { CancelError } from './types.js';
|
|
9
9
|
const proxiedRequestEvents = [
|
|
@@ -130,12 +130,12 @@ export default function asPromise(firstRequest) {
|
|
|
130
130
|
};
|
|
131
131
|
makeRequest(0);
|
|
132
132
|
});
|
|
133
|
-
promise.on = (event,
|
|
134
|
-
emitter.on(event,
|
|
133
|
+
promise.on = (event, function_) => {
|
|
134
|
+
emitter.on(event, function_);
|
|
135
135
|
return promise;
|
|
136
136
|
};
|
|
137
|
-
promise.off = (event,
|
|
138
|
-
emitter.off(event,
|
|
137
|
+
promise.off = (event, function_) => {
|
|
138
|
+
emitter.off(event, function_);
|
|
139
139
|
return promise;
|
|
140
140
|
};
|
|
141
141
|
const shortcut = (responseType) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { RetryFunction } from './options.js';
|
|
2
|
-
type Returns<T extends (...
|
|
2
|
+
type Returns<T extends (...arguments_: any) => unknown, V> = (...arguments_: Parameters<T>) => V;
|
|
3
3
|
declare const calculateRetryDelay: Returns<RetryFunction, number>;
|
|
4
4
|
export default calculateRetryDelay;
|
|
@@ -824,9 +824,7 @@ export default class Request extends Duplex {
|
|
|
824
824
|
break;
|
|
825
825
|
}
|
|
826
826
|
}
|
|
827
|
-
|
|
828
|
-
request = options.getRequestFunction();
|
|
829
|
-
}
|
|
827
|
+
request ||= options.getRequestFunction();
|
|
830
828
|
const url = options.url;
|
|
831
829
|
this._requestOptions = options.createNativeRequestOptions();
|
|
832
830
|
if (options.cache) {
|
|
@@ -836,11 +834,11 @@ export default class Request extends Duplex {
|
|
|
836
834
|
this._prepareCache(options.cache);
|
|
837
835
|
}
|
|
838
836
|
// Cache support
|
|
839
|
-
const
|
|
837
|
+
const function_ = options.cache ? this._createCacheableRequest : request;
|
|
840
838
|
try {
|
|
841
839
|
// We can't do `await fn(...)`,
|
|
842
840
|
// because stream `error` event can be emitted before `Promise.resolve()`.
|
|
843
|
-
let requestOrResponse =
|
|
841
|
+
let requestOrResponse = function_(url, this._requestOptions);
|
|
844
842
|
if (is.promise(requestOrResponse)) {
|
|
845
843
|
requestOrResponse = await requestOrResponse;
|
|
846
844
|
}
|
|
@@ -38,8 +38,8 @@ export type Agents = {
|
|
|
38
38
|
};
|
|
39
39
|
export type Headers = Record<string, string | string[] | undefined>;
|
|
40
40
|
export type ToughCookieJar = {
|
|
41
|
-
getCookieString: ((currentUrl: string, options: Record<string, unknown>,
|
|
42
|
-
setCookie: ((cookieOrString: unknown, currentUrl: string, options: Record<string, unknown>,
|
|
41
|
+
getCookieString: ((currentUrl: string, options: Record<string, unknown>, callback: (error: Error | null, cookies: string) => void) => void) & ((url: string, callback: (error: Error | null, cookieHeader: string) => void) => void);
|
|
42
|
+
setCookie: ((cookieOrString: unknown, currentUrl: string, options: Record<string, unknown>, callback: (error: Error | null, cookie: unknown) => void) => void) & ((rawCookie: string, url: string, callback: (error: Error | null, result: unknown) => void) => void);
|
|
43
43
|
};
|
|
44
44
|
export type PromiseCookieJar = {
|
|
45
45
|
getCookieString: (url: string) => Promise<string>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export default function proxyEvents(from, to, events) {
|
|
2
2
|
const eventFunctions = {};
|
|
3
3
|
for (const event of events) {
|
|
4
|
-
const eventFunction = (...
|
|
5
|
-
to.emit(event, ...
|
|
4
|
+
const eventFunction = (...arguments_) => {
|
|
5
|
+
to.emit(event, ...arguments_);
|
|
6
6
|
};
|
|
7
7
|
eventFunctions[event] = eventFunction;
|
|
8
8
|
from.on(event, eventFunction);
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import type { EventEmitter } from 'node:events';
|
|
3
3
|
type Origin = EventEmitter;
|
|
4
4
|
type Event = string | symbol;
|
|
5
|
-
type
|
|
5
|
+
type AnyFunction = (...arguments_: any[]) => void;
|
|
6
6
|
type Unhandler = {
|
|
7
|
-
once: (origin: Origin, event: Event,
|
|
7
|
+
once: (origin: Origin, event: Event, function_: AnyFunction) => void;
|
|
8
8
|
unhandleAll: () => void;
|
|
9
9
|
};
|
|
10
10
|
export default function unhandle(): Unhandler;
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
export default function unhandle() {
|
|
6
6
|
const handlers = [];
|
|
7
7
|
return {
|
|
8
|
-
once(origin, event,
|
|
9
|
-
origin.once(event,
|
|
10
|
-
handlers.push({ origin, event, fn });
|
|
8
|
+
once(origin, event, function_) {
|
|
9
|
+
origin.once(event, function_);
|
|
10
|
+
handlers.push({ origin, event, fn: function_ });
|
|
11
11
|
},
|
|
12
12
|
unhandleAll() {
|
|
13
13
|
for (const handler of handlers) {
|
package/dist/source/create.js
CHANGED
|
@@ -38,9 +38,7 @@ const create = (defaults) => {
|
|
|
38
38
|
if (normalized.isStream) {
|
|
39
39
|
return request;
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
promise = asPromise(request);
|
|
43
|
-
}
|
|
41
|
+
promise ||= asPromise(request);
|
|
44
42
|
return promise;
|
|
45
43
|
};
|
|
46
44
|
let iteration = 0;
|
|
@@ -48,9 +46,7 @@ const create = (defaults) => {
|
|
|
48
46
|
const handler = defaults.handlers[iteration++] ?? lastHandler;
|
|
49
47
|
const result = handler(newOptions, iterateHandlers);
|
|
50
48
|
if (is.promise(result) && !request.options.isStream) {
|
|
51
|
-
|
|
52
|
-
promise = asPromise(request);
|
|
53
|
-
}
|
|
49
|
+
promise ||= asPromise(request);
|
|
54
50
|
if (result !== promise) {
|
|
55
51
|
const descriptors = Object.getOwnPropertyDescriptors(promise);
|
|
56
52
|
for (const key in descriptors) {
|
package/dist/source/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import type { Buffer } from 'node:buffer';
|
|
3
|
+
import type { Spread } from 'type-fest';
|
|
3
4
|
import type { CancelableRequest } from './as-promise/types.js';
|
|
4
5
|
import type { Response } from './core/response.js';
|
|
5
6
|
import type Options from './core/options.js';
|
|
@@ -60,32 +61,10 @@ export type ExtendOptions = {
|
|
|
60
61
|
*/
|
|
61
62
|
mutableDefaults?: boolean;
|
|
62
63
|
} & OptionsInit;
|
|
63
|
-
export type OptionsOfTextResponseBody = Merge<OptionsInit, {
|
|
64
|
-
isStream?: false;
|
|
65
|
-
resolveBodyOnly?: false;
|
|
66
|
-
responseType?: 'text';
|
|
67
|
-
}>;
|
|
68
|
-
export type OptionsOfJSONResponseBody = Merge<OptionsInit, {
|
|
69
|
-
isStream?: false;
|
|
70
|
-
resolveBodyOnly?: false;
|
|
71
|
-
responseType?: 'json';
|
|
72
|
-
}>;
|
|
73
|
-
export type OptionsOfBufferResponseBody = Merge<OptionsInit, {
|
|
74
|
-
isStream?: false;
|
|
75
|
-
resolveBodyOnly?: false;
|
|
76
|
-
responseType: 'buffer';
|
|
77
|
-
}>;
|
|
78
|
-
export type OptionsOfUnknownResponseBody = Merge<OptionsInit, {
|
|
79
|
-
isStream?: false;
|
|
80
|
-
resolveBodyOnly?: false;
|
|
81
|
-
}>;
|
|
82
64
|
export type StrictOptions = Except<OptionsInit, 'isStream' | 'responseType' | 'resolveBodyOnly'>;
|
|
83
65
|
export type StreamOptions = Merge<OptionsInit, {
|
|
84
66
|
isStream?: true;
|
|
85
67
|
}>;
|
|
86
|
-
type ResponseBodyOnly = {
|
|
87
|
-
resolveBodyOnly: true;
|
|
88
|
-
};
|
|
89
68
|
export type OptionsWithPagination<T = unknown, R = unknown> = Merge<OptionsInit, {
|
|
90
69
|
pagination?: PaginationOptions<T, R>;
|
|
91
70
|
}>;
|
|
@@ -145,21 +124,84 @@ export type GotPaginate = {
|
|
|
145
124
|
*/
|
|
146
125
|
all: (<T, R = unknown>(url: string | URL, options?: OptionsWithPagination<T, R>) => Promise<T[]>) & (<T, R = unknown>(options?: OptionsWithPagination<T, R>) => Promise<T[]>);
|
|
147
126
|
};
|
|
148
|
-
export type
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
127
|
+
export type OptionsOfTextResponseBody = Merge<StrictOptions, {
|
|
128
|
+
isStream?: false;
|
|
129
|
+
responseType?: 'text';
|
|
130
|
+
}>;
|
|
131
|
+
export type OptionsOfTextResponseBodyOnly = Merge<StrictOptions, {
|
|
132
|
+
isStream?: false;
|
|
133
|
+
resolveBodyOnly: true;
|
|
134
|
+
responseType?: 'text';
|
|
135
|
+
}>;
|
|
136
|
+
export type OptionsOfTextResponseBodyWrapped = Merge<StrictOptions, {
|
|
137
|
+
isStream?: false;
|
|
138
|
+
resolveBodyOnly: false;
|
|
139
|
+
responseType?: 'text';
|
|
140
|
+
}>;
|
|
141
|
+
export type OptionsOfJSONResponseBody = Merge<StrictOptions, {
|
|
142
|
+
isStream?: false;
|
|
143
|
+
responseType?: 'json';
|
|
144
|
+
}>;
|
|
145
|
+
export type OptionsOfJSONResponseBodyOnly = Merge<StrictOptions, {
|
|
146
|
+
isStream?: false;
|
|
147
|
+
resolveBodyOnly: true;
|
|
148
|
+
responseType?: 'json';
|
|
149
|
+
}>;
|
|
150
|
+
export type OptionsOfJSONResponseBodyWrapped = Merge<StrictOptions, {
|
|
151
|
+
isStream?: false;
|
|
152
|
+
resolveBodyOnly: false;
|
|
153
|
+
responseType?: 'json';
|
|
154
|
+
}>;
|
|
155
|
+
export type OptionsOfBufferResponseBody = Merge<StrictOptions, {
|
|
156
|
+
isStream?: false;
|
|
157
|
+
responseType?: 'buffer';
|
|
158
|
+
}>;
|
|
159
|
+
export type OptionsOfBufferResponseBodyOnly = Merge<StrictOptions, {
|
|
160
|
+
isStream?: false;
|
|
161
|
+
resolveBodyOnly: true;
|
|
162
|
+
responseType?: 'buffer';
|
|
163
|
+
}>;
|
|
164
|
+
export type OptionsOfBufferResponseBodyWrapped = Merge<StrictOptions, {
|
|
165
|
+
isStream?: false;
|
|
166
|
+
resolveBodyOnly: false;
|
|
167
|
+
responseType?: 'buffer';
|
|
168
|
+
}>;
|
|
169
|
+
export type OptionsOfUnknownResponseBody = Merge<StrictOptions, {
|
|
170
|
+
isStream?: false;
|
|
171
|
+
}>;
|
|
172
|
+
export type OptionsOfUnknownResponseBodyOnly = Merge<StrictOptions, {
|
|
173
|
+
isStream?: false;
|
|
174
|
+
resolveBodyOnly: true;
|
|
175
|
+
}>;
|
|
176
|
+
export type OptionsOfUnknownResponseBodyWrapped = Merge<StrictOptions, {
|
|
177
|
+
isStream?: false;
|
|
178
|
+
resolveBodyOnly: false;
|
|
179
|
+
}>;
|
|
180
|
+
export type GotRequestFunction<U extends ExtendOptions = Record<string, unknown>> = {
|
|
181
|
+
(url: string | URL, options?: OptionsOfTextResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<string> : CancelableRequest<Response<string>>;
|
|
182
|
+
<T>(url: string | URL, options?: OptionsOfJSONResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<T> : CancelableRequest<Response<T>>;
|
|
183
|
+
(url: string | URL, options?: OptionsOfBufferResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<Buffer> : CancelableRequest<Response<Buffer>>;
|
|
184
|
+
(url: string | URL, options?: OptionsOfUnknownResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest : CancelableRequest<Response>;
|
|
185
|
+
(url: string | URL, options?: OptionsOfTextResponseBodyWrapped): CancelableRequest<Response<string>>;
|
|
186
|
+
<T>(url: string | URL, options?: OptionsOfJSONResponseBodyWrapped): CancelableRequest<Response<T>>;
|
|
187
|
+
(url: string | URL, options?: OptionsOfBufferResponseBodyWrapped): CancelableRequest<Response<Buffer>>;
|
|
188
|
+
(url: string | URL, options?: OptionsOfUnknownResponseBodyWrapped): CancelableRequest<Response>;
|
|
189
|
+
(url: string | URL, options?: OptionsOfTextResponseBodyOnly): CancelableRequest<string>;
|
|
190
|
+
<T>(url: string | URL, options?: OptionsOfJSONResponseBodyOnly): CancelableRequest<T>;
|
|
191
|
+
(url: string | URL, options?: OptionsOfBufferResponseBodyOnly): CancelableRequest<Buffer>;
|
|
192
|
+
(url: string | URL, options?: OptionsOfUnknownResponseBodyOnly): CancelableRequest;
|
|
193
|
+
(options: OptionsOfTextResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<string> : CancelableRequest<Response<string>>;
|
|
194
|
+
<T>(options: OptionsOfJSONResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<T> : CancelableRequest<Response<T>>;
|
|
195
|
+
(options: OptionsOfBufferResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest<Buffer> : CancelableRequest<Response<Buffer>>;
|
|
196
|
+
(options: OptionsOfUnknownResponseBody): U['resolveBodyOnly'] extends true ? CancelableRequest : CancelableRequest<Response>;
|
|
197
|
+
(options: OptionsOfTextResponseBodyWrapped): CancelableRequest<Response<string>>;
|
|
198
|
+
<T>(options: OptionsOfJSONResponseBodyWrapped): CancelableRequest<Response<T>>;
|
|
199
|
+
(options: OptionsOfBufferResponseBodyWrapped): CancelableRequest<Response<Buffer>>;
|
|
200
|
+
(options: OptionsOfUnknownResponseBodyWrapped): CancelableRequest<Response>;
|
|
201
|
+
(options: OptionsOfTextResponseBodyOnly): CancelableRequest<string>;
|
|
202
|
+
<T>(options: OptionsOfJSONResponseBodyOnly): CancelableRequest<T>;
|
|
203
|
+
(options: OptionsOfBufferResponseBodyOnly): CancelableRequest<Buffer>;
|
|
204
|
+
(options: OptionsOfUnknownResponseBodyOnly): CancelableRequest;
|
|
163
205
|
(url: string | URL, options?: Merge<OptionsInit, {
|
|
164
206
|
isStream: true;
|
|
165
207
|
}>): Request;
|
|
@@ -186,7 +228,7 @@ export type GotStream = GotStreamFunction & Record<HTTPAlias, GotStreamFunction>
|
|
|
186
228
|
/**
|
|
187
229
|
An instance of `got`.
|
|
188
230
|
*/
|
|
189
|
-
export type Got = {
|
|
231
|
+
export type Got<GotOptions extends ExtendOptions = ExtendOptions> = {
|
|
190
232
|
/**
|
|
191
233
|
Sets `options.isStream` to `true`.
|
|
192
234
|
|
|
@@ -256,6 +298,11 @@ export type Got = {
|
|
|
256
298
|
// x-unicorn: rainbow
|
|
257
299
|
```
|
|
258
300
|
*/
|
|
259
|
-
extend
|
|
260
|
-
} & Record<HTTPAlias, GotRequestFunction
|
|
301
|
+
extend<T extends Array<Got | ExtendOptions>>(...instancesOrOptions: T): Got<MergeExtendsConfig<T>>;
|
|
302
|
+
} & Record<HTTPAlias, GotRequestFunction<GotOptions>> & GotRequestFunction<GotOptions>;
|
|
303
|
+
export type ExtractExtendOptions<T> = T extends Got<infer GotOptions> ? GotOptions : T;
|
|
304
|
+
/**
|
|
305
|
+
Merges the options of multiple Got instances.
|
|
306
|
+
*/
|
|
307
|
+
export type MergeExtendsConfig<Value extends Array<Got | ExtendOptions>> = Value extends readonly [Value[0], ...infer NextValue] ? NextValue[0] extends undefined ? Value[0] extends infer OnlyValue ? OnlyValue extends ExtendOptions ? OnlyValue : OnlyValue extends Got<infer GotOptions> ? GotOptions : OnlyValue : never : ExtractExtendOptions<Value[0]> extends infer FirstArg extends ExtendOptions ? ExtractExtendOptions<NextValue[0] extends ExtendOptions | Got ? NextValue[0] : never> extends infer NextArg extends ExtendOptions ? Spread<FirstArg, NextArg> extends infer Merged extends ExtendOptions ? NextValue extends [NextValue[0], ...infer NextRest] ? NextRest extends Array<Got | ExtendOptions> ? MergeExtendsConfig<[Merged, ...NextRest]> : never : never : never : never : never : never;
|
|
261
308
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "got",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.4.0",
|
|
4
4
|
"description": "Human-friendly and powerful HTTP request library for Node.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "sindresorhus/got",
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
"ky"
|
|
49
49
|
],
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@sindresorhus/is": "^6.1
|
|
51
|
+
"@sindresorhus/is": "^6.3.1",
|
|
52
52
|
"@szmarczak/http-timer": "^5.0.1",
|
|
53
53
|
"cacheable-lookup": "^7.0.0",
|
|
54
|
-
"cacheable-request": "^
|
|
54
|
+
"cacheable-request": "^12.0.1",
|
|
55
55
|
"decompress-response": "^6.0.0",
|
|
56
56
|
"form-data-encoder": "^4.0.2",
|
|
57
57
|
"get-stream": "^8.0.1",
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
"@sinonjs/fake-timers": "^11.2.2",
|
|
67
67
|
"@types/benchmark": "^2.1.5",
|
|
68
68
|
"@types/express": "^4.17.21",
|
|
69
|
-
"@types/node": "^20.
|
|
69
|
+
"@types/node": "^20.12.12",
|
|
70
70
|
"@types/pem": "^1.14.4",
|
|
71
|
-
"@types/readable-stream": "^4.0.
|
|
71
|
+
"@types/readable-stream": "^4.0.14",
|
|
72
72
|
"@types/request": "^2.48.12",
|
|
73
73
|
"@types/sinon": "^17.0.2",
|
|
74
74
|
"@types/sinonjs__fake-timers": "^8.1.5",
|
|
75
75
|
"ava": "^5.3.1",
|
|
76
|
-
"axios": "^1.6.
|
|
76
|
+
"axios": "^1.6.8",
|
|
77
77
|
"benchmark": "^2.1.4",
|
|
78
78
|
"bluebird": "^3.7.2",
|
|
79
79
|
"body-parser": "^1.20.2",
|
|
@@ -81,33 +81,35 @@
|
|
|
81
81
|
"create-test-server": "^3.0.1",
|
|
82
82
|
"del-cli": "^5.1.0",
|
|
83
83
|
"delay": "^6.0.0",
|
|
84
|
-
"
|
|
84
|
+
"expect-type": "^0.19.0",
|
|
85
|
+
"express": "^4.19.2",
|
|
85
86
|
"form-data": "^4.0.0",
|
|
86
87
|
"formdata-node": "^6.0.3",
|
|
87
|
-
"nock": "^13.4
|
|
88
|
+
"nock": "^13.5.4",
|
|
88
89
|
"node-fetch": "^3.3.2",
|
|
89
|
-
"np": "^
|
|
90
|
+
"np": "^10.0.5",
|
|
90
91
|
"nyc": "^15.1.0",
|
|
91
|
-
"p-event": "^6.0.
|
|
92
|
+
"p-event": "^6.0.1",
|
|
92
93
|
"pem": "^1.14.8",
|
|
93
94
|
"pify": "^6.1.0",
|
|
94
95
|
"readable-stream": "^4.4.2",
|
|
95
96
|
"request": "^2.88.2",
|
|
96
|
-
"sinon": "^
|
|
97
|
+
"sinon": "^18.0.0",
|
|
97
98
|
"slow-stream": "0.0.4",
|
|
98
99
|
"tempy": "^3.1.0",
|
|
99
100
|
"then-busboy": "^5.2.1",
|
|
100
|
-
"tough-cookie": "^4.1.
|
|
101
|
-
"tsx": "^4.
|
|
101
|
+
"tough-cookie": "^4.1.4",
|
|
102
|
+
"tsx": "^4.10.4",
|
|
102
103
|
"type-fest": "^4.8.2",
|
|
103
|
-
"typescript": "^5.
|
|
104
|
+
"typescript": "^5.4.5",
|
|
104
105
|
"xo": "^0.56.0"
|
|
105
106
|
},
|
|
106
107
|
"ava": {
|
|
107
108
|
"files": [
|
|
108
|
-
"test/*"
|
|
109
|
+
"test/*",
|
|
110
|
+
"!test/*.types.ts"
|
|
109
111
|
],
|
|
110
|
-
"timeout": "
|
|
112
|
+
"timeout": "10m",
|
|
111
113
|
"extensions": {
|
|
112
114
|
"ts": "module"
|
|
113
115
|
},
|
package/readme.md
CHANGED
|
@@ -12,11 +12,13 @@
|
|
|
12
12
|
</sup>
|
|
13
13
|
</p>
|
|
14
14
|
<br>
|
|
15
|
+
<br>
|
|
15
16
|
<a href="https://retool.com/?utm_campaign=sindresorhus">
|
|
16
|
-
<img src="https://sindresorhus.com/assets/thanks/retool-logo.svg" width="
|
|
17
|
+
<img src="https://sindresorhus.com/assets/thanks/retool-logo.svg" width="220">
|
|
17
18
|
</a>
|
|
18
19
|
<br>
|
|
19
20
|
<br>
|
|
21
|
+
<br>
|
|
20
22
|
<a href="https://strapi.io/?ref=sindresorhus">
|
|
21
23
|
<div>
|
|
22
24
|
<img src="https://sindresorhus.com/assets/thanks/strapi-logo-white-bg.png" width="200" alt="Strapi">
|
|
@@ -45,26 +47,18 @@
|
|
|
45
47
|
<br>
|
|
46
48
|
<br>
|
|
47
49
|
<br>
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
</div>
|
|
52
|
-
<br>
|
|
53
|
-
<b>VPS hosting with taste 😛</b>
|
|
50
|
+
<br>
|
|
51
|
+
<a href="https://www.fame.fi#gh-light-mode-only">
|
|
52
|
+
<img src="https://sindresorhus.com/assets/thanks/fame-logo-light.svg" width="200" alt="Fame Helsinki">
|
|
54
53
|
</a>
|
|
55
|
-
<a href="https://
|
|
56
|
-
<
|
|
57
|
-
<img src="https://sindresorhus.com/assets/thanks/dutchis-logo-dark.png" width="200" alt="DutchIS">
|
|
58
|
-
</div>
|
|
59
|
-
<br>
|
|
60
|
-
<b>VPS hosting with taste 😛</b>
|
|
54
|
+
<a href="https://www.fame.fi#gh-dark-mode-only">
|
|
55
|
+
<img src="https://sindresorhus.com/assets/thanks/fame-logo-dark.svg" width="200" alt="Fame Helsinki">
|
|
61
56
|
</a>
|
|
62
57
|
<br>
|
|
63
58
|
<br>
|
|
64
59
|
<br>
|
|
65
60
|
<br>
|
|
66
61
|
<br>
|
|
67
|
-
<br>
|
|
68
62
|
</p>
|
|
69
63
|
<br>
|
|
70
64
|
<br>
|