From ce09d0a7a970560604cac6e79692e83c75ac0d6c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 20:16:24 +0000 Subject: [PATCH 1/8] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4e2d03e..192797a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 23 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-2118fd938d408dda6ed82d06c48b0785fad91fd54b5397acc3421a49a386c791.yml -openapi_spec_hash: 8e48a39a55a11b128028b47747aea775 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-466614a040e7f31307530bd6ba443e714b6303eaa141904e7d32e6641d5ec55f.yml +openapi_spec_hash: 2d06680e7c17847e4fbcac35124d2456 config_hash: 40fbac80e24faaa0dc19e93368bcd821 From 95c8dfa7988a9784df18a5bf12e6298a2d6e3de4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 21:47:57 +0000 Subject: [PATCH 2/8] feat: [AI-1993] - Surface structured JSON content on /v2/fetch --- .stats.yml | 8 ++-- api.md | 11 ----- src/resources/fetch-api.ts | 5 +- src/resources/sessions/index.ts | 1 - src/resources/sessions/replays.ts | 49 -------------------- src/resources/sessions/sessions.ts | 6 --- tests/api-resources/sessions/replays.test.ts | 40 ---------------- 7 files changed, 7 insertions(+), 113 deletions(-) delete mode 100644 src/resources/sessions/replays.ts delete mode 100644 tests/api-resources/sessions/replays.test.ts diff --git a/.stats.yml b/.stats.yml index 192797a..523861e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 23 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-466614a040e7f31307530bd6ba443e714b6303eaa141904e7d32e6641d5ec55f.yml -openapi_spec_hash: 2d06680e7c17847e4fbcac35124d2456 -config_hash: 40fbac80e24faaa0dc19e93368bcd821 +configured_endpoints: 21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-1821faac6d1422fea15b3ba1f88c0f5f00c43464524e17d3fd1efd1ea148b7c4.yml +openapi_spec_hash: 1e3fba074314f557dc6973cf97ea6a69 +config_hash: cf04ecfb8dad5fbd8b85be25d6e9ec55 diff --git a/api.md b/api.md index 11f9afd..eb38395 100644 --- a/api.md +++ b/api.md @@ -114,14 +114,3 @@ Types: Methods: - client.sessions.uploads.create(id, { ...params }) -> UploadCreateResponse - -## Replays - -Types: - -- ReplayRetrieveResponse - -Methods: - -- client.sessions.replays.retrieve(id) -> ReplayRetrieveResponse -- client.sessions.replays.retrievePage(id, pageId) -> Response diff --git a/src/resources/fetch-api.ts b/src/resources/fetch-api.ts index 976f473..46ab50b 100644 --- a/src/resources/fetch-api.ts +++ b/src/resources/fetch-api.ts @@ -19,9 +19,10 @@ export interface FetchAPICreateResponse { id: string; /** - * The response body content + * The response body content. A string for `raw` and `markdown` formats; a + * structured object for `json` format (the schema-extracted result). */ - content: string; + content: string | { [key: string]: unknown }; /** * The MIME type of the response diff --git a/src/resources/sessions/index.ts b/src/resources/sessions/index.ts index b3c2a80..9c9a61e 100644 --- a/src/resources/sessions/index.ts +++ b/src/resources/sessions/index.ts @@ -3,7 +3,6 @@ export { Downloads } from './downloads'; export { Logs, type SessionLog, type LogListResponse } from './logs'; export { Recording, type SessionRecording, type RecordingRetrieveResponse } from './recording'; -export { Replays, type ReplayRetrieveResponse } from './replays'; export { Sessions, type Session, diff --git a/src/resources/sessions/replays.ts b/src/resources/sessions/replays.ts deleted file mode 100644 index 70d1f3b..0000000 --- a/src/resources/sessions/replays.ts +++ /dev/null @@ -1,49 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -import { APIResource } from '../../resource'; -import * as Core from '../../core'; -import { type Response } from '../../_shims/index'; - -export class Replays extends APIResource { - /** - * Returns page metadata for a session replay, including timing information and the - * URL of each page's HLS playlist. - */ - retrieve(id: string, options?: Core.RequestOptions): Core.APIPromise { - return this._client.get(`/v1/sessions/${id}/replays`, options); - } - - /** - * Returns an HLS VOD media playlist (.m3u8) for a specific page of a session - * replay. - */ - retrievePage(id: string, pageId: string, options?: Core.RequestOptions): Core.APIPromise { - return this._client.get(`/v1/sessions/${id}/replays/${pageId}`, { - ...options, - headers: { Accept: 'application/vnd.apple.mpegurl', ...options?.headers }, - __binaryResponse: true, - }); - } -} - -export interface ReplayRetrieveResponse { - pageCount: number; - - pages: Array; -} - -export namespace ReplayRetrieveResponse { - export interface Page { - endTimeMs: number; - - pageId: string; - - startTimeMs: number; - - url: string; - } -} - -export declare namespace Replays { - export { type ReplayRetrieveResponse as ReplayRetrieveResponse }; -} diff --git a/src/resources/sessions/sessions.ts b/src/resources/sessions/sessions.ts index ac5b37d..d1f4dcd 100644 --- a/src/resources/sessions/sessions.ts +++ b/src/resources/sessions/sessions.ts @@ -9,8 +9,6 @@ import * as LogsAPI from './logs'; import { LogListResponse, Logs, SessionLog } from './logs'; import * as RecordingAPI from './recording'; import { Recording, RecordingRetrieveResponse, SessionRecording } from './recording'; -import * as ReplaysAPI from './replays'; -import { ReplayRetrieveResponse, Replays } from './replays'; import * as UploadsAPI from './uploads'; import { UploadCreateParams, UploadCreateResponse, Uploads } from './uploads'; @@ -19,7 +17,6 @@ export class Sessions extends APIResource { logs: LogsAPI.Logs = new LogsAPI.Logs(this._client); recording: RecordingAPI.Recording = new RecordingAPI.Recording(this._client); uploads: UploadsAPI.Uploads = new UploadsAPI.Uploads(this._client); - replays: ReplaysAPI.Replays = new ReplaysAPI.Replays(this._client); /** * Create a Session @@ -440,7 +437,6 @@ Sessions.Downloads = Downloads; Sessions.Logs = Logs; Sessions.Recording = Recording; Sessions.Uploads = Uploads; -Sessions.Replays = Replays; export declare namespace Sessions { export { @@ -469,6 +465,4 @@ export declare namespace Sessions { type UploadCreateResponse as UploadCreateResponse, type UploadCreateParams as UploadCreateParams, }; - - export { Replays as Replays, type ReplayRetrieveResponse as ReplayRetrieveResponse }; } diff --git a/tests/api-resources/sessions/replays.test.ts b/tests/api-resources/sessions/replays.test.ts deleted file mode 100644 index 4387aaa..0000000 --- a/tests/api-resources/sessions/replays.test.ts +++ /dev/null @@ -1,40 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -import Browserbase from '@browserbasehq/sdk'; -import { Response } from 'node-fetch'; - -const client = new Browserbase({ - apiKey: 'My API Key', - baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', -}); - -describe('resource replays', () => { - test('retrieve', async () => { - const responsePromise = client.sessions.replays.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e'); - const rawResponse = await responsePromise.asResponse(); - expect(rawResponse).toBeInstanceOf(Response); - const response = await responsePromise; - expect(response).not.toBeInstanceOf(Response); - const dataAndResponse = await responsePromise.withResponse(); - expect(dataAndResponse.data).toBe(response); - expect(dataAndResponse.response).toBe(rawResponse); - }); - - test('retrieve: request options instead of params are passed correctly', async () => { - // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error - await expect( - client.sessions.replays.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { - path: '/_stainless_unknown_path', - }), - ).rejects.toThrow(Browserbase.NotFoundError); - }); - - test('retrievePage: request options instead of params are passed correctly', async () => { - // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error - await expect( - client.sessions.replays.retrievePage('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', '090', { - path: '/_stainless_unknown_path', - }), - ).rejects.toThrow(Browserbase.NotFoundError); - }); -}); From 397c60f9a97e8a8a587b00138586ac7a2797cee5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 20:54:50 +0000 Subject: [PATCH 3/8] feat: [AI-1972] - Move fetch v2 handler into /v1/fetch --- .stats.yml | 4 ++-- src/resources/fetch-api.ts | 13 +++++++++++++ tests/api-resources/fetch-api.test.ts | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 523861e..8544550 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 21 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-1821faac6d1422fea15b3ba1f88c0f5f00c43464524e17d3fd1efd1ea148b7c4.yml -openapi_spec_hash: 1e3fba074314f557dc6973cf97ea6a69 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-3032c74460ad9c1c4b0a1b2d9107c556f292974a8ce12d525660a9cf31f10bc1.yml +openapi_spec_hash: 8ac1c673ce4e72b88bbbf30100b95e8f config_hash: cf04ecfb8dad5fbd8b85be25d6e9ec55 diff --git a/src/resources/fetch-api.ts b/src/resources/fetch-api.ts index 46ab50b..3232d17 100644 --- a/src/resources/fetch-api.ts +++ b/src/resources/fetch-api.ts @@ -61,10 +61,23 @@ export interface FetchAPICreateParams { */ allowRedirects?: boolean; + /** + * Output format for the response content. `raw` (default) returns the response + * body unchanged; `json` returns structured data (requires `schema`); `markdown` + * returns the page as markdown. + */ + format?: 'raw' | 'json' | 'markdown'; + /** * Whether to enable proxy support for the request */ proxies?: boolean; + + /** + * JSON Schema describing the desired structure of the response. Only used when + * `format` is `json`. + */ + schema?: { [key: string]: unknown }; } export declare namespace FetchAPI { diff --git a/tests/api-resources/fetch-api.test.ts b/tests/api-resources/fetch-api.test.ts index 7e250d3..a74882c 100644 --- a/tests/api-resources/fetch-api.test.ts +++ b/tests/api-resources/fetch-api.test.ts @@ -25,7 +25,9 @@ describe('resource fetchAPI', () => { url: 'https://example.com', allowInsecureSsl: true, allowRedirects: true, + format: 'raw', proxies: true, + schema: { foo: 'bar' }, }); }); }); From 0123bc8dd7754b7dad06692cf4d6032492d23576 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 10:41:12 +0000 Subject: [PATCH 4/8] feat: [AI-1748][apps/api] Obtain custom certificates in API during session reservation --- .stats.yml | 4 ++-- src/resources/fetch-api.ts | 18 ++---------------- tests/api-resources/fetch-api.test.ts | 2 -- 3 files changed, 4 insertions(+), 20 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8544550..c2ae426 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 21 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-3032c74460ad9c1c4b0a1b2d9107c556f292974a8ce12d525660a9cf31f10bc1.yml -openapi_spec_hash: 8ac1c673ce4e72b88bbbf30100b95e8f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-090302cbdfdd8758ae5907f93842b16040a66772578d0327349135378e0bce40.yml +openapi_spec_hash: cb19458f0642bea3cf6eaf91113f9fda config_hash: cf04ecfb8dad5fbd8b85be25d6e9ec55 diff --git a/src/resources/fetch-api.ts b/src/resources/fetch-api.ts index 3232d17..976f473 100644 --- a/src/resources/fetch-api.ts +++ b/src/resources/fetch-api.ts @@ -19,10 +19,9 @@ export interface FetchAPICreateResponse { id: string; /** - * The response body content. A string for `raw` and `markdown` formats; a - * structured object for `json` format (the schema-extracted result). + * The response body content */ - content: string | { [key: string]: unknown }; + content: string; /** * The MIME type of the response @@ -61,23 +60,10 @@ export interface FetchAPICreateParams { */ allowRedirects?: boolean; - /** - * Output format for the response content. `raw` (default) returns the response - * body unchanged; `json` returns structured data (requires `schema`); `markdown` - * returns the page as markdown. - */ - format?: 'raw' | 'json' | 'markdown'; - /** * Whether to enable proxy support for the request */ proxies?: boolean; - - /** - * JSON Schema describing the desired structure of the response. Only used when - * `format` is `json`. - */ - schema?: { [key: string]: unknown }; } export declare namespace FetchAPI { diff --git a/tests/api-resources/fetch-api.test.ts b/tests/api-resources/fetch-api.test.ts index a74882c..7e250d3 100644 --- a/tests/api-resources/fetch-api.test.ts +++ b/tests/api-resources/fetch-api.test.ts @@ -25,9 +25,7 @@ describe('resource fetchAPI', () => { url: 'https://example.com', allowInsecureSsl: true, allowRedirects: true, - format: 'raw', proxies: true, - schema: { foo: 'bar' }, }); }); }); From cce765af5828449b905cf647afcc2d90df4bd567 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 20:35:33 +0000 Subject: [PATCH 5/8] feat(api): manual updates --- .stats.yml | 4 ++-- src/resources/fetch-api.ts | 18 ++++++++++++++++-- tests/api-resources/fetch-api.test.ts | 2 ++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index c2ae426..8544550 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 21 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-090302cbdfdd8758ae5907f93842b16040a66772578d0327349135378e0bce40.yml -openapi_spec_hash: cb19458f0642bea3cf6eaf91113f9fda +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-3032c74460ad9c1c4b0a1b2d9107c556f292974a8ce12d525660a9cf31f10bc1.yml +openapi_spec_hash: 8ac1c673ce4e72b88bbbf30100b95e8f config_hash: cf04ecfb8dad5fbd8b85be25d6e9ec55 diff --git a/src/resources/fetch-api.ts b/src/resources/fetch-api.ts index 976f473..3232d17 100644 --- a/src/resources/fetch-api.ts +++ b/src/resources/fetch-api.ts @@ -19,9 +19,10 @@ export interface FetchAPICreateResponse { id: string; /** - * The response body content + * The response body content. A string for `raw` and `markdown` formats; a + * structured object for `json` format (the schema-extracted result). */ - content: string; + content: string | { [key: string]: unknown }; /** * The MIME type of the response @@ -60,10 +61,23 @@ export interface FetchAPICreateParams { */ allowRedirects?: boolean; + /** + * Output format for the response content. `raw` (default) returns the response + * body unchanged; `json` returns structured data (requires `schema`); `markdown` + * returns the page as markdown. + */ + format?: 'raw' | 'json' | 'markdown'; + /** * Whether to enable proxy support for the request */ proxies?: boolean; + + /** + * JSON Schema describing the desired structure of the response. Only used when + * `format` is `json`. + */ + schema?: { [key: string]: unknown }; } export declare namespace FetchAPI { diff --git a/tests/api-resources/fetch-api.test.ts b/tests/api-resources/fetch-api.test.ts index 7e250d3..a74882c 100644 --- a/tests/api-resources/fetch-api.test.ts +++ b/tests/api-resources/fetch-api.test.ts @@ -25,7 +25,9 @@ describe('resource fetchAPI', () => { url: 'https://example.com', allowInsecureSsl: true, allowRedirects: true, + format: 'raw', proxies: true, + schema: { foo: 'bar' }, }); }); }); From d18107b210c64be3ce0541789f74adb47136734f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 20:38:52 +0000 Subject: [PATCH 6/8] feat(api): manual updates --- .stats.yml | 6 +-- api.md | 11 +++++ src/resources/sessions/index.ts | 1 + src/resources/sessions/replays.ts | 49 ++++++++++++++++++++ src/resources/sessions/sessions.ts | 6 +++ tests/api-resources/sessions/replays.test.ts | 40 ++++++++++++++++ 6 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 src/resources/sessions/replays.ts create mode 100644 tests/api-resources/sessions/replays.test.ts diff --git a/.stats.yml b/.stats.yml index 8544550..724c919 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 21 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-3032c74460ad9c1c4b0a1b2d9107c556f292974a8ce12d525660a9cf31f10bc1.yml +configured_endpoints: 23 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-17193ab4cc450d38ce1bfdb1a571001c04b754ba2ff2d2bb2dcf4a898d6c6c41.yml openapi_spec_hash: 8ac1c673ce4e72b88bbbf30100b95e8f -config_hash: cf04ecfb8dad5fbd8b85be25d6e9ec55 +config_hash: 40fbac80e24faaa0dc19e93368bcd821 diff --git a/api.md b/api.md index eb38395..11f9afd 100644 --- a/api.md +++ b/api.md @@ -114,3 +114,14 @@ Types: Methods: - client.sessions.uploads.create(id, { ...params }) -> UploadCreateResponse + +## Replays + +Types: + +- ReplayRetrieveResponse + +Methods: + +- client.sessions.replays.retrieve(id) -> ReplayRetrieveResponse +- client.sessions.replays.retrievePage(id, pageId) -> Response diff --git a/src/resources/sessions/index.ts b/src/resources/sessions/index.ts index 9c9a61e..b3c2a80 100644 --- a/src/resources/sessions/index.ts +++ b/src/resources/sessions/index.ts @@ -3,6 +3,7 @@ export { Downloads } from './downloads'; export { Logs, type SessionLog, type LogListResponse } from './logs'; export { Recording, type SessionRecording, type RecordingRetrieveResponse } from './recording'; +export { Replays, type ReplayRetrieveResponse } from './replays'; export { Sessions, type Session, diff --git a/src/resources/sessions/replays.ts b/src/resources/sessions/replays.ts new file mode 100644 index 0000000..70d1f3b --- /dev/null +++ b/src/resources/sessions/replays.ts @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +import { APIResource } from '../../resource'; +import * as Core from '../../core'; +import { type Response } from '../../_shims/index'; + +export class Replays extends APIResource { + /** + * Returns page metadata for a session replay, including timing information and the + * URL of each page's HLS playlist. + */ + retrieve(id: string, options?: Core.RequestOptions): Core.APIPromise { + return this._client.get(`/v1/sessions/${id}/replays`, options); + } + + /** + * Returns an HLS VOD media playlist (.m3u8) for a specific page of a session + * replay. + */ + retrievePage(id: string, pageId: string, options?: Core.RequestOptions): Core.APIPromise { + return this._client.get(`/v1/sessions/${id}/replays/${pageId}`, { + ...options, + headers: { Accept: 'application/vnd.apple.mpegurl', ...options?.headers }, + __binaryResponse: true, + }); + } +} + +export interface ReplayRetrieveResponse { + pageCount: number; + + pages: Array; +} + +export namespace ReplayRetrieveResponse { + export interface Page { + endTimeMs: number; + + pageId: string; + + startTimeMs: number; + + url: string; + } +} + +export declare namespace Replays { + export { type ReplayRetrieveResponse as ReplayRetrieveResponse }; +} diff --git a/src/resources/sessions/sessions.ts b/src/resources/sessions/sessions.ts index d1f4dcd..ac5b37d 100644 --- a/src/resources/sessions/sessions.ts +++ b/src/resources/sessions/sessions.ts @@ -9,6 +9,8 @@ import * as LogsAPI from './logs'; import { LogListResponse, Logs, SessionLog } from './logs'; import * as RecordingAPI from './recording'; import { Recording, RecordingRetrieveResponse, SessionRecording } from './recording'; +import * as ReplaysAPI from './replays'; +import { ReplayRetrieveResponse, Replays } from './replays'; import * as UploadsAPI from './uploads'; import { UploadCreateParams, UploadCreateResponse, Uploads } from './uploads'; @@ -17,6 +19,7 @@ export class Sessions extends APIResource { logs: LogsAPI.Logs = new LogsAPI.Logs(this._client); recording: RecordingAPI.Recording = new RecordingAPI.Recording(this._client); uploads: UploadsAPI.Uploads = new UploadsAPI.Uploads(this._client); + replays: ReplaysAPI.Replays = new ReplaysAPI.Replays(this._client); /** * Create a Session @@ -437,6 +440,7 @@ Sessions.Downloads = Downloads; Sessions.Logs = Logs; Sessions.Recording = Recording; Sessions.Uploads = Uploads; +Sessions.Replays = Replays; export declare namespace Sessions { export { @@ -465,4 +469,6 @@ export declare namespace Sessions { type UploadCreateResponse as UploadCreateResponse, type UploadCreateParams as UploadCreateParams, }; + + export { Replays as Replays, type ReplayRetrieveResponse as ReplayRetrieveResponse }; } diff --git a/tests/api-resources/sessions/replays.test.ts b/tests/api-resources/sessions/replays.test.ts new file mode 100644 index 0000000..4387aaa --- /dev/null +++ b/tests/api-resources/sessions/replays.test.ts @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +import Browserbase from '@browserbasehq/sdk'; +import { Response } from 'node-fetch'; + +const client = new Browserbase({ + apiKey: 'My API Key', + baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010', +}); + +describe('resource replays', () => { + test('retrieve', async () => { + const responsePromise = client.sessions.replays.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e'); + const rawResponse = await responsePromise.asResponse(); + expect(rawResponse).toBeInstanceOf(Response); + const response = await responsePromise; + expect(response).not.toBeInstanceOf(Response); + const dataAndResponse = await responsePromise.withResponse(); + expect(dataAndResponse.data).toBe(response); + expect(dataAndResponse.response).toBe(rawResponse); + }); + + test('retrieve: request options instead of params are passed correctly', async () => { + // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error + await expect( + client.sessions.replays.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { + path: '/_stainless_unknown_path', + }), + ).rejects.toThrow(Browserbase.NotFoundError); + }); + + test('retrievePage: request options instead of params are passed correctly', async () => { + // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error + await expect( + client.sessions.replays.retrievePage('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', '090', { + path: '/_stainless_unknown_path', + }), + ).rejects.toThrow(Browserbase.NotFoundError); + }); +}); From 66d1e2a86b36362afdbeb58706c70fe14d6182a6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 21:33:19 +0000 Subject: [PATCH 7/8] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 724c919..f40d116 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 23 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-17193ab4cc450d38ce1bfdb1a571001c04b754ba2ff2d2bb2dcf4a898d6c6c41.yml -openapi_spec_hash: 8ac1c673ce4e72b88bbbf30100b95e8f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/browserbase-b2831c9c836f039762834825afdc20569587a825d29ac5c3748c78b009bf059b.yml +openapi_spec_hash: dd85a934900cb6583f12ebf6117be884 config_hash: 40fbac80e24faaa0dc19e93368bcd821 From 6a077fec88202242773c41a16010a8711c1e6682 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 21:33:42 +0000 Subject: [PATCH 8/8] release: 2.12.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 12 ++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- src/version.ts | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index a9b8e02..7a48e52 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.11.0" + ".": "2.12.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 7075cbd..460a81b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 2.12.0 (2026-05-20) + +Full Changelog: [v2.11.0...v2.12.0](https://github.com/browserbase/sdk-node/compare/v2.11.0...v2.12.0) + +### Features + +* [AI-1748][apps/api] Obtain custom certificates in API during session reservation ([0123bc8](https://github.com/browserbase/sdk-node/commit/0123bc8dd7754b7dad06692cf4d6032492d23576)) +* [AI-1972] - Move fetch v2 handler into /v1/fetch ([397c60f](https://github.com/browserbase/sdk-node/commit/397c60f9a97e8a8a587b00138586ac7a2797cee5)) +* [AI-1993] - Surface structured JSON content on /v2/fetch ([95c8dfa](https://github.com/browserbase/sdk-node/commit/95c8dfa7988a9784df18a5bf12e6298a2d6e3de4)) +* **api:** manual updates ([d18107b](https://github.com/browserbase/sdk-node/commit/d18107b210c64be3ce0541789f74adb47136734f)) +* **api:** manual updates ([cce765a](https://github.com/browserbase/sdk-node/commit/cce765af5828449b905cf647afcc2d90df4bd567)) + ## 2.11.0 (2026-05-13) Full Changelog: [v2.10.0...v2.11.0](https://github.com/browserbase/sdk-node/compare/v2.10.0...v2.11.0) diff --git a/package-lock.json b/package-lock.json index 64a24c0..1298b90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@browserbasehq/sdk", - "version": "2.11.0", + "version": "2.12.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@browserbasehq/sdk", - "version": "2.11.0", + "version": "2.12.0", "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", diff --git a/package.json b/package.json index d836657..c303732 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@browserbasehq/sdk", - "version": "2.11.0", + "version": "2.12.0", "description": "The official Node.js library for the Browserbase API", "author": "Browserbase ", "types": "dist/index.d.ts", diff --git a/src/version.ts b/src/version.ts index e91ff8d..e06ef68 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '2.11.0'; // x-release-please-version +export const VERSION = '2.12.0'; // x-release-please-version