softphone-vendor-headsets 2.3.0 → 2.3.1-develop.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/decorate-cef-client.d.ts +1 -0
- package/dist/cjs/src/decorate-cef-client.js +75 -0
- package/dist/cjs/src/decorate-cef-client.js.map +1 -0
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.d.ts +3 -0
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.js +30 -12
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.js.map +1 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.js +83 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.js.map +1 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/types.d.ts +1 -1
- package/dist/deploy-info.json +21 -3
- package/dist/es/src/decorate-cef-client.d.ts +1 -0
- package/dist/es/src/decorate-cef-client.js +72 -0
- package/dist/es/src/decorate-cef-client.js.map +1 -0
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.d.ts +3 -0
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.js +30 -12
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.js.map +1 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.js +83 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.js.map +1 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/types.d.ts +1 -1
- package/dist/softhphone-vendor-headsets.js +1 -1
- package/dist/softhphone-vendor-headsets.js.map +1 -1
- package/package.json +81 -79
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://SoftphoneVendorHeadsets/webpack/universalModuleDefinition","webpack://SoftphoneVendorHeadsets/webpack/bootstrap","webpack://SoftphoneVendorHeadsets/./node_modules/@gnaudio/jabra-js/browser-esm/index-923cf570.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/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","next","a","throw","done","then","apply","TypeError","has","set","setPrototypeOf","__proto__","Array","String","this","constructor","label","sent","trys","ops","return","iterator","pop","u","v","h","asyncIterator","f","stack","map","toString","join","errors","E","indexOf","splice","g","initialTeardown","closed","_parentage","_teardowns","unsubscribe","isArray","remove","b","add","_hasParent","_addParent","includes","_removeParent","EMPTY","_","w","O","arguments","y","C","N","isStopped","destination","A","T","_next","_error","complete","_complete","S","I","R","observable","D","H","reduce","L","_subscribe","lift","source","operator","subscribe","_trySubscribe","_deprecatedSyncErrorSubscribe","_syncErrorHack_isSubscribing","__syncError","forEach","P","pipe","toPromise","U","k","onFinalize","x","G","observers","hasError","thrownError","F","_throwIfClosed","configurable","_checkFinalizedStatuses","_innerSubscribe","asObservable","M","_value","getValue","B","now","delegate","Date","K","_bufferSize","_windowTime","_timestampProvider","_buffer","_infiniteTimeWindow","Math","max","_trimBuffer","W","schedule","j","scheduler","work","pending","state","id","recycleAsyncId","delay","requestAsyncId","setInterval","Y","flush","clearInterval","V","execute","_execute","actions","q","schedulerActionCtor","$","_active","_scheduled","z","Q","J","X","Z","tt","et","nt","rt","it","ot","st","at","getReader","read","releaseLock","ct","lt","ut","ht","dt","pt","catch","ft","vt","Et","gt","_t","mt","bt","wt","yt","Ot","defaultValue","Ct","Nt","isNaN","Tt","info","St","first","each","with","It","meta","lastValue","seen","At","Rt","Dt","Ht","Lt","Pt","Ut","kt","xt","Gt","Ft","Mt","Bt","Kt","Wt","Yt","Vt","jt","qt","$t","zt","Qt","every","some","Jt","Xt","Zt","te","re","ie","se","ae","ce","connector","resetOnError","resetOnComplete","resetOnRefCountZero","ue","le","bufferSize","windowTime","refCount","he","de","pe","fe","ve","Ee","super","ge","ERROR","JS_LIB","write","level","layer","_e","WARNING","INFO","CHROME_EXTENSION","NATIVE_CONSOLE","SDK_USAGE_ERROR","FEATURE_NOT_SUPPORTED","DEVICE_ERROR","UNEXPECTED_ERROR","INIT_ERROR","me","compare","itemRemoved","items","itemList","itemAdded","addItem","onDisconnect","removeItem","filter","equals","concat","sort","findIndex","be","sdkVersion","consoleAppVersion","version","chromeExtensionVersion","process","platform","navigator","userAgent","we","deviceDetector","deviceAdded","deviceObservables","deviceRemoved","deviceList","_transport","_readyEvents","consoleAppEvent","_config","transportContext","context","logger","WeakMap","NODE","WEB_HID","CHROME_EXTENSION_WITH_WEB_HID_FALLBACK","ye","Oe","TransportChromeExtension","checkInstallation","ok","initHandler","WebHidTransport","Ce","log","Ne","Te","config","messageShown","partnerKey","validateCrc","logWarning","appId","test","appName","warn","split","charCodeAt","RangeError","padStart","Se","Ie","Ae","Re","De","He","Le","MS_OC","CISCO","AVAYA","SIEMENS","ALCATEL","IBM","AASTRA","SKYPE","GENERIC","NORTEL","JABRA","NEC","SHORETEL","OTHER","Pe","gnpReadCommand","serialize","command","subCommand","deserialize","GN_PROTOCOL","DATA","Ue","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","ke","from","xe","fromCharCode","Ge","Fe","Me","DataView","buffer","getUint16","Be","of","Ke","We","Ye","path","require","globalThis","global","self","Ve","je","qe","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","$e","transport","gnpLockAcquired","token","action","writeAction","INPUT","OUTPUT","FEATURE","ABSOLUTE","RELATIVE","ze","startsWith","Qe","Je","usagePage","usage","Xe","descriptor","transportId","input","inputReportsFilter","find","reportType","tn","lengthMask","typeFromAttr","packetLengthFromAttr","en","gnpPacketHeaderLength","hasHeader","expectedPacketLength","gnpPacketMaxLength","hasFullPacket","nn","rn","on","sn","an","hidChannel","gnpLock","primaryAddress","lockQueue","packets","inputFilter","events","eventsFilter","nextSequenceNumber","appendData","getPacketAndReset","findDescriptor","processLockQueue","acquireGnpLock","reportSize","attrFromTypeAndPayloadLength","min","subarray","output","releaseGnpLock","doWithGnpLockHeld","readWithParams","getNextSequenceNumber","cn","parentGnpChannel","sendEvent","un","supportsGnpOverHid","ln","hn","dn","isChild","pn","parentId","gnpAddress","fn","vn","En","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","gn","parentConnectionId","_n","mn","bn","deviceType","address","vid","pid","serialNumber","capabilities","connectionGnpAddress","wn","createConnection","parentConnection","connectionCreator","createChildGnpChannel","connectionEvents","attach","detach","connection","yn","On","Cn","Nn","createHidChannel","createRootGnpChannel","createAttachEvent","getTransportId","convertToReportType","valueType","convertToValueType","JSON","stringify","getMandatoryField","createDescriptor","assign","Tn","Sn","In","An","Rn","Dn","vendorId","productId","connectionAdded","connectionRemoved","connectionList","Hn","exceptionToUndefined","findConnectionById","currentConnections","Ln","deviceCollection","connectionExists","force","findDeviceByDeviceId","createDevice","isSameDevice","Pn","validateOrganizationKey","validateAppId","validateAppName","internal","testDeviceTransport","recorder","connect","Un","deviceId","kn","UsageReport","xn","Gn","Fn","Mn","Bn","Kn","Wn","Yn","Vn","jn","qn","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","$n","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","zn","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","Qn","isSoftphoneInFocus","lockHeld","cachedSignals","Map","Boolean","Ze","Jn","device","deviceSignals","setup","checkHasDisconnected","checkCallLockNotHeld","tryTakeCallLock","checkCallLockHeld","releaseCallLock","STD_TELEPHONY","Xn","tr","connectionCallLock","currentLocks","Set","lockReleaseEvent","takeSingleCallLock","delete","size","acquireLockOnNextConnectionEmit","releaseLockOnRemovedConnectionEmit","releaseSingleCallLock","acquired","clear","er","nr","rr","or","ir","sr","softphoneInFocus","setFeatureReport","Zn","ar","devComm","infocus","cr","ur","lr","hr","dr","pr","fr","vr","_r","setSharedSoftphoneInfo","jabraDirectInstalled","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","callInfo","hasOtherActiveCalls","conversationId","autoAnswer","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","Function","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","_finalizers","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","kind","errorContext","cb","isRoot","errorThrown","Subscriber","_this","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","_bind","ConsumerObserver","partialObserver","handleUnhandledError","SafeSubscriber","observerOrNext","context_1","notification","subscriber","identity","pipeFromArray","fns","prev","Observable","isObserver","sink","promiseCtor","getPromiseCtor","operations","PlantronicsCallEventCodes","ObjectUnsubscribedError","Subject","currentObservers","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","isError","clearTimeouts","contactName","_createCallMapping","params","halfEncodedCallIdString","encodeURI","halfEncodedContactString","incomingCall","createNew","isCefHosted","_HostedContextFunctions","requestCefPromise","cmd","sCmd","cefQuery","persistent","onSuccess","obj","onFailure","SennheiserService","websocketConnected","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","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","shouldUnsubscribe","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","offHook","ring","activeConversationId","pendingConversationId","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","initData","assetURL","location","origin","pathname","handleCefEvent","supportsTerminationRequest","supportsUnifiedPreferences","register","cefSupportsJabra","supportsJabra","activeDeviceId","msg","isDeviceEvent","handleJabraDeviceAttached","isHeadsetEvent","handleJabraEvent","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","rejectCall","val","setValue","sendReport","HeadsetService","_headsetEvents$","headsetEvents$","plantronics","getInstance","jabraNative","jabra","sennheiser","yealink","implementation","subscribeToHeadsetEvents","impl","isSupported","props","headsetConversationStates","entries","isDifferentState","newMicLabel","implementations","deviceLabelMatchesVendor","changeImplementation","selectedImplementation","clearSelectedImplementation","implementationChanged","getConnectedImpl","held","muted","outgoingCall","expectedStatePostAction","updateHeadsetState","removeTimer","setRemoveTimer","values","endAllCalls","micLabel","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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,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM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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 = 11);\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(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 e(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 n(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\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */}var r=function(t,e){return(r=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)};function i(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function o(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 s(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 a(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 c(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 u(t,e){for(var n=0,r=e.length,i=t.length;n<r;n++,i++)t[i]=e[n];return t}function l(t){return this instanceof l?(this.v=t,this):new l(t)}function h(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||a(t,e)}))})}function a(t,e){try{(n=i[t](e)).value instanceof l?Promise.resolve(n.value.v).then(c,u):h(o[0][2],n)}catch(t){h(o[0][3],t)}var n}function c(t){a(\"next\",t)}function u(t){a(\"throw\",t)}function h(t,e){t(e),o.shift(),o.length&&a(o[0][0],o[0][1])}}function d(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=a(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 p(t){return\"function\"==typeof t}function f(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 v=f((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 E(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var g=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._teardowns=null}var e;return t.prototype.unsubscribe=function(){var t,e,n,r,i;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=a(o),l=s.next();!l.done;l=s.next()){l.value.remove(this)}}catch(e){t={error:e}}finally{try{l&&!l.done&&(e=s.return)&&e.call(s)}finally{if(t)throw t.error}}else o.remove(this);var h=this.initialTeardown;if(p(h))try{h()}catch(t){i=t instanceof v?t.errors:[t]}var d=this._teardowns;if(d){this._teardowns=null;try{for(var f=a(d),E=f.next();!E.done;E=f.next()){var g=E.value;try{b(g)}catch(t){i=null!=i?i:[],t instanceof v?i=u(u([],c(i)),c(t.errors)):i.push(t)}}}catch(t){n={error:t}}finally{try{E&&!E.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}}if(i)throw new v(i)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)b(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._teardowns=null!==(n=this._teardowns)&&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)&&E(e,t)},t.prototype.remove=function(e){var n=this._teardowns;n&&E(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=((e=new t).closed=!0,e),t}(),_=g.EMPTY;function m(t){return t instanceof g||t&&\"closed\"in t&&p(t.remove)&&p(t.add)&&p(t.unsubscribe)}function b(t){p(t)?t():t.unsubscribe()}var w={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},y=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return setTimeout.apply(void 0,u([],c(t)))};function O(t){y((function(){throw t}))}function C(){}var N=function(t){function e(e){var n=t.call(this)||this;return n.isStopped=!1,e?(n.destination=e,m(e)&&e.add(n)):n.destination=A,n}return i(e,t),e.create=function(t,e,n){return new T(t,e,n)},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(g),T=function(t){function e(e,n,r){var i,o=t.call(this)||this;if(p(e))i=e;else if(e){var s;i=e.next,n=e.error,r=e.complete,o&&w.useDeprecatedNextContext?(s=Object.create(e)).unsubscribe=function(){return o.unsubscribe()}:s=e,i=null==i?void 0:i.bind(s),n=null==n?void 0:n.bind(s),r=null==r?void 0:r.bind(s)}return o.destination={next:i?S(i):C,error:S(null!=n?n:I),complete:r?S(r):C},o}return i(e,t),e}(N);function S(t,e){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];try{t.apply(void 0,u([],c(e)))}catch(t){O(t)}}}function I(t){throw t}var A={closed:!0,next:C,error:I,complete:C},R=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function D(t){return t}function H(t){return 0===t.length?D:1===t.length?t[0]:function(e){return t.reduce((function(t,e){return e(t)}),e)}}var L=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=(r=t)&&r instanceof N||function(t){return t&&p(t.next)&&p(t.error)&&p(t.complete)}(r)&&m(r)?t:new T(t,e,n),o=this.operator,s=this.source;return i.add(o?o.call(i,s):s?this._subscribe(i):this._trySubscribe(i)),i},t.prototype._deprecatedSyncErrorSubscribe=function(t){var e=t;e._syncErrorHack_isSubscribing=!0;var n=this.operator;if(n)t.add(n.call(t,this.source));else try{t.add(this._subscribe(t))}catch(t){e.__syncError=t}for(var r=e;r;){if(\"__syncError\"in r)try{throw r.__syncError}finally{t.unsubscribe()}r=r.destination}e._syncErrorHack_isSubscribing=!1},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=P(e))((function(e,r){var i;i=n.subscribe((function(e){try{t(e)}catch(t){r(t),null==i||i.unsubscribe()}}),r,e)}))},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[R]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t.length?H(t)(this):this},t.prototype.toPromise=function(t){var e=this;return new(t=P(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 P(t){var e;return null!==(e=null!=t?t:w.Promise)&&void 0!==e?e:Promise}function U(t){return function(e){if(function(t){return p(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\")}}var k=function(t){function e(e,n,r,i,o){var s=t.call(this,e)||this;return s.onFinalize=o,s._next=n?function(t){try{n(t)}catch(t){e.error(t)}}:t.prototype._next,s._error=i?function(t){try{i(t)}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._error,s._complete=r?function(){try{r()}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,s}return i(e,t),e.prototype.unsubscribe=function(){var e,n=this.closed;t.prototype.unsubscribe.call(this),!n&&(null===(e=this.onFinalize)||void 0===e||e.call(this))},e}(N),x=f((function(t){return function(){t(this),this.name=\"ObjectUnsubscribedError\",this.message=\"object unsubscribed\"}})),G=function(t){function e(){var e=t.call(this)||this;return e.closed=!1,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return i(e,t),e.prototype.lift=function(t){var e=new F(this,this);return e.operator=t,e},e.prototype._throwIfClosed=function(){if(this.closed)throw new x},e.prototype.next=function(t){var e,n;if(this._throwIfClosed(),!this.isStopped){var r=this.observers.slice();try{for(var i=a(r),o=i.next();!o.done;o=i.next()){o.value.next(t)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}}},e.prototype.error=function(t){if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;for(var e=this.observers;e.length;)e.shift().error(t)}},e.prototype.complete=function(){if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;for(var t=this.observers;t.length;)t.shift().complete()}},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=null},Object.defineProperty(e.prototype,\"observed\",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,n=e.hasError,r=e.isStopped,i=e.observers;return n||r?_:(i.push(t),new g((function(){return E(i,t)})))},e.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,r=e.thrownError,i=e.isStopped;n?t.error(r):i&&t.complete()},e.prototype.asObservable=function(){var t=new L;return t.source=this,t},e.create=function(t,e){return new F(t,e)},e}(L),F=function(t){function e(e,n){var r=t.call(this)||this;return r.destination=e,r.source=n,r}return i(e,t),e.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)},e.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)},e.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)},e.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:_},e}(G),M=function(t){function e(e){var n=t.call(this)||this;return n._value=e,n}return i(e,t),Object.defineProperty(e.prototype,\"value\",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){var t=this,e=t.hasError,n=t.thrownError,r=t._value;if(e)throw n;return this._throwIfClosed(),r},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(G),B={now:function(){return(B.delegate||Date).now()},delegate:void 0},K=function(t){function e(e,n,r){void 0===e&&(e=1/0),void 0===n&&(n=1/0),void 0===r&&(r=B);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 i(e,t),e.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)},e.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},e.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)}},e}(G),W=function(t){function e(e,n){return t.call(this)||this}return i(e,t),e.prototype.schedule=function(t,e){return this},e}(g),Y=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return setInterval.apply(void 0,u([],c(t)))},V=function(t){return clearInterval(t)},j=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.pending=!1,r}return i(e,t),e.prototype.schedule=function(t,e){if(void 0===e&&(e=0),this.closed)return this;this.state=t;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this},e.prototype.requestAsyncId=function(t,e,n){return void 0===n&&(n=0),Y(t.flush.bind(t,this),n)},e.prototype.recycleAsyncId=function(t,e,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return e;V(e)},e.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))},e.prototype._execute=function(t,e){var n,r=!1;try{this.work(t)}catch(t){r=!0,n=!!t&&t||new Error(t)}if(r)return this.unsubscribe(),n},e.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,E(r,this),null!=e&&(this.id=this.recycleAsyncId(n,e,null)),this.delay=null,t.prototype.unsubscribe.call(this)}},e}(W),q=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=B.now,t}(),$=new(function(t){function e(e,n){void 0===n&&(n=q.now);var r=t.call(this,e,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return i(e,t),e.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}}},e}(q))(j),z=$,Q=new L((function(t){return t.complete()}));function J(t,e){return new L((function(n){var r=0;return e.schedule((function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())}))}))}var X=function(t){return t&&\"number\"==typeof t.length&&\"function\"!=typeof t};function Z(t){return p(null==t?void 0:t.then)}var tt=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\";function et(t,e,n,r){void 0===r&&(r=0);var i=e.schedule((function(){try{n.call(this)}catch(e){t.error(e)}}),r);return t.add(i),i}function nt(t,e){if(!t)throw new Error(\"Iterable cannot be null\");return new L((function(n){var r=new g;return r.add(e.schedule((function(){var i=t[Symbol.asyncIterator]();r.add(e.schedule((function(){var t=this;i.next().then((function(e){e.done?n.complete():(n.next(e.value),t.schedule())}))})))}))),r}))}function rt(t){return p(t[R])}function it(t){return p(null==t?void 0:t[tt])}function ot(t){return Symbol.asyncIterator&&p(null==t?void 0:t[Symbol.asyncIterator])}function st(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.\")}function at(t){return h(this,arguments,(function(){var e,n,r;return s(this,(function(i){switch(i.label){case 0:e=t.getReader(),i.label=1;case 1:i.trys.push([1,,9,10]),i.label=2;case 2:return[4,l(e.read())];case 3:return n=i.sent(),r=n.value,n.done?[4,l(void 0)]:[3,5];case 4:return[2,i.sent()];case 5:return[4,l(r)];case 6:return[4,i.sent()];case 7:return i.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}}))}))}function ct(t){return p(null==t?void 0:t.getReader)}function ut(t,e){if(null!=t){if(rt(t))return function(t,e){return new L((function(n){var r=new g;return r.add(e.schedule((function(){var i=t[R]();r.add(i.subscribe({next:function(t){r.add(e.schedule((function(){return n.next(t)})))},error:function(t){r.add(e.schedule((function(){return n.error(t)})))},complete:function(){r.add(e.schedule((function(){return n.complete()})))}}))}))),r}))}(t,e);if(X(t))return J(t,e);if(Z(t))return function(t,e){return new L((function(n){return e.schedule((function(){return t.then((function(t){n.add(e.schedule((function(){n.next(t),n.add(e.schedule((function(){return n.complete()})))})))}),(function(t){n.add(e.schedule((function(){return n.error(t)})))}))}))}))}(t,e);if(ot(t))return nt(t,e);if(it(t))return function(t,e){return new L((function(n){var r;return n.add(e.schedule((function(){r=t[tt](),et(n,e,(function(){var t=r.next(),e=t.value;t.done?n.complete():(n.next(e),this.schedule())}))}))),function(){return p(null==r?void 0:r.return)&&r.return()}}))}(t,e);if(ct(t))return function(t,e){return nt(at(t),e)}(t,e)}throw st(t)}function lt(t,e){return e?ut(t,e):ht(t)}function ht(t){if(t instanceof L)return t;if(null!=t){if(rt(t))return r=t,new L((function(t){var e=r[R]();if(p(e.subscribe))return e.subscribe(t);throw new TypeError(\"Provided object does not correctly implement Symbol.observable\")}));if(X(t))return dt(t);if(Z(t))return n=t,new L((function(t){n.then((function(e){t.closed||(t.next(e),t.complete())}),(function(e){return t.error(e)})).then(null,O)}));if(ot(t))return pt(t);if(it(t))return e=t,new L((function(t){var n,r;try{for(var i=a(e),o=i.next();!o.done;o=i.next()){var s=o.value;if(t.next(s),t.closed)return}}catch(t){n={error:t}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()}));if(ct(t))return pt(at(t))}var e,n,r;throw st(t)}function dt(t){return new L((function(e){for(var n=0;n<t.length&&!e.closed;n++)e.next(t[n]);e.complete()}))}function pt(t){return new L((function(e){(function(t,e){var n,r,i,a;return o(this,void 0,void 0,(function(){var o,c;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,5,6,11]),n=d(t),s.label=1;case 1:return[4,n.next()];case 2:if((r=s.sent()).done)return[3,4];if(o=r.value,e.next(o),e.closed)return[2];s.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=s.sent(),i={error:c},[3,11];case 6:return s.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:s.sent(),s.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}}))}))})(t,e).catch((function(t){return e.error(t)}))}))}function ft(t,e){return e?J(t,e):dt(t)}function vt(t){return t&&p(t.schedule)}function Et(t){return t[t.length-1]}function gt(t){return p(Et(t))?t.pop():void 0}function _t(t){return vt(Et(t))?t.pop():void 0}function mt(t,e){return\"number\"==typeof Et(t)?t.pop():e}function bt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=_t(t);return n?J(t,n):ft(t)}function wt(t,e){var n=p(t)?t:function(){return t},r=function(t){return t.error(n())};return new L(e?function(t){return e.schedule(r,0,t)}:r)}var yt=f((function(t){return function(){t(this),this.name=\"EmptyError\",this.message=\"no elements in sequence\"}}));function Ot(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 yt)}})}))}function Ct(t,e){var n=\"object\"==typeof e;return new Promise((function(r,i){var o=new T({next:function(t){r(t),o.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new yt)}});t.subscribe(o)}))}function Nt(t){return t instanceof Date&&!isNaN(t)}var Tt=f((function(t){return function(e){void 0===e&&(e=null),t(this),this.message=\"Timeout has occurred\",this.name=\"TimeoutError\",this.info=e}}));function St(t,e){var n=Nt(t)?{first:t}:\"number\"==typeof t?{each:t}:t,r=n.first,i=n.each,o=n.with,s=void 0===o?It:o,a=n.scheduler,c=void 0===a?null!=e?e:$:a,u=n.meta,l=void 0===u?null:u;if(null==r&&null==i)throw new TypeError(\"No timeout provided.\");return U((function(t,e){var n,o,a=null,u=0,h=function(t){o=et(e,c,(function(){n.unsubscribe(),ht(s({meta:l,lastValue:a,seen:u})).subscribe(e)}),t)};n=t.subscribe(new k(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}))),h(null!=r?\"number\"==typeof r?r:+r-c.now():i)}))}function It(t){throw new Tt(t)}function At(t,e){return U((function(n,r){var i=0;n.subscribe(new k(r,(function(n){r.next(t.call(e,n,i++))})))}))}function Rt(t,e,n){return void 0===n&&(n=1/0),p(e)?Rt((function(n,r){return At((function(t,i){return e(n,t,r,i)}))(ht(t(n,r)))}),n):(\"number\"==typeof e&&(n=e),U((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;ht(n(t,l++)).subscribe(new k(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?e.add(s.schedule((function(){return f(t)}))):f(t)};c.length&&u<r;)t();d()}catch(t){e.error(t)}})))};return t.subscribe(new k(e,p,(function(){h=!0,d()}))),function(){null==a||a()}}(e,r,t,n)})))}function Dt(t){return void 0===t&&(t=1/0),Rt(D,t)}function Ht(){return Dt(1)}function Lt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return Ht()(ft(t,_t(t)))}function Pt(t){return new L((function(e){ht(t()).subscribe(e)}))}function Ut(t,e,n){void 0===t&&(t=0),void 0===n&&(n=z);var r=-1;return null!=e&&(vt(e)?n=e:r=e),new L((function(e){var i=Nt(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 kt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=_t(t),r=mt(t,1/0),i=t;return i.length?1===i.length?ht(i[0]):Dt(r)(ft(i,n)):Q}var xt,Gt,Ft,Mt,Bt,Kt,Wt=new L(C),Yt=Array.isArray;function Vt(t){return 1===t.length&&Yt(t[0])?t[0]:t}function jt(t,e){return function(n,r){return!t.call(e,n,r)}}function qt(t,e){return U((function(n,r){var i=0;n.subscribe(new k(r,(function(n){return t.call(e,n,i++)&&r.next(n)})))}))}function $t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 1===(t=Vt(t)).length?ht(t[0]):new L(zt(t))}function zt(t){return function(e){for(var n=[],r=function(r){n.push(ht(t[r]).subscribe(new k(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 Qt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=gt(t),r=Vt(t);return r.length?new L((function(t){var e=r.map((function(){return[]})),i=r.map((function(){return!1}));t.add((function(){e=i=null}));for(var o=function(o){ht(r[o]).subscribe(new k(t,(function(r){if(e[o].push(r),e.every((function(t){return t.length}))){var s=e.map((function(t){return t.shift()}));t.next(n?n.apply(void 0,u([],c(s))):s),e.some((function(t,e){return!t.length&&i[e]}))&&t.complete()}}),(function(){i[o]=!0,!e[o].length&&t.complete()})))},s=0;!t.closed&&s<r.length;s++)o(s);return function(){e=i=null}})):Q}function Jt(t){return U((function(e,n){var r,i=null,o=!1;i=e.subscribe(new k(n,void 0,void 0,(function(s){r=ht(t(s,Jt(t)(e))),i?(i.unsubscribe(),i=null,r.subscribe(n)):o=!0}))),o&&(i.unsubscribe(),i=null,r.subscribe(n))}))}function Xt(t,e){return p(e)?Rt(t,e,1):Rt(t,1)}function Zt(t){return U((function(e,n){var r=!1;e.subscribe(new k(n,(function(t){r=!0,n.next(t)}),(function(){r||n.next(t),n.complete()})))}))}function te(t){return t<=0?function(){return Q}:U((function(e,n){var r=0;e.subscribe(new k(n,(function(e){++r<=t&&(n.next(e),t<=r&&n.complete())})))}))}function ee(t,e){return void 0===e&&(e=D),t=null!=t?t:ne,U((function(n,r){var i,o=!0;n.subscribe(new k(r,(function(n){var s=e(n);!o&&t(i,s)||(o=!1,i=s,r.next(n))})))}))}function ne(t,e){return t===e}function re(t){return void 0===t&&(t=ie),U((function(e,n){var r=!1;e.subscribe(new k(n,(function(t){r=!0,n.next(t)}),(function(){return r?n.complete():n.error(t())})))}))}function ie(){return new yt}function oe(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?qt((function(e,n){return t(e,n,r)})):D,te(1),n?Zt(e):re((function(){return new yt})))}}function se(t){return t<=0?function(){return Q}:U((function(e,n){var r=[];e.subscribe(new k(n,(function(e){r.push(e),t<r.length&&r.shift()}),(function(){var t,e;try{for(var i=a(r),o=i.next();!o.done;o=i.next()){var s=o.value;n.next(s)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=i.return)&&e.call(i)}finally{if(t)throw t.error}}n.complete()}),void 0,(function(){r=null})))}))}function ae(t){return U((function(e,n){var r,i,o=!1,s=function(){r=e.subscribe(new k(n,void 0,void 0,(function(e){i||(i=new G,t(i).subscribe(new k(n,(function(){return r?s():o=!0})))),i&&i.next(e)}))),o&&(r.unsubscribe(),r=null,o=!1,s())};s()}))}function ce(t){void 0===t&&(t={});var e=t.connector,n=void 0===e?function(){return new G}: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=null,r=null,o=null,a=0,u=!1,l=!1,h=function(){null==r||r.unsubscribe(),r=null},d=function(){h(),e=o=null,u=l=!1},p=function(){var t=e;d(),null==t||t.unsubscribe()};return U((function(t,f){a++,l||u||h();var v=o=null!=o?o:n();f.add((function(){0!==--a||l||u||(r=ue(p,c))})),v.subscribe(f),e||(e=new T({next:function(t){return v.next(t)},error:function(t){l=!0,h(),r=ue(d,i,t),v.error(t)},complete:function(){u=!0,h(),r=ue(d,s),v.complete()}}),lt(t).subscribe(e))}))(t)}}function ue(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return!0===e?(t(),null):!1===e?null:e.apply(void 0,u([],c(n))).pipe(te(1)).subscribe((function(){return t()}))}function le(t,e,n){var r,i,o,s=!1;return t&&\"object\"==typeof t?(o=null!==(r=t.bufferSize)&&void 0!==r?r:1/0,e=null!==(i=t.windowTime)&&void 0!==i?i:1/0,s=!!t.refCount,n=t.scheduler):o=null!=t?t:1/0,ce({connector:function(){return new K(o,e,n)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:s})}function he(t){return qt((function(e,n){return t<=n}))}function de(t,e){return U((function(n,r){var i=null,o=0,s=!1,a=function(){return s&&!i&&r.complete()};n.subscribe(new k(r,(function(n){null==i||i.unsubscribe();var s=0,c=o++;ht(t(n,c)).subscribe(i=new k(r,(function(t){return r.next(e?e(n,t,c,s++):t)}),(function(){i=null,a()})))}),(function(){s=!0,a()})))}))}function pe(){return de(D)}function fe(t){return U((function(e,n){ht(t).subscribe(new k(n,(function(){return n.complete()}),C)),!n.closed&&e.subscribe(n)}))}function ve(t,e,n){var r=p(t)||e||n?{next:t,error:e,complete:n}:t;return r?U((function(t,e){t.subscribe(new k(e,(function(t){var n;null===(n=r.next)||void 0===n||n.call(r,t),e.next(t)}),(function(){var t;null===(t=r.complete)||void 0===t||t.call(r),e.complete()}),(function(t){var n;null===(n=r.error)||void 0===n||n.call(r,t),e.error(t)})))})):D}class Ee extends Error{constructor(t,e){super(t),this.type=e,this.type=e,Object.setPrototypeOf(this,new.target.prototype)}}function ge(t,e,n=xt.ERROR,r=Gt.JS_LIB){e?null==e||e.write({level:n,layer:r,message:t}):e||n!==xt.ERROR||console.error(t)}function _e(t){return void 0!==t}!function(t){t.ERROR=\"error\",t.WARNING=\"warning\",t.INFO=\"info\"}(xt||(xt={})),function(t){t.CHROME_EXTENSION=\"chrome-extension\",t.NATIVE_CONSOLE=\"native-console\",t.JS_LIB=\"js-lib\"}(Gt||(Gt={})),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\"}(Ft||(Ft={}));class me{constructor(t,e){this.compare=e,this.remove=new G,this.itemRemoved=this.remove,this.items=new M([]),this.itemList=this.items,this.itemAdded=t.pipe(At((t=>(this.addItem(t),t))),ce()),this.itemAdded.subscribe({next:t=>{t.onDisconnect.pipe(oe(),At((()=>this.removeItem(t.id))),qt(_e)).subscribe((t=>this.remove.next(t)))},error:C}),this.itemRemoved.subscribe({error:C})}getValue(){return[...this.items.getValue()]}addItem(t){if(this.items.getValue().filter((e=>e.id.equals(t.id))).length>0)throw new Ee(\"This item has already been added.\",Ft.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 Ee(\"Item not found and therefore cannot be removed.\",Ft.UNEXPECTED_ERROR);const r=e.splice(n,1)[0];return this.items.next(e),r}}class be{constructor(t,e){this.sdkVersion=\"4.1.2\",this.consoleAppVersion=t.pipe(oe((t=>\"ready\"===t.event)),At((t=>t.version)),St(1e3),le(1),Jt((()=>bt(null)))),this.chromeExtensionVersion=t.pipe(oe((t=>\"chrome-extension-ready\"===t.event)),At((t=>t.version)),St(1e3),le(1),Jt((()=>bt(null)))),Qt(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}`,ge(r,e,xt.INFO)}))}}class we{constructor(t,e,r){this.deviceDetector=t,this.deviceAdded=this.deviceDetector.deviceObservables.itemAdded,this.deviceRemoved=this.deviceDetector.deviceObservables.itemRemoved,this.deviceList=this.deviceDetector.deviceObservables.itemList,Mt.set(this,void 0),this._transport=e,this._readyEvents=e.consoleAppEvent.pipe(qt((t=>\"ready\"===t.event||\"chrome-extension-ready\"===t.event)),le(2)),this._readyEvents.subscribe(),this._config=r,this.transportContext=e.context,n(this,Mt,new be(this._readyEvents,null==r?void 0:r.logger),\"f\")}getVersion(){return e(this,Mt,\"f\").sdkVersion}getChromehostVersion(){return Ct(e(this,Mt,\"f\").consoleAppVersion)}getChromeExtensionVersion(){return Ct(e(this,Mt,\"f\").chromeExtensionVersion)}}Mt=new WeakMap,function(t){t.NODE=\"node\",t.CHROME_EXTENSION=\"chrome-extension\",t.WEB_HID=\"web-hid\"}(Bt||(Bt={})),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\"}(Kt||(Kt={}));const ye=\"Failed to dynamically import file. Please contact a Jabra representative as we would love to learn about scenarios where this could happen!\";function Oe(e,n=Kt.CHROME_EXTENSION,r){return t(this,void 0,void 0,(function*(){if(n!==Kt.WEB_HID){const t=yield import(\"./chrome-extension-transport-b7b99846.js\").catch((()=>{throw new Ee(ye,Ft.UNEXPECTED_ERROR)})),i=yield t.TransportChromeExtension.checkInstallation();if(i.ok)return ge(\"Using Chrome extension for transport.\",e,xt.INFO),new t.TransportChromeExtension(e,r);if(n===Kt.CHROME_EXTENSION)throw new Ee(i.message,Ft.INIT_ERROR);n===Kt.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK&&ge(i.message,e,xt.INFO)}return ge(\"Using WebHID for transport.\",e,xt.INFO),function(e,n){return t(this,void 0,void 0,(function*(){const t=yield import(\"./init-handler-beba0bba.js\").catch((()=>{throw new Ee(ye,Ft.UNEXPECTED_ERROR)})),r=yield import(\"./web-hid-transport-58a9d844.js\").catch((()=>{throw new Ee(ye,Ft.UNEXPECTED_ERROR)})),i=t.initHandler(e);return new r.WebHidTransport(i,e,n)}))}(e,r)}))}class Ce{constructor(t,e){this.log=t.consoleAppEvent.pipe(qt((t=>\"log\"===t.event)),At((t=>({message:t.message,level:t.level,layer:t.layer})))),this.log.subscribe((t=>ge(t.message,e,t.level,t.layer)))}}const Ne=[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 Te{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=Ne[e]^r<<8}return 65535&(0^r)}(n.join(\"-\")).toString(16).padStart(4,\"0\");return e===r}}var Se,Ie,Ae,Re,De,He,Le;!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\"}(Se||(Se={}));class Pe{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\"}(Ie||(Ie={})),function(t){t[t.DATA=1]=\"DATA\"}(Ae||(Ae={}));class Ue{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\"}(Re||(Re={})),function(t){t[t.EVENT=0]=\"EVENT\",t[t.READ=1]=\"READ\",t[t.WRITE=2]=\"WRITE\",t[t.REPLY=3]=\"REPLY\"}(De||(De={})),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\"}(He||(He={})),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\"}(Le||(Le={}));const ke={command:He.DEVICE,subCommand:Le.ATTACH_EVENT,serialize:t=>Uint8Array.from([5,0])};function xe(t){const e=t.payload,n=e[0],r=e.length-1;if(r!==n)throw new Ee(`Invalid response. Expected length: ${n}, actual: ${r}`,Ft.DEVICE_ERROR);const i=e.slice(1);return String.fromCharCode(...Array.from(i))}class Ge{constructor(){var t;this.command=He.IDENT,this.subCommand=Le.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 Ee(`Invalid response. Expected length: ${r}, actual: ${i}`,Ft.DEVICE_ERROR);const o=[];return n.slice(1).forEach((e=>{o.push(t(e))})),o})}}const Fe={command:He.IDENT,subCommand:Le.NAME,deserialize:xe},Me={command:He.IDENT,subCommand:Le.PID,deserialize:function(t){const e=t instanceof Ue?t.payload:t;return new DataView(e.buffer).getUint16(0,!0)}};class Be{constructor(){this.command=He.CONFIG,this.subCommand=Le.CONFIG_PREFERRED_SOFTPHONE,this.deserialize=t=>t.payload[0],this.serialize=t=>Uint8Array.of(t)}}class Ke{constructor(){this.command=He.IDENT,this.subCommand=Le.TYPE,this.deserialize=t=>t.source}}const We={command:He.IDENT,subCommand:Le.ID,deserialize:xe};\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function Ye(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 Ve,je,qe=Ye((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},w=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)},y=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)},O=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)},C=function(t,e){for(var n=0;n<c;n++)t[n]^=e[n]},N=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=N(N(T(o,5),n(E,s,a,c)),N(N(u,i[E]),r(E)));u=c,c=a,a=T(s,30),s=o,o=g}o=N(o,h),s=N(s,d),a=N(a,p),c=N(c,f),u=N(u,v)}return[o,s,a,c,u]},I=function(t){return a(S(s(t,{ibits:8,obits:32,obigendian:!0}),8*t.length),{ibits:32,ibigendian:!0})},A=function(t,e){function n(t,e,n,r,i,o){return N(T(N(N(e,t),N(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=N(a,d),c=N(c,p),u=N(u,f),l=N(l,v)}return[a,c,u,l]},R=function(t){return a(A(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);y(e,18),C(e,t),y(e,27);var n=p(t);y(n,59),m(e,this.mask);var r=v(n),i=p(e);return O(i,32-r),y(e,r),C(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=w(o,8),n[3]=255&i,i=w(o,8),n[2]=255&i,i=w(o,8),n[1]=255&i,i=w(o,8),n[0]=255&i,i=w(o,8),n[5]=255&i,i=w(o,8),n[4]=255&i,i=w(o,8),n[7]=255&i,i=w(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):I(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 $e{constructor(t){this.transport=t,this.gnpLockAcquired=t.consoleAppEvent.pipe(qt((t=>\"response-gnp-lock\"===t.event)),At((t=>t.token)),le(1)),this.gnpLockAcquired.subscribe()}acquireGnpLock(t){const e=new qe(4).toString(),n={action:\"request-gnp-lock\",id:t,token:e},r=this.gnpLockAcquired.pipe(oe((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\"}(Ve||(Ve={})),function(t){t.ABSOLUTE=\"absolute\",t.RELATIVE=\"relative\"}(je||(je={}));class ze{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 Qe(t,e,n){const r=t.toString(16).padStart(4,\"0\"),i=e.toString(16).padStart(4,\"0\");return new ze(`${r}:${i}:${n}`)}class Je{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 Je(new ze(t),e.usagePage,e.usage,e.value)}}class Xe{constructor(t,e,n){this.descriptor=e,this.transport=n,this.transportId=t.transportId,this.input=n.consoleAppEvent.pipe(qt((t=>t.id===this.transportId)),Xe.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 qe(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(oe((t=>\"response-hid-feature\"===t.event&&t.token===n)),At((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 Ze(t){return e=>e.pipe(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=gt(t);return U((function(e,r){for(var i=t.length,o=new Array(i),s=t.map((function(){return!1})),a=!1,l=function(e){ht(t[e]).subscribe(new k(r,(function(t){o[e]=t,a||s[e]||(s[e]=!0,(a=s.every(D))&&(s=null))}),C))},h=0;h<i;h++)l(h);e.subscribe(new k(r,(function(t){if(a){var e=u([t],c(o));r.next(n?n.apply(void 0,u([],c(e))):e)}})))}))}(t),qt((([t,e])=>e)),At((([t,e])=>t)))}Xe.inputReportsFilter=t=>t.pipe(qt((t=>\"hid-input\"===t.event)),At((t=>Je.deserialize(t.id,t))));class tn{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 Ue(e,n,i,o,s,c,r)}}tn.lengthMask=63;class en{constructor(){this.data=[]}hasHeader(){return this.data.length>=en.gnpPacketHeaderLength}expectedPacketLength(){if(!this.hasHeader())throw new Ee(\"Unable to get expected packet length without a full header\",Ft.UNEXPECTED_ERROR);return tn.packetLengthFromAttr(this.data[3])}appendData(t){this.hasHeader()&&this.expectedPacketLength()>en.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 Ee(\"Trying to get packet but buffer is not complete\",Ft.UNEXPECTED_ERROR);const t=tn.deserialize(Uint8Array.from(this.data));return this.data=[],t}}en.gnpPacketHeaderLength=6,en.gnpPacketMaxLength=63;const nn=()=>{};function rn(t){return ve((e=>t()),(e=>t()),(()=>nn))}const on=()=>{return t=t=>t.command===He.NACK,e=t=>new Ee(`Got NACK response. Reason: ${t.subCommand}`,Ft.DEVICE_ERROR),n=>n.pipe(At((n=>t(n)?wt(e(n)):bt(n))),pe());var t,e},sn=t=>oe((e=>e.type===De.REPLY&&e.sequenceNumber===t.sequenceNumber&&e.destination===t.source&&e.source===t.destination));class an{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(an.inputFilter),this.events=this.packets.pipe(an.eventsFilter),this.nextSequenceNumber=i}static get inputFilter(){return t=>{const e=t.pipe(qt((t=>t.usagePage===Ie.GN_PROTOCOL&&t.usage===Ae.DATA&&t.isArray()))),n=new en;return e.pipe(Rt((t=>{const e=t.value;if(n.appendData(e),n.hasFullPacket()){return bt(n.getPacketAndReset())}return Wt})),ce())}}static supportsGnpOverHid(t){return void 0!==t.findDescriptor(Ie.GN_PROTOCOL,Ae.DATA,Ve.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(Ie.GN_PROTOCOL,Ae.DATA,Ve.OUTPUT))||void 0===e?void 0:e.reportSize;if(!n)throw new Ee(\"Cannot send GNP packets to this device.\",Ft.DEVICE_ERROR);const r=class{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}}.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(Ie.GN_PROTOCOL,Ae.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 Ue(n,Re.PC_ADDR,De.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 Pe(t,(t=>new Uint8Array));return this.readWithParams(r,null,e,n)}readWithParams(t,e,n=this.primaryAddress,r=2500){const i=new Ue(n,Re.PC_ADDR,De.READ,t.command,t.subCommand,t.serialize(e),this.getNextSequenceNumber()),o=new G;return this.doWithGnpLockHeld(((e,n,s)=>{n.pipe(sn(i),on(),oe((t=>t.command===i.command&&t.subCommand===i.subCommand)),St(r),rn(s),At((e=>t.deserialize(e)))).subscribe(o),e(i)})),o}write(t,e,n=this.primaryAddress,r=2500){const i=new Ue(n,Re.PC_ADDR,De.WRITE,t.command,t.subCommand,t.serialize(e),this.getNextSequenceNumber()),o=new G;return this.doWithGnpLockHeld(((t,e,n)=>{e.pipe(sn(i),on(),oe((t=>t.command===He.ACK)),St(r),rn(n),At((()=>!0))).subscribe(o),t(i)})),o}}an.eventsFilter=t=>t.pipe(qt((t=>t.type===De.EVENT)));class cn{constructor(t,e){this.parentGnpChannel=t,this.primaryAddress=e,this.events=t.events.pipe(qt((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 un(t,e,n,r){if(!an.supportsGnpOverHid(t))return wt((()=>new Ee(\"Device does not support GNP commands.\",Ft.DEVICE_ERROR)));const i=bt(Re.HS_BT_USB_ADDR,Re.BASE_ADDR,Re.CRADLE_ADDR,Re.HS1_ADDR,Re.HS_CRADLE_ADDR).pipe(At(((r,i)=>Pt((()=>{const o=new an(t,new $e(e),n,r,i),s=new Ke;return o.read(s,r,500).pipe(At((t=>o)),Jt((()=>Q)))})))),Ht(),te(1),re((()=>new Ee(\"GNP probe failed.\",Ft.DEVICE_ERROR))));return $t(r.pipe(Rt((t=>wt((()=>new Ee(\"Device was suddenly disconnected.\",Ft.DEVICE_ERROR)))))),i).pipe(ce())}function ln(t,e){return new cn(t,e)}class hn{constructor(){this.primaryAddress=Re.BASE_ADDR,this.events=Wt}subscribeToEvent(t,e){return wt((()=>new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)))}sendEvent(t,e,n){throw new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)}read(t,e,n){return wt((()=>new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)))}readWithParams(t,e,n,r){return wt((()=>new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)))}write(t,e,n,r){return wt((()=>new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)))}}class dn{constructor(t){this.transportId=t,this.isChild=!1}equals(t){return this.isChild===t.isChild&&this.transportId===t.transportId}toString(){return this.transportId}}class pn{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 fn,vn,En;!function(t){t.NO_TRACKING=\"no-tracking\",t.TRACK_ERRORS=\"track-errors\",t.TRACK_USAGE=\"track-usage\",t.TRACK_ALL=\"track-all\"}(fn||(fn={})),function(t){t[t.BLUETOOTH=0]=\"BLUETOOTH\",t[t.INDIRECT=1]=\"INDIRECT\",t[t.USB=2]=\"USB\"}(vn||(vn={})),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\"}(En||(En={}));class gn{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:C})}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 gn(t,e,n,r.events,r.primaryAddress,s,a,c,u,i,o)}}const _n=(t=3,e=500)=>n=>n.pipe(Rt(((n,r)=>{const i=r+1;return i>t?wt((()=>n)):Ut(i*i*e)})));function mn(t,e,n,r=1e3,i=3,o=100){return Pt((()=>t.read(e,n,r))).pipe(ae(_n(i,o)))}function bn(t,e,n){const{deviceType:r,address:i}=n;return{transportId:e.transportId,vid:e.vid,pid:mn(t,Me,i),name:mn(t,Fe,i),serialNumber:mn(t,We,i),capabilities:e.capabilities,deviceType:r,connectionGnpAddress:i}}class wn{constructor(t,e,n=bn,r=gn.createConnection,i=ln){this.parentConnection=e,this.connectionCreator=r,this.createChildGnpChannel=i;const o=e.events.pipe(qt((t=>t.command===He.DEVICE&&t.subCommand===Le.ATTACH_EVENT)),At((t=>({deviceType:t.payload[0],address:t.payload[1]})))).pipe(At(n.bind(null,e,t)));this.connectionEvents=o.pipe(At((t=>{const n=$t(e.events.pipe(oe((e=>e.command===He.DEVICE&&e.subCommand===Le.DETACH_EVENT&&e.payload[1]===t.connectionGnpAddress)),At(C)),e.onDisconnect);return{attach:t,detach:n}})),Rt((t=>Qt(bt(t.attach),this.createConnection(t.attach,t.detach)))),At((([t,e])=>({event:t,connection:e}))),fe(e.onDisconnect)),e.sendEvent(ke,[])}createConnection(t,e){const n=t.connectionGnpAddress,r=this.createChildGnpChannel(this.parentConnection,n),i=new pn(this.parentConnection.id,n);return bt(this.connectionCreator(i,vn.INDIRECT,this.parentConnection.hidChannel,r,e,this.parentConnection.id))}}const yn={command:He.IDENT,subCommand:Le.TYPE,deserialize:t=>{const{payload:e}=t,n=e[0];if(n<1||n>=e.length)throw new Ee(\"Cannot get device type.\",Ft.DEVICE_ERROR);return e[1]}};function On(t,e,n,r=xt.ERROR,i=Gt.JS_LIB){ge(`${t} ${function(t){if(t instanceof Ee){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)}`,n,r,i)}function Cn(t){return new wn(t.event,t.connection).connectionEvents}class Nn{constructor(t,e,n=((t,e,n)=>new Xe(t,e,n)),r=un,i=Cn,o=gn.createConnection){this.transport=t,this.logger=e,this.createHidChannel=n,this.createRootGnpChannel=r,this.connectionCreator=o;const s=this.transport.consoleAppEvent.pipe(qt((t=>\"attach\"===t.event)),At(Nn.createAttachEvent),Jt(((t,e)=>(On(\"\",t,this.logger),e)))).pipe(At((t=>{const e=this.transport.consoleAppEvent.pipe(qt((t=>\"detach\"===t.event)),oe((e=>Nn.getTransportId(e)===t.transportId)),At(C),le());return e.subscribe(),{attach:t,detach:e}})),Rt((t=>this.createConnection(t.attach,t.detach))),ce()),a=s.pipe(qt((t=>t.event.deviceType===En.DONGLE)),qt((t=>an.supportsGnpOverHid(t.connection.hidChannel))),Rt((t=>i(t))));this.connectionEvents=kt(s,a).pipe(ce())}static convertToReportType(t){switch(t){case\"input\":return Ve.INPUT;case\"output\":return Ve.OUTPUT;case\"feature\":return Ve.FEATURE;default:throw new Ee(`${t} is not a valid ReportType`,Ft.UNEXPECTED_ERROR)}}static convertToValueType(t){switch(t){case\"absolute\":return je.ABSOLUTE;case\"relative\":return je.RELATIVE;default:throw new Ee(`${t} Not a valid ValueType`,Ft.UNEXPECTED_ERROR)}}static createDescriptor(t){return t.map((t=>({reportType:Nn.convertToReportType(t.reportType),usagePage:t.usagePage,usage:t.usage,valueType:Nn.convertToValueType(t.valueType),reportSize:t.reportSize})))}static getMandatoryField(t,e){const n=t[e];if(void 0===n)throw new Ee(`JSON event lacks required field \"${e}: ${JSON.stringify(t)}`,Ft.UNEXPECTED_ERROR);return n}static getTransportId(t){return Nn.getMandatoryField(t,\"id\")}static createAttachEvent(t){return{transportId:Nn.getTransportId(t),vid:Nn.getMandatoryField(t,\"vid\"),pid:bt(Nn.getMandatoryField(t,\"pid\")),name:bt(Nn.getMandatoryField(t,\"name\")),serialNumber:bt(Nn.getMandatoryField(t,\"serialNumber\")),capabilities:Nn.createDescriptor(Nn.getMandatoryField(t,\"descriptor\"))}}createConnection(t,e,n=3,r=100){const{capabilities:i,transportId:o}=t,s=new dn(o),a=this.createHidChannel(s,i,this.transport),c=this.createRootGnpChannel(a,this.transport,o,e).pipe(Jt(((t,e)=>(t.type&&t.type===Ft.DEVICE_ERROR&&this.transport.context===Bt.WEB_HID&&ge(\"Child devices are not yet supported when using WebHID.\",this.logger,xt.WARNING,Gt.JS_LIB),bt(new hn)))),ce()),u=c.pipe(Rt((t=>t.read(yn))),ae(_n(n,r)),Jt((t=>bt(En.ANY))));return Qt(c,u).pipe(fe(e),At((([n,r])=>({event:Object.assign(Object.assign({},t),{deviceType:r,connectionGnpAddress:n.primaryAddress}),connection:this.connectionCreator(s,vn.USB,a,n,e)}))))}}var Tn,Sn,In,An,Rn;class Dn{constructor(t,r,i,o,s,a){this.vendorId=t,this.productId=r,this.serialNumber=i,this.name=o,this.type=s,Sn.set(this,void 0),n(this,Sn,new me(a,e(Dn,Tn,\"m\",An)),\"f\"),this.connectionAdded=e(this,Sn,\"f\").itemAdded,this.connectionRemoved=e(this,Sn,\"f\").itemRemoved,this.connectionList=e(this,Sn,\"f\").itemList,this.onDisconnect=e(this,Sn,\"f\").itemList.pipe(he(1),oe((t=>0===t.length)),At(C),ce())}get id(){return Qe(this.vendorId,this.productId,this.serialNumber)}get currentConnections(){return e(this,Sn,\"f\").getValue()}get browserLabel(){return`${this.vendorId.toString(16).padStart(4,\"0\")}:${this.productId.toString(16).padStart(4,\"0\")}`}}Tn=Dn,Sn=new WeakMap,An=function(t,n){return e(Dn,Tn,\"f\",In).indexOf(t.type)-e(Dn,Tn,\"f\",In).indexOf(n.type)},In={value:[vn.USB,vn.INDIRECT,vn.BLUETOOTH]};class Hn{constructor(t){this.deviceObservables=new me(t)}static exceptionToUndefined(t){try{return t()}catch(t){if(t instanceof Ee)return;throw t}}connectionExists(t){return void 0!==Hn.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 Ee(`Could not find connection with id ${t.toString()}`,Ft.UNEXPECTED_ERROR)}findDeviceByDeviceId(t){return this.deviceObservables.getValue().find((e=>e.id.startsWith(t)||t.startsWith(e.id)))}}class Ln{constructor(t,e){this.logger=e;const[n,r]=(i=t.pipe(qt((t=>!this.deviceCollection.connectionExists(t.connection.id))),Xt((t=>this.force(t)))),[qt(o=({event:t,pid:e,serialNumber:n})=>!this.deviceCollection.findDeviceByDeviceId(Qe(t.event.vid,e,n)),s)(ht(i)),qt(jt(o,s))(ht(i))]);var i,o,s;const a=n.pipe(At((t=>Ln.createDevice(t,r))));this.deviceCollection=new Hn(a),this.deviceObservables=this.deviceCollection.deviceObservables}force(t){const{name:e,pid:n,serialNumber:r}=t.event,i=t.connection.onDisconnect.pipe((o=wt((()=>new Error(`Connection with ID ${t.connection.id} disconnected`))),p(s)?Xt((function(){return o}),s):Xt((function(){return o}))));var o,s;return Qt(e,n,r).pipe(At((([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?U((function(e,n){zt(u([e],c(t)))(n)})):D}(i),Jt((t=>(ge(`Failed to retrieve child connection information. Error: ${t}`,this.logger,xt.WARNING,Gt.JS_LIB),Q))))}static createDevice(t,e){const{event:n,pid:r,name:i,serialNumber:o}=t,{vid:s,deviceType:a}=n.event,c=e.pipe(qt((e=>Ln.isSameDevice(t,e))),At((t=>t.event.connection))),u=Lt(bt(n.connection),c);return new Dn(s,r,o,i,a,u)}static isSameDevice(t,e){const n=Qe(t.event.event.vid,t.pid,t.serialNumber),r=Qe(e.event.event.vid,e.pid,e.serialNumber);return n.startsWith(r)||r.startsWith(n)}static create(t,e){const n=new Nn(t,e);return new Ln(n.connectionEvents)}}function Pn(e){var n,r,i;return t(this,void 0,void 0,(function*(){const t=null==e?void 0:e.logger;ge(\"Jabra SDK JS starting up...\",t,xt.INFO);const o=new Te(e);o.validateOrganizationKey(),o.validateAppId(),o.validateAppName();const s=null!==(r=null===(n=null==e?void 0:e.internal)||void 0===n?void 0:n.testDeviceTransport)&&void 0!==r?r:yield Oe(t,null==e?void 0:e.transport,null===(i=null==e?void 0:e.internal)||void 0===i?void 0:i.recorder);new Ce(s,t);const a=Ln.create(s,t),c=new we(a,s,e);return yield s.connect(),c}))}class Un{constructor(t,e,n,r){this.deviceId=t,this.usagePage=e,this.usage=n,this.value=r}}class kn{constructor(t,e){this.token=t,this.value=e}}!function(t){t.UsageReport=class{constructor(t,e){this.usage=t,this.value=e}}}(Rn||(Rn={}));var xn,Gn,Fn,Mn,Bn,Kn,Wn,Yn,Vn,jn,qn=Ye((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 $n(){return t(this,void 0,void 0,(function*(){const{hid:t}=window.navigator;if(!t)throw new Ee(\"WebHID not supported\",Ft.INIT_ERROR);const e=yield t.requestDevice({filters:[{vendorId:xn.VENDOR_ID}]});return new BroadcastChannel(xn.PAIRING_CHANNEL).postMessage(null),e}))}!function(t){t[t.VENDOR_ID=2830]=\"VENDOR_ID\",t.PAIRING_CHANNEL=\"jabra-webhid-pairing-channel\"}(xn||(xn={})),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\"}(Gn||(Gn={}));class zn{constructor(t,e,n){this.type=t,this.value=e,this.valueType=n}toString(){return void 0===Gn[this.type]?`Unknown signal: type: ${this.type}, value: ${this.value}, valueType: ${this.valueType}`:`Signal: type: ${Gn[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\"}(Fn||(Fn={})),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\"}(Mn||(Mn={})),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\"}(Bn||(Bn={}));class Qn{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(ce());return t.subscribe(),t}filter(){const t=this.hidChannel.input.pipe(qt((t=>t.usagePage===Fn.GN_TELEPHONY&&!t.isArray())),Rt((t=>{const e=this.hidChannel.findDescriptor(t.usagePage,t.usage,Ve.INPUT);return(null==e?void 0:e.valueType)?bt(Object.assign(Object.assign({},t),{valueType:e.valueType})):(On(\"\",new Ee(`Unable to find value-type in descriptor for UsagePage: ${t.usagePage} and Usage: ${t.usage}`,Ft.FEATURE_NOT_SUPPORTED),this.logger),Q)})),qt((t=>{if(t.valueType===je.RELATIVE)return Boolean(t.value);return this.cachedSignals.get(t.usage)!==t.value})),ve((t=>{this.cachedSignals.set(t.usage,t.value)})),fe(this.onDisconnect),ce()),e=[Gn.HOOK_SWITCH,Gn.REDIAL],n=t.pipe(Ze(this.isSoftphoneInFocus),qt((t=>e.includes(t.usage)&&!this.lockHeld.getValue())));return kt(t.pipe(qt((t=>this.lockHeld.getValue()))),n).pipe(At((t=>new zn(t.usage,0!==t.value,t.valueType))),Jt((t=>(ge(t.message,this.logger),Q))))}}class Jn{constructor(t,r,i,o,s,a){this.device=t,this.onDisconnect=i,Kn.set(this,void 0),Wn.set(this,new M(!1)),Yn.set(this,void 0),Vn.set(this,!1),this.deviceSignals=new G,n(this,Kn,o,\"f\"),e(this,Kn,\"f\").lockHeld.subscribe(e(this,Wn,\"f\")),n(this,Yn,r,\"f\"),this.onDisconnect.pipe(oe(),At((()=>!0))).subscribe((t=>{n(this,Vn,t,\"f\")}));const c=new Qn(e(this,Yn,\"f\"),this.onDisconnect,s,e(this,Wn,\"f\"),a);this.deviceSignals=c.setup()}checkCallLockHeld(t){if(!e(this,Wn,\"f\").getValue())throw new Ee(t,Ft.SDK_USAGE_ERROR)}checkCallLockNotHeld(t){if(e(this,Wn,\"f\").getValue())throw new Ee(t,Ft.SDK_USAGE_ERROR)}checkHasDisconnected(){if(e(this,Vn,\"f\"))throw new Ee(\"CallControl cannot be performed as the connection has disconnected.\",Ft.SDK_USAGE_ERROR)}takeCallLock(){return this.checkHasDisconnected(),this.checkCallLockNotHeld(\"Trying to take the call lock, but it is already held!\"),Ot(e(this,Kn,\"f\").tryTakeCallLock())}releaseCallLock(){this.checkHasDisconnected(),this.checkCallLockHeld(\"Trying to release the call lock, but it is not held!\"),e(this,Kn,\"f\").releaseCallLock()}offHook(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"Calls can only be started and stopped when the call lock is held.\");const n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.OFF_HOOK,Ve.OUTPUT);if(!n)throw new Ee(`Device ${this.device.name} does not support any offHook functionality.`,Ft.FEATURE_NOT_SUPPORTED);const r=t?1:0;e(this,Yn,\"f\").output(n.usagePage,n.usage,r)}ring(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The ringer state can only be modified when the call lock is held.\");const n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.RING,Ve.OUTPUT),r=e(this,Yn,\"f\").findDescriptor(Fn.GN_TELEPHONY,Bn.RINGER,Ve.OUTPUT);if(!n&&!r)throw new Ee(`Device ${this.device.name} does not support any ring functionality.`,Ft.FEATURE_NOT_SUPPORTED);if(r){const n=t?1:0;e(this,Yn,\"f\").output(r.usagePage,r.usage,n)}if(n){const r=t?1:0;e(this,Yn,\"f\").output(n.usagePage,n.usage,r)}}mute(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The mute state can only be modified when the call lock is held.\");let n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.MIC_MUTE,Ve.OUTPUT);if(n||(n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.MUTE,Ve.OUTPUT)),!n)throw new Ee(`Device ${this.device.name} does not support any mute functionality.`,Ft.FEATURE_NOT_SUPPORTED);const r=t?1:0;e(this,Yn,\"f\").output(n.usagePage,n.usage,r)}hold(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The hold state can only be modified when the call lock is held.\");const n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.HOLD,Ve.OUTPUT);if(!n)throw new Ee(`Device ${this.device.name} does not support hold functionality.`,Ft.FEATURE_NOT_SUPPORTED);const r=t?1:0;e(this,Yn,\"f\").output(n.usagePage,n.usage,r)}}Kn=new WeakMap,Wn=new WeakMap,Yn=new WeakMap,Vn=new WeakMap,function(t){t[t.STD_TELEPHONY=0]=\"STD_TELEPHONY\",t[t.GN_TELEPHONY=1]=\"GN_TELEPHONY\"}(jn||(jn={}));const Xn={[Se.SKYPE]:jn.GN_TELEPHONY,[Se.CISCO]:jn.GN_TELEPHONY,[Se.AVAYA]:jn.GN_TELEPHONY,[Se.SIEMENS]:jn.GN_TELEPHONY,[Se.IBM]:jn.GN_TELEPHONY,[Se.AASTRA]:jn.GN_TELEPHONY,[Se.JABRA]:jn.GN_TELEPHONY,[Se.NEC]:jn.GN_TELEPHONY,[Se.SHORETEL]:jn.GN_TELEPHONY,[Se.MS_OC]:jn.STD_TELEPHONY,[Se.ALCATEL]:jn.STD_TELEPHONY,[Se.OTHER]:jn.STD_TELEPHONY,[Se.NORTEL]:null,[Se.GENERIC]:null};function Zn(t,e){const n=t.read(new Be).pipe(At((t=>Xn[t]===e))),r=t.read(new Ge).pipe(At((t=>t.find((t=>Xn[t]===e))))).pipe(At((e=>e?t.write(new Be,e):bt(!1))),pe());return n.pipe((i=bt(!0),o=r,t=>t.pipe(At((t=>t?i:o)),pe())));var i,o}class tr{constructor(t,e,n){this.connectionCallLock=t,this.device=e,this.logger=n,this.lockHeld=new M(!1),this.currentLocks=new M(new Set),this.lockReleaseEvent=new G}tryTakeCallLock(){const{currentConnections:t}=this.device,e=new Set,n=Pt((()=>lt(t).pipe(Xt((t=>this.takeSingleCallLock(t).pipe(Jt((t=>(On(\"DeviceCallLock:\",t,this.logger),bt(\"\"))))))),ve((t=>e.add(t)))))).pipe(function(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?qt((function(e,n){return t(e,n,r)})):D,se(1),n?Zt(e):re((function(){return new yt})))}}(),At((n=>(e.delete(\"\"),this.currentLocks.next(e),e.size!==t.length?(this.releaseCallLock(),!1):(this.lockHeld.next(!0),!0)))),le());return n.subscribe((t=>{t&&(this.acquireLockOnNextConnectionEmit(),this.releaseLockOnRemovedConnectionEmit())})),n}acquireLockOnNextConnectionEmit(){this.device.connectionAdded.pipe(fe(this.lockReleaseEvent)).subscribe((t=>{this.takeSingleCallLock(t).pipe(fe(this.lockReleaseEvent),At((t=>(this.currentLocks.getValue().add(t),this.currentLocks.next(this.currentLocks.getValue()),C))),ae(_n())).subscribe({error:t=>{ge(`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,xt.WARNING,Gt.JS_LIB)}})}))}releaseLockOnRemovedConnectionEmit(){this.device.connectionRemoved.pipe(fe(this.lockReleaseEvent)).subscribe((t=>this.releaseSingleCallLock(t.id.transportId)))}takeSingleCallLock(t){return Pt((()=>this.connectionCallLock.tryTakeCallLock(t.id.transportId))).pipe(At((e=>e.acquired?bt(e.transportId):wt((()=>new Ee(`Failed to acquire call lock on connection ${t.id.transportId}`,Ft.SDK_USAGE_ERROR))))),pe())}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 er{constructor(t){this.transport=t}tryTakeCallLock(t){const e={action:\"request-call-lock\",id:t};return this.transport.writeAction(e),this.transport.consoleAppEvent.pipe(qt((e=>\"response-call-lock\"===e.event&&e.id===t)),At((t=>({transportId:t.id,acquired:t.acquired}))),oe())}releaseCallLock(t){const e={action:\"release-call-lock\",id:t};this.transport.writeAction(e)}}const nr=[{usagePage:Fn.GN_LED,usage:Mn.OFF_HOOK,reportType:Ve.OUTPUT},{usagePage:Fn.GN_LED,usage:Mn.RING,reportType:Ve.OUTPUT},{usagePage:Fn.GN_TELEPHONY,usage:Bn.RINGER,reportType:Ve.OUTPUT},{usagePage:Fn.GN_LED,usage:Mn.MIC_MUTE,reportType:Ve.OUTPUT},{usagePage:Fn.GN_LED,usage:Mn.MUTE,reportType:Ve.OUTPUT},{usagePage:Fn.GN_LED,usage:Mn.HOLD,reportType:Ve.OUTPUT}],rr=[vn.USB,vn.INDIRECT,vn.BLUETOOTH];function ir(t,e){const{hidChannel:n}=t;return!!function(t){return nr.some((({usagePage:e,usage:n,reportType:r})=>t.findDescriptor(e,n,r)))}(n)&&(!an.supportsGnpOverHid(n)||e!==En.DONGLE&&e!==En.OTHER)}function or(t){const{currentConnections:e,type:n}=t;var r;return(r=e,[...r].sort(((t,e)=>rr.indexOf(t.type)-rr.indexOf(e.type)))).find((t=>ir(t,n)))}function sr(t,e,n,r,i){const o=or(t),{hidChannel:s,onDisconnect:a}=o,c=new tr(new er(r),t,i);if(e)return bt(new Jn(t,s,a,c,n.softphoneInFocus,i));if(r.context===Bt.WEB_HID)return bt(new Jn(t,s,a,c,n.softphoneInFocus,i));return function(t,e){return t.findDescriptor(Fn.GN_TELEPHONY,Bn.GN_TELEPHONY_CONT_SET,Ve.FEATURE)?Pt((()=>(t.setFeatureReport(Fn.GN_TELEPHONY,Bn.GN_TELEPHONY_CONT_SET,1),bt(!0)))):e?Zn(e,jn.GN_TELEPHONY):bt(!1)}(s,o).pipe(At((e=>new Jn(t,s,a,c,n.softphoneInFocus,i))))}class ar{constructor(t){this.devComm=t,this.softphoneInFocus=new L,this.softphoneInFocus=this.devComm.consoleAppEvent.pipe(qt((t=>\"softphone-in-focus\"===t.event)),At((t=>t.infocus)),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=_t(t);return U((function(e,r){(n?Lt(t,e,n):Lt(t,e)).subscribe(r)}))}(!1),le(1)),this.softphoneInFocus.subscribe((()=>{}))}setSharedSoftphoneInfo(t){if(!(null==t?void 0:t.partnerKey)||!(null==t?void 0:t.appId))return void ge(\"Unable to register with Jabra Direct: partnerKey or appId missing in config\",null==t?void 0:t.logger,xt.WARNING);const e=t.partnerKey+t.appId,n=new qe(5,\"ns:OID\",e);let{appName:r}=t;if((!t.appName||t.appName.length<3)&&(ge(\"App name missing in config. Fall back to use appId as app name.\",null==t?void 0:t.logger,xt.WARNING),r=t.appId),r.length>100)return void ge(\"Unable to register with Jabra Direct: appName must be below 100 characters.\",null==t?void 0:t.logger,xt.WARNING);const i={action:\"set-softphone-info\",name:r,id:n.toString()};this.devComm.writeAction(i)}}var cr,ur,lr,hr,dr,pr,fr,vr,Er,gr;class _r{constructor(t){var r;cr.set(this,void 0),ur.set(this,void 0),lr.set(this,void 0),hr.set(this,void 0),n(this,ur,new ar(t._transport),\"f\"),e(this,ur,\"f\").setSharedSoftphoneInfo(t._config),n(this,cr,t._transport,\"f\"),n(this,lr,null===(r=t._config)||void 0===r?void 0:r.logger,\"f\"),n(this,hr,t._readyEvents.pipe(oe((t=>\"ready\"===t.event)),At((t=>t.jabraDirectInstalled))),\"f\")}createCallControl(t){if(!this.supportsCallControl(t))return Promise.reject(new Ee(`Device ${t.name} does not support call control.`,Ft.FEATURE_NOT_SUPPORTED));return Ct(e(this,hr,\"f\").pipe(Rt((n=>sr(t,n,e(this,ur,\"f\"),e(this,cr,\"f\"),e(this,lr,\"f\"))))))}supportsCallControl(t){return void 0!==or(t)}}cr=new WeakMap,ur=new WeakMap,lr=new WeakMap,hr=new WeakMap,function(t){t.HOLD_CURRENT=\"hold-current\",t.END_CURRENT=\"end-current\"}(dr||(dr={})),function(t){t.MUTED=\"muted\",t.UNMUTED=\"unmuted\",t.NO_ONGOING_CALLS=\"no-ongoing-calls\"}(pr||(pr={})),function(t){t.ON_HOLD=\"on-hold\",t.NOT_ON_HOLD=\"not-on-hold\",t.NO_ONGOING_CALLS=\"no-ongoing-calls\"}(fr||(fr={})),function(t){t.NO_INCOMING=\"no-incoming\",t.AWAITING_RESPONSE=\"awaiting-response\",t.RESOLVING_RESPONSE=\"resolving-response\",t.ACCEPTED=\"accepted\",t.REJECTED=\"rejected\"}(vr||(vr={}));class mr{constructor(t){this.state=t.value,t.subscribe((t=>{this.state=t}))}}class br extends mr{constructor(t,e,n,r,i){super(t),this.commands=e,this.deviceSignals=n,this.enableFlash=r,this.logger=i}setupSignalListeners(){const e=this.extendedSignals.pipe(ce()),n=e.pipe(qt((t=>t.allowed))),r=e.pipe(qt((t=>!t.allowed)));n.subscribe((t=>{ge(`Accepted signal: ${Gn[t.type]} [${t.value}]`,null==this?void 0:this.logger,xt.INFO)})),r.subscribe((t=>{ge(`Ignored signal: ${Gn[t.type]} [${t.value}]`,null==this?void 0:this.logger,xt.INFO)})),n.pipe(qt((t=>t.type===Gn.HOOK_SWITCH))).subscribe((t=>{this.state.incomingCall!==vr.AWAITING_RESPONSE?(!1===t.value&&this.state.ongoingCalls>0&&this.commands.hookHandler.queueEndCall(!0),!0===t.value&&0===this.state.ongoingCalls&&this.commands.hookHandler.queueStartCall()):this.commands.incomingCallHandler.queueAcceptIncomingCall(dr.END_CURRENT,!0)})),n.pipe(qt((t=>t.type===Gn.PHONE_MUTE))).subscribe((()=>{this.commands.muteHandler.queueToggleMute()})),n.pipe(qt((t=>t.type===Gn.FLASH))).subscribe((()=>t(this,void 0,void 0,(function*(){this.state.incomingCall!==vr.AWAITING_RESPONSE?this.state.ongoingCalls>1?this.commands.swapHandler.queueSwapCalls():this.commands.holdHandler.queueToggleHold():yield this.commands.incomingCallHandler.queueAcceptIncomingCall(dr.HOLD_CURRENT,!0)})))),n.pipe(qt((t=>t.type===Gn.REJECT_CALL))).subscribe((()=>{this.state.incomingCall===vr.AWAITING_RESPONSE&&this.commands.incomingCallHandler.queueRejectIncomingCall()}))}get extendedSignals(){return this.deviceSignals.pipe(Rt((t=>{let e=!this.state.ignoreSignals.some((([e,n])=>t.type===e&&n===t.value));return t.type!==Gn.FLASH||this.enableFlash||(e=!1),bt(Object.assign(Object.assign({},t),{allowed:e}))})),fe(this.commands.teardownHandler.onTeardown))}}class wr{constructor(t,r,i,o,s,a,c=!0){this.logger=a,Er.set(this,void 0),this.device=t,this.onDisconnect=r,this.muteState=s.muteState,n(this,Er,o,\"f\"),this.onDisconnect.pipe(oe(),fe(e(this,Er,\"f\").teardownHandler.onTeardown)).subscribe((t=>this.teardown(!1)));new br(s.internalState,o,i,c,a).setupSignalListeners()}endCall(){return e(this,Er,\"f\").hookHandler.queueEndCall(!1)}signalIncomingCall(){try{e(this,Er,\"f\").teardownHandler.checkActive()}catch(t){return Promise.reject(t)}return e(this,Er,\"f\").incomingCallHandler.signalIncomingCall()}rejectIncomingCall(){return e(this,Er,\"f\").incomingCallHandler.queueRejectIncomingCall()}mute(){return e(this,Er,\"f\").muteHandler.queueSetMute(pr.MUTED)}unmute(){return e(this,Er,\"f\").muteHandler.queueSetMute(pr.UNMUTED)}teardown(t=!0){e(this,Er,\"f\").teardownHandler.teardown(t)}_setInitialState(t,n=!1,r=!1){return 0===t&&(n||r)&&ge(\"\\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,xt.WARNING),e(this,Er,\"f\").deviceState.setInitialState(t,n,r)}}Er=new WeakMap;class yr extends wr{constructor(t,e,r,i,o,s){super(t,e,r,i,o,s,!0),gr.set(this,void 0),this.ongoingCalls=o.ongoingCalls,this.holdState=o.holdState,this.swapRequest=o.swapEvents,n(this,gr,i,\"f\")}startCall(){return e(this,gr,\"f\").hookHandler.queueStartCall()}acceptIncomingCall(t=dr.END_CURRENT){return e(this,gr,\"f\").incomingCallHandler.queueAcceptIncomingCall(t,!1)}hold(){return e(this,gr,\"f\").holdHandler.queueSetHold(fr.ON_HOLD)}resume(){return e(this,gr,\"f\").holdHandler.queueSetHold(fr.NOT_ON_HOLD)}}gr=new WeakMap;class Or extends mr{constructor(t,e,n){super(e),this.callControl=t,this.logger=n,this.hasLock=!1}takeCallLock(){return t(this,void 0,void 0,(function*(){if(!this.hasLock){try{this.hasLock=yield this.callControl.takeCallLock()}catch(t){this.hasLock=!0,ge(t.message,null==this?void 0:this.logger,xt.WARNING)}if(!this.hasLock)throw new Ee(\"Device used by another softphone. Only one application can use the device at a time.\",Ft.SDK_USAGE_ERROR)}}))}releaseCallLock(){0===this.state.ongoingCalls&&(this.callControl.releaseCallLock(),this.hasLock=!1)}forceReleaseCallLock(){this.hasLock&&this.callControl.releaseCallLock()}}class Cr{constructor(e){this.teardownHandler=e,this.queue=new G,this.queue.pipe(Xt((e=>t(this,void 0,void 0,(function*(){try{const t=yield e.command();e.callback(t)}catch(t){if(!(t instanceof Ee))throw t;e.errCallback(t)}})))),fe(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 Nr extends mr{constructor(t,e,n,r){super(r),this.hookHandler=t,this.holdHandler=e,this.muteHandler=n}setInitialState(e,n,r){return t(this,void 0,void 0,(function*(){if(0===e)return yield this.hookHandler.queueStartCall(),void(yield this.hookHandler.queueEndCall(!1));for(let t=0;t<e;t+=1)yield this.hookHandler.queueStartCall();const t=r?fr.ON_HOLD:fr.NOT_ON_HOLD;yield this.holdHandler.queueSetHold(t);const i=n?pr.MUTED:pr.UNMUTED;yield this.muteHandler.queueSetMute(i)}))}}class Tr extends mr{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((()=>t(this,void 0,void 0,(function*(){const t=this.state.holdState===fr.ON_HOLD?fr.NOT_ON_HOLD:fr.ON_HOLD;this.setHold(t)}))))}setHold(e){return t(this,void 0,void 0,(function*(){if(0===this.state.ongoingCalls){const t=e===fr.ON_HOLD?\"hold\":\"resume\";throw new Ee(`Cannot ${t} call as there are no calls in progress.`,Ft.SDK_USAGE_ERROR)}if(this.state.ongoingCalls>1&&e===fr.NOT_ON_HOLD)return void(yield this.resumeWhileMultiple());this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:e}));const t=e===fr.NOT_ON_HOLD,n=e===fr.ON_HOLD,r=[[Gn.HOOK_SWITCH,t],[Gn.FLASH,!0]];n&&this.state.muteState===pr.MUTED&&r.push([Gn.PHONE_MUTE,!0]);const i=this.awaitSignals.listen(r);this.callControl.offHook(t),this.callControl.hold(n),yield Ot(i)}))}resumeWhileMultiple(){return t(this,void 0,void 0,(function*(){const t=this.awaitSignals.listen([[Gn.HOOK_SWITCH,!0]]);this.callControl.hold(!1),this.callControl.offHook(!0),this.callControl.hold(!0),yield Ot(t),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:fr.NOT_ON_HOLD}))}))}}class Sr extends mr{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(e=!1){return t(this,void 0,void 0,(function*(){if(this.state.incomingCall===vr.AWAITING_RESPONSE)throw new Ee(\"Cannot start a new call while another call is incoming. If you wish to answer/accept the incoming call, please use acceptIncomingCall/rejectIncomingCall instead.\",Ft.SDK_USAGE_ERROR);this.state.holdState===fr.ON_HOLD?this.startNewCallWhileOnHold():0===this.state.ongoingCalls?yield this.startFirstCall(e):this.startSubsequentCalls(),this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls+1}))}))}endCall(e){return t(this,void 0,void 0,(function*(){if(this.state.incomingCall===vr.AWAITING_RESPONSE)throw new Ee(\"Cannot end a call while another call is incoming. If you wish to answer/accept the incoming call, please use acceptIncomingCall/rejectIncomingCall instead.\",Ft.SDK_USAGE_ERROR);if(0===this.state.ongoingCalls)throw new Ee(\"Cannot end call as there are no calls in progress.\",Ft.SDK_USAGE_ERROR);1===this.state.ongoingCalls?yield this.endLastCall():this.state.holdState===fr.ON_HOLD?this.endCallWhileOnHold():yield this.endCurrentCall(e)}))}startFirstCall(e){return t(this,void 0,void 0,(function*(){yield this.callLock.takeCallLock();const t=e?[]:[[Gn.HOOK_SWITCH,!0]],n=this.awaitSignals.listen(t);this.callControl.offHook(!0),yield Ot(n),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:fr.NOT_ON_HOLD,muteState:pr.UNMUTED}))}))}startSubsequentCalls(){this.callControl.hold(!0)}startNewCallWhileOnHold(){this.callControl.hold(!1),this.callControl.offHook(!0),this.callControl.hold(!0),this.callControl.mute(!1),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:fr.NOT_ON_HOLD,muteState:pr.UNMUTED}))}endLastCall(){return t(this,void 0,void 0,(function*(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:fr.NO_ONGOING_CALLS,muteState:pr.NO_ONGOING_CALLS,ongoingCalls:0})),this.callControl.mute(!1),this.callControl.offHook(!1),this.callControl.hold(!1),this.callLock.releaseCallLock()}))}endCurrentCall(e){return t(this,void 0,void 0,(function*(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls-1}));const t=e?[[Gn.HOOK_SWITCH,!0],[Gn.FLASH,!0],[Gn.HOOK_SWITCH,!1]]:[[Gn.HOOK_SWITCH,!1],[Gn.HOOK_SWITCH,!0]],n=this.awaitSignals.listen(t);this.callControl.offHook(!1),this.callControl.hold(!1),this.callControl.offHook(!0),1!==this.state.ongoingCalls&&this.callControl.hold(!0),yield Ot(n),this.callControl.mute(!1),this.stateHandler.next(Object.assign(Object.assign({},this.state),{muteState:pr.UNMUTED}))}))}endCallWhileOnHold(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls-1}))}}class Ir extends mr{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()))}signalIncomingCall(){return t(this,void 0,void 0,(function*(){return yield this.callLock.takeCallLock(),this.updateIncomingCallState(vr.AWAITING_RESPONSE),this.callControl.ring(!0),new Promise((t=>{var e,n;this.stateHandler.pipe((e=({incomingCall:t})=>t!==vr.NO_INCOMING,void 0===n&&(n=!1),U((function(t,r){var i=0;t.subscribe(new k(r,(function(t){var o=e(t,i++);(o||n)&&r.next(t),!o&&r.complete()})))}))),qt((({incomingCall:t})=>t===vr.ACCEPTED||t===vr.REJECTED))).subscribe((({incomingCall:e})=>{this.updateIncomingCallState(vr.NO_INCOMING),t(e===vr.ACCEPTED)}))}))}))}acceptIncomingCall(e,n){return t(this,void 0,void 0,(function*(){if(this.state.incomingCall!==vr.AWAITING_RESPONSE)throw new Ee(\"Cannot accept as there are no incoming calls.\",Ft.SDK_USAGE_ERROR);this.updateIncomingCallState(vr.RESOLVING_RESPONSE),this.callControl.ring(!1),this.state.holdState===fr.ON_HOLD||0===this.state.ongoingCalls?yield this.hookHandler.startCall(n):e===dr.END_CURRENT?(yield this.hookHandler.endCall(n),yield this.hookHandler.startCall(n)):e===dr.HOLD_CURRENT&&(yield this.hookHandler.startCall(n)),this.stateHandler.next(Object.assign(Object.assign({},this.state),{incomingCall:vr.ACCEPTED,holdState:fr.NOT_ON_HOLD}))}))}rejectIncomingCall(){return t(this,void 0,void 0,(function*(){if(this.state.incomingCall!==vr.AWAITING_RESPONSE)throw new Ee(\"Cannot reject as there are no incoming calls.\",Ft.SDK_USAGE_ERROR);this.callControl.ring(!1),this.updateIncomingCallState(vr.REJECTED),this.callLock.releaseCallLock()}))}updateIncomingCallState(t){this.stateHandler.next(Object.assign(Object.assign({},this.state),{incomingCall:t}))}}class Ar extends mr{constructor(t,e,n){super(e),this.callControl=t,this.stateHandler=e,this.commandQueue=n}queueSetMute(t){return this.commandQueue.pushToQueue((()=>this.setMute(t)))}queueToggleMute(){return this.commandQueue.pushToQueue((()=>t(this,void 0,void 0,(function*(){const t=this.state.muteState===pr.MUTED?pr.UNMUTED:pr.MUTED;this.setMute(t)}))))}setMute(e){return t(this,void 0,void 0,(function*(){if(0===this.state.ongoingCalls)throw new Ee(\"You cannot change mute state outside of a call.\",Ft.SDK_USAGE_ERROR);this.callControl.mute(e===pr.MUTED),this.stateHandler.next(Object.assign(Object.assign({},this.state),{muteState:e}))}))}}class Rr extends mr{constructor(t,e){super(t),this.stateHandler=t,this.commandQueue=e}queueSwapCalls(){return this.commandQueue.pushToQueue((()=>this.swapCalls()))}swapCalls(){return t(this,void 0,void 0,(function*(){if(this.state.ongoingCalls<2)throw new Ee(\"No calls to swap between. There should be at least one current call and one call on hold.\",Ft.SDK_USAGE_ERROR);this.stateHandler.next(Object.assign(Object.assign({},this.state),{swapToggle:this.state.swapToggle?0:1}))}))}}class Dr{constructor(t,e,n){this.stateHandler=t,this.callLock=e,this.logger=n,this.teardownState=new M(!1),this.onTeardown=this.teardownState.pipe(he(1),At(C))}teardown(t=!0){if(this.teardownState.value)throw new Ee(\"Easy Call Control instance already torn down.\",Ft.SDK_USAGE_ERROR);this.stateHandler.unsubscribeState(),this.teardownState.next(!0),t&&this.callLock.forceReleaseCallLock(),ge(\"Teardown complete. Create new Easy Call Control instance to continue usage.\",null==this?void 0:this.logger,xt.INFO)}checkActive(){if(this.teardownState.value)throw new Ee(\"\\n Inactive instance. Either device disconnected or teardown was called.\\n Create new EasyCallControl instance to continue usage.\",Ft.SDK_USAGE_ERROR)}}class Hr{constructor(t,e,n){this.deviceSignals=t,this.stateHandler=e,this.logger=n}listen(t){if(0===t.length)return bt(void 0);this.stateHandler.next(Object.assign(Object.assign({},this.stateHandler.value),{ignoreSignals:t}));let e=0;return this.deviceSignals.pipe(de((n=>{const[r,i]=t[e];return n.type===r&&n.value===i?(ge(`Resolve awaited signal: ${Gn[r]} [${i}]`,null==this?void 0:this.logger,xt.INFO),e+=1,bt(n)):Q})),te(t.length),St(1e3),Jt((()=>{const e=t.map((([t,e])=>`${Gn[t]}: ${e}`));return ge(`Missing signals for ${JSON.stringify(e)}. State recovered.`,null==this?void 0:this.logger,xt.INFO),bt(void 0)})),(n=()=>{this.stateHandler.next(Object.assign(Object.assign({},this.stateHandler.value),{ignoreSignals:[]}))},U((function(t,e){try{t.subscribe(e)}finally{e.add(n)}}))));var n}}class Lr{constructor(t,e,n,r){const i=new Or(t,n.internalState,r);this.teardownHandler=new Dr(n,i,r);const o=new Cr(this.teardownHandler),s=new Hr(e,n.internalState,r);this.hookHandler=new Sr(t,i,n.internalState,o,s),this.muteHandler=new Ar(t,n.internalState,o),this.holdHandler=new Tr(t,n.internalState,o,s),this.incomingCallHandler=new Ir(t,i,n.internalState,this.hookHandler,o),this.swapHandler=new Rr(n.internalState,o),this.deviceState=new Nr(this.hookHandler,this.holdHandler,this.muteHandler,n.internalState)}}const Pr={ongoingCalls:0,muteState:pr.NO_ONGOING_CALLS,holdState:fr.NO_ONGOING_CALLS,incomingCall:vr.NO_INCOMING,ignoreSignals:[],swapToggle:0};class Ur{constructor(){this.internalState=new M(Pr),this.onUnsubscribe=new G;const t=this.internalState.pipe(fe(this.onUnsubscribe));this.ongoingCalls=t.pipe(At((t=>t.ongoingCalls)),ee()),this.callActive=t.pipe(At((t=>0!==t.ongoingCalls)),ee()),this.muteState=t.pipe(At((t=>t.muteState)),ee()),this.holdState=t.pipe(At((t=>t.holdState)),ee()),this.swapEvents=t.pipe(At((t=>t.swapToggle)),ee(),At((()=>{})),he(1))}unsubscribeState(){this.onUnsubscribe.next(void 0),this.onUnsubscribe.complete(),this.internalState.complete()}}var kr,xr,Gr,Fr;class Mr extends wr{constructor(t,e,r,i,o,s){super(t,e,r,i,o,s,!1),kr.set(this,void 0),xr.set(this,void 0),this.callActive=o.callActive,n(this,kr,o.internalState,\"f\"),n(this,xr,i,\"f\")}startCall(){return t(this,void 0,void 0,(function*(){if(1===e(this,kr,\"f\").value.ongoingCalls)throw new Ee(\"Please end the call before starting a new one.\",Ft.SDK_USAGE_ERROR);yield e(this,xr,\"f\").hookHandler.queueStartCall()}))}acceptIncomingCall(){return e(this,xr,\"f\").incomingCallHandler.queueAcceptIncomingCall(dr.END_CURRENT,!1)}}kr=new WeakMap,xr=new WeakMap;class Br{constructor(t){var e;Gr.set(this,void 0),Fr.set(this,void 0),n(this,Gr,new _r(t),\"f\"),n(this,Fr,null===(e=t._config)||void 0===e?void 0:e.logger,\"f\")}createSingleCallControl(n,r){return t(this,void 0,void 0,(function*(){const t=yield this.getSharedDependencies(n),i=new Mr(t.coreDevice,t.onDisconnect,t.deviceSignals,t.commands,t.stateHandler,e(this,Fr,\"f\"));if(r){const t=r.callActive?1:0;yield i._setInitialState(t,r.muted)}return i}))}createMultiCallControl(n,r){return t(this,void 0,void 0,(function*(){const t=yield this.getSharedDependencies(n),i=new yr(t.coreDevice,t.onDisconnect,t.deviceSignals,t.commands,t.stateHandler,e(this,Fr,\"f\"));return r&&(yield i._setInitialState(r.ongoingCalls,r.muted,r.onHold)),i}))}supportsEasyCallControl(t){return e(this,Gr,\"f\").supportsCallControl(t)}getSharedDependencies(n){return t(this,void 0,void 0,(function*(){const t=yield e(this,Gr,\"f\").createCallControl(n),r=new Ur,i=t.deviceSignals.pipe(ce());return{commands:new Lr(t,i,r,e(this,Fr,\"f\")),stateHandler:r,deviceSignals:i,coreDevice:t.device,onDisconnect:t.onDisconnect}}))}}Gr=new WeakMap,Fr=new WeakMap;export{dr as A,_r as C,ze as D,Ft as E,fr as H,Rn as I,Ee as J,xt as L,pr as M,k as O,Ve as R,G as S,Bt as T,je as V,Un as W,t as _,Rt as a,Ut as b,Lt as c,$ as d,kn as e,qn as f,kt as g,Gt as h,L as i,xn as j,Gn as k,ge as l,At as m,C as n,U as o,Kt as p,fn as q,vn as r,En as s,te as t,qe as u,Pn as v,$n as w,Br 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 '../..';\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 (): 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 /* 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';\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 connect (): Promise<any> {\n !this.isConnecting && this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\n this.pollForDeviceStatus();\n this.pollForCallEvents();\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 return this.logger.info('Currently active calls in the session');\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 (): Promise<any> {\n if (!this.isConnected) {\n return;\n }\n await this._makeRequestTask(`/SessionManager/UnRegister?name=${this.pluginName}`);\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 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 return 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\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 _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.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._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 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 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}","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 event: 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 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 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.pendingConversationId = null;\n this.callLock = false;\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 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.ring(false);\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 this.resetState();\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.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 this.resetState();\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.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 this.resetState();\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 await this.callControl.takeCallLock();\n this.callControl.hold(false);\n this.callControl.mute(false);\n this.callControl.offHook(false);\n this.callControl.releaseCallLock();\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.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 // register CEF\n const assetURL = window.location.origin + window.location.pathname;\n const initData = {\n assetURL,\n callback: this.handleCefEvent.bind(this),\n supportsTerminationRequest: true,\n supportsUnifiedPreferences: true\n };\n const data = (window as any)._HostedContextFunctions?.register(initData);\n this.cefSupportsJabra = data?.supportsJabra;\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.event, 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 this._sendCmd(JabraNativeCommands.Offhook, isOffhook);\n this._getHeadsetIntoVanillaState();\n this.deviceEndedCall({name: 'CallOnHook', conversationId: this.activeConversationId});\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 { 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 { 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 } 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 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\n [this.plantronics, this.jabra, this.jabraNative, this.sennheiser, this.yealink].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 ].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): boolean {\n if (this.isDifferentState(props)) {\n const state = this.headsetConversationStates[props.conversationId];\n Object.assign(state, props.state);\n return true;\n }\n\n return false;\n }\n\n activeMicChange (newMicLabel: string): 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();\n }\n } else {\n this.clearSelectedImplementation();\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): 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 })) {\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 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 (): void {\n if (!this.selectedImplementation) {\n return;\n }\n\n this.selectedImplementation.disconnect();\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 { 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-923cf570.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/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","next","a","throw","done","then","apply","TypeError","has","set","setPrototypeOf","__proto__","Array","String","this","constructor","label","sent","trys","ops","return","iterator","pop","u","v","h","asyncIterator","f","stack","map","toString","join","errors","E","indexOf","splice","g","initialTeardown","closed","_parentage","_teardowns","unsubscribe","isArray","remove","b","add","_hasParent","_addParent","includes","_removeParent","EMPTY","_","w","O","arguments","y","C","N","isStopped","destination","A","T","_next","_error","complete","_complete","S","I","R","observable","D","H","reduce","L","_subscribe","lift","source","operator","subscribe","_trySubscribe","_deprecatedSyncErrorSubscribe","_syncErrorHack_isSubscribing","__syncError","forEach","P","pipe","toPromise","U","k","onFinalize","x","G","observers","hasError","thrownError","F","_throwIfClosed","configurable","_checkFinalizedStatuses","_innerSubscribe","asObservable","M","_value","getValue","B","now","delegate","Date","K","_bufferSize","_windowTime","_timestampProvider","_buffer","_infiniteTimeWindow","Math","max","_trimBuffer","W","schedule","j","scheduler","work","pending","state","id","recycleAsyncId","delay","requestAsyncId","setInterval","Y","flush","clearInterval","V","execute","_execute","actions","q","schedulerActionCtor","$","_active","_scheduled","z","Q","J","X","Z","tt","et","nt","rt","it","ot","st","at","getReader","read","releaseLock","ct","lt","ut","ht","dt","pt","catch","ft","vt","Et","gt","_t","mt","bt","wt","yt","Ot","defaultValue","Ct","Nt","isNaN","Tt","info","St","first","each","with","It","meta","lastValue","seen","At","Rt","Dt","Ht","Lt","Pt","Ut","kt","xt","Gt","Ft","Mt","Bt","Kt","Wt","Yt","Vt","jt","qt","$t","zt","Qt","every","some","Jt","Xt","Zt","te","re","ie","se","ae","ce","connector","resetOnError","resetOnComplete","resetOnRefCountZero","ue","le","bufferSize","windowTime","refCount","he","de","pe","fe","ve","Ee","super","ge","ERROR","JS_LIB","write","level","layer","_e","WARNING","INFO","CHROME_EXTENSION","NATIVE_CONSOLE","SDK_USAGE_ERROR","FEATURE_NOT_SUPPORTED","DEVICE_ERROR","UNEXPECTED_ERROR","INIT_ERROR","me","compare","itemRemoved","items","itemList","itemAdded","addItem","onDisconnect","removeItem","filter","equals","concat","sort","findIndex","be","sdkVersion","consoleAppVersion","version","chromeExtensionVersion","process","platform","navigator","userAgent","we","deviceDetector","deviceAdded","deviceObservables","deviceRemoved","deviceList","_transport","_readyEvents","consoleAppEvent","_config","transportContext","context","logger","WeakMap","NODE","WEB_HID","CHROME_EXTENSION_WITH_WEB_HID_FALLBACK","ye","Oe","TransportChromeExtension","checkInstallation","ok","initHandler","WebHidTransport","Ce","log","Ne","Te","config","messageShown","partnerKey","validateCrc","logWarning","appId","test","appName","warn","split","charCodeAt","RangeError","padStart","Se","Ie","Ae","Re","De","He","Le","MS_OC","CISCO","AVAYA","SIEMENS","ALCATEL","IBM","AASTRA","SKYPE","GENERIC","NORTEL","JABRA","NEC","SHORETEL","OTHER","Pe","gnpReadCommand","serialize","command","subCommand","deserialize","GN_PROTOCOL","DATA","Ue","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","ke","from","xe","fromCharCode","Ge","Fe","Me","DataView","buffer","getUint16","Be","of","Ke","We","Ye","path","require","globalThis","global","self","Ve","je","qe","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","$e","transport","gnpLockAcquired","token","action","writeAction","INPUT","OUTPUT","FEATURE","ABSOLUTE","RELATIVE","ze","startsWith","Qe","Je","usagePage","usage","Xe","descriptor","transportId","input","inputReportsFilter","find","reportType","tn","lengthMask","typeFromAttr","packetLengthFromAttr","en","gnpPacketHeaderLength","hasHeader","expectedPacketLength","gnpPacketMaxLength","hasFullPacket","nn","rn","on","sn","an","hidChannel","gnpLock","primaryAddress","lockQueue","packets","inputFilter","events","eventsFilter","nextSequenceNumber","appendData","getPacketAndReset","findDescriptor","processLockQueue","acquireGnpLock","reportSize","attrFromTypeAndPayloadLength","min","subarray","output","releaseGnpLock","doWithGnpLockHeld","readWithParams","getNextSequenceNumber","cn","parentGnpChannel","sendEvent","un","supportsGnpOverHid","ln","hn","dn","isChild","pn","parentId","gnpAddress","fn","vn","En","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","gn","parentConnectionId","_n","mn","bn","deviceType","address","vid","pid","serialNumber","capabilities","connectionGnpAddress","wn","createConnection","parentConnection","connectionCreator","createChildGnpChannel","connectionEvents","attach","detach","connection","yn","On","Cn","Nn","createHidChannel","createRootGnpChannel","createAttachEvent","getTransportId","convertToReportType","valueType","convertToValueType","JSON","stringify","getMandatoryField","createDescriptor","assign","Tn","Sn","In","An","Rn","Dn","vendorId","productId","connectionAdded","connectionRemoved","connectionList","Hn","exceptionToUndefined","findConnectionById","currentConnections","Ln","deviceCollection","connectionExists","force","findDeviceByDeviceId","createDevice","isSameDevice","Pn","validateOrganizationKey","validateAppId","validateAppName","internal","testDeviceTransport","recorder","connect","Un","deviceId","kn","UsageReport","xn","Gn","Fn","Mn","Bn","Kn","Wn","Yn","Vn","jn","qn","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","$n","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","zn","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","Qn","isSoftphoneInFocus","lockHeld","cachedSignals","Map","Boolean","Ze","Jn","device","deviceSignals","setup","checkHasDisconnected","checkCallLockNotHeld","tryTakeCallLock","checkCallLockHeld","releaseCallLock","STD_TELEPHONY","Xn","tr","connectionCallLock","currentLocks","Set","lockReleaseEvent","takeSingleCallLock","delete","size","acquireLockOnNextConnectionEmit","releaseLockOnRemovedConnectionEmit","releaseSingleCallLock","acquired","clear","er","nr","rr","or","ir","sr","softphoneInFocus","setFeatureReport","Zn","ar","devComm","infocus","cr","ur","lr","hr","dr","pr","fr","vr","_r","setSharedSoftphoneInfo","jabraDirectInstalled","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","callInfo","hasOtherActiveCalls","conversationId","autoAnswer","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","Function","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","_finalizers","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","kind","errorContext","cb","isRoot","errorThrown","Subscriber","_this","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","_bind","ConsumerObserver","partialObserver","handleUnhandledError","SafeSubscriber","observerOrNext","context_1","notification","subscriber","identity","pipeFromArray","fns","prev","Observable","isObserver","sink","promiseCtor","getPromiseCtor","operations","PlantronicsCallEventCodes","ObjectUnsubscribedError","Subject","currentObservers","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","isError","clearTimeouts","contactName","_createCallMapping","params","halfEncodedCallIdString","encodeURI","halfEncodedContactString","incomingCall","createNew","isCefHosted","_HostedContextFunctions","requestCefPromise","cmd","sCmd","cefQuery","persistent","onSuccess","obj","onFailure","SennheiserService","websocketConnected","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","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","shouldUnsubscribe","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","offHook","ring","activeConversationId","pendingConversationId","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","rejectCall","val","setValue","sendReport","HeadsetService","_headsetEvents$","headsetEvents$","plantronics","getInstance","jabraNative","jabra","sennheiser","yealink","implementation","subscribeToHeadsetEvents","impl","isSupported","props","headsetConversationStates","entries","isDifferentState","newMicLabel","implementations","deviceLabelMatchesVendor","changeImplementation","selectedImplementation","clearSelectedImplementation","implementationChanged","getConnectedImpl","held","muted","outgoingCall","expectedStatePostAction","updateHeadsetState","removeTimer","setRemoveTimer","values","endAllCalls","micLabel","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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,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM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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 = 11);\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(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 e(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 n(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\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */}var r=function(t,e){return(r=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)};function i(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function o(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 s(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 a(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 c(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 u(t,e){for(var n=0,r=e.length,i=t.length;n<r;n++,i++)t[i]=e[n];return t}function l(t){return this instanceof l?(this.v=t,this):new l(t)}function h(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||a(t,e)}))})}function a(t,e){try{(n=i[t](e)).value instanceof l?Promise.resolve(n.value.v).then(c,u):h(o[0][2],n)}catch(t){h(o[0][3],t)}var n}function c(t){a(\"next\",t)}function u(t){a(\"throw\",t)}function h(t,e){t(e),o.shift(),o.length&&a(o[0][0],o[0][1])}}function d(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=a(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 p(t){return\"function\"==typeof t}function f(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 v=f((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 E(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var g=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._teardowns=null}var e;return t.prototype.unsubscribe=function(){var t,e,n,r,i;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=a(o),l=s.next();!l.done;l=s.next()){l.value.remove(this)}}catch(e){t={error:e}}finally{try{l&&!l.done&&(e=s.return)&&e.call(s)}finally{if(t)throw t.error}}else o.remove(this);var h=this.initialTeardown;if(p(h))try{h()}catch(t){i=t instanceof v?t.errors:[t]}var d=this._teardowns;if(d){this._teardowns=null;try{for(var f=a(d),E=f.next();!E.done;E=f.next()){var g=E.value;try{b(g)}catch(t){i=null!=i?i:[],t instanceof v?i=u(u([],c(i)),c(t.errors)):i.push(t)}}}catch(t){n={error:t}}finally{try{E&&!E.done&&(r=f.return)&&r.call(f)}finally{if(n)throw n.error}}}if(i)throw new v(i)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)b(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._teardowns=null!==(n=this._teardowns)&&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)&&E(e,t)},t.prototype.remove=function(e){var n=this._teardowns;n&&E(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=((e=new t).closed=!0,e),t}(),_=g.EMPTY;function m(t){return t instanceof g||t&&\"closed\"in t&&p(t.remove)&&p(t.add)&&p(t.unsubscribe)}function b(t){p(t)?t():t.unsubscribe()}var w={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},y=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return setTimeout.apply(void 0,u([],c(t)))};function O(t){y((function(){throw t}))}function C(){}var N=function(t){function e(e){var n=t.call(this)||this;return n.isStopped=!1,e?(n.destination=e,m(e)&&e.add(n)):n.destination=A,n}return i(e,t),e.create=function(t,e,n){return new T(t,e,n)},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(g),T=function(t){function e(e,n,r){var i,o=t.call(this)||this;if(p(e))i=e;else if(e){var s;i=e.next,n=e.error,r=e.complete,o&&w.useDeprecatedNextContext?(s=Object.create(e)).unsubscribe=function(){return o.unsubscribe()}:s=e,i=null==i?void 0:i.bind(s),n=null==n?void 0:n.bind(s),r=null==r?void 0:r.bind(s)}return o.destination={next:i?S(i):C,error:S(null!=n?n:I),complete:r?S(r):C},o}return i(e,t),e}(N);function S(t,e){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];try{t.apply(void 0,u([],c(e)))}catch(t){O(t)}}}function I(t){throw t}var A={closed:!0,next:C,error:I,complete:C},R=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\";function D(t){return t}function H(t){return 0===t.length?D:1===t.length?t[0]:function(e){return t.reduce((function(t,e){return e(t)}),e)}}var L=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=(r=t)&&r instanceof N||function(t){return t&&p(t.next)&&p(t.error)&&p(t.complete)}(r)&&m(r)?t:new T(t,e,n),o=this.operator,s=this.source;return i.add(o?o.call(i,s):s?this._subscribe(i):this._trySubscribe(i)),i},t.prototype._deprecatedSyncErrorSubscribe=function(t){var e=t;e._syncErrorHack_isSubscribing=!0;var n=this.operator;if(n)t.add(n.call(t,this.source));else try{t.add(this._subscribe(t))}catch(t){e.__syncError=t}for(var r=e;r;){if(\"__syncError\"in r)try{throw r.__syncError}finally{t.unsubscribe()}r=r.destination}e._syncErrorHack_isSubscribing=!1},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=P(e))((function(e,r){var i;i=n.subscribe((function(e){try{t(e)}catch(t){r(t),null==i||i.unsubscribe()}}),r,e)}))},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[R]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t.length?H(t)(this):this},t.prototype.toPromise=function(t){var e=this;return new(t=P(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 P(t){var e;return null!==(e=null!=t?t:w.Promise)&&void 0!==e?e:Promise}function U(t){return function(e){if(function(t){return p(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\")}}var k=function(t){function e(e,n,r,i,o){var s=t.call(this,e)||this;return s.onFinalize=o,s._next=n?function(t){try{n(t)}catch(t){e.error(t)}}:t.prototype._next,s._error=i?function(t){try{i(t)}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._error,s._complete=r?function(){try{r()}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,s}return i(e,t),e.prototype.unsubscribe=function(){var e,n=this.closed;t.prototype.unsubscribe.call(this),!n&&(null===(e=this.onFinalize)||void 0===e||e.call(this))},e}(N),x=f((function(t){return function(){t(this),this.name=\"ObjectUnsubscribedError\",this.message=\"object unsubscribed\"}})),G=function(t){function e(){var e=t.call(this)||this;return e.closed=!1,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return i(e,t),e.prototype.lift=function(t){var e=new F(this,this);return e.operator=t,e},e.prototype._throwIfClosed=function(){if(this.closed)throw new x},e.prototype.next=function(t){var e,n;if(this._throwIfClosed(),!this.isStopped){var r=this.observers.slice();try{for(var i=a(r),o=i.next();!o.done;o=i.next()){o.value.next(t)}}catch(t){e={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(e)throw e.error}}}},e.prototype.error=function(t){if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;for(var e=this.observers;e.length;)e.shift().error(t)}},e.prototype.complete=function(){if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;for(var t=this.observers;t.length;)t.shift().complete()}},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=null},Object.defineProperty(e.prototype,\"observed\",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,n=e.hasError,r=e.isStopped,i=e.observers;return n||r?_:(i.push(t),new g((function(){return E(i,t)})))},e.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,r=e.thrownError,i=e.isStopped;n?t.error(r):i&&t.complete()},e.prototype.asObservable=function(){var t=new L;return t.source=this,t},e.create=function(t,e){return new F(t,e)},e}(L),F=function(t){function e(e,n){var r=t.call(this)||this;return r.destination=e,r.source=n,r}return i(e,t),e.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)},e.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)},e.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)},e.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:_},e}(G),M=function(t){function e(e){var n=t.call(this)||this;return n._value=e,n}return i(e,t),Object.defineProperty(e.prototype,\"value\",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){var t=this,e=t.hasError,n=t.thrownError,r=t._value;if(e)throw n;return this._throwIfClosed(),r},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(G),B={now:function(){return(B.delegate||Date).now()},delegate:void 0},K=function(t){function e(e,n,r){void 0===e&&(e=1/0),void 0===n&&(n=1/0),void 0===r&&(r=B);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 i(e,t),e.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)},e.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},e.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)}},e}(G),W=function(t){function e(e,n){return t.call(this)||this}return i(e,t),e.prototype.schedule=function(t,e){return this},e}(g),Y=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return setInterval.apply(void 0,u([],c(t)))},V=function(t){return clearInterval(t)},j=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.pending=!1,r}return i(e,t),e.prototype.schedule=function(t,e){if(void 0===e&&(e=0),this.closed)return this;this.state=t;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this},e.prototype.requestAsyncId=function(t,e,n){return void 0===n&&(n=0),Y(t.flush.bind(t,this),n)},e.prototype.recycleAsyncId=function(t,e,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return e;V(e)},e.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))},e.prototype._execute=function(t,e){var n,r=!1;try{this.work(t)}catch(t){r=!0,n=!!t&&t||new Error(t)}if(r)return this.unsubscribe(),n},e.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,E(r,this),null!=e&&(this.id=this.recycleAsyncId(n,e,null)),this.delay=null,t.prototype.unsubscribe.call(this)}},e}(W),q=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=B.now,t}(),$=new(function(t){function e(e,n){void 0===n&&(n=q.now);var r=t.call(this,e,n)||this;return r.actions=[],r._active=!1,r._scheduled=void 0,r}return i(e,t),e.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}}},e}(q))(j),z=$,Q=new L((function(t){return t.complete()}));function J(t,e){return new L((function(n){var r=0;return e.schedule((function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())}))}))}var X=function(t){return t&&\"number\"==typeof t.length&&\"function\"!=typeof t};function Z(t){return p(null==t?void 0:t.then)}var tt=\"function\"==typeof Symbol&&Symbol.iterator?Symbol.iterator:\"@@iterator\";function et(t,e,n,r){void 0===r&&(r=0);var i=e.schedule((function(){try{n.call(this)}catch(e){t.error(e)}}),r);return t.add(i),i}function nt(t,e){if(!t)throw new Error(\"Iterable cannot be null\");return new L((function(n){var r=new g;return r.add(e.schedule((function(){var i=t[Symbol.asyncIterator]();r.add(e.schedule((function(){var t=this;i.next().then((function(e){e.done?n.complete():(n.next(e.value),t.schedule())}))})))}))),r}))}function rt(t){return p(t[R])}function it(t){return p(null==t?void 0:t[tt])}function ot(t){return Symbol.asyncIterator&&p(null==t?void 0:t[Symbol.asyncIterator])}function st(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.\")}function at(t){return h(this,arguments,(function(){var e,n,r;return s(this,(function(i){switch(i.label){case 0:e=t.getReader(),i.label=1;case 1:i.trys.push([1,,9,10]),i.label=2;case 2:return[4,l(e.read())];case 3:return n=i.sent(),r=n.value,n.done?[4,l(void 0)]:[3,5];case 4:return[2,i.sent()];case 5:return[4,l(r)];case 6:return[4,i.sent()];case 7:return i.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}}))}))}function ct(t){return p(null==t?void 0:t.getReader)}function ut(t,e){if(null!=t){if(rt(t))return function(t,e){return new L((function(n){var r=new g;return r.add(e.schedule((function(){var i=t[R]();r.add(i.subscribe({next:function(t){r.add(e.schedule((function(){return n.next(t)})))},error:function(t){r.add(e.schedule((function(){return n.error(t)})))},complete:function(){r.add(e.schedule((function(){return n.complete()})))}}))}))),r}))}(t,e);if(X(t))return J(t,e);if(Z(t))return function(t,e){return new L((function(n){return e.schedule((function(){return t.then((function(t){n.add(e.schedule((function(){n.next(t),n.add(e.schedule((function(){return n.complete()})))})))}),(function(t){n.add(e.schedule((function(){return n.error(t)})))}))}))}))}(t,e);if(ot(t))return nt(t,e);if(it(t))return function(t,e){return new L((function(n){var r;return n.add(e.schedule((function(){r=t[tt](),et(n,e,(function(){var t=r.next(),e=t.value;t.done?n.complete():(n.next(e),this.schedule())}))}))),function(){return p(null==r?void 0:r.return)&&r.return()}}))}(t,e);if(ct(t))return function(t,e){return nt(at(t),e)}(t,e)}throw st(t)}function lt(t,e){return e?ut(t,e):ht(t)}function ht(t){if(t instanceof L)return t;if(null!=t){if(rt(t))return r=t,new L((function(t){var e=r[R]();if(p(e.subscribe))return e.subscribe(t);throw new TypeError(\"Provided object does not correctly implement Symbol.observable\")}));if(X(t))return dt(t);if(Z(t))return n=t,new L((function(t){n.then((function(e){t.closed||(t.next(e),t.complete())}),(function(e){return t.error(e)})).then(null,O)}));if(ot(t))return pt(t);if(it(t))return e=t,new L((function(t){var n,r;try{for(var i=a(e),o=i.next();!o.done;o=i.next()){var s=o.value;if(t.next(s),t.closed)return}}catch(t){n={error:t}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}t.complete()}));if(ct(t))return pt(at(t))}var e,n,r;throw st(t)}function dt(t){return new L((function(e){for(var n=0;n<t.length&&!e.closed;n++)e.next(t[n]);e.complete()}))}function pt(t){return new L((function(e){(function(t,e){var n,r,i,a;return o(this,void 0,void 0,(function(){var o,c;return s(this,(function(s){switch(s.label){case 0:s.trys.push([0,5,6,11]),n=d(t),s.label=1;case 1:return[4,n.next()];case 2:if((r=s.sent()).done)return[3,4];if(o=r.value,e.next(o),e.closed)return[2];s.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=s.sent(),i={error:c},[3,11];case 6:return s.trys.push([6,,9,10]),r&&!r.done&&(a=n.return)?[4,a.call(n)]:[3,8];case 7:s.sent(),s.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}}))}))})(t,e).catch((function(t){return e.error(t)}))}))}function ft(t,e){return e?J(t,e):dt(t)}function vt(t){return t&&p(t.schedule)}function Et(t){return t[t.length-1]}function gt(t){return p(Et(t))?t.pop():void 0}function _t(t){return vt(Et(t))?t.pop():void 0}function mt(t,e){return\"number\"==typeof Et(t)?t.pop():e}function bt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=_t(t);return n?J(t,n):ft(t)}function wt(t,e){var n=p(t)?t:function(){return t},r=function(t){return t.error(n())};return new L(e?function(t){return e.schedule(r,0,t)}:r)}var yt=f((function(t){return function(){t(this),this.name=\"EmptyError\",this.message=\"no elements in sequence\"}}));function Ot(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 yt)}})}))}function Ct(t,e){var n=\"object\"==typeof e;return new Promise((function(r,i){var o=new T({next:function(t){r(t),o.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new yt)}});t.subscribe(o)}))}function Nt(t){return t instanceof Date&&!isNaN(t)}var Tt=f((function(t){return function(e){void 0===e&&(e=null),t(this),this.message=\"Timeout has occurred\",this.name=\"TimeoutError\",this.info=e}}));function St(t,e){var n=Nt(t)?{first:t}:\"number\"==typeof t?{each:t}:t,r=n.first,i=n.each,o=n.with,s=void 0===o?It:o,a=n.scheduler,c=void 0===a?null!=e?e:$:a,u=n.meta,l=void 0===u?null:u;if(null==r&&null==i)throw new TypeError(\"No timeout provided.\");return U((function(t,e){var n,o,a=null,u=0,h=function(t){o=et(e,c,(function(){n.unsubscribe(),ht(s({meta:l,lastValue:a,seen:u})).subscribe(e)}),t)};n=t.subscribe(new k(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}))),h(null!=r?\"number\"==typeof r?r:+r-c.now():i)}))}function It(t){throw new Tt(t)}function At(t,e){return U((function(n,r){var i=0;n.subscribe(new k(r,(function(n){r.next(t.call(e,n,i++))})))}))}function Rt(t,e,n){return void 0===n&&(n=1/0),p(e)?Rt((function(n,r){return At((function(t,i){return e(n,t,r,i)}))(ht(t(n,r)))}),n):(\"number\"==typeof e&&(n=e),U((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;ht(n(t,l++)).subscribe(new k(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?e.add(s.schedule((function(){return f(t)}))):f(t)};c.length&&u<r;)t();d()}catch(t){e.error(t)}})))};return t.subscribe(new k(e,p,(function(){h=!0,d()}))),function(){null==a||a()}}(e,r,t,n)})))}function Dt(t){return void 0===t&&(t=1/0),Rt(D,t)}function Ht(){return Dt(1)}function Lt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return Ht()(ft(t,_t(t)))}function Pt(t){return new L((function(e){ht(t()).subscribe(e)}))}function Ut(t,e,n){void 0===t&&(t=0),void 0===n&&(n=z);var r=-1;return null!=e&&(vt(e)?n=e:r=e),new L((function(e){var i=Nt(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 kt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=_t(t),r=mt(t,1/0),i=t;return i.length?1===i.length?ht(i[0]):Dt(r)(ft(i,n)):Q}var xt,Gt,Ft,Mt,Bt,Kt,Wt=new L(C),Yt=Array.isArray;function Vt(t){return 1===t.length&&Yt(t[0])?t[0]:t}function jt(t,e){return function(n,r){return!t.call(e,n,r)}}function qt(t,e){return U((function(n,r){var i=0;n.subscribe(new k(r,(function(n){return t.call(e,n,i++)&&r.next(n)})))}))}function $t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 1===(t=Vt(t)).length?ht(t[0]):new L(zt(t))}function zt(t){return function(e){for(var n=[],r=function(r){n.push(ht(t[r]).subscribe(new k(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 Qt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=gt(t),r=Vt(t);return r.length?new L((function(t){var e=r.map((function(){return[]})),i=r.map((function(){return!1}));t.add((function(){e=i=null}));for(var o=function(o){ht(r[o]).subscribe(new k(t,(function(r){if(e[o].push(r),e.every((function(t){return t.length}))){var s=e.map((function(t){return t.shift()}));t.next(n?n.apply(void 0,u([],c(s))):s),e.some((function(t,e){return!t.length&&i[e]}))&&t.complete()}}),(function(){i[o]=!0,!e[o].length&&t.complete()})))},s=0;!t.closed&&s<r.length;s++)o(s);return function(){e=i=null}})):Q}function Jt(t){return U((function(e,n){var r,i=null,o=!1;i=e.subscribe(new k(n,void 0,void 0,(function(s){r=ht(t(s,Jt(t)(e))),i?(i.unsubscribe(),i=null,r.subscribe(n)):o=!0}))),o&&(i.unsubscribe(),i=null,r.subscribe(n))}))}function Xt(t,e){return p(e)?Rt(t,e,1):Rt(t,1)}function Zt(t){return U((function(e,n){var r=!1;e.subscribe(new k(n,(function(t){r=!0,n.next(t)}),(function(){r||n.next(t),n.complete()})))}))}function te(t){return t<=0?function(){return Q}:U((function(e,n){var r=0;e.subscribe(new k(n,(function(e){++r<=t&&(n.next(e),t<=r&&n.complete())})))}))}function ee(t,e){return void 0===e&&(e=D),t=null!=t?t:ne,U((function(n,r){var i,o=!0;n.subscribe(new k(r,(function(n){var s=e(n);!o&&t(i,s)||(o=!1,i=s,r.next(n))})))}))}function ne(t,e){return t===e}function re(t){return void 0===t&&(t=ie),U((function(e,n){var r=!1;e.subscribe(new k(n,(function(t){r=!0,n.next(t)}),(function(){return r?n.complete():n.error(t())})))}))}function ie(){return new yt}function oe(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?qt((function(e,n){return t(e,n,r)})):D,te(1),n?Zt(e):re((function(){return new yt})))}}function se(t){return t<=0?function(){return Q}:U((function(e,n){var r=[];e.subscribe(new k(n,(function(e){r.push(e),t<r.length&&r.shift()}),(function(){var t,e;try{for(var i=a(r),o=i.next();!o.done;o=i.next()){var s=o.value;n.next(s)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=i.return)&&e.call(i)}finally{if(t)throw t.error}}n.complete()}),void 0,(function(){r=null})))}))}function ae(t){return U((function(e,n){var r,i,o=!1,s=function(){r=e.subscribe(new k(n,void 0,void 0,(function(e){i||(i=new G,t(i).subscribe(new k(n,(function(){return r?s():o=!0})))),i&&i.next(e)}))),o&&(r.unsubscribe(),r=null,o=!1,s())};s()}))}function ce(t){void 0===t&&(t={});var e=t.connector,n=void 0===e?function(){return new G}: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=null,r=null,o=null,a=0,u=!1,l=!1,h=function(){null==r||r.unsubscribe(),r=null},d=function(){h(),e=o=null,u=l=!1},p=function(){var t=e;d(),null==t||t.unsubscribe()};return U((function(t,f){a++,l||u||h();var v=o=null!=o?o:n();f.add((function(){0!==--a||l||u||(r=ue(p,c))})),v.subscribe(f),e||(e=new T({next:function(t){return v.next(t)},error:function(t){l=!0,h(),r=ue(d,i,t),v.error(t)},complete:function(){u=!0,h(),r=ue(d,s),v.complete()}}),lt(t).subscribe(e))}))(t)}}function ue(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return!0===e?(t(),null):!1===e?null:e.apply(void 0,u([],c(n))).pipe(te(1)).subscribe((function(){return t()}))}function le(t,e,n){var r,i,o,s=!1;return t&&\"object\"==typeof t?(o=null!==(r=t.bufferSize)&&void 0!==r?r:1/0,e=null!==(i=t.windowTime)&&void 0!==i?i:1/0,s=!!t.refCount,n=t.scheduler):o=null!=t?t:1/0,ce({connector:function(){return new K(o,e,n)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:s})}function he(t){return qt((function(e,n){return t<=n}))}function de(t,e){return U((function(n,r){var i=null,o=0,s=!1,a=function(){return s&&!i&&r.complete()};n.subscribe(new k(r,(function(n){null==i||i.unsubscribe();var s=0,c=o++;ht(t(n,c)).subscribe(i=new k(r,(function(t){return r.next(e?e(n,t,c,s++):t)}),(function(){i=null,a()})))}),(function(){s=!0,a()})))}))}function pe(){return de(D)}function fe(t){return U((function(e,n){ht(t).subscribe(new k(n,(function(){return n.complete()}),C)),!n.closed&&e.subscribe(n)}))}function ve(t,e,n){var r=p(t)||e||n?{next:t,error:e,complete:n}:t;return r?U((function(t,e){t.subscribe(new k(e,(function(t){var n;null===(n=r.next)||void 0===n||n.call(r,t),e.next(t)}),(function(){var t;null===(t=r.complete)||void 0===t||t.call(r),e.complete()}),(function(t){var n;null===(n=r.error)||void 0===n||n.call(r,t),e.error(t)})))})):D}class Ee extends Error{constructor(t,e){super(t),this.type=e,this.type=e,Object.setPrototypeOf(this,new.target.prototype)}}function ge(t,e,n=xt.ERROR,r=Gt.JS_LIB){e?null==e||e.write({level:n,layer:r,message:t}):e||n!==xt.ERROR||console.error(t)}function _e(t){return void 0!==t}!function(t){t.ERROR=\"error\",t.WARNING=\"warning\",t.INFO=\"info\"}(xt||(xt={})),function(t){t.CHROME_EXTENSION=\"chrome-extension\",t.NATIVE_CONSOLE=\"native-console\",t.JS_LIB=\"js-lib\"}(Gt||(Gt={})),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\"}(Ft||(Ft={}));class me{constructor(t,e){this.compare=e,this.remove=new G,this.itemRemoved=this.remove,this.items=new M([]),this.itemList=this.items,this.itemAdded=t.pipe(At((t=>(this.addItem(t),t))),ce()),this.itemAdded.subscribe({next:t=>{t.onDisconnect.pipe(oe(),At((()=>this.removeItem(t.id))),qt(_e)).subscribe((t=>this.remove.next(t)))},error:C}),this.itemRemoved.subscribe({error:C})}getValue(){return[...this.items.getValue()]}addItem(t){if(this.items.getValue().filter((e=>e.id.equals(t.id))).length>0)throw new Ee(\"This item has already been added.\",Ft.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 Ee(\"Item not found and therefore cannot be removed.\",Ft.UNEXPECTED_ERROR);const r=e.splice(n,1)[0];return this.items.next(e),r}}class be{constructor(t,e){this.sdkVersion=\"4.1.2\",this.consoleAppVersion=t.pipe(oe((t=>\"ready\"===t.event)),At((t=>t.version)),St(1e3),le(1),Jt((()=>bt(null)))),this.chromeExtensionVersion=t.pipe(oe((t=>\"chrome-extension-ready\"===t.event)),At((t=>t.version)),St(1e3),le(1),Jt((()=>bt(null)))),Qt(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}`,ge(r,e,xt.INFO)}))}}class we{constructor(t,e,r){this.deviceDetector=t,this.deviceAdded=this.deviceDetector.deviceObservables.itemAdded,this.deviceRemoved=this.deviceDetector.deviceObservables.itemRemoved,this.deviceList=this.deviceDetector.deviceObservables.itemList,Mt.set(this,void 0),this._transport=e,this._readyEvents=e.consoleAppEvent.pipe(qt((t=>\"ready\"===t.event||\"chrome-extension-ready\"===t.event)),le(2)),this._readyEvents.subscribe(),this._config=r,this.transportContext=e.context,n(this,Mt,new be(this._readyEvents,null==r?void 0:r.logger),\"f\")}getVersion(){return e(this,Mt,\"f\").sdkVersion}getChromehostVersion(){return Ct(e(this,Mt,\"f\").consoleAppVersion)}getChromeExtensionVersion(){return Ct(e(this,Mt,\"f\").chromeExtensionVersion)}}Mt=new WeakMap,function(t){t.NODE=\"node\",t.CHROME_EXTENSION=\"chrome-extension\",t.WEB_HID=\"web-hid\"}(Bt||(Bt={})),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\"}(Kt||(Kt={}));const ye=\"Failed to dynamically import file. Please contact a Jabra representative as we would love to learn about scenarios where this could happen!\";function Oe(e,n=Kt.CHROME_EXTENSION,r){return t(this,void 0,void 0,(function*(){if(n!==Kt.WEB_HID){const t=yield import(\"./chrome-extension-transport-b7b99846.js\").catch((()=>{throw new Ee(ye,Ft.UNEXPECTED_ERROR)})),i=yield t.TransportChromeExtension.checkInstallation();if(i.ok)return ge(\"Using Chrome extension for transport.\",e,xt.INFO),new t.TransportChromeExtension(e,r);if(n===Kt.CHROME_EXTENSION)throw new Ee(i.message,Ft.INIT_ERROR);n===Kt.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK&&ge(i.message,e,xt.INFO)}return ge(\"Using WebHID for transport.\",e,xt.INFO),function(e,n){return t(this,void 0,void 0,(function*(){const t=yield import(\"./init-handler-beba0bba.js\").catch((()=>{throw new Ee(ye,Ft.UNEXPECTED_ERROR)})),r=yield import(\"./web-hid-transport-58a9d844.js\").catch((()=>{throw new Ee(ye,Ft.UNEXPECTED_ERROR)})),i=t.initHandler(e);return new r.WebHidTransport(i,e,n)}))}(e,r)}))}class Ce{constructor(t,e){this.log=t.consoleAppEvent.pipe(qt((t=>\"log\"===t.event)),At((t=>({message:t.message,level:t.level,layer:t.layer})))),this.log.subscribe((t=>ge(t.message,e,t.level,t.layer)))}}const Ne=[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 Te{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=Ne[e]^r<<8}return 65535&(0^r)}(n.join(\"-\")).toString(16).padStart(4,\"0\");return e===r}}var Se,Ie,Ae,Re,De,He,Le;!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\"}(Se||(Se={}));class Pe{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\"}(Ie||(Ie={})),function(t){t[t.DATA=1]=\"DATA\"}(Ae||(Ae={}));class Ue{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\"}(Re||(Re={})),function(t){t[t.EVENT=0]=\"EVENT\",t[t.READ=1]=\"READ\",t[t.WRITE=2]=\"WRITE\",t[t.REPLY=3]=\"REPLY\"}(De||(De={})),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\"}(He||(He={})),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\"}(Le||(Le={}));const ke={command:He.DEVICE,subCommand:Le.ATTACH_EVENT,serialize:t=>Uint8Array.from([5,0])};function xe(t){const e=t.payload,n=e[0],r=e.length-1;if(r!==n)throw new Ee(`Invalid response. Expected length: ${n}, actual: ${r}`,Ft.DEVICE_ERROR);const i=e.slice(1);return String.fromCharCode(...Array.from(i))}class Ge{constructor(){var t;this.command=He.IDENT,this.subCommand=Le.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 Ee(`Invalid response. Expected length: ${r}, actual: ${i}`,Ft.DEVICE_ERROR);const o=[];return n.slice(1).forEach((e=>{o.push(t(e))})),o})}}const Fe={command:He.IDENT,subCommand:Le.NAME,deserialize:xe},Me={command:He.IDENT,subCommand:Le.PID,deserialize:function(t){const e=t instanceof Ue?t.payload:t;return new DataView(e.buffer).getUint16(0,!0)}};class Be{constructor(){this.command=He.CONFIG,this.subCommand=Le.CONFIG_PREFERRED_SOFTPHONE,this.deserialize=t=>t.payload[0],this.serialize=t=>Uint8Array.of(t)}}class Ke{constructor(){this.command=He.IDENT,this.subCommand=Le.TYPE,this.deserialize=t=>t.source}}const We={command:He.IDENT,subCommand:Le.ID,deserialize:xe};\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function Ye(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 Ve,je,qe=Ye((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},w=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)},y=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)},O=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)},C=function(t,e){for(var n=0;n<c;n++)t[n]^=e[n]},N=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=N(N(T(o,5),n(E,s,a,c)),N(N(u,i[E]),r(E)));u=c,c=a,a=T(s,30),s=o,o=g}o=N(o,h),s=N(s,d),a=N(a,p),c=N(c,f),u=N(u,v)}return[o,s,a,c,u]},I=function(t){return a(S(s(t,{ibits:8,obits:32,obigendian:!0}),8*t.length),{ibits:32,ibigendian:!0})},A=function(t,e){function n(t,e,n,r,i,o){return N(T(N(N(e,t),N(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=N(a,d),c=N(c,p),u=N(u,f),l=N(l,v)}return[a,c,u,l]},R=function(t){return a(A(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);y(e,18),C(e,t),y(e,27);var n=p(t);y(n,59),m(e,this.mask);var r=v(n),i=p(e);return O(i,32-r),y(e,r),C(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=w(o,8),n[3]=255&i,i=w(o,8),n[2]=255&i,i=w(o,8),n[1]=255&i,i=w(o,8),n[0]=255&i,i=w(o,8),n[5]=255&i,i=w(o,8),n[4]=255&i,i=w(o,8),n[7]=255&i,i=w(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):I(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 $e{constructor(t){this.transport=t,this.gnpLockAcquired=t.consoleAppEvent.pipe(qt((t=>\"response-gnp-lock\"===t.event)),At((t=>t.token)),le(1)),this.gnpLockAcquired.subscribe()}acquireGnpLock(t){const e=new qe(4).toString(),n={action:\"request-gnp-lock\",id:t,token:e},r=this.gnpLockAcquired.pipe(oe((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\"}(Ve||(Ve={})),function(t){t.ABSOLUTE=\"absolute\",t.RELATIVE=\"relative\"}(je||(je={}));class ze{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 Qe(t,e,n){const r=t.toString(16).padStart(4,\"0\"),i=e.toString(16).padStart(4,\"0\");return new ze(`${r}:${i}:${n}`)}class Je{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 Je(new ze(t),e.usagePage,e.usage,e.value)}}class Xe{constructor(t,e,n){this.descriptor=e,this.transport=n,this.transportId=t.transportId,this.input=n.consoleAppEvent.pipe(qt((t=>t.id===this.transportId)),Xe.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 qe(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(oe((t=>\"response-hid-feature\"===t.event&&t.token===n)),At((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 Ze(t){return e=>e.pipe(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=gt(t);return U((function(e,r){for(var i=t.length,o=new Array(i),s=t.map((function(){return!1})),a=!1,l=function(e){ht(t[e]).subscribe(new k(r,(function(t){o[e]=t,a||s[e]||(s[e]=!0,(a=s.every(D))&&(s=null))}),C))},h=0;h<i;h++)l(h);e.subscribe(new k(r,(function(t){if(a){var e=u([t],c(o));r.next(n?n.apply(void 0,u([],c(e))):e)}})))}))}(t),qt((([t,e])=>e)),At((([t,e])=>t)))}Xe.inputReportsFilter=t=>t.pipe(qt((t=>\"hid-input\"===t.event)),At((t=>Je.deserialize(t.id,t))));class tn{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 Ue(e,n,i,o,s,c,r)}}tn.lengthMask=63;class en{constructor(){this.data=[]}hasHeader(){return this.data.length>=en.gnpPacketHeaderLength}expectedPacketLength(){if(!this.hasHeader())throw new Ee(\"Unable to get expected packet length without a full header\",Ft.UNEXPECTED_ERROR);return tn.packetLengthFromAttr(this.data[3])}appendData(t){this.hasHeader()&&this.expectedPacketLength()>en.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 Ee(\"Trying to get packet but buffer is not complete\",Ft.UNEXPECTED_ERROR);const t=tn.deserialize(Uint8Array.from(this.data));return this.data=[],t}}en.gnpPacketHeaderLength=6,en.gnpPacketMaxLength=63;const nn=()=>{};function rn(t){return ve((e=>t()),(e=>t()),(()=>nn))}const on=()=>{return t=t=>t.command===He.NACK,e=t=>new Ee(`Got NACK response. Reason: ${t.subCommand}`,Ft.DEVICE_ERROR),n=>n.pipe(At((n=>t(n)?wt(e(n)):bt(n))),pe());var t,e},sn=t=>oe((e=>e.type===De.REPLY&&e.sequenceNumber===t.sequenceNumber&&e.destination===t.source&&e.source===t.destination));class an{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(an.inputFilter),this.events=this.packets.pipe(an.eventsFilter),this.nextSequenceNumber=i}static get inputFilter(){return t=>{const e=t.pipe(qt((t=>t.usagePage===Ie.GN_PROTOCOL&&t.usage===Ae.DATA&&t.isArray()))),n=new en;return e.pipe(Rt((t=>{const e=t.value;if(n.appendData(e),n.hasFullPacket()){return bt(n.getPacketAndReset())}return Wt})),ce())}}static supportsGnpOverHid(t){return void 0!==t.findDescriptor(Ie.GN_PROTOCOL,Ae.DATA,Ve.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(Ie.GN_PROTOCOL,Ae.DATA,Ve.OUTPUT))||void 0===e?void 0:e.reportSize;if(!n)throw new Ee(\"Cannot send GNP packets to this device.\",Ft.DEVICE_ERROR);const r=class{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}}.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(Ie.GN_PROTOCOL,Ae.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 Ue(n,Re.PC_ADDR,De.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 Pe(t,(t=>new Uint8Array));return this.readWithParams(r,null,e,n)}readWithParams(t,e,n=this.primaryAddress,r=2500){const i=new Ue(n,Re.PC_ADDR,De.READ,t.command,t.subCommand,t.serialize(e),this.getNextSequenceNumber()),o=new G;return this.doWithGnpLockHeld(((e,n,s)=>{n.pipe(sn(i),on(),oe((t=>t.command===i.command&&t.subCommand===i.subCommand)),St(r),rn(s),At((e=>t.deserialize(e)))).subscribe(o),e(i)})),o}write(t,e,n=this.primaryAddress,r=2500){const i=new Ue(n,Re.PC_ADDR,De.WRITE,t.command,t.subCommand,t.serialize(e),this.getNextSequenceNumber()),o=new G;return this.doWithGnpLockHeld(((t,e,n)=>{e.pipe(sn(i),on(),oe((t=>t.command===He.ACK)),St(r),rn(n),At((()=>!0))).subscribe(o),t(i)})),o}}an.eventsFilter=t=>t.pipe(qt((t=>t.type===De.EVENT)));class cn{constructor(t,e){this.parentGnpChannel=t,this.primaryAddress=e,this.events=t.events.pipe(qt((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 un(t,e,n,r){if(!an.supportsGnpOverHid(t))return wt((()=>new Ee(\"Device does not support GNP commands.\",Ft.DEVICE_ERROR)));const i=bt(Re.HS_BT_USB_ADDR,Re.BASE_ADDR,Re.CRADLE_ADDR,Re.HS1_ADDR,Re.HS_CRADLE_ADDR).pipe(At(((r,i)=>Pt((()=>{const o=new an(t,new $e(e),n,r,i),s=new Ke;return o.read(s,r,500).pipe(At((t=>o)),Jt((()=>Q)))})))),Ht(),te(1),re((()=>new Ee(\"GNP probe failed.\",Ft.DEVICE_ERROR))));return $t(r.pipe(Rt((t=>wt((()=>new Ee(\"Device was suddenly disconnected.\",Ft.DEVICE_ERROR)))))),i).pipe(ce())}function ln(t,e){return new cn(t,e)}class hn{constructor(){this.primaryAddress=Re.BASE_ADDR,this.events=Wt}subscribeToEvent(t,e){return wt((()=>new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)))}sendEvent(t,e,n){throw new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)}read(t,e,n){return wt((()=>new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)))}readWithParams(t,e,n,r){return wt((()=>new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)))}write(t,e,n,r){return wt((()=>new Ee(\"This device does not support GNP commands.\",Ft.FEATURE_NOT_SUPPORTED)))}}class dn{constructor(t){this.transportId=t,this.isChild=!1}equals(t){return this.isChild===t.isChild&&this.transportId===t.transportId}toString(){return this.transportId}}class pn{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 fn,vn,En;!function(t){t.NO_TRACKING=\"no-tracking\",t.TRACK_ERRORS=\"track-errors\",t.TRACK_USAGE=\"track-usage\",t.TRACK_ALL=\"track-all\"}(fn||(fn={})),function(t){t[t.BLUETOOTH=0]=\"BLUETOOTH\",t[t.INDIRECT=1]=\"INDIRECT\",t[t.USB=2]=\"USB\"}(vn||(vn={})),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\"}(En||(En={}));class gn{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:C})}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 gn(t,e,n,r.events,r.primaryAddress,s,a,c,u,i,o)}}const _n=(t=3,e=500)=>n=>n.pipe(Rt(((n,r)=>{const i=r+1;return i>t?wt((()=>n)):Ut(i*i*e)})));function mn(t,e,n,r=1e3,i=3,o=100){return Pt((()=>t.read(e,n,r))).pipe(ae(_n(i,o)))}function bn(t,e,n){const{deviceType:r,address:i}=n;return{transportId:e.transportId,vid:e.vid,pid:mn(t,Me,i),name:mn(t,Fe,i),serialNumber:mn(t,We,i),capabilities:e.capabilities,deviceType:r,connectionGnpAddress:i}}class wn{constructor(t,e,n=bn,r=gn.createConnection,i=ln){this.parentConnection=e,this.connectionCreator=r,this.createChildGnpChannel=i;const o=e.events.pipe(qt((t=>t.command===He.DEVICE&&t.subCommand===Le.ATTACH_EVENT)),At((t=>({deviceType:t.payload[0],address:t.payload[1]})))).pipe(At(n.bind(null,e,t)));this.connectionEvents=o.pipe(At((t=>{const n=$t(e.events.pipe(oe((e=>e.command===He.DEVICE&&e.subCommand===Le.DETACH_EVENT&&e.payload[1]===t.connectionGnpAddress)),At(C)),e.onDisconnect);return{attach:t,detach:n}})),Rt((t=>Qt(bt(t.attach),this.createConnection(t.attach,t.detach)))),At((([t,e])=>({event:t,connection:e}))),fe(e.onDisconnect)),e.sendEvent(ke,[])}createConnection(t,e){const n=t.connectionGnpAddress,r=this.createChildGnpChannel(this.parentConnection,n),i=new pn(this.parentConnection.id,n);return bt(this.connectionCreator(i,vn.INDIRECT,this.parentConnection.hidChannel,r,e,this.parentConnection.id))}}const yn={command:He.IDENT,subCommand:Le.TYPE,deserialize:t=>{const{payload:e}=t,n=e[0];if(n<1||n>=e.length)throw new Ee(\"Cannot get device type.\",Ft.DEVICE_ERROR);return e[1]}};function On(t,e,n,r=xt.ERROR,i=Gt.JS_LIB){ge(`${t} ${function(t){if(t instanceof Ee){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)}`,n,r,i)}function Cn(t){return new wn(t.event,t.connection).connectionEvents}class Nn{constructor(t,e,n=((t,e,n)=>new Xe(t,e,n)),r=un,i=Cn,o=gn.createConnection){this.transport=t,this.logger=e,this.createHidChannel=n,this.createRootGnpChannel=r,this.connectionCreator=o;const s=this.transport.consoleAppEvent.pipe(qt((t=>\"attach\"===t.event)),At(Nn.createAttachEvent),Jt(((t,e)=>(On(\"\",t,this.logger),e)))).pipe(At((t=>{const e=this.transport.consoleAppEvent.pipe(qt((t=>\"detach\"===t.event)),oe((e=>Nn.getTransportId(e)===t.transportId)),At(C),le());return e.subscribe(),{attach:t,detach:e}})),Rt((t=>this.createConnection(t.attach,t.detach))),ce()),a=s.pipe(qt((t=>t.event.deviceType===En.DONGLE)),qt((t=>an.supportsGnpOverHid(t.connection.hidChannel))),Rt((t=>i(t))));this.connectionEvents=kt(s,a).pipe(ce())}static convertToReportType(t){switch(t){case\"input\":return Ve.INPUT;case\"output\":return Ve.OUTPUT;case\"feature\":return Ve.FEATURE;default:throw new Ee(`${t} is not a valid ReportType`,Ft.UNEXPECTED_ERROR)}}static convertToValueType(t){switch(t){case\"absolute\":return je.ABSOLUTE;case\"relative\":return je.RELATIVE;default:throw new Ee(`${t} Not a valid ValueType`,Ft.UNEXPECTED_ERROR)}}static createDescriptor(t){return t.map((t=>({reportType:Nn.convertToReportType(t.reportType),usagePage:t.usagePage,usage:t.usage,valueType:Nn.convertToValueType(t.valueType),reportSize:t.reportSize})))}static getMandatoryField(t,e){const n=t[e];if(void 0===n)throw new Ee(`JSON event lacks required field \"${e}: ${JSON.stringify(t)}`,Ft.UNEXPECTED_ERROR);return n}static getTransportId(t){return Nn.getMandatoryField(t,\"id\")}static createAttachEvent(t){return{transportId:Nn.getTransportId(t),vid:Nn.getMandatoryField(t,\"vid\"),pid:bt(Nn.getMandatoryField(t,\"pid\")),name:bt(Nn.getMandatoryField(t,\"name\")),serialNumber:bt(Nn.getMandatoryField(t,\"serialNumber\")),capabilities:Nn.createDescriptor(Nn.getMandatoryField(t,\"descriptor\"))}}createConnection(t,e,n=3,r=100){const{capabilities:i,transportId:o}=t,s=new dn(o),a=this.createHidChannel(s,i,this.transport),c=this.createRootGnpChannel(a,this.transport,o,e).pipe(Jt(((t,e)=>(t.type&&t.type===Ft.DEVICE_ERROR&&this.transport.context===Bt.WEB_HID&&ge(\"Child devices are not yet supported when using WebHID.\",this.logger,xt.WARNING,Gt.JS_LIB),bt(new hn)))),ce()),u=c.pipe(Rt((t=>t.read(yn))),ae(_n(n,r)),Jt((t=>bt(En.ANY))));return Qt(c,u).pipe(fe(e),At((([n,r])=>({event:Object.assign(Object.assign({},t),{deviceType:r,connectionGnpAddress:n.primaryAddress}),connection:this.connectionCreator(s,vn.USB,a,n,e)}))))}}var Tn,Sn,In,An,Rn;class Dn{constructor(t,r,i,o,s,a){this.vendorId=t,this.productId=r,this.serialNumber=i,this.name=o,this.type=s,Sn.set(this,void 0),n(this,Sn,new me(a,e(Dn,Tn,\"m\",An)),\"f\"),this.connectionAdded=e(this,Sn,\"f\").itemAdded,this.connectionRemoved=e(this,Sn,\"f\").itemRemoved,this.connectionList=e(this,Sn,\"f\").itemList,this.onDisconnect=e(this,Sn,\"f\").itemList.pipe(he(1),oe((t=>0===t.length)),At(C),ce())}get id(){return Qe(this.vendorId,this.productId,this.serialNumber)}get currentConnections(){return e(this,Sn,\"f\").getValue()}get browserLabel(){return`${this.vendorId.toString(16).padStart(4,\"0\")}:${this.productId.toString(16).padStart(4,\"0\")}`}}Tn=Dn,Sn=new WeakMap,An=function(t,n){return e(Dn,Tn,\"f\",In).indexOf(t.type)-e(Dn,Tn,\"f\",In).indexOf(n.type)},In={value:[vn.USB,vn.INDIRECT,vn.BLUETOOTH]};class Hn{constructor(t){this.deviceObservables=new me(t)}static exceptionToUndefined(t){try{return t()}catch(t){if(t instanceof Ee)return;throw t}}connectionExists(t){return void 0!==Hn.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 Ee(`Could not find connection with id ${t.toString()}`,Ft.UNEXPECTED_ERROR)}findDeviceByDeviceId(t){return this.deviceObservables.getValue().find((e=>e.id.startsWith(t)||t.startsWith(e.id)))}}class Ln{constructor(t,e){this.logger=e;const[n,r]=(i=t.pipe(qt((t=>!this.deviceCollection.connectionExists(t.connection.id))),Xt((t=>this.force(t)))),[qt(o=({event:t,pid:e,serialNumber:n})=>!this.deviceCollection.findDeviceByDeviceId(Qe(t.event.vid,e,n)),s)(ht(i)),qt(jt(o,s))(ht(i))]);var i,o,s;const a=n.pipe(At((t=>Ln.createDevice(t,r))));this.deviceCollection=new Hn(a),this.deviceObservables=this.deviceCollection.deviceObservables}force(t){const{name:e,pid:n,serialNumber:r}=t.event,i=t.connection.onDisconnect.pipe((o=wt((()=>new Error(`Connection with ID ${t.connection.id} disconnected`))),p(s)?Xt((function(){return o}),s):Xt((function(){return o}))));var o,s;return Qt(e,n,r).pipe(At((([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?U((function(e,n){zt(u([e],c(t)))(n)})):D}(i),Jt((t=>(ge(`Failed to retrieve child connection information. Error: ${t}`,this.logger,xt.WARNING,Gt.JS_LIB),Q))))}static createDevice(t,e){const{event:n,pid:r,name:i,serialNumber:o}=t,{vid:s,deviceType:a}=n.event,c=e.pipe(qt((e=>Ln.isSameDevice(t,e))),At((t=>t.event.connection))),u=Lt(bt(n.connection),c);return new Dn(s,r,o,i,a,u)}static isSameDevice(t,e){const n=Qe(t.event.event.vid,t.pid,t.serialNumber),r=Qe(e.event.event.vid,e.pid,e.serialNumber);return n.startsWith(r)||r.startsWith(n)}static create(t,e){const n=new Nn(t,e);return new Ln(n.connectionEvents)}}function Pn(e){var n,r,i;return t(this,void 0,void 0,(function*(){const t=null==e?void 0:e.logger;ge(\"Jabra SDK JS starting up...\",t,xt.INFO);const o=new Te(e);o.validateOrganizationKey(),o.validateAppId(),o.validateAppName();const s=null!==(r=null===(n=null==e?void 0:e.internal)||void 0===n?void 0:n.testDeviceTransport)&&void 0!==r?r:yield Oe(t,null==e?void 0:e.transport,null===(i=null==e?void 0:e.internal)||void 0===i?void 0:i.recorder);new Ce(s,t);const a=Ln.create(s,t),c=new we(a,s,e);return yield s.connect(),c}))}class Un{constructor(t,e,n,r){this.deviceId=t,this.usagePage=e,this.usage=n,this.value=r}}class kn{constructor(t,e){this.token=t,this.value=e}}!function(t){t.UsageReport=class{constructor(t,e){this.usage=t,this.value=e}}}(Rn||(Rn={}));var xn,Gn,Fn,Mn,Bn,Kn,Wn,Yn,Vn,jn,qn=Ye((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 $n(){return t(this,void 0,void 0,(function*(){const{hid:t}=window.navigator;if(!t)throw new Ee(\"WebHID not supported\",Ft.INIT_ERROR);const e=yield t.requestDevice({filters:[{vendorId:xn.VENDOR_ID}]});return new BroadcastChannel(xn.PAIRING_CHANNEL).postMessage(null),e}))}!function(t){t[t.VENDOR_ID=2830]=\"VENDOR_ID\",t.PAIRING_CHANNEL=\"jabra-webhid-pairing-channel\"}(xn||(xn={})),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\"}(Gn||(Gn={}));class zn{constructor(t,e,n){this.type=t,this.value=e,this.valueType=n}toString(){return void 0===Gn[this.type]?`Unknown signal: type: ${this.type}, value: ${this.value}, valueType: ${this.valueType}`:`Signal: type: ${Gn[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\"}(Fn||(Fn={})),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\"}(Mn||(Mn={})),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\"}(Bn||(Bn={}));class Qn{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(ce());return t.subscribe(),t}filter(){const t=this.hidChannel.input.pipe(qt((t=>t.usagePage===Fn.GN_TELEPHONY&&!t.isArray())),Rt((t=>{const e=this.hidChannel.findDescriptor(t.usagePage,t.usage,Ve.INPUT);return(null==e?void 0:e.valueType)?bt(Object.assign(Object.assign({},t),{valueType:e.valueType})):(On(\"\",new Ee(`Unable to find value-type in descriptor for UsagePage: ${t.usagePage} and Usage: ${t.usage}`,Ft.FEATURE_NOT_SUPPORTED),this.logger),Q)})),qt((t=>{if(t.valueType===je.RELATIVE)return Boolean(t.value);return this.cachedSignals.get(t.usage)!==t.value})),ve((t=>{this.cachedSignals.set(t.usage,t.value)})),fe(this.onDisconnect),ce()),e=[Gn.HOOK_SWITCH,Gn.REDIAL],n=t.pipe(Ze(this.isSoftphoneInFocus),qt((t=>e.includes(t.usage)&&!this.lockHeld.getValue())));return kt(t.pipe(qt((t=>this.lockHeld.getValue()))),n).pipe(At((t=>new zn(t.usage,0!==t.value,t.valueType))),Jt((t=>(ge(t.message,this.logger),Q))))}}class Jn{constructor(t,r,i,o,s,a){this.device=t,this.onDisconnect=i,Kn.set(this,void 0),Wn.set(this,new M(!1)),Yn.set(this,void 0),Vn.set(this,!1),this.deviceSignals=new G,n(this,Kn,o,\"f\"),e(this,Kn,\"f\").lockHeld.subscribe(e(this,Wn,\"f\")),n(this,Yn,r,\"f\"),this.onDisconnect.pipe(oe(),At((()=>!0))).subscribe((t=>{n(this,Vn,t,\"f\")}));const c=new Qn(e(this,Yn,\"f\"),this.onDisconnect,s,e(this,Wn,\"f\"),a);this.deviceSignals=c.setup()}checkCallLockHeld(t){if(!e(this,Wn,\"f\").getValue())throw new Ee(t,Ft.SDK_USAGE_ERROR)}checkCallLockNotHeld(t){if(e(this,Wn,\"f\").getValue())throw new Ee(t,Ft.SDK_USAGE_ERROR)}checkHasDisconnected(){if(e(this,Vn,\"f\"))throw new Ee(\"CallControl cannot be performed as the connection has disconnected.\",Ft.SDK_USAGE_ERROR)}takeCallLock(){return this.checkHasDisconnected(),this.checkCallLockNotHeld(\"Trying to take the call lock, but it is already held!\"),Ot(e(this,Kn,\"f\").tryTakeCallLock())}releaseCallLock(){this.checkHasDisconnected(),this.checkCallLockHeld(\"Trying to release the call lock, but it is not held!\"),e(this,Kn,\"f\").releaseCallLock()}offHook(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"Calls can only be started and stopped when the call lock is held.\");const n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.OFF_HOOK,Ve.OUTPUT);if(!n)throw new Ee(`Device ${this.device.name} does not support any offHook functionality.`,Ft.FEATURE_NOT_SUPPORTED);const r=t?1:0;e(this,Yn,\"f\").output(n.usagePage,n.usage,r)}ring(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The ringer state can only be modified when the call lock is held.\");const n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.RING,Ve.OUTPUT),r=e(this,Yn,\"f\").findDescriptor(Fn.GN_TELEPHONY,Bn.RINGER,Ve.OUTPUT);if(!n&&!r)throw new Ee(`Device ${this.device.name} does not support any ring functionality.`,Ft.FEATURE_NOT_SUPPORTED);if(r){const n=t?1:0;e(this,Yn,\"f\").output(r.usagePage,r.usage,n)}if(n){const r=t?1:0;e(this,Yn,\"f\").output(n.usagePage,n.usage,r)}}mute(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The mute state can only be modified when the call lock is held.\");let n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.MIC_MUTE,Ve.OUTPUT);if(n||(n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.MUTE,Ve.OUTPUT)),!n)throw new Ee(`Device ${this.device.name} does not support any mute functionality.`,Ft.FEATURE_NOT_SUPPORTED);const r=t?1:0;e(this,Yn,\"f\").output(n.usagePage,n.usage,r)}hold(t){this.checkHasDisconnected(),this.checkCallLockHeld(\"The hold state can only be modified when the call lock is held.\");const n=e(this,Yn,\"f\").findDescriptor(Fn.GN_LED,Mn.HOLD,Ve.OUTPUT);if(!n)throw new Ee(`Device ${this.device.name} does not support hold functionality.`,Ft.FEATURE_NOT_SUPPORTED);const r=t?1:0;e(this,Yn,\"f\").output(n.usagePage,n.usage,r)}}Kn=new WeakMap,Wn=new WeakMap,Yn=new WeakMap,Vn=new WeakMap,function(t){t[t.STD_TELEPHONY=0]=\"STD_TELEPHONY\",t[t.GN_TELEPHONY=1]=\"GN_TELEPHONY\"}(jn||(jn={}));const Xn={[Se.SKYPE]:jn.GN_TELEPHONY,[Se.CISCO]:jn.GN_TELEPHONY,[Se.AVAYA]:jn.GN_TELEPHONY,[Se.SIEMENS]:jn.GN_TELEPHONY,[Se.IBM]:jn.GN_TELEPHONY,[Se.AASTRA]:jn.GN_TELEPHONY,[Se.JABRA]:jn.GN_TELEPHONY,[Se.NEC]:jn.GN_TELEPHONY,[Se.SHORETEL]:jn.GN_TELEPHONY,[Se.MS_OC]:jn.STD_TELEPHONY,[Se.ALCATEL]:jn.STD_TELEPHONY,[Se.OTHER]:jn.STD_TELEPHONY,[Se.NORTEL]:null,[Se.GENERIC]:null};function Zn(t,e){const n=t.read(new Be).pipe(At((t=>Xn[t]===e))),r=t.read(new Ge).pipe(At((t=>t.find((t=>Xn[t]===e))))).pipe(At((e=>e?t.write(new Be,e):bt(!1))),pe());return n.pipe((i=bt(!0),o=r,t=>t.pipe(At((t=>t?i:o)),pe())));var i,o}class tr{constructor(t,e,n){this.connectionCallLock=t,this.device=e,this.logger=n,this.lockHeld=new M(!1),this.currentLocks=new M(new Set),this.lockReleaseEvent=new G}tryTakeCallLock(){const{currentConnections:t}=this.device,e=new Set,n=Pt((()=>lt(t).pipe(Xt((t=>this.takeSingleCallLock(t).pipe(Jt((t=>(On(\"DeviceCallLock:\",t,this.logger),bt(\"\"))))))),ve((t=>e.add(t)))))).pipe(function(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?qt((function(e,n){return t(e,n,r)})):D,se(1),n?Zt(e):re((function(){return new yt})))}}(),At((n=>(e.delete(\"\"),this.currentLocks.next(e),e.size!==t.length?(this.releaseCallLock(),!1):(this.lockHeld.next(!0),!0)))),le());return n.subscribe((t=>{t&&(this.acquireLockOnNextConnectionEmit(),this.releaseLockOnRemovedConnectionEmit())})),n}acquireLockOnNextConnectionEmit(){this.device.connectionAdded.pipe(fe(this.lockReleaseEvent)).subscribe((t=>{this.takeSingleCallLock(t).pipe(fe(this.lockReleaseEvent),At((t=>(this.currentLocks.getValue().add(t),this.currentLocks.next(this.currentLocks.getValue()),C))),ae(_n())).subscribe({error:t=>{ge(`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,xt.WARNING,Gt.JS_LIB)}})}))}releaseLockOnRemovedConnectionEmit(){this.device.connectionRemoved.pipe(fe(this.lockReleaseEvent)).subscribe((t=>this.releaseSingleCallLock(t.id.transportId)))}takeSingleCallLock(t){return Pt((()=>this.connectionCallLock.tryTakeCallLock(t.id.transportId))).pipe(At((e=>e.acquired?bt(e.transportId):wt((()=>new Ee(`Failed to acquire call lock on connection ${t.id.transportId}`,Ft.SDK_USAGE_ERROR))))),pe())}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 er{constructor(t){this.transport=t}tryTakeCallLock(t){const e={action:\"request-call-lock\",id:t};return this.transport.writeAction(e),this.transport.consoleAppEvent.pipe(qt((e=>\"response-call-lock\"===e.event&&e.id===t)),At((t=>({transportId:t.id,acquired:t.acquired}))),oe())}releaseCallLock(t){const e={action:\"release-call-lock\",id:t};this.transport.writeAction(e)}}const nr=[{usagePage:Fn.GN_LED,usage:Mn.OFF_HOOK,reportType:Ve.OUTPUT},{usagePage:Fn.GN_LED,usage:Mn.RING,reportType:Ve.OUTPUT},{usagePage:Fn.GN_TELEPHONY,usage:Bn.RINGER,reportType:Ve.OUTPUT},{usagePage:Fn.GN_LED,usage:Mn.MIC_MUTE,reportType:Ve.OUTPUT},{usagePage:Fn.GN_LED,usage:Mn.MUTE,reportType:Ve.OUTPUT},{usagePage:Fn.GN_LED,usage:Mn.HOLD,reportType:Ve.OUTPUT}],rr=[vn.USB,vn.INDIRECT,vn.BLUETOOTH];function ir(t,e){const{hidChannel:n}=t;return!!function(t){return nr.some((({usagePage:e,usage:n,reportType:r})=>t.findDescriptor(e,n,r)))}(n)&&(!an.supportsGnpOverHid(n)||e!==En.DONGLE&&e!==En.OTHER)}function or(t){const{currentConnections:e,type:n}=t;var r;return(r=e,[...r].sort(((t,e)=>rr.indexOf(t.type)-rr.indexOf(e.type)))).find((t=>ir(t,n)))}function sr(t,e,n,r,i){const o=or(t),{hidChannel:s,onDisconnect:a}=o,c=new tr(new er(r),t,i);if(e)return bt(new Jn(t,s,a,c,n.softphoneInFocus,i));if(r.context===Bt.WEB_HID)return bt(new Jn(t,s,a,c,n.softphoneInFocus,i));return function(t,e){return t.findDescriptor(Fn.GN_TELEPHONY,Bn.GN_TELEPHONY_CONT_SET,Ve.FEATURE)?Pt((()=>(t.setFeatureReport(Fn.GN_TELEPHONY,Bn.GN_TELEPHONY_CONT_SET,1),bt(!0)))):e?Zn(e,jn.GN_TELEPHONY):bt(!1)}(s,o).pipe(At((e=>new Jn(t,s,a,c,n.softphoneInFocus,i))))}class ar{constructor(t){this.devComm=t,this.softphoneInFocus=new L,this.softphoneInFocus=this.devComm.consoleAppEvent.pipe(qt((t=>\"softphone-in-focus\"===t.event)),At((t=>t.infocus)),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=_t(t);return U((function(e,r){(n?Lt(t,e,n):Lt(t,e)).subscribe(r)}))}(!1),le(1)),this.softphoneInFocus.subscribe((()=>{}))}setSharedSoftphoneInfo(t){if(!(null==t?void 0:t.partnerKey)||!(null==t?void 0:t.appId))return void ge(\"Unable to register with Jabra Direct: partnerKey or appId missing in config\",null==t?void 0:t.logger,xt.WARNING);const e=t.partnerKey+t.appId,n=new qe(5,\"ns:OID\",e);let{appName:r}=t;if((!t.appName||t.appName.length<3)&&(ge(\"App name missing in config. Fall back to use appId as app name.\",null==t?void 0:t.logger,xt.WARNING),r=t.appId),r.length>100)return void ge(\"Unable to register with Jabra Direct: appName must be below 100 characters.\",null==t?void 0:t.logger,xt.WARNING);const i={action:\"set-softphone-info\",name:r,id:n.toString()};this.devComm.writeAction(i)}}var cr,ur,lr,hr,dr,pr,fr,vr,Er,gr;class _r{constructor(t){var r;cr.set(this,void 0),ur.set(this,void 0),lr.set(this,void 0),hr.set(this,void 0),n(this,ur,new ar(t._transport),\"f\"),e(this,ur,\"f\").setSharedSoftphoneInfo(t._config),n(this,cr,t._transport,\"f\"),n(this,lr,null===(r=t._config)||void 0===r?void 0:r.logger,\"f\"),n(this,hr,t._readyEvents.pipe(oe((t=>\"ready\"===t.event)),At((t=>t.jabraDirectInstalled))),\"f\")}createCallControl(t){if(!this.supportsCallControl(t))return Promise.reject(new Ee(`Device ${t.name} does not support call control.`,Ft.FEATURE_NOT_SUPPORTED));return Ct(e(this,hr,\"f\").pipe(Rt((n=>sr(t,n,e(this,ur,\"f\"),e(this,cr,\"f\"),e(this,lr,\"f\"))))))}supportsCallControl(t){return void 0!==or(t)}}cr=new WeakMap,ur=new WeakMap,lr=new WeakMap,hr=new WeakMap,function(t){t.HOLD_CURRENT=\"hold-current\",t.END_CURRENT=\"end-current\"}(dr||(dr={})),function(t){t.MUTED=\"muted\",t.UNMUTED=\"unmuted\",t.NO_ONGOING_CALLS=\"no-ongoing-calls\"}(pr||(pr={})),function(t){t.ON_HOLD=\"on-hold\",t.NOT_ON_HOLD=\"not-on-hold\",t.NO_ONGOING_CALLS=\"no-ongoing-calls\"}(fr||(fr={})),function(t){t.NO_INCOMING=\"no-incoming\",t.AWAITING_RESPONSE=\"awaiting-response\",t.RESOLVING_RESPONSE=\"resolving-response\",t.ACCEPTED=\"accepted\",t.REJECTED=\"rejected\"}(vr||(vr={}));class mr{constructor(t){this.state=t.value,t.subscribe((t=>{this.state=t}))}}class br extends mr{constructor(t,e,n,r,i){super(t),this.commands=e,this.deviceSignals=n,this.enableFlash=r,this.logger=i}setupSignalListeners(){const e=this.extendedSignals.pipe(ce()),n=e.pipe(qt((t=>t.allowed))),r=e.pipe(qt((t=>!t.allowed)));n.subscribe((t=>{ge(`Accepted signal: ${Gn[t.type]} [${t.value}]`,null==this?void 0:this.logger,xt.INFO)})),r.subscribe((t=>{ge(`Ignored signal: ${Gn[t.type]} [${t.value}]`,null==this?void 0:this.logger,xt.INFO)})),n.pipe(qt((t=>t.type===Gn.HOOK_SWITCH))).subscribe((t=>{this.state.incomingCall!==vr.AWAITING_RESPONSE?(!1===t.value&&this.state.ongoingCalls>0&&this.commands.hookHandler.queueEndCall(!0),!0===t.value&&0===this.state.ongoingCalls&&this.commands.hookHandler.queueStartCall()):this.commands.incomingCallHandler.queueAcceptIncomingCall(dr.END_CURRENT,!0)})),n.pipe(qt((t=>t.type===Gn.PHONE_MUTE))).subscribe((()=>{this.commands.muteHandler.queueToggleMute()})),n.pipe(qt((t=>t.type===Gn.FLASH))).subscribe((()=>t(this,void 0,void 0,(function*(){this.state.incomingCall!==vr.AWAITING_RESPONSE?this.state.ongoingCalls>1?this.commands.swapHandler.queueSwapCalls():this.commands.holdHandler.queueToggleHold():yield this.commands.incomingCallHandler.queueAcceptIncomingCall(dr.HOLD_CURRENT,!0)})))),n.pipe(qt((t=>t.type===Gn.REJECT_CALL))).subscribe((()=>{this.state.incomingCall===vr.AWAITING_RESPONSE&&this.commands.incomingCallHandler.queueRejectIncomingCall()}))}get extendedSignals(){return this.deviceSignals.pipe(Rt((t=>{let e=!this.state.ignoreSignals.some((([e,n])=>t.type===e&&n===t.value));return t.type!==Gn.FLASH||this.enableFlash||(e=!1),bt(Object.assign(Object.assign({},t),{allowed:e}))})),fe(this.commands.teardownHandler.onTeardown))}}class wr{constructor(t,r,i,o,s,a,c=!0){this.logger=a,Er.set(this,void 0),this.device=t,this.onDisconnect=r,this.muteState=s.muteState,n(this,Er,o,\"f\"),this.onDisconnect.pipe(oe(),fe(e(this,Er,\"f\").teardownHandler.onTeardown)).subscribe((t=>this.teardown(!1)));new br(s.internalState,o,i,c,a).setupSignalListeners()}endCall(){return e(this,Er,\"f\").hookHandler.queueEndCall(!1)}signalIncomingCall(){try{e(this,Er,\"f\").teardownHandler.checkActive()}catch(t){return Promise.reject(t)}return e(this,Er,\"f\").incomingCallHandler.signalIncomingCall()}rejectIncomingCall(){return e(this,Er,\"f\").incomingCallHandler.queueRejectIncomingCall()}mute(){return e(this,Er,\"f\").muteHandler.queueSetMute(pr.MUTED)}unmute(){return e(this,Er,\"f\").muteHandler.queueSetMute(pr.UNMUTED)}teardown(t=!0){e(this,Er,\"f\").teardownHandler.teardown(t)}_setInitialState(t,n=!1,r=!1){return 0===t&&(n||r)&&ge(\"\\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,xt.WARNING),e(this,Er,\"f\").deviceState.setInitialState(t,n,r)}}Er=new WeakMap;class yr extends wr{constructor(t,e,r,i,o,s){super(t,e,r,i,o,s,!0),gr.set(this,void 0),this.ongoingCalls=o.ongoingCalls,this.holdState=o.holdState,this.swapRequest=o.swapEvents,n(this,gr,i,\"f\")}startCall(){return e(this,gr,\"f\").hookHandler.queueStartCall()}acceptIncomingCall(t=dr.END_CURRENT){return e(this,gr,\"f\").incomingCallHandler.queueAcceptIncomingCall(t,!1)}hold(){return e(this,gr,\"f\").holdHandler.queueSetHold(fr.ON_HOLD)}resume(){return e(this,gr,\"f\").holdHandler.queueSetHold(fr.NOT_ON_HOLD)}}gr=new WeakMap;class Or extends mr{constructor(t,e,n){super(e),this.callControl=t,this.logger=n,this.hasLock=!1}takeCallLock(){return t(this,void 0,void 0,(function*(){if(!this.hasLock){try{this.hasLock=yield this.callControl.takeCallLock()}catch(t){this.hasLock=!0,ge(t.message,null==this?void 0:this.logger,xt.WARNING)}if(!this.hasLock)throw new Ee(\"Device used by another softphone. Only one application can use the device at a time.\",Ft.SDK_USAGE_ERROR)}}))}releaseCallLock(){0===this.state.ongoingCalls&&(this.callControl.releaseCallLock(),this.hasLock=!1)}forceReleaseCallLock(){this.hasLock&&this.callControl.releaseCallLock()}}class Cr{constructor(e){this.teardownHandler=e,this.queue=new G,this.queue.pipe(Xt((e=>t(this,void 0,void 0,(function*(){try{const t=yield e.command();e.callback(t)}catch(t){if(!(t instanceof Ee))throw t;e.errCallback(t)}})))),fe(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 Nr extends mr{constructor(t,e,n,r){super(r),this.hookHandler=t,this.holdHandler=e,this.muteHandler=n}setInitialState(e,n,r){return t(this,void 0,void 0,(function*(){if(0===e)return yield this.hookHandler.queueStartCall(),void(yield this.hookHandler.queueEndCall(!1));for(let t=0;t<e;t+=1)yield this.hookHandler.queueStartCall();const t=r?fr.ON_HOLD:fr.NOT_ON_HOLD;yield this.holdHandler.queueSetHold(t);const i=n?pr.MUTED:pr.UNMUTED;yield this.muteHandler.queueSetMute(i)}))}}class Tr extends mr{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((()=>t(this,void 0,void 0,(function*(){const t=this.state.holdState===fr.ON_HOLD?fr.NOT_ON_HOLD:fr.ON_HOLD;this.setHold(t)}))))}setHold(e){return t(this,void 0,void 0,(function*(){if(0===this.state.ongoingCalls){const t=e===fr.ON_HOLD?\"hold\":\"resume\";throw new Ee(`Cannot ${t} call as there are no calls in progress.`,Ft.SDK_USAGE_ERROR)}if(this.state.ongoingCalls>1&&e===fr.NOT_ON_HOLD)return void(yield this.resumeWhileMultiple());this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:e}));const t=e===fr.NOT_ON_HOLD,n=e===fr.ON_HOLD,r=[[Gn.HOOK_SWITCH,t],[Gn.FLASH,!0]];n&&this.state.muteState===pr.MUTED&&r.push([Gn.PHONE_MUTE,!0]);const i=this.awaitSignals.listen(r);this.callControl.offHook(t),this.callControl.hold(n),yield Ot(i)}))}resumeWhileMultiple(){return t(this,void 0,void 0,(function*(){const t=this.awaitSignals.listen([[Gn.HOOK_SWITCH,!0]]);this.callControl.hold(!1),this.callControl.offHook(!0),this.callControl.hold(!0),yield Ot(t),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:fr.NOT_ON_HOLD}))}))}}class Sr extends mr{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(e=!1){return t(this,void 0,void 0,(function*(){if(this.state.incomingCall===vr.AWAITING_RESPONSE)throw new Ee(\"Cannot start a new call while another call is incoming. If you wish to answer/accept the incoming call, please use acceptIncomingCall/rejectIncomingCall instead.\",Ft.SDK_USAGE_ERROR);this.state.holdState===fr.ON_HOLD?this.startNewCallWhileOnHold():0===this.state.ongoingCalls?yield this.startFirstCall(e):this.startSubsequentCalls(),this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls+1}))}))}endCall(e){return t(this,void 0,void 0,(function*(){if(this.state.incomingCall===vr.AWAITING_RESPONSE)throw new Ee(\"Cannot end a call while another call is incoming. If you wish to answer/accept the incoming call, please use acceptIncomingCall/rejectIncomingCall instead.\",Ft.SDK_USAGE_ERROR);if(0===this.state.ongoingCalls)throw new Ee(\"Cannot end call as there are no calls in progress.\",Ft.SDK_USAGE_ERROR);1===this.state.ongoingCalls?yield this.endLastCall():this.state.holdState===fr.ON_HOLD?this.endCallWhileOnHold():yield this.endCurrentCall(e)}))}startFirstCall(e){return t(this,void 0,void 0,(function*(){yield this.callLock.takeCallLock();const t=e?[]:[[Gn.HOOK_SWITCH,!0]],n=this.awaitSignals.listen(t);this.callControl.offHook(!0),yield Ot(n),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:fr.NOT_ON_HOLD,muteState:pr.UNMUTED}))}))}startSubsequentCalls(){this.callControl.hold(!0)}startNewCallWhileOnHold(){this.callControl.hold(!1),this.callControl.offHook(!0),this.callControl.hold(!0),this.callControl.mute(!1),this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:fr.NOT_ON_HOLD,muteState:pr.UNMUTED}))}endLastCall(){return t(this,void 0,void 0,(function*(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{holdState:fr.NO_ONGOING_CALLS,muteState:pr.NO_ONGOING_CALLS,ongoingCalls:0})),this.callControl.mute(!1),this.callControl.offHook(!1),this.callControl.hold(!1),this.callLock.releaseCallLock()}))}endCurrentCall(e){return t(this,void 0,void 0,(function*(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls-1}));const t=e?[[Gn.HOOK_SWITCH,!0],[Gn.FLASH,!0],[Gn.HOOK_SWITCH,!1]]:[[Gn.HOOK_SWITCH,!1],[Gn.HOOK_SWITCH,!0]],n=this.awaitSignals.listen(t);this.callControl.offHook(!1),this.callControl.hold(!1),this.callControl.offHook(!0),1!==this.state.ongoingCalls&&this.callControl.hold(!0),yield Ot(n),this.callControl.mute(!1),this.stateHandler.next(Object.assign(Object.assign({},this.state),{muteState:pr.UNMUTED}))}))}endCallWhileOnHold(){this.stateHandler.next(Object.assign(Object.assign({},this.state),{ongoingCalls:this.state.ongoingCalls-1}))}}class Ir extends mr{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()))}signalIncomingCall(){return t(this,void 0,void 0,(function*(){return yield this.callLock.takeCallLock(),this.updateIncomingCallState(vr.AWAITING_RESPONSE),this.callControl.ring(!0),new Promise((t=>{var e,n;this.stateHandler.pipe((e=({incomingCall:t})=>t!==vr.NO_INCOMING,void 0===n&&(n=!1),U((function(t,r){var i=0;t.subscribe(new k(r,(function(t){var o=e(t,i++);(o||n)&&r.next(t),!o&&r.complete()})))}))),qt((({incomingCall:t})=>t===vr.ACCEPTED||t===vr.REJECTED))).subscribe((({incomingCall:e})=>{this.updateIncomingCallState(vr.NO_INCOMING),t(e===vr.ACCEPTED)}))}))}))}acceptIncomingCall(e,n){return t(this,void 0,void 0,(function*(){if(this.state.incomingCall!==vr.AWAITING_RESPONSE)throw new Ee(\"Cannot accept as there are no incoming calls.\",Ft.SDK_USAGE_ERROR);this.updateIncomingCallState(vr.RESOLVING_RESPONSE),this.callControl.ring(!1),this.state.holdState===fr.ON_HOLD||0===this.state.ongoingCalls?yield this.hookHandler.startCall(n):e===dr.END_CURRENT?(yield this.hookHandler.endCall(n),yield this.hookHandler.startCall(n)):e===dr.HOLD_CURRENT&&(yield this.hookHandler.startCall(n)),this.stateHandler.next(Object.assign(Object.assign({},this.state),{incomingCall:vr.ACCEPTED,holdState:fr.NOT_ON_HOLD}))}))}rejectIncomingCall(){return t(this,void 0,void 0,(function*(){if(this.state.incomingCall!==vr.AWAITING_RESPONSE)throw new Ee(\"Cannot reject as there are no incoming calls.\",Ft.SDK_USAGE_ERROR);this.callControl.ring(!1),this.updateIncomingCallState(vr.REJECTED),this.callLock.releaseCallLock()}))}updateIncomingCallState(t){this.stateHandler.next(Object.assign(Object.assign({},this.state),{incomingCall:t}))}}class Ar extends mr{constructor(t,e,n){super(e),this.callControl=t,this.stateHandler=e,this.commandQueue=n}queueSetMute(t){return this.commandQueue.pushToQueue((()=>this.setMute(t)))}queueToggleMute(){return this.commandQueue.pushToQueue((()=>t(this,void 0,void 0,(function*(){const t=this.state.muteState===pr.MUTED?pr.UNMUTED:pr.MUTED;this.setMute(t)}))))}setMute(e){return t(this,void 0,void 0,(function*(){if(0===this.state.ongoingCalls)throw new Ee(\"You cannot change mute state outside of a call.\",Ft.SDK_USAGE_ERROR);this.callControl.mute(e===pr.MUTED),this.stateHandler.next(Object.assign(Object.assign({},this.state),{muteState:e}))}))}}class Rr extends mr{constructor(t,e){super(t),this.stateHandler=t,this.commandQueue=e}queueSwapCalls(){return this.commandQueue.pushToQueue((()=>this.swapCalls()))}swapCalls(){return t(this,void 0,void 0,(function*(){if(this.state.ongoingCalls<2)throw new Ee(\"No calls to swap between. There should be at least one current call and one call on hold.\",Ft.SDK_USAGE_ERROR);this.stateHandler.next(Object.assign(Object.assign({},this.state),{swapToggle:this.state.swapToggle?0:1}))}))}}class Dr{constructor(t,e,n){this.stateHandler=t,this.callLock=e,this.logger=n,this.teardownState=new M(!1),this.onTeardown=this.teardownState.pipe(he(1),At(C))}teardown(t=!0){if(this.teardownState.value)throw new Ee(\"Easy Call Control instance already torn down.\",Ft.SDK_USAGE_ERROR);this.stateHandler.unsubscribeState(),this.teardownState.next(!0),t&&this.callLock.forceReleaseCallLock(),ge(\"Teardown complete. Create new Easy Call Control instance to continue usage.\",null==this?void 0:this.logger,xt.INFO)}checkActive(){if(this.teardownState.value)throw new Ee(\"\\n Inactive instance. Either device disconnected or teardown was called.\\n Create new EasyCallControl instance to continue usage.\",Ft.SDK_USAGE_ERROR)}}class Hr{constructor(t,e,n){this.deviceSignals=t,this.stateHandler=e,this.logger=n}listen(t){if(0===t.length)return bt(void 0);this.stateHandler.next(Object.assign(Object.assign({},this.stateHandler.value),{ignoreSignals:t}));let e=0;return this.deviceSignals.pipe(de((n=>{const[r,i]=t[e];return n.type===r&&n.value===i?(ge(`Resolve awaited signal: ${Gn[r]} [${i}]`,null==this?void 0:this.logger,xt.INFO),e+=1,bt(n)):Q})),te(t.length),St(1e3),Jt((()=>{const e=t.map((([t,e])=>`${Gn[t]}: ${e}`));return ge(`Missing signals for ${JSON.stringify(e)}. State recovered.`,null==this?void 0:this.logger,xt.INFO),bt(void 0)})),(n=()=>{this.stateHandler.next(Object.assign(Object.assign({},this.stateHandler.value),{ignoreSignals:[]}))},U((function(t,e){try{t.subscribe(e)}finally{e.add(n)}}))));var n}}class Lr{constructor(t,e,n,r){const i=new Or(t,n.internalState,r);this.teardownHandler=new Dr(n,i,r);const o=new Cr(this.teardownHandler),s=new Hr(e,n.internalState,r);this.hookHandler=new Sr(t,i,n.internalState,o,s),this.muteHandler=new Ar(t,n.internalState,o),this.holdHandler=new Tr(t,n.internalState,o,s),this.incomingCallHandler=new Ir(t,i,n.internalState,this.hookHandler,o),this.swapHandler=new Rr(n.internalState,o),this.deviceState=new Nr(this.hookHandler,this.holdHandler,this.muteHandler,n.internalState)}}const Pr={ongoingCalls:0,muteState:pr.NO_ONGOING_CALLS,holdState:fr.NO_ONGOING_CALLS,incomingCall:vr.NO_INCOMING,ignoreSignals:[],swapToggle:0};class Ur{constructor(){this.internalState=new M(Pr),this.onUnsubscribe=new G;const t=this.internalState.pipe(fe(this.onUnsubscribe));this.ongoingCalls=t.pipe(At((t=>t.ongoingCalls)),ee()),this.callActive=t.pipe(At((t=>0!==t.ongoingCalls)),ee()),this.muteState=t.pipe(At((t=>t.muteState)),ee()),this.holdState=t.pipe(At((t=>t.holdState)),ee()),this.swapEvents=t.pipe(At((t=>t.swapToggle)),ee(),At((()=>{})),he(1))}unsubscribeState(){this.onUnsubscribe.next(void 0),this.onUnsubscribe.complete(),this.internalState.complete()}}var kr,xr,Gr,Fr;class Mr extends wr{constructor(t,e,r,i,o,s){super(t,e,r,i,o,s,!1),kr.set(this,void 0),xr.set(this,void 0),this.callActive=o.callActive,n(this,kr,o.internalState,\"f\"),n(this,xr,i,\"f\")}startCall(){return t(this,void 0,void 0,(function*(){if(1===e(this,kr,\"f\").value.ongoingCalls)throw new Ee(\"Please end the call before starting a new one.\",Ft.SDK_USAGE_ERROR);yield e(this,xr,\"f\").hookHandler.queueStartCall()}))}acceptIncomingCall(){return e(this,xr,\"f\").incomingCallHandler.queueAcceptIncomingCall(dr.END_CURRENT,!1)}}kr=new WeakMap,xr=new WeakMap;class Br{constructor(t){var e;Gr.set(this,void 0),Fr.set(this,void 0),n(this,Gr,new _r(t),\"f\"),n(this,Fr,null===(e=t._config)||void 0===e?void 0:e.logger,\"f\")}createSingleCallControl(n,r){return t(this,void 0,void 0,(function*(){const t=yield this.getSharedDependencies(n),i=new Mr(t.coreDevice,t.onDisconnect,t.deviceSignals,t.commands,t.stateHandler,e(this,Fr,\"f\"));if(r){const t=r.callActive?1:0;yield i._setInitialState(t,r.muted)}return i}))}createMultiCallControl(n,r){return t(this,void 0,void 0,(function*(){const t=yield this.getSharedDependencies(n),i=new yr(t.coreDevice,t.onDisconnect,t.deviceSignals,t.commands,t.stateHandler,e(this,Fr,\"f\"));return r&&(yield i._setInitialState(r.ongoingCalls,r.muted,r.onHold)),i}))}supportsEasyCallControl(t){return e(this,Gr,\"f\").supportsCallControl(t)}getSharedDependencies(n){return t(this,void 0,void 0,(function*(){const t=yield e(this,Gr,\"f\").createCallControl(n),r=new Ur,i=t.deviceSignals.pipe(ce());return{commands:new Lr(t,i,r,e(this,Fr,\"f\")),stateHandler:r,deviceSignals:i,coreDevice:t.device,onDisconnect:t.onDisconnect}}))}}Gr=new WeakMap,Fr=new WeakMap;export{dr as A,_r as C,ze as D,Ft as E,fr as H,Rn as I,Ee as J,xt as L,pr as M,k as O,Ve as R,G as S,Bt as T,je as V,Un as W,t as _,Rt as a,Ut as b,Lt as c,$ as d,kn as e,qn as f,kt as g,Gt as h,L as i,xn as j,Gn as k,ge as l,At as m,C as n,U as o,Kt as p,fn as q,vn as r,En as s,te as t,qe as u,Pn as v,$n as w,Br 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 '../..';\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 (): 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 /* 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';\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 connect (): Promise<any> {\n !this.isConnecting && this.changeConnectionStatus({ isConnected: this.isConnected, isConnecting: true });\n this.pollForDeviceStatus();\n this.pollForCallEvents();\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 return this.logger.info('Currently active calls in the session');\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 (): Promise<any> {\n if (!this.isConnected) {\n return;\n }\n await this._makeRequestTask(`/SessionManager/UnRegister?name=${this.pluginName}`);\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 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 return 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\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 _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.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._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 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 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}","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 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 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.pendingConversationId = null;\n this.callLock = false;\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 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.ring(false);\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 this.resetState();\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.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 this.resetState();\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.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 this.resetState();\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 await this.callControl.takeCallLock();\n this.callControl.hold(false);\n this.callControl.mute(false);\n this.callControl.offHook(false);\n this.callControl.releaseCallLock();\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.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 this._sendCmd(JabraNativeCommands.Offhook, isOffhook);\n this._getHeadsetIntoVanillaState();\n this.deviceEndedCall({name: 'CallOnHook', conversationId: this.activeConversationId});\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 { 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 { 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 } 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 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\n [this.plantronics, this.jabra, this.jabraNative, this.sennheiser, this.yealink].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 ].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): boolean {\n if (this.isDifferentState(props)) {\n const state = this.headsetConversationStates[props.conversationId];\n Object.assign(state, props.state);\n return true;\n }\n\n return false;\n }\n\n activeMicChange (newMicLabel: string): 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();\n }\n } else {\n this.clearSelectedImplementation();\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): 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 })) {\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 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 (): void {\n if (!this.selectedImplementation) {\n return;\n }\n\n this.selectedImplementation.disconnect();\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 { 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":""}
|