@scalebrowser/sdk 0.8.1 → 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/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.8.1";
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
- /** Carrier/mobile-exit hint from the exit lookup (a mobile exit is the best case). */
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.8.1";
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
- /** Carrier/mobile-exit hint from the exit lookup (a mobile exit is the best case). */
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.8.1";
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.8.1";
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.8.1",
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",