assemblyai 4.18.1 → 4.18.4
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/assemblyai.umd.js +1 -1
- package/dist/assemblyai.umd.min.js +1 -1
- package/dist/browser.mjs +1 -1
- package/dist/bun.mjs +1 -1
- package/dist/deno.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/node.cjs +1 -1
- package/dist/node.mjs +1 -1
- package/dist/types/openapi.generated.d.ts +167 -1
- package/dist/workerd.mjs +1 -1
- package/package.json +1 -1
- package/src/types/openapi.generated.ts +180 -1
package/dist/assemblyai.umd.js
CHANGED
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
defaultUserAgentString += navigator.userAgent;
|
|
66
66
|
}
|
|
67
67
|
const defaultUserAgent = {
|
|
68
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
68
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
69
69
|
};
|
|
70
70
|
if (typeof process !== "undefined") {
|
|
71
71
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).assemblyai={})}(this,(function(e){"use strict";function t(e,t,s,i){return new(s||(s=Promise))((function(n,r){function o(e){try{c(i.next(e))}catch(e){r(e)}}function a(e){try{c(i.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,a)}c((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const s={cache:"no-store"};let i="";"undefined"!=typeof navigator&&navigator.userAgent&&(i+=navigator.userAgent);const n={sdk:{name:"JavaScript",version:"4.18.1"}};"undefined"!=typeof process&&(process.versions.node&&-1===i.indexOf("Node")&&(n.runtime_env={name:"Node",version:process.versions.node}),process.versions.bun&&-1===i.indexOf("Bun")&&(n.runtime_env={name:"Bun",version:process.versions.bun})),"undefined"!=typeof Deno&&process.versions.bun&&-1===i.indexOf("Deno")&&(n.runtime_env={name:"Deno",version:Deno.version.deno});class r{constructor(e){var t;this.params=e,!1===e.userAgent?this.userAgent=void 0:this.userAgent=(t=e.userAgent||{},i+(!1===t?"":" AssemblyAI/1.0 ("+Object.entries(Object.assign(Object.assign({},n),t)).map((([e,t])=>t?`${e}=${t.name}/${t.version}`:"")).join(" ")+")"))}fetch(e,i){return t(this,void 0,void 0,(function*(){i=Object.assign(Object.assign({},s),i);let t={Authorization:this.params.apiKey,"Content-Type":"application/json"};(null==s?void 0:s.headers)&&(t=Object.assign(Object.assign({},t),s.headers)),(null==i?void 0:i.headers)&&(t=Object.assign(Object.assign({},t),i.headers)),this.userAgent&&(t["User-Agent"]=this.userAgent,"undefined"!=typeof window&&"chrome"in window&&(t["AssemblyAI-Agent"]=this.userAgent)),i.headers=t,e.startsWith("http")||(e=this.params.baseUrl+e);const n=yield fetch(e,i);if(n.status>=400){let e;const t=yield n.text();if(t){try{e=JSON.parse(t)}catch(e){}if(null==e?void 0:e.error)throw new Error(e.error);throw new Error(t)}throw new Error(`HTTP Error: ${n.status} ${n.statusText}`)}return n}))}fetchJson(e,s){return t(this,void 0,void 0,(function*(){return(yield this.fetch(e,s)).json()}))}}class o extends r{summary(e,t){return this.fetchJson("/lemur/v3/generate/summary",{method:"POST",body:JSON.stringify(e),signal:t})}questionAnswer(e,t){return this.fetchJson("/lemur/v3/generate/question-answer",{method:"POST",body:JSON.stringify(e),signal:t})}actionItems(e,t){return this.fetchJson("/lemur/v3/generate/action-items",{method:"POST",body:JSON.stringify(e),signal:t})}task(e,t){return this.fetchJson("/lemur/v3/generate/task",{method:"POST",body:JSON.stringify(e),signal:t})}getResponse(e,t){return this.fetchJson(`/lemur/v3/${e}`,{signal:t})}purgeRequestData(e,t){return this.fetchJson(`/lemur/v3/${e}`,{method:"DELETE",signal:t})}}const{WritableStream:a}="undefined"!=typeof window?window:"undefined"!=typeof global?global:globalThis;var c,l;const d=null!==(l=null!==(c=null!==WebSocket&&void 0!==WebSocket?WebSocket:null===global||void 0===global?void 0:global.WebSocket)&&void 0!==c?c:null===window||void 0===window?void 0:window.WebSocket)&&void 0!==l?l:null===self||void 0===self?void 0:self.WebSocket,h=(e,t)=>t?new d(e,t):new d(e),u={[4e3]:"Sample rate must be a positive integer",[4001]:"Not Authorized",[4002]:"Insufficient funds",[4003]:"This feature is paid-only and requires you to add a credit card. Please visit https://app.assemblyai.com/ to add a credit card to your account.",[4004]:"Session ID does not exist",[4008]:"Session has expired",[4010]:"Session is closed",[4029]:"Rate limited",[4030]:"Unique session violation",[4031]:"Session Timeout",[4032]:"Audio too short",[4033]:"Audio too long",[4034]:"Audio too small to transcode",[4100]:"Bad JSON",[4101]:"Bad schema",[4102]:"Too many streams",[4103]:"This session has been reconnected. This WebSocket is no longer valid.",[1013]:"Reconnect attempts exhausted",[4104]:"Could not parse word boost parameter"};class m extends Error{}const p={[4e3]:"Sample rate must be a positive integer",[4001]:"Not Authorized",[4002]:"Insufficient funds",[4003]:"This feature is paid-only and requires you to add a credit card. Please visit https://app.assemblyai.com/ to add a credit card to your account.",[4004]:"Session ID does not exist",[4008]:"Session has expired",[4010]:"Session is closed",[4029]:"Rate limited",[4030]:"Unique session violation",[4031]:"Session Timeout",[4032]:"Audio too short",[4033]:"Audio too long",[4034]:"Audio too small to transcode",[4101]:"Bad schema",[4102]:"Too many streams",[4103]:"This session has been reconnected. This WebSocket is no longer valid."};class f extends Error{}const y='{"terminate_session":true}';class v{constructor(e){var t,s;if(this.listeners={},this.realtimeUrl=null!==(t=e.realtimeUrl)&&void 0!==t?t:"wss://api.assemblyai.com/v2/realtime/ws",this.sampleRate=null!==(s=e.sampleRate)&&void 0!==s?s:16e3,this.wordBoost=e.wordBoost,this.encoding=e.encoding,this.endUtteranceSilenceThreshold=e.endUtteranceSilenceThreshold,this.disablePartialTranscripts=e.disablePartialTranscripts,"token"in e&&e.token&&(this.token=e.token),"apiKey"in e&&e.apiKey&&(this.apiKey=e.apiKey),!this.token&&!this.apiKey)throw new Error("API key or temporary token is required.")}connectionUrl(){const e=new URL(this.realtimeUrl);if("wss:"!==e.protocol)throw new Error("Invalid protocol, must be wss");const t=new URLSearchParams;return this.token&&t.set("token",this.token),t.set("sample_rate",this.sampleRate.toString()),this.wordBoost&&this.wordBoost.length>0&&t.set("word_boost",JSON.stringify(this.wordBoost)),this.encoding&&t.set("encoding",this.encoding),t.set("enable_extra_session_information","true"),this.disablePartialTranscripts&&t.set("disable_partial_transcripts",this.disablePartialTranscripts.toString()),e.search=t.toString(),e}on(e,t){this.listeners[e]=t}connect(){return new Promise((e=>{if(this.socket)throw new Error("Already connected");const t=this.connectionUrl();this.token?this.socket=h(t.toString()):(console.warn("API key authentication is not supported for the RealtimeTranscriber in browser environment. Use temporary token authentication instead.\nLearn more at https://github.com/AssemblyAI/assemblyai-node-sdk/blob/main/docs/compat.md#browser-compatibility."),this.socket=h(t.toString(),{headers:{Authorization:this.apiKey}})),this.socket.binaryType="arraybuffer",this.socket.onopen=()=>{void 0!==this.endUtteranceSilenceThreshold&&null!==this.endUtteranceSilenceThreshold&&this.configureEndUtteranceSilenceThreshold(this.endUtteranceSilenceThreshold)},this.socket.onclose=({code:e,reason:t})=>{var s,i;t||e in u&&(t=u[e]),null===(i=(s=this.listeners).close)||void 0===i||i.call(s,e,t)},this.socket.onerror=e=>{var t,s,i,n;e.error?null===(s=(t=this.listeners).error)||void 0===s||s.call(t,e.error):null===(n=(i=this.listeners).error)||void 0===n||n.call(i,new Error(e.message))},this.socket.onmessage=({data:t})=>{var s,i,n,r,o,a,c,l,d,h,u,p,f,y,v;const b=JSON.parse(t.toString());if("error"in b)null===(i=(s=this.listeners).error)||void 0===i||i.call(s,new m(b.error));else switch(b.message_type){case"SessionBegins":{const t={sessionId:b.session_id,expiresAt:new Date(b.expires_at)};e(t),null===(r=(n=this.listeners).open)||void 0===r||r.call(n,t);break}case"PartialTranscript":b.created=new Date(b.created),null===(a=(o=this.listeners).transcript)||void 0===a||a.call(o,b),null===(l=(c=this.listeners)["transcript.partial"])||void 0===l||l.call(c,b);break;case"FinalTranscript":b.created=new Date(b.created),null===(h=(d=this.listeners).transcript)||void 0===h||h.call(d,b),null===(p=(u=this.listeners)["transcript.final"])||void 0===p||p.call(u,b);break;case"SessionInformation":null===(y=(f=this.listeners).session_information)||void 0===y||y.call(f,b);break;case"SessionTerminated":null===(v=this.sessionTerminatedResolve)||void 0===v||v.call(this)}}}))}sendAudio(e){this.send(e)}stream(){return new a({write:e=>{this.sendAudio(e)}})}forceEndUtterance(){this.send('{"force_end_utterance":true}')}configureEndUtteranceSilenceThreshold(e){this.send(`{"end_utterance_silence_threshold":${e}}`)}send(e){if(!this.socket||this.socket.readyState!==this.socket.OPEN)throw new Error("Socket is not open for communication");this.socket.send(e)}close(){return t(this,arguments,void 0,(function*(e=!0){var t;if(this.socket){if(this.socket.readyState===this.socket.OPEN)if(e){const e=new Promise((e=>{this.sessionTerminatedResolve=e}));this.socket.send(y),yield e}else this.socket.send(y);(null===(t=this.socket)||void 0===t?void 0:t.removeAllListeners)&&this.socket.removeAllListeners(),this.socket.close()}this.listeners={},this.socket=void 0}))}}class b extends r{constructor(e){super(e),this.rtFactoryParams=e}createService(e){return this.transcriber(e)}transcriber(e){const t=Object.assign({},e);return t.token||t.apiKey||(t.apiKey=this.rtFactoryParams.apiKey),new v(t)}createTemporaryToken(e){return t(this,void 0,void 0,(function*(){return(yield this.fetchJson("/v2/realtime/token",{method:"POST",body:JSON.stringify(e)})).token}))}}function g(e){return e.startsWith("http")||e.startsWith("https")||e.startsWith("data:")?null:e.startsWith("file://")?e.substring(7):e.startsWith("file:")?e.substring(5):e}class w extends r{constructor(e,t){super(e),this.files=t}transcribe(e,s){return t(this,void 0,void 0,(function*(){const t=yield this.submit(e);return yield this.waitUntilReady(t.id,s)}))}submit(e){return t(this,void 0,void 0,(function*(){let t,s;if("audio"in e){const{audio:i}=e,n=function(e,t){var s={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(s[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(s[i[n]]=e[i[n]])}return s}(e,["audio"]);if("string"==typeof i){const e=g(i);t=null!==e?yield this.files.upload(e):i.startsWith("data:")?yield this.files.upload(i):i}else t=yield this.files.upload(i);s=Object.assign(Object.assign({},n),{audio_url:t})}else s=e;return yield this.fetchJson("/v2/transcript",{method:"POST",body:JSON.stringify(s)})}))}create(e,s){return t(this,void 0,void 0,(function*(){var t;const i=g(e.audio_url);if(null!==i){const t=yield this.files.upload(i);e.audio_url=t}const n=yield this.fetchJson("/v2/transcript",{method:"POST",body:JSON.stringify(e)});return null===(t=null==s?void 0:s.poll)||void 0===t||t?yield this.waitUntilReady(n.id,s):n}))}waitUntilReady(e,s){return t(this,void 0,void 0,(function*(){var t,i;const n=null!==(t=null==s?void 0:s.pollingInterval)&&void 0!==t?t:3e3,r=null!==(i=null==s?void 0:s.pollingTimeout)&&void 0!==i?i:-1,o=Date.now();for(;;){const t=yield this.get(e);if("completed"===t.status||"error"===t.status)return t;if(r>0&&Date.now()-o>r)throw new Error("Polling timeout");yield new Promise((e=>setTimeout(e,n)))}}))}get(e){return this.fetchJson(`/v2/transcript/${e}`)}list(e){return t(this,void 0,void 0,(function*(){let t="/v2/transcript";"string"==typeof e?t=e:e&&(t=`${t}?${new URLSearchParams(Object.keys(e).map((t=>{var s;return[t,(null===(s=e[t])||void 0===s?void 0:s.toString())||""]})))}`);const s=yield this.fetchJson(t);for(const e of s.transcripts)e.created=new Date(e.created),e.completed&&(e.completed=new Date(e.completed));return s}))}delete(e){return this.fetchJson(`/v2/transcript/${e}`,{method:"DELETE"})}wordSearch(e,t){const s=new URLSearchParams({words:t.join(",")});return this.fetchJson(`/v2/transcript/${e}/word-search?${s.toString()}`)}sentences(e){return this.fetchJson(`/v2/transcript/${e}/sentences`)}paragraphs(e){return this.fetchJson(`/v2/transcript/${e}/paragraphs`)}subtitles(e){return t(this,arguments,void 0,(function*(e,t="srt",s){let i=`/v2/transcript/${e}/${t}`;if(s){const e=new URLSearchParams;e.set("chars_per_caption",s.toString()),i+=`?${e.toString()}`}const n=yield this.fetch(i);return yield n.text()}))}redactions(e){return this.redactedAudio(e)}redactedAudio(e){return this.fetchJson(`/v2/transcript/${e}/redacted-audio`)}redactedAudioFile(e){return t(this,void 0,void 0,(function*(){const{redacted_audio_url:t,status:s}=yield this.redactedAudio(e);if("redacted_audio_ready"!==s)throw new Error(`Redacted audio status is ${s}`);const i=yield fetch(t);if(!i.ok)throw new Error(`Failed to fetch redacted audio: ${i.statusText}`);return{arrayBuffer:i.arrayBuffer.bind(i),blob:i.blob.bind(i),body:i.body,bodyUsed:i.bodyUsed}}))}}class k extends r{upload(e){return t(this,void 0,void 0,(function*(){let s;s="string"==typeof e?e.startsWith("data:")?function(e){const t=e.split(","),s=t[0].match(/:(.*?);/)[1],i=atob(t[1]);let n=i.length;const r=new Uint8Array(n);for(;n--;)r[n]=i.charCodeAt(n);return new Blob([r],{type:s})}(e):yield function(e){return t(this,void 0,void 0,(function*(){throw new Error("Interacting with the file system is not supported in this environment.")}))}():e;return(yield this.fetchJson("/v2/upload",{method:"POST",body:s,headers:{"Content-Type":"application/octet-stream"},duplex:"half"})).upload_url}))}}const S='{"type":"Terminate"}';class T{constructor(e){if(this.listeners={},this.params=Object.assign(Object.assign({},e),{websocketBaseUrl:e.websocketBaseUrl||"wss://streaming.assemblyai.com/v3/ws"}),"token"in e&&e.token&&(this.token=e.token),"apiKey"in e&&e.apiKey&&(this.apiKey=e.apiKey),!this.token&&!this.apiKey)throw new Error("API key or temporary token is required.")}connectionUrl(){var e;const t=new URL(null!==(e=this.params.websocketBaseUrl)&&void 0!==e?e:"");if("wss:"!==t.protocol)throw new Error("Invalid protocol, must be wss");const s=new URLSearchParams;return this.token&&s.set("token",this.token),s.set("sample_rate",this.params.sampleRate.toString()),this.params.endOfTurnConfidenceThreshold&&s.set("end_of_turn_confidence_threshold",this.params.endOfTurnConfidenceThreshold.toString()),this.params.minEndOfTurnSilenceWhenConfident&&s.set("min_end_of_turn_silence_when_confident",this.params.minEndOfTurnSilenceWhenConfident.toString()),this.params.maxTurnSilence&&s.set("max_turn_silence",this.params.maxTurnSilence.toString()),this.params.formatTurns&&s.set("format_turns",this.params.formatTurns.toString()),this.params.encoding&&s.set("encoding",this.params.encoding.toString()),this.params.keytermsPrompt?s.set("keyterms_prompt",JSON.stringify(this.params.keytermsPrompt)):this.params.keyterms&&(console.warn("[Deprecation Warning] `keyterms` is deprecated and will be removed in a future release. Please use `keytermsPrompt` instead."),s.set("keyterms_prompt",JSON.stringify(this.params.keyterms))),this.params.filterProfanity&&s.set("filter_profanity",this.params.filterProfanity.toString()),t.search=s.toString(),t}on(e,t){this.listeners[e]=t}connect(){return new Promise((e=>{if(this.socket)throw new Error("Already connected");const t=this.connectionUrl();this.token?this.socket=h(t.toString()):(console.warn("API key authentication is not supported for the StreamingTranscriber in browser environment. Use temporary token authentication instead.\nLearn more at https://github.com/AssemblyAI/assemblyai-node-sdk/blob/main/docs/compat.md#browser-compatibility."),this.socket=h(t.toString(),{headers:{Authorization:this.apiKey}})),this.socket.binaryType="arraybuffer",this.socket.onopen=()=>{},this.socket.onclose=({code:e,reason:t})=>{var s,i;t||e in p&&(t=p[e]),null===(i=(s=this.listeners).close)||void 0===i||i.call(s,e,t)},this.socket.onerror=e=>{var t,s,i,n;e.error?null===(s=(t=this.listeners).error)||void 0===s||s.call(t,e.error):null===(n=(i=this.listeners).error)||void 0===n||n.call(i,new Error(e.message))},this.socket.onmessage=({data:t})=>{var s,i,n,r,o,a,c;const l=JSON.parse(t.toString());if("error"in l)null===(i=(s=this.listeners).error)||void 0===i||i.call(s,new f(l.error));else switch(l.type){case"Begin":e(l),null===(r=(n=this.listeners).open)||void 0===r||r.call(n,l);break;case"Turn":null===(a=(o=this.listeners).turn)||void 0===a||a.call(o,l);break;case"Termination":null===(c=this.sessionTerminatedResolve)||void 0===c||c.call(this)}}}))}stream(){return new a({write:e=>{this.sendAudio(e)}})}sendAudio(e){this.send(e)}send(e){if(!this.socket||this.socket.readyState!==this.socket.OPEN)throw new Error("Socket is not open for communication");this.socket.send(e)}close(){return t(this,arguments,void 0,(function*(e=!0){var t;if(this.socket){if(this.socket.readyState===this.socket.OPEN)if(e){const e=new Promise((e=>{this.sessionTerminatedResolve=e}));this.socket.send(S),yield e}else this.socket.send(S);(null===(t=this.socket)||void 0===t?void 0:t.removeAllListeners)&&this.socket.removeAllListeners(),this.socket.close()}this.listeners={},this.socket=void 0}))}}class O extends r{constructor(e){super(e),this.baseServiceParams=e}transcriber(e){const t=Object.assign({},e);return t.token||t.apiKey||(t.apiKey=this.baseServiceParams.apiKey),new T(t)}createTemporaryToken(e){return t(this,void 0,void 0,(function*(){const t=new URLSearchParams;Object.entries(e).forEach((([e,s])=>{null!=s&&t.append(e,String(s))}));const s=t.toString(),i=s?`/v3/token?${s}`:"/v3/token";return(yield this.fetchJson(i,{method:"GET"})).token}))}}e.AssemblyAI=class{constructor(e){e.baseUrl=e.baseUrl||"https://api.assemblyai.com",e.baseUrl&&e.baseUrl.endsWith("/")&&(e.baseUrl=e.baseUrl.slice(0,-1)),this.files=new k(e),this.transcripts=new w(e,this.files),this.lemur=new o(e),this.realtime=new b(e),this.streaming=new O(Object.assign(Object.assign({},e),{baseUrl:e.streamingBaseUrl||"https://streaming.assemblyai.com"}))}},e.FileService=k,e.LemurService=o,e.RealtimeService=class extends v{},e.RealtimeServiceFactory=class extends b{},e.RealtimeTranscriber=v,e.RealtimeTranscriberFactory=b,e.StreamingTranscriber=T,e.TranscriptService=w}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).assemblyai={})}(this,(function(e){"use strict";function t(e,t,s,i){return new(s||(s=Promise))((function(n,r){function o(e){try{c(i.next(e))}catch(e){r(e)}}function a(e){try{c(i.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,a)}c((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const s={cache:"no-store"};let i="";"undefined"!=typeof navigator&&navigator.userAgent&&(i+=navigator.userAgent);const n={sdk:{name:"JavaScript",version:"4.18.4"}};"undefined"!=typeof process&&(process.versions.node&&-1===i.indexOf("Node")&&(n.runtime_env={name:"Node",version:process.versions.node}),process.versions.bun&&-1===i.indexOf("Bun")&&(n.runtime_env={name:"Bun",version:process.versions.bun})),"undefined"!=typeof Deno&&process.versions.bun&&-1===i.indexOf("Deno")&&(n.runtime_env={name:"Deno",version:Deno.version.deno});class r{constructor(e){var t;this.params=e,!1===e.userAgent?this.userAgent=void 0:this.userAgent=(t=e.userAgent||{},i+(!1===t?"":" AssemblyAI/1.0 ("+Object.entries(Object.assign(Object.assign({},n),t)).map((([e,t])=>t?`${e}=${t.name}/${t.version}`:"")).join(" ")+")"))}fetch(e,i){return t(this,void 0,void 0,(function*(){i=Object.assign(Object.assign({},s),i);let t={Authorization:this.params.apiKey,"Content-Type":"application/json"};(null==s?void 0:s.headers)&&(t=Object.assign(Object.assign({},t),s.headers)),(null==i?void 0:i.headers)&&(t=Object.assign(Object.assign({},t),i.headers)),this.userAgent&&(t["User-Agent"]=this.userAgent,"undefined"!=typeof window&&"chrome"in window&&(t["AssemblyAI-Agent"]=this.userAgent)),i.headers=t,e.startsWith("http")||(e=this.params.baseUrl+e);const n=yield fetch(e,i);if(n.status>=400){let e;const t=yield n.text();if(t){try{e=JSON.parse(t)}catch(e){}if(null==e?void 0:e.error)throw new Error(e.error);throw new Error(t)}throw new Error(`HTTP Error: ${n.status} ${n.statusText}`)}return n}))}fetchJson(e,s){return t(this,void 0,void 0,(function*(){return(yield this.fetch(e,s)).json()}))}}class o extends r{summary(e,t){return this.fetchJson("/lemur/v3/generate/summary",{method:"POST",body:JSON.stringify(e),signal:t})}questionAnswer(e,t){return this.fetchJson("/lemur/v3/generate/question-answer",{method:"POST",body:JSON.stringify(e),signal:t})}actionItems(e,t){return this.fetchJson("/lemur/v3/generate/action-items",{method:"POST",body:JSON.stringify(e),signal:t})}task(e,t){return this.fetchJson("/lemur/v3/generate/task",{method:"POST",body:JSON.stringify(e),signal:t})}getResponse(e,t){return this.fetchJson(`/lemur/v3/${e}`,{signal:t})}purgeRequestData(e,t){return this.fetchJson(`/lemur/v3/${e}`,{method:"DELETE",signal:t})}}const{WritableStream:a}="undefined"!=typeof window?window:"undefined"!=typeof global?global:globalThis;var c,l;const d=null!==(l=null!==(c=null!==WebSocket&&void 0!==WebSocket?WebSocket:null===global||void 0===global?void 0:global.WebSocket)&&void 0!==c?c:null===window||void 0===window?void 0:window.WebSocket)&&void 0!==l?l:null===self||void 0===self?void 0:self.WebSocket,h=(e,t)=>t?new d(e,t):new d(e),u={[4e3]:"Sample rate must be a positive integer",[4001]:"Not Authorized",[4002]:"Insufficient funds",[4003]:"This feature is paid-only and requires you to add a credit card. Please visit https://app.assemblyai.com/ to add a credit card to your account.",[4004]:"Session ID does not exist",[4008]:"Session has expired",[4010]:"Session is closed",[4029]:"Rate limited",[4030]:"Unique session violation",[4031]:"Session Timeout",[4032]:"Audio too short",[4033]:"Audio too long",[4034]:"Audio too small to transcode",[4100]:"Bad JSON",[4101]:"Bad schema",[4102]:"Too many streams",[4103]:"This session has been reconnected. This WebSocket is no longer valid.",[1013]:"Reconnect attempts exhausted",[4104]:"Could not parse word boost parameter"};class m extends Error{}const p={[4e3]:"Sample rate must be a positive integer",[4001]:"Not Authorized",[4002]:"Insufficient funds",[4003]:"This feature is paid-only and requires you to add a credit card. Please visit https://app.assemblyai.com/ to add a credit card to your account.",[4004]:"Session ID does not exist",[4008]:"Session has expired",[4010]:"Session is closed",[4029]:"Rate limited",[4030]:"Unique session violation",[4031]:"Session Timeout",[4032]:"Audio too short",[4033]:"Audio too long",[4034]:"Audio too small to transcode",[4101]:"Bad schema",[4102]:"Too many streams",[4103]:"This session has been reconnected. This WebSocket is no longer valid."};class f extends Error{}const y='{"terminate_session":true}';class v{constructor(e){var t,s;if(this.listeners={},this.realtimeUrl=null!==(t=e.realtimeUrl)&&void 0!==t?t:"wss://api.assemblyai.com/v2/realtime/ws",this.sampleRate=null!==(s=e.sampleRate)&&void 0!==s?s:16e3,this.wordBoost=e.wordBoost,this.encoding=e.encoding,this.endUtteranceSilenceThreshold=e.endUtteranceSilenceThreshold,this.disablePartialTranscripts=e.disablePartialTranscripts,"token"in e&&e.token&&(this.token=e.token),"apiKey"in e&&e.apiKey&&(this.apiKey=e.apiKey),!this.token&&!this.apiKey)throw new Error("API key or temporary token is required.")}connectionUrl(){const e=new URL(this.realtimeUrl);if("wss:"!==e.protocol)throw new Error("Invalid protocol, must be wss");const t=new URLSearchParams;return this.token&&t.set("token",this.token),t.set("sample_rate",this.sampleRate.toString()),this.wordBoost&&this.wordBoost.length>0&&t.set("word_boost",JSON.stringify(this.wordBoost)),this.encoding&&t.set("encoding",this.encoding),t.set("enable_extra_session_information","true"),this.disablePartialTranscripts&&t.set("disable_partial_transcripts",this.disablePartialTranscripts.toString()),e.search=t.toString(),e}on(e,t){this.listeners[e]=t}connect(){return new Promise((e=>{if(this.socket)throw new Error("Already connected");const t=this.connectionUrl();this.token?this.socket=h(t.toString()):(console.warn("API key authentication is not supported for the RealtimeTranscriber in browser environment. Use temporary token authentication instead.\nLearn more at https://github.com/AssemblyAI/assemblyai-node-sdk/blob/main/docs/compat.md#browser-compatibility."),this.socket=h(t.toString(),{headers:{Authorization:this.apiKey}})),this.socket.binaryType="arraybuffer",this.socket.onopen=()=>{void 0!==this.endUtteranceSilenceThreshold&&null!==this.endUtteranceSilenceThreshold&&this.configureEndUtteranceSilenceThreshold(this.endUtteranceSilenceThreshold)},this.socket.onclose=({code:e,reason:t})=>{var s,i;t||e in u&&(t=u[e]),null===(i=(s=this.listeners).close)||void 0===i||i.call(s,e,t)},this.socket.onerror=e=>{var t,s,i,n;e.error?null===(s=(t=this.listeners).error)||void 0===s||s.call(t,e.error):null===(n=(i=this.listeners).error)||void 0===n||n.call(i,new Error(e.message))},this.socket.onmessage=({data:t})=>{var s,i,n,r,o,a,c,l,d,h,u,p,f,y,v;const b=JSON.parse(t.toString());if("error"in b)null===(i=(s=this.listeners).error)||void 0===i||i.call(s,new m(b.error));else switch(b.message_type){case"SessionBegins":{const t={sessionId:b.session_id,expiresAt:new Date(b.expires_at)};e(t),null===(r=(n=this.listeners).open)||void 0===r||r.call(n,t);break}case"PartialTranscript":b.created=new Date(b.created),null===(a=(o=this.listeners).transcript)||void 0===a||a.call(o,b),null===(l=(c=this.listeners)["transcript.partial"])||void 0===l||l.call(c,b);break;case"FinalTranscript":b.created=new Date(b.created),null===(h=(d=this.listeners).transcript)||void 0===h||h.call(d,b),null===(p=(u=this.listeners)["transcript.final"])||void 0===p||p.call(u,b);break;case"SessionInformation":null===(y=(f=this.listeners).session_information)||void 0===y||y.call(f,b);break;case"SessionTerminated":null===(v=this.sessionTerminatedResolve)||void 0===v||v.call(this)}}}))}sendAudio(e){this.send(e)}stream(){return new a({write:e=>{this.sendAudio(e)}})}forceEndUtterance(){this.send('{"force_end_utterance":true}')}configureEndUtteranceSilenceThreshold(e){this.send(`{"end_utterance_silence_threshold":${e}}`)}send(e){if(!this.socket||this.socket.readyState!==this.socket.OPEN)throw new Error("Socket is not open for communication");this.socket.send(e)}close(){return t(this,arguments,void 0,(function*(e=!0){var t;if(this.socket){if(this.socket.readyState===this.socket.OPEN)if(e){const e=new Promise((e=>{this.sessionTerminatedResolve=e}));this.socket.send(y),yield e}else this.socket.send(y);(null===(t=this.socket)||void 0===t?void 0:t.removeAllListeners)&&this.socket.removeAllListeners(),this.socket.close()}this.listeners={},this.socket=void 0}))}}class b extends r{constructor(e){super(e),this.rtFactoryParams=e}createService(e){return this.transcriber(e)}transcriber(e){const t=Object.assign({},e);return t.token||t.apiKey||(t.apiKey=this.rtFactoryParams.apiKey),new v(t)}createTemporaryToken(e){return t(this,void 0,void 0,(function*(){return(yield this.fetchJson("/v2/realtime/token",{method:"POST",body:JSON.stringify(e)})).token}))}}function g(e){return e.startsWith("http")||e.startsWith("https")||e.startsWith("data:")?null:e.startsWith("file://")?e.substring(7):e.startsWith("file:")?e.substring(5):e}class w extends r{constructor(e,t){super(e),this.files=t}transcribe(e,s){return t(this,void 0,void 0,(function*(){const t=yield this.submit(e);return yield this.waitUntilReady(t.id,s)}))}submit(e){return t(this,void 0,void 0,(function*(){let t,s;if("audio"in e){const{audio:i}=e,n=function(e,t){var s={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(s[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(s[i[n]]=e[i[n]])}return s}(e,["audio"]);if("string"==typeof i){const e=g(i);t=null!==e?yield this.files.upload(e):i.startsWith("data:")?yield this.files.upload(i):i}else t=yield this.files.upload(i);s=Object.assign(Object.assign({},n),{audio_url:t})}else s=e;return yield this.fetchJson("/v2/transcript",{method:"POST",body:JSON.stringify(s)})}))}create(e,s){return t(this,void 0,void 0,(function*(){var t;const i=g(e.audio_url);if(null!==i){const t=yield this.files.upload(i);e.audio_url=t}const n=yield this.fetchJson("/v2/transcript",{method:"POST",body:JSON.stringify(e)});return null===(t=null==s?void 0:s.poll)||void 0===t||t?yield this.waitUntilReady(n.id,s):n}))}waitUntilReady(e,s){return t(this,void 0,void 0,(function*(){var t,i;const n=null!==(t=null==s?void 0:s.pollingInterval)&&void 0!==t?t:3e3,r=null!==(i=null==s?void 0:s.pollingTimeout)&&void 0!==i?i:-1,o=Date.now();for(;;){const t=yield this.get(e);if("completed"===t.status||"error"===t.status)return t;if(r>0&&Date.now()-o>r)throw new Error("Polling timeout");yield new Promise((e=>setTimeout(e,n)))}}))}get(e){return this.fetchJson(`/v2/transcript/${e}`)}list(e){return t(this,void 0,void 0,(function*(){let t="/v2/transcript";"string"==typeof e?t=e:e&&(t=`${t}?${new URLSearchParams(Object.keys(e).map((t=>{var s;return[t,(null===(s=e[t])||void 0===s?void 0:s.toString())||""]})))}`);const s=yield this.fetchJson(t);for(const e of s.transcripts)e.created=new Date(e.created),e.completed&&(e.completed=new Date(e.completed));return s}))}delete(e){return this.fetchJson(`/v2/transcript/${e}`,{method:"DELETE"})}wordSearch(e,t){const s=new URLSearchParams({words:t.join(",")});return this.fetchJson(`/v2/transcript/${e}/word-search?${s.toString()}`)}sentences(e){return this.fetchJson(`/v2/transcript/${e}/sentences`)}paragraphs(e){return this.fetchJson(`/v2/transcript/${e}/paragraphs`)}subtitles(e){return t(this,arguments,void 0,(function*(e,t="srt",s){let i=`/v2/transcript/${e}/${t}`;if(s){const e=new URLSearchParams;e.set("chars_per_caption",s.toString()),i+=`?${e.toString()}`}const n=yield this.fetch(i);return yield n.text()}))}redactions(e){return this.redactedAudio(e)}redactedAudio(e){return this.fetchJson(`/v2/transcript/${e}/redacted-audio`)}redactedAudioFile(e){return t(this,void 0,void 0,(function*(){const{redacted_audio_url:t,status:s}=yield this.redactedAudio(e);if("redacted_audio_ready"!==s)throw new Error(`Redacted audio status is ${s}`);const i=yield fetch(t);if(!i.ok)throw new Error(`Failed to fetch redacted audio: ${i.statusText}`);return{arrayBuffer:i.arrayBuffer.bind(i),blob:i.blob.bind(i),body:i.body,bodyUsed:i.bodyUsed}}))}}class k extends r{upload(e){return t(this,void 0,void 0,(function*(){let s;s="string"==typeof e?e.startsWith("data:")?function(e){const t=e.split(","),s=t[0].match(/:(.*?);/)[1],i=atob(t[1]);let n=i.length;const r=new Uint8Array(n);for(;n--;)r[n]=i.charCodeAt(n);return new Blob([r],{type:s})}(e):yield function(e){return t(this,void 0,void 0,(function*(){throw new Error("Interacting with the file system is not supported in this environment.")}))}():e;return(yield this.fetchJson("/v2/upload",{method:"POST",body:s,headers:{"Content-Type":"application/octet-stream"},duplex:"half"})).upload_url}))}}const S='{"type":"Terminate"}';class T{constructor(e){if(this.listeners={},this.params=Object.assign(Object.assign({},e),{websocketBaseUrl:e.websocketBaseUrl||"wss://streaming.assemblyai.com/v3/ws"}),"token"in e&&e.token&&(this.token=e.token),"apiKey"in e&&e.apiKey&&(this.apiKey=e.apiKey),!this.token&&!this.apiKey)throw new Error("API key or temporary token is required.")}connectionUrl(){var e;const t=new URL(null!==(e=this.params.websocketBaseUrl)&&void 0!==e?e:"");if("wss:"!==t.protocol)throw new Error("Invalid protocol, must be wss");const s=new URLSearchParams;return this.token&&s.set("token",this.token),s.set("sample_rate",this.params.sampleRate.toString()),this.params.endOfTurnConfidenceThreshold&&s.set("end_of_turn_confidence_threshold",this.params.endOfTurnConfidenceThreshold.toString()),this.params.minEndOfTurnSilenceWhenConfident&&s.set("min_end_of_turn_silence_when_confident",this.params.minEndOfTurnSilenceWhenConfident.toString()),this.params.maxTurnSilence&&s.set("max_turn_silence",this.params.maxTurnSilence.toString()),this.params.formatTurns&&s.set("format_turns",this.params.formatTurns.toString()),this.params.encoding&&s.set("encoding",this.params.encoding.toString()),this.params.keytermsPrompt?s.set("keyterms_prompt",JSON.stringify(this.params.keytermsPrompt)):this.params.keyterms&&(console.warn("[Deprecation Warning] `keyterms` is deprecated and will be removed in a future release. Please use `keytermsPrompt` instead."),s.set("keyterms_prompt",JSON.stringify(this.params.keyterms))),this.params.filterProfanity&&s.set("filter_profanity",this.params.filterProfanity.toString()),t.search=s.toString(),t}on(e,t){this.listeners[e]=t}connect(){return new Promise((e=>{if(this.socket)throw new Error("Already connected");const t=this.connectionUrl();this.token?this.socket=h(t.toString()):(console.warn("API key authentication is not supported for the StreamingTranscriber in browser environment. Use temporary token authentication instead.\nLearn more at https://github.com/AssemblyAI/assemblyai-node-sdk/blob/main/docs/compat.md#browser-compatibility."),this.socket=h(t.toString(),{headers:{Authorization:this.apiKey}})),this.socket.binaryType="arraybuffer",this.socket.onopen=()=>{},this.socket.onclose=({code:e,reason:t})=>{var s,i;t||e in p&&(t=p[e]),null===(i=(s=this.listeners).close)||void 0===i||i.call(s,e,t)},this.socket.onerror=e=>{var t,s,i,n;e.error?null===(s=(t=this.listeners).error)||void 0===s||s.call(t,e.error):null===(n=(i=this.listeners).error)||void 0===n||n.call(i,new Error(e.message))},this.socket.onmessage=({data:t})=>{var s,i,n,r,o,a,c;const l=JSON.parse(t.toString());if("error"in l)null===(i=(s=this.listeners).error)||void 0===i||i.call(s,new f(l.error));else switch(l.type){case"Begin":e(l),null===(r=(n=this.listeners).open)||void 0===r||r.call(n,l);break;case"Turn":null===(a=(o=this.listeners).turn)||void 0===a||a.call(o,l);break;case"Termination":null===(c=this.sessionTerminatedResolve)||void 0===c||c.call(this)}}}))}stream(){return new a({write:e=>{this.sendAudio(e)}})}sendAudio(e){this.send(e)}send(e){if(!this.socket||this.socket.readyState!==this.socket.OPEN)throw new Error("Socket is not open for communication");this.socket.send(e)}close(){return t(this,arguments,void 0,(function*(e=!0){var t;if(this.socket){if(this.socket.readyState===this.socket.OPEN)if(e){const e=new Promise((e=>{this.sessionTerminatedResolve=e}));this.socket.send(S),yield e}else this.socket.send(S);(null===(t=this.socket)||void 0===t?void 0:t.removeAllListeners)&&this.socket.removeAllListeners(),this.socket.close()}this.listeners={},this.socket=void 0}))}}class O extends r{constructor(e){super(e),this.baseServiceParams=e}transcriber(e){const t=Object.assign({},e);return t.token||t.apiKey||(t.apiKey=this.baseServiceParams.apiKey),new T(t)}createTemporaryToken(e){return t(this,void 0,void 0,(function*(){const t=new URLSearchParams;Object.entries(e).forEach((([e,s])=>{null!=s&&t.append(e,String(s))}));const s=t.toString(),i=s?`/v3/token?${s}`:"/v3/token";return(yield this.fetchJson(i,{method:"GET"})).token}))}}e.AssemblyAI=class{constructor(e){e.baseUrl=e.baseUrl||"https://api.assemblyai.com",e.baseUrl&&e.baseUrl.endsWith("/")&&(e.baseUrl=e.baseUrl.slice(0,-1)),this.files=new k(e),this.transcripts=new w(e,this.files),this.lemur=new o(e),this.realtime=new b(e),this.streaming=new O(Object.assign(Object.assign({},e),{baseUrl:e.streamingBaseUrl||"https://streaming.assemblyai.com"}))}},e.FileService=k,e.LemurService=o,e.RealtimeService=class extends v{},e.RealtimeServiceFactory=class extends b{},e.RealtimeTranscriber=v,e.RealtimeTranscriberFactory=b,e.StreamingTranscriber=T,e.TranscriptService=w}));
|
package/dist/browser.mjs
CHANGED
|
@@ -15,7 +15,7 @@ if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
|
15
15
|
defaultUserAgentString += navigator.userAgent;
|
|
16
16
|
}
|
|
17
17
|
const defaultUserAgent = {
|
|
18
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
18
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
19
19
|
};
|
|
20
20
|
if (typeof process !== "undefined") {
|
|
21
21
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
package/dist/bun.mjs
CHANGED
|
@@ -17,7 +17,7 @@ if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
|
17
17
|
defaultUserAgentString += navigator.userAgent;
|
|
18
18
|
}
|
|
19
19
|
const defaultUserAgent = {
|
|
20
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
20
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
21
21
|
};
|
|
22
22
|
if (typeof process !== "undefined") {
|
|
23
23
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
package/dist/deno.mjs
CHANGED
|
@@ -17,7 +17,7 @@ if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
|
17
17
|
defaultUserAgentString += navigator.userAgent;
|
|
18
18
|
}
|
|
19
19
|
const defaultUserAgent = {
|
|
20
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
20
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
21
21
|
};
|
|
22
22
|
if (typeof process !== "undefined") {
|
|
23
23
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
package/dist/index.cjs
CHANGED
|
@@ -63,7 +63,7 @@ if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
|
63
63
|
defaultUserAgentString += navigator.userAgent;
|
|
64
64
|
}
|
|
65
65
|
const defaultUserAgent = {
|
|
66
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
66
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
67
67
|
};
|
|
68
68
|
if (typeof process !== "undefined") {
|
|
69
69
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
package/dist/index.mjs
CHANGED
|
@@ -61,7 +61,7 @@ if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
|
61
61
|
defaultUserAgentString += navigator.userAgent;
|
|
62
62
|
}
|
|
63
63
|
const defaultUserAgent = {
|
|
64
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
64
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
65
65
|
};
|
|
66
66
|
if (typeof process !== "undefined") {
|
|
67
67
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
package/dist/node.cjs
CHANGED
|
@@ -22,7 +22,7 @@ if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
|
22
22
|
defaultUserAgentString += navigator.userAgent;
|
|
23
23
|
}
|
|
24
24
|
const defaultUserAgent = {
|
|
25
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
25
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
26
26
|
};
|
|
27
27
|
if (typeof process !== "undefined") {
|
|
28
28
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
package/dist/node.mjs
CHANGED
|
@@ -20,7 +20,7 @@ if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
|
20
20
|
defaultUserAgentString += navigator.userAgent;
|
|
21
21
|
}
|
|
22
22
|
const defaultUserAgent = {
|
|
23
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
23
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
24
24
|
};
|
|
25
25
|
if (typeof process !== "undefined") {
|
|
26
26
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
|
@@ -935,7 +935,7 @@ export type ListTranscriptParams = {
|
|
|
935
935
|
/**
|
|
936
936
|
* Only get throttled transcripts, overrides the status filter
|
|
937
937
|
* @defaultValue false
|
|
938
|
-
* @deprecated
|
|
938
|
+
* @deprecated This parameter is no longer supported and will be removed in a future version.
|
|
939
939
|
*/
|
|
940
940
|
throttled_only?: boolean;
|
|
941
941
|
};
|
|
@@ -1321,6 +1321,156 @@ export type SeverityScoreSummary = {
|
|
|
1321
1321
|
low: number;
|
|
1322
1322
|
medium: number;
|
|
1323
1323
|
};
|
|
1324
|
+
/**
|
|
1325
|
+
* Speaker identification type for speech understanding
|
|
1326
|
+
*/
|
|
1327
|
+
export type SpeakerType = "role" | "name";
|
|
1328
|
+
/**
|
|
1329
|
+
* Speaker identification configuration for speech understanding
|
|
1330
|
+
*/
|
|
1331
|
+
export type SpeakerIdentificationRequest = {
|
|
1332
|
+
/**
|
|
1333
|
+
* The type of speaker identification to perform
|
|
1334
|
+
*/
|
|
1335
|
+
speaker_type: SpeakerType;
|
|
1336
|
+
/**
|
|
1337
|
+
* Known speaker values (required when speaker_type is 'role')
|
|
1338
|
+
*/
|
|
1339
|
+
known_values?: string[];
|
|
1340
|
+
};
|
|
1341
|
+
/**
|
|
1342
|
+
* Translation configuration for speech understanding
|
|
1343
|
+
*/
|
|
1344
|
+
export type TranslationRequest = {
|
|
1345
|
+
/**
|
|
1346
|
+
* List of target language codes to translate the transcript into
|
|
1347
|
+
*/
|
|
1348
|
+
target_languages: string[];
|
|
1349
|
+
/**
|
|
1350
|
+
* Whether to use formal language in translations (default: false)
|
|
1351
|
+
*/
|
|
1352
|
+
formal?: boolean;
|
|
1353
|
+
/**
|
|
1354
|
+
* Whether to match the original utterance structure in translations (default: false)
|
|
1355
|
+
*/
|
|
1356
|
+
match_original_utterance?: boolean;
|
|
1357
|
+
};
|
|
1358
|
+
/**
|
|
1359
|
+
* Custom formatting configuration for speech understanding
|
|
1360
|
+
*/
|
|
1361
|
+
export type CustomFormattingRequest = {
|
|
1362
|
+
/**
|
|
1363
|
+
* Custom date format pattern (e.g., 'mm/dd/yyyy')
|
|
1364
|
+
*/
|
|
1365
|
+
date?: string;
|
|
1366
|
+
/**
|
|
1367
|
+
* Custom phone number format pattern (e.g., '(xxx)xxx-xxxx')
|
|
1368
|
+
*/
|
|
1369
|
+
phone_number?: string;
|
|
1370
|
+
/**
|
|
1371
|
+
* Custom email format pattern (e.g., 'username\@domain.com')
|
|
1372
|
+
*/
|
|
1373
|
+
email?: string;
|
|
1374
|
+
};
|
|
1375
|
+
/**
|
|
1376
|
+
* Speech understanding feature requests grouped together
|
|
1377
|
+
*/
|
|
1378
|
+
export type SpeechUnderstandingFeatureRequests = {
|
|
1379
|
+
/**
|
|
1380
|
+
* Speaker identification configuration
|
|
1381
|
+
*/
|
|
1382
|
+
speaker_identification?: SpeakerIdentificationRequest;
|
|
1383
|
+
/**
|
|
1384
|
+
* Translation configuration
|
|
1385
|
+
*/
|
|
1386
|
+
translation?: TranslationRequest;
|
|
1387
|
+
/**
|
|
1388
|
+
* Custom formatting configuration
|
|
1389
|
+
*/
|
|
1390
|
+
custom_formatting?: CustomFormattingRequest;
|
|
1391
|
+
};
|
|
1392
|
+
/**
|
|
1393
|
+
* Speech understanding request configuration for LLM Gateway features
|
|
1394
|
+
*/
|
|
1395
|
+
export type SpeechUnderstandingRequest = {
|
|
1396
|
+
/**
|
|
1397
|
+
* The speech understanding feature requests
|
|
1398
|
+
*/
|
|
1399
|
+
request?: SpeechUnderstandingFeatureRequests;
|
|
1400
|
+
};
|
|
1401
|
+
/**
|
|
1402
|
+
* Speaker identification response containing status and mapping
|
|
1403
|
+
*/
|
|
1404
|
+
export type SpeakerIdentificationResponse = {
|
|
1405
|
+
/**
|
|
1406
|
+
* Status of the speaker identification feature (e.g., 'success')
|
|
1407
|
+
*/
|
|
1408
|
+
status: string;
|
|
1409
|
+
/**
|
|
1410
|
+
* Mapping of original speaker labels to identified speaker labels
|
|
1411
|
+
*/
|
|
1412
|
+
mapping?: Record<string, string>;
|
|
1413
|
+
};
|
|
1414
|
+
/**
|
|
1415
|
+
* Translation response containing status
|
|
1416
|
+
*/
|
|
1417
|
+
export type TranslationResponse = {
|
|
1418
|
+
/**
|
|
1419
|
+
* Status of the translation feature
|
|
1420
|
+
*/
|
|
1421
|
+
status: string;
|
|
1422
|
+
};
|
|
1423
|
+
/**
|
|
1424
|
+
* Custom formatting response containing mapping and formatted texts
|
|
1425
|
+
*/
|
|
1426
|
+
export type CustomFormattingResponse = {
|
|
1427
|
+
/**
|
|
1428
|
+
* Mapping of original entities to formatted entities
|
|
1429
|
+
*/
|
|
1430
|
+
mapping?: Record<string, string>;
|
|
1431
|
+
/**
|
|
1432
|
+
* Full transcript text with formatted entities
|
|
1433
|
+
*/
|
|
1434
|
+
formatted_text?: string;
|
|
1435
|
+
/**
|
|
1436
|
+
* List of utterances with formatted text
|
|
1437
|
+
*/
|
|
1438
|
+
formatted_utterances?: Record<string, unknown>[];
|
|
1439
|
+
/**
|
|
1440
|
+
* Status of the custom formatting feature
|
|
1441
|
+
*/
|
|
1442
|
+
status: string;
|
|
1443
|
+
};
|
|
1444
|
+
/**
|
|
1445
|
+
* Speech understanding feature responses grouped together
|
|
1446
|
+
*/
|
|
1447
|
+
export type SpeechUnderstandingFeatureResponses = {
|
|
1448
|
+
/**
|
|
1449
|
+
* Speaker identification results including status and mapping
|
|
1450
|
+
*/
|
|
1451
|
+
speaker_identification?: SpeakerIdentificationResponse;
|
|
1452
|
+
/**
|
|
1453
|
+
* Translation results
|
|
1454
|
+
*/
|
|
1455
|
+
translation?: TranslationResponse;
|
|
1456
|
+
/**
|
|
1457
|
+
* Custom formatting results
|
|
1458
|
+
*/
|
|
1459
|
+
custom_formatting?: CustomFormattingResponse;
|
|
1460
|
+
};
|
|
1461
|
+
/**
|
|
1462
|
+
* Speech understanding response containing both request and response
|
|
1463
|
+
*/
|
|
1464
|
+
export type SpeechUnderstandingResponse = {
|
|
1465
|
+
/**
|
|
1466
|
+
* The original speech understanding request
|
|
1467
|
+
*/
|
|
1468
|
+
request?: SpeechUnderstandingRequest;
|
|
1469
|
+
/**
|
|
1470
|
+
* The speech understanding feature responses
|
|
1471
|
+
*/
|
|
1472
|
+
response?: SpeechUnderstandingFeatureResponses;
|
|
1473
|
+
};
|
|
1324
1474
|
/**
|
|
1325
1475
|
* Advanced options for controlling speaker diarization parameters
|
|
1326
1476
|
*/
|
|
@@ -2534,6 +2684,14 @@ export type Transcript = {
|
|
|
2534
2684
|
* See {@link https://www.assemblyai.com/docs/models/speech-recognition | Speech recognition } for more information.
|
|
2535
2685
|
*/
|
|
2536
2686
|
words?: TranscriptWord[] | null;
|
|
2687
|
+
/**
|
|
2688
|
+
* Speech understanding response when enabled
|
|
2689
|
+
*/
|
|
2690
|
+
speech_understanding?: SpeechUnderstandingResponse;
|
|
2691
|
+
/**
|
|
2692
|
+
* Translations of the full transcript text when translation is enabled
|
|
2693
|
+
*/
|
|
2694
|
+
translated_texts?: Record<string, string>;
|
|
2537
2695
|
};
|
|
2538
2696
|
/**
|
|
2539
2697
|
* How much to boost specified words
|
|
@@ -2931,6 +3089,10 @@ export type TranscriptOptionalParams = {
|
|
|
2931
3089
|
* The list of custom vocabulary to boost transcription probability for
|
|
2932
3090
|
*/
|
|
2933
3091
|
word_boost?: string[];
|
|
3092
|
+
/**
|
|
3093
|
+
* Speech understanding configuration/response for LLM Gateway features
|
|
3094
|
+
*/
|
|
3095
|
+
speech_understanding?: SpeechUnderstandingRequest | SpeechUnderstandingResponse;
|
|
2934
3096
|
};
|
|
2935
3097
|
/**
|
|
2936
3098
|
* @example
|
|
@@ -3302,6 +3464,10 @@ export type TranscriptUtterance = {
|
|
|
3302
3464
|
* The words in the utterance.
|
|
3303
3465
|
*/
|
|
3304
3466
|
words: TranscriptWord[];
|
|
3467
|
+
/**
|
|
3468
|
+
* Translations of the utterance text when translation is enabled
|
|
3469
|
+
*/
|
|
3470
|
+
translated_texts?: Record<string, string>;
|
|
3305
3471
|
};
|
|
3306
3472
|
/**
|
|
3307
3473
|
* The notifications sent to the webhook URL.
|
package/dist/workerd.mjs
CHANGED
|
@@ -15,7 +15,7 @@ if (typeof navigator !== "undefined" && navigator.userAgent) {
|
|
|
15
15
|
defaultUserAgentString += navigator.userAgent;
|
|
16
16
|
}
|
|
17
17
|
const defaultUserAgent = {
|
|
18
|
-
sdk: { name: "JavaScript", version: "4.18.
|
|
18
|
+
sdk: { name: "JavaScript", version: "4.18.4" },
|
|
19
19
|
};
|
|
20
20
|
if (typeof process !== "undefined") {
|
|
21
21
|
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "assemblyai",
|
|
3
|
-
"version": "4.18.
|
|
3
|
+
"version": "4.18.4",
|
|
4
4
|
"description": "The AssemblyAI JavaScript SDK provides an easy-to-use interface for interacting with the AssemblyAI API, which supports async and real-time transcription, as well as the latest LeMUR models.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18"
|
|
@@ -1037,7 +1037,7 @@ export type ListTranscriptParams = {
|
|
|
1037
1037
|
/**
|
|
1038
1038
|
* Only get throttled transcripts, overrides the status filter
|
|
1039
1039
|
* @defaultValue false
|
|
1040
|
-
* @deprecated
|
|
1040
|
+
* @deprecated This parameter is no longer supported and will be removed in a future version.
|
|
1041
1041
|
*/
|
|
1042
1042
|
throttled_only?: boolean;
|
|
1043
1043
|
};
|
|
@@ -1481,6 +1481,167 @@ export type SeverityScoreSummary = {
|
|
|
1481
1481
|
medium: number;
|
|
1482
1482
|
};
|
|
1483
1483
|
|
|
1484
|
+
/**
|
|
1485
|
+
* Speaker identification type for speech understanding
|
|
1486
|
+
*/
|
|
1487
|
+
export type SpeakerType = "role" | "name";
|
|
1488
|
+
|
|
1489
|
+
/**
|
|
1490
|
+
* Speaker identification configuration for speech understanding
|
|
1491
|
+
*/
|
|
1492
|
+
export type SpeakerIdentificationRequest = {
|
|
1493
|
+
/**
|
|
1494
|
+
* The type of speaker identification to perform
|
|
1495
|
+
*/
|
|
1496
|
+
speaker_type: SpeakerType;
|
|
1497
|
+
/**
|
|
1498
|
+
* Known speaker values (required when speaker_type is 'role')
|
|
1499
|
+
*/
|
|
1500
|
+
known_values?: string[];
|
|
1501
|
+
};
|
|
1502
|
+
|
|
1503
|
+
/**
|
|
1504
|
+
* Translation configuration for speech understanding
|
|
1505
|
+
*/
|
|
1506
|
+
export type TranslationRequest = {
|
|
1507
|
+
/**
|
|
1508
|
+
* List of target language codes to translate the transcript into
|
|
1509
|
+
*/
|
|
1510
|
+
target_languages: string[];
|
|
1511
|
+
/**
|
|
1512
|
+
* Whether to use formal language in translations (default: false)
|
|
1513
|
+
*/
|
|
1514
|
+
formal?: boolean;
|
|
1515
|
+
/**
|
|
1516
|
+
* Whether to match the original utterance structure in translations (default: false)
|
|
1517
|
+
*/
|
|
1518
|
+
match_original_utterance?: boolean;
|
|
1519
|
+
};
|
|
1520
|
+
|
|
1521
|
+
/**
|
|
1522
|
+
* Custom formatting configuration for speech understanding
|
|
1523
|
+
*/
|
|
1524
|
+
export type CustomFormattingRequest = {
|
|
1525
|
+
/**
|
|
1526
|
+
* Custom date format pattern (e.g., 'mm/dd/yyyy')
|
|
1527
|
+
*/
|
|
1528
|
+
date?: string;
|
|
1529
|
+
/**
|
|
1530
|
+
* Custom phone number format pattern (e.g., '(xxx)xxx-xxxx')
|
|
1531
|
+
*/
|
|
1532
|
+
phone_number?: string;
|
|
1533
|
+
/**
|
|
1534
|
+
* Custom email format pattern (e.g., 'username\@domain.com')
|
|
1535
|
+
*/
|
|
1536
|
+
email?: string;
|
|
1537
|
+
};
|
|
1538
|
+
|
|
1539
|
+
/**
|
|
1540
|
+
* Speech understanding feature requests grouped together
|
|
1541
|
+
*/
|
|
1542
|
+
export type SpeechUnderstandingFeatureRequests = {
|
|
1543
|
+
/**
|
|
1544
|
+
* Speaker identification configuration
|
|
1545
|
+
*/
|
|
1546
|
+
speaker_identification?: SpeakerIdentificationRequest;
|
|
1547
|
+
/**
|
|
1548
|
+
* Translation configuration
|
|
1549
|
+
*/
|
|
1550
|
+
translation?: TranslationRequest;
|
|
1551
|
+
/**
|
|
1552
|
+
* Custom formatting configuration
|
|
1553
|
+
*/
|
|
1554
|
+
custom_formatting?: CustomFormattingRequest;
|
|
1555
|
+
};
|
|
1556
|
+
|
|
1557
|
+
/**
|
|
1558
|
+
* Speech understanding request configuration for LLM Gateway features
|
|
1559
|
+
*/
|
|
1560
|
+
export type SpeechUnderstandingRequest = {
|
|
1561
|
+
/**
|
|
1562
|
+
* The speech understanding feature requests
|
|
1563
|
+
*/
|
|
1564
|
+
request?: SpeechUnderstandingFeatureRequests;
|
|
1565
|
+
};
|
|
1566
|
+
|
|
1567
|
+
/**
|
|
1568
|
+
* Speaker identification response containing status and mapping
|
|
1569
|
+
*/
|
|
1570
|
+
export type SpeakerIdentificationResponse = {
|
|
1571
|
+
/**
|
|
1572
|
+
* Status of the speaker identification feature (e.g., 'success')
|
|
1573
|
+
*/
|
|
1574
|
+
status: string;
|
|
1575
|
+
/**
|
|
1576
|
+
* Mapping of original speaker labels to identified speaker labels
|
|
1577
|
+
*/
|
|
1578
|
+
mapping?: Record<string, string>;
|
|
1579
|
+
};
|
|
1580
|
+
|
|
1581
|
+
/**
|
|
1582
|
+
* Translation response containing status
|
|
1583
|
+
*/
|
|
1584
|
+
export type TranslationResponse = {
|
|
1585
|
+
/**
|
|
1586
|
+
* Status of the translation feature
|
|
1587
|
+
*/
|
|
1588
|
+
status: string;
|
|
1589
|
+
};
|
|
1590
|
+
|
|
1591
|
+
/**
|
|
1592
|
+
* Custom formatting response containing mapping and formatted texts
|
|
1593
|
+
*/
|
|
1594
|
+
export type CustomFormattingResponse = {
|
|
1595
|
+
/**
|
|
1596
|
+
* Mapping of original entities to formatted entities
|
|
1597
|
+
*/
|
|
1598
|
+
mapping?: Record<string, string>;
|
|
1599
|
+
/**
|
|
1600
|
+
* Full transcript text with formatted entities
|
|
1601
|
+
*/
|
|
1602
|
+
formatted_text?: string;
|
|
1603
|
+
/**
|
|
1604
|
+
* List of utterances with formatted text
|
|
1605
|
+
*/
|
|
1606
|
+
formatted_utterances?: Record<string, unknown>[];
|
|
1607
|
+
/**
|
|
1608
|
+
* Status of the custom formatting feature
|
|
1609
|
+
*/
|
|
1610
|
+
status: string;
|
|
1611
|
+
};
|
|
1612
|
+
|
|
1613
|
+
/**
|
|
1614
|
+
* Speech understanding feature responses grouped together
|
|
1615
|
+
*/
|
|
1616
|
+
export type SpeechUnderstandingFeatureResponses = {
|
|
1617
|
+
/**
|
|
1618
|
+
* Speaker identification results including status and mapping
|
|
1619
|
+
*/
|
|
1620
|
+
speaker_identification?: SpeakerIdentificationResponse;
|
|
1621
|
+
/**
|
|
1622
|
+
* Translation results
|
|
1623
|
+
*/
|
|
1624
|
+
translation?: TranslationResponse;
|
|
1625
|
+
/**
|
|
1626
|
+
* Custom formatting results
|
|
1627
|
+
*/
|
|
1628
|
+
custom_formatting?: CustomFormattingResponse;
|
|
1629
|
+
};
|
|
1630
|
+
|
|
1631
|
+
/**
|
|
1632
|
+
* Speech understanding response containing both request and response
|
|
1633
|
+
*/
|
|
1634
|
+
export type SpeechUnderstandingResponse = {
|
|
1635
|
+
/**
|
|
1636
|
+
* The original speech understanding request
|
|
1637
|
+
*/
|
|
1638
|
+
request?: SpeechUnderstandingRequest;
|
|
1639
|
+
/**
|
|
1640
|
+
* The speech understanding feature responses
|
|
1641
|
+
*/
|
|
1642
|
+
response?: SpeechUnderstandingFeatureResponses;
|
|
1643
|
+
};
|
|
1644
|
+
|
|
1484
1645
|
/**
|
|
1485
1646
|
* Advanced options for controlling speaker diarization parameters
|
|
1486
1647
|
*/
|
|
@@ -2709,6 +2870,14 @@ export type Transcript = {
|
|
|
2709
2870
|
* See {@link https://www.assemblyai.com/docs/models/speech-recognition | Speech recognition } for more information.
|
|
2710
2871
|
*/
|
|
2711
2872
|
words?: TranscriptWord[] | null;
|
|
2873
|
+
/**
|
|
2874
|
+
* Speech understanding response when enabled
|
|
2875
|
+
*/
|
|
2876
|
+
speech_understanding?: SpeechUnderstandingResponse;
|
|
2877
|
+
/**
|
|
2878
|
+
* Translations of the full transcript text when translation is enabled
|
|
2879
|
+
*/
|
|
2880
|
+
translated_texts?: Record<string, string>;
|
|
2712
2881
|
};
|
|
2713
2882
|
|
|
2714
2883
|
/**
|
|
@@ -3214,6 +3383,12 @@ export type TranscriptOptionalParams = {
|
|
|
3214
3383
|
* The list of custom vocabulary to boost transcription probability for
|
|
3215
3384
|
*/
|
|
3216
3385
|
word_boost?: string[];
|
|
3386
|
+
/**
|
|
3387
|
+
* Speech understanding configuration/response for LLM Gateway features
|
|
3388
|
+
*/
|
|
3389
|
+
speech_understanding?:
|
|
3390
|
+
| SpeechUnderstandingRequest
|
|
3391
|
+
| SpeechUnderstandingResponse;
|
|
3217
3392
|
};
|
|
3218
3393
|
|
|
3219
3394
|
/**
|
|
@@ -3592,6 +3767,10 @@ export type TranscriptUtterance = {
|
|
|
3592
3767
|
* The words in the utterance.
|
|
3593
3768
|
*/
|
|
3594
3769
|
words: TranscriptWord[];
|
|
3770
|
+
/**
|
|
3771
|
+
* Translations of the utterance text when translation is enabled
|
|
3772
|
+
*/
|
|
3773
|
+
translated_texts?: Record<string, string>;
|
|
3595
3774
|
};
|
|
3596
3775
|
|
|
3597
3776
|
/**
|