diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 727e2be..7b5cb64 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.14.0" + ".": "0.14.1" } diff --git a/.stats.yml b/.stats.yml index f577dd0..9960955 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 57 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-936db268b3dcae5d64bd5d590506d8134304ffcbf67389eb9b1555b3febfd4cb.yml -openapi_spec_hash: 145485087adf1b28c052bacb4df68462 -config_hash: 15cd063f8e308686ac71bf9ee9634625 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-1cd328ccf61f0e888d6df27b091c30b38c392ab9ca8ce7fd0ead8f10aaf71ffa.yml +openapi_spec_hash: af761c48d1955f11822f3b95f9c46750 +config_hash: deadfc4d2b0a947673bcf559b5db6e1b diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ea0274..1176c64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.14.1 (2025-10-13) + +Full Changelog: [v0.14.0...v0.14.1](https://github.com/onkernel/kernel-node-sdk/compare/v0.14.0...v0.14.1) + +### Features + +* Hide and deprecate mobile proxy type ([54dae63](https://github.com/onkernel/kernel-node-sdk/commit/54dae631f02ce14c75222677ffa171895f4cb0ca)) +* WIP: Configurable Viewport ([2a85d81](https://github.com/onkernel/kernel-node-sdk/commit/2a85d8110a918d62a528401e278758cf5eeb9b82)) + ## 0.14.0 (2025-10-07) Full Changelog: [v0.13.0...v0.14.0](https://github.com/onkernel/kernel-node-sdk/compare/v0.13.0...v0.14.0) diff --git a/api.md b/api.md index 9bf2b7d..92e5d8d 100644 --- a/api.md +++ b/api.md @@ -73,7 +73,7 @@ Methods: - client.browsers.list() -> BrowserListResponse - client.browsers.delete({ ...params }) -> void - client.browsers.deleteByID(id) -> void -- client.browsers.uploadExtensions(id, { ...params }) -> void +- client.browsers.loadExtensions(id, { ...params }) -> void ## Replays diff --git a/package.json b/package.json index eebd87b..9d66def 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.14.0", + "version": "0.14.1", "description": "The official TypeScript library for the Kernel API", "author": "Kernel <>", "types": "dist/index.d.ts", diff --git a/src/client.ts b/src/client.ts index 2b74698..5497543 100644 --- a/src/client.ts +++ b/src/client.ts @@ -66,9 +66,9 @@ import { BrowserCreateResponse, BrowserDeleteParams, BrowserListResponse, + BrowserLoadExtensionsParams, BrowserPersistence, BrowserRetrieveResponse, - BrowserUploadExtensionsParams, Browsers, Profile, } from './resources/browsers/browsers'; @@ -899,7 +899,7 @@ export declare namespace Kernel { type BrowserListResponse as BrowserListResponse, type BrowserCreateParams as BrowserCreateParams, type BrowserDeleteParams as BrowserDeleteParams, - type BrowserUploadExtensionsParams as BrowserUploadExtensionsParams, + type BrowserLoadExtensionsParams as BrowserLoadExtensionsParams, }; export { diff --git a/src/resources/browsers/browsers.ts b/src/resources/browsers/browsers.ts index 32681da..2971650 100644 --- a/src/resources/browsers/browsers.ts +++ b/src/resources/browsers/browsers.ts @@ -143,7 +143,7 @@ export class Browsers extends APIResource { * * @example * ```ts - * await client.browsers.uploadExtensions('id', { + * await client.browsers.loadExtensions('id', { * extensions: [ * { * name: 'name', @@ -153,11 +153,7 @@ export class Browsers extends APIResource { * }); * ``` */ - uploadExtensions( - id: string, - body: BrowserUploadExtensionsParams, - options?: RequestOptions, - ): APIPromise { + loadExtensions(id: string, body: BrowserLoadExtensionsParams, options?: RequestOptions): APIPromise { return this._client.post( path`/browsers/${id}/extensions`, multipartFormRequestOptions( @@ -259,6 +255,48 @@ export interface BrowserCreateResponse { * ID of the proxy associated with this browser session, if any. */ proxy_id?: string; + + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (commonly 1024x768@60). Only specific viewport + * configurations are supported. The server will reject unsupported combinations. + * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, + * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + viewport?: BrowserCreateResponse.Viewport; +} + +export namespace BrowserCreateResponse { + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (commonly 1024x768@60). Only specific viewport + * configurations are supported. The server will reject unsupported combinations. + * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, + * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + export interface Viewport { + /** + * Browser window height in pixels. + */ + height: number; + + /** + * Browser window width in pixels. + */ + width: number; + + /** + * Display refresh rate in Hz. If omitted, automatically determined from width and + * height. + */ + refresh_rate?: number; + } } export interface BrowserRetrieveResponse { @@ -312,6 +350,48 @@ export interface BrowserRetrieveResponse { * ID of the proxy associated with this browser session, if any. */ proxy_id?: string; + + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (commonly 1024x768@60). Only specific viewport + * configurations are supported. The server will reject unsupported combinations. + * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, + * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + viewport?: BrowserRetrieveResponse.Viewport; +} + +export namespace BrowserRetrieveResponse { + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (commonly 1024x768@60). Only specific viewport + * configurations are supported. The server will reject unsupported combinations. + * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, + * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + export interface Viewport { + /** + * Browser window height in pixels. + */ + height: number; + + /** + * Browser window width in pixels. + */ + width: number; + + /** + * Display refresh rate in Hz. If omitted, automatically determined from width and + * height. + */ + refresh_rate?: number; + } } export type BrowserListResponse = Array; @@ -368,6 +448,48 @@ export namespace BrowserListResponse { * ID of the proxy associated with this browser session, if any. */ proxy_id?: string; + + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (commonly 1024x768@60). Only specific viewport + * configurations are supported. The server will reject unsupported combinations. + * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, + * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + viewport?: BrowserListResponseItem.Viewport; + } + + export namespace BrowserListResponseItem { + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (commonly 1024x768@60). Only specific viewport + * configurations are supported. The server will reject unsupported combinations. + * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, + * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + export interface Viewport { + /** + * Browser window height in pixels. + */ + height: number; + + /** + * Browser window width in pixels. + */ + width: number; + + /** + * Display refresh rate in Hz. If omitted, automatically determined from width and + * height. + */ + refresh_rate?: number; + } } } @@ -421,6 +543,18 @@ export interface BrowserCreateParams { * specified value. */ timeout_seconds?: number; + + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (commonly 1024x768@60). Only specific viewport + * configurations are supported. The server will reject unsupported combinations. + * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, + * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + viewport?: BrowserCreateParams.Viewport; } export namespace BrowserCreateParams { @@ -464,6 +598,34 @@ export namespace BrowserCreateParams { */ save_changes?: boolean; } + + /** + * Initial browser window size in pixels with optional refresh rate. If omitted, + * image defaults apply (commonly 1024x768@60). Only specific viewport + * configurations are supported. The server will reject unsupported combinations. + * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25, + * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be + * automatically determined from the width and height if they match a supported + * configuration exactly. Note: Higher resolutions may affect the responsiveness of + * live view browser + */ + export interface Viewport { + /** + * Browser window height in pixels. + */ + height: number; + + /** + * Browser window width in pixels. + */ + width: number; + + /** + * Display refresh rate in Hz. If omitted, automatically determined from width and + * height. + */ + refresh_rate?: number; + } } export interface BrowserDeleteParams { @@ -473,14 +635,14 @@ export interface BrowserDeleteParams { persistent_id: string; } -export interface BrowserUploadExtensionsParams { +export interface BrowserLoadExtensionsParams { /** * List of extensions to upload and activate */ - extensions: Array; + extensions: Array; } -export namespace BrowserUploadExtensionsParams { +export namespace BrowserLoadExtensionsParams { export interface Extension { /** * Folder name to place the extension under /home/kernel/extensions/ @@ -509,7 +671,7 @@ export declare namespace Browsers { type BrowserListResponse as BrowserListResponse, type BrowserCreateParams as BrowserCreateParams, type BrowserDeleteParams as BrowserDeleteParams, - type BrowserUploadExtensionsParams as BrowserUploadExtensionsParams, + type BrowserLoadExtensionsParams as BrowserLoadExtensionsParams, }; export { diff --git a/src/resources/browsers/index.ts b/src/resources/browsers/index.ts index 71eab3b..53bb8a9 100644 --- a/src/resources/browsers/index.ts +++ b/src/resources/browsers/index.ts @@ -9,7 +9,7 @@ export { type BrowserListResponse, type BrowserCreateParams, type BrowserDeleteParams, - type BrowserUploadExtensionsParams, + type BrowserLoadExtensionsParams, } from './browsers'; export { Fs, diff --git a/src/resources/index.ts b/src/resources/index.ts index 37026ae..83e4312 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -11,7 +11,7 @@ export { type BrowserListResponse, type BrowserCreateParams, type BrowserDeleteParams, - type BrowserUploadExtensionsParams, + type BrowserLoadExtensionsParams, } from './browsers/browsers'; export { Deployments, diff --git a/src/resources/proxies.ts b/src/resources/proxies.ts index 9aaaf84..e6841d7 100644 --- a/src/resources/proxies.ts +++ b/src/resources/proxies.ts @@ -88,7 +88,7 @@ export namespace ProxyCreateResponse { */ export interface DatacenterProxyConfig { /** - * ISO 3166 country code or EU for the proxy exit node. + * ISO 3166 country code. */ country: string; } @@ -98,7 +98,7 @@ export namespace ProxyCreateResponse { */ export interface IspProxyConfig { /** - * ISO 3166 country code or EU for the proxy exit node. + * ISO 3166 country code. */ country: string; } @@ -119,13 +119,12 @@ export namespace ProxyCreateResponse { city?: string; /** - * ISO 3166 country code or EU for the proxy exit node. Required if `city` is - * provided. + * ISO 3166 country code. */ country?: string; /** - * Operating system of the residential device. + * @deprecated Operating system of the residential device. */ os?: 'windows' | 'macos' | 'android'; @@ -219,8 +218,7 @@ export namespace ProxyCreateResponse { city?: string; /** - * ISO 3166 country code or EU for the proxy exit node. Required if `city` is - * provided. + * ISO 3166 country code */ country?: string; @@ -310,7 +308,7 @@ export namespace ProxyRetrieveResponse { */ export interface DatacenterProxyConfig { /** - * ISO 3166 country code or EU for the proxy exit node. + * ISO 3166 country code. */ country: string; } @@ -320,7 +318,7 @@ export namespace ProxyRetrieveResponse { */ export interface IspProxyConfig { /** - * ISO 3166 country code or EU for the proxy exit node. + * ISO 3166 country code. */ country: string; } @@ -341,13 +339,12 @@ export namespace ProxyRetrieveResponse { city?: string; /** - * ISO 3166 country code or EU for the proxy exit node. Required if `city` is - * provided. + * ISO 3166 country code. */ country?: string; /** - * Operating system of the residential device. + * @deprecated Operating system of the residential device. */ os?: 'windows' | 'macos' | 'android'; @@ -441,8 +438,7 @@ export namespace ProxyRetrieveResponse { city?: string; /** - * ISO 3166 country code or EU for the proxy exit node. Required if `city` is - * provided. + * ISO 3166 country code */ country?: string; @@ -535,7 +531,7 @@ export namespace ProxyListResponse { */ export interface DatacenterProxyConfig { /** - * ISO 3166 country code or EU for the proxy exit node. + * ISO 3166 country code. */ country: string; } @@ -545,7 +541,7 @@ export namespace ProxyListResponse { */ export interface IspProxyConfig { /** - * ISO 3166 country code or EU for the proxy exit node. + * ISO 3166 country code. */ country: string; } @@ -566,13 +562,12 @@ export namespace ProxyListResponse { city?: string; /** - * ISO 3166 country code or EU for the proxy exit node. Required if `city` is - * provided. + * ISO 3166 country code. */ country?: string; /** - * Operating system of the residential device. + * @deprecated Operating system of the residential device. */ os?: 'windows' | 'macos' | 'android'; @@ -666,8 +661,7 @@ export namespace ProxyListResponse { city?: string; /** - * ISO 3166 country code or EU for the proxy exit node. Required if `city` is - * provided. + * ISO 3166 country code */ country?: string; @@ -743,7 +737,7 @@ export namespace ProxyCreateParams { */ export interface DatacenterProxyConfig { /** - * ISO 3166 country code or EU for the proxy exit node. + * ISO 3166 country code. */ country: string; } @@ -753,7 +747,7 @@ export namespace ProxyCreateParams { */ export interface IspProxyConfig { /** - * ISO 3166 country code or EU for the proxy exit node. + * ISO 3166 country code. */ country: string; } @@ -774,13 +768,12 @@ export namespace ProxyCreateParams { city?: string; /** - * ISO 3166 country code or EU for the proxy exit node. Required if `city` is - * provided. + * ISO 3166 country code. */ country?: string; /** - * Operating system of the residential device. + * @deprecated Operating system of the residential device. */ os?: 'windows' | 'macos' | 'android'; @@ -874,8 +867,7 @@ export namespace ProxyCreateParams { city?: string; /** - * ISO 3166 country code or EU for the proxy exit node. Required if `city` is - * provided. + * ISO 3166 country code */ country?: string; diff --git a/src/version.ts b/src/version.ts index e2b0672..85966e2 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.14.0'; // x-release-please-version +export const VERSION = '0.14.1'; // x-release-please-version diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index 8d573b6..9c96f46 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -34,6 +34,7 @@ describe('resource browsers', () => { proxy_id: 'proxy_id', stealth: true, timeout_seconds: 10, + viewport: { height: 800, width: 1280, refresh_rate: 60 }, }, { path: '/_stainless_unknown_path' }, ), @@ -94,8 +95,8 @@ describe('resource browsers', () => { }); // Prism tests are disabled - test.skip('uploadExtensions: only required params', async () => { - const responsePromise = client.browsers.uploadExtensions('id', { + test.skip('loadExtensions: only required params', async () => { + const responsePromise = client.browsers.loadExtensions('id', { extensions: [{ name: 'name', zip_file: await toFile(Buffer.from('# my file contents'), 'README.md') }], }); const rawResponse = await responsePromise.asResponse(); @@ -108,8 +109,8 @@ describe('resource browsers', () => { }); // Prism tests are disabled - test.skip('uploadExtensions: required and optional params', async () => { - const response = await client.browsers.uploadExtensions('id', { + test.skip('loadExtensions: required and optional params', async () => { + const response = await client.browsers.loadExtensions('id', { extensions: [{ name: 'name', zip_file: await toFile(Buffer.from('# my file contents'), 'README.md') }], }); });