UNPKG

trtc-sdk-v5

Version:
4 lines (3 loc) 11.8 kB
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).RealtimeTranscriber=e()}(this,function(){"use strict";function r(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,o=Array(e);t<e;t++)o[t]=r[t];return o}function e(r,e,t,o,n,a,i){try{var s=r[a](i),c=s.value}catch(r){return void t(r)}s.done?e(c):Promise.resolve(c).then(o,n)}function t(r){return function(){var t=this,o=arguments;return new Promise(function(n,a){var i=r.apply(t,o);function s(r){e(i,n,a,s,c,"next",r)}function c(r){e(i,n,a,s,c,"throw",r)}s(void 0)})}}function o(r,e,t){return e&&function(r,e){for(var t=0;t<e.length;t++){var o=e[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(r,s(o.key),o)}}(r.prototype,e),Object.defineProperty(r,"prototype",{writable:!1}),r}function n(){ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var r,e,t="function"==typeof Symbol?Symbol:{},o=t.iterator||"@@iterator",i=t.toStringTag||"@@toStringTag";function s(t,o,n,i){var s=o&&o.prototype instanceof u?o:u,l=Object.create(s.prototype);return a(l,"_invoke",function(t,o,n){var a,i,s,u=0,l=n||[],d=!1,f={p:0,n:0,v:r,a:p,f:p.bind(r,4),d:function(e,t){return a=e,i=0,s=r,f.n=t,c}};function p(t,o){for(i=t,s=o,e=0;!d&&u&&!n&&e<l.length;e++){var n,a=l[e],p=f.p,m=a[2];t>3?(n=m===o)&&(s=a[(i=a[4])?5:(i=3,3)],a[4]=a[5]=r):a[0]<=p&&((n=t<2&&p<a[1])?(i=0,f.v=o,f.n=a[1]):p<m&&(n=t<3||a[0]>o||o>m)&&(a[4]=t,a[5]=o,f.n=m,i=0))}if(n||t>1)return c;throw d=!0,o}return function(n,l,m){if(u>1)throw TypeError("Generator is already running");for(d&&1===l&&p(l,m),i=l,s=m;(e=i<2?r:s)||!d;){a||(i?i<3?(i>1&&(f.n=-1),p(i,s)):f.n=s:f.v=s);try{if(u=2,a){if(i||(n="next"),e=a[n]){if(!(e=e.call(a,s)))throw TypeError("iterator result is not an object");if(!e.done)return e;s=e.value,i<2&&(i=0)}else 1===i&&(e=a.return)&&e.call(a),i<2&&(s=TypeError("The iterator does not provide a '"+n+"' method"),i=1);a=r}else if((e=(d=f.n<0)?s:t.call(o,f))!==c)break}catch(e){a=r,i=1,s=e}finally{u=1}}return{value:e,done:d}}}(t,n,i),!0),l}var c={};function u(){}function l(){}function d(){}e=Object.getPrototypeOf;var f=[][o]?e(e([][o]())):(a(e={},o,function(){return this}),e),p=d.prototype=u.prototype=Object.create(f);function m(r){return Object.setPrototypeOf?Object.setPrototypeOf(r,d):(r.__proto__=d,a(r,i,"GeneratorFunction")),r.prototype=Object.create(p),r}return l.prototype=d,a(p,"constructor",d),a(d,"constructor",l),l.displayName="GeneratorFunction",a(d,i,"GeneratorFunction"),a(p),a(p,i,"Generator"),a(p,o,function(){return this}),a(p,"toString",function(){return"[object Generator]"}),(n=function(){return{w:s,m:m}})()}function a(r,e,t,o){var n=Object.defineProperty;try{n({},"",{})}catch(r){n=0}a=function(r,e,t,o){function i(e,t){a(r,e,function(r){return this._invoke(e,t,r)})}e?n?n(r,e,{value:t,enumerable:!o,configurable:!o,writable:!o}):r[e]=t:(i("next",0),i("throw",1),i("return",2))},a(r,e,t,o)}function i(e,t){return function(r){if(Array.isArray(r))return r}(e)||function(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var o,n,a,i,s=[],c=!0,u=!1;try{if(a=(t=t.call(r)).next,0===e);else for(;!(c=(o=a.call(t)).done)&&(s.push(o.value),s.length!==e);c=!0);}catch(r){u=!0,n=r}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(u)throw n}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?r(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(r){var e=function(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var o=t.call(r,e);if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}(r,"string");return"symbol"==typeof e?e:e+""}function c(r){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},c(r)}var u=Object.defineProperty,l=function(r,e,t){return function(r,e,t){return e in r?u(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t}(r,"symbol"!==c(e)?e+"":e,t)},d={name:"option",required:!0,properties:{sourceLanguage:{type:"string",required:!0},translationLanguages:{type:["string","array"],required:!1},userIdsToTranscribe:{type:["string","array"],required:!1},transcriberRobotId:{type:"string",required:!1}}},f={name:"option",required:!0,properties:{transcriberRobotId:{type:"string",required:!0}}},p=new Set([2002,4003]),m=new Set([3e3]),h=function(r){return new Promise(function(e){return setTimeout(e,r)})},y=function(){function r(e){!function(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this.core=e,l(this,"disableRandomCall",!0),l(this,"activeTranscriberMap",new Map),l(this,"_log"),this._log=this.core.log.createChild({id:"".concat(this.getAlias())})}return o(r,[{key:"getName",value:function(){return r.Name}},{key:"getAlias",value:function(){return"rt-trans"}},{key:"getStorageKey",value:function(){return"".concat("TRTC_RT_").concat(this.core.room.userId)}},{key:"saveToStorage",value:function(){try{var r={};this.activeTranscriberMap.forEach(function(e,t){r[t]=e}),localStorage.setItem(this.getStorageKey(),JSON.stringify(r))}catch(r){}}},{key:"loadFromStorage",value:function(){try{var r=localStorage.getItem(this.getStorageKey());if(!r)return null;var e=JSON.parse(r);if(!e||"object"!==c(e))return this.removeFromStorage(),null;for(var t=new Map,o=0,n=Object.entries(e);o<n.length;o++){var a=i(n[o],2),s=a[0],u=a[1];u&&"object"===c(u)&&"taskId"in u&&t.set(s,u)}return t}catch(r){return this.removeFromStorage(),null}}},{key:"removeFromStorage",value:function(){try{localStorage.removeItem(this.getStorageKey())}catch(r){}}},{key:"getGroup",value:function(){return"*"}},{key:"getValidateRule",value:function(r){switch(r){case"start":return d;case"update":return{};case"stop":return f}}},{key:"start",value:(y=t(n().m(function r(e){var t,o,a,i,s,c,u,l,d,f,p,m,h,y,g,b,v,S,_=this;return n().w(function(r){for(;;)switch(r.p=r.n){case 0:if(o=this.core.errorModule,a=o.RtcError,i=o.ErrorCode,this.core.room.sendSignalMessage){r.n=1;break}throw new a({code:i.ENV_NOT_SUPPORTED});case 1:return s=e.sourceLanguage,c=e.translationLanguages,u=e.userIdsToTranscribe,l=void 0===u?"all":u,d=e.transcriberRobotId,f=d||"transcriber_".concat(this.core.room.roomId,"_robot_").concat(this.core.room.userId),p={sdkappid:this.core.room.sdkAppId,roomid:String(this.core.room.roomId),roomType:this.core.room.useStringRoomId?1:0,agentParam:{cdnRobotUserid:f,maxIdletime:30},subscribeParams:{subUsers:[]},asrParams:{lang:s,vadSilenceTime:1e3},translationParams:{mode:1,targetLangs:[""]}},c&&c.length>0&&(p.translationParams.mode=1,p.translationParams.targetLangs=Array.isArray(c)?c:[c]),"all"===l?p.subscribeParams.subUsers=[]:Array.isArray(l)?p.subscribeParams.subUsers=l.map(function(r){return{userId:r,roomType:_.core.room.useStringRoomId?1:0,roomid:String(_.core.room.roomId)}}):l&&(p.subscribeParams.subUsers=[{userId:l,roomType:this.core.room.useStringRoomId?1:0,roomid:String(this.core.room.roomId)}]),r.p=2,this._log.info("start_cloud_transcription ".concat(JSON.stringify(p))),r.n=3,this.core.room.sendSignalMessage({command:"start_cloud_transcription",responseCommand:String(8268),data:p,retries:0});case 3:if(m=r.v,h=m.data,y=h.code,g=h.data,0===y){r.n=4;break}throw b=(null==(t=m.data)?void 0:t.message)||"",this._log.error("start_cloud_transcription failed",{extraCode:y,reason:b,data:g}),new a({code:i.SERVER_ERROR,extraCode:y,message:b});case 4:if(v=g.taskId){r.n=5;break}throw this._log.error("taskId is required",{data:m.data}),new a({code:i.SERVER_ERROR,message:"taskId is required"});case 5:return this.activeTranscriberMap.set(f,{taskId:v,options:e}),this.saveToStorage(),this._log.info("start_cloud_transcription success robotId: ".concat(f,", taskId: ").concat(v,", activeSize: ").concat(this.activeTranscriberMap.size)),r.a(2,f);case 6:throw r.p=6,S=r.v,this._log.error("start_cloud_transcription failed",{error:S}),S;case 7:return r.a(2)}},r,this,[[2,6]])})),function(r){return y.apply(this,arguments)})},{key:"update",value:(u=t(n().m(function r(){return n().w(function(r){for(;;)if(0===r.n)return r.a(2)},r)})),function(){return u.apply(this,arguments)})},{key:"sendStopSignal",value:(s=t(n().m(function r(e){var t,o,a,i,s,c,u,l;return n().w(function(r){for(;;)switch(r.n){case 0:return o=this.core.errorModule,a=o.RtcError,i=o.ErrorCode,r.n=1,this.core.room.sendSignalMessage({command:"stop_cloud_transcription",responseCommand:String(8270),data:{taskId:e},retries:3});case 1:if(0===(s=r.v).data.code){r.n=4;break}if(c=s.data.code,u=(null==(t=s.data)?void 0:t.message)||"",!p.has(c)){r.n=2;break}return this._log.warn("stop_cloud_transcription ignored error",{extraCode:c,reason:u,data:s.data.data}),r.a(2);case 2:if(!m.has(c)){r.n=3;break}throw(l=new a({code:i.SERVER_ERROR,extraCode:c,message:u})).retryable=!0,l;case 3:throw this._log.error("stop_cloud_transcription failed",{extraCode:c,reason:u,data:s.data.data}),new a({code:i.SERVER_ERROR,extraCode:c,message:u});case 4:return r.a(2)}},r,this)})),function(r){return s.apply(this,arguments)})},{key:"stopWithRetry",value:(a=t(n().m(function r(e){var t,o,a,i,s,c,u,l,d,f;return n().w(function(r){for(;;)switch(r.p=r.n){case 0:t=this.core.errorModule,o=t.RtcError,a=t.ErrorCode,i=3,c=1;case 1:if(!(c<=i)){r.n=7;break}return r.p=2,r.n=3,this.sendStopSignal(e);case 3:return c>1&&this._log.info("stop_cloud_transcription succeeded after ".concat(c-1," retries")),r.a(2);case 4:if(r.p=4,f=r.v,s=f,f.retryable&&!(c>=i)){r.n=5;break}return r.a(3,7);case 5:return this._log.warn("stop_cloud_transcription retryable error, retry ".concat(c,"/").concat(2),{extraCode:f.extraCode,message:f.message}),r.n=6,h(1e3);case 6:c++,r.n=1;break;case 7:if(u=null==s?void 0:s.extraCode,l=(null==s?void 0:s.message)||"",!(null==s?void 0:s.retryable)){r.n=8;break}throw d="stop_cloud_transcription failed after ".concat(2," retries: ").concat(l,". Please try again later."),this._log.error(d,{extraCode:u,totalAttempts:3}),new o({code:a.SERVER_ERROR,extraCode:u,message:d});case 8:throw s;case 9:return r.a(2)}},r,this,[[2,4]])})),function(r){return a.apply(this,arguments)})},{key:"stop",value:(e=t(n().m(function r(e){var t,o,a,i,s,c,u,l;return n().w(function(r){for(;;)switch(r.p=r.n){case 0:if(t=e.transcriberRobotId,o=this.core.errorModule,a=o.RtcError,i=o.ErrorCode,this.core.room.sendSignalMessage){r.n=1;break}throw new a({code:i.ENV_NOT_SUPPORTED});case 1:return(s=this.activeTranscriberMap.get(t))||(c=this.loadFromStorage())&&(s=c.get(t)),u=(null==s?void 0:s.taskId)||t,this._log.info("stop_cloud_transcription taskId: ".concat(u)),r.p=2,r.n=3,this.stopWithRetry(u);case 3:r.n=5;break;case 4:throw r.p=4,l=r.v,this._log.error("stop_cloud_transcription failed",{error:l}),l;case 5:return r.p=5,this.activeTranscriberMap.delete(t),0===this.activeTranscriberMap.size?this.removeFromStorage():this.saveToStorage(),r.f(5);case 6:return r.a(2)}},r,this,[[2,4,5,6]])})),function(r){return e.apply(this,arguments)})},{key:"destroy",value:function(){this.activeTranscriberMap.clear(),this.removeFromStorage()}}]);var e,a,s,u,y}();return l(y,"Name","RealtimeTranscriber"),y});