@hunt-labs/bytekit-sdk 0.11.14 → 0.11.15
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/CHANGELOG.md +14 -0
- package/dist/generated/api.d.ts +139 -9
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,20 @@ today, see [README.md](./README.md), which remains the authoritative usage guide
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [0.11.15] - 2026-11-04
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **New internal `GET /v1/bulk/concurrency` operation (#3718).** The generated `getBulkConcurrency`
|
|
18
|
+
types record a read-only operation that returns `{ active, limit }`: the account's in-use bulk
|
|
19
|
+
concurrency slots (`null` when the slot count cannot be read) and the plan cap, for the dashboard's
|
|
20
|
+
bulk playground. It is `x-sdk-scope: internal` and adds no SDK method, so no published method
|
|
21
|
+
signature moves; `GET /v1/bulk` is unchanged.
|
|
22
|
+
- **`device_scale_factor` accepts only `1` (#5630).** The generated `ScreenshotRequest` and the bulk
|
|
23
|
+
`defaults` types narrow `device_scale_factor` from `1 | 2 | null` to `1 | null`. The API now answers
|
|
24
|
+
`2` (or any other value) with a 422 `validation_error`; omitting the field still means `null`.
|
|
25
|
+
Regenerated `src/generated/api.d.ts`.
|
|
26
|
+
|
|
13
27
|
## [0.11.14] - 2026-10-27
|
|
14
28
|
|
|
15
29
|
### Added
|
package/dist/generated/api.d.ts
CHANGED
|
@@ -465,6 +465,33 @@ export interface paths {
|
|
|
465
465
|
patch?: never;
|
|
466
466
|
trace?: never;
|
|
467
467
|
};
|
|
468
|
+
"/v1/bulk/concurrency": {
|
|
469
|
+
parameters: {
|
|
470
|
+
query?: never;
|
|
471
|
+
header?: never;
|
|
472
|
+
path?: never;
|
|
473
|
+
cookie?: never;
|
|
474
|
+
};
|
|
475
|
+
/**
|
|
476
|
+
* Get bulk concurrency usage
|
|
477
|
+
* @description Returns how many of the account's bulk concurrency slots are in use and
|
|
478
|
+
* the plan cap they count against, so a dashboard can tell a bulk job that
|
|
479
|
+
* is waiting on the cap from one that is stalled. `active` is a live
|
|
480
|
+
* approximation of dispatched bulk children: a slot whose release never
|
|
481
|
+
* arrived drops out of the count after 5 minutes. It is for display only
|
|
482
|
+
* and never decides a job's state or progress, which come from the job's
|
|
483
|
+
* own counters, nor enforcement or billing. Authenticates with an API key
|
|
484
|
+
* or a dashboard session, like the other `/v1/bulk` operations.
|
|
485
|
+
*/
|
|
486
|
+
get: operations["getBulkConcurrency"];
|
|
487
|
+
put?: never;
|
|
488
|
+
post?: never;
|
|
489
|
+
delete?: never;
|
|
490
|
+
options?: never;
|
|
491
|
+
head?: never;
|
|
492
|
+
patch?: never;
|
|
493
|
+
trace?: never;
|
|
494
|
+
};
|
|
468
495
|
"/v1/bulk/{id}": {
|
|
469
496
|
parameters: {
|
|
470
497
|
query?: never;
|
|
@@ -2318,10 +2345,11 @@ export interface components {
|
|
|
2318
2345
|
/** @default false */
|
|
2319
2346
|
dark_mode: boolean;
|
|
2320
2347
|
/**
|
|
2348
|
+
* @description Pixel density. Only `1` is supported; any other value is a 422 `validation_error`.
|
|
2321
2349
|
* @default null
|
|
2322
2350
|
* @enum {integer|null}
|
|
2323
2351
|
*/
|
|
2324
|
-
device_scale_factor: 1 |
|
|
2352
|
+
device_scale_factor: 1 | null;
|
|
2325
2353
|
/** @default false */
|
|
2326
2354
|
include_html: boolean;
|
|
2327
2355
|
/** @default US */
|
|
@@ -3713,7 +3741,7 @@ export interface operations {
|
|
|
3713
3741
|
"X-Screenshot-Status"?: string;
|
|
3714
3742
|
/** @description The originally requested URL. */
|
|
3715
3743
|
"X-Screenshot-URL"?: string;
|
|
3716
|
-
/** @description Legacy credit weight for this capture (1, 2 or 4, doubling for `full_page` and again for
|
|
3744
|
+
/** @description Legacy credit weight for this capture (1, 2 or 4, doubling for `full_page` and again for mobile). It is recorded for reporting only — screenshots are billed on bandwidth, not credits: the charge is the Phase 1 wire bytes x 1.5, and zero when Phase 1 is skipped or fails. */
|
|
3717
3745
|
"X-Screenshot-Credits-Charged"?: number;
|
|
3718
3746
|
/** @description Handler elapsed time in milliseconds. */
|
|
3719
3747
|
"X-Screenshot-Duration-Ms"?: number;
|
|
@@ -3754,7 +3782,7 @@ export interface operations {
|
|
|
3754
3782
|
"X-Screenshot-Status"?: string;
|
|
3755
3783
|
/** @description The originally requested URL. */
|
|
3756
3784
|
"X-Screenshot-URL"?: string;
|
|
3757
|
-
/** @description Legacy credit weight for this capture (1, 2 or 4, doubling for `full_page` and again for
|
|
3785
|
+
/** @description Legacy credit weight for this capture (1, 2 or 4, doubling for `full_page` and again for mobile). It is recorded for reporting only — screenshots are billed on bandwidth, not credits: the charge is the Phase 1 wire bytes x 1.5, and zero when Phase 1 is skipped or fails. */
|
|
3758
3786
|
"X-Screenshot-Credits-Charged"?: number;
|
|
3759
3787
|
/** @description Handler elapsed time in milliseconds. */
|
|
3760
3788
|
"X-Screenshot-Duration-Ms"?: number;
|
|
@@ -4057,6 +4085,22 @@ export interface operations {
|
|
|
4057
4085
|
};
|
|
4058
4086
|
401: components["responses"]["Unauthorized"];
|
|
4059
4087
|
402: components["responses"]["PaymentRequired"];
|
|
4088
|
+
/**
|
|
4089
|
+
* @description `unsupported_content_type`, in two cases:
|
|
4090
|
+
* - The `url` path ends in `.pdf`: the path, lowercased, ends in `.pdf`; the query string and
|
|
4091
|
+
* fragment are not looked at. It is refused before anything is drawn. A PDF served from
|
|
4092
|
+
* another path, or reached through a redirect, is not caught by this check.
|
|
4093
|
+
* - The page was fetched (or served from cache) and its content type cannot produce the
|
|
4094
|
+
* requested formats. The charge is refunded.
|
|
4095
|
+
*/
|
|
4096
|
+
415: {
|
|
4097
|
+
headers: {
|
|
4098
|
+
[name: string]: unknown;
|
|
4099
|
+
};
|
|
4100
|
+
content: {
|
|
4101
|
+
"application/json": components["schemas"]["Error"];
|
|
4102
|
+
};
|
|
4103
|
+
};
|
|
4060
4104
|
/**
|
|
4061
4105
|
* @description Validation error. A `json` format entry whose `schema` the extractor cannot take is
|
|
4062
4106
|
* refused with `schema_incompatible`, before anything is drawn.
|
|
@@ -4325,6 +4369,20 @@ export interface operations {
|
|
|
4325
4369
|
estimated_credits: number | null;
|
|
4326
4370
|
/** @description Webhook endpoint URL (HTTPS only; http:// rejected with 400 invalid_url, reason scheme_unsupported) */
|
|
4327
4371
|
webhook_url: string;
|
|
4372
|
+
/**
|
|
4373
|
+
* @description Items refused at intake and not queued, by their index in `items` or `urls`.
|
|
4374
|
+
* An item is refused with `unsupported_content_type` when its URL path, lowercased,
|
|
4375
|
+
* ends in `.pdf` (the query string and fragment are not looked at). Refused items
|
|
4376
|
+
* are not counted in `total` and nothing is reserved for them. Empty when every
|
|
4377
|
+
* item was accepted.
|
|
4378
|
+
*/
|
|
4379
|
+
rejected: {
|
|
4380
|
+
index: number;
|
|
4381
|
+
url: string;
|
|
4382
|
+
/** @enum {string} */
|
|
4383
|
+
code: "unsupported_content_type";
|
|
4384
|
+
message: string;
|
|
4385
|
+
}[];
|
|
4328
4386
|
};
|
|
4329
4387
|
};
|
|
4330
4388
|
};
|
|
@@ -4380,9 +4438,25 @@ export interface operations {
|
|
|
4380
4438
|
};
|
|
4381
4439
|
};
|
|
4382
4440
|
/**
|
|
4383
|
-
* @description
|
|
4384
|
-
*
|
|
4385
|
-
* `
|
|
4441
|
+
* @description `unsupported_content_type`: every item in the batch was refused because its URL path ends in
|
|
4442
|
+
* `.pdf` (the path, lowercased; the query string and fragment are not looked at). Nothing is
|
|
4443
|
+
* queued or billed. `details.rejected` lists each item as `{ index, url, code, message }`.
|
|
4444
|
+
* When only some items are refused the batch is accepted with `202` and those items are
|
|
4445
|
+
* listed in `rejected` instead.
|
|
4446
|
+
*/
|
|
4447
|
+
415: {
|
|
4448
|
+
headers: {
|
|
4449
|
+
[name: string]: unknown;
|
|
4450
|
+
};
|
|
4451
|
+
content: {
|
|
4452
|
+
"application/json": components["schemas"]["Error"];
|
|
4453
|
+
};
|
|
4454
|
+
};
|
|
4455
|
+
/**
|
|
4456
|
+
* @description Validation error. `bulk_too_large` is returned when the count of
|
|
4457
|
+
* accepted items exceeds the account plan's `max_bulk_size` cap (also
|
|
4458
|
+
* surfaced as `max_bulk_size` on `GET /v1/account`). Items refused
|
|
4459
|
+
* for a `.pdf` path are listed in `rejected` and do not count.
|
|
4386
4460
|
*/
|
|
4387
4461
|
422: {
|
|
4388
4462
|
headers: {
|
|
@@ -5261,8 +5335,7 @@ export interface operations {
|
|
|
5261
5335
|
* "country": "US",
|
|
5262
5336
|
* "formats": [
|
|
5263
5337
|
* "raw"
|
|
5264
|
-
* ]
|
|
5265
|
-
* "device_scale_factor": 2
|
|
5338
|
+
* ]
|
|
5266
5339
|
* },
|
|
5267
5340
|
* "metadata": {
|
|
5268
5341
|
* "campaign": "q3"
|
|
@@ -5366,10 +5439,11 @@ export interface operations {
|
|
|
5366
5439
|
height: number;
|
|
5367
5440
|
} | null;
|
|
5368
5441
|
/**
|
|
5442
|
+
* @description Pixel density. Only `1` is supported; any other value is a 422 `validation_error`.
|
|
5369
5443
|
* @default null
|
|
5370
5444
|
* @enum {integer|null}
|
|
5371
5445
|
*/
|
|
5372
|
-
device_scale_factor?: 1 |
|
|
5446
|
+
device_scale_factor?: 1 | null;
|
|
5373
5447
|
};
|
|
5374
5448
|
/**
|
|
5375
5449
|
* Format: uri
|
|
@@ -5495,6 +5569,32 @@ export interface operations {
|
|
|
5495
5569
|
};
|
|
5496
5570
|
};
|
|
5497
5571
|
};
|
|
5572
|
+
getBulkConcurrency: {
|
|
5573
|
+
parameters: {
|
|
5574
|
+
query?: never;
|
|
5575
|
+
header?: never;
|
|
5576
|
+
path?: never;
|
|
5577
|
+
cookie?: never;
|
|
5578
|
+
};
|
|
5579
|
+
requestBody?: never;
|
|
5580
|
+
responses: {
|
|
5581
|
+
/** @description Successful response. */
|
|
5582
|
+
200: {
|
|
5583
|
+
headers: {
|
|
5584
|
+
[name: string]: unknown;
|
|
5585
|
+
};
|
|
5586
|
+
content: {
|
|
5587
|
+
"application/json": {
|
|
5588
|
+
/** @description Bulk slots in use right now. `0` is a real zero (nothing running). `null` means the slot count could not be read right now; it is not zero. */
|
|
5589
|
+
active: number | null;
|
|
5590
|
+
/** @description The plan's maximum concurrency, the cap `active` counts against. */
|
|
5591
|
+
limit: number;
|
|
5592
|
+
};
|
|
5593
|
+
};
|
|
5594
|
+
};
|
|
5595
|
+
401: components["responses"]["Unauthorized"];
|
|
5596
|
+
};
|
|
5597
|
+
};
|
|
5498
5598
|
getBulk: {
|
|
5499
5599
|
parameters: {
|
|
5500
5600
|
query?: never;
|
|
@@ -5841,6 +5941,21 @@ export interface operations {
|
|
|
5841
5941
|
"application/json": components["schemas"]["Error"];
|
|
5842
5942
|
};
|
|
5843
5943
|
};
|
|
5944
|
+
/**
|
|
5945
|
+
* @description `unsupported_content_type`: a `scrape` monitor whose `url` path ends in `.pdf` is refused
|
|
5946
|
+
* before it is stored. The check is on the URL only: the path, lowercased, ends in `.pdf`;
|
|
5947
|
+
* the query string and fragment are not looked at. A PDF served from another path, or reached
|
|
5948
|
+
* through a redirect, is not caught here — its polls fail as `unsupported_content_type` and
|
|
5949
|
+
* count toward auto-suspension. A `screenshot` monitor is not affected.
|
|
5950
|
+
*/
|
|
5951
|
+
415: {
|
|
5952
|
+
headers: {
|
|
5953
|
+
[name: string]: unknown;
|
|
5954
|
+
};
|
|
5955
|
+
content: {
|
|
5956
|
+
"application/json": components["schemas"]["Error"];
|
|
5957
|
+
};
|
|
5958
|
+
};
|
|
5844
5959
|
/** @description Validation error. */
|
|
5845
5960
|
422: {
|
|
5846
5961
|
headers: {
|
|
@@ -5977,6 +6092,21 @@ export interface operations {
|
|
|
5977
6092
|
"application/json": components["schemas"]["Error"];
|
|
5978
6093
|
};
|
|
5979
6094
|
};
|
|
6095
|
+
/**
|
|
6096
|
+
* @description `unsupported_content_type`: a `scrape` monitor whose `url` path ends in `.pdf` is refused
|
|
6097
|
+
* before it is stored. The check is on the URL only: the path, lowercased, ends in `.pdf`;
|
|
6098
|
+
* the query string and fragment are not looked at. A PDF served from another path, or reached
|
|
6099
|
+
* through a redirect, is not caught here — its polls fail as `unsupported_content_type` and
|
|
6100
|
+
* count toward auto-suspension. A `screenshot` monitor is not affected.
|
|
6101
|
+
*/
|
|
6102
|
+
415: {
|
|
6103
|
+
headers: {
|
|
6104
|
+
[name: string]: unknown;
|
|
6105
|
+
};
|
|
6106
|
+
content: {
|
|
6107
|
+
"application/json": components["schemas"]["Error"];
|
|
6108
|
+
};
|
|
6109
|
+
};
|
|
5980
6110
|
/** @description Validation error. */
|
|
5981
6111
|
422: {
|
|
5982
6112
|
headers: {
|
package/dist/version.d.ts
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* outbound request carries — see the emit site in `client.ts`. The header name is spelled
|
|
6
6
|
* only there, so issue #2905's pre-merge gate 1 counts exactly one occurrence in `src/`.
|
|
7
7
|
*/
|
|
8
|
-
export declare const SDK_VERSION = "0.11.
|
|
8
|
+
export declare const SDK_VERSION = "0.11.15";
|
package/dist/version.js
CHANGED