# DO NOT EDIT MANUALLY - Managed by Fern Replay
version: "1.0"
generations:
  - commit_sha: c316672d7fc9d3bf902b633226969929adad0dca
    tree_hash: 7a55b1b0966aea398ee376ff3b62947618dda98b
    timestamp: 2026-05-20T07:39:27.879Z
    cli_version: unknown
    generator_versions: {}
  - commit_sha: c3a35abc58cb2069932026a430af4dacd1a77375
    tree_hash: 2650cfcd8cacddeea3bfc801dcd4122976446e87
    timestamp: 2026-05-26T13:58:18.906Z
    cli_version: unknown
    generator_versions:
      fernapi/fern-typescript-sdk: 3.36.0
  - commit_sha: d93a154a0453a9207a0a9f62d22b67f914897d4f
    tree_hash: e07fc750f93805fbe67ee57942fc2ddc75e21dbc
    timestamp: 2026-06-01T12:01:15.436Z
    cli_version: unknown
    generator_versions:
      fernapi/fern-typescript-sdk: 3.36.0
current_generation: d93a154a0453a9207a0a9f62d22b67f914897d4f
patches:
  - id: patch-de61f83d
    content_hash: sha256:68befbb918546e173f9cace2b64df407a8af413e8c49f6e8d2ffca07f350cc85
    original_commit: de61f83d12c24caaeddbe5127e980d623a146219
    original_message: "[Speech Engine] Add full response to Speech Engine API calls (#396)"
    original_author: Paul Asjes <paul.asjes@elevenlabs.io>
    base_generation: ce5e816b02d6ee652e144660cde533225a31d56f
    files:
      - package.json
      - src/BaseClient.ts
      - src/version.ts
    patch_content: |
      diff --git a/package.json b/package.json
      index c3c7f64f..d798dac6 100644
      --- a/package.json
      +++ b/package.json
      @@ -1,6 +1,6 @@
       {
           "name": "@elevenlabs/elevenlabs-js",
      -    "version": "2.49.0",
      +    "version": "2.49.1",
           "private": false,
           "repository": "github:elevenlabs/elevenlabs-js",
           "license": "MIT",
      diff --git a/src/BaseClient.ts b/src/BaseClient.ts
      index 86d613de..f6907e8e 100644
      --- a/src/BaseClient.ts
      +++ b/src/BaseClient.ts
      @@ -47,8 +47,8 @@ export function normalizeClientOptions<T extends BaseClientOptions>(options: T):
               {
                   "X-Fern-Language": "JavaScript",
                   "X-Fern-SDK-Name": "@elevenlabs/elevenlabs-js",
      -            "X-Fern-SDK-Version": "2.49.0",
      -            "User-Agent": "@elevenlabs/elevenlabs-js/2.49.0",
      +            "X-Fern-SDK-Version": "2.49.1",
      +            "User-Agent": "@elevenlabs/elevenlabs-js/2.49.1",
                   "X-Fern-Runtime": core.RUNTIME.type,
                   "X-Fern-Runtime-Version": core.RUNTIME.version,
                   "xi-api-key": options?.apiKey,
      diff --git a/src/version.ts b/src/version.ts
      index 6f569928..c3abf658 100644
      --- a/src/version.ts
      +++ b/src/version.ts
      @@ -1 +1 @@
      -export const SDK_VERSION = "2.49.0";
      +export const SDK_VERSION = "2.49.1";
    theirs_snapshot:
      package.json: |
        {
            "name": "@elevenlabs/elevenlabs-js",
            "version": "2.49.1",
            "private": false,
            "repository": "github:elevenlabs/elevenlabs-js",
            "license": "MIT",
            "main": "./index.js",
            "types": "./index.d.ts",
            "scripts": {
                "format": "biome format --write --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
                "format:check": "biome format --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
                "lint": "biome lint --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
                "lint:fix": "biome lint --fix --unsafe --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
                "check": "biome check --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
                "check:fix": "biome check --fix --unsafe --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none",
                "build": "tsc",
                "prepack": "cp -rv dist/. .",
                "test": "jest --config jest.config.mjs",
                "test:unit": "jest --selectProjects unit",
                "test:wire": "jest --selectProjects wire"
            },
            "dependencies": {
                "node-fetch": "^2.7.0",
                "command-exists": "^1.2.9",
                "ws": "^8.18.3"
            },
            "devDependencies": {
                "@types/node-fetch": "^2.6.12",
                "webpack": "^5.97.1",
                "ts-loader": "^9.5.1",
                "jest": "^29.7.0",
                "@jest/globals": "^29.7.0",
                "@types/jest": "^29.5.5",
                "ts-jest": "^29.1.1",
                "jest-environment-jsdom": "^29.7.0",
                "msw": "2.11.2",
                "@types/node": "^18.19.70",
                "typescript": "~5.7.2",
                "@biomejs/biome": "2.3.1",
                "@types/command-exists": "^1.2.3",
                "@types/ws": "^8.18.1"
            },
            "browser": {
                "fs": false,
                "os": false,
                "path": false,
                "stream": false,
                "command-exists": false
            },
            "packageManager": "yarn@1.22.22",
            "engines": {
                "node": ">=18.0.0"
            },
            "sideEffects": false
        }
      src/BaseClient.ts: |
        // This file was auto-generated by Fern from our API Definition.

        import * as core from "./core";
        import { mergeHeaders } from "./core/headers";
        import type * as environments from "./environments";

        export interface BaseClientOptions {
            environment?: core.Supplier<environments.ElevenLabsEnvironment | string>;
            /** Specify a custom URL to connect the client to. */
            baseUrl?: core.Supplier<string>;
            /** Override the xi-api-key header */
            apiKey?: core.Supplier<string | undefined>;
            /** Additional headers to include in requests. */
            headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;
            /** The default maximum time to wait for a response in seconds. */
            timeoutInSeconds?: number;
            /** The default number of times to retry the request. Defaults to 2. */
            maxRetries?: number;
            /** Provide a custom fetch implementation. Useful for platforms that don't have a built-in fetch or need a custom implementation. */
            fetch?: typeof fetch;
            fetcher?: core.FetchFunction;
            /** Configure logging for the client. */
            logging?: core.logging.LogConfig | core.logging.Logger;
        }

        export interface BaseRequestOptions {
            /** The maximum time to wait for a response in seconds. */
            timeoutInSeconds?: number;
            /** The number of times to retry the request. Defaults to 2. */
            maxRetries?: number;
            /** A hook to abort the request. */
            abortSignal?: AbortSignal;
            /** Override the xi-api-key header */
            apiKey?: string | undefined;
            /** Additional query string parameters to include in the request. */
            queryParams?: Record<string, unknown>;
            /** Additional headers to include in the request. */
            headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;
        }

        export type NormalizedClientOptions<T extends BaseClientOptions> = T & {
            logging: core.logging.Logger;
        };

        export function normalizeClientOptions<T extends BaseClientOptions>(options: T): NormalizedClientOptions<T> {
            const headers = mergeHeaders(
                {
                    "X-Fern-Language": "JavaScript",
                    "X-Fern-SDK-Name": "@elevenlabs/elevenlabs-js",
                    "X-Fern-SDK-Version": "2.49.1",
                    "User-Agent": "@elevenlabs/elevenlabs-js/2.49.1",
                    "X-Fern-Runtime": core.RUNTIME.type,
                    "X-Fern-Runtime-Version": core.RUNTIME.version,
                    "xi-api-key": options?.apiKey,
                },
                options?.headers,
            );

            return {
                ...options,
                logging: core.logging.createLogger(options?.logging),
                headers,
            } as NormalizedClientOptions<T>;
        }
      src/version.ts: |
        export const SDK_VERSION = "2.49.1";
    status: unresolved
  - id: patch-f50f1558
    content_hash: sha256:5a09c3db02b795ab544221e13bf2681e7f9bb43c07e8cd96ac063a405dc3a2c6
    original_commit: f50f1558f741e331dd3949ded57771c012ef27ab
    original_message: Add missing methods and test (#399)
    original_author: Paul Asjes <paul.asjes@elevenlabs.io>
    base_generation: d93a154a0453a9207a0a9f62d22b67f914897d4f
    files:
      - tests/unit/wrapper/music.test.ts
    patch_content: |
      diff --git a/tests/unit/wrapper/music.test.ts b/tests/unit/wrapper/music.test.ts
      new file mode 100644
      index 00000000..733d6344
      --- /dev/null
      +++ b/tests/unit/wrapper/music.test.ts
      @@ -0,0 +1,19 @@
      +import { describe, it, expect } from "@jest/globals";
      +import { MusicClient } from "../../../src/api/resources/music/client/Client";
      +import { Music } from "../../../src/wrapper/music";
      +
      +function getPublicMethods(proto: object): string[] {
      +    return Object.getOwnPropertyNames(proto).filter(
      +        (name) => name !== "constructor" && !name.startsWith("_"),
      +    );
      +}
      +
      +describe("Music wrapper", () => {
      +    it("exposes all public methods of the generated MusicClient", () => {
      +        const clientMethods = getPublicMethods(MusicClient.prototype);
      +        const wrapperMethods = getPublicMethods(Music.prototype);
      +
      +        const missing = clientMethods.filter((m) => !wrapperMethods.includes(m));
      +        expect(missing).toEqual([]);
      +    });
      +});
    theirs_snapshot:
      tests/unit/wrapper/music.test.ts: |
        import { describe, it, expect } from "@jest/globals";
        import { MusicClient } from "../../../src/api/resources/music/client/Client";
        import { Music } from "../../../src/wrapper/music";

        function getPublicMethods(proto: object): string[] {
            return Object.getOwnPropertyNames(proto).filter(
                (name) => name !== "constructor" && !name.startsWith("_"),
            );
        }

        describe("Music wrapper", () => {
            it("exposes all public methods of the generated MusicClient", () => {
                const clientMethods = getPublicMethods(MusicClient.prototype);
                const wrapperMethods = getPublicMethods(Music.prototype);

                const missing = clientMethods.filter((m) => !wrapperMethods.includes(m));
                expect(missing).toEqual([]);
            });
        });
    user_owned: true
