@graphen.ai/aiia-sdk 1.0.5 → 1.0.6

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/LICENSE CHANGED
@@ -25,7 +25,6 @@ SOFTWARE.
25
25
  This project uses the following third-party packages and complies with their respective licenses:
26
26
 
27
27
  - axios (MIT License)
28
- - cors (MIT License)
29
28
  - lodash (MIT License)
30
29
  - rxjs (Apache License 2.0)
31
30
  - socket.io (MIT License)
package/README.md CHANGED
@@ -37,8 +37,45 @@ import { aiiaCore } from '@graphen.ai/aiia-sdk/node';
37
37
  const core = aiiaCore({ license: "<Your Token>" });
38
38
  ```
39
39
 
40
+ ## 錯誤碼(Error Codes)
41
+
42
+ | 錯誤碼(Error Codes) | 描述 | desc |
43
+ |---|---|---|
44
+ | ERROR CODE: 500 | 網絡錯誤 | Network Error |
45
+ | ERROR CODE: 1001 | 環境錯誤(browser) | Environment Error - Browser |
46
+ | ERROR CODE: 1002 | Worklet模組載入失敗 | Worklet Module Loading Failed |
47
+ | ERROR CODE: 1003 | 未獲得媒體裝置權限 | Media Device Permission Not Granted |
48
+ | ERROR CODE: 1004 | 實例已摧毀 | Instance Destroyed |
49
+ | ERROR CODE: 2001 | 環境錯誤(nodejs) | Environment Error - Node.js |
50
+ | ERROR CODE: 2002 | 未提供憑證 | Credentials Not Provided |
51
+ | ERROR CODE: 2003 | 獲取權杖失敗 | Failed to Obtain Token |
52
+ | ERROR CODE: 2004 | 沒有可用專案 | No Available Project |
53
+ | ERROR CODE: 2005 | 重複初始化 | Duplicate Initialization |
54
+
55
+ ## 訊息碼(Message Codes)
56
+
57
+ | 訊息碼(Message Codes) | 描述 | desc |
58
+ |---|---|---|
59
+ | CODE: 1000 | 通道、雲端服務、麥克風都已就緒 | Channel, Cloud Service, Microphone Ready |
60
+ | CODE: 1001 | 未取得媒體裝置權限,請重新設定或忽略此訊息 | Media Device Permission Not Granted, Please Reconfigure or Ignore This Message |
61
+ | CODE: 1002 | 請訂閱專案列表 | Please Subscribe to Project List |
62
+ | CODE: 1010 | 初始化必要依賴 | Initializing Required Dependencies |
63
+ | CODE: 1011 | 指定依賴已完成 | Specified Dependencies Completed |
64
+ | CODE: 1012 | 啟動SDK | Starting SDK |
65
+ | CODE: 1013 | 結束SDK | Ending SDK |
66
+ | CODE: 2000 | 安全的關閉連線 | Safely Closing Connection |
67
+ | CODE: 2001 | 無副作用的關閉連線 | Closing Connection Without Side Effects |
68
+ | CODE: 2002 | 與雲端的服務中斷 | Disconnected from Cloud Service |
69
+ | CODE: 2003 | 沒有授權,請聯繫Graphen | No Authorization, Please Contact Graphen |
70
+ | CODE: 2004 | 自動重新連線連端服務 | Automatically Reconnecting to Cloud Service |
71
+ | CODE: 2005 | 未預期的斷線,請聯繫Graphen | Unexpected Disconnection, Please Contact Graphen |
72
+ | CODE: 2010 | 開始初始化必要模組 | Starting Initialization of Required Modules |
73
+ | CODE: 2011 | 指定模組初始化完成 | Specified Module Initialization Completed |
74
+ | CODE: 2012 | 啟動服務 | Starting Service |
75
+ | CODE: 2013 | 服務結束 | Service Ended |
76
+
40
77
  ## 授權條款(LICENSE)
41
78
 
42
79
  本專案採用 MIT 授權。詳見 [LICENSE](./LICENSE) 檔案。
43
80
 
44
- This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.
81
+ This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.
@@ -1 +1 @@
1
- !function(){"use strict";class e extends AudioWorkletProcessor{energyThreshold;constructor(){super(),this.energyThreshold=.01}process(e,r,s){const t=e[0][0];if(!t)return!0;let o=0;for(let e=0;e<t.length;e++)o+=Math.abs(t[e]);return o/=t.length,this.port.postMessage({float32:t.buffer,energy:o},[t.buffer]),!0}}registerProcessor("aiia-vad",e)}();
1
+ !function(){"use strict";var t;!function(t){t[t.unknow=0]="unknow",t[t.allowed=1]="allowed",t[t.rejected=2]="rejected"}(t||(t={}));class e extends AudioWorkletProcessor{inputBuffer;inputBufferLength;processChunkSize;outputSampleRate;originalSampleRate;constructor(t){super(),this.inputBuffer=[],this.inputBufferLength=0;const{outputSampleRate:e,chunkTimeInSeconds:n}=Object.assign({outputSampleRate:16e3,chunkTimeInSeconds:1},t?.processorOptions);this.originalSampleRate=sampleRate,this.outputSampleRate=e,this.processChunkSize=function(t,e,n=1){const s=e*n,u=t/e;return Math.ceil(s*u)}(this.originalSampleRate,this.outputSampleRate,n)}process(t,e,n){const s=t[0][0];if(!s)return!0;const u=new Float32Array(s);if(this.inputBuffer.push(u),this.inputBufferLength+=s.length,this.inputBufferLength>=this.processChunkSize){const t=function(t){const e=t.reduce((t,e)=>t+e.length,0),n=new Float32Array(e);let s=0;for(const e of t)n.set(e,s),s+=e.length;return n}(this.inputBuffer);this.inputBuffer=[],this.inputBufferLength=0;const e=function(t,e,n){if(e===n)return t;const s=n/e,u=Math.ceil(t.length*s),i=new Float32Array(u);for(let e=0;e<u;e++){const n=e/s,u=Math.floor(n),o=n-u,r=t[u],a=t[Math.min(u+1,t.length-1)];i[e]=r+(a-r)*o}return i}(t,this.originalSampleRate,this.outputSampleRate);this.port.postMessage({float32:e,outputSampleRate:this.outputSampleRate},[e.buffer])}return!0}}registerProcessor("aiia-vad",e)}();
package/dist/browser.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var t=require("moment"),e=require("rxjs"),r=require("socket.io-client"),n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var a="object"==typeof n&&n&&n.Object===Object&&n,i=a,u="object"==typeof self&&self&&self.Object===Object&&self,s=i||u||Function("return this")(),c=s.Symbol,l=c,f=Object.prototype,h=f.hasOwnProperty,d=f.toString,v=l?l.toStringTag:void 0;var p=function(t){var e=h.call(t,v),r=t[v];try{t[v]=void 0;var n=!0}catch(t){}var o=d.call(t);return n&&(e?t[v]=r:delete t[v]),o},b=Object.prototype.toString;var g=p,y=function(t){return b.call(t)},_=c?c.toStringTag:void 0;var m=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":_&&_ in Object(t)?g(t):y(t)};var w=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},j=m,S=w;var O,x=function(t){if(!S(t))return!1;var e=j(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},R=s["__core-js_shared__"],k=(O=/[^.]+$/.exec(R&&R.keys&&R.keys.IE_PROTO||""))?"Symbol(src)_1."+O:"";var C=function(t){return!!k&&k in t},A=Function.prototype.toString;var N=function(t){if(null!=t){try{return A.call(t)}catch(t){}try{return t+""}catch(t){}}return""},M=x,E=C,D=w,P=N,z=/^\[object .+?Constructor\]$/,B=Function.prototype,T=Object.prototype,$=B.toString,F=T.hasOwnProperty,U=RegExp("^"+$.call(F).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var I=function(t){return!(!D(t)||E(t))&&(M(t)?U:z).test(P(t))},V=function(t,e){return null==t?void 0:t[e]};var q=function(t,e){var r=V(t,e);return I(r)?r:void 0},Q=q,W=function(){try{var t=Q(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),L=W;var G=function(t,e,r){"__proto__"==e&&L?L(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};var H=function(t,e){return t===e||t!=t&&e!=e},J=G,K=H,X=Object.prototype.hasOwnProperty;var Y=function(t,e,r){var n=t[e];X.call(t,e)&&K(n,r)&&(void 0!==r||e in t)||J(t,e,r)},Z=Y,tt=G;var et=function(t,e,r,n){var o=!r;r||(r={});for(var a=-1,i=e.length;++a<i;){var u=e[a],s=n?n(r[u],t[u],u,r,t):void 0;void 0===s&&(s=t[u]),o?tt(r,u,s):Z(r,u,s)}return r};var rt=function(t){return t};var nt=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)},ot=Math.max;var at=function(t,e,r){return e=ot(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,a=ot(n.length-e,0),i=Array(a);++o<a;)i[o]=n[e+o];o=-1;for(var u=Array(e+1);++o<e;)u[o]=n[o];return u[e]=r(i),nt(t,this,u)}};var it=function(t){return function(){return t}},ut=W,st=ut?function(t,e){return ut(t,"toString",{configurable:!0,enumerable:!1,value:it(e),writable:!0})}:rt,ct=Date.now;var lt=function(t){var e=0,r=0;return function(){var n=ct(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(st),ft=rt,ht=at,dt=lt;var vt=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},pt=x,bt=vt;var gt=function(t){return null!=t&&bt(t.length)&&!pt(t)},yt=/^(?:0|[1-9]\d*)$/;var _t=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&yt.test(t))&&t>-1&&t%1==0&&t<e},mt=H,wt=gt,jt=_t,St=w;var Ot=function(t,e){return dt(ht(t,e,ft),t+"")},xt=function(t,e,r){if(!St(r))return!1;var n=typeof e;return!!("number"==n?wt(r)&&jt(e,r.length):"string"==n&&e in r)&&mt(r[e],t)};var Rt=function(t){return Ot(function(e,r){var n=-1,o=r.length,a=o>1?r[o-1]:void 0,i=o>2?r[2]:void 0;for(a=t.length>3&&"function"==typeof a?(o--,a):void 0,i&&xt(r[0],r[1],i)&&(a=o<3?void 0:a,o=1),e=Object(e);++n<o;){var u=r[n];u&&t(e,u,n,a)}return e})},kt=Object.prototype;var Ct=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||kt)};var At=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var Nt=function(t){return null!=t&&"object"==typeof t},Mt=m,Et=Nt;var Dt=function(t){return Et(t)&&"[object Arguments]"==Mt(t)},Pt=Nt,zt=Object.prototype,Bt=zt.hasOwnProperty,Tt=zt.propertyIsEnumerable,$t=Dt(function(){return arguments}())?Dt:function(t){return Pt(t)&&Bt.call(t,"callee")&&!Tt.call(t,"callee")},Ft=Array.isArray,Ut=o(Ft),It={exports:{}};var Vt=function(){return!1};!function(t,e){var r=s,n=Vt,o=e&&!e.nodeType&&e,a=o&&t&&!t.nodeType&&t,i=a&&a.exports===o?r.Buffer:void 0,u=(i?i.isBuffer:void 0)||n;t.exports=u}(It,It.exports);var qt=It.exports,Qt=m,Wt=vt,Lt=Nt,Gt={};Gt["[object Float32Array]"]=Gt["[object Float64Array]"]=Gt["[object Int8Array]"]=Gt["[object Int16Array]"]=Gt["[object Int32Array]"]=Gt["[object Uint8Array]"]=Gt["[object Uint8ClampedArray]"]=Gt["[object Uint16Array]"]=Gt["[object Uint32Array]"]=!0,Gt["[object Arguments]"]=Gt["[object Array]"]=Gt["[object ArrayBuffer]"]=Gt["[object Boolean]"]=Gt["[object DataView]"]=Gt["[object Date]"]=Gt["[object Error]"]=Gt["[object Function]"]=Gt["[object Map]"]=Gt["[object Number]"]=Gt["[object Object]"]=Gt["[object RegExp]"]=Gt["[object Set]"]=Gt["[object String]"]=Gt["[object WeakMap]"]=!1;var Ht=function(t){return Lt(t)&&Wt(t.length)&&!!Gt[Qt(t)]};var Jt=function(t){return function(e){return t(e)}},Kt={exports:{}};!function(t,e){var r=a,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n&&r.process,u=function(){try{var t=o&&o.require&&o.require("util").types;return t||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=u}(Kt,Kt.exports);var Xt=Kt.exports,Yt=Ht,Zt=Jt,te=Xt&&Xt.isTypedArray,ee=te?Zt(te):Yt,re=At,ne=$t,oe=Ft,ae=qt,ie=_t,ue=ee,se=Object.prototype.hasOwnProperty;var ce=function(t,e){var r=oe(t),n=!r&&ne(t),o=!r&&!n&&ae(t),a=!r&&!n&&!o&&ue(t),i=r||n||o||a,u=i?re(t.length,String):[],s=u.length;for(var c in t)!e&&!se.call(t,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||ie(c,s))||u.push(c);return u};var le=function(t,e){return function(r){return t(e(r))}}(Object.keys,Object),fe=Ct,he=le,de=Object.prototype.hasOwnProperty;var ve=ce,pe=function(t){if(!fe(t))return he(t);var e=[];for(var r in Object(t))de.call(t,r)&&"constructor"!=r&&e.push(r);return e},be=gt;var ge,ye=function(t){return be(t)?ve(t):pe(t)},_e=Y,me=et,we=Rt,je=gt,Se=Ct,Oe=ye,xe=Object.prototype.hasOwnProperty,Re=o(we(function(t,e){if(Se(e)||je(e))me(e,Oe(e),t);else for(var r in e)xe.call(e,r)&&_e(t,r,e[r])}));!function(t){t["網絡錯誤"]="ERROR CODE: 500",t["環境錯誤(browser)"]="ERROR CODE: 1001",t["Worklet模組載入失敗"]="ERROR CODE: 1002",t["未獲得媒體裝置權限"]="ERROR CODE: 1003",t["實例已摧毀"]="ERROR CODE: 1004",t["環境錯誤(nodejs)"]="ERROR CODE: 2001",t["未提供憑證"]="ERROR CODE: 2002",t["獲取權杖失敗"]="ERROR CODE: 2003",t["沒有可用專案"]="ERROR CODE: 2004",t["重複初始化"]="ERROR CODE: 205"}(ge||(ge={}));const ke="undefined"!=typeof window;"undefined"!=typeof process&&null!=process.versions&&process.versions.node;class Ce{config;get webserver(){return this.config.webserver}get environment(){return this.config.env}get license(){return this.config.license??""}get port(){return function(t,e){const r=e??NaN;if(t){const e=parseInt(t);return isNaN(e)?r:e}return r}(process.env.PORT,this.config.port??3e3)}get ws_url(){return this.config.ws_url??""}get worklet_url(){return this.config.worklet_url??""}get project(){const{project:t}=Re({},this.config);return void 0===t?{specific:!1}:"string"==typeof t?{name:t,id:t,specific:!1}:Re({},t,{specific:!0})}get endPoint(){return this.environment,{api:"https://aiia-content-management-dev-21193779403.asia-east1.run.app",socket:"wss://graphen-agentic-workflow-dev-21193779403.asia-east1.run.app"}}get debug(){return this.config.debug??!0}constructor(t){this.config=t}}var Ae=function(t,e,r,n){for(var o=t.length,a=r+(n?1:-1);n?a--:++a<o;)if(e(t[a],a,t))return a;return-1};var Ne=Ae,Me=function(t){return t!=t},Ee=function(t,e,r){for(var n=r-1,o=t.length;++n<o;)if(t[n]===e)return n;return-1};var De=function(t,e,r){return e==e?Ee(t,e,r):Ne(t,Me,r)},Pe=m,ze=Ft,Be=Nt;var Te=function(t){return"string"==typeof t||!ze(t)&&Be(t)&&"[object String]"==Pe(t)},$e=/\s/;var Fe=function(t){for(var e=t.length;e--&&$e.test(t.charAt(e)););return e},Ue=/^\s+/;var Ie=m,Ve=Nt;var qe=function(t){return"symbol"==typeof t||Ve(t)&&"[object Symbol]"==Ie(t)},Qe=function(t){return t?t.slice(0,Fe(t)+1).replace(Ue,""):t},We=w,Le=qe,Ge=/^[-+]0x[0-9a-f]+$/i,He=/^0b[01]+$/i,Je=/^0o[0-7]+$/i,Ke=parseInt;var Xe=function(t){if("number"==typeof t)return t;if(Le(t))return NaN;if(We(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=We(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Qe(t);var r=He.test(t);return r||Je.test(t)?Ke(t.slice(2),r?2:8):Ge.test(t)?NaN:+t},Ye=1/0;var Ze=function(t){return t?(t=Xe(t))===Ye||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0};var tr=function(t){var e=Ze(t),r=e%1;return e==e?r?e-r:e:0};var er=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},rr=er;var nr=function(t,e){return rr(e,function(e){return t[e]})},or=ye;var ar=function(t){return null==t?[]:nr(t,or(t))},ir=o(ar),ur=De,sr=gt,cr=Te,lr=tr,fr=ar,hr=Math.max;var dr=o(function(t,e,r,n){t=sr(t)?t:fr(t),r=r&&!n?lr(r):0;var o=t.length;return r<0&&(r=hr(o+r,0)),cr(t)?r<=o&&t.indexOf(e,r)>-1:!!o&&ur(t,e,r)>-1});const vr={debug:()=>{},info:()=>{},error:()=>{},warn:()=>{},fatal:()=>{}};function pr(){return t().format("yyyy-MM-DD[T]HH:mm:ss")}function br(t){const{info:e,error:r,warn:n,debug:o,fatal:a}=function(t){return void 0===t||"all"===t?{error:!0,warn:!0,info:!0,debug:!0,fatal:!0}:"none"===t?{error:!1,warn:!1,info:!1,debug:!1,fatal:!1}:"boolean"==typeof t?{error:t,warn:t,info:t,debug:t,fatal:t}:{debug:dr(t,"debug"),fatal:dr(t,"fatal"),error:dr(t,"error"),warn:dr(t,"warn"),info:dr(t,"info")}}(t);o&&(vr.debug=(...t)=>{const e=pr();console.log(`[Aiia::debug_${e}_]`,...t)}),e&&(vr.info=(...t)=>{const e=pr();console.log(`[Aiia::info_${e}_]`,...t)}),n&&(vr.warn=(...t)=>{const e=pr();console.warn(`[Aiia::warn_${e}_]`,...t)}),r&&(vr.error=(...t)=>{const e=pr();console.error(`[Aiia::error_${e}_]`,...t)}),a&&(vr.fatal=(...t)=>{const e=pr();console.error(`[Aiia::fatal_${e}_]`,...t)})}var gr=Ft,yr=qe,_r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,mr=/^\w*$/;var wr=function(t,e){if(gr(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!yr(t))||(mr.test(t)||!_r.test(t)||null!=e&&t in Object(e))},jr=q(Object,"create"),Sr=jr;var Or=function(){this.__data__=Sr?Sr(null):{},this.size=0};var xr=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Rr=jr,kr=Object.prototype.hasOwnProperty;var Cr=function(t){var e=this.__data__;if(Rr){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return kr.call(e,t)?e[t]:void 0},Ar=jr,Nr=Object.prototype.hasOwnProperty;var Mr=jr;var Er=Or,Dr=xr,Pr=Cr,zr=function(t){var e=this.__data__;return Ar?void 0!==e[t]:Nr.call(e,t)},Br=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Mr&&void 0===e?"__lodash_hash_undefined__":e,this};function Tr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Tr.prototype.clear=Er,Tr.prototype.delete=Dr,Tr.prototype.get=Pr,Tr.prototype.has=zr,Tr.prototype.set=Br;var $r=Tr;var Fr=function(){this.__data__=[],this.size=0},Ur=H;var Ir=function(t,e){for(var r=t.length;r--;)if(Ur(t[r][0],e))return r;return-1},Vr=Ir,qr=Array.prototype.splice;var Qr=Ir;var Wr=Ir;var Lr=Ir;var Gr=Fr,Hr=function(t){var e=this.__data__,r=Vr(e,t);return!(r<0)&&(r==e.length-1?e.pop():qr.call(e,r,1),--this.size,!0)},Jr=function(t){var e=this.__data__,r=Qr(e,t);return r<0?void 0:e[r][1]},Kr=function(t){return Wr(this.__data__,t)>-1},Xr=function(t,e){var r=this.__data__,n=Lr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function Yr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Yr.prototype.clear=Gr,Yr.prototype.delete=Hr,Yr.prototype.get=Jr,Yr.prototype.has=Kr,Yr.prototype.set=Xr;var Zr=Yr,tn=q(s,"Map"),en=$r,rn=Zr,nn=tn;var on=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var an=function(t,e){var r=t.__data__;return on(e)?r["string"==typeof e?"string":"hash"]:r.map},un=an;var sn=an;var cn=an;var ln=an;var fn=function(){this.size=0,this.__data__={hash:new en,map:new(nn||rn),string:new en}},hn=function(t){var e=un(this,t).delete(t);return this.size-=e?1:0,e},dn=function(t){return sn(this,t).get(t)},vn=function(t){return cn(this,t).has(t)},pn=function(t,e){var r=ln(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function bn(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}bn.prototype.clear=fn,bn.prototype.delete=hn,bn.prototype.get=dn,bn.prototype.has=vn,bn.prototype.set=pn;var gn=bn,yn=gn;function _n(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=t.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(_n.Cache||yn),r}_n.Cache=yn;var mn=_n;var wn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,jn=/\\(\\)?/g,Sn=function(t){var e=mn(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(wn,function(t,r,n,o){e.push(n?o.replace(jn,"$1"):r||t)}),e}),On=er,xn=Ft,Rn=qe,kn=c?c.prototype:void 0,Cn=kn?kn.toString:void 0;var An=function t(e){if("string"==typeof e)return e;if(xn(e))return On(e,t)+"";if(Rn(e))return Cn?Cn.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r},Nn=An;var Mn=Ft,En=wr,Dn=Sn,Pn=function(t){return null==t?"":Nn(t)};var zn=function(t,e){return Mn(t)?t:En(t,e)?[t]:Dn(Pn(t))},Bn=qe;var Tn=function(t){if("string"==typeof t||Bn(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},$n=zn,Fn=Tn;var Un=function(t,e){for(var r=0,n=(e=$n(e,t)).length;null!=t&&r<n;)t=t[Fn(e[r++])];return r&&r==n?t:void 0},In=Un;var Vn,qn,Qn=function(t,e,r){var n=null==t?void 0:In(t,e);return void 0===n?r:n},Wn=o(Qn);function Ln(t,e,r){return Math.max(r,Math.min(t,e))}function Gn(t){const e=new DataView(t.buffer),r=[];for(let n=0;n<t.length;n++){const t=e.getInt16(2*n,!0)/32768;r.push(t)}return new Float32Array(r)}function Hn(t){const e=new DataView(t.buffer),r=[];for(let n=0;n<t.length;n++){const t=Ln(32768*e.getFloat32(4*n,!0),32767,-32768);r.push(t)}return r}!function(t){t[t.unknow=0]="unknow",t[t.allowed=1]="allowed",t[t.rejected=2]="rejected"}(Vn||(Vn={}));class Jn{audioContext;type="audio";currentNode;bufferQueue;gainNode;set volume(t){t<0&&(t=0),t>100&&(t=100),this.gainNode.gain.value=t/100}get volume(){return Math.round(100*this.gainNode.gain.value)}constructor(t){this.audioContext=t,this.bufferQueue=[],this.currentNode=null,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}addBuffer(t){this.bufferQueue.push(t)}addBufferByFloat32(t,e=1){const r=t.length,n=this.audioContext.sampleRate,o=this.audioContext.createBuffer(e,r,n),a=t.slice();for(let t=0;t<e;t++)o.copyToChannel(a,t);this.addBuffer(o)}addBufferByInt16(t,e=1){this.addBufferByFloat32(Gn(t),e)}startSpeech(){null===this.currentNode&&this.continue()}pauseSpeech(){this.audioContext.suspend().catch(t=>{vr.error("pause speech fail",t)})}resumeSpeech(){this.audioContext.resume().catch(t=>{vr.error("resume speech fail",t)})}nextSpeech(){this.bufferQueue.length>0&&(this.clearNode(),this.continue())}stopSpeech(){this.bufferQueue=[],this.clearNode()}clearNode(){this.currentNode&&(this.currentNode.onended=function(){},this.currentNode.stop(),this.currentNode.disconnect(),this.currentNode=null)}continue(){const t=this.bufferQueue.shift();if(t){this.currentNode=this.audioContext.createBufferSource(),this.currentNode.buffer=t,this.currentNode.connect(this.gainNode);const e=this.continue.bind(this);this.currentNode.onended=e,this.currentNode.start()}else this.clearNode()}}class Kn{stream;audioContext;pcmSub;type="vad";workletNode;source;isRecording=!1;constructor(t,e,r){this.stream=t,this.audioContext=e,this.pcmSub=r}async startRecord(){this.isRecording||(this.source=this.audioContext.createMediaStreamSource(this.stream),this.workletNode=new AudioWorkletNode(this.audioContext,"aiia-vad"),this.source.connect(this.workletNode),this.workletNode.port.onmessage=t=>{const{float32:e,energy:r}=t.data;e&&this.pcmSub.next(new Float32Array(e))},this.isRecording=!0)}stopRecord(){this.isRecording&&(this.workletNode&&(this.workletNode.port.onmessage=null,this.workletNode.disconnect()),this.source&&this.source.disconnect(),this.isRecording=!1)}}!function(t){t[t.padding=0]="padding",t[t.rejected=1]="rejected",t[t.loadfail=2]="loadfail",t[t.allowed=3]="allowed"}(qn||(qn={}));class Xn{_state;stateSub;audioCtx;audioManager;vadManager;destory;pcmSub;get sampleRate(){return this.audioCtx?this.audioCtx.sampleRate:16e3}get pcm(){return this.pcmSub.asObservable()}get state(){return this._state}set state(t){t!==this._state&&(this._state=t,this.stateSub.next(t))}get stateObs(){return this.stateSub.asObservable()}constructor(){this.stateSub=new e.Subject,this.pcmSub=new e.Subject,this.destory=new e.Subject,this.state=qn.padding}async init(t){if(this.destory.closed)throw new Error(ge["實例已摧毀"]);const e=await async function(t){try{return await navigator.mediaDevices.getUserMedia(t)}catch(t){return null}}({audio:{echoCancellation:!0,noiseSuppression:!0}});if(null===e)throw this.state=qn.rejected,new Error(ge["未獲得媒體裝置權限"]);this.audioCtx=new AudioContext;try{await this.audioCtx.audioWorklet.addModule(t)}catch(t){throw vr.fatal(t),this.state=qn.loadfail,new Error(ge["Worklet模組載入失敗"])}this.state=qn.allowed,this.audioManager=new Jn(this.audioCtx),this.vadManager=new Kn(e,this.audioCtx,this.pcmSub)}addAudioQueue(t){const e=Wn(t,"buffer",void 0),r=Wn(t,"float32",void 0),n=Wn(t,"int16",void 0),o=Wn(t,"numberOfChannels",void 0);e?this.audioManager?.addBuffer(e):r?this.audioManager?.addBufferByFloat32(r,o):n&&this.audioManager?.addBufferByInt16(n,o)}playAudio(){this.audioManager?.startSpeech()}stopAudio(){this.audioManager?.stopSpeech()}startRecord(){this.vadManager?.startRecord()}stopRecord(){this.vadManager?.stopRecord()}setVolume(t){this.audioManager&&(this.audioManager.volume=t)}getVolume(){return this.audioManager?this.audioManager.volume:0}onDestory(){this.audioCtx?.close(),this.destory.next(),this.destory.complete()}}var Yn=Zr;var Zn=Zr,to=tn,eo=gn;var ro=Zr,no=function(){this.__data__=new Yn,this.size=0},oo=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},ao=function(t){return this.__data__.get(t)},io=function(t){return this.__data__.has(t)},uo=function(t,e){var r=this.__data__;if(r instanceof Zn){var n=r.__data__;if(!to||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new eo(n)}return r.set(t,e),this.size=r.size,this};function so(t){var e=this.__data__=new ro(t);this.size=e.size}so.prototype.clear=no,so.prototype.delete=oo,so.prototype.get=ao,so.prototype.has=io,so.prototype.set=uo;var co=so;var lo=gn,fo=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},ho=function(t){return this.__data__.has(t)};function vo(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new lo;++e<r;)this.add(t[e])}vo.prototype.add=vo.prototype.push=fo,vo.prototype.has=ho;var po=vo,bo=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},go=function(t,e){return t.has(e)};var yo=function(t,e,r,n,o,a){var i=1&r,u=t.length,s=e.length;if(u!=s&&!(i&&s>u))return!1;var c=a.get(t),l=a.get(e);if(c&&l)return c==e&&l==t;var f=-1,h=!0,d=2&r?new po:void 0;for(a.set(t,e),a.set(e,t);++f<u;){var v=t[f],p=e[f];if(n)var b=i?n(p,v,f,e,t,a):n(v,p,f,t,e,a);if(void 0!==b){if(b)continue;h=!1;break}if(d){if(!bo(e,function(t,e){if(!go(d,e)&&(v===t||o(v,t,r,n,a)))return d.push(e)})){h=!1;break}}else if(v!==p&&!o(v,p,r,n,a)){h=!1;break}}return a.delete(t),a.delete(e),h};var _o=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r};var mo=s.Uint8Array,wo=H,jo=yo,So=_o,Oo=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},xo=c?c.prototype:void 0,Ro=xo?xo.valueOf:void 0;var ko=function(t,e,r,n,o,a,i){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!a(new mo(t),new mo(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return wo(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var u=So;case"[object Set]":var s=1&n;if(u||(u=Oo),t.size!=e.size&&!s)return!1;var c=i.get(t);if(c)return c==e;n|=2,i.set(t,e);var l=jo(u(t),u(e),n,o,a,i);return i.delete(t),l;case"[object Symbol]":if(Ro)return Ro.call(t)==Ro.call(e)}return!1};var Co=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},Ao=Co,No=Ft;var Mo=function(t,e,r){var n=e(t);return No(t)?n:Ao(n,r(t))};var Eo=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,a=[];++r<n;){var i=t[r];e(i,r,t)&&(a[o++]=i)}return a},Do=function(){return[]},Po=Object.prototype.propertyIsEnumerable,zo=Object.getOwnPropertySymbols,Bo=Mo,To=zo?function(t){return null==t?[]:(t=Object(t),Eo(zo(t),function(e){return Po.call(t,e)}))}:Do,$o=ye;var Fo=function(t){return Bo(t,$o,To)},Uo=Object.prototype.hasOwnProperty;var Io=function(t,e,r,n,o,a){var i=1&r,u=Fo(t),s=u.length;if(s!=Fo(e).length&&!i)return!1;for(var c=s;c--;){var l=u[c];if(!(i?l in e:Uo.call(e,l)))return!1}var f=a.get(t),h=a.get(e);if(f&&h)return f==e&&h==t;var d=!0;a.set(t,e),a.set(e,t);for(var v=i;++c<s;){var p=t[l=u[c]],b=e[l];if(n)var g=i?n(b,p,l,e,t,a):n(p,b,l,t,e,a);if(!(void 0===g?p===b||o(p,b,r,n,a):g)){d=!1;break}v||(v="constructor"==l)}if(d&&!v){var y=t.constructor,_=e.constructor;y==_||!("constructor"in t)||!("constructor"in e)||"function"==typeof y&&y instanceof y&&"function"==typeof _&&_ instanceof _||(d=!1)}return a.delete(t),a.delete(e),d},Vo=q(s,"DataView"),qo=tn,Qo=q(s,"Promise"),Wo=q(s,"Set"),Lo=q(s,"WeakMap"),Go=m,Ho=N,Jo="[object Map]",Ko="[object Promise]",Xo="[object Set]",Yo="[object WeakMap]",Zo="[object DataView]",ta=Ho(Vo),ea=Ho(qo),ra=Ho(Qo),na=Ho(Wo),oa=Ho(Lo),aa=Go;(Vo&&aa(new Vo(new ArrayBuffer(1)))!=Zo||qo&&aa(new qo)!=Jo||Qo&&aa(Qo.resolve())!=Ko||Wo&&aa(new Wo)!=Xo||Lo&&aa(new Lo)!=Yo)&&(aa=function(t){var e=Go(t),r="[object Object]"==e?t.constructor:void 0,n=r?Ho(r):"";if(n)switch(n){case ta:return Zo;case ea:return Jo;case ra:return Ko;case na:return Xo;case oa:return Yo}return e});var ia=co,ua=yo,sa=ko,ca=Io,la=aa,fa=Ft,ha=qt,da=ee,va="[object Arguments]",pa="[object Array]",ba="[object Object]",ga=Object.prototype.hasOwnProperty;var ya=function(t,e,r,n,o,a){var i=fa(t),u=fa(e),s=i?pa:la(t),c=u?pa:la(e),l=(s=s==va?ba:s)==ba,f=(c=c==va?ba:c)==ba,h=s==c;if(h&&ha(t)){if(!ha(e))return!1;i=!0,l=!1}if(h&&!l)return a||(a=new ia),i||da(t)?ua(t,e,r,n,o,a):sa(t,e,s,r,n,o,a);if(!(1&r)){var d=l&&ga.call(t,"__wrapped__"),v=f&&ga.call(e,"__wrapped__");if(d||v){var p=d?t.value():t,b=v?e.value():e;return a||(a=new ia),o(p,b,r,n,a)}}return!!h&&(a||(a=new ia),ca(t,e,r,n,o,a))},_a=Nt;var ma=function t(e,r,n,o,a){return e===r||(null==e||null==r||!_a(e)&&!_a(r)?e!=e&&r!=r:ya(e,r,n,o,t,a))},wa=co,ja=ma;var Sa=w;var Oa=function(t){return t==t&&!Sa(t)},xa=Oa,Ra=ye;var ka=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}},Ca=function(t,e,r,n){var o=r.length,a=o,i=!n;if(null==t)return!a;for(t=Object(t);o--;){var u=r[o];if(i&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++o<a;){var s=(u=r[o])[0],c=t[s],l=u[1];if(i&&u[2]){if(void 0===c&&!(s in t))return!1}else{var f=new wa;if(n)var h=n(c,l,s,t,e,f);if(!(void 0===h?ja(l,c,3,n,f):h))return!1}}return!0},Aa=function(t){for(var e=Ra(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,xa(o)]}return e},Na=ka;var Ma=zn,Ea=$t,Da=Ft,Pa=_t,za=vt,Ba=Tn;var Ta=function(t,e){return null!=t&&e in Object(t)},$a=function(t,e,r){for(var n=-1,o=(e=Ma(e,t)).length,a=!1;++n<o;){var i=Ba(e[n]);if(!(a=null!=t&&r(t,i)))break;t=t[i]}return a||++n!=o?a:!!(o=null==t?0:t.length)&&za(o)&&Pa(i,o)&&(Da(t)||Ea(t))};var Fa=ma,Ua=Qn,Ia=function(t,e){return null!=t&&$a(t,e,Ta)},Va=wr,qa=Oa,Qa=ka,Wa=Tn;var La=Un;var Ga=function(t){return function(e){return null==e?void 0:e[t]}},Ha=function(t){return function(e){return La(e,t)}},Ja=wr,Ka=Tn;var Xa=function(t){var e=Aa(t);return 1==e.length&&e[0][2]?Na(e[0][0],e[0][1]):function(r){return r===t||Ca(r,t,e)}},Ya=function(t,e){return Va(t)&&qa(e)?Qa(Wa(t),e):function(r){var n=Ua(r,t);return void 0===n&&n===e?Ia(r,t):Fa(e,n,3)}},Za=rt,ti=Ft,ei=function(t){return Ja(t)?Ga(Ka(t)):Ha(t)};var ri=function(t){return"function"==typeof t?t:null==t?Za:"object"==typeof t?ti(t)?Ya(t[0],t[1]):Xa(t):ei(t)};var ni=function(t){return function(e,r,n){for(var o=-1,a=Object(e),i=n(e),u=i.length;u--;){var s=i[t?u:++o];if(!1===r(a[s],s,a))break}return e}}(),oi=ye;var ai=gt;var ii=function(t,e){return function(r,n){if(null==r)return r;if(!ai(r))return t(r,n);for(var o=r.length,a=e?o:-1,i=Object(r);(e?a--:++a<o)&&!1!==n(i[a],a,i););return r}}(function(t,e){return t&&ni(t,e,oi)}),ui=gt;var si=er,ci=ri,li=function(t,e){var r=-1,n=ui(t)?Array(t.length):[];return ii(t,function(t,o,a){n[++r]=e(t,o,a)}),n},fi=Ft;var hi=o(function(t,e){return(fi(t)?si:li)(t,ci(e))}),di=ri,vi=gt,pi=ye;var bi=function(t){return function(e,r,n){var o=Object(e);if(!vi(e)){var a=di(r);e=pi(e),r=function(t){return a(o[t],t,o)}}var i=t(e,r,n);return i>-1?o[a?e[i]:i]:void 0}},gi=Ae,yi=ri,_i=tr,mi=Math.max;var wi,ji=o(bi(function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=null==r?0:_i(r);return o<0&&(o=mi(n+o,0)),gi(t,yi(e),o)}));class Si{socket;messageSub;destorySub;get message(){return this.messageSub.asObservable()}constructor(t){this.destorySub=new e.Subject,this.messageSub=new e.Subject;const{specific:n,id:o}=t.project;this.socket=r.io(t.ws_url,Re({autoConnect:!1},n&&void 0!==o?{query:{uuid:o}}:{}))}start(){const t="list",r="cloud",n="channel";e.fromEvent(this.socket,t).pipe(e.take(1),e.takeUntil(this.destorySub)).subscribe(e=>{this.messageSub.next({event:t,data:e})}),e.fromEvent(this.socket,r).pipe(e.takeUntil(this.destorySub)).subscribe(t=>{this.messageSub.next({event:r,data:t})}),e.fromEvent(this.socket,n).pipe(e.takeUntil(this.destorySub)).subscribe(t=>{this.messageSub.next({event:n,data:t})}),this.socket.connect()}send(t,e){this.socket.emit(t,e)}sendToCloud(t){this.send("cloud",JSON.stringify(t))}onDestory(){this.destorySub.next(),this.destorySub.complete(),this.messageSub.complete(),this.socket.disconnect()}}!function(t){t[t.interrupted=0]="interrupted",t[t.pcm=1]="pcm",t[t.cloudSampleRate=2]="cloudSampleRate"}(wi||(wi={}));class Oi{config;media;chat;destorySub;projectsSub;layoutSub;aiiaSubtitleSub;userSubtitleSub;cloudSampleRate;channelState;get layout(){return this.layoutSub.asObservable()}get projects(){return this.projectsSub.asObservable()}get aiiaSubtitle(){return this.aiiaSubtitleSub.asObservable()}get userSubtitle(){return this.userSubtitleSub.asObservable()}set volume(t){this.media.setVolume(t)}get volume(){return this.media.getVolume()}constructor(t,r){this.config=t,this.media=r,this.layoutSub=new e.Subject,this.projectsSub=new e.Subject,this.destorySub=new e.Subject,this.aiiaSubtitleSub=new e.Subject,this.userSubtitleSub=new e.Subject,this.cloudSampleRate=16e3,this.channelState={proxy:!1,cloud:!1},this.chat=new Si(t)}start(){this.media.stateObs.pipe(e.takeUntil(this.destorySub)).subscribe(()=>{this.channelCheck()}),this.chat.message.pipe(e.takeUntil(this.destorySub)).subscribe(({event:t,data:e})=>{switch(t){case"cloud":this.cloudToObj(e);break;case"list":{const{id:t,name:r,specific:n}=this.config.project;let o=null;if(n&&void 0!==t)o=t;else{const n=ji(e,e=>e.name===r||e.id===t);n&&(o=n.id)}null!==o?this.chooseProject(o):(this.projectsSub.next(e),vr.info("Please subscribe `projects` and call `chooseProject` method"));break}case"channel":"open"===e&&(this.channelState.proxy=!0,this.channelCheck())}}),this.chat.start()}chooseProject(t){this.chat.send("uuid",t)}cloudToObj(t){try{const e=JSON.parse(t);void 0!==Wn(e,"signal")?this.behavior(e):Ut(e)?hi(e,this.behavior):hi(ir(e),this.behavior)}catch(t){vr.error("message transfer fail",t)}}behavior(t){switch(t.signal){case"layout":this.layoutSub.next(t.content);break;case"audio":if("sampleRate"===t.command)this.cloudSampleRate=t.content;else switch(t.command){case"pcm":{const e=function(t,e,r){if(e===r)return t;const n=r/e,o=Math.ceil(t.length*n),a=new Float32Array(o);for(let e=0;e<o;e++){const r=e/n,o=Math.floor(r),i=r-o,u=t[o],s=t[Math.min(o+1,t.length-1)];a[e]=u+(s-u)*i}return a}(Gn(new Int16Array(t.content)),this.cloudSampleRate,this.media.sampleRate);this.media.addAudioQueue({float32:e}),this.media.playAudio();break}case"interrupted":this.media.stopAudio()}break;case"status":"Connected"===Wn(t,"content")&&(this.channelState.cloud=!0,this.channelCheck());break;case"agent":{const e=Wn(t,"content.function_result.response");e&&this.aiiaSubtitleSub.next(e);break}case"asr":if("ASR"===Wn(t,"content.function_type")){const e=Wn(t,"content.function_result.result");e&&this.userSubtitleSub.next(e)}break;default:vr.debug(t.signal)}}channelCheck(){const{proxy:t,cloud:r}=this.channelState;t&&r&&this.media.state===qn.allowed?(this.chat.sendToCloud({request:"audio",command:"sampleRate",content:this.media.sampleRate}),this.media.pcm.pipe(e.takeUntil(this.destorySub)).subscribe(t=>{this.chat.sendToCloud({request:"audio",command:"pcm",content:Hn(t)})}),this.media.startRecord(),vr.debug("Channel, Cloud and Media are ready.")):t&&r&&this.media.state!==qn.allowed&&vr.warn("Media permission didn't get. Please reload page after reset permission or ignore this message.")}onDestory(){this.chat.onDestory(),this.destorySub.next(),this.destorySub.complete()}}exports.MediaManager=Xn,exports.initSdk=function(t){if(ke){const e=new Ce(Re({},t));br(e.debug);const r=new Xn,n=new Oi(e,r);return""!==e.worklet_url&&r.init(e.worklet_url),n}throw new Error(ge["環境錯誤(browser)"])};
1
+ "use strict";var t=require("moment"),e=require("rxjs"),r=require("socket.io-client"),n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var i="object"==typeof n&&n&&n.Object===Object&&n,a=i,u="object"==typeof self&&self&&self.Object===Object&&self,s=a||u||Function("return this")(),c=s.Symbol,l=c,h=Object.prototype,f=h.hasOwnProperty,d=h.toString,p=l?l.toStringTag:void 0;var v=function(t){var e=f.call(t,p),r=t[p];try{t[p]=void 0;var n=!0}catch(t){}var o=d.call(t);return n&&(e?t[p]=r:delete t[p]),o},b=Object.prototype.toString;var y=v,g=function(t){return b.call(t)},m=c?c.toStringTag:void 0;var S=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":m&&m in Object(t)?y(t):g(t)};var _=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},w=S,j=_;var O,x=function(t){if(!j(t))return!1;var e=w(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},R=s["__core-js_shared__"],k=(O=/[^.]+$/.exec(R&&R.keys&&R.keys.IE_PROTO||""))?"Symbol(src)_1."+O:"";var C=function(t){return!!k&&k in t},A=Function.prototype.toString;var E=function(t){if(null!=t){try{return A.call(t)}catch(t){}try{return t+""}catch(t){}}return""},D=x,N=C,M=_,T=E,I=/^\[object .+?Constructor\]$/,z=Function.prototype,P=Object.prototype,B=z.toString,F=P.hasOwnProperty,$=RegExp("^"+B.call(F).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var U=function(t){return!(!M(t)||N(t))&&(D(t)?$:I).test(T(t))},V=function(t,e){return null==t?void 0:t[e]};var q=function(t,e){var r=V(t,e);return U(r)?r:void 0},Q=q,L=function(){try{var t=Q(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),W=L;var G=function(t,e,r){"__proto__"==e&&W?W(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};var K=function(t,e){return t===e||t!=t&&e!=e},H=G,J=K,X=Object.prototype.hasOwnProperty;var Y=function(t,e,r){var n=t[e];X.call(t,e)&&J(n,r)&&(void 0!==r||e in t)||H(t,e,r)},Z=Y,tt=G;var et=function(t,e,r,n){var o=!r;r||(r={});for(var i=-1,a=e.length;++i<a;){var u=e[i],s=n?n(r[u],t[u],u,r,t):void 0;void 0===s&&(s=t[u]),o?tt(r,u,s):Z(r,u,s)}return r};var rt=function(t){return t};var nt=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)},ot=Math.max;var it=function(t,e,r){return e=ot(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=ot(n.length-e,0),a=Array(i);++o<i;)a[o]=n[e+o];o=-1;for(var u=Array(e+1);++o<e;)u[o]=n[o];return u[e]=r(a),nt(t,this,u)}};var at=function(t){return function(){return t}},ut=L,st=ut?function(t,e){return ut(t,"toString",{configurable:!0,enumerable:!1,value:at(e),writable:!0})}:rt,ct=Date.now;var lt=function(t){var e=0,r=0;return function(){var n=ct(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(st),ht=rt,ft=it,dt=lt;var pt=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},vt=x,bt=pt;var yt=function(t){return null!=t&&bt(t.length)&&!vt(t)},gt=/^(?:0|[1-9]\d*)$/;var mt=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&gt.test(t))&&t>-1&&t%1==0&&t<e},St=K,_t=yt,wt=mt,jt=_;var Ot=function(t,e){return dt(ft(t,e,ht),t+"")},xt=function(t,e,r){if(!jt(r))return!1;var n=typeof e;return!!("number"==n?_t(r)&&wt(e,r.length):"string"==n&&e in r)&&St(r[e],t)};var Rt=function(t){return Ot(function(e,r){var n=-1,o=r.length,i=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&xt(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),e=Object(e);++n<o;){var u=r[n];u&&t(e,u,n,i)}return e})},kt=Object.prototype;var Ct=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||kt)};var At=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var Et=function(t){return null!=t&&"object"==typeof t},Dt=S,Nt=Et;var Mt=function(t){return Nt(t)&&"[object Arguments]"==Dt(t)},Tt=Et,It=Object.prototype,zt=It.hasOwnProperty,Pt=It.propertyIsEnumerable,Bt=Mt(function(){return arguments}())?Mt:function(t){return Tt(t)&&zt.call(t,"callee")&&!Pt.call(t,"callee")},Ft=Array.isArray,$t=o(Ft),Ut={exports:{}};var Vt=function(){return!1};!function(t,e){var r=s,n=Vt,o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o?r.Buffer:void 0,u=(a?a.isBuffer:void 0)||n;t.exports=u}(Ut,Ut.exports);var qt=Ut.exports,Qt=S,Lt=pt,Wt=Et,Gt={};Gt["[object Float32Array]"]=Gt["[object Float64Array]"]=Gt["[object Int8Array]"]=Gt["[object Int16Array]"]=Gt["[object Int32Array]"]=Gt["[object Uint8Array]"]=Gt["[object Uint8ClampedArray]"]=Gt["[object Uint16Array]"]=Gt["[object Uint32Array]"]=!0,Gt["[object Arguments]"]=Gt["[object Array]"]=Gt["[object ArrayBuffer]"]=Gt["[object Boolean]"]=Gt["[object DataView]"]=Gt["[object Date]"]=Gt["[object Error]"]=Gt["[object Function]"]=Gt["[object Map]"]=Gt["[object Number]"]=Gt["[object Object]"]=Gt["[object RegExp]"]=Gt["[object Set]"]=Gt["[object String]"]=Gt["[object WeakMap]"]=!1;var Kt=function(t){return Wt(t)&&Lt(t.length)&&!!Gt[Qt(t)]};var Ht=function(t){return function(e){return t(e)}},Jt={exports:{}};!function(t,e){var r=i,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,a=o&&o.exports===n&&r.process,u=function(){try{var t=o&&o.require&&o.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=u}(Jt,Jt.exports);var Xt=Jt.exports,Yt=Kt,Zt=Ht,te=Xt&&Xt.isTypedArray,ee=te?Zt(te):Yt,re=At,ne=Bt,oe=Ft,ie=qt,ae=mt,ue=ee,se=Object.prototype.hasOwnProperty;var ce=function(t,e){var r=oe(t),n=!r&&ne(t),o=!r&&!n&&ie(t),i=!r&&!n&&!o&&ue(t),a=r||n||o||i,u=a?re(t.length,String):[],s=u.length;for(var c in t)!e&&!se.call(t,c)||a&&("length"==c||o&&("offset"==c||"parent"==c)||i&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||ae(c,s))||u.push(c);return u};var le=function(t,e){return function(r){return t(e(r))}}(Object.keys,Object),he=Ct,fe=le,de=Object.prototype.hasOwnProperty;var pe=ce,ve=function(t){if(!he(t))return fe(t);var e=[];for(var r in Object(t))de.call(t,r)&&"constructor"!=r&&e.push(r);return e},be=yt;var ye=function(t){return be(t)?pe(t):ve(t)},ge=Y,me=et,Se=Rt,_e=yt,we=Ct,je=ye,Oe=Object.prototype.hasOwnProperty,xe=o(Se(function(t,e){if(we(e)||_e(e))me(e,je(e),t);else for(var r in e)Oe.call(e,r)&&ge(t,r,e[r])})),Re=S,ke=Et;var Ce=function(t){return"symbol"==typeof t||ke(t)&&"[object Symbol]"==Re(t)},Ae=Ft,Ee=Ce,De=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ne=/^\w*$/;var Me=function(t,e){if(Ae(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!Ee(t))||(Ne.test(t)||!De.test(t)||null!=e&&t in Object(e))},Te=q(Object,"create"),Ie=Te;var ze=function(){this.__data__=Ie?Ie(null):{},this.size=0};var Pe=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Be=Te,Fe=Object.prototype.hasOwnProperty;var $e=function(t){var e=this.__data__;if(Be){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return Fe.call(e,t)?e[t]:void 0},Ue=Te,Ve=Object.prototype.hasOwnProperty;var qe=Te;var Qe=ze,Le=Pe,We=$e,Ge=function(t){var e=this.__data__;return Ue?void 0!==e[t]:Ve.call(e,t)},Ke=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=qe&&void 0===e?"__lodash_hash_undefined__":e,this};function He(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}He.prototype.clear=Qe,He.prototype.delete=Le,He.prototype.get=We,He.prototype.has=Ge,He.prototype.set=Ke;var Je=He;var Xe=function(){this.__data__=[],this.size=0},Ye=K;var Ze=function(t,e){for(var r=t.length;r--;)if(Ye(t[r][0],e))return r;return-1},tr=Ze,er=Array.prototype.splice;var rr=Ze;var nr=Ze;var or=Ze;var ir=Xe,ar=function(t){var e=this.__data__,r=tr(e,t);return!(r<0)&&(r==e.length-1?e.pop():er.call(e,r,1),--this.size,!0)},ur=function(t){var e=this.__data__,r=rr(e,t);return r<0?void 0:e[r][1]},sr=function(t){return nr(this.__data__,t)>-1},cr=function(t,e){var r=this.__data__,n=or(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function lr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}lr.prototype.clear=ir,lr.prototype.delete=ar,lr.prototype.get=ur,lr.prototype.has=sr,lr.prototype.set=cr;var hr=lr,fr=q(s,"Map"),dr=Je,pr=hr,vr=fr;var br=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var yr=function(t,e){var r=t.__data__;return br(e)?r["string"==typeof e?"string":"hash"]:r.map},gr=yr;var mr=yr;var Sr=yr;var _r=yr;var wr=function(){this.size=0,this.__data__={hash:new dr,map:new(vr||pr),string:new dr}},jr=function(t){var e=gr(this,t).delete(t);return this.size-=e?1:0,e},Or=function(t){return mr(this,t).get(t)},xr=function(t){return Sr(this,t).has(t)},Rr=function(t,e){var r=_r(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function kr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}kr.prototype.clear=wr,kr.prototype.delete=jr,kr.prototype.get=Or,kr.prototype.has=xr,kr.prototype.set=Rr;var Cr=kr,Ar=Cr;function Er(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a)||i,a};return r.cache=new(Er.Cache||Ar),r}Er.Cache=Ar;var Dr=Er;var Nr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mr=/\\(\\)?/g,Tr=function(t){var e=Dr(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Nr,function(t,r,n,o){e.push(n?o.replace(Mr,"$1"):r||t)}),e});var Ir=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},zr=Ir,Pr=Ft,Br=Ce,Fr=c?c.prototype:void 0,$r=Fr?Fr.toString:void 0;var Ur=function t(e){if("string"==typeof e)return e;if(Pr(e))return zr(e,t)+"";if(Br(e))return $r?$r.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r},Vr=Ur;var qr=Ft,Qr=Me,Lr=Tr,Wr=function(t){return null==t?"":Vr(t)};var Gr=function(t,e){return qr(t)?t:Qr(t,e)?[t]:Lr(Wr(t))},Kr=Ce;var Hr=function(t){if("string"==typeof t||Kr(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},Jr=Gr,Xr=Hr;var Yr=function(t,e){for(var r=0,n=(e=Jr(e,t)).length;null!=t&&r<n;)t=t[Xr(e[r++])];return r&&r==n?t:void 0},Zr=Yr;var tn,en=function(t,e,r){var n=null==t?void 0:Zr(t,e);return void 0===n?r:n},rn=o(en);!function(t){t["網絡錯誤"]="ERROR CODE: 500",t["環境錯誤(browser)"]="ERROR CODE: 1001",t["Worklet模組載入失敗"]="ERROR CODE: 1002",t["未獲得媒體裝置權限"]="ERROR CODE: 1003",t["實例已摧毀"]="ERROR CODE: 1004",t["環境錯誤(nodejs)"]="ERROR CODE: 2001",t["未提供憑證"]="ERROR CODE: 2002",t["獲取權杖失敗"]="ERROR CODE: 2003",t["沒有可用專案"]="ERROR CODE: 2004",t["重複初始化"]="ERROR CODE: 2005"}(tn||(tn={}));const nn="undefined"!=typeof window;"undefined"!=typeof process&&null!=process.versions&&process.versions.node;class on{config;get webserver(){return this.config.webserver}get environment(){return this.config.env}get license(){return this.config.license??""}get port(){return function(t,e){const r=e??NaN;if(t){const e=parseInt(t);return isNaN(e)?r:e}return r}(process.env.PORT,this.config.port??3e3)}get ws_url(){return this.config.ws_url??""}get worklet_url(){return this.config.worklet_url??""}get project(){const{project:t}=xe({},this.config);return void 0===t?{specific:!1}:"string"==typeof t?{name:t,id:t,specific:!1}:xe({},t,{specific:!0})}get endPoint(){return this.environment,{api:"https://aiia-content-management-dev-21193779403.asia-east1.run.app",socket:"wss://graphen-agentic-workflow-dev-21193779403.asia-east1.run.app"}}get debug(){return this.config.debug??!0}get mediaStream(){return this.config.mediaStream}get chunkTimeInSeconds(){return"number"==typeof this.config.chunkTimeInSeconds&&this.config.chunkTimeInSeconds>0?this.config.chunkTimeInSeconds:1}get llmSampleRate(){return"number"==typeof this.config.llmSampleRate&&this.config.llmSampleRate>0?this.config.llmSampleRate:16e3}constructor(t){this.config=t}}var an=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t};var un=function(t){return function(e,r,n){for(var o=-1,i=Object(e),a=n(e),u=a.length;u--;){var s=a[t?u:++o];if(!1===r(i[s],s,i))break}return e}}(),sn=ye;var cn=yt;var ln=function(t,e){return function(r,n){if(null==r)return r;if(!cn(r))return t(r,n);for(var o=r.length,i=e?o:-1,a=Object(r);(e?i--:++i<o)&&!1!==n(a[i],i,a););return r}}(function(t,e){return t&&un(t,e,sn)}),hn=rt;var fn=an,dn=ln,pn=function(t){return"function"==typeof t?t:hn},vn=Ft;var bn,yn=o(function(t,e){return(vn(t)?fn:dn)(t,pn(e))});!function(t){t["通道、雲端服務、麥克風都已就緒"]="CODE: 1000",t["未取得媒體裝置權限,請重新設定或忽略此訊息"]="CODE: 1001",t["請訂閱專案列表"]="CODE: 1002",t["初始化必要依賴"]="CODE: 1010",t["指定依賴已完成"]="CODE: 1011",t["啟動SDK"]="CODE: 1012",t["結束SDK"]="CODE: 1013",t["安全的關閉連線"]="CODE: 2000",t["無副作用的關閉連線"]="CODE: 2001",t["與雲端的服務中斷"]="CODE: 2002",t["沒有授權,請聯繫Graphen"]="CODE: 2003",t["自動重新連線連端服務"]="CODE: 2004",t["未預期的斷線,請聯繫Graphen"]="CODE: 2005",t["開始初始化必要模組"]="CODE: 2010",t["指定模組初始化完成"]="CODE: 2011",t["啟動服務"]="CODE: 2012",t["服務結束"]="CODE: 2013"}(bn||(bn={}));const gn={code:console.log,debug:console.log,info:console.log,warn:console.warn,error:console.error,fatal:console.error},mn=[];const Sn=new Proxy(gn,{get(e,r,n){if("string"==typeof r)switch(r){case"debug":case"info":case"error":case"warn":case"fatal":case"code":return(...n)=>{const o=t().format("yyyy-MM-DD[T]HH:mm:ss");yn(mn,t=>{t.next(r,o,...n)}),e[r](`[Aiia::${r}_${o}_]`,...n)};default:return}},set:(t,e,r,n)=>!0});var _n,wn;function jn(t,e,r){return Math.max(r,Math.min(t,e))}function On(t){const e=new DataView(t.buffer),r=[];for(let n=0;n<t.length;n++){const t=e.getInt16(2*n,!0)/32768;r.push(t)}return new Float32Array(r)}function xn(t){const e=new DataView(t.buffer),r=[];for(let n=0;n<t.length;n++){const t=jn(32768*e.getFloat32(4*n,!0),32767,-32768);r.push(t)}return r}!function(t){t[t.unknow=0]="unknow",t[t.allowed=1]="allowed",t[t.rejected=2]="rejected"}(_n||(_n={}));class Rn{audioContext;type="audio";currentNode;bufferQueue;gainNode;set volume(t){t<0&&(t=0),t>100&&(t=100),this.gainNode.gain.value=t/100}get volume(){return Math.round(100*this.gainNode.gain.value)}constructor(t){this.audioContext=t,this.bufferQueue=[],this.currentNode=null,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}addBuffer(t){this.bufferQueue.push(t)}addBufferByFloat32(t,e=1){const r=t.length,n=this.audioContext.sampleRate,o=this.audioContext.createBuffer(e,r,n),i=t.slice();for(let t=0;t<e;t++)o.copyToChannel(i,t);this.addBuffer(o)}addBufferByInt16(t,e=1){this.addBufferByFloat32(On(t),e)}startSpeech(){null===this.currentNode&&this.continue()}pauseSpeech(){this.audioContext.suspend().catch(t=>{Sn.error("pause speech fail",t)})}resumeSpeech(){this.audioContext.resume().catch(t=>{Sn.error("resume speech fail",t)})}nextSpeech(){this.bufferQueue.length>0&&(this.clearNode(),this.continue())}stopSpeech(){this.bufferQueue=[],this.clearNode()}clearNode(){this.currentNode&&(this.currentNode.onended=function(){},this.currentNode.stop(),this.currentNode.disconnect(),this.currentNode=null)}continue(){const t=this.bufferQueue.shift();if(t){this.currentNode=this.audioContext.createBufferSource(),this.currentNode.buffer=t,this.currentNode.connect(this.gainNode);const e=this.continue.bind(this);this.currentNode.onended=e,this.currentNode.start()}else this.clearNode()}}class kn{stream;audioContext;type="vad";workletNode;source;isRecording=!1;outputSampleRate;chunkTimeInSeconds;pcmSub;get pcm(){return this.pcmSub.asObservable()}constructor(t,r,n){this.stream=t,this.audioContext=r;const{outputSampleRate:o,chunkTimeInSeconds:i}=xe({outputSampleRate:16e3,chunkTimeInSeconds:1},n);this.outputSampleRate=o,this.chunkTimeInSeconds=i,this.pcmSub=new e.Subject}async startRecord(){this.isRecording||(this.source=this.audioContext.createMediaStreamSource(this.stream),this.workletNode=new AudioWorkletNode(this.audioContext,"aiia-vad",{processorOptions:{outputSampleRate:this.outputSampleRate,chunkTimeInSeconds:this.chunkTimeInSeconds}}),this.source.connect(this.workletNode),this.workletNode.port.onmessage=t=>{const{float32:e}=t.data;e&&this.pcmSub.next(new Float32Array(e))},this.isRecording=!0)}stopRecord(){this.isRecording&&(this.workletNode&&(this.workletNode.port.onmessage=null,this.workletNode.disconnect()),this.source&&this.source.disconnect(),this.isRecording=!1)}}!function(t){t[t.padding=0]="padding",t[t.rejected=1]="rejected",t[t.loadfail=2]="loadfail",t[t.allowed=3]="allowed"}(wn||(wn={}));class Cn{stream;_state;stateSub;audioCtx;audioManager;vadManager;destory;pcmSub;get sampleRate(){return this.audioCtx?this.audioCtx.sampleRate:16e3}get pcm(){return this.pcmSub.asObservable()}get state(){return this._state}set state(t){t!==this._state&&(this._state=t,this.stateSub.next(t))}get stateObs(){return this.stateSub.asObservable()}constructor(t){this.stream=t,this.stateSub=new e.Subject,this.pcmSub=new e.Subject,this.destory=new e.Subject,this.state=wn.padding}async init(t,e){const r=this.stream??await async function(t){try{return await navigator.mediaDevices.getUserMedia(t)}catch(t){return null}}({audio:{echoCancellation:!0,noiseSuppression:!0}});if(null===r)throw this.state=wn.rejected,new Error(tn["未獲得媒體裝置權限"]);this.stream=r,this.audioCtx=new AudioContext;try{await this.audioCtx.audioWorklet.addModule(t)}catch(t){throw Sn.fatal(t),this.state=wn.loadfail,new Error(tn["Worklet模組載入失敗"])}this.state=wn.allowed,this.audioManager=new Rn(this.audioCtx),this.vadManager=new kn(r,this.audioCtx,e),this.vadManager.pcm.subscribe(t=>{this.pcmSub.next(t)})}addAudioQueue(t){const e=rn(t,"buffer",void 0),r=rn(t,"float32",void 0),n=rn(t,"int16",void 0),o=rn(t,"numberOfChannels",void 0);e?this.audioManager?.addBuffer(e):r?this.audioManager?.addBufferByFloat32(r,o):n&&this.audioManager?.addBufferByInt16(n,o)}playAudio(){this.audioManager?.startSpeech()}stopAudio(){this.audioManager?.stopSpeech()}startRecord(){this.vadManager?.startRecord()}stopRecord(){this.vadManager?.stopRecord()}setVolume(t){this.audioManager&&(this.audioManager.volume=t)}getVolume(){return this.audioManager?this.audioManager.volume:0}onDestory(){this.audioCtx?.close(),this.destory.next(),this.destory.complete()}}var An=hr;var En=hr,Dn=fr,Nn=Cr;var Mn=hr,Tn=function(){this.__data__=new An,this.size=0},In=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},zn=function(t){return this.__data__.get(t)},Pn=function(t){return this.__data__.has(t)},Bn=function(t,e){var r=this.__data__;if(r instanceof En){var n=r.__data__;if(!Dn||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Nn(n)}return r.set(t,e),this.size=r.size,this};function Fn(t){var e=this.__data__=new Mn(t);this.size=e.size}Fn.prototype.clear=Tn,Fn.prototype.delete=In,Fn.prototype.get=zn,Fn.prototype.has=Pn,Fn.prototype.set=Bn;var $n=Fn;var Un=Cr,Vn=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},qn=function(t){return this.__data__.has(t)};function Qn(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new Un;++e<r;)this.add(t[e])}Qn.prototype.add=Qn.prototype.push=Vn,Qn.prototype.has=qn;var Ln=Qn,Wn=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},Gn=function(t,e){return t.has(e)};var Kn=function(t,e,r,n,o,i){var a=1&r,u=t.length,s=e.length;if(u!=s&&!(a&&s>u))return!1;var c=i.get(t),l=i.get(e);if(c&&l)return c==e&&l==t;var h=-1,f=!0,d=2&r?new Ln:void 0;for(i.set(t,e),i.set(e,t);++h<u;){var p=t[h],v=e[h];if(n)var b=a?n(v,p,h,e,t,i):n(p,v,h,t,e,i);if(void 0!==b){if(b)continue;f=!1;break}if(d){if(!Wn(e,function(t,e){if(!Gn(d,e)&&(p===t||o(p,t,r,n,i)))return d.push(e)})){f=!1;break}}else if(p!==v&&!o(p,v,r,n,i)){f=!1;break}}return i.delete(t),i.delete(e),f};var Hn=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r};var Jn=s.Uint8Array,Xn=K,Yn=Kn,Zn=Hn,to=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},eo=c?c.prototype:void 0,ro=eo?eo.valueOf:void 0;var no=function(t,e,r,n,o,i,a){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new Jn(t),new Jn(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Xn(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var u=Zn;case"[object Set]":var s=1&n;if(u||(u=to),t.size!=e.size&&!s)return!1;var c=a.get(t);if(c)return c==e;n|=2,a.set(t,e);var l=Yn(u(t),u(e),n,o,i,a);return a.delete(t),l;case"[object Symbol]":if(ro)return ro.call(t)==ro.call(e)}return!1};var oo=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},io=oo,ao=Ft;var uo=function(t,e,r){var n=e(t);return ao(t)?n:io(n,r(t))};var so=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var a=t[r];e(a,r,t)&&(i[o++]=a)}return i},co=function(){return[]},lo=Object.prototype.propertyIsEnumerable,ho=Object.getOwnPropertySymbols,fo=uo,po=ho?function(t){return null==t?[]:(t=Object(t),so(ho(t),function(e){return lo.call(t,e)}))}:co,vo=ye;var bo=function(t){return fo(t,vo,po)},yo=Object.prototype.hasOwnProperty;var go=function(t,e,r,n,o,i){var a=1&r,u=bo(t),s=u.length;if(s!=bo(e).length&&!a)return!1;for(var c=s;c--;){var l=u[c];if(!(a?l in e:yo.call(e,l)))return!1}var h=i.get(t),f=i.get(e);if(h&&f)return h==e&&f==t;var d=!0;i.set(t,e),i.set(e,t);for(var p=a;++c<s;){var v=t[l=u[c]],b=e[l];if(n)var y=a?n(b,v,l,e,t,i):n(v,b,l,t,e,i);if(!(void 0===y?v===b||o(v,b,r,n,i):y)){d=!1;break}p||(p="constructor"==l)}if(d&&!p){var g=t.constructor,m=e.constructor;g==m||!("constructor"in t)||!("constructor"in e)||"function"==typeof g&&g instanceof g&&"function"==typeof m&&m instanceof m||(d=!1)}return i.delete(t),i.delete(e),d},mo=q(s,"DataView"),So=fr,_o=q(s,"Promise"),wo=q(s,"Set"),jo=q(s,"WeakMap"),Oo=S,xo=E,Ro="[object Map]",ko="[object Promise]",Co="[object Set]",Ao="[object WeakMap]",Eo="[object DataView]",Do=xo(mo),No=xo(So),Mo=xo(_o),To=xo(wo),Io=xo(jo),zo=Oo;(mo&&zo(new mo(new ArrayBuffer(1)))!=Eo||So&&zo(new So)!=Ro||_o&&zo(_o.resolve())!=ko||wo&&zo(new wo)!=Co||jo&&zo(new jo)!=Ao)&&(zo=function(t){var e=Oo(t),r="[object Object]"==e?t.constructor:void 0,n=r?xo(r):"";if(n)switch(n){case Do:return Eo;case No:return Ro;case Mo:return ko;case To:return Co;case Io:return Ao}return e});var Po=$n,Bo=Kn,Fo=no,$o=go,Uo=zo,Vo=Ft,qo=qt,Qo=ee,Lo="[object Arguments]",Wo="[object Array]",Go="[object Object]",Ko=Object.prototype.hasOwnProperty;var Ho=function(t,e,r,n,o,i){var a=Vo(t),u=Vo(e),s=a?Wo:Uo(t),c=u?Wo:Uo(e),l=(s=s==Lo?Go:s)==Go,h=(c=c==Lo?Go:c)==Go,f=s==c;if(f&&qo(t)){if(!qo(e))return!1;a=!0,l=!1}if(f&&!l)return i||(i=new Po),a||Qo(t)?Bo(t,e,r,n,o,i):Fo(t,e,s,r,n,o,i);if(!(1&r)){var d=l&&Ko.call(t,"__wrapped__"),p=h&&Ko.call(e,"__wrapped__");if(d||p){var v=d?t.value():t,b=p?e.value():e;return i||(i=new Po),o(v,b,r,n,i)}}return!!f&&(i||(i=new Po),$o(t,e,r,n,o,i))},Jo=Et;var Xo=function t(e,r,n,o,i){return e===r||(null==e||null==r||!Jo(e)&&!Jo(r)?e!=e&&r!=r:Ho(e,r,n,o,t,i))},Yo=$n,Zo=Xo;var ti=_;var ei=function(t){return t==t&&!ti(t)},ri=ei,ni=ye;var oi=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}},ii=function(t,e,r,n){var o=r.length,i=o,a=!n;if(null==t)return!i;for(t=Object(t);o--;){var u=r[o];if(a&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++o<i;){var s=(u=r[o])[0],c=t[s],l=u[1];if(a&&u[2]){if(void 0===c&&!(s in t))return!1}else{var h=new Yo;if(n)var f=n(c,l,s,t,e,h);if(!(void 0===f?Zo(l,c,3,n,h):f))return!1}}return!0},ai=function(t){for(var e=ni(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,ri(o)]}return e},ui=oi;var si=Gr,ci=Bt,li=Ft,hi=mt,fi=pt,di=Hr;var pi=function(t,e){return null!=t&&e in Object(t)},vi=function(t,e,r){for(var n=-1,o=(e=si(e,t)).length,i=!1;++n<o;){var a=di(e[n]);if(!(i=null!=t&&r(t,a)))break;t=t[a]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&fi(o)&&hi(a,o)&&(li(t)||ci(t))};var bi=Xo,yi=en,gi=function(t,e){return null!=t&&vi(t,e,pi)},mi=Me,Si=ei,_i=oi,wi=Hr;var ji=Yr;var Oi=function(t){return function(e){return null==e?void 0:e[t]}},xi=function(t){return function(e){return ji(e,t)}},Ri=Me,ki=Hr;var Ci=function(t){var e=ai(t);return 1==e.length&&e[0][2]?ui(e[0][0],e[0][1]):function(r){return r===t||ii(r,t,e)}},Ai=function(t,e){return mi(t)&&Si(e)?_i(wi(t),e):function(r){var n=yi(r,t);return void 0===n&&n===e?gi(r,t):bi(e,n,3)}},Ei=rt,Di=Ft,Ni=function(t){return Ri(t)?Oi(ki(t)):xi(t)};var Mi=function(t){return"function"==typeof t?t:null==t?Ei:"object"==typeof t?Di(t)?Ai(t[0],t[1]):Ci(t):Ni(t)},Ti=ln,Ii=yt;var zi=Ir,Pi=Mi,Bi=function(t,e){var r=-1,n=Ii(t)?Array(t.length):[];return Ti(t,function(t,o,i){n[++r]=e(t,o,i)}),n},Fi=Ft;var $i=o(function(t,e){return(Fi(t)?zi:Bi)(t,Pi(e))}),Ui=Mi,Vi=yt,qi=ye;var Qi=function(t){return function(e,r,n){var o=Object(e);if(!Vi(e)){var i=Ui(r);e=qi(e),r=function(t){return i(o[t],t,o)}}var a=t(e,r,n);return a>-1?o[i?e[a]:a]:void 0}};var Li=/\s/;var Wi=function(t){for(var e=t.length;e--&&Li.test(t.charAt(e)););return e},Gi=/^\s+/;var Ki=function(t){return t?t.slice(0,Wi(t)+1).replace(Gi,""):t},Hi=_,Ji=Ce,Xi=/^[-+]0x[0-9a-f]+$/i,Yi=/^0b[01]+$/i,Zi=/^0o[0-7]+$/i,ta=parseInt;var ea=function(t){if("number"==typeof t)return t;if(Ji(t))return NaN;if(Hi(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Hi(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ki(t);var r=Yi.test(t);return r||Zi.test(t)?ta(t.slice(2),r?2:8):Xi.test(t)?NaN:+t},ra=1/0;var na=function(t){return t?(t=ea(t))===ra||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0};var oa=function(t,e,r,n){for(var o=t.length,i=r+(n?1:-1);n?i--:++i<o;)if(e(t[i],i,t))return i;return-1},ia=Mi,aa=function(t){var e=na(t),r=e%1;return e==e?r?e-r:e:0},ua=Math.max;var sa=o(Qi(function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=null==r?0:aa(r);return o<0&&(o=ua(n+o,0)),oa(t,ia(e),o)})),ca=Ir;var la=function(t,e){return ca(e,function(e){return t[e]})},ha=ye;var fa=o(function(t){return null==t?[]:la(t,ha(t))});class da{socket;messageSub;destorySub;get message(){return this.messageSub.asObservable()}constructor(t){this.destorySub=new e.Subject,this.messageSub=new e.Subject;const{specific:n,id:o}=t.project;this.socket=r.io(t.ws_url,xe({autoConnect:!1},n&&void 0!==o?{query:{uuid:o}}:{}))}start(){const t="list",r="cloud",n="channel";e.fromEvent(this.socket,t).pipe(e.take(1),e.takeUntil(this.destorySub)).subscribe(e=>{this.messageSub.next({event:t,data:e})}),e.fromEvent(this.socket,r).pipe(e.takeUntil(this.destorySub)).subscribe(t=>{this.messageSub.next({event:r,data:t})}),e.fromEvent(this.socket,n).pipe(e.takeUntil(this.destorySub)).subscribe(t=>{this.messageSub.next({event:n,data:t})}),this.socket.connect()}send(t,e){this.socket.emit(t,e)}sendToCloud(t){this.send("cloud",JSON.stringify(t))}onDestory(){this.destorySub.next(),this.destorySub.complete(),this.messageSub.complete(),this.socket.disconnect()}}class pa{config;media;chat;destorySub;projectsSub;layoutSub;aiiaSubtitleSub;userSubtitleSub;cloudSampleRate;channelState;stateSub;isMuteAiia;get state(){return this.stateSub.asObservable()}get layout(){return this.layoutSub.asObservable()}get projects(){return this.projectsSub.asObservable()}get aiiaSubtitle(){return this.aiiaSubtitleSub.asObservable()}get userSubtitle(){return this.userSubtitleSub.asObservable()}set volume(t){this.media.setVolume(t)}get volume(){return this.media.getVolume()}constructor(t,r){this.config=t,this.media=r,this.layoutSub=new e.Subject,this.projectsSub=new e.ReplaySubject(1),this.destorySub=new e.Subject,this.aiiaSubtitleSub=new e.Subject,this.userSubtitleSub=new e.Subject,this.stateSub=new e.ReplaySubject(1),this.cloudSampleRate={input:16e3,output:16e3},this.channelState={proxy:!1,cloud:!1},this.isMuteAiia=!1,this.chat=new da(t),Sn.code(bn["指定依賴已完成"],"chat"),this.close=this.onDestory,this.stateSub.next("NotStart")}start(){this.media.stateObs.pipe(e.takeUntil(this.destorySub)).subscribe(()=>{this.channelCheck()}),this.chat.message.pipe(e.takeUntil(this.destorySub)).subscribe(({event:t,data:e})=>{switch(t){case"cloud":this.cloudToObj(e);break;case"list":{const{id:t,name:r,specific:n}=this.config.project;let o=null;if(n&&void 0!==t)o=t;else{const n=sa(e,e=>e.name===r||e.id===t);n&&(o=n.id)}null!==o?this.chooseProject(o):(this.projectsSub.next(e),Sn.code(bn["請訂閱專案列表"]));break}case"channel":switch(e){case"open":this.channelState.proxy=!0,this.channelCheck();break;case"close":this.channelState.proxy=!1,this.media.stopRecord(),this.stateSub.next("CloseService");break;case"no_permissions":this.channelState.proxy=!1,this.stateSub.next("NoPermissions");break;case"reconnect":this.channelState.proxy=!1,this.stateSub.next("ReconnectingCloud")}}}),this.chat.start(),this.stateSub.next("ConnectingCloud"),Sn.code(bn["啟動SDK"])}close;resetSession(){this.chat.sendToCloud({request:"reset"}),this.aiiaSubtitleSub.next(""),this.userSubtitleSub.next(""),this.media.stopAudio(),this.layoutSub.next({type:"resetLayout"})}chooseProject(t){this.chat.send("uuid",t)}mute(){this.isMuteAiia=!0,this.media.stopAudio(),this.media.stopRecord()}unmute(){this.isMuteAiia=!1,this.media.startRecord()}cloudToObj(t){try{const e=JSON.parse(t);void 0!==rn(e,"signal")?this.behavior(e):$t(e)?$i(e,this.behavior):$i(fa(e),this.behavior)}catch(t){Sn.error("message transfer fail",t)}}behavior(t){switch(t.signal){case"layout":this.layoutSub.next(t.content);break;case"audio":if("sampleRate"===t.command)this.cloudSampleRate.output=t.content;else switch(t.command){case"pcm":if(!this.isMuteAiia){const e=function(t,e,r){if(e===r)return t;const n=r/e,o=Math.ceil(t.length*n),i=new Float32Array(o);for(let e=0;e<o;e++){const r=e/n,o=Math.floor(r),a=r-o,u=t[o],s=t[Math.min(o+1,t.length-1)];i[e]=u+(s-u)*a}return i}(On(new Int16Array(t.content)),this.cloudSampleRate.output,this.media.sampleRate);this.media.addAudioQueue({float32:e}),this.media.playAudio()}break;case"interrupted":this.media.stopAudio(),this.aiiaSubtitleSub.next("")}break;case"status":"Connected"===rn(t,"content")&&(this.channelState.cloud=!0,this.channelCheck(),this.layoutSub.next({type:"resetLayout"}));break;case"agent":if(!this.isMuteAiia){const e=rn(t,"content.function_result.response");e&&this.aiiaSubtitleSub.next(e)}break;case"asr":if(!this.isMuteAiia&&"ASR"===rn(t,"content.function_type")){const e=rn(t,"content.function_result.result");e&&this.userSubtitleSub.next(e)}break;default:Sn.debug(t.signal)}}channelCheck(){const{proxy:t,cloud:r}=this.channelState;t&&r&&this.media.state===wn.allowed?(this.chat.sendToCloud({request:"audio",command:"sampleRate",content:this.cloudSampleRate.input}),this.media.pcm.pipe(e.takeUntil(this.destorySub)).subscribe(t=>{this.chat.sendToCloud({request:"audio",command:"pcm",content:xn(t)})}),this.media.startRecord(),this.stateSub.next("InService"),Sn.code(bn["通道、雲端服務、麥克風都已就緒"])):t&&r&&this.media.state!==wn.allowed&&(this.stateSub.next("InServiceNoMedia"),Sn.code(bn["未取得媒體裝置權限,請重新設定或忽略此訊息"]))}onDestory(){this.chat.onDestory(),this.media.onDestory(),this.destorySub.next(),this.destorySub.complete(),this.stateSub.next("Destory"),this.stateSub.complete(),Sn.code(bn["結束SDK"])}}exports.initSdk=function(t){if(nn){!function(t){const{info:e,error:r,warn:n,debug:o,fatal:i,code:a}=function(t){if(void 0===t||"all"===t)return{code:!0,error:!0,warn:!0,info:!0,debug:!0,fatal:!0};if("none"===t)return{error:!1,code:!1,warn:!1,info:!1,debug:!1,fatal:!1};if("boolean"==typeof t)return{code:t,error:t,warn:t,info:t,debug:t,fatal:t};{const e=new Set(t);return{code:e.has("code"),debug:e.has("debug"),fatal:e.has("fatal"),error:e.has("error"),warn:e.has("warn"),info:e.has("info")}}}(t);a||(gn.code=()=>{}),o||(gn.debug=()=>{}),e||(gn.info=()=>{}),n||(gn.warn=()=>{}),r||(gn.error=()=>{}),i||(gn.fatal=()=>{})}(rn(t,"debug",!0)),Sn.code(bn["初始化必要依賴"]);const e=new on(xe({},t));Sn.code(bn["指定依賴已完成"],"config");const r=new Cn(e.mediaStream);Sn.code(bn["指定依賴已完成"],"config");const n=new pa(e,r);return Sn.code(bn["指定依賴已完成"],"sdk"),""!==e.worklet_url&&r.init(e.worklet_url,{chunkTimeInSeconds:e.chunkTimeInSeconds,outputSampleRate:e.llmSampleRate}),n}throw new Error(tn["環境錯誤(browser)"])};
package/dist/browser.d.ts CHANGED
@@ -1,16 +1,12 @@
1
1
  import { Http2SecureServer } from 'http2';
2
2
  import { Http2Server } from 'http2';
3
- import { Http2ServerRequest } from 'http2';
4
- import { Http2ServerResponse } from 'http2';
5
- import { IncomingMessage } from 'http';
6
3
  import { Observable } from 'rxjs';
7
4
  import { Server } from 'http';
8
5
  import { Server as Server_2 } from 'https';
9
- import { ServerResponse } from 'http';
10
6
 
11
7
  declare class AiiaConfig {
12
8
  private config;
13
- get webserver(): Server<IncomingMessage, ServerResponse> | Server_2<IncomingMessage, ServerResponse> | Http2SecureServer<IncomingMessage, ServerResponse, Http2ServerRequest, Http2ServerResponse> | Http2Server<IncomingMessage, ServerResponse, Http2ServerRequest, Http2ServerResponse> | undefined;
9
+ get webserver(): (Server<any, any> | Server_2<any, any> | Http2SecureServer<any, any, any, any> | Http2Server<any, any, any, any>) | undefined;
14
10
  get environment(): "developement" | "production" | undefined;
15
11
  get license(): string;
16
12
  get port(): number;
@@ -23,7 +19,10 @@ declare class AiiaConfig {
23
19
  api: string;
24
20
  socket: string;
25
21
  };
26
- get debug(): boolean | "all" | "none" | ("info" | "error" | "warn" | "debug" | "fatal")[];
22
+ get debug(): boolean | "all" | "none" | LoggerLevel[];
23
+ get mediaStream(): MediaStream | undefined;
24
+ get chunkTimeInSeconds(): number;
25
+ get llmSampleRate(): number;
27
26
  constructor(config: InitOptions);
28
27
  }
29
28
 
@@ -33,7 +32,7 @@ export declare interface AiiaProjectItem {
33
32
  }
34
33
 
35
34
  declare class AiiaSdk {
36
- config: AiiaConfig;
35
+ private config;
37
36
  private media;
38
37
  private chat;
39
38
  private destorySub;
@@ -43,9 +42,19 @@ declare class AiiaSdk {
43
42
  private userSubtitleSub;
44
43
  private cloudSampleRate;
45
44
  private channelState;
45
+ private stateSub;
46
+ private isMuteAiia;
47
+ /**
48
+ * [zh]
49
+ * 服務的狀態
50
+ *
51
+ * [en]
52
+ * state of service
53
+ */
54
+ get state(): Observable<AiiaState>;
46
55
  /**
47
56
  * [zh]
48
- * 控制畫面 Layout
57
+ * 控制組件
49
58
  *
50
59
  * [en]
51
60
  * Control Layout
@@ -64,6 +73,8 @@ declare class AiiaSdk {
64
73
  } | {
65
74
  type: "unmount";
66
75
  id: LayoutID;
76
+ } | {
77
+ type: "resetLayout";
67
78
  }>;
68
79
  /**
69
80
  * [zh]
@@ -105,23 +116,77 @@ declare class AiiaSdk {
105
116
  set volume(val: number);
106
117
  get volume(): number;
107
118
  constructor(config: AiiaConfig, media: MediaManager);
119
+ /**
120
+ * [zh]
121
+ * 啟動完整服務
122
+ *
123
+ * [en]
124
+ * Start the full service
125
+ */
108
126
  start(): void;
127
+ /**
128
+ * Alias for `onDestory`.
129
+ *
130
+ * [zh]
131
+ * 停止所有服務,釋放資源
132
+ *
133
+ * [en]
134
+ * Stop all services to release resources
135
+ */
136
+ close: () => void;
137
+ /**
138
+ * [zh]
139
+ * 重置當前對話,清除播放中的語音
140
+ *
141
+ * [en]
142
+ * Reset the current conversation and clear the playing voice.
143
+ */
144
+ resetSession(): void;
109
145
  /**
110
146
  * [zh]
111
147
  * 若沒有明確指定 Project 時,請呼叫此方法
112
148
  *
113
149
  * [en]
114
- * If no Project is explicitly specified, please execute this method
150
+ * If no Project is explicitly specified, please execute this method.
115
151
  * @param project_id
116
152
  */
117
- chooseProject(project_id: string): void;
153
+ chooseProject(project_id: AiiaProjectItem["id"]): void;
154
+ /**
155
+ * [zh]
156
+ * 不同於`this.volume = 0`的調整輸出音量
157
+ *
158
+ * 此方法會暫停麥克風輸入及清除所有音訊資料
159
+ *
160
+ * [en]
161
+ * Unlike `this.volume = 0` which adjusts the output volume,
162
+ *
163
+ * This method will pause mic record and clear all audio data
164
+ */
165
+ mute(): void;
166
+ /**
167
+ * [zh]
168
+ * 恢復聲音訊號資料
169
+ *
170
+ * [en]
171
+ * Restore audio signal data
172
+ */
173
+ unmute(): void;
118
174
  private cloudToObj;
119
175
  private behavior;
120
176
  private channelCheck;
177
+ /**
178
+ * [zh]
179
+ * 停止所有服務,釋放資源
180
+ *
181
+ * [en]
182
+ * Stop all services to release resources
183
+ */
121
184
  onDestory(): void;
122
185
  }
123
186
 
124
- export declare type BrowserInitOptions = Omit<InitOptions, "webserver" | "port">;
187
+ export declare type AiiaState = "NotStart" | "ConnectingCloud" | "ReconnectingCloud" | "InService" | "InServiceNoMedia" | "NoPermissions" | "CloseService" | "Destory";
188
+
189
+ export declare type BrowserInitOptions = Omit<InitOptions, "webserver" | "port" | "license">;
125
190
 
126
191
  declare interface InitOptions {
127
192
  /**
@@ -155,7 +220,7 @@ declare interface InitOptions {
155
220
  * [en]
156
221
  * Extending "socket.io" to your web server
157
222
  */
158
- webserver?: Server | Server_2 | Http2SecureServer | Http2Server;
223
+ webserver?: Webserver;
159
224
  /**
160
225
  * [zh]
161
226
  * 伺服器 port
@@ -189,14 +254,34 @@ declare interface InitOptions {
189
254
  * [en]
190
255
  * Switch message(info, error, warn) dispaly, default: true
191
256
  */
192
- debug?: boolean | "all" | "none" | ("info" | "error" | "warn" | "debug" | "fatal")[];
257
+ debug?: boolean | "all" | "none" | LoggerLevel[];
258
+ mediaStream?: MediaStream;
259
+ /**
260
+ * [zh]
261
+ * 檢測聲音的區塊大小(秒),預設 1 秒
262
+ *
263
+ * [en]
264
+ * Detecting the chunk size of the sound(unit is second), default 1 second.
265
+ */
266
+ chunkTimeInSeconds?: number;
267
+ /**
268
+ * [zh]
269
+ * 指定音訊輸出的採樣率(提供給LLM分析)。不推薦更動
270
+ *
271
+ * [en]
272
+ * Specify the sampling rate of audio output (provided for LLM analysis). Changing is not recommended.
273
+ */
274
+ llmSampleRate?: number;
193
275
  }
194
276
 
195
277
  export declare function initSdk(options?: BrowserInitOptions): AiiaSdk;
196
278
 
197
279
  declare type LayoutID = string | number;
198
280
 
199
- export declare class MediaManager {
281
+ declare type LoggerLevel = "info" | "error" | "warn" | "debug" | "fatal" | "code";
282
+
283
+ declare class MediaManager {
284
+ stream?: MediaStream | undefined;
200
285
  private _state;
201
286
  private stateSub;
202
287
  private audioCtx?;
@@ -209,8 +294,11 @@ export declare class MediaManager {
209
294
  get state(): MediaStateEnum;
210
295
  set state(v: MediaStateEnum);
211
296
  get stateObs(): Observable<MediaStateEnum>;
212
- constructor();
213
- init(workletUrl: string): Promise<void>;
297
+ constructor(stream?: MediaStream | undefined);
298
+ init(workletUrl: string, config?: {
299
+ chunkTimeInSeconds?: number | undefined;
300
+ outputSampleRate?: number | undefined;
301
+ }): Promise<void>;
214
302
  addAudioQueue(input: {
215
303
  buffer: AudioBuffer;
216
304
  } | {
@@ -236,4 +324,6 @@ declare enum MediaStateEnum {
236
324
  allowed = 3
237
325
  }
238
326
 
327
+ declare type Webserver = Server<any, any> | Server_2<any, any> | Http2SecureServer<any, any, any, any> | Http2Server<any, any, any, any>;
328
+
239
329
  export { }
package/dist/browser.mjs CHANGED
@@ -1 +1 @@
1
- import t from"moment";import{Subject as e,fromEvent as r,take as n,takeUntil as o}from"rxjs";import{io as a}from"socket.io-client";var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function u(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var s="object"==typeof i&&i&&i.Object===Object&&i,c=s,l="object"==typeof self&&self&&self.Object===Object&&self,f=c||l||Function("return this")(),h=f.Symbol,d=h,v=Object.prototype,p=v.hasOwnProperty,b=v.toString,g=d?d.toStringTag:void 0;var y=function(t){var e=p.call(t,g),r=t[g];try{t[g]=void 0;var n=!0}catch(t){}var o=b.call(t);return n&&(e?t[g]=r:delete t[g]),o},_=Object.prototype.toString;var m=y,w=function(t){return _.call(t)},j=h?h.toStringTag:void 0;var S=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":j&&j in Object(t)?m(t):w(t)};var O=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},x=S,R=O;var k,C=function(t){if(!R(t))return!1;var e=x(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},A=f["__core-js_shared__"],N=(k=/[^.]+$/.exec(A&&A.keys&&A.keys.IE_PROTO||""))?"Symbol(src)_1."+k:"";var M=function(t){return!!N&&N in t},E=Function.prototype.toString;var D=function(t){if(null!=t){try{return E.call(t)}catch(t){}try{return t+""}catch(t){}}return""},P=C,z=M,B=O,T=D,$=/^\[object .+?Constructor\]$/,F=Function.prototype,I=Object.prototype,V=F.toString,Q=I.hasOwnProperty,U=RegExp("^"+V.call(Q).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var W=function(t){return!(!B(t)||z(t))&&(P(t)?U:$).test(T(t))},q=function(t,e){return null==t?void 0:t[e]};var L=function(t,e){var r=q(t,e);return W(r)?r:void 0},G=L,H=function(){try{var t=G(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),J=H;var K=function(t,e,r){"__proto__"==e&&J?J(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};var X=function(t,e){return t===e||t!=t&&e!=e},Y=K,Z=X,tt=Object.prototype.hasOwnProperty;var et=function(t,e,r){var n=t[e];tt.call(t,e)&&Z(n,r)&&(void 0!==r||e in t)||Y(t,e,r)},rt=et,nt=K;var ot=function(t,e,r,n){var o=!r;r||(r={});for(var a=-1,i=e.length;++a<i;){var u=e[a],s=n?n(r[u],t[u],u,r,t):void 0;void 0===s&&(s=t[u]),o?nt(r,u,s):rt(r,u,s)}return r};var at=function(t){return t};var it=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)},ut=Math.max;var st=function(t,e,r){return e=ut(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,a=ut(n.length-e,0),i=Array(a);++o<a;)i[o]=n[e+o];o=-1;for(var u=Array(e+1);++o<e;)u[o]=n[o];return u[e]=r(i),it(t,this,u)}};var ct=function(t){return function(){return t}},lt=H,ft=lt?function(t,e){return lt(t,"toString",{configurable:!0,enumerable:!1,value:ct(e),writable:!0})}:at,ht=Date.now;var dt=function(t){var e=0,r=0;return function(){var n=ht(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(ft),vt=at,pt=st,bt=dt;var gt=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},yt=C,_t=gt;var mt=function(t){return null!=t&&_t(t.length)&&!yt(t)},wt=/^(?:0|[1-9]\d*)$/;var jt=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&wt.test(t))&&t>-1&&t%1==0&&t<e},St=X,Ot=mt,xt=jt,Rt=O;var kt=function(t,e){return bt(pt(t,e,vt),t+"")},Ct=function(t,e,r){if(!Rt(r))return!1;var n=typeof e;return!!("number"==n?Ot(r)&&xt(e,r.length):"string"==n&&e in r)&&St(r[e],t)};var At=function(t){return kt(function(e,r){var n=-1,o=r.length,a=o>1?r[o-1]:void 0,i=o>2?r[2]:void 0;for(a=t.length>3&&"function"==typeof a?(o--,a):void 0,i&&Ct(r[0],r[1],i)&&(a=o<3?void 0:a,o=1),e=Object(e);++n<o;){var u=r[n];u&&t(e,u,n,a)}return e})},Nt=Object.prototype;var Mt=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Nt)};var Et=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var Dt=function(t){return null!=t&&"object"==typeof t},Pt=S,zt=Dt;var Bt=function(t){return zt(t)&&"[object Arguments]"==Pt(t)},Tt=Dt,$t=Object.prototype,Ft=$t.hasOwnProperty,It=$t.propertyIsEnumerable,Vt=Bt(function(){return arguments}())?Bt:function(t){return Tt(t)&&Ft.call(t,"callee")&&!It.call(t,"callee")},Qt=Array.isArray,Ut=u(Qt),Wt={exports:{}};var qt=function(){return!1};!function(t,e){var r=f,n=qt,o=e&&!e.nodeType&&e,a=o&&t&&!t.nodeType&&t,i=a&&a.exports===o?r.Buffer:void 0,u=(i?i.isBuffer:void 0)||n;t.exports=u}(Wt,Wt.exports);var Lt=Wt.exports,Gt=S,Ht=gt,Jt=Dt,Kt={};Kt["[object Float32Array]"]=Kt["[object Float64Array]"]=Kt["[object Int8Array]"]=Kt["[object Int16Array]"]=Kt["[object Int32Array]"]=Kt["[object Uint8Array]"]=Kt["[object Uint8ClampedArray]"]=Kt["[object Uint16Array]"]=Kt["[object Uint32Array]"]=!0,Kt["[object Arguments]"]=Kt["[object Array]"]=Kt["[object ArrayBuffer]"]=Kt["[object Boolean]"]=Kt["[object DataView]"]=Kt["[object Date]"]=Kt["[object Error]"]=Kt["[object Function]"]=Kt["[object Map]"]=Kt["[object Number]"]=Kt["[object Object]"]=Kt["[object RegExp]"]=Kt["[object Set]"]=Kt["[object String]"]=Kt["[object WeakMap]"]=!1;var Xt=function(t){return Jt(t)&&Ht(t.length)&&!!Kt[Gt(t)]};var Yt=function(t){return function(e){return t(e)}},Zt={exports:{}};!function(t,e){var r=s,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,a=o&&o.exports===n&&r.process,i=function(){try{var t=o&&o.require&&o.require("util").types;return t||a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=i}(Zt,Zt.exports);var te=Zt.exports,ee=Xt,re=Yt,ne=te&&te.isTypedArray,oe=ne?re(ne):ee,ae=Et,ie=Vt,ue=Qt,se=Lt,ce=jt,le=oe,fe=Object.prototype.hasOwnProperty;var he=function(t,e){var r=ue(t),n=!r&&ie(t),o=!r&&!n&&se(t),a=!r&&!n&&!o&&le(t),i=r||n||o||a,u=i?ae(t.length,String):[],s=u.length;for(var c in t)!e&&!fe.call(t,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||ce(c,s))||u.push(c);return u};var de=function(t,e){return function(r){return t(e(r))}}(Object.keys,Object),ve=Mt,pe=de,be=Object.prototype.hasOwnProperty;var ge=he,ye=function(t){if(!ve(t))return pe(t);var e=[];for(var r in Object(t))be.call(t,r)&&"constructor"!=r&&e.push(r);return e},_e=mt;var me,we=function(t){return _e(t)?ge(t):ye(t)},je=et,Se=ot,Oe=At,xe=mt,Re=Mt,ke=we,Ce=Object.prototype.hasOwnProperty,Ae=u(Oe(function(t,e){if(Re(e)||xe(e))Se(e,ke(e),t);else for(var r in e)Ce.call(e,r)&&je(t,r,e[r])}));!function(t){t["網絡錯誤"]="ERROR CODE: 500",t["環境錯誤(browser)"]="ERROR CODE: 1001",t["Worklet模組載入失敗"]="ERROR CODE: 1002",t["未獲得媒體裝置權限"]="ERROR CODE: 1003",t["實例已摧毀"]="ERROR CODE: 1004",t["環境錯誤(nodejs)"]="ERROR CODE: 2001",t["未提供憑證"]="ERROR CODE: 2002",t["獲取權杖失敗"]="ERROR CODE: 2003",t["沒有可用專案"]="ERROR CODE: 2004",t["重複初始化"]="ERROR CODE: 205"}(me||(me={}));const Ne="undefined"!=typeof window;"undefined"!=typeof process&&null!=process.versions&&process.versions.node;class Me{config;get webserver(){return this.config.webserver}get environment(){return this.config.env}get license(){return this.config.license??""}get port(){return function(t,e){const r=e??NaN;if(t){const e=parseInt(t);return isNaN(e)?r:e}return r}(process.env.PORT,this.config.port??3e3)}get ws_url(){return this.config.ws_url??""}get worklet_url(){return this.config.worklet_url??""}get project(){const{project:t}=Ae({},this.config);return void 0===t?{specific:!1}:"string"==typeof t?{name:t,id:t,specific:!1}:Ae({},t,{specific:!0})}get endPoint(){return this.environment,{api:"https://aiia-content-management-dev-21193779403.asia-east1.run.app",socket:"wss://graphen-agentic-workflow-dev-21193779403.asia-east1.run.app"}}get debug(){return this.config.debug??!0}constructor(t){this.config=t}}var Ee=function(t,e,r,n){for(var o=t.length,a=r+(n?1:-1);n?a--:++a<o;)if(e(t[a],a,t))return a;return-1};var De=Ee,Pe=function(t){return t!=t},ze=function(t,e,r){for(var n=r-1,o=t.length;++n<o;)if(t[n]===e)return n;return-1};var Be=function(t,e,r){return e==e?ze(t,e,r):De(t,Pe,r)},Te=S,$e=Qt,Fe=Dt;var Ie=function(t){return"string"==typeof t||!$e(t)&&Fe(t)&&"[object String]"==Te(t)},Ve=/\s/;var Qe=function(t){for(var e=t.length;e--&&Ve.test(t.charAt(e)););return e},Ue=/^\s+/;var We=S,qe=Dt;var Le=function(t){return"symbol"==typeof t||qe(t)&&"[object Symbol]"==We(t)},Ge=function(t){return t?t.slice(0,Qe(t)+1).replace(Ue,""):t},He=O,Je=Le,Ke=/^[-+]0x[0-9a-f]+$/i,Xe=/^0b[01]+$/i,Ye=/^0o[0-7]+$/i,Ze=parseInt;var tr=function(t){if("number"==typeof t)return t;if(Je(t))return NaN;if(He(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=He(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ge(t);var r=Xe.test(t);return r||Ye.test(t)?Ze(t.slice(2),r?2:8):Ke.test(t)?NaN:+t},er=1/0;var rr=function(t){return t?(t=tr(t))===er||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0};var nr=function(t){var e=rr(t),r=e%1;return e==e?r?e-r:e:0};var or=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},ar=or;var ir=function(t,e){return ar(e,function(e){return t[e]})},ur=we;var sr=function(t){return null==t?[]:ir(t,ur(t))},cr=u(sr),lr=Be,fr=mt,hr=Ie,dr=nr,vr=sr,pr=Math.max;var br=u(function(t,e,r,n){t=fr(t)?t:vr(t),r=r&&!n?dr(r):0;var o=t.length;return r<0&&(r=pr(o+r,0)),hr(t)?r<=o&&t.indexOf(e,r)>-1:!!o&&lr(t,e,r)>-1});const gr={debug:()=>{},info:()=>{},error:()=>{},warn:()=>{},fatal:()=>{}};function yr(){return t().format("yyyy-MM-DD[T]HH:mm:ss")}function _r(t){const{info:e,error:r,warn:n,debug:o,fatal:a}=function(t){return void 0===t||"all"===t?{error:!0,warn:!0,info:!0,debug:!0,fatal:!0}:"none"===t?{error:!1,warn:!1,info:!1,debug:!1,fatal:!1}:"boolean"==typeof t?{error:t,warn:t,info:t,debug:t,fatal:t}:{debug:br(t,"debug"),fatal:br(t,"fatal"),error:br(t,"error"),warn:br(t,"warn"),info:br(t,"info")}}(t);o&&(gr.debug=(...t)=>{const e=yr();console.log(`[Aiia::debug_${e}_]`,...t)}),e&&(gr.info=(...t)=>{const e=yr();console.log(`[Aiia::info_${e}_]`,...t)}),n&&(gr.warn=(...t)=>{const e=yr();console.warn(`[Aiia::warn_${e}_]`,...t)}),r&&(gr.error=(...t)=>{const e=yr();console.error(`[Aiia::error_${e}_]`,...t)}),a&&(gr.fatal=(...t)=>{const e=yr();console.error(`[Aiia::fatal_${e}_]`,...t)})}var mr=Qt,wr=Le,jr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Sr=/^\w*$/;var Or=function(t,e){if(mr(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!wr(t))||(Sr.test(t)||!jr.test(t)||null!=e&&t in Object(e))},xr=L(Object,"create"),Rr=xr;var kr=function(){this.__data__=Rr?Rr(null):{},this.size=0};var Cr=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Ar=xr,Nr=Object.prototype.hasOwnProperty;var Mr=function(t){var e=this.__data__;if(Ar){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return Nr.call(e,t)?e[t]:void 0},Er=xr,Dr=Object.prototype.hasOwnProperty;var Pr=xr;var zr=kr,Br=Cr,Tr=Mr,$r=function(t){var e=this.__data__;return Er?void 0!==e[t]:Dr.call(e,t)},Fr=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Pr&&void 0===e?"__lodash_hash_undefined__":e,this};function Ir(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Ir.prototype.clear=zr,Ir.prototype.delete=Br,Ir.prototype.get=Tr,Ir.prototype.has=$r,Ir.prototype.set=Fr;var Vr=Ir;var Qr=function(){this.__data__=[],this.size=0},Ur=X;var Wr=function(t,e){for(var r=t.length;r--;)if(Ur(t[r][0],e))return r;return-1},qr=Wr,Lr=Array.prototype.splice;var Gr=Wr;var Hr=Wr;var Jr=Wr;var Kr=Qr,Xr=function(t){var e=this.__data__,r=qr(e,t);return!(r<0)&&(r==e.length-1?e.pop():Lr.call(e,r,1),--this.size,!0)},Yr=function(t){var e=this.__data__,r=Gr(e,t);return r<0?void 0:e[r][1]},Zr=function(t){return Hr(this.__data__,t)>-1},tn=function(t,e){var r=this.__data__,n=Jr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function en(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}en.prototype.clear=Kr,en.prototype.delete=Xr,en.prototype.get=Yr,en.prototype.has=Zr,en.prototype.set=tn;var rn=en,nn=L(f,"Map"),on=Vr,an=rn,un=nn;var sn=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var cn=function(t,e){var r=t.__data__;return sn(e)?r["string"==typeof e?"string":"hash"]:r.map},ln=cn;var fn=cn;var hn=cn;var dn=cn;var vn=function(){this.size=0,this.__data__={hash:new on,map:new(un||an),string:new on}},pn=function(t){var e=ln(this,t).delete(t);return this.size-=e?1:0,e},bn=function(t){return fn(this,t).get(t)},gn=function(t){return hn(this,t).has(t)},yn=function(t,e){var r=dn(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function _n(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}_n.prototype.clear=vn,_n.prototype.delete=pn,_n.prototype.get=bn,_n.prototype.has=gn,_n.prototype.set=yn;var mn=_n,wn=mn;function jn(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=t.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(jn.Cache||wn),r}jn.Cache=wn;var Sn=jn;var On=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,xn=/\\(\\)?/g,Rn=function(t){var e=Sn(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(On,function(t,r,n,o){e.push(n?o.replace(xn,"$1"):r||t)}),e}),kn=or,Cn=Qt,An=Le,Nn=h?h.prototype:void 0,Mn=Nn?Nn.toString:void 0;var En=function t(e){if("string"==typeof e)return e;if(Cn(e))return kn(e,t)+"";if(An(e))return Mn?Mn.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r},Dn=En;var Pn=Qt,zn=Or,Bn=Rn,Tn=function(t){return null==t?"":Dn(t)};var $n=function(t,e){return Pn(t)?t:zn(t,e)?[t]:Bn(Tn(t))},Fn=Le;var In=function(t){if("string"==typeof t||Fn(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},Vn=$n,Qn=In;var Un=function(t,e){for(var r=0,n=(e=Vn(e,t)).length;null!=t&&r<n;)t=t[Qn(e[r++])];return r&&r==n?t:void 0},Wn=Un;var qn,Ln,Gn=function(t,e,r){var n=null==t?void 0:Wn(t,e);return void 0===n?r:n},Hn=u(Gn);function Jn(t,e,r){return Math.max(r,Math.min(t,e))}function Kn(t){const e=new DataView(t.buffer),r=[];for(let n=0;n<t.length;n++){const t=e.getInt16(2*n,!0)/32768;r.push(t)}return new Float32Array(r)}function Xn(t){const e=new DataView(t.buffer),r=[];for(let n=0;n<t.length;n++){const t=Jn(32768*e.getFloat32(4*n,!0),32767,-32768);r.push(t)}return r}!function(t){t[t.unknow=0]="unknow",t[t.allowed=1]="allowed",t[t.rejected=2]="rejected"}(qn||(qn={}));class Yn{audioContext;type="audio";currentNode;bufferQueue;gainNode;set volume(t){t<0&&(t=0),t>100&&(t=100),this.gainNode.gain.value=t/100}get volume(){return Math.round(100*this.gainNode.gain.value)}constructor(t){this.audioContext=t,this.bufferQueue=[],this.currentNode=null,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}addBuffer(t){this.bufferQueue.push(t)}addBufferByFloat32(t,e=1){const r=t.length,n=this.audioContext.sampleRate,o=this.audioContext.createBuffer(e,r,n),a=t.slice();for(let t=0;t<e;t++)o.copyToChannel(a,t);this.addBuffer(o)}addBufferByInt16(t,e=1){this.addBufferByFloat32(Kn(t),e)}startSpeech(){null===this.currentNode&&this.continue()}pauseSpeech(){this.audioContext.suspend().catch(t=>{gr.error("pause speech fail",t)})}resumeSpeech(){this.audioContext.resume().catch(t=>{gr.error("resume speech fail",t)})}nextSpeech(){this.bufferQueue.length>0&&(this.clearNode(),this.continue())}stopSpeech(){this.bufferQueue=[],this.clearNode()}clearNode(){this.currentNode&&(this.currentNode.onended=function(){},this.currentNode.stop(),this.currentNode.disconnect(),this.currentNode=null)}continue(){const t=this.bufferQueue.shift();if(t){this.currentNode=this.audioContext.createBufferSource(),this.currentNode.buffer=t,this.currentNode.connect(this.gainNode);const e=this.continue.bind(this);this.currentNode.onended=e,this.currentNode.start()}else this.clearNode()}}class Zn{stream;audioContext;pcmSub;type="vad";workletNode;source;isRecording=!1;constructor(t,e,r){this.stream=t,this.audioContext=e,this.pcmSub=r}async startRecord(){this.isRecording||(this.source=this.audioContext.createMediaStreamSource(this.stream),this.workletNode=new AudioWorkletNode(this.audioContext,"aiia-vad"),this.source.connect(this.workletNode),this.workletNode.port.onmessage=t=>{const{float32:e,energy:r}=t.data;e&&this.pcmSub.next(new Float32Array(e))},this.isRecording=!0)}stopRecord(){this.isRecording&&(this.workletNode&&(this.workletNode.port.onmessage=null,this.workletNode.disconnect()),this.source&&this.source.disconnect(),this.isRecording=!1)}}!function(t){t[t.padding=0]="padding",t[t.rejected=1]="rejected",t[t.loadfail=2]="loadfail",t[t.allowed=3]="allowed"}(Ln||(Ln={}));class to{_state;stateSub;audioCtx;audioManager;vadManager;destory;pcmSub;get sampleRate(){return this.audioCtx?this.audioCtx.sampleRate:16e3}get pcm(){return this.pcmSub.asObservable()}get state(){return this._state}set state(t){t!==this._state&&(this._state=t,this.stateSub.next(t))}get stateObs(){return this.stateSub.asObservable()}constructor(){this.stateSub=new e,this.pcmSub=new e,this.destory=new e,this.state=Ln.padding}async init(t){if(this.destory.closed)throw new Error(me["實例已摧毀"]);const e=await async function(t){try{return await navigator.mediaDevices.getUserMedia(t)}catch(t){return null}}({audio:{echoCancellation:!0,noiseSuppression:!0}});if(null===e)throw this.state=Ln.rejected,new Error(me["未獲得媒體裝置權限"]);this.audioCtx=new AudioContext;try{await this.audioCtx.audioWorklet.addModule(t)}catch(t){throw gr.fatal(t),this.state=Ln.loadfail,new Error(me["Worklet模組載入失敗"])}this.state=Ln.allowed,this.audioManager=new Yn(this.audioCtx),this.vadManager=new Zn(e,this.audioCtx,this.pcmSub)}addAudioQueue(t){const e=Hn(t,"buffer",void 0),r=Hn(t,"float32",void 0),n=Hn(t,"int16",void 0),o=Hn(t,"numberOfChannels",void 0);e?this.audioManager?.addBuffer(e):r?this.audioManager?.addBufferByFloat32(r,o):n&&this.audioManager?.addBufferByInt16(n,o)}playAudio(){this.audioManager?.startSpeech()}stopAudio(){this.audioManager?.stopSpeech()}startRecord(){this.vadManager?.startRecord()}stopRecord(){this.vadManager?.stopRecord()}setVolume(t){this.audioManager&&(this.audioManager.volume=t)}getVolume(){return this.audioManager?this.audioManager.volume:0}onDestory(){this.audioCtx?.close(),this.destory.next(),this.destory.complete()}}var eo=rn;var ro=rn,no=nn,oo=mn;var ao=rn,io=function(){this.__data__=new eo,this.size=0},uo=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},so=function(t){return this.__data__.get(t)},co=function(t){return this.__data__.has(t)},lo=function(t,e){var r=this.__data__;if(r instanceof ro){var n=r.__data__;if(!no||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new oo(n)}return r.set(t,e),this.size=r.size,this};function fo(t){var e=this.__data__=new ao(t);this.size=e.size}fo.prototype.clear=io,fo.prototype.delete=uo,fo.prototype.get=so,fo.prototype.has=co,fo.prototype.set=lo;var ho=fo;var vo=mn,po=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},bo=function(t){return this.__data__.has(t)};function go(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new vo;++e<r;)this.add(t[e])}go.prototype.add=go.prototype.push=po,go.prototype.has=bo;var yo=go,_o=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},mo=function(t,e){return t.has(e)};var wo=function(t,e,r,n,o,a){var i=1&r,u=t.length,s=e.length;if(u!=s&&!(i&&s>u))return!1;var c=a.get(t),l=a.get(e);if(c&&l)return c==e&&l==t;var f=-1,h=!0,d=2&r?new yo:void 0;for(a.set(t,e),a.set(e,t);++f<u;){var v=t[f],p=e[f];if(n)var b=i?n(p,v,f,e,t,a):n(v,p,f,t,e,a);if(void 0!==b){if(b)continue;h=!1;break}if(d){if(!_o(e,function(t,e){if(!mo(d,e)&&(v===t||o(v,t,r,n,a)))return d.push(e)})){h=!1;break}}else if(v!==p&&!o(v,p,r,n,a)){h=!1;break}}return a.delete(t),a.delete(e),h};var jo=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r};var So=f.Uint8Array,Oo=X,xo=wo,Ro=jo,ko=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},Co=h?h.prototype:void 0,Ao=Co?Co.valueOf:void 0;var No=function(t,e,r,n,o,a,i){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!a(new So(t),new So(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Oo(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var u=Ro;case"[object Set]":var s=1&n;if(u||(u=ko),t.size!=e.size&&!s)return!1;var c=i.get(t);if(c)return c==e;n|=2,i.set(t,e);var l=xo(u(t),u(e),n,o,a,i);return i.delete(t),l;case"[object Symbol]":if(Ao)return Ao.call(t)==Ao.call(e)}return!1};var Mo=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},Eo=Mo,Do=Qt;var Po=function(t,e,r){var n=e(t);return Do(t)?n:Eo(n,r(t))};var zo=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,a=[];++r<n;){var i=t[r];e(i,r,t)&&(a[o++]=i)}return a},Bo=function(){return[]},To=Object.prototype.propertyIsEnumerable,$o=Object.getOwnPropertySymbols,Fo=Po,Io=$o?function(t){return null==t?[]:(t=Object(t),zo($o(t),function(e){return To.call(t,e)}))}:Bo,Vo=we;var Qo=function(t){return Fo(t,Vo,Io)},Uo=Object.prototype.hasOwnProperty;var Wo=function(t,e,r,n,o,a){var i=1&r,u=Qo(t),s=u.length;if(s!=Qo(e).length&&!i)return!1;for(var c=s;c--;){var l=u[c];if(!(i?l in e:Uo.call(e,l)))return!1}var f=a.get(t),h=a.get(e);if(f&&h)return f==e&&h==t;var d=!0;a.set(t,e),a.set(e,t);for(var v=i;++c<s;){var p=t[l=u[c]],b=e[l];if(n)var g=i?n(b,p,l,e,t,a):n(p,b,l,t,e,a);if(!(void 0===g?p===b||o(p,b,r,n,a):g)){d=!1;break}v||(v="constructor"==l)}if(d&&!v){var y=t.constructor,_=e.constructor;y==_||!("constructor"in t)||!("constructor"in e)||"function"==typeof y&&y instanceof y&&"function"==typeof _&&_ instanceof _||(d=!1)}return a.delete(t),a.delete(e),d},qo=L(f,"DataView"),Lo=nn,Go=L(f,"Promise"),Ho=L(f,"Set"),Jo=L(f,"WeakMap"),Ko=S,Xo=D,Yo="[object Map]",Zo="[object Promise]",ta="[object Set]",ea="[object WeakMap]",ra="[object DataView]",na=Xo(qo),oa=Xo(Lo),aa=Xo(Go),ia=Xo(Ho),ua=Xo(Jo),sa=Ko;(qo&&sa(new qo(new ArrayBuffer(1)))!=ra||Lo&&sa(new Lo)!=Yo||Go&&sa(Go.resolve())!=Zo||Ho&&sa(new Ho)!=ta||Jo&&sa(new Jo)!=ea)&&(sa=function(t){var e=Ko(t),r="[object Object]"==e?t.constructor:void 0,n=r?Xo(r):"";if(n)switch(n){case na:return ra;case oa:return Yo;case aa:return Zo;case ia:return ta;case ua:return ea}return e});var ca=ho,la=wo,fa=No,ha=Wo,da=sa,va=Qt,pa=Lt,ba=oe,ga="[object Arguments]",ya="[object Array]",_a="[object Object]",ma=Object.prototype.hasOwnProperty;var wa=function(t,e,r,n,o,a){var i=va(t),u=va(e),s=i?ya:da(t),c=u?ya:da(e),l=(s=s==ga?_a:s)==_a,f=(c=c==ga?_a:c)==_a,h=s==c;if(h&&pa(t)){if(!pa(e))return!1;i=!0,l=!1}if(h&&!l)return a||(a=new ca),i||ba(t)?la(t,e,r,n,o,a):fa(t,e,s,r,n,o,a);if(!(1&r)){var d=l&&ma.call(t,"__wrapped__"),v=f&&ma.call(e,"__wrapped__");if(d||v){var p=d?t.value():t,b=v?e.value():e;return a||(a=new ca),o(p,b,r,n,a)}}return!!h&&(a||(a=new ca),ha(t,e,r,n,o,a))},ja=Dt;var Sa=function t(e,r,n,o,a){return e===r||(null==e||null==r||!ja(e)&&!ja(r)?e!=e&&r!=r:wa(e,r,n,o,t,a))},Oa=ho,xa=Sa;var Ra=O;var ka=function(t){return t==t&&!Ra(t)},Ca=ka,Aa=we;var Na=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}},Ma=function(t,e,r,n){var o=r.length,a=o,i=!n;if(null==t)return!a;for(t=Object(t);o--;){var u=r[o];if(i&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++o<a;){var s=(u=r[o])[0],c=t[s],l=u[1];if(i&&u[2]){if(void 0===c&&!(s in t))return!1}else{var f=new Oa;if(n)var h=n(c,l,s,t,e,f);if(!(void 0===h?xa(l,c,3,n,f):h))return!1}}return!0},Ea=function(t){for(var e=Aa(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,Ca(o)]}return e},Da=Na;var Pa=$n,za=Vt,Ba=Qt,Ta=jt,$a=gt,Fa=In;var Ia=function(t,e){return null!=t&&e in Object(t)},Va=function(t,e,r){for(var n=-1,o=(e=Pa(e,t)).length,a=!1;++n<o;){var i=Fa(e[n]);if(!(a=null!=t&&r(t,i)))break;t=t[i]}return a||++n!=o?a:!!(o=null==t?0:t.length)&&$a(o)&&Ta(i,o)&&(Ba(t)||za(t))};var Qa=Sa,Ua=Gn,Wa=function(t,e){return null!=t&&Va(t,e,Ia)},qa=Or,La=ka,Ga=Na,Ha=In;var Ja=Un;var Ka=function(t){return function(e){return null==e?void 0:e[t]}},Xa=function(t){return function(e){return Ja(e,t)}},Ya=Or,Za=In;var ti=function(t){var e=Ea(t);return 1==e.length&&e[0][2]?Da(e[0][0],e[0][1]):function(r){return r===t||Ma(r,t,e)}},ei=function(t,e){return qa(t)&&La(e)?Ga(Ha(t),e):function(r){var n=Ua(r,t);return void 0===n&&n===e?Wa(r,t):Qa(e,n,3)}},ri=at,ni=Qt,oi=function(t){return Ya(t)?Ka(Za(t)):Xa(t)};var ai=function(t){return"function"==typeof t?t:null==t?ri:"object"==typeof t?ni(t)?ei(t[0],t[1]):ti(t):oi(t)};var ii=function(t){return function(e,r,n){for(var o=-1,a=Object(e),i=n(e),u=i.length;u--;){var s=i[t?u:++o];if(!1===r(a[s],s,a))break}return e}}(),ui=we;var si=mt;var ci=function(t,e){return function(r,n){if(null==r)return r;if(!si(r))return t(r,n);for(var o=r.length,a=e?o:-1,i=Object(r);(e?a--:++a<o)&&!1!==n(i[a],a,i););return r}}(function(t,e){return t&&ii(t,e,ui)}),li=mt;var fi=or,hi=ai,di=function(t,e){var r=-1,n=li(t)?Array(t.length):[];return ci(t,function(t,o,a){n[++r]=e(t,o,a)}),n},vi=Qt;var pi=u(function(t,e){return(vi(t)?fi:di)(t,hi(e))}),bi=ai,gi=mt,yi=we;var _i=function(t){return function(e,r,n){var o=Object(e);if(!gi(e)){var a=bi(r);e=yi(e),r=function(t){return a(o[t],t,o)}}var i=t(e,r,n);return i>-1?o[a?e[i]:i]:void 0}},mi=Ee,wi=ai,ji=nr,Si=Math.max;var Oi,xi=u(_i(function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=null==r?0:ji(r);return o<0&&(o=Si(n+o,0)),mi(t,wi(e),o)}));class Ri{socket;messageSub;destorySub;get message(){return this.messageSub.asObservable()}constructor(t){this.destorySub=new e,this.messageSub=new e;const{specific:r,id:n}=t.project;this.socket=a(t.ws_url,Ae({autoConnect:!1},r&&void 0!==n?{query:{uuid:n}}:{}))}start(){const t="list",e="cloud",a="channel";r(this.socket,t).pipe(n(1),o(this.destorySub)).subscribe(e=>{this.messageSub.next({event:t,data:e})}),r(this.socket,e).pipe(o(this.destorySub)).subscribe(t=>{this.messageSub.next({event:e,data:t})}),r(this.socket,a).pipe(o(this.destorySub)).subscribe(t=>{this.messageSub.next({event:a,data:t})}),this.socket.connect()}send(t,e){this.socket.emit(t,e)}sendToCloud(t){this.send("cloud",JSON.stringify(t))}onDestory(){this.destorySub.next(),this.destorySub.complete(),this.messageSub.complete(),this.socket.disconnect()}}!function(t){t[t.interrupted=0]="interrupted",t[t.pcm=1]="pcm",t[t.cloudSampleRate=2]="cloudSampleRate"}(Oi||(Oi={}));class ki{config;media;chat;destorySub;projectsSub;layoutSub;aiiaSubtitleSub;userSubtitleSub;cloudSampleRate;channelState;get layout(){return this.layoutSub.asObservable()}get projects(){return this.projectsSub.asObservable()}get aiiaSubtitle(){return this.aiiaSubtitleSub.asObservable()}get userSubtitle(){return this.userSubtitleSub.asObservable()}set volume(t){this.media.setVolume(t)}get volume(){return this.media.getVolume()}constructor(t,r){this.config=t,this.media=r,this.layoutSub=new e,this.projectsSub=new e,this.destorySub=new e,this.aiiaSubtitleSub=new e,this.userSubtitleSub=new e,this.cloudSampleRate=16e3,this.channelState={proxy:!1,cloud:!1},this.chat=new Ri(t)}start(){this.media.stateObs.pipe(o(this.destorySub)).subscribe(()=>{this.channelCheck()}),this.chat.message.pipe(o(this.destorySub)).subscribe(({event:t,data:e})=>{switch(t){case"cloud":this.cloudToObj(e);break;case"list":{const{id:t,name:r,specific:n}=this.config.project;let o=null;if(n&&void 0!==t)o=t;else{const n=xi(e,e=>e.name===r||e.id===t);n&&(o=n.id)}null!==o?this.chooseProject(o):(this.projectsSub.next(e),gr.info("Please subscribe `projects` and call `chooseProject` method"));break}case"channel":"open"===e&&(this.channelState.proxy=!0,this.channelCheck())}}),this.chat.start()}chooseProject(t){this.chat.send("uuid",t)}cloudToObj(t){try{const e=JSON.parse(t);void 0!==Hn(e,"signal")?this.behavior(e):Ut(e)?pi(e,this.behavior):pi(cr(e),this.behavior)}catch(t){gr.error("message transfer fail",t)}}behavior(t){switch(t.signal){case"layout":this.layoutSub.next(t.content);break;case"audio":if("sampleRate"===t.command)this.cloudSampleRate=t.content;else switch(t.command){case"pcm":{const e=function(t,e,r){if(e===r)return t;const n=r/e,o=Math.ceil(t.length*n),a=new Float32Array(o);for(let e=0;e<o;e++){const r=e/n,o=Math.floor(r),i=r-o,u=t[o],s=t[Math.min(o+1,t.length-1)];a[e]=u+(s-u)*i}return a}(Kn(new Int16Array(t.content)),this.cloudSampleRate,this.media.sampleRate);this.media.addAudioQueue({float32:e}),this.media.playAudio();break}case"interrupted":this.media.stopAudio()}break;case"status":"Connected"===Hn(t,"content")&&(this.channelState.cloud=!0,this.channelCheck());break;case"agent":{const e=Hn(t,"content.function_result.response");e&&this.aiiaSubtitleSub.next(e);break}case"asr":if("ASR"===Hn(t,"content.function_type")){const e=Hn(t,"content.function_result.result");e&&this.userSubtitleSub.next(e)}break;default:gr.debug(t.signal)}}channelCheck(){const{proxy:t,cloud:e}=this.channelState;t&&e&&this.media.state===Ln.allowed?(this.chat.sendToCloud({request:"audio",command:"sampleRate",content:this.media.sampleRate}),this.media.pcm.pipe(o(this.destorySub)).subscribe(t=>{this.chat.sendToCloud({request:"audio",command:"pcm",content:Xn(t)})}),this.media.startRecord(),gr.debug("Channel, Cloud and Media are ready.")):t&&e&&this.media.state!==Ln.allowed&&gr.warn("Media permission didn't get. Please reload page after reset permission or ignore this message.")}onDestory(){this.chat.onDestory(),this.destorySub.next(),this.destorySub.complete()}}function Ci(t){if(Ne){const e=new Me(Ae({},t));_r(e.debug);const r=new to,n=new ki(e,r);return""!==e.worklet_url&&r.init(e.worklet_url),n}throw new Error(me["環境錯誤(browser)"])}export{to as MediaManager,Ci as initSdk};
1
+ import t from"moment";import{Subject as e,fromEvent as r,take as n,takeUntil as o,ReplaySubject as i}from"rxjs";import{io as a}from"socket.io-client";var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function u(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var c="object"==typeof s&&s&&s.Object===Object&&s,l=c,h="object"==typeof self&&self&&self.Object===Object&&self,f=l||h||Function("return this")(),d=f.Symbol,p=d,v=Object.prototype,b=v.hasOwnProperty,g=v.toString,y=p?p.toStringTag:void 0;var m=function(t){var e=b.call(t,y),r=t[y];try{t[y]=void 0;var n=!0}catch(t){}var o=g.call(t);return n&&(e?t[y]=r:delete t[y]),o},S=Object.prototype.toString;var _=m,w=function(t){return S.call(t)},j=d?d.toStringTag:void 0;var O=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":j&&j in Object(t)?_(t):w(t)};var x=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},R=O,C=x;var k,A=function(t){if(!C(t))return!1;var e=R(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},E=f["__core-js_shared__"],D=(k=/[^.]+$/.exec(E&&E.keys&&E.keys.IE_PROTO||""))?"Symbol(src)_1."+k:"";var N=function(t){return!!D&&D in t},M=Function.prototype.toString;var T=function(t){if(null!=t){try{return M.call(t)}catch(t){}try{return t+""}catch(t){}}return""},I=A,z=N,P=x,B=T,F=/^\[object .+?Constructor\]$/,$=Function.prototype,V=Object.prototype,Q=$.toString,L=V.hasOwnProperty,U=RegExp("^"+Q.call(L).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var W=function(t){return!(!P(t)||z(t))&&(I(t)?U:F).test(B(t))},q=function(t,e){return null==t?void 0:t[e]};var G=function(t,e){var r=q(t,e);return W(r)?r:void 0},K=G,H=function(){try{var t=K(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),J=H;var X=function(t,e,r){"__proto__"==e&&J?J(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};var Y=function(t,e){return t===e||t!=t&&e!=e},Z=X,tt=Y,et=Object.prototype.hasOwnProperty;var rt=function(t,e,r){var n=t[e];et.call(t,e)&&tt(n,r)&&(void 0!==r||e in t)||Z(t,e,r)},nt=rt,ot=X;var it=function(t,e,r,n){var o=!r;r||(r={});for(var i=-1,a=e.length;++i<a;){var s=e[i],u=n?n(r[s],t[s],s,r,t):void 0;void 0===u&&(u=t[s]),o?ot(r,s,u):nt(r,s,u)}return r};var at=function(t){return t};var st=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)},ut=Math.max;var ct=function(t,e,r){return e=ut(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=ut(n.length-e,0),a=Array(i);++o<i;)a[o]=n[e+o];o=-1;for(var s=Array(e+1);++o<e;)s[o]=n[o];return s[e]=r(a),st(t,this,s)}};var lt=function(t){return function(){return t}},ht=H,ft=ht?function(t,e){return ht(t,"toString",{configurable:!0,enumerable:!1,value:lt(e),writable:!0})}:at,dt=Date.now;var pt=function(t){var e=0,r=0;return function(){var n=dt(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(ft),vt=at,bt=ct,gt=pt;var yt=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},mt=A,St=yt;var _t=function(t){return null!=t&&St(t.length)&&!mt(t)},wt=/^(?:0|[1-9]\d*)$/;var jt=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&wt.test(t))&&t>-1&&t%1==0&&t<e},Ot=Y,xt=_t,Rt=jt,Ct=x;var kt=function(t,e){return gt(bt(t,e,vt),t+"")},At=function(t,e,r){if(!Ct(r))return!1;var n=typeof e;return!!("number"==n?xt(r)&&Rt(e,r.length):"string"==n&&e in r)&&Ot(r[e],t)};var Et=function(t){return kt(function(e,r){var n=-1,o=r.length,i=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&At(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),e=Object(e);++n<o;){var s=r[n];s&&t(e,s,n,i)}return e})},Dt=Object.prototype;var Nt=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Dt)};var Mt=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var Tt=function(t){return null!=t&&"object"==typeof t},It=O,zt=Tt;var Pt=function(t){return zt(t)&&"[object Arguments]"==It(t)},Bt=Tt,Ft=Object.prototype,$t=Ft.hasOwnProperty,Vt=Ft.propertyIsEnumerable,Qt=Pt(function(){return arguments}())?Pt:function(t){return Bt(t)&&$t.call(t,"callee")&&!Vt.call(t,"callee")},Lt=Array.isArray,Ut=u(Lt),Wt={exports:{}};var qt=function(){return!1};!function(t,e){var r=f,n=qt,o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o?r.Buffer:void 0,s=(a?a.isBuffer:void 0)||n;t.exports=s}(Wt,Wt.exports);var Gt=Wt.exports,Kt=O,Ht=yt,Jt=Tt,Xt={};Xt["[object Float32Array]"]=Xt["[object Float64Array]"]=Xt["[object Int8Array]"]=Xt["[object Int16Array]"]=Xt["[object Int32Array]"]=Xt["[object Uint8Array]"]=Xt["[object Uint8ClampedArray]"]=Xt["[object Uint16Array]"]=Xt["[object Uint32Array]"]=!0,Xt["[object Arguments]"]=Xt["[object Array]"]=Xt["[object ArrayBuffer]"]=Xt["[object Boolean]"]=Xt["[object DataView]"]=Xt["[object Date]"]=Xt["[object Error]"]=Xt["[object Function]"]=Xt["[object Map]"]=Xt["[object Number]"]=Xt["[object Object]"]=Xt["[object RegExp]"]=Xt["[object Set]"]=Xt["[object String]"]=Xt["[object WeakMap]"]=!1;var Yt=function(t){return Jt(t)&&Ht(t.length)&&!!Xt[Kt(t)]};var Zt=function(t){return function(e){return t(e)}},te={exports:{}};!function(t,e){var r=c,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n&&r.process,a=function(){try{var t=o&&o.require&&o.require("util").types;return t||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=a}(te,te.exports);var ee=te.exports,re=Yt,ne=Zt,oe=ee&&ee.isTypedArray,ie=oe?ne(oe):re,ae=Mt,se=Qt,ue=Lt,ce=Gt,le=jt,he=ie,fe=Object.prototype.hasOwnProperty;var de=function(t,e){var r=ue(t),n=!r&&se(t),o=!r&&!n&&ce(t),i=!r&&!n&&!o&&he(t),a=r||n||o||i,s=a?ae(t.length,String):[],u=s.length;for(var c in t)!e&&!fe.call(t,c)||a&&("length"==c||o&&("offset"==c||"parent"==c)||i&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||le(c,u))||s.push(c);return s};var pe=function(t,e){return function(r){return t(e(r))}}(Object.keys,Object),ve=Nt,be=pe,ge=Object.prototype.hasOwnProperty;var ye=de,me=function(t){if(!ve(t))return be(t);var e=[];for(var r in Object(t))ge.call(t,r)&&"constructor"!=r&&e.push(r);return e},Se=_t;var _e=function(t){return Se(t)?ye(t):me(t)},we=rt,je=it,Oe=Et,xe=_t,Re=Nt,Ce=_e,ke=Object.prototype.hasOwnProperty,Ae=u(Oe(function(t,e){if(Re(e)||xe(e))je(e,Ce(e),t);else for(var r in e)ke.call(e,r)&&we(t,r,e[r])})),Ee=O,De=Tt;var Ne=function(t){return"symbol"==typeof t||De(t)&&"[object Symbol]"==Ee(t)},Me=Lt,Te=Ne,Ie=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ze=/^\w*$/;var Pe=function(t,e){if(Me(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!Te(t))||(ze.test(t)||!Ie.test(t)||null!=e&&t in Object(e))},Be=G(Object,"create"),Fe=Be;var $e=function(){this.__data__=Fe?Fe(null):{},this.size=0};var Ve=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Qe=Be,Le=Object.prototype.hasOwnProperty;var Ue=function(t){var e=this.__data__;if(Qe){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return Le.call(e,t)?e[t]:void 0},We=Be,qe=Object.prototype.hasOwnProperty;var Ge=Be;var Ke=$e,He=Ve,Je=Ue,Xe=function(t){var e=this.__data__;return We?void 0!==e[t]:qe.call(e,t)},Ye=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Ge&&void 0===e?"__lodash_hash_undefined__":e,this};function Ze(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Ze.prototype.clear=Ke,Ze.prototype.delete=He,Ze.prototype.get=Je,Ze.prototype.has=Xe,Ze.prototype.set=Ye;var tr=Ze;var er=function(){this.__data__=[],this.size=0},rr=Y;var nr=function(t,e){for(var r=t.length;r--;)if(rr(t[r][0],e))return r;return-1},or=nr,ir=Array.prototype.splice;var ar=nr;var sr=nr;var ur=nr;var cr=er,lr=function(t){var e=this.__data__,r=or(e,t);return!(r<0)&&(r==e.length-1?e.pop():ir.call(e,r,1),--this.size,!0)},hr=function(t){var e=this.__data__,r=ar(e,t);return r<0?void 0:e[r][1]},fr=function(t){return sr(this.__data__,t)>-1},dr=function(t,e){var r=this.__data__,n=ur(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function pr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}pr.prototype.clear=cr,pr.prototype.delete=lr,pr.prototype.get=hr,pr.prototype.has=fr,pr.prototype.set=dr;var vr=pr,br=G(f,"Map"),gr=tr,yr=vr,mr=br;var Sr=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var _r=function(t,e){var r=t.__data__;return Sr(e)?r["string"==typeof e?"string":"hash"]:r.map},wr=_r;var jr=_r;var Or=_r;var xr=_r;var Rr=function(){this.size=0,this.__data__={hash:new gr,map:new(mr||yr),string:new gr}},Cr=function(t){var e=wr(this,t).delete(t);return this.size-=e?1:0,e},kr=function(t){return jr(this,t).get(t)},Ar=function(t){return Or(this,t).has(t)},Er=function(t,e){var r=xr(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function Dr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Dr.prototype.clear=Rr,Dr.prototype.delete=Cr,Dr.prototype.get=kr,Dr.prototype.has=Ar,Dr.prototype.set=Er;var Nr=Dr,Mr=Nr;function Tr(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a)||i,a};return r.cache=new(Tr.Cache||Mr),r}Tr.Cache=Mr;var Ir=Tr;var zr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pr=/\\(\\)?/g,Br=function(t){var e=Ir(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(zr,function(t,r,n,o){e.push(n?o.replace(Pr,"$1"):r||t)}),e});var Fr=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},$r=Fr,Vr=Lt,Qr=Ne,Lr=d?d.prototype:void 0,Ur=Lr?Lr.toString:void 0;var Wr=function t(e){if("string"==typeof e)return e;if(Vr(e))return $r(e,t)+"";if(Qr(e))return Ur?Ur.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r},qr=Wr;var Gr=Lt,Kr=Pe,Hr=Br,Jr=function(t){return null==t?"":qr(t)};var Xr=function(t,e){return Gr(t)?t:Kr(t,e)?[t]:Hr(Jr(t))},Yr=Ne;var Zr=function(t){if("string"==typeof t||Yr(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},tn=Xr,en=Zr;var rn=function(t,e){for(var r=0,n=(e=tn(e,t)).length;null!=t&&r<n;)t=t[en(e[r++])];return r&&r==n?t:void 0},nn=rn;var on,an=function(t,e,r){var n=null==t?void 0:nn(t,e);return void 0===n?r:n},sn=u(an);!function(t){t["網絡錯誤"]="ERROR CODE: 500",t["環境錯誤(browser)"]="ERROR CODE: 1001",t["Worklet模組載入失敗"]="ERROR CODE: 1002",t["未獲得媒體裝置權限"]="ERROR CODE: 1003",t["實例已摧毀"]="ERROR CODE: 1004",t["環境錯誤(nodejs)"]="ERROR CODE: 2001",t["未提供憑證"]="ERROR CODE: 2002",t["獲取權杖失敗"]="ERROR CODE: 2003",t["沒有可用專案"]="ERROR CODE: 2004",t["重複初始化"]="ERROR CODE: 2005"}(on||(on={}));const un="undefined"!=typeof window;"undefined"!=typeof process&&null!=process.versions&&process.versions.node;class cn{config;get webserver(){return this.config.webserver}get environment(){return this.config.env}get license(){return this.config.license??""}get port(){return function(t,e){const r=e??NaN;if(t){const e=parseInt(t);return isNaN(e)?r:e}return r}(process.env.PORT,this.config.port??3e3)}get ws_url(){return this.config.ws_url??""}get worklet_url(){return this.config.worklet_url??""}get project(){const{project:t}=Ae({},this.config);return void 0===t?{specific:!1}:"string"==typeof t?{name:t,id:t,specific:!1}:Ae({},t,{specific:!0})}get endPoint(){return this.environment,{api:"https://aiia-content-management-dev-21193779403.asia-east1.run.app",socket:"wss://graphen-agentic-workflow-dev-21193779403.asia-east1.run.app"}}get debug(){return this.config.debug??!0}get mediaStream(){return this.config.mediaStream}get chunkTimeInSeconds(){return"number"==typeof this.config.chunkTimeInSeconds&&this.config.chunkTimeInSeconds>0?this.config.chunkTimeInSeconds:1}get llmSampleRate(){return"number"==typeof this.config.llmSampleRate&&this.config.llmSampleRate>0?this.config.llmSampleRate:16e3}constructor(t){this.config=t}}var ln=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t};var hn=function(t){return function(e,r,n){for(var o=-1,i=Object(e),a=n(e),s=a.length;s--;){var u=a[t?s:++o];if(!1===r(i[u],u,i))break}return e}}(),fn=_e;var dn=_t;var pn=function(t,e){return function(r,n){if(null==r)return r;if(!dn(r))return t(r,n);for(var o=r.length,i=e?o:-1,a=Object(r);(e?i--:++i<o)&&!1!==n(a[i],i,a););return r}}(function(t,e){return t&&hn(t,e,fn)}),vn=at;var bn=ln,gn=pn,yn=function(t){return"function"==typeof t?t:vn},mn=Lt;var Sn,_n=u(function(t,e){return(mn(t)?bn:gn)(t,yn(e))});!function(t){t["通道、雲端服務、麥克風都已就緒"]="CODE: 1000",t["未取得媒體裝置權限,請重新設定或忽略此訊息"]="CODE: 1001",t["請訂閱專案列表"]="CODE: 1002",t["初始化必要依賴"]="CODE: 1010",t["指定依賴已完成"]="CODE: 1011",t["啟動SDK"]="CODE: 1012",t["結束SDK"]="CODE: 1013",t["安全的關閉連線"]="CODE: 2000",t["無副作用的關閉連線"]="CODE: 2001",t["與雲端的服務中斷"]="CODE: 2002",t["沒有授權,請聯繫Graphen"]="CODE: 2003",t["自動重新連線連端服務"]="CODE: 2004",t["未預期的斷線,請聯繫Graphen"]="CODE: 2005",t["開始初始化必要模組"]="CODE: 2010",t["指定模組初始化完成"]="CODE: 2011",t["啟動服務"]="CODE: 2012",t["服務結束"]="CODE: 2013"}(Sn||(Sn={}));const wn={code:console.log,debug:console.log,info:console.log,warn:console.warn,error:console.error,fatal:console.error},jn=[];const On=new Proxy(wn,{get(e,r,n){if("string"==typeof r)switch(r){case"debug":case"info":case"error":case"warn":case"fatal":case"code":return(...n)=>{const o=t().format("yyyy-MM-DD[T]HH:mm:ss");_n(jn,t=>{t.next(r,o,...n)}),e[r](`[Aiia::${r}_${o}_]`,...n)};default:return}},set:(t,e,r,n)=>!0});var xn,Rn;function Cn(t,e,r){return Math.max(r,Math.min(t,e))}function kn(t){const e=new DataView(t.buffer),r=[];for(let n=0;n<t.length;n++){const t=e.getInt16(2*n,!0)/32768;r.push(t)}return new Float32Array(r)}function An(t){const e=new DataView(t.buffer),r=[];for(let n=0;n<t.length;n++){const t=Cn(32768*e.getFloat32(4*n,!0),32767,-32768);r.push(t)}return r}!function(t){t[t.unknow=0]="unknow",t[t.allowed=1]="allowed",t[t.rejected=2]="rejected"}(xn||(xn={}));class En{audioContext;type="audio";currentNode;bufferQueue;gainNode;set volume(t){t<0&&(t=0),t>100&&(t=100),this.gainNode.gain.value=t/100}get volume(){return Math.round(100*this.gainNode.gain.value)}constructor(t){this.audioContext=t,this.bufferQueue=[],this.currentNode=null,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}addBuffer(t){this.bufferQueue.push(t)}addBufferByFloat32(t,e=1){const r=t.length,n=this.audioContext.sampleRate,o=this.audioContext.createBuffer(e,r,n),i=t.slice();for(let t=0;t<e;t++)o.copyToChannel(i,t);this.addBuffer(o)}addBufferByInt16(t,e=1){this.addBufferByFloat32(kn(t),e)}startSpeech(){null===this.currentNode&&this.continue()}pauseSpeech(){this.audioContext.suspend().catch(t=>{On.error("pause speech fail",t)})}resumeSpeech(){this.audioContext.resume().catch(t=>{On.error("resume speech fail",t)})}nextSpeech(){this.bufferQueue.length>0&&(this.clearNode(),this.continue())}stopSpeech(){this.bufferQueue=[],this.clearNode()}clearNode(){this.currentNode&&(this.currentNode.onended=function(){},this.currentNode.stop(),this.currentNode.disconnect(),this.currentNode=null)}continue(){const t=this.bufferQueue.shift();if(t){this.currentNode=this.audioContext.createBufferSource(),this.currentNode.buffer=t,this.currentNode.connect(this.gainNode);const e=this.continue.bind(this);this.currentNode.onended=e,this.currentNode.start()}else this.clearNode()}}class Dn{stream;audioContext;type="vad";workletNode;source;isRecording=!1;outputSampleRate;chunkTimeInSeconds;pcmSub;get pcm(){return this.pcmSub.asObservable()}constructor(t,r,n){this.stream=t,this.audioContext=r;const{outputSampleRate:o,chunkTimeInSeconds:i}=Ae({outputSampleRate:16e3,chunkTimeInSeconds:1},n);this.outputSampleRate=o,this.chunkTimeInSeconds=i,this.pcmSub=new e}async startRecord(){this.isRecording||(this.source=this.audioContext.createMediaStreamSource(this.stream),this.workletNode=new AudioWorkletNode(this.audioContext,"aiia-vad",{processorOptions:{outputSampleRate:this.outputSampleRate,chunkTimeInSeconds:this.chunkTimeInSeconds}}),this.source.connect(this.workletNode),this.workletNode.port.onmessage=t=>{const{float32:e}=t.data;e&&this.pcmSub.next(new Float32Array(e))},this.isRecording=!0)}stopRecord(){this.isRecording&&(this.workletNode&&(this.workletNode.port.onmessage=null,this.workletNode.disconnect()),this.source&&this.source.disconnect(),this.isRecording=!1)}}!function(t){t[t.padding=0]="padding",t[t.rejected=1]="rejected",t[t.loadfail=2]="loadfail",t[t.allowed=3]="allowed"}(Rn||(Rn={}));class Nn{stream;_state;stateSub;audioCtx;audioManager;vadManager;destory;pcmSub;get sampleRate(){return this.audioCtx?this.audioCtx.sampleRate:16e3}get pcm(){return this.pcmSub.asObservable()}get state(){return this._state}set state(t){t!==this._state&&(this._state=t,this.stateSub.next(t))}get stateObs(){return this.stateSub.asObservable()}constructor(t){this.stream=t,this.stateSub=new e,this.pcmSub=new e,this.destory=new e,this.state=Rn.padding}async init(t,e){const r=this.stream??await async function(t){try{return await navigator.mediaDevices.getUserMedia(t)}catch(t){return null}}({audio:{echoCancellation:!0,noiseSuppression:!0}});if(null===r)throw this.state=Rn.rejected,new Error(on["未獲得媒體裝置權限"]);this.stream=r,this.audioCtx=new AudioContext;try{await this.audioCtx.audioWorklet.addModule(t)}catch(t){throw On.fatal(t),this.state=Rn.loadfail,new Error(on["Worklet模組載入失敗"])}this.state=Rn.allowed,this.audioManager=new En(this.audioCtx),this.vadManager=new Dn(r,this.audioCtx,e),this.vadManager.pcm.subscribe(t=>{this.pcmSub.next(t)})}addAudioQueue(t){const e=sn(t,"buffer",void 0),r=sn(t,"float32",void 0),n=sn(t,"int16",void 0),o=sn(t,"numberOfChannels",void 0);e?this.audioManager?.addBuffer(e):r?this.audioManager?.addBufferByFloat32(r,o):n&&this.audioManager?.addBufferByInt16(n,o)}playAudio(){this.audioManager?.startSpeech()}stopAudio(){this.audioManager?.stopSpeech()}startRecord(){this.vadManager?.startRecord()}stopRecord(){this.vadManager?.stopRecord()}setVolume(t){this.audioManager&&(this.audioManager.volume=t)}getVolume(){return this.audioManager?this.audioManager.volume:0}onDestory(){this.audioCtx?.close(),this.destory.next(),this.destory.complete()}}var Mn=vr;var Tn=vr,In=br,zn=Nr;var Pn=vr,Bn=function(){this.__data__=new Mn,this.size=0},Fn=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},$n=function(t){return this.__data__.get(t)},Vn=function(t){return this.__data__.has(t)},Qn=function(t,e){var r=this.__data__;if(r instanceof Tn){var n=r.__data__;if(!In||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new zn(n)}return r.set(t,e),this.size=r.size,this};function Ln(t){var e=this.__data__=new Pn(t);this.size=e.size}Ln.prototype.clear=Bn,Ln.prototype.delete=Fn,Ln.prototype.get=$n,Ln.prototype.has=Vn,Ln.prototype.set=Qn;var Un=Ln;var Wn=Nr,qn=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Gn=function(t){return this.__data__.has(t)};function Kn(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new Wn;++e<r;)this.add(t[e])}Kn.prototype.add=Kn.prototype.push=qn,Kn.prototype.has=Gn;var Hn=Kn,Jn=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},Xn=function(t,e){return t.has(e)};var Yn=function(t,e,r,n,o,i){var a=1&r,s=t.length,u=e.length;if(s!=u&&!(a&&u>s))return!1;var c=i.get(t),l=i.get(e);if(c&&l)return c==e&&l==t;var h=-1,f=!0,d=2&r?new Hn:void 0;for(i.set(t,e),i.set(e,t);++h<s;){var p=t[h],v=e[h];if(n)var b=a?n(v,p,h,e,t,i):n(p,v,h,t,e,i);if(void 0!==b){if(b)continue;f=!1;break}if(d){if(!Jn(e,function(t,e){if(!Xn(d,e)&&(p===t||o(p,t,r,n,i)))return d.push(e)})){f=!1;break}}else if(p!==v&&!o(p,v,r,n,i)){f=!1;break}}return i.delete(t),i.delete(e),f};var Zn=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r};var to=f.Uint8Array,eo=Y,ro=Yn,no=Zn,oo=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},io=d?d.prototype:void 0,ao=io?io.valueOf:void 0;var so=function(t,e,r,n,o,i,a){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new to(t),new to(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return eo(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var s=no;case"[object Set]":var u=1&n;if(s||(s=oo),t.size!=e.size&&!u)return!1;var c=a.get(t);if(c)return c==e;n|=2,a.set(t,e);var l=ro(s(t),s(e),n,o,i,a);return a.delete(t),l;case"[object Symbol]":if(ao)return ao.call(t)==ao.call(e)}return!1};var uo=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},co=uo,lo=Lt;var ho=function(t,e,r){var n=e(t);return lo(t)?n:co(n,r(t))};var fo=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var a=t[r];e(a,r,t)&&(i[o++]=a)}return i},po=function(){return[]},vo=Object.prototype.propertyIsEnumerable,bo=Object.getOwnPropertySymbols,go=ho,yo=bo?function(t){return null==t?[]:(t=Object(t),fo(bo(t),function(e){return vo.call(t,e)}))}:po,mo=_e;var So=function(t){return go(t,mo,yo)},_o=Object.prototype.hasOwnProperty;var wo=function(t,e,r,n,o,i){var a=1&r,s=So(t),u=s.length;if(u!=So(e).length&&!a)return!1;for(var c=u;c--;){var l=s[c];if(!(a?l in e:_o.call(e,l)))return!1}var h=i.get(t),f=i.get(e);if(h&&f)return h==e&&f==t;var d=!0;i.set(t,e),i.set(e,t);for(var p=a;++c<u;){var v=t[l=s[c]],b=e[l];if(n)var g=a?n(b,v,l,e,t,i):n(v,b,l,t,e,i);if(!(void 0===g?v===b||o(v,b,r,n,i):g)){d=!1;break}p||(p="constructor"==l)}if(d&&!p){var y=t.constructor,m=e.constructor;y==m||!("constructor"in t)||!("constructor"in e)||"function"==typeof y&&y instanceof y&&"function"==typeof m&&m instanceof m||(d=!1)}return i.delete(t),i.delete(e),d},jo=G(f,"DataView"),Oo=br,xo=G(f,"Promise"),Ro=G(f,"Set"),Co=G(f,"WeakMap"),ko=O,Ao=T,Eo="[object Map]",Do="[object Promise]",No="[object Set]",Mo="[object WeakMap]",To="[object DataView]",Io=Ao(jo),zo=Ao(Oo),Po=Ao(xo),Bo=Ao(Ro),Fo=Ao(Co),$o=ko;(jo&&$o(new jo(new ArrayBuffer(1)))!=To||Oo&&$o(new Oo)!=Eo||xo&&$o(xo.resolve())!=Do||Ro&&$o(new Ro)!=No||Co&&$o(new Co)!=Mo)&&($o=function(t){var e=ko(t),r="[object Object]"==e?t.constructor:void 0,n=r?Ao(r):"";if(n)switch(n){case Io:return To;case zo:return Eo;case Po:return Do;case Bo:return No;case Fo:return Mo}return e});var Vo=Un,Qo=Yn,Lo=so,Uo=wo,Wo=$o,qo=Lt,Go=Gt,Ko=ie,Ho="[object Arguments]",Jo="[object Array]",Xo="[object Object]",Yo=Object.prototype.hasOwnProperty;var Zo=function(t,e,r,n,o,i){var a=qo(t),s=qo(e),u=a?Jo:Wo(t),c=s?Jo:Wo(e),l=(u=u==Ho?Xo:u)==Xo,h=(c=c==Ho?Xo:c)==Xo,f=u==c;if(f&&Go(t)){if(!Go(e))return!1;a=!0,l=!1}if(f&&!l)return i||(i=new Vo),a||Ko(t)?Qo(t,e,r,n,o,i):Lo(t,e,u,r,n,o,i);if(!(1&r)){var d=l&&Yo.call(t,"__wrapped__"),p=h&&Yo.call(e,"__wrapped__");if(d||p){var v=d?t.value():t,b=p?e.value():e;return i||(i=new Vo),o(v,b,r,n,i)}}return!!f&&(i||(i=new Vo),Uo(t,e,r,n,o,i))},ti=Tt;var ei=function t(e,r,n,o,i){return e===r||(null==e||null==r||!ti(e)&&!ti(r)?e!=e&&r!=r:Zo(e,r,n,o,t,i))},ri=Un,ni=ei;var oi=x;var ii=function(t){return t==t&&!oi(t)},ai=ii,si=_e;var ui=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}},ci=function(t,e,r,n){var o=r.length,i=o,a=!n;if(null==t)return!i;for(t=Object(t);o--;){var s=r[o];if(a&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++o<i;){var u=(s=r[o])[0],c=t[u],l=s[1];if(a&&s[2]){if(void 0===c&&!(u in t))return!1}else{var h=new ri;if(n)var f=n(c,l,u,t,e,h);if(!(void 0===f?ni(l,c,3,n,h):f))return!1}}return!0},li=function(t){for(var e=si(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,ai(o)]}return e},hi=ui;var fi=Xr,di=Qt,pi=Lt,vi=jt,bi=yt,gi=Zr;var yi=function(t,e){return null!=t&&e in Object(t)},mi=function(t,e,r){for(var n=-1,o=(e=fi(e,t)).length,i=!1;++n<o;){var a=gi(e[n]);if(!(i=null!=t&&r(t,a)))break;t=t[a]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&bi(o)&&vi(a,o)&&(pi(t)||di(t))};var Si=ei,_i=an,wi=function(t,e){return null!=t&&mi(t,e,yi)},ji=Pe,Oi=ii,xi=ui,Ri=Zr;var Ci=rn;var ki=function(t){return function(e){return null==e?void 0:e[t]}},Ai=function(t){return function(e){return Ci(e,t)}},Ei=Pe,Di=Zr;var Ni=function(t){var e=li(t);return 1==e.length&&e[0][2]?hi(e[0][0],e[0][1]):function(r){return r===t||ci(r,t,e)}},Mi=function(t,e){return ji(t)&&Oi(e)?xi(Ri(t),e):function(r){var n=_i(r,t);return void 0===n&&n===e?wi(r,t):Si(e,n,3)}},Ti=at,Ii=Lt,zi=function(t){return Ei(t)?ki(Di(t)):Ai(t)};var Pi=function(t){return"function"==typeof t?t:null==t?Ti:"object"==typeof t?Ii(t)?Mi(t[0],t[1]):Ni(t):zi(t)},Bi=pn,Fi=_t;var $i=Fr,Vi=Pi,Qi=function(t,e){var r=-1,n=Fi(t)?Array(t.length):[];return Bi(t,function(t,o,i){n[++r]=e(t,o,i)}),n},Li=Lt;var Ui=u(function(t,e){return(Li(t)?$i:Qi)(t,Vi(e))}),Wi=Pi,qi=_t,Gi=_e;var Ki=function(t){return function(e,r,n){var o=Object(e);if(!qi(e)){var i=Wi(r);e=Gi(e),r=function(t){return i(o[t],t,o)}}var a=t(e,r,n);return a>-1?o[i?e[a]:a]:void 0}};var Hi=/\s/;var Ji=function(t){for(var e=t.length;e--&&Hi.test(t.charAt(e)););return e},Xi=/^\s+/;var Yi=function(t){return t?t.slice(0,Ji(t)+1).replace(Xi,""):t},Zi=x,ta=Ne,ea=/^[-+]0x[0-9a-f]+$/i,ra=/^0b[01]+$/i,na=/^0o[0-7]+$/i,oa=parseInt;var ia=function(t){if("number"==typeof t)return t;if(ta(t))return NaN;if(Zi(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Zi(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Yi(t);var r=ra.test(t);return r||na.test(t)?oa(t.slice(2),r?2:8):ea.test(t)?NaN:+t},aa=1/0;var sa=function(t){return t?(t=ia(t))===aa||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0};var ua=function(t,e,r,n){for(var o=t.length,i=r+(n?1:-1);n?i--:++i<o;)if(e(t[i],i,t))return i;return-1},ca=Pi,la=function(t){var e=sa(t),r=e%1;return e==e?r?e-r:e:0},ha=Math.max;var fa=u(Ki(function(t,e,r){var n=null==t?0:t.length;if(!n)return-1;var o=null==r?0:la(r);return o<0&&(o=ha(n+o,0)),ua(t,ca(e),o)})),da=Fr;var pa=function(t,e){return da(e,function(e){return t[e]})},va=_e;var ba=u(function(t){return null==t?[]:pa(t,va(t))});class ga{socket;messageSub;destorySub;get message(){return this.messageSub.asObservable()}constructor(t){this.destorySub=new e,this.messageSub=new e;const{specific:r,id:n}=t.project;this.socket=a(t.ws_url,Ae({autoConnect:!1},r&&void 0!==n?{query:{uuid:n}}:{}))}start(){const t="list",e="cloud",i="channel";r(this.socket,t).pipe(n(1),o(this.destorySub)).subscribe(e=>{this.messageSub.next({event:t,data:e})}),r(this.socket,e).pipe(o(this.destorySub)).subscribe(t=>{this.messageSub.next({event:e,data:t})}),r(this.socket,i).pipe(o(this.destorySub)).subscribe(t=>{this.messageSub.next({event:i,data:t})}),this.socket.connect()}send(t,e){this.socket.emit(t,e)}sendToCloud(t){this.send("cloud",JSON.stringify(t))}onDestory(){this.destorySub.next(),this.destorySub.complete(),this.messageSub.complete(),this.socket.disconnect()}}class ya{config;media;chat;destorySub;projectsSub;layoutSub;aiiaSubtitleSub;userSubtitleSub;cloudSampleRate;channelState;stateSub;isMuteAiia;get state(){return this.stateSub.asObservable()}get layout(){return this.layoutSub.asObservable()}get projects(){return this.projectsSub.asObservable()}get aiiaSubtitle(){return this.aiiaSubtitleSub.asObservable()}get userSubtitle(){return this.userSubtitleSub.asObservable()}set volume(t){this.media.setVolume(t)}get volume(){return this.media.getVolume()}constructor(t,r){this.config=t,this.media=r,this.layoutSub=new e,this.projectsSub=new i(1),this.destorySub=new e,this.aiiaSubtitleSub=new e,this.userSubtitleSub=new e,this.stateSub=new i(1),this.cloudSampleRate={input:16e3,output:16e3},this.channelState={proxy:!1,cloud:!1},this.isMuteAiia=!1,this.chat=new ga(t),On.code(Sn["指定依賴已完成"],"chat"),this.close=this.onDestory,this.stateSub.next("NotStart")}start(){this.media.stateObs.pipe(o(this.destorySub)).subscribe(()=>{this.channelCheck()}),this.chat.message.pipe(o(this.destorySub)).subscribe(({event:t,data:e})=>{switch(t){case"cloud":this.cloudToObj(e);break;case"list":{const{id:t,name:r,specific:n}=this.config.project;let o=null;if(n&&void 0!==t)o=t;else{const n=fa(e,e=>e.name===r||e.id===t);n&&(o=n.id)}null!==o?this.chooseProject(o):(this.projectsSub.next(e),On.code(Sn["請訂閱專案列表"]));break}case"channel":switch(e){case"open":this.channelState.proxy=!0,this.channelCheck();break;case"close":this.channelState.proxy=!1,this.media.stopRecord(),this.stateSub.next("CloseService");break;case"no_permissions":this.channelState.proxy=!1,this.stateSub.next("NoPermissions");break;case"reconnect":this.channelState.proxy=!1,this.stateSub.next("ReconnectingCloud")}}}),this.chat.start(),this.stateSub.next("ConnectingCloud"),On.code(Sn["啟動SDK"])}close;resetSession(){this.chat.sendToCloud({request:"reset"}),this.aiiaSubtitleSub.next(""),this.userSubtitleSub.next(""),this.media.stopAudio(),this.layoutSub.next({type:"resetLayout"})}chooseProject(t){this.chat.send("uuid",t)}mute(){this.isMuteAiia=!0,this.media.stopAudio(),this.media.stopRecord()}unmute(){this.isMuteAiia=!1,this.media.startRecord()}cloudToObj(t){try{const e=JSON.parse(t);void 0!==sn(e,"signal")?this.behavior(e):Ut(e)?Ui(e,this.behavior):Ui(ba(e),this.behavior)}catch(t){On.error("message transfer fail",t)}}behavior(t){switch(t.signal){case"layout":this.layoutSub.next(t.content);break;case"audio":if("sampleRate"===t.command)this.cloudSampleRate.output=t.content;else switch(t.command){case"pcm":if(!this.isMuteAiia){const e=function(t,e,r){if(e===r)return t;const n=r/e,o=Math.ceil(t.length*n),i=new Float32Array(o);for(let e=0;e<o;e++){const r=e/n,o=Math.floor(r),a=r-o,s=t[o],u=t[Math.min(o+1,t.length-1)];i[e]=s+(u-s)*a}return i}(kn(new Int16Array(t.content)),this.cloudSampleRate.output,this.media.sampleRate);this.media.addAudioQueue({float32:e}),this.media.playAudio()}break;case"interrupted":this.media.stopAudio(),this.aiiaSubtitleSub.next("")}break;case"status":"Connected"===sn(t,"content")&&(this.channelState.cloud=!0,this.channelCheck(),this.layoutSub.next({type:"resetLayout"}));break;case"agent":if(!this.isMuteAiia){const e=sn(t,"content.function_result.response");e&&this.aiiaSubtitleSub.next(e)}break;case"asr":if(!this.isMuteAiia&&"ASR"===sn(t,"content.function_type")){const e=sn(t,"content.function_result.result");e&&this.userSubtitleSub.next(e)}break;default:On.debug(t.signal)}}channelCheck(){const{proxy:t,cloud:e}=this.channelState;t&&e&&this.media.state===Rn.allowed?(this.chat.sendToCloud({request:"audio",command:"sampleRate",content:this.cloudSampleRate.input}),this.media.pcm.pipe(o(this.destorySub)).subscribe(t=>{this.chat.sendToCloud({request:"audio",command:"pcm",content:An(t)})}),this.media.startRecord(),this.stateSub.next("InService"),On.code(Sn["通道、雲端服務、麥克風都已就緒"])):t&&e&&this.media.state!==Rn.allowed&&(this.stateSub.next("InServiceNoMedia"),On.code(Sn["未取得媒體裝置權限,請重新設定或忽略此訊息"]))}onDestory(){this.chat.onDestory(),this.media.onDestory(),this.destorySub.next(),this.destorySub.complete(),this.stateSub.next("Destory"),this.stateSub.complete(),On.code(Sn["結束SDK"])}}function ma(t){if(un){!function(t){const{info:e,error:r,warn:n,debug:o,fatal:i,code:a}=function(t){if(void 0===t||"all"===t)return{code:!0,error:!0,warn:!0,info:!0,debug:!0,fatal:!0};if("none"===t)return{error:!1,code:!1,warn:!1,info:!1,debug:!1,fatal:!1};if("boolean"==typeof t)return{code:t,error:t,warn:t,info:t,debug:t,fatal:t};{const e=new Set(t);return{code:e.has("code"),debug:e.has("debug"),fatal:e.has("fatal"),error:e.has("error"),warn:e.has("warn"),info:e.has("info")}}}(t);a||(wn.code=()=>{}),o||(wn.debug=()=>{}),e||(wn.info=()=>{}),n||(wn.warn=()=>{}),r||(wn.error=()=>{}),i||(wn.fatal=()=>{})}(sn(t,"debug",!0)),On.code(Sn["初始化必要依賴"]);const e=new cn(Ae({},t));On.code(Sn["指定依賴已完成"],"config");const r=new Nn(e.mediaStream);On.code(Sn["指定依賴已完成"],"config");const n=new ya(e,r);return On.code(Sn["指定依賴已完成"],"sdk"),""!==e.worklet_url&&r.init(e.worklet_url,{chunkTimeInSeconds:e.chunkTimeInSeconds,outputSampleRate:e.llmSampleRate}),n}throw new Error(on["環境錯誤(browser)"])}export{ma as initSdk};
package/dist/node.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var t=require("moment"),e=require("fs"),r=require("os"),n=require("path"),o=require("rxjs"),i=require("axios"),a=require("socket.io"),s=require("ws"),c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function u(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var f="object"==typeof c&&c&&c.Object===Object&&c,l=f,h="object"==typeof self&&self&&self.Object===Object&&self,v=l||h||Function("return this")(),p=v.Symbol,b=p,y=Object.prototype,_=y.hasOwnProperty,d=y.toString,g=b?b.toStringTag:void 0;var j=function(t){var e=_.call(t,g),r=t[g];try{t[g]=void 0;var n=!0}catch(t){}var o=d.call(t);return n&&(e?t[g]=r:delete t[g]),o},O=Object.prototype.toString;var S=j,w=function(t){return O.call(t)},A=p?p.toStringTag:void 0;var E=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":A&&A in Object(t)?S(t):w(t)};var m=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},N=E,D=m;var R,k=function(t){if(!D(t))return!1;var e=N(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},M=v["__core-js_shared__"],I=(R=/[^.]+$/.exec(M&&M.keys&&M.keys.IE_PROTO||""))?"Symbol(src)_1."+R:"";var L=function(t){return!!I&&I in t},P=Function.prototype.toString;var C=function(t){if(null!=t){try{return P.call(t)}catch(t){}try{return t+""}catch(t){}}return""},T=k,U=L,x=m,F=C,z=/^\[object .+?Constructor\]$/,W=Function.prototype,$=Object.prototype,B=W.toString,G=$.hasOwnProperty,V=RegExp("^"+B.call(G).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var X=function(t){return!(!x(t)||U(t))&&(T(t)?V:z).test(F(t))},Y=function(t,e){return null==t?void 0:t[e]};var q=function(t,e){var r=Y(t,e);return X(r)?r:void 0},H=q,Q=function(){try{var t=H(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),K=Q;var J=function(t,e,r){"__proto__"==e&&K?K(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};var Z=function(t,e){return t===e||t!=t&&e!=e},tt=J,et=Z,rt=Object.prototype.hasOwnProperty;var nt=function(t,e,r){var n=t[e];rt.call(t,e)&&et(n,r)&&(void 0!==r||e in t)||tt(t,e,r)},ot=nt,it=J;var at=function(t,e,r,n){var o=!r;r||(r={});for(var i=-1,a=e.length;++i<a;){var s=e[i],c=n?n(r[s],t[s],s,r,t):void 0;void 0===c&&(c=t[s]),o?it(r,s,c):ot(r,s,c)}return r};var st=function(t){return t};var ct=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)},ut=Math.max;var ft=function(t,e,r){return e=ut(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=ut(n.length-e,0),a=Array(i);++o<i;)a[o]=n[e+o];o=-1;for(var s=Array(e+1);++o<e;)s[o]=n[o];return s[e]=r(a),ct(t,this,s)}};var lt=function(t){return function(){return t}},ht=Q,vt=ht?function(t,e){return ht(t,"toString",{configurable:!0,enumerable:!1,value:lt(e),writable:!0})}:st,pt=Date.now;var bt=function(t){var e=0,r=0;return function(){var n=pt(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(vt),yt=st,_t=ft,dt=bt;var gt=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},jt=k,Ot=gt;var St=function(t){return null!=t&&Ot(t.length)&&!jt(t)},wt=/^(?:0|[1-9]\d*)$/;var At=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&wt.test(t))&&t>-1&&t%1==0&&t<e},Et=Z,mt=St,Nt=At,Dt=m;var Rt=function(t,e){return dt(_t(t,e,yt),t+"")},kt=function(t,e,r){if(!Dt(r))return!1;var n=typeof e;return!!("number"==n?mt(r)&&Nt(e,r.length):"string"==n&&e in r)&&Et(r[e],t)};var Mt=function(t){return Rt(function(e,r){var n=-1,o=r.length,i=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&kt(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),e=Object(e);++n<o;){var s=r[n];s&&t(e,s,n,i)}return e})},It=Object.prototype;var Lt=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||It)};var Pt=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var Ct=function(t){return null!=t&&"object"==typeof t},Tt=E,Ut=Ct;var xt=function(t){return Ut(t)&&"[object Arguments]"==Tt(t)},Ft=Ct,zt=Object.prototype,Wt=zt.hasOwnProperty,$t=zt.propertyIsEnumerable,Bt=xt(function(){return arguments}())?xt:function(t){return Ft(t)&&Wt.call(t,"callee")&&!$t.call(t,"callee")},Gt=Array.isArray,Vt=u(Gt),Xt={exports:{}};var Yt=function(){return!1};!function(t,e){var r=v,n=Yt,o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o?r.Buffer:void 0,s=(a?a.isBuffer:void 0)||n;t.exports=s}(Xt,Xt.exports);var qt=Xt.exports,Ht=E,Qt=gt,Kt=Ct,Jt={};Jt["[object Float32Array]"]=Jt["[object Float64Array]"]=Jt["[object Int8Array]"]=Jt["[object Int16Array]"]=Jt["[object Int32Array]"]=Jt["[object Uint8Array]"]=Jt["[object Uint8ClampedArray]"]=Jt["[object Uint16Array]"]=Jt["[object Uint32Array]"]=!0,Jt["[object Arguments]"]=Jt["[object Array]"]=Jt["[object ArrayBuffer]"]=Jt["[object Boolean]"]=Jt["[object DataView]"]=Jt["[object Date]"]=Jt["[object Error]"]=Jt["[object Function]"]=Jt["[object Map]"]=Jt["[object Number]"]=Jt["[object Object]"]=Jt["[object RegExp]"]=Jt["[object Set]"]=Jt["[object String]"]=Jt["[object WeakMap]"]=!1;var Zt=function(t){return Kt(t)&&Qt(t.length)&&!!Jt[Ht(t)]};var te=function(t){return function(e){return t(e)}},ee={exports:{}};!function(t,e){var r=f,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n&&r.process,a=function(){try{var t=o&&o.require&&o.require("util").types;return t||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=a}(ee,ee.exports);var re=ee.exports,ne=Zt,oe=te,ie=re&&re.isTypedArray,ae=ie?oe(ie):ne,se=Pt,ce=Bt,ue=Gt,fe=qt,le=At,he=ae,ve=Object.prototype.hasOwnProperty;var pe=function(t,e){var r=ue(t),n=!r&&ce(t),o=!r&&!n&&fe(t),i=!r&&!n&&!o&&he(t),a=r||n||o||i,s=a?se(t.length,String):[],c=s.length;for(var u in t)!e&&!ve.call(t,u)||a&&("length"==u||o&&("offset"==u||"parent"==u)||i&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||le(u,c))||s.push(u);return s};var be=function(t,e){return function(r){return t(e(r))}},ye=be(Object.keys,Object),_e=Lt,de=ye,ge=Object.prototype.hasOwnProperty;var je=pe,Oe=function(t){if(!_e(t))return de(t);var e=[];for(var r in Object(t))ge.call(t,r)&&"constructor"!=r&&e.push(r);return e},Se=St;var we=function(t){return Se(t)?je(t):Oe(t)},Ae=nt,Ee=at,me=Mt,Ne=St,De=Lt,Re=we,ke=Object.prototype.hasOwnProperty,Me=u(me(function(t,e){if(De(e)||Ne(e))Ee(e,Re(e),t);else for(var r in e)ke.call(e,r)&&Ae(t,r,e[r])})),Ie=E,Le=Ct;var Pe=function(t){return"symbol"==typeof t||Le(t)&&"[object Symbol]"==Ie(t)},Ce=Gt,Te=Pe,Ue=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xe=/^\w*$/;var Fe=function(t,e){if(Ce(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!Te(t))||(xe.test(t)||!Ue.test(t)||null!=e&&t in Object(e))},ze=q(Object,"create"),We=ze;var $e=function(){this.__data__=We?We(null):{},this.size=0};var Be=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Ge=ze,Ve=Object.prototype.hasOwnProperty;var Xe=function(t){var e=this.__data__;if(Ge){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return Ve.call(e,t)?e[t]:void 0},Ye=ze,qe=Object.prototype.hasOwnProperty;var He=ze;var Qe=$e,Ke=Be,Je=Xe,Ze=function(t){var e=this.__data__;return Ye?void 0!==e[t]:qe.call(e,t)},tr=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=He&&void 0===e?"__lodash_hash_undefined__":e,this};function er(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}er.prototype.clear=Qe,er.prototype.delete=Ke,er.prototype.get=Je,er.prototype.has=Ze,er.prototype.set=tr;var rr=er;var nr=function(){this.__data__=[],this.size=0},or=Z;var ir=function(t,e){for(var r=t.length;r--;)if(or(t[r][0],e))return r;return-1},ar=ir,sr=Array.prototype.splice;var cr=ir;var ur=ir;var fr=ir;var lr=nr,hr=function(t){var e=this.__data__,r=ar(e,t);return!(r<0)&&(r==e.length-1?e.pop():sr.call(e,r,1),--this.size,!0)},vr=function(t){var e=this.__data__,r=cr(e,t);return r<0?void 0:e[r][1]},pr=function(t){return ur(this.__data__,t)>-1},br=function(t,e){var r=this.__data__,n=fr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function yr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}yr.prototype.clear=lr,yr.prototype.delete=hr,yr.prototype.get=vr,yr.prototype.has=pr,yr.prototype.set=br;var _r=yr,dr=q(v,"Map"),gr=rr,jr=_r,Or=dr;var Sr=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var wr=function(t,e){var r=t.__data__;return Sr(e)?r["string"==typeof e?"string":"hash"]:r.map},Ar=wr;var Er=wr;var mr=wr;var Nr=wr;var Dr=function(){this.size=0,this.__data__={hash:new gr,map:new(Or||jr),string:new gr}},Rr=function(t){var e=Ar(this,t).delete(t);return this.size-=e?1:0,e},kr=function(t){return Er(this,t).get(t)},Mr=function(t){return mr(this,t).has(t)},Ir=function(t,e){var r=Nr(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function Lr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Lr.prototype.clear=Dr,Lr.prototype.delete=Rr,Lr.prototype.get=kr,Lr.prototype.has=Mr,Lr.prototype.set=Ir;var Pr=Lr,Cr=Pr;function Tr(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a)||i,a};return r.cache=new(Tr.Cache||Cr),r}Tr.Cache=Cr;var Ur=Tr;var xr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fr=/\\(\\)?/g,zr=function(t){var e=Ur(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(xr,function(t,r,n,o){e.push(n?o.replace(Fr,"$1"):r||t)}),e});var Wr=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},$r=Wr,Br=Gt,Gr=Pe,Vr=p?p.prototype:void 0,Xr=Vr?Vr.toString:void 0;var Yr=function t(e){if("string"==typeof e)return e;if(Br(e))return $r(e,t)+"";if(Gr(e))return Xr?Xr.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r},qr=Yr;var Hr=Gt,Qr=Fe,Kr=zr,Jr=function(t){return null==t?"":qr(t)};var Zr=function(t,e){return Hr(t)?t:Qr(t,e)?[t]:Kr(Jr(t))},tn=Pe;var en=function(t){if("string"==typeof t||tn(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},rn=Zr,nn=en;var on=function(t,e){for(var r=0,n=(e=rn(e,t)).length;null!=t&&r<n;)t=t[nn(e[r++])];return r&&r==n?t:void 0},an=on;var sn,cn=function(t,e,r){var n=null==t?void 0:an(t,e);return void 0===n?r:n},un=u(cn);!function(t){t["網絡錯誤"]="ERROR CODE: 500",t["環境錯誤(browser)"]="ERROR CODE: 1001",t["Worklet模組載入失敗"]="ERROR CODE: 1002",t["未獲得媒體裝置權限"]="ERROR CODE: 1003",t["實例已摧毀"]="ERROR CODE: 1004",t["環境錯誤(nodejs)"]="ERROR CODE: 2001",t["未提供憑證"]="ERROR CODE: 2002",t["獲取權杖失敗"]="ERROR CODE: 2003",t["沒有可用專案"]="ERROR CODE: 2004",t["重複初始化"]="ERROR CODE: 205"}(sn||(sn={}));const fn="access_token",ln="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node;class hn{config;get webserver(){return this.config.webserver}get environment(){return this.config.env}get license(){return this.config.license??""}get port(){return function(t,e){const r=e??NaN;if(t){const e=parseInt(t);return isNaN(e)?r:e}return r}(process.env.PORT,this.config.port??3e3)}get ws_url(){return this.config.ws_url??""}get worklet_url(){return this.config.worklet_url??""}get project(){const{project:t}=Me({},this.config);return void 0===t?{specific:!1}:"string"==typeof t?{name:t,id:t,specific:!1}:Me({},t,{specific:!0})}get endPoint(){return this.environment,{api:"https://aiia-content-management-dev-21193779403.asia-east1.run.app",socket:"wss://graphen-agentic-workflow-dev-21193779403.asia-east1.run.app"}}get debug(){return this.config.debug??!0}constructor(t){this.config=t}}var vn=function(t,e,r,n){for(var o=t.length,i=r+(n?1:-1);n?i--:++i<o;)if(e(t[i],i,t))return i;return-1},pn=function(t){return t!=t},bn=function(t,e,r){for(var n=r-1,o=t.length;++n<o;)if(t[n]===e)return n;return-1};var yn=E,_n=Gt,dn=Ct;var gn=/\s/;var jn=function(t){for(var e=t.length;e--&&gn.test(t.charAt(e)););return e},On=/^\s+/;var Sn=function(t){return t?t.slice(0,jn(t)+1).replace(On,""):t},wn=m,An=Pe,En=/^[-+]0x[0-9a-f]+$/i,mn=/^0b[01]+$/i,Nn=/^0o[0-7]+$/i,Dn=parseInt;var Rn=function(t){if("number"==typeof t)return t;if(An(t))return NaN;if(wn(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=wn(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Sn(t);var r=mn.test(t);return r||Nn.test(t)?Dn(t.slice(2),r?2:8):En.test(t)?NaN:+t},kn=1/0;var Mn=function(t){return t?(t=Rn(t))===kn||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0};var In=Wr;var Ln=function(t,e){return In(e,function(e){return t[e]})},Pn=we;var Cn=function(t,e,r){return e==e?bn(t,e,r):vn(t,pn,r)},Tn=St,Un=function(t){return"string"==typeof t||!_n(t)&&dn(t)&&"[object String]"==yn(t)},xn=function(t){var e=Mn(t),r=e%1;return e==e?r?e-r:e:0},Fn=function(t){return null==t?[]:Ln(t,Pn(t))},zn=Math.max;var Wn=u(function(t,e,r,n){t=Tn(t)?t:Fn(t),r=r&&!n?xn(r):0;var o=t.length;return r<0&&(r=zn(o+r,0)),Un(t)?r<=o&&t.indexOf(e,r)>-1:!!o&&Cn(t,e,r)>-1});const $n={debug:()=>{},info:()=>{},error:()=>{},warn:()=>{},fatal:()=>{}};function Bn(){return t().format("yyyy-MM-DD[T]HH:mm:ss")}function Gn(t){const{info:e,error:r,warn:n,debug:o,fatal:i}=function(t){return void 0===t||"all"===t?{error:!0,warn:!0,info:!0,debug:!0,fatal:!0}:"none"===t?{error:!1,warn:!1,info:!1,debug:!1,fatal:!1}:"boolean"==typeof t?{error:t,warn:t,info:t,debug:t,fatal:t}:{debug:Wn(t,"debug"),fatal:Wn(t,"fatal"),error:Wn(t,"error"),warn:Wn(t,"warn"),info:Wn(t,"info")}}(t);o&&($n.debug=(...t)=>{const e=Bn();console.log(`[Aiia::debug_${e}_]`,...t)}),e&&($n.info=(...t)=>{const e=Bn();console.log(`[Aiia::info_${e}_]`,...t)}),n&&($n.warn=(...t)=>{const e=Bn();console.warn(`[Aiia::warn_${e}_]`,...t)}),r&&($n.error=(...t)=>{const e=Bn();console.error(`[Aiia::error_${e}_]`,...t)}),i&&($n.fatal=(...t)=>{const e=Bn();console.error(`[Aiia::fatal_${e}_]`,...t)})}var Vn=_r;var Xn=_r,Yn=dr,qn=Pr;var Hn=_r,Qn=function(){this.__data__=new Vn,this.size=0},Kn=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},Jn=function(t){return this.__data__.get(t)},Zn=function(t){return this.__data__.has(t)},to=function(t,e){var r=this.__data__;if(r instanceof Xn){var n=r.__data__;if(!Yn||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new qn(n)}return r.set(t,e),this.size=r.size,this};function eo(t){var e=this.__data__=new Hn(t);this.size=e.size}eo.prototype.clear=Qn,eo.prototype.delete=Kn,eo.prototype.get=Jn,eo.prototype.has=Zn,eo.prototype.set=to;var ro=eo;var no=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t},oo=at,io=we;var ao=function(t,e){return t&&oo(e,io(e),t)};var so=m,co=Lt,uo=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e},fo=Object.prototype.hasOwnProperty;var lo=pe,ho=function(t){if(!so(t))return uo(t);var e=co(t),r=[];for(var n in t)("constructor"!=n||!e&&fo.call(t,n))&&r.push(n);return r},vo=St;var po=function(t){return vo(t)?lo(t,!0):ho(t)},bo=at,yo=po;var _o=function(t,e){return t&&bo(e,yo(e),t)},go={exports:{}};!function(t,e){var r=v,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n?r.Buffer:void 0,a=i?i.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var r=t.length,n=a?a(r):new t.constructor(r);return t.copy(n),n}}(go,go.exports);var jo=go.exports;var Oo=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e};var So=function(){return[]},wo=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var a=t[r];e(a,r,t)&&(i[o++]=a)}return i},Ao=So,Eo=Object.prototype.propertyIsEnumerable,mo=Object.getOwnPropertySymbols,No=mo?function(t){return null==t?[]:(t=Object(t),wo(mo(t),function(e){return Eo.call(t,e)}))}:Ao,Do=at,Ro=No;var ko=function(t,e){return Do(t,Ro(t),e)};var Mo=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},Io=be(Object.getPrototypeOf,Object),Lo=Mo,Po=Io,Co=No,To=So,Uo=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Lo(e,Co(t)),t=Po(t);return e}:To,xo=at,Fo=Uo;var zo=function(t,e){return xo(t,Fo(t),e)},Wo=Mo,$o=Gt;var Bo=function(t,e,r){var n=e(t);return $o(t)?n:Wo(n,r(t))},Go=Bo,Vo=No,Xo=we;var Yo=function(t){return Go(t,Xo,Vo)},qo=Bo,Ho=Uo,Qo=po;var Ko=function(t){return qo(t,Qo,Ho)},Jo=q(v,"DataView"),Zo=dr,ti=q(v,"Promise"),ei=q(v,"Set"),ri=q(v,"WeakMap"),ni=E,oi=C,ii="[object Map]",ai="[object Promise]",si="[object Set]",ci="[object WeakMap]",ui="[object DataView]",fi=oi(Jo),li=oi(Zo),hi=oi(ti),vi=oi(ei),pi=oi(ri),bi=ni;(Jo&&bi(new Jo(new ArrayBuffer(1)))!=ui||Zo&&bi(new Zo)!=ii||ti&&bi(ti.resolve())!=ai||ei&&bi(new ei)!=si||ri&&bi(new ri)!=ci)&&(bi=function(t){var e=ni(t),r="[object Object]"==e?t.constructor:void 0,n=r?oi(r):"";if(n)switch(n){case fi:return ui;case li:return ii;case hi:return ai;case vi:return si;case pi:return ci}return e});var yi=bi,_i=Object.prototype.hasOwnProperty;var di=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&_i.call(t,"index")&&(r.index=t.index,r.input=t.input),r},gi=v.Uint8Array,ji=gi;var Oi=function(t){var e=new t.constructor(t.byteLength);return new ji(e).set(new ji(t)),e},Si=Oi;var wi=function(t,e){var r=e?Si(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)},Ai=/\w*$/;var Ei=function(t){var e=new t.constructor(t.source,Ai.exec(t));return e.lastIndex=t.lastIndex,e},mi=p?p.prototype:void 0,Ni=mi?mi.valueOf:void 0;var Di=Oi;var Ri=Oi,ki=wi,Mi=Ei,Ii=function(t){return Ni?Object(Ni.call(t)):{}},Li=function(t,e){var r=e?Di(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)};var Pi=function(t,e,r){var n=t.constructor;switch(e){case"[object ArrayBuffer]":return Ri(t);case"[object Boolean]":case"[object Date]":return new n(+t);case"[object DataView]":return ki(t,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Li(t,r);case"[object Map]":case"[object Set]":return new n;case"[object Number]":case"[object String]":return new n(t);case"[object RegExp]":return Mi(t);case"[object Symbol]":return Ii(t)}},Ci=m,Ti=Object.create,Ui=function(){function t(){}return function(e){if(!Ci(e))return{};if(Ti)return Ti(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),xi=Io,Fi=Lt;var zi=function(t){return"function"!=typeof t.constructor||Fi(t)?{}:Ui(xi(t))},Wi=yi,$i=Ct;var Bi=function(t){return $i(t)&&"[object Map]"==Wi(t)},Gi=te,Vi=re&&re.isMap,Xi=Vi?Gi(Vi):Bi,Yi=yi,qi=Ct;var Hi=function(t){return qi(t)&&"[object Set]"==Yi(t)},Qi=te,Ki=re&&re.isSet,Ji=Ki?Qi(Ki):Hi,Zi=ro,ta=no,ea=nt,ra=ao,na=_o,oa=jo,ia=Oo,aa=ko,sa=zo,ca=Yo,ua=Ko,fa=yi,la=di,ha=Pi,va=zi,pa=Gt,ba=qt,ya=Xi,_a=m,da=Ji,ga=we,ja=po,Oa="[object Arguments]",Sa="[object Function]",wa="[object Object]",Aa={};Aa[Oa]=Aa["[object Array]"]=Aa["[object ArrayBuffer]"]=Aa["[object DataView]"]=Aa["[object Boolean]"]=Aa["[object Date]"]=Aa["[object Float32Array]"]=Aa["[object Float64Array]"]=Aa["[object Int8Array]"]=Aa["[object Int16Array]"]=Aa["[object Int32Array]"]=Aa["[object Map]"]=Aa["[object Number]"]=Aa[wa]=Aa["[object RegExp]"]=Aa["[object Set]"]=Aa["[object String]"]=Aa["[object Symbol]"]=Aa["[object Uint8Array]"]=Aa["[object Uint8ClampedArray]"]=Aa["[object Uint16Array]"]=Aa["[object Uint32Array]"]=!0,Aa["[object Error]"]=Aa[Sa]=Aa["[object WeakMap]"]=!1;var Ea=function t(e,r,n,o,i,a){var s,c=1&r,u=2&r,f=4&r;if(n&&(s=i?n(e,o,i,a):n(e)),void 0!==s)return s;if(!_a(e))return e;var l=pa(e);if(l){if(s=la(e),!c)return ia(e,s)}else{var h=fa(e),v=h==Sa||"[object GeneratorFunction]"==h;if(ba(e))return oa(e,c);if(h==wa||h==Oa||v&&!i){if(s=u||v?{}:va(e),!c)return u?sa(e,na(s,e)):aa(e,ra(s,e))}else{if(!Aa[h])return i?e:{};s=ha(e,h,c)}}a||(a=new Zi);var p=a.get(e);if(p)return p;a.set(e,s),da(e)?e.forEach(function(o){s.add(t(o,r,n,o,e,a))}):ya(e)&&e.forEach(function(o,i){s.set(i,t(o,r,n,i,e,a))});var b=l?void 0:(f?u?ua:ca:u?ja:ga)(e);return ta(b||e,function(o,i){b&&(o=e[i=o]),ea(s,i,t(o,r,n,i,e,a))}),s};var ma=on,Na=function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+e];return i};var Da=function(t,e){return e.length<2?t:ma(t,Na(e,0,-1))},Ra=Zr,ka=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0},Ma=Da,Ia=en;var La=function(t,e){return e=Ra(e,t),null==(t=Ma(t,e))||delete t[Ia(ka(e))]},Pa=E,Ca=Io,Ta=Ct,Ua=Function.prototype,xa=Object.prototype,Fa=Ua.toString,za=xa.hasOwnProperty,Wa=Fa.call(Object);var $a=function(t){if(!Ta(t)||"[object Object]"!=Pa(t))return!1;var e=Ca(t);if(null===e)return!0;var r=za.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&Fa.call(r)==Wa};var Ba=function(t){return $a(t)?void 0:t},Ga=Bt,Va=Gt,Xa=p?p.isConcatSpreadable:void 0;var Ya=Mo,qa=function(t){return Va(t)||Ga(t)||!!(Xa&&t&&t[Xa])};var Ha=function t(e,r,n,o,i){var a=-1,s=e.length;for(n||(n=qa),i||(i=[]);++a<s;){var c=e[a];r>0&&n(c)?r>1?t(c,r-1,n,o,i):Ya(i,c):o||(i[i.length]=c)}return i},Qa=Ha;var Ka=function(t){return(null==t?0:t.length)?Qa(t,1):[]},Ja=ft,Za=bt;var ts=Wr,es=Ea,rs=La,ns=Zr,os=at,is=Ba,as=Ko,ss=function(t){return Za(Ja(t,void 0,Ka),t+"")}(function(t,e){var r={};if(null==t)return r;var n=!1;e=ts(e,function(e){return e=ns(e,t),n||(n=e.length>1),e}),os(t,as(t),r),n&&(r=es(r,7,is));for(var o=e.length;o--;)rs(r,e[o]);return r}),cs=u(ss);const us=new class{AppName;platform;isMAC;isWIN;isLINUX;saveFolder;homedir;appFolder;constructor(t){switch(this.AppName=t,this.platform=process.platform,this.homedir=r.homedir(),this.platform){case"darwin":this.isMAC=!0,this.isWIN=!1,this.isLINUX=!1,this.saveFolder=n.join(this.homedir,"Library","Application Support");break;case"win32":this.isMAC=!1,this.isWIN=!0,this.isLINUX=!1,this.saveFolder=process.env.APPDATA||n.join(this.homedir,"AppData","Roaming");break;case"linux":this.isMAC=!1,this.isWIN=!1,this.isLINUX=!0,this.saveFolder=process.env.XDG_CONFIG_HOME||n.join(this.homedir,".config");break;default:console.log(`當前系統是未知的平台: ${this.platform}`),this.isMAC=!1,this.isWIN=!1,this.isLINUX=!1,this.saveFolder=this.homedir}this.appFolder=n.join(this.saveFolder,this.AppName),this.folderCheck(this.appFolder)}addPath(...t){return n.join(...t)}folderCheck(t){e.mkdirSync(t,{recursive:!0})}fileCheck(t){e.existsSync(t)||e.writeFileSync(t,"",{encoding:"utf8"})}}("aiia-sdk");class fs{type="node";filePath;fileName;constructor(){this.fileName="storage.json",this.filePath=us.addPath(us.appFolder,this.fileName),us.fileCheck(this.filePath)}getFileDataSync(){const t=e.readFileSync(this.filePath,"utf8");try{return JSON.parse(t)}catch(t){return{}}}setFileDataSync(t){try{const r=JSON.stringify(t);e.writeFileSync(this.filePath,r,"utf8")}catch(t){}}async getFileData(){return new Promise(t=>{e.readFile(this.filePath,"utf8",(e,r)=>{if(e)t({});else try{t(JSON.parse(r))}catch(e){t({})}})})}async setFileData(t){return new Promise(r=>{try{const n=JSON.stringify(t);e.writeFile(this.filePath,n,"utf8",t=>{r()})}catch(t){}})}async getItem(t){return(await this.getFileData())[t]??null}async setItem(t,e){const r=await this.getFileData();r[t]=e,await this.setFileData(r)}async removeItem(t){const e=await this.getFileData(),r=cs(e,t);await this.setFileData(r)}async clear(){await this.setFileData({})}getItemSync(t){return this.getFileDataSync()[t]??null}setItemSync(t,e){const r=this.getFileDataSync();r[t]=e,this.setFileDataSync(r)}removeItemSync(t){const e=cs(this.getFileDataSync(),t);this.setFileDataSync(e)}clearSync(){this.setFileDataSync({})}}var ls=Pr,hs=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},vs=function(t){return this.__data__.has(t)};function ps(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new ls;++e<r;)this.add(t[e])}ps.prototype.add=ps.prototype.push=hs,ps.prototype.has=vs;var bs=ps,ys=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},_s=function(t,e){return t.has(e)};var ds=function(t,e,r,n,o,i){var a=1&r,s=t.length,c=e.length;if(s!=c&&!(a&&c>s))return!1;var u=i.get(t),f=i.get(e);if(u&&f)return u==e&&f==t;var l=-1,h=!0,v=2&r?new bs:void 0;for(i.set(t,e),i.set(e,t);++l<s;){var p=t[l],b=e[l];if(n)var y=a?n(b,p,l,e,t,i):n(p,b,l,t,e,i);if(void 0!==y){if(y)continue;h=!1;break}if(v){if(!ys(e,function(t,e){if(!_s(v,e)&&(p===t||o(p,t,r,n,i)))return v.push(e)})){h=!1;break}}else if(p!==b&&!o(p,b,r,n,i)){h=!1;break}}return i.delete(t),i.delete(e),h};var gs=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r};var js=gi,Os=Z,Ss=ds,ws=gs,As=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},Es=p?p.prototype:void 0,ms=Es?Es.valueOf:void 0;var Ns=function(t,e,r,n,o,i,a){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new js(t),new js(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Os(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var s=ws;case"[object Set]":var c=1&n;if(s||(s=As),t.size!=e.size&&!c)return!1;var u=a.get(t);if(u)return u==e;n|=2,a.set(t,e);var f=Ss(s(t),s(e),n,o,i,a);return a.delete(t),f;case"[object Symbol]":if(ms)return ms.call(t)==ms.call(e)}return!1},Ds=Yo,Rs=Object.prototype.hasOwnProperty;var ks=ro,Ms=ds,Is=Ns,Ls=function(t,e,r,n,o,i){var a=1&r,s=Ds(t),c=s.length;if(c!=Ds(e).length&&!a)return!1;for(var u=c;u--;){var f=s[u];if(!(a?f in e:Rs.call(e,f)))return!1}var l=i.get(t),h=i.get(e);if(l&&h)return l==e&&h==t;var v=!0;i.set(t,e),i.set(e,t);for(var p=a;++u<c;){var b=t[f=s[u]],y=e[f];if(n)var _=a?n(y,b,f,e,t,i):n(b,y,f,t,e,i);if(!(void 0===_?b===y||o(b,y,r,n,i):_)){v=!1;break}p||(p="constructor"==f)}if(v&&!p){var d=t.constructor,g=e.constructor;d==g||!("constructor"in t)||!("constructor"in e)||"function"==typeof d&&d instanceof d&&"function"==typeof g&&g instanceof g||(v=!1)}return i.delete(t),i.delete(e),v},Ps=yi,Cs=Gt,Ts=qt,Us=ae,xs="[object Arguments]",Fs="[object Array]",zs="[object Object]",Ws=Object.prototype.hasOwnProperty;var $s=function(t,e,r,n,o,i){var a=Cs(t),s=Cs(e),c=a?Fs:Ps(t),u=s?Fs:Ps(e),f=(c=c==xs?zs:c)==zs,l=(u=u==xs?zs:u)==zs,h=c==u;if(h&&Ts(t)){if(!Ts(e))return!1;a=!0,f=!1}if(h&&!f)return i||(i=new ks),a||Us(t)?Ms(t,e,r,n,o,i):Is(t,e,c,r,n,o,i);if(!(1&r)){var v=f&&Ws.call(t,"__wrapped__"),p=l&&Ws.call(e,"__wrapped__");if(v||p){var b=v?t.value():t,y=p?e.value():e;return i||(i=new ks),o(b,y,r,n,i)}}return!!h&&(i||(i=new ks),Ls(t,e,r,n,o,i))},Bs=Ct;var Gs=function t(e,r,n,o,i){return e===r||(null==e||null==r||!Bs(e)&&!Bs(r)?e!=e&&r!=r:$s(e,r,n,o,t,i))},Vs=ro,Xs=Gs;var Ys=m;var qs=function(t){return t==t&&!Ys(t)},Hs=qs,Qs=we;var Ks=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}},Js=function(t,e,r,n){var o=r.length,i=o,a=!n;if(null==t)return!i;for(t=Object(t);o--;){var s=r[o];if(a&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++o<i;){var c=(s=r[o])[0],u=t[c],f=s[1];if(a&&s[2]){if(void 0===u&&!(c in t))return!1}else{var l=new Vs;if(n)var h=n(u,f,c,t,e,l);if(!(void 0===h?Xs(f,u,3,n,l):h))return!1}}return!0},Zs=function(t){for(var e=Qs(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,Hs(o)]}return e},tc=Ks;var ec=Zr,rc=Bt,nc=Gt,oc=At,ic=gt,ac=en;var sc=function(t,e,r){for(var n=-1,o=(e=ec(e,t)).length,i=!1;++n<o;){var a=ac(e[n]);if(!(i=null!=t&&r(t,a)))break;t=t[a]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&ic(o)&&oc(a,o)&&(nc(t)||rc(t))},cc=function(t,e){return null!=t&&e in Object(t)},uc=sc;var fc=function(t,e){return null!=t&&uc(t,e,cc)},lc=Gs,hc=cn,vc=fc,pc=Fe,bc=qs,yc=Ks,_c=en;var dc=function(t,e){return pc(t)&&bc(e)?yc(_c(t),e):function(r){var n=hc(r,t);return void 0===n&&n===e?vc(r,t):lc(e,n,3)}};var gc=on;var jc=function(t){return function(e){return gc(e,t)}},Oc=function(t){return function(e){return null==e?void 0:e[t]}},Sc=jc,wc=Fe,Ac=en;var Ec=function(t){return wc(t)?Oc(Ac(t)):Sc(t)},mc=function(t){var e=Zs(t);return 1==e.length&&e[0][2]?tc(e[0][0],e[0][1]):function(r){return r===t||Js(r,t,e)}},Nc=dc,Dc=st,Rc=Gt,kc=Ec;var Mc=function(t){return"function"==typeof t?t:null==t?Dc:"object"==typeof t?Rc(t)?Nc(t[0],t[1]):mc(t):kc(t)};var Ic=function(t){return function(e,r,n){for(var o=-1,i=Object(e),a=n(e),s=a.length;s--;){var c=a[t?s:++o];if(!1===r(i[c],c,i))break}return e}}(),Lc=we;var Pc=St;var Cc=function(t,e){return function(r,n){if(null==r)return r;if(!Pc(r))return t(r,n);for(var o=r.length,i=e?o:-1,a=Object(r);(e?i--:++i<o)&&!1!==n(a[i],i,a););return r}}(function(t,e){return t&&Ic(t,e,Lc)}),Tc=St;var Uc=Wr,xc=Mc,Fc=function(t,e){var r=-1,n=Tc(t)?Array(t.length):[];return Cc(t,function(t,o,i){n[++r]=e(t,o,i)}),n},zc=Gt;var Wc,$c=u(function(t,e){return(zc(t)?Uc:Fc)(t,xc(e))});class Bc{instance;controller;constructor(t){this.controller=new AbortController,this.instance=i.create({baseURL:t,signal:this.controller.signal})}async getAccessToken(t,e){const r={license_number:t,token_value:e??""},n=await this.instance.post("/api/v1/license/agent_token",r).then(t=>un(t.data,"token_value","")).catch(()=>null);if(null===n)throw new Error(sn["網絡錯誤"]);if(""===n)throw new Error(sn["獲取權杖失敗"]);return n}async getProjectList(t){const e=await this.instance.post("/api/v1/license/projects",{license_number:t}).then(t=>$c(un(t,"data.projects",[]),({id:t,sub_project_name:e})=>({id:t,name:e}))).catch(t=>null);if(null===e)throw new Error(sn["網絡錯誤"]);if(0===e.length)throw new Error(sn["沒有可用專案"]);return e}onDestory(){this.controller.abort()}}!function(t){t[t.MDN_NORMAL_CLOSURE=1e3]="MDN_NORMAL_CLOSURE",t[t.MDN_GOING_AWAY=1001]="MDN_GOING_AWAY",t[t.MDN_PROTOCOL_ERROR=1002]="MDN_PROTOCOL_ERROR",t[t.MDN_UNSUPPORTED_DATA=1003]="MDN_UNSUPPORTED_DATA",t[t.MDN_RESERVED_1004=1004]="MDN_RESERVED_1004",t[t.MDN_NO_STATUS_RECEIVED=1005]="MDN_NO_STATUS_RECEIVED",t[t.MDN_ABNORMAL_CLOSURE=1006]="MDN_ABNORMAL_CLOSURE",t[t.MDN_INVALID_FRAME_PAYLOAD=1007]="MDN_INVALID_FRAME_PAYLOAD",t[t.MDN_POLICY_VIOLATION=1008]="MDN_POLICY_VIOLATION",t[t.MDN_MESSAGE_TOO_BIG=1009]="MDN_MESSAGE_TOO_BIG",t[t.MDN_MANDATORY_EXTENSION=1010]="MDN_MANDATORY_EXTENSION",t[t.MDN_INTERNAL_ERROR=1011]="MDN_INTERNAL_ERROR",t[t.MDN_SERVICE_RESTART=1012]="MDN_SERVICE_RESTART",t[t.MDN_TRY_AGAIN_LATER=1013]="MDN_TRY_AGAIN_LATER",t[t.MDN_BAD_GATEWAY=1014]="MDN_BAD_GATEWAY",t[t.MDN_TLS_HANDSHAKE=1015]="MDN_TLS_HANDSHAKE",t[t.MANUAL_CLOSE=4001]="MANUAL_CLOSE",t[t.WS_5000_NORAML_CLOSURE=5e3]="WS_5000_NORAML_CLOSURE",t[t.WS_5001_UNAUTHORIZED=5001]="WS_5001_UNAUTHORIZED",t[t.WS_5002_LICENSE_EXPIRED=5002]="WS_5002_LICENSE_EXPIRED",t[t.WS_5003_TOKEN_EXPIRED=5003]="WS_5003_TOKEN_EXPIRED"}(Wc||(Wc={}));class Gc{socket;messageSub;startLinkSub;destorySub;closeSub;get message(){return this.messageSub.asObservable()}get close(){return this.closeSub.asObservable()}get startLink(){return this.startLinkSub.asObservable()}messageQueue=[];isConnected;isStart;constructor(){this.isConnected=!1,this.isStart=!1,this.messageSub=new o.Subject,this.startLinkSub=new o.Subject,this.closeSub=new o.Subject,this.destorySub=new o.Subject}start(t){this.isStart=!0,this.socket=new s(t,{autoPong:!0}),o.fromEvent(this.socket,"open").pipe(o.takeUntil(this.destorySub)).subscribe(t=>{this.isConnected=!0,this.startLinkSub.next(),$n.info("Proxy startup"),this.flushMessageQueue()}),o.fromEvent(this.socket,"message").pipe(o.takeUntil(this.destorySub)).subscribe(t=>{const{data:e}=t;this.messageSub.next(e)}),o.fromEvent(this.socket,"error").pipe(o.takeUntil(this.destorySub)).subscribe(t=>{const{error:e}=t;$n.error("Proxy has some problem",e)}),o.fromEvent(this.socket,"close").pipe(o.takeUntil(this.destorySub)).subscribe(t=>{this.isConnected=!1;const{code:e}=t;switch(e){case Wc.MANUAL_CLOSE:$n.debug("MANUAL_CLOSE stop emit event and reconnecting");break;case Wc.WS_5000_NORAML_CLOSURE:case Wc.MDN_NORMAL_CLOSURE:case Wc.MDN_GOING_AWAY:this.closeSub.next("close"),$n.debug("Safe close connection");break;case Wc.MDN_NO_STATUS_RECEIVED:case Wc.MDN_ABNORMAL_CLOSURE:this.closeSub.next("close"),$n.warn("Cloud disconnect",{code:e},t);break;case Wc.WS_5001_UNAUTHORIZED:case Wc.WS_5002_LICENSE_EXPIRED:this.closeSub.next("no_permissions"),$n.warn("Please contact Graphen");break;case Wc.WS_5003_TOKEN_EXPIRED:this.closeSub.next("reconnect"),$n.debug("Reconnect");break;default:this.closeSub.next("close"),$n.error("Other status always close connection",{code:e})}})}flushMessageQueue(){for(;this.messageQueue.length>0&&this.isConnected;){const t=this.messageQueue.shift();t&&this.socket.send(t)}}send(t){this.isConnected?this.socket.send(t):this.messageQueue.push(t)}onManualClose(){this.isStart&&this.socket?.close(Wc.MANUAL_CLOSE)}onDestory(){this.destorySub.next(),this.destorySub.complete()}}class Vc{sdk;server;get url(){return this.sdk.config.endPoint.socket}get port(){return this.sdk.config.port}get webserver(){return this.sdk.config.webserver}constructor(t){this.sdk=t}start(){this.server=new a.Server(this.webserver,{cors:{origin:"*"}}),this.server.on("connection",t=>{const e=new o.Subject;let r=(n=t.handshake.query.uuid,Vt(n)?un(n,"[0]",void 0):n??void 0);var n;const i=new Gc;$n.debug("client on",t.id),void 0===r?(this.sdk.getProjectList().then(e=>{t.emit("list",e)}),o.fromEvent(t,"uuid").pipe(o.take(1),o.takeUntil(e)).subscribe(n=>{r=n,this.openChannel(r,t,i,e)})):this.openChannel(r,t,i,e),t.on("disconnect",t=>{e.next(),e.complete(),$n.debug("client off",t)})}),void 0===this.webserver&&this.server.listen(this.port)}openChannel(t,e,r,n){o.fromEvent(e,"cloud").pipe(o.takeUntil(n)).subscribe(t=>{r.send(t)}),r.message.pipe(o.takeUntil(n)).subscribe(t=>{e.emit("cloud",t)}),r.close.pipe(o.takeUntil(n)).subscribe(async n=>{switch(n){case"close":case"no_permissions":e.emit("channel",n),r.onDestory();break;case"reconnect":await this.sdk.replaceAccessToken(),r.start(this.getProxySocketURL(t))}}),r.startLink.pipe(o.takeUntil(n)).subscribe(()=>{e.emit("channel","open")}),r.start(this.getProxySocketURL(t))}getProxySocketURL(t){return`${this.url}/v1/chat/project/${this.sdk.accessToken}/${t}`}onDestory(){this.server&&this.server.close()}}class Xc{config;stroage;apiProxy;chat;isStart;destorySub;get destoryObs(){return this.destorySub.asObservable()}access_token;get accessToken(){return this.access_token}constructor(t,e){this.config=t,this.stroage=e,this.isStart=!1,this.destorySub=new o.Subject,this.access_token=e.getItemSync(fn),this.apiProxy=new Bc(this.config.endPoint.api),$n.info("[Initialize] proxy is finished"),this.chat=new Vc(this),$n.info("[Initialize] chat is finished","Start at PORT:",this.config.port)}async start(){if(this.isStart)throw new Error(sn["重複初始化"]);this.isStart=!0,await this.replaceAccessToken(),this.chat.start(),$n.info("Chat service startup")}async replaceAccessToken(){const t=await this.apiProxy.getAccessToken(this.config.license,this.access_token);return this.access_token=t,this.stroage.setItemSync(fn,t),t}async getProjectList(){return await this.apiProxy.getProjectList(this.config.license)}onDestory(){this.apiProxy.onDestory(),this.chat.onDestory(),this.destorySub.next(),this.destorySub.complete(),$n.info("[Destory] core module done")}}exports.aiiaCore=function(t){if(ln){if(void 0===un(t,"license",void 0))throw new Error(sn["未提供憑證"]);$n.info("Initialize necessary modules");const e=new hn(Me({},t));Gn(e.debug),$n.info("config finished");const r=new fs;$n.info("storage finished");const n=new Xc(e,r);return $n.info("core finished"),n.start(),$n.info("Service startup"),()=>{n.onDestory()}}throw new Error(sn["環境錯誤(nodejs)"])};
1
+ "use strict";var t=require("moment"),e=require("socket.io"),r=require("rxjs"),n=require("axios"),o=require("ws"),i=require("fs"),a=require("os"),c=require("path"),s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function u(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var f="object"==typeof s&&s&&s.Object===Object&&s,l=f,h="object"==typeof self&&self&&self.Object===Object&&self,v=l||h||Function("return this")(),p=v.Symbol,b=p,d=Object.prototype,y=d.hasOwnProperty,_=d.toString,g=b?b.toStringTag:void 0;var O=function(t){var e=y.call(t,g),r=t[g];try{t[g]=void 0;var n=!0}catch(t){}var o=_.call(t);return n&&(e?t[g]=r:delete t[g]),o},j=Object.prototype.toString;var S=O,w=function(t){return j.call(t)},m=p?p.toStringTag:void 0;var E=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":m&&m in Object(t)?S(t):w(t)};var A=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},D=E,N=A;var R,k=function(t){if(!N(t))return!1;var e=D(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},M=v["__core-js_shared__"],C=(R=/[^.]+$/.exec(M&&M.keys&&M.keys.IE_PROTO||""))?"Symbol(src)_1."+R:"";var P=function(t){return!!C&&C in t},I=Function.prototype.toString;var L=function(t){if(null!=t){try{return I.call(t)}catch(t){}try{return t+""}catch(t){}}return""},T=k,x=P,U=A,F=L,$=/^\[object .+?Constructor\]$/,W=Function.prototype,z=Object.prototype,G=W.toString,B=z.hasOwnProperty,V=RegExp("^"+G.call(B).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var X=function(t){return!(!U(t)||x(t))&&(T(t)?V:$).test(F(t))},Y=function(t,e){return null==t?void 0:t[e]};var q=function(t,e){var r=Y(t,e);return X(r)?r:void 0},H=q,K=function(){try{var t=H(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Q=K;var J=function(t,e,r){"__proto__"==e&&Q?Q(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};var Z=function(t,e){return t===e||t!=t&&e!=e},tt=J,et=Z,rt=Object.prototype.hasOwnProperty;var nt=function(t,e,r){var n=t[e];rt.call(t,e)&&et(n,r)&&(void 0!==r||e in t)||tt(t,e,r)},ot=nt,it=J;var at=function(t,e,r,n){var o=!r;r||(r={});for(var i=-1,a=e.length;++i<a;){var c=e[i],s=n?n(r[c],t[c],c,r,t):void 0;void 0===s&&(s=t[c]),o?it(r,c,s):ot(r,c,s)}return r};var ct=function(t){return t};var st=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)},ut=Math.max;var ft=function(t,e,r){return e=ut(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=ut(n.length-e,0),a=Array(i);++o<i;)a[o]=n[e+o];o=-1;for(var c=Array(e+1);++o<e;)c[o]=n[o];return c[e]=r(a),st(t,this,c)}};var lt=function(t){return function(){return t}},ht=K,vt=ht?function(t,e){return ht(t,"toString",{configurable:!0,enumerable:!1,value:lt(e),writable:!0})}:ct,pt=Date.now;var bt=function(t){var e=0,r=0;return function(){var n=pt(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(vt),dt=ct,yt=ft,_t=bt;var gt=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},Ot=k,jt=gt;var St=function(t){return null!=t&&jt(t.length)&&!Ot(t)},wt=/^(?:0|[1-9]\d*)$/;var mt=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&wt.test(t))&&t>-1&&t%1==0&&t<e},Et=Z,At=St,Dt=mt,Nt=A;var Rt=function(t,e){return _t(yt(t,e,dt),t+"")},kt=function(t,e,r){if(!Nt(r))return!1;var n=typeof e;return!!("number"==n?At(r)&&Dt(e,r.length):"string"==n&&e in r)&&Et(r[e],t)};var Mt=function(t){return Rt(function(e,r){var n=-1,o=r.length,i=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&kt(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),e=Object(e);++n<o;){var c=r[n];c&&t(e,c,n,i)}return e})},Ct=Object.prototype;var Pt=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ct)};var It=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var Lt=function(t){return null!=t&&"object"==typeof t},Tt=E,xt=Lt;var Ut=function(t){return xt(t)&&"[object Arguments]"==Tt(t)},Ft=Lt,$t=Object.prototype,Wt=$t.hasOwnProperty,zt=$t.propertyIsEnumerable,Gt=Ut(function(){return arguments}())?Ut:function(t){return Ft(t)&&Wt.call(t,"callee")&&!zt.call(t,"callee")},Bt=Array.isArray,Vt=u(Bt),Xt={exports:{}};var Yt=function(){return!1};!function(t,e){var r=v,n=Yt,o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o?r.Buffer:void 0,c=(a?a.isBuffer:void 0)||n;t.exports=c}(Xt,Xt.exports);var qt=Xt.exports,Ht=E,Kt=gt,Qt=Lt,Jt={};Jt["[object Float32Array]"]=Jt["[object Float64Array]"]=Jt["[object Int8Array]"]=Jt["[object Int16Array]"]=Jt["[object Int32Array]"]=Jt["[object Uint8Array]"]=Jt["[object Uint8ClampedArray]"]=Jt["[object Uint16Array]"]=Jt["[object Uint32Array]"]=!0,Jt["[object Arguments]"]=Jt["[object Array]"]=Jt["[object ArrayBuffer]"]=Jt["[object Boolean]"]=Jt["[object DataView]"]=Jt["[object Date]"]=Jt["[object Error]"]=Jt["[object Function]"]=Jt["[object Map]"]=Jt["[object Number]"]=Jt["[object Object]"]=Jt["[object RegExp]"]=Jt["[object Set]"]=Jt["[object String]"]=Jt["[object WeakMap]"]=!1;var Zt=function(t){return Qt(t)&&Kt(t.length)&&!!Jt[Ht(t)]};var te=function(t){return function(e){return t(e)}},ee={exports:{}};!function(t,e){var r=f,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n&&r.process,a=function(){try{var t=o&&o.require&&o.require("util").types;return t||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=a}(ee,ee.exports);var re=ee.exports,ne=Zt,oe=te,ie=re&&re.isTypedArray,ae=ie?oe(ie):ne,ce=It,se=Gt,ue=Bt,fe=qt,le=mt,he=ae,ve=Object.prototype.hasOwnProperty;var pe=function(t,e){var r=ue(t),n=!r&&se(t),o=!r&&!n&&fe(t),i=!r&&!n&&!o&&he(t),a=r||n||o||i,c=a?ce(t.length,String):[],s=c.length;for(var u in t)!e&&!ve.call(t,u)||a&&("length"==u||o&&("offset"==u||"parent"==u)||i&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||le(u,s))||c.push(u);return c};var be=function(t,e){return function(r){return t(e(r))}},de=be(Object.keys,Object),ye=Pt,_e=de,ge=Object.prototype.hasOwnProperty;var Oe=pe,je=function(t){if(!ye(t))return _e(t);var e=[];for(var r in Object(t))ge.call(t,r)&&"constructor"!=r&&e.push(r);return e},Se=St;var we=function(t){return Se(t)?Oe(t):je(t)},me=nt,Ee=at,Ae=Mt,De=St,Ne=Pt,Re=we,ke=Object.prototype.hasOwnProperty,Me=u(Ae(function(t,e){if(Ne(e)||De(e))Ee(e,Re(e),t);else for(var r in e)ke.call(e,r)&&me(t,r,e[r])})),Ce=E,Pe=Lt;var Ie=function(t){return"symbol"==typeof t||Pe(t)&&"[object Symbol]"==Ce(t)},Le=Bt,Te=Ie,xe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ue=/^\w*$/;var Fe=function(t,e){if(Le(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!Te(t))||(Ue.test(t)||!xe.test(t)||null!=e&&t in Object(e))},$e=q(Object,"create"),We=$e;var ze=function(){this.__data__=We?We(null):{},this.size=0};var Ge=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Be=$e,Ve=Object.prototype.hasOwnProperty;var Xe=function(t){var e=this.__data__;if(Be){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return Ve.call(e,t)?e[t]:void 0},Ye=$e,qe=Object.prototype.hasOwnProperty;var He=$e;var Ke=ze,Qe=Ge,Je=Xe,Ze=function(t){var e=this.__data__;return Ye?void 0!==e[t]:qe.call(e,t)},tr=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=He&&void 0===e?"__lodash_hash_undefined__":e,this};function er(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}er.prototype.clear=Ke,er.prototype.delete=Qe,er.prototype.get=Je,er.prototype.has=Ze,er.prototype.set=tr;var rr=er;var nr=function(){this.__data__=[],this.size=0},or=Z;var ir=function(t,e){for(var r=t.length;r--;)if(or(t[r][0],e))return r;return-1},ar=ir,cr=Array.prototype.splice;var sr=ir;var ur=ir;var fr=ir;var lr=nr,hr=function(t){var e=this.__data__,r=ar(e,t);return!(r<0)&&(r==e.length-1?e.pop():cr.call(e,r,1),--this.size,!0)},vr=function(t){var e=this.__data__,r=sr(e,t);return r<0?void 0:e[r][1]},pr=function(t){return ur(this.__data__,t)>-1},br=function(t,e){var r=this.__data__,n=fr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function dr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}dr.prototype.clear=lr,dr.prototype.delete=hr,dr.prototype.get=vr,dr.prototype.has=pr,dr.prototype.set=br;var yr=dr,_r=q(v,"Map"),gr=rr,Or=yr,jr=_r;var Sr=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var wr=function(t,e){var r=t.__data__;return Sr(e)?r["string"==typeof e?"string":"hash"]:r.map},mr=wr;var Er=wr;var Ar=wr;var Dr=wr;var Nr=function(){this.size=0,this.__data__={hash:new gr,map:new(jr||Or),string:new gr}},Rr=function(t){var e=mr(this,t).delete(t);return this.size-=e?1:0,e},kr=function(t){return Er(this,t).get(t)},Mr=function(t){return Ar(this,t).has(t)},Cr=function(t,e){var r=Dr(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function Pr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Pr.prototype.clear=Nr,Pr.prototype.delete=Rr,Pr.prototype.get=kr,Pr.prototype.has=Mr,Pr.prototype.set=Cr;var Ir=Pr,Lr=Ir;function Tr(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a)||i,a};return r.cache=new(Tr.Cache||Lr),r}Tr.Cache=Lr;var xr=Tr;var Ur=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fr=/\\(\\)?/g,$r=function(t){var e=xr(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Ur,function(t,r,n,o){e.push(n?o.replace(Fr,"$1"):r||t)}),e});var Wr=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},zr=Wr,Gr=Bt,Br=Ie,Vr=p?p.prototype:void 0,Xr=Vr?Vr.toString:void 0;var Yr=function t(e){if("string"==typeof e)return e;if(Gr(e))return zr(e,t)+"";if(Br(e))return Xr?Xr.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r},qr=Yr;var Hr=Bt,Kr=Fe,Qr=$r,Jr=function(t){return null==t?"":qr(t)};var Zr=function(t,e){return Hr(t)?t:Kr(t,e)?[t]:Qr(Jr(t))},tn=Ie;var en=function(t){if("string"==typeof t||tn(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},rn=Zr,nn=en;var on=function(t,e){for(var r=0,n=(e=rn(e,t)).length;null!=t&&r<n;)t=t[nn(e[r++])];return r&&r==n?t:void 0},an=on;var cn,sn=function(t,e,r){var n=null==t?void 0:an(t,e);return void 0===n?r:n},un=u(sn);!function(t){t["網絡錯誤"]="ERROR CODE: 500",t["環境錯誤(browser)"]="ERROR CODE: 1001",t["Worklet模組載入失敗"]="ERROR CODE: 1002",t["未獲得媒體裝置權限"]="ERROR CODE: 1003",t["實例已摧毀"]="ERROR CODE: 1004",t["環境錯誤(nodejs)"]="ERROR CODE: 2001",t["未提供憑證"]="ERROR CODE: 2002",t["獲取權杖失敗"]="ERROR CODE: 2003",t["沒有可用專案"]="ERROR CODE: 2004",t["重複初始化"]="ERROR CODE: 2005"}(cn||(cn={}));const fn="access_token",ln="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node;class hn{config;get webserver(){return this.config.webserver}get environment(){return this.config.env}get license(){return this.config.license??""}get port(){return function(t,e){const r=e??NaN;if(t){const e=parseInt(t);return isNaN(e)?r:e}return r}(process.env.PORT,this.config.port??3e3)}get ws_url(){return this.config.ws_url??""}get worklet_url(){return this.config.worklet_url??""}get project(){const{project:t}=Me({},this.config);return void 0===t?{specific:!1}:"string"==typeof t?{name:t,id:t,specific:!1}:Me({},t,{specific:!0})}get endPoint(){return this.environment,{api:"https://aiia-content-management-dev-21193779403.asia-east1.run.app",socket:"wss://graphen-agentic-workflow-dev-21193779403.asia-east1.run.app"}}get debug(){return this.config.debug??!0}get mediaStream(){return this.config.mediaStream}get chunkTimeInSeconds(){return"number"==typeof this.config.chunkTimeInSeconds&&this.config.chunkTimeInSeconds>0?this.config.chunkTimeInSeconds:1}get llmSampleRate(){return"number"==typeof this.config.llmSampleRate&&this.config.llmSampleRate>0?this.config.llmSampleRate:16e3}constructor(t){this.config=t}}var vn=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t};var pn=function(t){return function(e,r,n){for(var o=-1,i=Object(e),a=n(e),c=a.length;c--;){var s=a[t?c:++o];if(!1===r(i[s],s,i))break}return e}}(),bn=we;var dn=St;var yn=function(t,e){return function(r,n){if(null==r)return r;if(!dn(r))return t(r,n);for(var o=r.length,i=e?o:-1,a=Object(r);(e?i--:++i<o)&&!1!==n(a[i],i,a););return r}}(function(t,e){return t&&pn(t,e,bn)}),_n=ct;var gn=vn,On=yn,jn=function(t){return"function"==typeof t?t:_n},Sn=Bt;var wn,mn=u(function(t,e){return(Sn(t)?gn:On)(t,jn(e))});!function(t){t["通道、雲端服務、麥克風都已就緒"]="CODE: 1000",t["未取得媒體裝置權限,請重新設定或忽略此訊息"]="CODE: 1001",t["請訂閱專案列表"]="CODE: 1002",t["初始化必要依賴"]="CODE: 1010",t["指定依賴已完成"]="CODE: 1011",t["啟動SDK"]="CODE: 1012",t["結束SDK"]="CODE: 1013",t["安全的關閉連線"]="CODE: 2000",t["無副作用的關閉連線"]="CODE: 2001",t["與雲端的服務中斷"]="CODE: 2002",t["沒有授權,請聯繫Graphen"]="CODE: 2003",t["自動重新連線連端服務"]="CODE: 2004",t["未預期的斷線,請聯繫Graphen"]="CODE: 2005",t["開始初始化必要模組"]="CODE: 2010",t["指定模組初始化完成"]="CODE: 2011",t["啟動服務"]="CODE: 2012",t["服務結束"]="CODE: 2013"}(wn||(wn={}));const En={code:console.log,debug:console.log,info:console.log,warn:console.warn,error:console.error,fatal:console.error},An=[];function Dn(t){return An.push(t),Dn}const Nn=new Proxy(En,{get(e,r,n){if("string"==typeof r)switch(r){case"debug":case"info":case"error":case"warn":case"fatal":case"code":return(...n)=>{const o=t().format("yyyy-MM-DD[T]HH:mm:ss");mn(An,t=>{t.next(r,o,...n)}),e[r](`[Aiia::${r}_${o}_]`,...n)};default:return}},set:(t,e,r,n)=>!0});class Rn{config;server;memberSub;get port(){return this.config.port}get webserver(){return this.config.webserver}get memberChange(){return this.memberSub.asObservable()}constructor(t){this.config=t,this.memberSub=new r.Subject}start(){this.server=new e.Server(this.webserver,{cors:{origin:"*"}}),this.server.on("connection",t=>{this.memberSub.next({type:"in",socket:t}),Nn.debug("client on",t.id),t.on("disconnect",e=>{this.memberSub.next({type:"out",socket:t}),Nn.debug("client off",e)})}),void 0===this.webserver&&this.server.listen(this.port)}onDestory(){this.server&&this.server.close()}}var kn=yr;var Mn=yr,Cn=_r,Pn=Ir;var In=yr,Ln=function(){this.__data__=new kn,this.size=0},Tn=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},xn=function(t){return this.__data__.get(t)},Un=function(t){return this.__data__.has(t)},Fn=function(t,e){var r=this.__data__;if(r instanceof Mn){var n=r.__data__;if(!Cn||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Pn(n)}return r.set(t,e),this.size=r.size,this};function $n(t){var e=this.__data__=new In(t);this.size=e.size}$n.prototype.clear=Ln,$n.prototype.delete=Tn,$n.prototype.get=xn,$n.prototype.has=Un,$n.prototype.set=Fn;var Wn=$n;var zn=Ir,Gn=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Bn=function(t){return this.__data__.has(t)};function Vn(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new zn;++e<r;)this.add(t[e])}Vn.prototype.add=Vn.prototype.push=Gn,Vn.prototype.has=Bn;var Xn=Vn,Yn=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},qn=function(t,e){return t.has(e)};var Hn=function(t,e,r,n,o,i){var a=1&r,c=t.length,s=e.length;if(c!=s&&!(a&&s>c))return!1;var u=i.get(t),f=i.get(e);if(u&&f)return u==e&&f==t;var l=-1,h=!0,v=2&r?new Xn:void 0;for(i.set(t,e),i.set(e,t);++l<c;){var p=t[l],b=e[l];if(n)var d=a?n(b,p,l,e,t,i):n(p,b,l,t,e,i);if(void 0!==d){if(d)continue;h=!1;break}if(v){if(!Yn(e,function(t,e){if(!qn(v,e)&&(p===t||o(p,t,r,n,i)))return v.push(e)})){h=!1;break}}else if(p!==b&&!o(p,b,r,n,i)){h=!1;break}}return i.delete(t),i.delete(e),h},Kn=v.Uint8Array;var Qn=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r};var Jn=Kn,Zn=Z,to=Hn,eo=Qn,ro=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},no=p?p.prototype:void 0,oo=no?no.valueOf:void 0;var io=function(t,e,r,n,o,i,a){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new Jn(t),new Jn(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Zn(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var c=eo;case"[object Set]":var s=1&n;if(c||(c=ro),t.size!=e.size&&!s)return!1;var u=a.get(t);if(u)return u==e;n|=2,a.set(t,e);var f=to(c(t),c(e),n,o,i,a);return a.delete(t),f;case"[object Symbol]":if(oo)return oo.call(t)==oo.call(e)}return!1};var ao=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},co=ao,so=Bt;var uo=function(t,e,r){var n=e(t);return so(t)?n:co(n,r(t))};var fo=function(){return[]},lo=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var a=t[r];e(a,r,t)&&(i[o++]=a)}return i},ho=fo,vo=Object.prototype.propertyIsEnumerable,po=Object.getOwnPropertySymbols,bo=po?function(t){return null==t?[]:(t=Object(t),lo(po(t),function(e){return vo.call(t,e)}))}:ho,yo=uo,_o=bo,go=we;var Oo=function(t){return yo(t,go,_o)},jo=Oo,So=Object.prototype.hasOwnProperty;var wo=function(t,e,r,n,o,i){var a=1&r,c=jo(t),s=c.length;if(s!=jo(e).length&&!a)return!1;for(var u=s;u--;){var f=c[u];if(!(a?f in e:So.call(e,f)))return!1}var l=i.get(t),h=i.get(e);if(l&&h)return l==e&&h==t;var v=!0;i.set(t,e),i.set(e,t);for(var p=a;++u<s;){var b=t[f=c[u]],d=e[f];if(n)var y=a?n(d,b,f,e,t,i):n(b,d,f,t,e,i);if(!(void 0===y?b===d||o(b,d,r,n,i):y)){v=!1;break}p||(p="constructor"==f)}if(v&&!p){var _=t.constructor,g=e.constructor;_==g||!("constructor"in t)||!("constructor"in e)||"function"==typeof _&&_ instanceof _&&"function"==typeof g&&g instanceof g||(v=!1)}return i.delete(t),i.delete(e),v},mo=q(v,"DataView"),Eo=_r,Ao=q(v,"Promise"),Do=q(v,"Set"),No=q(v,"WeakMap"),Ro=E,ko=L,Mo="[object Map]",Co="[object Promise]",Po="[object Set]",Io="[object WeakMap]",Lo="[object DataView]",To=ko(mo),xo=ko(Eo),Uo=ko(Ao),Fo=ko(Do),$o=ko(No),Wo=Ro;(mo&&Wo(new mo(new ArrayBuffer(1)))!=Lo||Eo&&Wo(new Eo)!=Mo||Ao&&Wo(Ao.resolve())!=Co||Do&&Wo(new Do)!=Po||No&&Wo(new No)!=Io)&&(Wo=function(t){var e=Ro(t),r="[object Object]"==e?t.constructor:void 0,n=r?ko(r):"";if(n)switch(n){case To:return Lo;case xo:return Mo;case Uo:return Co;case Fo:return Po;case $o:return Io}return e});var zo=Wo,Go=Wn,Bo=Hn,Vo=io,Xo=wo,Yo=zo,qo=Bt,Ho=qt,Ko=ae,Qo="[object Arguments]",Jo="[object Array]",Zo="[object Object]",ti=Object.prototype.hasOwnProperty;var ei=function(t,e,r,n,o,i){var a=qo(t),c=qo(e),s=a?Jo:Yo(t),u=c?Jo:Yo(e),f=(s=s==Qo?Zo:s)==Zo,l=(u=u==Qo?Zo:u)==Zo,h=s==u;if(h&&Ho(t)){if(!Ho(e))return!1;a=!0,f=!1}if(h&&!f)return i||(i=new Go),a||Ko(t)?Bo(t,e,r,n,o,i):Vo(t,e,s,r,n,o,i);if(!(1&r)){var v=f&&ti.call(t,"__wrapped__"),p=l&&ti.call(e,"__wrapped__");if(v||p){var b=v?t.value():t,d=p?e.value():e;return i||(i=new Go),o(b,d,r,n,i)}}return!!h&&(i||(i=new Go),Xo(t,e,r,n,o,i))},ri=Lt;var ni=function t(e,r,n,o,i){return e===r||(null==e||null==r||!ri(e)&&!ri(r)?e!=e&&r!=r:ei(e,r,n,o,t,i))},oi=Wn,ii=ni;var ai=A;var ci=function(t){return t==t&&!ai(t)},si=ci,ui=we;var fi=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}},li=function(t,e,r,n){var o=r.length,i=o,a=!n;if(null==t)return!i;for(t=Object(t);o--;){var c=r[o];if(a&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++o<i;){var s=(c=r[o])[0],u=t[s],f=c[1];if(a&&c[2]){if(void 0===u&&!(s in t))return!1}else{var l=new oi;if(n)var h=n(u,f,s,t,e,l);if(!(void 0===h?ii(f,u,3,n,l):h))return!1}}return!0},hi=function(t){for(var e=ui(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,si(o)]}return e},vi=fi;var pi=Zr,bi=Gt,di=Bt,yi=mt,_i=gt,gi=en;var Oi=function(t,e,r){for(var n=-1,o=(e=pi(e,t)).length,i=!1;++n<o;){var a=gi(e[n]);if(!(i=null!=t&&r(t,a)))break;t=t[a]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&_i(o)&&yi(a,o)&&(di(t)||bi(t))},ji=function(t,e){return null!=t&&e in Object(t)},Si=Oi;var wi=function(t,e){return null!=t&&Si(t,e,ji)},mi=ni,Ei=sn,Ai=wi,Di=Fe,Ni=ci,Ri=fi,ki=en;var Mi=function(t,e){return Di(t)&&Ni(e)?Ri(ki(t),e):function(r){var n=Ei(r,t);return void 0===n&&n===e?Ai(r,t):mi(e,n,3)}};var Ci=on;var Pi=function(t){return function(e){return Ci(e,t)}},Ii=function(t){return function(e){return null==e?void 0:e[t]}},Li=Pi,Ti=Fe,xi=en;var Ui=function(t){return Ti(t)?Ii(xi(t)):Li(t)},Fi=function(t){var e=hi(t);return 1==e.length&&e[0][2]?vi(e[0][0],e[0][1]):function(r){return r===t||li(r,t,e)}},$i=Mi,Wi=ct,zi=Bt,Gi=Ui;var Bi=yn,Vi=St;var Xi=Wr,Yi=function(t){return"function"==typeof t?t:null==t?Wi:"object"==typeof t?zi(t)?$i(t[0],t[1]):Fi(t):Gi(t)},qi=function(t,e){var r=-1,n=Vi(t)?Array(t.length):[];return Bi(t,function(t,o,i){n[++r]=e(t,o,i)}),n},Hi=Bt;var Ki,Qi=u(function(t,e){return(Hi(t)?Xi:qi)(t,Yi(e))});class Ji{instance;controller;constructor(t){this.controller=new AbortController,this.instance=n.create({baseURL:t,signal:this.controller.signal})}async getAccessToken(t,e){const r={license_number:t,token_value:e??""},n=await this.instance.post("/api/v1/license/agent_token",r).then(t=>un(t.data,"token_value","")).catch(()=>null);if(null===n)throw new Error(cn["網絡錯誤"]);if(""===n)throw new Error(cn["獲取權杖失敗"]);return n}async getProjectList(t){const e=await this.instance.post("/api/v1/license/projects",{license_number:t}).then(t=>Qi(un(t,"data.projects",[]),({id:t,sub_project_name:e})=>({id:t,name:e}))).catch(t=>null);if(null===e)throw new Error(cn["網絡錯誤"]);if(0===e.length)throw new Error(cn["沒有可用專案"]);return e}onDestory(){this.controller.abort()}}!function(t){t[t.MDN_NORMAL_CLOSURE=1e3]="MDN_NORMAL_CLOSURE",t[t.MDN_GOING_AWAY=1001]="MDN_GOING_AWAY",t[t.MDN_PROTOCOL_ERROR=1002]="MDN_PROTOCOL_ERROR",t[t.MDN_UNSUPPORTED_DATA=1003]="MDN_UNSUPPORTED_DATA",t[t.MDN_RESERVED_1004=1004]="MDN_RESERVED_1004",t[t.MDN_NO_STATUS_RECEIVED=1005]="MDN_NO_STATUS_RECEIVED",t[t.MDN_ABNORMAL_CLOSURE=1006]="MDN_ABNORMAL_CLOSURE",t[t.MDN_INVALID_FRAME_PAYLOAD=1007]="MDN_INVALID_FRAME_PAYLOAD",t[t.MDN_POLICY_VIOLATION=1008]="MDN_POLICY_VIOLATION",t[t.MDN_MESSAGE_TOO_BIG=1009]="MDN_MESSAGE_TOO_BIG",t[t.MDN_MANDATORY_EXTENSION=1010]="MDN_MANDATORY_EXTENSION",t[t.MDN_INTERNAL_ERROR=1011]="MDN_INTERNAL_ERROR",t[t.MDN_SERVICE_RESTART=1012]="MDN_SERVICE_RESTART",t[t.MDN_TRY_AGAIN_LATER=1013]="MDN_TRY_AGAIN_LATER",t[t.MDN_BAD_GATEWAY=1014]="MDN_BAD_GATEWAY",t[t.MDN_TLS_HANDSHAKE=1015]="MDN_TLS_HANDSHAKE",t[t.MANUAL_CLOSE=4001]="MANUAL_CLOSE",t[t.WS_5000_NORAML_CLOSURE=5e3]="WS_5000_NORAML_CLOSURE",t[t.WS_5001_UNAUTHORIZED=5001]="WS_5001_UNAUTHORIZED",t[t.WS_5002_LICENSE_EXPIRED=5002]="WS_5002_LICENSE_EXPIRED",t[t.WS_5003_TOKEN_EXPIRED=5003]="WS_5003_TOKEN_EXPIRED"}(Ki||(Ki={}));class Zi{socket;messageSub;linkStartSub;destorySub;closeSub;get message(){return this.messageSub.asObservable()}get close(){return this.closeSub.asObservable()}get linkStart(){return this.linkStartSub.asObservable()}messageQueue=[];isConnected;constructor(){this.isConnected=!1,this.messageSub=new r.Subject,this.linkStartSub=new r.Subject,this.closeSub=new r.Subject,this.destorySub=new r.Subject}start(t){this.socket=new o(t,{autoPong:!0}),r.fromEvent(this.socket,"open").pipe(r.takeUntil(this.destorySub)).subscribe(()=>{this.isConnected=!0,this.linkStartSub.next(),Nn.code(wn["啟動服務"],"proxy"),this.flushMessageQueue()}),r.fromEvent(this.socket,"message").pipe(r.takeUntil(this.destorySub)).subscribe(t=>{const{data:e}=t;this.messageSub.next(e)}),r.fromEvent(this.socket,"error").pipe(r.takeUntil(this.destorySub)).subscribe(t=>{const{error:e}=t;Nn.error("Proxy has some problem",e)}),r.fromEvent(this.socket,"close").pipe(r.takeUntil(this.destorySub)).subscribe(t=>{this.isConnected=!1;const{code:e,reason:r}=t;switch(e){case Ki.MANUAL_CLOSE:Nn.code(wn["無副作用的關閉連線"]);break;case Ki.WS_5000_NORAML_CLOSURE:case Ki.MDN_NORMAL_CLOSURE:case Ki.MDN_GOING_AWAY:this.closeSub.next("close"),Nn.code(wn["安全的關閉連線"]);break;case Ki.MDN_NO_STATUS_RECEIVED:case Ki.MDN_ABNORMAL_CLOSURE:this.closeSub.next("close"),Nn.code(wn["與雲端的服務中斷"],{code:e,reason:r});break;case Ki.WS_5001_UNAUTHORIZED:case Ki.WS_5002_LICENSE_EXPIRED:this.closeSub.next("no_permissions"),Nn.code(wn["沒有授權,請聯繫Graphen"]);break;case Ki.WS_5003_TOKEN_EXPIRED:this.closeSub.next("reconnect"),Nn.code(wn["自動重新連線連端服務"]);break;default:this.closeSub.next("close"),Nn.code(wn["未預期的斷線,請聯繫Graphen"],{code:e,reason:r})}})}reconnect(t){this.onDestory(),this.destorySub=new r.Subject,this.start(t)}flushMessageQueue(){for(;this.messageQueue.length>0&&this.isConnected&&void 0!==this.socket;){const t=this.messageQueue.shift();t&&this.socket.send(t)}}send(t){this.isConnected&&void 0!==this.socket?this.socket.send(t):this.messageQueue.push(t)}onClose(){this.socket?.close(Ki.MANUAL_CLOSE)}onDestory(){this.destorySub.next(),this.destorySub.complete()}}var ta=at,ea=we;var ra=function(t,e){return t&&ta(e,ea(e),t)};var na=A,oa=Pt,ia=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e},aa=Object.prototype.hasOwnProperty;var ca=pe,sa=function(t){if(!na(t))return ia(t);var e=oa(t),r=[];for(var n in t)("constructor"!=n||!e&&aa.call(t,n))&&r.push(n);return r},ua=St;var fa=function(t){return ua(t)?ca(t,!0):sa(t)},la=at,ha=fa;var va=function(t,e){return t&&la(e,ha(e),t)},pa={exports:{}};!function(t,e){var r=v,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n?r.Buffer:void 0,a=i?i.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var r=t.length,n=a?a(r):new t.constructor(r);return t.copy(n),n}}(pa,pa.exports);var ba=pa.exports;var da=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e},ya=at,_a=bo;var ga=function(t,e){return ya(t,_a(t),e)},Oa=be(Object.getPrototypeOf,Object),ja=ao,Sa=Oa,wa=bo,ma=fo,Ea=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)ja(e,wa(t)),t=Sa(t);return e}:ma,Aa=at,Da=Ea;var Na=function(t,e){return Aa(t,Da(t),e)},Ra=uo,ka=Ea,Ma=fa;var Ca=function(t){return Ra(t,Ma,ka)},Pa=Object.prototype.hasOwnProperty;var Ia=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&Pa.call(t,"index")&&(r.index=t.index,r.input=t.input),r},La=Kn;var Ta=function(t){var e=new t.constructor(t.byteLength);return new La(e).set(new La(t)),e},xa=Ta;var Ua=function(t,e){var r=e?xa(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)},Fa=/\w*$/;var $a=function(t){var e=new t.constructor(t.source,Fa.exec(t));return e.lastIndex=t.lastIndex,e},Wa=p?p.prototype:void 0,za=Wa?Wa.valueOf:void 0;var Ga=Ta;var Ba=Ta,Va=Ua,Xa=$a,Ya=function(t){return za?Object(za.call(t)):{}},qa=function(t,e){var r=e?Ga(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)};var Ha=function(t,e,r){var n=t.constructor;switch(e){case"[object ArrayBuffer]":return Ba(t);case"[object Boolean]":case"[object Date]":return new n(+t);case"[object DataView]":return Va(t,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return qa(t,r);case"[object Map]":case"[object Set]":return new n;case"[object Number]":case"[object String]":return new n(t);case"[object RegExp]":return Xa(t);case"[object Symbol]":return Ya(t)}},Ka=A,Qa=Object.create,Ja=function(){function t(){}return function(e){if(!Ka(e))return{};if(Qa)return Qa(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),Za=Oa,tc=Pt;var ec=function(t){return"function"!=typeof t.constructor||tc(t)?{}:Ja(Za(t))},rc=zo,nc=Lt;var oc=function(t){return nc(t)&&"[object Map]"==rc(t)},ic=te,ac=re&&re.isMap,cc=ac?ic(ac):oc,sc=zo,uc=Lt;var fc=function(t){return uc(t)&&"[object Set]"==sc(t)},lc=te,hc=re&&re.isSet,vc=hc?lc(hc):fc,pc=Wn,bc=vn,dc=nt,yc=ra,_c=va,gc=ba,Oc=da,jc=ga,Sc=Na,wc=Oo,mc=Ca,Ec=zo,Ac=Ia,Dc=Ha,Nc=ec,Rc=Bt,kc=qt,Mc=cc,Cc=A,Pc=vc,Ic=we,Lc=fa,Tc="[object Arguments]",xc="[object Function]",Uc="[object Object]",Fc={};Fc[Tc]=Fc["[object Array]"]=Fc["[object ArrayBuffer]"]=Fc["[object DataView]"]=Fc["[object Boolean]"]=Fc["[object Date]"]=Fc["[object Float32Array]"]=Fc["[object Float64Array]"]=Fc["[object Int8Array]"]=Fc["[object Int16Array]"]=Fc["[object Int32Array]"]=Fc["[object Map]"]=Fc["[object Number]"]=Fc[Uc]=Fc["[object RegExp]"]=Fc["[object Set]"]=Fc["[object String]"]=Fc["[object Symbol]"]=Fc["[object Uint8Array]"]=Fc["[object Uint8ClampedArray]"]=Fc["[object Uint16Array]"]=Fc["[object Uint32Array]"]=!0,Fc["[object Error]"]=Fc[xc]=Fc["[object WeakMap]"]=!1;var $c=function t(e,r,n,o,i,a){var c,s=1&r,u=2&r,f=4&r;if(n&&(c=i?n(e,o,i,a):n(e)),void 0!==c)return c;if(!Cc(e))return e;var l=Rc(e);if(l){if(c=Ac(e),!s)return Oc(e,c)}else{var h=Ec(e),v=h==xc||"[object GeneratorFunction]"==h;if(kc(e))return gc(e,s);if(h==Uc||h==Tc||v&&!i){if(c=u||v?{}:Nc(e),!s)return u?Sc(e,_c(c,e)):jc(e,yc(c,e))}else{if(!Fc[h])return i?e:{};c=Dc(e,h,s)}}a||(a=new pc);var p=a.get(e);if(p)return p;a.set(e,c),Pc(e)?e.forEach(function(o){c.add(t(o,r,n,o,e,a))}):Mc(e)&&e.forEach(function(o,i){c.set(i,t(o,r,n,i,e,a))});var b=l?void 0:(f?u?mc:wc:u?Lc:Ic)(e);return bc(b||e,function(o,i){b&&(o=e[i=o]),dc(c,i,t(o,r,n,i,e,a))}),c};var Wc=on,zc=function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+e];return i};var Gc=function(t,e){return e.length<2?t:Wc(t,zc(e,0,-1))},Bc=Zr,Vc=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0},Xc=Gc,Yc=en;var qc=function(t,e){return e=Bc(e,t),null==(t=Xc(t,e))||delete t[Yc(Vc(e))]},Hc=E,Kc=Oa,Qc=Lt,Jc=Function.prototype,Zc=Object.prototype,ts=Jc.toString,es=Zc.hasOwnProperty,rs=ts.call(Object);var ns=function(t){if(!Qc(t)||"[object Object]"!=Hc(t))return!1;var e=Kc(t);if(null===e)return!0;var r=es.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&ts.call(r)==rs};var os=function(t){return ns(t)?void 0:t},is=Gt,as=Bt,cs=p?p.isConcatSpreadable:void 0;var ss=ao,us=function(t){return as(t)||is(t)||!!(cs&&t&&t[cs])};var fs=function t(e,r,n,o,i){var a=-1,c=e.length;for(n||(n=us),i||(i=[]);++a<c;){var s=e[a];r>0&&n(s)?r>1?t(s,r-1,n,o,i):ss(i,s):o||(i[i.length]=s)}return i},ls=fs;var hs=function(t){return(null==t?0:t.length)?ls(t,1):[]},vs=ft,ps=bt;var bs=Wr,ds=$c,ys=qc,_s=Zr,gs=at,Os=os,js=Ca,Ss=function(t){return ps(vs(t,void 0,hs),t+"")}(function(t,e){var r={};if(null==t)return r;var n=!1;e=bs(e,function(e){return e=_s(e,t),n||(n=e.length>1),e}),gs(t,js(t),r),n&&(r=ds(r,7,Os));for(var o=e.length;o--;)ys(r,e[o]);return r}),ws=u(Ss);const ms=new class{AppName;platform;isMAC;isWIN;isLINUX;saveFolder;homedir;appFolder;EOL;constructor(t){switch(this.AppName=t,this.platform=process.platform,this.homedir=a.homedir(),this.EOL=a.EOL,this.platform){case"darwin":this.isMAC=!0,this.isWIN=!1,this.isLINUX=!1,this.saveFolder=c.join(this.homedir,"Library","Application Support");break;case"win32":this.isMAC=!1,this.isWIN=!0,this.isLINUX=!1,this.saveFolder=process.env.APPDATA||c.join(this.homedir,"AppData","Roaming");break;case"linux":this.isMAC=!1,this.isWIN=!1,this.isLINUX=!0,this.saveFolder=process.env.XDG_CONFIG_HOME||c.join(this.homedir,".config");break;default:console.log(`當前系統是未知的平台: ${this.platform}`),this.isMAC=!1,this.isWIN=!1,this.isLINUX=!1,this.saveFolder=this.homedir}this.appFolder=c.join(this.saveFolder,this.AppName),this.folderCheck(this.appFolder)}addPath(...t){return c.join(...t)}folderCheck(t){i.mkdirSync(t,{recursive:!0})}fileCheck(t){i.existsSync(t)||i.writeFileSync(t,"",{encoding:"utf8"})}}("aiia-sdk");class Es{type="node";filePath;fileName;constructor(){this.fileName="storage.json",this.filePath=ms.addPath(ms.appFolder,this.fileName),ms.fileCheck(this.filePath)}getFileDataSync(){const t=i.readFileSync(this.filePath,"utf8");try{return JSON.parse(t)}catch(t){return{}}}setFileDataSync(t){try{const e=JSON.stringify(t);i.writeFileSync(this.filePath,e,"utf8")}catch(t){}}async getFileData(){return new Promise(t=>{i.readFile(this.filePath,"utf8",(e,r)=>{if(e)t({});else try{t(JSON.parse(r))}catch(e){t({})}})})}async setFileData(t){return new Promise(e=>{try{const r=JSON.stringify(t);i.writeFile(this.filePath,r,"utf8",t=>{e()})}catch(t){}})}async getItem(t){return(await this.getFileData())[t]??null}async setItem(t,e){const r=await this.getFileData();r[t]=e,await this.setFileData(r)}async removeItem(t){const e=await this.getFileData(),r=ws(e,t);await this.setFileData(r)}async clear(){await this.setFileData({})}getItemSync(t){return this.getFileDataSync()[t]??null}setItemSync(t,e){const r=this.getFileDataSync();r[t]=e,this.setFileDataSync(r)}removeItemSync(t){const e=ws(this.getFileDataSync(),t);this.setFileDataSync(e)}clearSync(){this.setFileDataSync({})}}class As{filePath;fileName;constructor(){this.fileName="log.txt",this.filePath=ms.addPath(ms.appFolder,this.fileName)}next(t,e,...r){try{const n=r.reduce((t,e)=>{switch(typeof e){case"string":case"number":case"bigint":return`${t} ${e.toString()}`;case"boolean":return`${t} ${e?"true":"false"}`;case"object":try{return`${t} ${JSON.stringify(e)}`}catch(e){return t}case"symbol":case"undefined":case"function":return`${t} [${typeof e}]`}},"");i.appendFileSync(this.filePath,`LOG(${t})__${e}__:: ${n}${ms.EOL}`,{encoding:"utf8"})}catch(t){}}}class Ds{config;constructor(t){this.config=t}onDestory(){}send(t){}start(){}}class Ns{config;stroage;apiProxy;chat;udpProxy;isStart;channelMap;destorySub;access_token;get accessToken(){return this.access_token}constructor(t,e){this.config=t,this.stroage=e,this.isStart=!1,this.destorySub=new r.Subject,this.channelMap=new Map,this.access_token=e.getItemSync(fn),this.apiProxy=new Ji(this.config.endPoint.api),Nn.code(wn["指定模組初始化完成"],"api"),this.chat=new Rn(this.config),Nn.code(wn["指定模組初始化完成"],"chat"),this.udpProxy=new Ds(this.config),Nn.code(wn["指定模組初始化完成"],"udp")}async start(){if(this.isStart)throw new Error(cn["重複初始化"]);this.isStart=!0,await this.replaceAccessToken(),this.chat.memberChange.pipe(r.takeUntil(this.destorySub)).subscribe(({type:t,socket:e})=>{switch(t){case"in":{Nn.debug("member join",e.id);const t=new Zi,o=new r.Subject,i=(n=e.handshake.query.uuid,Vt(n)?un(n,"[0]",void 0):n??void 0);void 0===i?(this.getProjectList().then(t=>{e.emit("list",t)}),r.fromEvent(e,"uuid").pipe(r.take(1),r.takeUntil(o)).subscribe(r=>{this.openChannel(r,e,t,o)})):this.openChannel(i,e,t,o),this.channelMap.set(e.id,()=>{o.next(),o.complete()});break}case"out":Nn.debug("member leave",e.id),this.channelMap.has(e.id)&&(this.channelMap.get(e.id)(),this.channelMap.delete(e.id))}var n}),this.chat.start(),Nn.code(wn["啟動服務"],"chat"),this.udpProxy.start(),Nn.code(wn["啟動服務"],"udp")}async replaceAccessToken(){const t=await this.apiProxy.getAccessToken(this.config.license,this.access_token);return this.access_token=t,this.stroage.setItemSync(fn,t),t}async getProjectList(){return await this.apiProxy.getProjectList(this.config.license)}getProxySocketURL(t){return`${this.config.endPoint.socket}/v1/chat/project/${this.accessToken}/${t}`}openChannel(t,e,n,o){r.fromEvent(e,"cloud").pipe(r.takeUntil(o)).subscribe(t=>{n.send(t)}),n.message.pipe(r.takeUntil(o)).subscribe(t=>{e.emit("cloud",t),this.udpProxy.send(t)}),n.close.pipe(r.takeUntil(o)).subscribe(async r=>{switch(e.emit("channel",r),r){case"close":case"no_permissions":n.onDestory();break;case"reconnect":await this.replaceAccessToken(),n.reconnect(this.getProxySocketURL(t))}}),n.linkStart.pipe(r.takeUntil(o)).subscribe(()=>{e.emit("channel","open")}),o.subscribe(()=>{n.onClose()}),n.start(this.getProxySocketURL(t))}onDestory(){this.apiProxy.onDestory(),this.chat.onDestory(),this.udpProxy.onDestory(),this.destorySub.next(),this.destorySub.complete(),Nn.code(wn["服務結束"])}}exports.aiiaCore=function(t){if(ln){if(void 0===un(t,"license",void 0))throw new Error(cn["未提供憑證"]);!function(t){const{info:e,error:r,warn:n,debug:o,fatal:i,code:a}=function(t){if(void 0===t||"all"===t)return{code:!0,error:!0,warn:!0,info:!0,debug:!0,fatal:!0};if("none"===t)return{error:!1,code:!1,warn:!1,info:!1,debug:!1,fatal:!1};if("boolean"==typeof t)return{code:t,error:t,warn:t,info:t,debug:t,fatal:t};{const e=new Set(t);return{code:e.has("code"),debug:e.has("debug"),fatal:e.has("fatal"),error:e.has("error"),warn:e.has("warn"),info:e.has("info")}}}(t);return a||(En.code=()=>{}),o||(En.debug=()=>{}),e||(En.info=()=>{}),n||(En.warn=()=>{}),r||(En.error=()=>{}),i||(En.fatal=()=>{}),Dn}(un(t,"debug",!0))(new As),Nn.code(wn["開始初始化必要模組"]);const e=new hn(Me({},t));Nn.code(wn["指定模組初始化完成"],"config");const r=new Es;Nn.code(wn["指定模組初始化完成"],"storage");const n=new Ns(e,r);return Nn.code(wn["指定模組初始化完成"],"core"),n.start(),Nn.code(wn["啟動服務"]),()=>{n.onDestory()}}throw new Error(cn["環境錯誤(nodejs)"])};
package/dist/node.d.ts CHANGED
@@ -47,7 +47,7 @@ declare interface InitOptions {
47
47
  * [en]
48
48
  * Extending "socket.io" to your web server
49
49
  */
50
- webserver?: Server | Server_2 | Http2SecureServer | Http2Server;
50
+ webserver?: Webserver;
51
51
  /**
52
52
  * [zh]
53
53
  * 伺服器 port
@@ -81,9 +81,30 @@ declare interface InitOptions {
81
81
  * [en]
82
82
  * Switch message(info, error, warn) dispaly, default: true
83
83
  */
84
- debug?: boolean | "all" | "none" | ("info" | "error" | "warn" | "debug" | "fatal")[];
84
+ debug?: boolean | "all" | "none" | LoggerLevel[];
85
+ mediaStream?: MediaStream;
86
+ /**
87
+ * [zh]
88
+ * 檢測聲音的區塊大小(秒),預設 1 秒
89
+ *
90
+ * [en]
91
+ * Detecting the chunk size of the sound(unit is second), default 1 second.
92
+ */
93
+ chunkTimeInSeconds?: number;
94
+ /**
95
+ * [zh]
96
+ * 指定音訊輸出的採樣率(提供給LLM分析)。不推薦更動
97
+ *
98
+ * [en]
99
+ * Specify the sampling rate of audio output (provided for LLM analysis). Changing is not recommended.
100
+ */
101
+ llmSampleRate?: number;
85
102
  }
86
103
 
87
- export declare type NodeInitOptions = Omit<InitOptions, "project" | "ws_url" | "worklet_url">;
104
+ declare type LoggerLevel = "info" | "error" | "warn" | "debug" | "fatal" | "code";
105
+
106
+ export declare type NodeInitOptions = Omit<InitOptions, "project" | "ws_url" | "worklet_url" | "mediaStream" | "chunkTimeInSeconds" | "llmSampleRate">;
107
+
108
+ declare type Webserver = Server<any, any> | Server_2<any, any> | Http2SecureServer<any, any, any, any> | Http2Server<any, any, any, any>;
88
109
 
89
110
  export { }
package/dist/node.mjs CHANGED
@@ -1 +1 @@
1
- import t from"moment";import e from"fs";import r from"os";import n from"path";import{Subject as o,fromEvent as i,takeUntil as a,take as s}from"rxjs";import c from"axios";import{Server as u}from"socket.io";import f from"ws";var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function h(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var v="object"==typeof l&&l&&l.Object===Object&&l,p=v,b="object"==typeof self&&self&&self.Object===Object&&self,y=p||b||Function("return this")(),_=y.Symbol,d=_,g=Object.prototype,O=g.hasOwnProperty,j=g.toString,w=d?d.toStringTag:void 0;var A=function(t){var e=O.call(t,w),r=t[w];try{t[w]=void 0;var n=!0}catch(t){}var o=j.call(t);return n&&(e?t[w]=r:delete t[w]),o},S=Object.prototype.toString;var m=A,E=function(t){return S.call(t)},N=_?_.toStringTag:void 0;var D=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":N&&N in Object(t)?m(t):E(t)};var R=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},M=D,k=R;var I,L=function(t){if(!k(t))return!1;var e=M(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},P=y["__core-js_shared__"],C=(I=/[^.]+$/.exec(P&&P.keys&&P.keys.IE_PROTO||""))?"Symbol(src)_1."+I:"";var T=function(t){return!!C&&C in t},x=Function.prototype.toString;var U=function(t){if(null!=t){try{return x.call(t)}catch(t){}try{return t+""}catch(t){}}return""},F=L,z=T,W=R,$=U,B=/^\[object .+?Constructor\]$/,G=Function.prototype,V=Object.prototype,X=G.toString,Y=V.hasOwnProperty,H=RegExp("^"+X.call(Y).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var Q=function(t){return!(!W(t)||z(t))&&(F(t)?H:B).test($(t))},K=function(t,e){return null==t?void 0:t[e]};var J=function(t,e){var r=K(t,e);return Q(r)?r:void 0},q=J,Z=function(){try{var t=q(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),tt=Z;var et=function(t,e,r){"__proto__"==e&&tt?tt(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};var rt=function(t,e){return t===e||t!=t&&e!=e},nt=et,ot=rt,it=Object.prototype.hasOwnProperty;var at=function(t,e,r){var n=t[e];it.call(t,e)&&ot(n,r)&&(void 0!==r||e in t)||nt(t,e,r)},st=at,ct=et;var ut=function(t,e,r,n){var o=!r;r||(r={});for(var i=-1,a=e.length;++i<a;){var s=e[i],c=n?n(r[s],t[s],s,r,t):void 0;void 0===c&&(c=t[s]),o?ct(r,s,c):st(r,s,c)}return r};var ft=function(t){return t};var lt=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)},ht=Math.max;var vt=function(t,e,r){return e=ht(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=ht(n.length-e,0),a=Array(i);++o<i;)a[o]=n[e+o];o=-1;for(var s=Array(e+1);++o<e;)s[o]=n[o];return s[e]=r(a),lt(t,this,s)}};var pt=function(t){return function(){return t}},bt=Z,yt=bt?function(t,e){return bt(t,"toString",{configurable:!0,enumerable:!1,value:pt(e),writable:!0})}:ft,_t=Date.now;var dt=function(t){var e=0,r=0;return function(){var n=_t(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(yt),gt=ft,Ot=vt,jt=dt;var wt=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},At=L,St=wt;var mt=function(t){return null!=t&&St(t.length)&&!At(t)},Et=/^(?:0|[1-9]\d*)$/;var Nt=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&Et.test(t))&&t>-1&&t%1==0&&t<e},Dt=rt,Rt=mt,Mt=Nt,kt=R;var It=function(t,e){return jt(Ot(t,e,gt),t+"")},Lt=function(t,e,r){if(!kt(r))return!1;var n=typeof e;return!!("number"==n?Rt(r)&&Mt(e,r.length):"string"==n&&e in r)&&Dt(r[e],t)};var Pt=function(t){return It(function(e,r){var n=-1,o=r.length,i=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&Lt(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),e=Object(e);++n<o;){var s=r[n];s&&t(e,s,n,i)}return e})},Ct=Object.prototype;var Tt=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ct)};var xt=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var Ut=function(t){return null!=t&&"object"==typeof t},Ft=D,zt=Ut;var Wt=function(t){return zt(t)&&"[object Arguments]"==Ft(t)},$t=Ut,Bt=Object.prototype,Gt=Bt.hasOwnProperty,Vt=Bt.propertyIsEnumerable,Xt=Wt(function(){return arguments}())?Wt:function(t){return $t(t)&&Gt.call(t,"callee")&&!Vt.call(t,"callee")},Yt=Array.isArray,Ht=h(Yt),Qt={exports:{}};var Kt=function(){return!1};!function(t,e){var r=y,n=Kt,o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o?r.Buffer:void 0,s=(a?a.isBuffer:void 0)||n;t.exports=s}(Qt,Qt.exports);var Jt=Qt.exports,qt=D,Zt=wt,te=Ut,ee={};ee["[object Float32Array]"]=ee["[object Float64Array]"]=ee["[object Int8Array]"]=ee["[object Int16Array]"]=ee["[object Int32Array]"]=ee["[object Uint8Array]"]=ee["[object Uint8ClampedArray]"]=ee["[object Uint16Array]"]=ee["[object Uint32Array]"]=!0,ee["[object Arguments]"]=ee["[object Array]"]=ee["[object ArrayBuffer]"]=ee["[object Boolean]"]=ee["[object DataView]"]=ee["[object Date]"]=ee["[object Error]"]=ee["[object Function]"]=ee["[object Map]"]=ee["[object Number]"]=ee["[object Object]"]=ee["[object RegExp]"]=ee["[object Set]"]=ee["[object String]"]=ee["[object WeakMap]"]=!1;var re=function(t){return te(t)&&Zt(t.length)&&!!ee[qt(t)]};var ne=function(t){return function(e){return t(e)}},oe={exports:{}};!function(t,e){var r=v,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n&&r.process,a=function(){try{var t=o&&o.require&&o.require("util").types;return t||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=a}(oe,oe.exports);var ie=oe.exports,ae=re,se=ne,ce=ie&&ie.isTypedArray,ue=ce?se(ce):ae,fe=xt,le=Xt,he=Yt,ve=Jt,pe=Nt,be=ue,ye=Object.prototype.hasOwnProperty;var _e=function(t,e){var r=he(t),n=!r&&le(t),o=!r&&!n&&ve(t),i=!r&&!n&&!o&&be(t),a=r||n||o||i,s=a?fe(t.length,String):[],c=s.length;for(var u in t)!e&&!ye.call(t,u)||a&&("length"==u||o&&("offset"==u||"parent"==u)||i&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||pe(u,c))||s.push(u);return s};var de=function(t,e){return function(r){return t(e(r))}},ge=de(Object.keys,Object),Oe=Tt,je=ge,we=Object.prototype.hasOwnProperty;var Ae=_e,Se=function(t){if(!Oe(t))return je(t);var e=[];for(var r in Object(t))we.call(t,r)&&"constructor"!=r&&e.push(r);return e},me=mt;var Ee=function(t){return me(t)?Ae(t):Se(t)},Ne=at,De=ut,Re=Pt,Me=mt,ke=Tt,Ie=Ee,Le=Object.prototype.hasOwnProperty,Pe=h(Re(function(t,e){if(ke(e)||Me(e))De(e,Ie(e),t);else for(var r in e)Le.call(e,r)&&Ne(t,r,e[r])})),Ce=D,Te=Ut;var xe=function(t){return"symbol"==typeof t||Te(t)&&"[object Symbol]"==Ce(t)},Ue=Yt,Fe=xe,ze=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,We=/^\w*$/;var $e=function(t,e){if(Ue(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!Fe(t))||(We.test(t)||!ze.test(t)||null!=e&&t in Object(e))},Be=J(Object,"create"),Ge=Be;var Ve=function(){this.__data__=Ge?Ge(null):{},this.size=0};var Xe=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Ye=Be,He=Object.prototype.hasOwnProperty;var Qe=function(t){var e=this.__data__;if(Ye){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return He.call(e,t)?e[t]:void 0},Ke=Be,Je=Object.prototype.hasOwnProperty;var qe=Be;var Ze=Ve,tr=Xe,er=Qe,rr=function(t){var e=this.__data__;return Ke?void 0!==e[t]:Je.call(e,t)},nr=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=qe&&void 0===e?"__lodash_hash_undefined__":e,this};function or(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}or.prototype.clear=Ze,or.prototype.delete=tr,or.prototype.get=er,or.prototype.has=rr,or.prototype.set=nr;var ir=or;var ar=function(){this.__data__=[],this.size=0},sr=rt;var cr=function(t,e){for(var r=t.length;r--;)if(sr(t[r][0],e))return r;return-1},ur=cr,fr=Array.prototype.splice;var lr=cr;var hr=cr;var vr=cr;var pr=ar,br=function(t){var e=this.__data__,r=ur(e,t);return!(r<0)&&(r==e.length-1?e.pop():fr.call(e,r,1),--this.size,!0)},yr=function(t){var e=this.__data__,r=lr(e,t);return r<0?void 0:e[r][1]},_r=function(t){return hr(this.__data__,t)>-1},dr=function(t,e){var r=this.__data__,n=vr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function gr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}gr.prototype.clear=pr,gr.prototype.delete=br,gr.prototype.get=yr,gr.prototype.has=_r,gr.prototype.set=dr;var Or=gr,jr=J(y,"Map"),wr=ir,Ar=Or,Sr=jr;var mr=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var Er=function(t,e){var r=t.__data__;return mr(e)?r["string"==typeof e?"string":"hash"]:r.map},Nr=Er;var Dr=Er;var Rr=Er;var Mr=Er;var kr=function(){this.size=0,this.__data__={hash:new wr,map:new(Sr||Ar),string:new wr}},Ir=function(t){var e=Nr(this,t).delete(t);return this.size-=e?1:0,e},Lr=function(t){return Dr(this,t).get(t)},Pr=function(t){return Rr(this,t).has(t)},Cr=function(t,e){var r=Mr(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function Tr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Tr.prototype.clear=kr,Tr.prototype.delete=Ir,Tr.prototype.get=Lr,Tr.prototype.has=Pr,Tr.prototype.set=Cr;var xr=Tr,Ur=xr;function Fr(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a)||i,a};return r.cache=new(Fr.Cache||Ur),r}Fr.Cache=Ur;var zr=Fr;var Wr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$r=/\\(\\)?/g,Br=function(t){var e=zr(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Wr,function(t,r,n,o){e.push(n?o.replace($r,"$1"):r||t)}),e});var Gr=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},Vr=Gr,Xr=Yt,Yr=xe,Hr=_?_.prototype:void 0,Qr=Hr?Hr.toString:void 0;var Kr=function t(e){if("string"==typeof e)return e;if(Xr(e))return Vr(e,t)+"";if(Yr(e))return Qr?Qr.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r},Jr=Kr;var qr=Yt,Zr=$e,tn=Br,en=function(t){return null==t?"":Jr(t)};var rn=function(t,e){return qr(t)?t:Zr(t,e)?[t]:tn(en(t))},nn=xe;var on=function(t){if("string"==typeof t||nn(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},an=rn,sn=on;var cn=function(t,e){for(var r=0,n=(e=an(e,t)).length;null!=t&&r<n;)t=t[sn(e[r++])];return r&&r==n?t:void 0},un=cn;var fn,ln=function(t,e,r){var n=null==t?void 0:un(t,e);return void 0===n?r:n},hn=h(ln);!function(t){t["網絡錯誤"]="ERROR CODE: 500",t["環境錯誤(browser)"]="ERROR CODE: 1001",t["Worklet模組載入失敗"]="ERROR CODE: 1002",t["未獲得媒體裝置權限"]="ERROR CODE: 1003",t["實例已摧毀"]="ERROR CODE: 1004",t["環境錯誤(nodejs)"]="ERROR CODE: 2001",t["未提供憑證"]="ERROR CODE: 2002",t["獲取權杖失敗"]="ERROR CODE: 2003",t["沒有可用專案"]="ERROR CODE: 2004",t["重複初始化"]="ERROR CODE: 205"}(fn||(fn={}));const vn="access_token",pn="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node;class bn{config;get webserver(){return this.config.webserver}get environment(){return this.config.env}get license(){return this.config.license??""}get port(){return function(t,e){const r=e??NaN;if(t){const e=parseInt(t);return isNaN(e)?r:e}return r}(process.env.PORT,this.config.port??3e3)}get ws_url(){return this.config.ws_url??""}get worklet_url(){return this.config.worklet_url??""}get project(){const{project:t}=Pe({},this.config);return void 0===t?{specific:!1}:"string"==typeof t?{name:t,id:t,specific:!1}:Pe({},t,{specific:!0})}get endPoint(){return this.environment,{api:"https://aiia-content-management-dev-21193779403.asia-east1.run.app",socket:"wss://graphen-agentic-workflow-dev-21193779403.asia-east1.run.app"}}get debug(){return this.config.debug??!0}constructor(t){this.config=t}}var yn=function(t,e,r,n){for(var o=t.length,i=r+(n?1:-1);n?i--:++i<o;)if(e(t[i],i,t))return i;return-1},_n=function(t){return t!=t},dn=function(t,e,r){for(var n=r-1,o=t.length;++n<o;)if(t[n]===e)return n;return-1};var gn=D,On=Yt,jn=Ut;var wn=/\s/;var An=function(t){for(var e=t.length;e--&&wn.test(t.charAt(e)););return e},Sn=/^\s+/;var mn=function(t){return t?t.slice(0,An(t)+1).replace(Sn,""):t},En=R,Nn=xe,Dn=/^[-+]0x[0-9a-f]+$/i,Rn=/^0b[01]+$/i,Mn=/^0o[0-7]+$/i,kn=parseInt;var In=function(t){if("number"==typeof t)return t;if(Nn(t))return NaN;if(En(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=En(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=mn(t);var r=Rn.test(t);return r||Mn.test(t)?kn(t.slice(2),r?2:8):Dn.test(t)?NaN:+t},Ln=1/0;var Pn=function(t){return t?(t=In(t))===Ln||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0};var Cn=Gr;var Tn=function(t,e){return Cn(e,function(e){return t[e]})},xn=Ee;var Un=function(t,e,r){return e==e?dn(t,e,r):yn(t,_n,r)},Fn=mt,zn=function(t){return"string"==typeof t||!On(t)&&jn(t)&&"[object String]"==gn(t)},Wn=function(t){var e=Pn(t),r=e%1;return e==e?r?e-r:e:0},$n=function(t){return null==t?[]:Tn(t,xn(t))},Bn=Math.max;var Gn=h(function(t,e,r,n){t=Fn(t)?t:$n(t),r=r&&!n?Wn(r):0;var o=t.length;return r<0&&(r=Bn(o+r,0)),zn(t)?r<=o&&t.indexOf(e,r)>-1:!!o&&Un(t,e,r)>-1});const Vn={debug:()=>{},info:()=>{},error:()=>{},warn:()=>{},fatal:()=>{}};function Xn(){return t().format("yyyy-MM-DD[T]HH:mm:ss")}function Yn(t){const{info:e,error:r,warn:n,debug:o,fatal:i}=function(t){return void 0===t||"all"===t?{error:!0,warn:!0,info:!0,debug:!0,fatal:!0}:"none"===t?{error:!1,warn:!1,info:!1,debug:!1,fatal:!1}:"boolean"==typeof t?{error:t,warn:t,info:t,debug:t,fatal:t}:{debug:Gn(t,"debug"),fatal:Gn(t,"fatal"),error:Gn(t,"error"),warn:Gn(t,"warn"),info:Gn(t,"info")}}(t);o&&(Vn.debug=(...t)=>{const e=Xn();console.log(`[Aiia::debug_${e}_]`,...t)}),e&&(Vn.info=(...t)=>{const e=Xn();console.log(`[Aiia::info_${e}_]`,...t)}),n&&(Vn.warn=(...t)=>{const e=Xn();console.warn(`[Aiia::warn_${e}_]`,...t)}),r&&(Vn.error=(...t)=>{const e=Xn();console.error(`[Aiia::error_${e}_]`,...t)}),i&&(Vn.fatal=(...t)=>{const e=Xn();console.error(`[Aiia::fatal_${e}_]`,...t)})}var Hn=Or;var Qn=Or,Kn=jr,Jn=xr;var qn=Or,Zn=function(){this.__data__=new Hn,this.size=0},to=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},eo=function(t){return this.__data__.get(t)},ro=function(t){return this.__data__.has(t)},no=function(t,e){var r=this.__data__;if(r instanceof Qn){var n=r.__data__;if(!Kn||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Jn(n)}return r.set(t,e),this.size=r.size,this};function oo(t){var e=this.__data__=new qn(t);this.size=e.size}oo.prototype.clear=Zn,oo.prototype.delete=to,oo.prototype.get=eo,oo.prototype.has=ro,oo.prototype.set=no;var io=oo;var ao=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t},so=ut,co=Ee;var uo=function(t,e){return t&&so(e,co(e),t)};var fo=R,lo=Tt,ho=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e},vo=Object.prototype.hasOwnProperty;var po=_e,bo=function(t){if(!fo(t))return ho(t);var e=lo(t),r=[];for(var n in t)("constructor"!=n||!e&&vo.call(t,n))&&r.push(n);return r},yo=mt;var _o=function(t){return yo(t)?po(t,!0):bo(t)},go=ut,Oo=_o;var jo=function(t,e){return t&&go(e,Oo(e),t)},wo={exports:{}};!function(t,e){var r=y,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n?r.Buffer:void 0,a=i?i.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var r=t.length,n=a?a(r):new t.constructor(r);return t.copy(n),n}}(wo,wo.exports);var Ao=wo.exports;var So=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e};var mo=function(){return[]},Eo=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var a=t[r];e(a,r,t)&&(i[o++]=a)}return i},No=mo,Do=Object.prototype.propertyIsEnumerable,Ro=Object.getOwnPropertySymbols,Mo=Ro?function(t){return null==t?[]:(t=Object(t),Eo(Ro(t),function(e){return Do.call(t,e)}))}:No,ko=ut,Io=Mo;var Lo=function(t,e){return ko(t,Io(t),e)};var Po=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},Co=de(Object.getPrototypeOf,Object),To=Po,xo=Co,Uo=Mo,Fo=mo,zo=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)To(e,Uo(t)),t=xo(t);return e}:Fo,Wo=ut,$o=zo;var Bo=function(t,e){return Wo(t,$o(t),e)},Go=Po,Vo=Yt;var Xo=function(t,e,r){var n=e(t);return Vo(t)?n:Go(n,r(t))},Yo=Xo,Ho=Mo,Qo=Ee;var Ko=function(t){return Yo(t,Qo,Ho)},Jo=Xo,qo=zo,Zo=_o;var ti=function(t){return Jo(t,Zo,qo)},ei=J(y,"DataView"),ri=jr,ni=J(y,"Promise"),oi=J(y,"Set"),ii=J(y,"WeakMap"),ai=D,si=U,ci="[object Map]",ui="[object Promise]",fi="[object Set]",li="[object WeakMap]",hi="[object DataView]",vi=si(ei),pi=si(ri),bi=si(ni),yi=si(oi),_i=si(ii),di=ai;(ei&&di(new ei(new ArrayBuffer(1)))!=hi||ri&&di(new ri)!=ci||ni&&di(ni.resolve())!=ui||oi&&di(new oi)!=fi||ii&&di(new ii)!=li)&&(di=function(t){var e=ai(t),r="[object Object]"==e?t.constructor:void 0,n=r?si(r):"";if(n)switch(n){case vi:return hi;case pi:return ci;case bi:return ui;case yi:return fi;case _i:return li}return e});var gi=di,Oi=Object.prototype.hasOwnProperty;var ji=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&Oi.call(t,"index")&&(r.index=t.index,r.input=t.input),r},wi=y.Uint8Array,Ai=wi;var Si=function(t){var e=new t.constructor(t.byteLength);return new Ai(e).set(new Ai(t)),e},mi=Si;var Ei=function(t,e){var r=e?mi(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)},Ni=/\w*$/;var Di=function(t){var e=new t.constructor(t.source,Ni.exec(t));return e.lastIndex=t.lastIndex,e},Ri=_?_.prototype:void 0,Mi=Ri?Ri.valueOf:void 0;var ki=Si;var Ii=Si,Li=Ei,Pi=Di,Ci=function(t){return Mi?Object(Mi.call(t)):{}},Ti=function(t,e){var r=e?ki(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)};var xi=function(t,e,r){var n=t.constructor;switch(e){case"[object ArrayBuffer]":return Ii(t);case"[object Boolean]":case"[object Date]":return new n(+t);case"[object DataView]":return Li(t,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Ti(t,r);case"[object Map]":case"[object Set]":return new n;case"[object Number]":case"[object String]":return new n(t);case"[object RegExp]":return Pi(t);case"[object Symbol]":return Ci(t)}},Ui=R,Fi=Object.create,zi=function(){function t(){}return function(e){if(!Ui(e))return{};if(Fi)return Fi(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),Wi=Co,$i=Tt;var Bi=function(t){return"function"!=typeof t.constructor||$i(t)?{}:zi(Wi(t))},Gi=gi,Vi=Ut;var Xi=function(t){return Vi(t)&&"[object Map]"==Gi(t)},Yi=ne,Hi=ie&&ie.isMap,Qi=Hi?Yi(Hi):Xi,Ki=gi,Ji=Ut;var qi=function(t){return Ji(t)&&"[object Set]"==Ki(t)},Zi=ne,ta=ie&&ie.isSet,ea=ta?Zi(ta):qi,ra=io,na=ao,oa=at,ia=uo,aa=jo,sa=Ao,ca=So,ua=Lo,fa=Bo,la=Ko,ha=ti,va=gi,pa=ji,ba=xi,ya=Bi,_a=Yt,da=Jt,ga=Qi,Oa=R,ja=ea,wa=Ee,Aa=_o,Sa="[object Arguments]",ma="[object Function]",Ea="[object Object]",Na={};Na[Sa]=Na["[object Array]"]=Na["[object ArrayBuffer]"]=Na["[object DataView]"]=Na["[object Boolean]"]=Na["[object Date]"]=Na["[object Float32Array]"]=Na["[object Float64Array]"]=Na["[object Int8Array]"]=Na["[object Int16Array]"]=Na["[object Int32Array]"]=Na["[object Map]"]=Na["[object Number]"]=Na[Ea]=Na["[object RegExp]"]=Na["[object Set]"]=Na["[object String]"]=Na["[object Symbol]"]=Na["[object Uint8Array]"]=Na["[object Uint8ClampedArray]"]=Na["[object Uint16Array]"]=Na["[object Uint32Array]"]=!0,Na["[object Error]"]=Na[ma]=Na["[object WeakMap]"]=!1;var Da=function t(e,r,n,o,i,a){var s,c=1&r,u=2&r,f=4&r;if(n&&(s=i?n(e,o,i,a):n(e)),void 0!==s)return s;if(!Oa(e))return e;var l=_a(e);if(l){if(s=pa(e),!c)return ca(e,s)}else{var h=va(e),v=h==ma||"[object GeneratorFunction]"==h;if(da(e))return sa(e,c);if(h==Ea||h==Sa||v&&!i){if(s=u||v?{}:ya(e),!c)return u?fa(e,aa(s,e)):ua(e,ia(s,e))}else{if(!Na[h])return i?e:{};s=ba(e,h,c)}}a||(a=new ra);var p=a.get(e);if(p)return p;a.set(e,s),ja(e)?e.forEach(function(o){s.add(t(o,r,n,o,e,a))}):ga(e)&&e.forEach(function(o,i){s.set(i,t(o,r,n,i,e,a))});var b=l?void 0:(f?u?ha:la:u?Aa:wa)(e);return na(b||e,function(o,i){b&&(o=e[i=o]),oa(s,i,t(o,r,n,i,e,a))}),s};var Ra=cn,Ma=function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+e];return i};var ka=function(t,e){return e.length<2?t:Ra(t,Ma(e,0,-1))},Ia=rn,La=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0},Pa=ka,Ca=on;var Ta=function(t,e){return e=Ia(e,t),null==(t=Pa(t,e))||delete t[Ca(La(e))]},xa=D,Ua=Co,Fa=Ut,za=Function.prototype,Wa=Object.prototype,$a=za.toString,Ba=Wa.hasOwnProperty,Ga=$a.call(Object);var Va=function(t){if(!Fa(t)||"[object Object]"!=xa(t))return!1;var e=Ua(t);if(null===e)return!0;var r=Ba.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&$a.call(r)==Ga};var Xa=function(t){return Va(t)?void 0:t},Ya=Xt,Ha=Yt,Qa=_?_.isConcatSpreadable:void 0;var Ka=Po,Ja=function(t){return Ha(t)||Ya(t)||!!(Qa&&t&&t[Qa])};var qa=function t(e,r,n,o,i){var a=-1,s=e.length;for(n||(n=Ja),i||(i=[]);++a<s;){var c=e[a];r>0&&n(c)?r>1?t(c,r-1,n,o,i):Ka(i,c):o||(i[i.length]=c)}return i},Za=qa;var ts=function(t){return(null==t?0:t.length)?Za(t,1):[]},es=vt,rs=dt;var ns=Gr,os=Da,is=Ta,as=rn,ss=ut,cs=Xa,us=ti,fs=function(t){return rs(es(t,void 0,ts),t+"")}(function(t,e){var r={};if(null==t)return r;var n=!1;e=ns(e,function(e){return e=as(e,t),n||(n=e.length>1),e}),ss(t,us(t),r),n&&(r=os(r,7,cs));for(var o=e.length;o--;)is(r,e[o]);return r}),ls=h(fs);const hs=new class{AppName;platform;isMAC;isWIN;isLINUX;saveFolder;homedir;appFolder;constructor(t){switch(this.AppName=t,this.platform=process.platform,this.homedir=r.homedir(),this.platform){case"darwin":this.isMAC=!0,this.isWIN=!1,this.isLINUX=!1,this.saveFolder=n.join(this.homedir,"Library","Application Support");break;case"win32":this.isMAC=!1,this.isWIN=!0,this.isLINUX=!1,this.saveFolder=process.env.APPDATA||n.join(this.homedir,"AppData","Roaming");break;case"linux":this.isMAC=!1,this.isWIN=!1,this.isLINUX=!0,this.saveFolder=process.env.XDG_CONFIG_HOME||n.join(this.homedir,".config");break;default:console.log(`當前系統是未知的平台: ${this.platform}`),this.isMAC=!1,this.isWIN=!1,this.isLINUX=!1,this.saveFolder=this.homedir}this.appFolder=n.join(this.saveFolder,this.AppName),this.folderCheck(this.appFolder)}addPath(...t){return n.join(...t)}folderCheck(t){e.mkdirSync(t,{recursive:!0})}fileCheck(t){e.existsSync(t)||e.writeFileSync(t,"",{encoding:"utf8"})}}("aiia-sdk");class vs{type="node";filePath;fileName;constructor(){this.fileName="storage.json",this.filePath=hs.addPath(hs.appFolder,this.fileName),hs.fileCheck(this.filePath)}getFileDataSync(){const t=e.readFileSync(this.filePath,"utf8");try{return JSON.parse(t)}catch(t){return{}}}setFileDataSync(t){try{const r=JSON.stringify(t);e.writeFileSync(this.filePath,r,"utf8")}catch(t){}}async getFileData(){return new Promise(t=>{e.readFile(this.filePath,"utf8",(e,r)=>{if(e)t({});else try{t(JSON.parse(r))}catch(e){t({})}})})}async setFileData(t){return new Promise(r=>{try{const n=JSON.stringify(t);e.writeFile(this.filePath,n,"utf8",t=>{r()})}catch(t){}})}async getItem(t){return(await this.getFileData())[t]??null}async setItem(t,e){const r=await this.getFileData();r[t]=e,await this.setFileData(r)}async removeItem(t){const e=await this.getFileData(),r=ls(e,t);await this.setFileData(r)}async clear(){await this.setFileData({})}getItemSync(t){return this.getFileDataSync()[t]??null}setItemSync(t,e){const r=this.getFileDataSync();r[t]=e,this.setFileDataSync(r)}removeItemSync(t){const e=ls(this.getFileDataSync(),t);this.setFileDataSync(e)}clearSync(){this.setFileDataSync({})}}var ps=xr,bs=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},ys=function(t){return this.__data__.has(t)};function _s(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new ps;++e<r;)this.add(t[e])}_s.prototype.add=_s.prototype.push=bs,_s.prototype.has=ys;var ds=_s,gs=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},Os=function(t,e){return t.has(e)};var js=function(t,e,r,n,o,i){var a=1&r,s=t.length,c=e.length;if(s!=c&&!(a&&c>s))return!1;var u=i.get(t),f=i.get(e);if(u&&f)return u==e&&f==t;var l=-1,h=!0,v=2&r?new ds:void 0;for(i.set(t,e),i.set(e,t);++l<s;){var p=t[l],b=e[l];if(n)var y=a?n(b,p,l,e,t,i):n(p,b,l,t,e,i);if(void 0!==y){if(y)continue;h=!1;break}if(v){if(!gs(e,function(t,e){if(!Os(v,e)&&(p===t||o(p,t,r,n,i)))return v.push(e)})){h=!1;break}}else if(p!==b&&!o(p,b,r,n,i)){h=!1;break}}return i.delete(t),i.delete(e),h};var ws=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r};var As=wi,Ss=rt,ms=js,Es=ws,Ns=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},Ds=_?_.prototype:void 0,Rs=Ds?Ds.valueOf:void 0;var Ms=function(t,e,r,n,o,i,a){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new As(t),new As(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Ss(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var s=Es;case"[object Set]":var c=1&n;if(s||(s=Ns),t.size!=e.size&&!c)return!1;var u=a.get(t);if(u)return u==e;n|=2,a.set(t,e);var f=ms(s(t),s(e),n,o,i,a);return a.delete(t),f;case"[object Symbol]":if(Rs)return Rs.call(t)==Rs.call(e)}return!1},ks=Ko,Is=Object.prototype.hasOwnProperty;var Ls=io,Ps=js,Cs=Ms,Ts=function(t,e,r,n,o,i){var a=1&r,s=ks(t),c=s.length;if(c!=ks(e).length&&!a)return!1;for(var u=c;u--;){var f=s[u];if(!(a?f in e:Is.call(e,f)))return!1}var l=i.get(t),h=i.get(e);if(l&&h)return l==e&&h==t;var v=!0;i.set(t,e),i.set(e,t);for(var p=a;++u<c;){var b=t[f=s[u]],y=e[f];if(n)var _=a?n(y,b,f,e,t,i):n(b,y,f,t,e,i);if(!(void 0===_?b===y||o(b,y,r,n,i):_)){v=!1;break}p||(p="constructor"==f)}if(v&&!p){var d=t.constructor,g=e.constructor;d==g||!("constructor"in t)||!("constructor"in e)||"function"==typeof d&&d instanceof d&&"function"==typeof g&&g instanceof g||(v=!1)}return i.delete(t),i.delete(e),v},xs=gi,Us=Yt,Fs=Jt,zs=ue,Ws="[object Arguments]",$s="[object Array]",Bs="[object Object]",Gs=Object.prototype.hasOwnProperty;var Vs=function(t,e,r,n,o,i){var a=Us(t),s=Us(e),c=a?$s:xs(t),u=s?$s:xs(e),f=(c=c==Ws?Bs:c)==Bs,l=(u=u==Ws?Bs:u)==Bs,h=c==u;if(h&&Fs(t)){if(!Fs(e))return!1;a=!0,f=!1}if(h&&!f)return i||(i=new Ls),a||zs(t)?Ps(t,e,r,n,o,i):Cs(t,e,c,r,n,o,i);if(!(1&r)){var v=f&&Gs.call(t,"__wrapped__"),p=l&&Gs.call(e,"__wrapped__");if(v||p){var b=v?t.value():t,y=p?e.value():e;return i||(i=new Ls),o(b,y,r,n,i)}}return!!h&&(i||(i=new Ls),Ts(t,e,r,n,o,i))},Xs=Ut;var Ys=function t(e,r,n,o,i){return e===r||(null==e||null==r||!Xs(e)&&!Xs(r)?e!=e&&r!=r:Vs(e,r,n,o,t,i))},Hs=io,Qs=Ys;var Ks=R;var Js=function(t){return t==t&&!Ks(t)},qs=Js,Zs=Ee;var tc=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}},ec=function(t,e,r,n){var o=r.length,i=o,a=!n;if(null==t)return!i;for(t=Object(t);o--;){var s=r[o];if(a&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++o<i;){var c=(s=r[o])[0],u=t[c],f=s[1];if(a&&s[2]){if(void 0===u&&!(c in t))return!1}else{var l=new Hs;if(n)var h=n(u,f,c,t,e,l);if(!(void 0===h?Qs(f,u,3,n,l):h))return!1}}return!0},rc=function(t){for(var e=Zs(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,qs(o)]}return e},nc=tc;var oc=rn,ic=Xt,ac=Yt,sc=Nt,cc=wt,uc=on;var fc=function(t,e,r){for(var n=-1,o=(e=oc(e,t)).length,i=!1;++n<o;){var a=uc(e[n]);if(!(i=null!=t&&r(t,a)))break;t=t[a]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&cc(o)&&sc(a,o)&&(ac(t)||ic(t))},lc=function(t,e){return null!=t&&e in Object(t)},hc=fc;var vc=function(t,e){return null!=t&&hc(t,e,lc)},pc=Ys,bc=ln,yc=vc,_c=$e,dc=Js,gc=tc,Oc=on;var jc=function(t,e){return _c(t)&&dc(e)?gc(Oc(t),e):function(r){var n=bc(r,t);return void 0===n&&n===e?yc(r,t):pc(e,n,3)}};var wc=cn;var Ac=function(t){return function(e){return wc(e,t)}},Sc=function(t){return function(e){return null==e?void 0:e[t]}},mc=Ac,Ec=$e,Nc=on;var Dc=function(t){return Ec(t)?Sc(Nc(t)):mc(t)},Rc=function(t){var e=rc(t);return 1==e.length&&e[0][2]?nc(e[0][0],e[0][1]):function(r){return r===t||ec(r,t,e)}},Mc=jc,kc=ft,Ic=Yt,Lc=Dc;var Pc=function(t){return"function"==typeof t?t:null==t?kc:"object"==typeof t?Ic(t)?Mc(t[0],t[1]):Rc(t):Lc(t)};var Cc=function(t){return function(e,r,n){for(var o=-1,i=Object(e),a=n(e),s=a.length;s--;){var c=a[t?s:++o];if(!1===r(i[c],c,i))break}return e}}(),Tc=Ee;var xc=mt;var Uc=function(t,e){return function(r,n){if(null==r)return r;if(!xc(r))return t(r,n);for(var o=r.length,i=e?o:-1,a=Object(r);(e?i--:++i<o)&&!1!==n(a[i],i,a););return r}}(function(t,e){return t&&Cc(t,e,Tc)}),Fc=mt;var zc=Gr,Wc=Pc,$c=function(t,e){var r=-1,n=Fc(t)?Array(t.length):[];return Uc(t,function(t,o,i){n[++r]=e(t,o,i)}),n},Bc=Yt;var Gc,Vc=h(function(t,e){return(Bc(t)?zc:$c)(t,Wc(e))});class Xc{instance;controller;constructor(t){this.controller=new AbortController,this.instance=c.create({baseURL:t,signal:this.controller.signal})}async getAccessToken(t,e){const r={license_number:t,token_value:e??""},n=await this.instance.post("/api/v1/license/agent_token",r).then(t=>hn(t.data,"token_value","")).catch(()=>null);if(null===n)throw new Error(fn["網絡錯誤"]);if(""===n)throw new Error(fn["獲取權杖失敗"]);return n}async getProjectList(t){const e=await this.instance.post("/api/v1/license/projects",{license_number:t}).then(t=>Vc(hn(t,"data.projects",[]),({id:t,sub_project_name:e})=>({id:t,name:e}))).catch(t=>null);if(null===e)throw new Error(fn["網絡錯誤"]);if(0===e.length)throw new Error(fn["沒有可用專案"]);return e}onDestory(){this.controller.abort()}}!function(t){t[t.MDN_NORMAL_CLOSURE=1e3]="MDN_NORMAL_CLOSURE",t[t.MDN_GOING_AWAY=1001]="MDN_GOING_AWAY",t[t.MDN_PROTOCOL_ERROR=1002]="MDN_PROTOCOL_ERROR",t[t.MDN_UNSUPPORTED_DATA=1003]="MDN_UNSUPPORTED_DATA",t[t.MDN_RESERVED_1004=1004]="MDN_RESERVED_1004",t[t.MDN_NO_STATUS_RECEIVED=1005]="MDN_NO_STATUS_RECEIVED",t[t.MDN_ABNORMAL_CLOSURE=1006]="MDN_ABNORMAL_CLOSURE",t[t.MDN_INVALID_FRAME_PAYLOAD=1007]="MDN_INVALID_FRAME_PAYLOAD",t[t.MDN_POLICY_VIOLATION=1008]="MDN_POLICY_VIOLATION",t[t.MDN_MESSAGE_TOO_BIG=1009]="MDN_MESSAGE_TOO_BIG",t[t.MDN_MANDATORY_EXTENSION=1010]="MDN_MANDATORY_EXTENSION",t[t.MDN_INTERNAL_ERROR=1011]="MDN_INTERNAL_ERROR",t[t.MDN_SERVICE_RESTART=1012]="MDN_SERVICE_RESTART",t[t.MDN_TRY_AGAIN_LATER=1013]="MDN_TRY_AGAIN_LATER",t[t.MDN_BAD_GATEWAY=1014]="MDN_BAD_GATEWAY",t[t.MDN_TLS_HANDSHAKE=1015]="MDN_TLS_HANDSHAKE",t[t.MANUAL_CLOSE=4001]="MANUAL_CLOSE",t[t.WS_5000_NORAML_CLOSURE=5e3]="WS_5000_NORAML_CLOSURE",t[t.WS_5001_UNAUTHORIZED=5001]="WS_5001_UNAUTHORIZED",t[t.WS_5002_LICENSE_EXPIRED=5002]="WS_5002_LICENSE_EXPIRED",t[t.WS_5003_TOKEN_EXPIRED=5003]="WS_5003_TOKEN_EXPIRED"}(Gc||(Gc={}));class Yc{socket;messageSub;startLinkSub;destorySub;closeSub;get message(){return this.messageSub.asObservable()}get close(){return this.closeSub.asObservable()}get startLink(){return this.startLinkSub.asObservable()}messageQueue=[];isConnected;isStart;constructor(){this.isConnected=!1,this.isStart=!1,this.messageSub=new o,this.startLinkSub=new o,this.closeSub=new o,this.destorySub=new o}start(t){this.isStart=!0,this.socket=new f(t,{autoPong:!0}),i(this.socket,"open").pipe(a(this.destorySub)).subscribe(t=>{this.isConnected=!0,this.startLinkSub.next(),Vn.info("Proxy startup"),this.flushMessageQueue()}),i(this.socket,"message").pipe(a(this.destorySub)).subscribe(t=>{const{data:e}=t;this.messageSub.next(e)}),i(this.socket,"error").pipe(a(this.destorySub)).subscribe(t=>{const{error:e}=t;Vn.error("Proxy has some problem",e)}),i(this.socket,"close").pipe(a(this.destorySub)).subscribe(t=>{this.isConnected=!1;const{code:e}=t;switch(e){case Gc.MANUAL_CLOSE:Vn.debug("MANUAL_CLOSE stop emit event and reconnecting");break;case Gc.WS_5000_NORAML_CLOSURE:case Gc.MDN_NORMAL_CLOSURE:case Gc.MDN_GOING_AWAY:this.closeSub.next("close"),Vn.debug("Safe close connection");break;case Gc.MDN_NO_STATUS_RECEIVED:case Gc.MDN_ABNORMAL_CLOSURE:this.closeSub.next("close"),Vn.warn("Cloud disconnect",{code:e},t);break;case Gc.WS_5001_UNAUTHORIZED:case Gc.WS_5002_LICENSE_EXPIRED:this.closeSub.next("no_permissions"),Vn.warn("Please contact Graphen");break;case Gc.WS_5003_TOKEN_EXPIRED:this.closeSub.next("reconnect"),Vn.debug("Reconnect");break;default:this.closeSub.next("close"),Vn.error("Other status always close connection",{code:e})}})}flushMessageQueue(){for(;this.messageQueue.length>0&&this.isConnected;){const t=this.messageQueue.shift();t&&this.socket.send(t)}}send(t){this.isConnected?this.socket.send(t):this.messageQueue.push(t)}onManualClose(){this.isStart&&this.socket?.close(Gc.MANUAL_CLOSE)}onDestory(){this.destorySub.next(),this.destorySub.complete()}}class Hc{sdk;server;get url(){return this.sdk.config.endPoint.socket}get port(){return this.sdk.config.port}get webserver(){return this.sdk.config.webserver}constructor(t){this.sdk=t}start(){this.server=new u(this.webserver,{cors:{origin:"*"}}),this.server.on("connection",t=>{const e=new o;let r=(n=t.handshake.query.uuid,Ht(n)?hn(n,"[0]",void 0):n??void 0);var n;const c=new Yc;Vn.debug("client on",t.id),void 0===r?(this.sdk.getProjectList().then(e=>{t.emit("list",e)}),i(t,"uuid").pipe(s(1),a(e)).subscribe(n=>{r=n,this.openChannel(r,t,c,e)})):this.openChannel(r,t,c,e),t.on("disconnect",t=>{e.next(),e.complete(),Vn.debug("client off",t)})}),void 0===this.webserver&&this.server.listen(this.port)}openChannel(t,e,r,n){i(e,"cloud").pipe(a(n)).subscribe(t=>{r.send(t)}),r.message.pipe(a(n)).subscribe(t=>{e.emit("cloud",t)}),r.close.pipe(a(n)).subscribe(async n=>{switch(n){case"close":case"no_permissions":e.emit("channel",n),r.onDestory();break;case"reconnect":await this.sdk.replaceAccessToken(),r.start(this.getProxySocketURL(t))}}),r.startLink.pipe(a(n)).subscribe(()=>{e.emit("channel","open")}),r.start(this.getProxySocketURL(t))}getProxySocketURL(t){return`${this.url}/v1/chat/project/${this.sdk.accessToken}/${t}`}onDestory(){this.server&&this.server.close()}}class Qc{config;stroage;apiProxy;chat;isStart;destorySub;get destoryObs(){return this.destorySub.asObservable()}access_token;get accessToken(){return this.access_token}constructor(t,e){this.config=t,this.stroage=e,this.isStart=!1,this.destorySub=new o,this.access_token=e.getItemSync(vn),this.apiProxy=new Xc(this.config.endPoint.api),Vn.info("[Initialize] proxy is finished"),this.chat=new Hc(this),Vn.info("[Initialize] chat is finished","Start at PORT:",this.config.port)}async start(){if(this.isStart)throw new Error(fn["重複初始化"]);this.isStart=!0,await this.replaceAccessToken(),this.chat.start(),Vn.info("Chat service startup")}async replaceAccessToken(){const t=await this.apiProxy.getAccessToken(this.config.license,this.access_token);return this.access_token=t,this.stroage.setItemSync(vn,t),t}async getProjectList(){return await this.apiProxy.getProjectList(this.config.license)}onDestory(){this.apiProxy.onDestory(),this.chat.onDestory(),this.destorySub.next(),this.destorySub.complete(),Vn.info("[Destory] core module done")}}function Kc(t){if(pn){if(void 0===hn(t,"license",void 0))throw new Error(fn["未提供憑證"]);Vn.info("Initialize necessary modules");const e=new bn(Pe({},t));Yn(e.debug),Vn.info("config finished");const r=new vs;Vn.info("storage finished");const n=new Qc(e,r);return Vn.info("core finished"),n.start(),Vn.info("Service startup"),()=>{n.onDestory()}}throw new Error(fn["環境錯誤(nodejs)"])}export{Kc as aiiaCore};
1
+ import t from"moment";import{Server as e}from"socket.io";import{Subject as r,fromEvent as n,takeUntil as o,take as i}from"rxjs";import a from"axios";import c from"ws";import s from"fs";import u from"os";import f from"path";var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function h(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var p="object"==typeof l&&l&&l.Object===Object&&l,v=p,b="object"==typeof self&&self&&self.Object===Object&&self,d=v||b||Function("return this")(),y=d.Symbol,_=y,g=Object.prototype,O=g.hasOwnProperty,j=g.toString,S=_?_.toStringTag:void 0;var m=function(t){var e=O.call(t,S),r=t[S];try{t[S]=void 0;var n=!0}catch(t){}var o=j.call(t);return n&&(e?t[S]=r:delete t[S]),o},w=Object.prototype.toString;var E=m,A=function(t){return w.call(t)},D=y?y.toStringTag:void 0;var N=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":D&&D in Object(t)?E(t):A(t)};var R=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},M=N,C=R;var P,k=function(t){if(!C(t))return!1;var e=M(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},I=d["__core-js_shared__"],L=(P=/[^.]+$/.exec(I&&I.keys&&I.keys.IE_PROTO||""))?"Symbol(src)_1."+P:"";var T=function(t){return!!L&&L in t},x=Function.prototype.toString;var F=function(t){if(null!=t){try{return x.call(t)}catch(t){}try{return t+""}catch(t){}}return""},U=k,$=T,W=R,z=F,G=/^\[object .+?Constructor\]$/,B=Function.prototype,V=Object.prototype,X=B.toString,Y=V.hasOwnProperty,H=RegExp("^"+X.call(Y).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var K=function(t){return!(!W(t)||$(t))&&(U(t)?H:G).test(z(t))},Q=function(t,e){return null==t?void 0:t[e]};var J=function(t,e){var r=Q(t,e);return K(r)?r:void 0},q=J,Z=function(){try{var t=q(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),tt=Z;var et=function(t,e,r){"__proto__"==e&&tt?tt(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};var rt=function(t,e){return t===e||t!=t&&e!=e},nt=et,ot=rt,it=Object.prototype.hasOwnProperty;var at=function(t,e,r){var n=t[e];it.call(t,e)&&ot(n,r)&&(void 0!==r||e in t)||nt(t,e,r)},ct=at,st=et;var ut=function(t,e,r,n){var o=!r;r||(r={});for(var i=-1,a=e.length;++i<a;){var c=e[i],s=n?n(r[c],t[c],c,r,t):void 0;void 0===s&&(s=t[c]),o?st(r,c,s):ct(r,c,s)}return r};var ft=function(t){return t};var lt=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)},ht=Math.max;var pt=function(t,e,r){return e=ht(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=ht(n.length-e,0),a=Array(i);++o<i;)a[o]=n[e+o];o=-1;for(var c=Array(e+1);++o<e;)c[o]=n[o];return c[e]=r(a),lt(t,this,c)}};var vt=function(t){return function(){return t}},bt=Z,dt=bt?function(t,e){return bt(t,"toString",{configurable:!0,enumerable:!1,value:vt(e),writable:!0})}:ft,yt=Date.now;var _t=function(t){var e=0,r=0;return function(){var n=yt(),o=16-(n-r);if(r=n,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(dt),gt=ft,Ot=pt,jt=_t;var St=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},mt=k,wt=St;var Et=function(t){return null!=t&&wt(t.length)&&!mt(t)},At=/^(?:0|[1-9]\d*)$/;var Dt=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&At.test(t))&&t>-1&&t%1==0&&t<e},Nt=rt,Rt=Et,Mt=Dt,Ct=R;var Pt=function(t,e){return jt(Ot(t,e,gt),t+"")},kt=function(t,e,r){if(!Ct(r))return!1;var n=typeof e;return!!("number"==n?Rt(r)&&Mt(e,r.length):"string"==n&&e in r)&&Nt(r[e],t)};var It=function(t){return Pt(function(e,r){var n=-1,o=r.length,i=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&kt(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),e=Object(e);++n<o;){var c=r[n];c&&t(e,c,n,i)}return e})},Lt=Object.prototype;var Tt=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Lt)};var xt=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var Ft=function(t){return null!=t&&"object"==typeof t},Ut=N,$t=Ft;var Wt=function(t){return $t(t)&&"[object Arguments]"==Ut(t)},zt=Ft,Gt=Object.prototype,Bt=Gt.hasOwnProperty,Vt=Gt.propertyIsEnumerable,Xt=Wt(function(){return arguments}())?Wt:function(t){return zt(t)&&Bt.call(t,"callee")&&!Vt.call(t,"callee")},Yt=Array.isArray,Ht=h(Yt),Kt={exports:{}};var Qt=function(){return!1};!function(t,e){var r=d,n=Qt,o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o?r.Buffer:void 0,c=(a?a.isBuffer:void 0)||n;t.exports=c}(Kt,Kt.exports);var Jt=Kt.exports,qt=N,Zt=St,te=Ft,ee={};ee["[object Float32Array]"]=ee["[object Float64Array]"]=ee["[object Int8Array]"]=ee["[object Int16Array]"]=ee["[object Int32Array]"]=ee["[object Uint8Array]"]=ee["[object Uint8ClampedArray]"]=ee["[object Uint16Array]"]=ee["[object Uint32Array]"]=!0,ee["[object Arguments]"]=ee["[object Array]"]=ee["[object ArrayBuffer]"]=ee["[object Boolean]"]=ee["[object DataView]"]=ee["[object Date]"]=ee["[object Error]"]=ee["[object Function]"]=ee["[object Map]"]=ee["[object Number]"]=ee["[object Object]"]=ee["[object RegExp]"]=ee["[object Set]"]=ee["[object String]"]=ee["[object WeakMap]"]=!1;var re=function(t){return te(t)&&Zt(t.length)&&!!ee[qt(t)]};var ne=function(t){return function(e){return t(e)}},oe={exports:{}};!function(t,e){var r=p,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n&&r.process,a=function(){try{var t=o&&o.require&&o.require("util").types;return t||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=a}(oe,oe.exports);var ie=oe.exports,ae=re,ce=ne,se=ie&&ie.isTypedArray,ue=se?ce(se):ae,fe=xt,le=Xt,he=Yt,pe=Jt,ve=Dt,be=ue,de=Object.prototype.hasOwnProperty;var ye=function(t,e){var r=he(t),n=!r&&le(t),o=!r&&!n&&pe(t),i=!r&&!n&&!o&&be(t),a=r||n||o||i,c=a?fe(t.length,String):[],s=c.length;for(var u in t)!e&&!de.call(t,u)||a&&("length"==u||o&&("offset"==u||"parent"==u)||i&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||ve(u,s))||c.push(u);return c};var _e=function(t,e){return function(r){return t(e(r))}},ge=_e(Object.keys,Object),Oe=Tt,je=ge,Se=Object.prototype.hasOwnProperty;var me=ye,we=function(t){if(!Oe(t))return je(t);var e=[];for(var r in Object(t))Se.call(t,r)&&"constructor"!=r&&e.push(r);return e},Ee=Et;var Ae=function(t){return Ee(t)?me(t):we(t)},De=at,Ne=ut,Re=It,Me=Et,Ce=Tt,Pe=Ae,ke=Object.prototype.hasOwnProperty,Ie=h(Re(function(t,e){if(Ce(e)||Me(e))Ne(e,Pe(e),t);else for(var r in e)ke.call(e,r)&&De(t,r,e[r])})),Le=N,Te=Ft;var xe=function(t){return"symbol"==typeof t||Te(t)&&"[object Symbol]"==Le(t)},Fe=Yt,Ue=xe,$e=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,We=/^\w*$/;var ze=function(t,e){if(Fe(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!Ue(t))||(We.test(t)||!$e.test(t)||null!=e&&t in Object(e))},Ge=J(Object,"create"),Be=Ge;var Ve=function(){this.__data__=Be?Be(null):{},this.size=0};var Xe=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Ye=Ge,He=Object.prototype.hasOwnProperty;var Ke=function(t){var e=this.__data__;if(Ye){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return He.call(e,t)?e[t]:void 0},Qe=Ge,Je=Object.prototype.hasOwnProperty;var qe=Ge;var Ze=Ve,tr=Xe,er=Ke,rr=function(t){var e=this.__data__;return Qe?void 0!==e[t]:Je.call(e,t)},nr=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=qe&&void 0===e?"__lodash_hash_undefined__":e,this};function or(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}or.prototype.clear=Ze,or.prototype.delete=tr,or.prototype.get=er,or.prototype.has=rr,or.prototype.set=nr;var ir=or;var ar=function(){this.__data__=[],this.size=0},cr=rt;var sr=function(t,e){for(var r=t.length;r--;)if(cr(t[r][0],e))return r;return-1},ur=sr,fr=Array.prototype.splice;var lr=sr;var hr=sr;var pr=sr;var vr=ar,br=function(t){var e=this.__data__,r=ur(e,t);return!(r<0)&&(r==e.length-1?e.pop():fr.call(e,r,1),--this.size,!0)},dr=function(t){var e=this.__data__,r=lr(e,t);return r<0?void 0:e[r][1]},yr=function(t){return hr(this.__data__,t)>-1},_r=function(t,e){var r=this.__data__,n=pr(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};function gr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}gr.prototype.clear=vr,gr.prototype.delete=br,gr.prototype.get=dr,gr.prototype.has=yr,gr.prototype.set=_r;var Or=gr,jr=J(d,"Map"),Sr=ir,mr=Or,wr=jr;var Er=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var Ar=function(t,e){var r=t.__data__;return Er(e)?r["string"==typeof e?"string":"hash"]:r.map},Dr=Ar;var Nr=Ar;var Rr=Ar;var Mr=Ar;var Cr=function(){this.size=0,this.__data__={hash:new Sr,map:new(wr||mr),string:new Sr}},Pr=function(t){var e=Dr(this,t).delete(t);return this.size-=e?1:0,e},kr=function(t){return Nr(this,t).get(t)},Ir=function(t){return Rr(this,t).has(t)},Lr=function(t,e){var r=Mr(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};function Tr(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Tr.prototype.clear=Cr,Tr.prototype.delete=Pr,Tr.prototype.get=kr,Tr.prototype.has=Ir,Tr.prototype.set=Lr;var xr=Tr,Fr=xr;function Ur(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a)||i,a};return r.cache=new(Ur.Cache||Fr),r}Ur.Cache=Fr;var $r=Ur;var Wr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,zr=/\\(\\)?/g,Gr=function(t){var e=$r(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Wr,function(t,r,n,o){e.push(n?o.replace(zr,"$1"):r||t)}),e});var Br=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},Vr=Br,Xr=Yt,Yr=xe,Hr=y?y.prototype:void 0,Kr=Hr?Hr.toString:void 0;var Qr=function t(e){if("string"==typeof e)return e;if(Xr(e))return Vr(e,t)+"";if(Yr(e))return Kr?Kr.call(e):"";var r=e+"";return"0"==r&&1/e==-1/0?"-0":r},Jr=Qr;var qr=Yt,Zr=ze,tn=Gr,en=function(t){return null==t?"":Jr(t)};var rn=function(t,e){return qr(t)?t:Zr(t,e)?[t]:tn(en(t))},nn=xe;var on=function(t){if("string"==typeof t||nn(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},an=rn,cn=on;var sn=function(t,e){for(var r=0,n=(e=an(e,t)).length;null!=t&&r<n;)t=t[cn(e[r++])];return r&&r==n?t:void 0},un=sn;var fn,ln=function(t,e,r){var n=null==t?void 0:un(t,e);return void 0===n?r:n},hn=h(ln);!function(t){t["網絡錯誤"]="ERROR CODE: 500",t["環境錯誤(browser)"]="ERROR CODE: 1001",t["Worklet模組載入失敗"]="ERROR CODE: 1002",t["未獲得媒體裝置權限"]="ERROR CODE: 1003",t["實例已摧毀"]="ERROR CODE: 1004",t["環境錯誤(nodejs)"]="ERROR CODE: 2001",t["未提供憑證"]="ERROR CODE: 2002",t["獲取權杖失敗"]="ERROR CODE: 2003",t["沒有可用專案"]="ERROR CODE: 2004",t["重複初始化"]="ERROR CODE: 2005"}(fn||(fn={}));const pn="access_token",vn="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node;class bn{config;get webserver(){return this.config.webserver}get environment(){return this.config.env}get license(){return this.config.license??""}get port(){return function(t,e){const r=e??NaN;if(t){const e=parseInt(t);return isNaN(e)?r:e}return r}(process.env.PORT,this.config.port??3e3)}get ws_url(){return this.config.ws_url??""}get worklet_url(){return this.config.worklet_url??""}get project(){const{project:t}=Ie({},this.config);return void 0===t?{specific:!1}:"string"==typeof t?{name:t,id:t,specific:!1}:Ie({},t,{specific:!0})}get endPoint(){return this.environment,{api:"https://aiia-content-management-dev-21193779403.asia-east1.run.app",socket:"wss://graphen-agentic-workflow-dev-21193779403.asia-east1.run.app"}}get debug(){return this.config.debug??!0}get mediaStream(){return this.config.mediaStream}get chunkTimeInSeconds(){return"number"==typeof this.config.chunkTimeInSeconds&&this.config.chunkTimeInSeconds>0?this.config.chunkTimeInSeconds:1}get llmSampleRate(){return"number"==typeof this.config.llmSampleRate&&this.config.llmSampleRate>0?this.config.llmSampleRate:16e3}constructor(t){this.config=t}}var dn=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t};var yn=function(t){return function(e,r,n){for(var o=-1,i=Object(e),a=n(e),c=a.length;c--;){var s=a[t?c:++o];if(!1===r(i[s],s,i))break}return e}}(),_n=Ae;var gn=Et;var On=function(t,e){return function(r,n){if(null==r)return r;if(!gn(r))return t(r,n);for(var o=r.length,i=e?o:-1,a=Object(r);(e?i--:++i<o)&&!1!==n(a[i],i,a););return r}}(function(t,e){return t&&yn(t,e,_n)}),jn=ft;var Sn=dn,mn=On,wn=function(t){return"function"==typeof t?t:jn},En=Yt;var An,Dn=h(function(t,e){return(En(t)?Sn:mn)(t,wn(e))});!function(t){t["通道、雲端服務、麥克風都已就緒"]="CODE: 1000",t["未取得媒體裝置權限,請重新設定或忽略此訊息"]="CODE: 1001",t["請訂閱專案列表"]="CODE: 1002",t["初始化必要依賴"]="CODE: 1010",t["指定依賴已完成"]="CODE: 1011",t["啟動SDK"]="CODE: 1012",t["結束SDK"]="CODE: 1013",t["安全的關閉連線"]="CODE: 2000",t["無副作用的關閉連線"]="CODE: 2001",t["與雲端的服務中斷"]="CODE: 2002",t["沒有授權,請聯繫Graphen"]="CODE: 2003",t["自動重新連線連端服務"]="CODE: 2004",t["未預期的斷線,請聯繫Graphen"]="CODE: 2005",t["開始初始化必要模組"]="CODE: 2010",t["指定模組初始化完成"]="CODE: 2011",t["啟動服務"]="CODE: 2012",t["服務結束"]="CODE: 2013"}(An||(An={}));const Nn={code:console.log,debug:console.log,info:console.log,warn:console.warn,error:console.error,fatal:console.error},Rn=[];function Mn(t){return Rn.push(t),Mn}const Cn=new Proxy(Nn,{get(e,r,n){if("string"==typeof r)switch(r){case"debug":case"info":case"error":case"warn":case"fatal":case"code":return(...n)=>{const o=t().format("yyyy-MM-DD[T]HH:mm:ss");Dn(Rn,t=>{t.next(r,o,...n)}),e[r](`[Aiia::${r}_${o}_]`,...n)};default:return}},set:(t,e,r,n)=>!0});class Pn{config;server;memberSub;get port(){return this.config.port}get webserver(){return this.config.webserver}get memberChange(){return this.memberSub.asObservable()}constructor(t){this.config=t,this.memberSub=new r}start(){this.server=new e(this.webserver,{cors:{origin:"*"}}),this.server.on("connection",t=>{this.memberSub.next({type:"in",socket:t}),Cn.debug("client on",t.id),t.on("disconnect",e=>{this.memberSub.next({type:"out",socket:t}),Cn.debug("client off",e)})}),void 0===this.webserver&&this.server.listen(this.port)}onDestory(){this.server&&this.server.close()}}var kn=Or;var In=Or,Ln=jr,Tn=xr;var xn=Or,Fn=function(){this.__data__=new kn,this.size=0},Un=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},$n=function(t){return this.__data__.get(t)},Wn=function(t){return this.__data__.has(t)},zn=function(t,e){var r=this.__data__;if(r instanceof In){var n=r.__data__;if(!Ln||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Tn(n)}return r.set(t,e),this.size=r.size,this};function Gn(t){var e=this.__data__=new xn(t);this.size=e.size}Gn.prototype.clear=Fn,Gn.prototype.delete=Un,Gn.prototype.get=$n,Gn.prototype.has=Wn,Gn.prototype.set=zn;var Bn=Gn;var Vn=xr,Xn=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Yn=function(t){return this.__data__.has(t)};function Hn(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new Vn;++e<r;)this.add(t[e])}Hn.prototype.add=Hn.prototype.push=Xn,Hn.prototype.has=Yn;var Kn=Hn,Qn=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},Jn=function(t,e){return t.has(e)};var qn=function(t,e,r,n,o,i){var a=1&r,c=t.length,s=e.length;if(c!=s&&!(a&&s>c))return!1;var u=i.get(t),f=i.get(e);if(u&&f)return u==e&&f==t;var l=-1,h=!0,p=2&r?new Kn:void 0;for(i.set(t,e),i.set(e,t);++l<c;){var v=t[l],b=e[l];if(n)var d=a?n(b,v,l,e,t,i):n(v,b,l,t,e,i);if(void 0!==d){if(d)continue;h=!1;break}if(p){if(!Qn(e,function(t,e){if(!Jn(p,e)&&(v===t||o(v,t,r,n,i)))return p.push(e)})){h=!1;break}}else if(v!==b&&!o(v,b,r,n,i)){h=!1;break}}return i.delete(t),i.delete(e),h},Zn=d.Uint8Array;var to=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r};var eo=Zn,ro=rt,no=qn,oo=to,io=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},ao=y?y.prototype:void 0,co=ao?ao.valueOf:void 0;var so=function(t,e,r,n,o,i,a){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new eo(t),new eo(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return ro(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var c=oo;case"[object Set]":var s=1&n;if(c||(c=io),t.size!=e.size&&!s)return!1;var u=a.get(t);if(u)return u==e;n|=2,a.set(t,e);var f=no(c(t),c(e),n,o,i,a);return a.delete(t),f;case"[object Symbol]":if(co)return co.call(t)==co.call(e)}return!1};var uo=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},fo=uo,lo=Yt;var ho=function(t,e,r){var n=e(t);return lo(t)?n:fo(n,r(t))};var po=function(){return[]},vo=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r<n;){var a=t[r];e(a,r,t)&&(i[o++]=a)}return i},bo=po,yo=Object.prototype.propertyIsEnumerable,_o=Object.getOwnPropertySymbols,go=_o?function(t){return null==t?[]:(t=Object(t),vo(_o(t),function(e){return yo.call(t,e)}))}:bo,Oo=ho,jo=go,So=Ae;var mo=function(t){return Oo(t,So,jo)},wo=mo,Eo=Object.prototype.hasOwnProperty;var Ao=function(t,e,r,n,o,i){var a=1&r,c=wo(t),s=c.length;if(s!=wo(e).length&&!a)return!1;for(var u=s;u--;){var f=c[u];if(!(a?f in e:Eo.call(e,f)))return!1}var l=i.get(t),h=i.get(e);if(l&&h)return l==e&&h==t;var p=!0;i.set(t,e),i.set(e,t);for(var v=a;++u<s;){var b=t[f=c[u]],d=e[f];if(n)var y=a?n(d,b,f,e,t,i):n(b,d,f,t,e,i);if(!(void 0===y?b===d||o(b,d,r,n,i):y)){p=!1;break}v||(v="constructor"==f)}if(p&&!v){var _=t.constructor,g=e.constructor;_==g||!("constructor"in t)||!("constructor"in e)||"function"==typeof _&&_ instanceof _&&"function"==typeof g&&g instanceof g||(p=!1)}return i.delete(t),i.delete(e),p},Do=J(d,"DataView"),No=jr,Ro=J(d,"Promise"),Mo=J(d,"Set"),Co=J(d,"WeakMap"),Po=N,ko=F,Io="[object Map]",Lo="[object Promise]",To="[object Set]",xo="[object WeakMap]",Fo="[object DataView]",Uo=ko(Do),$o=ko(No),Wo=ko(Ro),zo=ko(Mo),Go=ko(Co),Bo=Po;(Do&&Bo(new Do(new ArrayBuffer(1)))!=Fo||No&&Bo(new No)!=Io||Ro&&Bo(Ro.resolve())!=Lo||Mo&&Bo(new Mo)!=To||Co&&Bo(new Co)!=xo)&&(Bo=function(t){var e=Po(t),r="[object Object]"==e?t.constructor:void 0,n=r?ko(r):"";if(n)switch(n){case Uo:return Fo;case $o:return Io;case Wo:return Lo;case zo:return To;case Go:return xo}return e});var Vo=Bo,Xo=Bn,Yo=qn,Ho=so,Ko=Ao,Qo=Vo,Jo=Yt,qo=Jt,Zo=ue,ti="[object Arguments]",ei="[object Array]",ri="[object Object]",ni=Object.prototype.hasOwnProperty;var oi=function(t,e,r,n,o,i){var a=Jo(t),c=Jo(e),s=a?ei:Qo(t),u=c?ei:Qo(e),f=(s=s==ti?ri:s)==ri,l=(u=u==ti?ri:u)==ri,h=s==u;if(h&&qo(t)){if(!qo(e))return!1;a=!0,f=!1}if(h&&!f)return i||(i=new Xo),a||Zo(t)?Yo(t,e,r,n,o,i):Ho(t,e,s,r,n,o,i);if(!(1&r)){var p=f&&ni.call(t,"__wrapped__"),v=l&&ni.call(e,"__wrapped__");if(p||v){var b=p?t.value():t,d=v?e.value():e;return i||(i=new Xo),o(b,d,r,n,i)}}return!!h&&(i||(i=new Xo),Ko(t,e,r,n,o,i))},ii=Ft;var ai=function t(e,r,n,o,i){return e===r||(null==e||null==r||!ii(e)&&!ii(r)?e!=e&&r!=r:oi(e,r,n,o,t,i))},ci=Bn,si=ai;var ui=R;var fi=function(t){return t==t&&!ui(t)},li=fi,hi=Ae;var pi=function(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}},vi=function(t,e,r,n){var o=r.length,i=o,a=!n;if(null==t)return!i;for(t=Object(t);o--;){var c=r[o];if(a&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++o<i;){var s=(c=r[o])[0],u=t[s],f=c[1];if(a&&c[2]){if(void 0===u&&!(s in t))return!1}else{var l=new ci;if(n)var h=n(u,f,s,t,e,l);if(!(void 0===h?si(f,u,3,n,l):h))return!1}}return!0},bi=function(t){for(var e=hi(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,li(o)]}return e},di=pi;var yi=rn,_i=Xt,gi=Yt,Oi=Dt,ji=St,Si=on;var mi=function(t,e,r){for(var n=-1,o=(e=yi(e,t)).length,i=!1;++n<o;){var a=Si(e[n]);if(!(i=null!=t&&r(t,a)))break;t=t[a]}return i||++n!=o?i:!!(o=null==t?0:t.length)&&ji(o)&&Oi(a,o)&&(gi(t)||_i(t))},wi=function(t,e){return null!=t&&e in Object(t)},Ei=mi;var Ai=function(t,e){return null!=t&&Ei(t,e,wi)},Di=ai,Ni=ln,Ri=Ai,Mi=ze,Ci=fi,Pi=pi,ki=on;var Ii=function(t,e){return Mi(t)&&Ci(e)?Pi(ki(t),e):function(r){var n=Ni(r,t);return void 0===n&&n===e?Ri(r,t):Di(e,n,3)}};var Li=sn;var Ti=function(t){return function(e){return Li(e,t)}},xi=function(t){return function(e){return null==e?void 0:e[t]}},Fi=Ti,Ui=ze,$i=on;var Wi=function(t){return Ui(t)?xi($i(t)):Fi(t)},zi=function(t){var e=bi(t);return 1==e.length&&e[0][2]?di(e[0][0],e[0][1]):function(r){return r===t||vi(r,t,e)}},Gi=Ii,Bi=ft,Vi=Yt,Xi=Wi;var Yi=On,Hi=Et;var Ki=Br,Qi=function(t){return"function"==typeof t?t:null==t?Bi:"object"==typeof t?Vi(t)?Gi(t[0],t[1]):zi(t):Xi(t)},Ji=function(t,e){var r=-1,n=Hi(t)?Array(t.length):[];return Yi(t,function(t,o,i){n[++r]=e(t,o,i)}),n},qi=Yt;var Zi,ta=h(function(t,e){return(qi(t)?Ki:Ji)(t,Qi(e))});class ea{instance;controller;constructor(t){this.controller=new AbortController,this.instance=a.create({baseURL:t,signal:this.controller.signal})}async getAccessToken(t,e){const r={license_number:t,token_value:e??""},n=await this.instance.post("/api/v1/license/agent_token",r).then(t=>hn(t.data,"token_value","")).catch(()=>null);if(null===n)throw new Error(fn["網絡錯誤"]);if(""===n)throw new Error(fn["獲取權杖失敗"]);return n}async getProjectList(t){const e=await this.instance.post("/api/v1/license/projects",{license_number:t}).then(t=>ta(hn(t,"data.projects",[]),({id:t,sub_project_name:e})=>({id:t,name:e}))).catch(t=>null);if(null===e)throw new Error(fn["網絡錯誤"]);if(0===e.length)throw new Error(fn["沒有可用專案"]);return e}onDestory(){this.controller.abort()}}!function(t){t[t.MDN_NORMAL_CLOSURE=1e3]="MDN_NORMAL_CLOSURE",t[t.MDN_GOING_AWAY=1001]="MDN_GOING_AWAY",t[t.MDN_PROTOCOL_ERROR=1002]="MDN_PROTOCOL_ERROR",t[t.MDN_UNSUPPORTED_DATA=1003]="MDN_UNSUPPORTED_DATA",t[t.MDN_RESERVED_1004=1004]="MDN_RESERVED_1004",t[t.MDN_NO_STATUS_RECEIVED=1005]="MDN_NO_STATUS_RECEIVED",t[t.MDN_ABNORMAL_CLOSURE=1006]="MDN_ABNORMAL_CLOSURE",t[t.MDN_INVALID_FRAME_PAYLOAD=1007]="MDN_INVALID_FRAME_PAYLOAD",t[t.MDN_POLICY_VIOLATION=1008]="MDN_POLICY_VIOLATION",t[t.MDN_MESSAGE_TOO_BIG=1009]="MDN_MESSAGE_TOO_BIG",t[t.MDN_MANDATORY_EXTENSION=1010]="MDN_MANDATORY_EXTENSION",t[t.MDN_INTERNAL_ERROR=1011]="MDN_INTERNAL_ERROR",t[t.MDN_SERVICE_RESTART=1012]="MDN_SERVICE_RESTART",t[t.MDN_TRY_AGAIN_LATER=1013]="MDN_TRY_AGAIN_LATER",t[t.MDN_BAD_GATEWAY=1014]="MDN_BAD_GATEWAY",t[t.MDN_TLS_HANDSHAKE=1015]="MDN_TLS_HANDSHAKE",t[t.MANUAL_CLOSE=4001]="MANUAL_CLOSE",t[t.WS_5000_NORAML_CLOSURE=5e3]="WS_5000_NORAML_CLOSURE",t[t.WS_5001_UNAUTHORIZED=5001]="WS_5001_UNAUTHORIZED",t[t.WS_5002_LICENSE_EXPIRED=5002]="WS_5002_LICENSE_EXPIRED",t[t.WS_5003_TOKEN_EXPIRED=5003]="WS_5003_TOKEN_EXPIRED"}(Zi||(Zi={}));class ra{socket;messageSub;linkStartSub;destorySub;closeSub;get message(){return this.messageSub.asObservable()}get close(){return this.closeSub.asObservable()}get linkStart(){return this.linkStartSub.asObservable()}messageQueue=[];isConnected;constructor(){this.isConnected=!1,this.messageSub=new r,this.linkStartSub=new r,this.closeSub=new r,this.destorySub=new r}start(t){this.socket=new c(t,{autoPong:!0}),n(this.socket,"open").pipe(o(this.destorySub)).subscribe(()=>{this.isConnected=!0,this.linkStartSub.next(),Cn.code(An["啟動服務"],"proxy"),this.flushMessageQueue()}),n(this.socket,"message").pipe(o(this.destorySub)).subscribe(t=>{const{data:e}=t;this.messageSub.next(e)}),n(this.socket,"error").pipe(o(this.destorySub)).subscribe(t=>{const{error:e}=t;Cn.error("Proxy has some problem",e)}),n(this.socket,"close").pipe(o(this.destorySub)).subscribe(t=>{this.isConnected=!1;const{code:e,reason:r}=t;switch(e){case Zi.MANUAL_CLOSE:Cn.code(An["無副作用的關閉連線"]);break;case Zi.WS_5000_NORAML_CLOSURE:case Zi.MDN_NORMAL_CLOSURE:case Zi.MDN_GOING_AWAY:this.closeSub.next("close"),Cn.code(An["安全的關閉連線"]);break;case Zi.MDN_NO_STATUS_RECEIVED:case Zi.MDN_ABNORMAL_CLOSURE:this.closeSub.next("close"),Cn.code(An["與雲端的服務中斷"],{code:e,reason:r});break;case Zi.WS_5001_UNAUTHORIZED:case Zi.WS_5002_LICENSE_EXPIRED:this.closeSub.next("no_permissions"),Cn.code(An["沒有授權,請聯繫Graphen"]);break;case Zi.WS_5003_TOKEN_EXPIRED:this.closeSub.next("reconnect"),Cn.code(An["自動重新連線連端服務"]);break;default:this.closeSub.next("close"),Cn.code(An["未預期的斷線,請聯繫Graphen"],{code:e,reason:r})}})}reconnect(t){this.onDestory(),this.destorySub=new r,this.start(t)}flushMessageQueue(){for(;this.messageQueue.length>0&&this.isConnected&&void 0!==this.socket;){const t=this.messageQueue.shift();t&&this.socket.send(t)}}send(t){this.isConnected&&void 0!==this.socket?this.socket.send(t):this.messageQueue.push(t)}onClose(){this.socket?.close(Zi.MANUAL_CLOSE)}onDestory(){this.destorySub.next(),this.destorySub.complete()}}var na=ut,oa=Ae;var ia=function(t,e){return t&&na(e,oa(e),t)};var aa=R,ca=Tt,sa=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e},ua=Object.prototype.hasOwnProperty;var fa=ye,la=function(t){if(!aa(t))return sa(t);var e=ca(t),r=[];for(var n in t)("constructor"!=n||!e&&ua.call(t,n))&&r.push(n);return r},ha=Et;var pa=function(t){return ha(t)?fa(t,!0):la(t)},va=ut,ba=pa;var da=function(t,e){return t&&va(e,ba(e),t)},ya={exports:{}};!function(t,e){var r=d,n=e&&!e.nodeType&&e,o=n&&t&&!t.nodeType&&t,i=o&&o.exports===n?r.Buffer:void 0,a=i?i.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var r=t.length,n=a?a(r):new t.constructor(r);return t.copy(n),n}}(ya,ya.exports);var _a=ya.exports;var ga=function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e},Oa=ut,ja=go;var Sa=function(t,e){return Oa(t,ja(t),e)},ma=_e(Object.getPrototypeOf,Object),wa=uo,Ea=ma,Aa=go,Da=po,Na=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)wa(e,Aa(t)),t=Ea(t);return e}:Da,Ra=ut,Ma=Na;var Ca=function(t,e){return Ra(t,Ma(t),e)},Pa=ho,ka=Na,Ia=pa;var La=function(t){return Pa(t,Ia,ka)},Ta=Object.prototype.hasOwnProperty;var xa=function(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&Ta.call(t,"index")&&(r.index=t.index,r.input=t.input),r},Fa=Zn;var Ua=function(t){var e=new t.constructor(t.byteLength);return new Fa(e).set(new Fa(t)),e},$a=Ua;var Wa=function(t,e){var r=e?$a(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)},za=/\w*$/;var Ga=function(t){var e=new t.constructor(t.source,za.exec(t));return e.lastIndex=t.lastIndex,e},Ba=y?y.prototype:void 0,Va=Ba?Ba.valueOf:void 0;var Xa=Ua;var Ya=Ua,Ha=Wa,Ka=Ga,Qa=function(t){return Va?Object(Va.call(t)):{}},Ja=function(t,e){var r=e?Xa(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)};var qa=function(t,e,r){var n=t.constructor;switch(e){case"[object ArrayBuffer]":return Ya(t);case"[object Boolean]":case"[object Date]":return new n(+t);case"[object DataView]":return Ha(t,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Ja(t,r);case"[object Map]":case"[object Set]":return new n;case"[object Number]":case"[object String]":return new n(t);case"[object RegExp]":return Ka(t);case"[object Symbol]":return Qa(t)}},Za=R,tc=Object.create,ec=function(){function t(){}return function(e){if(!Za(e))return{};if(tc)return tc(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),rc=ma,nc=Tt;var oc=function(t){return"function"!=typeof t.constructor||nc(t)?{}:ec(rc(t))},ic=Vo,ac=Ft;var cc=function(t){return ac(t)&&"[object Map]"==ic(t)},sc=ne,uc=ie&&ie.isMap,fc=uc?sc(uc):cc,lc=Vo,hc=Ft;var pc=function(t){return hc(t)&&"[object Set]"==lc(t)},vc=ne,bc=ie&&ie.isSet,dc=bc?vc(bc):pc,yc=Bn,_c=dn,gc=at,Oc=ia,jc=da,Sc=_a,mc=ga,wc=Sa,Ec=Ca,Ac=mo,Dc=La,Nc=Vo,Rc=xa,Mc=qa,Cc=oc,Pc=Yt,kc=Jt,Ic=fc,Lc=R,Tc=dc,xc=Ae,Fc=pa,Uc="[object Arguments]",$c="[object Function]",Wc="[object Object]",zc={};zc[Uc]=zc["[object Array]"]=zc["[object ArrayBuffer]"]=zc["[object DataView]"]=zc["[object Boolean]"]=zc["[object Date]"]=zc["[object Float32Array]"]=zc["[object Float64Array]"]=zc["[object Int8Array]"]=zc["[object Int16Array]"]=zc["[object Int32Array]"]=zc["[object Map]"]=zc["[object Number]"]=zc[Wc]=zc["[object RegExp]"]=zc["[object Set]"]=zc["[object String]"]=zc["[object Symbol]"]=zc["[object Uint8Array]"]=zc["[object Uint8ClampedArray]"]=zc["[object Uint16Array]"]=zc["[object Uint32Array]"]=!0,zc["[object Error]"]=zc[$c]=zc["[object WeakMap]"]=!1;var Gc=function t(e,r,n,o,i,a){var c,s=1&r,u=2&r,f=4&r;if(n&&(c=i?n(e,o,i,a):n(e)),void 0!==c)return c;if(!Lc(e))return e;var l=Pc(e);if(l){if(c=Rc(e),!s)return mc(e,c)}else{var h=Nc(e),p=h==$c||"[object GeneratorFunction]"==h;if(kc(e))return Sc(e,s);if(h==Wc||h==Uc||p&&!i){if(c=u||p?{}:Cc(e),!s)return u?Ec(e,jc(c,e)):wc(e,Oc(c,e))}else{if(!zc[h])return i?e:{};c=Mc(e,h,s)}}a||(a=new yc);var v=a.get(e);if(v)return v;a.set(e,c),Tc(e)?e.forEach(function(o){c.add(t(o,r,n,o,e,a))}):Ic(e)&&e.forEach(function(o,i){c.set(i,t(o,r,n,i,e,a))});var b=l?void 0:(f?u?Dc:Ac:u?Fc:xc)(e);return _c(b||e,function(o,i){b&&(o=e[i=o]),gc(c,i,t(o,r,n,i,e,a))}),c};var Bc=sn,Vc=function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+e];return i};var Xc=function(t,e){return e.length<2?t:Bc(t,Vc(e,0,-1))},Yc=rn,Hc=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0},Kc=Xc,Qc=on;var Jc=function(t,e){return e=Yc(e,t),null==(t=Kc(t,e))||delete t[Qc(Hc(e))]},qc=N,Zc=ma,ts=Ft,es=Function.prototype,rs=Object.prototype,ns=es.toString,os=rs.hasOwnProperty,is=ns.call(Object);var as=function(t){if(!ts(t)||"[object Object]"!=qc(t))return!1;var e=Zc(t);if(null===e)return!0;var r=os.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&ns.call(r)==is};var cs=function(t){return as(t)?void 0:t},ss=Xt,us=Yt,fs=y?y.isConcatSpreadable:void 0;var ls=uo,hs=function(t){return us(t)||ss(t)||!!(fs&&t&&t[fs])};var ps=function t(e,r,n,o,i){var a=-1,c=e.length;for(n||(n=hs),i||(i=[]);++a<c;){var s=e[a];r>0&&n(s)?r>1?t(s,r-1,n,o,i):ls(i,s):o||(i[i.length]=s)}return i},vs=ps;var bs=function(t){return(null==t?0:t.length)?vs(t,1):[]},ds=pt,ys=_t;var _s=Br,gs=Gc,Os=Jc,js=rn,Ss=ut,ms=cs,ws=La,Es=function(t){return ys(ds(t,void 0,bs),t+"")}(function(t,e){var r={};if(null==t)return r;var n=!1;e=_s(e,function(e){return e=js(e,t),n||(n=e.length>1),e}),Ss(t,ws(t),r),n&&(r=gs(r,7,ms));for(var o=e.length;o--;)Os(r,e[o]);return r}),As=h(Es);const Ds=new class{AppName;platform;isMAC;isWIN;isLINUX;saveFolder;homedir;appFolder;EOL;constructor(t){switch(this.AppName=t,this.platform=process.platform,this.homedir=u.homedir(),this.EOL=u.EOL,this.platform){case"darwin":this.isMAC=!0,this.isWIN=!1,this.isLINUX=!1,this.saveFolder=f.join(this.homedir,"Library","Application Support");break;case"win32":this.isMAC=!1,this.isWIN=!0,this.isLINUX=!1,this.saveFolder=process.env.APPDATA||f.join(this.homedir,"AppData","Roaming");break;case"linux":this.isMAC=!1,this.isWIN=!1,this.isLINUX=!0,this.saveFolder=process.env.XDG_CONFIG_HOME||f.join(this.homedir,".config");break;default:console.log(`當前系統是未知的平台: ${this.platform}`),this.isMAC=!1,this.isWIN=!1,this.isLINUX=!1,this.saveFolder=this.homedir}this.appFolder=f.join(this.saveFolder,this.AppName),this.folderCheck(this.appFolder)}addPath(...t){return f.join(...t)}folderCheck(t){s.mkdirSync(t,{recursive:!0})}fileCheck(t){s.existsSync(t)||s.writeFileSync(t,"",{encoding:"utf8"})}}("aiia-sdk");class Ns{type="node";filePath;fileName;constructor(){this.fileName="storage.json",this.filePath=Ds.addPath(Ds.appFolder,this.fileName),Ds.fileCheck(this.filePath)}getFileDataSync(){const t=s.readFileSync(this.filePath,"utf8");try{return JSON.parse(t)}catch(t){return{}}}setFileDataSync(t){try{const e=JSON.stringify(t);s.writeFileSync(this.filePath,e,"utf8")}catch(t){}}async getFileData(){return new Promise(t=>{s.readFile(this.filePath,"utf8",(e,r)=>{if(e)t({});else try{t(JSON.parse(r))}catch(e){t({})}})})}async setFileData(t){return new Promise(e=>{try{const r=JSON.stringify(t);s.writeFile(this.filePath,r,"utf8",t=>{e()})}catch(t){}})}async getItem(t){return(await this.getFileData())[t]??null}async setItem(t,e){const r=await this.getFileData();r[t]=e,await this.setFileData(r)}async removeItem(t){const e=await this.getFileData(),r=As(e,t);await this.setFileData(r)}async clear(){await this.setFileData({})}getItemSync(t){return this.getFileDataSync()[t]??null}setItemSync(t,e){const r=this.getFileDataSync();r[t]=e,this.setFileDataSync(r)}removeItemSync(t){const e=As(this.getFileDataSync(),t);this.setFileDataSync(e)}clearSync(){this.setFileDataSync({})}}class Rs{filePath;fileName;constructor(){this.fileName="log.txt",this.filePath=Ds.addPath(Ds.appFolder,this.fileName)}next(t,e,...r){try{const n=r.reduce((t,e)=>{switch(typeof e){case"string":case"number":case"bigint":return`${t} ${e.toString()}`;case"boolean":return`${t} ${e?"true":"false"}`;case"object":try{return`${t} ${JSON.stringify(e)}`}catch(e){return t}case"symbol":case"undefined":case"function":return`${t} [${typeof e}]`}},"");s.appendFileSync(this.filePath,`LOG(${t})__${e}__:: ${n}${Ds.EOL}`,{encoding:"utf8"})}catch(t){}}}class Ms{config;constructor(t){this.config=t}onDestory(){}send(t){}start(){}}class Cs{config;stroage;apiProxy;chat;udpProxy;isStart;channelMap;destorySub;access_token;get accessToken(){return this.access_token}constructor(t,e){this.config=t,this.stroage=e,this.isStart=!1,this.destorySub=new r,this.channelMap=new Map,this.access_token=e.getItemSync(pn),this.apiProxy=new ea(this.config.endPoint.api),Cn.code(An["指定模組初始化完成"],"api"),this.chat=new Pn(this.config),Cn.code(An["指定模組初始化完成"],"chat"),this.udpProxy=new Ms(this.config),Cn.code(An["指定模組初始化完成"],"udp")}async start(){if(this.isStart)throw new Error(fn["重複初始化"]);this.isStart=!0,await this.replaceAccessToken(),this.chat.memberChange.pipe(o(this.destorySub)).subscribe(({type:t,socket:e})=>{switch(t){case"in":{Cn.debug("member join",e.id);const t=new ra,c=new r,s=(a=e.handshake.query.uuid,Ht(a)?hn(a,"[0]",void 0):a??void 0);void 0===s?(this.getProjectList().then(t=>{e.emit("list",t)}),n(e,"uuid").pipe(i(1),o(c)).subscribe(r=>{this.openChannel(r,e,t,c)})):this.openChannel(s,e,t,c),this.channelMap.set(e.id,()=>{c.next(),c.complete()});break}case"out":Cn.debug("member leave",e.id),this.channelMap.has(e.id)&&(this.channelMap.get(e.id)(),this.channelMap.delete(e.id))}var a}),this.chat.start(),Cn.code(An["啟動服務"],"chat"),this.udpProxy.start(),Cn.code(An["啟動服務"],"udp")}async replaceAccessToken(){const t=await this.apiProxy.getAccessToken(this.config.license,this.access_token);return this.access_token=t,this.stroage.setItemSync(pn,t),t}async getProjectList(){return await this.apiProxy.getProjectList(this.config.license)}getProxySocketURL(t){return`${this.config.endPoint.socket}/v1/chat/project/${this.accessToken}/${t}`}openChannel(t,e,r,i){n(e,"cloud").pipe(o(i)).subscribe(t=>{r.send(t)}),r.message.pipe(o(i)).subscribe(t=>{e.emit("cloud",t),this.udpProxy.send(t)}),r.close.pipe(o(i)).subscribe(async n=>{switch(e.emit("channel",n),n){case"close":case"no_permissions":r.onDestory();break;case"reconnect":await this.replaceAccessToken(),r.reconnect(this.getProxySocketURL(t))}}),r.linkStart.pipe(o(i)).subscribe(()=>{e.emit("channel","open")}),i.subscribe(()=>{r.onClose()}),r.start(this.getProxySocketURL(t))}onDestory(){this.apiProxy.onDestory(),this.chat.onDestory(),this.udpProxy.onDestory(),this.destorySub.next(),this.destorySub.complete(),Cn.code(An["服務結束"])}}function Ps(t){if(vn){if(void 0===hn(t,"license",void 0))throw new Error(fn["未提供憑證"]);!function(t){const{info:e,error:r,warn:n,debug:o,fatal:i,code:a}=function(t){if(void 0===t||"all"===t)return{code:!0,error:!0,warn:!0,info:!0,debug:!0,fatal:!0};if("none"===t)return{error:!1,code:!1,warn:!1,info:!1,debug:!1,fatal:!1};if("boolean"==typeof t)return{code:t,error:t,warn:t,info:t,debug:t,fatal:t};{const e=new Set(t);return{code:e.has("code"),debug:e.has("debug"),fatal:e.has("fatal"),error:e.has("error"),warn:e.has("warn"),info:e.has("info")}}}(t);return a||(Nn.code=()=>{}),o||(Nn.debug=()=>{}),e||(Nn.info=()=>{}),n||(Nn.warn=()=>{}),r||(Nn.error=()=>{}),i||(Nn.fatal=()=>{}),Mn}(hn(t,"debug",!0))(new Rs),Cn.code(An["開始初始化必要模組"]);const e=new bn(Ie({},t));Cn.code(An["指定模組初始化完成"],"config");const r=new Ns;Cn.code(An["指定模組初始化完成"],"storage");const n=new Cs(e,r);return Cn.code(An["指定模組初始化完成"],"core"),n.start(),Cn.code(An["啟動服務"]),()=>{n.onDestory()}}throw new Error(fn["環境錯誤(nodejs)"])}export{Ps as aiiaCore};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphen.ai/aiia-sdk",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "keywords": [],
5
5
  "author": {
6
6
  "name": "Jay Huang",
@@ -40,6 +40,7 @@
40
40
  "clean:type": "rm -rf ./dist/types",
41
41
  "build": "npm run clean && rollup -c && npm run types:extract",
42
42
  "watch": "rollup -c -w",
43
+ "build:testmodule": "rm -rf ./dist_test && rollup -c ./rollup.module.config.js",
43
44
  "types:extract": "npm run types:extract:browser && npm run types:extract:node && npm run clean:type",
44
45
  "types:extract:browser": "api-extractor run --local --config api-extractor.browser.json",
45
46
  "types:extract:node": "api-extractor run --local --config api-extractor.node.json"
@@ -51,11 +52,15 @@
51
52
  "@rollup/plugin-node-resolve": "^15.3.1",
52
53
  "@rollup/plugin-terser": "^0.4.4",
53
54
  "@rollup/plugin-typescript": "^11.1.6",
55
+ "@types/audioworklet": "^0.0.83",
56
+ "@types/jest": "^30.0.0",
54
57
  "@types/lodash": "^4.17.20",
55
58
  "@types/node": "^24.2.1",
56
59
  "@types/ws": "^8.18.1",
60
+ "jest": "^30.1.3",
57
61
  "rollup": "^4.46.2",
58
62
  "rollup-plugin-javascript-obfuscator": "^1.0.1",
63
+ "ts-jest": "^29.4.1",
59
64
  "tslib": "^2.6.2",
60
65
  "typescript": "^5.9.2"
61
66
  },