@nodaro/sdk 1.23.0 → 1.25.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.d.cts CHANGED
@@ -222,10 +222,17 @@ declare class WorkflowsResource {
222
222
  }>;
223
223
  /**
224
224
  * Import a `WorkflowExport` bundle into the specified project.
225
- * Re-creates any bundled assets (characters, objects, locations) under your account.
225
+ * Re-creates any bundled assets (characters, objects, creatures, locations)
226
+ * under your account, and re-points BOTH the entity nodes and every `@`-chip
227
+ * (`ConnectedReference`) bound in the graph at the rows it created.
226
228
  * Media the bundle references on other hosts is copied onto this instance's
227
- * storage where reachable; `importReport` says what was copied, what could
228
- * not be reached, and what was skipped (and why).
229
+ * storage where reachable; a bundled entity's images are copied whoever
230
+ * hosts them, because they are the exporter's bytes and their lifecycle is
231
+ * not yours. `importReport` says what was copied, what could not be reached
232
+ * and what was skipped (and why); `assetIdMap` maps each bundled entity id
233
+ * to the row created for it (for chips you hold outside the graph), and
234
+ * `assetsSkipped` names the entities your storage quota left uncreated —
235
+ * the workflow itself still lands.
229
236
  */
230
237
  import(input: WorkflowExport & {
231
238
  projectId: string;
@@ -3769,6 +3776,32 @@ declare class VoicesResource {
3769
3776
  dub(input: DubbingInput): Promise<{
3770
3777
  jobId: string;
3771
3778
  }>;
3779
+ /**
3780
+ * Voice a multi-speaker script as ONE audio file
3781
+ * (`POST /v1/text-to-dialogue`, ElevenLabs Dialogue v3). Each `dialogue`
3782
+ * line is `{ text, voice }` in speaking order — `voice` is a premade voice
3783
+ * name or an ElevenLabs voice UUID (cloned/library voices work too; mixed
3784
+ * casts are fine). At most 5,000 characters total across lines (≤2,000
3785
+ * recommended for best quality) and 10 unique voices. Line text may carry
3786
+ * `[audio tags]` like `[laughs]`. Costs credits and runs async — poll
3787
+ * `jobs.get(jobId)` for `output_data.audioUrl`.
3788
+ */
3789
+ textToDialogue(input: {
3790
+ dialogue: Array<{
3791
+ text: string;
3792
+ voice: string;
3793
+ }>;
3794
+ /** v3 stability: 0 (most variable) | 0.5 (balanced) | 1 (most stable). */
3795
+ stability?: 0 | 0.5 | 1;
3796
+ /** ISO 639-1 language hint (e.g. "en"); auto-detected when omitted. */
3797
+ languageCode?: string;
3798
+ /** Deterministic sampling seed (integer 0–4294967295). Omit for random. */
3799
+ seed?: number;
3800
+ /** Spell out numbers/dates/abbreviations: "auto" (default) | "on" | "off". */
3801
+ applyTextNormalization?: "auto" | "on" | "off";
3802
+ }): Promise<{
3803
+ jobId: string;
3804
+ }>;
3772
3805
  /**
3773
3806
  * Clone a voice from an audio FILE you hold in memory
3774
3807
  * (`POST /v1/voice-clones`, multipart) — the counterpart to
@@ -3795,6 +3828,18 @@ declare class VoicesResource {
3795
3828
  type VoiceChangerProVoice = string | {
3796
3829
  /** Target voice — premade name (`"Rachel"`, `"Aria"`, …) or an ElevenLabs UUID for a custom clone. */
3797
3830
  voiceId: string;
3831
+ /**
3832
+ * Which lane converts this speaker. `"sts"` (default) is the classic
3833
+ * speech-to-speech recast; `"v3"` is RE-SPEAK — the performance is
3834
+ * REGENERATED from the transcript with eleven_v3 (supports `[audio
3835
+ * tags]`; original delivery is replaced, and lips won't match on video).
3836
+ * A v3 speaker needs transcript text: pass an `analysis` whose
3837
+ * `segments[].text` carries it (analyze now emits this), or omit
3838
+ * `analysis` and the engine re-speaks from its own transcription. For
3839
+ * `"v3"`, `stability` accepts exactly 0 / 0.5 / 1, and
3840
+ * `similarityBoost` / `style` / `useSpeakerBoost` are ignored.
3841
+ */
3842
+ engine?: "sts" | "v3";
3798
3843
  /** ElevenLabs stability (0–1). Higher = steadier, lower = more expressive. */
3799
3844
  stability?: number;
3800
3845
  /** ElevenLabs similarity boost (0–1) — how closely the output hugs the target voice's timbre. */
@@ -3897,10 +3942,13 @@ interface VoiceChangerProInput {
3897
3942
  interface VcpAnalysisSpeaker {
3898
3943
  /** Stable speaker id (first-appearance order). */
3899
3944
  id: string;
3900
- /** The speaker's spoken time ranges (seconds). */
3945
+ /** The speaker's spoken time ranges (seconds). `text` is what was said in
3946
+ * the range — the paid input for a speaker recast with `engine: "v3"`
3947
+ * (editable before conversion); the STS lane ignores it. */
3901
3948
  segments: Array<{
3902
3949
  start: number;
3903
3950
  end: number;
3951
+ text?: string;
3904
3952
  }>;
3905
3953
  /** When the speaker first speaks (seconds). */
3906
3954
  firstStartSec?: number;
@@ -3996,20 +4044,39 @@ interface VoiceRemixInput {
3996
4044
  /** Optional extra prompt context (≤8000 chars). */
3997
4045
  userPrompt?: string;
3998
4046
  }
3999
- /** Input for {@link VoicesResource.dub}. */
4047
+ /** Input for {@link VoicesResource.dub}. Provide exactly ONE source:
4048
+ * `audioUrl` (dubbed audio out), `videoUrl` (the dubbed VIDEO out, plus the
4049
+ * dubbed audio track as `output_data.audioUrl`), or `sourceUrl` (a public
4050
+ * YouTube/TikTok/direct link ElevenLabs fetches itself). Priced per minute
4051
+ * of the dubbed span; the span is capped at 30 minutes — use
4052
+ * `startTime`/`endTime` to dub part of a longer source. */
4000
4053
  interface DubbingInput {
4001
- /** URL of the audio to dub. */
4002
- audioUrl: string;
4054
+ /** URL of the audio to dub (audio mode). */
4055
+ audioUrl?: string;
4056
+ /** URL of the video to dub — the result is the dubbed VIDEO (+ audio track). */
4057
+ videoUrl?: string;
4058
+ /** Public page/media URL (YouTube, TikTok, or a direct link) — ElevenLabs fetches it directly. */
4059
+ sourceUrl?: string;
4003
4060
  /** Target language ISO code (2–10 chars), e.g. `"es"`, `"pt-BR"`. */
4004
4061
  targetLanguage: string;
4005
4062
  /** Source language ISO code; auto-detected when omitted. */
4006
4063
  sourceLanguage?: string;
4007
- /** Expected number of speakers (1–20) — improves separation when known. */
4064
+ /** Expected number of speakers (1–20; 0 = auto-detect) — improves separation when known. */
4008
4065
  numSpeakers?: number;
4009
4066
  /** Keep the original voices instead of cloning them into the target language. */
4010
4067
  disableVoiceCloning?: boolean;
4011
4068
  /** Drop the background/music bed from the dubbed output. */
4012
4069
  dropBackgroundAudio?: boolean;
4070
+ /** Dub only this window of the source (seconds). */
4071
+ startTime?: number;
4072
+ endTime?: number;
4073
+ /** Keep the source resolution on video dubs (slower render). */
4074
+ highestResolution?: boolean;
4075
+ useProfanityFilter?: boolean;
4076
+ /** Experimental: steer dubbed voices toward an accent. */
4077
+ targetAccent?: string;
4078
+ /** Apply ElevenLabs' own watermark to video dubs. */
4079
+ watermark?: boolean;
4013
4080
  }
4014
4081
 
4015
4082
  /**
package/dist/index.d.ts CHANGED
@@ -222,10 +222,17 @@ declare class WorkflowsResource {
222
222
  }>;
223
223
  /**
224
224
  * Import a `WorkflowExport` bundle into the specified project.
225
- * Re-creates any bundled assets (characters, objects, locations) under your account.
225
+ * Re-creates any bundled assets (characters, objects, creatures, locations)
226
+ * under your account, and re-points BOTH the entity nodes and every `@`-chip
227
+ * (`ConnectedReference`) bound in the graph at the rows it created.
226
228
  * Media the bundle references on other hosts is copied onto this instance's
227
- * storage where reachable; `importReport` says what was copied, what could
228
- * not be reached, and what was skipped (and why).
229
+ * storage where reachable; a bundled entity's images are copied whoever
230
+ * hosts them, because they are the exporter's bytes and their lifecycle is
231
+ * not yours. `importReport` says what was copied, what could not be reached
232
+ * and what was skipped (and why); `assetIdMap` maps each bundled entity id
233
+ * to the row created for it (for chips you hold outside the graph), and
234
+ * `assetsSkipped` names the entities your storage quota left uncreated —
235
+ * the workflow itself still lands.
229
236
  */
230
237
  import(input: WorkflowExport & {
231
238
  projectId: string;
@@ -3769,6 +3776,32 @@ declare class VoicesResource {
3769
3776
  dub(input: DubbingInput): Promise<{
3770
3777
  jobId: string;
3771
3778
  }>;
3779
+ /**
3780
+ * Voice a multi-speaker script as ONE audio file
3781
+ * (`POST /v1/text-to-dialogue`, ElevenLabs Dialogue v3). Each `dialogue`
3782
+ * line is `{ text, voice }` in speaking order — `voice` is a premade voice
3783
+ * name or an ElevenLabs voice UUID (cloned/library voices work too; mixed
3784
+ * casts are fine). At most 5,000 characters total across lines (≤2,000
3785
+ * recommended for best quality) and 10 unique voices. Line text may carry
3786
+ * `[audio tags]` like `[laughs]`. Costs credits and runs async — poll
3787
+ * `jobs.get(jobId)` for `output_data.audioUrl`.
3788
+ */
3789
+ textToDialogue(input: {
3790
+ dialogue: Array<{
3791
+ text: string;
3792
+ voice: string;
3793
+ }>;
3794
+ /** v3 stability: 0 (most variable) | 0.5 (balanced) | 1 (most stable). */
3795
+ stability?: 0 | 0.5 | 1;
3796
+ /** ISO 639-1 language hint (e.g. "en"); auto-detected when omitted. */
3797
+ languageCode?: string;
3798
+ /** Deterministic sampling seed (integer 0–4294967295). Omit for random. */
3799
+ seed?: number;
3800
+ /** Spell out numbers/dates/abbreviations: "auto" (default) | "on" | "off". */
3801
+ applyTextNormalization?: "auto" | "on" | "off";
3802
+ }): Promise<{
3803
+ jobId: string;
3804
+ }>;
3772
3805
  /**
3773
3806
  * Clone a voice from an audio FILE you hold in memory
3774
3807
  * (`POST /v1/voice-clones`, multipart) — the counterpart to
@@ -3795,6 +3828,18 @@ declare class VoicesResource {
3795
3828
  type VoiceChangerProVoice = string | {
3796
3829
  /** Target voice — premade name (`"Rachel"`, `"Aria"`, …) or an ElevenLabs UUID for a custom clone. */
3797
3830
  voiceId: string;
3831
+ /**
3832
+ * Which lane converts this speaker. `"sts"` (default) is the classic
3833
+ * speech-to-speech recast; `"v3"` is RE-SPEAK — the performance is
3834
+ * REGENERATED from the transcript with eleven_v3 (supports `[audio
3835
+ * tags]`; original delivery is replaced, and lips won't match on video).
3836
+ * A v3 speaker needs transcript text: pass an `analysis` whose
3837
+ * `segments[].text` carries it (analyze now emits this), or omit
3838
+ * `analysis` and the engine re-speaks from its own transcription. For
3839
+ * `"v3"`, `stability` accepts exactly 0 / 0.5 / 1, and
3840
+ * `similarityBoost` / `style` / `useSpeakerBoost` are ignored.
3841
+ */
3842
+ engine?: "sts" | "v3";
3798
3843
  /** ElevenLabs stability (0–1). Higher = steadier, lower = more expressive. */
3799
3844
  stability?: number;
3800
3845
  /** ElevenLabs similarity boost (0–1) — how closely the output hugs the target voice's timbre. */
@@ -3897,10 +3942,13 @@ interface VoiceChangerProInput {
3897
3942
  interface VcpAnalysisSpeaker {
3898
3943
  /** Stable speaker id (first-appearance order). */
3899
3944
  id: string;
3900
- /** The speaker's spoken time ranges (seconds). */
3945
+ /** The speaker's spoken time ranges (seconds). `text` is what was said in
3946
+ * the range — the paid input for a speaker recast with `engine: "v3"`
3947
+ * (editable before conversion); the STS lane ignores it. */
3901
3948
  segments: Array<{
3902
3949
  start: number;
3903
3950
  end: number;
3951
+ text?: string;
3904
3952
  }>;
3905
3953
  /** When the speaker first speaks (seconds). */
3906
3954
  firstStartSec?: number;
@@ -3996,20 +4044,39 @@ interface VoiceRemixInput {
3996
4044
  /** Optional extra prompt context (≤8000 chars). */
3997
4045
  userPrompt?: string;
3998
4046
  }
3999
- /** Input for {@link VoicesResource.dub}. */
4047
+ /** Input for {@link VoicesResource.dub}. Provide exactly ONE source:
4048
+ * `audioUrl` (dubbed audio out), `videoUrl` (the dubbed VIDEO out, plus the
4049
+ * dubbed audio track as `output_data.audioUrl`), or `sourceUrl` (a public
4050
+ * YouTube/TikTok/direct link ElevenLabs fetches itself). Priced per minute
4051
+ * of the dubbed span; the span is capped at 30 minutes — use
4052
+ * `startTime`/`endTime` to dub part of a longer source. */
4000
4053
  interface DubbingInput {
4001
- /** URL of the audio to dub. */
4002
- audioUrl: string;
4054
+ /** URL of the audio to dub (audio mode). */
4055
+ audioUrl?: string;
4056
+ /** URL of the video to dub — the result is the dubbed VIDEO (+ audio track). */
4057
+ videoUrl?: string;
4058
+ /** Public page/media URL (YouTube, TikTok, or a direct link) — ElevenLabs fetches it directly. */
4059
+ sourceUrl?: string;
4003
4060
  /** Target language ISO code (2–10 chars), e.g. `"es"`, `"pt-BR"`. */
4004
4061
  targetLanguage: string;
4005
4062
  /** Source language ISO code; auto-detected when omitted. */
4006
4063
  sourceLanguage?: string;
4007
- /** Expected number of speakers (1–20) — improves separation when known. */
4064
+ /** Expected number of speakers (1–20; 0 = auto-detect) — improves separation when known. */
4008
4065
  numSpeakers?: number;
4009
4066
  /** Keep the original voices instead of cloning them into the target language. */
4010
4067
  disableVoiceCloning?: boolean;
4011
4068
  /** Drop the background/music bed from the dubbed output. */
4012
4069
  dropBackgroundAudio?: boolean;
4070
+ /** Dub only this window of the source (seconds). */
4071
+ startTime?: number;
4072
+ endTime?: number;
4073
+ /** Keep the source resolution on video dubs (slower render). */
4074
+ highestResolution?: boolean;
4075
+ useProfanityFilter?: boolean;
4076
+ /** Experimental: steer dubbed voices toward an accent. */
4077
+ targetAccent?: string;
4078
+ /** Apply ElevenLabs' own watermark to video dubs. */
4079
+ watermark?: boolean;
4013
4080
  }
4014
4081
 
4015
4082
  /**
package/dist/index.js CHANGED
@@ -238,10 +238,17 @@ var WorkflowsResource = class {
238
238
  }
239
239
  /**
240
240
  * Import a `WorkflowExport` bundle into the specified project.
241
- * Re-creates any bundled assets (characters, objects, locations) under your account.
241
+ * Re-creates any bundled assets (characters, objects, creatures, locations)
242
+ * under your account, and re-points BOTH the entity nodes and every `@`-chip
243
+ * (`ConnectedReference`) bound in the graph at the rows it created.
242
244
  * Media the bundle references on other hosts is copied onto this instance's
243
- * storage where reachable; `importReport` says what was copied, what could
244
- * not be reached, and what was skipped (and why).
245
+ * storage where reachable; a bundled entity's images are copied whoever
246
+ * hosts them, because they are the exporter's bytes and their lifecycle is
247
+ * not yours. `importReport` says what was copied, what could not be reached
248
+ * and what was skipped (and why); `assetIdMap` maps each bundled entity id
249
+ * to the row created for it (for chips you hold outside the graph), and
250
+ * `assetsSkipped` names the entities your storage quota left uncreated —
251
+ * the workflow itself still lands.
245
252
  */
246
253
  import(input) {
247
254
  const { projectId, ...workflowJson } = input;
@@ -1756,6 +1763,19 @@ var VoicesResource = class {
1756
1763
  dub(input) {
1757
1764
  return this.client.request("POST", "/v1/dubbing", { body: input });
1758
1765
  }
1766
+ /**
1767
+ * Voice a multi-speaker script as ONE audio file
1768
+ * (`POST /v1/text-to-dialogue`, ElevenLabs Dialogue v3). Each `dialogue`
1769
+ * line is `{ text, voice }` in speaking order — `voice` is a premade voice
1770
+ * name or an ElevenLabs voice UUID (cloned/library voices work too; mixed
1771
+ * casts are fine). At most 5,000 characters total across lines (≤2,000
1772
+ * recommended for best quality) and 10 unique voices. Line text may carry
1773
+ * `[audio tags]` like `[laughs]`. Costs credits and runs async — poll
1774
+ * `jobs.get(jobId)` for `output_data.audioUrl`.
1775
+ */
1776
+ textToDialogue(input) {
1777
+ return this.client.request("POST", "/v1/text-to-dialogue", { body: input });
1778
+ }
1759
1779
  /**
1760
1780
  * Clone a voice from an audio FILE you hold in memory
1761
1781
  * (`POST /v1/voice-clones`, multipart) — the counterpart to
@@ -2615,7 +2635,7 @@ var WorkspacesResource = class {
2615
2635
  return this.client.request("POST", "/v1/workspaces/join", { body: { code } });
2616
2636
  }
2617
2637
  };
2618
- var SDK_VERSION = "1.23.0" ;
2638
+ var SDK_VERSION = "1.25.0" ;
2619
2639
  var CLIENT_HEADER = "X-Nodaro-Client";
2620
2640
  var isBrowser = () => typeof window !== "undefined" && typeof window.document !== "undefined";
2621
2641
  var NodaroClient = class _NodaroClient {