@hunt-labs/bytekit-cli 0.1.0 → 0.2.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/LICENSE +21 -0
- package/README.md +148 -0
- package/dist/client.d.ts +45 -2
- package/dist/client.js +109 -8
- package/dist/commands/account.d.ts +0 -1
- package/dist/commands/account.js +7 -3
- package/dist/commands/bulk.d.ts +0 -1
- package/dist/commands/bulk.js +0 -1
- package/dist/commands/fetch.d.ts +0 -1
- package/dist/commands/fetch.js +0 -1
- package/dist/commands/monitors.d.ts +0 -1
- package/dist/commands/monitors.js +0 -1
- package/dist/commands/recordings.d.ts +0 -1
- package/dist/commands/recordings.js +0 -1
- package/dist/commands/scrape.d.ts +0 -1
- package/dist/commands/scrape.js +11 -3
- package/dist/commands/screenshots.d.ts +0 -1
- package/dist/commands/screenshots.js +1 -2
- package/dist/commands/search.d.ts +10 -1
- package/dist/commands/search.js +23 -4
- package/dist/commands/sitemap.d.ts +0 -1
- package/dist/commands/sitemap.js +0 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.js +32 -2
- package/dist/lib/url-lines.d.ts +0 -1
- package/dist/lib/url-lines.js +0 -1
- package/dist/output.d.ts +73 -1
- package/dist/output.js +109 -1
- package/package.json +22 -3
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/commands/account.d.ts.map +0 -1
- package/dist/commands/account.js.map +0 -1
- package/dist/commands/bulk.d.ts.map +0 -1
- package/dist/commands/bulk.js.map +0 -1
- package/dist/commands/fetch.d.ts.map +0 -1
- package/dist/commands/fetch.js.map +0 -1
- package/dist/commands/monitors.d.ts.map +0 -1
- package/dist/commands/monitors.js.map +0 -1
- package/dist/commands/recordings.d.ts.map +0 -1
- package/dist/commands/recordings.js.map +0 -1
- package/dist/commands/scrape.d.ts.map +0 -1
- package/dist/commands/scrape.js.map +0 -1
- package/dist/commands/screenshots.d.ts.map +0 -1
- package/dist/commands/screenshots.js.map +0 -1
- package/dist/commands/search.d.ts.map +0 -1
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/sitemap.d.ts.map +0 -1
- package/dist/commands/sitemap.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/url-lines.d.ts.map +0 -1
- package/dist/lib/url-lines.js.map +0 -1
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Hunt Labs, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# @hunt-labs/bytekit-cli
|
|
2
|
+
|
|
3
|
+
Command-line interface for the [ByteKit](https://bytekit.com) API — scrape,
|
|
4
|
+
fetch, screenshot, search, crawl sitemaps, and manage page monitors from your
|
|
5
|
+
shell. Wraps [`@hunt-labs/bytekit-sdk`](https://www.npmjs.com/package/@hunt-labs/bytekit-sdk).
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @hunt-labs/bytekit-cli
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This installs the `bytekit` binary on your `PATH`.
|
|
14
|
+
|
|
15
|
+
To run it without installing:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx @hunt-labs/bytekit-cli scrape create --url https://example.com
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
> **Always use the fully-qualified `@hunt-labs/bytekit-cli` name.** The bare
|
|
22
|
+
> package name `bytekit` on the public npm registry belongs to an unrelated
|
|
23
|
+
> third-party project — running it by that short name fetches someone else's
|
|
24
|
+
> code, not this CLI. The short `bytekit` name is only ever the _binary_ you get
|
|
25
|
+
> after installing `@hunt-labs/bytekit-cli`.
|
|
26
|
+
|
|
27
|
+
Requires Node.js 18+.
|
|
28
|
+
|
|
29
|
+
## Authentication
|
|
30
|
+
|
|
31
|
+
Create an API key at [app.bytekit.com](https://app.bytekit.com) (keys are
|
|
32
|
+
prefixed `sk_live_`), then either export it:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
export RAPIDCRAWL_API_KEY=sk_live_xxx
|
|
36
|
+
bytekit scrape create --url https://example.com
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
or pass it per-invocation with the global `--key` flag (which takes precedence
|
|
40
|
+
over the environment variable):
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
bytekit --key sk_live_xxx scrape create --url https://example.com
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Without a key, the CLI exits with `Error: API key required. Pass --key or set RAPIDCRAWL_API_KEY.`
|
|
47
|
+
|
|
48
|
+
## Base-URL override
|
|
49
|
+
|
|
50
|
+
Requests go to `https://api.bytekit.com` by default. Point the CLI at staging, a
|
|
51
|
+
local gateway, or a proxy with the global `--base-url` flag or the
|
|
52
|
+
`RAPIDCRAWL_BASE_URL` environment variable (the flag wins):
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
bytekit --base-url https://api-stg.bytekit.com scrape create --url https://example.com
|
|
56
|
+
export RAPIDCRAWL_BASE_URL=http://localhost:3001
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Global options
|
|
60
|
+
|
|
61
|
+
| Flag | Env var | Purpose |
|
|
62
|
+
| ------------------ | --------------------- | -------------------------------------------------------------------- |
|
|
63
|
+
| `--key <key>` | `RAPIDCRAWL_API_KEY` | API key used for every request. |
|
|
64
|
+
| `--base-url <url>` | `RAPIDCRAWL_BASE_URL` | API base URL (default `https://api.bytekit.com`). |
|
|
65
|
+
| `--json` | — | Print the raw JSON response instead of the human-readable rendering. |
|
|
66
|
+
|
|
67
|
+
## Commands
|
|
68
|
+
|
|
69
|
+
### `scrape` — scrape URL content
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
bytekit scrape create --url https://example.com --format markdown
|
|
73
|
+
bytekit scrape get sc_123abc
|
|
74
|
+
bytekit scrape bulk create --file urls.txt --webhook-url https://your.app/hooks/bytekit
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### `fetch` — raw, unprocessed response bodies
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
bytekit fetch create --url https://example.com
|
|
81
|
+
bytekit fetch bulk create --file urls.txt --webhook-url https://your.app/hooks/bytekit
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### `search` — ranked web search
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
bytekit search "ai web scraping" --limit 10 --country us
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### `screenshots` — capture a page
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
bytekit screenshots create --url https://example.com --full-page
|
|
94
|
+
bytekit screenshots get ss_123abc
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### `bulk` — bulk screenshot jobs
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
bytekit bulk create --file urls.txt --webhook-url https://your.app/hooks/bytekit
|
|
101
|
+
bulk_id=bulk_123abc
|
|
102
|
+
bytekit bulk get "$bulk_id"
|
|
103
|
+
bytekit bulk screenshots list "$bulk_id"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`urls.txt` is newline-delimited: one plain URL (or `{"url":"https://..."}`) per line.
|
|
107
|
+
|
|
108
|
+
### `monitors` — watch a page for changes
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
bytekit monitors create --url https://example.com/pricing --interval-type daily \
|
|
112
|
+
--webhook-url https://your.app/hooks/bytekit
|
|
113
|
+
bytekit monitors list
|
|
114
|
+
bytekit monitors captures list mon_123abc
|
|
115
|
+
bytekit monitors delete mon_123abc
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### `sitemap` — crawl a site's URL graph
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
bytekit sitemap create --url https://example.com
|
|
122
|
+
bytekit sitemap get sm_123abc
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### `account` — account details and API keys
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
bytekit account get
|
|
129
|
+
bytekit account api-keys list
|
|
130
|
+
bytekit account api-keys create --name "ci-key"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### `recordings` — deactivated
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
bytekit recordings get rec_123abc
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The `/v1/recordings` endpoints are deactivated server-side and return HTTP 410;
|
|
140
|
+
the subcommand remains only so existing scripts fail loudly rather than silently.
|
|
141
|
+
|
|
142
|
+
## Documentation
|
|
143
|
+
|
|
144
|
+
Full API reference: [bytekit.com/docs](https://bytekit.com/docs).
|
|
145
|
+
|
|
146
|
+
## License
|
|
147
|
+
|
|
148
|
+
MIT — see [LICENSE](./LICENSE).
|
package/dist/client.d.ts
CHANGED
|
@@ -3,11 +3,54 @@ export interface GlobalOptions {
|
|
|
3
3
|
key?: string | undefined;
|
|
4
4
|
baseUrl?: string | undefined;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* The API host the SDK itself defaults to. The SDK's copy is module-private, so the CLI declares
|
|
8
|
+
* its own and always passes an explicit `baseUrl` to the constructor — that way the SDK client and
|
|
9
|
+
* the CLI-owned transport below can never disagree about where a request is going. A test pins
|
|
10
|
+
* this constant so the two cannot drift silently.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_BASE_URL = "https://api.bytekit.com";
|
|
13
|
+
/** Backoff used when a 429 arrives with no usable `Retry-After` header. */
|
|
14
|
+
export declare const DEFAULT_RETRY_AFTER_MS = 1000;
|
|
15
|
+
/**
|
|
16
|
+
* Floor for the honored backoff. The gateway sends `Retry-After: resetEpoch - now`, which on a
|
|
17
|
+
* 1-rps free-plan key is routinely `0` — and can be negative under clock skew. Sleeping 0 ms would
|
|
18
|
+
* burn the single retry against a limiter that has not reset yet.
|
|
19
|
+
*/
|
|
20
|
+
export declare const MIN_RETRY_AFTER_MS = 1000;
|
|
21
|
+
/** Ceiling for the honored backoff, so a hostile or absurd header cannot hang the CLI. */
|
|
22
|
+
export declare const MAX_RETRY_AFTER_MS = 60000;
|
|
23
|
+
/** Exactly one retry. A second 429 is terminal — no loop. */
|
|
24
|
+
export declare const MAX_RETRIES = 1;
|
|
25
|
+
/**
|
|
26
|
+
* Parse a `Retry-After` header into a clamped millisecond delay.
|
|
27
|
+
*
|
|
28
|
+
* Only the delta-seconds form is honored (the gateway never sends the HTTP-date form). Anything
|
|
29
|
+
* absent, empty, non-integer or non-numeric falls back to {@link DEFAULT_RETRY_AFTER_MS}; a valid
|
|
30
|
+
* value is clamped into `[MIN_RETRY_AFTER_MS, MAX_RETRY_AFTER_MS]`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function parseRetryAfterMs(raw: string | null): number;
|
|
33
|
+
/**
|
|
34
|
+
* Build the CLI's HTTP transport: the SDK's `request` contract, plus a single bounded retry on 429.
|
|
35
|
+
*
|
|
36
|
+
* Why the CLI owns the `fetch` instead of wrapping the SDK's `request()`: the SDK throws a
|
|
37
|
+
* header-less `RapidCrawlError` and discards the `Response`, so a delegating wrapper can see
|
|
38
|
+
* `status === 429` but can never read `Retry-After`. Owning the fetch is the only way to honor the
|
|
39
|
+
* server's advertised backoff without editing the SDK.
|
|
40
|
+
*
|
|
41
|
+
* Every SDK resource dereferences `this.client.request` at call time, so installing this as an own
|
|
42
|
+
* property of the client (see {@link buildClient}) routes *all* commands through it from one seam.
|
|
43
|
+
*
|
|
44
|
+
* Retries apply to 429 only. Non-429 statuses and network rejections propagate untouched.
|
|
45
|
+
*/
|
|
46
|
+
export declare function createRetryingRequest(apiKey: string, baseUrl: string): RapidCrawl['request'];
|
|
6
47
|
/**
|
|
7
48
|
* Build an authenticated SDK client from global CLI options.
|
|
8
49
|
*
|
|
9
50
|
* Resolution order for apiKey: --key flag → RAPIDCRAWL_API_KEY env var.
|
|
10
|
-
*
|
|
51
|
+
* Exits with a descriptive error when no key is available.
|
|
52
|
+
*
|
|
53
|
+
* The returned client's `request` is replaced by the retrying transport, so every command inherits
|
|
54
|
+
* the 429 retry from this one seam.
|
|
11
55
|
*/
|
|
12
56
|
export declare function buildClient(opts: GlobalOptions): RapidCrawl;
|
|
13
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.js
CHANGED
|
@@ -1,9 +1,112 @@
|
|
|
1
|
-
import { RapidCrawl } from '@hunt-labs/bytekit-sdk';
|
|
1
|
+
import { RapidCrawl, RapidCrawlError } from '@hunt-labs/bytekit-sdk';
|
|
2
|
+
/**
|
|
3
|
+
* The API host the SDK itself defaults to. The SDK's copy is module-private, so the CLI declares
|
|
4
|
+
* its own and always passes an explicit `baseUrl` to the constructor — that way the SDK client and
|
|
5
|
+
* the CLI-owned transport below can never disagree about where a request is going. A test pins
|
|
6
|
+
* this constant so the two cannot drift silently.
|
|
7
|
+
*/
|
|
8
|
+
export const DEFAULT_BASE_URL = 'https://api.bytekit.com';
|
|
9
|
+
/** Backoff used when a 429 arrives with no usable `Retry-After` header. */
|
|
10
|
+
export const DEFAULT_RETRY_AFTER_MS = 1_000;
|
|
11
|
+
/**
|
|
12
|
+
* Floor for the honored backoff. The gateway sends `Retry-After: resetEpoch - now`, which on a
|
|
13
|
+
* 1-rps free-plan key is routinely `0` — and can be negative under clock skew. Sleeping 0 ms would
|
|
14
|
+
* burn the single retry against a limiter that has not reset yet.
|
|
15
|
+
*/
|
|
16
|
+
export const MIN_RETRY_AFTER_MS = 1_000;
|
|
17
|
+
/** Ceiling for the honored backoff, so a hostile or absurd header cannot hang the CLI. */
|
|
18
|
+
export const MAX_RETRY_AFTER_MS = 60_000;
|
|
19
|
+
/** Exactly one retry. A second 429 is terminal — no loop. */
|
|
20
|
+
export const MAX_RETRIES = 1;
|
|
21
|
+
/**
|
|
22
|
+
* Parse a `Retry-After` header into a clamped millisecond delay.
|
|
23
|
+
*
|
|
24
|
+
* Only the delta-seconds form is honored (the gateway never sends the HTTP-date form). Anything
|
|
25
|
+
* absent, empty, non-integer or non-numeric falls back to {@link DEFAULT_RETRY_AFTER_MS}; a valid
|
|
26
|
+
* value is clamped into `[MIN_RETRY_AFTER_MS, MAX_RETRY_AFTER_MS]`.
|
|
27
|
+
*/
|
|
28
|
+
export function parseRetryAfterMs(raw) {
|
|
29
|
+
if (raw === null)
|
|
30
|
+
return DEFAULT_RETRY_AFTER_MS;
|
|
31
|
+
const trimmed = raw.trim();
|
|
32
|
+
if (!/^-?\d+$/.test(trimmed))
|
|
33
|
+
return DEFAULT_RETRY_AFTER_MS;
|
|
34
|
+
const seconds = Number(trimmed);
|
|
35
|
+
if (!Number.isFinite(seconds))
|
|
36
|
+
return DEFAULT_RETRY_AFTER_MS;
|
|
37
|
+
return Math.min(Math.max(seconds * 1000, MIN_RETRY_AFTER_MS), MAX_RETRY_AFTER_MS);
|
|
38
|
+
}
|
|
39
|
+
function sleep(ms) {
|
|
40
|
+
return new Promise((resolve) => {
|
|
41
|
+
setTimeout(resolve, ms);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Shape a failed response into the SDK's OWN error class, using the SDK's own body parsing.
|
|
46
|
+
*
|
|
47
|
+
* Reusing `RapidCrawlError` keeps `{status, code, message}` identical to what a direct SDK call
|
|
48
|
+
* would throw, so `handleError()`'s `'status' in err` branch still renders
|
|
49
|
+
* `Error: <message> (status: <n>)` and exits 1.
|
|
50
|
+
*/
|
|
51
|
+
async function toApiError(response) {
|
|
52
|
+
let code = 'internal_error';
|
|
53
|
+
let message = response.statusText;
|
|
54
|
+
try {
|
|
55
|
+
const json = (await response.json());
|
|
56
|
+
code = json.error?.code ?? code;
|
|
57
|
+
message = json.error?.message ?? message;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// leave defaults
|
|
61
|
+
}
|
|
62
|
+
return new RapidCrawlError(response.status, code, message);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Build the CLI's HTTP transport: the SDK's `request` contract, plus a single bounded retry on 429.
|
|
66
|
+
*
|
|
67
|
+
* Why the CLI owns the `fetch` instead of wrapping the SDK's `request()`: the SDK throws a
|
|
68
|
+
* header-less `RapidCrawlError` and discards the `Response`, so a delegating wrapper can see
|
|
69
|
+
* `status === 429` but can never read `Retry-After`. Owning the fetch is the only way to honor the
|
|
70
|
+
* server's advertised backoff without editing the SDK.
|
|
71
|
+
*
|
|
72
|
+
* Every SDK resource dereferences `this.client.request` at call time, so installing this as an own
|
|
73
|
+
* property of the client (see {@link buildClient}) routes *all* commands through it from one seam.
|
|
74
|
+
*
|
|
75
|
+
* Retries apply to 429 only. Non-429 statuses and network rejections propagate untouched.
|
|
76
|
+
*/
|
|
77
|
+
export function createRetryingRequest(apiKey, baseUrl) {
|
|
78
|
+
return async function request(method, path, body) {
|
|
79
|
+
for (let attempt = 0;; attempt++) {
|
|
80
|
+
const init = {
|
|
81
|
+
method,
|
|
82
|
+
headers: {
|
|
83
|
+
Authorization: `Bearer ${apiKey}`,
|
|
84
|
+
'Content-Type': 'application/json',
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
if (body !== undefined) {
|
|
88
|
+
init.body = JSON.stringify(body);
|
|
89
|
+
}
|
|
90
|
+
const response = await fetch(`${baseUrl}${path}`, init);
|
|
91
|
+
if (response.ok) {
|
|
92
|
+
return (await response.json());
|
|
93
|
+
}
|
|
94
|
+
if (response.status === 429 && attempt < MAX_RETRIES) {
|
|
95
|
+
await sleep(parseRetryAfterMs(response.headers.get('Retry-After')));
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
throw await toApiError(response);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
2
102
|
/**
|
|
3
103
|
* Build an authenticated SDK client from global CLI options.
|
|
4
104
|
*
|
|
5
105
|
* Resolution order for apiKey: --key flag → RAPIDCRAWL_API_KEY env var.
|
|
6
|
-
*
|
|
106
|
+
* Exits with a descriptive error when no key is available.
|
|
107
|
+
*
|
|
108
|
+
* The returned client's `request` is replaced by the retrying transport, so every command inherits
|
|
109
|
+
* the 429 retry from this one seam.
|
|
7
110
|
*/
|
|
8
111
|
export function buildClient(opts) {
|
|
9
112
|
const apiKey = opts.key ?? process.env['RAPIDCRAWL_API_KEY'];
|
|
@@ -11,10 +114,8 @@ export function buildClient(opts) {
|
|
|
11
114
|
console.error('Error: API key required. Pass --key or set RAPIDCRAWL_API_KEY.');
|
|
12
115
|
process.exit(1);
|
|
13
116
|
}
|
|
14
|
-
const baseUrl = opts.baseUrl ?? process.env['RAPIDCRAWL_BASE_URL'];
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
});
|
|
117
|
+
const baseUrl = opts.baseUrl ?? process.env['RAPIDCRAWL_BASE_URL'] ?? DEFAULT_BASE_URL;
|
|
118
|
+
const client = new RapidCrawl({ apiKey, baseUrl });
|
|
119
|
+
client.request = createRetryingRequest(apiKey, baseUrl);
|
|
120
|
+
return client;
|
|
19
121
|
}
|
|
20
|
-
//# sourceMappingURL=client.js.map
|
package/dist/commands/account.js
CHANGED
|
@@ -12,7 +12,10 @@ export function makeAccountCommand(getGlobal) {
|
|
|
12
12
|
const g = getGlobal();
|
|
13
13
|
const client = buildClient(g);
|
|
14
14
|
try {
|
|
15
|
-
|
|
15
|
+
// The API's field is `label`, not `name` — sending `{ name }` created an
|
|
16
|
+
// UNLABELLED key, because the gateway ignored the unknown field (#2426:
|
|
17
|
+
// the SDK's newly derived request type is what surfaced this).
|
|
18
|
+
const result = await client.account.apiKeys.create({ label: opts.name });
|
|
16
19
|
printResult(result, g.json);
|
|
17
20
|
}
|
|
18
21
|
catch (err) {
|
|
@@ -55,7 +58,9 @@ export function makeAccountCommand(getGlobal) {
|
|
|
55
58
|
const g = getGlobal();
|
|
56
59
|
const client = buildClient(g);
|
|
57
60
|
try {
|
|
58
|
-
|
|
61
|
+
// As above: the API's field is `label`, so `--name` never actually
|
|
62
|
+
// renamed the key.
|
|
63
|
+
const result = await client.account.apiKeys.update(id, { label: opts.name });
|
|
59
64
|
printResult(result, g.json);
|
|
60
65
|
}
|
|
61
66
|
catch (err) {
|
|
@@ -93,4 +98,3 @@ export function makeAccountCommand(getGlobal) {
|
|
|
93
98
|
});
|
|
94
99
|
return cmd;
|
|
95
100
|
}
|
|
96
|
-
//# sourceMappingURL=account.js.map
|
package/dist/commands/bulk.d.ts
CHANGED
package/dist/commands/bulk.js
CHANGED
package/dist/commands/fetch.d.ts
CHANGED
package/dist/commands/fetch.js
CHANGED
package/dist/commands/scrape.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { buildClient } from '../client.js';
|
|
3
|
-
import { printResult, handleError } from '../output.js';
|
|
3
|
+
import { printResult, handleError, resolveOutputMode, emitResult } from '../output.js';
|
|
4
4
|
import { parseUrlLines } from '../lib/url-lines.js';
|
|
5
5
|
export function makeScrapeCommand(getGlobal) {
|
|
6
6
|
const cmd = new Command('scrape').description('Scrape URL content');
|
|
@@ -43,6 +43,8 @@ export function makeScrapeCommand(getGlobal) {
|
|
|
43
43
|
.description('Create a scrape job')
|
|
44
44
|
.requiredOption('--url <url>', 'URL to scrape')
|
|
45
45
|
.option('--format <format>', 'Output format (e.g. markdown, html); sent as the formats array')
|
|
46
|
+
.option('--raw', 'Print the requested format body raw, with no JSON wrapper')
|
|
47
|
+
.option('-o, --output <file>', 'Write the output to the given file path (implies --raw unless --json is set)')
|
|
46
48
|
.action(async (opts) => {
|
|
47
49
|
const g = getGlobal();
|
|
48
50
|
const client = buildClient(g);
|
|
@@ -53,8 +55,15 @@ export function makeScrapeCommand(getGlobal) {
|
|
|
53
55
|
if (opts.format !== undefined)
|
|
54
56
|
body['formats'] = [opts.format];
|
|
55
57
|
try {
|
|
58
|
+
// FIRST statement inside the try — deliberately NOT hoisted next to buildClient() where
|
|
59
|
+
// the other handlers put pre-request logic. index.ts drives commander with .parse(), not
|
|
60
|
+
// .parseAsync(), so nothing awaits this action's promise: a throw raised above the try
|
|
61
|
+
// would escape as an unhandled rejection and print a RAW STACK TRACE instead of
|
|
62
|
+
// handleError()'s clean one-liner. buildClient() does no network I/O, so rejecting the
|
|
63
|
+
// --json/--raw conflict here still happens before any request is issued.
|
|
64
|
+
const mode = resolveOutputMode({ json: g.json, raw: opts.raw, output: opts.output });
|
|
56
65
|
const result = await client.scrape.create(body);
|
|
57
|
-
|
|
66
|
+
emitResult(result, mode, { file: opts.output }, opts.format);
|
|
58
67
|
}
|
|
59
68
|
catch (err) {
|
|
60
69
|
handleError(err);
|
|
@@ -76,4 +85,3 @@ export function makeScrapeCommand(getGlobal) {
|
|
|
76
85
|
});
|
|
77
86
|
return cmd;
|
|
78
87
|
}
|
|
79
|
-
//# sourceMappingURL=scrape.js.map
|
|
@@ -13,7 +13,7 @@ export function makeScreenshotsCommand(getGlobal) {
|
|
|
13
13
|
const client = buildClient(g);
|
|
14
14
|
const body = { url: opts.url };
|
|
15
15
|
if (opts.fullPage === true)
|
|
16
|
-
body
|
|
16
|
+
body.full_page = true;
|
|
17
17
|
try {
|
|
18
18
|
const result = await client.screenshots.create(body);
|
|
19
19
|
printResult(result, g.json);
|
|
@@ -38,4 +38,3 @@ export function makeScreenshotsCommand(getGlobal) {
|
|
|
38
38
|
});
|
|
39
39
|
return cmd;
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=screenshots.js.map
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { type GlobalOptions } from '../client.js';
|
|
3
|
+
/**
|
|
4
|
+
* Validate `--limit` locally, before any HTTP request is issued.
|
|
5
|
+
*
|
|
6
|
+
* Commander runs an option's argParser during parsing — ahead of the action callback — so a
|
|
7
|
+
* rejection here means the client is never built and no request body is constructed. The strict
|
|
8
|
+
* `/^\d+$/` test (rather than Number.isInteger alone) deterministically rejects `abc`, ``, `1.5`,
|
|
9
|
+
* `-5`, `1e2`, `0x10`, `+1` and `Infinity`, all of which `Number()` would otherwise coerce into a
|
|
10
|
+
* NaN (→ `limit: null` on the wire) or a silently-wrong value.
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseLimit(value: string): number;
|
|
3
13
|
export declare function makeSearchCommand(getGlobal: () => GlobalOptions & {
|
|
4
14
|
json: boolean;
|
|
5
15
|
}): Command;
|
|
6
|
-
//# sourceMappingURL=search.d.ts.map
|
package/dist/commands/search.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
1
|
+
import { Command, InvalidArgumentError } from 'commander';
|
|
2
2
|
import { buildClient } from '../client.js';
|
|
3
3
|
import { printResult, handleError } from '../output.js';
|
|
4
4
|
/**
|
|
@@ -14,12 +14,32 @@ function renderTable(response) {
|
|
|
14
14
|
console.log(` ${result.snippet}`);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
const LIMIT_MIN = 1;
|
|
18
|
+
const LIMIT_MAX = 100;
|
|
19
|
+
/**
|
|
20
|
+
* Validate `--limit` locally, before any HTTP request is issued.
|
|
21
|
+
*
|
|
22
|
+
* Commander runs an option's argParser during parsing — ahead of the action callback — so a
|
|
23
|
+
* rejection here means the client is never built and no request body is constructed. The strict
|
|
24
|
+
* `/^\d+$/` test (rather than Number.isInteger alone) deterministically rejects `abc`, ``, `1.5`,
|
|
25
|
+
* `-5`, `1e2`, `0x10`, `+1` and `Infinity`, all of which `Number()` would otherwise coerce into a
|
|
26
|
+
* NaN (→ `limit: null` on the wire) or a silently-wrong value.
|
|
27
|
+
*/
|
|
28
|
+
export function parseLimit(value) {
|
|
29
|
+
const invalid = new InvalidArgumentError(`--limit must be a whole number between ${LIMIT_MIN} and ${LIMIT_MAX}.`);
|
|
30
|
+
if (!/^\d+$/.test(value))
|
|
31
|
+
throw invalid;
|
|
32
|
+
const n = Number(value);
|
|
33
|
+
if (n < LIMIT_MIN || n > LIMIT_MAX)
|
|
34
|
+
throw invalid;
|
|
35
|
+
return n;
|
|
36
|
+
}
|
|
17
37
|
export function makeSearchCommand(getGlobal) {
|
|
18
38
|
return new Command('search')
|
|
19
39
|
.description('Run a web search and return ranked results')
|
|
20
40
|
.argument('<query>', 'Search query')
|
|
21
41
|
.option('--type <type>', 'Search index to query: web (default), news, or images')
|
|
22
|
-
.option('--limit <n>', 'Maximum number of results to return (1–100)')
|
|
42
|
+
.option('--limit <n>', 'Maximum number of results to return (1–100)', parseLimit)
|
|
23
43
|
.option('--country <code>', 'Two-letter country code to localize results (e.g. us, de)')
|
|
24
44
|
.option('--language <code>', 'Two-letter language code for results (e.g. en, fr)')
|
|
25
45
|
.option('--date-range <window>', 'Restrict results to a recency window: any (default), hour, day, week, month, or year')
|
|
@@ -34,7 +54,7 @@ export function makeSearchCommand(getGlobal) {
|
|
|
34
54
|
if (opts.type !== undefined)
|
|
35
55
|
body.type = opts.type;
|
|
36
56
|
if (opts.limit !== undefined)
|
|
37
|
-
body.limit =
|
|
57
|
+
body.limit = opts.limit;
|
|
38
58
|
if (opts.country !== undefined)
|
|
39
59
|
body.country = opts.country;
|
|
40
60
|
if (opts.language !== undefined)
|
|
@@ -55,4 +75,3 @@ export function makeSearchCommand(getGlobal) {
|
|
|
55
75
|
}
|
|
56
76
|
});
|
|
57
77
|
}
|
|
58
|
-
//# sourceMappingURL=search.js.map
|
package/dist/commands/sitemap.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2,4 +2,18 @@
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
/** Construct the root CLI program. Exported so tests can inspect identity/structure without parsing argv. */
|
|
4
4
|
export declare function buildProgram(): Command;
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* True when this module is the process entrypoint (run directly or via its bin), false when it is
|
|
7
|
+
* merely imported (e.g. the test suite importing `buildProgram`).
|
|
8
|
+
*
|
|
9
|
+
* npm/npx expose the bin as a `node_modules/.bin/bytekit` SYMLINK. Node reports the real file in
|
|
10
|
+
* `import.meta.url` but leaves `process.argv[1]` as the symlink path, so comparing them raw is
|
|
11
|
+
* always false — `.parse()` never ran and the CLI silently exited 0 (issue #2418). Canonicalizing
|
|
12
|
+
* makes both sides the real `index.js` path.
|
|
13
|
+
*
|
|
14
|
+
* Mirrors `isEntrypoint` in `@hunt-labs/bytekit-mcp` (`packages/mcp-server/src/cli.ts`), which
|
|
15
|
+
* solved the same defect for its own bin — with one deliberate strengthening: the MODULE side is
|
|
16
|
+
* canonicalized too, not just argv[1]. Under `node --preserve-symlinks`, `import.meta.url` is
|
|
17
|
+
* itself the symlink path, and canonicalizing only argv[1] would merely move the mismatch.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isEntrypoint(argv1: string | undefined, moduleUrl: string): boolean;
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
+
import { realpathSync } from 'node:fs';
|
|
3
4
|
import { createRequire } from 'node:module';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
4
6
|
import { makeScrapeCommand } from './commands/scrape.js';
|
|
5
7
|
import { makeScreenshotsCommand } from './commands/screenshots.js';
|
|
6
8
|
import { makeRecordingsCommand } from './commands/recordings.js';
|
|
@@ -46,8 +48,36 @@ export function buildProgram() {
|
|
|
46
48
|
program.addCommand(makeAccountCommand(getGlobal));
|
|
47
49
|
return program;
|
|
48
50
|
}
|
|
51
|
+
/** Resolve symlinks and `..` segments, falling back to the raw path if it cannot be resolved. */
|
|
52
|
+
function canonicalize(path) {
|
|
53
|
+
try {
|
|
54
|
+
return realpathSync(path);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// argv[1] may not be a real file under exotic launchers; fall back to the raw value.
|
|
58
|
+
return path;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* True when this module is the process entrypoint (run directly or via its bin), false when it is
|
|
63
|
+
* merely imported (e.g. the test suite importing `buildProgram`).
|
|
64
|
+
*
|
|
65
|
+
* npm/npx expose the bin as a `node_modules/.bin/bytekit` SYMLINK. Node reports the real file in
|
|
66
|
+
* `import.meta.url` but leaves `process.argv[1]` as the symlink path, so comparing them raw is
|
|
67
|
+
* always false — `.parse()` never ran and the CLI silently exited 0 (issue #2418). Canonicalizing
|
|
68
|
+
* makes both sides the real `index.js` path.
|
|
69
|
+
*
|
|
70
|
+
* Mirrors `isEntrypoint` in `@hunt-labs/bytekit-mcp` (`packages/mcp-server/src/cli.ts`), which
|
|
71
|
+
* solved the same defect for its own bin — with one deliberate strengthening: the MODULE side is
|
|
72
|
+
* canonicalized too, not just argv[1]. Under `node --preserve-symlinks`, `import.meta.url` is
|
|
73
|
+
* itself the symlink path, and canonicalizing only argv[1] would merely move the mismatch.
|
|
74
|
+
*/
|
|
75
|
+
export function isEntrypoint(argv1, moduleUrl) {
|
|
76
|
+
if (argv1 === undefined || argv1 === '')
|
|
77
|
+
return false;
|
|
78
|
+
return canonicalize(fileURLToPath(moduleUrl)) === canonicalize(argv1);
|
|
79
|
+
}
|
|
49
80
|
// Only parse argv when run as the entrypoint, not when imported by tests.
|
|
50
|
-
if (process.argv[1]
|
|
81
|
+
if (isEntrypoint(process.argv[1], import.meta.url)) {
|
|
51
82
|
buildProgram().parse(process.argv);
|
|
52
83
|
}
|
|
53
|
-
//# sourceMappingURL=index.js.map
|
package/dist/lib/url-lines.d.ts
CHANGED
package/dist/lib/url-lines.js
CHANGED
package/dist/output.d.ts
CHANGED
|
@@ -1,3 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a command's result should be rendered.
|
|
3
|
+
*
|
|
4
|
+
* - `human` — today's key/value dump (the default).
|
|
5
|
+
* - `json` — the full JSON envelope (`--json`), with or without a file destination.
|
|
6
|
+
* - `raw` — the single requested format's body (`--raw`, or a BARE `--output`).
|
|
7
|
+
*/
|
|
8
|
+
export type OutputMode = {
|
|
9
|
+
kind: 'human';
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'json';
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'raw';
|
|
14
|
+
};
|
|
15
|
+
/** Where the output goes. `file` unset ⇒ stdout. */
|
|
16
|
+
export interface OutputTarget {
|
|
17
|
+
file?: string | undefined;
|
|
18
|
+
}
|
|
19
|
+
/** The output-selecting flags as commander hands them back. */
|
|
20
|
+
export interface OutputFlags {
|
|
21
|
+
json: boolean;
|
|
22
|
+
raw?: boolean | undefined;
|
|
23
|
+
output?: string | undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the output mode from the flags, and enforce the `--json` / `--raw` exclusion.
|
|
27
|
+
*
|
|
28
|
+
* | flags | mode |
|
|
29
|
+
* |---------------------|-------|
|
|
30
|
+
* | *(none)* | human |
|
|
31
|
+
* | `--json` | json |
|
|
32
|
+
* | `--raw` | raw |
|
|
33
|
+
* | `--output f` (bare) | raw |
|
|
34
|
+
* | `--json --output f` | json |
|
|
35
|
+
* | `--json --raw` | usage error |
|
|
36
|
+
*
|
|
37
|
+
* A bare `--output` implies the RAW representation — the file is a destination for the same body
|
|
38
|
+
* `--raw` prints, so `-o page.md` yields markdown, not a JSON envelope with an `.md` extension.
|
|
39
|
+
* `human` mode is therefore unreachable with a file destination, by construction.
|
|
40
|
+
*
|
|
41
|
+
* This is a hand-written guard rather than commander's built-in option-conflict API, which cannot
|
|
42
|
+
* express the exclusion here: `_checkForConflictingLocalOptions` only compares a command against
|
|
43
|
+
* its OWN options, and `--json` is a ROOT-program option while `--raw` lives on the `scrape create`
|
|
44
|
+
* subcommand — declaring `--raw` to conflict with `json` would compile, run, and silently never
|
|
45
|
+
* fire.
|
|
46
|
+
*
|
|
47
|
+
* Throws a PLAIN `Error` (not commander's `InvalidArgumentError`, which commander only intercepts
|
|
48
|
+
* from an option argParser). Callers must invoke this from inside their action's `try` block so the
|
|
49
|
+
* throw reaches `handleError()` rather than escaping as an unhandled rejection.
|
|
50
|
+
*/
|
|
51
|
+
export declare function resolveOutputMode(flags: OutputFlags): OutputMode;
|
|
52
|
+
/**
|
|
53
|
+
* Narrow an SDK response (typed `unknown` today) down to the single format body to emit raw.
|
|
54
|
+
*
|
|
55
|
+
* Errors — rather than guessing or stringifying — whenever the request is ambiguous or the body is
|
|
56
|
+
* not text, so `--raw` can never print `[object Object]` or a format the caller did not ask for.
|
|
57
|
+
*/
|
|
58
|
+
export declare function extractRawBody(response: unknown, requestedFormat?: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Emit a raw body to the target.
|
|
61
|
+
*
|
|
62
|
+
* Uses `process.stdout.write`, never `console.log`: `console.log` appends a newline, which would
|
|
63
|
+
* make the stdout bytes and the `--output` file bytes differ.
|
|
64
|
+
*/
|
|
65
|
+
export declare function emitRaw(body: string, target: OutputTarget): void;
|
|
66
|
+
/**
|
|
67
|
+
* The single output dispatch a command calls — so no command needs `node:fs` and every rendering
|
|
68
|
+
* branch stays in this module.
|
|
69
|
+
*
|
|
70
|
+
* `printResult` is delegated to unchanged for the json-to-stdout and human paths, so existing
|
|
71
|
+
* `--json | jq` pipelines stay byte-identical.
|
|
72
|
+
*/
|
|
73
|
+
export declare function emitResult(result: unknown, mode: OutputMode, target: OutputTarget, requestedFormat?: string): void;
|
|
1
74
|
/**
|
|
2
75
|
* Print a result to stdout.
|
|
3
76
|
*
|
|
@@ -8,4 +81,3 @@ export declare function printResult(data: unknown, jsonMode: boolean): void;
|
|
|
8
81
|
* Handle a CLI command error: print to stderr and exit 1.
|
|
9
82
|
*/
|
|
10
83
|
export declare function handleError(err: unknown): never;
|
|
11
|
-
//# sourceMappingURL=output.d.ts.map
|
package/dist/output.js
CHANGED
|
@@ -1,3 +1,112 @@
|
|
|
1
|
+
import { writeFileSync } from 'node:fs';
|
|
2
|
+
/** Text formats whose bodies are strings and can therefore be emitted raw. */
|
|
3
|
+
const TEXT_FORMATS = 'markdown, html, raw_html';
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the output mode from the flags, and enforce the `--json` / `--raw` exclusion.
|
|
6
|
+
*
|
|
7
|
+
* | flags | mode |
|
|
8
|
+
* |---------------------|-------|
|
|
9
|
+
* | *(none)* | human |
|
|
10
|
+
* | `--json` | json |
|
|
11
|
+
* | `--raw` | raw |
|
|
12
|
+
* | `--output f` (bare) | raw |
|
|
13
|
+
* | `--json --output f` | json |
|
|
14
|
+
* | `--json --raw` | usage error |
|
|
15
|
+
*
|
|
16
|
+
* A bare `--output` implies the RAW representation — the file is a destination for the same body
|
|
17
|
+
* `--raw` prints, so `-o page.md` yields markdown, not a JSON envelope with an `.md` extension.
|
|
18
|
+
* `human` mode is therefore unreachable with a file destination, by construction.
|
|
19
|
+
*
|
|
20
|
+
* This is a hand-written guard rather than commander's built-in option-conflict API, which cannot
|
|
21
|
+
* express the exclusion here: `_checkForConflictingLocalOptions` only compares a command against
|
|
22
|
+
* its OWN options, and `--json` is a ROOT-program option while `--raw` lives on the `scrape create`
|
|
23
|
+
* subcommand — declaring `--raw` to conflict with `json` would compile, run, and silently never
|
|
24
|
+
* fire.
|
|
25
|
+
*
|
|
26
|
+
* Throws a PLAIN `Error` (not commander's `InvalidArgumentError`, which commander only intercepts
|
|
27
|
+
* from an option argParser). Callers must invoke this from inside their action's `try` block so the
|
|
28
|
+
* throw reaches `handleError()` rather than escaping as an unhandled rejection.
|
|
29
|
+
*/
|
|
30
|
+
export function resolveOutputMode(flags) {
|
|
31
|
+
if (flags.json && flags.raw === true) {
|
|
32
|
+
throw new Error('--raw cannot be used with --json');
|
|
33
|
+
}
|
|
34
|
+
if (flags.json)
|
|
35
|
+
return { kind: 'json' };
|
|
36
|
+
if (flags.raw === true || flags.output !== undefined)
|
|
37
|
+
return { kind: 'raw' };
|
|
38
|
+
return { kind: 'human' };
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Narrow an SDK response (typed `unknown` today) down to the single format body to emit raw.
|
|
42
|
+
*
|
|
43
|
+
* Errors — rather than guessing or stringifying — whenever the request is ambiguous or the body is
|
|
44
|
+
* not text, so `--raw` can never print `[object Object]` or a format the caller did not ask for.
|
|
45
|
+
*/
|
|
46
|
+
export function extractRawBody(response, requestedFormat) {
|
|
47
|
+
const formats = typeof response === 'object' && response !== null
|
|
48
|
+
? response.formats
|
|
49
|
+
: undefined;
|
|
50
|
+
if (typeof formats !== 'object' || formats === null || Array.isArray(formats)) {
|
|
51
|
+
throw new Error('--raw: response contains no formats');
|
|
52
|
+
}
|
|
53
|
+
const bag = formats;
|
|
54
|
+
const keys = Object.keys(bag);
|
|
55
|
+
let key;
|
|
56
|
+
if (requestedFormat !== undefined) {
|
|
57
|
+
key = requestedFormat;
|
|
58
|
+
}
|
|
59
|
+
else if (keys.length === 1 && keys[0] !== undefined) {
|
|
60
|
+
key = keys[0];
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
throw new Error('--raw requires --format when the response contains multiple formats');
|
|
64
|
+
}
|
|
65
|
+
const value = bag[key];
|
|
66
|
+
if (value === undefined) {
|
|
67
|
+
throw new Error(`--raw: the response contains no "${key}" format (present: ${keys.join(', ') || 'none'})`);
|
|
68
|
+
}
|
|
69
|
+
if (typeof value !== 'string') {
|
|
70
|
+
throw new Error(`--raw only supports text formats (${TEXT_FORMATS})`);
|
|
71
|
+
}
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Emit a raw body to the target.
|
|
76
|
+
*
|
|
77
|
+
* Uses `process.stdout.write`, never `console.log`: `console.log` appends a newline, which would
|
|
78
|
+
* make the stdout bytes and the `--output` file bytes differ.
|
|
79
|
+
*/
|
|
80
|
+
export function emitRaw(body, target) {
|
|
81
|
+
if (target.file !== undefined) {
|
|
82
|
+
writeFileSync(target.file, body);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
process.stdout.write(body);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The single output dispatch a command calls — so no command needs `node:fs` and every rendering
|
|
89
|
+
* branch stays in this module.
|
|
90
|
+
*
|
|
91
|
+
* `printResult` is delegated to unchanged for the json-to-stdout and human paths, so existing
|
|
92
|
+
* `--json | jq` pipelines stay byte-identical.
|
|
93
|
+
*/
|
|
94
|
+
export function emitResult(result, mode, target, requestedFormat) {
|
|
95
|
+
if (mode.kind === 'raw') {
|
|
96
|
+
emitRaw(extractRawBody(result, requestedFormat), target);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (mode.kind === 'json') {
|
|
100
|
+
if (target.file !== undefined) {
|
|
101
|
+
writeFileSync(target.file, JSON.stringify(result, null, 2));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
printResult(result, true);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// human — unreachable with a file destination (resolveOutputMode never yields it alongside one).
|
|
108
|
+
printResult(result, false);
|
|
109
|
+
}
|
|
1
110
|
/**
|
|
2
111
|
* Print a result to stdout.
|
|
3
112
|
*
|
|
@@ -41,4 +150,3 @@ export function handleError(err) {
|
|
|
41
150
|
}
|
|
42
151
|
process.exit(1);
|
|
43
152
|
}
|
|
44
|
-
//# sourceMappingURL=output.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hunt-labs/bytekit-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "ByteKit CLI — wraps @hunt-labs/bytekit-sdk as shell subcommands",
|
|
5
|
+
"license": "MIT",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"publishConfig": {
|
|
7
8
|
"access": "public"
|
|
@@ -14,13 +15,31 @@
|
|
|
14
15
|
"bin": {
|
|
15
16
|
"bytekit": "./dist/index.js"
|
|
16
17
|
},
|
|
17
|
-
"
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"bytekit",
|
|
23
|
+
"data-extraction",
|
|
24
|
+
"web-data",
|
|
25
|
+
"cli",
|
|
26
|
+
"scraping",
|
|
27
|
+
"web-scraping",
|
|
28
|
+
"crawler",
|
|
29
|
+
"markdown",
|
|
30
|
+
"screenshot",
|
|
31
|
+
"command-line"
|
|
32
|
+
],
|
|
33
|
+
"homepage": "https://bytekit.com/docs",
|
|
34
|
+
"bugs": {
|
|
35
|
+
"email": "support@bytekit.com"
|
|
36
|
+
},
|
|
18
37
|
"files": [
|
|
19
38
|
"dist"
|
|
20
39
|
],
|
|
21
40
|
"dependencies": {
|
|
22
41
|
"commander": "^12.0.0",
|
|
23
|
-
"@hunt-labs/bytekit-sdk": "0.
|
|
42
|
+
"@hunt-labs/bytekit-sdk": "^0.2.0"
|
|
24
43
|
},
|
|
25
44
|
"devDependencies": {
|
|
26
45
|
"@types/node": "^22.0.0",
|
package/dist/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,CAa3D"}
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOpD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAmB;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEnE,OAAO,IAAI,UAAU,CAAC;QACpB,MAAM;QACN,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/commands/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG/D,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAqG9F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/commands/account.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../src/commands/bulk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/D,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CA0D3F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bulk.js","sourceRoot":"","sources":["../../src/commands/bulk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,eAAe,CAAC,SAAkD;IAChF,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;IAE1E,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAE/F,cAAc;SACX,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAC/C,EAAwD,CACzD,CAAC;YACF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAE/B,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,cAAc,CACb,eAAe,EACf,8EAA8E,CAC/E;SACA,cAAc,CAAC,qBAAqB,EAAE,mDAAmD,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,IAA0C,EAAE,EAAE;QAC3D,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAChF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAA2C,CAAC,CAAC;YAClF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/commands/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAkF5F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/commands/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,gBAAgB,CAAC,SAAkD;IACjF,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAE7E,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAEzE,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yBAAyB,CAAC;SACtC,cAAc,CACb,eAAe,EACf,8EAA8E,CAC/E;SACA,cAAc,CAAC,qBAAqB,EAAE,mDAAmD,CAAC;SAC1F,MAAM,CAAC,KAAK,EAAE,IAA0C,EAAE,EAAE;QAC3D,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACtF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CACxC,EAAiD,CAClD,CAAC;YACF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAExB,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0BAA0B,CAAC;SACvC,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,IAAsC,EAAE,EAAE;QACvD,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;YACH,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,0CAA0C,CAAC;SACvD,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,IAAsC,EAAE,EAAE;QACvD,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;gBACpC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;YACH,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"monitors.d.ts","sourceRoot":"","sources":["../../src/commands/monitors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG/D,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CA2H/F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"monitors.js","sourceRoot":"","sources":["../../src/commands/monitors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../src/commands/recordings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG/D,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAmCjG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recordings.js","sourceRoot":"","sources":["../../src/commands/recordings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,qBAAqB,CAAC,SAAkD;IACtF,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAE1E,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wBAAwB,CAAC;SACrC,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;QACtC,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACjE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,CACxC,EAAiD,CAClD,CAAC;YACF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../src/commands/scrape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/D,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAkF7F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/commands/scrape.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screenshots.d.ts","sourceRoot":"","sources":["../../src/commands/screenshots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG/D,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAsCT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screenshots.js","sourceRoot":"","sources":["../../src/commands/screenshots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,sBAAsB,CACpC,SAAkD;IAElD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAE5E,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sBAAsB,CAAC;SACnC,cAAc,CAAC,aAAa,EAAE,mBAAmB,CAAC;SAClD,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,IAAyC,EAAE,EAAE;QAC1D,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAA4B,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CACzC,EAAkD,CACnD,CAAC;YACF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAiB/D,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAiD7F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;GAKG;AACH,SAAS,WAAW,CAAC,QAAwB;IAC3C,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAkD;IAClF,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;SACnC,MAAM,CAAC,eAAe,EAAE,uDAAuD,CAAC;SAChF,MAAM,CAAC,aAAa,EAAE,6CAA6C,CAAC;SACpE,MAAM,CAAC,kBAAkB,EAAE,2DAA2D,CAAC;SACvF,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;SACjF,MAAM,CACL,uBAAuB,EACvB,sFAAsF,CACvF;SACA,MAAM,CACL,KAAK,EACH,KAAa,EACb,IAMC,EACD,EAAE;QACF,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAE9B,oEAAoE;QACpE,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAkB,CAAC;QACjE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAA4B,CAAC;QAEtF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap.d.ts","sourceRoot":"","sources":["../../src/commands/sitemap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAG/D,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAiC9F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../../src/commands/sitemap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAsB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,kBAAkB,CAAC,SAAkD;IACnF,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAE3E,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uBAAuB,CAAC;SACpC,cAAc,CAAC,aAAa,EAAE,mBAAmB,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;QACtC,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9D,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAA8C,CAAC,CAAC;YACxF,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,6GAA6G;AAC7G,wBAAgB,YAAY,IAAI,OAAO,CAgCtC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url-lines.d.ts","sourceRoot":"","sources":["../../src/lib/url-lines.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBpD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url-lines.js","sourceRoot":"","sources":["../../src/lib/url-lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;SAC9B,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBACrE,MAAM,GAAG,GAAY,MAAM,CAAC,GAAG,CAAC;gBAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC;YAC1C,CAAC;YACD,4EAA4E;YAC5E,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/output.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAqBlE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAa/C"}
|
package/dist/output.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,QAAiB;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,gEAAgE;YAChE,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,QAAQ,IAAI,GAAG,IAAI,OAAQ,GAA2B,CAAC,MAAM,KAAK,QAAQ,CAAC;QAC7F,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,GAAiC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|