softphone-vendor-headsets 2.4.5-develop.42 → 2.4.5-develop.44

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://SoftphoneVendorHeadsets/webpack/universalModuleDefinition","webpack://SoftphoneVendorHeadsets/webpack/bootstrap","webpack://SoftphoneVendorHeadsets/./node_modules/@gnaudio/jabra-js/browser-esm/index-0917eff9.js","webpack://SoftphoneVendorHeadsets/./react-app/src/library/types/consumed-headset-events.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/vendor-implementation.ts","webpack://SoftphoneVendorHeadsets/./react-app/node_modules/browserama/out/browserama.min.js","webpack://SoftphoneVendorHeadsets/./node_modules/events/events.js","webpack://SoftphoneVendorHeadsets/(webpack)/buildin/global.js","webpack://SoftphoneVendorHeadsets/./react-app/node_modules/fetch-jsonp/build/fetch-jsonp.js","webpack://SoftphoneVendorHeadsets/./node_modules/tslib/tslib.es6.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/config.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/plantronics/plantronics-call-events.ts","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/plantronics/plantronics.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/sennheiser/types.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/utils.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/sennheiser/sennheiser.ts","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Scheduler.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/async.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/timeout.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isDate.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/filter.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/observable/empty.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/take.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/first.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/jabra/jabra-native/types.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/jabra/jabra.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/yealink/yealink.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/vbet/vbet.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/headset.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/index.ts","webpack://SoftphoneVendorHeadsets/./node_modules/process/browser.js","webpack://SoftphoneVendorHeadsets/./node_modules/buffer/index.js","webpack://SoftphoneVendorHeadsets/./node_modules/base64-js/index.js","webpack://SoftphoneVendorHeadsets/./node_modules/ieee754/index.js","webpack://SoftphoneVendorHeadsets/./node_modules/isarray/index.js"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","0","__webpack_require__","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","oldJsonpFunction","slice","s","setPrototypeOf","__proto__","Array","TypeError","String","this","constructor","next","a","throw","done","then","apply","label","sent","trys","ops","return","iterator","pop","arguments","concat","v","asyncIterator","u","h","has","set","stack","f","map","toString","join","errors","indexOf","splice","E","initialTeardown","closed","_parentage","_finalizers","unsubscribe","isArray","remove","g","add","_hasParent","_addParent","includes","_removeParent","EMPTY","_","b","y","delegate","O","w","N","C","kind","T","S","isStopped","destination","P","D","L","_next","_error","complete","_complete","A","Function","I","R","partialObserver","H","U","observable","k","x","reduce","G","_subscribe","lift","source","operator","subscribe","_trySubscribe","forEach","F","pipe","toPromise","M","B","W","onFinalize","shouldUnsubscribe","K","Y","currentObservers","observers","hasError","thrownError","V","_throwIfClosed","from","configurable","_checkFinalizedStatuses","_innerSubscribe","asObservable","j","_value","getValue","q","now","Date","$","_bufferSize","_windowTime","_timestampProvider","_buffer","_infiniteTimeWindow","Math","max","_trimBuffer","z","schedule","Q","setInterval","clearInterval","J","scheduler","work","pending","state","id","recycleAsyncId","delay","requestAsyncId","flush","execute","_execute","actions","X","schedulerActionCtor","Z","_active","tt","et","nt","rt","it","ot","st","at","ct","ut","lt","ht","dt","pt","ft","getReader","read","releaseLock","vt","Et","gt","catch","_t","mt","bt","yt","wt","Ot","Nt","Ct","Tt","St","defaultValue","At","It","isNaN","Rt","info","Dt","first","each","with","Ht","meta","lastValue","seen","Lt","Pt","Ut","kt","xt","Gt","Ft","Mt","Bt","Wt","Kt","Yt","Vt","jt","qt","$t","zt","Qt","Jt","Xt","Zt","te","every","some","ee","ne","re","ie","ae","ce","ue","le","he","de","connector","resetOnError","resetOnComplete","resetOnRefCountZero","pe","fe","bufferSize","windowTime","refCount","ve","Ee","ge","_e","me","finalize","be","super","ye","ERROR","JS_LIB","write","level","layer","Oe","WARNING","INFO","CHROME_EXTENSION","NATIVE_CONSOLE","SDK_USAGE_ERROR","FEATURE_NOT_SUPPORTED","DEVICE_ERROR","UNEXPECTED_ERROR","INIT_ERROR","we","compare","itemRemoved","items","itemList","itemAdded","addItem","onDisconnect","removeItem","filter","equals","sort","findIndex","Ne","sdkVersion","consoleAppVersion","version","chromeExtensionVersion","process","platform","navigator","userAgent","Ce","deviceDetector","deviceAdded","deviceObservables","deviceRemoved","deviceList","_transport","_readyEvents","consoleAppEvent","_config","transportContext","context","logger","WeakMap","NODE","WEB_HID","CHROME_EXTENSION_WITH_WEB_HID_FALLBACK","Te","Se","TransportChromeExtension","checkInstallation","ok","initHandler","WebHidTransport","Ae","log","Ie","Re","config","messageShown","partnerKey","validateCrc","logWarning","appId","test","appName","warn","split","charCodeAt","RangeError","padStart","De","He","Le","Pe","Ue","ke","xe","Ge","MS_OC","CISCO","AVAYA","SIEMENS","ALCATEL","IBM","AASTRA","SKYPE","GENERIC","NORTEL","JABRA","NEC","SHORETEL","OTHER","Fe","gnpReadCommand","serialize","command","subCommand","deserialize","GN_PROTOCOL","DATA","Me","Uint8Array","payload","sequenceNumber","PC_ADDR","BASE_ADDR","HS1_ADDR","HS_BT_USB_ADDR","HS_CRADLE_ADDR","CRADLE_ADDR","EVENT","READ","WRITE","REPLY","IDENT","DFU","DEVICE","FWU","STATUS","CONFIG","NACK","ACK","CONFIG_PREFERRED_SOFTPHONE","ID","IDENT_GET_AVAILABLE_SOFTPHONES","TYPE","NAME","PID","ATTACH_EVENT","DETACH_EVENT","NO_ERROR_CODE","BAD_STATE","TRANSMIT_FAILED","ILLEGAL_ADDR","UNKNOWN_CMD","FILE_NOT_FOUND","INTERNAL_ERROR","REPLY_ERROR","ILLEGAL_PARAM","OUT_OF_SEQUENCE","NO_SPACE","ACCESS_DENIED","NO_MORE_DATA","UNKNOWN_SUB_CMD","Be","We","fromCharCode","Ke","Ye","Ve","DataView","buffer","getUint16","je","of","qe","$e","ze","path","require","globalThis","global","self","Qe","Je","Xe","toUpperCase","parseInt","substr","floor","trunc","ibits","obits","obigendian","ibigendian","mul","inc","mask","random","parse","make","Buffer","alloc","getTime","format","toJSON","nil","match","export","import","isFinite","equal","fold","pow","PCG","default","Ze","transport","gnpLockAcquired","token","action","writeAction","INPUT","OUTPUT","FEATURE","ABSOLUTE","RELATIVE","tn","startsWith","en","nn","usagePage","usage","rn","descriptor","transportId","input","inputReportsFilter","find","reportType","sn","lengthMask","typeFromAttr","packetLengthFromAttr","an","gnpPacketHeaderLength","hasHeader","expectedPacketLength","gnpPacketMaxLength","hasFullPacket","un","ln","hn","dn","pn","hidChannel","gnpLock","primaryAddress","lockQueue","packets","inputFilter","events","eventsFilter","nextSequenceNumber","appendData","getPacketAndReset","findDescriptor","processLockQueue","acquireGnpLock","reportSize","attrFromTypeAndPayloadLength","min","subarray","output","releaseGnpLock","doWithGnpLockHeld","readWithParams","getNextSequenceNumber","fn","parentGnpChannel","sendEvent","vn","supportsGnpOverHid","En","gn","_n","isChild","mn","parentId","gnpAddress","bn","yn","On","NO_TRACKING","TRACK_ERRORS","TRACK_USAGE","TRACK_ALL","BLUETOOTH","INDIRECT","USB","BASE","HEADSET","DESKSTAND","DONGLE","PC","EHS","SPEAKER_PHONE","INDICATOR","MOBILE","NONE","LOCAL","DISPLAY","HS_CRADLE","HS_CRADLE2","MOBILE_IAP","CRADLE","VIDEO","NOT_GN","ANY_GN","NOT_INIT","ANY","wn","parentConnectionId","Nn","Cn","Tn","deviceType","address","vid","pid","serialNumber","capabilities","connectionGnpAddress","Sn","createConnection","parentConnection","connectionCreator","createChildGnpChannel","connectionEvents","attach","detach","connection","An","In","Rn","Dn","createHidChannel","createRootGnpChannel","createAttachEvent","getTransportId","convertToReportType","valueType","convertToValueType","JSON","stringify","getMandatoryField","createDescriptor","assign","Hn","Ln","Pn","Un","kn","xn","vendorId","productId","connectionAdded","connectionRemoved","connectionList","Gn","exceptionToUndefined","findConnectionById","currentConnections","Fn","deviceCollection","connectionExists","force","findDeviceByDeviceId","createDevice","isSameDevice","Mn","validateOrganizationKey","validateAppId","validateAppName","internal","testDeviceTransport","recorder","connect","Bn","deviceId","Wn","UsageReport","Kn","Yn","Vn","jn","qn","$n","zn","Qn","Jn","Xn","Zn","ArrayBuffer","byteLength","_view","bigEndian","_scratch","_setBit","getBits","setBits","getBoolean","getInt8","getUint8","getInt16","getInt32","getUint32","getFloat32","setUint32","getFloat64","setBoolean","setInt8","setUint8","setInt16","setUint16","setInt32","setFloat32","setFloat64","getArrayBuffer","_index","_length","readUint8","decodeURIComponent","escape","_startIndex","ceil","readBits","writeBits","readBoolean","readInt8","readInt16","readUint16","readInt32","readUint32","readFloat32","readFloat64","writeBoolean","writeInt8","writeUint8","writeInt16","writeUint16","writeInt32","writeUint32","writeFloat32","writeFloat64","readASCIIString","readUTF8String","writeASCIIString","writeUTF8String","readBitStream","writeBitStream","bitsLeft","readArrayBuffer","writeArrayBuffer","BitView","BitStream","tr","hid","requestDevice","filters","VENDOR_ID","BroadcastChannel","PAIRING_CHANNEL","postMessage","HOOK_SWITCH","GN_PSEUDO_HOOK_SWITCH","FLASH","ALT_HOLD","REDIAL","ONLINE","PHONE_MUTE","SEND","SPEED_DIAL","VOICE_MAIL","ANSWER_ON_OFF","LINE_BUSY","RINGER","PHONE_KEY_0","PHONE_KEY_1","PHONE_KEY_2","PHONE_KEY_3","PHONE_KEY_4","PHONE_KEY_5","PHONE_KEY_6","PHONE_KEY_7","PHONE_KEY_8","PHONE_KEY_9","PHONE_KEY_STAR","PHONE_KEY_POUND","ALT_VOLUME_UP","ALT_VOLUME_DOWN","REJECT_CALL","er","BUTTON","CONSUMER","LED","TELEPHONY","GN_CONSUMER","GN_EXT_BUTTONS","GN_LED","GN_MISC","GN_TELEPHONY","MUTE","OFF_HOOK","RING","MESSAGE_WAIT","HOLD","MIC_MUTE","HID_OFFLINE","HID_SEND","HID_ALT_VOLUME_UP","HID_ALT_VOLUME_DOWN","GN_OUT_OF_RANGE","GN_REJECT_CALL","GN_TELEPHONY_CONT_SET","nr","isSoftphoneInFocus","lockHeld","cachedSignals","Map","Boolean","on","rr","device","deviceSignals","setup","checkHasDisconnected","checkCallLockNotHeld","tryTakeCallLock","checkCallLockHeld","releaseCallLock","STD_TELEPHONY","ir","sr","connectionCallLock","currentLocks","Set","lockReleaseEvent","takeSingleCallLock","delete","size","acquireLockOnNextConnectionEmit","releaseLockOnRemovedConnectionEmit","releaseSingleCallLock","acquired","clear","ar","cr","ur","hr","lr","dr","softphoneInFocus","setFeatureReport","or","pr","devComm","infocus","fr","vr","Er","gr","_r","mr","br","yr","Nr","jabraDirectInstalled","setSharedSoftphoneInfo","supportsCallControl","HOLD_CURRENT","END_CURRENT","MUTED","UNMUTED","NO_ONGOING_CALLS","ON_HOLD","NOT_ON_HOLD","NO_INCOMING","AWAITING_RESPONSE","RESOLVING_RESPONSE","ACCEPTED","REJECTED","HeadsetEvents","VendorImplementation","eventEmitter","EventEmitter","keys","vendorName","selectedMicLabel","clearReason","callInfo","hasOtherActiveCalls","conversationId","autoAnswer","rejectCall","eventName","eventBody","emit","vendor","body","callback","debug","emitEvent","eventInfo","headsetState","isConnected","isConnecting","currentVendor","InstallTrigger","chrome","webstore","runtime","HTMLElement","safari","pushNotification","opr","addons","opera","StyleMedia","CSS","documentMode","ReflectOwnKeys","Reflect","ReflectApply","receiver","args","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","Number","init","once","emitter","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","existing","warning","newListener","unshift","warned","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","copy","addEventListener","wrapListener","arg","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","len","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","index","spliceOne","off","removeAllListeners","rawListeners","eventNames","defaultOptions","generateCallbackFunction","clearFunction","functionName","removeScript","scriptId","getElementById","getElementsByTagName","removeChild","_url","options","url","jsonpCallback","timeoutId","callbackFunction","jsonpCallbackFunction","response","json","jsonpScript","nonce","referrerPolicy","extendStatics","__extends","__","__awaiter","thisArg","_arguments","generator","fulfilled","step","rejected","result","__generator","verb","op","__values","__read","__spreadArray","to","pack","__await","__asyncGenerator","resume","fulfill","settle","__asyncValues","isFunction","createErrorClass","createImpl","ctorFunc","instance","UnsubscriptionError","_super","arrRemove","item","Subscription","e_1","_a","e_2","_b","_parentage_1","_parentage_1_1","e_1_1","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","parent","empty","EMPTY_SUBSCRIPTION","isSubscription","onUnhandledError","onStoppedNotification","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","_i","handle","reportUnhandledError","noop","COMPLETE_NOTIFICATION","createNotification","errorContext","cb","isRoot","errorThrown","Subscriber","_this","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","_bind","ConsumerObserver","handleUnhandledError","SafeSubscriber","observerOrNext","context_1","notification","subscriber","identity","pipeFromArray","fns","prev","Observable","isObserver","sink","promiseCtor","getPromiseCtor","operations","PlantronicsCallEventCodes","ObjectUnsubscribedError","Subject","subject","_c","AnonymousSubject","SennheiserEvents","SennheiserEventTypes","PlantronicsService","pluginName","_deviceInfo","callEventsTimerId","deviceStatusTimerId","incomingConversationId","callId","round","callMappings","plantronicsCallId","lowerLabel","toLowerCase","searchVal","ProductName","deviceInfo","disableEventPolling","getCallEvents","pollForCallEvents","activePollingInterval","getDeviceStatus","pollForDeviceStatus","isDeviceAttached","connectedDeviceInterval","disconnectedDeviceInterval","endpoint","isRetry","_makeRequest","fetchJsonp","plantronicsInstance","_fetch","apiHost","Type_Name","status","changeConnectionStatus","disconnect","handled","_makeRequestTask","browserama","isFirefox","errorCode","disableRetry","_getActiveCalls","calls","isActive","Result","Calls","Source","eventType","Action","callCorrespondingFunction","Err","Description","CallId","Id","deviceAnsweredCall","endCall","deviceRejectedCall","deviceEndedCall","_checkIsActiveTask","deviceMuteChanged","isMuted","deviceHoldStatusChanged","holdRequested","deviceEventLogs","unregisterPlugin","isError","clearTimeouts","contactName","_createCallMapping","params","halfEncodedCallIdString","encodeURI","halfEncodedContactString","incomingCall","createNew","isCefHosted","_HostedContextFunctions","requestCefPromise","cmd","sCmd","cefQuery","persistent","onSuccess","obj","onFailure","SennheiserService","websocketConnected","ignoreAcknowledgement","Event","websocket","send","EstablishConnection","EventType","Request","SPName","SPIconImage","RedialSupport","OffHookSupport","MuteSupport","DNDOption","_sendMessage","socket","WebSocket","onopen","webSocketOnOpen","onclose","webSocketOnClose","onmessage","_handleMessage","wasClean","isFireFox","TerminateConnection","MuteFromApp","UnmuteFromApp","Hold","Resume","CallID","IncomingCall","IncomingCallAccepted","IncomingCallRejected","OutgoingCall","CallEnded","ReturnCode","_handleError","SocketConnected","_registerSoftphone","SPLogin","SystemInformation","HeadsetConnected","HeadsetName","deviceName","headsetType","HeadsetType","HeadsetDisconnected","Notification","Ack","_handleAck","MuteFromHeadset","UnmuteFromHeadset","readyState","close","EmptyError","firstValueFrom","hasConfig","intervalProvider","AsyncAction","_id","_scheduler","_delay","errorValue","errored","dateTimestampProvider","Scheduler","asyncScheduler","AsyncScheduler","SchedulerAction","_scheduled","operate","hasLift","liftedSource","innerFrom","isInteropObservable","obs","array","isAsyncIterable","fromAsyncIterable","isIterable","iterable","iterable_1","iterable_1_1","isReadableStreamLike","readableStream","reader","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","asyncIterable","asyncIterable_1","asyncIterable_1_1","createOperatorSubscriber","onNext","onComplete","onError","OperatorSubscriber","closed_1","TimeoutError","schedulerArg","_with","timeoutErrorFactory","_d","originalSourceSubscription","timerSubscription","startTimer","parentSubscription","repeat","scheduleSubscription","executeSchedule","defaultIfEmpty","hasValue","predicate","take","throwIfEmpty","errorFactory","defaultErrorFactory","hasDefaultValue","project","JabraNativeCommands","JabraService","setHold","setMute","callControl","headsetEventSubscription","signal","callLock","SignalType","activeConversationId","pendingConversationId","offHook","ring","pendingConversationIsOutbound","code","mute","hold","checkForCallLockError","isHeld","takeCallLock","resetState","deviceLabel","originalDeviceLabel","jabraSdk","initializeJabraSdk","callControlFactory","createCallControlFactory","toLocaleLowerCase","getPreviouslyConnectedDevice","selectedDevice","getDeviceFromWebhid","createCallControl","resetHeadsetState","_processEvents","attached","waitForDevice","devices","isDeviceInList","requestWebHidPermissions","webHidPairing","RequestedBrowserTransport","sdk","CallControlFactory","ErrorType","JabraNativeEventNames","JabraNativeService","ringing","isHostedContextInitialized","setupNativeHandlers","waitForHostedContext","Orgspan","serviceFor","isHosted","hostedContext","cefSupportsJabra","supportsJabra","handleJabraEvent","handleJabraDeviceAttached","activeDeviceId","msg","isDeviceEvent","isHeadsetEvent","updateDevices","_processEvent","isOffhook","_sendCmd","Offhook","_setRinging","_getHeadsetIntoVanillaState","Mute","sendEventToDesktop","deviceID","Ring","ignoreNextOffhookEvent","func","timer","OffHook","_handleOffhookEvent","RejectCall","_handleMuteEvent","_handleHoldEvent","timeoutInMillis","timeoutError","timeoutPromise","race","YealinkService","getDevices","activeDevice","productName","collections","collection","inputReports","inputReportReportId","reportId","waiter","deviceLists","bFind","opened","open","processBtnPress","recCallState","changeFlag","callState","answerCall","isHold","sendOpToDevice","val","setValue","sendReport","BT100USeries","CMEDIASeries","DECTSeries","VBetService","deviceCmds","onHook","muteOn","muteOff","setMode","setDeviceAttrs","answerCallFromDevice","rejectCallFromDevice","endCallFromDevice","setMuteFromDevice","lastByte","HeadsetService","_headsetEvents$","headsetEvents$","plantronics","getInstance","jabraNative","jabra","sennheiser","yealink","vbet","implementation","subscribeToHeadsetEvents","impl","isSupported","props","headsetConversationStates","entries","opts","expectExistingConversation","isDifferentState","micLabel","implementations","deviceLabelMatchesVendor","newMicLabel","changeReason","changeImplementation","selectedImplementation","clearSelectedImplementation","implementationChanged","getConnectedImpl","held","muted","outgoingCall","expectedStatePostAction","updateHeadsetState","removeTimer","setRemoveTimer","values","endAllCalls","resetHeadsetStateForCall","handleDeviceAnsweredCall","handleDeviceRejectedCall","handleDeviceEndedCall","deviceMuteStatusChanged","handleDeviceMuteStatusChanged","handleDeviceHoldStatusChanged","handleDeviceLogs","deviceConnectionStatusChanged","handleDeviceConnectionStatusChanged","webHidPermissionRequested","handleWebHidPermissionRequested","connectionStatus","loggableEvent","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","versions","binding","cwd","chdir","dir","umask","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","byteOffset","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","isBuffer","checked","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","foo","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","pos","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","_arr","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","abs","LN2"],"mappings":"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","file":"softhphone-vendor-headsets.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SoftphoneVendorHeadsets\"] = factory();\n\telse\n\t\troot[\"SoftphoneVendorHeadsets\"] = factory();\n})(window, function() {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".softhphone-vendor-headsets.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpSoftphoneVendorHeadsets\"] = window[\"webpackJsonpSoftphoneVendorHeadsets\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};function e(e,n){if(\"function\"!=typeof n&&null!==n)throw new TypeError(\"Class extends value \"+String(n)+\" is not a constructor or null\");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}function n(t,e,n,r){return new(n||(n=Promise))((function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))}function r(t,e){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=e.call(t,s)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function i(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function o(t,e){var n=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function s(t,e,n){if(n||2===arguments.length)for(var r,i=0,o=e.length;i<o;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return t.concat(r||Array.prototype.slice.call(e))}function a(t){return this instanceof a?(this.v=t,this):new a(t)}function c(t,e,n){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var r,i=n.apply(t,e||[]),o=[];return r={},s(\"next\"),s(\"throw\"),s(\"return\"),r[Symbol.asyncIterator]=function(){return this},r;function s(t){i[t]&&(r[t]=function(e){return new Promise((function(n,r){o.push([t,e,n,r])>1||c(t,e)}))})}function c(t,e){try{(n=i[t](e)).value instanceof a?Promise.resolve(n.value.v).then(u,l):h(o[0][2],n)}catch(t){h(o[0][3],t)}var n}function u(t){c(\"next\",t)}function l(t){c(\"throw\",t)}function h(t,e){t(e),o.shift(),o.length&&c(o[0][0],o[0][1])}}function u(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=i(t),e={},r(\"next\"),r(\"throw\"),r(\"return\"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){(function(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)})(r,i,(e=t[n](e)).done,e.value)}))}}}function l(t,e,n,r){if(\"a\"===n&&!r)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof e?t!==e||!r:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===n?r:\"a\"===n?r.call(t):r?r.value:e.get(t)}function h(t,e,n,r,i){if(\"m\"===r)throw new TypeError(\"Private method is not writable\");if(\"a\"===r&&!i)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof e?t!==e||!i:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===r?i.call(t,n):i?i.value=n:e.set(t,n),n}function d(t){return\"function\"==typeof t}function p(t){var e=t((function(t){Error.call(t),t.stack=(new Error).stack}));return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var f=p((function(t){return function(e){t(this),this.message=e?e.length+\" errors occurred during unsubscription:\\n\"+e.map((function(t,e){return e+1+\") \"+t.toString()})).join(\"\\n \"):\"\",this.name=\"UnsubscriptionError\",this.errors=e}}));function v(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var E=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}var e;return t.prototype.unsubscribe=function(){var t,e,n,r,a;if(!this.closed){this.closed=!0;var c=this._parentage;if(c)if(this._parentage=null,Array.isArray(c))try{for(var u=i(c),l=u.next();!l.done;l=u.next()){l.value.remove(this)}}catch(e){t={error:e}}finally{try{l&&!l.done&&(e=u.return)&&e.call(u)}finally{if(t)throw t.error}}else c.remove(this);var h=this.initialTeardown;if(d(h))try{h()}catch(t){a=t instanceof f?t.errors:[t]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var v=i(p),E=v.next();!E.done;E=v.next()){var g=E.value;try{m(g)}catch(t){a=null!=a?a:[],t instanceof f?a=s(s([],o(a)),o(t.errors)):a.push(t)}}}catch(t){n={error:t}}finally{try{E&&!E.done&&(r=v.return)&&r.call(v)}finally{if(n)throw n.error}}}if(a)throw new f(a)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)m(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(e)}},t.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},t.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},t.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&v(e,t)},t.prototype.remove=function(e){var n=this._finalizers;n&&v(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=((e=new t).closed=!0,e),t}(),g=E.EMPTY;function _(t){return t instanceof E||t&&\"closed\"in t&&d(t.remove)&&d(t.add)&&d(t.unsubscribe)}function m(t){d(t)?t():t.unsubscribe()}var b={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},y={setTimeout:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=y.delegate;return(null==i?void 0:i.setTimeout)?i.setTimeout.apply(i,s([t,e],o(n))):setTimeout.apply(void 0,s([t,e],o(n)))},clearTimeout:function(t){var e=y.delegate;return((null==e?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function O(t){y.setTimeout((function(){throw t}))}function w(){}var N=C(\"C\",void 0,void 0);function C(t,e,n){return{kind:t,value:e,error:n}}function T(t){t()}var S=function(t){function n(e){var n=t.call(this)||this;return n.isStopped=!1,e?(n.destination=e,_(e)&&e.add(n)):n.destination=P,n}return e(n,t),n.create=function(t,e,n){return new D(t,e,n)},n.prototype.next=function(t){this.isStopped?L(function(t){return C(\"N\",t,void 0)}(t),this):this._next(t)},n.prototype.error=function(t){this.isStopped?L(C(\"E\",void 0,t),this):(this.isStopped=!0,this._error(t))},n.prototype.complete=function(){this.isStopped?L(N,this):(this.isStopped=!0,this._complete())},n.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},n.prototype._next=function(t){this.destination.next(t)},n.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},n.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},n}(E),A=Function.prototype.bind;function I(t,e){return A.call(t,e)}var R=function(){function t(t){this.partialObserver=t}return t.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(t){H(t)}},t.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(t){H(t)}else H(t)},t.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(t){H(t)}},t}(),D=function(t){function n(e,n,r){var i,o,s=t.call(this)||this;d(e)||!e?i={next:null!=e?e:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&b.useDeprecatedNextContext?((o=Object.create(e)).unsubscribe=function(){return s.unsubscribe()},i={next:e.next&&I(e.next,o),error:e.error&&I(e.error,o),complete:e.complete&&I(e.complete,o)}):i=e;return s.destination=new R(i),s}return e(n,t),n}(S);function H(t){O(t)}function L(t,e){var n=b.onStoppedNotification;n&&y.setTimeout((function(){return n(t,e)}))}var P={closed:!0,next:w,error:function(t){throw t},complete:w},U=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function k(t){return t}function x(t){return 0===t.length?k:1===t.length?t[0]:function(e){return t.reduce((function(t,e){return e(t)}),e)}}var G=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var r,i=this,o=(r=t)&&r instanceof S||function(t){return t&&d(t.next)&&d(t.error)&&d(t.complete)}(r)&&_(r)?t:new D(t,e,n);return T((function(){var t=i,e=t.operator,n=t.source;o.add(e?e.call(o,n):n?i._subscribe(o):i._trySubscribe(o))})),o},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=F(e))((function(e,r){var i=new D({next:function(e){try{t(e)}catch(t){r(t),i.unsubscribe()}},error:r,complete:e});n.subscribe(i)}))},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[U]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return x(t)(this)},t.prototype.toPromise=function(t){var e=this;return new(t=F(t))((function(t,n){var r;e.subscribe((function(t){return r=t}),(function(t){return n(t)}),(function(){return t(r)}))}))},t.create=function(e){return new t(e)},t}();function F(t){var e;return null!==(e=null!=t?t:b.Promise)&&void 0!==e?e:Promise}function M(t){return function(e){if(function(t){return d(null==t?void 0:t.lift)}(e))return e.lift((function(e){try{return t(e,this)}catch(t){this.error(t)}}));throw new TypeError(\"Unable to lift unknown Observable type\")}}function B(t,e,n,r,i){return new W(t,e,n,r,i)}var W=function(t){function n(e,n,r,i,o,s){var a=t.call(this,e)||this;return a.onFinalize=o,a.shouldUnsubscribe=s,a._next=n?function(t){try{n(t)}catch(t){e.error(t)}}:t.prototype._next,a._error=i?function(t){try{i(t)}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._error,a._complete=r?function(){try{r()}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,a}return e(n,t),n.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;t.prototype.unsubscribe.call(this),!n&&(null===(e=this.onFinalize)||void 0===e||e.call(this))}},n}(S),K=p((function(t){return function(){t(this),this.name=\"ObjectUnsubscribedError\",this.message=\"object unsubscribed\"}})),Y=function(t){function n(){var e=t.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return e(n,t),n.prototype.lift=function(t){var e=new V(this,this);return e.operator=t,e},n.prototype._throwIfClosed=function(){if(this.closed)throw new K},n.prototype.next=function(t){var e=this;T((function(){var n,r;if(e._throwIfClosed(),!e.isStopped){e.currentObservers||(e.currentObservers=Array.from(e.observers));try{for(var o=i(e.currentObservers),s=o.next();!s.done;s=o.next()){s.value.next(t)}}catch(t){n={error:t}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}}}))},n.prototype.error=function(t){var e=this;T((function(){if(e._throwIfClosed(),!e.isStopped){e.hasError=e.isStopped=!0,e.thrownError=t;for(var n=e.observers;n.length;)n.shift().error(t)}}))},n.prototype.complete=function(){var t=this;T((function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var e=t.observers;e.length;)e.shift().complete()}}))},n.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(n.prototype,\"observed\",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),n.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},n.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},n.prototype._innerSubscribe=function(t){var e=this,n=this,r=n.hasError,i=n.isStopped,o=n.observers;return r||i?g:(this.currentObservers=null,o.push(t),new E((function(){e.currentObservers=null,v(o,t)})))},n.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,r=e.thrownError,i=e.isStopped;n?t.error(r):i&&t.complete()},n.prototype.asObservable=function(){var t=new G;return t.source=this,t},n.create=function(t,e){return new V(t,e)},n}(G),V=function(t){function n(e,n){var r=t.call(this)||this;return r.destination=e,r.source=n,r}return e(n,t),n.prototype.next=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===n||n.call(e,t)},n.prototype.error=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===n||n.call(e,t)},n.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},n.prototype._subscribe=function(t){var e,n;return null!==(n=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==n?n:g},n}(Y),j=function(t){function n(e){var n=t.call(this)||this;return n._value=e,n}return e(n,t),Object.defineProperty(n.prototype,\"value\",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),n.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return!n.closed&&e.next(this._value),n},n.prototype.getValue=function(){var t=this,e=t.hasError,n=t.thrownError,r=t._value;if(e)throw n;return this._throwIfClosed(),r},n.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},n}(Y),q={now:function(){return(q.delegate||Date).now()},delegate:void 0},$=function(t){function n(e,n,r){void 0===e&&(e=1/0),void 0===n&&(n=1/0),void 0===r&&(r=q);var i=t.call(this)||this;return i._bufferSize=e,i._windowTime=n,i._timestampProvider=r,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,e),i._windowTime=Math.max(1,n),i}return e(n,t),n.prototype.next=function(e){var n=this,r=n.isStopped,i=n._buffer,o=n._infiniteTimeWindow,s=n._timestampProvider,a=n._windowTime;r||(i.push(e),!o&&i.push(s.now()+a)),this._trimBuffer(),t.prototype.next.call(this,e)},n.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var e=this._innerSubscribe(t),n=this._infiniteTimeWindow,r=this._buffer.slice(),i=0;i<r.length&&!t.closed;i+=n?1:2)t.next(r[i]);return this._checkFinalizedStatuses(t),e},n.prototype._trimBuffer=function(){var t=this,e=t._bufferSize,n=t._timestampProvider,r=t._buffer,i=t._infiniteTimeWindow,o=(i?1:2)*e;if(e<1/0&&o<r.length&&r.splice(0,r.length-o),!i){for(var s=n.now(),a=0,c=1;c<r.length&&r[c]<=s;c+=2)a=c;a&&r.splice(0,a+1)}},n}(Y),z=function(t){function n(e,n){return t.call(this)||this}return e(n,t),n.prototype.schedule=function(t,e){return this},n}(E),Q={setInterval:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Q.delegate;return(null==i?void 0:i.setInterval)?i.setInterval.apply(i,s([t,e],o(n))):setInterval.apply(void 0,s([t,e],o(n)))},clearInterval:function(t){var e=Q.delegate;return((null==e?void 0:e.clearInterval)||clearInterval)(t)},delegate:void 0},J=function(t){function n(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.pending=!1,r}return e(n,t),n.prototype.schedule=function(t,e){var n;if(void 0===e&&(e=0),this.closed)return this;this.state=t;var r=this.id,i=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(i,r,e)),this.pending=!0,this.delay=e,this.id=null!==(n=this.id)&&void 0!==n?n:this.requestAsyncId(i,this.id,e),this},n.prototype.requestAsyncId=function(t,e,n){return void 0===n&&(n=0),Q.setInterval(t.flush.bind(t,this),n)},n.prototype.recycleAsyncId=function(t,e,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return e;null!=e&&Q.clearInterval(e)},n.prototype.execute=function(t,e){if(this.closed)return new Error(\"executing a cancelled action\");this.pending=!1;var n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},n.prototype._execute=function(t,e){var n,r=!1;try{this.work(t)}catch(t){r=!0,n=t||new Error(\"Scheduled action threw falsy error\")}if(r)return this.unsubscribe(),n},n.prototype.unsubscribe=function(){if(!this.closed){var e=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,v(r,this),null!=e&&(this.id=this.recycleAsyncId(n,e,null)),this.delay=null,t.prototype.unsubscribe.call(this)}},n}(z),X=function(){function t(e,n){void 0===n&&(n=t.now),this.schedulerActionCtor=e,this.now=n}return t.prototype.schedule=function(t,e,n){return void 0===e&&(e=0),new this.schedulerActionCtor(this,t).schedule(n,e)},t.now=q.now,t}(),Z=new(function(t){function n(e,n){void 0===n&&(n=X.now);var r=t.call(this,e,n)||this;return r.actions=[],r._active=!1,r}return e(n,t),n.prototype.flush=function(t){var e=this.actions;if(this._active)e.push(t);else{var n;this._active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}},n}(X))(J),tt=Z,et=new G((function(t){return t.complete()}));function nt(t){return t&&d(t.schedule)}function rt(t){return t[t.length-1]}function it(t){return d(rt(t))?t.pop():void 0}function ot(t){return nt(rt(t))?t.pop():void 0}function st(t,e){return\"number\"==typeof rt(t)?t.pop():e}var at=function(t){return t&&\"number\"==typeof t.length&&\"function\"!=typeof t};function ct(t){return d(null==t?void 0:t.then)}function ut(t){return d(t[U])}function lt(t){return Symbol.asyncIterator&&d(null==t?void 0:t[Symbol.asyncIterator])}function ht(t){return new TypeError(\"You provided \"+(null!==t&&\"object\"==typeof t?\"an invalid object\":\"'\"+t+\"'\")+\" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\")}var dt=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\";function pt(t){return d(null==t?void 0:t[dt])}function ft(t){return c(this,arguments,(function(){var e,n,i;return r(this,(function(r){switch(r.label){case 0:e=t.getReader(),r.label=1;case 1:r.trys.push([1,,9,10]),r.label=2;case 2:return[4,a(e.read())];case 3:return n=r.sent(),i=n.value,n.done?[4,a(void 0)]:[3,5];case 4:return[2,r.sent()];case 5:return[4,a(i)];case 6:return[4,r.sent()];case 7:return r.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}}))}))}function vt(t){return d(null==t?void 0:t.getReader)}function Et(t){if(t instanceof G)return t;if(null!=t){if(ut(t))return o=t,new G((function(t){var e=o[U]();if(d(e.subscribe))return e.subscribe(t);throw new TypeError(\"Provided object does not correctly implement Symbol.observable\")}));if(at(t))return r=t,new G((function(t){for(var e=0;e<r.length&&!t.closed;e++)t.next(r[e]);t.complete()}));if(ct(t))return n=t,new G((function(t){n.then((function(e){t.closed||(t.next(e),t.complete())}),(function(e){return t.error(e)})).then(null,O)}));if(lt(t))return gt(t);if(pt(t))return e=t,new G((function(t){var n,r;try{for(var o=i(e),s=o.next();!s.done;s=o.next()){var a=s.value;if(t.next(a),t.closed)return}}catch(t){n={error:t}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}t.complete()}));if(vt(t))return gt(ft(t))}var e,n,r,o;throw ht(t)}function gt(t){return new G((function(e){(function(t,e){var i,o,s,a;return n(this,void 0,void 0,(function(){var n,c;return r(this,(function(r){switch(r.label){case 0:r.trys.push([0,5,6,11]),i=u(t),r.label=1;case 1:return[4,i.next()];case 2:if((o=r.sent()).done)return[3,4];if(n=o.value,e.next(n),e.closed)return[2];r.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=r.sent(),s={error:c},[3,11];case 6:return r.trys.push([6,,9,10]),o&&!o.done&&(a=i.return)?[4,a.call(i)]:[3,8];case 7:r.sent(),r.label=8;case 8:return[3,10];case 9:if(s)throw s.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}}))}))})(t,e).catch((function(t){return e.error(t)}))}))}function _t(t,e,n,r,i){void 0===r&&(r=0),void 0===i&&(i=!1);var o=e.schedule((function(){n(),i?t.add(this.schedule(null,r)):this.unsubscribe()}),r);if(t.add(o),!i)return o}function mt(t,e){return void 0===e&&(e=0),M((function(n,r){n.subscribe(B(r,(function(n){return _t(r,t,(function(){return r.next(n)}),e)}),(function(){return _t(r,t,(function(){return r.complete()}),e)}),(function(n){return _t(r,t,(function(){return r.error(n)}),e)})))}))}function bt(t,e){return void 0===e&&(e=0),M((function(n,r){r.add(t.schedule((function(){return n.subscribe(r)}),e))}))}function yt(t,e){if(!t)throw new Error(\"Iterable cannot be null\");return new G((function(n){_t(n,e,(function(){var r=t[Symbol.asyncIterator]();_t(n,e,(function(){r.next().then((function(t){t.done?n.complete():n.next(t.value)}))}),0,!0)}))}))}function Ot(t,e){if(null!=t){if(ut(t))return function(t,e){return Et(t).pipe(bt(e),mt(e))}(t,e);if(at(t))return function(t,e){return new G((function(n){var r=0;return e.schedule((function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())}))}))}(t,e);if(ct(t))return function(t,e){return Et(t).pipe(bt(e),mt(e))}(t,e);if(lt(t))return yt(t,e);if(pt(t))return function(t,e){return new G((function(n){var r;return _t(n,e,(function(){r=t[dt](),_t(n,e,(function(){var t,e,i;try{e=(t=r.next()).value,i=t.done}catch(t){return void n.error(t)}i?n.complete():n.next(e)}),0,!0)})),function(){return d(null==r?void 0:r.return)&&r.return()}}))}(t,e);if(vt(t))return function(t,e){return yt(ft(t),e)}(t,e)}throw ht(t)}function wt(t,e){return e?Ot(t,e):Et(t)}function Nt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=ot(t);return wt(t,n)}function Ct(t,e){var n=d(t)?t:function(){return t},r=function(t){return t.error(n())};return new G(e?function(t){return e.schedule(r,0,t)}:r)}var Tt=p((function(t){return function(){t(this),this.name=\"EmptyError\",this.message=\"no elements in sequence\"}}));function St(t,e){var n=\"object\"==typeof e;return new Promise((function(r,i){var o,s=!1;t.subscribe({next:function(t){o=t,s=!0},error:i,complete:function(){s?r(o):n?r(e.defaultValue):i(new Tt)}})}))}function At(t,e){var n=\"object\"==typeof e;return new Promise((function(r,i){var o=new D({next:function(t){r(t),o.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new Tt)}});t.subscribe(o)}))}function It(t){return t instanceof Date&&!isNaN(t)}var Rt=p((function(t){return function(e){void 0===e&&(e=null),t(this),this.message=\"Timeout has occurred\",this.name=\"TimeoutError\",this.info=e}}));function Dt(t,e){var n=It(t)?{first:t}:\"number\"==typeof t?{each:t}:t,r=n.first,i=n.each,o=n.with,s=void 0===o?Ht:o,a=n.scheduler,c=void 0===a?null!=e?e:Z:a,u=n.meta,l=void 0===u?null:u;if(null==r&&null==i)throw new TypeError(\"No timeout provided.\");return M((function(t,e){var n,o,a=null,u=0,h=function(t){o=_t(e,c,(function(){try{n.unsubscribe(),Et(s({meta:l,lastValue:a,seen:u})).subscribe(e)}catch(t){e.error(t)}}),t)};n=t.subscribe(B(e,(function(t){null==o||o.unsubscribe(),u++,e.next(a=t),i>0&&h(i)}),void 0,void 0,(function(){(null==o?void 0:o.closed)||null==o||o.unsubscribe(),a=null}))),!u&&h(null!=r?\"number\"==typeof r?r:+r-c.now():i)}))}function Ht(t){throw new Rt(t)}function Lt(t,e){return M((function(n,r){var i=0;n.subscribe(B(r,(function(n){r.next(t.call(e,n,i++))})))}))}function Pt(t,e,n){return void 0===n&&(n=1/0),d(e)?Pt((function(n,r){return Lt((function(t,i){return e(n,t,r,i)}))(Et(t(n,r)))}),n):(\"number\"==typeof e&&(n=e),M((function(e,r){return function(t,e,n,r,i,o,s,a){var c=[],u=0,l=0,h=!1,d=function(){!h||c.length||u||e.complete()},p=function(t){return u<r?f(t):c.push(t)},f=function(t){o&&e.next(t),u++;var a=!1;Et(n(t,l++)).subscribe(B(e,(function(t){null==i||i(t),o?p(t):e.next(t)}),(function(){a=!0}),void 0,(function(){if(a)try{u--;for(var t=function(){var t=c.shift();s?_t(e,s,(function(){return f(t)})):f(t)};c.length&&u<r;)t();d()}catch(t){e.error(t)}})))};return t.subscribe(B(e,p,(function(){h=!0,d()}))),function(){null==a||a()}}(e,r,t,n)})))}function Ut(t){return void 0===t&&(t=1/0),Pt(k,t)}function kt(){return Ut(1)}function xt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return kt()(wt(t,ot(t)))}function Gt(t){return new G((function(e){Et(t()).subscribe(e)}))}function Ft(t,e,n){void 0===t&&(t=0),void 0===n&&(n=tt);var r=-1;return null!=e&&(nt(e)?n=e:r=e),new G((function(e){var i=It(t)?+t-n.now():t;i<0&&(i=0);var o=0;return n.schedule((function(){e.closed||(e.next(o++),0<=r?this.schedule(void 0,r):e.complete())}),i)}))}function Mt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=ot(t),r=st(t,1/0),i=t;return i.length?1===i.length?Et(i[0]):Ut(r)(wt(i,n)):et}var Bt,Wt,Kt,Yt,Vt,jt,qt=new G(w),$t=Array.isArray;function zt(t){return 1===t.length&&$t(t[0])?t[0]:t}function Qt(t,e){return function(n,r){return!t.call(e,n,r)}}function Jt(t,e){return M((function(n,r){var i=0;n.subscribe(B(r,(function(n){return t.call(e,n,i++)&&r.next(n)})))}))}function Xt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 1===(t=zt(t)).length?Et(t[0]):new G(Zt(t))}function Zt(t){return function(e){for(var n=[],r=function(r){n.push(Et(t[r]).subscribe(B(e,(function(t){if(n){for(var i=0;i<n.length;i++)i!==r&&n[i].unsubscribe();n=null}e.next(t)}))))},i=0;n&&!e.closed&&i<t.length;i++)r(i)}}function te(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=it(t),r=zt(t);return r.length?new G((function(t){var e=r.map((function(){return[]})),i=r.map((function(){return!1}));t.add((function(){e=i=null}));for(var a=function(a){Et(r[a]).subscribe(B(t,(function(r){if(e[a].push(r),e.every((function(t){return t.length}))){var c=e.map((function(t){return t.shift()}));t.next(n?n.apply(void 0,s([],o(c))):c),e.some((function(t,e){return!t.length&&i[e]}))&&t.complete()}}),(function(){i[a]=!0,!e[a].length&&t.complete()})))},c=0;!t.closed&&c<r.length;c++)a(c);return function(){e=i=null}})):et}function ee(t){return M((function(e,n){var r,i=null,o=!1;i=e.subscribe(B(n,void 0,void 0,(function(s){r=Et(t(s,ee(t)(e))),i?(i.unsubscribe(),i=null,r.subscribe(n)):o=!0}))),o&&(i.unsubscribe(),i=null,r.subscribe(n))}))}function ne(t,e){return d(e)?Pt(t,e,1):Pt(t,1)}function re(t){return M((function(e,n){var r=!1;e.subscribe(B(n,(function(t){r=!0,n.next(t)}),(function(){r||n.next(t),n.complete()})))}))}function ie(t){return t<=0?function(){return et}:M((function(e,n){var r=0;e.subscribe(B(n,(function(e){++r<=t&&(n.next(e),t<=r&&n.complete())})))}))}function oe(t,e){return void 0===e&&(e=k),t=null!=t?t:se,M((function(n,r){var i,o=!0;n.subscribe(B(r,(function(n){var s=e(n);!o&&t(i,s)||(o=!1,i=s,r.next(n))})))}))}function se(t,e){return t===e}function ae(t){return void 0===t&&(t=ce),M((function(e,n){var r=!1;e.subscribe(B(n,(function(t){r=!0,n.next(t)}),(function(){return r?n.complete():n.error(t())})))}))}function ce(){return new Tt}function ue(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?Jt((function(e,n){return t(e,n,r)})):k,ie(1),n?re(e):ae((function(){return new Tt})))}}function le(t){return t<=0?function(){return et}:M((function(e,n){var r=[];e.subscribe(B(n,(function(e){r.push(e),t<r.length&&r.shift()}),(function(){var t,e;try{for(var o=i(r),s=o.next();!s.done;s=o.next()){var a=s.value;n.next(a)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}n.complete()}),void 0,(function(){r=null})))}))}function he(t){return M((function(e,n){var r,i,o=!1,s=function(){r=e.subscribe(B(n,void 0,void 0,(function(e){i||(i=new Y,t(i).subscribe(B(n,(function(){return r?s():o=!0})))),i&&i.next(e)}))),o&&(r.unsubscribe(),r=null,o=!1,s())};s()}))}function de(t){void 0===t&&(t={});var e=t.connector,n=void 0===e?function(){return new Y}:e,r=t.resetOnError,i=void 0===r||r,o=t.resetOnComplete,s=void 0===o||o,a=t.resetOnRefCountZero,c=void 0===a||a;return function(t){var e,r,o,a=0,u=!1,l=!1,h=function(){null==r||r.unsubscribe(),r=void 0},d=function(){h(),e=o=void 0,u=l=!1},p=function(){var t=e;d(),null==t||t.unsubscribe()};return M((function(t,f){a++,l||u||h();var v=o=null!=o?o:n();f.add((function(){0!==--a||l||u||(r=pe(p,c))})),v.subscribe(f),!e&&a>0&&(e=new D({next:function(t){return v.next(t)},error:function(t){l=!0,h(),r=pe(d,i,t),v.error(t)},complete:function(){u=!0,h(),r=pe(d,s),v.complete()}}),Et(t).subscribe(e))}))(t)}}function pe(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!0!==e){if(!1!==e){var i=new D({next:function(){i.unsubscribe(),t()}});return e.apply(void 0,s([],o(n))).subscribe(i)}}else t()}function fe(t,e,n){var r,i,o,s,a=!1;return t&&\"object\"==typeof t?(r=t.bufferSize,s=void 0===r?1/0:r,i=t.windowTime,e=void 0===i?1/0:i,a=void 0!==(o=t.refCount)&&o,n=t.scheduler):s=null!=t?t:1/0,de({connector:function(){return new $(s,e,n)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:a})}function ve(t){return Jt((function(e,n){return t<=n}))}function Ee(t,e){return M((function(n,r){var i=null,o=0,s=!1,a=function(){return s&&!i&&r.complete()};n.subscribe(B(r,(function(n){null==i||i.unsubscribe();var s=0,c=o++;Et(t(n,c)).subscribe(i=B(r,(function(t){return r.next(e?e(n,t,c,s++):t)}),(function(){i=null,a()})))}),(function(){s=!0,a()})))}))}function ge(){return Ee(k)}function _e(t){return M((function(e,n){Et(t).subscribe(B(n,(function(){return n.complete()}),w)),!n.closed&&e.subscribe(n)}))}function me(t,e,n){var r=d(t)||e||n?{next:t,error:e,complete:n}:t;return r?M((function(t,e){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var i=!0;t.subscribe(B(e,(function(t){var n;null===(n=r.next)||void 0===n||n.call(r,t),e.next(t)}),(function(){var t;i=!1,null===(t=r.complete)||void 0===t||t.call(r),e.complete()}),(function(t){var n;i=!1,null===(n=r.error)||void 0===n||n.call(r,t),e.error(t)}),(function(){var t,e;i&&(null===(t=r.unsubscribe)||void 0===t||t.call(r)),null===(e=r.finalize)||void 0===e||e.call(r)})))})):k}class be extends Error{constructor(t,e){super(t),this.type=e,this.type=e,Object.setPrototypeOf(this,new.target.prototype)}}function ye(t,e,n=Bt.ERROR,r=Wt.JS_LIB){e?null==e||e.write({level:n,layer:r,message:t}):e||n!==Bt.ERROR||console.error(t)}function Oe(t){return void 0!==t}!function(t){t.ERROR=\"error\",t.WARNING=\"warning\",t.INFO=\"info\"}(Bt||(Bt={})),function(t){t.CHROME_EXTENSION=\"chrome-extension\",t.NATIVE_CONSOLE=\"native-console\",t.JS_LIB=\"js-lib\"}(Wt||(Wt={})),function(t){t.SDK_USAGE_ERROR=\"sdk-usage-error\",t.FEATURE_NOT_SUPPORTED=\"feature-not-supported\",t.DEVICE_ERROR=\"device-error\",t.UNEXPECTED_ERROR=\"unexpected-error\",t.INIT_ERROR=\"init-error\"}(Kt||(Kt={}));class we{constructor(t,e){this.compare=e,this.remove=new Y,this.itemRemoved=this.remove,this.items=new j([]),this.itemList=this.items,this.itemAdded=t.pipe(Lt((t=>(this.addItem(t),t))),de()),this.itemAdded.subscribe({next:t=>{t.onDisconnect.pipe(ue(),Lt((()=>this.removeItem(t.id))),Jt(Oe)).subscribe((t=>this.remove.next(t)))},error:w}),this.itemRemoved.subscribe({error:w})}getValue(){return[...this.items.getValue()]}addItem(t){if(this.items.getValue().filter((e=>e.id.equals(t.id))).length>0)throw new be(\"This item has already been added.\",Kt.UNEXPECTED_ERROR);const e=this.items.getValue().concat([t]);e.sort(this.compare),this.items.next(e)}removeItem(t){const e=this.getValue(),n=e.findIndex((e=>e.id.equals(t)));if(-1===n)throw new be(\"Item not found and therefore cannot be removed.\",Kt.UNEXPECTED_ERROR);const r=e.splice(n,1)[0];return this.items.next(e),r}}class Ne{constructor(t,e){var n;this.sdkVersion=null!==(n=\"4.2.1\")?n:\"0.0.1-local\",this.consoleAppVersion=t.pipe(ue((t=>\"ready\"===t.event)),Lt((t=>t.version)),Dt(1e3),fe(1),ee((()=>Nt(null)))),this.chromeExtensionVersion=t.pipe(ue((t=>\"chrome-extension-ready\"===t.event)),Lt((t=>t.version)),Dt(1e3),fe(1),ee((()=>Nt(null)))),te(this.consoleAppVersion,this.chromeExtensionVersion).subscribe((t=>{const n=`sdkVersion: ${this.sdkVersion} | chromeHostVersion: ${t[0]}`;let r;r=\"undefined\"!=typeof process?`${n} | nodeVersion: ${process.version} | platform: ${process.platform}`:`${n} | chromeExtensionVersion: ${t[1]} | browserUserAgent: ${window.navigator.userAgent}`,ye(r,e,Bt.INFO)}))}}class Ce{constructor(t,e,n){this.deviceDetector=t,this.deviceAdded=this.deviceDetector.deviceObservables.itemAdded,this.deviceRemoved=this.deviceDetector.deviceObservables.itemRemoved,this.deviceList=this.deviceDetector.deviceObservables.itemList,Yt.set(this,void 0),this._transport=e,this._readyEvents=e.consoleAppEvent.pipe(Jt((t=>\"ready\"===t.event||\"chrome-extension-ready\"===t.event)),fe(2)),this._readyEvents.subscribe(),this._config=n,this.transportContext=e.context,h(this,Yt,new Ne(this._readyEvents,null==n?void 0:n.logger),\"f\")}getVersion(){return l(this,Yt,\"f\").sdkVersion}getChromehostVersion(){return At(l(this,Yt,\"f\").consoleAppVersion)}getChromeExtensionVersion(){return At(l(this,Yt,\"f\").chromeExtensionVersion)}}Yt=new WeakMap,function(t){t.NODE=\"node\",t.CHROME_EXTENSION=\"chrome-extension\",t.WEB_HID=\"web-hid\"}(Vt||(Vt={})),function(t){t.CHROME_EXTENSION=\"chrome-extension\",t.WEB_HID=\"web-hid\",t.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK=\"chrome-extension-with-web-hid-fallback\"}(jt||(jt={}));const Te=\"Failed to dynamically import file. Please contact a Jabra representative as we would love to learn about scenarios where this could happen!\";function Se(t,e=jt.CHROME_EXTENSION,r){return n(this,void 0,void 0,(function*(){if(e!==jt.WEB_HID){const n=yield import(\"./chrome-extension-transport-13d55d4f.js\").catch((()=>{throw new be(Te,Kt.UNEXPECTED_ERROR)})),i=yield n.TransportChromeExtension.checkInstallation();if(i.ok)return ye(\"Using Chrome extension for transport.\",t,Bt.INFO),new n.TransportChromeExtension(t,r);if(e===jt.CHROME_EXTENSION)throw new be(i.message,Kt.INIT_ERROR);e===jt.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK&&ye(i.message,t,Bt.INFO)}return ye(\"Using WebHID for transport.\",t,Bt.INFO),function(t,e){return n(this,void 0,void 0,(function*(){const n=yield import(\"./init-handler-cf98d043.js\").catch((()=>{throw new be(Te,Kt.UNEXPECTED_ERROR)})),r=yield import(\"./web-hid-transport-7010ebf0.js\").catch((()=>{throw new be(Te,Kt.UNEXPECTED_ERROR)})),i=n.initHandler(t);return new r.WebHidTransport(i,t,e)}))}(t,r)}))}class Ae{constructor(t,e){this.log=t.consoleAppEvent.pipe(Jt((t=>\"log\"===t.event)),Lt((t=>({message:t.message,level:t.level,layer:t.layer})))),this.log.subscribe((t=>ye(t.message,e,t.level,t.layer)))}}const Ie=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920];class Re{constructor(t){this.config=t,this.messageShown=!1}validateOrganizationKey(){var t;if(!(null===(t=this.config)||void 0===t?void 0:t.partnerKey))return void this.logWarning(\"No partner key provided.\");this.validateCrc(this.config.partnerKey)||this.logWarning(\"Invalid partner key.\")}validateAppId(){var t;if(!(null===(t=this.config)||void 0===t?void 0:t.appId))return void this.logWarning(\"No app identifier provided.\");if(this.config.appId.length<3)return void this.logWarning(\"The appId should be minimum 3 characters.\",!1);if(this.config.appId.length>100)return void this.logWarning(\"The appId should be no longer than 100 characters.\",!1);/^[A-Za-z0-9\\-_]+$/.test(this.config.appId)||this.logWarning(\"The appId is invalid. Should consist of letters, numbers, underscores or dashes\",!1)}validateAppName(){var t;if(!(null===(t=this.config)||void 0===t?void 0:t.appName))return void this.logWarning(\"No app name provided. Will fallback to use appId as name.\",!1);if(!/^[\\x20-\\x7F]*$/.test(this.config.appName))return void this.logWarning(\"The app name can only contain ASCII characters\",!1);if(this.config.appName.length>100)return void this.logWarning(\"The app name should be no longer than 100 characters.\",!1);/^[A-Za-z0-9]+[A-Za-z0-9 &-]*$/g.test(this.config.appName)||this.logWarning(\"The appName is invalid. Name should consist of letters, numbers, spaces, ampersands and dashes. Name should not begin with spaces, ampersands or dashes.\",!1)}logWarning(t,e=!0){if(this.messageShown)return;this.messageShown=!0;e?console.warn(`\\n ${t}\\n \\n Add keys to the config object on initialization.\\n E.g. await init({\\n partnerKey: 'my-partner-key-from-developer-zone',\\n appId: 'my-self-chosen-app-id',\\n appName: 'My App Name'\\n });\\n\\n Please obtain a valid partner key from https://developer.jabra.com.\\n The key will ensure interoperability with other Jabra apps and services, and mitigate\\n some co-existence issues with other softphone applications.\\n\\n The package will continue to work without the keys, but we do not recommend production release\\n without it. Read more on the Developer Zone.\\n \\n `):console.warn(t)}validateCrc(t){const[e,...n]=t.split(\"-\"),r=function(t){let e,n,r=65535;for(n=0;n<t.length;n+=1){const i=t.charCodeAt(n);if(i>255)throw new RangeError;e=255&(i^r>>8),r=Ie[e]^r<<8}return 65535&(0^r)}(n.join(\"-\")).toString(16).padStart(4,\"0\");return e===r}}var De,He,Le,Pe,Ue,ke,xe,Ge;!function(t){t[t.MS_OC=0]=\"MS_OC\",t[t.CISCO=1]=\"CISCO\",t[t.AVAYA=2]=\"AVAYA\",t[t.SIEMENS=3]=\"SIEMENS\",t[t.ALCATEL=4]=\"ALCATEL\",t[t.IBM=5]=\"IBM\",t[t.AASTRA=6]=\"AASTRA\",t[t.SKYPE=7]=\"SKYPE\",t[t.GENERIC=8]=\"GENERIC\",t[t.NORTEL=9]=\"NORTEL\",t[t.JABRA=10]=\"JABRA\",t[t.NEC=11]=\"NEC\",t[t.SHORETEL=12]=\"SHORETEL\",t[t.OTHER=255]=\"OTHER\"}(De||(De={}));class Fe{constructor(t,e){this.gnpReadCommand=t,this.serialize=e,this.command=t.command,this.subCommand=t.subCommand}deserialize(t){return this.gnpReadCommand.deserialize(t)}}!function(t){t[t.GN_PROTOCOL=65280]=\"GN_PROTOCOL\"}(He||(He={})),function(t){t[t.DATA=1]=\"DATA\"}(Le||(Le={}));class Me{constructor(t,e,n,r,i,o=new Uint8Array,s=0){this.destination=t,this.source=e,this.type=n,this.command=r,this.subCommand=i,this.payload=o,this.sequenceNumber=s}}!function(t){t[t.PC_ADDR=0]=\"PC_ADDR\",t[t.BASE_ADDR=1]=\"BASE_ADDR\",t[t.HS1_ADDR=4]=\"HS1_ADDR\",t[t.HS_BT_USB_ADDR=8]=\"HS_BT_USB_ADDR\",t[t.HS_CRADLE_ADDR=10]=\"HS_CRADLE_ADDR\",t[t.CRADLE_ADDR=21]=\"CRADLE_ADDR\"}(Pe||(Pe={})),function(t){t[t.EVENT=0]=\"EVENT\",t[t.READ=1]=\"READ\",t[t.WRITE=2]=\"WRITE\",t[t.REPLY=3]=\"REPLY\"}(Ue||(Ue={})),function(t){t[t.IDENT=2]=\"IDENT\",t[t.DFU=7]=\"DFU\",t[t.DEVICE=13]=\"DEVICE\",t[t.FWU=15]=\"FWU\",t[t.STATUS=18]=\"STATUS\",t[t.CONFIG=19]=\"CONFIG\",t[t.NACK=254]=\"NACK\",t[t.ACK=255]=\"ACK\"}(ke||(ke={})),function(t){t[t.CONFIG_PREFERRED_SOFTPHONE=34]=\"CONFIG_PREFERRED_SOFTPHONE\",t[t.ID=1]=\"ID\",t[t.IDENT_GET_AVAILABLE_SOFTPHONES=16]=\"IDENT_GET_AVAILABLE_SOFTPHONES\",t[t.TYPE=2]=\"TYPE\",t[t.NAME=0]=\"NAME\",t[t.PID=17]=\"PID\",t[t.ATTACH_EVENT=1]=\"ATTACH_EVENT\",t[t.DETACH_EVENT=2]=\"DETACH_EVENT\"}(xe||(xe={})),function(t){t[t.NO_ERROR_CODE=0]=\"NO_ERROR_CODE\",t[t.BAD_STATE=243]=\"BAD_STATE\",t[t.TRANSMIT_FAILED=244]=\"TRANSMIT_FAILED\",t[t.ILLEGAL_ADDR=245]=\"ILLEGAL_ADDR\",t[t.UNKNOWN_CMD=246]=\"UNKNOWN_CMD\",t[t.FILE_NOT_FOUND=247]=\"FILE_NOT_FOUND\",t[t.INTERNAL_ERROR=248]=\"INTERNAL_ERROR\",t[t.REPLY_ERROR=249]=\"REPLY_ERROR\",t[t.ILLEGAL_PARAM=250]=\"ILLEGAL_PARAM\",t[t.OUT_OF_SEQUENCE=251]=\"OUT_OF_SEQUENCE\",t[t.NO_SPACE=252]=\"NO_SPACE\",t[t.ACCESS_DENIED=253]=\"ACCESS_DENIED\",t[t.NO_MORE_DATA=254]=\"NO_MORE_DATA\",t[t.UNKNOWN_SUB_CMD=255]=\"UNKNOWN_SUB_CMD\"}(Ge||(Ge={}));const Be={command:ke.DEVICE,subCommand:xe.ATTACH_EVENT,serialize:t=>Uint8Array.from([5,0])};function We(t){const e=t.payload,n=e[0],r=e.length-1;if(r!==n)throw new be(`Invalid response. Expected length: ${n}, actual: ${r}`,Kt.DEVICE_ERROR);const i=e.slice(1);return String.fromCharCode(...Array.from(i))}class Ke{constructor(){var t;this.command=ke.IDENT,this.subCommand=xe.IDENT_GET_AVAILABLE_SOFTPHONES,this.deserialize=(t=t=>t,e=>{const n=e.payload,r=n[0],i=n.length-1;if(i!==r)throw new be(`Invalid response. Expected length: ${r}, actual: ${i}`,Kt.DEVICE_ERROR);const o=[];return n.slice(1).forEach((e=>{o.push(t(e))})),o})}}const Ye={command:ke.IDENT,subCommand:xe.NAME,deserialize:We},Ve={command:ke.IDENT,subCommand:xe.PID,deserialize:function(t){const e=t instanceof Me?t.payload:t;return new DataView(e.buffer).getUint16(0,!0)}},je={command:ke.CONFIG,subCommand:xe.CONFIG_PREFERRED_SOFTPHONE,deserialize:t=>t.payload[0],serialize:t=>Uint8Array.of(t)},qe={command:ke.IDENT,subCommand:xe.TYPE,deserialize:t=>t.source},$e={command:ke.IDENT,subCommand:xe.ID,deserialize:We};\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function ze(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==e&&n.path)}},n.exports),n.exports}var Qe,Je,Xe=ze((function(t){\n/*!\n** Pure-UUID -- Pure JavaScript Based Universally Unique Identifier (UUID)\n** Copyright (c) 2004-2020 Dr. Ralf S. Engelschall <rse@engelschall.com>\n**\n** Permission is hereby granted, free of charge, to any person obtaining\n** a copy of this software and associated documentation files (the\n** \"Software\"), to deal in the Software without restriction, including\n** without limitation the rights to use, copy, modify, merge, publish,\n** distribute, sublicense, and/or sell copies of the Software, and to\n** permit persons to whom the Software is furnished to do so, subject to\n** the following conditions:\n**\n** The above copyright notice and this permission notice shall be included\n** in all copies or substantial portions of the Software.\n**\n** THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nt.exports=function(){var t=function(t,e,n,r,i,o){for(var s=function(t,e){var n=t.toString(16);return n.length<2&&(n=\"0\"+n),e&&(n=n.toUpperCase()),n},a=e;a<=n;a++)i[o++]=s(t[a],r);return i},e=function(t,e,n,r,i){for(var o=e;o<=n;o+=2)r[i++]=parseInt(t.substr(o,2),16)},n=\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#\".split(\"\"),r=[0,68,0,84,83,82,72,0,75,76,70,65,0,63,62,69,0,1,2,3,4,5,6,7,8,9,64,0,73,66,74,71,81,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,77,0,78,67,0,0,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,79,0,80,0,0],i=function(t,e){if(e%4!=0)throw new Error(\"z85_encode: invalid input length (multiple of 4 expected)\");for(var r=\"\",i=0,o=0;i<e;)if(o=256*o+t[i++],i%4==0){for(var s=52200625;s>=1;){var a=Math.floor(o/s)%85;r+=n[a],s/=85}o=0}return r},o=function(t,e){var n=t.length;if(n%5!=0)throw new Error(\"z85_decode: invalid input length (multiple of 5 expected)\");void 0===e&&(e=new Array(4*n/5));for(var i=0,o=0,s=0;i<n;){var a=t.charCodeAt(i++)-32;if(a<0||a>=r.length)break;if(s=85*s+r[a],i%5==0){for(var c=16777216;c>=1;)e[o++]=Math.trunc(s/c%256),c/=256;s=0}}return e},s=function(t,e){var n={ibits:8,obits:8,obigendian:!0};for(var r in e)void 0!==n[r]&&(n[r]=e[r]);for(var i,o,s,a=[],c=0,u=0,l=0,h=t.length;0===u&&(o=t.charCodeAt(c++)),i=o>>n.ibits-(u+8)&255,u=(u+8)%n.ibits,n.obigendian?0===l?s=i<<n.obits-8:s|=i<<n.obits-8-l:0===l?s=i:s|=i<<l,!(0==(l=(l+8)%n.obits)&&(a.push(s),c>=h)););return a},a=function(t,e){var n={ibits:32,ibigendian:!0};for(var r in e)void 0!==n[r]&&(n[r]=e[r]);var i=\"\",o=4294967295;n.ibits<32&&(o=(1<<n.ibits)-1);for(var s=t.length,a=0;a<s;a++)for(var c=t[a]&o,u=0;u<n.ibits;u+=8)n.ibigendian?i+=String.fromCharCode(c>>n.ibits-8-u&255):i+=String.fromCharCode(c>>u&255);return i},c=8,u=8,l=256,h=function(t,e,n,r,i,o,s,a){return[a,s,o,i,r,n,e,t]},d=function(){return h(0,0,0,0,0,0,0,0)},p=function(t){return t.slice(0)},f=function(t){for(var e=d(),n=0;n<c;n++)e[n]=Math.floor(t%l),t/=l;return e},v=function(t){for(var e=0,n=c-1;n>=0;n--)e*=l,e+=t[n];return Math.floor(e)},E=function(t,e){for(var n=0,r=0;r<c;r++)n+=t[r]+e[r],t[r]=Math.floor(n%l),n=Math.floor(n/l);return n},g=function(t,e){for(var n=0,r=0;r<c;r++)n+=t[r]*e,t[r]=Math.floor(n%l),n=Math.floor(n/l);return n},_=function(t,e){var n,r,i,o=new Array(c+c);for(n=0;n<c+c;n++)o[n]=0;for(n=0;n<c;n++){for(i=0,r=0;r<c;r++)i+=t[n]*e[r]+o[n+r],o[n+r]=i%l,i/=l;for(;r<c+c-n;r++)i+=o[n+r],o[n+r]=i%l,i/=l}for(n=0;n<c;n++)t[n]=o[n];return o.slice(c,c)},m=function(t,e){for(var n=0;n<c;n++)t[n]&=e[n];return t},b=function(t,e){for(var n=0;n<c;n++)t[n]|=e[n];return t},y=function(t,e){var n=d();if(e%u!=0)throw new Error(\"ui64_rorn: only bit rotations supported with a multiple of digit bits\");for(var r=Math.floor(e/u),i=0;i<r;i++){for(var o=c-1-1;o>=0;o--)n[o+1]=n[o];for(n[0]=t[0],o=0;o<c-1;o++)t[o]=t[o+1];t[o]=0}return v(n)},O=function(t,e){if(e>c*u)throw new Error(\"ui64_ror: invalid number of bits to shift\");var n,r=new Array(c+c);for(n=0;n<c;n++)r[n+c]=t[n],r[n]=0;var i=Math.floor(e/u),o=e%u;for(n=i;n<c+c-1;n++)r[n-i]=(r[n]>>>o|r[n+1]<<u-o)&(1<<u)-1;for(r[c+c-1-i]=r[c+c-1]>>>o&(1<<u)-1,n=c+c-1-i+1;n<c+c;n++)r[n]=0;for(n=0;n<c;n++)t[n]=r[n+c];return r.slice(0,c)},w=function(t,e){if(e>c*u)throw new Error(\"ui64_rol: invalid number of bits to shift\");var n,r=new Array(c+c);for(n=0;n<c;n++)r[n+c]=0,r[n]=t[n];var i=Math.floor(e/u),o=e%u;for(n=c-1-i;n>0;n--)r[n+i]=(r[n]<<o|r[n-1]>>>u-o)&(1<<u)-1;for(r[0+i]=r[0]<<o&(1<<u)-1,n=0+i-1;n>=0;n--)r[n]=0;for(n=0;n<c;n++)t[n]=r[n];return r.slice(c,c)},N=function(t,e){for(var n=0;n<c;n++)t[n]^=e[n]},C=function(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n},T=function(t,e){return t<<e&4294967295|t>>>32-e&4294967295},S=function(t,e){function n(t,e,n,r){return t<20?e&n|~e&r:t<40?e^n^r:t<60?e&n|e&r|n&r:e^n^r}function r(t){return t<20?1518500249:t<40?1859775393:t<60?-1894007588:-899497514}t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var i=Array(80),o=1732584193,s=-271733879,a=-1732584194,c=271733878,u=-1009589776,l=0;l<t.length;l+=16){for(var h=o,d=s,p=a,f=c,v=u,E=0;E<80;E++){i[E]=E<16?t[l+E]:T(i[E-3]^i[E-8]^i[E-14]^i[E-16],1);var g=C(C(T(o,5),n(E,s,a,c)),C(C(u,i[E]),r(E)));u=c,c=a,a=T(s,30),s=o,o=g}o=C(o,h),s=C(s,d),a=C(a,p),c=C(c,f),u=C(u,v)}return[o,s,a,c,u]},A=function(t){return a(S(s(t,{ibits:8,obits:32,obigendian:!0}),8*t.length),{ibits:32,ibigendian:!0})},I=function(t,e){function n(t,e,n,r,i,o){return C(T(C(C(e,t),C(r,o)),i),n)}function r(t,e,r,i,o,s,a){return n(e&r|~e&i,t,e,o,s,a)}function i(t,e,r,i,o,s,a){return n(e&i|r&~i,t,e,o,s,a)}function o(t,e,r,i,o,s,a){return n(e^r^i,t,e,o,s,a)}function s(t,e,r,i,o,s,a){return n(r^(e|~i),t,e,o,s,a)}t[e>>5]|=128<<e%32,t[14+(e+64>>>9<<4)]=e;for(var a=1732584193,c=-271733879,u=-1732584194,l=271733878,h=0;h<t.length;h+=16){var d=a,p=c,f=u,v=l;a=r(a,c,u,l,t[h+0],7,-680876936),l=r(l,a,c,u,t[h+1],12,-389564586),u=r(u,l,a,c,t[h+2],17,606105819),c=r(c,u,l,a,t[h+3],22,-1044525330),a=r(a,c,u,l,t[h+4],7,-176418897),l=r(l,a,c,u,t[h+5],12,1200080426),u=r(u,l,a,c,t[h+6],17,-1473231341),c=r(c,u,l,a,t[h+7],22,-45705983),a=r(a,c,u,l,t[h+8],7,1770035416),l=r(l,a,c,u,t[h+9],12,-1958414417),u=r(u,l,a,c,t[h+10],17,-42063),c=r(c,u,l,a,t[h+11],22,-1990404162),a=r(a,c,u,l,t[h+12],7,1804603682),l=r(l,a,c,u,t[h+13],12,-40341101),u=r(u,l,a,c,t[h+14],17,-1502002290),a=i(a,c=r(c,u,l,a,t[h+15],22,1236535329),u,l,t[h+1],5,-165796510),l=i(l,a,c,u,t[h+6],9,-1069501632),u=i(u,l,a,c,t[h+11],14,643717713),c=i(c,u,l,a,t[h+0],20,-373897302),a=i(a,c,u,l,t[h+5],5,-701558691),l=i(l,a,c,u,t[h+10],9,38016083),u=i(u,l,a,c,t[h+15],14,-660478335),c=i(c,u,l,a,t[h+4],20,-405537848),a=i(a,c,u,l,t[h+9],5,568446438),l=i(l,a,c,u,t[h+14],9,-1019803690),u=i(u,l,a,c,t[h+3],14,-187363961),c=i(c,u,l,a,t[h+8],20,1163531501),a=i(a,c,u,l,t[h+13],5,-1444681467),l=i(l,a,c,u,t[h+2],9,-51403784),u=i(u,l,a,c,t[h+7],14,1735328473),a=o(a,c=i(c,u,l,a,t[h+12],20,-1926607734),u,l,t[h+5],4,-378558),l=o(l,a,c,u,t[h+8],11,-2022574463),u=o(u,l,a,c,t[h+11],16,1839030562),c=o(c,u,l,a,t[h+14],23,-35309556),a=o(a,c,u,l,t[h+1],4,-1530992060),l=o(l,a,c,u,t[h+4],11,1272893353),u=o(u,l,a,c,t[h+7],16,-155497632),c=o(c,u,l,a,t[h+10],23,-1094730640),a=o(a,c,u,l,t[h+13],4,681279174),l=o(l,a,c,u,t[h+0],11,-358537222),u=o(u,l,a,c,t[h+3],16,-722521979),c=o(c,u,l,a,t[h+6],23,76029189),a=o(a,c,u,l,t[h+9],4,-640364487),l=o(l,a,c,u,t[h+12],11,-421815835),u=o(u,l,a,c,t[h+15],16,530742520),a=s(a,c=o(c,u,l,a,t[h+2],23,-995338651),u,l,t[h+0],6,-198630844),l=s(l,a,c,u,t[h+7],10,1126891415),u=s(u,l,a,c,t[h+14],15,-1416354905),c=s(c,u,l,a,t[h+5],21,-57434055),a=s(a,c,u,l,t[h+12],6,1700485571),l=s(l,a,c,u,t[h+3],10,-1894986606),u=s(u,l,a,c,t[h+10],15,-1051523),c=s(c,u,l,a,t[h+1],21,-2054922799),a=s(a,c,u,l,t[h+8],6,1873313359),l=s(l,a,c,u,t[h+15],10,-30611744),u=s(u,l,a,c,t[h+6],15,-1560198380),c=s(c,u,l,a,t[h+13],21,1309151649),a=s(a,c,u,l,t[h+4],6,-145523070),l=s(l,a,c,u,t[h+11],10,-1120210379),u=s(u,l,a,c,t[h+2],15,718787259),c=s(c,u,l,a,t[h+9],21,-343485551),a=C(a,d),c=C(c,p),u=C(u,f),l=C(l,v)}return[a,c,u,l]},R=function(t){return a(I(s(t,{ibits:8,obits:32,obigendian:!1}),8*t.length),{ibits:32,ibigendian:!1})},D=function(t){this.mul=h(88,81,244,45,76,149,127,45),this.inc=h(20,5,123,126,247,103,129,79),this.mask=h(0,0,0,0,255,255,255,255),this.state=p(this.inc),this.next(),m(this.state,this.mask),t=f(void 0!==t?t>>>0:4294967295*Math.random()>>>0),b(this.state,t),this.next()};D.prototype.next=function(){var t=p(this.state);_(this.state,this.mul),E(this.state,this.inc);var e=p(t);O(e,18),N(e,t),O(e,27);var n=p(t);O(n,59),m(e,this.mask);var r=v(n),i=p(e);return w(i,32-r),O(e,r),N(e,i),v(e)};var H=new D,L=function(t,e){for(var n=[],r=0;r<t;r++)n[r]=H.next()%e;return n},P=0,U=0,k=function(){if(1===arguments.length&&\"string\"==typeof arguments[0])this.parse.apply(this,arguments);else if(arguments.length>=1&&\"number\"==typeof arguments[0])this.make.apply(this,arguments);else{if(arguments.length>=1)throw new Error(\"UUID: constructor: invalid arguments\");for(var t=0;t<16;t++)this[t]=0}};return\"undefined\"!=typeof Uint8Array?k.prototype=new Uint8Array(16):Buffer?k.prototype=Buffer.alloc(16):k.prototype=new Array(16),k.prototype.constructor=k,k.prototype.make=function(t){var e,n=this;if(1===t){var r=(new Date).getTime();r!==P?U=0:U++,P=r;var i,o=f(r);g(o,1e4),E(o,h(1,178,29,210,19,129,64,0)),U>0&&E(o,f(U)),i=y(o,8),n[3]=255&i,i=y(o,8),n[2]=255&i,i=y(o,8),n[1]=255&i,i=y(o,8),n[0]=255&i,i=y(o,8),n[5]=255&i,i=y(o,8),n[4]=255&i,i=y(o,8),n[7]=255&i,i=y(o,8),n[6]=15&i;var s=L(2,255);n[8]=s[0],n[9]=s[1];var a=L(6,255);for(a[0]|=1,a[0]|=2,e=0;e<6;e++)n[10+e]=a[e]}else if(4===t){var c=L(16,255);for(e=0;e<16;e++)this[e]=c[e]}else{if(3!==t&&5!==t)throw new Error(\"UUID: make: invalid version\");var u=\"\",l=\"object\"==typeof arguments[1]&&arguments[1]instanceof k?arguments[1]:(new k).parse(arguments[1]);for(e=0;e<16;e++)u+=String.fromCharCode(l[e]);u+=arguments[2];var d=3===t?R(u):A(u);for(e=0;e<16;e++)n[e]=d.charCodeAt(e)}return n[6]&=15,n[6]|=t<<4,n[8]&=63,n[8]|=128,n},k.prototype.format=function(e){var n,r;return\"z85\"===e?n=i(this,16):\"b16\"===e?(r=Array(32),t(this,0,15,!0,r,0),n=r.join(\"\")):void 0!==e&&\"std\"!==e||(r=new Array(36),t(this,0,3,!1,r,0),r[8]=\"-\",t(this,4,5,!1,r,9),r[13]=\"-\",t(this,6,7,!1,r,14),r[18]=\"-\",t(this,8,9,!1,r,19),r[23]=\"-\",t(this,10,15,!1,r,24),n=r.join(\"\")),n},k.prototype.toString=function(t){return this.format(t)},k.prototype.toJSON=function(){return this.format(\"std\")},k.prototype.parse=function(t,n){if(\"string\"!=typeof t)throw new Error(\"UUID: parse: invalid argument (type string expected)\");if(\"z85\"===n)o(t,this);else if(\"b16\"===n)e(t,0,35,this,0);else if(void 0===n||\"std\"===n){var r={nil:\"00000000-0000-0000-0000-000000000000\",\"ns:DNS\":\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\",\"ns:URL\":\"6ba7b811-9dad-11d1-80b4-00c04fd430c8\",\"ns:OID\":\"6ba7b812-9dad-11d1-80b4-00c04fd430c8\",\"ns:X500\":\"6ba7b814-9dad-11d1-80b4-00c04fd430c8\"};if(void 0!==r[t])t=r[t];else if(!t.match(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/))throw new Error('UUID: parse: invalid string representation (expected \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")');e(t,0,7,this,0),e(t,9,12,this,4),e(t,14,17,this,6),e(t,19,22,this,8),e(t,24,35,this,10)}return this},k.prototype.export=function(){for(var t=Array(16),e=0;e<16;e++)t[e]=this[e];return t},k.prototype.import=function(t){if(!(\"object\"==typeof t&&t instanceof Array))throw new Error(\"UUID: import: invalid argument (type Array expected)\");if(16!==t.length)throw new Error(\"UUID: import: invalid argument (Array of length 16 expected)\");for(var e=0;e<16;e++){if(\"number\"!=typeof t[e])throw new Error(\"UUID: import: invalid array element #\"+e+\" (type Number expected)\");if(!isFinite(t[e])||Math.floor(t[e])!==t[e])throw new Error(\"UUID: import: invalid array element #\"+e+\" (Number with integer value expected)\");if(!(t[e]>=0&&t[e]<=255))throw new Error(\"UUID: import: invalid array element #\"+e+\" (Number with integer value in range 0...255 expected)\");this[e]=t[e]}return this},k.prototype.compare=function(t){if(\"object\"!=typeof t)throw new Error(\"UUID: compare: invalid argument (type UUID expected)\");if(!(t instanceof k))throw new Error(\"UUID: compare: invalid argument (type UUID expected)\");for(var e=0;e<16;e++){if(this[e]<t[e])return-1;if(this[e]>t[e])return 1}return 0},k.prototype.equal=function(t){return 0===this.compare(t)},k.prototype.fold=function(t){if(void 0===t)throw new Error(\"UUID: fold: invalid argument (number of fold operations expected)\");if(t<1||t>4)throw new Error(\"UUID: fold: invalid argument (1-4 fold operations expected)\");for(var e=16/Math.pow(2,t),n=new Array(e),r=0;r<e;r++){for(var i=0,o=0;r+o<16;o+=e)i^=this[r+o];n[r]=i}return n},k.PCG=D,k}(),t.exports.default=t.exports}));class Ze{constructor(t){this.transport=t,this.gnpLockAcquired=t.consoleAppEvent.pipe(Jt((t=>\"response-gnp-lock\"===t.event)),Lt((t=>t.token)),fe(1)),this.gnpLockAcquired.subscribe()}acquireGnpLock(t){const e=new Xe(4).toString(),n={action:\"request-gnp-lock\",id:t,token:e},r=this.gnpLockAcquired.pipe(ue((t=>t===e)));return this.transport.writeAction(n),r}releaseGnpLock(t,e){const n={action:\"release-gnp-lock\",id:t,token:e};this.transport.writeAction(n)}}!function(t){t[t.INPUT=0]=\"INPUT\",t[t.OUTPUT=1]=\"OUTPUT\",t[t.FEATURE=2]=\"FEATURE\"}(Qe||(Qe={})),function(t){t.ABSOLUTE=\"absolute\",t.RELATIVE=\"relative\"}(Je||(Je={}));class tn{constructor(t){this.id=t}equals(t){return this.id===t.id}startsWith(t){return this.id.startsWith(t.id)}toString(){return this.id}}function en(t,e,n){const r=t.toString(16).padStart(4,\"0\"),i=e.toString(16).padStart(4,\"0\");return new tn(`${r}:${i}:${n}`)}class nn{constructor(t,e,n,r){this.id=t,this.usagePage=e,this.usage=n,this.value=r}isArray(){return Array.isArray(this.value)}static deserialize(t,e){return new nn(new tn(t),e.usagePage,e.usage,e.value)}}class rn{constructor(t,e,n){this.descriptor=e,this.transport=n,this.transportId=t.transportId,this.input=n.consoleAppEvent.pipe(Jt((t=>t.id===this.transportId)),rn.inputReportsFilter)}output(t,e,n){const r={action:\"hid-output\",id:this.transportId,usagePage:t,usage:e,value:n};this.transport.writeAction(r)}getFeatureReport(t,e){const n=new Xe(4).toString(),r={action:\"request-hid-feature\",id:this.transportId,token:n,usagePage:t,usage:e};return this.transport.writeAction(r),this.transport.consoleAppEvent.pipe(ue((t=>\"response-hid-feature\"===t.event&&t.token===n)),Lt((t=>t.value)))}setFeatureReport(t,e,n){const r={action:\"set-hid-feature\",id:this.transportId,usagePage:t,usage:e,value:n};this.transport.writeAction(r)}findDescriptor(t,e,n){return this.descriptor.find((r=>r.usagePage===t&&r.usage===e&&r.reportType===n))}}function on(t){return e=>e.pipe(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=it(t);return M((function(e,r){for(var i=t.length,a=new Array(i),c=t.map((function(){return!1})),u=!1,l=function(e){Et(t[e]).subscribe(B(r,(function(t){a[e]=t,u||c[e]||(c[e]=!0,(u=c.every(k))&&(c=null))}),w))},h=0;h<i;h++)l(h);e.subscribe(B(r,(function(t){if(u){var e=s([t],o(a));r.next(n?n.apply(void 0,s([],o(e))):e)}})))}))}(t),Jt((([t,e])=>e)),Lt((([t,e])=>t)))}rn.inputReportsFilter=t=>t.pipe(Jt((t=>\"hid-input\"===t.event)),Lt((t=>nn.deserialize(t.id,t))));class sn{static typeFromAttr(t){return t>>6}static packetLengthFromAttr(t){return t&this.lengthMask}static deserialize(t){const e=t[0],n=t[1],r=t[2],i=this.typeFromAttr(t[3]),o=t[4],s=t[5],a=this.packetLengthFromAttr(t[3]),c=t.slice(6,a);return new Me(e,n,i,o,s,c,r)}}sn.lengthMask=63;class an{constructor(){this.data=[]}hasHeader(){return this.data.length>=an.gnpPacketHeaderLength}expectedPacketLength(){if(!this.hasHeader())throw new be(\"Unable to get expected packet length without a full header\",Kt.UNEXPECTED_ERROR);return sn.packetLengthFromAttr(this.data[3])}appendData(t){this.hasHeader()&&this.expectedPacketLength()>an.gnpPacketMaxLength&&(this.data=[]),this.data=this.data.concat(t)}hasFullPacket(){if(!this.hasHeader())return!1;const t=this.expectedPacketLength();return this.data.length>=t}getPacketAndReset(){if(!this.hasFullPacket())throw new be(\"Trying to get packet but buffer is not complete\",Kt.UNEXPECTED_ERROR);const t=sn.deserialize(Uint8Array.from(this.data));return this.data=[],t}}an.gnpPacketHeaderLength=6,an.gnpPacketMaxLength=63;class cn{static attrFromTypeAndPayloadLength(t,e){return(t<<6)+(e+6)}static serialize(t){const e=new Uint8Array(6);e[0]=t.destination,e[1]=t.source,e[2]=t.sequenceNumber,e[3]=this.attrFromTypeAndPayloadLength(t.type,t.payload.length),e[4]=t.command,e[5]=t.subCommand;const n=new Uint8Array(e.length+t.payload.length);return n.set(e),n.set(t.payload,e.length),n}}const un=()=>{};function ln(t){return me((e=>t()),(e=>t()),(()=>un))}const hn=()=>{return t=t=>t.command===ke.NACK,e=t=>{const e=t.subCommand in Ge?Ge[t.subCommand]:t.subCommand;return new be(`Got NACK response. Reason: ${e}`,Kt.DEVICE_ERROR)},n=>n.pipe(Lt((n=>t(n)?Ct(e(n)):Nt(n))),ge());var t,e},dn=t=>ue((e=>e.type===Ue.REPLY&&e.sequenceNumber===t.sequenceNumber&&e.destination===t.source&&e.source===t.destination));class pn{constructor(t,e,n,r,i=0){this.hidChannel=t,this.gnpLock=e,this.transportId=n,this.primaryAddress=r,this.lockQueue=[],this.packets=t.input.pipe(pn.inputFilter),this.events=this.packets.pipe(pn.eventsFilter),this.nextSequenceNumber=i}static get inputFilter(){return t=>{const e=t.pipe(Jt((t=>t.usagePage===He.GN_PROTOCOL&&t.usage===Le.DATA&&t.isArray()))),n=new an;return e.pipe(Pt((t=>{const e=t.value;if(n.appendData(e),n.hasFullPacket()){return Nt(n.getPacketAndReset())}return qt})),de())}}static supportsGnpOverHid(t){return void 0!==t.findDescriptor(He.GN_PROTOCOL,Le.DATA,Qe.OUTPUT)}getNextSequenceNumber(){const t=this.nextSequenceNumber;return this.nextSequenceNumber=(this.nextSequenceNumber+1)%255,t}doWithGnpLockHeld(t){this.lockQueue.push(t),this.lockQueue.length>1||this.processLockQueue()}processLockQueue(){this.gnpLock.acquireGnpLock(this.transportId).subscribe((t=>{(0,this.lockQueue[0])((t=>{var e;const n=null===(e=this.hidChannel.findDescriptor(He.GN_PROTOCOL,Le.DATA,Qe.OUTPUT))||void 0===e?void 0:e.reportSize;if(!n)throw new be(\"Cannot send GNP packets to this device.\",Kt.DEVICE_ERROR);const r=cn.serialize(t);let i=0;do{const t=Math.min(r.length-i,n),e=r.subarray(i,i+t);i+=e.length,this.hidChannel.output(He.GN_PROTOCOL,Le.DATA,Array.from(e))}while(i<r.length)}),this.packets,(()=>{this.gnpLock.releaseGnpLock(this.transportId,t),this.lockQueue.splice(0,1),this.lockQueue.length>0&&this.processLockQueue()}))}))}sendEvent(t,e,n=this.primaryAddress){const r=new Me(n,Pe.PC_ADDR,Ue.EVENT,t.command,t.subCommand,t.serialize(e),0);this.doWithGnpLockHeld(((t,e,n)=>{t(r),n()}))}read(t,e=this.primaryAddress,n=2500){const r=new Fe(t,(t=>new Uint8Array));return this.readWithParams(r,null,e,n)}readWithParams(t,e,n=this.primaryAddress,r=2500){const i=new Me(n,Pe.PC_ADDR,Ue.READ,t.command,t.subCommand,t.serialize(e),this.getNextSequenceNumber()),o=new Y;return this.doWithGnpLockHeld(((e,n,s)=>{n.pipe(dn(i),hn(),ue((t=>t.command===i.command&&t.subCommand===i.subCommand)),Dt(r),ln(s),Lt((e=>t.deserialize(e)))).subscribe(o),e(i)})),o}write(t,e,n=this.primaryAddress,r=2500){const i=new Me(n,Pe.PC_ADDR,Ue.WRITE,t.command,t.subCommand,t.serialize(e),this.getNextSequenceNumber()),o=new Y;return this.doWithGnpLockHeld(((t,e,n)=>{e.pipe(dn(i),hn(),ue((t=>t.command===ke.ACK)),Dt(r),ln(n),Lt((()=>!0))).subscribe(o),t(i)})),o}}pn.eventsFilter=t=>t.pipe(Jt((t=>t.type===Ue.EVENT)));class fn{constructor(t,e){this.parentGnpChannel=t,this.primaryAddress=e,this.events=t.events.pipe(Jt((t=>t.source===this.primaryAddress)))}sendEvent(t,e,n){this.parentGnpChannel.sendEvent(t,e,this.primaryAddress)}read(t,e,n){return this.parentGnpChannel.read(t,this.primaryAddress,n)}readWithParams(t,e,n,r){return this.parentGnpChannel.readWithParams(t,e,this.primaryAddress,r)}write(t,e,n,r){return this.parentGnpChannel.write(t,e,this.primaryAddress,r)}}function vn(t,e,n,r){if(!pn.supportsGnpOverHid(t))return Ct((()=>new be(\"Device does not support GNP commands.\",Kt.DEVICE_ERROR)));const i=Nt(Pe.HS_BT_USB_ADDR,Pe.BASE_ADDR,Pe.CRADLE_ADDR,Pe.HS1_ADDR,Pe.HS_CRADLE_ADDR).pipe(Lt(((r,i)=>Gt((()=>{const o=new pn(t,new Ze(e),n,r,i);return o.read(qe,r,500).pipe(Lt((t=>o)),ee((()=>et)))})))),kt(),ie(1),ae((()=>new be(\"GNP probe failed.\",Kt.DEVICE_ERROR))));return Xt(r.pipe(Pt((t=>Ct((()=>new be(\"Device was suddenly disconnected.\",Kt.DEVICE_ERROR)))))),i).pipe(de())}function En(t,e){return new fn(t,e)}class gn{constructor(){this.primaryAddress=Pe.BASE_ADDR,this.events=qt}subscribeToEvent(t,e){return Ct((()=>new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)))}sendEvent(t,e,n){throw new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)}read(t,e,n){return Ct((()=>new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)))}readWithParams(t,e,n,r){return Ct((()=>new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)))}write(t,e,n,r){return Ct((()=>new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)))}}class _n{constructor(t){this.transportId=t,this.isChild=!1}equals(t){return this.isChild===t.isChild&&this.transportId===t.transportId}toString(){return this.transportId}}class mn{constructor(t,e){this.parentId=t,this.gnpAddress=e,this.isChild=!0,this.transportId=t.transportId}equals(t){if(this.isChild===t.isChild){const e=t;return this.parentId.equals(e.parentId)&&this.gnpAddress===e.gnpAddress}return!1}toString(){return`0x${t=this.gnpAddress,t.toString(16).padStart(2,\"0\").toUpperCase()}@${this.transportId}`;var t}}var bn,yn,On;!function(t){t.NO_TRACKING=\"no-tracking\",t.TRACK_ERRORS=\"track-errors\",t.TRACK_USAGE=\"track-usage\",t.TRACK_ALL=\"track-all\"}(bn||(bn={})),function(t){t[t.BLUETOOTH=0]=\"BLUETOOTH\",t[t.INDIRECT=1]=\"INDIRECT\",t[t.USB=2]=\"USB\"}(yn||(yn={})),function(t){t[t.BASE=0]=\"BASE\",t[t.HEADSET=1]=\"HEADSET\",t[t.DESKSTAND=2]=\"DESKSTAND\",t[t.OTHER=3]=\"OTHER\",t[t.DONGLE=4]=\"DONGLE\",t[t.PC=5]=\"PC\",t[t.EHS=6]=\"EHS\",t[t.USB=7]=\"USB\",t[t.SPEAKER_PHONE=8]=\"SPEAKER_PHONE\",t[t.INDICATOR=9]=\"INDICATOR\",t[t.MOBILE=10]=\"MOBILE\",t[t.NONE=11]=\"NONE\",t[t.LOCAL=12]=\"LOCAL\",t[t.DISPLAY=13]=\"DISPLAY\",t[t.HS_CRADLE=14]=\"HS_CRADLE\",t[t.HS_CRADLE2=15]=\"HS_CRADLE2\",t[t.MOBILE_IAP=16]=\"MOBILE_IAP\",t[t.CRADLE=17]=\"CRADLE\",t[t.VIDEO=18]=\"VIDEO\",t[t.NOT_GN=252]=\"NOT_GN\",t[t.ANY_GN=253]=\"ANY_GN\",t[t.NOT_INIT=254]=\"NOT_INIT\",t[t.ANY=255]=\"ANY\"}(On||(On={}));class wn{constructor(t,e,n,r,i,o,s,a,c,u,l){this.id=t,this.type=e,this.hidChannel=n,this.events=r,this.primaryAddress=i,this.sendEvent=o,this.read=s,this.readWithParams=a,this.write=c,this.onDisconnect=u,this.parentConnectionId=l,this.onDisconnect.subscribe({error:w})}static createConnection(t,e,n,r,i,o){const s=r.sendEvent.bind(r),a=r.read.bind(r),c=r.readWithParams.bind(r),u=r.write.bind(r);return new wn(t,e,n,r.events,r.primaryAddress,s,a,c,u,i,o)}}const Nn=(t=3,e=500)=>n=>n.pipe(Pt(((n,r)=>{const i=r+1;return i>t?Ct((()=>n)):Ft(i*i*e)})));function Cn(t,e,n,r=1e3,i=3,o=100){return Gt((()=>t.read(e,n,r))).pipe(he(Nn(i,o)))}function Tn(t,e,n){const{deviceType:r,address:i}=n;return{transportId:e.transportId,vid:e.vid,pid:Cn(t,Ve,i),name:Cn(t,Ye,i),serialNumber:Cn(t,$e,i),capabilities:e.capabilities,deviceType:r,connectionGnpAddress:i}}class Sn{constructor(t,e,n=Tn,r=wn.createConnection,i=En){this.parentConnection=e,this.connectionCreator=r,this.createChildGnpChannel=i;const o=e.events.pipe(Jt((t=>t.command===ke.DEVICE&&t.subCommand===xe.ATTACH_EVENT)),Lt((t=>({deviceType:t.payload[0],address:t.payload[1]})))).pipe(Lt(n.bind(null,e,t)));this.connectionEvents=o.pipe(Lt((t=>{const n=Xt(e.events.pipe(ue((e=>e.command===ke.DEVICE&&e.subCommand===xe.DETACH_EVENT&&e.payload[1]===t.connectionGnpAddress)),Lt(w)),e.onDisconnect);return{attach:t,detach:n}})),Pt((t=>te(Nt(t.attach),this.createConnection(t.attach,t.detach)))),Lt((([t,e])=>({event:t,connection:e}))),_e(e.onDisconnect)),e.sendEvent(Be,[])}createConnection(t,e){const n=t.connectionGnpAddress,r=this.createChildGnpChannel(this.parentConnection,n),i=new mn(this.parentConnection.id,n);return Nt(this.connectionCreator(i,yn.INDIRECT,this.parentConnection.hidChannel,r,e,this.parentConnection.id))}}const An={command:ke.IDENT,subCommand:xe.TYPE,deserialize:t=>{const{payload:e}=t,n=e[0];if(n<1||n>=e.length)throw new be(\"Cannot get device type.\",Kt.DEVICE_ERROR);return e[1]}};function In(t,e,n,r=Bt.ERROR,i=Wt.JS_LIB){const o=`${t} ${function(t){if(t instanceof be){const e=t;return`JabraError: ${e.message} (type: ${e.type})`}if(t instanceof Error){const e=t;return`Error: ${e.message} (name: ${e.name})`}return`Unknown error: ${t}`}(e)}`;ye(o,n,r,i)}function Rn(t){return new Sn(t.event,t.connection).connectionEvents}class Dn{constructor(t,e,n=((t,e,n)=>new rn(t,e,n)),r=vn,i=Rn,o=wn.createConnection){this.transport=t,this.logger=e,this.createHidChannel=n,this.createRootGnpChannel=r,this.connectionCreator=o;const s=this.transport.consoleAppEvent.pipe(Jt((t=>\"attach\"===t.event)),Lt(Dn.createAttachEvent),ee(((t,e)=>(In(\"\",t,this.logger),e)))).pipe(Lt((t=>{const e=this.transport.consoleAppEvent.pipe(Jt((t=>\"detach\"===t.event)),ue((e=>Dn.getTransportId(e)===t.transportId)),Lt(w),fe());return e.subscribe(),{attach:t,detach:e}})),Pt((t=>this.createConnection(t.attach,t.detach))),de()),a=s.pipe(Jt((t=>t.event.deviceType===On.DONGLE)),Jt((t=>pn.supportsGnpOverHid(t.connection.hidChannel))),Pt((t=>i(t))));this.connectionEvents=Mt(s,a).pipe(de())}static convertToReportType(t){switch(t){case\"input\":return Qe.INPUT;case\"output\":return Qe.OUTPUT;case\"feature\":return Qe.FEATURE;default:throw new be(`${t} is not a valid ReportType`,Kt.UNEXPECTED_ERROR)}}static convertToValueType(t){switch(t){case\"absolute\":return Je.ABSOLUTE;case\"relative\":return Je.RELATIVE;default:throw new be(`${t} Not a valid ValueType`,Kt.UNEXPECTED_ERROR)}}static createDescriptor(t){return t.map((t=>({reportType:Dn.convertToReportType(t.reportType),usagePage:t.usagePage,usage:t.usage,valueType:Dn.convertToValueType(t.valueType),reportSize:t.reportSize})))}static getMandatoryField(t,e){const n=t[e];if(void 0===n)throw new be(`JSON event lacks required field \"${e}: ${JSON.stringify(t)}`,Kt.UNEXPECTED_ERROR);return n}static getTransportId(t){return Dn.getMandatoryField(t,\"id\")}static createAttachEvent(t){return{transportId:Dn.getTransportId(t),vid:Dn.getMandatoryField(t,\"vid\"),pid:Nt(Dn.getMandatoryField(t,\"pid\")),name:Nt(Dn.getMandatoryField(t,\"name\")),serialNumber:Nt(Dn.getMandatoryField(t,\"serialNumber\")),capabilities:Dn.createDescriptor(Dn.getMandatoryField(t,\"descriptor\"))}}createConnection(t,e,n=3,r=100){const{capabilities:i,transportId:o}=t,s=new _n(o),a=this.createHidChannel(s,i,this.transport),c=this.createRootGnpChannel(a,this.transport,o,e).pipe(ee(((t,e)=>(t.type&&t.type===Kt.DEVICE_ERROR&&this.transport.context===Vt.WEB_HID&&ye(\"Child devices are not yet supported when using WebHID.\",this.logger,Bt.WARNING,Wt.JS_LIB),Nt(new gn)))),de()),u=c.pipe(Pt((t=>t.read(An))),he(Nn(n,r)),ee((t=>Nt(On.ANY))));return te(c,u).pipe(_e(e),Lt((([n,r])=>({event:Object.assign(Object.assign({},t),{deviceType:r,connectionGnpAddress:n.primaryAddress}),connection:this.connectionCreator(s,yn.USB,a,n,e)}))))}}var Hn,Ln,Pn,Un,kn;class xn{constructor(t,e,n,r,i,o){this.vendorId=t,this.productId=e,this.serialNumber=n,this.name=r,this.type=i,Ln.set(this,void 0),h(this,Ln,new we(o,l(xn,Hn,\"m\",Un)),\"f\"),this.connectionAdded=l(this,Ln,\"f\").itemAdded,this.connectionRemoved=l(this,Ln,\"f\").itemRemoved,this.connectionList=l(this,Ln,\"f\").itemList,this.onDisconnect=l(this,Ln,\"f\").itemList.pipe(ve(1),ue((t=>0===t.length)),Lt(w),de())}get id(){return en(this.vendorId,this.productId,this.serialNumber)}get currentConnections(){return l(this,Ln,\"f\").getValue()}get browserLabel(){return`${this.vendorId.toString(16).padStart(4,\"0\")}:${this.productId.toString(16).padStart(4,\"0\")}`}}Hn=xn,Ln=new WeakMap,Un=function(t,e){return l(xn,Hn,\"f\",Pn).indexOf(t.type)-l(xn,Hn,\"f\",Pn).indexOf(e.type)},Pn={value:[yn.USB,yn.INDIRECT,yn.BLUETOOTH]};class Gn{constructor(t){this.deviceObservables=new we(t)}static exceptionToUndefined(t){try{return t()}catch(t){if(t instanceof be)return;throw t}}connectionExists(t){return void 0!==Gn.exceptionToUndefined((()=>this.findConnectionById(t)))}findConnectionById(t){for(const e of this.deviceObservables.getValue())for(const n of e.currentConnections)if(n.id.equals(t))return n;throw new be(`Could not find connection with id ${t.toString()}`,Kt.UNEXPECTED_ERROR)}findDeviceByDeviceId(t){return this.deviceObservables.getValue().find((e=>e.id.startsWith(t)||t.startsWith(e.id)))}}class Fn{constructor(t,e){this.logger=e;const[n,r]=(i=t.pipe(Jt((t=>!this.deviceCollection.connectionExists(t.connection.id))),ne((t=>this.force(t)))),[Jt(o=({event:t,pid:e,serialNumber:n})=>!this.deviceCollection.findDeviceByDeviceId(en(t.event.vid,e,n)),s)(Et(i)),Jt(Qt(o,s))(Et(i))]);var i,o,s;const a=n.pipe(Lt((t=>Fn.createDevice(t,r))));this.deviceCollection=new Gn(a),this.deviceObservables=this.deviceCollection.deviceObservables}force(t){const{name:e,pid:n,serialNumber:r}=t.event,i=t.connection.onDisconnect.pipe((a=Ct((()=>new Error(`Connection with ID ${t.connection.id} disconnected`))),d(c)?ne((function(){return a}),c):ne((function(){return a}))));var a,c;return te(e,n,r).pipe(Lt((([e,n,r])=>({event:t,name:e,pid:n,serialNumber:r}))),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t.length?M((function(e,n){Zt(s([e],o(t)))(n)})):k}(i),ee((t=>(ye(`Failed to retrieve child connection information. Error: ${t}`,this.logger,Bt.WARNING,Wt.JS_LIB),et))))}static createDevice(t,e){const{event:n,pid:r,name:i,serialNumber:o}=t,{vid:s,deviceType:a}=n.event,c=e.pipe(Jt((e=>Fn.isSameDevice(t,e))),Lt((t=>t.event.connection))),u=xt(Nt(n.connection),c);return new xn(s,r,o,i,a,u)}static isSameDevice(t,e){const n=en(t.event.event.vid,t.pid,t.serialNumber),r=en(e.event.event.vid,e.pid,e.serialNumber);return n.startsWith(r)||r.startsWith(n)}static create(t,e){const n=new Dn(t,e);return new Fn(n.connectionEvents)}}function Mn(t){var e,r,i;return n(this,void 0,void 0,(function*(){const n=null==t?void 0:t.logger;ye(\"Jabra SDK JS starting up...\",n,Bt.INFO);const o=new Re(t);o.validateOrganizationKey(),o.validateAppId(),o.validateAppName();const s=null!==(r=null===(e=null==t?void 0:t.internal)||void 0===e?void 0:e.testDeviceTransport)&&void 0!==r?r:yield Se(n,null==t?void 0:t.transport,null===(i=null==t?void 0:t.internal)||void 0===i?void 0:i.recorder);new Ae(s,n);const a=Fn.create(s,n),c=new Ce(a,s,t);return yield s.connect(),c}))}class Bn{constructor(t,e,n,r){this.deviceId=t,this.usagePage=e,this.usage=n,this.value=r}}class Wn{constructor(t,e){this.token=t,this.value=e}}!function(t){t.UsageReport=class{constructor(t,e){this.usage=t,this.value=e}}}(kn||(kn={}));var Kn,Yn,Vn,jn,qn,$n,zn,Qn,Jn,Xn,Zn=ze((function(t){!function(e){var n=function(t,e,n){if(!(t instanceof ArrayBuffer||\"undefined\"!=typeof Buffer&&t instanceof Buffer))throw new Error(\"Must specify a valid ArrayBuffer or Buffer.\");e=e||0,n=n||t.byteLength||t.length,this._view=new Uint8Array(t.buffer||t,e,n),this.bigEndian=!1};n._scratch=new DataView(new ArrayBuffer(8)),Object.defineProperty(n.prototype,\"buffer\",{get:function(){return\"undefined\"!=typeof Buffer?Buffer.from(this._view.buffer):this._view.buffer},enumerable:!0,configurable:!1}),Object.defineProperty(n.prototype,\"byteLength\",{get:function(){return this._view.length},enumerable:!0,configurable:!1}),n.prototype._setBit=function(t,e){e?this._view[t>>3]|=1<<(7&t):this._view[t>>3]&=~(1<<(7&t))},n.prototype.getBits=function(t,e,n){var r=8*this._view.length-t;if(e>r)throw new Error(\"Cannot get \"+e+\" bit(s) from offset \"+t+\", \"+r+\" available\");for(var i=0,o=0;o<e;){var s=e-o,a=7&t,c=this._view[t>>3],u=Math.min(s,8-a);this.bigEndian?(i<<=u,i|=c>>8-u-a&~(255<<u)):i|=(c>>a&~(255<<u))<<o,t+=u,o+=u}return n?(32!==e&&i&1<<e-1&&(i|=-1^(1<<e)-1),i):i>>>0},n.prototype.setBits=function(t,e,n){var r=8*this._view.length-t;if(n>r)throw new Error(\"Cannot set \"+n+\" bit(s) from offset \"+t+\", \"+r+\" available\");for(var i=0;i<n;){var o,s,a,c=n-i,u=7&t,l=t>>3,h=Math.min(c,8-u);if(this.bigEndian){s=e>>n-i-h&(o=~(-1<<h));var d=8-u-h;a=~(o<<d),this._view[l]=this._view[l]&a|s<<d}else s=e&(o=~(255<<h)),e>>=h,a=~(o<<u),this._view[l]=this._view[l]&a|s<<u;t+=h,i+=h}},n.prototype.getBoolean=function(t){return 0!==this.getBits(t,1,!1)},n.prototype.getInt8=function(t){return this.getBits(t,8,!0)},n.prototype.getUint8=function(t){return this.getBits(t,8,!1)},n.prototype.getInt16=function(t){return this.getBits(t,16,!0)},n.prototype.getUint16=function(t){return this.getBits(t,16,!1)},n.prototype.getInt32=function(t){return this.getBits(t,32,!0)},n.prototype.getUint32=function(t){return this.getBits(t,32,!1)},n.prototype.getFloat32=function(t){return n._scratch.setUint32(0,this.getUint32(t)),n._scratch.getFloat32(0)},n.prototype.getFloat64=function(t){return n._scratch.setUint32(0,this.getUint32(t)),n._scratch.setUint32(4,this.getUint32(t+32)),n._scratch.getFloat64(0)},n.prototype.setBoolean=function(t,e){this.setBits(t,e?1:0,1)},n.prototype.setInt8=n.prototype.setUint8=function(t,e){this.setBits(t,e,8)},n.prototype.setInt16=n.prototype.setUint16=function(t,e){this.setBits(t,e,16)},n.prototype.setInt32=n.prototype.setUint32=function(t,e){this.setBits(t,e,32)},n.prototype.setFloat32=function(t,e){n._scratch.setFloat32(0,e),this.setBits(t,n._scratch.getUint32(0),32)},n.prototype.setFloat64=function(t,e){n._scratch.setFloat64(0,e),this.setBits(t,n._scratch.getUint32(0),32),this.setBits(t+32,n._scratch.getUint32(4),32)},n.prototype.getArrayBuffer=function(t,e){for(var n=new Uint8Array(e),r=0;r<e;r++)n[r]=this.getUint8(t+8*r);return n};var r=function(t,e){return function(){if(this._index+e>this._length)throw new Error(\"Trying to read past the end of the stream\");var n=this._view[t](this._index);return this._index+=e,n}},i=function(t,e){return function(n){this._view[t](this._index,n),this._index+=e}};function o(t,e,n){if(0===e)return\"\";var r=0,i=[],o=!0,s=!!e;for(e||(e=Math.floor((t._length-t._index)/8));r<e;){var a=t.readUint8();if(0===a&&(o=!1,!s))break;o&&i.push(a),r++}var c=String.fromCharCode.apply(null,i);if(!n)return c;try{return decodeURIComponent(escape(c))}catch(t){return c}}var s=function(t,e,r){var i=t instanceof ArrayBuffer||\"undefined\"!=typeof Buffer&&t instanceof Buffer;if(!(t instanceof n||i))throw new Error(\"Must specify a valid BitView, ArrayBuffer or Buffer\");this._view=i?new n(t,e,r):t,this._index=0,this._startIndex=0,this._length=8*this._view.byteLength};Object.defineProperty(s.prototype,\"index\",{get:function(){return this._index-this._startIndex},set:function(t){this._index=t+this._startIndex},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,\"length\",{get:function(){return this._length-this._startIndex},set:function(t){this._length=t+this._startIndex},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,\"bitsLeft\",{get:function(){return this._length-this._index},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,\"byteIndex\",{get:function(){return Math.ceil(this._index/8)},set:function(t){this._index=8*t},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,\"buffer\",{get:function(){return this._view.buffer},enumerable:!0,configurable:!1}),Object.defineProperty(s.prototype,\"view\",{get:function(){return this._view},enumerable:!0,configurable:!1}),Object.defineProperty(s.prototype,\"bigEndian\",{get:function(){return this._view.bigEndian},set:function(t){this._view.bigEndian=t},enumerable:!0,configurable:!1}),s.prototype.readBits=function(t,e){var n=this._view.getBits(this._index,t,e);return this._index+=t,n},s.prototype.writeBits=function(t,e){this._view.setBits(this._index,t,e),this._index+=e},s.prototype.readBoolean=r(\"getBoolean\",1),s.prototype.readInt8=r(\"getInt8\",8),s.prototype.readUint8=r(\"getUint8\",8),s.prototype.readInt16=r(\"getInt16\",16),s.prototype.readUint16=r(\"getUint16\",16),s.prototype.readInt32=r(\"getInt32\",32),s.prototype.readUint32=r(\"getUint32\",32),s.prototype.readFloat32=r(\"getFloat32\",32),s.prototype.readFloat64=r(\"getFloat64\",64),s.prototype.writeBoolean=i(\"setBoolean\",1),s.prototype.writeInt8=i(\"setInt8\",8),s.prototype.writeUint8=i(\"setUint8\",8),s.prototype.writeInt16=i(\"setInt16\",16),s.prototype.writeUint16=i(\"setUint16\",16),s.prototype.writeInt32=i(\"setInt32\",32),s.prototype.writeUint32=i(\"setUint32\",32),s.prototype.writeFloat32=i(\"setFloat32\",32),s.prototype.writeFloat64=i(\"setFloat64\",64),s.prototype.readASCIIString=function(t){return function(t,e){return o(t,e,!1)}(this,t)},s.prototype.readUTF8String=function(t){return function(t,e){return o(t,e,!0)}(this,t)},s.prototype.writeASCIIString=function(t,e){!function(t,e,n){for(var r=n||e.length+1,i=0;i<r;i++)t.writeUint8(i<e.length?e.charCodeAt(i):0)}(this,t,e)},s.prototype.writeUTF8String=function(t,e){!function(t,e,n){for(var r=function(t){var e,n,r=[];for(e=0;e<t.length;e++)(n=t.charCodeAt(e))<=127?r.push(n):n<=2047?(r.push(n>>6|192),r.push(63&n|128)):n<=65535?(r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)):(r.push(n>>18|240),r.push(n>>12&63|128),r.push(n>>6&63|128),r.push(63&n|128));return r}(e),i=n||r.length+1,o=0;o<i;o++)t.writeUint8(o<r.length?r[o]:0)}(this,t,e)},s.prototype.readBitStream=function(t){var e=new s(this._view);return e._startIndex=this._index,e._index=this._index,e.length=t,this._index+=t,e},s.prototype.writeBitStream=function(t,e){var n;for(e||(e=t.bitsLeft);e>0;)n=Math.min(e,32),this.writeBits(t.readBits(n),n),e-=n},s.prototype.readArrayBuffer=function(t){var e=this._view.getArrayBuffer(this._index,t);return this._index+=8*t,e},s.prototype.writeArrayBuffer=function(t,e){this.writeBitStream(new s(t),8*e)},t.exports&&(t.exports={BitView:n,BitStream:s})}()}));function tr(){return n(this,void 0,void 0,(function*(){const{hid:t}=window.navigator;if(!t)throw new be(\"WebHID not supported\",Kt.INIT_ERROR);const e=yield t.requestDevice({filters:[{vendorId:Kn.VENDOR_ID}]});return new BroadcastChannel(Kn.PAIRING_CHANNEL).postMessage(null),e}))}!function(t){t[t.VENDOR_ID=2830]=\"VENDOR_ID\",t.PAIRING_CHANNEL=\"jabra-webhid-pairing-channel\"}(Kn||(Kn={})),function(t){t[t.HOOK_SWITCH=32]=\"HOOK_SWITCH\",t[t.GN_PSEUDO_HOOK_SWITCH=65531]=\"GN_PSEUDO_HOOK_SWITCH\",t[t.FLASH=33]=\"FLASH\",t[t.ALT_HOLD=35]=\"ALT_HOLD\",t[t.REDIAL=36]=\"REDIAL\",t[t.ONLINE=42]=\"ONLINE\",t[t.SPEAKER_PHONE=43]=\"SPEAKER_PHONE\",t[t.PHONE_MUTE=47]=\"PHONE_MUTE\",t[t.SEND=49]=\"SEND\",t[t.SPEED_DIAL=80]=\"SPEED_DIAL\",t[t.VOICE_MAIL=112]=\"VOICE_MAIL\",t[t.ANSWER_ON_OFF=116]=\"ANSWER_ON_OFF\",t[t.LINE_BUSY=151]=\"LINE_BUSY\",t[t.RINGER=158]=\"RINGER\",t[t.PHONE_KEY_0=176]=\"PHONE_KEY_0\",t[t.PHONE_KEY_1=177]=\"PHONE_KEY_1\",t[t.PHONE_KEY_2=178]=\"PHONE_KEY_2\",t[t.PHONE_KEY_3=179]=\"PHONE_KEY_3\",t[t.PHONE_KEY_4=180]=\"PHONE_KEY_4\",t[t.PHONE_KEY_5=181]=\"PHONE_KEY_5\",t[t.PHONE_KEY_6=182]=\"PHONE_KEY_6\",t[t.PHONE_KEY_7=183]=\"PHONE_KEY_7\",t[t.PHONE_KEY_8=184]=\"PHONE_KEY_8\",t[t.PHONE_KEY_9=185]=\"PHONE_KEY_9\",t[t.PHONE_KEY_STAR=186]=\"PHONE_KEY_STAR\",t[t.PHONE_KEY_POUND=187]=\"PHONE_KEY_POUND\",t[t.ALT_VOLUME_UP=233]=\"ALT_VOLUME_UP\",t[t.ALT_VOLUME_DOWN=234]=\"ALT_VOLUME_DOWN\",t[t.REJECT_CALL=65533]=\"REJECT_CALL\"}(Yn||(Yn={}));class er{constructor(t,e,n){this.type=t,this.value=e,this.valueType=n}toString(){return void 0===Yn[this.type]?`Unknown signal: type: ${this.type}, value: ${this.value}, valueType: ${this.valueType}`:`Signal: type: ${Yn[this.type]}, value: ${this.value}, valueType: ${this.valueType}`}}!function(t){t[t.BUTTON=9]=\"BUTTON\",t[t.CONSUMER=12]=\"CONSUMER\",t[t.LED=8]=\"LED\",t[t.TELEPHONY=11]=\"TELEPHONY\",t[t.GN_CONSUMER=65312]=\"GN_CONSUMER\",t[t.GN_EXT_BUTTONS=65360]=\"GN_EXT_BUTTONS\",t[t.GN_LED=65344]=\"GN_LED\",t[t.GN_MISC=65376]=\"GN_MISC\",t[t.GN_TELEPHONY=65328]=\"GN_TELEPHONY\"}(Vn||(Vn={})),function(t){t[t.MUTE=9]=\"MUTE\",t[t.OFF_HOOK=23]=\"OFF_HOOK\",t[t.RING=24]=\"RING\",t[t.MESSAGE_WAIT=25]=\"MESSAGE_WAIT\",t[t.HOLD=32]=\"HOLD\",t[t.MIC_MUTE=33]=\"MIC_MUTE\",t[t.ONLINE=42]=\"ONLINE\",t[t.HID_OFFLINE=43]=\"HID_OFFLINE\"}(jn||(jn={})),function(t){t[t.HOOK_SWITCH=32]=\"HOOK_SWITCH\",t[t.FLASH=33]=\"FLASH\",t[t.HOLD=35]=\"HOLD\",t[t.REDIAL=36]=\"REDIAL\",t[t.ONLINE=42]=\"ONLINE\",t[t.SPEAKER_PHONE=43]=\"SPEAKER_PHONE\",t[t.MUTE=47]=\"MUTE\",t[t.HID_SEND=49]=\"HID_SEND\",t[t.SPEED_DIAL=80]=\"SPEED_DIAL\",t[t.VOICE_MAIL=112]=\"VOICE_MAIL\",t[t.ANSWER_ON_OFF=116]=\"ANSWER_ON_OFF\",t[t.LINE_BUSY=151]=\"LINE_BUSY\",t[t.RINGER=158]=\"RINGER\",t[t.PHONE_KEY_0=176]=\"PHONE_KEY_0\",t[t.PHONE_KEY_1=177]=\"PHONE_KEY_1\",t[t.PHONE_KEY_2=178]=\"PHONE_KEY_2\",t[t.PHONE_KEY_3=179]=\"PHONE_KEY_3\",t[t.PHONE_KEY_4=180]=\"PHONE_KEY_4\",t[t.PHONE_KEY_5=181]=\"PHONE_KEY_5\",t[t.PHONE_KEY_6=182]=\"PHONE_KEY_6\",t[t.PHONE_KEY_7=183]=\"PHONE_KEY_7\",t[t.PHONE_KEY_8=184]=\"PHONE_KEY_8\",t[t.PHONE_KEY_9=185]=\"PHONE_KEY_9\",t[t.PHONE_KEY_STAR=186]=\"PHONE_KEY_STAR\",t[t.PHONE_KEY_POUND=187]=\"PHONE_KEY_POUND\",t[t.HID_ALT_VOLUME_UP=233]=\"HID_ALT_VOLUME_UP\",t[t.HID_ALT_VOLUME_DOWN=234]=\"HID_ALT_VOLUME_DOWN\",t[t.GN_PSEUDO_HOOK_SWITCH=65531]=\"GN_PSEUDO_HOOK_SWITCH\",t[t.GN_OUT_OF_RANGE=65532]=\"GN_OUT_OF_RANGE\",t[t.GN_REJECT_CALL=65533]=\"GN_REJECT_CALL\",t[t.GN_TELEPHONY_CONT_SET=65535]=\"GN_TELEPHONY_CONT_SET\"}(qn||(qn={}));class nr{constructor(t,e,n,r,i){this.hidChannel=t,this.onDisconnect=e,this.isSoftphoneInFocus=n,this.lockHeld=r,this.logger=i,this.cachedSignals=new Map}setup(){const t=this.filter().pipe(de());return t.subscribe(),t}filter(){const t=this.hidChannel.input.pipe(Jt((t=>t.usagePage===Vn.GN_TELEPHONY&&!t.isArray())),Pt((t=>{const e=this.hidChannel.findDescriptor(t.usagePage,t.usage,Qe.INPUT);return(null==e?void 0:e.valueType)?Nt(Object.assign(Object.assign({},t),{valueType:e.valueType})):(In(\"\",new be(`Unable to find value-type in descriptor for UsagePage: ${t.usagePage} and Usage: ${t.usage}`,Kt.FEATURE_NOT_SUPPORTED),this.logger),et)})),Jt((t=>{if(t.valueType===Je.RELATIVE)return Boolean(t.value);return this.cachedSignals.get(t.usage)!==t.value})),me((t=>{this.cachedSignals.set(t.usage,t.value)})),_e(this.onDisconnect),de()),e=[Yn.HOOK_SWITCH,Yn.REDIAL],n=t.pipe(on(this.isSoftphoneInFocus),Jt((t=>e.includes(t.usage)&&!this.lockHeld.getValue())));return Mt(t.pipe(Jt((t=>this.lockHeld.getValue()))),n).pipe(Lt((t=>new er(t.usage,0!==t.value,t.valueType))),ee((t=>(ye(t.message,this.logger),et))))}}class rr{constructor(t,e,n,r,i,o){this.device=t,this.onDisconnect=n,$n.set(this,void 0),zn.set(this,new j(!1)),Qn.set(this,void 0),Jn.set(this,!1),this.deviceSignals=new Y,h(this,$n,r,\"f\"),l(this,$n,\"f\").lockHeld.subscribe(l(this,zn,\"f\")),h(this,Qn,e,\"f\"),this.onDisconnect.pipe(ue(),Lt((()=>!0))).subscribe((t=>{h(this,Jn,t,\"f\")}));const s=new nr(l(this,Qn,\"f\"),this.onDisconnect,i,l(this,zn,\"f\"),o);this.deviceSignals=s.setup()}checkCallLockHeld(t){if(!l(this,zn,\"f\").getValue())throw new be(t,Kt.SDK_USAGE_ERROR)}checkCallLockNotHeld(t){if(l(this,zn,\"f\").getValue())throw new be(t,Kt.SDK_USAGE_ERROR)}checkHasDisconnected(){if(l(this,Jn,\"f\"))throw new be(\"CallControl cannot be performed as the connection has disconnected.\",Kt.SDK_USAGE_ERROR)}takeCallLock(){return this.checkHasDisconnected(),this.checkCallLockNotHeld(\"Trying to take the call lock, but it is already held!\"),St(l(this,$n,\"f\").tryTakeCallLock())}releaseCallLock(){this.checkHasDisconnected(),this.checkCallLockHeld(\"Trying to release the call lock, but it is not held!\"),l(this,$n,\"f\").releaseCallLock()}offHook(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"Calls can only be started and stopped when the call lock is held.\");const e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.OFF_HOOK,Qe.OUTPUT);if(!e)throw new be(`Device ${this.device.name} does not support any offHook functionality.`,Kt.FEATURE_NOT_SUPPORTED);const n=t?1:0;l(this,Qn,\"f\").output(e.usagePage,e.usage,n)}ring(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The ringer state can only be modified when the call lock is held.\");const e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.RING,Qe.OUTPUT),n=l(this,Qn,\"f\").findDescriptor(Vn.GN_TELEPHONY,qn.RINGER,Qe.OUTPUT);if(!e&&!n)throw new be(`Device ${this.device.name} does not support any ring functionality.`,Kt.FEATURE_NOT_SUPPORTED);if(n){const e=t?1:0;l(this,Qn,\"f\").output(n.usagePage,n.usage,e)}if(e){const n=t?1:0;l(this,Qn,\"f\").output(e.usagePage,e.usage,n)}}mute(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The mute state can only be modified when the call lock is held.\");let e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.MIC_MUTE,Qe.OUTPUT);if(e||(e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.MUTE,Qe.OUTPUT)),!e)throw new be(`Device ${this.device.name} does not support any mute functionality.`,Kt.FEATURE_NOT_SUPPORTED);const n=t?1:0;l(this,Qn,\"f\").output(e.usagePage,e.usage,n)}hold(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The hold state can only be modified when the call lock is held.\");const e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.HOLD,Qe.OUTPUT);if(!e)throw new be(`Device ${this.device.name} does not support hold functionality.`,Kt.FEATURE_NOT_SUPPORTED);const n=t?1:0;l(this,Qn,\"f\").output(e.usagePage,e.usage,n)}}$n=new WeakMap,zn=new WeakMap,Qn=new WeakMap,Jn=new WeakMap,function(t){t[t.STD_TELEPHONY=0]=\"STD_TELEPHONY\",t[t.GN_TELEPHONY=1]=\"GN_TELEPHONY\"}(Xn||(Xn={}));const ir={[De.SKYPE]:Xn.GN_TELEPHONY,[De.CISCO]:Xn.GN_TELEPHONY,[De.AVAYA]:Xn.GN_TELEPHONY,[De.SIEMENS]:Xn.GN_TELEPHONY,[De.IBM]:Xn.GN_TELEPHONY,[De.AASTRA]:Xn.GN_TELEPHONY,[De.JABRA]:Xn.GN_TELEPHONY,[De.NEC]:Xn.GN_TELEPHONY,[De.SHORETEL]:Xn.GN_TELEPHONY,[De.MS_OC]:Xn.STD_TELEPHONY,[De.ALCATEL]:Xn.STD_TELEPHONY,[De.OTHER]:Xn.STD_TELEPHONY,[De.NORTEL]:null,[De.GENERIC]:null};function or(t,e){const n=t.read(je).pipe(Lt((t=>ir[t]===e))),r=t.read(new Ke).pipe(Lt((t=>t.find((t=>ir[t]===e))))).pipe(Lt((e=>e?t.write(je,e):Nt(!1))),ge());return n.pipe((i=Nt(!0),o=r,t=>t.pipe(Lt((t=>t?i:o)),ge())));var i,o}class sr{constructor(t,e,n){this.connectionCallLock=t,this.device=e,this.logger=n,this.lockHeld=new j(!1),this.currentLocks=new j(new Set),this.lockReleaseEvent=new Y}tryTakeCallLock(){const{currentConnections:t}=this.device,e=new Set,n=Gt((()=>wt(t).pipe(ne((t=>this.takeSingleCallLock(t).pipe(ee((t=>(In(\"DeviceCallLock:\",t,this.logger),Nt(\"\"))))))),me((t=>e.add(t)))))).pipe(function(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?Jt((function(e,n){return t(e,n,r)})):k,le(1),n?re(e):ae((function(){return new Tt})))}}(),Lt((n=>(e.delete(\"\"),this.currentLocks.next(e),e.size!==t.length?(this.releaseCallLock(),!1):(this.lockHeld.next(!0),!0)))),fe());return n.subscribe((t=>{t&&(this.acquireLockOnNextConnectionEmit(),this.releaseLockOnRemovedConnectionEmit())})),n}acquireLockOnNextConnectionEmit(){this.device.connectionAdded.pipe(_e(this.lockReleaseEvent)).subscribe((t=>{this.takeSingleCallLock(t).pipe(_e(this.lockReleaseEvent),Lt((t=>(this.currentLocks.getValue().add(t),this.currentLocks.next(this.currentLocks.getValue()),w))),he(Nn())).subscribe({error:t=>{ye(`Failed to acquire the call lock on a new connection.\\n Another softphone running an old SDK has most likely acquired this lock.\\n Full error: ${t}`,this.logger,Bt.WARNING,Wt.JS_LIB)}})}))}releaseLockOnRemovedConnectionEmit(){this.device.connectionRemoved.pipe(_e(this.lockReleaseEvent)).subscribe((t=>this.releaseSingleCallLock(t.id.transportId)))}takeSingleCallLock(t){return Gt((()=>this.connectionCallLock.tryTakeCallLock(t.id.transportId))).pipe(Lt((e=>e.acquired?Nt(e.transportId):Ct((()=>new be(`Failed to acquire call lock on connection ${t.id.transportId}`,Kt.SDK_USAGE_ERROR))))),ge())}releaseCallLock(){this.lockReleaseEvent.next();[...this.currentLocks.getValue()].forEach((t=>{this.releaseSingleCallLock(t)})),this.currentLocks.getValue().clear(),this.currentLocks.next(this.currentLocks.getValue())}releaseSingleCallLock(t){this.connectionCallLock.releaseCallLock(t),this.currentLocks.getValue().delete(t),this.currentLocks.next(this.currentLocks.getValue()),0!==this.currentLocks.getValue().size&&0!==this.device.currentConnections.length||(this.lockReleaseEvent.next(),this.lockHeld.next(!1))}}class ar{constructor(t){this.transport=t}tryTakeCallLock(t){const e={action:\"request-call-lock\",id:t};return this.transport.writeAction(e),this.transport.consoleAppEvent.pipe(Jt((e=>\"response-call-lock\"===e.event&&e.id===t)),Lt((t=>({transportId:t.id,acquired:t.acquired}))),ue())}releaseCallLock(t){const e={action:\"release-call-lock\",id:t};this.transport.writeAction(e)}}const cr=[{usagePage:Vn.GN_LED,usage:jn.OFF_HOOK,reportType:Qe.OUTPUT},{usagePage:Vn.GN_LED,usage:jn.RING,reportType:Qe.OUTPUT},{usagePage:Vn.GN_TELEPHONY,usage:qn.RINGER,reportType:Qe.OUTPUT},{usagePage:Vn.GN_LED,usage:jn.MIC_MUTE,reportType:Qe.OUTPUT},{usagePage:Vn.GN_LED,usage:jn.MUTE,reportType:Qe.OUTPUT},{usagePage:Vn.GN_LED,usage:jn.HOLD,reportType:Qe.OUTPUT}],ur=[yn.USB,yn.INDIRECT,yn.BLUETOOTH];function lr(t,e){const{hidChannel:n}=t;return!!function(t){return cr.some((({usagePage:e,usage:n,reportType:r})=>t.findDescriptor(e,n,r)))}(n)&&(!pn.supportsGnpOverHid(n)||e!==On.DONGLE&&e!==On.OTHER)}function hr(t){const{currentConnections:e,type:n}=t;var r;return(r=e,[...r].sort(((t,e)=>ur.indexOf(t.type)-ur.indexOf(e.type)))).find((t=>lr(t,n)))}function dr(t,e,n,r,i){const o=hr(t),{hidChannel:s,onDisconnect:a}=o,c=new sr(new ar(r),t,i);if(e)return Nt(new rr(t,s,a,c,n.softphoneInFocus,i));if(r.context===Vt.WEB_HID)return Nt(new rr(t,s,a,c,n.softphoneInFocus,i));return function(t,e){return t.findDescriptor(Vn.GN_TELEPHONY,qn.GN_TELEPHONY_CONT_SET,Qe.FEATURE)?Gt((()=>(t.setFeatureReport(Vn.GN_TELEPHONY,qn.GN_TELEPHONY_CONT_SET,1),Nt(!0)))):e?or(e,Xn.GN_TELEPHONY):Nt(!1)}(s,o).pipe(Lt((e=>new rr(t,s,a,c,n.softphoneInFocus,i))))}class pr{constructor(t,e){this.devComm=t,this.softphoneInFocus=new G,this.softphoneInFocus=e.pipe(ue(),Pt((t=>this.devComm.consoleAppEvent.pipe(Jt((t=>\"softphone-in-focus\"===t.event)),Lt((t=>t.infocus)),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=ot(t);return M((function(e,r){(n?xt(t,e,n):xt(t,e)).subscribe(r)}))}(!t),fe(1))))),this.softphoneInFocus.subscribe((()=>{}))}setSharedSoftphoneInfo(t){if(!(null==t?void 0:t.partnerKey)||!(null==t?void 0:t.appId))return void ye(\"Unable to register with Jabra Direct: partnerKey or appId missing in config\",null==t?void 0:t.logger,Bt.WARNING);const e=t.partnerKey+t.appId,n=new Xe(5,\"ns:OID\",e);let{appName:r}=t;if((!t.appName||t.appName.length<3)&&(ye(\"App name missing in config. Fall back to use appId as app name.\",null==t?void 0:t.logger,Bt.WARNING),r=t.appId),r.length>100)return void ye(\"Unable to register with Jabra Direct: appName must be below 100 characters.\",null==t?void 0:t.logger,Bt.WARNING);const i={action:\"set-softphone-info\",name:r,id:n.toString()};this.devComm.writeAction(i)}}var fr,vr,Er,gr,_r,mr,br,yr,Or,wr;class Nr{constructor(t){var e;fr.set(this,void 0),vr.set(this,void 0),Er.set(this,void 0),gr.set(this,void 0),h(this,gr,t._readyEvents.pipe(ue((t=>\"ready\"===t.event)),Lt((t=>t.jabraDirectInstalled))),\"f\"),h(this,vr,new pr(t._transport,l(this,gr,\"f\")),\"f\"),l(this,vr,\"f\").setSharedSoftphoneInfo(t._config),h(this,fr,t._transport,\"f\"),h(this,Er,null===(e=t._config)||void 0===e?void 0:e.logger,\"f\")}createCallControl(t){if(!this.supportsCallControl(t))return Promise.reject(new be(`Device ${t.name} does not support call control.`,Kt.FEATURE_NOT_SUPPORTED));return At(l(this,gr,\"f\").pipe(Pt((e=>dr(t,e,l(this,vr,\"f\"),l(this,fr,\"f\"),l(this,Er,\"f\"))))))}supportsCallControl(t){return void 0!==hr(t)}}fr=new WeakMap,vr=new WeakMap,Er=new WeakMap,gr=new WeakMap,function(t){t.HOLD_CURRENT=\"hold-current\",t.END_CURRENT=\"end-current\"}(_r||(_r={})),function(t){t.MUTED=\"muted\",t.UNMUTED=\"unmuted\",t.NO_ONGOING_CALLS=\"no-ongoing-calls\"}(mr||(mr={})),function(t){t.ON_HOLD=\"on-hold\",t.NOT_ON_HOLD=\"not-on-hold\",t.NO_ONGOING_CALLS=\"no-ongoing-calls\"}(br||(br={})),function(t){t.NO_INCOMING=\"no-incoming\",t.AWAITING_RESPONSE=\"awaiting-response\",t.RESOLVING_RESPONSE=\"resolving-response\",t.ACCEPTED=\"accepted\",t.REJECTED=\"rejected\"}(yr||(yr={}));class Cr{constructor(t){this.state=t.value,t.subscribe((t=>{this.state=t}))}}class Tr extends Cr{constructor(t,e,n,r,i){super(t),this.commands=e,this.deviceSignals=n,this.enableFlash=r,this.logger=i}setupSignalListeners(){const t=this.extendedSignals.pipe(de()),e=t.pipe(Jt((t=>t.allowed))),r=t.pipe(Jt((t=>!t.allowed)));e.subscribe((t=>{ye(`Accepted signal: ${Yn[t.type]} [${t.value}]`,null==this?void 0:this.logger,Bt.INFO)})),r.subscribe((t=>{ye(`Ignored signal: ${Yn[t.type]} [${t.value}]`,null==this?void 0:this.logger,Bt.INFO)})),e.pipe(Jt((t=>t.type===Yn.HOOK_SWITCH))).subscribe((t=>{t.value&&this.state.incomingCall===yr.AWAITING_RESPONSE?this.commands.incomingCallHandler.queueAcceptIncomingCall(_r.END_CURRENT,!0):(!1===t.value&&this.state.ongoingCalls>0&&this.commands.hookHandler.queueEndCall(!0),!0===t.value&&0===this.state.ongoingCalls&&this.commands.hookHandler.queueStartCall())})),e.pipe(Jt((t=>t.type===Yn.PHONE_MUTE))).subscribe((()=>{this.commands.muteHandler.queueToggleMute(!0)})),e.pipe(Jt((t=>t.type===Yn.FLASH))).subscribe((()=>n(this,void 0,void 0,(function*(){this.state.incomingCall!==yr.AWAITING_RESPONSE?this.state.ongoingCalls>1?this.commands.swapHandler.queueSwapCalls():this.commands.holdHandler.queueToggleHold():yield this.commands.incomingCallHandler.queueAcceptIncomingCall(_r.HOLD_CURRENT,!0)})))),e.pipe(Jt((t=>t.type===Yn.REJECT_CALL))).subscribe((()=>{this.state.incomingCall===yr.AWAITING_RESPONSE&&this.commands.incomingCallHandler.queueRejectIncomingCall()}))}get extendedSignals(){return this.deviceSignals.pipe(Pt((t=>{let e=!this.state.ignoreSignals.some((([e,n])=>t.type===e&&n===t.value));return t.type!==Yn.FLASH||this.enableFlash||(e=!1),Nt(Object.assign(Object.assign({},t),{allowed:e}))})),_e(this.commands.teardownHandler.onTeardown))}}class Sr{constructor(t,e,n,r,i,o,s=!0){this.logger=o,Or.set(this,void 0),this.device=t,this.onDisconnect=e,this.ringState=i.ringState,this.muteState=i.muteState,h(this,Or,r,\"f\"),this.onDisconnect.pipe(ue(),_e(l(this,Or,\"f\").teardownHandler.onTeardown)).subscribe((t=>this.teardown(!1)));new Tr(i.internalState,r,n,s,o).setupSignalListeners()}endCall(){return l(this,Or,\"f\").hookHandler.queueEndCall(!1)}signalIncomingCall(t=25e3){return l(this,Or,\"f\").incomingCallHandler.queueSignalIncomingCall(t)}rejectIncomingCall(){return l(this,Or,\"f\").incomingCallHandler.queueRejectIncomingCall()}mute(){return l(this,Or,\"f\").muteHandler.queueSetMute(mr.MUTED)}unmute(){return l(this,Or,\"f\").muteHandler.queueSetMute(mr.UNMUTED)}teardown(t=!0){l(this,Or,\"f\").teardownHandler.teardown(t)}_setInitialState(t,e=!1,n=!1){return 0===t&&(e||n)&&ye(\"\\n Unable to set initial state: muted or onHold cannot be true unless a call is started.\\n Set callActive to true for SingleCallControl, or ongoingCalls to 1 or more for MultiCallControl.\\n \",null==this?void 0:this.logger,Bt.WARNING),l(this,Or,\"f\").deviceState.setInitialState(t,e,n)}}Or=new WeakMap;class Ar extends Sr{constructor(t,e,n,r,i,o){super(t,e,n,r,i,o,!0),wr.set(this,void 0),this.ongoingCalls=i.ongoingCalls,this.holdState=i.holdState,this.swapRequest=i.swapEvents,h(this,wr,r,\"f\")}startCall(){return l(this,wr,\"f\").hookHandler.queueStartCall()}acceptIncomingCall(t=_r.END_CURRENT){return l(this,wr,\"f\").incomingCallHandler.queueAcceptIncomingCall(t,!1)}hold(){return l(this,wr,\"f\").holdHandler.queueSetHold(br.ON_HOLD)}resume(){return l(this,wr,\"f\").holdHandler.queueSetHold(br.NOT_ON_HOLD)}}wr=new WeakMap;class Ir extends Cr{constructor(t,e,n){super(e),this.callControl=t,this.logger=n,this.hasLock=!1}takeCallLock(){return n(this,void 0,void 0,(function*(){if(!this.hasLock){try{this.hasLock=yield this.callControl.takeCallLock()}catch(t){this.hasLock=!0,ye(t.message,null==this?void 0:this.logger,Bt.WARNING)}if(!this.hasLock)throw new be(\"Device used by another softphone. Only one application can use the device at a time.\",Kt.SDK_USAGE_ERROR)}}))}releaseCallLock(){0===this.state.ongoingCalls&&(this.callControl.releaseCallLock(),this.hasLock=!1)}forceReleaseCallLock(){this.hasLock&&this.callControl.releaseCallLock()}}class Rr{constructor(t){this.teardownHandler=t,this.queue=new Y,this.queue.pipe(ne((t=>n(this,void 0,void 0,(function*(){try{const e=yield t.command();t.callback(e)}catch(e){if(!(e instanceof be))throw e;t.errCallback(e)}})))),_e(this.teardownHandler.onTeardown)).subscribe()}pushToQueue(t){return new Promise(((e,n)=>{this.teardownHandler.checkActive();const r={command:t,callback:e,errCallback:n};this.queue.next(r)}))}}class Dr extends Cr{constructor(t,e,n,r){super(r),this.hookHandler=t,this.holdHandler=e,this.muteHandler=n}setInitialState(t,e,r){return n(this,void 0,void 0,(function*(){if(0===t)return yield this.hookHandler.queueStartCall(),void(yield this.hookHandler.queueEndCall(!1));for(let e=0;e<t;e+=1)yield this.hookHandler.queueStartCall();const n=e?mr.MUTED:mr.UNMUTED;yield this.muteHandler.queueSetMute(n);const i=r?br.ON_HOLD:br.NOT_ON_HOLD;yield this.holdHandler.queueSetHold(i)}))}}class Hr extends Cr{constructor(t,e,n,r){super(e),this.callControl=t,this.stateHandler=e,this.commandQueue=n,this.awaitSignals=r}queueSetHold(t){return this.commandQueue.pushToQueue((()=>this.setHold(t)))}queueToggleHold(){return this.commandQueue.pushToQueue((()=>n(this,void 0,void 0,(function*(){const t=this.state.holdState===br.ON_HOLD?br.NOT_ON_HOLD:br.ON_HOLD;this.setHold(t)}))))}setHold(t){return n(this,void 0,void 0,(function*(){if(0===this.state.ongoingCalls){const e=t===br.ON_HOLD?\"hold\":\"resume\";throw new be(`Cannot ${e} call as there are no calls in progress.`,Kt.SDK_USAGE_ERROR)}if(this.state.ongoingCalls>1&&t===br.NOT_ON_HOLD)return void(yield this.resumeWhileMultiple());this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:t}));const e=t===br.NOT_ON_HOLD,n=t===br.ON_HOLD,r=[[Yn.HOOK_SWITCH,e],[Yn.FLASH,!0]],i=this.awaitSignals.listen(r);n?(this.callControl.hold(n),this.callControl.offHook(e)):(this.callControl.offHook(e),this.callControl.hold(n)),yield St(i)}))}resumeWhileMultiple(){return n(this,void 0,void 0,(function*(){const t=this.awaitSignals.listen([[Yn.HOOK_SWITCH,!0]]);this.callControl.offHook(!0),this.callControl.hold(!1),this.callControl.hold(!0),yield St(t),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:br.NOT_ON_HOLD}))}))}}class Lr extends Cr{constructor(t,e,n,r,i){super(n),this.callControl=t,this.callLock=e,this.stateHandler=n,this.commandQueue=r,this.awaitSignals=i}queueStartCall(){return this.commandQueue.pushToQueue((()=>this.startCall()))}queueEndCall(t){return this.commandQueue.pushToQueue((()=>this.endCall(t)))}startCall(t=!1){return n(this,void 0,void 0,(function*(){if(this.state.incomingCall===yr.AWAITING_RESPONSE)throw new be(\"Cannot start a new call while another call is incoming. If you wish to answer/accept the incoming call, please use acceptIncomingCall/rejectIncomingCall instead.\",Kt.SDK_USAGE_ERROR);this.state.holdState===br.ON_HOLD?this.startNewCallWhileOnHold():0===this.state.ongoingCalls?yield this.startFirstCall(t):this.startSubsequentCalls(),this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls+1}))}))}endCall(t){return n(this,void 0,void 0,(function*(){if(this.state.incomingCall===yr.AWAITING_RESPONSE)throw new be(\"Cannot end a call while another call is incoming. If you wish to answer/accept the incoming call, please use acceptIncomingCall/rejectIncomingCall instead.\",Kt.SDK_USAGE_ERROR);if(0===this.state.ongoingCalls)throw new be(\"Cannot end call as there are no calls in progress.\",Kt.SDK_USAGE_ERROR);1===this.state.ongoingCalls?yield this.endLastCall():this.state.holdState===br.ON_HOLD?this.endCallWhileOnHold():yield this.endCurrentCall(t)}))}startFirstCall(t){return n(this,void 0,void 0,(function*(){yield this.callLock.takeCallLock();const e=t?[]:[[Yn.HOOK_SWITCH,!0]],n=this.awaitSignals.listen(e);this.callControl.offHook(!0),yield St(n),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:br.NOT_ON_HOLD,muteState:mr.UNMUTED}))}))}startSubsequentCalls(){this.callControl.hold(!0)}startNewCallWhileOnHold(){this.callControl.offHook(!0),this.callControl.hold(!0),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:br.NOT_ON_HOLD}))}endLastCall(){return n(this,void 0,void 0,(function*(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:br.NO_ONGOING_CALLS,muteState:mr.NO_ONGOING_CALLS,ongoingCalls:0})),this.callControl.mute(!1),this.callControl.offHook(!1),this.callControl.hold(!1),this.callLock.releaseCallLock()}))}endCurrentCall(t){return n(this,void 0,void 0,(function*(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls-1})),yield this.sendHoldCallSignalAndWaitForAck(t),yield this.resumeNextCall(t)}))}sendHoldCallSignalAndWaitForAck(t){const e=t?[[Yn.HOOK_SWITCH,!1],[Yn.FLASH,!0]]:[[Yn.HOOK_SWITCH,!1]],n=St(this.awaitSignals.listen(e));return this.callControl.hold(!0),this.callControl.offHook(!1),n}resumeNextCall(t){const e=t?[[Yn.HOOK_SWITCH,!0],[Yn.FLASH,!0]]:[[Yn.HOOK_SWITCH,!0]],n=St(this.awaitSignals.listen(e));return this.callControl.offHook(!0),this.callControl.hold(1!==this.state.ongoingCalls),n}endCallWhileOnHold(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls-1}))}}class Pr extends Cr{constructor(t,e,n,r,i){super(n),this.callControl=t,this.callLock=e,this.stateHandler=n,this.hookHandler=r,this.commandQueue=i}queueAcceptIncomingCall(t,e){return this.commandQueue.pushToQueue((()=>this.acceptIncomingCall(t,e)))}queueRejectIncomingCall(){return this.commandQueue.pushToQueue((()=>this.rejectIncomingCall()))}queueSignalIncomingCall(t=25e3){return new Promise(((e,r)=>{this.commandQueue.pushToQueue((()=>n(this,void 0,void 0,(function*(){(yield this.signalIncomingCall(t)).subscribe({next:t=>{e(t),this.updateIncomingCallState(yr.NO_INCOMING)},error:t=>{e(!1)},complete:()=>{e(!1)}})})))).catch((t=>r(t)))}))}signalIncomingCall(t){return n(this,void 0,void 0,(function*(){return yield this.callLock.takeCallLock(),this.updateIncomingCallState(yr.AWAITING_RESPONSE),this.callControl.ring(!0),this.stateHandler.pipe((e=({incomingCall:t})=>t!==yr.NO_INCOMING,void 0===n&&(n=!1),M((function(t,r){var i=0;t.subscribe(B(r,(function(t){var o=e(t,i++);(o||n)&&r.next(t),!o&&r.complete()})))}))),Jt((({incomingCall:t})=>t===yr.ACCEPTED||t===yr.REJECTED)),ue(),Dt(t),ee((t=>(this.rejectIncomingCall(),Nt(this.state)))),Lt((({incomingCall:t})=>t===yr.ACCEPTED)));var e,n}))}acceptIncomingCall(t,e){return n(this,void 0,void 0,(function*(){if(this.state.incomingCall!==yr.AWAITING_RESPONSE)throw new be(\"Cannot accept as there are no incoming calls.\",Kt.SDK_USAGE_ERROR);this.updateIncomingCallState(yr.RESOLVING_RESPONSE),this.callControl.ring(!1),this.state.holdState===br.ON_HOLD||0===this.state.ongoingCalls?yield this.hookHandler.startCall(e):t===_r.END_CURRENT?(yield this.hookHandler.endCall(e),yield this.hookHandler.startCall(e)):t===_r.HOLD_CURRENT&&(yield this.hookHandler.startCall(e)),this.stateHandler.next(Object.assign(Object.assign({},this.state),{incomingCall:yr.ACCEPTED,holdState:br.NOT_ON_HOLD}))}))}rejectIncomingCall(){return n(this,void 0,void 0,(function*(){if(this.state.incomingCall!==yr.AWAITING_RESPONSE)throw new be(\"Cannot reject as there are no incoming calls.\",Kt.SDK_USAGE_ERROR);this.callControl.ring(!1),this.updateIncomingCallState(yr.REJECTED),this.callLock.releaseCallLock()}))}updateIncomingCallState(t){this.stateHandler.next(Object.assign(Object.assign({},this.state),{incomingCall:t}))}}class Ur extends Cr{constructor(t,e,n){super(e),this.callControl=t,this.stateHandler=e,this.commandQueue=n}queueSetMute(t){return this.commandQueue.pushToQueue((()=>this.setMute(t,!1)))}queueToggleMute(t){return this.commandQueue.pushToQueue((()=>n(this,void 0,void 0,(function*(){const e=this.state.muteState===mr.MUTED?mr.UNMUTED:mr.MUTED;this.setMute(e,t)}))))}setMute(t,e){return n(this,void 0,void 0,(function*(){if(!e&&0===this.state.ongoingCalls)throw new be(\"You cannot change mute state outside of a call.\",Kt.SDK_USAGE_ERROR);if(!e&&this.state.holdState===br.ON_HOLD)throw new be(\"You cannot change mute state while on hold.\",Kt.SDK_USAGE_ERROR);this.callControl.mute(t===mr.MUTED),this.stateHandler.next(Object.assign(Object.assign({},this.state),{muteState:t}))}))}}class kr extends Cr{constructor(t,e){super(t),this.stateHandler=t,this.commandQueue=e}queueSwapCalls(){return this.commandQueue.pushToQueue((()=>this.swapCalls()))}swapCalls(){return n(this,void 0,void 0,(function*(){if(this.state.ongoingCalls<2)throw new be(\"No calls to swap between. There should be at least one current call and one call on hold.\",Kt.SDK_USAGE_ERROR);this.stateHandler.next(Object.assign(Object.assign({},this.state),{swapToggle:this.state.swapToggle?0:1}))}))}}class xr{constructor(t,e,n){this.stateHandler=t,this.callLock=e,this.logger=n,this.teardownState=new j(!1),this.onTeardown=this.teardownState.pipe(ve(1),Lt(w))}teardown(t=!0){if(this.teardownState.value)throw new be(\"Easy Call Control instance already torn down.\",Kt.SDK_USAGE_ERROR);this.stateHandler.unsubscribeState(),this.teardownState.next(!0),t&&this.callLock.forceReleaseCallLock(),ye(\"Teardown complete. Create new Easy Call Control instance to continue usage.\",null==this?void 0:this.logger,Bt.INFO)}checkActive(){if(this.teardownState.value)throw new be(\"\\n Inactive instance. Either device disconnected or teardown was called.\\n Create new EasyCallControl instance to continue usage.\",Kt.SDK_USAGE_ERROR)}}class Gr{constructor(t,e,n){this.deviceSignals=t,this.stateHandler=e,this.logger=n}listen(t){if(0===t.length)return Nt(void 0);this.stateHandler.next(Object.assign(Object.assign({},this.stateHandler.value),{ignoreSignals:t}));let e=0;return this.deviceSignals.pipe(Ee((n=>{const[r,i]=t[e];return n.type===r&&n.value===i?(ye(`Resolve awaited signal: ${Yn[r]} [${i}]`,null==this?void 0:this.logger,Bt.INFO),e+=1,Nt(n)):et})),ie(t.length),Dt(1e3),ee((()=>{const e=t.map((([t,e])=>`${Yn[t]}: ${e}`));return ye(`Missing signals for ${JSON.stringify(e)}. State recovered.`,null==this?void 0:this.logger,Bt.INFO),Nt(void 0)})),(n=()=>{this.stateHandler.next(Object.assign(Object.assign({},this.stateHandler.value),{ignoreSignals:[]}))},M((function(t,e){try{t.subscribe(e)}finally{e.add(n)}}))));var n}}class Fr{constructor(t,e,n,r){const i=new Ir(t,n.internalState,r);this.teardownHandler=new xr(n,i,r);const o=new Rr(this.teardownHandler),s=new Gr(e,n.internalState,r);this.hookHandler=new Lr(t,i,n.internalState,o,s),this.muteHandler=new Ur(t,n.internalState,o),this.holdHandler=new Hr(t,n.internalState,o,s),this.incomingCallHandler=new Pr(t,i,n.internalState,this.hookHandler,o),this.swapHandler=new kr(n.internalState,o),this.deviceState=new Dr(this.hookHandler,this.holdHandler,this.muteHandler,n.internalState)}}const Mr={ongoingCalls:0,muteState:mr.NO_ONGOING_CALLS,holdState:br.NO_ONGOING_CALLS,incomingCall:yr.NO_INCOMING,ignoreSignals:[],swapToggle:0};class Br{constructor(){this.internalState=new j(Mr),this.onUnsubscribe=new Y;const t=this.internalState.pipe(_e(this.onUnsubscribe));this.ongoingCalls=t.pipe(Lt((t=>t.ongoingCalls)),oe()),this.callActive=t.pipe(Lt((t=>0!==t.ongoingCalls)),oe()),this.ringState=t.pipe(Lt((t=>t.incomingCall===yr.AWAITING_RESPONSE||t.incomingCall===yr.RESOLVING_RESPONSE)),oe()),this.muteState=t.pipe(Lt((t=>t.muteState)),oe()),this.holdState=t.pipe(Lt((t=>t.holdState)),oe()),this.swapEvents=t.pipe(Lt((t=>t.swapToggle)),oe(),Lt((()=>{})),ve(1))}unsubscribeState(){this.onUnsubscribe.next(void 0),this.onUnsubscribe.complete(),this.internalState.complete()}}var Wr,Kr,Yr,Vr;class jr extends Sr{constructor(t,e,n,r,i,o){super(t,e,n,r,i,o,!1),Wr.set(this,void 0),Kr.set(this,void 0),this.callActive=i.callActive,h(this,Wr,i.internalState,\"f\"),h(this,Kr,r,\"f\")}startCall(){return n(this,void 0,void 0,(function*(){if(1===l(this,Wr,\"f\").value.ongoingCalls)throw new be(\"Please end the call before starting a new one.\",Kt.SDK_USAGE_ERROR);yield l(this,Kr,\"f\").hookHandler.queueStartCall()}))}acceptIncomingCall(){return l(this,Kr,\"f\").incomingCallHandler.queueAcceptIncomingCall(_r.END_CURRENT,!1)}}Wr=new WeakMap,Kr=new WeakMap;class qr{constructor(t){var e;Yr.set(this,void 0),Vr.set(this,void 0),h(this,Yr,new Nr(t),\"f\"),h(this,Vr,null===(e=t._config)||void 0===e?void 0:e.logger,\"f\")}createSingleCallControl(t,e){return n(this,void 0,void 0,(function*(){const n=yield this.getSharedDependencies(t),r=new jr(n.coreDevice,n.onDisconnect,n.deviceSignals,n.commands,n.stateHandler,l(this,Vr,\"f\"));if(e){const t=e.callActive?1:0;yield r._setInitialState(t,e.muted)}return r}))}createMultiCallControl(t,e){return n(this,void 0,void 0,(function*(){const n=yield this.getSharedDependencies(t),r=new Ar(n.coreDevice,n.onDisconnect,n.deviceSignals,n.commands,n.stateHandler,l(this,Vr,\"f\"));return e&&(yield r._setInitialState(e.ongoingCalls,e.muted,e.onHold)),r}))}supportsEasyCallControl(t){return l(this,Yr,\"f\").supportsCallControl(t)}getSharedDependencies(t){return n(this,void 0,void 0,(function*(){const e=yield l(this,Yr,\"f\").createCallControl(t),n=new Br,r=e.deviceSignals.pipe(de());return{commands:new Fr(e,r,n,l(this,Vr,\"f\")),stateHandler:n,deviceSignals:r,coreDevice:e.device,onDisconnect:e.onDisconnect}}))}}Yr=new WeakMap,Vr=new WeakMap;export{_r as A,Nr as C,tn as D,Kt as E,br as H,kn as I,be as J,Bt as L,mr as M,G as O,Qe as R,Y as S,Vt as T,Je as V,Bn as W,n as _,xt as a,Pt as b,B as c,Ft as d,Z as e,Wn as f,Zn as g,Kn as h,Mt as i,Wt as j,Yn as k,ye as l,Lt as m,w as n,M as o,jt as p,bn as q,yn as r,On as s,ie as t,Xe as u,Mn as v,tr as w,qr as x};\n","import { VendorImplementation } from \"../services/vendor-implementations/vendor-implementation\";\nimport { EventInfoWithConversationId, HoldEventInfo, MutedEventInfo, WebHidPermissionRequest } from \"./emitted-headset-events\";\n\nexport enum HeadsetEvents {\n implementationChanged = 'implementationChanged',\n deviceHoldStatusChanged = 'deviceHoldStatusChanged',\n deviceMuteStatusChanged = 'deviceMuteStatusChanged',\n deviceAnsweredCall = 'deviceAnsweredCall',\n deviceEndedCall = 'deviceEndedCall',\n deviceRejectedCall = 'deviceRejectedCall',\n loggableEvent = 'loggableEvent',\n webHidPermissionRequested = 'webHidPermissionRequested',\n deviceConnectionStatusChanged = 'deviceConnectionStatusChanged',\n deviceEventLogs = 'deviceEventLogs',\n}\n\ntype Events = {\n [HeadsetEvents.implementationChanged]: VendorImplementation;\n [HeadsetEvents.deviceHoldStatusChanged]: HoldEventInfo;\n [HeadsetEvents.deviceMuteStatusChanged]: MutedEventInfo;\n [HeadsetEvents.deviceAnsweredCall]: EventInfoWithConversationId;\n [HeadsetEvents.deviceEndedCall]: EventInfoWithConversationId\n [HeadsetEvents.deviceRejectedCall]: EventInfoWithConversationId;\n [HeadsetEvents.loggableEvent]: any;\n [HeadsetEvents.webHidPermissionRequested]: WebHidPermissionRequest;\n [HeadsetEvents.deviceConnectionStatusChanged]: DeviceConnectionStatus;\n}\n\nexport type DeviceConnectionStatus = 'checking' | 'running' | 'notRunning' | 'noVendor';\n\nexport type ConsumedHeadsetEvents<T = keyof Events> = T extends keyof Events\n ? { event: T, payload: Events[T] }\n : never;\n\nexport interface PartialInputReportEvent {\n reportId: number;\n data: DataView;\n}","import DeviceInfo from '../../types/device-info';\nimport StrictEventEmitter from 'strict-event-emitter-types';\nimport { EventEmitter } from 'events';\nimport { EmittedHeadsetEvents, EventInfo, EventInfoWithConversationId, HoldEventInfo, MutedEventInfo } from '../../types/emitted-headset-events';\nimport { CallInfo } from '../..';\nimport { UpdateReasons } from '../../types/headset-states';\n\ntype HeadsetEventName = keyof EmittedHeadsetEvents;\n\nexport interface ImplementationConfig {\n logger: any;\n vendorName?: string;\n appName?: string;\n createNew?: boolean; // this should only be used for testing\n}\n\nexport abstract class VendorImplementation extends (EventEmitter as { new(): StrictEventEmitter<EventEmitter, EmittedHeadsetEvents> }) {\n // TODO: rename this to something more descriptive\n vendorName = 'Not Specified';\n isConnecting = false; // trying to connect with the headset controlling software, ex: plantronics hub\n isConnected = false; // represents a connection to the headset controlling software, ex: plantronics hub\n isMuted = false;\n errorCode: string = null;\n disableRetry = false;\n logger: any; // TODO: pass this in on creation?\n config: ImplementationConfig;\n\n constructor (config: ImplementationConfig) {\n super();\n const eventEmitter = new EventEmitter();\n Object.keys((eventEmitter as any).__proto__).forEach((name) => {\n this[name] = eventEmitter[name];\n });\n\n this.config = config;\n this.vendorName = config.vendorName;\n this.logger = config.logger;\n }\n\n get isDeviceAttached (): boolean {\n throw new Error(`${this.vendorName} - isDeviceAttatched getter not implemented`);\n }\n\n isSupported (): boolean {\n return true;\n }\n\n abstract get deviceInfo (): DeviceInfo;\n\n /* eslint-disable @typescript-eslint/no-unused-vars */\n deviceLabelMatchesVendor (label: string): boolean {\n throw new Error(`${this.vendorName} - deviceLabelMatchesVendor() not implemented`);\n }\n\n connect (selectedMicLabel?: string): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - connect() not implemented`));\n }\n\n disconnect (clearReason?: UpdateReasons): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - disconnect() not implemented`));\n }\n\n incomingCall (callInfo: CallInfo, hasOtherActiveCalls?: boolean): Promise<any> {\n // TODO: propagate this changed parameter (used to be callInfo, but there are several differents signatures in the implementing classes)\n return Promise.reject(new Error(`${this.vendorName} - incomingCall() not implemented`));\n }\n\n outgoingCall (callInfo: CallInfo): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - outgoingCall() not implemented`));\n }\n\n answerCall (conversationId: string, autoAnswer?: boolean): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - answerCall() not implemented`));\n }\n\n rejectCall (conversationId: string): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - rejectCall() not implemented`));\n }\n\n endCall (conversationId: string, hasOtherActiveCalls: boolean): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - endCall() not implemented`));\n }\n\n endAllCalls (): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - endAllCalls() not implemented`));\n }\n\n setMute (value: boolean): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - setMute() not implemented`));\n }\n\n setHold (conversationId: string, value: boolean): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - setHold() not implemented`));\n }\n\n resetHeadsetStateForCall (conversationId?: string): Promise<any> {\n return this.rejectCall(conversationId);\n }\n /* eslint-enable */\n\n private emitEvent (eventName: HeadsetEventName, eventBody: any) {\n this.emit(eventName, { vendor: this, body: { ...eventBody } });\n }\n\n /* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n requestWebHidPermissions (callback: any): void {\n /* eslint-enable */\n this.logger.debug('Emitting premission request event');\n this.emitEvent('webHidPermissionRequested', { callback });\n }\n\n deviceAnsweredCall (eventInfo: EventInfoWithConversationId): void {\n this.emitEvent('deviceAnsweredCall', eventInfo);\n }\n\n deviceRejectedCall (eventInfo: EventInfoWithConversationId): void {\n this.emitEvent('deviceRejectedCall', eventInfo);\n }\n\n deviceEndedCall (eventInfo: EventInfoWithConversationId): void {\n this.emitEvent('deviceEndedCall', eventInfo);\n }\n\n deviceMuteChanged (eventInfo: MutedEventInfo): void {\n this.emitEvent('deviceMuteStatusChanged', { ...eventInfo });\n }\n\n deviceHoldStatusChanged (eventInfo: HoldEventInfo): void {\n this.emitEvent('deviceHoldStatusChanged', { ...eventInfo });\n }\n\n deviceEventLogs (eventInfo: EventInfo): void {\n this.emitEvent('deviceEventLogs', eventInfo);\n }\n\n changeConnectionStatus (headsetState: {isConnected: boolean, isConnecting: boolean}): void {\n this.isConnected = headsetState.isConnected;\n this.isConnecting = headsetState.isConnecting;\n this.emitEvent('deviceConnectionStatusChanged', { currentVendor: this, ...headsetState });\n }\n}\n","!function(e,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(r):e.browserama=r()}(this,function(){\"use strict\";var e=\"undefined\"==typeof window,r=!1,t=!1,o=!1,i=!1,n=!1,d=!1,u=!1,w=!1,s=!1,m=!1;return e||(r=\"undefined\"!=typeof InstallTrigger,t=!!window.chrome,o=!!window.chrome,i=t&&!window.chrome.webstore&&!window.chrome.runtime,n=0<Object.prototype.toString.call(window.HTMLElement).indexOf(\"Constructor\")||window.safari&&window.safari.pushNotification,d=!!window.opr&&!!window.opr.addons||!!window.opera,u=!!window.StyleMedia,w=t&&!!navigator.userAgent.match(/edg/i),s=(o||d)&&!!window.CSS,m=!(t||n||r||d||!document.documentMode)),{get isChrome(){return o},get isChromeOrChromium(){return t},get isChromium(){return i},get isFirefox(){return r},get isSafari(){return n},get isOpera(){return d},get isEdge(){return u},get isEdgeChromium(){return w},get isIE(){return m},get isBlink(){return s}}});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['exports', 'module'], factory);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n factory(exports, module);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, mod);\n global.fetchJsonp = mod.exports;\n }\n})(this, function (exports, module) {\n 'use strict';\n\n var defaultOptions = {\n timeout: 5000,\n jsonpCallback: 'callback',\n jsonpCallbackFunction: null\n };\n\n function generateCallbackFunction() {\n return 'jsonp_' + Date.now() + '_' + Math.ceil(Math.random() * 100000);\n }\n\n function clearFunction(functionName) {\n // IE8 throws an exception when you try to delete a property on window\n // http://stackoverflow.com/a/1824228/751089\n try {\n delete window[functionName];\n } catch (e) {\n window[functionName] = undefined;\n }\n }\n\n function removeScript(scriptId) {\n var script = document.getElementById(scriptId);\n if (script) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n }\n\n function fetchJsonp(_url) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // to avoid param reassign\n var url = _url;\n var timeout = options.timeout || defaultOptions.timeout;\n var jsonpCallback = options.jsonpCallback || defaultOptions.jsonpCallback;\n\n var timeoutId = undefined;\n\n return new Promise(function (resolve, reject) {\n var callbackFunction = options.jsonpCallbackFunction || generateCallbackFunction();\n var scriptId = jsonpCallback + '_' + callbackFunction;\n\n window[callbackFunction] = function (response) {\n resolve({\n ok: true,\n // keep consistent with fetch API\n json: function json() {\n return Promise.resolve(response);\n }\n });\n\n if (timeoutId) clearTimeout(timeoutId);\n\n removeScript(scriptId);\n\n clearFunction(callbackFunction);\n };\n\n // Check if the user set their own params, and if not add a ? to start a list of params\n url += url.indexOf('?') === -1 ? '?' : '&';\n\n var jsonpScript = document.createElement('script');\n jsonpScript.setAttribute('src', '' + url + jsonpCallback + '=' + callbackFunction);\n if (options.charset) {\n jsonpScript.setAttribute('charset', options.charset);\n }\n if (options.nonce) {\n jsonpScript.setAttribute('nonce', options.nonce);\n }\n if (options.referrerPolicy) {\n jsonpScript.setAttribute('referrerPolicy', options.referrerPolicy);\n }\n jsonpScript.id = scriptId;\n document.getElementsByTagName('head')[0].appendChild(jsonpScript);\n\n timeoutId = setTimeout(function () {\n reject(new Error('JSONP request to ' + _url + ' timed out'));\n\n clearFunction(callbackFunction);\n removeScript(scriptId);\n window[callbackFunction] = function () {\n clearFunction(callbackFunction);\n };\n }, timeout);\n\n // Caught if got 404/500\n jsonpScript.onerror = function () {\n reject(new Error('JSONP request to ' + _url + ' failed'));\n\n clearFunction(callbackFunction);\n removeScript(scriptId);\n if (timeoutId) clearTimeout(timeoutId);\n };\n });\n }\n\n // export as global function\n /*\n let local;\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n local.fetchJsonp = fetchJsonp;\n */\n\n module.exports = fetchJsonp;\n});","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined,\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","export enum PlantronicsCallEventCodes {\n Unknown = 0,\n AcceptCall = 1,\n TerminateCall = 2,\n HoldCall = 3,\n ResumeCall = 4,\n Flash = 5,\n CallInProgress = 6,\n CallRinging = 7,\n CallEnded = 8,\n TransferToHeadset = 9,\n TransferToSpeaker = 10,\n Mute = 11,\n Unmute = 12,\n MobileCallRinging = 13,\n MobileCallInProgress = 14,\n MobileCallEnded = 15,\n DOn = 16,\n DOff = 17,\n CallIdle = 18,\n Play = 19,\n Pause = 20,\n Stop = 21,\n DTMLKey = 22,\n RejectCall = 23,\n MakeCall = 24,\n Hook = 25,\n HookIdle = 26,\n HookDocked = 27,\n HookUndocked = 28,\n BaseEvent = 29,\n CallAnsweredAndEnded = 30,\n CallUnansweredAndEnded = 31,\n DeviceChange = 32,\n DeviceArrived = 33,\n DeviceRemoved = 34,\n}\n\nexport interface PlantronicsCallEvent {\n Action: PlantronicsCallEventCodes;\n CallId: {\n ConferenceId: number;\n Id: number;\n InConference: boolean;\n };\n CallSource: string;\n DeviceEvent: number;\n}\n\n// Don't need this, because CallEvents[code] will return the name\n// const reverseCallEvents: Dictionary;\n// for (const eventName of Object.keys(CallEvents)) {\n// const code = CallEvents[eventName];\n// reverseCallEvents[code] = eventName;\n// }\n\n// export function getEventName (code) {\n// return reverseCallEvents[code];\n// }\n","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import fetchJsonp from 'fetch-jsonp';\nimport { VendorImplementation, ImplementationConfig } from '../vendor-implementation';\nimport { PlantronicsCallEvent, PlantronicsCallEventCodes } from './plantronics-call-events';\nimport browserama from 'browserama';\nimport DeviceInfo from '../../../types/device-info';\nimport { CallInfo } from '../../../types/call-info';\nimport { UpdateReasons } from '../../../types/headset-states';\n\nconst defaultAppName = 'genesys-cloud-headset-library';\n\n/**\n * TODO: This looks like a feasible way to implement the polling we need\n * https://makeitnew.io/polling-using-rxjs-8347d05e9104\n * */\nexport default class PlantronicsService extends VendorImplementation {\n private static instance: PlantronicsService;\n activePollingInterval = 2000;\n connectedDeviceInterval = 6000;\n disconnectedDeviceInterval = 2000;\n deviceIdRetryInterval = 2000;\n vendorName = 'Plantronics';\n pluginName: string;\n apiHost = 'https://127.0.0.1:32018/Spokes';\n isActive = false;\n disableEventPolling = false;\n config: ImplementationConfig;\n deviceStatusTimer = null;\n isRetry = false;\n _deviceInfo: DeviceInfo;\n callEventsTimerId: any;\n deviceStatusTimerId: any;\n incomingConversationId: string;\n callMappings: {[callIdOrConversationId in string|number]: string|number} = {};\n\n private constructor (config: ImplementationConfig) {\n super(config);\n this.config = config;\n this.pluginName = config.appName || defaultAppName;\n this._deviceInfo = null;\n this.callEventsTimerId = null;\n this.deviceStatusTimerId = null;\n this.incomingConversationId = null;\n }\n\n private _createCallMapping (conversationId: string): number {\n const ID_LENGTH = 8;\n const callId = Math.round(Math.random() * Math.pow(10, ID_LENGTH)); // Generate random number\n\n this.callMappings[conversationId] = callId;\n this.callMappings[callId] = conversationId;\n\n this.logger.info('Created callId mapping for plantronics headset', {\n conversationId,\n plantronicsCallId: callId,\n });\n\n return callId;\n }\n\n clearTimeouts (): void {\n clearTimeout(this.callEventsTimerId);\n clearTimeout(this.deviceStatusTimerId);\n }\n\n deviceLabelMatchesVendor (label: string): boolean {\n // includes vendor name or vendorId (chrome only)\n const lowerLabel = label.toLowerCase();\n return ['plantronics', 'plt', 'poly', '(047f:'].some(searchVal => lowerLabel.includes(searchVal));\n }\n\n static getInstance (config: ImplementationConfig): PlantronicsService {\n if (!PlantronicsService.instance || config.createNew) {\n PlantronicsService.instance = new PlantronicsService(config);\n }\n\n return PlantronicsService.instance;\n }\n\n get deviceName (): string | undefined {\n return this._deviceInfo?.ProductName;\n }\n\n get deviceInfo (): DeviceInfo {\n return this._deviceInfo;\n }\n\n get isDeviceAttached (): boolean {\n return !!this.deviceInfo;\n }\n\n pollForCallEvents (): void {\n if (this.callEventsTimerId) {\n clearTimeout(this.callEventsTimerId);\n this.callEventsTimerId = null;\n }\n\n // if(this.isConnected && this.isActive && !this.disableEventPolling) {\n if(this.isConnected && !this.disableEventPolling) {\n this.logger.debug('**** POLLING FOR CALL EVENTS ****');\n this.getCallEvents();\n }\n this.callEventsTimerId = setTimeout(() => {\n this.pollForCallEvents();\n }, this.activePollingInterval);\n }\n\n pollForDeviceStatus (): void {\n if (this.deviceStatusTimerId) {\n clearTimeout(this.deviceStatusTimerId);\n this.deviceStatusTimerId = null;\n }\n\n if (this.isConnected && !this.isConnecting && !this.disableEventPolling) {\n this.logger.debug('**** POLLING FOR DEVICE STATUS ****');\n this.getDeviceStatus();\n }\n this.deviceStatusTimerId = setTimeout(() => {\n this.pollForDeviceStatus();\n }, this.isDeviceAttached ? this.connectedDeviceInterval : this.disconnectedDeviceInterval\n );\n }\n\n async _makeRequestTask (endpoint: string, isRetry?: boolean): Promise<any> {\n return await this._makeRequest(endpoint, isRetry);\n }\n\n _fetch (url: string): Promise<fetchJsonp.Response> {\n return fetchJsonp(url);\n }\n\n async _makeRequest (endpoint: string, isRetry: boolean | undefined): Promise<any> {\n const plantronicsInstance = PlantronicsService.instance;\n return this._fetch(`${this.apiHost}${endpoint}`)\n .then(response => {\n return response.json();\n })\n .then(response => {\n // we should just eat the response if we are not connected and not trying to connect\n if (!this.isConnected && !this.isConnecting) {\n return;\n }\n\n if (response.ok === false || response.Type_Name === 'Error') {\n if (response.status === 404) {\n if (isRetry) {\n this.isConnected && this.changeConnectionStatus({ isConnected: false, isConnecting: this.isConnecting });\n this.disconnect();\n const error = new Error(\n 'Headset: Failed connection to middleware. Headset features unavailable.'\n );\n (error as any).handled = true;\n this.logger.info(error);\n return Promise.reject(error);\n }\n return this._makeRequestTask(endpoint, true);\n }\n\n if (browserama.isFirefox) {\n this.errorCode = 'browser';\n this.disableRetry = true;\n }\n\n return Promise.reject(response);\n } else {\n if (!plantronicsInstance) {\n return Promise.reject(new Error('Application destroyed.'));\n }\n !this.isConnected && this.changeConnectionStatus({ isConnected: true, isConnecting: this.isConnecting });\n return response;\n }\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n async _checkIsActiveTask (): Promise<void> {\n const calls = await this._getActiveCalls();\n this.isActive = !!calls.length;\n }\n\n async _getActiveCalls (): Promise<any[]> {\n let result;\n try {\n const request = await this._makeRequestTask(`/CallServices/CallManagerState?`);\n result = request;\n } catch (e) {\n this.logger.info('Error making request for active calls', e);\n return [];\n }\n\n if (!Array.isArray(result?.Result?.Calls)) {\n return [];\n }\n return result.Result.Calls.filter(call => call.Source === this.pluginName);\n // return result?.Result?.Calls.filter(call => call.Source === this.pluginName);\n }\n\n async getCallEvents (): Promise<any> {\n let response;\n try {\n response = await this._makeRequestTask(`/CallServices/CallEvents?name=${this.pluginName}`);\n } catch (e) {\n this.logger.info('Error making request for call events', e);\n return;\n }\n if (response.Result) {\n response.Result.forEach((event: PlantronicsCallEvent) => {\n const eventType = PlantronicsCallEventCodes[event.Action];\n\n if (!eventType) {\n return this.logger.info('Unknown call event from headset', { event });\n }\n\n const eventInfo = { name: eventType, event };\n this.logger.debug('headset info', eventInfo);\n this.callCorrespondingFunction(eventInfo);\n });\n }\n }\n\n async getDeviceStatus (): Promise<void> {\n await this._makeRequestTask(`/DeviceServices/Info`)\n .then(response => {\n this._deviceInfo = response.Result;\n })\n .catch(err => {\n const noDevicesError = err.Err && err.Err.Description.includes('no supported devices');\n if (!noDevicesError) {\n this.logger.info('Error making request for device status', err);\n }\n });\n }\n\n callCorrespondingFunction (eventInfo: {name: string, event?: PlantronicsCallEvent }): void {\n const callId = eventInfo.event.CallId.Id;\n const conversationId = this.callMappings[callId] as string;\n\n switch (eventInfo.name) {\n case 'AcceptCall':\n this.deviceAnsweredCall({ ...eventInfo, conversationId });\n break;\n case 'RejectCall':\n this.endCall(conversationId);\n this.deviceRejectedCall({ name: eventInfo.name, conversationId: this.incomingConversationId });\n break;\n case 'TerminateCall':\n this.deviceEndedCall({ ...eventInfo, conversationId });\n break;\n case 'CallEnded':\n delete this.callMappings[callId];\n delete this.callMappings[conversationId];\n this._checkIsActiveTask();\n break;\n case 'Mute':\n this.deviceMuteChanged({ isMuted: true, ...eventInfo, conversationId });\n break;\n case 'Unmute':\n this.deviceMuteChanged({ isMuted: false, ...eventInfo, conversationId });\n break;\n case 'HoldCall':\n this.deviceHoldStatusChanged({ holdRequested: true, ...eventInfo, conversationId });\n break;\n case 'ResumeCall':\n this.deviceHoldStatusChanged({ holdRequested: false, ...eventInfo, conversationId });\n break;\n default:\n this.logger.info('A headset event has occurred', { ...eventInfo, conversationId });\n this.deviceEventLogs({ ...eventInfo, conversationId });\n }\n }\n\n async unregisterPlugin (): Promise<any> {\n try {\n return await this._makeRequestTask(`/SessionManager/UnRegister?name=${this.pluginName}`);\n } catch (response: any) {\n if (response?.Err?.Description === 'Invalid plugin name') {\n return;\n }\n\n this.logger.error(response);\n }\n }\n\n async connect (): Promise<any> {\n !this.isConnecting && this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\n this.pollForDeviceStatus();\n this.pollForCallEvents();\n await this.unregisterPlugin();\n return this._makeRequestTask(`/SessionManager/Register?name=${this.pluginName}`)\n .catch(response => {\n if (response.Err && response.Err.Description === 'Plugin exists') {\n return this.logger.debug('Plugin already exists', response);\n }\n\n return Promise.reject(response);\n })\n .then(() =>\n this._makeRequestTask(`/SessionManager/IsActive?name=${this.pluginName}&active=true`)\n )\n .catch(response => {\n if (response.Err && !response.isError) {\n return this.logger.debug('Is Active', response);\n }\n\n return Promise.reject(response);\n })\n .then(response => {\n if (response?.Result !== true) {\n return Promise.reject(response);\n }\n\n return this._makeRequestTask(`/UserPreference/SetDefaultSoftPhone?name=${this.pluginName}`);\n })\n .then(() => {\n this.getDeviceStatus();\n })\n .then(() => {\n return this._getActiveCalls();\n })\n .then(calls => {\n if (calls.length) {\n this.isActive = true;\n this.logger.warn('Plantronics headset should be in vanilla state but is reporting active call state.');\n } else {\n return this.getCallEvents();\n }\n })\n .catch(err => {\n if (!err?.handled) {\n return Promise.reject(err);\n }\n return this.logger.error('Unable to properly connect headset');\n })\n .finally(() => {\n this.isConnecting && this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: false });\n });\n }\n\n async disconnect (clearReason?: UpdateReasons): Promise<any> {\n if (!this.isConnected) {\n return;\n }\n if (clearReason !== 'alternativeClient') {\n await this.unregisterPlugin();\n }\n this.clearTimeouts();\n this._deviceInfo = null;\n this.isConnected && this.changeConnectionStatus({ isConnected: false, isConnecting: this.isConnecting });\n this.isActive = false;\n }\n\n incomingCall (callInfo: CallInfo): Promise<any> {\n this.logger.info('Inside incomingCall of selected implementation (Plantronics/Poly)');\n const { conversationId, contactName } = callInfo;\n if (!conversationId) {\n throw new Error('Must provide conversationId');\n }\n\n // this is because plantronics only accepts numeric callIds, so we have to make one up\n const callId = this._createCallMapping(conversationId);\n\n this.incomingConversationId = conversationId;\n let params = `?name=${this.pluginName}&tones=Unknown&route=ToHeadset`;\n\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n params += `&callID={${encodeURI(halfEncodedCallIdString)}}`;\n\n if (contactName) {\n const halfEncodedContactString = `\"Name\":\"${contactName}\"`;\n params += `&contact={${encodeURI(halfEncodedContactString)}}`;\n }\n\n this.logger.info('params of endpoint', params);\n\n this.isActive = true;\n return this._makeRequestTask(`/CallServices/IncomingCall${params}`);\n }\n\n async outgoingCall ({ conversationId, contactName }: CallInfo): Promise<any> {\n if (!conversationId) {\n throw new Error('Must provide conversationId');\n }\n\n // this is because plantronics only accepts numeric callIds, so we have to make one up\n const callId = this._createCallMapping(conversationId);\n\n let params = `?name=${this.pluginName}&tones=Unknown&route=ToHeadset`;\n\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n params += `&callID={${encodeURI(halfEncodedCallIdString)}}`;\n\n if (contactName) {\n const halfEncodedContactString = `\"Name\":\"${contactName}\"`;\n params += `&contact={${encodeURI(halfEncodedContactString)}}`;\n }\n\n this.isActive = true;\n await this._makeRequestTask(`/CallServices/OutgoingCall${params}`);\n }\n\n async answerCall (conversationId: string, autoAnswer?: boolean): Promise<any> {\n if (autoAnswer) {\n await this.incomingCall({ conversationId });\n }\n const callId = this.callMappings[conversationId];\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n const params = `?name=${this.pluginName}&callID={${encodeURI(halfEncodedCallIdString)}}`;\n\n this.isActive = true;\n this.incomingConversationId = null;\n return this._makeRequestTask(`/CallServices/AnswerCall${params}`);\n }\n\n rejectCall (conversationId: string): Promise<any> {\n this.incomingConversationId = null;\n return this.endCall(conversationId);\n }\n\n async endCall (conversationId: string): Promise<any> {\n let params = `?name=${this.pluginName}`;\n const callId = this.callMappings[conversationId];\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n params += `&callID={${encodeURI(halfEncodedCallIdString)}}`;\n\n const response = await this._makeRequestTask(`/CallServices/TerminateCall${params}`);\n await this.getCallEvents();\n this._checkIsActiveTask();\n return response;\n }\n\n async endAllCalls (): Promise<void> {\n const calls = await this._getActiveCalls();\n calls.forEach(call => this.endCall(this.callMappings[call.CallId] as string));\n }\n\n async setMute (value: boolean): Promise<any> {\n const response = await this._makeRequestTask(\n `/CallServices/MuteCall?name=${this.pluginName}&muted=${value}`\n );\n return response;\n }\n\n async setHold (conversationId: string, value: boolean): Promise<any> {\n const callId = this.callMappings[conversationId];\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n const params = `?name=${this.pluginName}&callID={${encodeURI(halfEncodedCallIdString)}}`;\n const response = await this._makeRequestTask(\n `/CallServices/${value ? 'HoldCall' : 'ResumeCall'}${params}`\n );\n\n return response;\n }\n}","export interface SennheiserPayload {\n CallID?: string;\n DNDOption?: 'Yes' | 'No';\n Event?: SennheiserEvents;\n EventType?: SennheiserEventTypes;\n HeadsetName?: string;\n HeadsetType?: string;\n MuteSupport?: 'Yes' | 'No';\n OffHookSupport?: 'Yes' | 'No';\n RedialSupport?: 'Yes' | 'No';\n ReturnCode?: number;\n SPName?: string;\n SPIconImage?: string;\n}\n\nexport enum SennheiserEvents {\n SocketConnected = 'SocketConnected',\n EstablishConnection = 'EstablishConnection',\n SPLogin = 'SPLoggedIn',\n SPLogout = 'SPLoggedOut',\n TerminateConnection = 'TerminateConnection',\n IncomingCall = 'IncomingCall',\n IncomingCallRejected = 'InCallRejected',\n IncomingCallAccepted = 'InCallAccepted',\n OutgoingCall = 'OutgoingCall',\n CallEnded = 'CallEnded',\n SystemInformation = 'SystemInformation',\n HeadsetConnected = 'HeadsetConnected',\n HeadsetDisconnected = 'HeadsetDisconnected',\n Hold = 'CallHold',\n Resume = 'HeldCallResumed',\n MuteFromApp = 'MuteHeadset',\n UnmuteFromApp = 'UnmuteHeadset',\n MuteFromHeadset = 'MuteSoftphone',\n UnmuteFromHeadset = 'UnmuteSoftphone',\n}\n\nexport enum SennheiserEventTypes {\n Request = 'Request', // outgoing actions\n Notification = 'Notification', // typically actions from headset\n Ack = 'Acknowledgement',\n}\n","/* istanbul ignore file */\n\nimport browserama from 'browserama';\n\nexport function isFirefox (): boolean {\n return browserama.isFireFox;\n}\n\n/**\n *\n * @param promise\n * @param timeoutInMillis\n *\n * Returns a promise that resolves if the passed in promise resolves before the timeout\n * time elapses. If the timeout elapses, then the returned promise rejects with a\n * message that the timeout time was exceeded.\n */\nexport function timedPromise (\n promise: Promise<any>,\n timeoutInMillis: number,\n timeoutError?: Error\n): Promise<any> {\n let timeoutId;\n const timeoutPromise: Promise<any> = new Promise((resolve, reject) => {\n timeoutId = setTimeout(() => {\n clearTimeout(timeoutId);\n reject(timeoutError ? timeoutError : 'Timed out in ' + timeoutInMillis + 'ms');\n }, timeoutInMillis);\n }).then(result => {\n clearTimeout(timeoutId);\n return result;\n });\n\n return Promise.race([promise, timeoutPromise]);\n}\n\nexport function debounce (func: () => void, delay: number): any {\n let timer = null;\n\n return function () {\n clearTimeout(timer);\n\n timer = setTimeout(function () {\n func();\n }, delay);\n };\n}\n\nexport function isCefHosted (): boolean {\n return !!(window as any)._HostedContextFunctions;\n}\n\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nexport function requestCefPromise (cmd: any): Promise<any> {\n/* eslint-enable */\n return new Promise((resolve, reject) => {\n try {\n const sCmd = JSON.stringify(cmd);\n (window as any).cefQuery({\n request: sCmd,\n persistent: false,\n onSuccess: response => {\n try {\n const obj = JSON.parse(response);\n resolve(obj);\n } catch (e) {\n resolve({});\n }\n },\n onFailure: response => {\n reject(response);\n }\n });\n } catch (e) {\n console.error('Error requesting desktop promise', e);\n reject(e);\n }\n });\n}\n","import { VendorImplementation, ImplementationConfig } from '../vendor-implementation';\nimport DeviceInfo from '../../../types/device-info';\nimport { CallInfo } from '../../..';\nimport * as utils from '../../../utils';\nimport { SennheiserPayload, SennheiserEvents, SennheiserEventTypes } from './types';\n\nconst websocketUri = 'wss://127.0.0.1:41088';\n\nexport default class SennheiserService extends VendorImplementation {\n private static instance: SennheiserService;\n\n connectTimeout = 5000;\n\n vendorName = 'Sennheiser';\n isActive = false;\n devices = null;\n activeDeviceId = null;\n websocketConnected = false;\n\n websocket = null;\n deviceInfo: DeviceInfo = null;\n ignoreAcknowledgement = false;\n\n static getInstance (config: ImplementationConfig): SennheiserService {\n if (!SennheiserService.instance || config.createNew) {\n SennheiserService.instance = new SennheiserService(config);\n }\n\n return SennheiserService.instance;\n }\n\n deviceLabelMatchesVendor (label: string): boolean {\n const lowerLabel = label.toLowerCase();\n return ['senn', 'epos'].some(searchVal => lowerLabel.includes(searchVal));\n }\n\n get deviceName (): string {\n return this.deviceInfo && this.deviceInfo.ProductName;\n }\n\n get isDeviceAttached (): boolean {\n return !!this.deviceInfo;\n }\n\n resetHeadsetStateForCall (conversationId: string): Promise<any> {\n this.ignoreAcknowledgement = true;\n return this.endCall(conversationId);\n }\n\n _handleError (payload: SennheiserPayload): void {\n this.logger.error('Non-zero return code from sennheiser', payload);\n }\n _handleAck (payload: SennheiserPayload): void {\n this.logger.debug(`Received Ack for ${payload.Event}`);\n }\n\n _sendMessage (payload: SennheiserPayload): void {\n this.logger.debug('sending sennheiser message', payload);\n this.websocket.send(JSON.stringify(payload));\n }\n\n _registerSoftphone (): void {\n const payload: SennheiserPayload = {\n Event: SennheiserEvents.EstablishConnection,\n EventType: SennheiserEventTypes.Request,\n SPName: 'Genesys Cloud Softphone',\n SPIconImage: 'SPImage.ico',\n RedialSupport: 'No',\n OffHookSupport: 'No',\n MuteSupport: 'Yes',\n DNDOption: 'No',\n };\n\n this._sendMessage(payload);\n }\n\n connect (): Promise<void> {\n this.ignoreAcknowledgement = false;\n !this.isConnecting && this.changeConnectionStatus({ isConnected: false, isConnecting: true });\n\n const socket = new WebSocket(websocketUri);\n socket.onopen = this.webSocketOnOpen.bind(this);\n socket.onclose = this.webSocketOnClose.bind(this);\n socket.onmessage = this._handleMessage.bind(this);\n this.websocket = socket;\n\n return Promise.resolve();\n }\n\n webSocketOnOpen = (): void => {\n this.websocketConnected = true;\n this.logger.info('websocket open the sennheiser software');\n };\n\n webSocketOnClose (err: { code: number, reason: string, wasClean: boolean }): void {\n this.websocketConnected = false;\n if (!err.wasClean) {\n this.logger.error(err);\n }\n if (!this.isConnected) {\n this.logger.error(\n new Error('Failed to connect to sennheiser software. Make sure it is installed')\n );\n if (utils.isFirefox()) {\n this.errorCode = 'browser';\n this.disableRetry = true;\n }\n }\n\n if (this.isConnected || this.isConnecting) {\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\n }\n }\n\n disconnect (): Promise<void> {\n if (!this.isConnected) {\n return Promise.resolve();\n }\n\n this._sendMessage({\n Event: SennheiserEvents.TerminateConnection,\n EventType: SennheiserEventTypes.Request,\n });\n\n return Promise.resolve();\n }\n\n setMute (value: boolean): Promise<void> {\n this._sendMessage({\n Event: value ? SennheiserEvents.MuteFromApp : SennheiserEvents.UnmuteFromApp,\n EventType: SennheiserEventTypes.Request,\n });\n return Promise.resolve();\n }\n\n setHold (conversationId: string, value: boolean): Promise<void> {\n this._sendMessage({\n Event: value ? SennheiserEvents.Hold : SennheiserEvents.Resume,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n\n return Promise.resolve();\n }\n\n incomingCall (callInfo: CallInfo): Promise<void> {\n this.ignoreAcknowledgement = false;\n this._sendMessage({\n Event: SennheiserEvents.IncomingCall,\n EventType: SennheiserEventTypes.Request,\n CallID: callInfo.conversationId,\n });\n\n return Promise.resolve();\n }\n\n answerCall (conversationId: string, autoAnswer?: boolean): Promise<void> {\n if (autoAnswer) {\n this.incomingCall({ conversationId });\n }\n\n this._sendMessage({\n Event: SennheiserEvents.IncomingCallAccepted,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n return Promise.resolve();\n }\n\n rejectCall (conversationId: string): Promise<void> {\n this._sendMessage({\n Event: SennheiserEvents.IncomingCallRejected,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n return Promise.resolve();\n }\n\n outgoingCall (callInfo: CallInfo): Promise<void> {\n this.ignoreAcknowledgement = false;\n const { conversationId } = callInfo;\n\n this._sendMessage({\n Event: SennheiserEvents.OutgoingCall,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n\n return Promise.resolve();\n }\n\n endCall (conversationId: string): Promise<void> {\n this._sendMessage({\n Event: SennheiserEvents.CallEnded,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n\n return Promise.resolve();\n }\n\n endAllCalls (): Promise<void> {\n this.logger.warn('There is no functionality defined for SennheiserService.endAllCalls()');\n return Promise.resolve();\n }\n\n _handleMessage (message: { data: string }): void {\n let payload: SennheiserPayload;\n try {\n payload = JSON.parse(message.data);\n } catch (err) {\n this.logger.error(err);\n this.logger.error('Failed to parse sennheiser payload', { message });\n return;\n }\n this.logger.debug('incoming sennheiser message', payload);\n\n if (payload.ReturnCode) {\n this._handleError(payload);\n return;\n }\n\n const conversationId = payload.CallID;\n\n if (!this.ignoreAcknowledgement) {\n switch (payload.Event) {\n case SennheiserEvents.SocketConnected:\n this._registerSoftphone();\n break;\n case SennheiserEvents.EstablishConnection:\n this._sendMessage({\n Event: SennheiserEvents.SPLogin,\n EventType: SennheiserEventTypes.Request,\n });\n break;\n case SennheiserEvents.SPLogin:\n if (!this.isConnected || this.isConnecting) {\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\n }\n \n this._sendMessage({\n Event: SennheiserEvents.SystemInformation,\n EventType: SennheiserEventTypes.Request,\n });\n break;\n case SennheiserEvents.HeadsetConnected:\n if (payload.HeadsetName) {\n this.deviceInfo = {\n deviceName: payload.HeadsetName,\n headsetType: payload.HeadsetType,\n };\n }\n break;\n case SennheiserEvents.HeadsetDisconnected:\n if (payload.HeadsetName === this.deviceName) {\n this.deviceInfo = null;\n }\n\n break;\n case SennheiserEvents.IncomingCallAccepted:\n if (payload.EventType === SennheiserEventTypes.Notification) {\n this.deviceAnsweredCall({ name: payload.Event, conversationId });\n }\n\n break;\n case SennheiserEvents.Hold:\n if (payload.EventType === SennheiserEventTypes.Ack) {\n this._handleAck(payload);\n break;\n }\n this.deviceHoldStatusChanged({ holdRequested: true, name: payload.Event, conversationId });\n break;\n case SennheiserEvents.Resume:\n if (payload.EventType === SennheiserEventTypes.Ack) {\n this._handleAck(payload);\n break;\n }\n this.deviceHoldStatusChanged({ holdRequested: false, name: payload.Event, conversationId });\n break;\n case SennheiserEvents.MuteFromHeadset:\n this.deviceMuteChanged({ isMuted: true, name: payload.Event });\n break;\n case SennheiserEvents.UnmuteFromHeadset:\n this.deviceMuteChanged({ isMuted: false, name: payload.Event });\n break;\n case SennheiserEvents.CallEnded:\n if (payload.EventType === SennheiserEventTypes.Notification) {\n this.deviceEndedCall({ name: payload.Event, conversationId });\n }\n break;\n case SennheiserEvents.IncomingCallRejected:\n this.deviceRejectedCall({ name: payload.Event, conversationId });\n break;\n case SennheiserEvents.TerminateConnection:\n if (this.websocket.readyState === 1) {\n this.websocket.close();\n }\n this.websocket = null;\n break;\n default:\n if (payload.EventType === SennheiserEventTypes.Ack) {\n // this is mostly for testing purposes so we can confirm reciept of events we don't normally care about\n this._handleAck(payload);\n }\n break;\n }\n }\n }\n}","import { createErrorClass } from './createErrorClass';\nexport var EmptyError = createErrorClass(function (_super) { return function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n}; });\n//# sourceMappingURL=EmptyError.js.map","import { EmptyError } from './util/EmptyError';\nimport { SafeSubscriber } from './Subscriber';\nexport function firstValueFrom(source, config) {\n var hasConfig = typeof config === 'object';\n return new Promise(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n resolve(value);\n subscriber.unsubscribe();\n },\n error: reject,\n complete: function () {\n if (hasConfig) {\n resolve(config.defaultValue);\n }\n else {\n reject(new EmptyError());\n }\n },\n });\n source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=firstValueFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n _this._scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { isValidDate } from '../util/isDate';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createErrorClass } from '../util/createErrorClass';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport var TimeoutError = createErrorClass(function (_super) {\n return function TimeoutErrorImpl(info) {\n if (info === void 0) { info = null; }\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n };\n});\nexport function timeout(config, schedulerArg) {\n var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate(function (source, subscriber) {\n var originalSourceSubscription;\n var timerSubscription;\n var lastValue = null;\n var seen = 0;\n var startTimer = function (delay) {\n timerSubscription = executeSchedule(subscriber, scheduler, function () {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta: meta,\n lastValue: lastValue,\n seen: seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, function () {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n//# sourceMappingURL=timeout.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=defaultIfEmpty.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=filter.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () { return (hasValue ? subscriber.complete() : subscriber.error(errorFactory())); }));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); }));\n };\n}\n//# sourceMappingURL=first.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","export enum JabraNativeCommands {\n Ring = 'ringer',\n Offhook = 'offhook',\n Mute = 'mute',\n Hold = 'hold',\n}\n\nexport interface JabraNativeHeadsetState {\n ringing: boolean;\n offHook: boolean;\n}\n\nexport const HeadsetEvent = 'JabraEvent';\nexport const DeviceEvent = 'JabraDeviceAttached';\n\ntype HeadsetEvent = typeof HeadsetEvent;\ntype DeviceEvent = typeof DeviceEvent;\n\nexport interface JabraHeadsetEvent {\n msg: HeadsetEvent;\n eventName: JabraNativeEventNames;\n value?: any;\n hidInput: string;\n}\n\nexport interface JabraDeviceEvent {\n msg: DeviceEvent;\n attached: boolean;\n deviceId: number;\n deviceName: string;\n}\n\nexport enum JabraNativeEventNames {\n OffHook = 'OffHook',\n Mute = 'Mute',\n Hold = 'Flash',\n RejectCall = 'RejectCall',\n}\n","import { VendorImplementation, ImplementationConfig } from '../vendor-implementation';\nimport DeviceInfo from '../../../types/device-info';\nimport {\n IApi,\n CallControlFactory,\n SignalType,\n ICallControl,\n ErrorType,\n init,\n RequestedBrowserTransport,\n webHidPairing,\n IDevice,\n} from '@gnaudio/jabra-js';\nimport { CallInfo } from '../../..';\nimport { Subscription, firstValueFrom, Observable, TimeoutError, EmptyError } from 'rxjs';\nimport { defaultIfEmpty, filter, first, map, timeout } from 'rxjs/operators';\nimport { isCefHosted } from '../../../utils';\n\nexport default class JabraService extends VendorImplementation {\n private static instance: JabraService;\n private headsetEventSubscription: Subscription;\n static connectTimeout = 5000;\n\n isActive = false;\n _deviceInfo: DeviceInfo;\n isMuted = false;\n isHeld = false;\n version: string = null;\n _connectDeferred: any; // { resolve: Function, reject: Function }\n jabraSdk: IApi;\n callControlFactory: CallControlFactory;\n callControl: ICallControl;\n ongoingCalls = 0;\n callLock = false;\n pendingConversationId: string;\n pendingConversationIsOutbound: boolean;\n activeConversationId: string;\n\n private constructor (config: ImplementationConfig) {\n super(config);\n this.vendorName = 'Jabra';\n }\n\n isSupported (): boolean {\n return (window.navigator as any).hid && !isCefHosted();\n }\n\n deviceLabelMatchesVendor (label: string): boolean {\n const lowerLabel = label.toLowerCase();\n if (['jabra'].some((searchVal) => lowerLabel.includes(searchVal))) {\n return true;\n }\n return false;\n }\n\n static getInstance (config: ImplementationConfig): JabraService {\n if (!JabraService.instance || config.createNew) {\n JabraService.instance = new JabraService(config);\n }\n\n return JabraService.instance;\n }\n\n get deviceInfo (): DeviceInfo {\n return this._deviceInfo;\n }\n\n get deviceName (): string {\n return this.deviceInfo?.deviceName;\n }\n\n get isDeviceAttached (): boolean {\n return !!this.deviceInfo;\n }\n\n resetState (): void {\n this.setHold(null, false);\n this.setMute(false);\n }\n\n _processEvents (callControl: ICallControl): void {\n this.headsetEventSubscription = callControl.deviceSignals.subscribe(async (signal) => {\n if (!this.callLock) {\n this.logger.debug(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n return;\n }\n\n switch (signal.type) {\n case SignalType.HOOK_SWITCH:\n // do nothing when the end call button is pressed and we have an incoming call while we have an active call\n if (this.activeConversationId && this.pendingConversationId) {\n this.logger.info('ignoring hookswitch event because there is an active and incoming call');\n break;\n }\n\n if (signal.value) {\n callControl.offHook(true);\n callControl.ring(false);\n this.activeConversationId = this.pendingConversationId;\n this.pendingConversationId = null;\n if (!this.pendingConversationIsOutbound) {\n this.deviceAnsweredCall({\n name: 'CallOffHook',\n code: signal.type,\n conversationId: this.activeConversationId,\n });\n }\n } else {\n callControl.mute(false);\n callControl.hold(false);\n callControl.offHook(false);\n this.deviceEndedCall({\n name: 'CallOnHook',\n code: signal.type,\n conversationId: this.activeConversationId,\n });\n try {\n callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.activeConversationId = null;\n this.callLock = false;\n }\n }\n break;\n case SignalType.FLASH:\n case SignalType.ALT_HOLD:\n this.isHeld = !this.isHeld;\n callControl.hold(this.isHeld);\n this.deviceHoldStatusChanged({\n holdRequested: this.isHeld,\n name: this.isHeld ? 'OnHold' : 'ResumeCall',\n code: signal.type,\n conversationId: this.activeConversationId,\n });\n break;\n case SignalType.PHONE_MUTE:\n this.isMuted = !this.isMuted;\n callControl.mute(this.isMuted);\n this.deviceMuteChanged({\n isMuted: this.isMuted,\n name: this.isMuted ? 'CallMuted' : 'CallUnmuted',\n code: signal.type,\n conversationId: this.activeConversationId,\n });\n break;\n case SignalType.REJECT_CALL:\n callControl.ring(false);\n this.deviceRejectedCall({\n name: SignalType[signal.type],\n conversationId: this.pendingConversationId,\n });\n this.pendingConversationId = null;\n try {\n // we only want to release call controls if there isn't another call active\n if (!this.activeConversationId) {\n callControl.releaseCallLock();\n this.callLock = false;\n }\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n }\n }\n });\n }\n\n async setMute (value: boolean): Promise<void> {\n if (!this.callLock) {\n return;\n }\n this.isMuted = value;\n this.callControl.mute(value);\n }\n\n async setHold (conversationId: string, value: boolean): Promise<void> {\n if (!this.callLock) {\n return;\n }\n this.isHeld = value;\n this.callControl.hold(value);\n }\n\n async incomingCall (callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n this.pendingConversationIsOutbound = false;\n try {\n this.callLock = await this.callControl.takeCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n this.callLock = true;\n } else {\n this.logger.error(type, message);\n }\n }\n\n if (this.callLock) {\n this.callControl.ring(true);\n }\n }\n\n async answerCall (conversationId: string, autoAnswer?: boolean): Promise<void> {\n if (autoAnswer) {\n this.pendingConversationId = conversationId;\n try {\n this.callLock = await this.callControl.takeCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n this.callLock = true;\n } else {\n this.logger.error(type, message);\n }\n }\n }\n\n if (!this.callLock) {\n return;\n }\n\n this.callControl.ring(false);\n this.callControl.offHook(true);\n }\n\n async rejectCall (): Promise<void> {\n if (!this.callLock) {\n return this.logger.info(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n }\n this.callControl.ring(false);\n this.pendingConversationId = null;\n if (!this.activeConversationId) {\n try {\n this.resetState();\n this.callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.pendingConversationId = null;\n this.callLock = false;\n }\n }\n }\n\n async outgoingCall (callInfo: CallInfo): Promise<void> {\n try {\n this.callLock = await this.callControl.takeCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n this.callLock = true;\n } else {\n this.logger.error(type, message);\n }\n }\n\n if (this.callLock) {\n this.pendingConversationId = callInfo.conversationId;\n this.pendingConversationIsOutbound = true;\n this.callControl.offHook(true);\n }\n }\n\n async endCall (conversationId: string, hasOtherActiveCalls: boolean): Promise<void> {\n if (hasOtherActiveCalls) {\n return;\n }\n\n if (conversationId === this.activeConversationId) {\n this.activeConversationId = null;\n }\n\n try {\n if (!this.callLock) {\n return this.logger.info(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n }\n this.callControl.offHook(false);\n this.resetState();\n this.callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.callLock = false;\n }\n }\n\n async endAllCalls (): Promise<void> {\n try {\n if (!this.callLock) {\n return this.logger.info(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n }\n this.activeConversationId = null;\n this.callControl.offHook(false);\n this.resetState();\n this.callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.callLock = false;\n }\n }\n\n isDeviceInList (device: IDevice, deviceLabel: string): boolean {\n return deviceLabel.toLowerCase().includes(device?.name?.toLowerCase());\n }\n\n async connect (originalDeviceLabel: string): Promise<void> {\n if (this.isConnecting) {\n return;\n }\n\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\n if (!this.jabraSdk) {\n this.jabraSdk = await this.initializeJabraSdk();\n this.callControlFactory = this.createCallControlFactory(this.jabraSdk);\n }\n\n const deviceLabel = originalDeviceLabel.toLocaleLowerCase();\n\n this._deviceInfo = null;\n\n let selectedDevice = await this.getPreviouslyConnectedDevice(deviceLabel);\n if (!selectedDevice) {\n try {\n selectedDevice = await this.getDeviceFromWebhid(deviceLabel);\n } catch (e) {\n this.isConnecting &&\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: false });\n return;\n }\n }\n\n this.callControl = await this.callControlFactory.createCallControl(selectedDevice);\n await this.resetHeadsetState();\n this._processEvents(this.callControl);\n this._deviceInfo = {\n ProductName: selectedDevice.name,\n deviceName: selectedDevice.name,\n attached: true,\n deviceId: selectedDevice.id.toString(),\n };\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\n }\n\n async getPreviouslyConnectedDevice (deviceLabel: string): Promise<IDevice> {\n // we want to wait for up to 2 events or timeout after 2 seconds\n const waitForDevice: Observable<IDevice> = this.jabraSdk.deviceList.pipe(\n defaultIfEmpty(null),\n first((devices: IDevice[]) => !!devices.length),\n map((devices: IDevice[]) =>\n devices.find((device) => this.isDeviceInList(device, deviceLabel))\n ),\n filter((device) => !!device),\n timeout(3000)\n );\n\n return firstValueFrom(waitForDevice).catch((err) => {\n if (err instanceof TimeoutError || err instanceof EmptyError) {\n return null;\n }\n\n return Promise.reject(err);\n });\n }\n\n async getDeviceFromWebhid (deviceLabel: string): Promise<IDevice> {\n this.requestWebHidPermissions(webHidPairing);\n\n return firstValueFrom(\n this.jabraSdk.deviceList.pipe(\n map((devices: IDevice[]) =>\n devices.find((device) => this.isDeviceInList(device, deviceLabel))\n ),\n filter((device) => !!device),\n first(),\n timeout(30000)\n )\n ).catch((err) => {\n if (err instanceof TimeoutError) {\n err = new Error('The selected device was not granted WebHID permissions');\n }\n this.logger.error(err);\n return Promise.reject(err);\n });\n }\n\n /* istanbul ignore next */\n async initializeJabraSdk (): Promise<IApi> {\n return init({\n appId: 'softphone-vendor-headsets',\n appName: 'Softphone Headset Library',\n transport: RequestedBrowserTransport.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK,\n });\n }\n\n /* istanbul ignore next */\n createCallControlFactory (sdk: IApi): CallControlFactory {\n return new CallControlFactory(sdk);\n }\n\n checkForCallLockError (message: unknown, type: unknown): boolean {\n return (\n (type as ErrorType) === ErrorType.SDK_USAGE_ERROR && (message as string).includes('call lock')\n );\n }\n\n async resetHeadsetState (): Promise<void> {\n if (!this.callControl) {\n return;\n }\n\n try {\n await this.callControl.takeCallLock();\n this.callControl.hold(false);\n this.callControl.mute(false);\n this.callControl.offHook(false);\n this.callControl.releaseCallLock();\n } catch (e) {\n this.logger.warn('Failed to takeCallLock in order to resetHeadsetState. Ignoring reset.');\n } \n }\n\n async disconnect (): Promise<void> {\n try {\n if (!this.callLock) {\n return this.logger.info(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n }\n this.callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.resetHeadsetState();\n this.callLock = false;\n this.headsetEventSubscription && this.headsetEventSubscription.unsubscribe();\n (this.isConnected || this.isConnecting) &&\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\n }\n }\n}","import { debounce, isCefHosted, requestCefPromise, timedPromise } from '../../../../utils';\nimport { VendorImplementation, ImplementationConfig } from '../../vendor-implementation';\nimport DeviceInfo from '../../../../types/device-info';\nimport { CallInfo } from '../../../../types/call-info';\nimport { JabraNativeHeadsetState, JabraHeadsetEvent, HeadsetEvent, JabraDeviceEvent, DeviceEvent, JabraNativeCommands, JabraNativeEventNames } from './types';\n\nconst connectTimeout = 5000;\nconst offHookThrottleTime = 500;\n\nexport default class JabraNativeService extends VendorImplementation {\n private static instance: JabraNativeService;\n\n isActive = false;\n devices: Map<string, DeviceInfo> = null;\n activeDeviceId: string = null;\n headsetState: JabraNativeHeadsetState = null;\n ignoreNextOffhookEvent = false;\n cefSupportsJabra = true;\n pendingConversationId: string;\n activeConversationId: string;\n pendingConversationIsOutbound: boolean;\n\n private constructor(config: ImplementationConfig) {\n super(config);\n this.vendorName = 'Jabra';\n this.headsetState = { ringing: false, offHook: false };\n this.devices = new Map<string, DeviceInfo>();\n\n if (isCefHosted()) {\n if (this.isHostedContextInitialized()) {\n this.setupNativeHandlers();\n } else {\n this.waitForHostedContext();\n }\n }\n }\n\n private isHostedContextInitialized (): boolean {\n return (window as any).Orgspan?.serviceFor('application').get('hostedContext').isHosted();\n }\n\n private waitForHostedContext () {\n setTimeout(() => {\n if (this.isHostedContextInitialized()) {\n this.setupNativeHandlers()\n } else {\n this.waitForHostedContext();\n }\n }, 500);\n }\n\n private setupNativeHandlers () {\n const hostedContext = (window as any).Orgspan?.serviceFor('application').get('hostedContext');\n this.cefSupportsJabra = hostedContext.supportsJabra();\n hostedContext.on('JabraEvent', this.handleJabraEvent.bind(this));\n hostedContext.on('JabraDeviceAttached', this.handleJabraDeviceAttached.bind(this));\n }\n\n static getInstance(config: ImplementationConfig): JabraNativeService {\n if (!JabraNativeService.instance || config.createNew) {\n JabraNativeService.instance = new JabraNativeService(config);\n }\n\n return JabraNativeService.instance;\n }\n\n get deviceInfo(): DeviceInfo {\n if (\n this.activeDeviceId === null ||\n this.devices === null ||\n (this.devices && !this.devices.size)\n ) {\n return null;\n }\n\n return this.devices.get(this.activeDeviceId);\n }\n\n get deviceName(): string {\n return this.deviceInfo && this.deviceInfo.deviceName;\n }\n\n get isDeviceAttached(): boolean {\n return !!this.deviceInfo;\n }\n\n private isHeadsetEvent (event: any): event is JabraHeadsetEvent {\n return event.msg === HeadsetEvent;\n }\n\n private isDeviceEvent (event: any): event is JabraDeviceEvent {\n return event.msg === DeviceEvent;\n }\n\n private handleCefEvent(event: any): void {\n if (!this.isConnected) {\n return;\n }\n\n if (this.isDeviceEvent(event)) {\n this.handleJabraDeviceAttached(event)\n } else if (this.isHeadsetEvent(event)) {\n this.handleJabraEvent(event);\n }\n }\n\n private handleJabraDeviceAttached(event: JabraDeviceEvent): void {\n this.logger.debug('handling jabra attach/detach event', event);\n this.updateDevices();\n }\n\n private handleJabraEvent(event: JabraHeadsetEvent): void {\n this.logger.debug(`Jabra event received`, event);\n this._processEvent(event.eventName, event.value);\n }\n\n private _handleOffhookEvent(isOffhook: boolean): void {\n // if is incoming\n if (isOffhook) {\n this.activeConversationId = this.pendingConversationId;\n this.pendingConversationId = null;\n if (this.headsetState.ringing) {\n\n if (!this.pendingConversationIsOutbound) {\n this.deviceAnsweredCall({name: 'CallOffHook', conversationId: this.activeConversationId});\n }\n\n // jabra requires you to echo the event back in acknowledgement\n this._sendCmd(JabraNativeCommands.Offhook, isOffhook);\n this._setRinging(false);\n }\n\n return;\n }\n\n if (this.activeConversationId) {\n this._sendCmd(JabraNativeCommands.Offhook, isOffhook);\n this.deviceEndedCall({name: 'CallOnHook', conversationId: this.activeConversationId});\n }\n this._getHeadsetIntoVanillaState();\n this.activeConversationId = null;\n }\n\n private _handleMuteEvent(isMuted: boolean): void {\n // jabra requires you to echo the event back in acknowledgement\n this._sendCmd(JabraNativeCommands.Mute, isMuted);\n this.isMuted = isMuted;\n this.deviceMuteChanged({\n isMuted: isMuted,\n name: isMuted ? 'CallMuted' : 'CallUnmuted',\n conversationId: this.activeConversationId\n });\n }\n\n private _handleHoldEvent(isHeld: boolean): void {\n // jabra requires you to echo the event back in acknowledgement\n this._sendCmd(JabraNativeCommands.Hold, !!isHeld);\n this.deviceHoldStatusChanged({\n holdRequested: !!isHeld,\n name: !!isHeld ? 'OnHold' : 'ResumeCall',\n conversationId: this.activeConversationId\n });\n }\n\n private _getHeadsetIntoVanillaState(): void {\n this.setHold(null, false);\n this.setMute(false);\n }\n\n private _sendCmd(cmd: JabraNativeCommands, value: boolean): void {\n const deviceId = this.activeDeviceId;\n this.logger.debug('Sending command to headset', { deviceId, cmd, value });\n\n (window as any)._HostedContextFunctions.sendEventToDesktop(\n 'jabraEvent',\n {\n deviceID: deviceId,\n event: cmd,\n value\n }\n );\n }\n\n private _setRinging(value: boolean): void {\n this._sendCmd(JabraNativeCommands.Ring, value);\n this.headsetState.ringing = value;\n }\n\n isSupported (): boolean {\n return isCefHosted() && this.cefSupportsJabra;\n }\n\n deviceLabelMatchesVendor(label: string): boolean {\n const lowerLabel = label.toLowerCase();\n return ['jabra'].some(searchVal => lowerLabel.includes(searchVal));\n }\n\n async setMute(value: boolean): Promise<void> {\n this._sendCmd(JabraNativeCommands.Mute, value);\n }\n\n async setHold(conversationId: string, value: boolean): Promise<void> {\n this._sendCmd(JabraNativeCommands.Hold, value);\n }\n\n async incomingCall(callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n this.pendingConversationIsOutbound = false;\n this._setRinging(true);\n }\n\n async answerCall(conversationId: string, autoAnswer?: boolean): Promise<void> {\n if (autoAnswer) {\n this.pendingConversationId = conversationId;\n }\n // HACK: for some reason the headset echos an offhook event even though it was the app that answered the call rather than the headset\n this.ignoreNextOffhookEvent = true;\n this._sendCmd(JabraNativeCommands.Offhook, true);\n }\n\n async rejectCall(): Promise<void> {\n this._setRinging(false);\n this.pendingConversationId = null;\n }\n\n async outgoingCall(callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n this.pendingConversationIsOutbound = true;\n this._sendCmd(JabraNativeCommands.Offhook, true);\n }\n\n async endCall(conversationId: string, hasOtherActiveCalls: boolean): Promise<void> {\n this._setRinging(false);\n\n if (!hasOtherActiveCalls) {\n this._sendCmd(JabraNativeCommands.Offhook, false);\n }\n this.activeConversationId = null;\n }\n\n async endAllCalls(): Promise<void> {\n this._setRinging(false);\n this._sendCmd(JabraNativeCommands.Offhook, false);\n this.activeConversationId = null;\n }\n\n async updateDevices(): Promise<void> {\n try {\n const data = (await requestCefPromise({ cmd: 'requestJabraDevices' })) as DeviceInfo[];\n\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\n\n if (!data || !data.length) {\n this.devices.clear();\n this.activeDeviceId = null;\n\n this.logger.error(new Error('No attached jabra devices'));\n return;\n }\n\n this.logger.info('connected jabra devices', data);\n this.devices.clear();\n data.forEach(device => this.devices.set(device.deviceID, device));\n this.activeDeviceId = data[0].deviceID;\n\n // reset headset state\n this._setRinging(false);\n this.setMute(false);\n } catch (err) {\n this.logger.error('Failed to connect to jabra', err);\n this.disconnect();\n }\n }\n\n private _processEvent(eventName: any, value: any): void {\n switch (eventName) {\n case JabraNativeEventNames.OffHook:\n debounce(() => this._handleOffhookEvent(value), offHookThrottleTime)();\n break;\n\n case JabraNativeEventNames.RejectCall:\n this.deviceRejectedCall({name: JabraNativeEventNames.RejectCall, conversationId: this.pendingConversationId});\n break;\n\n case JabraNativeEventNames.Mute:\n this._handleMuteEvent(value);\n break;\n\n case JabraNativeEventNames.Hold:\n this._handleHoldEvent(value);\n break;\n }\n }\n\n connect(): Promise<void> {\n this.changeConnectionStatus({ isConnected: false, isConnecting: true });\n\n return timedPromise(this.updateDevices(), connectTimeout).catch(err => {\n this.logger.error('Failed to connect to Jabra', err);\n });\n }\n\n disconnect(): Promise<void> {\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\n\n return Promise.resolve();\n }\n}","import { VendorImplementation, ImplementationConfig } from \"../vendor-implementation\";\r\nimport { CallInfo } from '../../..';\r\nimport DeviceInfo, { PartialHIDDevice } from \"../../../types/device-info\";\r\nimport { PartialInputReportEvent } from '../../../types/consumed-headset-events';\r\nimport { isCefHosted } from \"../../../utils\";\r\n\r\nconst offhookFlag = 0b1;\r\nconst muteFlag = 0b10;\r\nconst ringFlag = 0b100;\r\nconst holdFlag = 0b1000;\r\nconst recMuteFlag = 0b100;\r\nconst recReject = 0x40;\r\nconst HEADSET_USAGE = 0x0005;\r\nconst HEADSET_USAGE_PAGE = 0x000B;\r\n\r\nexport default class YealinkService extends VendorImplementation {\r\n private static instance: YealinkService;\r\n\r\n private pendingConversationId: string;\r\n private activeConversationId: string;\r\n\r\n private _deviceInfo: DeviceInfo = null;\r\n private activeDevice: any;\r\n\r\n private callState = 0;\r\n private recCallState = 0;\r\n\r\n private isHold = false;\r\n\r\n private inputReportReportId: null|number = null;\r\n vendorName = 'Yealink';\r\n\r\n static getInstance (config: ImplementationConfig): YealinkService {\r\n if (!YealinkService.instance) {\r\n YealinkService.instance = new YealinkService(config);\r\n }\r\n\r\n return YealinkService.instance;\r\n }\r\n\r\n get deviceInfo (): DeviceInfo {\r\n return this._deviceInfo;\r\n }\r\n\r\n isSupported (): boolean {\r\n return (window.navigator as any).hid && !isCefHosted();\r\n }\r\n\r\n deviceLabelMatchesVendor (label: string): boolean {\r\n const lowerLabel = label.toLowerCase();\r\n return ['yealink', '(6993:'].some(searchVal => lowerLabel.includes(searchVal));\r\n }\r\n\r\n async connect (originalDeviceLabel: string): Promise<void> {\r\n if (!this.isConnecting) {\r\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\r\n }\r\n const deviceLabel = originalDeviceLabel.toLowerCase();\r\n\r\n const deviceList: PartialHIDDevice[] = await (window.navigator as any).hid.getDevices();\r\n deviceList.forEach(device => {\r\n if (!this.activeDevice) {\r\n if (deviceLabel.includes(device?.productName?.toLowerCase())) {\r\n for (const collection of device.collections) {\r\n if (collection.usage === HEADSET_USAGE &&\r\n collection.usagePage === HEADSET_USAGE_PAGE) {\r\n this.activeDevice = device;\r\n if (collection.inputReports.length !== 0) {\r\n this.inputReportReportId = collection.inputReports[0].reportId;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (!this.activeDevice) {\r\n try {\r\n this.activeDevice = await new Promise((resolve, reject) => {\r\n const waiter = setTimeout(reject, 30000);\r\n this.requestWebHidPermissions(async () => {\r\n const filters = [{ usage: HEADSET_USAGE, usagePage: HEADSET_USAGE_PAGE }];\r\n await (window.navigator as any).hid.requestDevice({ filters });\r\n clearTimeout(waiter);\r\n const deviceLists: PartialHIDDevice[] = await (window.navigator as any).hid.getDevices();\r\n let bFind = false;\r\n deviceLists.forEach(device => {\r\n if (deviceLabel.includes(device?.productName?.toLowerCase())) {\r\n for (const collection of device.collections) {\r\n if (collection.usage === HEADSET_USAGE\r\n && collection.usagePage === HEADSET_USAGE_PAGE) {\r\n bFind = true;\r\n if (collection.inputReports.length !== 0) {\r\n this.inputReportReportId = collection.inputReports[0].reportId;\r\n }\r\n resolve(device);\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n if (!bFind) {\r\n reject();\r\n }\r\n });\r\n });\r\n } catch (error) {\r\n this.isConnecting && this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: false });\r\n this.logger.error('The selected device was not granted WebHID permissions');\r\n return;\r\n }\r\n }\r\n\r\n if (!this.activeDevice.opened) {\r\n await this.activeDevice.open();\r\n }\r\n\r\n this.logger.debug(`get device reportId ${this.inputReportReportId}`);\r\n this.activeDevice.addEventListener('inputreport', (event: PartialInputReportEvent) => {\r\n if (event.reportId !== this.inputReportReportId) {\r\n return;\r\n }\r\n const value = event.data.getUint8(0);\r\n\r\n this.processBtnPress(value);\r\n });\r\n this._deviceInfo = {\r\n ProductName: this.activeDevice.productName,\r\n };\r\n\r\n if (this.isConnecting && !this.isConnected) {\r\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\r\n }\r\n }\r\n\r\n async disconnect (): Promise<void> {\r\n if (this.isConnected || this.isConnecting) {\r\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\r\n }\r\n if (this.activeDevice) {\r\n this.activeDevice.close();\r\n this.activeDevice = null;\r\n this._deviceInfo = null;\r\n this.inputReportReportId = 0;\r\n }\r\n }\r\n\r\n processBtnPress (value: number): void {\r\n if (!this.activeDevice) {\r\n this.logger.error('do not have active device');\r\n return;\r\n }\r\n this.logger.debug(`User pressed button ${value}. local ${this.recCallState}`);\r\n const changeFlag = value ^ this.recCallState;\r\n if (changeFlag === 0) {\r\n return;\r\n }\r\n if (value !== 0\r\n && (this.callState & (~muteFlag)) === 0) {\r\n this.logger.debug(`Not talking, ignore key`);\r\n return;\r\n }\r\n this.recCallState = value;\r\n if (changeFlag & offhookFlag) {\r\n if (value & offhookFlag) {\r\n this.answerCall();\r\n if (this.activeConversationId) {\r\n this.deviceAnsweredCall({\r\n name: 'OffHook',\r\n conversationId: this.activeConversationId,\r\n });\r\n }\r\n else {\r\n this.logger.debug(`activeConversationId is empty`);\r\n }\r\n } else if (!this.isHold) {\r\n this.sendOpToDevice(this.isMuted ? muteFlag : 0);\r\n if (this.activeConversationId) {\r\n this.deviceEndedCall({\r\n name: 'OnHook',\r\n conversationId: this.activeConversationId,\r\n });\r\n }\r\n else {\r\n this.logger.debug(`activeConversationId is empty`);\r\n }\r\n this.activeConversationId = null;\r\n }\r\n } else if (changeFlag & recMuteFlag) {\r\n if (value & recMuteFlag) {\r\n this.setMute(!this.isMuted);\r\n this.deviceMuteChanged({\r\n isMuted: this.isMuted,\r\n name: this.isMuted ? 'CallMuted' : 'CallUnmuted',\r\n conversationId: this.activeConversationId,\r\n });\r\n }\r\n } else if (changeFlag & holdFlag) {\r\n if (value & holdFlag) {\r\n this.setHold(null, !this.isHold);\r\n this.deviceHoldStatusChanged({\r\n holdRequested: this.isHold,\r\n name: this.isHold ? 'OnHold' : 'ResumeCall',\r\n conversationId: this.activeConversationId,\r\n });\r\n }\r\n } else if (changeFlag & recReject) {\r\n if (value & recReject) {\r\n this.deviceRejectedCall({\r\n name: 'Reject',\r\n conversationId: this.pendingConversationId,\r\n });\r\n this.rejectCall();\r\n }\r\n }\r\n }\r\n\r\n async incomingCall (callInfo: CallInfo): Promise<void> {\r\n if (callInfo) {\r\n this.pendingConversationId = callInfo.conversationId;\r\n const val = this.isMuted ? muteFlag : 0;\r\n this.sendOpToDevice(val | ringFlag);\r\n }\r\n }\r\n\r\n async outgoingCall (callInfo: CallInfo): Promise<void> {\r\n this.pendingConversationId = callInfo.conversationId;\r\n this.sendOpToDevice(offhookFlag);\r\n }\r\n\r\n async answerCall (): Promise<void> {\r\n if (this.pendingConversationId) {\r\n this.activeConversationId = this.pendingConversationId;\r\n this.pendingConversationId = null;\r\n }\r\n const val = this.isMuted ? muteFlag : 0;\r\n this.sendOpToDevice(val | offhookFlag);\r\n }\r\n\r\n async rejectCall (): Promise<void> {\r\n this.pendingConversationId = null;\r\n this.sendOpToDevice(this.isMuted ? muteFlag : 0);\r\n }\r\n\r\n async endCall (conversationId: string, hasOtherActiveCalls: boolean): Promise<void> {\r\n if (hasOtherActiveCalls) {\r\n return;\r\n }\r\n\r\n if (conversationId === this.activeConversationId) {\r\n this.activeConversationId = null;\r\n }\r\n // keep mute state\r\n this.sendOpToDevice(this.isMuted ? muteFlag : 0);\r\n }\r\n\r\n async endAllCalls (): Promise<void> {\r\n this.activeConversationId = null;\r\n this.sendOpToDevice(this.isMuted ? muteFlag : 0);\r\n }\r\n\r\n async setMute (value: boolean): Promise<void> {\r\n if (value) {\r\n this.sendOpToDevice(this.callState | muteFlag);\r\n } else {\r\n this.sendOpToDevice(this.callState & (~muteFlag));\r\n }\r\n }\r\n\r\n async setHold (conversationId: string, value: boolean): Promise<void> {\r\n if (value) {\r\n const setValue = this.callState & (~offhookFlag);\r\n this.sendOpToDevice(setValue | holdFlag);\r\n } else {\r\n const setValue = this.callState & (~holdFlag);\r\n this.sendOpToDevice(setValue | offhookFlag);\r\n }\r\n }\r\n\r\n async sendOpToDevice (value: number): Promise<void> {\r\n if (!this.activeDevice || this.inputReportReportId === 0) {\r\n this.logger.error('do not have active device');\r\n return;\r\n }\r\n\r\n if (value & holdFlag) {\r\n this.isHold = true;\r\n } else {\r\n this.isHold = false;\r\n }\r\n\r\n if (value & muteFlag) {\r\n this.isMuted = true;\r\n } else {\r\n this.isMuted = false;\r\n }\r\n\r\n this.logger.debug(`send to dev ${value}`);\r\n this.callState = value;\r\n await this.activeDevice.sendReport(this.inputReportReportId, new Uint8Array([value]));\r\n }\r\n}","import { VendorImplementation, ImplementationConfig } from '../vendor-implementation';\nimport { CallInfo } from '../../..';\nimport DeviceInfo from '../../../types/device-info';\nimport { PartialInputReportEvent } from '../../../types/consumed-headset-events';\nimport { isCefHosted } from '../../../utils';\n\nconst HEADSET_USAGE = 0x0005;\nconst HEADSET_USAGE_PAGE = 0x000b;\nconst BT100USeries = [0x0001];\nconst CMEDIASeries = [0x0020, 0x0022];\nconst DECTSeries = [0x0014];\n\nexport default class VBetService extends VendorImplementation {\n private static instance: VBetService;\n\n public pendingConversationId: string;\n public activeConversationId: string;\n\n private _deviceInfo: DeviceInfo = null;\n private activeDevice: any;\n private deviceCmds: any = null;\n private inputReportReportId: null | number = null;\n private lastByte = 0;\n vendorName = 'VBet';\n\n static getInstance (config: ImplementationConfig): VBetService {\n if (!VBetService.instance) {\n VBetService.instance = new VBetService(config);\n }\n return VBetService.instance;\n }\n\n get deviceInfo (): DeviceInfo {\n return this._deviceInfo;\n }\n\n isSupported (): boolean {\n return (window.navigator as any).hid && !isCefHosted();\n }\n\n deviceLabelMatchesVendor (label: string): boolean {\n const lowerLabel = label.toLowerCase();\n return ['vt','340b'].some((searchVal) => lowerLabel.includes(searchVal));\n }\n\n setDeviceAttrs (pid: number): void {\n if (BT100USeries.includes(pid)) {\n this.deviceCmds = {\n ring: [0x2, 0x2, 0x1],\n offHook: [0x2, 0x2, 0x3],\n onHook: [0x2, 0x2, 0x0],\n muteOn: [0x3, 0x1, 0x0],\n muteOff: [0x3, 0x0, 0x0],\n };\n this.inputReportReportId = 0x08;\n } else if (CMEDIASeries.includes(pid)) {\n this.deviceCmds = {\n ring: [0x6, 0x1, 0x0],\n offHook: [0x6, 0x2, 0x0],\n onHook: [0x6, 0x0, 0x0],\n muteOn: [0x3, 0x1, 0x0],\n muteOff: [0x3, 0x0, 0x0],\n };\n this.inputReportReportId = 0x01;\n } else if (DECTSeries.includes(pid)) {\n this.deviceCmds = {\n ring: [0x2, 0x2, 0x2, 0x1],\n offHook: [0x2, 0x1, 0x0],\n onHook: [0x2, 0x0, 0x0],\n muteOn: [0x2, 0x2, 0x1],\n muteOff: [0x2, 0x2, 0x0],\n setMode: [0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0, 0],\n };\n this.inputReportReportId = 0x01;\n } else if (pid >= 0x0040 && pid <= 0x0083) {\n this.deviceCmds = {\n ring: [0x6, 0x1, 0x0],\n offHook: [0x6, 0x2, 0x0],\n onHook: [0x6, 0x0, 0x0],\n muteOn: [0x6, 0x4, 0x0],\n muteOff: [0x6, 0x5, 0x0],\n };\n this.inputReportReportId = 0x05;\n } else {\n this.logger.error('not recognized device');\n }\n }\n\n async connect (originalDeviceLabel: string): Promise<void> {\n if (!this.isConnecting) {\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\n }\n const deviceLabel = originalDeviceLabel.toLowerCase();\n const deviceList = await (window.navigator as any).hid.getDevices();\n deviceList.forEach((device) => {\n if (!this.activeDevice) {\n if (deviceLabel.includes(device?.productName?.toLowerCase())) {\n for (const collection of device.collections) {\n if (collection.usage === HEADSET_USAGE && collection.usagePage === HEADSET_USAGE_PAGE) {\n this.setDeviceAttrs(device.productId);\n this.activeDevice = device;\n break;\n }\n }\n }\n }\n });\n if (!this.activeDevice) {\n try {\n this.activeDevice = await new Promise((resolve, reject) => {\n const waiter = setTimeout(reject, 30000);\n this.requestWebHidPermissions(async () => {\n const filters = [{ usage: HEADSET_USAGE, usagePage: HEADSET_USAGE_PAGE }];\n await (window.navigator as any).hid.requestDevice({ filters });\n clearTimeout(waiter);\n const deviceList = await (window.navigator as any).hid.getDevices();\n let bFind = false;\n deviceList.forEach((device) => {\n if (deviceLabel.includes(device?.productName?.toLowerCase())) {\n for (const collection of device.collections) {\n if (\n collection.usage === HEADSET_USAGE &&\n collection.usagePage === HEADSET_USAGE_PAGE\n ) {\n bFind = true;\n this.setDeviceAttrs(device.productId);\n resolve(device);\n break;\n }\n }\n }\n });\n if (!bFind) {\n reject();\n }\n });\n });\n } catch (error) {\n this.isConnecting &&\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: false });\n this.logger.error('The selected device was not granted WebHID permissions');\n return;\n }\n }\n\n \n !this.activeDevice.opened && await this.activeDevice.open();\n \n\n this.logger.debug(`device input reportId ${this.inputReportReportId}`);\n this.activeDevice.addEventListener('inputreport', (event: PartialInputReportEvent) => {\n if (event.reportId !== this.inputReportReportId) {\n return;\n }\n const value = event.data.getUint8(0);\n this.processBtnPress(value);\n });\n this._deviceInfo = {\n ProductName: this.activeDevice.productName,\n };\n\n if (this.isConnecting && !this.isConnected) {\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\n }\n }\n\n async disconnect (): Promise<void> {\n if (this.isConnected || this.isConnecting) {\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\n }\n if (this.activeDevice) {\n await this.activeDevice.close();\n this.activeDevice = null;\n this._deviceInfo = null;\n this.inputReportReportId = 0;\n this.isMuted = false;\n }\n }\n\n async processBtnPress (value: number): Promise<void> {\n if (!this.activeDevice) {\n this.logger.error('do not have active device');\n return;\n }\n if (BT100USeries.includes(this.activeDevice.productId)) {\n switch (value) {\n case 0x04:\n await this.answerCallFromDevice();\n break;\n case 0x10:\n await this.rejectCallFromDevice();\n break;\n case 0x00:\n await this.endCallFromDevice();\n break;\n case 0x0c:\n await this.setMuteFromDevice(!this.isMuted);\n break;\n }\n }\n if (CMEDIASeries.includes(this.activeDevice.productId)) {\n switch (value) {\n case 0x01:\n this.lastByte !== 0x09 && await this.answerCallFromDevice();\n break;\n case 0x00:\n if (this.lastByte === 0x08) {\n await this.setMuteFromDevice(!this.isMuted);\n } else {\n await this.endCallFromDevice();\n }\n break;\n case 0x14:\n await this.setMuteFromDevice(!this.isMuted);\n break;\n }\n } \n if (this.activeDevice.productId >= 0x0040 && this.activeDevice.productId <= 0x0083) {\n switch (value) {\n case 0x20:\n await this.answerCallFromDevice();\n break;\n case 0x08:\n await this.rejectCallFromDevice();\n break;\n case 0x00:\n await this.endCallFromDevice();\n break;\n case 0x01:\n await this.setMuteFromDevice(false);\n break;\n case 0x05:\n await this.setMuteFromDevice(true);\n break;\n }\n }\n if (DECTSeries.includes(this.activeDevice.productId)) {\n switch (value) {\n case 0x02:\n await this.answerCallFromDevice();\n break;\n case 0x00:\n await this.endCallFromDevice();\n break;\n case 0x03:\n await this.setMuteFromDevice(true);\n break;\n case 0x04:\n await this.setMuteFromDevice(false);\n break;\n }\n }\n this.lastByte = value;\n }\n\n async incomingCall (callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n if (DECTSeries.includes(this.activeDevice.productId)) {\n await this.sendOpToDevice('setMode');\n }\n await this.sendOpToDevice('ring');\n }\n\n async outgoingCall (callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n if (DECTSeries.includes(this.activeDevice.productId)) {\n await this.sendOpToDevice('setMode');\n }\n await this.sendOpToDevice('offHook');\n }\n\n async answerCall (conversationId: string, autoAnswer?: boolean): Promise<void> {\n if(!conversationId){\n return;\n }else {\n if (autoAnswer) {\n await this.sendOpToDevice('ring');\n await this.sendOpToDevice('offHook');\n } else {\n await this.sendOpToDevice('offHook');\n this.pendingConversationId = null;\n }\n this.activeConversationId = conversationId;\n }\n }\n\n async answerCallFromDevice (): Promise<void> {\n await this.answerCall(this.pendingConversationId, false);\n if (this.activeConversationId) {\n this.deviceAnsweredCall({\n name: 'OffHook',\n conversationId: this.activeConversationId,\n });\n } else {\n this.logger.error('no call to be answered');\n }\n }\n\n async rejectCall (): Promise<void> {\n if (this.pendingConversationId) {\n this.pendingConversationId = null;\n await this.sendOpToDevice('onHook');\n } else {\n this.logger.error('no call to be rejected');\n }\n }\n\n async rejectCallFromDevice (): Promise<void> {\n this.deviceRejectedCall({\n name: 'Reject',\n conversationId: this.pendingConversationId,\n });\n await this.rejectCall();\n }\n\n async endCall (conversationId: string, hasOtherActiveCalls: boolean): Promise<void> {\n if (hasOtherActiveCalls) {\n return;\n } else {\n if (conversationId === this.activeConversationId || this.pendingConversationId) {\n this.activeConversationId = null;\n this.pendingConversationId = null;\n await this.sendOpToDevice('onHook');\n } else {\n this.logger.error('no call to be ended');\n } \n }\n }\n\n async endCallFromDevice (): Promise<void> {\n if (this.activeConversationId || this.pendingConversationId) {\n await this.sendOpToDevice('onHook');\n this.deviceEndedCall({\n name: 'OnHook',\n conversationId: this.activeConversationId ? this.activeConversationId : this.pendingConversationId,\n });\n this.activeConversationId = null;\n this.pendingConversationId = null;\n } else {\n this.logger.error('no call to be ended');\n }\n }\n\n async endAllCalls (): Promise<void> {\n if (this.activeConversationId || this.pendingConversationId) {\n this.activeConversationId = null;\n this.pendingConversationId = null;\n await this.sendOpToDevice('onHook');\n }\n }\n\n async setMute (value: boolean): Promise<void> {\n if (value) {\n await this.sendOpToDevice('muteOn');\n } else {\n await this.sendOpToDevice('muteOff');\n }\n this.isMuted = value;\n }\n\n async setMuteFromDevice (value: boolean): Promise<void> {\n await this.setMute(value);\n this.deviceMuteChanged({\n isMuted: this.isMuted,\n name: this.isMuted ? 'CallMuted' : 'CallUnmuted',\n conversationId: this.activeConversationId,\n });\n }\n\n async sendOpToDevice (\n value: 'ring' | 'onHook' | 'offHook' | 'muteOn' | 'muteOff' | 'setMode'\n ): Promise<void> {\n const data = new Uint8Array(this.deviceCmds[value]);\n this.logger.debug(`send to dev ${value}`);\n await this.activeDevice.sendReport(data[0], data.slice(1, data.length));\n }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { VendorImplementation, ImplementationConfig } from './vendor-implementations/vendor-implementation';\nimport PlantronicsService from './vendor-implementations/plantronics/plantronics';\nimport SennheiserService from './vendor-implementations/sennheiser/sennheiser';\nimport JabraService from './vendor-implementations/jabra/jabra';\nimport JabraNativeService from './vendor-implementations/jabra/jabra-native/jabra-native';\nimport YealinkService from './vendor-implementations/yealink/yealink';\nimport VBetService from './vendor-implementations/vbet/vbet';\nimport { CallInfo } from '../types/call-info';\nimport { VendorEvent, HoldEventInfo, MutedEventInfo, EventInfoWithConversationId } from '../types/emitted-headset-events';\nimport { WebHidPermissionRequest } from '..';\nimport { ConsumedHeadsetEvents, HeadsetEvents, DeviceConnectionStatus } from '../types/consumed-headset-events';\nimport { HeadsetState, HeadsetStateRecord, UpdateReasons } from '../types/headset-states';\n\ntype StateProps = Partial<HeadsetState>;\ntype StateCompareProps = { conversationId: string; state: StateProps };\n\nconst REMOVE_WAIT = 2000;\n\nexport default class HeadsetService {\n private static instance: HeadsetService;\n\n plantronics: VendorImplementation;\n jabraNative: VendorImplementation;\n jabra: VendorImplementation;\n sennheiser: VendorImplementation;\n yealink: VendorImplementation;\n vbet:VendorImplementation;\n selectedImplementation: VendorImplementation;\n headsetEvents$: Observable<ConsumedHeadsetEvents>;\n \n private headsetConversationStates: { [conversationId: string]: HeadsetStateRecord } = {};\n private _headsetEvents$: Subject<ConsumedHeadsetEvents>;\n private logger: any;\n\n private constructor (config: ImplementationConfig) {\n this._headsetEvents$ = new Subject<ConsumedHeadsetEvents>();\n this.headsetEvents$ = this._headsetEvents$.asObservable();\n\n this.logger = config.logger || console;\n this.plantronics = PlantronicsService.getInstance({ logger: this.logger, appName: config.appName });\n this.jabraNative = JabraNativeService.getInstance({ logger: this.logger });\n this.jabra = JabraService.getInstance({ logger: this.logger });\n this.sennheiser = SennheiserService.getInstance({ logger: this.logger });\n this.yealink = YealinkService.getInstance({ logger: this.logger });\n this.vbet = VBetService.getInstance({ logger: this.logger });\n [this.plantronics, this.jabra, this.jabraNative, this.sennheiser, this.yealink, this.vbet].forEach(implementation => this.subscribeToHeadsetEvents(implementation));\n }\n\n static getInstance (config: ImplementationConfig): HeadsetService {\n if (!HeadsetService.instance || config.createNew) {\n HeadsetService.instance = new HeadsetService(config);\n }\n\n return HeadsetService.instance;\n }\n\n get implementations (): VendorImplementation[] {\n const implementations = [\n this.sennheiser,\n this.plantronics,\n this.jabra,\n this.jabraNative,\n this.yealink,\n this.vbet\n ].filter((impl) => impl.isSupported());\n\n return implementations;\n }\n\n private isDifferentState (props: StateCompareProps): boolean {\n const state = this.headsetConversationStates[props.conversationId];\n\n // different if there's no state or any of the provided state props don't match\n return !state || Object.entries(props.state).some(([key, value]) => state[key] !== value);\n }\n\n private updateHeadsetState (props: StateCompareProps, opts = { expectExistingConversation: true }): boolean {\n if (this.isDifferentState(props)) {\n const state = this.headsetConversationStates[props.conversationId];\n if (!state) {\n if (opts.expectExistingConversation) {\n this.logger.warn('updateHeadsetState has no existing state for provided conversationId.', { conversationId: props.conversationId });\n }\n return false;\n }\n Object.assign(state, props.state);\n return true;\n }\n\n return false;\n }\n\n deviceIsSupported (params: { micLabel: string }): boolean {\n if (!params.micLabel) {\n return false;\n }\n\n const implementation = this.implementations.find((implementation) => {\n return implementation.deviceLabelMatchesVendor(params.micLabel);\n });\n return !!implementation;\n }\n\n activeMicChange (newMicLabel: string, changeReason?: UpdateReasons): void {\n if (newMicLabel) {\n const implementation = this.implementations.find((implementation) => implementation.deviceLabelMatchesVendor(newMicLabel));\n if (implementation) {\n this.changeImplementation(implementation, newMicLabel);\n } else if (this.selectedImplementation) {\n this.clearSelectedImplementation(changeReason);\n }\n } else {\n this.clearSelectedImplementation(changeReason);\n }\n }\n\n async changeImplementation (implementation: VendorImplementation | null, deviceLabel: string): Promise<void> {\n if (implementation === this.selectedImplementation) {\n return;\n }\n\n if (this.selectedImplementation) {\n // remove headsetStates associated with implementation\n this.headsetConversationStates = {};\n\n await this.selectedImplementation.disconnect();\n }\n\n this.selectedImplementation = implementation;\n\n this._headsetEvents$.next({ event: HeadsetEvents.implementationChanged, payload: implementation });\n\n if (implementation) {\n await implementation.connect(deviceLabel);\n }\n }\n\n async incomingCall (callInfo: CallInfo, hasOtherActiveCalls?: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n this.headsetConversationStates[callInfo.conversationId] = {\n conversationId: callInfo.conversationId,\n held: false,\n muted: false,\n offHook: false,\n ringing: true\n };\n\n return implementation.incomingCall(callInfo, hasOtherActiveCalls);\n }\n\n async outgoingCall (callInfo: CallInfo): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n this.headsetConversationStates[callInfo.conversationId] = {\n conversationId: callInfo.conversationId,\n held: false,\n muted: false,\n offHook: true,\n ringing: false\n };\n\n return implementation.outgoingCall(callInfo);\n }\n\n async answerCall (conversationId: string, autoAnswer?: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n if (!autoAnswer) {\n const expectedStatePostAction: Partial<HeadsetState> = {\n ringing: false,\n offHook: true\n };\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n return implementation.answerCall(conversationId);\n }\n } else {\n this.headsetConversationStates[conversationId] = {\n conversationId: conversationId,\n held: false,\n muted: false,\n offHook: true,\n ringing: false\n };\n\n return implementation.answerCall(conversationId, autoAnswer);\n }\n }\n\n async rejectCall (conversationId: string, expectExistingConversation = true): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n ringing: false\n };\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction }, { expectExistingConversation })) {\n const headsetState = this.headsetConversationStates[conversationId];\n headsetState.removeTimer = this.setRemoveTimer(conversationId);\n return implementation.rejectCall(conversationId);\n }\n }\n\n async setMute (value: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n if (Object.values(this.headsetConversationStates).some(headsetState => headsetState.muted !== value)) {\n Object.values(this.headsetConversationStates).forEach(headsetState => headsetState.muted = value);\n return implementation.setMute(value);\n }\n }\n\n async setHold (conversationId: string, value: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n held: value\n };\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n return implementation.setHold(conversationId, value);\n }\n }\n\n async endCall (conversationId: string, hasOtherActiveCalls?: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n offHook: false\n };\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n const headsetState = this.headsetConversationStates[conversationId];\n headsetState.removeTimer = this.setRemoveTimer(conversationId);\n return implementation.endCall(conversationId, hasOtherActiveCalls);\n }\n }\n\n async endAllCalls (): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n \n Object.values(this.headsetConversationStates).forEach((headsetState) => {\n if (!headsetState.removeTimer) {\n headsetState.removeTimer = this.setRemoveTimer(headsetState.conversationId);\n }\n });\n\n return implementation.endAllCalls();\n }\n\n retryConnection (micLabel: string): Promise<void> {\n if (!this.selectedImplementation) {\n return Promise.reject(new Error('No active headset implementation'));\n }\n\n return this.selectedImplementation.connect(micLabel);\n }\n\n connectionStatus (): DeviceConnectionStatus {\n if (this.selectedImplementation) {\n if (!this.selectedImplementation.isConnected && !this.selectedImplementation.isConnecting) {\n return 'notRunning';\n }\n return this.selectedImplementation.isConnected ? 'running' : 'checking';\n }\n return 'noVendor';\n }\n\n resetHeadsetStateForCall (conversationId: string): Promise<any> {\n const implementation = this.getConnectedImpl();\n return implementation.resetHeadsetStateForCall(conversationId);\n }\n\n private getConnectedImpl (): VendorImplementation {\n const impl = this.selectedImplementation;\n if (!impl || !impl.isConnected) {\n return null;\n }\n\n return impl;\n }\n\n private subscribeToHeadsetEvents (implementation: VendorImplementation) {\n implementation.on(HeadsetEvents.deviceAnsweredCall, this.handleDeviceAnsweredCall.bind(this));\n implementation.on(HeadsetEvents.deviceRejectedCall, this.handleDeviceRejectedCall.bind(this));\n implementation.on(HeadsetEvents.deviceEndedCall, this.handleDeviceEndedCall.bind(this));\n implementation.on(HeadsetEvents.deviceMuteStatusChanged, this.handleDeviceMuteStatusChanged.bind(this));\n implementation.on(HeadsetEvents.deviceHoldStatusChanged, this.handleDeviceHoldStatusChanged.bind(this));\n implementation.on(HeadsetEvents.deviceEventLogs, this.handleDeviceLogs.bind(this));\n implementation.on(HeadsetEvents.deviceConnectionStatusChanged, this.handleDeviceConnectionStatusChanged.bind(this));\n implementation.on(HeadsetEvents.webHidPermissionRequested, this.handleWebHidPermissionRequested.bind(this));\n }\n\n private clearSelectedImplementation (clearReason?: UpdateReasons): void {\n if (!this.selectedImplementation) {\n return;\n }\n\n this.selectedImplementation.disconnect(clearReason);\n this._headsetEvents$.next({ event: HeadsetEvents.implementationChanged, payload: null });\n this.selectedImplementation = null;\n this.handleDeviceConnectionStatusChanged();\n }\n\n private setRemoveTimer (conversationId) {\n return setTimeout(() => {\n // we are using the removeTimer to make sure this is actually slated for removal.\n // if we get a new incoming call for example, it will replace the current state which is slated for\n // removal and we don't want to remove it if it's a new/updated state\n if (this.headsetConversationStates[conversationId].removeTimer) {\n delete this.headsetConversationStates[conversationId];\n }\n }, REMOVE_WAIT);\n }\n\n private handleDeviceAnsweredCall (event: VendorEvent<EventInfoWithConversationId>): void {\n if (event.vendor !== this.selectedImplementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n ringing: false,\n offHook: true\n };\n\n this.updateHeadsetState({ conversationId: event.body.conversationId, state: expectedStatePostAction });\n\n this.logger.info('Headset: device answered the call');\n this._headsetEvents$.next({ event: HeadsetEvents.deviceAnsweredCall, payload: { ...event.body } });\n }\n\n private handleDeviceRejectedCall (event: VendorEvent<EventInfoWithConversationId>): void {\n if (event.vendor !== this.selectedImplementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n ringing: false\n };\n const conversationId = event.body.conversationId;\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n const headsetState = this.headsetConversationStates[conversationId];\n headsetState.removeTimer = this.setRemoveTimer(conversationId);\n }\n\n this.logger.info('Headset: device rejected the call');\n this._headsetEvents$.next({ event: HeadsetEvents.deviceRejectedCall, payload: { ...event.body } });\n }\n\n private handleDeviceEndedCall (event: VendorEvent<EventInfoWithConversationId>): void {\n this.logger.info('Headset: device ended the call');\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n offHook: false\n };\n\n const conversationId = event.body.conversationId;\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n const headsetState = this.headsetConversationStates[conversationId];\n headsetState.removeTimer = this.setRemoveTimer(conversationId);\n }\n\n this._headsetEvents$.next({ event: HeadsetEvents.deviceEndedCall, payload: { ...event.body } });\n }\n\n private handleDeviceMuteStatusChanged (event: VendorEvent<MutedEventInfo>): void {\n this.logger.info('Headset: device mute status changed: ', event.body.isMuted);\n if (Object.values(this.headsetConversationStates).some(headsetState => headsetState.muted !== event.body.isMuted)) {\n Object.values(this.headsetConversationStates).forEach(headsetState => headsetState.muted = event.body.isMuted);\n }\n this._headsetEvents$.next({ event: HeadsetEvents.deviceMuteStatusChanged, payload: { ...event.body } });\n }\n\n private handleDeviceHoldStatusChanged (event: VendorEvent<HoldEventInfo>): void {\n this.logger.info('Headset: device hold status changed', event.body.holdRequested);\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n held: event.body.holdRequested\n };\n const conversationId = event.body.conversationId;\n this.updateHeadsetState({ conversationId, state: expectedStatePostAction });\n\n this._headsetEvents$.next({ event: HeadsetEvents.deviceHoldStatusChanged, payload: { ...event.body } });\n }\n\n private handleDeviceConnectionStatusChanged (): void {\n this._headsetEvents$.next({ event: HeadsetEvents.deviceConnectionStatusChanged, payload: this.connectionStatus() });\n }\n\n private handleWebHidPermissionRequested (event: VendorEvent<WebHidPermissionRequest>): void {\n this.logger.debug('Requesting Webhid Permissions');\n this._headsetEvents$.next({ event: HeadsetEvents.webHidPermissionRequested, payload: { ...event.body } });\n }\n\n /* This function has no functional purpose in a real life example\n * It is here to help log all events in the call process at least for Plantronics\n */\n private handleDeviceLogs (eventInfo: VendorEvent<any>): void {\n this._headsetEvents$.next({ event: HeadsetEvents.loggableEvent, payload: { ...eventInfo.body } });\n }\n}","import HeadsetService from './services/headset';\nimport { VendorImplementation } from './services/vendor-implementations/vendor-implementation';\n\nexport * from './types/call-info';\nexport * from './types/consumed-headset-events';\nexport * from './types/device-info';\nexport * from './types/emitted-headset-events';\nexport * from './types/headset-states';\nexport { VendorImplementation };\nexport default HeadsetService;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://SoftphoneVendorHeadsets/webpack/universalModuleDefinition","webpack://SoftphoneVendorHeadsets/webpack/bootstrap","webpack://SoftphoneVendorHeadsets/./node_modules/@gnaudio/jabra-js/browser-esm/index-0917eff9.js","webpack://SoftphoneVendorHeadsets/./react-app/src/library/types/consumed-headset-events.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/vendor-implementation.ts","webpack://SoftphoneVendorHeadsets/./react-app/node_modules/browserama/out/browserama.min.js","webpack://SoftphoneVendorHeadsets/./node_modules/events/events.js","webpack://SoftphoneVendorHeadsets/(webpack)/buildin/global.js","webpack://SoftphoneVendorHeadsets/./react-app/node_modules/fetch-jsonp/build/fetch-jsonp.js","webpack://SoftphoneVendorHeadsets/./node_modules/tslib/tslib.es6.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/config.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/plantronics/plantronics-call-events.ts","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/plantronics/plantronics.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/sennheiser/types.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/utils.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/sennheiser/sennheiser.ts","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/firstValueFrom.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/Scheduler.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/async.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/timeout.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/isDate.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/filter.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/observable/empty.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/take.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/first.js","webpack://SoftphoneVendorHeadsets/./node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/jabra/jabra-native/types.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/jabra/jabra.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/yealink/yealink.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/vendor-implementations/vbet/vbet.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/services/headset.ts","webpack://SoftphoneVendorHeadsets/./react-app/src/library/index.ts","webpack://SoftphoneVendorHeadsets/./node_modules/process/browser.js","webpack://SoftphoneVendorHeadsets/./node_modules/buffer/index.js","webpack://SoftphoneVendorHeadsets/./node_modules/base64-js/index.js","webpack://SoftphoneVendorHeadsets/./node_modules/ieee754/index.js","webpack://SoftphoneVendorHeadsets/./node_modules/isarray/index.js"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","0","__webpack_require__","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","oldJsonpFunction","slice","s","setPrototypeOf","__proto__","Array","TypeError","String","this","constructor","next","a","throw","done","then","apply","label","sent","trys","ops","return","iterator","pop","arguments","concat","v","asyncIterator","u","h","has","set","stack","f","map","toString","join","errors","indexOf","splice","E","initialTeardown","closed","_parentage","_finalizers","unsubscribe","isArray","remove","g","add","_hasParent","_addParent","includes","_removeParent","EMPTY","_","b","y","delegate","O","w","N","C","kind","T","S","isStopped","destination","P","D","L","_next","_error","complete","_complete","A","Function","I","R","partialObserver","H","U","observable","k","x","reduce","G","_subscribe","lift","source","operator","subscribe","_trySubscribe","forEach","F","pipe","toPromise","M","B","W","onFinalize","shouldUnsubscribe","K","Y","currentObservers","observers","hasError","thrownError","V","_throwIfClosed","from","configurable","_checkFinalizedStatuses","_innerSubscribe","asObservable","j","_value","getValue","q","now","Date","$","_bufferSize","_windowTime","_timestampProvider","_buffer","_infiniteTimeWindow","Math","max","_trimBuffer","z","schedule","Q","setInterval","clearInterval","J","scheduler","work","pending","state","id","recycleAsyncId","delay","requestAsyncId","flush","execute","_execute","actions","X","schedulerActionCtor","Z","_active","tt","et","nt","rt","it","ot","st","at","ct","ut","lt","ht","dt","pt","ft","getReader","read","releaseLock","vt","Et","gt","catch","_t","mt","bt","yt","wt","Ot","Nt","Ct","Tt","St","defaultValue","At","It","isNaN","Rt","info","Dt","first","each","with","Ht","meta","lastValue","seen","Lt","Pt","Ut","kt","xt","Gt","Ft","Mt","Bt","Wt","Kt","Yt","Vt","jt","qt","$t","zt","Qt","Jt","Xt","Zt","te","every","some","ee","ne","re","ie","ae","ce","ue","le","he","de","connector","resetOnError","resetOnComplete","resetOnRefCountZero","pe","fe","bufferSize","windowTime","refCount","ve","Ee","ge","_e","me","finalize","be","super","ye","ERROR","JS_LIB","write","level","layer","Oe","WARNING","INFO","CHROME_EXTENSION","NATIVE_CONSOLE","SDK_USAGE_ERROR","FEATURE_NOT_SUPPORTED","DEVICE_ERROR","UNEXPECTED_ERROR","INIT_ERROR","we","compare","itemRemoved","items","itemList","itemAdded","addItem","onDisconnect","removeItem","filter","equals","sort","findIndex","Ne","sdkVersion","consoleAppVersion","version","chromeExtensionVersion","process","platform","navigator","userAgent","Ce","deviceDetector","deviceAdded","deviceObservables","deviceRemoved","deviceList","_transport","_readyEvents","consoleAppEvent","_config","transportContext","context","logger","WeakMap","NODE","WEB_HID","CHROME_EXTENSION_WITH_WEB_HID_FALLBACK","Te","Se","TransportChromeExtension","checkInstallation","ok","initHandler","WebHidTransport","Ae","log","Ie","Re","config","messageShown","partnerKey","validateCrc","logWarning","appId","test","appName","warn","split","charCodeAt","RangeError","padStart","De","He","Le","Pe","Ue","ke","xe","Ge","MS_OC","CISCO","AVAYA","SIEMENS","ALCATEL","IBM","AASTRA","SKYPE","GENERIC","NORTEL","JABRA","NEC","SHORETEL","OTHER","Fe","gnpReadCommand","serialize","command","subCommand","deserialize","GN_PROTOCOL","DATA","Me","Uint8Array","payload","sequenceNumber","PC_ADDR","BASE_ADDR","HS1_ADDR","HS_BT_USB_ADDR","HS_CRADLE_ADDR","CRADLE_ADDR","EVENT","READ","WRITE","REPLY","IDENT","DFU","DEVICE","FWU","STATUS","CONFIG","NACK","ACK","CONFIG_PREFERRED_SOFTPHONE","ID","IDENT_GET_AVAILABLE_SOFTPHONES","TYPE","NAME","PID","ATTACH_EVENT","DETACH_EVENT","NO_ERROR_CODE","BAD_STATE","TRANSMIT_FAILED","ILLEGAL_ADDR","UNKNOWN_CMD","FILE_NOT_FOUND","INTERNAL_ERROR","REPLY_ERROR","ILLEGAL_PARAM","OUT_OF_SEQUENCE","NO_SPACE","ACCESS_DENIED","NO_MORE_DATA","UNKNOWN_SUB_CMD","Be","We","fromCharCode","Ke","Ye","Ve","DataView","buffer","getUint16","je","of","qe","$e","ze","path","require","globalThis","global","self","Qe","Je","Xe","toUpperCase","parseInt","substr","floor","trunc","ibits","obits","obigendian","ibigendian","mul","inc","mask","random","parse","make","Buffer","alloc","getTime","format","toJSON","nil","match","export","import","isFinite","equal","fold","pow","PCG","default","Ze","transport","gnpLockAcquired","token","action","writeAction","INPUT","OUTPUT","FEATURE","ABSOLUTE","RELATIVE","tn","startsWith","en","nn","usagePage","usage","rn","descriptor","transportId","input","inputReportsFilter","find","reportType","sn","lengthMask","typeFromAttr","packetLengthFromAttr","an","gnpPacketHeaderLength","hasHeader","expectedPacketLength","gnpPacketMaxLength","hasFullPacket","un","ln","hn","dn","pn","hidChannel","gnpLock","primaryAddress","lockQueue","packets","inputFilter","events","eventsFilter","nextSequenceNumber","appendData","getPacketAndReset","findDescriptor","processLockQueue","acquireGnpLock","reportSize","attrFromTypeAndPayloadLength","min","subarray","output","releaseGnpLock","doWithGnpLockHeld","readWithParams","getNextSequenceNumber","fn","parentGnpChannel","sendEvent","vn","supportsGnpOverHid","En","gn","_n","isChild","mn","parentId","gnpAddress","bn","yn","On","NO_TRACKING","TRACK_ERRORS","TRACK_USAGE","TRACK_ALL","BLUETOOTH","INDIRECT","USB","BASE","HEADSET","DESKSTAND","DONGLE","PC","EHS","SPEAKER_PHONE","INDICATOR","MOBILE","NONE","LOCAL","DISPLAY","HS_CRADLE","HS_CRADLE2","MOBILE_IAP","CRADLE","VIDEO","NOT_GN","ANY_GN","NOT_INIT","ANY","wn","parentConnectionId","Nn","Cn","Tn","deviceType","address","vid","pid","serialNumber","capabilities","connectionGnpAddress","Sn","createConnection","parentConnection","connectionCreator","createChildGnpChannel","connectionEvents","attach","detach","connection","An","In","Rn","Dn","createHidChannel","createRootGnpChannel","createAttachEvent","getTransportId","convertToReportType","valueType","convertToValueType","JSON","stringify","getMandatoryField","createDescriptor","assign","Hn","Ln","Pn","Un","kn","xn","vendorId","productId","connectionAdded","connectionRemoved","connectionList","Gn","exceptionToUndefined","findConnectionById","currentConnections","Fn","deviceCollection","connectionExists","force","findDeviceByDeviceId","createDevice","isSameDevice","Mn","validateOrganizationKey","validateAppId","validateAppName","internal","testDeviceTransport","recorder","connect","Bn","deviceId","Wn","UsageReport","Kn","Yn","Vn","jn","qn","$n","zn","Qn","Jn","Xn","Zn","ArrayBuffer","byteLength","_view","bigEndian","_scratch","_setBit","getBits","setBits","getBoolean","getInt8","getUint8","getInt16","getInt32","getUint32","getFloat32","setUint32","getFloat64","setBoolean","setInt8","setUint8","setInt16","setUint16","setInt32","setFloat32","setFloat64","getArrayBuffer","_index","_length","readUint8","decodeURIComponent","escape","_startIndex","ceil","readBits","writeBits","readBoolean","readInt8","readInt16","readUint16","readInt32","readUint32","readFloat32","readFloat64","writeBoolean","writeInt8","writeUint8","writeInt16","writeUint16","writeInt32","writeUint32","writeFloat32","writeFloat64","readASCIIString","readUTF8String","writeASCIIString","writeUTF8String","readBitStream","writeBitStream","bitsLeft","readArrayBuffer","writeArrayBuffer","BitView","BitStream","tr","hid","requestDevice","filters","VENDOR_ID","BroadcastChannel","PAIRING_CHANNEL","postMessage","HOOK_SWITCH","GN_PSEUDO_HOOK_SWITCH","FLASH","ALT_HOLD","REDIAL","ONLINE","PHONE_MUTE","SEND","SPEED_DIAL","VOICE_MAIL","ANSWER_ON_OFF","LINE_BUSY","RINGER","PHONE_KEY_0","PHONE_KEY_1","PHONE_KEY_2","PHONE_KEY_3","PHONE_KEY_4","PHONE_KEY_5","PHONE_KEY_6","PHONE_KEY_7","PHONE_KEY_8","PHONE_KEY_9","PHONE_KEY_STAR","PHONE_KEY_POUND","ALT_VOLUME_UP","ALT_VOLUME_DOWN","REJECT_CALL","er","BUTTON","CONSUMER","LED","TELEPHONY","GN_CONSUMER","GN_EXT_BUTTONS","GN_LED","GN_MISC","GN_TELEPHONY","MUTE","OFF_HOOK","RING","MESSAGE_WAIT","HOLD","MIC_MUTE","HID_OFFLINE","HID_SEND","HID_ALT_VOLUME_UP","HID_ALT_VOLUME_DOWN","GN_OUT_OF_RANGE","GN_REJECT_CALL","GN_TELEPHONY_CONT_SET","nr","isSoftphoneInFocus","lockHeld","cachedSignals","Map","Boolean","on","rr","device","deviceSignals","setup","checkHasDisconnected","checkCallLockNotHeld","tryTakeCallLock","checkCallLockHeld","releaseCallLock","STD_TELEPHONY","ir","sr","connectionCallLock","currentLocks","Set","lockReleaseEvent","takeSingleCallLock","delete","size","acquireLockOnNextConnectionEmit","releaseLockOnRemovedConnectionEmit","releaseSingleCallLock","acquired","clear","ar","cr","ur","hr","lr","dr","softphoneInFocus","setFeatureReport","or","pr","devComm","infocus","fr","vr","Er","gr","_r","mr","br","yr","Nr","jabraDirectInstalled","setSharedSoftphoneInfo","supportsCallControl","HOLD_CURRENT","END_CURRENT","MUTED","UNMUTED","NO_ONGOING_CALLS","ON_HOLD","NOT_ON_HOLD","NO_INCOMING","AWAITING_RESPONSE","RESOLVING_RESPONSE","ACCEPTED","REJECTED","HeadsetEvents","VendorImplementation","eventEmitter","EventEmitter","keys","vendorName","selectedMicLabel","clearReason","callInfo","hasOtherActiveCalls","conversationId","autoAnswer","rejectCall","eventName","eventBody","emit","vendor","body","callback","debug","emitEvent","eventInfo","headsetState","isConnected","isConnecting","currentVendor","InstallTrigger","chrome","webstore","runtime","HTMLElement","safari","pushNotification","opr","addons","opera","StyleMedia","CSS","documentMode","ReflectOwnKeys","Reflect","ReflectApply","receiver","args","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","Number","init","once","emitter","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","existing","warning","newListener","unshift","warned","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","copy","addEventListener","wrapListener","arg","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","len","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","index","spliceOne","off","removeAllListeners","rawListeners","eventNames","defaultOptions","generateCallbackFunction","clearFunction","functionName","removeScript","scriptId","getElementById","getElementsByTagName","removeChild","_url","options","url","jsonpCallback","timeoutId","callbackFunction","jsonpCallbackFunction","response","json","jsonpScript","nonce","referrerPolicy","extendStatics","__extends","__","__awaiter","thisArg","_arguments","generator","fulfilled","step","rejected","result","__generator","verb","op","__values","__read","__spreadArray","to","pack","__await","__asyncGenerator","resume","fulfill","settle","__asyncValues","isFunction","createErrorClass","createImpl","ctorFunc","instance","UnsubscriptionError","_super","arrRemove","item","Subscription","e_1","_a","e_2","_b","_parentage_1","_parentage_1_1","e_1_1","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","parent","empty","EMPTY_SUBSCRIPTION","isSubscription","onUnhandledError","onStoppedNotification","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","_i","handle","reportUnhandledError","noop","COMPLETE_NOTIFICATION","createNotification","errorContext","cb","isRoot","errorThrown","Subscriber","_this","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","_bind","ConsumerObserver","handleUnhandledError","SafeSubscriber","observerOrNext","context_1","notification","subscriber","identity","pipeFromArray","fns","prev","Observable","isObserver","sink","promiseCtor","getPromiseCtor","operations","PlantronicsCallEventCodes","ObjectUnsubscribedError","Subject","subject","_c","AnonymousSubject","SennheiserEvents","SennheiserEventTypes","PlantronicsService","pluginName","_deviceInfo","callEventsTimerId","deviceStatusTimerId","incomingConversationId","callId","round","callMappings","plantronicsCallId","lowerLabel","toLowerCase","searchVal","ProductName","deviceInfo","disableEventPolling","getCallEvents","pollForCallEvents","activePollingInterval","getDeviceStatus","pollForDeviceStatus","isDeviceAttached","connectedDeviceInterval","disconnectedDeviceInterval","endpoint","isRetry","_makeRequest","fetchJsonp","plantronicsInstance","_fetch","apiHost","Type_Name","status","changeConnectionStatus","disconnect","handled","_makeRequestTask","browserama","isFirefox","errorCode","disableRetry","_getActiveCalls","calls","isActive","Result","Calls","Source","eventType","Action","callCorrespondingFunction","Err","Description","CallId","Id","deviceAnsweredCall","endCall","deviceRejectedCall","deviceEndedCall","_checkIsActiveTask","deviceMuteChanged","isMuted","deviceHoldStatusChanged","holdRequested","deviceEventLogs","unregisterPlugin","isError","clearTimeouts","contactName","_createCallMapping","params","halfEncodedCallIdString","encodeURI","halfEncodedContactString","incomingCall","createNew","isCefHosted","_HostedContextFunctions","requestCefPromise","cmd","sCmd","cefQuery","persistent","onSuccess","obj","onFailure","SennheiserService","websocketConnected","ignoreAcknowledgement","Event","websocket","send","EstablishConnection","EventType","Request","SPName","SPIconImage","RedialSupport","OffHookSupport","MuteSupport","DNDOption","_sendMessage","socket","WebSocket","onopen","webSocketOnOpen","onclose","webSocketOnClose","onmessage","_handleMessage","wasClean","isFireFox","TerminateConnection","MuteFromApp","UnmuteFromApp","Hold","Resume","CallID","IncomingCall","IncomingCallAccepted","IncomingCallRejected","OutgoingCall","CallEnded","ReturnCode","_handleError","SocketConnected","_registerSoftphone","SPLogin","SystemInformation","HeadsetConnected","HeadsetName","deviceName","headsetType","HeadsetType","HeadsetDisconnected","Notification","Ack","_handleAck","MuteFromHeadset","UnmuteFromHeadset","readyState","close","EmptyError","firstValueFrom","hasConfig","intervalProvider","AsyncAction","_id","_scheduler","_delay","errorValue","errored","dateTimestampProvider","Scheduler","asyncScheduler","AsyncScheduler","SchedulerAction","_scheduled","operate","hasLift","liftedSource","innerFrom","isInteropObservable","obs","array","isAsyncIterable","fromAsyncIterable","isIterable","iterable","iterable_1","iterable_1_1","isReadableStreamLike","readableStream","reader","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","asyncIterable","asyncIterable_1","asyncIterable_1_1","createOperatorSubscriber","onNext","onComplete","onError","OperatorSubscriber","closed_1","TimeoutError","schedulerArg","_with","timeoutErrorFactory","_d","originalSourceSubscription","timerSubscription","startTimer","parentSubscription","repeat","scheduleSubscription","executeSchedule","defaultIfEmpty","hasValue","predicate","take","throwIfEmpty","errorFactory","defaultErrorFactory","hasDefaultValue","project","JabraNativeCommands","JabraService","setHold","setMute","callControl","headsetEventSubscription","signal","callLock","SignalType","activeConversationId","pendingConversationId","offHook","ring","pendingConversationIsOutbound","code","mute","hold","checkForCallLockError","isHeld","takeCallLock","resetState","deviceLabel","originalDeviceLabel","jabraSdk","initializeJabraSdk","callControlFactory","createCallControlFactory","toLocaleLowerCase","getPreviouslyConnectedDevice","selectedDevice","getDeviceFromWebhid","createCallControl","resetHeadsetState","_processEvents","attached","waitForDevice","devices","isDeviceInList","requestWebHidPermissions","webHidPairing","RequestedBrowserTransport","sdk","CallControlFactory","ErrorType","JabraNativeEventNames","JabraNativeService","ringing","isHostedContextInitialized","setupNativeHandlers","waitForHostedContext","Orgspan","serviceFor","isHosted","hostedContext","cefSupportsJabra","supportsJabra","handleJabraEvent","handleJabraDeviceAttached","activeDeviceId","msg","isDeviceEvent","isHeadsetEvent","updateDevices","_processEvent","isOffhook","_sendCmd","Offhook","_setRinging","_getHeadsetIntoVanillaState","Mute","sendEventToDesktop","deviceID","Ring","ignoreNextOffhookEvent","func","timer","OffHook","_handleOffhookEvent","RejectCall","_handleMuteEvent","_handleHoldEvent","timeoutInMillis","timeoutError","timeoutPromise","race","YealinkService","getDevices","activeDevice","productName","collections","collection","inputReports","inputReportReportId","reportId","waiter","deviceLists","bFind","opened","open","processBtnPress","recCallState","changeFlag","callState","answerCall","isHold","sendOpToDevice","val","setValue","sendReport","BT100USeries","CMEDIASeries","DECTSeries","VBetService","deviceCmds","onHook","muteOn","muteOff","setMode","setDeviceAttrs","answerCallFromDevice","rejectCallFromDevice","endCallFromDevice","setMuteFromDevice","lastByte","HeadsetService","_headsetEvents$","headsetEvents$","plantronics","getInstance","jabraNative","jabra","sennheiser","yealink","vbet","implementation","subscribeToHeadsetEvents","impl","isSupported","props","headsetConversationStates","entries","opts","expectExistingConversation","isDifferentState","micLabel","implementations","deviceLabelMatchesVendor","newMicLabel","changeReason","changeImplementation","selectedImplementation","clearSelectedImplementation","implementationChanged","getConnectedImpl","held","muted","outgoingCall","expectedStatePostAction","updateHeadsetState","removeTimer","setRemoveTimer","values","endAllCalls","resetHeadsetStateForCall","handleDeviceAnsweredCall","handleDeviceRejectedCall","handleDeviceEndedCall","deviceMuteStatusChanged","handleDeviceMuteStatusChanged","handleDeviceHoldStatusChanged","handleDeviceLogs","deviceConnectionStatusChanged","handleDeviceConnectionStatusChanged","webHidPermissionRequested","handleWebHidPermissionRequested","connectionStatus","loggableEvent","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","versions","binding","cwd","chdir","dir","umask","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","byteOffset","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","fromString","isBuffer","checked","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","foo","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","pos","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","_arr","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","abs","LN2"],"mappings":"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","file":"softhphone-vendor-headsets.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SoftphoneVendorHeadsets\"] = factory();\n\telse\n\t\troot[\"SoftphoneVendorHeadsets\"] = factory();\n})(window, function() {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".softhphone-vendor-headsets.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpSoftphoneVendorHeadsets\"] = window[\"webpackJsonpSoftphoneVendorHeadsets\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};function e(e,n){if(\"function\"!=typeof n&&null!==n)throw new TypeError(\"Class extends value \"+String(n)+\" is not a constructor or null\");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}function n(t,e,n,r){return new(n||(n=Promise))((function(i,o){function s(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}c((r=r.apply(t,e||[])).next())}))}function r(t,e){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=e.call(t,s)}catch(t){o=[6,t],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function i(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function o(t,e){var n=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function s(t,e,n){if(n||2===arguments.length)for(var r,i=0,o=e.length;i<o;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return t.concat(r||Array.prototype.slice.call(e))}function a(t){return this instanceof a?(this.v=t,this):new a(t)}function c(t,e,n){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var r,i=n.apply(t,e||[]),o=[];return r={},s(\"next\"),s(\"throw\"),s(\"return\"),r[Symbol.asyncIterator]=function(){return this},r;function s(t){i[t]&&(r[t]=function(e){return new Promise((function(n,r){o.push([t,e,n,r])>1||c(t,e)}))})}function c(t,e){try{(n=i[t](e)).value instanceof a?Promise.resolve(n.value.v).then(u,l):h(o[0][2],n)}catch(t){h(o[0][3],t)}var n}function u(t){c(\"next\",t)}function l(t){c(\"throw\",t)}function h(t,e){t(e),o.shift(),o.length&&c(o[0][0],o[0][1])}}function u(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=i(t),e={},r(\"next\"),r(\"throw\"),r(\"return\"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){(function(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)})(r,i,(e=t[n](e)).done,e.value)}))}}}function l(t,e,n,r){if(\"a\"===n&&!r)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof e?t!==e||!r:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===n?r:\"a\"===n?r.call(t):r?r.value:e.get(t)}function h(t,e,n,r,i){if(\"m\"===r)throw new TypeError(\"Private method is not writable\");if(\"a\"===r&&!i)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof e?t!==e||!i:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===r?i.call(t,n):i?i.value=n:e.set(t,n),n}function d(t){return\"function\"==typeof t}function p(t){var e=t((function(t){Error.call(t),t.stack=(new Error).stack}));return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var f=p((function(t){return function(e){t(this),this.message=e?e.length+\" errors occurred during unsubscription:\\n\"+e.map((function(t,e){return e+1+\") \"+t.toString()})).join(\"\\n \"):\"\",this.name=\"UnsubscriptionError\",this.errors=e}}));function v(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var E=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}var e;return t.prototype.unsubscribe=function(){var t,e,n,r,a;if(!this.closed){this.closed=!0;var c=this._parentage;if(c)if(this._parentage=null,Array.isArray(c))try{for(var u=i(c),l=u.next();!l.done;l=u.next()){l.value.remove(this)}}catch(e){t={error:e}}finally{try{l&&!l.done&&(e=u.return)&&e.call(u)}finally{if(t)throw t.error}}else c.remove(this);var h=this.initialTeardown;if(d(h))try{h()}catch(t){a=t instanceof f?t.errors:[t]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var v=i(p),E=v.next();!E.done;E=v.next()){var g=E.value;try{m(g)}catch(t){a=null!=a?a:[],t instanceof f?a=s(s([],o(a)),o(t.errors)):a.push(t)}}}catch(t){n={error:t}}finally{try{E&&!E.done&&(r=v.return)&&r.call(v)}finally{if(n)throw n.error}}}if(a)throw new f(a)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)m(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(e)}},t.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},t.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},t.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&v(e,t)},t.prototype.remove=function(e){var n=this._finalizers;n&&v(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=((e=new t).closed=!0,e),t}(),g=E.EMPTY;function _(t){return t instanceof E||t&&\"closed\"in t&&d(t.remove)&&d(t.add)&&d(t.unsubscribe)}function m(t){d(t)?t():t.unsubscribe()}var b={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},y={setTimeout:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=y.delegate;return(null==i?void 0:i.setTimeout)?i.setTimeout.apply(i,s([t,e],o(n))):setTimeout.apply(void 0,s([t,e],o(n)))},clearTimeout:function(t){var e=y.delegate;return((null==e?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function O(t){y.setTimeout((function(){throw t}))}function w(){}var N=C(\"C\",void 0,void 0);function C(t,e,n){return{kind:t,value:e,error:n}}function T(t){t()}var S=function(t){function n(e){var n=t.call(this)||this;return n.isStopped=!1,e?(n.destination=e,_(e)&&e.add(n)):n.destination=P,n}return e(n,t),n.create=function(t,e,n){return new D(t,e,n)},n.prototype.next=function(t){this.isStopped?L(function(t){return C(\"N\",t,void 0)}(t),this):this._next(t)},n.prototype.error=function(t){this.isStopped?L(C(\"E\",void 0,t),this):(this.isStopped=!0,this._error(t))},n.prototype.complete=function(){this.isStopped?L(N,this):(this.isStopped=!0,this._complete())},n.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},n.prototype._next=function(t){this.destination.next(t)},n.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},n.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},n}(E),A=Function.prototype.bind;function I(t,e){return A.call(t,e)}var R=function(){function t(t){this.partialObserver=t}return t.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(t){H(t)}},t.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(t){H(t)}else H(t)},t.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(t){H(t)}},t}(),D=function(t){function n(e,n,r){var i,o,s=t.call(this)||this;d(e)||!e?i={next:null!=e?e:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&b.useDeprecatedNextContext?((o=Object.create(e)).unsubscribe=function(){return s.unsubscribe()},i={next:e.next&&I(e.next,o),error:e.error&&I(e.error,o),complete:e.complete&&I(e.complete,o)}):i=e;return s.destination=new R(i),s}return e(n,t),n}(S);function H(t){O(t)}function L(t,e){var n=b.onStoppedNotification;n&&y.setTimeout((function(){return n(t,e)}))}var P={closed:!0,next:w,error:function(t){throw t},complete:w},U=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function k(t){return t}function x(t){return 0===t.length?k:1===t.length?t[0]:function(e){return t.reduce((function(t,e){return e(t)}),e)}}var G=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var r,i=this,o=(r=t)&&r instanceof S||function(t){return t&&d(t.next)&&d(t.error)&&d(t.complete)}(r)&&_(r)?t:new D(t,e,n);return T((function(){var t=i,e=t.operator,n=t.source;o.add(e?e.call(o,n):n?i._subscribe(o):i._trySubscribe(o))})),o},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=F(e))((function(e,r){var i=new D({next:function(e){try{t(e)}catch(t){r(t),i.unsubscribe()}},error:r,complete:e});n.subscribe(i)}))},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[U]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return x(t)(this)},t.prototype.toPromise=function(t){var e=this;return new(t=F(t))((function(t,n){var r;e.subscribe((function(t){return r=t}),(function(t){return n(t)}),(function(){return t(r)}))}))},t.create=function(e){return new t(e)},t}();function F(t){var e;return null!==(e=null!=t?t:b.Promise)&&void 0!==e?e:Promise}function M(t){return function(e){if(function(t){return d(null==t?void 0:t.lift)}(e))return e.lift((function(e){try{return t(e,this)}catch(t){this.error(t)}}));throw new TypeError(\"Unable to lift unknown Observable type\")}}function B(t,e,n,r,i){return new W(t,e,n,r,i)}var W=function(t){function n(e,n,r,i,o,s){var a=t.call(this,e)||this;return a.onFinalize=o,a.shouldUnsubscribe=s,a._next=n?function(t){try{n(t)}catch(t){e.error(t)}}:t.prototype._next,a._error=i?function(t){try{i(t)}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._error,a._complete=r?function(){try{r()}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,a}return e(n,t),n.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;t.prototype.unsubscribe.call(this),!n&&(null===(e=this.onFinalize)||void 0===e||e.call(this))}},n}(S),K=p((function(t){return function(){t(this),this.name=\"ObjectUnsubscribedError\",this.message=\"object unsubscribed\"}})),Y=function(t){function n(){var e=t.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return e(n,t),n.prototype.lift=function(t){var e=new V(this,this);return e.operator=t,e},n.prototype._throwIfClosed=function(){if(this.closed)throw new K},n.prototype.next=function(t){var e=this;T((function(){var n,r;if(e._throwIfClosed(),!e.isStopped){e.currentObservers||(e.currentObservers=Array.from(e.observers));try{for(var o=i(e.currentObservers),s=o.next();!s.done;s=o.next()){s.value.next(t)}}catch(t){n={error:t}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}}}))},n.prototype.error=function(t){var e=this;T((function(){if(e._throwIfClosed(),!e.isStopped){e.hasError=e.isStopped=!0,e.thrownError=t;for(var n=e.observers;n.length;)n.shift().error(t)}}))},n.prototype.complete=function(){var t=this;T((function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var e=t.observers;e.length;)e.shift().complete()}}))},n.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(n.prototype,\"observed\",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),n.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},n.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},n.prototype._innerSubscribe=function(t){var e=this,n=this,r=n.hasError,i=n.isStopped,o=n.observers;return r||i?g:(this.currentObservers=null,o.push(t),new E((function(){e.currentObservers=null,v(o,t)})))},n.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,r=e.thrownError,i=e.isStopped;n?t.error(r):i&&t.complete()},n.prototype.asObservable=function(){var t=new G;return t.source=this,t},n.create=function(t,e){return new V(t,e)},n}(G),V=function(t){function n(e,n){var r=t.call(this)||this;return r.destination=e,r.source=n,r}return e(n,t),n.prototype.next=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===n||n.call(e,t)},n.prototype.error=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===n||n.call(e,t)},n.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},n.prototype._subscribe=function(t){var e,n;return null!==(n=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==n?n:g},n}(Y),j=function(t){function n(e){var n=t.call(this)||this;return n._value=e,n}return e(n,t),Object.defineProperty(n.prototype,\"value\",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),n.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return!n.closed&&e.next(this._value),n},n.prototype.getValue=function(){var t=this,e=t.hasError,n=t.thrownError,r=t._value;if(e)throw n;return this._throwIfClosed(),r},n.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},n}(Y),q={now:function(){return(q.delegate||Date).now()},delegate:void 0},$=function(t){function n(e,n,r){void 0===e&&(e=1/0),void 0===n&&(n=1/0),void 0===r&&(r=q);var i=t.call(this)||this;return i._bufferSize=e,i._windowTime=n,i._timestampProvider=r,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,e),i._windowTime=Math.max(1,n),i}return e(n,t),n.prototype.next=function(e){var n=this,r=n.isStopped,i=n._buffer,o=n._infiniteTimeWindow,s=n._timestampProvider,a=n._windowTime;r||(i.push(e),!o&&i.push(s.now()+a)),this._trimBuffer(),t.prototype.next.call(this,e)},n.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var e=this._innerSubscribe(t),n=this._infiniteTimeWindow,r=this._buffer.slice(),i=0;i<r.length&&!t.closed;i+=n?1:2)t.next(r[i]);return this._checkFinalizedStatuses(t),e},n.prototype._trimBuffer=function(){var t=this,e=t._bufferSize,n=t._timestampProvider,r=t._buffer,i=t._infiniteTimeWindow,o=(i?1:2)*e;if(e<1/0&&o<r.length&&r.splice(0,r.length-o),!i){for(var s=n.now(),a=0,c=1;c<r.length&&r[c]<=s;c+=2)a=c;a&&r.splice(0,a+1)}},n}(Y),z=function(t){function n(e,n){return t.call(this)||this}return e(n,t),n.prototype.schedule=function(t,e){return this},n}(E),Q={setInterval:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Q.delegate;return(null==i?void 0:i.setInterval)?i.setInterval.apply(i,s([t,e],o(n))):setInterval.apply(void 0,s([t,e],o(n)))},clearInterval:function(t){var e=Q.delegate;return((null==e?void 0:e.clearInterval)||clearInterval)(t)},delegate:void 0},J=function(t){function n(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.pending=!1,r}return e(n,t),n.prototype.schedule=function(t,e){var n;if(void 0===e&&(e=0),this.closed)return this;this.state=t;var r=this.id,i=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(i,r,e)),this.pending=!0,this.delay=e,this.id=null!==(n=this.id)&&void 0!==n?n:this.requestAsyncId(i,this.id,e),this},n.prototype.requestAsyncId=function(t,e,n){return void 0===n&&(n=0),Q.setInterval(t.flush.bind(t,this),n)},n.prototype.recycleAsyncId=function(t,e,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return e;null!=e&&Q.clearInterval(e)},n.prototype.execute=function(t,e){if(this.closed)return new Error(\"executing a cancelled action\");this.pending=!1;var n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},n.prototype._execute=function(t,e){var n,r=!1;try{this.work(t)}catch(t){r=!0,n=t||new Error(\"Scheduled action threw falsy error\")}if(r)return this.unsubscribe(),n},n.prototype.unsubscribe=function(){if(!this.closed){var e=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,v(r,this),null!=e&&(this.id=this.recycleAsyncId(n,e,null)),this.delay=null,t.prototype.unsubscribe.call(this)}},n}(z),X=function(){function t(e,n){void 0===n&&(n=t.now),this.schedulerActionCtor=e,this.now=n}return t.prototype.schedule=function(t,e,n){return void 0===e&&(e=0),new this.schedulerActionCtor(this,t).schedule(n,e)},t.now=q.now,t}(),Z=new(function(t){function n(e,n){void 0===n&&(n=X.now);var r=t.call(this,e,n)||this;return r.actions=[],r._active=!1,r}return e(n,t),n.prototype.flush=function(t){var e=this.actions;if(this._active)e.push(t);else{var n;this._active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}},n}(X))(J),tt=Z,et=new G((function(t){return t.complete()}));function nt(t){return t&&d(t.schedule)}function rt(t){return t[t.length-1]}function it(t){return d(rt(t))?t.pop():void 0}function ot(t){return nt(rt(t))?t.pop():void 0}function st(t,e){return\"number\"==typeof rt(t)?t.pop():e}var at=function(t){return t&&\"number\"==typeof t.length&&\"function\"!=typeof t};function ct(t){return d(null==t?void 0:t.then)}function ut(t){return d(t[U])}function lt(t){return Symbol.asyncIterator&&d(null==t?void 0:t[Symbol.asyncIterator])}function ht(t){return new TypeError(\"You provided \"+(null!==t&&\"object\"==typeof t?\"an invalid object\":\"'\"+t+\"'\")+\" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\")}var dt=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\";function pt(t){return d(null==t?void 0:t[dt])}function ft(t){return c(this,arguments,(function(){var e,n,i;return r(this,(function(r){switch(r.label){case 0:e=t.getReader(),r.label=1;case 1:r.trys.push([1,,9,10]),r.label=2;case 2:return[4,a(e.read())];case 3:return n=r.sent(),i=n.value,n.done?[4,a(void 0)]:[3,5];case 4:return[2,r.sent()];case 5:return[4,a(i)];case 6:return[4,r.sent()];case 7:return r.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}}))}))}function vt(t){return d(null==t?void 0:t.getReader)}function Et(t){if(t instanceof G)return t;if(null!=t){if(ut(t))return o=t,new G((function(t){var e=o[U]();if(d(e.subscribe))return e.subscribe(t);throw new TypeError(\"Provided object does not correctly implement Symbol.observable\")}));if(at(t))return r=t,new G((function(t){for(var e=0;e<r.length&&!t.closed;e++)t.next(r[e]);t.complete()}));if(ct(t))return n=t,new G((function(t){n.then((function(e){t.closed||(t.next(e),t.complete())}),(function(e){return t.error(e)})).then(null,O)}));if(lt(t))return gt(t);if(pt(t))return e=t,new G((function(t){var n,r;try{for(var o=i(e),s=o.next();!s.done;s=o.next()){var a=s.value;if(t.next(a),t.closed)return}}catch(t){n={error:t}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}t.complete()}));if(vt(t))return gt(ft(t))}var e,n,r,o;throw ht(t)}function gt(t){return new G((function(e){(function(t,e){var i,o,s,a;return n(this,void 0,void 0,(function(){var n,c;return r(this,(function(r){switch(r.label){case 0:r.trys.push([0,5,6,11]),i=u(t),r.label=1;case 1:return[4,i.next()];case 2:if((o=r.sent()).done)return[3,4];if(n=o.value,e.next(n),e.closed)return[2];r.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=r.sent(),s={error:c},[3,11];case 6:return r.trys.push([6,,9,10]),o&&!o.done&&(a=i.return)?[4,a.call(i)]:[3,8];case 7:r.sent(),r.label=8;case 8:return[3,10];case 9:if(s)throw s.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}}))}))})(t,e).catch((function(t){return e.error(t)}))}))}function _t(t,e,n,r,i){void 0===r&&(r=0),void 0===i&&(i=!1);var o=e.schedule((function(){n(),i?t.add(this.schedule(null,r)):this.unsubscribe()}),r);if(t.add(o),!i)return o}function mt(t,e){return void 0===e&&(e=0),M((function(n,r){n.subscribe(B(r,(function(n){return _t(r,t,(function(){return r.next(n)}),e)}),(function(){return _t(r,t,(function(){return r.complete()}),e)}),(function(n){return _t(r,t,(function(){return r.error(n)}),e)})))}))}function bt(t,e){return void 0===e&&(e=0),M((function(n,r){r.add(t.schedule((function(){return n.subscribe(r)}),e))}))}function yt(t,e){if(!t)throw new Error(\"Iterable cannot be null\");return new G((function(n){_t(n,e,(function(){var r=t[Symbol.asyncIterator]();_t(n,e,(function(){r.next().then((function(t){t.done?n.complete():n.next(t.value)}))}),0,!0)}))}))}function Ot(t,e){if(null!=t){if(ut(t))return function(t,e){return Et(t).pipe(bt(e),mt(e))}(t,e);if(at(t))return function(t,e){return new G((function(n){var r=0;return e.schedule((function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())}))}))}(t,e);if(ct(t))return function(t,e){return Et(t).pipe(bt(e),mt(e))}(t,e);if(lt(t))return yt(t,e);if(pt(t))return function(t,e){return new G((function(n){var r;return _t(n,e,(function(){r=t[dt](),_t(n,e,(function(){var t,e,i;try{e=(t=r.next()).value,i=t.done}catch(t){return void n.error(t)}i?n.complete():n.next(e)}),0,!0)})),function(){return d(null==r?void 0:r.return)&&r.return()}}))}(t,e);if(vt(t))return function(t,e){return yt(ft(t),e)}(t,e)}throw ht(t)}function wt(t,e){return e?Ot(t,e):Et(t)}function Nt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=ot(t);return wt(t,n)}function Ct(t,e){var n=d(t)?t:function(){return t},r=function(t){return t.error(n())};return new G(e?function(t){return e.schedule(r,0,t)}:r)}var Tt=p((function(t){return function(){t(this),this.name=\"EmptyError\",this.message=\"no elements in sequence\"}}));function St(t,e){var n=\"object\"==typeof e;return new Promise((function(r,i){var o,s=!1;t.subscribe({next:function(t){o=t,s=!0},error:i,complete:function(){s?r(o):n?r(e.defaultValue):i(new Tt)}})}))}function At(t,e){var n=\"object\"==typeof e;return new Promise((function(r,i){var o=new D({next:function(t){r(t),o.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new Tt)}});t.subscribe(o)}))}function It(t){return t instanceof Date&&!isNaN(t)}var Rt=p((function(t){return function(e){void 0===e&&(e=null),t(this),this.message=\"Timeout has occurred\",this.name=\"TimeoutError\",this.info=e}}));function Dt(t,e){var n=It(t)?{first:t}:\"number\"==typeof t?{each:t}:t,r=n.first,i=n.each,o=n.with,s=void 0===o?Ht:o,a=n.scheduler,c=void 0===a?null!=e?e:Z:a,u=n.meta,l=void 0===u?null:u;if(null==r&&null==i)throw new TypeError(\"No timeout provided.\");return M((function(t,e){var n,o,a=null,u=0,h=function(t){o=_t(e,c,(function(){try{n.unsubscribe(),Et(s({meta:l,lastValue:a,seen:u})).subscribe(e)}catch(t){e.error(t)}}),t)};n=t.subscribe(B(e,(function(t){null==o||o.unsubscribe(),u++,e.next(a=t),i>0&&h(i)}),void 0,void 0,(function(){(null==o?void 0:o.closed)||null==o||o.unsubscribe(),a=null}))),!u&&h(null!=r?\"number\"==typeof r?r:+r-c.now():i)}))}function Ht(t){throw new Rt(t)}function Lt(t,e){return M((function(n,r){var i=0;n.subscribe(B(r,(function(n){r.next(t.call(e,n,i++))})))}))}function Pt(t,e,n){return void 0===n&&(n=1/0),d(e)?Pt((function(n,r){return Lt((function(t,i){return e(n,t,r,i)}))(Et(t(n,r)))}),n):(\"number\"==typeof e&&(n=e),M((function(e,r){return function(t,e,n,r,i,o,s,a){var c=[],u=0,l=0,h=!1,d=function(){!h||c.length||u||e.complete()},p=function(t){return u<r?f(t):c.push(t)},f=function(t){o&&e.next(t),u++;var a=!1;Et(n(t,l++)).subscribe(B(e,(function(t){null==i||i(t),o?p(t):e.next(t)}),(function(){a=!0}),void 0,(function(){if(a)try{u--;for(var t=function(){var t=c.shift();s?_t(e,s,(function(){return f(t)})):f(t)};c.length&&u<r;)t();d()}catch(t){e.error(t)}})))};return t.subscribe(B(e,p,(function(){h=!0,d()}))),function(){null==a||a()}}(e,r,t,n)})))}function Ut(t){return void 0===t&&(t=1/0),Pt(k,t)}function kt(){return Ut(1)}function xt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return kt()(wt(t,ot(t)))}function Gt(t){return new G((function(e){Et(t()).subscribe(e)}))}function Ft(t,e,n){void 0===t&&(t=0),void 0===n&&(n=tt);var r=-1;return null!=e&&(nt(e)?n=e:r=e),new G((function(e){var i=It(t)?+t-n.now():t;i<0&&(i=0);var o=0;return n.schedule((function(){e.closed||(e.next(o++),0<=r?this.schedule(void 0,r):e.complete())}),i)}))}function Mt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=ot(t),r=st(t,1/0),i=t;return i.length?1===i.length?Et(i[0]):Ut(r)(wt(i,n)):et}var Bt,Wt,Kt,Yt,Vt,jt,qt=new G(w),$t=Array.isArray;function zt(t){return 1===t.length&&$t(t[0])?t[0]:t}function Qt(t,e){return function(n,r){return!t.call(e,n,r)}}function Jt(t,e){return M((function(n,r){var i=0;n.subscribe(B(r,(function(n){return t.call(e,n,i++)&&r.next(n)})))}))}function Xt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 1===(t=zt(t)).length?Et(t[0]):new G(Zt(t))}function Zt(t){return function(e){for(var n=[],r=function(r){n.push(Et(t[r]).subscribe(B(e,(function(t){if(n){for(var i=0;i<n.length;i++)i!==r&&n[i].unsubscribe();n=null}e.next(t)}))))},i=0;n&&!e.closed&&i<t.length;i++)r(i)}}function te(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=it(t),r=zt(t);return r.length?new G((function(t){var e=r.map((function(){return[]})),i=r.map((function(){return!1}));t.add((function(){e=i=null}));for(var a=function(a){Et(r[a]).subscribe(B(t,(function(r){if(e[a].push(r),e.every((function(t){return t.length}))){var c=e.map((function(t){return t.shift()}));t.next(n?n.apply(void 0,s([],o(c))):c),e.some((function(t,e){return!t.length&&i[e]}))&&t.complete()}}),(function(){i[a]=!0,!e[a].length&&t.complete()})))},c=0;!t.closed&&c<r.length;c++)a(c);return function(){e=i=null}})):et}function ee(t){return M((function(e,n){var r,i=null,o=!1;i=e.subscribe(B(n,void 0,void 0,(function(s){r=Et(t(s,ee(t)(e))),i?(i.unsubscribe(),i=null,r.subscribe(n)):o=!0}))),o&&(i.unsubscribe(),i=null,r.subscribe(n))}))}function ne(t,e){return d(e)?Pt(t,e,1):Pt(t,1)}function re(t){return M((function(e,n){var r=!1;e.subscribe(B(n,(function(t){r=!0,n.next(t)}),(function(){r||n.next(t),n.complete()})))}))}function ie(t){return t<=0?function(){return et}:M((function(e,n){var r=0;e.subscribe(B(n,(function(e){++r<=t&&(n.next(e),t<=r&&n.complete())})))}))}function oe(t,e){return void 0===e&&(e=k),t=null!=t?t:se,M((function(n,r){var i,o=!0;n.subscribe(B(r,(function(n){var s=e(n);!o&&t(i,s)||(o=!1,i=s,r.next(n))})))}))}function se(t,e){return t===e}function ae(t){return void 0===t&&(t=ce),M((function(e,n){var r=!1;e.subscribe(B(n,(function(t){r=!0,n.next(t)}),(function(){return r?n.complete():n.error(t())})))}))}function ce(){return new Tt}function ue(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?Jt((function(e,n){return t(e,n,r)})):k,ie(1),n?re(e):ae((function(){return new Tt})))}}function le(t){return t<=0?function(){return et}:M((function(e,n){var r=[];e.subscribe(B(n,(function(e){r.push(e),t<r.length&&r.shift()}),(function(){var t,e;try{for(var o=i(r),s=o.next();!s.done;s=o.next()){var a=s.value;n.next(a)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}n.complete()}),void 0,(function(){r=null})))}))}function he(t){return M((function(e,n){var r,i,o=!1,s=function(){r=e.subscribe(B(n,void 0,void 0,(function(e){i||(i=new Y,t(i).subscribe(B(n,(function(){return r?s():o=!0})))),i&&i.next(e)}))),o&&(r.unsubscribe(),r=null,o=!1,s())};s()}))}function de(t){void 0===t&&(t={});var e=t.connector,n=void 0===e?function(){return new Y}:e,r=t.resetOnError,i=void 0===r||r,o=t.resetOnComplete,s=void 0===o||o,a=t.resetOnRefCountZero,c=void 0===a||a;return function(t){var e,r,o,a=0,u=!1,l=!1,h=function(){null==r||r.unsubscribe(),r=void 0},d=function(){h(),e=o=void 0,u=l=!1},p=function(){var t=e;d(),null==t||t.unsubscribe()};return M((function(t,f){a++,l||u||h();var v=o=null!=o?o:n();f.add((function(){0!==--a||l||u||(r=pe(p,c))})),v.subscribe(f),!e&&a>0&&(e=new D({next:function(t){return v.next(t)},error:function(t){l=!0,h(),r=pe(d,i,t),v.error(t)},complete:function(){u=!0,h(),r=pe(d,s),v.complete()}}),Et(t).subscribe(e))}))(t)}}function pe(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!0!==e){if(!1!==e){var i=new D({next:function(){i.unsubscribe(),t()}});return e.apply(void 0,s([],o(n))).subscribe(i)}}else t()}function fe(t,e,n){var r,i,o,s,a=!1;return t&&\"object\"==typeof t?(r=t.bufferSize,s=void 0===r?1/0:r,i=t.windowTime,e=void 0===i?1/0:i,a=void 0!==(o=t.refCount)&&o,n=t.scheduler):s=null!=t?t:1/0,de({connector:function(){return new $(s,e,n)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:a})}function ve(t){return Jt((function(e,n){return t<=n}))}function Ee(t,e){return M((function(n,r){var i=null,o=0,s=!1,a=function(){return s&&!i&&r.complete()};n.subscribe(B(r,(function(n){null==i||i.unsubscribe();var s=0,c=o++;Et(t(n,c)).subscribe(i=B(r,(function(t){return r.next(e?e(n,t,c,s++):t)}),(function(){i=null,a()})))}),(function(){s=!0,a()})))}))}function ge(){return Ee(k)}function _e(t){return M((function(e,n){Et(t).subscribe(B(n,(function(){return n.complete()}),w)),!n.closed&&e.subscribe(n)}))}function me(t,e,n){var r=d(t)||e||n?{next:t,error:e,complete:n}:t;return r?M((function(t,e){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var i=!0;t.subscribe(B(e,(function(t){var n;null===(n=r.next)||void 0===n||n.call(r,t),e.next(t)}),(function(){var t;i=!1,null===(t=r.complete)||void 0===t||t.call(r),e.complete()}),(function(t){var n;i=!1,null===(n=r.error)||void 0===n||n.call(r,t),e.error(t)}),(function(){var t,e;i&&(null===(t=r.unsubscribe)||void 0===t||t.call(r)),null===(e=r.finalize)||void 0===e||e.call(r)})))})):k}class be extends Error{constructor(t,e){super(t),this.type=e,this.type=e,Object.setPrototypeOf(this,new.target.prototype)}}function ye(t,e,n=Bt.ERROR,r=Wt.JS_LIB){e?null==e||e.write({level:n,layer:r,message:t}):e||n!==Bt.ERROR||console.error(t)}function Oe(t){return void 0!==t}!function(t){t.ERROR=\"error\",t.WARNING=\"warning\",t.INFO=\"info\"}(Bt||(Bt={})),function(t){t.CHROME_EXTENSION=\"chrome-extension\",t.NATIVE_CONSOLE=\"native-console\",t.JS_LIB=\"js-lib\"}(Wt||(Wt={})),function(t){t.SDK_USAGE_ERROR=\"sdk-usage-error\",t.FEATURE_NOT_SUPPORTED=\"feature-not-supported\",t.DEVICE_ERROR=\"device-error\",t.UNEXPECTED_ERROR=\"unexpected-error\",t.INIT_ERROR=\"init-error\"}(Kt||(Kt={}));class we{constructor(t,e){this.compare=e,this.remove=new Y,this.itemRemoved=this.remove,this.items=new j([]),this.itemList=this.items,this.itemAdded=t.pipe(Lt((t=>(this.addItem(t),t))),de()),this.itemAdded.subscribe({next:t=>{t.onDisconnect.pipe(ue(),Lt((()=>this.removeItem(t.id))),Jt(Oe)).subscribe((t=>this.remove.next(t)))},error:w}),this.itemRemoved.subscribe({error:w})}getValue(){return[...this.items.getValue()]}addItem(t){if(this.items.getValue().filter((e=>e.id.equals(t.id))).length>0)throw new be(\"This item has already been added.\",Kt.UNEXPECTED_ERROR);const e=this.items.getValue().concat([t]);e.sort(this.compare),this.items.next(e)}removeItem(t){const e=this.getValue(),n=e.findIndex((e=>e.id.equals(t)));if(-1===n)throw new be(\"Item not found and therefore cannot be removed.\",Kt.UNEXPECTED_ERROR);const r=e.splice(n,1)[0];return this.items.next(e),r}}class Ne{constructor(t,e){var n;this.sdkVersion=null!==(n=\"4.2.1\")?n:\"0.0.1-local\",this.consoleAppVersion=t.pipe(ue((t=>\"ready\"===t.event)),Lt((t=>t.version)),Dt(1e3),fe(1),ee((()=>Nt(null)))),this.chromeExtensionVersion=t.pipe(ue((t=>\"chrome-extension-ready\"===t.event)),Lt((t=>t.version)),Dt(1e3),fe(1),ee((()=>Nt(null)))),te(this.consoleAppVersion,this.chromeExtensionVersion).subscribe((t=>{const n=`sdkVersion: ${this.sdkVersion} | chromeHostVersion: ${t[0]}`;let r;r=\"undefined\"!=typeof process?`${n} | nodeVersion: ${process.version} | platform: ${process.platform}`:`${n} | chromeExtensionVersion: ${t[1]} | browserUserAgent: ${window.navigator.userAgent}`,ye(r,e,Bt.INFO)}))}}class Ce{constructor(t,e,n){this.deviceDetector=t,this.deviceAdded=this.deviceDetector.deviceObservables.itemAdded,this.deviceRemoved=this.deviceDetector.deviceObservables.itemRemoved,this.deviceList=this.deviceDetector.deviceObservables.itemList,Yt.set(this,void 0),this._transport=e,this._readyEvents=e.consoleAppEvent.pipe(Jt((t=>\"ready\"===t.event||\"chrome-extension-ready\"===t.event)),fe(2)),this._readyEvents.subscribe(),this._config=n,this.transportContext=e.context,h(this,Yt,new Ne(this._readyEvents,null==n?void 0:n.logger),\"f\")}getVersion(){return l(this,Yt,\"f\").sdkVersion}getChromehostVersion(){return At(l(this,Yt,\"f\").consoleAppVersion)}getChromeExtensionVersion(){return At(l(this,Yt,\"f\").chromeExtensionVersion)}}Yt=new WeakMap,function(t){t.NODE=\"node\",t.CHROME_EXTENSION=\"chrome-extension\",t.WEB_HID=\"web-hid\"}(Vt||(Vt={})),function(t){t.CHROME_EXTENSION=\"chrome-extension\",t.WEB_HID=\"web-hid\",t.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK=\"chrome-extension-with-web-hid-fallback\"}(jt||(jt={}));const Te=\"Failed to dynamically import file. Please contact a Jabra representative as we would love to learn about scenarios where this could happen!\";function Se(t,e=jt.CHROME_EXTENSION,r){return n(this,void 0,void 0,(function*(){if(e!==jt.WEB_HID){const n=yield import(\"./chrome-extension-transport-13d55d4f.js\").catch((()=>{throw new be(Te,Kt.UNEXPECTED_ERROR)})),i=yield n.TransportChromeExtension.checkInstallation();if(i.ok)return ye(\"Using Chrome extension for transport.\",t,Bt.INFO),new n.TransportChromeExtension(t,r);if(e===jt.CHROME_EXTENSION)throw new be(i.message,Kt.INIT_ERROR);e===jt.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK&&ye(i.message,t,Bt.INFO)}return ye(\"Using WebHID for transport.\",t,Bt.INFO),function(t,e){return n(this,void 0,void 0,(function*(){const n=yield import(\"./init-handler-cf98d043.js\").catch((()=>{throw new be(Te,Kt.UNEXPECTED_ERROR)})),r=yield import(\"./web-hid-transport-7010ebf0.js\").catch((()=>{throw new be(Te,Kt.UNEXPECTED_ERROR)})),i=n.initHandler(t);return new r.WebHidTransport(i,t,e)}))}(t,r)}))}class Ae{constructor(t,e){this.log=t.consoleAppEvent.pipe(Jt((t=>\"log\"===t.event)),Lt((t=>({message:t.message,level:t.level,layer:t.layer})))),this.log.subscribe((t=>ye(t.message,e,t.level,t.layer)))}}const Ie=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920];class Re{constructor(t){this.config=t,this.messageShown=!1}validateOrganizationKey(){var t;if(!(null===(t=this.config)||void 0===t?void 0:t.partnerKey))return void this.logWarning(\"No partner key provided.\");this.validateCrc(this.config.partnerKey)||this.logWarning(\"Invalid partner key.\")}validateAppId(){var t;if(!(null===(t=this.config)||void 0===t?void 0:t.appId))return void this.logWarning(\"No app identifier provided.\");if(this.config.appId.length<3)return void this.logWarning(\"The appId should be minimum 3 characters.\",!1);if(this.config.appId.length>100)return void this.logWarning(\"The appId should be no longer than 100 characters.\",!1);/^[A-Za-z0-9\\-_]+$/.test(this.config.appId)||this.logWarning(\"The appId is invalid. Should consist of letters, numbers, underscores or dashes\",!1)}validateAppName(){var t;if(!(null===(t=this.config)||void 0===t?void 0:t.appName))return void this.logWarning(\"No app name provided. Will fallback to use appId as name.\",!1);if(!/^[\\x20-\\x7F]*$/.test(this.config.appName))return void this.logWarning(\"The app name can only contain ASCII characters\",!1);if(this.config.appName.length>100)return void this.logWarning(\"The app name should be no longer than 100 characters.\",!1);/^[A-Za-z0-9]+[A-Za-z0-9 &-]*$/g.test(this.config.appName)||this.logWarning(\"The appName is invalid. Name should consist of letters, numbers, spaces, ampersands and dashes. Name should not begin with spaces, ampersands or dashes.\",!1)}logWarning(t,e=!0){if(this.messageShown)return;this.messageShown=!0;e?console.warn(`\\n ${t}\\n \\n Add keys to the config object on initialization.\\n E.g. await init({\\n partnerKey: 'my-partner-key-from-developer-zone',\\n appId: 'my-self-chosen-app-id',\\n appName: 'My App Name'\\n });\\n\\n Please obtain a valid partner key from https://developer.jabra.com.\\n The key will ensure interoperability with other Jabra apps and services, and mitigate\\n some co-existence issues with other softphone applications.\\n\\n The package will continue to work without the keys, but we do not recommend production release\\n without it. Read more on the Developer Zone.\\n \\n `):console.warn(t)}validateCrc(t){const[e,...n]=t.split(\"-\"),r=function(t){let e,n,r=65535;for(n=0;n<t.length;n+=1){const i=t.charCodeAt(n);if(i>255)throw new RangeError;e=255&(i^r>>8),r=Ie[e]^r<<8}return 65535&(0^r)}(n.join(\"-\")).toString(16).padStart(4,\"0\");return e===r}}var De,He,Le,Pe,Ue,ke,xe,Ge;!function(t){t[t.MS_OC=0]=\"MS_OC\",t[t.CISCO=1]=\"CISCO\",t[t.AVAYA=2]=\"AVAYA\",t[t.SIEMENS=3]=\"SIEMENS\",t[t.ALCATEL=4]=\"ALCATEL\",t[t.IBM=5]=\"IBM\",t[t.AASTRA=6]=\"AASTRA\",t[t.SKYPE=7]=\"SKYPE\",t[t.GENERIC=8]=\"GENERIC\",t[t.NORTEL=9]=\"NORTEL\",t[t.JABRA=10]=\"JABRA\",t[t.NEC=11]=\"NEC\",t[t.SHORETEL=12]=\"SHORETEL\",t[t.OTHER=255]=\"OTHER\"}(De||(De={}));class Fe{constructor(t,e){this.gnpReadCommand=t,this.serialize=e,this.command=t.command,this.subCommand=t.subCommand}deserialize(t){return this.gnpReadCommand.deserialize(t)}}!function(t){t[t.GN_PROTOCOL=65280]=\"GN_PROTOCOL\"}(He||(He={})),function(t){t[t.DATA=1]=\"DATA\"}(Le||(Le={}));class Me{constructor(t,e,n,r,i,o=new Uint8Array,s=0){this.destination=t,this.source=e,this.type=n,this.command=r,this.subCommand=i,this.payload=o,this.sequenceNumber=s}}!function(t){t[t.PC_ADDR=0]=\"PC_ADDR\",t[t.BASE_ADDR=1]=\"BASE_ADDR\",t[t.HS1_ADDR=4]=\"HS1_ADDR\",t[t.HS_BT_USB_ADDR=8]=\"HS_BT_USB_ADDR\",t[t.HS_CRADLE_ADDR=10]=\"HS_CRADLE_ADDR\",t[t.CRADLE_ADDR=21]=\"CRADLE_ADDR\"}(Pe||(Pe={})),function(t){t[t.EVENT=0]=\"EVENT\",t[t.READ=1]=\"READ\",t[t.WRITE=2]=\"WRITE\",t[t.REPLY=3]=\"REPLY\"}(Ue||(Ue={})),function(t){t[t.IDENT=2]=\"IDENT\",t[t.DFU=7]=\"DFU\",t[t.DEVICE=13]=\"DEVICE\",t[t.FWU=15]=\"FWU\",t[t.STATUS=18]=\"STATUS\",t[t.CONFIG=19]=\"CONFIG\",t[t.NACK=254]=\"NACK\",t[t.ACK=255]=\"ACK\"}(ke||(ke={})),function(t){t[t.CONFIG_PREFERRED_SOFTPHONE=34]=\"CONFIG_PREFERRED_SOFTPHONE\",t[t.ID=1]=\"ID\",t[t.IDENT_GET_AVAILABLE_SOFTPHONES=16]=\"IDENT_GET_AVAILABLE_SOFTPHONES\",t[t.TYPE=2]=\"TYPE\",t[t.NAME=0]=\"NAME\",t[t.PID=17]=\"PID\",t[t.ATTACH_EVENT=1]=\"ATTACH_EVENT\",t[t.DETACH_EVENT=2]=\"DETACH_EVENT\"}(xe||(xe={})),function(t){t[t.NO_ERROR_CODE=0]=\"NO_ERROR_CODE\",t[t.BAD_STATE=243]=\"BAD_STATE\",t[t.TRANSMIT_FAILED=244]=\"TRANSMIT_FAILED\",t[t.ILLEGAL_ADDR=245]=\"ILLEGAL_ADDR\",t[t.UNKNOWN_CMD=246]=\"UNKNOWN_CMD\",t[t.FILE_NOT_FOUND=247]=\"FILE_NOT_FOUND\",t[t.INTERNAL_ERROR=248]=\"INTERNAL_ERROR\",t[t.REPLY_ERROR=249]=\"REPLY_ERROR\",t[t.ILLEGAL_PARAM=250]=\"ILLEGAL_PARAM\",t[t.OUT_OF_SEQUENCE=251]=\"OUT_OF_SEQUENCE\",t[t.NO_SPACE=252]=\"NO_SPACE\",t[t.ACCESS_DENIED=253]=\"ACCESS_DENIED\",t[t.NO_MORE_DATA=254]=\"NO_MORE_DATA\",t[t.UNKNOWN_SUB_CMD=255]=\"UNKNOWN_SUB_CMD\"}(Ge||(Ge={}));const Be={command:ke.DEVICE,subCommand:xe.ATTACH_EVENT,serialize:t=>Uint8Array.from([5,0])};function We(t){const e=t.payload,n=e[0],r=e.length-1;if(r!==n)throw new be(`Invalid response. Expected length: ${n}, actual: ${r}`,Kt.DEVICE_ERROR);const i=e.slice(1);return String.fromCharCode(...Array.from(i))}class Ke{constructor(){var t;this.command=ke.IDENT,this.subCommand=xe.IDENT_GET_AVAILABLE_SOFTPHONES,this.deserialize=(t=t=>t,e=>{const n=e.payload,r=n[0],i=n.length-1;if(i!==r)throw new be(`Invalid response. Expected length: ${r}, actual: ${i}`,Kt.DEVICE_ERROR);const o=[];return n.slice(1).forEach((e=>{o.push(t(e))})),o})}}const Ye={command:ke.IDENT,subCommand:xe.NAME,deserialize:We},Ve={command:ke.IDENT,subCommand:xe.PID,deserialize:function(t){const e=t instanceof Me?t.payload:t;return new DataView(e.buffer).getUint16(0,!0)}},je={command:ke.CONFIG,subCommand:xe.CONFIG_PREFERRED_SOFTPHONE,deserialize:t=>t.payload[0],serialize:t=>Uint8Array.of(t)},qe={command:ke.IDENT,subCommand:xe.TYPE,deserialize:t=>t.source},$e={command:ke.IDENT,subCommand:xe.ID,deserialize:We};\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function ze(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==e&&n.path)}},n.exports),n.exports}var Qe,Je,Xe=ze((function(t){\n/*!\n** Pure-UUID -- Pure JavaScript Based Universally Unique Identifier (UUID)\n** Copyright (c) 2004-2020 Dr. Ralf S. Engelschall <rse@engelschall.com>\n**\n** Permission is hereby granted, free of charge, to any person obtaining\n** a copy of this software and associated documentation files (the\n** \"Software\"), to deal in the Software without restriction, including\n** without limitation the rights to use, copy, modify, merge, publish,\n** distribute, sublicense, and/or sell copies of the Software, and to\n** permit persons to whom the Software is furnished to do so, subject to\n** the following conditions:\n**\n** The above copyright notice and this permission notice shall be included\n** in all copies or substantial portions of the Software.\n**\n** THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\nt.exports=function(){var t=function(t,e,n,r,i,o){for(var s=function(t,e){var n=t.toString(16);return n.length<2&&(n=\"0\"+n),e&&(n=n.toUpperCase()),n},a=e;a<=n;a++)i[o++]=s(t[a],r);return i},e=function(t,e,n,r,i){for(var o=e;o<=n;o+=2)r[i++]=parseInt(t.substr(o,2),16)},n=\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#\".split(\"\"),r=[0,68,0,84,83,82,72,0,75,76,70,65,0,63,62,69,0,1,2,3,4,5,6,7,8,9,64,0,73,66,74,71,81,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,77,0,78,67,0,0,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,79,0,80,0,0],i=function(t,e){if(e%4!=0)throw new Error(\"z85_encode: invalid input length (multiple of 4 expected)\");for(var r=\"\",i=0,o=0;i<e;)if(o=256*o+t[i++],i%4==0){for(var s=52200625;s>=1;){var a=Math.floor(o/s)%85;r+=n[a],s/=85}o=0}return r},o=function(t,e){var n=t.length;if(n%5!=0)throw new Error(\"z85_decode: invalid input length (multiple of 5 expected)\");void 0===e&&(e=new Array(4*n/5));for(var i=0,o=0,s=0;i<n;){var a=t.charCodeAt(i++)-32;if(a<0||a>=r.length)break;if(s=85*s+r[a],i%5==0){for(var c=16777216;c>=1;)e[o++]=Math.trunc(s/c%256),c/=256;s=0}}return e},s=function(t,e){var n={ibits:8,obits:8,obigendian:!0};for(var r in e)void 0!==n[r]&&(n[r]=e[r]);for(var i,o,s,a=[],c=0,u=0,l=0,h=t.length;0===u&&(o=t.charCodeAt(c++)),i=o>>n.ibits-(u+8)&255,u=(u+8)%n.ibits,n.obigendian?0===l?s=i<<n.obits-8:s|=i<<n.obits-8-l:0===l?s=i:s|=i<<l,!(0==(l=(l+8)%n.obits)&&(a.push(s),c>=h)););return a},a=function(t,e){var n={ibits:32,ibigendian:!0};for(var r in e)void 0!==n[r]&&(n[r]=e[r]);var i=\"\",o=4294967295;n.ibits<32&&(o=(1<<n.ibits)-1);for(var s=t.length,a=0;a<s;a++)for(var c=t[a]&o,u=0;u<n.ibits;u+=8)n.ibigendian?i+=String.fromCharCode(c>>n.ibits-8-u&255):i+=String.fromCharCode(c>>u&255);return i},c=8,u=8,l=256,h=function(t,e,n,r,i,o,s,a){return[a,s,o,i,r,n,e,t]},d=function(){return h(0,0,0,0,0,0,0,0)},p=function(t){return t.slice(0)},f=function(t){for(var e=d(),n=0;n<c;n++)e[n]=Math.floor(t%l),t/=l;return e},v=function(t){for(var e=0,n=c-1;n>=0;n--)e*=l,e+=t[n];return Math.floor(e)},E=function(t,e){for(var n=0,r=0;r<c;r++)n+=t[r]+e[r],t[r]=Math.floor(n%l),n=Math.floor(n/l);return n},g=function(t,e){for(var n=0,r=0;r<c;r++)n+=t[r]*e,t[r]=Math.floor(n%l),n=Math.floor(n/l);return n},_=function(t,e){var n,r,i,o=new Array(c+c);for(n=0;n<c+c;n++)o[n]=0;for(n=0;n<c;n++){for(i=0,r=0;r<c;r++)i+=t[n]*e[r]+o[n+r],o[n+r]=i%l,i/=l;for(;r<c+c-n;r++)i+=o[n+r],o[n+r]=i%l,i/=l}for(n=0;n<c;n++)t[n]=o[n];return o.slice(c,c)},m=function(t,e){for(var n=0;n<c;n++)t[n]&=e[n];return t},b=function(t,e){for(var n=0;n<c;n++)t[n]|=e[n];return t},y=function(t,e){var n=d();if(e%u!=0)throw new Error(\"ui64_rorn: only bit rotations supported with a multiple of digit bits\");for(var r=Math.floor(e/u),i=0;i<r;i++){for(var o=c-1-1;o>=0;o--)n[o+1]=n[o];for(n[0]=t[0],o=0;o<c-1;o++)t[o]=t[o+1];t[o]=0}return v(n)},O=function(t,e){if(e>c*u)throw new Error(\"ui64_ror: invalid number of bits to shift\");var n,r=new Array(c+c);for(n=0;n<c;n++)r[n+c]=t[n],r[n]=0;var i=Math.floor(e/u),o=e%u;for(n=i;n<c+c-1;n++)r[n-i]=(r[n]>>>o|r[n+1]<<u-o)&(1<<u)-1;for(r[c+c-1-i]=r[c+c-1]>>>o&(1<<u)-1,n=c+c-1-i+1;n<c+c;n++)r[n]=0;for(n=0;n<c;n++)t[n]=r[n+c];return r.slice(0,c)},w=function(t,e){if(e>c*u)throw new Error(\"ui64_rol: invalid number of bits to shift\");var n,r=new Array(c+c);for(n=0;n<c;n++)r[n+c]=0,r[n]=t[n];var i=Math.floor(e/u),o=e%u;for(n=c-1-i;n>0;n--)r[n+i]=(r[n]<<o|r[n-1]>>>u-o)&(1<<u)-1;for(r[0+i]=r[0]<<o&(1<<u)-1,n=0+i-1;n>=0;n--)r[n]=0;for(n=0;n<c;n++)t[n]=r[n];return r.slice(c,c)},N=function(t,e){for(var n=0;n<c;n++)t[n]^=e[n]},C=function(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n},T=function(t,e){return t<<e&4294967295|t>>>32-e&4294967295},S=function(t,e){function n(t,e,n,r){return t<20?e&n|~e&r:t<40?e^n^r:t<60?e&n|e&r|n&r:e^n^r}function r(t){return t<20?1518500249:t<40?1859775393:t<60?-1894007588:-899497514}t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var i=Array(80),o=1732584193,s=-271733879,a=-1732584194,c=271733878,u=-1009589776,l=0;l<t.length;l+=16){for(var h=o,d=s,p=a,f=c,v=u,E=0;E<80;E++){i[E]=E<16?t[l+E]:T(i[E-3]^i[E-8]^i[E-14]^i[E-16],1);var g=C(C(T(o,5),n(E,s,a,c)),C(C(u,i[E]),r(E)));u=c,c=a,a=T(s,30),s=o,o=g}o=C(o,h),s=C(s,d),a=C(a,p),c=C(c,f),u=C(u,v)}return[o,s,a,c,u]},A=function(t){return a(S(s(t,{ibits:8,obits:32,obigendian:!0}),8*t.length),{ibits:32,ibigendian:!0})},I=function(t,e){function n(t,e,n,r,i,o){return C(T(C(C(e,t),C(r,o)),i),n)}function r(t,e,r,i,o,s,a){return n(e&r|~e&i,t,e,o,s,a)}function i(t,e,r,i,o,s,a){return n(e&i|r&~i,t,e,o,s,a)}function o(t,e,r,i,o,s,a){return n(e^r^i,t,e,o,s,a)}function s(t,e,r,i,o,s,a){return n(r^(e|~i),t,e,o,s,a)}t[e>>5]|=128<<e%32,t[14+(e+64>>>9<<4)]=e;for(var a=1732584193,c=-271733879,u=-1732584194,l=271733878,h=0;h<t.length;h+=16){var d=a,p=c,f=u,v=l;a=r(a,c,u,l,t[h+0],7,-680876936),l=r(l,a,c,u,t[h+1],12,-389564586),u=r(u,l,a,c,t[h+2],17,606105819),c=r(c,u,l,a,t[h+3],22,-1044525330),a=r(a,c,u,l,t[h+4],7,-176418897),l=r(l,a,c,u,t[h+5],12,1200080426),u=r(u,l,a,c,t[h+6],17,-1473231341),c=r(c,u,l,a,t[h+7],22,-45705983),a=r(a,c,u,l,t[h+8],7,1770035416),l=r(l,a,c,u,t[h+9],12,-1958414417),u=r(u,l,a,c,t[h+10],17,-42063),c=r(c,u,l,a,t[h+11],22,-1990404162),a=r(a,c,u,l,t[h+12],7,1804603682),l=r(l,a,c,u,t[h+13],12,-40341101),u=r(u,l,a,c,t[h+14],17,-1502002290),a=i(a,c=r(c,u,l,a,t[h+15],22,1236535329),u,l,t[h+1],5,-165796510),l=i(l,a,c,u,t[h+6],9,-1069501632),u=i(u,l,a,c,t[h+11],14,643717713),c=i(c,u,l,a,t[h+0],20,-373897302),a=i(a,c,u,l,t[h+5],5,-701558691),l=i(l,a,c,u,t[h+10],9,38016083),u=i(u,l,a,c,t[h+15],14,-660478335),c=i(c,u,l,a,t[h+4],20,-405537848),a=i(a,c,u,l,t[h+9],5,568446438),l=i(l,a,c,u,t[h+14],9,-1019803690),u=i(u,l,a,c,t[h+3],14,-187363961),c=i(c,u,l,a,t[h+8],20,1163531501),a=i(a,c,u,l,t[h+13],5,-1444681467),l=i(l,a,c,u,t[h+2],9,-51403784),u=i(u,l,a,c,t[h+7],14,1735328473),a=o(a,c=i(c,u,l,a,t[h+12],20,-1926607734),u,l,t[h+5],4,-378558),l=o(l,a,c,u,t[h+8],11,-2022574463),u=o(u,l,a,c,t[h+11],16,1839030562),c=o(c,u,l,a,t[h+14],23,-35309556),a=o(a,c,u,l,t[h+1],4,-1530992060),l=o(l,a,c,u,t[h+4],11,1272893353),u=o(u,l,a,c,t[h+7],16,-155497632),c=o(c,u,l,a,t[h+10],23,-1094730640),a=o(a,c,u,l,t[h+13],4,681279174),l=o(l,a,c,u,t[h+0],11,-358537222),u=o(u,l,a,c,t[h+3],16,-722521979),c=o(c,u,l,a,t[h+6],23,76029189),a=o(a,c,u,l,t[h+9],4,-640364487),l=o(l,a,c,u,t[h+12],11,-421815835),u=o(u,l,a,c,t[h+15],16,530742520),a=s(a,c=o(c,u,l,a,t[h+2],23,-995338651),u,l,t[h+0],6,-198630844),l=s(l,a,c,u,t[h+7],10,1126891415),u=s(u,l,a,c,t[h+14],15,-1416354905),c=s(c,u,l,a,t[h+5],21,-57434055),a=s(a,c,u,l,t[h+12],6,1700485571),l=s(l,a,c,u,t[h+3],10,-1894986606),u=s(u,l,a,c,t[h+10],15,-1051523),c=s(c,u,l,a,t[h+1],21,-2054922799),a=s(a,c,u,l,t[h+8],6,1873313359),l=s(l,a,c,u,t[h+15],10,-30611744),u=s(u,l,a,c,t[h+6],15,-1560198380),c=s(c,u,l,a,t[h+13],21,1309151649),a=s(a,c,u,l,t[h+4],6,-145523070),l=s(l,a,c,u,t[h+11],10,-1120210379),u=s(u,l,a,c,t[h+2],15,718787259),c=s(c,u,l,a,t[h+9],21,-343485551),a=C(a,d),c=C(c,p),u=C(u,f),l=C(l,v)}return[a,c,u,l]},R=function(t){return a(I(s(t,{ibits:8,obits:32,obigendian:!1}),8*t.length),{ibits:32,ibigendian:!1})},D=function(t){this.mul=h(88,81,244,45,76,149,127,45),this.inc=h(20,5,123,126,247,103,129,79),this.mask=h(0,0,0,0,255,255,255,255),this.state=p(this.inc),this.next(),m(this.state,this.mask),t=f(void 0!==t?t>>>0:4294967295*Math.random()>>>0),b(this.state,t),this.next()};D.prototype.next=function(){var t=p(this.state);_(this.state,this.mul),E(this.state,this.inc);var e=p(t);O(e,18),N(e,t),O(e,27);var n=p(t);O(n,59),m(e,this.mask);var r=v(n),i=p(e);return w(i,32-r),O(e,r),N(e,i),v(e)};var H=new D,L=function(t,e){for(var n=[],r=0;r<t;r++)n[r]=H.next()%e;return n},P=0,U=0,k=function(){if(1===arguments.length&&\"string\"==typeof arguments[0])this.parse.apply(this,arguments);else if(arguments.length>=1&&\"number\"==typeof arguments[0])this.make.apply(this,arguments);else{if(arguments.length>=1)throw new Error(\"UUID: constructor: invalid arguments\");for(var t=0;t<16;t++)this[t]=0}};return\"undefined\"!=typeof Uint8Array?k.prototype=new Uint8Array(16):Buffer?k.prototype=Buffer.alloc(16):k.prototype=new Array(16),k.prototype.constructor=k,k.prototype.make=function(t){var e,n=this;if(1===t){var r=(new Date).getTime();r!==P?U=0:U++,P=r;var i,o=f(r);g(o,1e4),E(o,h(1,178,29,210,19,129,64,0)),U>0&&E(o,f(U)),i=y(o,8),n[3]=255&i,i=y(o,8),n[2]=255&i,i=y(o,8),n[1]=255&i,i=y(o,8),n[0]=255&i,i=y(o,8),n[5]=255&i,i=y(o,8),n[4]=255&i,i=y(o,8),n[7]=255&i,i=y(o,8),n[6]=15&i;var s=L(2,255);n[8]=s[0],n[9]=s[1];var a=L(6,255);for(a[0]|=1,a[0]|=2,e=0;e<6;e++)n[10+e]=a[e]}else if(4===t){var c=L(16,255);for(e=0;e<16;e++)this[e]=c[e]}else{if(3!==t&&5!==t)throw new Error(\"UUID: make: invalid version\");var u=\"\",l=\"object\"==typeof arguments[1]&&arguments[1]instanceof k?arguments[1]:(new k).parse(arguments[1]);for(e=0;e<16;e++)u+=String.fromCharCode(l[e]);u+=arguments[2];var d=3===t?R(u):A(u);for(e=0;e<16;e++)n[e]=d.charCodeAt(e)}return n[6]&=15,n[6]|=t<<4,n[8]&=63,n[8]|=128,n},k.prototype.format=function(e){var n,r;return\"z85\"===e?n=i(this,16):\"b16\"===e?(r=Array(32),t(this,0,15,!0,r,0),n=r.join(\"\")):void 0!==e&&\"std\"!==e||(r=new Array(36),t(this,0,3,!1,r,0),r[8]=\"-\",t(this,4,5,!1,r,9),r[13]=\"-\",t(this,6,7,!1,r,14),r[18]=\"-\",t(this,8,9,!1,r,19),r[23]=\"-\",t(this,10,15,!1,r,24),n=r.join(\"\")),n},k.prototype.toString=function(t){return this.format(t)},k.prototype.toJSON=function(){return this.format(\"std\")},k.prototype.parse=function(t,n){if(\"string\"!=typeof t)throw new Error(\"UUID: parse: invalid argument (type string expected)\");if(\"z85\"===n)o(t,this);else if(\"b16\"===n)e(t,0,35,this,0);else if(void 0===n||\"std\"===n){var r={nil:\"00000000-0000-0000-0000-000000000000\",\"ns:DNS\":\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\",\"ns:URL\":\"6ba7b811-9dad-11d1-80b4-00c04fd430c8\",\"ns:OID\":\"6ba7b812-9dad-11d1-80b4-00c04fd430c8\",\"ns:X500\":\"6ba7b814-9dad-11d1-80b4-00c04fd430c8\"};if(void 0!==r[t])t=r[t];else if(!t.match(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/))throw new Error('UUID: parse: invalid string representation (expected \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")');e(t,0,7,this,0),e(t,9,12,this,4),e(t,14,17,this,6),e(t,19,22,this,8),e(t,24,35,this,10)}return this},k.prototype.export=function(){for(var t=Array(16),e=0;e<16;e++)t[e]=this[e];return t},k.prototype.import=function(t){if(!(\"object\"==typeof t&&t instanceof Array))throw new Error(\"UUID: import: invalid argument (type Array expected)\");if(16!==t.length)throw new Error(\"UUID: import: invalid argument (Array of length 16 expected)\");for(var e=0;e<16;e++){if(\"number\"!=typeof t[e])throw new Error(\"UUID: import: invalid array element #\"+e+\" (type Number expected)\");if(!isFinite(t[e])||Math.floor(t[e])!==t[e])throw new Error(\"UUID: import: invalid array element #\"+e+\" (Number with integer value expected)\");if(!(t[e]>=0&&t[e]<=255))throw new Error(\"UUID: import: invalid array element #\"+e+\" (Number with integer value in range 0...255 expected)\");this[e]=t[e]}return this},k.prototype.compare=function(t){if(\"object\"!=typeof t)throw new Error(\"UUID: compare: invalid argument (type UUID expected)\");if(!(t instanceof k))throw new Error(\"UUID: compare: invalid argument (type UUID expected)\");for(var e=0;e<16;e++){if(this[e]<t[e])return-1;if(this[e]>t[e])return 1}return 0},k.prototype.equal=function(t){return 0===this.compare(t)},k.prototype.fold=function(t){if(void 0===t)throw new Error(\"UUID: fold: invalid argument (number of fold operations expected)\");if(t<1||t>4)throw new Error(\"UUID: fold: invalid argument (1-4 fold operations expected)\");for(var e=16/Math.pow(2,t),n=new Array(e),r=0;r<e;r++){for(var i=0,o=0;r+o<16;o+=e)i^=this[r+o];n[r]=i}return n},k.PCG=D,k}(),t.exports.default=t.exports}));class Ze{constructor(t){this.transport=t,this.gnpLockAcquired=t.consoleAppEvent.pipe(Jt((t=>\"response-gnp-lock\"===t.event)),Lt((t=>t.token)),fe(1)),this.gnpLockAcquired.subscribe()}acquireGnpLock(t){const e=new Xe(4).toString(),n={action:\"request-gnp-lock\",id:t,token:e},r=this.gnpLockAcquired.pipe(ue((t=>t===e)));return this.transport.writeAction(n),r}releaseGnpLock(t,e){const n={action:\"release-gnp-lock\",id:t,token:e};this.transport.writeAction(n)}}!function(t){t[t.INPUT=0]=\"INPUT\",t[t.OUTPUT=1]=\"OUTPUT\",t[t.FEATURE=2]=\"FEATURE\"}(Qe||(Qe={})),function(t){t.ABSOLUTE=\"absolute\",t.RELATIVE=\"relative\"}(Je||(Je={}));class tn{constructor(t){this.id=t}equals(t){return this.id===t.id}startsWith(t){return this.id.startsWith(t.id)}toString(){return this.id}}function en(t,e,n){const r=t.toString(16).padStart(4,\"0\"),i=e.toString(16).padStart(4,\"0\");return new tn(`${r}:${i}:${n}`)}class nn{constructor(t,e,n,r){this.id=t,this.usagePage=e,this.usage=n,this.value=r}isArray(){return Array.isArray(this.value)}static deserialize(t,e){return new nn(new tn(t),e.usagePage,e.usage,e.value)}}class rn{constructor(t,e,n){this.descriptor=e,this.transport=n,this.transportId=t.transportId,this.input=n.consoleAppEvent.pipe(Jt((t=>t.id===this.transportId)),rn.inputReportsFilter)}output(t,e,n){const r={action:\"hid-output\",id:this.transportId,usagePage:t,usage:e,value:n};this.transport.writeAction(r)}getFeatureReport(t,e){const n=new Xe(4).toString(),r={action:\"request-hid-feature\",id:this.transportId,token:n,usagePage:t,usage:e};return this.transport.writeAction(r),this.transport.consoleAppEvent.pipe(ue((t=>\"response-hid-feature\"===t.event&&t.token===n)),Lt((t=>t.value)))}setFeatureReport(t,e,n){const r={action:\"set-hid-feature\",id:this.transportId,usagePage:t,usage:e,value:n};this.transport.writeAction(r)}findDescriptor(t,e,n){return this.descriptor.find((r=>r.usagePage===t&&r.usage===e&&r.reportType===n))}}function on(t){return e=>e.pipe(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=it(t);return M((function(e,r){for(var i=t.length,a=new Array(i),c=t.map((function(){return!1})),u=!1,l=function(e){Et(t[e]).subscribe(B(r,(function(t){a[e]=t,u||c[e]||(c[e]=!0,(u=c.every(k))&&(c=null))}),w))},h=0;h<i;h++)l(h);e.subscribe(B(r,(function(t){if(u){var e=s([t],o(a));r.next(n?n.apply(void 0,s([],o(e))):e)}})))}))}(t),Jt((([t,e])=>e)),Lt((([t,e])=>t)))}rn.inputReportsFilter=t=>t.pipe(Jt((t=>\"hid-input\"===t.event)),Lt((t=>nn.deserialize(t.id,t))));class sn{static typeFromAttr(t){return t>>6}static packetLengthFromAttr(t){return t&this.lengthMask}static deserialize(t){const e=t[0],n=t[1],r=t[2],i=this.typeFromAttr(t[3]),o=t[4],s=t[5],a=this.packetLengthFromAttr(t[3]),c=t.slice(6,a);return new Me(e,n,i,o,s,c,r)}}sn.lengthMask=63;class an{constructor(){this.data=[]}hasHeader(){return this.data.length>=an.gnpPacketHeaderLength}expectedPacketLength(){if(!this.hasHeader())throw new be(\"Unable to get expected packet length without a full header\",Kt.UNEXPECTED_ERROR);return sn.packetLengthFromAttr(this.data[3])}appendData(t){this.hasHeader()&&this.expectedPacketLength()>an.gnpPacketMaxLength&&(this.data=[]),this.data=this.data.concat(t)}hasFullPacket(){if(!this.hasHeader())return!1;const t=this.expectedPacketLength();return this.data.length>=t}getPacketAndReset(){if(!this.hasFullPacket())throw new be(\"Trying to get packet but buffer is not complete\",Kt.UNEXPECTED_ERROR);const t=sn.deserialize(Uint8Array.from(this.data));return this.data=[],t}}an.gnpPacketHeaderLength=6,an.gnpPacketMaxLength=63;class cn{static attrFromTypeAndPayloadLength(t,e){return(t<<6)+(e+6)}static serialize(t){const e=new Uint8Array(6);e[0]=t.destination,e[1]=t.source,e[2]=t.sequenceNumber,e[3]=this.attrFromTypeAndPayloadLength(t.type,t.payload.length),e[4]=t.command,e[5]=t.subCommand;const n=new Uint8Array(e.length+t.payload.length);return n.set(e),n.set(t.payload,e.length),n}}const un=()=>{};function ln(t){return me((e=>t()),(e=>t()),(()=>un))}const hn=()=>{return t=t=>t.command===ke.NACK,e=t=>{const e=t.subCommand in Ge?Ge[t.subCommand]:t.subCommand;return new be(`Got NACK response. Reason: ${e}`,Kt.DEVICE_ERROR)},n=>n.pipe(Lt((n=>t(n)?Ct(e(n)):Nt(n))),ge());var t,e},dn=t=>ue((e=>e.type===Ue.REPLY&&e.sequenceNumber===t.sequenceNumber&&e.destination===t.source&&e.source===t.destination));class pn{constructor(t,e,n,r,i=0){this.hidChannel=t,this.gnpLock=e,this.transportId=n,this.primaryAddress=r,this.lockQueue=[],this.packets=t.input.pipe(pn.inputFilter),this.events=this.packets.pipe(pn.eventsFilter),this.nextSequenceNumber=i}static get inputFilter(){return t=>{const e=t.pipe(Jt((t=>t.usagePage===He.GN_PROTOCOL&&t.usage===Le.DATA&&t.isArray()))),n=new an;return e.pipe(Pt((t=>{const e=t.value;if(n.appendData(e),n.hasFullPacket()){return Nt(n.getPacketAndReset())}return qt})),de())}}static supportsGnpOverHid(t){return void 0!==t.findDescriptor(He.GN_PROTOCOL,Le.DATA,Qe.OUTPUT)}getNextSequenceNumber(){const t=this.nextSequenceNumber;return this.nextSequenceNumber=(this.nextSequenceNumber+1)%255,t}doWithGnpLockHeld(t){this.lockQueue.push(t),this.lockQueue.length>1||this.processLockQueue()}processLockQueue(){this.gnpLock.acquireGnpLock(this.transportId).subscribe((t=>{(0,this.lockQueue[0])((t=>{var e;const n=null===(e=this.hidChannel.findDescriptor(He.GN_PROTOCOL,Le.DATA,Qe.OUTPUT))||void 0===e?void 0:e.reportSize;if(!n)throw new be(\"Cannot send GNP packets to this device.\",Kt.DEVICE_ERROR);const r=cn.serialize(t);let i=0;do{const t=Math.min(r.length-i,n),e=r.subarray(i,i+t);i+=e.length,this.hidChannel.output(He.GN_PROTOCOL,Le.DATA,Array.from(e))}while(i<r.length)}),this.packets,(()=>{this.gnpLock.releaseGnpLock(this.transportId,t),this.lockQueue.splice(0,1),this.lockQueue.length>0&&this.processLockQueue()}))}))}sendEvent(t,e,n=this.primaryAddress){const r=new Me(n,Pe.PC_ADDR,Ue.EVENT,t.command,t.subCommand,t.serialize(e),0);this.doWithGnpLockHeld(((t,e,n)=>{t(r),n()}))}read(t,e=this.primaryAddress,n=2500){const r=new Fe(t,(t=>new Uint8Array));return this.readWithParams(r,null,e,n)}readWithParams(t,e,n=this.primaryAddress,r=2500){const i=new Me(n,Pe.PC_ADDR,Ue.READ,t.command,t.subCommand,t.serialize(e),this.getNextSequenceNumber()),o=new Y;return this.doWithGnpLockHeld(((e,n,s)=>{n.pipe(dn(i),hn(),ue((t=>t.command===i.command&&t.subCommand===i.subCommand)),Dt(r),ln(s),Lt((e=>t.deserialize(e)))).subscribe(o),e(i)})),o}write(t,e,n=this.primaryAddress,r=2500){const i=new Me(n,Pe.PC_ADDR,Ue.WRITE,t.command,t.subCommand,t.serialize(e),this.getNextSequenceNumber()),o=new Y;return this.doWithGnpLockHeld(((t,e,n)=>{e.pipe(dn(i),hn(),ue((t=>t.command===ke.ACK)),Dt(r),ln(n),Lt((()=>!0))).subscribe(o),t(i)})),o}}pn.eventsFilter=t=>t.pipe(Jt((t=>t.type===Ue.EVENT)));class fn{constructor(t,e){this.parentGnpChannel=t,this.primaryAddress=e,this.events=t.events.pipe(Jt((t=>t.source===this.primaryAddress)))}sendEvent(t,e,n){this.parentGnpChannel.sendEvent(t,e,this.primaryAddress)}read(t,e,n){return this.parentGnpChannel.read(t,this.primaryAddress,n)}readWithParams(t,e,n,r){return this.parentGnpChannel.readWithParams(t,e,this.primaryAddress,r)}write(t,e,n,r){return this.parentGnpChannel.write(t,e,this.primaryAddress,r)}}function vn(t,e,n,r){if(!pn.supportsGnpOverHid(t))return Ct((()=>new be(\"Device does not support GNP commands.\",Kt.DEVICE_ERROR)));const i=Nt(Pe.HS_BT_USB_ADDR,Pe.BASE_ADDR,Pe.CRADLE_ADDR,Pe.HS1_ADDR,Pe.HS_CRADLE_ADDR).pipe(Lt(((r,i)=>Gt((()=>{const o=new pn(t,new Ze(e),n,r,i);return o.read(qe,r,500).pipe(Lt((t=>o)),ee((()=>et)))})))),kt(),ie(1),ae((()=>new be(\"GNP probe failed.\",Kt.DEVICE_ERROR))));return Xt(r.pipe(Pt((t=>Ct((()=>new be(\"Device was suddenly disconnected.\",Kt.DEVICE_ERROR)))))),i).pipe(de())}function En(t,e){return new fn(t,e)}class gn{constructor(){this.primaryAddress=Pe.BASE_ADDR,this.events=qt}subscribeToEvent(t,e){return Ct((()=>new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)))}sendEvent(t,e,n){throw new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)}read(t,e,n){return Ct((()=>new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)))}readWithParams(t,e,n,r){return Ct((()=>new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)))}write(t,e,n,r){return Ct((()=>new be(\"This device does not support GNP commands.\",Kt.FEATURE_NOT_SUPPORTED)))}}class _n{constructor(t){this.transportId=t,this.isChild=!1}equals(t){return this.isChild===t.isChild&&this.transportId===t.transportId}toString(){return this.transportId}}class mn{constructor(t,e){this.parentId=t,this.gnpAddress=e,this.isChild=!0,this.transportId=t.transportId}equals(t){if(this.isChild===t.isChild){const e=t;return this.parentId.equals(e.parentId)&&this.gnpAddress===e.gnpAddress}return!1}toString(){return`0x${t=this.gnpAddress,t.toString(16).padStart(2,\"0\").toUpperCase()}@${this.transportId}`;var t}}var bn,yn,On;!function(t){t.NO_TRACKING=\"no-tracking\",t.TRACK_ERRORS=\"track-errors\",t.TRACK_USAGE=\"track-usage\",t.TRACK_ALL=\"track-all\"}(bn||(bn={})),function(t){t[t.BLUETOOTH=0]=\"BLUETOOTH\",t[t.INDIRECT=1]=\"INDIRECT\",t[t.USB=2]=\"USB\"}(yn||(yn={})),function(t){t[t.BASE=0]=\"BASE\",t[t.HEADSET=1]=\"HEADSET\",t[t.DESKSTAND=2]=\"DESKSTAND\",t[t.OTHER=3]=\"OTHER\",t[t.DONGLE=4]=\"DONGLE\",t[t.PC=5]=\"PC\",t[t.EHS=6]=\"EHS\",t[t.USB=7]=\"USB\",t[t.SPEAKER_PHONE=8]=\"SPEAKER_PHONE\",t[t.INDICATOR=9]=\"INDICATOR\",t[t.MOBILE=10]=\"MOBILE\",t[t.NONE=11]=\"NONE\",t[t.LOCAL=12]=\"LOCAL\",t[t.DISPLAY=13]=\"DISPLAY\",t[t.HS_CRADLE=14]=\"HS_CRADLE\",t[t.HS_CRADLE2=15]=\"HS_CRADLE2\",t[t.MOBILE_IAP=16]=\"MOBILE_IAP\",t[t.CRADLE=17]=\"CRADLE\",t[t.VIDEO=18]=\"VIDEO\",t[t.NOT_GN=252]=\"NOT_GN\",t[t.ANY_GN=253]=\"ANY_GN\",t[t.NOT_INIT=254]=\"NOT_INIT\",t[t.ANY=255]=\"ANY\"}(On||(On={}));class wn{constructor(t,e,n,r,i,o,s,a,c,u,l){this.id=t,this.type=e,this.hidChannel=n,this.events=r,this.primaryAddress=i,this.sendEvent=o,this.read=s,this.readWithParams=a,this.write=c,this.onDisconnect=u,this.parentConnectionId=l,this.onDisconnect.subscribe({error:w})}static createConnection(t,e,n,r,i,o){const s=r.sendEvent.bind(r),a=r.read.bind(r),c=r.readWithParams.bind(r),u=r.write.bind(r);return new wn(t,e,n,r.events,r.primaryAddress,s,a,c,u,i,o)}}const Nn=(t=3,e=500)=>n=>n.pipe(Pt(((n,r)=>{const i=r+1;return i>t?Ct((()=>n)):Ft(i*i*e)})));function Cn(t,e,n,r=1e3,i=3,o=100){return Gt((()=>t.read(e,n,r))).pipe(he(Nn(i,o)))}function Tn(t,e,n){const{deviceType:r,address:i}=n;return{transportId:e.transportId,vid:e.vid,pid:Cn(t,Ve,i),name:Cn(t,Ye,i),serialNumber:Cn(t,$e,i),capabilities:e.capabilities,deviceType:r,connectionGnpAddress:i}}class Sn{constructor(t,e,n=Tn,r=wn.createConnection,i=En){this.parentConnection=e,this.connectionCreator=r,this.createChildGnpChannel=i;const o=e.events.pipe(Jt((t=>t.command===ke.DEVICE&&t.subCommand===xe.ATTACH_EVENT)),Lt((t=>({deviceType:t.payload[0],address:t.payload[1]})))).pipe(Lt(n.bind(null,e,t)));this.connectionEvents=o.pipe(Lt((t=>{const n=Xt(e.events.pipe(ue((e=>e.command===ke.DEVICE&&e.subCommand===xe.DETACH_EVENT&&e.payload[1]===t.connectionGnpAddress)),Lt(w)),e.onDisconnect);return{attach:t,detach:n}})),Pt((t=>te(Nt(t.attach),this.createConnection(t.attach,t.detach)))),Lt((([t,e])=>({event:t,connection:e}))),_e(e.onDisconnect)),e.sendEvent(Be,[])}createConnection(t,e){const n=t.connectionGnpAddress,r=this.createChildGnpChannel(this.parentConnection,n),i=new mn(this.parentConnection.id,n);return Nt(this.connectionCreator(i,yn.INDIRECT,this.parentConnection.hidChannel,r,e,this.parentConnection.id))}}const An={command:ke.IDENT,subCommand:xe.TYPE,deserialize:t=>{const{payload:e}=t,n=e[0];if(n<1||n>=e.length)throw new be(\"Cannot get device type.\",Kt.DEVICE_ERROR);return e[1]}};function In(t,e,n,r=Bt.ERROR,i=Wt.JS_LIB){const o=`${t} ${function(t){if(t instanceof be){const e=t;return`JabraError: ${e.message} (type: ${e.type})`}if(t instanceof Error){const e=t;return`Error: ${e.message} (name: ${e.name})`}return`Unknown error: ${t}`}(e)}`;ye(o,n,r,i)}function Rn(t){return new Sn(t.event,t.connection).connectionEvents}class Dn{constructor(t,e,n=((t,e,n)=>new rn(t,e,n)),r=vn,i=Rn,o=wn.createConnection){this.transport=t,this.logger=e,this.createHidChannel=n,this.createRootGnpChannel=r,this.connectionCreator=o;const s=this.transport.consoleAppEvent.pipe(Jt((t=>\"attach\"===t.event)),Lt(Dn.createAttachEvent),ee(((t,e)=>(In(\"\",t,this.logger),e)))).pipe(Lt((t=>{const e=this.transport.consoleAppEvent.pipe(Jt((t=>\"detach\"===t.event)),ue((e=>Dn.getTransportId(e)===t.transportId)),Lt(w),fe());return e.subscribe(),{attach:t,detach:e}})),Pt((t=>this.createConnection(t.attach,t.detach))),de()),a=s.pipe(Jt((t=>t.event.deviceType===On.DONGLE)),Jt((t=>pn.supportsGnpOverHid(t.connection.hidChannel))),Pt((t=>i(t))));this.connectionEvents=Mt(s,a).pipe(de())}static convertToReportType(t){switch(t){case\"input\":return Qe.INPUT;case\"output\":return Qe.OUTPUT;case\"feature\":return Qe.FEATURE;default:throw new be(`${t} is not a valid ReportType`,Kt.UNEXPECTED_ERROR)}}static convertToValueType(t){switch(t){case\"absolute\":return Je.ABSOLUTE;case\"relative\":return Je.RELATIVE;default:throw new be(`${t} Not a valid ValueType`,Kt.UNEXPECTED_ERROR)}}static createDescriptor(t){return t.map((t=>({reportType:Dn.convertToReportType(t.reportType),usagePage:t.usagePage,usage:t.usage,valueType:Dn.convertToValueType(t.valueType),reportSize:t.reportSize})))}static getMandatoryField(t,e){const n=t[e];if(void 0===n)throw new be(`JSON event lacks required field \"${e}: ${JSON.stringify(t)}`,Kt.UNEXPECTED_ERROR);return n}static getTransportId(t){return Dn.getMandatoryField(t,\"id\")}static createAttachEvent(t){return{transportId:Dn.getTransportId(t),vid:Dn.getMandatoryField(t,\"vid\"),pid:Nt(Dn.getMandatoryField(t,\"pid\")),name:Nt(Dn.getMandatoryField(t,\"name\")),serialNumber:Nt(Dn.getMandatoryField(t,\"serialNumber\")),capabilities:Dn.createDescriptor(Dn.getMandatoryField(t,\"descriptor\"))}}createConnection(t,e,n=3,r=100){const{capabilities:i,transportId:o}=t,s=new _n(o),a=this.createHidChannel(s,i,this.transport),c=this.createRootGnpChannel(a,this.transport,o,e).pipe(ee(((t,e)=>(t.type&&t.type===Kt.DEVICE_ERROR&&this.transport.context===Vt.WEB_HID&&ye(\"Child devices are not yet supported when using WebHID.\",this.logger,Bt.WARNING,Wt.JS_LIB),Nt(new gn)))),de()),u=c.pipe(Pt((t=>t.read(An))),he(Nn(n,r)),ee((t=>Nt(On.ANY))));return te(c,u).pipe(_e(e),Lt((([n,r])=>({event:Object.assign(Object.assign({},t),{deviceType:r,connectionGnpAddress:n.primaryAddress}),connection:this.connectionCreator(s,yn.USB,a,n,e)}))))}}var Hn,Ln,Pn,Un,kn;class xn{constructor(t,e,n,r,i,o){this.vendorId=t,this.productId=e,this.serialNumber=n,this.name=r,this.type=i,Ln.set(this,void 0),h(this,Ln,new we(o,l(xn,Hn,\"m\",Un)),\"f\"),this.connectionAdded=l(this,Ln,\"f\").itemAdded,this.connectionRemoved=l(this,Ln,\"f\").itemRemoved,this.connectionList=l(this,Ln,\"f\").itemList,this.onDisconnect=l(this,Ln,\"f\").itemList.pipe(ve(1),ue((t=>0===t.length)),Lt(w),de())}get id(){return en(this.vendorId,this.productId,this.serialNumber)}get currentConnections(){return l(this,Ln,\"f\").getValue()}get browserLabel(){return`${this.vendorId.toString(16).padStart(4,\"0\")}:${this.productId.toString(16).padStart(4,\"0\")}`}}Hn=xn,Ln=new WeakMap,Un=function(t,e){return l(xn,Hn,\"f\",Pn).indexOf(t.type)-l(xn,Hn,\"f\",Pn).indexOf(e.type)},Pn={value:[yn.USB,yn.INDIRECT,yn.BLUETOOTH]};class Gn{constructor(t){this.deviceObservables=new we(t)}static exceptionToUndefined(t){try{return t()}catch(t){if(t instanceof be)return;throw t}}connectionExists(t){return void 0!==Gn.exceptionToUndefined((()=>this.findConnectionById(t)))}findConnectionById(t){for(const e of this.deviceObservables.getValue())for(const n of e.currentConnections)if(n.id.equals(t))return n;throw new be(`Could not find connection with id ${t.toString()}`,Kt.UNEXPECTED_ERROR)}findDeviceByDeviceId(t){return this.deviceObservables.getValue().find((e=>e.id.startsWith(t)||t.startsWith(e.id)))}}class Fn{constructor(t,e){this.logger=e;const[n,r]=(i=t.pipe(Jt((t=>!this.deviceCollection.connectionExists(t.connection.id))),ne((t=>this.force(t)))),[Jt(o=({event:t,pid:e,serialNumber:n})=>!this.deviceCollection.findDeviceByDeviceId(en(t.event.vid,e,n)),s)(Et(i)),Jt(Qt(o,s))(Et(i))]);var i,o,s;const a=n.pipe(Lt((t=>Fn.createDevice(t,r))));this.deviceCollection=new Gn(a),this.deviceObservables=this.deviceCollection.deviceObservables}force(t){const{name:e,pid:n,serialNumber:r}=t.event,i=t.connection.onDisconnect.pipe((a=Ct((()=>new Error(`Connection with ID ${t.connection.id} disconnected`))),d(c)?ne((function(){return a}),c):ne((function(){return a}))));var a,c;return te(e,n,r).pipe(Lt((([e,n,r])=>({event:t,name:e,pid:n,serialNumber:r}))),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t.length?M((function(e,n){Zt(s([e],o(t)))(n)})):k}(i),ee((t=>(ye(`Failed to retrieve child connection information. Error: ${t}`,this.logger,Bt.WARNING,Wt.JS_LIB),et))))}static createDevice(t,e){const{event:n,pid:r,name:i,serialNumber:o}=t,{vid:s,deviceType:a}=n.event,c=e.pipe(Jt((e=>Fn.isSameDevice(t,e))),Lt((t=>t.event.connection))),u=xt(Nt(n.connection),c);return new xn(s,r,o,i,a,u)}static isSameDevice(t,e){const n=en(t.event.event.vid,t.pid,t.serialNumber),r=en(e.event.event.vid,e.pid,e.serialNumber);return n.startsWith(r)||r.startsWith(n)}static create(t,e){const n=new Dn(t,e);return new Fn(n.connectionEvents)}}function Mn(t){var e,r,i;return n(this,void 0,void 0,(function*(){const n=null==t?void 0:t.logger;ye(\"Jabra SDK JS starting up...\",n,Bt.INFO);const o=new Re(t);o.validateOrganizationKey(),o.validateAppId(),o.validateAppName();const s=null!==(r=null===(e=null==t?void 0:t.internal)||void 0===e?void 0:e.testDeviceTransport)&&void 0!==r?r:yield Se(n,null==t?void 0:t.transport,null===(i=null==t?void 0:t.internal)||void 0===i?void 0:i.recorder);new Ae(s,n);const a=Fn.create(s,n),c=new Ce(a,s,t);return yield s.connect(),c}))}class Bn{constructor(t,e,n,r){this.deviceId=t,this.usagePage=e,this.usage=n,this.value=r}}class Wn{constructor(t,e){this.token=t,this.value=e}}!function(t){t.UsageReport=class{constructor(t,e){this.usage=t,this.value=e}}}(kn||(kn={}));var Kn,Yn,Vn,jn,qn,$n,zn,Qn,Jn,Xn,Zn=ze((function(t){!function(e){var n=function(t,e,n){if(!(t instanceof ArrayBuffer||\"undefined\"!=typeof Buffer&&t instanceof Buffer))throw new Error(\"Must specify a valid ArrayBuffer or Buffer.\");e=e||0,n=n||t.byteLength||t.length,this._view=new Uint8Array(t.buffer||t,e,n),this.bigEndian=!1};n._scratch=new DataView(new ArrayBuffer(8)),Object.defineProperty(n.prototype,\"buffer\",{get:function(){return\"undefined\"!=typeof Buffer?Buffer.from(this._view.buffer):this._view.buffer},enumerable:!0,configurable:!1}),Object.defineProperty(n.prototype,\"byteLength\",{get:function(){return this._view.length},enumerable:!0,configurable:!1}),n.prototype._setBit=function(t,e){e?this._view[t>>3]|=1<<(7&t):this._view[t>>3]&=~(1<<(7&t))},n.prototype.getBits=function(t,e,n){var r=8*this._view.length-t;if(e>r)throw new Error(\"Cannot get \"+e+\" bit(s) from offset \"+t+\", \"+r+\" available\");for(var i=0,o=0;o<e;){var s=e-o,a=7&t,c=this._view[t>>3],u=Math.min(s,8-a);this.bigEndian?(i<<=u,i|=c>>8-u-a&~(255<<u)):i|=(c>>a&~(255<<u))<<o,t+=u,o+=u}return n?(32!==e&&i&1<<e-1&&(i|=-1^(1<<e)-1),i):i>>>0},n.prototype.setBits=function(t,e,n){var r=8*this._view.length-t;if(n>r)throw new Error(\"Cannot set \"+n+\" bit(s) from offset \"+t+\", \"+r+\" available\");for(var i=0;i<n;){var o,s,a,c=n-i,u=7&t,l=t>>3,h=Math.min(c,8-u);if(this.bigEndian){s=e>>n-i-h&(o=~(-1<<h));var d=8-u-h;a=~(o<<d),this._view[l]=this._view[l]&a|s<<d}else s=e&(o=~(255<<h)),e>>=h,a=~(o<<u),this._view[l]=this._view[l]&a|s<<u;t+=h,i+=h}},n.prototype.getBoolean=function(t){return 0!==this.getBits(t,1,!1)},n.prototype.getInt8=function(t){return this.getBits(t,8,!0)},n.prototype.getUint8=function(t){return this.getBits(t,8,!1)},n.prototype.getInt16=function(t){return this.getBits(t,16,!0)},n.prototype.getUint16=function(t){return this.getBits(t,16,!1)},n.prototype.getInt32=function(t){return this.getBits(t,32,!0)},n.prototype.getUint32=function(t){return this.getBits(t,32,!1)},n.prototype.getFloat32=function(t){return n._scratch.setUint32(0,this.getUint32(t)),n._scratch.getFloat32(0)},n.prototype.getFloat64=function(t){return n._scratch.setUint32(0,this.getUint32(t)),n._scratch.setUint32(4,this.getUint32(t+32)),n._scratch.getFloat64(0)},n.prototype.setBoolean=function(t,e){this.setBits(t,e?1:0,1)},n.prototype.setInt8=n.prototype.setUint8=function(t,e){this.setBits(t,e,8)},n.prototype.setInt16=n.prototype.setUint16=function(t,e){this.setBits(t,e,16)},n.prototype.setInt32=n.prototype.setUint32=function(t,e){this.setBits(t,e,32)},n.prototype.setFloat32=function(t,e){n._scratch.setFloat32(0,e),this.setBits(t,n._scratch.getUint32(0),32)},n.prototype.setFloat64=function(t,e){n._scratch.setFloat64(0,e),this.setBits(t,n._scratch.getUint32(0),32),this.setBits(t+32,n._scratch.getUint32(4),32)},n.prototype.getArrayBuffer=function(t,e){for(var n=new Uint8Array(e),r=0;r<e;r++)n[r]=this.getUint8(t+8*r);return n};var r=function(t,e){return function(){if(this._index+e>this._length)throw new Error(\"Trying to read past the end of the stream\");var n=this._view[t](this._index);return this._index+=e,n}},i=function(t,e){return function(n){this._view[t](this._index,n),this._index+=e}};function o(t,e,n){if(0===e)return\"\";var r=0,i=[],o=!0,s=!!e;for(e||(e=Math.floor((t._length-t._index)/8));r<e;){var a=t.readUint8();if(0===a&&(o=!1,!s))break;o&&i.push(a),r++}var c=String.fromCharCode.apply(null,i);if(!n)return c;try{return decodeURIComponent(escape(c))}catch(t){return c}}var s=function(t,e,r){var i=t instanceof ArrayBuffer||\"undefined\"!=typeof Buffer&&t instanceof Buffer;if(!(t instanceof n||i))throw new Error(\"Must specify a valid BitView, ArrayBuffer or Buffer\");this._view=i?new n(t,e,r):t,this._index=0,this._startIndex=0,this._length=8*this._view.byteLength};Object.defineProperty(s.prototype,\"index\",{get:function(){return this._index-this._startIndex},set:function(t){this._index=t+this._startIndex},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,\"length\",{get:function(){return this._length-this._startIndex},set:function(t){this._length=t+this._startIndex},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,\"bitsLeft\",{get:function(){return this._length-this._index},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,\"byteIndex\",{get:function(){return Math.ceil(this._index/8)},set:function(t){this._index=8*t},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,\"buffer\",{get:function(){return this._view.buffer},enumerable:!0,configurable:!1}),Object.defineProperty(s.prototype,\"view\",{get:function(){return this._view},enumerable:!0,configurable:!1}),Object.defineProperty(s.prototype,\"bigEndian\",{get:function(){return this._view.bigEndian},set:function(t){this._view.bigEndian=t},enumerable:!0,configurable:!1}),s.prototype.readBits=function(t,e){var n=this._view.getBits(this._index,t,e);return this._index+=t,n},s.prototype.writeBits=function(t,e){this._view.setBits(this._index,t,e),this._index+=e},s.prototype.readBoolean=r(\"getBoolean\",1),s.prototype.readInt8=r(\"getInt8\",8),s.prototype.readUint8=r(\"getUint8\",8),s.prototype.readInt16=r(\"getInt16\",16),s.prototype.readUint16=r(\"getUint16\",16),s.prototype.readInt32=r(\"getInt32\",32),s.prototype.readUint32=r(\"getUint32\",32),s.prototype.readFloat32=r(\"getFloat32\",32),s.prototype.readFloat64=r(\"getFloat64\",64),s.prototype.writeBoolean=i(\"setBoolean\",1),s.prototype.writeInt8=i(\"setInt8\",8),s.prototype.writeUint8=i(\"setUint8\",8),s.prototype.writeInt16=i(\"setInt16\",16),s.prototype.writeUint16=i(\"setUint16\",16),s.prototype.writeInt32=i(\"setInt32\",32),s.prototype.writeUint32=i(\"setUint32\",32),s.prototype.writeFloat32=i(\"setFloat32\",32),s.prototype.writeFloat64=i(\"setFloat64\",64),s.prototype.readASCIIString=function(t){return function(t,e){return o(t,e,!1)}(this,t)},s.prototype.readUTF8String=function(t){return function(t,e){return o(t,e,!0)}(this,t)},s.prototype.writeASCIIString=function(t,e){!function(t,e,n){for(var r=n||e.length+1,i=0;i<r;i++)t.writeUint8(i<e.length?e.charCodeAt(i):0)}(this,t,e)},s.prototype.writeUTF8String=function(t,e){!function(t,e,n){for(var r=function(t){var e,n,r=[];for(e=0;e<t.length;e++)(n=t.charCodeAt(e))<=127?r.push(n):n<=2047?(r.push(n>>6|192),r.push(63&n|128)):n<=65535?(r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)):(r.push(n>>18|240),r.push(n>>12&63|128),r.push(n>>6&63|128),r.push(63&n|128));return r}(e),i=n||r.length+1,o=0;o<i;o++)t.writeUint8(o<r.length?r[o]:0)}(this,t,e)},s.prototype.readBitStream=function(t){var e=new s(this._view);return e._startIndex=this._index,e._index=this._index,e.length=t,this._index+=t,e},s.prototype.writeBitStream=function(t,e){var n;for(e||(e=t.bitsLeft);e>0;)n=Math.min(e,32),this.writeBits(t.readBits(n),n),e-=n},s.prototype.readArrayBuffer=function(t){var e=this._view.getArrayBuffer(this._index,t);return this._index+=8*t,e},s.prototype.writeArrayBuffer=function(t,e){this.writeBitStream(new s(t),8*e)},t.exports&&(t.exports={BitView:n,BitStream:s})}()}));function tr(){return n(this,void 0,void 0,(function*(){const{hid:t}=window.navigator;if(!t)throw new be(\"WebHID not supported\",Kt.INIT_ERROR);const e=yield t.requestDevice({filters:[{vendorId:Kn.VENDOR_ID}]});return new BroadcastChannel(Kn.PAIRING_CHANNEL).postMessage(null),e}))}!function(t){t[t.VENDOR_ID=2830]=\"VENDOR_ID\",t.PAIRING_CHANNEL=\"jabra-webhid-pairing-channel\"}(Kn||(Kn={})),function(t){t[t.HOOK_SWITCH=32]=\"HOOK_SWITCH\",t[t.GN_PSEUDO_HOOK_SWITCH=65531]=\"GN_PSEUDO_HOOK_SWITCH\",t[t.FLASH=33]=\"FLASH\",t[t.ALT_HOLD=35]=\"ALT_HOLD\",t[t.REDIAL=36]=\"REDIAL\",t[t.ONLINE=42]=\"ONLINE\",t[t.SPEAKER_PHONE=43]=\"SPEAKER_PHONE\",t[t.PHONE_MUTE=47]=\"PHONE_MUTE\",t[t.SEND=49]=\"SEND\",t[t.SPEED_DIAL=80]=\"SPEED_DIAL\",t[t.VOICE_MAIL=112]=\"VOICE_MAIL\",t[t.ANSWER_ON_OFF=116]=\"ANSWER_ON_OFF\",t[t.LINE_BUSY=151]=\"LINE_BUSY\",t[t.RINGER=158]=\"RINGER\",t[t.PHONE_KEY_0=176]=\"PHONE_KEY_0\",t[t.PHONE_KEY_1=177]=\"PHONE_KEY_1\",t[t.PHONE_KEY_2=178]=\"PHONE_KEY_2\",t[t.PHONE_KEY_3=179]=\"PHONE_KEY_3\",t[t.PHONE_KEY_4=180]=\"PHONE_KEY_4\",t[t.PHONE_KEY_5=181]=\"PHONE_KEY_5\",t[t.PHONE_KEY_6=182]=\"PHONE_KEY_6\",t[t.PHONE_KEY_7=183]=\"PHONE_KEY_7\",t[t.PHONE_KEY_8=184]=\"PHONE_KEY_8\",t[t.PHONE_KEY_9=185]=\"PHONE_KEY_9\",t[t.PHONE_KEY_STAR=186]=\"PHONE_KEY_STAR\",t[t.PHONE_KEY_POUND=187]=\"PHONE_KEY_POUND\",t[t.ALT_VOLUME_UP=233]=\"ALT_VOLUME_UP\",t[t.ALT_VOLUME_DOWN=234]=\"ALT_VOLUME_DOWN\",t[t.REJECT_CALL=65533]=\"REJECT_CALL\"}(Yn||(Yn={}));class er{constructor(t,e,n){this.type=t,this.value=e,this.valueType=n}toString(){return void 0===Yn[this.type]?`Unknown signal: type: ${this.type}, value: ${this.value}, valueType: ${this.valueType}`:`Signal: type: ${Yn[this.type]}, value: ${this.value}, valueType: ${this.valueType}`}}!function(t){t[t.BUTTON=9]=\"BUTTON\",t[t.CONSUMER=12]=\"CONSUMER\",t[t.LED=8]=\"LED\",t[t.TELEPHONY=11]=\"TELEPHONY\",t[t.GN_CONSUMER=65312]=\"GN_CONSUMER\",t[t.GN_EXT_BUTTONS=65360]=\"GN_EXT_BUTTONS\",t[t.GN_LED=65344]=\"GN_LED\",t[t.GN_MISC=65376]=\"GN_MISC\",t[t.GN_TELEPHONY=65328]=\"GN_TELEPHONY\"}(Vn||(Vn={})),function(t){t[t.MUTE=9]=\"MUTE\",t[t.OFF_HOOK=23]=\"OFF_HOOK\",t[t.RING=24]=\"RING\",t[t.MESSAGE_WAIT=25]=\"MESSAGE_WAIT\",t[t.HOLD=32]=\"HOLD\",t[t.MIC_MUTE=33]=\"MIC_MUTE\",t[t.ONLINE=42]=\"ONLINE\",t[t.HID_OFFLINE=43]=\"HID_OFFLINE\"}(jn||(jn={})),function(t){t[t.HOOK_SWITCH=32]=\"HOOK_SWITCH\",t[t.FLASH=33]=\"FLASH\",t[t.HOLD=35]=\"HOLD\",t[t.REDIAL=36]=\"REDIAL\",t[t.ONLINE=42]=\"ONLINE\",t[t.SPEAKER_PHONE=43]=\"SPEAKER_PHONE\",t[t.MUTE=47]=\"MUTE\",t[t.HID_SEND=49]=\"HID_SEND\",t[t.SPEED_DIAL=80]=\"SPEED_DIAL\",t[t.VOICE_MAIL=112]=\"VOICE_MAIL\",t[t.ANSWER_ON_OFF=116]=\"ANSWER_ON_OFF\",t[t.LINE_BUSY=151]=\"LINE_BUSY\",t[t.RINGER=158]=\"RINGER\",t[t.PHONE_KEY_0=176]=\"PHONE_KEY_0\",t[t.PHONE_KEY_1=177]=\"PHONE_KEY_1\",t[t.PHONE_KEY_2=178]=\"PHONE_KEY_2\",t[t.PHONE_KEY_3=179]=\"PHONE_KEY_3\",t[t.PHONE_KEY_4=180]=\"PHONE_KEY_4\",t[t.PHONE_KEY_5=181]=\"PHONE_KEY_5\",t[t.PHONE_KEY_6=182]=\"PHONE_KEY_6\",t[t.PHONE_KEY_7=183]=\"PHONE_KEY_7\",t[t.PHONE_KEY_8=184]=\"PHONE_KEY_8\",t[t.PHONE_KEY_9=185]=\"PHONE_KEY_9\",t[t.PHONE_KEY_STAR=186]=\"PHONE_KEY_STAR\",t[t.PHONE_KEY_POUND=187]=\"PHONE_KEY_POUND\",t[t.HID_ALT_VOLUME_UP=233]=\"HID_ALT_VOLUME_UP\",t[t.HID_ALT_VOLUME_DOWN=234]=\"HID_ALT_VOLUME_DOWN\",t[t.GN_PSEUDO_HOOK_SWITCH=65531]=\"GN_PSEUDO_HOOK_SWITCH\",t[t.GN_OUT_OF_RANGE=65532]=\"GN_OUT_OF_RANGE\",t[t.GN_REJECT_CALL=65533]=\"GN_REJECT_CALL\",t[t.GN_TELEPHONY_CONT_SET=65535]=\"GN_TELEPHONY_CONT_SET\"}(qn||(qn={}));class nr{constructor(t,e,n,r,i){this.hidChannel=t,this.onDisconnect=e,this.isSoftphoneInFocus=n,this.lockHeld=r,this.logger=i,this.cachedSignals=new Map}setup(){const t=this.filter().pipe(de());return t.subscribe(),t}filter(){const t=this.hidChannel.input.pipe(Jt((t=>t.usagePage===Vn.GN_TELEPHONY&&!t.isArray())),Pt((t=>{const e=this.hidChannel.findDescriptor(t.usagePage,t.usage,Qe.INPUT);return(null==e?void 0:e.valueType)?Nt(Object.assign(Object.assign({},t),{valueType:e.valueType})):(In(\"\",new be(`Unable to find value-type in descriptor for UsagePage: ${t.usagePage} and Usage: ${t.usage}`,Kt.FEATURE_NOT_SUPPORTED),this.logger),et)})),Jt((t=>{if(t.valueType===Je.RELATIVE)return Boolean(t.value);return this.cachedSignals.get(t.usage)!==t.value})),me((t=>{this.cachedSignals.set(t.usage,t.value)})),_e(this.onDisconnect),de()),e=[Yn.HOOK_SWITCH,Yn.REDIAL],n=t.pipe(on(this.isSoftphoneInFocus),Jt((t=>e.includes(t.usage)&&!this.lockHeld.getValue())));return Mt(t.pipe(Jt((t=>this.lockHeld.getValue()))),n).pipe(Lt((t=>new er(t.usage,0!==t.value,t.valueType))),ee((t=>(ye(t.message,this.logger),et))))}}class rr{constructor(t,e,n,r,i,o){this.device=t,this.onDisconnect=n,$n.set(this,void 0),zn.set(this,new j(!1)),Qn.set(this,void 0),Jn.set(this,!1),this.deviceSignals=new Y,h(this,$n,r,\"f\"),l(this,$n,\"f\").lockHeld.subscribe(l(this,zn,\"f\")),h(this,Qn,e,\"f\"),this.onDisconnect.pipe(ue(),Lt((()=>!0))).subscribe((t=>{h(this,Jn,t,\"f\")}));const s=new nr(l(this,Qn,\"f\"),this.onDisconnect,i,l(this,zn,\"f\"),o);this.deviceSignals=s.setup()}checkCallLockHeld(t){if(!l(this,zn,\"f\").getValue())throw new be(t,Kt.SDK_USAGE_ERROR)}checkCallLockNotHeld(t){if(l(this,zn,\"f\").getValue())throw new be(t,Kt.SDK_USAGE_ERROR)}checkHasDisconnected(){if(l(this,Jn,\"f\"))throw new be(\"CallControl cannot be performed as the connection has disconnected.\",Kt.SDK_USAGE_ERROR)}takeCallLock(){return this.checkHasDisconnected(),this.checkCallLockNotHeld(\"Trying to take the call lock, but it is already held!\"),St(l(this,$n,\"f\").tryTakeCallLock())}releaseCallLock(){this.checkHasDisconnected(),this.checkCallLockHeld(\"Trying to release the call lock, but it is not held!\"),l(this,$n,\"f\").releaseCallLock()}offHook(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"Calls can only be started and stopped when the call lock is held.\");const e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.OFF_HOOK,Qe.OUTPUT);if(!e)throw new be(`Device ${this.device.name} does not support any offHook functionality.`,Kt.FEATURE_NOT_SUPPORTED);const n=t?1:0;l(this,Qn,\"f\").output(e.usagePage,e.usage,n)}ring(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The ringer state can only be modified when the call lock is held.\");const e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.RING,Qe.OUTPUT),n=l(this,Qn,\"f\").findDescriptor(Vn.GN_TELEPHONY,qn.RINGER,Qe.OUTPUT);if(!e&&!n)throw new be(`Device ${this.device.name} does not support any ring functionality.`,Kt.FEATURE_NOT_SUPPORTED);if(n){const e=t?1:0;l(this,Qn,\"f\").output(n.usagePage,n.usage,e)}if(e){const n=t?1:0;l(this,Qn,\"f\").output(e.usagePage,e.usage,n)}}mute(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The mute state can only be modified when the call lock is held.\");let e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.MIC_MUTE,Qe.OUTPUT);if(e||(e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.MUTE,Qe.OUTPUT)),!e)throw new be(`Device ${this.device.name} does not support any mute functionality.`,Kt.FEATURE_NOT_SUPPORTED);const n=t?1:0;l(this,Qn,\"f\").output(e.usagePage,e.usage,n)}hold(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The hold state can only be modified when the call lock is held.\");const e=l(this,Qn,\"f\").findDescriptor(Vn.GN_LED,jn.HOLD,Qe.OUTPUT);if(!e)throw new be(`Device ${this.device.name} does not support hold functionality.`,Kt.FEATURE_NOT_SUPPORTED);const n=t?1:0;l(this,Qn,\"f\").output(e.usagePage,e.usage,n)}}$n=new WeakMap,zn=new WeakMap,Qn=new WeakMap,Jn=new WeakMap,function(t){t[t.STD_TELEPHONY=0]=\"STD_TELEPHONY\",t[t.GN_TELEPHONY=1]=\"GN_TELEPHONY\"}(Xn||(Xn={}));const ir={[De.SKYPE]:Xn.GN_TELEPHONY,[De.CISCO]:Xn.GN_TELEPHONY,[De.AVAYA]:Xn.GN_TELEPHONY,[De.SIEMENS]:Xn.GN_TELEPHONY,[De.IBM]:Xn.GN_TELEPHONY,[De.AASTRA]:Xn.GN_TELEPHONY,[De.JABRA]:Xn.GN_TELEPHONY,[De.NEC]:Xn.GN_TELEPHONY,[De.SHORETEL]:Xn.GN_TELEPHONY,[De.MS_OC]:Xn.STD_TELEPHONY,[De.ALCATEL]:Xn.STD_TELEPHONY,[De.OTHER]:Xn.STD_TELEPHONY,[De.NORTEL]:null,[De.GENERIC]:null};function or(t,e){const n=t.read(je).pipe(Lt((t=>ir[t]===e))),r=t.read(new Ke).pipe(Lt((t=>t.find((t=>ir[t]===e))))).pipe(Lt((e=>e?t.write(je,e):Nt(!1))),ge());return n.pipe((i=Nt(!0),o=r,t=>t.pipe(Lt((t=>t?i:o)),ge())));var i,o}class sr{constructor(t,e,n){this.connectionCallLock=t,this.device=e,this.logger=n,this.lockHeld=new j(!1),this.currentLocks=new j(new Set),this.lockReleaseEvent=new Y}tryTakeCallLock(){const{currentConnections:t}=this.device,e=new Set,n=Gt((()=>wt(t).pipe(ne((t=>this.takeSingleCallLock(t).pipe(ee((t=>(In(\"DeviceCallLock:\",t,this.logger),Nt(\"\"))))))),me((t=>e.add(t)))))).pipe(function(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?Jt((function(e,n){return t(e,n,r)})):k,le(1),n?re(e):ae((function(){return new Tt})))}}(),Lt((n=>(e.delete(\"\"),this.currentLocks.next(e),e.size!==t.length?(this.releaseCallLock(),!1):(this.lockHeld.next(!0),!0)))),fe());return n.subscribe((t=>{t&&(this.acquireLockOnNextConnectionEmit(),this.releaseLockOnRemovedConnectionEmit())})),n}acquireLockOnNextConnectionEmit(){this.device.connectionAdded.pipe(_e(this.lockReleaseEvent)).subscribe((t=>{this.takeSingleCallLock(t).pipe(_e(this.lockReleaseEvent),Lt((t=>(this.currentLocks.getValue().add(t),this.currentLocks.next(this.currentLocks.getValue()),w))),he(Nn())).subscribe({error:t=>{ye(`Failed to acquire the call lock on a new connection.\\n Another softphone running an old SDK has most likely acquired this lock.\\n Full error: ${t}`,this.logger,Bt.WARNING,Wt.JS_LIB)}})}))}releaseLockOnRemovedConnectionEmit(){this.device.connectionRemoved.pipe(_e(this.lockReleaseEvent)).subscribe((t=>this.releaseSingleCallLock(t.id.transportId)))}takeSingleCallLock(t){return Gt((()=>this.connectionCallLock.tryTakeCallLock(t.id.transportId))).pipe(Lt((e=>e.acquired?Nt(e.transportId):Ct((()=>new be(`Failed to acquire call lock on connection ${t.id.transportId}`,Kt.SDK_USAGE_ERROR))))),ge())}releaseCallLock(){this.lockReleaseEvent.next();[...this.currentLocks.getValue()].forEach((t=>{this.releaseSingleCallLock(t)})),this.currentLocks.getValue().clear(),this.currentLocks.next(this.currentLocks.getValue())}releaseSingleCallLock(t){this.connectionCallLock.releaseCallLock(t),this.currentLocks.getValue().delete(t),this.currentLocks.next(this.currentLocks.getValue()),0!==this.currentLocks.getValue().size&&0!==this.device.currentConnections.length||(this.lockReleaseEvent.next(),this.lockHeld.next(!1))}}class ar{constructor(t){this.transport=t}tryTakeCallLock(t){const e={action:\"request-call-lock\",id:t};return this.transport.writeAction(e),this.transport.consoleAppEvent.pipe(Jt((e=>\"response-call-lock\"===e.event&&e.id===t)),Lt((t=>({transportId:t.id,acquired:t.acquired}))),ue())}releaseCallLock(t){const e={action:\"release-call-lock\",id:t};this.transport.writeAction(e)}}const cr=[{usagePage:Vn.GN_LED,usage:jn.OFF_HOOK,reportType:Qe.OUTPUT},{usagePage:Vn.GN_LED,usage:jn.RING,reportType:Qe.OUTPUT},{usagePage:Vn.GN_TELEPHONY,usage:qn.RINGER,reportType:Qe.OUTPUT},{usagePage:Vn.GN_LED,usage:jn.MIC_MUTE,reportType:Qe.OUTPUT},{usagePage:Vn.GN_LED,usage:jn.MUTE,reportType:Qe.OUTPUT},{usagePage:Vn.GN_LED,usage:jn.HOLD,reportType:Qe.OUTPUT}],ur=[yn.USB,yn.INDIRECT,yn.BLUETOOTH];function lr(t,e){const{hidChannel:n}=t;return!!function(t){return cr.some((({usagePage:e,usage:n,reportType:r})=>t.findDescriptor(e,n,r)))}(n)&&(!pn.supportsGnpOverHid(n)||e!==On.DONGLE&&e!==On.OTHER)}function hr(t){const{currentConnections:e,type:n}=t;var r;return(r=e,[...r].sort(((t,e)=>ur.indexOf(t.type)-ur.indexOf(e.type)))).find((t=>lr(t,n)))}function dr(t,e,n,r,i){const o=hr(t),{hidChannel:s,onDisconnect:a}=o,c=new sr(new ar(r),t,i);if(e)return Nt(new rr(t,s,a,c,n.softphoneInFocus,i));if(r.context===Vt.WEB_HID)return Nt(new rr(t,s,a,c,n.softphoneInFocus,i));return function(t,e){return t.findDescriptor(Vn.GN_TELEPHONY,qn.GN_TELEPHONY_CONT_SET,Qe.FEATURE)?Gt((()=>(t.setFeatureReport(Vn.GN_TELEPHONY,qn.GN_TELEPHONY_CONT_SET,1),Nt(!0)))):e?or(e,Xn.GN_TELEPHONY):Nt(!1)}(s,o).pipe(Lt((e=>new rr(t,s,a,c,n.softphoneInFocus,i))))}class pr{constructor(t,e){this.devComm=t,this.softphoneInFocus=new G,this.softphoneInFocus=e.pipe(ue(),Pt((t=>this.devComm.consoleAppEvent.pipe(Jt((t=>\"softphone-in-focus\"===t.event)),Lt((t=>t.infocus)),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=ot(t);return M((function(e,r){(n?xt(t,e,n):xt(t,e)).subscribe(r)}))}(!t),fe(1))))),this.softphoneInFocus.subscribe((()=>{}))}setSharedSoftphoneInfo(t){if(!(null==t?void 0:t.partnerKey)||!(null==t?void 0:t.appId))return void ye(\"Unable to register with Jabra Direct: partnerKey or appId missing in config\",null==t?void 0:t.logger,Bt.WARNING);const e=t.partnerKey+t.appId,n=new Xe(5,\"ns:OID\",e);let{appName:r}=t;if((!t.appName||t.appName.length<3)&&(ye(\"App name missing in config. Fall back to use appId as app name.\",null==t?void 0:t.logger,Bt.WARNING),r=t.appId),r.length>100)return void ye(\"Unable to register with Jabra Direct: appName must be below 100 characters.\",null==t?void 0:t.logger,Bt.WARNING);const i={action:\"set-softphone-info\",name:r,id:n.toString()};this.devComm.writeAction(i)}}var fr,vr,Er,gr,_r,mr,br,yr,Or,wr;class Nr{constructor(t){var e;fr.set(this,void 0),vr.set(this,void 0),Er.set(this,void 0),gr.set(this,void 0),h(this,gr,t._readyEvents.pipe(ue((t=>\"ready\"===t.event)),Lt((t=>t.jabraDirectInstalled))),\"f\"),h(this,vr,new pr(t._transport,l(this,gr,\"f\")),\"f\"),l(this,vr,\"f\").setSharedSoftphoneInfo(t._config),h(this,fr,t._transport,\"f\"),h(this,Er,null===(e=t._config)||void 0===e?void 0:e.logger,\"f\")}createCallControl(t){if(!this.supportsCallControl(t))return Promise.reject(new be(`Device ${t.name} does not support call control.`,Kt.FEATURE_NOT_SUPPORTED));return At(l(this,gr,\"f\").pipe(Pt((e=>dr(t,e,l(this,vr,\"f\"),l(this,fr,\"f\"),l(this,Er,\"f\"))))))}supportsCallControl(t){return void 0!==hr(t)}}fr=new WeakMap,vr=new WeakMap,Er=new WeakMap,gr=new WeakMap,function(t){t.HOLD_CURRENT=\"hold-current\",t.END_CURRENT=\"end-current\"}(_r||(_r={})),function(t){t.MUTED=\"muted\",t.UNMUTED=\"unmuted\",t.NO_ONGOING_CALLS=\"no-ongoing-calls\"}(mr||(mr={})),function(t){t.ON_HOLD=\"on-hold\",t.NOT_ON_HOLD=\"not-on-hold\",t.NO_ONGOING_CALLS=\"no-ongoing-calls\"}(br||(br={})),function(t){t.NO_INCOMING=\"no-incoming\",t.AWAITING_RESPONSE=\"awaiting-response\",t.RESOLVING_RESPONSE=\"resolving-response\",t.ACCEPTED=\"accepted\",t.REJECTED=\"rejected\"}(yr||(yr={}));class Cr{constructor(t){this.state=t.value,t.subscribe((t=>{this.state=t}))}}class Tr extends Cr{constructor(t,e,n,r,i){super(t),this.commands=e,this.deviceSignals=n,this.enableFlash=r,this.logger=i}setupSignalListeners(){const t=this.extendedSignals.pipe(de()),e=t.pipe(Jt((t=>t.allowed))),r=t.pipe(Jt((t=>!t.allowed)));e.subscribe((t=>{ye(`Accepted signal: ${Yn[t.type]} [${t.value}]`,null==this?void 0:this.logger,Bt.INFO)})),r.subscribe((t=>{ye(`Ignored signal: ${Yn[t.type]} [${t.value}]`,null==this?void 0:this.logger,Bt.INFO)})),e.pipe(Jt((t=>t.type===Yn.HOOK_SWITCH))).subscribe((t=>{t.value&&this.state.incomingCall===yr.AWAITING_RESPONSE?this.commands.incomingCallHandler.queueAcceptIncomingCall(_r.END_CURRENT,!0):(!1===t.value&&this.state.ongoingCalls>0&&this.commands.hookHandler.queueEndCall(!0),!0===t.value&&0===this.state.ongoingCalls&&this.commands.hookHandler.queueStartCall())})),e.pipe(Jt((t=>t.type===Yn.PHONE_MUTE))).subscribe((()=>{this.commands.muteHandler.queueToggleMute(!0)})),e.pipe(Jt((t=>t.type===Yn.FLASH))).subscribe((()=>n(this,void 0,void 0,(function*(){this.state.incomingCall!==yr.AWAITING_RESPONSE?this.state.ongoingCalls>1?this.commands.swapHandler.queueSwapCalls():this.commands.holdHandler.queueToggleHold():yield this.commands.incomingCallHandler.queueAcceptIncomingCall(_r.HOLD_CURRENT,!0)})))),e.pipe(Jt((t=>t.type===Yn.REJECT_CALL))).subscribe((()=>{this.state.incomingCall===yr.AWAITING_RESPONSE&&this.commands.incomingCallHandler.queueRejectIncomingCall()}))}get extendedSignals(){return this.deviceSignals.pipe(Pt((t=>{let e=!this.state.ignoreSignals.some((([e,n])=>t.type===e&&n===t.value));return t.type!==Yn.FLASH||this.enableFlash||(e=!1),Nt(Object.assign(Object.assign({},t),{allowed:e}))})),_e(this.commands.teardownHandler.onTeardown))}}class Sr{constructor(t,e,n,r,i,o,s=!0){this.logger=o,Or.set(this,void 0),this.device=t,this.onDisconnect=e,this.ringState=i.ringState,this.muteState=i.muteState,h(this,Or,r,\"f\"),this.onDisconnect.pipe(ue(),_e(l(this,Or,\"f\").teardownHandler.onTeardown)).subscribe((t=>this.teardown(!1)));new Tr(i.internalState,r,n,s,o).setupSignalListeners()}endCall(){return l(this,Or,\"f\").hookHandler.queueEndCall(!1)}signalIncomingCall(t=25e3){return l(this,Or,\"f\").incomingCallHandler.queueSignalIncomingCall(t)}rejectIncomingCall(){return l(this,Or,\"f\").incomingCallHandler.queueRejectIncomingCall()}mute(){return l(this,Or,\"f\").muteHandler.queueSetMute(mr.MUTED)}unmute(){return l(this,Or,\"f\").muteHandler.queueSetMute(mr.UNMUTED)}teardown(t=!0){l(this,Or,\"f\").teardownHandler.teardown(t)}_setInitialState(t,e=!1,n=!1){return 0===t&&(e||n)&&ye(\"\\n Unable to set initial state: muted or onHold cannot be true unless a call is started.\\n Set callActive to true for SingleCallControl, or ongoingCalls to 1 or more for MultiCallControl.\\n \",null==this?void 0:this.logger,Bt.WARNING),l(this,Or,\"f\").deviceState.setInitialState(t,e,n)}}Or=new WeakMap;class Ar extends Sr{constructor(t,e,n,r,i,o){super(t,e,n,r,i,o,!0),wr.set(this,void 0),this.ongoingCalls=i.ongoingCalls,this.holdState=i.holdState,this.swapRequest=i.swapEvents,h(this,wr,r,\"f\")}startCall(){return l(this,wr,\"f\").hookHandler.queueStartCall()}acceptIncomingCall(t=_r.END_CURRENT){return l(this,wr,\"f\").incomingCallHandler.queueAcceptIncomingCall(t,!1)}hold(){return l(this,wr,\"f\").holdHandler.queueSetHold(br.ON_HOLD)}resume(){return l(this,wr,\"f\").holdHandler.queueSetHold(br.NOT_ON_HOLD)}}wr=new WeakMap;class Ir extends Cr{constructor(t,e,n){super(e),this.callControl=t,this.logger=n,this.hasLock=!1}takeCallLock(){return n(this,void 0,void 0,(function*(){if(!this.hasLock){try{this.hasLock=yield this.callControl.takeCallLock()}catch(t){this.hasLock=!0,ye(t.message,null==this?void 0:this.logger,Bt.WARNING)}if(!this.hasLock)throw new be(\"Device used by another softphone. Only one application can use the device at a time.\",Kt.SDK_USAGE_ERROR)}}))}releaseCallLock(){0===this.state.ongoingCalls&&(this.callControl.releaseCallLock(),this.hasLock=!1)}forceReleaseCallLock(){this.hasLock&&this.callControl.releaseCallLock()}}class Rr{constructor(t){this.teardownHandler=t,this.queue=new Y,this.queue.pipe(ne((t=>n(this,void 0,void 0,(function*(){try{const e=yield t.command();t.callback(e)}catch(e){if(!(e instanceof be))throw e;t.errCallback(e)}})))),_e(this.teardownHandler.onTeardown)).subscribe()}pushToQueue(t){return new Promise(((e,n)=>{this.teardownHandler.checkActive();const r={command:t,callback:e,errCallback:n};this.queue.next(r)}))}}class Dr extends Cr{constructor(t,e,n,r){super(r),this.hookHandler=t,this.holdHandler=e,this.muteHandler=n}setInitialState(t,e,r){return n(this,void 0,void 0,(function*(){if(0===t)return yield this.hookHandler.queueStartCall(),void(yield this.hookHandler.queueEndCall(!1));for(let e=0;e<t;e+=1)yield this.hookHandler.queueStartCall();const n=e?mr.MUTED:mr.UNMUTED;yield this.muteHandler.queueSetMute(n);const i=r?br.ON_HOLD:br.NOT_ON_HOLD;yield this.holdHandler.queueSetHold(i)}))}}class Hr extends Cr{constructor(t,e,n,r){super(e),this.callControl=t,this.stateHandler=e,this.commandQueue=n,this.awaitSignals=r}queueSetHold(t){return this.commandQueue.pushToQueue((()=>this.setHold(t)))}queueToggleHold(){return this.commandQueue.pushToQueue((()=>n(this,void 0,void 0,(function*(){const t=this.state.holdState===br.ON_HOLD?br.NOT_ON_HOLD:br.ON_HOLD;this.setHold(t)}))))}setHold(t){return n(this,void 0,void 0,(function*(){if(0===this.state.ongoingCalls){const e=t===br.ON_HOLD?\"hold\":\"resume\";throw new be(`Cannot ${e} call as there are no calls in progress.`,Kt.SDK_USAGE_ERROR)}if(this.state.ongoingCalls>1&&t===br.NOT_ON_HOLD)return void(yield this.resumeWhileMultiple());this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:t}));const e=t===br.NOT_ON_HOLD,n=t===br.ON_HOLD,r=[[Yn.HOOK_SWITCH,e],[Yn.FLASH,!0]],i=this.awaitSignals.listen(r);n?(this.callControl.hold(n),this.callControl.offHook(e)):(this.callControl.offHook(e),this.callControl.hold(n)),yield St(i)}))}resumeWhileMultiple(){return n(this,void 0,void 0,(function*(){const t=this.awaitSignals.listen([[Yn.HOOK_SWITCH,!0]]);this.callControl.offHook(!0),this.callControl.hold(!1),this.callControl.hold(!0),yield St(t),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:br.NOT_ON_HOLD}))}))}}class Lr extends Cr{constructor(t,e,n,r,i){super(n),this.callControl=t,this.callLock=e,this.stateHandler=n,this.commandQueue=r,this.awaitSignals=i}queueStartCall(){return this.commandQueue.pushToQueue((()=>this.startCall()))}queueEndCall(t){return this.commandQueue.pushToQueue((()=>this.endCall(t)))}startCall(t=!1){return n(this,void 0,void 0,(function*(){if(this.state.incomingCall===yr.AWAITING_RESPONSE)throw new be(\"Cannot start a new call while another call is incoming. If you wish to answer/accept the incoming call, please use acceptIncomingCall/rejectIncomingCall instead.\",Kt.SDK_USAGE_ERROR);this.state.holdState===br.ON_HOLD?this.startNewCallWhileOnHold():0===this.state.ongoingCalls?yield this.startFirstCall(t):this.startSubsequentCalls(),this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls+1}))}))}endCall(t){return n(this,void 0,void 0,(function*(){if(this.state.incomingCall===yr.AWAITING_RESPONSE)throw new be(\"Cannot end a call while another call is incoming. If you wish to answer/accept the incoming call, please use acceptIncomingCall/rejectIncomingCall instead.\",Kt.SDK_USAGE_ERROR);if(0===this.state.ongoingCalls)throw new be(\"Cannot end call as there are no calls in progress.\",Kt.SDK_USAGE_ERROR);1===this.state.ongoingCalls?yield this.endLastCall():this.state.holdState===br.ON_HOLD?this.endCallWhileOnHold():yield this.endCurrentCall(t)}))}startFirstCall(t){return n(this,void 0,void 0,(function*(){yield this.callLock.takeCallLock();const e=t?[]:[[Yn.HOOK_SWITCH,!0]],n=this.awaitSignals.listen(e);this.callControl.offHook(!0),yield St(n),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:br.NOT_ON_HOLD,muteState:mr.UNMUTED}))}))}startSubsequentCalls(){this.callControl.hold(!0)}startNewCallWhileOnHold(){this.callControl.offHook(!0),this.callControl.hold(!0),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:br.NOT_ON_HOLD}))}endLastCall(){return n(this,void 0,void 0,(function*(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:br.NO_ONGOING_CALLS,muteState:mr.NO_ONGOING_CALLS,ongoingCalls:0})),this.callControl.mute(!1),this.callControl.offHook(!1),this.callControl.hold(!1),this.callLock.releaseCallLock()}))}endCurrentCall(t){return n(this,void 0,void 0,(function*(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls-1})),yield this.sendHoldCallSignalAndWaitForAck(t),yield this.resumeNextCall(t)}))}sendHoldCallSignalAndWaitForAck(t){const e=t?[[Yn.HOOK_SWITCH,!1],[Yn.FLASH,!0]]:[[Yn.HOOK_SWITCH,!1]],n=St(this.awaitSignals.listen(e));return this.callControl.hold(!0),this.callControl.offHook(!1),n}resumeNextCall(t){const e=t?[[Yn.HOOK_SWITCH,!0],[Yn.FLASH,!0]]:[[Yn.HOOK_SWITCH,!0]],n=St(this.awaitSignals.listen(e));return this.callControl.offHook(!0),this.callControl.hold(1!==this.state.ongoingCalls),n}endCallWhileOnHold(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls-1}))}}class Pr extends Cr{constructor(t,e,n,r,i){super(n),this.callControl=t,this.callLock=e,this.stateHandler=n,this.hookHandler=r,this.commandQueue=i}queueAcceptIncomingCall(t,e){return this.commandQueue.pushToQueue((()=>this.acceptIncomingCall(t,e)))}queueRejectIncomingCall(){return this.commandQueue.pushToQueue((()=>this.rejectIncomingCall()))}queueSignalIncomingCall(t=25e3){return new Promise(((e,r)=>{this.commandQueue.pushToQueue((()=>n(this,void 0,void 0,(function*(){(yield this.signalIncomingCall(t)).subscribe({next:t=>{e(t),this.updateIncomingCallState(yr.NO_INCOMING)},error:t=>{e(!1)},complete:()=>{e(!1)}})})))).catch((t=>r(t)))}))}signalIncomingCall(t){return n(this,void 0,void 0,(function*(){return yield this.callLock.takeCallLock(),this.updateIncomingCallState(yr.AWAITING_RESPONSE),this.callControl.ring(!0),this.stateHandler.pipe((e=({incomingCall:t})=>t!==yr.NO_INCOMING,void 0===n&&(n=!1),M((function(t,r){var i=0;t.subscribe(B(r,(function(t){var o=e(t,i++);(o||n)&&r.next(t),!o&&r.complete()})))}))),Jt((({incomingCall:t})=>t===yr.ACCEPTED||t===yr.REJECTED)),ue(),Dt(t),ee((t=>(this.rejectIncomingCall(),Nt(this.state)))),Lt((({incomingCall:t})=>t===yr.ACCEPTED)));var e,n}))}acceptIncomingCall(t,e){return n(this,void 0,void 0,(function*(){if(this.state.incomingCall!==yr.AWAITING_RESPONSE)throw new be(\"Cannot accept as there are no incoming calls.\",Kt.SDK_USAGE_ERROR);this.updateIncomingCallState(yr.RESOLVING_RESPONSE),this.callControl.ring(!1),this.state.holdState===br.ON_HOLD||0===this.state.ongoingCalls?yield this.hookHandler.startCall(e):t===_r.END_CURRENT?(yield this.hookHandler.endCall(e),yield this.hookHandler.startCall(e)):t===_r.HOLD_CURRENT&&(yield this.hookHandler.startCall(e)),this.stateHandler.next(Object.assign(Object.assign({},this.state),{incomingCall:yr.ACCEPTED,holdState:br.NOT_ON_HOLD}))}))}rejectIncomingCall(){return n(this,void 0,void 0,(function*(){if(this.state.incomingCall!==yr.AWAITING_RESPONSE)throw new be(\"Cannot reject as there are no incoming calls.\",Kt.SDK_USAGE_ERROR);this.callControl.ring(!1),this.updateIncomingCallState(yr.REJECTED),this.callLock.releaseCallLock()}))}updateIncomingCallState(t){this.stateHandler.next(Object.assign(Object.assign({},this.state),{incomingCall:t}))}}class Ur extends Cr{constructor(t,e,n){super(e),this.callControl=t,this.stateHandler=e,this.commandQueue=n}queueSetMute(t){return this.commandQueue.pushToQueue((()=>this.setMute(t,!1)))}queueToggleMute(t){return this.commandQueue.pushToQueue((()=>n(this,void 0,void 0,(function*(){const e=this.state.muteState===mr.MUTED?mr.UNMUTED:mr.MUTED;this.setMute(e,t)}))))}setMute(t,e){return n(this,void 0,void 0,(function*(){if(!e&&0===this.state.ongoingCalls)throw new be(\"You cannot change mute state outside of a call.\",Kt.SDK_USAGE_ERROR);if(!e&&this.state.holdState===br.ON_HOLD)throw new be(\"You cannot change mute state while on hold.\",Kt.SDK_USAGE_ERROR);this.callControl.mute(t===mr.MUTED),this.stateHandler.next(Object.assign(Object.assign({},this.state),{muteState:t}))}))}}class kr extends Cr{constructor(t,e){super(t),this.stateHandler=t,this.commandQueue=e}queueSwapCalls(){return this.commandQueue.pushToQueue((()=>this.swapCalls()))}swapCalls(){return n(this,void 0,void 0,(function*(){if(this.state.ongoingCalls<2)throw new be(\"No calls to swap between. There should be at least one current call and one call on hold.\",Kt.SDK_USAGE_ERROR);this.stateHandler.next(Object.assign(Object.assign({},this.state),{swapToggle:this.state.swapToggle?0:1}))}))}}class xr{constructor(t,e,n){this.stateHandler=t,this.callLock=e,this.logger=n,this.teardownState=new j(!1),this.onTeardown=this.teardownState.pipe(ve(1),Lt(w))}teardown(t=!0){if(this.teardownState.value)throw new be(\"Easy Call Control instance already torn down.\",Kt.SDK_USAGE_ERROR);this.stateHandler.unsubscribeState(),this.teardownState.next(!0),t&&this.callLock.forceReleaseCallLock(),ye(\"Teardown complete. Create new Easy Call Control instance to continue usage.\",null==this?void 0:this.logger,Bt.INFO)}checkActive(){if(this.teardownState.value)throw new be(\"\\n Inactive instance. Either device disconnected or teardown was called.\\n Create new EasyCallControl instance to continue usage.\",Kt.SDK_USAGE_ERROR)}}class Gr{constructor(t,e,n){this.deviceSignals=t,this.stateHandler=e,this.logger=n}listen(t){if(0===t.length)return Nt(void 0);this.stateHandler.next(Object.assign(Object.assign({},this.stateHandler.value),{ignoreSignals:t}));let e=0;return this.deviceSignals.pipe(Ee((n=>{const[r,i]=t[e];return n.type===r&&n.value===i?(ye(`Resolve awaited signal: ${Yn[r]} [${i}]`,null==this?void 0:this.logger,Bt.INFO),e+=1,Nt(n)):et})),ie(t.length),Dt(1e3),ee((()=>{const e=t.map((([t,e])=>`${Yn[t]}: ${e}`));return ye(`Missing signals for ${JSON.stringify(e)}. State recovered.`,null==this?void 0:this.logger,Bt.INFO),Nt(void 0)})),(n=()=>{this.stateHandler.next(Object.assign(Object.assign({},this.stateHandler.value),{ignoreSignals:[]}))},M((function(t,e){try{t.subscribe(e)}finally{e.add(n)}}))));var n}}class Fr{constructor(t,e,n,r){const i=new Ir(t,n.internalState,r);this.teardownHandler=new xr(n,i,r);const o=new Rr(this.teardownHandler),s=new Gr(e,n.internalState,r);this.hookHandler=new Lr(t,i,n.internalState,o,s),this.muteHandler=new Ur(t,n.internalState,o),this.holdHandler=new Hr(t,n.internalState,o,s),this.incomingCallHandler=new Pr(t,i,n.internalState,this.hookHandler,o),this.swapHandler=new kr(n.internalState,o),this.deviceState=new Dr(this.hookHandler,this.holdHandler,this.muteHandler,n.internalState)}}const Mr={ongoingCalls:0,muteState:mr.NO_ONGOING_CALLS,holdState:br.NO_ONGOING_CALLS,incomingCall:yr.NO_INCOMING,ignoreSignals:[],swapToggle:0};class Br{constructor(){this.internalState=new j(Mr),this.onUnsubscribe=new Y;const t=this.internalState.pipe(_e(this.onUnsubscribe));this.ongoingCalls=t.pipe(Lt((t=>t.ongoingCalls)),oe()),this.callActive=t.pipe(Lt((t=>0!==t.ongoingCalls)),oe()),this.ringState=t.pipe(Lt((t=>t.incomingCall===yr.AWAITING_RESPONSE||t.incomingCall===yr.RESOLVING_RESPONSE)),oe()),this.muteState=t.pipe(Lt((t=>t.muteState)),oe()),this.holdState=t.pipe(Lt((t=>t.holdState)),oe()),this.swapEvents=t.pipe(Lt((t=>t.swapToggle)),oe(),Lt((()=>{})),ve(1))}unsubscribeState(){this.onUnsubscribe.next(void 0),this.onUnsubscribe.complete(),this.internalState.complete()}}var Wr,Kr,Yr,Vr;class jr extends Sr{constructor(t,e,n,r,i,o){super(t,e,n,r,i,o,!1),Wr.set(this,void 0),Kr.set(this,void 0),this.callActive=i.callActive,h(this,Wr,i.internalState,\"f\"),h(this,Kr,r,\"f\")}startCall(){return n(this,void 0,void 0,(function*(){if(1===l(this,Wr,\"f\").value.ongoingCalls)throw new be(\"Please end the call before starting a new one.\",Kt.SDK_USAGE_ERROR);yield l(this,Kr,\"f\").hookHandler.queueStartCall()}))}acceptIncomingCall(){return l(this,Kr,\"f\").incomingCallHandler.queueAcceptIncomingCall(_r.END_CURRENT,!1)}}Wr=new WeakMap,Kr=new WeakMap;class qr{constructor(t){var e;Yr.set(this,void 0),Vr.set(this,void 0),h(this,Yr,new Nr(t),\"f\"),h(this,Vr,null===(e=t._config)||void 0===e?void 0:e.logger,\"f\")}createSingleCallControl(t,e){return n(this,void 0,void 0,(function*(){const n=yield this.getSharedDependencies(t),r=new jr(n.coreDevice,n.onDisconnect,n.deviceSignals,n.commands,n.stateHandler,l(this,Vr,\"f\"));if(e){const t=e.callActive?1:0;yield r._setInitialState(t,e.muted)}return r}))}createMultiCallControl(t,e){return n(this,void 0,void 0,(function*(){const n=yield this.getSharedDependencies(t),r=new Ar(n.coreDevice,n.onDisconnect,n.deviceSignals,n.commands,n.stateHandler,l(this,Vr,\"f\"));return e&&(yield r._setInitialState(e.ongoingCalls,e.muted,e.onHold)),r}))}supportsEasyCallControl(t){return l(this,Yr,\"f\").supportsCallControl(t)}getSharedDependencies(t){return n(this,void 0,void 0,(function*(){const e=yield l(this,Yr,\"f\").createCallControl(t),n=new Br,r=e.deviceSignals.pipe(de());return{commands:new Fr(e,r,n,l(this,Vr,\"f\")),stateHandler:n,deviceSignals:r,coreDevice:e.device,onDisconnect:e.onDisconnect}}))}}Yr=new WeakMap,Vr=new WeakMap;export{_r as A,Nr as C,tn as D,Kt as E,br as H,kn as I,be as J,Bt as L,mr as M,G as O,Qe as R,Y as S,Vt as T,Je as V,Bn as W,n as _,xt as a,Pt as b,B as c,Ft as d,Z as e,Wn as f,Zn as g,Kn as h,Mt as i,Wt as j,Yn as k,ye as l,Lt as m,w as n,M as o,jt as p,bn as q,yn as r,On as s,ie as t,Xe as u,Mn as v,tr as w,qr as x};\n","import { VendorImplementation } from \"../services/vendor-implementations/vendor-implementation\";\nimport { EventInfoWithConversationId, HoldEventInfo, MutedEventInfo, WebHidPermissionRequest } from \"./emitted-headset-events\";\n\nexport enum HeadsetEvents {\n implementationChanged = 'implementationChanged',\n deviceHoldStatusChanged = 'deviceHoldStatusChanged',\n deviceMuteStatusChanged = 'deviceMuteStatusChanged',\n deviceAnsweredCall = 'deviceAnsweredCall',\n deviceEndedCall = 'deviceEndedCall',\n deviceRejectedCall = 'deviceRejectedCall',\n loggableEvent = 'loggableEvent',\n webHidPermissionRequested = 'webHidPermissionRequested',\n deviceConnectionStatusChanged = 'deviceConnectionStatusChanged',\n deviceEventLogs = 'deviceEventLogs',\n}\n\ntype Events = {\n [HeadsetEvents.implementationChanged]: VendorImplementation;\n [HeadsetEvents.deviceHoldStatusChanged]: HoldEventInfo;\n [HeadsetEvents.deviceMuteStatusChanged]: MutedEventInfo;\n [HeadsetEvents.deviceAnsweredCall]: EventInfoWithConversationId;\n [HeadsetEvents.deviceEndedCall]: EventInfoWithConversationId\n [HeadsetEvents.deviceRejectedCall]: EventInfoWithConversationId;\n [HeadsetEvents.loggableEvent]: any;\n [HeadsetEvents.webHidPermissionRequested]: WebHidPermissionRequest;\n [HeadsetEvents.deviceConnectionStatusChanged]: DeviceConnectionStatus;\n}\n\nexport type DeviceConnectionStatus = 'checking' | 'running' | 'notRunning' | 'noVendor';\n\nexport type ConsumedHeadsetEvents<T = keyof Events> = T extends keyof Events\n ? { event: T, payload: Events[T] }\n : never;\n\nexport interface PartialInputReportEvent {\n reportId: number;\n data: DataView;\n}","import DeviceInfo from '../../types/device-info';\nimport StrictEventEmitter from 'strict-event-emitter-types';\nimport { EventEmitter } from 'events';\nimport { EmittedHeadsetEvents, EventInfo, EventInfoWithConversationId, HoldEventInfo, MutedEventInfo } from '../../types/emitted-headset-events';\nimport { CallInfo } from '../..';\nimport { UpdateReasons } from '../../types/headset-states';\n\ntype HeadsetEventName = keyof EmittedHeadsetEvents;\n\nexport interface ImplementationConfig {\n logger: any;\n vendorName?: string;\n appName?: string;\n createNew?: boolean; // this should only be used for testing\n}\n\nexport abstract class VendorImplementation extends (EventEmitter as { new(): StrictEventEmitter<EventEmitter, EmittedHeadsetEvents> }) {\n // TODO: rename this to something more descriptive\n vendorName = 'Not Specified';\n isConnecting = false; // trying to connect with the headset controlling software, ex: plantronics hub\n isConnected = false; // represents a connection to the headset controlling software, ex: plantronics hub\n isMuted = false;\n errorCode: string = null;\n disableRetry = false;\n logger: any; // TODO: pass this in on creation?\n config: ImplementationConfig;\n\n constructor (config: ImplementationConfig) {\n super();\n const eventEmitter = new EventEmitter();\n Object.keys((eventEmitter as any).__proto__).forEach((name) => {\n this[name] = eventEmitter[name];\n });\n\n this.config = config;\n this.vendorName = config.vendorName;\n this.logger = config.logger;\n }\n\n get isDeviceAttached (): boolean {\n throw new Error(`${this.vendorName} - isDeviceAttatched getter not implemented`);\n }\n\n isSupported (): boolean {\n return true;\n }\n\n abstract get deviceInfo (): DeviceInfo;\n\n /* eslint-disable @typescript-eslint/no-unused-vars */\n deviceLabelMatchesVendor (label: string): boolean {\n throw new Error(`${this.vendorName} - deviceLabelMatchesVendor() not implemented`);\n }\n\n connect (selectedMicLabel?: string): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - connect() not implemented`));\n }\n\n disconnect (clearReason?: UpdateReasons): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - disconnect() not implemented`));\n }\n\n incomingCall (callInfo: CallInfo, hasOtherActiveCalls?: boolean): Promise<any> {\n // TODO: propagate this changed parameter (used to be callInfo, but there are several differents signatures in the implementing classes)\n return Promise.reject(new Error(`${this.vendorName} - incomingCall() not implemented`));\n }\n\n outgoingCall (callInfo: CallInfo): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - outgoingCall() not implemented`));\n }\n\n answerCall (conversationId: string, autoAnswer?: boolean): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - answerCall() not implemented`));\n }\n\n rejectCall (conversationId: string): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - rejectCall() not implemented`));\n }\n\n endCall (conversationId: string, hasOtherActiveCalls: boolean): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - endCall() not implemented`));\n }\n\n endAllCalls (): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - endAllCalls() not implemented`));\n }\n\n setMute (value: boolean): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - setMute() not implemented`));\n }\n\n setHold (conversationId: string, value: boolean): Promise<any> {\n return Promise.reject(new Error(`${this.vendorName} - setHold() not implemented`));\n }\n\n resetHeadsetStateForCall (conversationId?: string): Promise<any> {\n return this.rejectCall(conversationId);\n }\n /* eslint-enable */\n\n private emitEvent (eventName: HeadsetEventName, eventBody: any) {\n this.emit(eventName, { vendor: this, body: { ...eventBody } });\n }\n\n /* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n requestWebHidPermissions (callback: any): void {\n /* eslint-enable */\n this.logger.debug('Emitting premission request event');\n this.emitEvent('webHidPermissionRequested', { callback });\n }\n\n deviceAnsweredCall (eventInfo: EventInfoWithConversationId): void {\n this.emitEvent('deviceAnsweredCall', eventInfo);\n }\n\n deviceRejectedCall (eventInfo: EventInfoWithConversationId): void {\n this.emitEvent('deviceRejectedCall', eventInfo);\n }\n\n deviceEndedCall (eventInfo: EventInfoWithConversationId): void {\n this.emitEvent('deviceEndedCall', eventInfo);\n }\n\n deviceMuteChanged (eventInfo: MutedEventInfo): void {\n this.emitEvent('deviceMuteStatusChanged', { ...eventInfo });\n }\n\n deviceHoldStatusChanged (eventInfo: HoldEventInfo): void {\n this.emitEvent('deviceHoldStatusChanged', { ...eventInfo });\n }\n\n deviceEventLogs (eventInfo: EventInfo): void {\n this.emitEvent('deviceEventLogs', eventInfo);\n }\n\n changeConnectionStatus (headsetState: {isConnected: boolean, isConnecting: boolean}): void {\n this.isConnected = headsetState.isConnected;\n this.isConnecting = headsetState.isConnecting;\n this.emitEvent('deviceConnectionStatusChanged', { currentVendor: this, ...headsetState });\n }\n}\n","!function(e,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(r):e.browserama=r()}(this,function(){\"use strict\";var e=\"undefined\"==typeof window,r=!1,t=!1,o=!1,i=!1,n=!1,d=!1,u=!1,w=!1,s=!1,m=!1;return e||(r=\"undefined\"!=typeof InstallTrigger,t=!!window.chrome,o=!!window.chrome,i=t&&!window.chrome.webstore&&!window.chrome.runtime,n=0<Object.prototype.toString.call(window.HTMLElement).indexOf(\"Constructor\")||window.safari&&window.safari.pushNotification,d=!!window.opr&&!!window.opr.addons||!!window.opera,u=!!window.StyleMedia,w=t&&!!navigator.userAgent.match(/edg/i),s=(o||d)&&!!window.CSS,m=!(t||n||r||d||!document.documentMode)),{get isChrome(){return o},get isChromeOrChromium(){return t},get isChromium(){return i},get isFirefox(){return r},get isSafari(){return n},get isOpera(){return d},get isEdge(){return u},get isEdgeChromium(){return w},get isIE(){return m},get isBlink(){return s}}});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['exports', 'module'], factory);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n factory(exports, module);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, mod);\n global.fetchJsonp = mod.exports;\n }\n})(this, function (exports, module) {\n 'use strict';\n\n var defaultOptions = {\n timeout: 5000,\n jsonpCallback: 'callback',\n jsonpCallbackFunction: null\n };\n\n function generateCallbackFunction() {\n return 'jsonp_' + Date.now() + '_' + Math.ceil(Math.random() * 100000);\n }\n\n function clearFunction(functionName) {\n // IE8 throws an exception when you try to delete a property on window\n // http://stackoverflow.com/a/1824228/751089\n try {\n delete window[functionName];\n } catch (e) {\n window[functionName] = undefined;\n }\n }\n\n function removeScript(scriptId) {\n var script = document.getElementById(scriptId);\n if (script) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n }\n\n function fetchJsonp(_url) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // to avoid param reassign\n var url = _url;\n var timeout = options.timeout || defaultOptions.timeout;\n var jsonpCallback = options.jsonpCallback || defaultOptions.jsonpCallback;\n\n var timeoutId = undefined;\n\n return new Promise(function (resolve, reject) {\n var callbackFunction = options.jsonpCallbackFunction || generateCallbackFunction();\n var scriptId = jsonpCallback + '_' + callbackFunction;\n\n window[callbackFunction] = function (response) {\n resolve({\n ok: true,\n // keep consistent with fetch API\n json: function json() {\n return Promise.resolve(response);\n }\n });\n\n if (timeoutId) clearTimeout(timeoutId);\n\n removeScript(scriptId);\n\n clearFunction(callbackFunction);\n };\n\n // Check if the user set their own params, and if not add a ? to start a list of params\n url += url.indexOf('?') === -1 ? '?' : '&';\n\n var jsonpScript = document.createElement('script');\n jsonpScript.setAttribute('src', '' + url + jsonpCallback + '=' + callbackFunction);\n if (options.charset) {\n jsonpScript.setAttribute('charset', options.charset);\n }\n if (options.nonce) {\n jsonpScript.setAttribute('nonce', options.nonce);\n }\n if (options.referrerPolicy) {\n jsonpScript.setAttribute('referrerPolicy', options.referrerPolicy);\n }\n jsonpScript.id = scriptId;\n document.getElementsByTagName('head')[0].appendChild(jsonpScript);\n\n timeoutId = setTimeout(function () {\n reject(new Error('JSONP request to ' + _url + ' timed out'));\n\n clearFunction(callbackFunction);\n removeScript(scriptId);\n window[callbackFunction] = function () {\n clearFunction(callbackFunction);\n };\n }, timeout);\n\n // Caught if got 404/500\n jsonpScript.onerror = function () {\n reject(new Error('JSONP request to ' + _url + ' failed'));\n\n clearFunction(callbackFunction);\n removeScript(scriptId);\n if (timeoutId) clearTimeout(timeoutId);\n };\n });\n }\n\n // export as global function\n /*\n let local;\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n local.fetchJsonp = fetchJsonp;\n */\n\n module.exports = fetchJsonp;\n});","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined,\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","export enum PlantronicsCallEventCodes {\n Unknown = 0,\n AcceptCall = 1,\n TerminateCall = 2,\n HoldCall = 3,\n ResumeCall = 4,\n Flash = 5,\n CallInProgress = 6,\n CallRinging = 7,\n CallEnded = 8,\n TransferToHeadset = 9,\n TransferToSpeaker = 10,\n Mute = 11,\n Unmute = 12,\n MobileCallRinging = 13,\n MobileCallInProgress = 14,\n MobileCallEnded = 15,\n DOn = 16,\n DOff = 17,\n CallIdle = 18,\n Play = 19,\n Pause = 20,\n Stop = 21,\n DTMLKey = 22,\n RejectCall = 23,\n MakeCall = 24,\n Hook = 25,\n HookIdle = 26,\n HookDocked = 27,\n HookUndocked = 28,\n BaseEvent = 29,\n CallAnsweredAndEnded = 30,\n CallUnansweredAndEnded = 31,\n DeviceChange = 32,\n DeviceArrived = 33,\n DeviceRemoved = 34,\n}\n\nexport interface PlantronicsCallEvent {\n Action: PlantronicsCallEventCodes;\n CallId: {\n ConferenceId: number;\n Id: number;\n InConference: boolean;\n };\n CallSource: string;\n DeviceEvent: number;\n}\n\n// Don't need this, because CallEvents[code] will return the name\n// const reverseCallEvents: Dictionary;\n// for (const eventName of Object.keys(CallEvents)) {\n// const code = CallEvents[eventName];\n// reverseCallEvents[code] = eventName;\n// }\n\n// export function getEventName (code) {\n// return reverseCallEvents[code];\n// }\n","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import fetchJsonp from 'fetch-jsonp';\nimport { VendorImplementation, ImplementationConfig } from '../vendor-implementation';\nimport { PlantronicsCallEvent, PlantronicsCallEventCodes } from './plantronics-call-events';\nimport browserama from 'browserama';\nimport DeviceInfo from '../../../types/device-info';\nimport { CallInfo } from '../../../types/call-info';\nimport { UpdateReasons } from '../../../types/headset-states';\n\nconst defaultAppName = 'genesys-cloud-headset-library';\n\n/**\n * TODO: This looks like a feasible way to implement the polling we need\n * https://makeitnew.io/polling-using-rxjs-8347d05e9104\n * */\nexport default class PlantronicsService extends VendorImplementation {\n private static instance: PlantronicsService;\n activePollingInterval = 2000;\n connectedDeviceInterval = 6000;\n disconnectedDeviceInterval = 2000;\n deviceIdRetryInterval = 2000;\n vendorName = 'Plantronics';\n pluginName: string;\n apiHost = 'https://127.0.0.1:32018/Spokes';\n isActive = false;\n disableEventPolling = false;\n config: ImplementationConfig;\n deviceStatusTimer = null;\n isRetry = false;\n _deviceInfo: DeviceInfo;\n callEventsTimerId: any;\n deviceStatusTimerId: any;\n incomingConversationId: string;\n callMappings: {[callIdOrConversationId in string|number]: string|number} = {};\n\n private constructor (config: ImplementationConfig) {\n super(config);\n this.config = config;\n this.pluginName = config.appName || defaultAppName;\n this._deviceInfo = null;\n this.callEventsTimerId = null;\n this.deviceStatusTimerId = null;\n this.incomingConversationId = null;\n }\n\n private _createCallMapping (conversationId: string): number {\n const ID_LENGTH = 8;\n const callId = Math.round(Math.random() * Math.pow(10, ID_LENGTH)); // Generate random number\n\n this.callMappings[conversationId] = callId;\n this.callMappings[callId] = conversationId;\n\n this.logger.info('Created callId mapping for plantronics headset', {\n conversationId,\n plantronicsCallId: callId,\n });\n\n return callId;\n }\n\n clearTimeouts (): void {\n clearTimeout(this.callEventsTimerId);\n clearTimeout(this.deviceStatusTimerId);\n }\n\n deviceLabelMatchesVendor (label: string): boolean {\n // includes vendor name or vendorId (chrome only)\n const lowerLabel = label.toLowerCase();\n return ['plantronics', 'plt', 'poly', '(047f:'].some(searchVal => lowerLabel.includes(searchVal));\n }\n\n static getInstance (config: ImplementationConfig): PlantronicsService {\n if (!PlantronicsService.instance || config.createNew) {\n PlantronicsService.instance = new PlantronicsService(config);\n }\n\n return PlantronicsService.instance;\n }\n\n get deviceName (): string | undefined {\n return this._deviceInfo?.ProductName;\n }\n\n get deviceInfo (): DeviceInfo {\n return this._deviceInfo;\n }\n\n get isDeviceAttached (): boolean {\n return !!this.deviceInfo;\n }\n\n pollForCallEvents (): void {\n if (this.callEventsTimerId) {\n clearTimeout(this.callEventsTimerId);\n this.callEventsTimerId = null;\n }\n\n // if(this.isConnected && this.isActive && !this.disableEventPolling) {\n if(this.isConnected && !this.disableEventPolling) {\n this.logger.debug('**** POLLING FOR CALL EVENTS ****');\n this.getCallEvents();\n }\n this.callEventsTimerId = setTimeout(() => {\n this.pollForCallEvents();\n }, this.activePollingInterval);\n }\n\n pollForDeviceStatus (): void {\n if (this.deviceStatusTimerId) {\n clearTimeout(this.deviceStatusTimerId);\n this.deviceStatusTimerId = null;\n }\n\n if (this.isConnected && !this.isConnecting && !this.disableEventPolling) {\n this.logger.debug('**** POLLING FOR DEVICE STATUS ****');\n this.getDeviceStatus();\n }\n this.deviceStatusTimerId = setTimeout(() => {\n this.pollForDeviceStatus();\n }, this.isDeviceAttached ? this.connectedDeviceInterval : this.disconnectedDeviceInterval\n );\n }\n\n async _makeRequestTask (endpoint: string, isRetry?: boolean): Promise<any> {\n return await this._makeRequest(endpoint, isRetry);\n }\n\n _fetch (url: string): Promise<fetchJsonp.Response> {\n return fetchJsonp(url);\n }\n\n async _makeRequest (endpoint: string, isRetry: boolean | undefined): Promise<any> {\n const plantronicsInstance = PlantronicsService.instance;\n return this._fetch(`${this.apiHost}${endpoint}`)\n .then(response => {\n return response.json();\n })\n .then(response => {\n // we should just eat the response if we are not connected and not trying to connect\n if (!this.isConnected && !this.isConnecting) {\n return;\n }\n\n if (response.ok === false || response.Type_Name === 'Error') {\n if (response.status === 404) {\n if (isRetry) {\n this.isConnected && this.changeConnectionStatus({ isConnected: false, isConnecting: this.isConnecting });\n this.disconnect();\n const error = new Error(\n 'Headset: Failed connection to middleware. Headset features unavailable.'\n );\n (error as any).handled = true;\n this.logger.info(error);\n return Promise.reject(error);\n }\n return this._makeRequestTask(endpoint, true);\n }\n\n if (browserama.isFirefox) {\n this.errorCode = 'browser';\n this.disableRetry = true;\n }\n\n return Promise.reject(response);\n } else {\n if (!plantronicsInstance) {\n return Promise.reject(new Error('Application destroyed.'));\n }\n !this.isConnected && this.changeConnectionStatus({ isConnected: true, isConnecting: this.isConnecting });\n return response;\n }\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n async _checkIsActiveTask (): Promise<void> {\n const calls = await this._getActiveCalls();\n this.isActive = !!calls.length;\n }\n\n async _getActiveCalls (): Promise<any[]> {\n let result;\n try {\n const request = await this._makeRequestTask(`/CallServices/CallManagerState?`);\n result = request;\n } catch (e) {\n this.logger.info('Error making request for active calls', e);\n return [];\n }\n\n if (!Array.isArray(result?.Result?.Calls)) {\n return [];\n }\n return result.Result.Calls.filter(call => call.Source === this.pluginName);\n // return result?.Result?.Calls.filter(call => call.Source === this.pluginName);\n }\n\n async getCallEvents (): Promise<any> {\n let response;\n try {\n response = await this._makeRequestTask(`/CallServices/CallEvents?name=${this.pluginName}`);\n } catch (e) {\n this.logger.info('Error making request for call events', e);\n return;\n }\n if (response.Result) {\n response.Result.forEach((event: PlantronicsCallEvent) => {\n const eventType = PlantronicsCallEventCodes[event.Action];\n\n if (!eventType) {\n return this.logger.info('Unknown call event from headset', { event });\n }\n\n const eventInfo = { name: eventType, event };\n this.logger.debug('headset info', eventInfo);\n this.callCorrespondingFunction(eventInfo);\n });\n }\n }\n\n async getDeviceStatus (): Promise<void> {\n await this._makeRequestTask(`/DeviceServices/Info`)\n .then(response => {\n this._deviceInfo = response.Result;\n })\n .catch(err => {\n const noDevicesError = err.Err && err.Err.Description.includes('no supported devices');\n if (!noDevicesError) {\n this.logger.info('Error making request for device status', err);\n }\n });\n }\n\n callCorrespondingFunction (eventInfo: {name: string, event?: PlantronicsCallEvent }): void {\n const callId = eventInfo.event.CallId.Id;\n const conversationId = this.callMappings[callId] as string;\n\n switch (eventInfo.name) {\n case 'AcceptCall':\n this.deviceAnsweredCall({ ...eventInfo, conversationId });\n break;\n case 'RejectCall':\n this.endCall(conversationId);\n this.deviceRejectedCall({ name: eventInfo.name, conversationId: this.incomingConversationId });\n break;\n case 'TerminateCall':\n this.deviceEndedCall({ ...eventInfo, conversationId });\n break;\n case 'CallEnded':\n delete this.callMappings[callId];\n delete this.callMappings[conversationId];\n this._checkIsActiveTask();\n break;\n case 'Mute':\n this.deviceMuteChanged({ isMuted: true, ...eventInfo, conversationId });\n break;\n case 'Unmute':\n this.deviceMuteChanged({ isMuted: false, ...eventInfo, conversationId });\n break;\n case 'HoldCall':\n this.deviceHoldStatusChanged({ holdRequested: true, ...eventInfo, conversationId });\n break;\n case 'ResumeCall':\n this.deviceHoldStatusChanged({ holdRequested: false, ...eventInfo, conversationId });\n break;\n default:\n this.logger.info('A headset event has occurred', { ...eventInfo, conversationId });\n this.deviceEventLogs({ ...eventInfo, conversationId });\n }\n }\n\n async unregisterPlugin (): Promise<any> {\n try {\n return await this._makeRequestTask(`/SessionManager/UnRegister?name=${this.pluginName}`);\n } catch (response: any) {\n if (response?.Err?.Description === 'Invalid plugin name') {\n return;\n }\n\n this.logger.error(response);\n }\n }\n\n async connect (): Promise<any> {\n !this.isConnecting && this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\n this.pollForDeviceStatus();\n this.pollForCallEvents();\n await this.unregisterPlugin();\n return this._makeRequestTask(`/SessionManager/Register?name=${this.pluginName}`)\n .catch(response => {\n if (response.Err && response.Err.Description === 'Plugin exists') {\n return this.logger.debug('Plugin already exists', response);\n }\n\n return Promise.reject(response);\n })\n .then(() =>\n this._makeRequestTask(`/SessionManager/IsActive?name=${this.pluginName}&active=true`)\n )\n .catch(response => {\n if (response.Err && !response.isError) {\n return this.logger.debug('Is Active', response);\n }\n\n return Promise.reject(response);\n })\n .then(response => {\n if (response?.Result !== true) {\n return Promise.reject(response);\n }\n\n return this._makeRequestTask(`/UserPreference/SetDefaultSoftPhone?name=${this.pluginName}`);\n })\n .then(() => {\n this.getDeviceStatus();\n })\n .then(() => {\n return this._getActiveCalls();\n })\n .then(calls => {\n if (calls.length) {\n this.isActive = true;\n this.logger.warn('Plantronics headset should be in vanilla state but is reporting active call state.');\n } else {\n return this.getCallEvents();\n }\n })\n .catch(err => {\n if (!err?.handled) {\n return Promise.reject(err);\n }\n return this.logger.error('Unable to properly connect headset');\n })\n .finally(() => {\n this.isConnecting && this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: false });\n });\n }\n\n async disconnect (clearReason?: UpdateReasons): Promise<any> {\n if (!this.isConnected) {\n return;\n }\n if (clearReason !== 'alternativeClient') {\n await this.unregisterPlugin();\n }\n this.clearTimeouts();\n this._deviceInfo = null;\n this.isConnected && this.changeConnectionStatus({ isConnected: false, isConnecting: this.isConnecting });\n this.isActive = false;\n }\n\n incomingCall (callInfo: CallInfo): Promise<any> {\n this.logger.info('Inside incomingCall of selected implementation (Plantronics/Poly)');\n const { conversationId, contactName } = callInfo;\n if (!conversationId) {\n throw new Error('Must provide conversationId');\n }\n\n // this is because plantronics only accepts numeric callIds, so we have to make one up\n const callId = this._createCallMapping(conversationId);\n\n this.incomingConversationId = conversationId;\n let params = `?name=${this.pluginName}&tones=Unknown&route=ToHeadset`;\n\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n params += `&callID={${encodeURI(halfEncodedCallIdString)}}`;\n\n if (contactName) {\n const halfEncodedContactString = `\"Name\":\"${contactName}\"`;\n params += `&contact={${encodeURI(halfEncodedContactString)}}`;\n }\n\n this.logger.info('params of endpoint', params);\n\n this.isActive = true;\n return this._makeRequestTask(`/CallServices/IncomingCall${params}`);\n }\n\n async outgoingCall ({ conversationId, contactName }: CallInfo): Promise<any> {\n if (!conversationId) {\n throw new Error('Must provide conversationId');\n }\n\n // this is because plantronics only accepts numeric callIds, so we have to make one up\n const callId = this._createCallMapping(conversationId);\n\n let params = `?name=${this.pluginName}&tones=Unknown&route=ToHeadset`;\n\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n params += `&callID={${encodeURI(halfEncodedCallIdString)}}`;\n\n if (contactName) {\n const halfEncodedContactString = `\"Name\":\"${contactName}\"`;\n params += `&contact={${encodeURI(halfEncodedContactString)}}`;\n }\n\n this.isActive = true;\n await this._makeRequestTask(`/CallServices/OutgoingCall${params}`);\n }\n\n async answerCall (conversationId: string, autoAnswer?: boolean): Promise<any> {\n if (autoAnswer) {\n await this.incomingCall({ conversationId });\n }\n const callId = this.callMappings[conversationId];\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n const params = `?name=${this.pluginName}&callID={${encodeURI(halfEncodedCallIdString)}}`;\n\n this.isActive = true;\n this.incomingConversationId = null;\n return this._makeRequestTask(`/CallServices/AnswerCall${params}`);\n }\n\n rejectCall (conversationId: string): Promise<any> {\n this.incomingConversationId = null;\n return this.endCall(conversationId);\n }\n\n async endCall (conversationId: string): Promise<any> {\n let params = `?name=${this.pluginName}`;\n const callId = this.callMappings[conversationId];\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n params += `&callID={${encodeURI(halfEncodedCallIdString)}}`;\n\n const response = await this._makeRequestTask(`/CallServices/TerminateCall${params}`);\n await this.getCallEvents();\n this._checkIsActiveTask();\n return response;\n }\n\n async endAllCalls (): Promise<void> {\n const calls = await this._getActiveCalls();\n calls.forEach(call => this.endCall(this.callMappings[call.CallId] as string));\n }\n\n async setMute (value: boolean): Promise<any> {\n const response = await this._makeRequestTask(\n `/CallServices/MuteCall?name=${this.pluginName}&muted=${value}`\n );\n return response;\n }\n\n async setHold (conversationId: string, value: boolean): Promise<any> {\n const callId = this.callMappings[conversationId];\n const halfEncodedCallIdString = `\"Id\":\"${callId}\"`;\n const params = `?name=${this.pluginName}&callID={${encodeURI(halfEncodedCallIdString)}}`;\n const response = await this._makeRequestTask(\n `/CallServices/${value ? 'HoldCall' : 'ResumeCall'}${params}`\n );\n\n return response;\n }\n}","export interface SennheiserPayload {\n CallID?: string;\n DNDOption?: 'Yes' | 'No';\n Event?: SennheiserEvents;\n EventType?: SennheiserEventTypes;\n HeadsetName?: string;\n HeadsetType?: string;\n MuteSupport?: 'Yes' | 'No';\n OffHookSupport?: 'Yes' | 'No';\n RedialSupport?: 'Yes' | 'No';\n ReturnCode?: number;\n SPName?: string;\n SPIconImage?: string;\n}\n\nexport enum SennheiserEvents {\n SocketConnected = 'SocketConnected',\n EstablishConnection = 'EstablishConnection',\n SPLogin = 'SPLoggedIn',\n SPLogout = 'SPLoggedOut',\n TerminateConnection = 'TerminateConnection',\n IncomingCall = 'IncomingCall',\n IncomingCallRejected = 'InCallRejected',\n IncomingCallAccepted = 'InCallAccepted',\n OutgoingCall = 'OutgoingCall',\n CallEnded = 'CallEnded',\n SystemInformation = 'SystemInformation',\n HeadsetConnected = 'HeadsetConnected',\n HeadsetDisconnected = 'HeadsetDisconnected',\n Hold = 'CallHold',\n Resume = 'HeldCallResumed',\n MuteFromApp = 'MuteHeadset',\n UnmuteFromApp = 'UnmuteHeadset',\n MuteFromHeadset = 'MuteSoftphone',\n UnmuteFromHeadset = 'UnmuteSoftphone',\n}\n\nexport enum SennheiserEventTypes {\n Request = 'Request', // outgoing actions\n Notification = 'Notification', // typically actions from headset\n Ack = 'Acknowledgement',\n}\n","/* istanbul ignore file */\n\nimport browserama from 'browserama';\n\nexport function isFirefox (): boolean {\n return browserama.isFireFox;\n}\n\n/**\n *\n * @param promise\n * @param timeoutInMillis\n *\n * Returns a promise that resolves if the passed in promise resolves before the timeout\n * time elapses. If the timeout elapses, then the returned promise rejects with a\n * message that the timeout time was exceeded.\n */\nexport function timedPromise (\n promise: Promise<any>,\n timeoutInMillis: number,\n timeoutError?: Error\n): Promise<any> {\n let timeoutId;\n const timeoutPromise: Promise<any> = new Promise((resolve, reject) => {\n timeoutId = setTimeout(() => {\n clearTimeout(timeoutId);\n reject(timeoutError ? timeoutError : 'Timed out in ' + timeoutInMillis + 'ms');\n }, timeoutInMillis);\n }).then(result => {\n clearTimeout(timeoutId);\n return result;\n });\n\n return Promise.race([promise, timeoutPromise]);\n}\n\nexport function debounce (func: () => void, delay: number): any {\n let timer = null;\n\n return function () {\n clearTimeout(timer);\n\n timer = setTimeout(function () {\n func();\n }, delay);\n };\n}\n\nexport function isCefHosted (): boolean {\n return !!(window as any)._HostedContextFunctions;\n}\n\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nexport function requestCefPromise (cmd: any): Promise<any> {\n/* eslint-enable */\n return new Promise((resolve, reject) => {\n try {\n const sCmd = JSON.stringify(cmd);\n (window as any).cefQuery({\n request: sCmd,\n persistent: false,\n onSuccess: response => {\n try {\n const obj = JSON.parse(response);\n resolve(obj);\n } catch (e) {\n resolve({});\n }\n },\n onFailure: response => {\n reject(response);\n }\n });\n } catch (e) {\n console.error('Error requesting desktop promise', e);\n reject(e);\n }\n });\n}\n","import { VendorImplementation, ImplementationConfig } from '../vendor-implementation';\nimport DeviceInfo from '../../../types/device-info';\nimport { CallInfo } from '../../..';\nimport * as utils from '../../../utils';\nimport { SennheiserPayload, SennheiserEvents, SennheiserEventTypes } from './types';\n\nconst websocketUri = 'wss://127.0.0.1:41088';\n\nexport default class SennheiserService extends VendorImplementation {\n private static instance: SennheiserService;\n\n connectTimeout = 5000;\n\n vendorName = 'Sennheiser';\n isActive = false;\n devices = null;\n activeDeviceId = null;\n websocketConnected = false;\n\n websocket = null;\n deviceInfo: DeviceInfo = null;\n ignoreAcknowledgement = false;\n\n static getInstance (config: ImplementationConfig): SennheiserService {\n if (!SennheiserService.instance || config.createNew) {\n SennheiserService.instance = new SennheiserService(config);\n }\n\n return SennheiserService.instance;\n }\n\n deviceLabelMatchesVendor (label: string): boolean {\n const lowerLabel = label.toLowerCase();\n return ['senn', 'epos'].some(searchVal => lowerLabel.includes(searchVal));\n }\n\n get deviceName (): string {\n return this.deviceInfo && this.deviceInfo.ProductName;\n }\n\n get isDeviceAttached (): boolean {\n return !!this.deviceInfo;\n }\n\n resetHeadsetStateForCall (conversationId: string): Promise<any> {\n this.ignoreAcknowledgement = true;\n return this.endCall(conversationId);\n }\n\n _handleError (payload: SennheiserPayload): void {\n this.logger.error('Non-zero return code from sennheiser', payload);\n }\n _handleAck (payload: SennheiserPayload): void {\n this.logger.debug(`Received Ack for ${payload.Event}`);\n }\n\n _sendMessage (payload: SennheiserPayload): void {\n this.logger.debug('sending sennheiser message', payload);\n this.websocket.send(JSON.stringify(payload));\n }\n\n _registerSoftphone (): void {\n const payload: SennheiserPayload = {\n Event: SennheiserEvents.EstablishConnection,\n EventType: SennheiserEventTypes.Request,\n SPName: 'Genesys Cloud Softphone',\n SPIconImage: 'SPImage.ico',\n RedialSupport: 'No',\n OffHookSupport: 'No',\n MuteSupport: 'Yes',\n DNDOption: 'No',\n };\n\n this._sendMessage(payload);\n }\n\n connect (): Promise<void> {\n this.ignoreAcknowledgement = false;\n !this.isConnecting && this.changeConnectionStatus({ isConnected: false, isConnecting: true });\n\n const socket = new WebSocket(websocketUri);\n socket.onopen = this.webSocketOnOpen.bind(this);\n socket.onclose = this.webSocketOnClose.bind(this);\n socket.onmessage = this._handleMessage.bind(this);\n this.websocket = socket;\n\n return Promise.resolve();\n }\n\n webSocketOnOpen = (): void => {\n this.websocketConnected = true;\n this.logger.info('websocket open the sennheiser software');\n };\n\n webSocketOnClose (err: { code: number, reason: string, wasClean: boolean }): void {\n this.websocketConnected = false;\n if (!err.wasClean) {\n this.logger.error(err);\n }\n if (!this.isConnected) {\n this.logger.error(\n new Error('Failed to connect to sennheiser software. Make sure it is installed')\n );\n if (utils.isFirefox()) {\n this.errorCode = 'browser';\n this.disableRetry = true;\n }\n }\n\n if (this.isConnected || this.isConnecting) {\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\n }\n }\n\n disconnect (): Promise<void> {\n if (!this.isConnected) {\n return Promise.resolve();\n }\n\n this._sendMessage({\n Event: SennheiserEvents.TerminateConnection,\n EventType: SennheiserEventTypes.Request,\n });\n\n return Promise.resolve();\n }\n\n setMute (value: boolean): Promise<void> {\n this._sendMessage({\n Event: value ? SennheiserEvents.MuteFromApp : SennheiserEvents.UnmuteFromApp,\n EventType: SennheiserEventTypes.Request,\n });\n return Promise.resolve();\n }\n\n setHold (conversationId: string, value: boolean): Promise<void> {\n this._sendMessage({\n Event: value ? SennheiserEvents.Hold : SennheiserEvents.Resume,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n\n return Promise.resolve();\n }\n\n incomingCall (callInfo: CallInfo): Promise<void> {\n this.ignoreAcknowledgement = false;\n this._sendMessage({\n Event: SennheiserEvents.IncomingCall,\n EventType: SennheiserEventTypes.Request,\n CallID: callInfo.conversationId,\n });\n\n return Promise.resolve();\n }\n\n answerCall (conversationId: string, autoAnswer?: boolean): Promise<void> {\n if (autoAnswer) {\n this.incomingCall({ conversationId });\n }\n\n this._sendMessage({\n Event: SennheiserEvents.IncomingCallAccepted,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n return Promise.resolve();\n }\n\n rejectCall (conversationId: string): Promise<void> {\n this._sendMessage({\n Event: SennheiserEvents.IncomingCallRejected,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n return Promise.resolve();\n }\n\n outgoingCall (callInfo: CallInfo): Promise<void> {\n this.ignoreAcknowledgement = false;\n const { conversationId } = callInfo;\n\n this._sendMessage({\n Event: SennheiserEvents.OutgoingCall,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n\n return Promise.resolve();\n }\n\n endCall (conversationId: string): Promise<void> {\n this._sendMessage({\n Event: SennheiserEvents.CallEnded,\n EventType: SennheiserEventTypes.Request,\n CallID: conversationId,\n });\n\n return Promise.resolve();\n }\n\n endAllCalls (): Promise<void> {\n this.logger.warn('There is no functionality defined for SennheiserService.endAllCalls()');\n return Promise.resolve();\n }\n\n _handleMessage (message: { data: string }): void {\n let payload: SennheiserPayload;\n try {\n payload = JSON.parse(message.data);\n } catch (err) {\n this.logger.error(err);\n this.logger.error('Failed to parse sennheiser payload', { message });\n return;\n }\n this.logger.debug('incoming sennheiser message', payload);\n\n if (payload.ReturnCode) {\n this._handleError(payload);\n return;\n }\n\n const conversationId = payload.CallID;\n\n if (!this.ignoreAcknowledgement) {\n switch (payload.Event) {\n case SennheiserEvents.SocketConnected:\n this._registerSoftphone();\n break;\n case SennheiserEvents.EstablishConnection:\n this._sendMessage({\n Event: SennheiserEvents.SPLogin,\n EventType: SennheiserEventTypes.Request,\n });\n break;\n case SennheiserEvents.SPLogin:\n if (!this.isConnected || this.isConnecting) {\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\n }\n \n this._sendMessage({\n Event: SennheiserEvents.SystemInformation,\n EventType: SennheiserEventTypes.Request,\n });\n break;\n case SennheiserEvents.HeadsetConnected:\n if (payload.HeadsetName) {\n this.deviceInfo = {\n deviceName: payload.HeadsetName,\n headsetType: payload.HeadsetType,\n };\n }\n break;\n case SennheiserEvents.HeadsetDisconnected:\n if (payload.HeadsetName === this.deviceName) {\n this.deviceInfo = null;\n }\n\n break;\n case SennheiserEvents.IncomingCallAccepted:\n if (payload.EventType === SennheiserEventTypes.Notification) {\n this.deviceAnsweredCall({ name: payload.Event, conversationId });\n }\n\n break;\n case SennheiserEvents.Hold:\n if (payload.EventType === SennheiserEventTypes.Ack) {\n this._handleAck(payload);\n break;\n }\n this.deviceHoldStatusChanged({ holdRequested: true, name: payload.Event, conversationId });\n break;\n case SennheiserEvents.Resume:\n if (payload.EventType === SennheiserEventTypes.Ack) {\n this._handleAck(payload);\n break;\n }\n this.deviceHoldStatusChanged({ holdRequested: false, name: payload.Event, conversationId });\n break;\n case SennheiserEvents.MuteFromHeadset:\n this.deviceMuteChanged({ isMuted: true, name: payload.Event });\n break;\n case SennheiserEvents.UnmuteFromHeadset:\n this.deviceMuteChanged({ isMuted: false, name: payload.Event });\n break;\n case SennheiserEvents.CallEnded:\n if (payload.EventType === SennheiserEventTypes.Notification) {\n this.deviceEndedCall({ name: payload.Event, conversationId });\n }\n break;\n case SennheiserEvents.IncomingCallRejected:\n this.deviceRejectedCall({ name: payload.Event, conversationId });\n break;\n case SennheiserEvents.TerminateConnection:\n if (this.websocket.readyState === 1) {\n this.websocket.close();\n }\n this.websocket = null;\n break;\n default:\n if (payload.EventType === SennheiserEventTypes.Ack) {\n // this is mostly for testing purposes so we can confirm reciept of events we don't normally care about\n this._handleAck(payload);\n }\n break;\n }\n }\n }\n}","import { createErrorClass } from './createErrorClass';\nexport var EmptyError = createErrorClass(function (_super) { return function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n}; });\n//# sourceMappingURL=EmptyError.js.map","import { EmptyError } from './util/EmptyError';\nimport { SafeSubscriber } from './Subscriber';\nexport function firstValueFrom(source, config) {\n var hasConfig = typeof config === 'object';\n return new Promise(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n resolve(value);\n subscriber.unsubscribe();\n },\n error: reject,\n complete: function () {\n if (hasConfig) {\n resolve(config.defaultValue);\n }\n else {\n reject(new EmptyError());\n }\n },\n });\n source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=firstValueFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n _this._scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { isValidDate } from '../util/isDate';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createErrorClass } from '../util/createErrorClass';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport var TimeoutError = createErrorClass(function (_super) {\n return function TimeoutErrorImpl(info) {\n if (info === void 0) { info = null; }\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n };\n});\nexport function timeout(config, schedulerArg) {\n var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate(function (source, subscriber) {\n var originalSourceSubscription;\n var timerSubscription;\n var lastValue = null;\n var seen = 0;\n var startTimer = function (delay) {\n timerSubscription = executeSchedule(subscriber, scheduler, function () {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta: meta,\n lastValue: lastValue,\n seen: seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, function () {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n//# sourceMappingURL=timeout.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=defaultIfEmpty.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=filter.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () { return (hasValue ? subscriber.complete() : subscriber.error(errorFactory())); }));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); }));\n };\n}\n//# sourceMappingURL=first.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","export enum JabraNativeCommands {\n Ring = 'ringer',\n Offhook = 'offhook',\n Mute = 'mute',\n Hold = 'hold',\n}\n\nexport interface JabraNativeHeadsetState {\n ringing: boolean;\n offHook: boolean;\n}\n\nexport const HeadsetEvent = 'JabraEvent';\nexport const DeviceEvent = 'JabraDeviceAttached';\n\ntype HeadsetEvent = typeof HeadsetEvent;\ntype DeviceEvent = typeof DeviceEvent;\n\nexport interface JabraHeadsetEvent {\n msg: HeadsetEvent;\n eventName: JabraNativeEventNames;\n value?: any;\n hidInput: string;\n}\n\nexport interface JabraDeviceEvent {\n msg: DeviceEvent;\n attached: boolean;\n deviceId: number;\n deviceName: string;\n}\n\nexport enum JabraNativeEventNames {\n OffHook = 'OffHook',\n Mute = 'Mute',\n Hold = 'Flash',\n RejectCall = 'RejectCall',\n}\n","import { VendorImplementation, ImplementationConfig } from '../vendor-implementation';\nimport DeviceInfo from '../../../types/device-info';\nimport {\n IApi,\n CallControlFactory,\n SignalType,\n ICallControl,\n ErrorType,\n init,\n RequestedBrowserTransport,\n webHidPairing,\n IDevice,\n} from '@gnaudio/jabra-js';\nimport { CallInfo } from '../../..';\nimport { Subscription, firstValueFrom, Observable, TimeoutError, EmptyError } from 'rxjs';\nimport { defaultIfEmpty, filter, first, map, timeout } from 'rxjs/operators';\nimport { isCefHosted } from '../../../utils';\n\nexport default class JabraService extends VendorImplementation {\n private static instance: JabraService;\n private headsetEventSubscription: Subscription;\n static connectTimeout = 5000;\n\n isActive = false;\n _deviceInfo: DeviceInfo;\n isMuted = false;\n isHeld = false;\n version: string = null;\n _connectDeferred: any; // { resolve: Function, reject: Function }\n jabraSdk: IApi;\n callControlFactory: CallControlFactory;\n callControl: ICallControl;\n ongoingCalls = 0;\n callLock = false;\n pendingConversationId: string;\n pendingConversationIsOutbound: boolean;\n activeConversationId: string;\n\n private constructor (config: ImplementationConfig) {\n super(config);\n this.vendorName = 'Jabra';\n }\n\n isSupported (): boolean {\n return (window.navigator as any).hid && !isCefHosted();\n }\n\n deviceLabelMatchesVendor (label: string): boolean {\n const lowerLabel = label.toLowerCase();\n if (['jabra'].some((searchVal) => lowerLabel.includes(searchVal))) {\n return true;\n }\n return false;\n }\n\n static getInstance (config: ImplementationConfig): JabraService {\n if (!JabraService.instance || config.createNew) {\n JabraService.instance = new JabraService(config);\n }\n\n return JabraService.instance;\n }\n\n get deviceInfo (): DeviceInfo {\n return this._deviceInfo;\n }\n\n get deviceName (): string {\n return this.deviceInfo?.deviceName;\n }\n\n get isDeviceAttached (): boolean {\n return !!this.deviceInfo;\n }\n\n resetState (): void {\n this.setHold(null, false);\n this.setMute(false);\n }\n\n _processEvents (callControl: ICallControl): void {\n this.headsetEventSubscription = callControl.deviceSignals.subscribe(async (signal) => {\n if (!this.callLock) {\n this.logger.debug(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n return;\n }\n\n switch (signal.type) {\n case SignalType.HOOK_SWITCH:\n // do nothing when the end call button is pressed and we have an incoming call while we have an active call\n if (this.activeConversationId && this.pendingConversationId) {\n this.logger.info('ignoring hookswitch event because there is an active and incoming call');\n break;\n }\n\n if (signal.value) {\n callControl.offHook(true);\n callControl.ring(false);\n this.activeConversationId = this.pendingConversationId;\n this.pendingConversationId = null;\n if (!this.pendingConversationIsOutbound) {\n this.deviceAnsweredCall({\n name: 'CallOffHook',\n code: signal.type,\n conversationId: this.activeConversationId,\n });\n }\n } else {\n callControl.mute(false);\n callControl.hold(false);\n callControl.offHook(false);\n this.deviceEndedCall({\n name: 'CallOnHook',\n code: signal.type,\n conversationId: this.activeConversationId,\n });\n try {\n callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.activeConversationId = null;\n this.callLock = false;\n }\n }\n break;\n case SignalType.FLASH:\n case SignalType.ALT_HOLD:\n this.isHeld = !this.isHeld;\n callControl.hold(this.isHeld);\n this.deviceHoldStatusChanged({\n holdRequested: this.isHeld,\n name: this.isHeld ? 'OnHold' : 'ResumeCall',\n code: signal.type,\n conversationId: this.activeConversationId,\n });\n break;\n case SignalType.PHONE_MUTE:\n this.isMuted = !this.isMuted;\n callControl.mute(this.isMuted);\n this.deviceMuteChanged({\n isMuted: this.isMuted,\n name: this.isMuted ? 'CallMuted' : 'CallUnmuted',\n code: signal.type,\n conversationId: this.activeConversationId,\n });\n break;\n case SignalType.REJECT_CALL:\n callControl.ring(false);\n this.deviceRejectedCall({\n name: SignalType[signal.type],\n conversationId: this.pendingConversationId,\n });\n this.pendingConversationId = null;\n try {\n // we only want to release call controls if there isn't another call active\n if (!this.activeConversationId) {\n callControl.releaseCallLock();\n this.callLock = false;\n }\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n }\n }\n });\n }\n\n async setMute (value: boolean): Promise<void> {\n if (!this.callLock) {\n return;\n }\n this.isMuted = value;\n this.callControl.mute(value);\n }\n\n async setHold (conversationId: string, value: boolean): Promise<void> {\n if (!this.callLock) {\n return;\n }\n this.isHeld = value;\n this.callControl.hold(value);\n }\n\n async incomingCall (callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n this.pendingConversationIsOutbound = false;\n try {\n this.callLock = await this.callControl.takeCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n this.callLock = true;\n } else {\n this.logger.error(type, message);\n }\n }\n\n if (this.callLock) {\n this.callControl.ring(true);\n }\n }\n\n async answerCall (conversationId: string, autoAnswer?: boolean): Promise<void> {\n if (autoAnswer) {\n this.pendingConversationId = conversationId;\n try {\n this.callLock = await this.callControl.takeCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n this.callLock = true;\n } else {\n this.logger.error(type, message);\n }\n }\n }\n\n if (!this.callLock) {\n return;\n }\n\n this.callControl.ring(false);\n this.callControl.offHook(true);\n }\n\n async rejectCall (): Promise<void> {\n if (!this.callLock) {\n return this.logger.info(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n }\n this.callControl.ring(false);\n this.pendingConversationId = null;\n if (!this.activeConversationId) {\n try {\n this.resetState();\n this.callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.pendingConversationId = null;\n this.callLock = false;\n }\n }\n }\n\n async outgoingCall (callInfo: CallInfo): Promise<void> {\n try {\n this.callLock = await this.callControl.takeCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n this.callLock = true;\n } else {\n this.logger.error(type, message);\n }\n }\n\n if (this.callLock) {\n this.pendingConversationId = callInfo.conversationId;\n this.pendingConversationIsOutbound = true;\n this.callControl.offHook(true);\n }\n }\n\n async endCall (conversationId: string, hasOtherActiveCalls: boolean): Promise<void> {\n if (hasOtherActiveCalls) {\n return;\n }\n\n if (conversationId === this.activeConversationId) {\n this.activeConversationId = null;\n }\n\n try {\n if (!this.callLock) {\n return this.logger.info(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n }\n this.callControl.offHook(false);\n this.resetState();\n this.callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.callLock = false;\n }\n }\n\n async endAllCalls (): Promise<void> {\n try {\n if (!this.callLock) {\n return this.logger.info(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n }\n this.activeConversationId = null;\n this.callControl.offHook(false);\n this.resetState();\n this.callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.callLock = false;\n }\n }\n\n isDeviceInList (device: IDevice, deviceLabel: string): boolean {\n return deviceLabel.toLowerCase().includes(device?.name?.toLowerCase());\n }\n\n async connect (originalDeviceLabel: string): Promise<void> {\n if (this.isConnecting) {\n return;\n }\n\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\n if (!this.jabraSdk) {\n this.jabraSdk = await this.initializeJabraSdk();\n this.callControlFactory = this.createCallControlFactory(this.jabraSdk);\n }\n\n const deviceLabel = originalDeviceLabel.toLocaleLowerCase();\n\n this._deviceInfo = null;\n\n let selectedDevice = await this.getPreviouslyConnectedDevice(deviceLabel);\n if (!selectedDevice) {\n try {\n selectedDevice = await this.getDeviceFromWebhid(deviceLabel);\n } catch (e) {\n this.isConnecting &&\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: false });\n return;\n }\n }\n\n this.callControl = await this.callControlFactory.createCallControl(selectedDevice);\n await this.resetHeadsetState();\n this._processEvents(this.callControl);\n this._deviceInfo = {\n ProductName: selectedDevice.name,\n deviceName: selectedDevice.name,\n attached: true,\n deviceId: selectedDevice.id.toString(),\n };\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\n }\n\n async getPreviouslyConnectedDevice (deviceLabel: string): Promise<IDevice> {\n // we want to wait for up to 2 events or timeout after 2 seconds\n const waitForDevice: Observable<IDevice> = this.jabraSdk.deviceList.pipe(\n defaultIfEmpty(null),\n first((devices: IDevice[]) => !!devices.length),\n map((devices: IDevice[]) =>\n devices.find((device) => this.isDeviceInList(device, deviceLabel))\n ),\n filter((device) => !!device),\n timeout(3000)\n );\n\n return firstValueFrom(waitForDevice).catch((err) => {\n if (err instanceof TimeoutError || err instanceof EmptyError) {\n return null;\n }\n\n return Promise.reject(err);\n });\n }\n\n async getDeviceFromWebhid (deviceLabel: string): Promise<IDevice> {\n this.requestWebHidPermissions(webHidPairing);\n\n return firstValueFrom(\n this.jabraSdk.deviceList.pipe(\n map((devices: IDevice[]) =>\n devices.find((device) => this.isDeviceInList(device, deviceLabel))\n ),\n filter((device) => !!device),\n first(),\n timeout(30000)\n )\n ).catch((err) => {\n if (err instanceof TimeoutError) {\n err = new Error('The selected device was not granted WebHID permissions');\n }\n this.logger.error(err);\n return Promise.reject(err);\n });\n }\n\n /* istanbul ignore next */\n async initializeJabraSdk (): Promise<IApi> {\n return init({\n appId: 'softphone-vendor-headsets',\n appName: 'Softphone Headset Library',\n transport: RequestedBrowserTransport.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK,\n });\n }\n\n /* istanbul ignore next */\n createCallControlFactory (sdk: IApi): CallControlFactory {\n return new CallControlFactory(sdk);\n }\n\n checkForCallLockError (message: unknown, type: unknown): boolean {\n return (\n (type as ErrorType) === ErrorType.SDK_USAGE_ERROR && (message as string).includes('call lock')\n );\n }\n\n async resetHeadsetState (): Promise<void> {\n if (!this.callControl) {\n return;\n }\n\n try {\n await this.callControl.takeCallLock();\n this.callControl.hold(false);\n this.callControl.mute(false);\n this.callControl.offHook(false);\n this.callControl.releaseCallLock();\n } catch (e) {\n this.logger.warn('Failed to takeCallLock in order to resetHeadsetState. Ignoring reset.');\n } \n }\n\n async disconnect (): Promise<void> {\n try {\n if (!this.callLock) {\n return this.logger.info(\n 'Currently not in possession of the Call Lock; Cannot react to Device Actions'\n );\n }\n this.callControl.releaseCallLock();\n } catch ({ message, type }) {\n if (this.checkForCallLockError(message, type)) {\n this.logger.info(message);\n } else {\n this.logger.error(type, message);\n }\n } finally {\n this.resetHeadsetState();\n this.callLock = false;\n if (this.activeConversationId) {\n this.activeConversationId = null;\n }\n this.headsetEventSubscription && this.headsetEventSubscription.unsubscribe();\n (this.isConnected || this.isConnecting) &&\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\n }\n }\n}","import { debounce, isCefHosted, requestCefPromise, timedPromise } from '../../../../utils';\nimport { VendorImplementation, ImplementationConfig } from '../../vendor-implementation';\nimport DeviceInfo from '../../../../types/device-info';\nimport { CallInfo } from '../../../../types/call-info';\nimport { JabraNativeHeadsetState, JabraHeadsetEvent, HeadsetEvent, JabraDeviceEvent, DeviceEvent, JabraNativeCommands, JabraNativeEventNames } from './types';\n\nconst connectTimeout = 5000;\nconst offHookThrottleTime = 500;\n\nexport default class JabraNativeService extends VendorImplementation {\n private static instance: JabraNativeService;\n\n isActive = false;\n devices: Map<string, DeviceInfo> = null;\n activeDeviceId: string = null;\n headsetState: JabraNativeHeadsetState = null;\n ignoreNextOffhookEvent = false;\n cefSupportsJabra = true;\n pendingConversationId: string;\n activeConversationId: string;\n pendingConversationIsOutbound: boolean;\n\n private constructor(config: ImplementationConfig) {\n super(config);\n this.vendorName = 'Jabra';\n this.headsetState = { ringing: false, offHook: false };\n this.devices = new Map<string, DeviceInfo>();\n\n if (isCefHosted()) {\n if (this.isHostedContextInitialized()) {\n this.setupNativeHandlers();\n } else {\n this.waitForHostedContext();\n }\n }\n }\n\n private isHostedContextInitialized (): boolean {\n return (window as any).Orgspan?.serviceFor('application').get('hostedContext').isHosted();\n }\n\n private waitForHostedContext () {\n setTimeout(() => {\n if (this.isHostedContextInitialized()) {\n this.setupNativeHandlers()\n } else {\n this.waitForHostedContext();\n }\n }, 500);\n }\n\n private setupNativeHandlers () {\n const hostedContext = (window as any).Orgspan?.serviceFor('application').get('hostedContext');\n this.cefSupportsJabra = hostedContext.supportsJabra();\n hostedContext.on('JabraEvent', this.handleJabraEvent.bind(this));\n hostedContext.on('JabraDeviceAttached', this.handleJabraDeviceAttached.bind(this));\n }\n\n static getInstance(config: ImplementationConfig): JabraNativeService {\n if (!JabraNativeService.instance || config.createNew) {\n JabraNativeService.instance = new JabraNativeService(config);\n }\n\n return JabraNativeService.instance;\n }\n\n get deviceInfo(): DeviceInfo {\n if (\n this.activeDeviceId === null ||\n this.devices === null ||\n (this.devices && !this.devices.size)\n ) {\n return null;\n }\n\n return this.devices.get(this.activeDeviceId);\n }\n\n get deviceName(): string {\n return this.deviceInfo && this.deviceInfo.deviceName;\n }\n\n get isDeviceAttached(): boolean {\n return !!this.deviceInfo;\n }\n\n private isHeadsetEvent (event: any): event is JabraHeadsetEvent {\n return event.msg === HeadsetEvent;\n }\n\n private isDeviceEvent (event: any): event is JabraDeviceEvent {\n return event.msg === DeviceEvent;\n }\n\n private handleCefEvent(event: any): void {\n if (!this.isConnected) {\n return;\n }\n\n if (this.isDeviceEvent(event)) {\n this.handleJabraDeviceAttached(event)\n } else if (this.isHeadsetEvent(event)) {\n this.handleJabraEvent(event);\n }\n }\n\n private handleJabraDeviceAttached(event: JabraDeviceEvent): void {\n this.logger.debug('handling jabra attach/detach event', event);\n this.updateDevices();\n }\n\n private handleJabraEvent(event: JabraHeadsetEvent): void {\n this.logger.debug(`Jabra event received`, event);\n this._processEvent(event.eventName, event.value);\n }\n\n private _handleOffhookEvent(isOffhook: boolean): void {\n // if is incoming\n if (isOffhook) {\n this.activeConversationId = this.pendingConversationId;\n this.pendingConversationId = null;\n if (this.headsetState.ringing) {\n\n if (!this.pendingConversationIsOutbound) {\n this.deviceAnsweredCall({name: 'CallOffHook', conversationId: this.activeConversationId});\n }\n\n // jabra requires you to echo the event back in acknowledgement\n this._sendCmd(JabraNativeCommands.Offhook, isOffhook);\n this._setRinging(false);\n }\n\n return;\n }\n\n if (this.activeConversationId) {\n this._sendCmd(JabraNativeCommands.Offhook, isOffhook);\n this.deviceEndedCall({name: 'CallOnHook', conversationId: this.activeConversationId});\n }\n this._getHeadsetIntoVanillaState();\n this.activeConversationId = null;\n }\n\n private _handleMuteEvent(isMuted: boolean): void {\n // jabra requires you to echo the event back in acknowledgement\n this._sendCmd(JabraNativeCommands.Mute, isMuted);\n this.isMuted = isMuted;\n this.deviceMuteChanged({\n isMuted: isMuted,\n name: isMuted ? 'CallMuted' : 'CallUnmuted',\n conversationId: this.activeConversationId\n });\n }\n\n private _handleHoldEvent(isHeld: boolean): void {\n // jabra requires you to echo the event back in acknowledgement\n this._sendCmd(JabraNativeCommands.Hold, !!isHeld);\n this.deviceHoldStatusChanged({\n holdRequested: !!isHeld,\n name: !!isHeld ? 'OnHold' : 'ResumeCall',\n conversationId: this.activeConversationId\n });\n }\n\n private _getHeadsetIntoVanillaState(): void {\n this.setHold(null, false);\n this.setMute(false);\n }\n\n private _sendCmd(cmd: JabraNativeCommands, value: boolean): void {\n const deviceId = this.activeDeviceId;\n this.logger.debug('Sending command to headset', { deviceId, cmd, value });\n\n (window as any)._HostedContextFunctions.sendEventToDesktop(\n 'jabraEvent',\n {\n deviceID: deviceId,\n event: cmd,\n value\n }\n );\n }\n\n private _setRinging(value: boolean): void {\n this._sendCmd(JabraNativeCommands.Ring, value);\n this.headsetState.ringing = value;\n }\n\n isSupported (): boolean {\n return isCefHosted() && this.cefSupportsJabra;\n }\n\n deviceLabelMatchesVendor(label: string): boolean {\n const lowerLabel = label.toLowerCase();\n return ['jabra'].some(searchVal => lowerLabel.includes(searchVal));\n }\n\n async setMute(value: boolean): Promise<void> {\n this._sendCmd(JabraNativeCommands.Mute, value);\n }\n\n async setHold(conversationId: string, value: boolean): Promise<void> {\n this._sendCmd(JabraNativeCommands.Hold, value);\n }\n\n async incomingCall(callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n this.pendingConversationIsOutbound = false;\n this._setRinging(true);\n }\n\n async answerCall(conversationId: string, autoAnswer?: boolean): Promise<void> {\n if (autoAnswer) {\n this.pendingConversationId = conversationId;\n }\n // HACK: for some reason the headset echos an offhook event even though it was the app that answered the call rather than the headset\n this.ignoreNextOffhookEvent = true;\n this._sendCmd(JabraNativeCommands.Offhook, true);\n }\n\n async rejectCall(): Promise<void> {\n this._setRinging(false);\n this.pendingConversationId = null;\n }\n\n async outgoingCall(callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n this.pendingConversationIsOutbound = true;\n this._sendCmd(JabraNativeCommands.Offhook, true);\n }\n\n async endCall(conversationId: string, hasOtherActiveCalls: boolean): Promise<void> {\n this._setRinging(false);\n\n if (!hasOtherActiveCalls) {\n this._sendCmd(JabraNativeCommands.Offhook, false);\n }\n this.activeConversationId = null;\n }\n\n async endAllCalls(): Promise<void> {\n this._setRinging(false);\n this._sendCmd(JabraNativeCommands.Offhook, false);\n this.activeConversationId = null;\n }\n\n async updateDevices(): Promise<void> {\n try {\n const data = (await requestCefPromise({ cmd: 'requestJabraDevices' })) as DeviceInfo[];\n\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\n\n if (!data || !data.length) {\n this.devices.clear();\n this.activeDeviceId = null;\n\n this.logger.error(new Error('No attached jabra devices'));\n return;\n }\n\n this.logger.info('connected jabra devices', data);\n this.devices.clear();\n data.forEach(device => this.devices.set(device.deviceID, device));\n this.activeDeviceId = data[0].deviceID;\n\n // reset headset state\n this._setRinging(false);\n this.setMute(false);\n } catch (err) {\n this.logger.error('Failed to connect to jabra', err);\n this.disconnect();\n }\n }\n\n private _processEvent(eventName: any, value: any): void {\n switch (eventName) {\n case JabraNativeEventNames.OffHook:\n debounce(() => this._handleOffhookEvent(value), offHookThrottleTime)();\n break;\n\n case JabraNativeEventNames.RejectCall:\n this.deviceRejectedCall({name: JabraNativeEventNames.RejectCall, conversationId: this.pendingConversationId});\n break;\n\n case JabraNativeEventNames.Mute:\n this._handleMuteEvent(value);\n break;\n\n case JabraNativeEventNames.Hold:\n this._handleHoldEvent(value);\n break;\n }\n }\n\n connect(): Promise<void> {\n this.changeConnectionStatus({ isConnected: false, isConnecting: true });\n\n return timedPromise(this.updateDevices(), connectTimeout).catch(err => {\n this.logger.error('Failed to connect to Jabra', err);\n });\n }\n\n disconnect(): Promise<void> {\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\n\n return Promise.resolve();\n }\n}","import { VendorImplementation, ImplementationConfig } from \"../vendor-implementation\";\r\nimport { CallInfo } from '../../..';\r\nimport DeviceInfo, { PartialHIDDevice } from \"../../../types/device-info\";\r\nimport { PartialInputReportEvent } from '../../../types/consumed-headset-events';\r\nimport { isCefHosted } from \"../../../utils\";\r\n\r\nconst offhookFlag = 0b1;\r\nconst muteFlag = 0b10;\r\nconst ringFlag = 0b100;\r\nconst holdFlag = 0b1000;\r\nconst recMuteFlag = 0b100;\r\nconst recReject = 0x40;\r\nconst HEADSET_USAGE = 0x0005;\r\nconst HEADSET_USAGE_PAGE = 0x000B;\r\n\r\nexport default class YealinkService extends VendorImplementation {\r\n private static instance: YealinkService;\r\n\r\n private pendingConversationId: string;\r\n private activeConversationId: string;\r\n\r\n private _deviceInfo: DeviceInfo = null;\r\n private activeDevice: any;\r\n\r\n private callState = 0;\r\n private recCallState = 0;\r\n\r\n private isHold = false;\r\n\r\n private inputReportReportId: null|number = null;\r\n vendorName = 'Yealink';\r\n\r\n static getInstance (config: ImplementationConfig): YealinkService {\r\n if (!YealinkService.instance) {\r\n YealinkService.instance = new YealinkService(config);\r\n }\r\n\r\n return YealinkService.instance;\r\n }\r\n\r\n get deviceInfo (): DeviceInfo {\r\n return this._deviceInfo;\r\n }\r\n\r\n isSupported (): boolean {\r\n return (window.navigator as any).hid && !isCefHosted();\r\n }\r\n\r\n deviceLabelMatchesVendor (label: string): boolean {\r\n const lowerLabel = label.toLowerCase();\r\n return ['yealink', '(6993:'].some(searchVal => lowerLabel.includes(searchVal));\r\n }\r\n\r\n async connect (originalDeviceLabel: string): Promise<void> {\r\n if (!this.isConnecting) {\r\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\r\n }\r\n const deviceLabel = originalDeviceLabel.toLowerCase();\r\n\r\n const deviceList: PartialHIDDevice[] = await (window.navigator as any).hid.getDevices();\r\n deviceList.forEach(device => {\r\n if (!this.activeDevice) {\r\n if (deviceLabel.includes(device?.productName?.toLowerCase())) {\r\n for (const collection of device.collections) {\r\n if (collection.usage === HEADSET_USAGE &&\r\n collection.usagePage === HEADSET_USAGE_PAGE) {\r\n this.activeDevice = device;\r\n if (collection.inputReports.length !== 0) {\r\n this.inputReportReportId = collection.inputReports[0].reportId;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (!this.activeDevice) {\r\n try {\r\n this.activeDevice = await new Promise((resolve, reject) => {\r\n const waiter = setTimeout(reject, 30000);\r\n this.requestWebHidPermissions(async () => {\r\n const filters = [{ usage: HEADSET_USAGE, usagePage: HEADSET_USAGE_PAGE }];\r\n await (window.navigator as any).hid.requestDevice({ filters });\r\n clearTimeout(waiter);\r\n const deviceLists: PartialHIDDevice[] = await (window.navigator as any).hid.getDevices();\r\n let bFind = false;\r\n deviceLists.forEach(device => {\r\n if (deviceLabel.includes(device?.productName?.toLowerCase())) {\r\n for (const collection of device.collections) {\r\n if (collection.usage === HEADSET_USAGE\r\n && collection.usagePage === HEADSET_USAGE_PAGE) {\r\n bFind = true;\r\n if (collection.inputReports.length !== 0) {\r\n this.inputReportReportId = collection.inputReports[0].reportId;\r\n }\r\n resolve(device);\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n if (!bFind) {\r\n reject();\r\n }\r\n });\r\n });\r\n } catch (error) {\r\n this.isConnecting && this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: false });\r\n this.logger.error('The selected device was not granted WebHID permissions');\r\n return;\r\n }\r\n }\r\n\r\n if (!this.activeDevice.opened) {\r\n await this.activeDevice.open();\r\n }\r\n\r\n this.logger.debug(`get device reportId ${this.inputReportReportId}`);\r\n this.activeDevice.addEventListener('inputreport', (event: PartialInputReportEvent) => {\r\n if (event.reportId !== this.inputReportReportId) {\r\n return;\r\n }\r\n const value = event.data.getUint8(0);\r\n\r\n this.processBtnPress(value);\r\n });\r\n this._deviceInfo = {\r\n ProductName: this.activeDevice.productName,\r\n };\r\n\r\n if (this.isConnecting && !this.isConnected) {\r\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\r\n }\r\n }\r\n\r\n async disconnect (): Promise<void> {\r\n if (this.isConnected || this.isConnecting) {\r\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\r\n }\r\n if (this.activeDevice) {\r\n this.activeDevice.close();\r\n this.activeDevice = null;\r\n this._deviceInfo = null;\r\n this.inputReportReportId = 0;\r\n }\r\n }\r\n\r\n processBtnPress (value: number): void {\r\n if (!this.activeDevice) {\r\n this.logger.error('do not have active device');\r\n return;\r\n }\r\n this.logger.debug(`User pressed button ${value}. local ${this.recCallState}`);\r\n const changeFlag = value ^ this.recCallState;\r\n if (changeFlag === 0) {\r\n return;\r\n }\r\n if (value !== 0\r\n && (this.callState & (~muteFlag)) === 0) {\r\n this.logger.debug(`Not talking, ignore key`);\r\n return;\r\n }\r\n this.recCallState = value;\r\n if (changeFlag & offhookFlag) {\r\n if (value & offhookFlag) {\r\n this.answerCall();\r\n if (this.activeConversationId) {\r\n this.deviceAnsweredCall({\r\n name: 'OffHook',\r\n conversationId: this.activeConversationId,\r\n });\r\n }\r\n else {\r\n this.logger.debug(`activeConversationId is empty`);\r\n }\r\n } else if (!this.isHold) {\r\n this.sendOpToDevice(this.isMuted ? muteFlag : 0);\r\n if (this.activeConversationId) {\r\n this.deviceEndedCall({\r\n name: 'OnHook',\r\n conversationId: this.activeConversationId,\r\n });\r\n }\r\n else {\r\n this.logger.debug(`activeConversationId is empty`);\r\n }\r\n this.activeConversationId = null;\r\n }\r\n } else if (changeFlag & recMuteFlag) {\r\n if (value & recMuteFlag) {\r\n this.setMute(!this.isMuted);\r\n this.deviceMuteChanged({\r\n isMuted: this.isMuted,\r\n name: this.isMuted ? 'CallMuted' : 'CallUnmuted',\r\n conversationId: this.activeConversationId,\r\n });\r\n }\r\n } else if (changeFlag & holdFlag) {\r\n if (value & holdFlag) {\r\n this.setHold(null, !this.isHold);\r\n this.deviceHoldStatusChanged({\r\n holdRequested: this.isHold,\r\n name: this.isHold ? 'OnHold' : 'ResumeCall',\r\n conversationId: this.activeConversationId,\r\n });\r\n }\r\n } else if (changeFlag & recReject) {\r\n if (value & recReject) {\r\n this.deviceRejectedCall({\r\n name: 'Reject',\r\n conversationId: this.pendingConversationId,\r\n });\r\n this.rejectCall();\r\n }\r\n }\r\n }\r\n\r\n async incomingCall (callInfo: CallInfo): Promise<void> {\r\n if (callInfo) {\r\n this.pendingConversationId = callInfo.conversationId;\r\n const val = this.isMuted ? muteFlag : 0;\r\n this.sendOpToDevice(val | ringFlag);\r\n }\r\n }\r\n\r\n async outgoingCall (callInfo: CallInfo): Promise<void> {\r\n this.pendingConversationId = callInfo.conversationId;\r\n this.sendOpToDevice(offhookFlag);\r\n }\r\n\r\n async answerCall (): Promise<void> {\r\n if (this.pendingConversationId) {\r\n this.activeConversationId = this.pendingConversationId;\r\n this.pendingConversationId = null;\r\n }\r\n const val = this.isMuted ? muteFlag : 0;\r\n this.sendOpToDevice(val | offhookFlag);\r\n }\r\n\r\n async rejectCall (): Promise<void> {\r\n this.pendingConversationId = null;\r\n this.sendOpToDevice(this.isMuted ? muteFlag : 0);\r\n }\r\n\r\n async endCall (conversationId: string, hasOtherActiveCalls: boolean): Promise<void> {\r\n if (hasOtherActiveCalls) {\r\n return;\r\n }\r\n\r\n if (conversationId === this.activeConversationId) {\r\n this.activeConversationId = null;\r\n }\r\n // keep mute state\r\n this.sendOpToDevice(this.isMuted ? muteFlag : 0);\r\n }\r\n\r\n async endAllCalls (): Promise<void> {\r\n this.activeConversationId = null;\r\n this.sendOpToDevice(this.isMuted ? muteFlag : 0);\r\n }\r\n\r\n async setMute (value: boolean): Promise<void> {\r\n if (value) {\r\n this.sendOpToDevice(this.callState | muteFlag);\r\n } else {\r\n this.sendOpToDevice(this.callState & (~muteFlag));\r\n }\r\n }\r\n\r\n async setHold (conversationId: string, value: boolean): Promise<void> {\r\n if (value) {\r\n const setValue = this.callState & (~offhookFlag);\r\n this.sendOpToDevice(setValue | holdFlag);\r\n } else {\r\n const setValue = this.callState & (~holdFlag);\r\n this.sendOpToDevice(setValue | offhookFlag);\r\n }\r\n }\r\n\r\n async sendOpToDevice (value: number): Promise<void> {\r\n if (!this.activeDevice || this.inputReportReportId === 0) {\r\n this.logger.error('do not have active device');\r\n return;\r\n }\r\n\r\n if (value & holdFlag) {\r\n this.isHold = true;\r\n } else {\r\n this.isHold = false;\r\n }\r\n\r\n if (value & muteFlag) {\r\n this.isMuted = true;\r\n } else {\r\n this.isMuted = false;\r\n }\r\n\r\n this.logger.debug(`send to dev ${value}`);\r\n this.callState = value;\r\n await this.activeDevice.sendReport(this.inputReportReportId, new Uint8Array([value]));\r\n }\r\n}","import { VendorImplementation, ImplementationConfig } from '../vendor-implementation';\nimport { CallInfo } from '../../..';\nimport DeviceInfo from '../../../types/device-info';\nimport { PartialInputReportEvent } from '../../../types/consumed-headset-events';\nimport { isCefHosted } from '../../../utils';\n\nconst HEADSET_USAGE = 0x0005;\nconst HEADSET_USAGE_PAGE = 0x000b;\nconst BT100USeries = [0x0001];\nconst CMEDIASeries = [0x0020, 0x0022];\nconst DECTSeries = [0x0014];\n\nexport default class VBetService extends VendorImplementation {\n private static instance: VBetService;\n\n public pendingConversationId: string;\n public activeConversationId: string;\n\n private _deviceInfo: DeviceInfo = null;\n private activeDevice: any;\n private deviceCmds: any = null;\n private inputReportReportId: null | number = null;\n private lastByte = 0;\n vendorName = 'VBet';\n\n static getInstance (config: ImplementationConfig): VBetService {\n if (!VBetService.instance) {\n VBetService.instance = new VBetService(config);\n }\n return VBetService.instance;\n }\n\n get deviceInfo (): DeviceInfo {\n return this._deviceInfo;\n }\n\n isSupported (): boolean {\n return (window.navigator as any).hid && !isCefHosted();\n }\n\n deviceLabelMatchesVendor (label: string): boolean {\n const lowerLabel = label.toLowerCase();\n return ['vt','340b'].some((searchVal) => lowerLabel.includes(searchVal));\n }\n\n setDeviceAttrs (pid: number): void {\n if (BT100USeries.includes(pid)) {\n this.deviceCmds = {\n ring: [0x2, 0x2, 0x1],\n offHook: [0x2, 0x2, 0x3],\n onHook: [0x2, 0x2, 0x0],\n muteOn: [0x3, 0x1, 0x0],\n muteOff: [0x3, 0x0, 0x0],\n };\n this.inputReportReportId = 0x08;\n } else if (CMEDIASeries.includes(pid)) {\n this.deviceCmds = {\n ring: [0x6, 0x1, 0x0],\n offHook: [0x6, 0x2, 0x0],\n onHook: [0x6, 0x0, 0x0],\n muteOn: [0x3, 0x1, 0x0],\n muteOff: [0x3, 0x0, 0x0],\n };\n this.inputReportReportId = 0x01;\n } else if (DECTSeries.includes(pid)) {\n this.deviceCmds = {\n ring: [0x2, 0x2, 0x2, 0x1],\n offHook: [0x2, 0x1, 0x0],\n onHook: [0x2, 0x0, 0x0],\n muteOn: [0x2, 0x2, 0x1],\n muteOff: [0x2, 0x2, 0x0],\n setMode: [0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0, 0],\n };\n this.inputReportReportId = 0x01;\n } else if (pid >= 0x0040 && pid <= 0x0083) {\n this.deviceCmds = {\n ring: [0x6, 0x1, 0x0],\n offHook: [0x6, 0x2, 0x0],\n onHook: [0x6, 0x0, 0x0],\n muteOn: [0x6, 0x4, 0x0],\n muteOff: [0x6, 0x5, 0x0],\n };\n this.inputReportReportId = 0x05;\n } else {\n this.logger.error('not recognized device');\n }\n }\n\n async connect (originalDeviceLabel: string): Promise<void> {\n if (!this.isConnecting) {\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\n }\n const deviceLabel = originalDeviceLabel.toLowerCase();\n const deviceList = await (window.navigator as any).hid.getDevices();\n deviceList.forEach((device) => {\n if (!this.activeDevice) {\n if (deviceLabel.includes(device?.productName?.toLowerCase())) {\n for (const collection of device.collections) {\n if (collection.usage === HEADSET_USAGE && collection.usagePage === HEADSET_USAGE_PAGE) {\n this.setDeviceAttrs(device.productId);\n this.activeDevice = device;\n break;\n }\n }\n }\n }\n });\n if (!this.activeDevice) {\n try {\n this.activeDevice = await new Promise((resolve, reject) => {\n const waiter = setTimeout(reject, 30000);\n this.requestWebHidPermissions(async () => {\n const filters = [{ usage: HEADSET_USAGE, usagePage: HEADSET_USAGE_PAGE }];\n await (window.navigator as any).hid.requestDevice({ filters });\n clearTimeout(waiter);\n const deviceList = await (window.navigator as any).hid.getDevices();\n let bFind = false;\n deviceList.forEach((device) => {\n if (deviceLabel.includes(device?.productName?.toLowerCase())) {\n for (const collection of device.collections) {\n if (\n collection.usage === HEADSET_USAGE &&\n collection.usagePage === HEADSET_USAGE_PAGE\n ) {\n bFind = true;\n this.setDeviceAttrs(device.productId);\n resolve(device);\n break;\n }\n }\n }\n });\n if (!bFind) {\n reject();\n }\n });\n });\n } catch (error) {\n this.isConnecting &&\n this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: false });\n this.logger.error('The selected device was not granted WebHID permissions');\n return;\n }\n }\n\n \n !this.activeDevice.opened && await this.activeDevice.open();\n \n\n this.logger.debug(`device input reportId ${this.inputReportReportId}`);\n this.activeDevice.addEventListener('inputreport', (event: PartialInputReportEvent) => {\n if (event.reportId !== this.inputReportReportId) {\n return;\n }\n const value = event.data.getUint8(0);\n this.processBtnPress(value);\n });\n this._deviceInfo = {\n ProductName: this.activeDevice.productName,\n };\n\n if (this.isConnecting && !this.isConnected) {\n this.changeConnectionStatus({ isConnected: true, isConnecting: false });\n }\n }\n\n async disconnect (): Promise<void> {\n if (this.isConnected || this.isConnecting) {\n this.changeConnectionStatus({ isConnected: false, isConnecting: false });\n }\n if (this.activeDevice) {\n await this.activeDevice.close();\n this.activeDevice = null;\n this._deviceInfo = null;\n this.inputReportReportId = 0;\n this.isMuted = false;\n }\n }\n\n async processBtnPress (value: number): Promise<void> {\n if (!this.activeDevice) {\n this.logger.error('do not have active device');\n return;\n }\n if (BT100USeries.includes(this.activeDevice.productId)) {\n switch (value) {\n case 0x04:\n await this.answerCallFromDevice();\n break;\n case 0x10:\n await this.rejectCallFromDevice();\n break;\n case 0x00:\n await this.endCallFromDevice();\n break;\n case 0x0c:\n await this.setMuteFromDevice(!this.isMuted);\n break;\n }\n }\n if (CMEDIASeries.includes(this.activeDevice.productId)) {\n switch (value) {\n case 0x01:\n this.lastByte !== 0x09 && await this.answerCallFromDevice();\n break;\n case 0x00:\n if (this.lastByte === 0x08) {\n await this.setMuteFromDevice(!this.isMuted);\n } else {\n await this.endCallFromDevice();\n }\n break;\n case 0x14:\n await this.setMuteFromDevice(!this.isMuted);\n break;\n }\n } \n if (this.activeDevice.productId >= 0x0040 && this.activeDevice.productId <= 0x0083) {\n switch (value) {\n case 0x20:\n await this.answerCallFromDevice();\n break;\n case 0x08:\n await this.rejectCallFromDevice();\n break;\n case 0x00:\n await this.endCallFromDevice();\n break;\n case 0x01:\n await this.setMuteFromDevice(false);\n break;\n case 0x05:\n await this.setMuteFromDevice(true);\n break;\n }\n }\n if (DECTSeries.includes(this.activeDevice.productId)) {\n switch (value) {\n case 0x02:\n await this.answerCallFromDevice();\n break;\n case 0x00:\n await this.endCallFromDevice();\n break;\n case 0x03:\n await this.setMuteFromDevice(true);\n break;\n case 0x04:\n await this.setMuteFromDevice(false);\n break;\n }\n }\n this.lastByte = value;\n }\n\n async incomingCall (callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n if (DECTSeries.includes(this.activeDevice.productId)) {\n await this.sendOpToDevice('setMode');\n }\n await this.sendOpToDevice('ring');\n }\n\n async outgoingCall (callInfo: CallInfo): Promise<void> {\n this.pendingConversationId = callInfo.conversationId;\n if (DECTSeries.includes(this.activeDevice.productId)) {\n await this.sendOpToDevice('setMode');\n }\n await this.sendOpToDevice('offHook');\n }\n\n async answerCall (conversationId: string, autoAnswer?: boolean): Promise<void> {\n if(!conversationId){\n return;\n }else {\n if (autoAnswer) {\n await this.sendOpToDevice('ring');\n await this.sendOpToDevice('offHook');\n } else {\n await this.sendOpToDevice('offHook');\n this.pendingConversationId = null;\n }\n this.activeConversationId = conversationId;\n }\n }\n\n async answerCallFromDevice (): Promise<void> {\n await this.answerCall(this.pendingConversationId, false);\n if (this.activeConversationId) {\n this.deviceAnsweredCall({\n name: 'OffHook',\n conversationId: this.activeConversationId,\n });\n } else {\n this.logger.error('no call to be answered');\n }\n }\n\n async rejectCall (): Promise<void> {\n if (this.pendingConversationId) {\n this.pendingConversationId = null;\n await this.sendOpToDevice('onHook');\n } else {\n this.logger.error('no call to be rejected');\n }\n }\n\n async rejectCallFromDevice (): Promise<void> {\n this.deviceRejectedCall({\n name: 'Reject',\n conversationId: this.pendingConversationId,\n });\n await this.rejectCall();\n }\n\n async endCall (conversationId: string, hasOtherActiveCalls: boolean): Promise<void> {\n if (hasOtherActiveCalls) {\n return;\n } else {\n if (conversationId === this.activeConversationId || this.pendingConversationId) {\n this.activeConversationId = null;\n this.pendingConversationId = null;\n await this.sendOpToDevice('onHook');\n } else {\n this.logger.error('no call to be ended');\n } \n }\n }\n\n async endCallFromDevice (): Promise<void> {\n if (this.activeConversationId || this.pendingConversationId) {\n await this.sendOpToDevice('onHook');\n this.deviceEndedCall({\n name: 'OnHook',\n conversationId: this.activeConversationId ? this.activeConversationId : this.pendingConversationId,\n });\n this.activeConversationId = null;\n this.pendingConversationId = null;\n } else {\n this.logger.error('no call to be ended');\n }\n }\n\n async endAllCalls (): Promise<void> {\n if (this.activeConversationId || this.pendingConversationId) {\n this.activeConversationId = null;\n this.pendingConversationId = null;\n await this.sendOpToDevice('onHook');\n }\n }\n\n async setMute (value: boolean): Promise<void> {\n if (value) {\n await this.sendOpToDevice('muteOn');\n } else {\n await this.sendOpToDevice('muteOff');\n }\n this.isMuted = value;\n }\n\n async setMuteFromDevice (value: boolean): Promise<void> {\n await this.setMute(value);\n this.deviceMuteChanged({\n isMuted: this.isMuted,\n name: this.isMuted ? 'CallMuted' : 'CallUnmuted',\n conversationId: this.activeConversationId,\n });\n }\n\n async sendOpToDevice (\n value: 'ring' | 'onHook' | 'offHook' | 'muteOn' | 'muteOff' | 'setMode'\n ): Promise<void> {\n const data = new Uint8Array(this.deviceCmds[value]);\n this.logger.debug(`send to dev ${value}`);\n await this.activeDevice.sendReport(data[0], data.slice(1, data.length));\n }\n}\n","import { Observable, Subject } from 'rxjs';\nimport { VendorImplementation, ImplementationConfig } from './vendor-implementations/vendor-implementation';\nimport PlantronicsService from './vendor-implementations/plantronics/plantronics';\nimport SennheiserService from './vendor-implementations/sennheiser/sennheiser';\nimport JabraService from './vendor-implementations/jabra/jabra';\nimport JabraNativeService from './vendor-implementations/jabra/jabra-native/jabra-native';\nimport YealinkService from './vendor-implementations/yealink/yealink';\nimport VBetService from './vendor-implementations/vbet/vbet';\nimport { CallInfo } from '../types/call-info';\nimport { VendorEvent, HoldEventInfo, MutedEventInfo, EventInfoWithConversationId } from '../types/emitted-headset-events';\nimport { WebHidPermissionRequest } from '..';\nimport { ConsumedHeadsetEvents, HeadsetEvents, DeviceConnectionStatus } from '../types/consumed-headset-events';\nimport { HeadsetState, HeadsetStateRecord, UpdateReasons } from '../types/headset-states';\n\ntype StateProps = Partial<HeadsetState>;\ntype StateCompareProps = { conversationId: string; state: StateProps };\n\nconst REMOVE_WAIT = 2000;\n\nexport default class HeadsetService {\n private static instance: HeadsetService;\n\n plantronics: VendorImplementation;\n jabraNative: VendorImplementation;\n jabra: VendorImplementation;\n sennheiser: VendorImplementation;\n yealink: VendorImplementation;\n vbet:VendorImplementation;\n selectedImplementation: VendorImplementation;\n headsetEvents$: Observable<ConsumedHeadsetEvents>;\n \n private headsetConversationStates: { [conversationId: string]: HeadsetStateRecord } = {};\n private _headsetEvents$: Subject<ConsumedHeadsetEvents>;\n private logger: any;\n\n private constructor (config: ImplementationConfig) {\n this._headsetEvents$ = new Subject<ConsumedHeadsetEvents>();\n this.headsetEvents$ = this._headsetEvents$.asObservable();\n\n this.logger = config.logger || console;\n this.plantronics = PlantronicsService.getInstance({ logger: this.logger, appName: config.appName });\n this.jabraNative = JabraNativeService.getInstance({ logger: this.logger });\n this.jabra = JabraService.getInstance({ logger: this.logger });\n this.sennheiser = SennheiserService.getInstance({ logger: this.logger });\n this.yealink = YealinkService.getInstance({ logger: this.logger });\n this.vbet = VBetService.getInstance({ logger: this.logger });\n [this.plantronics, this.jabra, this.jabraNative, this.sennheiser, this.yealink, this.vbet].forEach(implementation => this.subscribeToHeadsetEvents(implementation));\n }\n\n static getInstance (config: ImplementationConfig): HeadsetService {\n if (!HeadsetService.instance || config.createNew) {\n HeadsetService.instance = new HeadsetService(config);\n }\n\n return HeadsetService.instance;\n }\n\n get implementations (): VendorImplementation[] {\n const implementations = [\n this.sennheiser,\n this.plantronics,\n this.jabra,\n this.jabraNative,\n this.yealink,\n this.vbet\n ].filter((impl) => impl.isSupported());\n\n return implementations;\n }\n\n private isDifferentState (props: StateCompareProps): boolean {\n const state = this.headsetConversationStates[props.conversationId];\n\n // different if there's no state or any of the provided state props don't match\n return !state || Object.entries(props.state).some(([key, value]) => state[key] !== value);\n }\n\n private updateHeadsetState (props: StateCompareProps, opts = { expectExistingConversation: true }): boolean {\n if (this.isDifferentState(props)) {\n const state = this.headsetConversationStates[props.conversationId];\n if (!state) {\n if (opts.expectExistingConversation) {\n this.logger.warn('updateHeadsetState has no existing state for provided conversationId.', { conversationId: props.conversationId });\n }\n return false;\n }\n Object.assign(state, props.state);\n return true;\n }\n\n return false;\n }\n\n deviceIsSupported (params: { micLabel: string }): boolean {\n if (!params.micLabel) {\n return false;\n }\n\n const implementation = this.implementations.find((implementation) => {\n return implementation.deviceLabelMatchesVendor(params.micLabel);\n });\n return !!implementation;\n }\n\n activeMicChange (newMicLabel: string, changeReason?: UpdateReasons): void {\n if (newMicLabel) {\n const implementation = this.implementations.find((implementation) => implementation.deviceLabelMatchesVendor(newMicLabel));\n if (implementation) {\n this.changeImplementation(implementation, newMicLabel);\n } else if (this.selectedImplementation) {\n this.clearSelectedImplementation(changeReason);\n }\n } else {\n this.clearSelectedImplementation(changeReason);\n }\n }\n\n async changeImplementation (implementation: VendorImplementation | null, deviceLabel: string): Promise<void> {\n if (implementation === this.selectedImplementation) {\n return;\n }\n\n if (this.selectedImplementation) {\n // remove headsetStates associated with implementation\n this.headsetConversationStates = {};\n\n await this.selectedImplementation.disconnect();\n }\n\n this.selectedImplementation = implementation;\n\n this._headsetEvents$.next({ event: HeadsetEvents.implementationChanged, payload: implementation });\n\n if (implementation) {\n await implementation.connect(deviceLabel);\n }\n }\n\n async incomingCall (callInfo: CallInfo, hasOtherActiveCalls?: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n this.headsetConversationStates[callInfo.conversationId] = {\n conversationId: callInfo.conversationId,\n held: false,\n muted: false,\n offHook: false,\n ringing: true\n };\n\n return implementation.incomingCall(callInfo, hasOtherActiveCalls);\n }\n\n async outgoingCall (callInfo: CallInfo): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n this.headsetConversationStates[callInfo.conversationId] = {\n conversationId: callInfo.conversationId,\n held: false,\n muted: false,\n offHook: true,\n ringing: false\n };\n\n return implementation.outgoingCall(callInfo);\n }\n\n async answerCall (conversationId: string, autoAnswer?: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n if (!autoAnswer) {\n const expectedStatePostAction: Partial<HeadsetState> = {\n ringing: false,\n offHook: true\n };\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n return implementation.answerCall(conversationId);\n }\n } else {\n this.headsetConversationStates[conversationId] = {\n conversationId: conversationId,\n held: false,\n muted: false,\n offHook: true,\n ringing: false\n };\n\n return implementation.answerCall(conversationId, autoAnswer);\n }\n }\n\n async rejectCall (conversationId: string, expectExistingConversation = true): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n ringing: false\n };\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction }, { expectExistingConversation })) {\n const headsetState = this.headsetConversationStates[conversationId];\n headsetState.removeTimer = this.setRemoveTimer(conversationId);\n return implementation.rejectCall(conversationId);\n }\n }\n\n async setMute (value: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n if (Object.values(this.headsetConversationStates).some(headsetState => headsetState.muted !== value)) {\n Object.values(this.headsetConversationStates).forEach(headsetState => headsetState.muted = value);\n return implementation.setMute(value);\n }\n }\n\n async setHold (conversationId: string, value: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n held: value\n };\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n return implementation.setHold(conversationId, value);\n }\n }\n\n async endCall (conversationId: string, hasOtherActiveCalls?: boolean): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n offHook: false\n };\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n const headsetState = this.headsetConversationStates[conversationId];\n headsetState.removeTimer = this.setRemoveTimer(conversationId);\n return implementation.endCall(conversationId, hasOtherActiveCalls);\n }\n }\n\n async endAllCalls (): Promise<any> {\n const implementation = this.getConnectedImpl();\n if (!implementation) {\n return;\n }\n \n Object.values(this.headsetConversationStates).forEach((headsetState) => {\n if (!headsetState.removeTimer) {\n headsetState.removeTimer = this.setRemoveTimer(headsetState.conversationId);\n }\n });\n\n return implementation.endAllCalls();\n }\n\n retryConnection (micLabel: string): Promise<void> {\n if (!this.selectedImplementation) {\n return Promise.reject(new Error('No active headset implementation'));\n }\n\n return this.selectedImplementation.connect(micLabel);\n }\n\n connectionStatus (): DeviceConnectionStatus {\n if (this.selectedImplementation) {\n if (!this.selectedImplementation.isConnected && !this.selectedImplementation.isConnecting) {\n return 'notRunning';\n }\n return this.selectedImplementation.isConnected ? 'running' : 'checking';\n }\n return 'noVendor';\n }\n\n resetHeadsetStateForCall (conversationId: string): Promise<any> {\n const implementation = this.getConnectedImpl();\n return implementation.resetHeadsetStateForCall(conversationId);\n }\n\n private getConnectedImpl (): VendorImplementation {\n const impl = this.selectedImplementation;\n if (!impl || !impl.isConnected) {\n return null;\n }\n\n return impl;\n }\n\n private subscribeToHeadsetEvents (implementation: VendorImplementation) {\n implementation.on(HeadsetEvents.deviceAnsweredCall, this.handleDeviceAnsweredCall.bind(this));\n implementation.on(HeadsetEvents.deviceRejectedCall, this.handleDeviceRejectedCall.bind(this));\n implementation.on(HeadsetEvents.deviceEndedCall, this.handleDeviceEndedCall.bind(this));\n implementation.on(HeadsetEvents.deviceMuteStatusChanged, this.handleDeviceMuteStatusChanged.bind(this));\n implementation.on(HeadsetEvents.deviceHoldStatusChanged, this.handleDeviceHoldStatusChanged.bind(this));\n implementation.on(HeadsetEvents.deviceEventLogs, this.handleDeviceLogs.bind(this));\n implementation.on(HeadsetEvents.deviceConnectionStatusChanged, this.handleDeviceConnectionStatusChanged.bind(this));\n implementation.on(HeadsetEvents.webHidPermissionRequested, this.handleWebHidPermissionRequested.bind(this));\n }\n\n private clearSelectedImplementation (clearReason?: UpdateReasons): void {\n if (!this.selectedImplementation) {\n return;\n }\n\n this.selectedImplementation.disconnect(clearReason);\n this._headsetEvents$.next({ event: HeadsetEvents.implementationChanged, payload: null });\n this.selectedImplementation = null;\n this.handleDeviceConnectionStatusChanged();\n }\n\n private setRemoveTimer (conversationId) {\n return setTimeout(() => {\n // we are using the removeTimer to make sure this is actually slated for removal.\n // if we get a new incoming call for example, it will replace the current state which is slated for\n // removal and we don't want to remove it if it's a new/updated state\n if (this.headsetConversationStates[conversationId].removeTimer) {\n delete this.headsetConversationStates[conversationId];\n }\n }, REMOVE_WAIT);\n }\n\n private handleDeviceAnsweredCall (event: VendorEvent<EventInfoWithConversationId>): void {\n if (event.vendor !== this.selectedImplementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n ringing: false,\n offHook: true\n };\n\n this.updateHeadsetState({ conversationId: event.body.conversationId, state: expectedStatePostAction });\n\n this.logger.info('Headset: device answered the call');\n this._headsetEvents$.next({ event: HeadsetEvents.deviceAnsweredCall, payload: { ...event.body } });\n }\n\n private handleDeviceRejectedCall (event: VendorEvent<EventInfoWithConversationId>): void {\n if (event.vendor !== this.selectedImplementation) {\n return;\n }\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n ringing: false\n };\n const conversationId = event.body.conversationId;\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n const headsetState = this.headsetConversationStates[conversationId];\n headsetState.removeTimer = this.setRemoveTimer(conversationId);\n }\n\n this.logger.info('Headset: device rejected the call');\n this._headsetEvents$.next({ event: HeadsetEvents.deviceRejectedCall, payload: { ...event.body } });\n }\n\n private handleDeviceEndedCall (event: VendorEvent<EventInfoWithConversationId>): void {\n this.logger.info('Headset: device ended the call');\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n offHook: false\n };\n\n const conversationId = event.body.conversationId;\n\n if (this.updateHeadsetState({ conversationId, state: expectedStatePostAction })) {\n const headsetState = this.headsetConversationStates[conversationId];\n headsetState.removeTimer = this.setRemoveTimer(conversationId);\n }\n\n this._headsetEvents$.next({ event: HeadsetEvents.deviceEndedCall, payload: { ...event.body } });\n }\n\n private handleDeviceMuteStatusChanged (event: VendorEvent<MutedEventInfo>): void {\n this.logger.info('Headset: device mute status changed: ', event.body.isMuted);\n if (Object.values(this.headsetConversationStates).some(headsetState => headsetState.muted !== event.body.isMuted)) {\n Object.values(this.headsetConversationStates).forEach(headsetState => headsetState.muted = event.body.isMuted);\n }\n this._headsetEvents$.next({ event: HeadsetEvents.deviceMuteStatusChanged, payload: { ...event.body } });\n }\n\n private handleDeviceHoldStatusChanged (event: VendorEvent<HoldEventInfo>): void {\n this.logger.info('Headset: device hold status changed', event.body.holdRequested);\n\n const expectedStatePostAction: Partial<HeadsetState> = {\n held: event.body.holdRequested\n };\n const conversationId = event.body.conversationId;\n this.updateHeadsetState({ conversationId, state: expectedStatePostAction });\n\n this._headsetEvents$.next({ event: HeadsetEvents.deviceHoldStatusChanged, payload: { ...event.body } });\n }\n\n private handleDeviceConnectionStatusChanged (): void {\n this._headsetEvents$.next({ event: HeadsetEvents.deviceConnectionStatusChanged, payload: this.connectionStatus() });\n }\n\n private handleWebHidPermissionRequested (event: VendorEvent<WebHidPermissionRequest>): void {\n this.logger.debug('Requesting Webhid Permissions');\n this._headsetEvents$.next({ event: HeadsetEvents.webHidPermissionRequested, payload: { ...event.body } });\n }\n\n /* This function has no functional purpose in a real life example\n * It is here to help log all events in the call process at least for Plantronics\n */\n private handleDeviceLogs (eventInfo: VendorEvent<any>): void {\n this._headsetEvents$.next({ event: HeadsetEvents.loggableEvent, payload: { ...eventInfo.body } });\n }\n}","import HeadsetService from './services/headset';\nimport { VendorImplementation } from './services/vendor-implementations/vendor-implementation';\n\nexport * from './types/call-info';\nexport * from './types/consumed-headset-events';\nexport * from './types/device-info';\nexport * from './types/emitted-headset-events';\nexport * from './types/headset-states';\nexport { VendorImplementation };\nexport default HeadsetService;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n"],"sourceRoot":""}