testaugnitoambientsdk2 2.1.31 → 2.1.33
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/README.md +13 -11
- package/dist/AugnitoAmbient.d.ts +2 -2
- package/dist/api/AmbientPACEAPI.d.ts +0 -1
- package/dist/api/AmbientRestAPI.d.ts +1 -1
- package/dist/augnitoambientsdk.js +1 -1
- package/dist/config/ErrorCodes.d.ts +2 -0
- package/dist/config/NoteVerbosityConfig.d.ts +1 -1
- package/dist/config/SettingsConfig.d.ts +1 -2
- package/dist/utils/Constants.d.ts +2 -0
- package/package.json +1 -1
- package/src/AugnitoAmbient.ts +23 -27
- package/src/api/AmbientPACEAPI.ts +0 -11
- package/src/api/AmbientRestAPI.ts +3 -8
- package/src/config/ErrorCodes.ts +2 -0
- package/src/config/NoteVerbosityConfig.ts +1 -1
- package/src/config/SettingsConfig.ts +0 -1
- package/src/utils/Constants.ts +2 -0
package/README.md
CHANGED
|
@@ -662,14 +662,16 @@ Used to check if browser has access to internet connection or not
|
|
|
662
662
|
|
|
663
663
|
General SDK errors returned in onError callback are as below
|
|
664
664
|
|
|
665
|
-
| Error Code | Error Message
|
|
666
|
-
| ---------- |
|
|
667
|
-
| SDK01 | Job Id is empty
|
|
668
|
-
| SDK02 | Page Size is undefined
|
|
669
|
-
| SDK03 | Note Data is empty
|
|
670
|
-
| SDK04 | Job Name is empty
|
|
671
|
-
| SDK05 | Patient Context is empty
|
|
672
|
-
| SDK06 | Mic permission denied
|
|
673
|
-
| SDK07 | Microphone is muted
|
|
674
|
-
| SDK08 | Audio track ended. Possibly the mic was unplugged
|
|
675
|
-
| SDK12 | Internet is not available. Try again later.
|
|
665
|
+
| Error Code | Error Message | Suggestive UI Message to display | Description |
|
|
666
|
+
| ---------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
667
|
+
| SDK01 | Job Id is empty | One or more mandatory parameter is missing. Please contact technical support team for help. | Received when JobId parameter is passed as empty in the respective API call |
|
|
668
|
+
| SDK02 | Page Size is undefined | One or more mandatory parameter is missing. Please contact technical support team for help. | Received when PageSize is not provided for List job action |
|
|
669
|
+
| SDK03 | Note Data is empty | One or more mandatory parameter is missing. Please contact technical support team for help. | Received when NoteData is passed as empty in the respective API call |
|
|
670
|
+
| SDK04 | Job Name is empty | One or more mandatory parameter is missing. Please contact technical support team for help. | Received when NewJobName is passed as empty in the respective API call |
|
|
671
|
+
| SDK05 | Patient Context is empty | One or more mandatory parameter is missing. Please contact technical support team for help. | Received when Context is passed as empty in the respective API call |
|
|
672
|
+
| SDK06 | Mic permission denied | Conversation cannot be started. Please contact IT support team to enable mic permission. | Received from SDK when the user has not provided mic-permission in browser or OS for recording |
|
|
673
|
+
| SDK07 | Microphone is muted | Conversation cannot be started. Please ensure the following before starting: <br><br> _ The microphone is unmuted <br> _ The microphone is properly plugged in and not loose <br> _ System input volume is set to maximum <br> _ The correct microphone is selected in your audio settings | Received from SDK at the start of recording, if the microphone is muted |
|
|
674
|
+
| SDK08 | Audio track ended. Possibly the mic was unplugged | The microphone is unplugged or not properly connected. Please replug the microphone to continue the conversation. | Received from SDK while recording is in-progress and the USB/Jack microphone is unplugged (even though this is not the suggested to mic to use for consultations, we've seen its usage by the doctors) |
|
|
675
|
+
| SDK12 | Internet is not available. Try again later. | Action can not be performed. No internet connectivity. Reach out to your IT team. | Received from SDK when internet is not available at the time of specific recording related actions are triggered |
|
|
676
|
+
| SDK13 | Automatic Transcription is not enabled for the organisation | Transcript can not be generated. Reach out to your IT team. | Received when fetchTranscriptionForNote is called and the feature is not enabled for the user |
|
|
677
|
+
| SDK14 | Feedback is not enabled. Please contact administrator for more details. | Feedback action can not be performed. Reach out to your IT team. | Received when sendFeedback is called and the feature is not enabled for the user |
|
package/dist/AugnitoAmbient.d.ts
CHANGED
|
@@ -162,12 +162,12 @@ export declare class AugnitoAmbient {
|
|
|
162
162
|
*/
|
|
163
163
|
updateUserPreferenceSettings(NewUserPreference: PreferenceConfig): Promise<any>;
|
|
164
164
|
/**
|
|
165
|
-
* @param options
|
|
165
|
+
* @param options a list of preference of type PreferenceConfig to be updated
|
|
166
166
|
* @returns true if connected else false and onError callback triggered with SDK12
|
|
167
167
|
*/
|
|
168
168
|
isInternetAvailable(options?: {
|
|
169
169
|
url: null;
|
|
170
|
-
timeoutMs
|
|
170
|
+
timeoutMs: null;
|
|
171
171
|
} | undefined): Promise<boolean>;
|
|
172
172
|
private onEventCallback;
|
|
173
173
|
private onStateChangeCallback;
|
|
@@ -9,7 +9,6 @@ export declare class AmbientPACEAPI extends BaseAPI {
|
|
|
9
9
|
private getURL;
|
|
10
10
|
getNoteParams(): Promise<any>;
|
|
11
11
|
getSettingsConfigMaster(_configTypeId: SettingsConfigType): Promise<any>;
|
|
12
|
-
getOrgConfigMapping(_configTypeId: SettingsConfigType): Promise<any>;
|
|
13
12
|
getUserConfigSettings(_configTypeId: SettingsConfigType): Promise<any>;
|
|
14
13
|
updateUserConfig(_updateSettingRequest: UserConfigMap[]): Promise<any>;
|
|
15
14
|
getUserPreferences(): Promise<any>;
|
|
@@ -15,7 +15,7 @@ export declare class AmbientRestAPI extends BaseAPI {
|
|
|
15
15
|
DownloadNotePDF(_jobId: string, _noteType: NoteTypeConfig, _specialityId: number, _language?: string, _personnelInfo?: string, _regenerateNote?: boolean): Promise<any>;
|
|
16
16
|
EndJob(_jobId: string): Promise<any>;
|
|
17
17
|
UpdatePatientContext(_jobId: string, _context: string, _replace: boolean): Promise<any>;
|
|
18
|
-
GenerateSuggestions(_jobId: string, _regenerate: boolean, _note?: string, _context?: string, _codes?: string
|
|
18
|
+
GenerateSuggestions(_jobId: string, _regenerate: boolean, _note?: string, _context?: string, _codes?: string): Promise<any>;
|
|
19
19
|
ModifyGeneratedNote(_jobId: string, _noteType: NoteTypeConfig, _modifiedNote?: string): Promise<any>;
|
|
20
20
|
FetchTranscription(_jobId: string): Promise<any>;
|
|
21
21
|
SendFeedback(_jobId: string, _rating: number, _comments?: string, _type?: string): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e,t,i,n){return new(i||(i=Promise))(function(r,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(s,a)}c((n=n.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;class t{constructor(e){Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"wssBaseURL",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onError",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onMetaEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.wssBaseURL=`wss://${e.server}/ambient/v1/stream-job`}prepareWSSURL(e,t,i,n){let r=this.wssBaseURL;return r+=`?filetype=${e}`,r+=`¬eparams=${t}`,r+=`&subscriptioncode=${this._config.subscriptionCode}`,r+=`&accesskey=${this._config.accessKey}`,r+=`&usertag=${this._config.userTag}`,i&&""!==i&&(r+=`&filename=${i}`),n&&""!==n&&(r+=`&jobid=${n}`),r}}class i{constructor(){}static get Against(){return i.instance||(i.instance=new i),i.instance}NullOrUndefined(e,t){if(null===e)throw new TypeError(`${t} is null`);if(void 0===e)throw new TypeError(`${t} is undefined`);return e}NullOrEmpty(e,t){if(!(e=i.Against.NullOrUndefined(e,t)))throw new TypeError(`${t} is empty`);return e}}var n,r,o,s,a;!function(e){e[e.SPECIALITY=1]="SPECIALITY",e[e.VISIT_TYPE=2]="VISIT_TYPE",e[e.NOTE_TYPE=3]="NOTE_TYPE",e[e.CLINICAL_CODE=4]="CLINICAL_CODE",e[e.LANGUAGE=5]="LANGUAGE",e[e.CDIVersion=7]="CDIVersion"}(n||(n={})),function(e){e[e.SoapNote=1]="SoapNote",e[e.PatientNote=2]="PatientNote",e[e.ReferralNote=3]="ReferralNote",e[e.ConsultationSummary=4]="ConsultationSummary",e[e.CDISuggestions=102]="CDISuggestions"}(r||(r={})),function(e){e.AUTH01="AUTH01",e.AUTH02="AUTH02",e.WSAUTH01="WSAUTH01",e.WSAUTH02="WSAUTH02",e.WSAUTH03="WSAUTH03",e.WSAUTH04="WSAUTH04",e.WSJOB01="WSJOB01",e.WSJOB02="WSJOB02",e.WSJOB03="WSJOB03",e.WSJOB04="WSJOB04",e.WSJOB05="WSJOB05",e.WSACC01="WSACC01",e.WSAUD01="WSAUD01",e.SDK01="SDK01",e.SDK02="SDK02",e.SDK03="SDK03",e.SDK04="SDK04",e.SDK05="SDK05",e.SDK06="SDK06",e.SDK07="SDK07",e.SDK08="SDK08",e.SDK12="SDK12",e.ERRUNKNOWN="ERRUNKNOWN"}(o||(o={}));class c extends Error{constructor(e,t){super(e),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t,this.name="HttpCodedError",Object.setPrototypeOf(this,c.prototype)}}!function(e){e.Detailed="Detailed",e.Consise="Concise"}(s||(s={})),function(e){e.DashFormat="Dash-format",e.Paragraph="Paragraph"}(a||(a={}));class u{makePostRequest(t,i){return e(this,void 0,void 0,function*(){try{const n=yield fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!n.ok){const t=yield n.text();var e=JSON.parse(t);throw new c(e.message,e.code.toString())}return yield n.json()}catch(e){throw e}})}makePatchRequest(t,i){return e(this,void 0,void 0,function*(){try{const n=yield fetch(t,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!n.ok){const t=yield n.text();var e=JSON.parse(t);throw new c(e.message,n.status.toString())}return yield n.json()}catch(e){throw e instanceof c?e:new c("500",e.message||"Unexpected error")}})}}class l extends u{constructor(e){super(),Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"_baseUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._baseUrl=`https://${e.server}/ambient/v1`}getURL(e){return`${this._baseUrl}${e}`}GetNoteParams(){return e(this,void 0,void 0,function*(){const e=this.getURL("/note-params"),t={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag};return yield this.makePostRequest(e,t)})}ListJobs(t,n){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Page Size");const e=this.getURL("/list-jobs"),r={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,PageSize:t,PageID:n};return yield this.makePostRequest(e,r)})}FetchJob(t){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/fetch-job"),n={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t};return yield this.makePostRequest(e,n)})}SendFinalNote(t,n){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id"),i.Against.NullOrEmpty(n,"Note Data");const e=this.getURL("/send-final-note"),r={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,SoapData:n};return yield this.makePostRequest(e,r)})}DeleteNotes(t){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/delete-job"),n={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobIDs:t};return yield this.makePostRequest(e,n)})}RenameNoteTitle(t,n){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id"),i.Against.NullOrEmpty(n,"Job Name");const e=this.getURL("/rename-job"),r={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,JobName:n};return yield this.makePostRequest(e,r)})}DownloadNotePDF(t,n,r,o,s,a){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/download-pdf");var c=s;c&&""!=c||(c='{"PatientName":"","PatientID":"","Age":"","Gender":"","ReceivingDoctor":"","DoctorName":"","DoctorDesignation":"","DoctorEmail":""}');const u={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,NoteType:n,Language:null!=o?o:"English",SpecialityID:r,Regenerate:null!=a&&a,PersonnelInfo:c};return yield this.makePostRequest(e,u)})}EndJob(t){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/end-job"),n={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t};return yield this.makePostRequest(e,n)})}UpdatePatientContext(t,n,r){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id"),i.Against.NullOrEmpty(n,"Patient Context");const e=this.getURL("/patient-context"),o={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,NewContext:n,Replace:r};return yield this.makePostRequest(e,o)})}GenerateSuggestions(t,n,r,o,s,a){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");var e=this.getURL("/cdi");a&&2===a&&(e=this.getURL("/cdi").replace("/v1","/v2"));const c={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,Regenerate:n,SoapData:r,PatientContext:o,Codes:s};return yield this.makePostRequest(e,c)})}ModifyGeneratedNote(t,n,r){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/modify-note"),o={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,NoteType:n,NewNote:null!=r?r:""};return yield this.makePostRequest(e,o)})}FetchTranscription(t){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/fetch-transcript"),n={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t};return yield this.makePostRequest(e,n)})}SendFeedback(t,n,r,o){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id"),i.Against.NullOrUndefined(n,"Rating");const e=this.getURL("/feedback").replace("/v1","/v2"),s={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,Rating:n,FeedBack:null!=r?r:"",Type:null!=o?o:""};return yield this.makePostRequest(e,s)})}}class h{static log(e,t){const i=null!=t?t:this.defaultTag;console.log(`${i}:`,e)}static error(e,t){const i=null!=t?t:this.defaultTag;console.error(`${i}:`,e)}}function d(){d=function(){return t};var e,t={},i=Object.prototype,n=i.hasOwnProperty,r=Object.defineProperty||function(e,t,i){e[t]=i.value},o="function"==typeof Symbol?Symbol:{},s=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(e,t,i){return Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,i){return e[t]=i}}function l(e,t,i,n){var o=t&&t.prototype instanceof m?t:m,s=Object.create(o.prototype),a=new O(n||[]);return r(s,"_invoke",{value:w(e,i,a)}),s}function h(e,t,i){try{return{type:"normal",arg:e.call(t,i)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var f="suspendedStart",g="suspendedYield",p="executing",v="completed",b={};function m(){}function y(){}function S(){}var E={};u(E,s,function(){return this});var C=Object.getPrototypeOf,k=C&&C(C(N([])));k&&k!==i&&n.call(k,s)&&(E=k);var I=S.prototype=m.prototype=Object.create(E);function A(e){["next","throw","return"].forEach(function(t){u(e,t,function(e){return this._invoke(t,e)})})}function R(e,t){function i(r,o,s,a){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,l=u.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then(function(e){i("next",e,s,a)},function(e){i("throw",e,s,a)}):t.resolve(l).then(function(e){u.value=e,s(u)},function(e){return i("throw",e,s,a)})}a(c.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function w(t,i,n){var r=f;return function(o,s){if(r===p)throw Error("Generator is already running");if(r===v){if("throw"===o)throw s;return{value:e,done:!0}}for(n.method=o,n.arg=s;;){var a=n.delegate;if(a){var c=T(a,n);if(c){if(c===b)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var u=h(t,i,n);if("normal"===u.type){if(r=n.done?v:g,u.arg===b)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=v,n.method="throw",n.arg=u.arg)}}}function T(t,i){var n=i.method,r=t.iterator[n];if(r===e)return i.delegate=null,"throw"===n&&t.iterator.return&&(i.method="return",i.arg=e,T(t,i),"throw"===i.method)||"return"!==n&&(i.method="throw",i.arg=new TypeError("The iterator does not provide a '"+n+"' method")),b;var o=h(r,t.iterator,i.arg);if("throw"===o.type)return i.method="throw",i.arg=o.arg,i.delegate=null,b;var s=o.arg;return s?s.done?(i[t.resultName]=s.value,i.next=t.nextLoc,"return"!==i.method&&(i.method="next",i.arg=e),i.delegate=null,b):s:(i.method="throw",i.arg=new TypeError("iterator result is not an object"),i.delegate=null,b)}function P(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function D(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(P,this),this.reset(!0)}function N(t){if(t||""===t){var i=t[s];if(i)return i.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function i(){for(;++r<t.length;)if(n.call(t,r))return i.value=t[r],i.done=!1,i;return i.value=e,i.done=!0,i};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return y.prototype=S,r(I,"constructor",{value:S,configurable:!0}),r(S,"constructor",{value:y,configurable:!0}),y.displayName=u(S,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,u(e,c,"GeneratorFunction")),e.prototype=Object.create(I),e},t.awrap=function(e){return{__await:e}},A(R.prototype),u(R.prototype,a,function(){return this}),t.AsyncIterator=R,t.async=function(e,i,n,r,o){void 0===o&&(o=Promise);var s=new R(l(e,i,n,r),o);return t.isGeneratorFunction(i)?s:s.next().then(function(e){return e.done?e.value:s.next()})},A(I),u(I,c,"Generator"),u(I,s,function(){return this}),u(I,"toString",function(){return"[object Generator]"}),t.keys=function(e){var t=Object(e),i=[];for(var n in t)i.push(n);return i.reverse(),function e(){for(;i.length;){var n=i.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=N,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(D),!t)for(var i in this)"t"===i.charAt(0)&&n.call(this,i)&&!isNaN(+i.slice(1))&&(this[i]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var i=this;function r(n,r){return a.type="throw",a.arg=t,i.next=n,r&&(i.method="next",i.arg=e),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var s=this.tryEntries[o],a=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=n.call(s,"catchLoc"),u=n.call(s,"finallyLoc");if(c&&u){if(this.prev<s.catchLoc)return r(s.catchLoc,!0);if(this.prev<s.finallyLoc)return r(s.finallyLoc)}else if(c){if(this.prev<s.catchLoc)return r(s.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return r(s.finallyLoc)}}}},abrupt:function(e,t){for(var i=this.tryEntries.length-1;i>=0;--i){var r=this.tryEntries[i];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var s=o?o.completion:{};return s.type=e,s.arg=t,o?(this.method="next",this.next=o.finallyLoc,b):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),b},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),D(i),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var n=i.completion;if("throw"===n.type){var r=n.arg;D(i)}return r}}throw Error("illegal catch attempt")},delegateYield:function(t,i,n){return this.delegate={iterator:N(t),resultName:i,nextLoc:n},"next"===this.method&&(this.arg=e),b}},t}function f(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function g(e,t,i,n,r,o,s){try{var a=e[o](s),c=a.value}catch(e){return void i(e)}a.done?t(c):Promise.resolve(c).then(n,r)}function p(e){return function(){var t=this,i=arguments;return new Promise(function(n,r){var o=e.apply(t,i);function s(e){g(o,n,r,s,a,"next",e)}function a(e){g(o,n,r,s,a,"throw",e)}s(void 0)})}}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,f(n.key),n)}}function m(e,t,i){return t&&b(e.prototype,t),i&&b(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}Object.defineProperty(h,"defaultTag",{enumerable:!0,configurable:!0,writable:!0,value:"AugnitoAmbientSDK"});var y="DONE",S="PAUSESOCKET",E="RESUMESOCKET",C="INTENT_START_STREAM",k="CLOSE",I=m(function e(t,i,n,r,o,s,a,c,u,l,h,d){v(this,e),this.worker,this.onFinalResultCallback=o,this.onErrorCallback=a,this.onPartialResultCallback=s,this.onSessionEventCallback=c,this.onOtherResultsCallback=u,this.onSpeechResponseCallback=l,this.packetSeqId=0,this.audioDuration=0,this.shouldSendAudioDataSequence=r,this.heavyOp,this.idleLoop,this.lastSent,this.enableLogs=t,this.eosMessage=i||"EOS",this.socketTimeoutInterval=n||1e4,this.bufferSizeInterval=h,this.switchToRegularSpeech=d},[{key:"Start",value:function(e,t,i){var n=this;this.audioDuration=e;var r="\n (() => {\n (".concat(A.toString(),")(").concat(JSON.stringify(y),", ").concat(JSON.stringify(this.eosMessage),", ").concat(JSON.stringify(k),", ").concat(JSON.stringify(1e4),", ").concat(JSON.stringify(this.socketTimeoutInterval),", ").concat(JSON.stringify(12e4),", ").concat(JSON.stringify(1e3),", ").concat(JSON.stringify(100),", ").concat(JSON.stringify(1e4),", ").concat(JSON.stringify(t),", ").concat(JSON.stringify(this.enableLogs),", ").concat(JSON.stringify(this.shouldSendAudioDataSequence),",").concat(JSON.stringify(S),", ").concat(JSON.stringify(E),", ").concat(JSON.stringify(C),", ").concat(JSON.stringify(this.switchToRegularSpeech),", ").concat(JSON.stringify(i),", ").concat(JSON.stringify(this.heavyOp),");\n })();\n");this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"application/javascript"}))),this.worker.onmessage=function(e){n.enableLogs&&console.log("Augnito [MAIN]: "+JSON.stringify(e.data));var t=e.data;"final"==t.type?n.onFinalResultCallback(t.data):"partial"==t.type?n.onPartialResultCallback(t.data):"meta"==t.type?n.onSessionEventCallback(t.data):"error"==t.type?n.onErrorCallback(t.data):"other"==t.type?n.onOtherResultsCallback(t.data):"speechResponse"==t.type&&n.onSpeechResponseCallback(t.data)}}},{key:"createAudioPacketHeader",value:function(e){this.audioDuration>0&&(this.packetSeqId=Math.ceil(this.audioDuration/this.bufferSizeInterval)+2,this.audioDuration=0),this.packetSeqId++;for(var t=new ArrayBuffer(16),i=new DataView(t),n=0;n<4;n++)i.setUint8(n,"@BSR".charCodeAt(n));return i.setBigInt64(4,BigInt(this.packetSeqId),!1),i.setUint8(12,e?1:0),t}},{key:"appendAudioData",value:function(e,t){var i=e.byteLength+t.byteLength,n=new ArrayBuffer(i),r=new Uint8Array(n);return r.set(new Uint8Array(e),0),r.set(new Uint8Array(t),e.byteLength),n}},{key:"Send",value:function(e){var t;if(this.lastSent=+new Date,e===k)null===(t=this.worker)||void 0===t||t.postMessage(k);else if(e===y)if(this.shouldSendAudioDataSequence){var i,n=this.createAudioPacketHeader(!0);null===(i=this.worker)||void 0===i||i.postMessage(n)}else{var r;null===(r=this.worker)||void 0===r||r.postMessage(y)}else if(e==S){var o;null===(o=this.worker)||void 0===o||o.postMessage(S)}else if(e==E){var s;null===(s=this.worker)||void 0===s||s.postMessage(E)}else if(e==C){var a;null===(a=this.worker)||void 0===a||a.postMessage(C)}else if(e===this.eosMessage){var c;this.shouldSendAudioDataSequence||null===(c=this.worker)||void 0===c||c.postMessage(e)}else{var u,l=[];this.shouldSendAudioDataSequence?(n=this.createAudioPacketHeader(!1),l=this.appendAudioData(n,e)):l=e,void 0!==l&&(null===(u=this.worker)||void 0===u||u.postMessage(l,[l]))}}},{key:"HeavyOp",set:function(e){this.heavyOp=e}}]);function A(e,t,i,n,r,o,s,a,c,u,l,h,d,f,g,p,v,b){var m,y,S,E,C,k,I,A,R,w=[],T=[],P=!1,D=[],O=!1,N=!1,_=!1,U="",x=v;function L(){m=+new Date,(k=""!=U?new WebSocket(u+"&jobid="+U):new WebSocket(u)).onopen=function(e){l&&console.log("Augnito: WebSocket connection established - "+JSON.stringify(e)),D.length>0&&(N=!0)},k.onmessage=function(e){l&&console.log("Augnito: Message from server - "+JSON.stringify(e.data)),S=+new Date,function(e){try{if("PING"===e.data)E=+new Date,self.postMessage({type:"ping",data:e.data});else{var t=JSON.parse(e.data);if(l&&console.log("Augnito [WORKER]: "+JSON.stringify(t)),"meta"==t.Type){t.JobID&&(U=t.JobID,console.log("Augnito JobID:",U)),self.postMessage({type:"meta",data:e.data});var i=JSON.parse(e.data);_=!(!i.Event||"INVALID_AUTH_CREDENTIALS"!==i.Event.Type)}else if(t.Result&&t.Result.Final){var n=JSON.stringify(t.Result);b&&(n=b(JSON.stringify(t.Result)),console.log(n)),self.postMessage({type:"final",data:n})}else t.Result&&!t.Result.Final?self.postMessage({type:"partial",data:t.Result.Transcript}):"ACK"==t.Type?(D=D.filter(function(e){return e.packetNumber>t.Index}),self.postMessage({type:"other",data:e.data})):"ERROR"==t.Type?("Timeout exceeded"==t.Data&&(O=!0,J()),self.postMessage({type:"error",data:e.data})):self.postMessage({type:"speechResponse",data:e.data})}}catch(e){self.postMessage({type:"error",data:"invalid response"})}}(e)},k.onerror=function(e){console.error("WebSocket error: ",e),self.postMessage({type:"error",data:JSON.stringify(e)})},k.onclose=function(e){l&&console.log("Augnito: WebSocket connection closed - "+JSON.stringify(e)),J()},y=+new Date,S=y,E=+new Date}function M(e){if(k&&k.readyState===WebSocket.OPEN){k.send(e);var i=+new Date;return y<=S&&(S=i-1),y=i,!0}return e===t?(l&&console.warn("Gulping ".concat(t," as socket seems already closed...")),J(),!0):(+new Date-m>n&&!_&&L(),!1)}function K(e){w.push(e)}function J(){O&&(clearInterval(I),clearInterval(A),clearInterval(R),w=[],D=[],self.close())}L(),I=setInterval(function(){if(N){for(var e=0;e<D.length;e++){if(!M(D[e].packetData))break}N=!1}else for(;w.length>0;){var t=w.shift();if(!M(t)){w.unshift(t);break}if(h){var i=new DataView(t),n={packetNumber:Number(i.getBigInt64(4)),packetData:t};D.push(n)}}},a),A=setInterval(function(){if(k&&k.readyState===WebSocket.OPEN){var e=+new Date;(p?y>S&&e-S>r:e-E>r)&&(l&&console.error("No data received since more than ".concat(r/1e3," secs, closing time...")),k.close())}},s),R=setInterval(function(){if(k&&k.readyState===WebSocket.OPEN){var e=+new Date;y&&e-y>o&&(l&&console.warn("No data sent since more than ".concat(o/1e3," secs, closing time...")),k.close())}},c),self.onmessage=function(n){if(n.data===i)U="",O=!0,_=!0,k.close();else if(n.data===e)K(t),U="",l&&console.log("Augnito: Worker received DONE, time to terminate..."),O=!0;else if(n.data===d)x=!0;else if(n.data===g)P=!0;else if(n.data===f){if(K(C),T.length>0)for(var r=0;r<T.length;r++)K(T[r]);T=[],P=!1,x=!1,C=[]}else x&&!P?C=n.data:x&&P?T.push(n.data):K(n.data)}}var R,w,T,P,D,O,N,_,U,x=m(function e(t,i,n,r,o,s,a,c,u,l,h,d,f,g,p,b,m,y,S,E,C){v(this,e),this.audioContext,this.audioStream,this.executor=new I(i,s,a,c,g,p,b,y,S,E,r,d),this.executor.HeavyOp=f,this.source,this.processorNode,this.isPaused=!1,this.isStreaming=!1,this.audioData=[],this.isDebug=n,this.enableLogs=i,this.onStateChanged=m,this.onIntensity=C,this.onError=b,this.bufferSizeInterval=r,this.pausedBufferInterval=null!=o?o:1,this.shouldReadIntensity=h,this.closeSocketWithoutEOS=!1,this.shouldPreIntialiseRecorder=null!=l&&l,this.shouldPreIntialiseRecorder&&this.InitialiseMediaStream(u,t)},[{key:"InitialiseMediaStream",value:(U=p(d().mark(function e(t,i){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.createMediaStreamSourceNode();case 2:if(this.source){e.next=5;break}return console.error("Error: unable to create source node"),e.abrupt("return",!1);case 5:return e.next=7,this.createProcessorNode();case 7:if(this.processorNode){e.next=10;break}return console.error("Error: unable to create processor node"),e.abrupt("return",!1);case 10:this.source.connect(this.processorNode).connect(this.audioContext.destination),this.log("AudioContext Sample Rate: "+this.audioContext.sampleRate),""!==i&&this.executor.Start(t,i,this.shouldPreIntialiseRecorder);case 13:case"end":return e.stop()}},e,this)})),function(e,t){return U.apply(this,arguments)})},{key:"StartStream",value:(_=p(d().mark(function e(t,i){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.log("New stream started..."),this.shouldPreIntialiseRecorder&&this.source){e.next=6;break}return e.next=4,this.InitialiseMediaStream(t,i,!1);case 4:e.next=7;break;case 6:this.shouldPreIntialiseRecorder&&this.executor.Send(E);case 7:if(!this.IsMicrophoneMuted){e.next=13;break}if(!this.audioContext||"running"!=this.audioContext.state){e.next=11;break}return e.next=11,this.audioContext.suspend();case 11:return this.onError(JSON.stringify({Type:"ERROR",Data:"Microphone is muted."})),e.abrupt("return",!1);case 13:return this.onStateChanged(!0),this.isStreaming=!0,e.abrupt("return",!0);case 16:case"end":return e.stop()}},e,this)})),function(e,t){return _.apply(this,arguments)})},{key:"createBufferedSourceNode",value:(N=p(d().mark(function e(){var t;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.loadAudio();case 2:if(t=e.sent){e.next=6;break}return console.error("Error: unable to create audio buffer"),e.abrupt("return");case 6:this.source=this.audioContext.createBufferSource(),this.source.buffer=t,this.source.loop=!0,this.source.start();case 10:case"end":return e.stop()}},e,this)})),function(){return N.apply(this,arguments)})},{key:"createMediaStreamSourceNode",value:(O=p(d().mark(function e(){var t,i=this;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.mediaDevices.getUserMedia({audio:{channelCount:1,noiseSuppression:!1}});case 3:this.audioStream=e.sent,this.audioContext=new AudioContext,this.source=this.audioContext.createMediaStreamSource(this.audioStream),this.audioStream.getAudioTracks()[0].addEventListener("ended",function(){i.onError(JSON.stringify({Type:"ERROR",Data:"Audio track ended. Possibly the mic was unplugged."}))}),e.next=14;break;case 9:e.prev=9,e.t0=e.catch(0),t="","NotAllowedError"==e.t0.name?t="Mic permission denied":"NotFoundError"===e.t0.name&&(t="No suitable media device found"),this.onError(JSON.stringify({Type:"ERROR",Data:t}));case 14:case"end":return e.stop()}},e,this,[[0,9]])})),function(){return O.apply(this,arguments)})},{key:"loadAudio",value:(D=p(d().mark(function e(){var t,i,n;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("./radiology_speed_test.wav");case 3:return t=e.sent,e.next=6,t.arrayBuffer();case 6:return i=e.sent,e.next=9,this.audioContext.decodeAudioData(i);case 9:return n=e.sent,e.abrupt("return",n);case 13:return e.prev=13,e.t0=e.catch(0),console.error("Unable to fetch the audio file. Error: ".concat(e.t0.message)),e.abrupt("return",null);case 17:case"end":return e.stop()}},e,this,[[0,13]])})),function(){return D.apply(this,arguments)})},{key:"createProcessorNode",value:(P=p(d().mark(function e(){var t,i=this;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.audioContext.audioWorklet.addModule("data:application/javascript,".concat(encodeURIComponent('class MyAudioWorkletProcessor extends AudioWorkletProcessor {\n constructor() {\n super();\n this.accumulator = [];\n this.pauseSocketStreaming = false;\n this.sampleVal = 0;\n this.sampleSize = 0;\n this.intensityFrameCount = 0;\n this.reset();\n this.isProcessing = true;\n // message received from main-thread\n this.port.onmessage = (e) => {\n console.log("Augnito: Worklet received event - ", e.data);\n if (this.sampleSize > 0) {\n this.accumulator.push(this.sampleVal / this.sampleSize);\n }\n \n if (e.data == "PAUSE" || e.data == "STOP" || e.data == "PAUSESOCKET") {\n // append silence to get last word ASR.\n const silenceSize = 16000 * 2;\n for (let i = 0; i < silenceSize; i++) {\n this.accumulator.push(0);\n }\n }\n this.send();\n this.reset();\n if (e.data == "STOP") {\n // message sent to main-thread\n this.port.postMessage({type:"DONE", value:"DONE"});\n this.isProcessing = false;\n \n }\n if(e.data == "PAUSESOCKET"){\n this.pauseSocketStreaming = true;\n this.port.postMessage("PAUSESOCKET");\n } else if(e.data == "RESUMESOCKET"){\n this.pauseSocketStreaming = false;\n } \n };\n }\n\n static get parameterDescriptors() {\n return [\n {\n name: "sampleRate",\n defaultValue: 16000,\n minValue: 16000,\n maxValue: 6 * 16000,\n },\n {\n name: "bufferSizeInterval",\n defaultValue: 1,\n minValue: 1,\n maxValue: 100,\n },\n {\n name: "pausedBufferInterval",\n defaultValue: 1,\n minValue: 0,\n maxValue: 100,\n },\n {\n name: "shouldReadIntensity",\n defaultValue: false,\n minValue: 0,\n maxValue: 1,\n },\n ];\n }\n\n // 128 frames\n process(inputList, outputList, params) {\n const input = inputList[0];\n if (input && input.length && input[0].length) {\n const channelData = input[0];\n const output = outputList[0];\n const inputSampleRate = params.sampleRate[0];\n const sampleRatio = inputSampleRate / 16000\n const bufferSizeInterval = params["bufferSizeInterval"][0];\n const pausedBufferInterval = params["pausedBufferInterval"][0];\n const shouldReadIntensity = params["shouldReadIntensity"][0];\n\n let sumSquares = 0; // For intensity\n let sampleCount = 0;\n\n // console.log("BufferSizeInterval", bufferSizeInterval);\n // Jackpot\n input[0].forEach((float32Element, index) => {\n const int16Element = Math.min(1, Math.max(-1, float32Element)) * 0x7fff;\n this.sampleVal += int16Element;\n this.sampleSize += 1;\n // Accumulate for intensity (RMS)\n sumSquares += float32Element * float32Element;\n sampleCount++;\n \n\n if (this.sampleSize >= sampleRatio) {\n const fraction = this.sampleSize - sampleRatio \n this.sampleVal -= fraction * int16Element;\n\n this.accumulator.push(this.sampleVal / sampleRatio);\n \n this.sampleVal = fraction * int16Element;\n this.sampleSize = fraction;\n }\n\n // Comment this when streaming microphone audio\n // output[0][index] = float32Element;\n });\n if(this.pauseSocketStreaming){\n if (this.accumulator.length >= 125 * 128 * pausedBufferInterval) {\n this.send();\n }\n } else{\n if (this.accumulator.length >= 125 * 128 * bufferSizeInterval) {\n this.send();\n }\n }\n if(shouldReadIntensity){\n \n // Throttled intensity post\n this.intensityFrameCount = (this.intensityFrameCount || 0) + 1;\n if (this.intensityFrameCount >= 15 && sampleCount > 0) {\n const rms = Math.sqrt(sumSquares / sampleCount);\n const normalized = Math.min(1, rms); // [0–1] scale\n this.port.postMessage({ type: \'intensity\', value: normalized });\n this.intensityFrameCount = 0;\n }\n }\n }\n return this.isProcessing;\n }\n\n send() {\n if (this.accumulator.length == 0) return;\n const audioData = new Int16Array(this.accumulator);\n // message sent to main-thread - transferrable\n this.port.postMessage({ type: \'audioData\', value: audioData.buffer }, [audioData.buffer]);\n this.accumulator = [];\n }\n\n reset() {\n this.sampleVal = 0;\n this.sampleSize = 0;\n }\n}\n\nregisterProcessor("worklet-processor", MyAudioWorkletProcessor);')));case 3:this.processorNode=new AudioWorkletNode(this.audioContext,"worklet-processor"),this.processorNode.parameters.get("sampleRate").setValueAtTime(this.audioContext.sampleRate,this.audioContext.currentTime),this.processorNode.parameters.get("bufferSizeInterval").setValueAtTime(this.bufferSizeInterval,this.audioContext.currentTime),this.processorNode.parameters.get("pausedBufferInterval").setValueAtTime(this.pausedBufferInterval,this.audioContext.currentTime),this.processorNode.parameters.get("shouldReadIntensity").setValueAtTime(null!==(t=this.shouldReadIntensity)&&void 0!==t&&t,this.audioContext.currentTime),this.processorNode.port.onmessage=function(e){var t=e.data,n=t.type,r=t.value;if(n==y)i.log("Worklet processing done, clearing resources..."),i.isDebug&&i.saveAudio(),i.cleanup();else if(e.data==S)i.executor.Send(S);else{var o;"intensity"===n?null===(o=i.onIntensity)||void 0===o||o.call(i,r):"audioData"===n&&i.isDebug&&new Int16Array(r).forEach(function(e){i.audioData.length<=288e5&&i.audioData.push(e)})}i.executor&&(i.closeSocketWithoutEOS?(i.executor.Send(k),i.closeSocketWithoutEOS=!1):"intensity"!==n&&i.executor.Send(r))},e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),console.error("Error: Unable to create worklet node: ",e.t0);case 18:case"end":return e.stop()}},e,this,[[0,15]])})),function(){return P.apply(this,arguments)})},{key:"PauseStream",value:(T=p(d().mark(function e(){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("running"!=this.audioContext.state){e.next=9;break}if(this.shouldPreIntialiseRecorder){e.next=8;break}return e.next=4,this.audioContext.suspend();case 4:this.log("Stream paused..."),this.processorNode.port.postMessage("PAUSE"),e.next=9;break;case 8:this.processorNode.port.postMessage(S);case 9:this.onStateChanged(!1),this.isPaused=!0,this.isStreaming=!1;case 12:case"end":return e.stop()}},e,this)})),function(){return T.apply(this,arguments)})},{key:"ResumeStream",value:(w=p(d().mark(function e(){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.shouldPreIntialiseRecorder||"suspended"!=this.audioContext.state){e.next=9;break}if(!this.IsMicrophoneMuted){e.next=4;break}return this.onError(JSON.stringify({Type:"ERROR",Data:"Microphone is muted."})),e.abrupt("return");case 4:return e.next=6,this.audioContext.resume();case 6:this.log("Stream resumed..."),e.next=11;break;case 9:this.processorNode.port.postMessage(E),this.executor.Send(E);case 11:this.onStateChanged(!0),this.isPaused=!1,this.isStreaming=!0;case 14:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"IsPaused",get:function(){return this.isPaused}},{key:"IsStreaming",get:function(){return this.isStreaming}},{key:"IsMicrophoneMuted",get:function(){return this.audioStream.getAudioTracks()[0].muted}},{key:"StopStream",value:(R=p(d().mark(function e(t){var i,n,r,o;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("suspended"===(null===(i=this.audioContext)||void 0===i?void 0:i.state)){e.next=4;break}return e.next=3,null===(o=this.audioContext)||void 0===o?void 0:o.suspend();case 3:this.onStateChanged(!1);case 4:this.log("Stream stopped..."),this.isStreaming=!1,this.closeSocketWithoutEOS=!t,null===(n=this.processorNode)||void 0===n||null===(n=n.port)||void 0===n||n.postMessage("STOP"),null===(r=this.audioStream)||void 0===r||r.getAudioTracks()[0].removeEventListener("ended",function(){});case 9:case"end":return e.stop()}},e,this)})),function(e){return R.apply(this,arguments)})},{key:"IntentStartStream",value:function(){this.executor.Send("INTENT_START_STREAM")}},{key:"cleanup",value:function(){this.source.mediaStream.getAudioTracks()[0].stop(),this.source.disconnect(),this.processorNode.disconnect(),this.processorNode.port.close(),this.audioContext.close(),this.audioData=[]}},{key:"saveAudio",value:function(){var e=this.encodeWAV(),t=URL.createObjectURL(new Blob([e],{type:"audio/wav"}));this.log("Download Recording: ".concat(t))}},{key:"getBlob",value:function(){var e=this.encodeWAV();console.log(e);var t=new Blob([e],{type:"audio/wav"});return console.log(t),t}},{key:"encodeWAV",value:function(){var e=new DataView(new ArrayBuffer(2*this.audioData.length));this.audioData.forEach(function(t,i){e.setInt16(2*i,t,!0)});var t=e.buffer.byteLength,i=44+t,n=new DataView(new ArrayBuffer(i));n.setUint32(0,1380533830,!1),n.setUint32(4,i-8,!0),n.setUint32(8,1463899717,!1),n.setUint32(12,1718449184,!1),n.setUint32(16,16,!0),n.setUint16(20,1,!0),n.setUint16(22,1,!0),n.setUint32(24,16e3,!0),n.setUint32(28,32e3,!0),n.setUint16(32,2,!0),n.setUint16(34,16,!0),n.setUint32(36,1684108385,!1),n.setUint32(40,t,!0);for(var r=0;r<t;r++)n.setInt8(44+r,e.getInt8(r));return n}},{key:"log",value:function(e){if(this.enableLogs){var t="".concat((new Date).toLocaleTimeString()," Augnito: ").concat(e);console.log(t+"\n")}}}]),L=function(){function e(){var t,i,n,r,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serverURL:"",enableLogs:!1,isDebug:!1,bufferInterval:1,pausedBufferInterval:1,EOS_Message:void 0,socketTimeoutInterval:void 0,shouldSendAudioDataSequence:!1,reconnectAudioDuration:0,shouldPreIntialiseRecorder:!1,shouldReadIntensity:!1,debounceDelay:300,switchToRegularSpeechProfile:!1},s=arguments.length>1?arguments[1]:void 0;if(v(this,e),e.instance)return e.instance;this.WebsocketURL=null!==(t=o.serverURL)&&void 0!==t?t:"",this.enableLogs=o.enableLogs,this.isDebug=o.isDebug,this.streamer=null,this.streamerNotStarted=!1,this.isStreamerStarting=!1,this.pendingStartStream=!1,this.heavyOp=s,this.bufferInterval=o.bufferInterval,this.pausedBufferInterval=o.pausedBufferInterval,this.eosMessage=o.EOS_Message,this.socketTimeoutInterval=o.socketTimeoutInterval,this.shouldSendAudioDataSequence=o.shouldSendAudioDataSequence,this.reconnectAudioDuration=null!==(i=o.reconnectAudioDuration)&&void 0!==i?i:0,this.shouldPreIntialiseRecorder=o.shouldPreIntialiseRecorder,this.switchToRegularSpeechProfile=null!==(n=o.switchToRegularSpeechProfile)&&void 0!==n&&n,this.shouldPreIntialiseRecorder&&(this.initialiseStreamer(),this.streamerNotStarted=!0),this.shouldReadIntensity=o.shouldReadIntensity,this.delay=null!==(r=o.debounceDelay)&&void 0!==r?r:300,this.toggleStartStopAudioStream=M(this.toggleStartStopAudioStream.bind(this),this.delay),this.togglePauseResumeAudioStream=M(this.togglePauseResumeAudioStream.bind(this),this.delay),this.needsDispose=!1,e.instance=this}return m(e,[{key:"initialiseStreamer",value:function(){this.streamer=new x(this.WebsocketURL,this.enableLogs,this.isDebug,this.bufferInterval,this.pausedBufferInterval,this.eosMessage,this.socketTimeoutInterval,this.shouldSendAudioDataSequence,this.reconnectAudioDuration,this.shouldPreIntialiseRecorder,this.shouldReadIntensity,this.switchToRegularSpeechProfile,this.heavyOp,this.onFinalResultCallback.bind(this),this.onPartialResultCallback.bind(this),this.onErrorCallback.bind(this),this.onStateChangedCallback.bind(this),this.onSessionEventCallback.bind(this),this.onOtherResultCallback.bind(this),this.onSpeechResponseCallback.bind(this),this.onIntensityCallback.bind(this))}},{key:"updateIntentStartStream",value:function(){var e;this.pendingStartStream=!0,null===(e=this.streamer)||void 0===e||e.IntentStartStream()}},{key:"togglePauseResumeAudioStream",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;!this.streamer||this.streamerNotStarted?(t&&(this.WebsocketURL=t),this.startAudio(e)):this.streamer.IsPaused?this.resumeAudio():this.pauseAudio()}},{key:"toggleStartStopAudioStream",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;!this.streamer||this.streamerNotStarted?(t&&(this.WebsocketURL=t),this.startAudio(e)):this.stopAudio()}},{key:"startAudio",value:(t=p(d().mark(function e(t){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isStreamerStarting){e.next=2;break}return e.abrupt("return");case 2:return this.isStreamerStarting=!0,this.shouldPreIntialiseRecorder&&this.streamer||this.initialiseStreamer(),e.prev=4,e.next=7,this.streamer.StartStream(t,this.WebsocketURL);case 7:e.sent?(this.streamerNotStarted=!1,this.log("Stream Started...")):this.streamer=null;case 9:return e.prev=9,this.isStreamerStarting=!1,e.finish(9);case 12:case"end":return e.stop()}},e,this,[[4,,9,12]])})),function(e){return t.apply(this,arguments)})},{key:"pauseAudio",value:function(){this.streamer.PauseStream(),this.log("Stream Paused...")}},{key:"resumeAudio",value:function(){this.streamer.ResumeStream(),this.enableLogs&&this.log("Stream Resumed...")}},{key:"stopAudio",value:function(){var e,t,i=this,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(null!==(e=this.streamer)&&void 0!==e&&e.IsStreaming||r)&&(null===(t=this.streamer)||void 0===t||t.StopStream(n),this.streamer=null,this.log("Stream Stopped..."),this.shouldPreIntialiseRecorder&&setTimeout(function(){i.needsDispose?i.needsDispose=!1:(i.initialiseStreamer(),i.streamerNotStarted=!0)},500))}},{key:"getBlob",value:function(){var e=this.streamer.getBlob();return this.log("Blob Sent..."),e}},{key:"log",value:function(e){if(this.enableLogs){var t="".concat((new Date).toLocaleTimeString()," Augnito: ").concat(e);this.showLogCallback(t+"\n")}}},{key:"dispose",value:function(){var t;this.needsDispose=!0,null===(t=this.streamer)||void 0===t||t.StopStream(!1),this.streamer=null,e.instance=null}},{key:"onSessionEventCallback",value:function(e){this.onSessionEvent&&this.onSessionEvent(e)}},{key:"onStateChangedCallback",value:function(e){this.onStateChanged&&this.onStateChanged(e)}},{key:"onIntensityCallback",value:function(e){this.onIntensity&&this.onIntensity(e)}},{key:"onErrorCallback",value:function(e){this.onError&&this.onError(e)}},{key:"onPartialResultCallback",value:function(e){this.onPartialResult&&this.onPartialResult(e)}},{key:"onFinalResultCallback",value:function(e){this.onFinalResult&&this.onFinalResult(e)}},{key:"onOtherResultCallback",value:function(e){this.onOtherResults&&this.onOtherResults(e)}},{key:"onSpeechResponseCallback",value:function(e){this.onSpeechResponse&&this.onSpeechResponse(e)}},{key:"showLogCallback",value:function(e){this.showLog&&this.showLog(e)}}]);var t}();function M(e,t){var i;return function(){for(var n=this,r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];i&&clearTimeout(i),i=setTimeout(function(){return e.apply(n,o)},t)}}class K extends u{constructor(e){super(),Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"_baseUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._baseUrl=`https://${e.server}/pace/v1/sdk`}getURL(e){return`${this._baseUrl}${e}`}getNoteParams(){return e(this,void 0,void 0,function*(){const e=this.getURL("/noteparams"),t={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag};return yield this.makePostRequest(e,t)})}getSettingsConfigMaster(t){return e(this,void 0,void 0,function*(){const e=this.getURL("/configmaster"),i={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,ConfigTypeId:t};return yield this.makePostRequest(e,i)})}getOrgConfigMapping(t){return e(this,void 0,void 0,function*(){const e=this.getURL("/configmapping").replace("/v1","/v2"),i={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,ConfigTypeId:t};return yield this.makePostRequest(e,i)})}getUserConfigSettings(t){return e(this,void 0,void 0,function*(){const e=this.getURL("/userconfigmapping"),i={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,ConfigTypeId:t};return yield this.makePostRequest(e,i)})}updateUserConfig(t){return e(this,void 0,void 0,function*(){const e=this.getURL("/userconfigmapping"),i={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,UserConfigMapping:t};return yield this.makePatchRequest(e,i)})}getUserPreferences(){return e(this,void 0,void 0,function*(){const e=this.getURL("/getuserpreferences"),t={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag};return yield this.makePostRequest(e,t)})}updateUserPreference(t,i,n,r,o,s){return e(this,void 0,void 0,function*(){const e=this.getURL("/postuserpreferences"),a={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,UserPreferences:{AutomaticallyGenerateTranscript:t,PreferredTranscriptionLanguage:i,HighlightMedicalTerms:n,DisplayPatientContext:r,NoteOutputStyle:o,NoteOutputVerbosity:s}};return yield this.makePostRequest(e,a)})}}const J="Invalid user details, please check again",W="Subscription is not valid.",j="invalid request. Please make sure AccessKey, SubscriptionCode and UserTag is sent along with the request",B="Active seat is not available for user",V="Unable to fetch account details, please try again.",z="Unable to fetch job details, please try again.",F="Job not reconnectable",q="Timeout exceeded",H="Rate Limit Exceeded, Please try again in sometime!",G="Audio Signal is power very LOW, Mic might be muted",$="Job Id is empty",Y="Page Size is undefined",Q="Note Data is empty",X="Job Name is empty",Z="Patient Context is empty",ee="Mic permission denied",te="Microphone is muted",ie="Audio track ended. Possibly the mic was unplugged",ne="Internet is not available. Try again later.";class re{static isBrowserOnline(){return"undefined"!=typeof navigator&&!0===navigator.onLine}static isValidHttpUrl(e){if("string"!=typeof e||e.length>2048)return!1;try{const t=new URL(e);return("http:"===t.protocol||"https:"===t.protocol)&&(!t.username&&!t.password)}catch(e){return!1}}static hasInternetConnection(){return e(this,arguments,void 0,function*(e={url:null,timeoutMs:null}){var t=e.url||re.DEFAULT_URL;const i=e.timeoutMs||re.DEFAULT_TIMEOUT;if(!re.isBrowserOnline())return!1;re.isValidHttpUrl(t)||(t=re.DEFAULT_URL);const n=new AbortController,r=setTimeout(()=>n.abort(),i);try{return yield fetch(t,{method:"HEAD",mode:"no-cors",cache:"no-cache",signal:n.signal}),!0}catch(e){return!1}finally{clearTimeout(r)}})}static isOnline(t){return e(this,void 0,void 0,function*(){return re.hasInternetConnection(t)})}}Object.defineProperty(re,"DEFAULT_URL",{enumerable:!0,configurable:!0,writable:!0,value:"https://www.google.com/favicon.ico"}),Object.defineProperty(re,"DEFAULT_TIMEOUT",{enumerable:!0,configurable:!0,writable:!0,value:5e3});class oe{constructor(e){Object.defineProperty(this,"_logTag",{enumerable:!0,configurable:!0,writable:!0,value:"Augnito-Ambient"}),Object.defineProperty(this,"_ambientRestAPI",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ambientPaceAPI",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"enableLog",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shouldReadAudioIntensity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"recorderIns",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"forceStopAudio",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_isRecording",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"onJobCreated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onStateChanged",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onError",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onOtherResult",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onIntensityValue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onIdleMic",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onSoapNoteGenerated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onTranscriptGenerated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onCodesGenerated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._ambientRestAPI=new l(this.validateConfig(e)),this._ambientPaceAPI=new K(e),this.config=this.createSocketConfig(e),this.enableLog=e.enableLogs,this.shouldReadAudioIntensity=e.shouldReadAudioIntensity}initRecorder(e){var t,i;this.recorderIns=new L({serverURL:e,enableLogs:null!==(t=this.enableLog)&&void 0!==t&&t,isDebug:null!==(i=this.enableLog)&&void 0!==i&&i,bufferInterval:15,EOS_Message:'{"JobAction": "EOS","Status": 0,"Type": "meta"}',socketTimeoutInterval:2e4,shouldSendAudioDataSequence:!0,shouldReadIntensity:this.shouldReadAudioIntensity}),this.recorderIns.onError=this.onErrorCallback.bind(this),this.recorderIns.onStateChanged=this.onStateChangeCallback.bind(this),this.recorderIns.onSessionEvent=this.onSessionEventCallback.bind(this),this.recorderIns.onOtherResults=this.onOtherResultsCallback.bind(this),this.recorderIns.onIntensity=this.onIntensityCallback.bind(this),this.recorderIns.onSpeechResponse=this.onSpeechResponseCallback.bind(this)}getNoteParams(){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientPaceAPI.getNoteParams();if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getAllNotes(t,i){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.ListJobs(t,i);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getSummarizedNote(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.FetchJob(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}sendSummarizedNote(t,i){return e(this,void 0,void 0,function*(){try{return this._ambientRestAPI?yield this._ambientRestAPI.SendFinalNote(t,i):void h.error("SDK not initialized",this._logTag)}catch(e){this.handleException(e)}})}toggleListening(e,t,i,n,r){var o,s,a=(null===(o=this.config)||void 0===o?void 0:o.prepareWSSURL(e,t,i,n))||"";this.recorderIns||this.initRecorder(a),null===(s=this.recorderIns)||void 0===s||s.toggleStartStopAudioStream(r,a)}togglePauseResumeListening(e,t,i,n,r){var o,s,a=(null===(o=this.config)||void 0===o?void 0:o.prepareWSSURL(e,t,i,n))||"";this.recorderIns||this.initRecorder(a),null===(s=this.recorderIns)||void 0===s||s.togglePauseResumeAudioStream(r,a)}startListening(){var e;null===(e=this.recorderIns)||void 0===e||e.startAudio()}stopListening(){var e;null===(e=this.recorderIns)||void 0===e||e.stopAudio(!0,!0)}deleteNotes(t){return e(this,void 0,void 0,function*(){var e;try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var i=yield this._ambientRestAPI.DeleteNotes(t);if(i){if(200===i.Status)return null===(e=this.recorderIns)||void 0===e||e.stopAudio(!1,!0),i;this.onErrorCallback(i.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}renameNoteTitle(t,i){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.RenameNoteTitle(t,i);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getNotePDF(t,i,n,r,o,s){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.DownloadNotePDF(t,i,n,r,o,s);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}endPausedJob(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.EndJob(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}generateCDISuggestions(t,i,r,o,s){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=1,a=yield this._ambientPaceAPI.getOrgConfigMapping(n.CDIVersion);if((null==a?void 0:a.Items)&&a.Items.length>0&&a.Items[0].Settings){var c=a.Items[0].Settings.find(e=>209===e.ID);c&&(e=Number.parseInt(c.ConfigValue))}var u=yield this._ambientRestAPI.GenerateSuggestions(t,i,r,s,o,e);if(u){if(200===u.Status)return u;this.onErrorCallback(u.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}updatePatientContext(t,i,n){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.UpdatePatientContext(t,i,n);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}modifyGeneratedNote(t,i,n){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.ModifyGeneratedNote(t,i,n);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}fetchTranscriptionForNote(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);if((yield this._ambientPaceAPI.getUserPreferences()).Items[0].AutomaticTranscriptionEnabledForOrg){var e=yield this._ambientRestAPI.FetchTranscription(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}else this.onErrorCallback("Automatic Transcription is not enabled for the organisation")}catch(e){this.handleException(e)}})}sendFeedback(t,i,n,r){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.SendFeedback(t,i,null!=n?n:"",null!=r?r:"SOAPFeedBack");if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getUserConfiguration(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientPaceAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientPaceAPI.getUserConfigSettings(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}updateUserConfiguration(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientPaceAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientPaceAPI.updateUserConfig(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getUserPreferenceSettings(){return e(this,void 0,void 0,function*(){try{if(!this._ambientPaceAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientPaceAPI.getUserPreferences();if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}updateUserPreferenceSettings(t){return e(this,void 0,void 0,function*(){var e,i,n,r,o,c;try{if(!this._ambientPaceAPI)return void h.error("SDK not initialized",this._logTag);var u=yield this._ambientPaceAPI.updateUserPreference(null!==(e=t.AutomaticallyGenerateTranscript)&&void 0!==e&&e,null!==(i=t.PreferredTranscriptionLanguage)&&void 0!==i?i:"English",null!==(n=t.HighlightMedicalTerms)&&void 0!==n&&n,null!==(r=t.DisplayPatientContext)&&void 0!==r&&r,null!==(o=t.NoteOutputStyle)&&void 0!==o?o:a.DashFormat,null!==(c=t.NoteOutputVerbosity)&&void 0!==c?c:s.Detailed);if(u){if(200===u.Status)return u;this.onErrorCallback(u.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}isInternetAvailable(t){return e(this,void 0,void 0,function*(){const e=yield re.isOnline(t);return e||this.onErrorCallback(ne),e})}onEventCallback(e){this.onJobCreated&&this.onJobCreated(e)}onStateChangeCallback(e){var t;if(this.forceStopAudio)return null===(t=this.recorderIns)||void 0===t||t.stopAudio(!1,!0),void(this.forceStopAudio=!1);this._isRecording=e,this.onStateChanged&&this.onStateChanged(e)}handleException(e){if(e instanceof TypeError)this.onErrorCallback(e.message);else{if(e instanceof c)throw e;h.error(e.message,this._logTag)}}onErrorCallback(e,t){var i,n,r,s,a,c,u,l,d,f,g,p,v,b,m={ErrorCode:null!=t?t:o.ERRUNKNOWN,ErrorMessage:e};try{var y=JSON.parse(e);m.ErrorMessage=y.Data,y.Data===q?(this.stopListening(),h.error("Recording time limit exceeded",this._logTag),m.ErrorCode=o.WSJOB05):y.Data===J?(this._isRecording?null===(i=this.recorderIns)||void 0===i||i.stopAudio(!1,!0):this.forceStopAudio=!0,m.ErrorCode=o.WSAUTH03):y.Data.includes(V)?m.ErrorCode=o.WSAUTH04:y.Data.includes(z)?m.ErrorCode=o.WSJOB01:y.Data.includes(F)?m.ErrorCode=o.WSJOB02:y.Data.includes(H)?m.ErrorCode=o.WSACC01:y.Data.includes(G)&&(m.ErrorCode=o.WSAUD01)}catch(e){}(null===(n=m.ErrorMessage)||void 0===n?void 0:n.includes($))?m.ErrorCode=o.SDK01:(null===(r=m.ErrorMessage)||void 0===r?void 0:r.includes(Y))?m.ErrorCode=o.SDK02:(null===(s=m.ErrorMessage)||void 0===s?void 0:s.includes(Q))?m.ErrorCode=o.SDK03:(null===(a=m.ErrorMessage)||void 0===a?void 0:a.includes(X))?m.ErrorCode=o.SDK04:(null===(c=m.ErrorMessage)||void 0===c?void 0:c.includes(Z))?m.ErrorCode=o.SDK05:(null===(u=m.ErrorMessage)||void 0===u?void 0:u.includes(ee))?m.ErrorCode=o.SDK06:(null===(l=m.ErrorMessage)||void 0===l?void 0:l.includes(te))?(m.ErrorCode=o.SDK07,null===(d=this.recorderIns)||void 0===d||d.stopAudio(!1,!0)):(null===(f=m.ErrorMessage)||void 0===f?void 0:f.includes(ie))?m.ErrorCode=o.SDK08:(null===(g=m.ErrorMessage)||void 0===g?void 0:g.includes(W))||(null===(p=m.ErrorMessage)||void 0===p?void 0:p.includes(j))?m.ErrorCode=o.AUTH01:(null===(v=m.ErrorMessage)||void 0===v?void 0:v.includes(B))?m.ErrorCode=o.AUTH02:(null===(b=m.ErrorMessage)||void 0===b?void 0:b.includes(ne))&&(m.ErrorCode=o.SDK12),this.onError&&this.onError(m)}onOtherResultsCallback(e){this.onOtherResult&&this.onOtherResult(e)}onIntensityCallback(e){this.onIntensityValue&&this.onIntensityValue(e)}onIdleMicCallback(){this.onIdleMic&&this.onIdleMic()}onSpeechResponseCallback(e){var t=JSON.parse(e);"note"===t.Type.toLowerCase()&&this.onSoapNoteGenerated?this.onSoapNoteGenerated(t.Data):"transcript"===t.Type.toLowerCase()&&this.onTranscriptGenerated?this.onTranscriptGenerated(t.Data):"codes"===t.Type.toLowerCase()&&this.onCodesGenerated&&this.onCodesGenerated(t.Data)}onSessionEventCallback(e){var t;if(!e)return;let i;try{i="string"==typeof e?JSON.parse(e):e}catch(e){return void h.error(`Error parsing session event data: ${e}`,this._logTag)}if(!i||!("Type"in i))return;if("meta"===i.Type.toLowerCase()&&(null===(t=this.config)||void 0===t?void 0:t.onMetaEvent)){if(!i.JobID)return void h.error("JobID is missing in meta event",this._logTag);this.config.onMetaEvent(i.JobID)}else"error"===i.Type.toLowerCase()&&i.Data&&this.onErrorCallback(i.Data);if("object"!=typeof i.Event||null===i.Event)return;const{Type:n,Value:r}=i.Event;n&&("SESSION_CREATED"===n&&r?h.log(`session Token ${r}`,this._logTag):"SERVICE_DOWN"===n?h.error(n,this._logTag):"NO_DICTATION_STOP_MIC"===n?(h.log("NO_DICTATION_STOP_MIC",this._logTag),this.onIdleMicCallback()):"INVALID_AUTH_CREDENTIALS"===n?h.error("INVALID_AUTH_CREDENTIALS",this._logTag):"LOW_BANDWIDTH"===n&&h.log("LOW_BANDWIDTH: Check internet connection",this._logTag))}validateConfig(e){return i.Against.NullOrEmpty(e.server,"Server"),i.Against.NullOrEmpty(e.subscriptionCode,"SubscriptionCode"),i.Against.NullOrEmpty(e.accessKey,"AccessKey"),i.Against.NullOrEmpty(e.userTag,"UserTag"),e}createSocketConfig(e){const i=new t(e);return i.onError=this.onErrorCallback.bind(this),i.onMetaEvent=this.onEventCallback.bind(this),i}}export{oe as AugnitoAmbient,o as ErrorCodes,c as HttpCodedError,a as NoteOutputStyleConfig,r as NoteTypeConfig,s as NoteVerbosityConfig,n as SettingsConfigType};
|
|
1
|
+
function e(e,t,i,n){return new(i||(i=Promise))(function(r,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(s,a)}c((n=n.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;class t{constructor(e){Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"wssBaseURL",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onError",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onMetaEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.wssBaseURL=`wss://${e.server}/ambient/v1/stream-job`}prepareWSSURL(e,t,i,n){let r=this.wssBaseURL;return r+=`?filetype=${e}`,r+=`¬eparams=${t}`,r+=`&subscriptioncode=${this._config.subscriptionCode}`,r+=`&accesskey=${this._config.accessKey}`,r+=`&usertag=${this._config.userTag}`,i&&""!==i&&(r+=`&filename=${i}`),n&&""!==n&&(r+=`&jobid=${n}`),r}}class i{constructor(){}static get Against(){return i.instance||(i.instance=new i),i.instance}NullOrUndefined(e,t){if(null===e)throw new TypeError(`${t} is null`);if(void 0===e)throw new TypeError(`${t} is undefined`);return e}NullOrEmpty(e,t){if(!(e=i.Against.NullOrUndefined(e,t)))throw new TypeError(`${t} is empty`);return e}}var n,r,o,s,a;!function(e){e[e.SPECIALITY=1]="SPECIALITY",e[e.VISIT_TYPE=2]="VISIT_TYPE",e[e.NOTE_TYPE=3]="NOTE_TYPE",e[e.CLINICAL_CODE=4]="CLINICAL_CODE",e[e.LANGUAGE=5]="LANGUAGE"}(n||(n={})),function(e){e[e.SoapNote=1]="SoapNote",e[e.PatientNote=2]="PatientNote",e[e.ReferralNote=3]="ReferralNote",e[e.ConsultationSummary=4]="ConsultationSummary",e[e.CDISuggestions=102]="CDISuggestions"}(r||(r={})),function(e){e.AUTH01="AUTH01",e.AUTH02="AUTH02",e.WSAUTH01="WSAUTH01",e.WSAUTH02="WSAUTH02",e.WSAUTH03="WSAUTH03",e.WSAUTH04="WSAUTH04",e.WSJOB01="WSJOB01",e.WSJOB02="WSJOB02",e.WSJOB03="WSJOB03",e.WSJOB04="WSJOB04",e.WSJOB05="WSJOB05",e.WSACC01="WSACC01",e.WSAUD01="WSAUD01",e.SDK01="SDK01",e.SDK02="SDK02",e.SDK03="SDK03",e.SDK04="SDK04",e.SDK05="SDK05",e.SDK06="SDK06",e.SDK07="SDK07",e.SDK08="SDK08",e.SDK12="SDK12",e.SDK13="SDK13",e.SDK14="SDK14",e.ERRUNKNOWN="ERRUNKNOWN"}(o||(o={}));class c extends Error{constructor(e,t){super(e),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t,this.name="HttpCodedError",Object.setPrototypeOf(this,c.prototype)}}!function(e){e.Detailed="Detailed",e.Consise="Consise"}(s||(s={})),function(e){e.DashFormat="Dash-format",e.Paragraph="Paragraph"}(a||(a={}));class u{makePostRequest(t,i){return e(this,void 0,void 0,function*(){try{const n=yield fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!n.ok){const t=yield n.text();var e=JSON.parse(t);throw new c(e.message,e.code.toString())}return yield n.json()}catch(e){throw e}})}makePatchRequest(t,i){return e(this,void 0,void 0,function*(){try{const n=yield fetch(t,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!n.ok){const t=yield n.text();var e=JSON.parse(t);throw new c(e.message,n.status.toString())}return yield n.json()}catch(e){throw e instanceof c?e:new c("500",e.message||"Unexpected error")}})}}class l extends u{constructor(e){super(),Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"_baseUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._baseUrl=`https://${e.server}/ambient/v1`}getURL(e){return`${this._baseUrl}${e}`}GetNoteParams(){return e(this,void 0,void 0,function*(){const e=this.getURL("/note-params"),t={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag};return yield this.makePostRequest(e,t)})}ListJobs(t,n){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Page Size");const e=this.getURL("/list-jobs"),r={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,PageSize:t,PageID:n};return yield this.makePostRequest(e,r)})}FetchJob(t){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/fetch-job"),n={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t};return yield this.makePostRequest(e,n)})}SendFinalNote(t,n){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id"),i.Against.NullOrEmpty(n,"Note Data");const e=this.getURL("/send-final-note"),r={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,SoapData:n};return yield this.makePostRequest(e,r)})}DeleteNotes(t){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/delete-job"),n={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobIDs:t};return yield this.makePostRequest(e,n)})}RenameNoteTitle(t,n){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id"),i.Against.NullOrEmpty(n,"Job Name");const e=this.getURL("/rename-job"),r={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,JobName:n};return yield this.makePostRequest(e,r)})}DownloadNotePDF(t,n,r,o,s,a){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/download-pdf");var c=s;c&&""!=c||(c='{"PatientName":"","PatientID":"","Age":"","Gender":"","ReceivingDoctor":"","DoctorName":"","DoctorDesignation":"","DoctorEmail":""}');const u={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,NoteType:n,Language:null!=o?o:"English",SpecialityID:r,Regenerate:null!=a&&a,PersonnelInfo:c};return yield this.makePostRequest(e,u)})}EndJob(t){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/end-job"),n={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t};return yield this.makePostRequest(e,n)})}UpdatePatientContext(t,n,r){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id"),i.Against.NullOrEmpty(n,"Patient Context");const e=this.getURL("/patient-context"),o={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,NewContext:n,Replace:r};return yield this.makePostRequest(e,o)})}GenerateSuggestions(t,n,r,o,s){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/cdi"),a={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,Regenerate:n,SoapData:r,PatientContext:o,Codes:s};return yield this.makePostRequest(e,a)})}ModifyGeneratedNote(t,n,r){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/modify-note"),o={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,NoteType:n,NewNote:null!=r?r:""};return yield this.makePostRequest(e,o)})}FetchTranscription(t){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id");const e=this.getURL("/fetch-transcript"),n={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t};return yield this.makePostRequest(e,n)})}SendFeedback(t,n,r,o){return e(this,void 0,void 0,function*(){i.Against.NullOrEmpty(t,"Job Id"),i.Against.NullOrUndefined(n,"Rating");const e=this.getURL("/feedback").replace("/v1","/v2"),s={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,JobID:t,Rating:n,FeedBack:null!=r?r:"",Type:null!=o?o:""};return yield this.makePostRequest(e,s)})}}class h{static log(e,t){const i=null!=t?t:this.defaultTag;console.log(`${i}:`,e)}static error(e,t){const i=null!=t?t:this.defaultTag;console.error(`${i}:`,e)}}function d(){d=function(){return t};var e,t={},i=Object.prototype,n=i.hasOwnProperty,r=Object.defineProperty||function(e,t,i){e[t]=i.value},o="function"==typeof Symbol?Symbol:{},s=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(e,t,i){return Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,i){return e[t]=i}}function l(e,t,i,n){var o=t&&t.prototype instanceof m?t:m,s=Object.create(o.prototype),a=new O(n||[]);return r(s,"_invoke",{value:P(e,i,a)}),s}function h(e,t,i){try{return{type:"normal",arg:e.call(t,i)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var f="suspendedStart",g="suspendedYield",p="executing",v="completed",b={};function m(){}function y(){}function S(){}var E={};u(E,s,function(){return this});var k=Object.getPrototypeOf,C=k&&k(k(N([])));C&&C!==i&&n.call(C,s)&&(E=C);var A=S.prototype=m.prototype=Object.create(E);function I(e){["next","throw","return"].forEach(function(t){u(e,t,function(e){return this._invoke(t,e)})})}function R(e,t){function i(r,o,s,a){var c=h(e[r],e,o);if("throw"!==c.type){var u=c.arg,l=u.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then(function(e){i("next",e,s,a)},function(e){i("throw",e,s,a)}):t.resolve(l).then(function(e){u.value=e,s(u)},function(e){return i("throw",e,s,a)})}a(c.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t(function(t,r){i(e,n,t,r)})}return o=o?o.then(r,r):r()}})}function P(t,i,n){var r=f;return function(o,s){if(r===p)throw Error("Generator is already running");if(r===v){if("throw"===o)throw s;return{value:e,done:!0}}for(n.method=o,n.arg=s;;){var a=n.delegate;if(a){var c=w(a,n);if(c){if(c===b)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var u=h(t,i,n);if("normal"===u.type){if(r=n.done?v:g,u.arg===b)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=v,n.method="throw",n.arg=u.arg)}}}function w(t,i){var n=i.method,r=t.iterator[n];if(r===e)return i.delegate=null,"throw"===n&&t.iterator.return&&(i.method="return",i.arg=e,w(t,i),"throw"===i.method)||"return"!==n&&(i.method="throw",i.arg=new TypeError("The iterator does not provide a '"+n+"' method")),b;var o=h(r,t.iterator,i.arg);if("throw"===o.type)return i.method="throw",i.arg=o.arg,i.delegate=null,b;var s=o.arg;return s?s.done?(i[t.resultName]=s.value,i.next=t.nextLoc,"return"!==i.method&&(i.method="next",i.arg=e),i.delegate=null,b):s:(i.method="throw",i.arg=new TypeError("iterator result is not an object"),i.delegate=null,b)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function D(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function N(t){if(t||""===t){var i=t[s];if(i)return i.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function i(){for(;++r<t.length;)if(n.call(t,r))return i.value=t[r],i.done=!1,i;return i.value=e,i.done=!0,i};return o.next=o}}throw new TypeError(typeof t+" is not iterable")}return y.prototype=S,r(A,"constructor",{value:S,configurable:!0}),r(S,"constructor",{value:y,configurable:!0}),y.displayName=u(S,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,u(e,c,"GeneratorFunction")),e.prototype=Object.create(A),e},t.awrap=function(e){return{__await:e}},I(R.prototype),u(R.prototype,a,function(){return this}),t.AsyncIterator=R,t.async=function(e,i,n,r,o){void 0===o&&(o=Promise);var s=new R(l(e,i,n,r),o);return t.isGeneratorFunction(i)?s:s.next().then(function(e){return e.done?e.value:s.next()})},I(A),u(A,c,"Generator"),u(A,s,function(){return this}),u(A,"toString",function(){return"[object Generator]"}),t.keys=function(e){var t=Object(e),i=[];for(var n in t)i.push(n);return i.reverse(),function e(){for(;i.length;){var n=i.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=N,O.prototype={constructor:O,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(D),!t)for(var i in this)"t"===i.charAt(0)&&n.call(this,i)&&!isNaN(+i.slice(1))&&(this[i]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var i=this;function r(n,r){return a.type="throw",a.arg=t,i.next=n,r&&(i.method="next",i.arg=e),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var s=this.tryEntries[o],a=s.completion;if("root"===s.tryLoc)return r("end");if(s.tryLoc<=this.prev){var c=n.call(s,"catchLoc"),u=n.call(s,"finallyLoc");if(c&&u){if(this.prev<s.catchLoc)return r(s.catchLoc,!0);if(this.prev<s.finallyLoc)return r(s.finallyLoc)}else if(c){if(this.prev<s.catchLoc)return r(s.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return r(s.finallyLoc)}}}},abrupt:function(e,t){for(var i=this.tryEntries.length-1;i>=0;--i){var r=this.tryEntries[i];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var s=o?o.completion:{};return s.type=e,s.arg=t,o?(this.method="next",this.next=o.finallyLoc,b):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),b},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),D(i),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var n=i.completion;if("throw"===n.type){var r=n.arg;D(i)}return r}}throw Error("illegal catch attempt")},delegateYield:function(t,i,n){return this.delegate={iterator:N(t),resultName:i,nextLoc:n},"next"===this.method&&(this.arg=e),b}},t}function f(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function g(e,t,i,n,r,o,s){try{var a=e[o](s),c=a.value}catch(e){return void i(e)}a.done?t(c):Promise.resolve(c).then(n,r)}function p(e){return function(){var t=this,i=arguments;return new Promise(function(n,r){var o=e.apply(t,i);function s(e){g(o,n,r,s,a,"next",e)}function a(e){g(o,n,r,s,a,"throw",e)}s(void 0)})}}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,f(n.key),n)}}function m(e,t,i){return t&&b(e.prototype,t),i&&b(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}Object.defineProperty(h,"defaultTag",{enumerable:!0,configurable:!0,writable:!0,value:"AugnitoAmbientSDK"});var y="DONE",S="PAUSESOCKET",E="RESUMESOCKET",k="INTENT_START_STREAM",C="CLOSE",A=m(function e(t,i,n,r,o,s,a,c,u,l,h,d){v(this,e),this.worker,this.onFinalResultCallback=o,this.onErrorCallback=a,this.onPartialResultCallback=s,this.onSessionEventCallback=c,this.onOtherResultsCallback=u,this.onSpeechResponseCallback=l,this.packetSeqId=0,this.audioDuration=0,this.shouldSendAudioDataSequence=r,this.heavyOp,this.idleLoop,this.lastSent,this.enableLogs=t,this.eosMessage=i||"EOS",this.socketTimeoutInterval=n||1e4,this.bufferSizeInterval=h,this.switchToRegularSpeech=d},[{key:"Start",value:function(e,t,i){var n=this;this.audioDuration=e;var r="\n (() => {\n (".concat(I.toString(),")(").concat(JSON.stringify(y),", ").concat(JSON.stringify(this.eosMessage),", ").concat(JSON.stringify(C),", ").concat(JSON.stringify(1e4),", ").concat(JSON.stringify(this.socketTimeoutInterval),", ").concat(JSON.stringify(12e4),", ").concat(JSON.stringify(1e3),", ").concat(JSON.stringify(100),", ").concat(JSON.stringify(1e4),", ").concat(JSON.stringify(t),", ").concat(JSON.stringify(this.enableLogs),", ").concat(JSON.stringify(this.shouldSendAudioDataSequence),",").concat(JSON.stringify(S),", ").concat(JSON.stringify(E),", ").concat(JSON.stringify(k),", ").concat(JSON.stringify(this.switchToRegularSpeech),", ").concat(JSON.stringify(i),", ").concat(JSON.stringify(this.heavyOp),");\n })();\n");this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"application/javascript"}))),this.worker.onmessage=function(e){n.enableLogs&&console.log("Augnito [MAIN]: "+JSON.stringify(e.data));var t=e.data;"final"==t.type?n.onFinalResultCallback(t.data):"partial"==t.type?n.onPartialResultCallback(t.data):"meta"==t.type?n.onSessionEventCallback(t.data):"error"==t.type?n.onErrorCallback(t.data):"other"==t.type?n.onOtherResultsCallback(t.data):"speechResponse"==t.type&&n.onSpeechResponseCallback(t.data)}}},{key:"createAudioPacketHeader",value:function(e){this.audioDuration>0&&(this.packetSeqId=Math.ceil(this.audioDuration/this.bufferSizeInterval)+2,this.audioDuration=0),this.packetSeqId++;for(var t=new ArrayBuffer(16),i=new DataView(t),n=0;n<4;n++)i.setUint8(n,"@BSR".charCodeAt(n));return i.setBigInt64(4,BigInt(this.packetSeqId),!1),i.setUint8(12,e?1:0),t}},{key:"appendAudioData",value:function(e,t){var i=e.byteLength+t.byteLength,n=new ArrayBuffer(i),r=new Uint8Array(n);return r.set(new Uint8Array(e),0),r.set(new Uint8Array(t),e.byteLength),n}},{key:"Send",value:function(e){var t;if(this.lastSent=+new Date,e===C)null===(t=this.worker)||void 0===t||t.postMessage(C);else if(e===y)if(this.shouldSendAudioDataSequence){var i,n=this.createAudioPacketHeader(!0);null===(i=this.worker)||void 0===i||i.postMessage(n)}else{var r;null===(r=this.worker)||void 0===r||r.postMessage(y)}else if(e==S){var o;null===(o=this.worker)||void 0===o||o.postMessage(S)}else if(e==E){var s;null===(s=this.worker)||void 0===s||s.postMessage(E)}else if(e==k){var a;null===(a=this.worker)||void 0===a||a.postMessage(k)}else if(e===this.eosMessage){var c;this.shouldSendAudioDataSequence||null===(c=this.worker)||void 0===c||c.postMessage(e)}else{var u,l=[];this.shouldSendAudioDataSequence?(n=this.createAudioPacketHeader(!1),l=this.appendAudioData(n,e)):l=e,void 0!==l&&(null===(u=this.worker)||void 0===u||u.postMessage(l,[l]))}}},{key:"HeavyOp",set:function(e){this.heavyOp=e}}]);function I(e,t,i,n,r,o,s,a,c,u,l,h,d,f,g,p,v,b){var m,y,S,E,k,C,A,I,R,P=[],w=[],T=!1,D=[],O=!1,N=!1,_=!1,U="",x=v;function L(){m=+new Date,(C=""!=U?new WebSocket(u+"&jobid="+U):new WebSocket(u)).onopen=function(e){l&&console.log("Augnito: WebSocket connection established - "+JSON.stringify(e)),D.length>0&&(N=!0)},C.onmessage=function(e){l&&console.log("Augnito: Message from server - "+JSON.stringify(e.data)),S=+new Date,function(e){try{if("PING"===e.data)E=+new Date,self.postMessage({type:"ping",data:e.data});else{var t=JSON.parse(e.data);if(l&&console.log("Augnito [WORKER]: "+JSON.stringify(t)),"meta"==t.Type){t.JobID&&(U=t.JobID,console.log("Augnito JobID:",U)),self.postMessage({type:"meta",data:e.data});var i=JSON.parse(e.data);_=!(!i.Event||"INVALID_AUTH_CREDENTIALS"!==i.Event.Type)}else if(t.Result&&t.Result.Final){var n=JSON.stringify(t.Result);b&&(n=b(JSON.stringify(t.Result)),console.log(n)),self.postMessage({type:"final",data:n})}else t.Result&&!t.Result.Final?self.postMessage({type:"partial",data:t.Result.Transcript}):"ACK"==t.Type?(D=D.filter(function(e){return e.packetNumber>t.Index}),self.postMessage({type:"other",data:e.data})):"ERROR"==t.Type?("Timeout exceeded"==t.Data&&(O=!0,J()),self.postMessage({type:"error",data:e.data})):self.postMessage({type:"speechResponse",data:e.data})}}catch(e){self.postMessage({type:"error",data:"invalid response"})}}(e)},C.onerror=function(e){console.error("WebSocket error: ",e),self.postMessage({type:"error",data:JSON.stringify(e)})},C.onclose=function(e){l&&console.log("Augnito: WebSocket connection closed - "+JSON.stringify(e)),J()},y=+new Date,S=y,E=+new Date}function M(e){if(C&&C.readyState===WebSocket.OPEN){C.send(e);var i=+new Date;return y<=S&&(S=i-1),y=i,!0}return e===t?(l&&console.warn("Gulping ".concat(t," as socket seems already closed...")),J(),!0):(+new Date-m>n&&!_&&L(),!1)}function K(e){P.push(e)}function J(){O&&(clearInterval(A),clearInterval(I),clearInterval(R),P=[],D=[],self.close())}L(),A=setInterval(function(){if(N){for(var e=0;e<D.length;e++){if(!M(D[e].packetData))break}N=!1}else for(;P.length>0;){var t=P.shift();if(!M(t)){P.unshift(t);break}if(h){var i=new DataView(t),n={packetNumber:Number(i.getBigInt64(4)),packetData:t};D.push(n)}}},a),I=setInterval(function(){if(C&&C.readyState===WebSocket.OPEN){var e=+new Date;(p?y>S&&e-S>r:e-E>r)&&(l&&console.error("No data received since more than ".concat(r/1e3," secs, closing time...")),C.close())}},s),R=setInterval(function(){if(C&&C.readyState===WebSocket.OPEN){var e=+new Date;y&&e-y>o&&(l&&console.warn("No data sent since more than ".concat(o/1e3," secs, closing time...")),C.close())}},c),self.onmessage=function(n){if(n.data===i)U="",O=!0,_=!0,C.close();else if(n.data===e)K(t),U="",l&&console.log("Augnito: Worker received DONE, time to terminate..."),O=!0;else if(n.data===d)x=!0;else if(n.data===g)T=!0;else if(n.data===f){if(K(k),w.length>0)for(var r=0;r<w.length;r++)K(w[r]);w=[],T=!1,x=!1,k=[]}else x&&!T?k=n.data:x&&T?w.push(n.data):K(n.data)}}var R,P,w,T,D,O,N,_,U,x=m(function e(t,i,n,r,o,s,a,c,u,l,h,d,f,g,p,b,m,y,S,E,k){v(this,e),this.audioContext,this.audioStream,this.executor=new A(i,s,a,c,g,p,b,y,S,E,r,d),this.executor.HeavyOp=f,this.source,this.processorNode,this.isPaused=!1,this.isStreaming=!1,this.audioData=[],this.isDebug=n,this.enableLogs=i,this.onStateChanged=m,this.onIntensity=k,this.onError=b,this.bufferSizeInterval=r,this.pausedBufferInterval=null!=o?o:1,this.shouldReadIntensity=h,this.closeSocketWithoutEOS=!1,this.shouldPreIntialiseRecorder=null!=l&&l,this.shouldPreIntialiseRecorder&&this.InitialiseMediaStream(u,t)},[{key:"InitialiseMediaStream",value:(U=p(d().mark(function e(t,i){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.createMediaStreamSourceNode();case 2:if(this.source){e.next=5;break}return console.error("Error: unable to create source node"),e.abrupt("return",!1);case 5:return e.next=7,this.createProcessorNode();case 7:if(this.processorNode){e.next=10;break}return console.error("Error: unable to create processor node"),e.abrupt("return",!1);case 10:this.source.connect(this.processorNode).connect(this.audioContext.destination),this.log("AudioContext Sample Rate: "+this.audioContext.sampleRate),""!==i&&this.executor.Start(t,i,this.shouldPreIntialiseRecorder);case 13:case"end":return e.stop()}},e,this)})),function(e,t){return U.apply(this,arguments)})},{key:"StartStream",value:(_=p(d().mark(function e(t,i){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.log("New stream started..."),this.shouldPreIntialiseRecorder&&this.source){e.next=6;break}return e.next=4,this.InitialiseMediaStream(t,i,!1);case 4:e.next=7;break;case 6:this.shouldPreIntialiseRecorder&&this.executor.Send(E);case 7:if(!this.IsMicrophoneMuted){e.next=13;break}if(!this.audioContext||"running"!=this.audioContext.state){e.next=11;break}return e.next=11,this.audioContext.suspend();case 11:return this.onError(JSON.stringify({Type:"ERROR",Data:"Microphone is muted."})),e.abrupt("return",!1);case 13:return this.onStateChanged(!0),this.isStreaming=!0,e.abrupt("return",!0);case 16:case"end":return e.stop()}},e,this)})),function(e,t){return _.apply(this,arguments)})},{key:"createBufferedSourceNode",value:(N=p(d().mark(function e(){var t;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.loadAudio();case 2:if(t=e.sent){e.next=6;break}return console.error("Error: unable to create audio buffer"),e.abrupt("return");case 6:this.source=this.audioContext.createBufferSource(),this.source.buffer=t,this.source.loop=!0,this.source.start();case 10:case"end":return e.stop()}},e,this)})),function(){return N.apply(this,arguments)})},{key:"createMediaStreamSourceNode",value:(O=p(d().mark(function e(){var t,i=this;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,navigator.mediaDevices.getUserMedia({audio:{channelCount:1,noiseSuppression:!1}});case 3:this.audioStream=e.sent,this.audioContext=new AudioContext,this.source=this.audioContext.createMediaStreamSource(this.audioStream),this.audioStream.getAudioTracks()[0].addEventListener("ended",function(){i.onError(JSON.stringify({Type:"ERROR",Data:"Audio track ended. Possibly the mic was unplugged."}))}),e.next=14;break;case 9:e.prev=9,e.t0=e.catch(0),t="","NotAllowedError"==e.t0.name?t="Mic permission denied":"NotFoundError"===e.t0.name&&(t="No suitable media device found"),this.onError(JSON.stringify({Type:"ERROR",Data:t}));case 14:case"end":return e.stop()}},e,this,[[0,9]])})),function(){return O.apply(this,arguments)})},{key:"loadAudio",value:(D=p(d().mark(function e(){var t,i,n;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch("./radiology_speed_test.wav");case 3:return t=e.sent,e.next=6,t.arrayBuffer();case 6:return i=e.sent,e.next=9,this.audioContext.decodeAudioData(i);case 9:return n=e.sent,e.abrupt("return",n);case 13:return e.prev=13,e.t0=e.catch(0),console.error("Unable to fetch the audio file. Error: ".concat(e.t0.message)),e.abrupt("return",null);case 17:case"end":return e.stop()}},e,this,[[0,13]])})),function(){return D.apply(this,arguments)})},{key:"createProcessorNode",value:(T=p(d().mark(function e(){var t,i=this;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.audioContext.audioWorklet.addModule("data:application/javascript,".concat(encodeURIComponent('class MyAudioWorkletProcessor extends AudioWorkletProcessor {\n constructor() {\n super();\n this.accumulator = [];\n this.pauseSocketStreaming = false;\n this.sampleVal = 0;\n this.sampleSize = 0;\n this.intensityFrameCount = 0;\n this.reset();\n this.isProcessing = true;\n // message received from main-thread\n this.port.onmessage = (e) => {\n console.log("Augnito: Worklet received event - ", e.data);\n if (this.sampleSize > 0) {\n this.accumulator.push(this.sampleVal / this.sampleSize);\n }\n \n if (e.data == "PAUSE" || e.data == "STOP" || e.data == "PAUSESOCKET") {\n // append silence to get last word ASR.\n const silenceSize = 16000 * 2;\n for (let i = 0; i < silenceSize; i++) {\n this.accumulator.push(0);\n }\n }\n this.send();\n this.reset();\n if (e.data == "STOP") {\n // message sent to main-thread\n this.port.postMessage({type:"DONE", value:"DONE"});\n this.isProcessing = false;\n \n }\n if(e.data == "PAUSESOCKET"){\n this.pauseSocketStreaming = true;\n this.port.postMessage("PAUSESOCKET");\n } else if(e.data == "RESUMESOCKET"){\n this.pauseSocketStreaming = false;\n } \n };\n }\n\n static get parameterDescriptors() {\n return [\n {\n name: "sampleRate",\n defaultValue: 16000,\n minValue: 16000,\n maxValue: 6 * 16000,\n },\n {\n name: "bufferSizeInterval",\n defaultValue: 1,\n minValue: 1,\n maxValue: 100,\n },\n {\n name: "pausedBufferInterval",\n defaultValue: 1,\n minValue: 0,\n maxValue: 100,\n },\n {\n name: "shouldReadIntensity",\n defaultValue: false,\n minValue: 0,\n maxValue: 1,\n },\n ];\n }\n\n // 128 frames\n process(inputList, outputList, params) {\n const input = inputList[0];\n if (input && input.length && input[0].length) {\n const channelData = input[0];\n const output = outputList[0];\n const inputSampleRate = params.sampleRate[0];\n const sampleRatio = inputSampleRate / 16000\n const bufferSizeInterval = params["bufferSizeInterval"][0];\n const pausedBufferInterval = params["pausedBufferInterval"][0];\n const shouldReadIntensity = params["shouldReadIntensity"][0];\n\n let sumSquares = 0; // For intensity\n let sampleCount = 0;\n\n // console.log("BufferSizeInterval", bufferSizeInterval);\n // Jackpot\n input[0].forEach((float32Element, index) => {\n const int16Element = Math.min(1, Math.max(-1, float32Element)) * 0x7fff;\n this.sampleVal += int16Element;\n this.sampleSize += 1;\n // Accumulate for intensity (RMS)\n sumSquares += float32Element * float32Element;\n sampleCount++;\n \n\n if (this.sampleSize >= sampleRatio) {\n const fraction = this.sampleSize - sampleRatio \n this.sampleVal -= fraction * int16Element;\n\n this.accumulator.push(this.sampleVal / sampleRatio);\n \n this.sampleVal = fraction * int16Element;\n this.sampleSize = fraction;\n }\n\n // Comment this when streaming microphone audio\n // output[0][index] = float32Element;\n });\n if(this.pauseSocketStreaming){\n if (this.accumulator.length >= 125 * 128 * pausedBufferInterval) {\n this.send();\n }\n } else{\n if (this.accumulator.length >= 125 * 128 * bufferSizeInterval) {\n this.send();\n }\n }\n if(shouldReadIntensity){\n \n // Throttled intensity post\n this.intensityFrameCount = (this.intensityFrameCount || 0) + 1;\n if (this.intensityFrameCount >= 15 && sampleCount > 0) {\n const rms = Math.sqrt(sumSquares / sampleCount);\n const normalized = Math.min(1, rms); // [0–1] scale\n this.port.postMessage({ type: \'intensity\', value: normalized });\n this.intensityFrameCount = 0;\n }\n }\n }\n return this.isProcessing;\n }\n\n send() {\n if (this.accumulator.length == 0) return;\n const audioData = new Int16Array(this.accumulator);\n // message sent to main-thread - transferrable\n this.port.postMessage({ type: \'audioData\', value: audioData.buffer }, [audioData.buffer]);\n this.accumulator = [];\n }\n\n reset() {\n this.sampleVal = 0;\n this.sampleSize = 0;\n }\n}\n\nregisterProcessor("worklet-processor", MyAudioWorkletProcessor);')));case 3:this.processorNode=new AudioWorkletNode(this.audioContext,"worklet-processor"),this.processorNode.parameters.get("sampleRate").setValueAtTime(this.audioContext.sampleRate,this.audioContext.currentTime),this.processorNode.parameters.get("bufferSizeInterval").setValueAtTime(this.bufferSizeInterval,this.audioContext.currentTime),this.processorNode.parameters.get("pausedBufferInterval").setValueAtTime(this.pausedBufferInterval,this.audioContext.currentTime),this.processorNode.parameters.get("shouldReadIntensity").setValueAtTime(null!==(t=this.shouldReadIntensity)&&void 0!==t&&t,this.audioContext.currentTime),this.processorNode.port.onmessage=function(e){var t=e.data,n=t.type,r=t.value;if(n==y)i.log("Worklet processing done, clearing resources..."),i.isDebug&&i.saveAudio(),i.cleanup();else if(e.data==S)i.executor.Send(S);else{var o;"intensity"===n?null===(o=i.onIntensity)||void 0===o||o.call(i,r):"audioData"===n&&i.isDebug&&new Int16Array(r).forEach(function(e){i.audioData.length<=288e5&&i.audioData.push(e)})}i.executor&&(i.closeSocketWithoutEOS?(i.executor.Send(C),i.closeSocketWithoutEOS=!1):"intensity"!==n&&i.executor.Send(r))},e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),console.error("Error: Unable to create worklet node: ",e.t0);case 18:case"end":return e.stop()}},e,this,[[0,15]])})),function(){return T.apply(this,arguments)})},{key:"PauseStream",value:(w=p(d().mark(function e(){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("running"!=this.audioContext.state){e.next=9;break}if(this.shouldPreIntialiseRecorder){e.next=8;break}return e.next=4,this.audioContext.suspend();case 4:this.log("Stream paused..."),this.processorNode.port.postMessage("PAUSE"),e.next=9;break;case 8:this.processorNode.port.postMessage(S);case 9:this.onStateChanged(!1),this.isPaused=!0,this.isStreaming=!1;case 12:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"ResumeStream",value:(P=p(d().mark(function e(){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.shouldPreIntialiseRecorder||"suspended"!=this.audioContext.state){e.next=9;break}if(!this.IsMicrophoneMuted){e.next=4;break}return this.onError(JSON.stringify({Type:"ERROR",Data:"Microphone is muted."})),e.abrupt("return");case 4:return e.next=6,this.audioContext.resume();case 6:this.log("Stream resumed..."),e.next=11;break;case 9:this.processorNode.port.postMessage(E),this.executor.Send(E);case 11:this.onStateChanged(!0),this.isPaused=!1,this.isStreaming=!0;case 14:case"end":return e.stop()}},e,this)})),function(){return P.apply(this,arguments)})},{key:"IsPaused",get:function(){return this.isPaused}},{key:"IsStreaming",get:function(){return this.isStreaming}},{key:"IsMicrophoneMuted",get:function(){return this.audioStream.getAudioTracks()[0].muted}},{key:"StopStream",value:(R=p(d().mark(function e(t){var i,n,r,o;return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("suspended"===(null===(i=this.audioContext)||void 0===i?void 0:i.state)){e.next=4;break}return e.next=3,null===(o=this.audioContext)||void 0===o?void 0:o.suspend();case 3:this.onStateChanged(!1);case 4:this.log("Stream stopped..."),this.isStreaming=!1,this.closeSocketWithoutEOS=!t,null===(n=this.processorNode)||void 0===n||null===(n=n.port)||void 0===n||n.postMessage("STOP"),null===(r=this.audioStream)||void 0===r||r.getAudioTracks()[0].removeEventListener("ended",function(){});case 9:case"end":return e.stop()}},e,this)})),function(e){return R.apply(this,arguments)})},{key:"IntentStartStream",value:function(){this.executor.Send("INTENT_START_STREAM")}},{key:"cleanup",value:function(){this.source.mediaStream.getAudioTracks()[0].stop(),this.source.disconnect(),this.processorNode.disconnect(),this.processorNode.port.close(),this.audioContext.close(),this.audioData=[]}},{key:"saveAudio",value:function(){var e=this.encodeWAV(),t=URL.createObjectURL(new Blob([e],{type:"audio/wav"}));this.log("Download Recording: ".concat(t))}},{key:"getBlob",value:function(){var e=this.encodeWAV();console.log(e);var t=new Blob([e],{type:"audio/wav"});return console.log(t),t}},{key:"encodeWAV",value:function(){var e=new DataView(new ArrayBuffer(2*this.audioData.length));this.audioData.forEach(function(t,i){e.setInt16(2*i,t,!0)});var t=e.buffer.byteLength,i=44+t,n=new DataView(new ArrayBuffer(i));n.setUint32(0,1380533830,!1),n.setUint32(4,i-8,!0),n.setUint32(8,1463899717,!1),n.setUint32(12,1718449184,!1),n.setUint32(16,16,!0),n.setUint16(20,1,!0),n.setUint16(22,1,!0),n.setUint32(24,16e3,!0),n.setUint32(28,32e3,!0),n.setUint16(32,2,!0),n.setUint16(34,16,!0),n.setUint32(36,1684108385,!1),n.setUint32(40,t,!0);for(var r=0;r<t;r++)n.setInt8(44+r,e.getInt8(r));return n}},{key:"log",value:function(e){if(this.enableLogs){var t="".concat((new Date).toLocaleTimeString()," Augnito: ").concat(e);console.log(t+"\n")}}}]),L=function(){function e(){var t,i,n,r,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serverURL:"",enableLogs:!1,isDebug:!1,bufferInterval:1,pausedBufferInterval:1,EOS_Message:void 0,socketTimeoutInterval:void 0,shouldSendAudioDataSequence:!1,reconnectAudioDuration:0,shouldPreIntialiseRecorder:!1,shouldReadIntensity:!1,debounceDelay:300,switchToRegularSpeechProfile:!1},s=arguments.length>1?arguments[1]:void 0;if(v(this,e),e.instance)return e.instance;this.WebsocketURL=null!==(t=o.serverURL)&&void 0!==t?t:"",this.enableLogs=o.enableLogs,this.isDebug=o.isDebug,this.streamer=null,this.streamerNotStarted=!1,this.isStreamerStarting=!1,this.pendingStartStream=!1,this.heavyOp=s,this.bufferInterval=o.bufferInterval,this.pausedBufferInterval=o.pausedBufferInterval,this.eosMessage=o.EOS_Message,this.socketTimeoutInterval=o.socketTimeoutInterval,this.shouldSendAudioDataSequence=o.shouldSendAudioDataSequence,this.reconnectAudioDuration=null!==(i=o.reconnectAudioDuration)&&void 0!==i?i:0,this.shouldPreIntialiseRecorder=o.shouldPreIntialiseRecorder,this.switchToRegularSpeechProfile=null!==(n=o.switchToRegularSpeechProfile)&&void 0!==n&&n,this.shouldPreIntialiseRecorder&&(this.initialiseStreamer(),this.streamerNotStarted=!0),this.shouldReadIntensity=o.shouldReadIntensity,this.delay=null!==(r=o.debounceDelay)&&void 0!==r?r:300,this.toggleStartStopAudioStream=M(this.toggleStartStopAudioStream.bind(this),this.delay),this.togglePauseResumeAudioStream=M(this.togglePauseResumeAudioStream.bind(this),this.delay),this.needsDispose=!1,e.instance=this}return m(e,[{key:"initialiseStreamer",value:function(){this.streamer=new x(this.WebsocketURL,this.enableLogs,this.isDebug,this.bufferInterval,this.pausedBufferInterval,this.eosMessage,this.socketTimeoutInterval,this.shouldSendAudioDataSequence,this.reconnectAudioDuration,this.shouldPreIntialiseRecorder,this.shouldReadIntensity,this.switchToRegularSpeechProfile,this.heavyOp,this.onFinalResultCallback.bind(this),this.onPartialResultCallback.bind(this),this.onErrorCallback.bind(this),this.onStateChangedCallback.bind(this),this.onSessionEventCallback.bind(this),this.onOtherResultCallback.bind(this),this.onSpeechResponseCallback.bind(this),this.onIntensityCallback.bind(this))}},{key:"updateIntentStartStream",value:function(){var e;this.pendingStartStream=!0,null===(e=this.streamer)||void 0===e||e.IntentStartStream()}},{key:"togglePauseResumeAudioStream",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;!this.streamer||this.streamerNotStarted?(t&&(this.WebsocketURL=t),this.startAudio(e)):this.streamer.IsPaused?this.resumeAudio():this.pauseAudio()}},{key:"toggleStartStopAudioStream",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;!this.streamer||this.streamerNotStarted?(t&&(this.WebsocketURL=t),this.startAudio(e)):this.stopAudio()}},{key:"startAudio",value:(t=p(d().mark(function e(t){return d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isStreamerStarting){e.next=2;break}return e.abrupt("return");case 2:return this.isStreamerStarting=!0,this.shouldPreIntialiseRecorder&&this.streamer||this.initialiseStreamer(),e.prev=4,e.next=7,this.streamer.StartStream(t,this.WebsocketURL);case 7:e.sent?(this.streamerNotStarted=!1,this.log("Stream Started...")):this.streamer=null;case 9:return e.prev=9,this.isStreamerStarting=!1,e.finish(9);case 12:case"end":return e.stop()}},e,this,[[4,,9,12]])})),function(e){return t.apply(this,arguments)})},{key:"pauseAudio",value:function(){this.streamer.PauseStream(),this.log("Stream Paused...")}},{key:"resumeAudio",value:function(){this.streamer.ResumeStream(),this.enableLogs&&this.log("Stream Resumed...")}},{key:"stopAudio",value:function(){var e,t,i=this,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(null!==(e=this.streamer)&&void 0!==e&&e.IsStreaming||r)&&(null===(t=this.streamer)||void 0===t||t.StopStream(n),this.streamer=null,this.log("Stream Stopped..."),this.shouldPreIntialiseRecorder&&setTimeout(function(){i.needsDispose?i.needsDispose=!1:(i.initialiseStreamer(),i.streamerNotStarted=!0)},500))}},{key:"getBlob",value:function(){var e=this.streamer.getBlob();return this.log("Blob Sent..."),e}},{key:"log",value:function(e){if(this.enableLogs){var t="".concat((new Date).toLocaleTimeString()," Augnito: ").concat(e);this.showLogCallback(t+"\n")}}},{key:"dispose",value:function(){var t;this.needsDispose=!0,null===(t=this.streamer)||void 0===t||t.StopStream(!1),this.streamer=null,e.instance=null}},{key:"onSessionEventCallback",value:function(e){this.onSessionEvent&&this.onSessionEvent(e)}},{key:"onStateChangedCallback",value:function(e){this.onStateChanged&&this.onStateChanged(e)}},{key:"onIntensityCallback",value:function(e){this.onIntensity&&this.onIntensity(e)}},{key:"onErrorCallback",value:function(e){this.onError&&this.onError(e)}},{key:"onPartialResultCallback",value:function(e){this.onPartialResult&&this.onPartialResult(e)}},{key:"onFinalResultCallback",value:function(e){this.onFinalResult&&this.onFinalResult(e)}},{key:"onOtherResultCallback",value:function(e){this.onOtherResults&&this.onOtherResults(e)}},{key:"onSpeechResponseCallback",value:function(e){this.onSpeechResponse&&this.onSpeechResponse(e)}},{key:"showLogCallback",value:function(e){this.showLog&&this.showLog(e)}}]);var t}();function M(e,t){var i;return function(){for(var n=this,r=arguments.length,o=new Array(r),s=0;s<r;s++)o[s]=arguments[s];i&&clearTimeout(i),i=setTimeout(function(){return e.apply(n,o)},t)}}class K extends u{constructor(e){super(),Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"_baseUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._baseUrl=`https://${e.server}/pace/v1/sdk`}getURL(e){return`${this._baseUrl}${e}`}getNoteParams(){return e(this,void 0,void 0,function*(){const e=this.getURL("/noteparams"),t={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag};return yield this.makePostRequest(e,t)})}getSettingsConfigMaster(t){return e(this,void 0,void 0,function*(){const e=this.getURL("/configmaster"),i={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,ConfigTypeId:t};return yield this.makePostRequest(e,i)})}getUserConfigSettings(t){return e(this,void 0,void 0,function*(){const e=this.getURL("/userconfigmapping"),i={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,ConfigTypeId:t};return yield this.makePostRequest(e,i)})}updateUserConfig(t){return e(this,void 0,void 0,function*(){const e=this.getURL("/userconfigmapping"),i={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,UserConfigMapping:t};return yield this.makePatchRequest(e,i)})}getUserPreferences(){return e(this,void 0,void 0,function*(){const e=this.getURL("/getuserpreferences"),t={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag};return yield this.makePostRequest(e,t)})}updateUserPreference(t,i,n,r,o,s){return e(this,void 0,void 0,function*(){const e=this.getURL("/postuserpreferences"),a={SubscriptionCode:this._config.subscriptionCode,AccessKey:this._config.accessKey,UserTag:this._config.userTag,UserPreferences:{AutomaticallyGenerateTranscript:t,PreferredTranscriptionLanguage:i,HighlightMedicalTerms:n,DisplayPatientContext:r,NoteOutputStyle:o,NoteOutputVerbosity:s}};return yield this.makePostRequest(e,a)})}}const J="Invalid user details, please check again",W="Subscription is not valid.",j="invalid request. Please make sure AccessKey, SubscriptionCode and UserTag is sent along with the request",B="Active seat is not available for user",F="Unable to fetch account details, please try again.",z="Unable to fetch job details, please try again.",V="Job not reconnectable",q="Timeout exceeded",H="Rate Limit Exceeded, Please try again in sometime!",G="Audio Signal is power very LOW, Mic might be muted",$="Job Id is empty",Y="Page Size is undefined",Q="Note Data is empty",X="Job Name is empty",Z="Patient Context is empty",ee="Mic permission denied",te="Microphone is muted",ie="Audio track ended. Possibly the mic was unplugged",ne="Internet is not available. Try again later.",re="Feedback is not enabled. Please contact administrator for more details.",oe="Automatic Transcription is not enabled for the organisation";class se{static isBrowserOnline(){return"undefined"!=typeof navigator&&!0===navigator.onLine}static isValidHttpUrl(e){if("string"!=typeof e||e.length>2048)return!1;try{const t=new URL(e);return("http:"===t.protocol||"https:"===t.protocol)&&(!t.username&&!t.password)}catch(e){return!1}}static hasInternetConnection(){return e(this,arguments,void 0,function*(e={url:null,timeoutMs:null}){var t=e.url||se.DEFAULT_URL;const i=e.timeoutMs||se.DEFAULT_TIMEOUT;if(!se.isBrowserOnline())return!1;se.isValidHttpUrl(t)||(t=se.DEFAULT_URL);const n=new AbortController,r=setTimeout(()=>n.abort(),i);try{return yield fetch(t,{method:"HEAD",mode:"no-cors",cache:"no-cache",signal:n.signal}),!0}catch(e){return!1}finally{clearTimeout(r)}})}static isOnline(t){return e(this,void 0,void 0,function*(){return se.hasInternetConnection(t)})}}Object.defineProperty(se,"DEFAULT_URL",{enumerable:!0,configurable:!0,writable:!0,value:"https://www.google.com/favicon.ico"}),Object.defineProperty(se,"DEFAULT_TIMEOUT",{enumerable:!0,configurable:!0,writable:!0,value:5e3});class ae{constructor(e){Object.defineProperty(this,"_logTag",{enumerable:!0,configurable:!0,writable:!0,value:"Augnito-Ambient"}),Object.defineProperty(this,"_ambientRestAPI",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ambientPaceAPI",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"enableLog",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shouldReadAudioIntensity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"recorderIns",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"forceStopAudio",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_isRecording",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"onJobCreated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onStateChanged",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onError",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onOtherResult",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onIntensityValue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onIdleMic",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onSoapNoteGenerated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onTranscriptGenerated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onCodesGenerated",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._ambientRestAPI=new l(this.validateConfig(e)),this._ambientPaceAPI=new K(e),this.config=this.createSocketConfig(e),this.enableLog=e.enableLogs,this.shouldReadAudioIntensity=e.shouldReadAudioIntensity}initRecorder(e){var t,i;this.recorderIns=new L({serverURL:e,enableLogs:null!==(t=this.enableLog)&&void 0!==t&&t,isDebug:null!==(i=this.enableLog)&&void 0!==i&&i,bufferInterval:15,EOS_Message:'{"JobAction": "EOS","Status": 0,"Type": "meta"}',socketTimeoutInterval:2e4,shouldSendAudioDataSequence:!0,shouldReadIntensity:this.shouldReadAudioIntensity}),this.recorderIns.onError=this.onErrorCallback.bind(this),this.recorderIns.onStateChanged=this.onStateChangeCallback.bind(this),this.recorderIns.onSessionEvent=this.onSessionEventCallback.bind(this),this.recorderIns.onOtherResults=this.onOtherResultsCallback.bind(this),this.recorderIns.onIntensity=this.onIntensityCallback.bind(this),this.recorderIns.onSpeechResponse=this.onSpeechResponseCallback.bind(this)}getNoteParams(){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientPaceAPI.getNoteParams();if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getAllNotes(t,i){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.ListJobs(t,i);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getSummarizedNote(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.FetchJob(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}sendSummarizedNote(t,i){return e(this,void 0,void 0,function*(){try{return this._ambientRestAPI?yield this._ambientRestAPI.SendFinalNote(t,i):void h.error("SDK not initialized",this._logTag)}catch(e){this.handleException(e)}})}toggleListening(e,t,i,n,r){var o,s,a=(null===(o=this.config)||void 0===o?void 0:o.prepareWSSURL(e,t,i,n))||"";this.recorderIns||this.initRecorder(a),null===(s=this.recorderIns)||void 0===s||s.toggleStartStopAudioStream(r,a)}togglePauseResumeListening(e,t,i,n,r){var o,s,a=(null===(o=this.config)||void 0===o?void 0:o.prepareWSSURL(e,t,i,n))||"";this.recorderIns||this.initRecorder(a),null===(s=this.recorderIns)||void 0===s||s.togglePauseResumeAudioStream(r,a)}startListening(){var e;null===(e=this.recorderIns)||void 0===e||e.startAudio()}stopListening(){var e;null===(e=this.recorderIns)||void 0===e||e.stopAudio(!0,!0)}deleteNotes(t){return e(this,void 0,void 0,function*(){var e;try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var i=yield this._ambientRestAPI.DeleteNotes(t);if(i){if(200===i.Status)return null===(e=this.recorderIns)||void 0===e||e.stopAudio(!1,!0),i;this.onErrorCallback(i.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}renameNoteTitle(t,i){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.RenameNoteTitle(t,i);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getNotePDF(t,i,n,r,o,s){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.DownloadNotePDF(t,i,n,r,o,s);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}endPausedJob(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.EndJob(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}generateCDISuggestions(t,i,n,r,o){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.GenerateSuggestions(t,i,n,o,r);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}updatePatientContext(t,i,n){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.UpdatePatientContext(t,i,n);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}modifyGeneratedNote(t,i,n){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientRestAPI.ModifyGeneratedNote(t,i,n);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}fetchTranscriptionForNote(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);if((yield this._ambientPaceAPI.getUserPreferences()).Items[0].AutomaticTranscriptionEnabledForOrg){var e=yield this._ambientRestAPI.FetchTranscription(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}else this.onErrorCallback(oe)}catch(e){this.handleException(e)}})}sendFeedback(t,i,n,r){return e(this,void 0,void 0,function*(){var e,o;try{if(!this._ambientRestAPI)return void h.error("SDK not initialized",this._logTag);var s=yield this._ambientPaceAPI.getUserPreferences();if((null===(e=s.Items[0])||void 0===e?void 0:e.FeedbackEnabledForOrg)&&(null===(o=s.Items[0])||void 0===o?void 0:o.FeedbackEnabled)){var a=yield this._ambientRestAPI.SendFeedback(t,i,null!=n?n:"",null!=r?r:"SOAPFeedBack");if(a){if(200===a.Status)return a;this.onErrorCallback(a.ServerMessage)}else this.onErrorCallback("Unknown Error!")}else this.onErrorCallback(re)}catch(e){this.handleException(e)}})}getUserConfiguration(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientPaceAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientPaceAPI.getUserConfigSettings(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}updateUserConfiguration(t){return e(this,void 0,void 0,function*(){try{if(!this._ambientPaceAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientPaceAPI.updateUserConfig(t);if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}getUserPreferenceSettings(){return e(this,void 0,void 0,function*(){try{if(!this._ambientPaceAPI)return void h.error("SDK not initialized",this._logTag);var e=yield this._ambientPaceAPI.getUserPreferences();if(e){if(200===e.Status)return e;this.onErrorCallback(e.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}updateUserPreferenceSettings(t){return e(this,void 0,void 0,function*(){var e,i,n,r,o,c;try{if(!this._ambientPaceAPI)return void h.error("SDK not initialized",this._logTag);var u=yield this._ambientPaceAPI.updateUserPreference(null!==(e=t.AutomaticallyGenerateTranscript)&&void 0!==e&&e,null!==(i=t.PreferredTranscriptionLanguage)&&void 0!==i?i:"English",null!==(n=t.HighlightMedicalTerms)&&void 0!==n&&n,null!==(r=t.DisplayPatientContext)&&void 0!==r&&r,null!==(o=t.NoteOutputStyle)&&void 0!==o?o:a.DashFormat,null!==(c=t.NoteOutputVerbosity)&&void 0!==c?c:s.Detailed);if(u){if(200===u.Status)return u;this.onErrorCallback(u.ServerMessage)}else this.onErrorCallback("Unknown Error!")}catch(e){this.handleException(e)}})}isInternetAvailable(t){return e(this,void 0,void 0,function*(){const e=yield se.isOnline(t);return e||this.onErrorCallback(ne),e})}onEventCallback(e){this.onJobCreated&&this.onJobCreated(e)}onStateChangeCallback(e){var t;if(this.forceStopAudio)return null===(t=this.recorderIns)||void 0===t||t.stopAudio(!1,!0),void(this.forceStopAudio=!1);this._isRecording=e,this.onStateChanged&&this.onStateChanged(e)}handleException(e){if(e instanceof TypeError)this.onErrorCallback(e.message);else{if(e instanceof c)throw e;h.error(e.message,this._logTag)}}onErrorCallback(e,t){var i,n,r,s,a,c,u,l,d,f,g,p,v,b,m={ErrorCode:null!=t?t:o.ERRUNKNOWN,ErrorMessage:e};try{var y=JSON.parse(e);m.ErrorMessage=y.Data,y.Data===q?(this.stopListening(),h.error("Recording time limit exceeded",this._logTag),m.ErrorCode=o.WSJOB05):y.Data===J?(this._isRecording?null===(i=this.recorderIns)||void 0===i||i.stopAudio(!1,!0):this.forceStopAudio=!0,m.ErrorCode=o.WSAUTH03):y.Data.includes(F)?m.ErrorCode=o.WSAUTH04:y.Data.includes(z)?m.ErrorCode=o.WSJOB01:y.Data.includes(V)?m.ErrorCode=o.WSJOB02:y.Data.includes(H)?m.ErrorCode=o.WSACC01:y.Data.includes(G)&&(m.ErrorCode=o.WSAUD01)}catch(e){}(null===(n=m.ErrorMessage)||void 0===n?void 0:n.includes($))?m.ErrorCode=o.SDK01:(null===(r=m.ErrorMessage)||void 0===r?void 0:r.includes(Y))?m.ErrorCode=o.SDK02:(null===(s=m.ErrorMessage)||void 0===s?void 0:s.includes(Q))?m.ErrorCode=o.SDK03:(null===(a=m.ErrorMessage)||void 0===a?void 0:a.includes(X))?m.ErrorCode=o.SDK04:(null===(c=m.ErrorMessage)||void 0===c?void 0:c.includes(Z))?m.ErrorCode=o.SDK05:(null===(u=m.ErrorMessage)||void 0===u?void 0:u.includes(ee))?m.ErrorCode=o.SDK06:(null===(l=m.ErrorMessage)||void 0===l?void 0:l.includes(te))?(m.ErrorCode=o.SDK07,null===(d=this.recorderIns)||void 0===d||d.stopAudio(!1,!0)):(null===(f=m.ErrorMessage)||void 0===f?void 0:f.includes(ie))?m.ErrorCode=o.SDK08:(null===(g=m.ErrorMessage)||void 0===g?void 0:g.includes(W))||(null===(p=m.ErrorMessage)||void 0===p?void 0:p.includes(j))?m.ErrorCode=o.AUTH01:(null===(v=m.ErrorMessage)||void 0===v?void 0:v.includes(B))?m.ErrorCode=o.AUTH02:(null===(b=m.ErrorMessage)||void 0===b?void 0:b.includes(ne))&&(m.ErrorCode=o.SDK12),this.onError&&this.onError(m)}onOtherResultsCallback(e){this.onOtherResult&&this.onOtherResult(e)}onIntensityCallback(e){this.onIntensityValue&&this.onIntensityValue(e)}onIdleMicCallback(){this.onIdleMic&&this.onIdleMic()}onSpeechResponseCallback(e){var t=JSON.parse(e);"note"===t.Type&&this.onSoapNoteGenerated?this.onSoapNoteGenerated(t.Data):"transcript"===t.Type&&this.onTranscriptGenerated?this.onTranscriptGenerated(t.Data):"codes"===t.Type&&this.onCodesGenerated&&this.onCodesGenerated(t.Data)}onSessionEventCallback(e){var t;if(!e)return;let i;try{i="string"==typeof e?JSON.parse(e):e}catch(e){return void h.error(`Error parsing session event data: ${e}`,this._logTag)}if(!i||!("Type"in i))return;if("meta"===i.Type.toLowerCase()&&(null===(t=this.config)||void 0===t?void 0:t.onMetaEvent)){if(!i.JobID)return void h.error("JobID is missing in meta event",this._logTag);this.config.onMetaEvent(i.JobID)}else"error"===i.Type.toLowerCase()&&i.Data&&this.onErrorCallback(i.Data);if("object"!=typeof i.Event||null===i.Event)return;const{Type:n,Value:r}=i.Event;n&&("SESSION_CREATED"===n&&r?h.log(`session Token ${r}`,this._logTag):"SERVICE_DOWN"===n?h.error(n,this._logTag):"NO_DICTATION_STOP_MIC"===n?(h.log("NO_DICTATION_STOP_MIC",this._logTag),this.onIdleMicCallback()):"INVALID_AUTH_CREDENTIALS"===n?h.error("INVALID_AUTH_CREDENTIALS",this._logTag):"LOW_BANDWIDTH"===n&&h.log("LOW_BANDWIDTH: Check internet connection",this._logTag))}validateConfig(e){return i.Against.NullOrEmpty(e.server,"Server"),i.Against.NullOrEmpty(e.subscriptionCode,"SubscriptionCode"),i.Against.NullOrEmpty(e.accessKey,"AccessKey"),i.Against.NullOrEmpty(e.userTag,"UserTag"),e}createSocketConfig(e){const i=new t(e);return i.onError=this.onErrorCallback.bind(this),i.onMetaEvent=this.onEventCallback.bind(this),i}}export{ae as AugnitoAmbient,o as ErrorCodes,c as HttpCodedError,a as NoteOutputStyleConfig,r as NoteTypeConfig,s as NoteVerbosityConfig,n as SettingsConfigType};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testaugnitoambientsdk2",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.33",
|
|
4
4
|
"description": "Use this typescript SDK to integrate Augnito’s Ambient Tech within your EMR. To get access credentials or know more about how Augnito Ambient can benefit you, please visit our website and connect with our sales team: https://augnito.ai/",
|
|
5
5
|
"main": "dist/augnitoambientsdk.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
package/src/AugnitoAmbient.ts
CHANGED
|
@@ -377,20 +377,12 @@ export class AugnitoAmbient {
|
|
|
377
377
|
Logger.error("SDK not initialized", this._logTag);
|
|
378
378
|
return;
|
|
379
379
|
}
|
|
380
|
-
var cdiVersion = 1;
|
|
381
|
-
var versionRes = await this._ambientPaceAPI.getOrgConfigMapping(SettingsConfigType.CDIVersion);
|
|
382
|
-
if (versionRes?.Items && versionRes.Items.length > 0 && versionRes.Items[0].Settings) {
|
|
383
|
-
var setting = versionRes.Items[0].Settings.find((x: { ID: number; }) => x.ID === 209);
|
|
384
|
-
if (setting)
|
|
385
|
-
cdiVersion = Number.parseInt(setting.ConfigValue);
|
|
386
|
-
}
|
|
387
380
|
var responseJson = await this._ambientRestAPI.GenerateSuggestions(
|
|
388
381
|
JobId,
|
|
389
382
|
Regenerate,
|
|
390
383
|
SoapNote,
|
|
391
384
|
PatientDetails,
|
|
392
|
-
Codes
|
|
393
|
-
cdiVersion
|
|
385
|
+
Codes
|
|
394
386
|
);
|
|
395
387
|
if (responseJson) {
|
|
396
388
|
if (responseJson.Status === 200) {
|
|
@@ -498,7 +490,7 @@ export class AugnitoAmbient {
|
|
|
498
490
|
this.onErrorCallback("Unknown Error!");
|
|
499
491
|
}
|
|
500
492
|
} else {
|
|
501
|
-
this.onErrorCallback(
|
|
493
|
+
this.onErrorCallback(ErrorMessages.transcriptionNotEnabled)
|
|
502
494
|
}
|
|
503
495
|
} catch (e: any) {
|
|
504
496
|
this.handleException(e)
|
|
@@ -518,22 +510,26 @@ export class AugnitoAmbient {
|
|
|
518
510
|
Logger.error("SDK not initialized", this._logTag);
|
|
519
511
|
return;
|
|
520
512
|
}
|
|
513
|
+
var preference = await this._ambientPaceAPI.getUserPreferences();
|
|
514
|
+
if (preference.Items[0]?.FeedbackEnabledForOrg && preference.Items[0]?.FeedbackEnabled) {
|
|
515
|
+
var responseJson = await this._ambientRestAPI.SendFeedback(
|
|
516
|
+
JobId,
|
|
517
|
+
Ratings,
|
|
518
|
+
Comment ?? '',
|
|
519
|
+
Type ?? 'SOAPFeedBack'
|
|
520
|
+
);
|
|
521
521
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
if (responseJson) {
|
|
530
|
-
if (responseJson.Status === 200) {
|
|
531
|
-
return responseJson;
|
|
522
|
+
if (responseJson) {
|
|
523
|
+
if (responseJson.Status === 200) {
|
|
524
|
+
return responseJson;
|
|
525
|
+
} else {
|
|
526
|
+
this.onErrorCallback(responseJson.ServerMessage);
|
|
527
|
+
}
|
|
532
528
|
} else {
|
|
533
|
-
this.onErrorCallback(
|
|
529
|
+
this.onErrorCallback("Unknown Error!");
|
|
534
530
|
}
|
|
535
531
|
} else {
|
|
536
|
-
this.onErrorCallback(
|
|
532
|
+
this.onErrorCallback(ErrorMessages.feedbackNotEnabled)
|
|
537
533
|
}
|
|
538
534
|
} catch (e: any) {
|
|
539
535
|
this.handleException(e)
|
|
@@ -680,10 +676,10 @@ export class AugnitoAmbient {
|
|
|
680
676
|
}
|
|
681
677
|
|
|
682
678
|
/**
|
|
683
|
-
* @param options
|
|
679
|
+
* @param options a list of preference of type PreferenceConfig to be updated
|
|
684
680
|
* @returns true if connected else false and onError callback triggered with SDK12
|
|
685
681
|
*/
|
|
686
|
-
public async isInternetAvailable(options?: { url: null; timeoutMs
|
|
682
|
+
public async isInternetAvailable(options?: { url: null; timeoutMs: null; } | undefined) {
|
|
687
683
|
const online = await NetworkMonitor.isOnline(options);
|
|
688
684
|
if (!online) {
|
|
689
685
|
this.onErrorCallback(ErrorMessages.noInternetConnection);
|
|
@@ -805,12 +801,12 @@ export class AugnitoAmbient {
|
|
|
805
801
|
|
|
806
802
|
private onSpeechResponseCallback(data: string): void {
|
|
807
803
|
var json = JSON.parse(data);
|
|
808
|
-
if (json.Type
|
|
804
|
+
if (json.Type === "note" && this.onSoapNoteGenerated) {
|
|
809
805
|
this.onSoapNoteGenerated(json.Data);
|
|
810
806
|
}
|
|
811
|
-
else if (json.Type
|
|
807
|
+
else if (json.Type === "transcript" && this.onTranscriptGenerated) {
|
|
812
808
|
this.onTranscriptGenerated(json.Data);
|
|
813
|
-
} else if (json.Type
|
|
809
|
+
} else if (json.Type === "codes" && this.onCodesGenerated) {
|
|
814
810
|
this.onCodesGenerated(json.Data);
|
|
815
811
|
}
|
|
816
812
|
}
|
|
@@ -37,17 +37,6 @@ export class AmbientPACEAPI extends BaseAPI {
|
|
|
37
37
|
return await this.makePostRequest(url, requestData);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
async getOrgConfigMapping(_configTypeId: SettingsConfigType): Promise<any> {
|
|
41
|
-
const url = this.getURL("/configmapping").replace("/v1", "/v2");
|
|
42
|
-
const requestData = {
|
|
43
|
-
SubscriptionCode: this._config.subscriptionCode,
|
|
44
|
-
AccessKey: this._config.accessKey,
|
|
45
|
-
UserTag: this._config.userTag,
|
|
46
|
-
ConfigTypeId: _configTypeId as number,
|
|
47
|
-
};
|
|
48
|
-
return await this.makePostRequest(url, requestData);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
40
|
async getUserConfigSettings(_configTypeId: SettingsConfigType): Promise<any> {
|
|
52
41
|
const url = this.getURL("/userconfigmapping");
|
|
53
42
|
const requestData = {
|
|
@@ -142,15 +142,11 @@ export class AmbientRestAPI extends BaseAPI {
|
|
|
142
142
|
_regenerate: boolean,
|
|
143
143
|
_note?: string,
|
|
144
144
|
_context?: string,
|
|
145
|
-
_codes?: string
|
|
146
|
-
|
|
145
|
+
_codes?: string
|
|
146
|
+
|
|
147
147
|
) {
|
|
148
148
|
Guard.Against.NullOrEmpty(_jobId, "Job Id");
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (version && version === 2) {
|
|
152
|
-
url = this.getURL('/cdi').replace("/v1", "/v2");
|
|
153
|
-
}
|
|
149
|
+
const url = this.getURL('/cdi');
|
|
154
150
|
const requestData = {
|
|
155
151
|
SubscriptionCode: this._config.subscriptionCode,
|
|
156
152
|
AccessKey: this._config.accessKey,
|
|
@@ -164,7 +160,6 @@ export class AmbientRestAPI extends BaseAPI {
|
|
|
164
160
|
return await this.makePostRequest(url, requestData);
|
|
165
161
|
}
|
|
166
162
|
|
|
167
|
-
|
|
168
163
|
async ModifyGeneratedNote(_jobId: string, _noteType: NoteTypeConfig, _modifiedNote?: string) {
|
|
169
164
|
Guard.Against.NullOrEmpty(_jobId, "Job Id");
|
|
170
165
|
const url = this.getURL('/modify-note');
|
package/src/config/ErrorCodes.ts
CHANGED
package/src/utils/Constants.ts
CHANGED
|
@@ -22,4 +22,6 @@ export const ErrorMessages = {
|
|
|
22
22
|
unknownError: 'Oops! Something went wrong',
|
|
23
23
|
sdkUnintialised: 'SDK not initialized',
|
|
24
24
|
noInternetConnection: 'Internet is not available. Try again later.',
|
|
25
|
+
feedbackNotEnabled: 'Feedback is not enabled. Please contact administrator for more details.',
|
|
26
|
+
transcriptionNotEnabled: 'Automatic Transcription is not enabled for the organisation',
|
|
25
27
|
}
|