recker 1.0.26 → 1.0.27-next.8396df6
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/browser/browser/cache.d.ts +40 -0
- package/dist/browser/browser/cache.js +199 -0
- package/dist/browser/browser/crypto.d.ts +24 -0
- package/dist/browser/browser/crypto.js +80 -0
- package/dist/browser/browser/index.d.ts +31 -0
- package/dist/browser/browser/index.js +31 -0
- package/dist/browser/browser/recker.d.ts +26 -0
- package/dist/browser/browser/recker.js +61 -0
- package/dist/browser/cache/basic-file-storage.d.ts +12 -0
- package/dist/browser/cache/basic-file-storage.js +50 -0
- package/dist/browser/cache/memory-limits.d.ts +20 -0
- package/dist/browser/cache/memory-limits.js +96 -0
- package/dist/browser/cache/memory-storage.d.ts +132 -0
- package/dist/browser/cache/memory-storage.js +454 -0
- package/dist/browser/cache.d.ts +40 -0
- package/dist/browser/cache.js +199 -0
- package/dist/browser/constants/http-status.d.ts +73 -0
- package/dist/browser/constants/http-status.js +156 -0
- package/dist/browser/cookies/memory-cookie-jar.d.ts +30 -0
- package/dist/browser/cookies/memory-cookie-jar.js +210 -0
- package/dist/browser/core/client.d.ts +118 -0
- package/dist/browser/core/client.js +667 -0
- package/dist/browser/core/errors.d.ts +142 -0
- package/dist/browser/core/errors.js +308 -0
- package/dist/browser/core/index.d.ts +5 -0
- package/dist/browser/core/index.js +5 -0
- package/dist/browser/core/request-promise.d.ts +23 -0
- package/dist/browser/core/request-promise.js +82 -0
- package/dist/browser/core/request.d.ts +20 -0
- package/dist/browser/core/request.js +76 -0
- package/dist/browser/core/response.d.ts +34 -0
- package/dist/browser/core/response.js +178 -0
- package/dist/browser/crypto.d.ts +24 -0
- package/dist/browser/crypto.js +80 -0
- package/dist/browser/index.d.ts +31 -0
- package/dist/browser/index.js +31 -0
- package/dist/browser/plugins/auth/api-key.d.ts +8 -0
- package/dist/browser/plugins/auth/api-key.js +27 -0
- package/dist/browser/plugins/auth/auth0.d.ts +33 -0
- package/dist/browser/plugins/auth/auth0.js +94 -0
- package/dist/browser/plugins/auth/aws-sigv4.d.ts +10 -0
- package/dist/browser/plugins/auth/aws-sigv4.js +88 -0
- package/dist/browser/plugins/auth/azure-ad.d.ts +48 -0
- package/dist/browser/plugins/auth/azure-ad.js +152 -0
- package/dist/browser/plugins/auth/basic.d.ts +7 -0
- package/dist/browser/plugins/auth/basic.js +13 -0
- package/dist/browser/plugins/auth/bearer.d.ts +8 -0
- package/dist/browser/plugins/auth/bearer.js +17 -0
- package/dist/browser/plugins/auth/cognito.d.ts +45 -0
- package/dist/browser/plugins/auth/cognito.js +208 -0
- package/dist/browser/plugins/auth/digest.d.ts +8 -0
- package/dist/browser/plugins/auth/digest.js +100 -0
- package/dist/browser/plugins/auth/firebase.d.ts +32 -0
- package/dist/browser/plugins/auth/firebase.js +195 -0
- package/dist/browser/plugins/auth/github-app.d.ts +36 -0
- package/dist/browser/plugins/auth/github-app.js +170 -0
- package/dist/browser/plugins/auth/google-service-account.d.ts +49 -0
- package/dist/browser/plugins/auth/google-service-account.js +172 -0
- package/dist/browser/plugins/auth/index.d.ts +15 -0
- package/dist/browser/plugins/auth/index.js +15 -0
- package/dist/browser/plugins/auth/mtls.d.ts +37 -0
- package/dist/browser/plugins/auth/mtls.js +140 -0
- package/dist/browser/plugins/auth/oauth2.d.ts +8 -0
- package/dist/browser/plugins/auth/oauth2.js +26 -0
- package/dist/browser/plugins/auth/oidc.d.ts +55 -0
- package/dist/browser/plugins/auth/oidc.js +222 -0
- package/dist/browser/plugins/auth/okta.d.ts +47 -0
- package/dist/browser/plugins/auth/okta.js +157 -0
- package/dist/browser/plugins/auth.d.ts +1 -0
- package/dist/browser/plugins/auth.js +1 -0
- package/dist/browser/plugins/cache.d.ts +15 -0
- package/dist/browser/plugins/cache.js +486 -0
- package/dist/browser/plugins/circuit-breaker.d.ts +13 -0
- package/dist/browser/plugins/circuit-breaker.js +100 -0
- package/dist/browser/plugins/compression.d.ts +4 -0
- package/dist/browser/plugins/compression.js +130 -0
- package/dist/browser/plugins/cookie-jar.d.ts +5 -0
- package/dist/browser/plugins/cookie-jar.js +72 -0
- package/dist/browser/plugins/dedup.d.ts +5 -0
- package/dist/browser/plugins/dedup.js +35 -0
- package/dist/browser/plugins/graphql.d.ts +13 -0
- package/dist/browser/plugins/graphql.js +58 -0
- package/dist/browser/plugins/grpc-web.d.ts +79 -0
- package/dist/browser/plugins/grpc-web.js +261 -0
- package/dist/browser/plugins/hls.d.ts +105 -0
- package/dist/browser/plugins/hls.js +395 -0
- package/dist/browser/plugins/jsonrpc.d.ts +75 -0
- package/dist/browser/plugins/jsonrpc.js +143 -0
- package/dist/browser/plugins/logger.d.ts +13 -0
- package/dist/browser/plugins/logger.js +108 -0
- package/dist/browser/plugins/odata.d.ts +181 -0
- package/dist/browser/plugins/odata.js +564 -0
- package/dist/browser/plugins/pagination.d.ts +16 -0
- package/dist/browser/plugins/pagination.js +105 -0
- package/dist/browser/plugins/rate-limit.d.ts +15 -0
- package/dist/browser/plugins/rate-limit.js +162 -0
- package/dist/browser/plugins/retry.d.ts +14 -0
- package/dist/browser/plugins/retry.js +116 -0
- package/dist/browser/plugins/scrape.d.ts +21 -0
- package/dist/browser/plugins/scrape.js +82 -0
- package/dist/browser/plugins/server-timing.d.ts +7 -0
- package/dist/browser/plugins/server-timing.js +24 -0
- package/dist/browser/plugins/soap.d.ts +72 -0
- package/dist/browser/plugins/soap.js +347 -0
- package/dist/browser/plugins/xml.d.ts +9 -0
- package/dist/browser/plugins/xml.js +194 -0
- package/dist/browser/plugins/xsrf.d.ts +9 -0
- package/dist/browser/plugins/xsrf.js +48 -0
- package/dist/browser/recker.d.ts +26 -0
- package/dist/browser/recker.js +61 -0
- package/dist/browser/runner/request-runner.d.ts +46 -0
- package/dist/browser/runner/request-runner.js +89 -0
- package/dist/browser/scrape/document.d.ts +44 -0
- package/dist/browser/scrape/document.js +210 -0
- package/dist/browser/scrape/element.d.ts +49 -0
- package/dist/browser/scrape/element.js +176 -0
- package/dist/browser/scrape/extractors.d.ts +16 -0
- package/dist/browser/scrape/extractors.js +356 -0
- package/dist/browser/scrape/types.d.ts +107 -0
- package/dist/browser/scrape/types.js +1 -0
- package/dist/browser/transport/fetch.d.ts +11 -0
- package/dist/browser/transport/fetch.js +143 -0
- package/dist/browser/transport/undici.d.ts +38 -0
- package/dist/browser/transport/undici.js +897 -0
- package/dist/browser/types/ai.d.ts +267 -0
- package/dist/browser/types/ai.js +1 -0
- package/dist/browser/types/index.d.ts +351 -0
- package/dist/browser/types/index.js +1 -0
- package/dist/browser/types/logger.d.ts +16 -0
- package/dist/browser/types/logger.js +66 -0
- package/dist/browser/types/udp.d.ts +138 -0
- package/dist/browser/types/udp.js +1 -0
- package/dist/browser/utils/agent-manager.d.ts +29 -0
- package/dist/browser/utils/agent-manager.js +160 -0
- package/dist/browser/utils/body.d.ts +10 -0
- package/dist/browser/utils/body.js +148 -0
- package/dist/browser/utils/charset.d.ts +15 -0
- package/dist/browser/utils/charset.js +169 -0
- package/dist/browser/utils/concurrency.d.ts +20 -0
- package/dist/browser/utils/concurrency.js +120 -0
- package/dist/browser/utils/dns.d.ts +6 -0
- package/dist/browser/utils/dns.js +26 -0
- package/dist/browser/utils/header-parser.d.ts +94 -0
- package/dist/browser/utils/header-parser.js +617 -0
- package/dist/browser/utils/html-cleaner.d.ts +1 -0
- package/dist/browser/utils/html-cleaner.js +21 -0
- package/dist/browser/utils/link-header.d.ts +69 -0
- package/dist/browser/utils/link-header.js +190 -0
- package/dist/browser/utils/optional-require.d.ts +19 -0
- package/dist/browser/utils/optional-require.js +105 -0
- package/dist/browser/utils/progress.d.ts +8 -0
- package/dist/browser/utils/progress.js +82 -0
- package/dist/browser/utils/request-pool.d.ts +22 -0
- package/dist/browser/utils/request-pool.js +101 -0
- package/dist/browser/utils/sse.d.ts +7 -0
- package/dist/browser/utils/sse.js +67 -0
- package/dist/browser/utils/streaming.d.ts +17 -0
- package/dist/browser/utils/streaming.js +84 -0
- package/dist/browser/utils/try-fn.d.ts +3 -0
- package/dist/browser/utils/try-fn.js +59 -0
- package/dist/browser/utils/user-agent.d.ts +44 -0
- package/dist/browser/utils/user-agent.js +100 -0
- package/dist/browser/utils/whois.d.ts +32 -0
- package/dist/browser/utils/whois.js +246 -0
- package/dist/browser/websocket/client.d.ts +65 -0
- package/dist/browser/websocket/client.js +313 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +99 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/seo/analyzer.d.ts +20 -0
- package/dist/seo/analyzer.js +544 -0
- package/dist/seo/index.d.ts +2 -0
- package/dist/seo/index.js +1 -0
- package/dist/seo/types.d.ts +100 -0
- package/dist/seo/types.js +1 -0
- package/dist/transport/fetch.d.ts +7 -1
- package/dist/transport/fetch.js +58 -76
- package/dist/utils/columns.d.ts +14 -0
- package/dist/utils/columns.js +69 -0
- package/package.json +34 -2
package/dist/transport/fetch.js
CHANGED
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
export class FetchTransport {
|
|
2
|
-
|
|
2
|
+
options;
|
|
3
|
+
constructor(options = {}) {
|
|
4
|
+
this.options = options;
|
|
5
|
+
}
|
|
3
6
|
async dispatch(req) {
|
|
4
7
|
const start = performance.now();
|
|
8
|
+
let timeoutId;
|
|
9
|
+
let abortController;
|
|
10
|
+
const timeoutMs = typeof req.timeout === 'number'
|
|
11
|
+
? req.timeout
|
|
12
|
+
: req.timeout?.request;
|
|
13
|
+
let signal = req.signal;
|
|
14
|
+
if (timeoutMs && !signal) {
|
|
15
|
+
abortController = new AbortController();
|
|
16
|
+
signal = abortController.signal;
|
|
17
|
+
timeoutId = setTimeout(() => abortController.abort(), timeoutMs);
|
|
18
|
+
}
|
|
5
19
|
const requestInit = {
|
|
6
20
|
method: req.method,
|
|
7
21
|
headers: req.headers,
|
|
8
22
|
body: req.body,
|
|
9
|
-
signal
|
|
23
|
+
signal,
|
|
24
|
+
credentials: this.options.credentials,
|
|
25
|
+
cache: this.options.cache,
|
|
26
|
+
keepalive: this.options.keepalive ?? true,
|
|
10
27
|
duplex: req.body ? 'half' : undefined
|
|
11
28
|
};
|
|
12
29
|
try {
|
|
@@ -16,84 +33,22 @@ export class FetchTransport {
|
|
|
16
33
|
total: totalTime,
|
|
17
34
|
firstByte: totalTime,
|
|
18
35
|
};
|
|
19
|
-
|
|
20
|
-
status: response.status,
|
|
21
|
-
statusText: response.statusText,
|
|
22
|
-
headers: response.headers,
|
|
23
|
-
ok: response.ok,
|
|
24
|
-
url: response.url,
|
|
25
|
-
timings,
|
|
26
|
-
raw: response,
|
|
27
|
-
json: () => response.json(),
|
|
28
|
-
text: () => response.text(),
|
|
29
|
-
blob: () => response.blob(),
|
|
30
|
-
cleanText: async () => {
|
|
31
|
-
const text = await response.text();
|
|
32
|
-
return text.replace(/<[^>]*>?/gm, '');
|
|
33
|
-
},
|
|
34
|
-
read: () => response.body,
|
|
35
|
-
clone: () => {
|
|
36
|
-
const cloned = response.clone();
|
|
37
|
-
return createReckerResponseWrapper(cloned, timings);
|
|
38
|
-
},
|
|
39
|
-
async *sse() {
|
|
40
|
-
if (!response.body)
|
|
41
|
-
return;
|
|
42
|
-
const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
|
|
43
|
-
while (true) {
|
|
44
|
-
const { done, value } = await reader.read();
|
|
45
|
-
if (done)
|
|
46
|
-
break;
|
|
47
|
-
const lines = value.split('\n');
|
|
48
|
-
for (const line of lines) {
|
|
49
|
-
if (line.startsWith('data: ')) {
|
|
50
|
-
yield { data: line.slice(6) };
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
async *download() {
|
|
56
|
-
if (!response.body)
|
|
57
|
-
return;
|
|
58
|
-
const reader = response.body.getReader();
|
|
59
|
-
let loaded = 0;
|
|
60
|
-
const total = Number(response.headers.get('content-length')) || undefined;
|
|
61
|
-
while (true) {
|
|
62
|
-
const { done, value } = await reader.read();
|
|
63
|
-
if (done)
|
|
64
|
-
break;
|
|
65
|
-
loaded += value.length;
|
|
66
|
-
yield {
|
|
67
|
-
loaded,
|
|
68
|
-
transferred: loaded,
|
|
69
|
-
total,
|
|
70
|
-
percent: total ? (loaded / total) * 100 : undefined,
|
|
71
|
-
direction: 'download'
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
async *[Symbol.asyncIterator]() {
|
|
76
|
-
if (!response.body)
|
|
77
|
-
return;
|
|
78
|
-
const reader = response.body.getReader();
|
|
79
|
-
while (true) {
|
|
80
|
-
const { done, value } = await reader.read();
|
|
81
|
-
if (done)
|
|
82
|
-
break;
|
|
83
|
-
yield value;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
return reckerResponse;
|
|
36
|
+
return new FetchResponseWrapper(response, timings);
|
|
88
37
|
}
|
|
89
38
|
catch (error) {
|
|
39
|
+
if (error.name === 'AbortError' && abortController) {
|
|
40
|
+
const timeoutError = new Error(`Request timeout after ${timeoutMs}ms`);
|
|
41
|
+
timeoutError.name = 'TimeoutError';
|
|
42
|
+
throw timeoutError;
|
|
43
|
+
}
|
|
90
44
|
throw error;
|
|
91
45
|
}
|
|
46
|
+
finally {
|
|
47
|
+
if (timeoutId)
|
|
48
|
+
clearTimeout(timeoutId);
|
|
49
|
+
}
|
|
92
50
|
}
|
|
93
51
|
}
|
|
94
|
-
function createReckerResponseWrapper(response, timings) {
|
|
95
|
-
return new FetchResponseWrapper(response, timings);
|
|
96
|
-
}
|
|
97
52
|
class FetchResponseWrapper {
|
|
98
53
|
raw;
|
|
99
54
|
timings;
|
|
@@ -118,12 +73,39 @@ class FetchResponseWrapper {
|
|
|
118
73
|
return;
|
|
119
74
|
const stream = this.raw.body.pipeThrough(new TextDecoderStream());
|
|
120
75
|
const reader = stream.getReader();
|
|
76
|
+
let buffer = '';
|
|
121
77
|
while (true) {
|
|
122
78
|
const { done, value } = await reader.read();
|
|
123
79
|
if (done)
|
|
124
80
|
break;
|
|
125
|
-
|
|
126
|
-
|
|
81
|
+
buffer += value;
|
|
82
|
+
const events = buffer.split('\n\n');
|
|
83
|
+
buffer = events.pop() || '';
|
|
84
|
+
for (const event of events) {
|
|
85
|
+
if (!event.trim())
|
|
86
|
+
continue;
|
|
87
|
+
let data = '';
|
|
88
|
+
let eventType;
|
|
89
|
+
let id;
|
|
90
|
+
let retry;
|
|
91
|
+
const lines = event.split('\n');
|
|
92
|
+
for (const line of lines) {
|
|
93
|
+
if (line.startsWith('data: ')) {
|
|
94
|
+
data = data ? data + '\n' + line.slice(6) : line.slice(6);
|
|
95
|
+
}
|
|
96
|
+
else if (line.startsWith('event: ')) {
|
|
97
|
+
eventType = line.slice(7);
|
|
98
|
+
}
|
|
99
|
+
else if (line.startsWith('id: ')) {
|
|
100
|
+
id = line.slice(4);
|
|
101
|
+
}
|
|
102
|
+
else if (line.startsWith('retry: ')) {
|
|
103
|
+
retry = parseInt(line.slice(7), 10);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (data) {
|
|
107
|
+
yield { data, event: eventType, id, retry };
|
|
108
|
+
}
|
|
127
109
|
}
|
|
128
110
|
}
|
|
129
111
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ColumnOptions {
|
|
2
|
+
minWidth?: number;
|
|
3
|
+
maxColumns?: number;
|
|
4
|
+
padding?: number;
|
|
5
|
+
prefix?: string;
|
|
6
|
+
indent?: number;
|
|
7
|
+
transform?: (item: string) => string;
|
|
8
|
+
}
|
|
9
|
+
export declare function getTerminalWidth(): number;
|
|
10
|
+
export declare function formatColumns(items: string[], options?: ColumnOptions): string;
|
|
11
|
+
export declare function formatColumnsRowMajor(items: string[], options?: ColumnOptions): string;
|
|
12
|
+
export declare function formatGroupedColumns(groups: Record<string, string[]>, options?: ColumnOptions & {
|
|
13
|
+
groupPrefix?: string;
|
|
14
|
+
}): string;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export function getTerminalWidth() {
|
|
2
|
+
return process.stdout.columns || 80;
|
|
3
|
+
}
|
|
4
|
+
export function formatColumns(items, options = {}) {
|
|
5
|
+
const { minWidth = 15, maxColumns = Infinity, padding = 2, prefix = '', indent = 2, transform, } = options;
|
|
6
|
+
if (items.length === 0)
|
|
7
|
+
return '';
|
|
8
|
+
const prefixedItems = items.map(item => prefix + item);
|
|
9
|
+
const maxItemWidth = Math.max(...prefixedItems.map(item => item.length));
|
|
10
|
+
const columnWidth = Math.max(minWidth, maxItemWidth + padding);
|
|
11
|
+
const terminalWidth = getTerminalWidth();
|
|
12
|
+
const availableWidth = terminalWidth - indent;
|
|
13
|
+
const calculatedColumns = Math.floor(availableWidth / columnWidth);
|
|
14
|
+
const numColumns = Math.min(Math.max(1, calculatedColumns), maxColumns, items.length);
|
|
15
|
+
const actualColumnWidth = Math.floor(availableWidth / numColumns);
|
|
16
|
+
const numRows = Math.ceil(prefixedItems.length / numColumns);
|
|
17
|
+
const lines = [];
|
|
18
|
+
const indentStr = ' '.repeat(indent);
|
|
19
|
+
for (let row = 0; row < numRows; row++) {
|
|
20
|
+
let line = indentStr;
|
|
21
|
+
for (let col = 0; col < numColumns; col++) {
|
|
22
|
+
const index = col * numRows + row;
|
|
23
|
+
if (index < prefixedItems.length) {
|
|
24
|
+
const rawItem = prefixedItems[index];
|
|
25
|
+
const displayItem = transform ? transform(rawItem) : rawItem;
|
|
26
|
+
const paddingNeeded = actualColumnWidth - rawItem.length;
|
|
27
|
+
line += displayItem + ' '.repeat(Math.max(0, paddingNeeded));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
lines.push(line.trimEnd());
|
|
31
|
+
}
|
|
32
|
+
return lines.join('\n');
|
|
33
|
+
}
|
|
34
|
+
export function formatColumnsRowMajor(items, options = {}) {
|
|
35
|
+
const { minWidth = 15, maxColumns = Infinity, padding = 2, prefix = '', indent = 2, } = options;
|
|
36
|
+
if (items.length === 0)
|
|
37
|
+
return '';
|
|
38
|
+
const prefixedItems = items.map(item => prefix + item);
|
|
39
|
+
const maxItemWidth = Math.max(...prefixedItems.map(item => item.length));
|
|
40
|
+
const columnWidth = Math.max(minWidth, maxItemWidth + padding);
|
|
41
|
+
const terminalWidth = getTerminalWidth();
|
|
42
|
+
const availableWidth = terminalWidth - indent;
|
|
43
|
+
const calculatedColumns = Math.floor(availableWidth / columnWidth);
|
|
44
|
+
const numColumns = Math.min(Math.max(1, calculatedColumns), maxColumns, items.length);
|
|
45
|
+
const actualColumnWidth = Math.floor(availableWidth / numColumns);
|
|
46
|
+
const lines = [];
|
|
47
|
+
const indentStr = ' '.repeat(indent);
|
|
48
|
+
for (let i = 0; i < prefixedItems.length; i += numColumns) {
|
|
49
|
+
let line = indentStr;
|
|
50
|
+
for (let col = 0; col < numColumns && i + col < prefixedItems.length; col++) {
|
|
51
|
+
const item = prefixedItems[i + col];
|
|
52
|
+
line += item.padEnd(actualColumnWidth);
|
|
53
|
+
}
|
|
54
|
+
lines.push(line.trimEnd());
|
|
55
|
+
}
|
|
56
|
+
return lines.join('\n');
|
|
57
|
+
}
|
|
58
|
+
export function formatGroupedColumns(groups, options = {}) {
|
|
59
|
+
const lines = [];
|
|
60
|
+
const { groupPrefix = '', ...columnOptions } = options;
|
|
61
|
+
for (const [groupName, items] of Object.entries(groups)) {
|
|
62
|
+
if (items.length === 0)
|
|
63
|
+
continue;
|
|
64
|
+
lines.push(groupPrefix + groupName + ':');
|
|
65
|
+
lines.push(formatColumns(items, columnOptions));
|
|
66
|
+
lines.push('');
|
|
67
|
+
}
|
|
68
|
+
return lines.join('\n').trimEnd();
|
|
69
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "recker",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.27-next.8396df6",
|
|
4
4
|
"description": "AI & DevX focused HTTP client for Node.js 18+",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -58,6 +58,24 @@
|
|
|
58
58
|
],
|
|
59
59
|
"exports": {
|
|
60
60
|
".": {
|
|
61
|
+
"types": "./dist/index.d.ts",
|
|
62
|
+
"node": {
|
|
63
|
+
"import": "./dist/index.js",
|
|
64
|
+
"require": "./dist/index.cjs"
|
|
65
|
+
},
|
|
66
|
+
"browser": {
|
|
67
|
+
"import": "./dist/browser/browser/index.js",
|
|
68
|
+
"default": "./dist/browser/browser/index.js"
|
|
69
|
+
},
|
|
70
|
+
"import": "./dist/index.js",
|
|
71
|
+
"default": "./dist/index.js"
|
|
72
|
+
},
|
|
73
|
+
"./browser": {
|
|
74
|
+
"types": "./dist/browser/browser/index.d.ts",
|
|
75
|
+
"import": "./dist/browser/browser/index.js",
|
|
76
|
+
"default": "./dist/browser/browser/index.js"
|
|
77
|
+
},
|
|
78
|
+
"./node": {
|
|
61
79
|
"types": "./dist/index.d.ts",
|
|
62
80
|
"import": "./dist/index.js",
|
|
63
81
|
"default": "./dist/index.js"
|
|
@@ -114,8 +132,15 @@
|
|
|
114
132
|
"types": "./dist/mini.d.ts",
|
|
115
133
|
"import": "./dist/mini.js"
|
|
116
134
|
},
|
|
135
|
+
"./presets/*": {
|
|
136
|
+
"types": "./dist/presets/*.d.ts",
|
|
137
|
+
"import": "./dist/presets/*.js"
|
|
138
|
+
},
|
|
117
139
|
"./package.json": "./package.json"
|
|
118
140
|
},
|
|
141
|
+
"browser": "./dist/browser/browser/index.js",
|
|
142
|
+
"unpkg": "./dist/browser/index.umd.min.js",
|
|
143
|
+
"jsdelivr": "./dist/browser/index.umd.min.js",
|
|
119
144
|
"bin": {
|
|
120
145
|
"rek": "./dist/cli/index.js",
|
|
121
146
|
"recker": "./dist/cli/index.js"
|
|
@@ -164,8 +189,10 @@
|
|
|
164
189
|
"commander": "^14.0.0",
|
|
165
190
|
"cross-fetch": "^4.1.0",
|
|
166
191
|
"domhandler": "^5.0.3",
|
|
192
|
+
"esbuild": "^0.24.2",
|
|
167
193
|
"fastembed": "^2.0.0",
|
|
168
194
|
"got": "^14.6.5",
|
|
195
|
+
"happy-dom": "^20.0.11",
|
|
169
196
|
"husky": "^9.1.7",
|
|
170
197
|
"ky": "^1.14.0",
|
|
171
198
|
"make-fetch-happen": "^15.0.3",
|
|
@@ -186,11 +213,16 @@
|
|
|
186
213
|
"zod": "^4.1.13"
|
|
187
214
|
},
|
|
188
215
|
"scripts": {
|
|
189
|
-
"build": "
|
|
216
|
+
"build": "pnpm build:node && pnpm build:browser",
|
|
217
|
+
"build:node": "tsc",
|
|
218
|
+
"build:browser": "tsc -p tsconfig.browser.json",
|
|
219
|
+
"build:browser:bundle": "pnpm build:browser && node scripts/bundle-browser.js",
|
|
190
220
|
"build:embeddings": "tsx scripts/build-embeddings.ts",
|
|
191
221
|
"test": "NODE_OPTIONS='--max-old-space-size=512' vitest run",
|
|
192
222
|
"test:coverage": "NODE_OPTIONS='--max-old-space-size=512' vitest run --coverage",
|
|
193
223
|
"test:light": "NODE_OPTIONS='--max-old-space-size=256' vitest run --poolOptions.forks.maxForks=1",
|
|
224
|
+
"test:browser": "vitest run --config vitest.config.browser.ts",
|
|
225
|
+
"test:browser:coverage": "vitest run --config vitest.config.browser.ts --coverage",
|
|
194
226
|
"bench": "tsx benchmark/index.ts",
|
|
195
227
|
"bench:compare": "tsx benchmark/http-clients-comparison.ts",
|
|
196
228
|
"bench:all": "tsx benchmark/run-all.ts",
|