@scalebrowser/sdk 0.8.0 → 0.9.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/CHANGELOG.md +6 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +49 -3
- package/dist/index.d.ts +49 -3
- package/dist/index.js +1 -1
- package/package.json +1 -2
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,12 @@ that had been kept all along.
|
|
|
10
10
|
The daemon and the SDK version independently. An SDK release names the daemon
|
|
11
11
|
version it was tested against wherever that matters.
|
|
12
12
|
|
|
13
|
+
## 0.8.1 (2026-09-16)
|
|
14
|
+
|
|
15
|
+
The published `package.json` no longer lists a `smoke` script. It pointed at a
|
|
16
|
+
file outside the package, so it could not run from an installed copy, and
|
|
17
|
+
nothing called it. The library itself is unchanged.
|
|
18
|
+
|
|
13
19
|
## 0.8.0 (2026-09-11)
|
|
14
20
|
|
|
15
21
|
Breaking: `host_mode` is gone, and with it the `HostMode` type and the
|
package/dist/index.cjs
CHANGED
|
@@ -1738,7 +1738,7 @@ var PROXY_KINDS = ["http", "socks5", "gateway"];
|
|
|
1738
1738
|
var ROTATIONS = ["sticky", "rotating"];
|
|
1739
1739
|
|
|
1740
1740
|
// src/index.ts
|
|
1741
|
-
var VERSION = "0.
|
|
1741
|
+
var VERSION = "0.9.0";
|
|
1742
1742
|
|
|
1743
1743
|
exports.ApiError = ApiError;
|
|
1744
1744
|
exports.CdpError = CdpError;
|
package/dist/index.d.cts
CHANGED
|
@@ -771,6 +771,18 @@ interface Proxy {
|
|
|
771
771
|
* address stays reserved for a profile.
|
|
772
772
|
*/
|
|
773
773
|
last_asn: string | null;
|
|
774
|
+
/**
|
|
775
|
+
* The IANA timezone the geo probe reported for the exit, for example
|
|
776
|
+
* `"America/Chicago"`, or `null` when it reported none.
|
|
777
|
+
*
|
|
778
|
+
* Written by the same check that writes `last_asn`, and cleared with it when
|
|
779
|
+
* the endpoint changes. It is not decoration: a profile on
|
|
780
|
+
* `geo_mode: "follow_exit"` adopts THIS zone at every start when the country's
|
|
781
|
+
* cohort knows it, instead of the country's canonical one, so a US proxy
|
|
782
|
+
* exiting in Tulsa leaves the profile on `America/Chicago` rather than
|
|
783
|
+
* `America/New_York`.
|
|
784
|
+
*/
|
|
785
|
+
last_timezone: string | null;
|
|
774
786
|
last_check_at: number | null;
|
|
775
787
|
healthy: boolean | null;
|
|
776
788
|
/** Round-trip latency of the last health check, in ms. */
|
|
@@ -954,8 +966,15 @@ interface ExitStatus {
|
|
|
954
966
|
enabled: boolean;
|
|
955
967
|
/** Derived from the newest claim, not from configuration. */
|
|
956
968
|
scope: ExitScope;
|
|
957
|
-
/** The address in use, when one is claimed. */
|
|
969
|
+
/** The IPv4 address in use, when one is claimed. Carries its `v4:` prefix. */
|
|
958
970
|
current: string | null;
|
|
971
|
+
/**
|
|
972
|
+
* The IPv6 `/64` in use, when the daemon measures v6 (`[exit] probe_url_v6`)
|
|
973
|
+
* and the exit answered over it. `null` is the ordinary case and says nothing
|
|
974
|
+
* about the exit: without that setting the guard never asks.
|
|
975
|
+
*/
|
|
976
|
+
current_v6: string | null;
|
|
977
|
+
/** How many addresses this profile owns. Both families count. */
|
|
959
978
|
owned: number;
|
|
960
979
|
claims: ExitClaim[];
|
|
961
980
|
/** Set when the profile has no proxy and is therefore exempt. */
|
|
@@ -1693,7 +1712,34 @@ interface ProxyCheckResult {
|
|
|
1693
1712
|
healthy: boolean;
|
|
1694
1713
|
exit_ip: string | null;
|
|
1695
1714
|
country: string | null;
|
|
1696
|
-
/**
|
|
1715
|
+
/**
|
|
1716
|
+
* The operator string the geo probe answered with, e.g.
|
|
1717
|
+
* `"AS21928 T-Mobile USA, Inc."`; `null` when it reported none. Same value the
|
|
1718
|
+
* check persists as `Proxy.last_asn`.
|
|
1719
|
+
*/
|
|
1720
|
+
asn?: string | null;
|
|
1721
|
+
/**
|
|
1722
|
+
* The IANA timezone of the exit, e.g. `"America/Chicago"`; `null` when the
|
|
1723
|
+
* probe reported none. Same value the check persists as `Proxy.last_timezone`,
|
|
1724
|
+
* and the one a `follow_exit` profile adopts at its next start.
|
|
1725
|
+
*/
|
|
1726
|
+
timezone?: string | null;
|
|
1727
|
+
/**
|
|
1728
|
+
* What kind of network the exit sits on, derived from `asn` against the
|
|
1729
|
+
* daemon's own dataset. `"unknown"` means unproven, never safe: it is what you
|
|
1730
|
+
* get with no dataset installed and with an ASN the dataset does not know.
|
|
1731
|
+
* A datacenter exit is the single biggest real-world tell.
|
|
1732
|
+
*/
|
|
1733
|
+
exit_class?: "datacenter" | "residential" | "mobile" | "unknown";
|
|
1734
|
+
/**
|
|
1735
|
+
* Whether the exit is a mobile/carrier network, the best case for anti-detect.
|
|
1736
|
+
*
|
|
1737
|
+
* SINCE 2026-09-18 this is derived from `exit_class` and answers three states:
|
|
1738
|
+
* `true`, `false`, and `null` for "could not be classified". Before that it
|
|
1739
|
+
* mirrored a flag of the geo lookup that the configured endpoint never sets, so
|
|
1740
|
+
* it was structurally `false` on every answer, including genuinely mobile
|
|
1741
|
+
* exits. Treat a `null` as unknown, not as "no".
|
|
1742
|
+
*/
|
|
1697
1743
|
is_mobile?: boolean | null;
|
|
1698
1744
|
ja4?: string | null;
|
|
1699
1745
|
ja4t?: string | null;
|
|
@@ -2859,6 +2905,6 @@ declare function errorMessage(err: unknown): string;
|
|
|
2859
2905
|
* ```
|
|
2860
2906
|
*/
|
|
2861
2907
|
|
|
2862
|
-
declare const VERSION = "0.
|
|
2908
|
+
declare const VERSION = "0.9.0";
|
|
2863
2909
|
|
|
2864
2910
|
export { type Account, type ActivitySnapshot, type AgentRun, ApiError, type ApiErrorBody, type ArtifactBytes, type ArtifactPutResult, type AttachOptions, type AudioStatus, type AuditDetectorReport, type AuditReport, type AuditStatus, type AuditVerdict, type BindInboxBody, type BlockedExport, type CdpConnectOptions, CdpError, type CdpEvent, CdpSession, type Chapter, type ClickOptions, type CodecsStatus, type Connection, type CreateGroupBody, type CreateInboxBody, type CreatePresetBody, type CreateTasksBody, type CreateTasksResult, DEFAULT_CAPACITY, type DeleteInterruptionRuleParams, type EffectiveInterruptionLock, ErrorCode, type ErrorCodeValue, type EvaluateOptions, type ExitClaim, type ExitRuleStatus, type ExitScope, type ExitStatus, type ExportPresetName, type ExtraOutput, type FetchLike, GEO_MODES, type GeoMode, type GoalSource, type Group, type HealthStatus, type Inbox, type InboxBinding, type InboxBindings, type InboxChannel, type InputClient, type InterruptionChoice, type InterruptionLock, type InterruptionLockRow, type InterruptionLockView, type InterruptionRuleRow, type LaunchHandle, type ListRunsParams, type ListStepsParams, type ListTasksParams, type ListVideosParams, type MediaAsset, type MediaKind, type MusicBed, type NarrationLine, type NavigateOptions, NetworkError, type OsFamily, type OutcomeSource, PROXY_KINDS, type PasskeyRow, type PatchTaskBody, type PersonaConstraintOptions, type Preset, type PresetConfig, type PresetConstraints, type PreviewHidden, type PreviewMoment, type Profile, type ProfileActivity, type ProfileMemory, type ProfileTask, type ProtectionLevel, type ProtectionStatus, type Proxy, type ProxyKind, type ProxyRow, type ProxyUsage, ROTATIONS, RUNTIME_STATES, type ReadyStatus, type Recording, type RecordingKind, type RecordingState, type RemoteStatus, type RenderProgress, type RenderRequestBody, type RenderStage, type RevealCookiesBody, type RevealCookiesResult, type RevealedCookie, type Rotation, type RunActor, type RunOutcome, type RunStep, type RuntimeState, ScalebrowserClient, type ScalebrowserClientOptions, ScalebrowserError, type ScrollOptions, type SecretBindingMode, type SecretDeleteResult, type SecretKind, type SecretListResult, type SecretOrigin, type SecretPatchBody, type SecretRow, type SecretRunBody, type SecretRunMention, type SecretRunResult, type SecretScrubResult, type SecretState, type SessionExportBody, type SessionExportResult, type SessionImportBody, type SessionKind, type SetInterruptionLockBody, type SetInterruptionRuleBody, type ShareLinkLocal, type ShareStatus, type ShotFocus, type ShotIntent, type StepKind, type StepTarget, type StreamHandlers, type StreamParams, type StreamStatus, type TaskState, type TimestampState, type TranscriptWord, type TrustedInputBody, type TtsProviderView, type TtsVerifyResult, type UpdateGroupBody, type UpdateInboxBody, type UpdatePresetBody, VERSION, type Video, type VideoAccessGrant, type VideoAssetName, type VideoAssets, type VideoBackground, type VideoCard, type VideoDestination, type VideoFlags, type VideoPreset, type VideoPresetClip, type VideoPresetClipBody, type VideoPresetClipProgress, type VideoPresetClipStarted, type VideoPresetConfig, type VideoPresetPreview, type VideoPresetPreviewBody, type VideoState, type VideosPage, type VideosStorage, type WriteMemoryBody, deriveMetricsFromProfiles, errorMessage, eventStream, openCdpSession, parseSseFrame, subscribeEvents };
|
package/dist/index.d.ts
CHANGED
|
@@ -771,6 +771,18 @@ interface Proxy {
|
|
|
771
771
|
* address stays reserved for a profile.
|
|
772
772
|
*/
|
|
773
773
|
last_asn: string | null;
|
|
774
|
+
/**
|
|
775
|
+
* The IANA timezone the geo probe reported for the exit, for example
|
|
776
|
+
* `"America/Chicago"`, or `null` when it reported none.
|
|
777
|
+
*
|
|
778
|
+
* Written by the same check that writes `last_asn`, and cleared with it when
|
|
779
|
+
* the endpoint changes. It is not decoration: a profile on
|
|
780
|
+
* `geo_mode: "follow_exit"` adopts THIS zone at every start when the country's
|
|
781
|
+
* cohort knows it, instead of the country's canonical one, so a US proxy
|
|
782
|
+
* exiting in Tulsa leaves the profile on `America/Chicago` rather than
|
|
783
|
+
* `America/New_York`.
|
|
784
|
+
*/
|
|
785
|
+
last_timezone: string | null;
|
|
774
786
|
last_check_at: number | null;
|
|
775
787
|
healthy: boolean | null;
|
|
776
788
|
/** Round-trip latency of the last health check, in ms. */
|
|
@@ -954,8 +966,15 @@ interface ExitStatus {
|
|
|
954
966
|
enabled: boolean;
|
|
955
967
|
/** Derived from the newest claim, not from configuration. */
|
|
956
968
|
scope: ExitScope;
|
|
957
|
-
/** The address in use, when one is claimed. */
|
|
969
|
+
/** The IPv4 address in use, when one is claimed. Carries its `v4:` prefix. */
|
|
958
970
|
current: string | null;
|
|
971
|
+
/**
|
|
972
|
+
* The IPv6 `/64` in use, when the daemon measures v6 (`[exit] probe_url_v6`)
|
|
973
|
+
* and the exit answered over it. `null` is the ordinary case and says nothing
|
|
974
|
+
* about the exit: without that setting the guard never asks.
|
|
975
|
+
*/
|
|
976
|
+
current_v6: string | null;
|
|
977
|
+
/** How many addresses this profile owns. Both families count. */
|
|
959
978
|
owned: number;
|
|
960
979
|
claims: ExitClaim[];
|
|
961
980
|
/** Set when the profile has no proxy and is therefore exempt. */
|
|
@@ -1693,7 +1712,34 @@ interface ProxyCheckResult {
|
|
|
1693
1712
|
healthy: boolean;
|
|
1694
1713
|
exit_ip: string | null;
|
|
1695
1714
|
country: string | null;
|
|
1696
|
-
/**
|
|
1715
|
+
/**
|
|
1716
|
+
* The operator string the geo probe answered with, e.g.
|
|
1717
|
+
* `"AS21928 T-Mobile USA, Inc."`; `null` when it reported none. Same value the
|
|
1718
|
+
* check persists as `Proxy.last_asn`.
|
|
1719
|
+
*/
|
|
1720
|
+
asn?: string | null;
|
|
1721
|
+
/**
|
|
1722
|
+
* The IANA timezone of the exit, e.g. `"America/Chicago"`; `null` when the
|
|
1723
|
+
* probe reported none. Same value the check persists as `Proxy.last_timezone`,
|
|
1724
|
+
* and the one a `follow_exit` profile adopts at its next start.
|
|
1725
|
+
*/
|
|
1726
|
+
timezone?: string | null;
|
|
1727
|
+
/**
|
|
1728
|
+
* What kind of network the exit sits on, derived from `asn` against the
|
|
1729
|
+
* daemon's own dataset. `"unknown"` means unproven, never safe: it is what you
|
|
1730
|
+
* get with no dataset installed and with an ASN the dataset does not know.
|
|
1731
|
+
* A datacenter exit is the single biggest real-world tell.
|
|
1732
|
+
*/
|
|
1733
|
+
exit_class?: "datacenter" | "residential" | "mobile" | "unknown";
|
|
1734
|
+
/**
|
|
1735
|
+
* Whether the exit is a mobile/carrier network, the best case for anti-detect.
|
|
1736
|
+
*
|
|
1737
|
+
* SINCE 2026-09-18 this is derived from `exit_class` and answers three states:
|
|
1738
|
+
* `true`, `false`, and `null` for "could not be classified". Before that it
|
|
1739
|
+
* mirrored a flag of the geo lookup that the configured endpoint never sets, so
|
|
1740
|
+
* it was structurally `false` on every answer, including genuinely mobile
|
|
1741
|
+
* exits. Treat a `null` as unknown, not as "no".
|
|
1742
|
+
*/
|
|
1697
1743
|
is_mobile?: boolean | null;
|
|
1698
1744
|
ja4?: string | null;
|
|
1699
1745
|
ja4t?: string | null;
|
|
@@ -2859,6 +2905,6 @@ declare function errorMessage(err: unknown): string;
|
|
|
2859
2905
|
* ```
|
|
2860
2906
|
*/
|
|
2861
2907
|
|
|
2862
|
-
declare const VERSION = "0.
|
|
2908
|
+
declare const VERSION = "0.9.0";
|
|
2863
2909
|
|
|
2864
2910
|
export { type Account, type ActivitySnapshot, type AgentRun, ApiError, type ApiErrorBody, type ArtifactBytes, type ArtifactPutResult, type AttachOptions, type AudioStatus, type AuditDetectorReport, type AuditReport, type AuditStatus, type AuditVerdict, type BindInboxBody, type BlockedExport, type CdpConnectOptions, CdpError, type CdpEvent, CdpSession, type Chapter, type ClickOptions, type CodecsStatus, type Connection, type CreateGroupBody, type CreateInboxBody, type CreatePresetBody, type CreateTasksBody, type CreateTasksResult, DEFAULT_CAPACITY, type DeleteInterruptionRuleParams, type EffectiveInterruptionLock, ErrorCode, type ErrorCodeValue, type EvaluateOptions, type ExitClaim, type ExitRuleStatus, type ExitScope, type ExitStatus, type ExportPresetName, type ExtraOutput, type FetchLike, GEO_MODES, type GeoMode, type GoalSource, type Group, type HealthStatus, type Inbox, type InboxBinding, type InboxBindings, type InboxChannel, type InputClient, type InterruptionChoice, type InterruptionLock, type InterruptionLockRow, type InterruptionLockView, type InterruptionRuleRow, type LaunchHandle, type ListRunsParams, type ListStepsParams, type ListTasksParams, type ListVideosParams, type MediaAsset, type MediaKind, type MusicBed, type NarrationLine, type NavigateOptions, NetworkError, type OsFamily, type OutcomeSource, PROXY_KINDS, type PasskeyRow, type PatchTaskBody, type PersonaConstraintOptions, type Preset, type PresetConfig, type PresetConstraints, type PreviewHidden, type PreviewMoment, type Profile, type ProfileActivity, type ProfileMemory, type ProfileTask, type ProtectionLevel, type ProtectionStatus, type Proxy, type ProxyKind, type ProxyRow, type ProxyUsage, ROTATIONS, RUNTIME_STATES, type ReadyStatus, type Recording, type RecordingKind, type RecordingState, type RemoteStatus, type RenderProgress, type RenderRequestBody, type RenderStage, type RevealCookiesBody, type RevealCookiesResult, type RevealedCookie, type Rotation, type RunActor, type RunOutcome, type RunStep, type RuntimeState, ScalebrowserClient, type ScalebrowserClientOptions, ScalebrowserError, type ScrollOptions, type SecretBindingMode, type SecretDeleteResult, type SecretKind, type SecretListResult, type SecretOrigin, type SecretPatchBody, type SecretRow, type SecretRunBody, type SecretRunMention, type SecretRunResult, type SecretScrubResult, type SecretState, type SessionExportBody, type SessionExportResult, type SessionImportBody, type SessionKind, type SetInterruptionLockBody, type SetInterruptionRuleBody, type ShareLinkLocal, type ShareStatus, type ShotFocus, type ShotIntent, type StepKind, type StepTarget, type StreamHandlers, type StreamParams, type StreamStatus, type TaskState, type TimestampState, type TranscriptWord, type TrustedInputBody, type TtsProviderView, type TtsVerifyResult, type UpdateGroupBody, type UpdateInboxBody, type UpdatePresetBody, VERSION, type Video, type VideoAccessGrant, type VideoAssetName, type VideoAssets, type VideoBackground, type VideoCard, type VideoDestination, type VideoFlags, type VideoPreset, type VideoPresetClip, type VideoPresetClipBody, type VideoPresetClipProgress, type VideoPresetClipStarted, type VideoPresetConfig, type VideoPresetPreview, type VideoPresetPreviewBody, type VideoState, type VideosPage, type VideosStorage, type WriteMemoryBody, deriveMetricsFromProfiles, errorMessage, eventStream, openCdpSession, parseSseFrame, subscribeEvents };
|
package/dist/index.js
CHANGED
|
@@ -1732,6 +1732,6 @@ var PROXY_KINDS = ["http", "socks5", "gateway"];
|
|
|
1732
1732
|
var ROTATIONS = ["sticky", "rotating"];
|
|
1733
1733
|
|
|
1734
1734
|
// src/index.ts
|
|
1735
|
-
var VERSION = "0.
|
|
1735
|
+
var VERSION = "0.9.0";
|
|
1736
1736
|
|
|
1737
1737
|
export { ApiError, CdpError, CdpSession, DEFAULT_CAPACITY, ErrorCode, GEO_MODES, NetworkError, PROXY_KINDS, ROTATIONS, RUNTIME_STATES, ScalebrowserClient, ScalebrowserError, VERSION, deriveMetricsFromProfiles, errorMessage, eventStream, openCdpSession, parseSseFrame, subscribeEvents };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scalebrowser/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Official Node/TypeScript SDK for the Scalebrowser daemon: typed REST client plus a direct-CDP driver plane (nodriver-style, not Playwright).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
"test": "vitest run",
|
|
47
47
|
"test:watch": "vitest",
|
|
48
48
|
"prepare": "npm run build",
|
|
49
|
-
"smoke": "node ../scripts/smoke-node.mjs",
|
|
50
49
|
"lint": "eslint src test examples",
|
|
51
50
|
"test:coverage": "vitest run --coverage"
|
|
52
51
|
},
|