{"version":3,"file":"captureJs.min.js","mappings":"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","sources":["webpack://SocketMobile/webpack/universalModuleDefinition","webpack://SocketMobile/webpack/bootstrap","webpack://SocketMobile/./ts/gen/eventIds.ts","webpack://SocketMobile/webpack/runtime/define property getters","webpack://SocketMobile/webpack/runtime/hasOwnProperty shorthand","webpack://SocketMobile/webpack/runtime/make namespace object","webpack://SocketMobile/./ts/captureEvents.ts","webpack://SocketMobile/./ts/jsonRpc.ts","webpack://SocketMobile/./ts/rpcTransport.ts","webpack://SocketMobile/./ts/gen/errors.ts","webpack://SocketMobile/./ts/httpTransport.ts","webpack://SocketMobile/./ts/maracaTransport.ts","webpack://SocketMobile/./ts/transport.ts","webpack://SocketMobile/./ts/capture.ts","webpack://SocketMobile/./ts/gen/propertyIdsTypes.ts","webpack://SocketMobile/./ts/gen/propertyValues.ts","webpack://SocketMobile/./ts/captureProperty.ts","webpack://SocketMobile/./ts/gen/deviceTypes.ts","webpack://SocketMobile/./ts/gen/dataSources.ts"],"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[\"SocketMobile\"] = factory();\n\telse\n\t\troot[\"SocketMobile\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","//eventIds.ts\n//This file is generated when calling npm run update\n//\n//\n\nexport enum CaptureEventIds {\n\t// Capture has not been correctly initialized after its first open.\n\t// Type: kNone\n\tNotInitialized = 0,\n\n\t// Event when a device has connected or is present.\n\t// Type: kDeviceInfo\n\tDeviceArrival = 1,\n\n\t// Event when a device is no longer present.\n\t// Type: kDeviceInfo\n\tDeviceRemoval = 2,\n\n\t// Event when Capture is terminated.\n\t// Type: kUlong\n\tTerminate = 3,\n\n\t// Event when Capture had an error.\n\t// Type: kUlong\n\tError = 4,\n\n\t// Event when Capture has some decoded data available.\n\t// Type: kDecodedData\n\tDecodedData = 5,\n\n\t// Event when a device sends a power change notification.\n\t// Type: kUlong\n\tPower = 6,\n\n\t// Event when the device button status has changed.\n\t// Type: kUlong\n\tButtons = 7,\n\n\t// Event when the battery Level has changed.\n\t// Type: kUlong\n\tBatteryLevel = 8,\n\n\t// Event when the communication listener thread has started.\n\t// Type: kUlong\n\tListenerStarted = 9,\n\n\t// Event when a device ownership has changed.\n\t// Type: kString\n\tDeviceOwnership = 10,\n\n\t// Event when the Device Manager (BLE) is present.\n\t// Type: kDeviceInfo\n\tDeviceManagerArrival = 11,\n\n\t// Event when the Device Manager (BLE) is gone.\n\t// Type: kDeviceInfo\n\tDeviceManagerRemoval = 12,\n\n\t// A device has been discovered.\n\t// Type: kDeviceInfo\n\tDeviceDiscovered = 13,\n\n\t// The device discovery has ended.\n\t// Type: kNone\n\tDiscoveryEnd = 14,\n\n\t// Event when a CaptureSDK log trace is generated.\n\t// Type: kString\n\tLogTrace = 21,\n\n\t// The Last Event should always be the last ID in the list of possible events.\n\t// Type: kNone\n\tLastID = 22,\n\n};\n\nexport enum CaptureEventTypes {\n\t// For capture events that don't have any value.\n\tNone = 0,\n\n\t// The event has a byte value.\n\tByte = 1,\n\n\t// The event has a unsigned long value.\n\tUlong = 2,\n\n\t// The event has a byte array value.\n\tArray = 3,\n\n\t// The event has a string value.\n\tString = 4,\n\n\t// The event has a decoded data structure as value.\n\tDecodedData = 5,\n\n\t// The event has a device info structure as value (read only).\n\tDeviceInfo = 6,\n\n\t// The event has an object structure (array, map, dictionary) as value (read only).\n\tObject = 7,\n\n\t// The event type should not be equal or higher that kLastID otherwise\n\t// it means the SDK is not in sync with the actual version of Socket\n\t// Mobile Companion running on the host.\n\tLastID = 8,\n\n};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { CaptureEventIds, CaptureEventTypes } from './gen/eventIds';\n\nexport class CaptureEvent<T> {\n  id: CaptureEventIds;\n  type: CaptureEventTypes;\n  result: number;\n  value?: T;\n  constructor(id: CaptureEventIds, type: CaptureEventTypes, result: number = 0, value?: T) {\n    this.id = id;\n    this.type = type;\n    this.result = result;\n    if(value) {\n      this.value = value;\n    }\n  }\n}\n","import { CaptureEvent } from './captureEvents';\nimport { CaptureEventIds, CaptureEventTypes } from './gen/eventIds';\nimport { DeviceInfo } from './deviceInfo';\nimport { DiscoveredDeviceInfo } from './discoveredDeviceInfo';\n\nexport class JsonRpc {\n  jsonrpc: string = '2.0';\n  id: number = 0;\n  constructor(id: number) {\n    this.id = id;\n  }\n};\n\n// {\n//     \"jsonrpc\": \"2.0\",\n//     \"result\": {\n//         \"handle\": 0,\n//         \"event\": {\n//             \"id\": 1,\n//             \"type\": 6,\n//             \"value\": {\n//                 \"guid\": \"{2EAAAA3F-B51E-4537-851C-31CA683C3BEF}\",\n//                 \"name\": \"Socket D740 [E537BA]\",\n//                 \"type\": 196619\n//             },\n//             result: 0\n//         }\n//     }\n// }\n\nexport class CaptureEventResult<T> {\n  handle?: number;\n  event: CaptureEvent<T>;\n  constructor(id: CaptureEventIds, type: CaptureEventTypes, result: number, value: T, handle?: number) {\n    this.event = new CaptureEvent<T>(id, type, result, value);\n    if(handle) {\n      this.handle = handle;\n    }\n  }\n}\n\nexport class JRpcEvent<T> {\n  jsonrpc: string = '2.0';\n  result: CaptureEventResult<T>;\n  constructor(id: CaptureEventIds, type: CaptureEventTypes, value: T, handle?: number) {\n    // set result to error code if present in the value. Otherwise default to 0.\n    let res = id === CaptureEventIds.Error ? value as unknown as number : 0;\n    this.result = new CaptureEventResult<T>(id, type, res, value, handle);\n  }\n};\n\nexport class JRpcEventDevicePresence extends JRpcEvent<DeviceInfo> {\n  constructor(id: CaptureEventIds, deviceInfo: DeviceInfo, handle?: number) {\n    super(id, CaptureEventTypes.DeviceInfo, deviceInfo, handle);\n  }\n};\n\nexport class JRpcEventDiscoveredDevice extends JRpcEvent<DiscoveredDeviceInfo> {\n  constructor(id: CaptureEventIds, discoveredDeviceInfo: DiscoveredDeviceInfo) {\n    super(id, CaptureEventTypes.Object, discoveredDeviceInfo);\n  }\n};\n\nexport class JRpcRequest<T> extends JsonRpc {\n  method: string;\n  params?: T;\n  constructor(id: number, method: string, params: T) {\n    super(id);\n    this.method = method;\n    if(params && params !== null) {\n      this.params = params;\n    }\n  }\n};\n\nexport class JRpcResponse<T> extends JsonRpc {\n  result?: T;\n  constructor(id: number, response: T) {\n    super(id);\n    this.result = response;\n  }\n};\n\nexport class JRpcError extends JsonRpc {\n  error: {\n    code: number,\n    message?: string\n  }\n  constructor(id: number, code: number, message?: string) {\n    super(id);\n    this.error = { code, message };\n  }\n};\n","// RPC Transport\n//\n// Interface for a transport layer used by CaptureJS\n//\n//  (c) 2019 Socket Mobile, Inc. All rights reserved\n\nimport { JRpcRequest, JRpcResponse, JRpcEvent, JRpcError } from './jsonRpc'\nexport class BaseTransport {\n  handles:{handle:number}[];\n  constructor() {\n    this.handles = [];\n  }\n  generateHandle(): number {\n    let newHandle: number;\n    while(1) {\n      newHandle = Math.floor(Math.random()*100) + 1;\n      if(this.handles.length === 0) {\n        this.handles.push({handle: newHandle});\n        return newHandle;\n      }\n      if (this.handles.every(h => h.handle !== newHandle)) {\n        this.handles.push({handle: newHandle});\n        return newHandle;\n      }\n    }\n    return 0;\n  }\n\n}\n\nexport interface RpcTransport extends BaseTransport {\n  open(host: string, notification:(event: JRpcEvent<any>)=>void): Promise<{handle: number}>;\n  close(handle: number): Promise<number>;\n  send<T>(handle: number, jsonRpc: JRpcRequest<T>): Promise<JRpcResponse<any>> | Promise<JRpcError>;\n}\n","//errors.ts\n//This file is generated when calling npm run update\n//\n//\nexport default\n  /// <summary>\n/// defines the Errors used in Capture\n/// </summary>\nclass SktErrors\n{\n\t/// <summary>\n\t/// The Lasso feature is disabled\n\t/// </summary>\n\tstatic readonly ESKT_LASSODISABLED = 8;\n\n\t/// <summary>\n\t/// This operation is deprecated\n\t/// </summary>\n\tstatic readonly ESKT_DEPRECATED = 7;\n\n\t/// <summary>\n\t/// No data present\n\t/// </summary>\n\tstatic readonly ESKT_NODATA = 6;\n\n\t/// <summary>\n\t/// The object has been created\n\t/// </summary>\n\tstatic readonly ESKT_CREATED = 5;\n\n\t/// <summary>\n\t/// This operation is still pending\n\t/// </summary>\n\tstatic readonly ESKT_STILLPENDING = 4;\n\n\t/// <summary>\n\t/// This operation is pending\n\t/// </summary>\n\tstatic readonly ESKT_PENDING = 3;\n\n\t/// <summary>\n\t/// This operation is already complete\n\t/// </summary>\n\tstatic readonly ESKT_ALREADYDONE = 2;\n\n\t/// <summary>\n\t/// The wait timed out\n\t/// </summary>\n\tstatic readonly ESKT_WAITTIMEOUT = 1;\n\n\t/// <summary>\n\t/// There is no error\n\t/// </summary>\n\tstatic readonly ESKT_NOERROR = 0;\n\n\t/// <summary>\n\t/// At least one test has failed\n\t/// </summary>\n\tstatic readonly ESKT_TESTFAILED = -1;\n\n\t/// <summary>\n\t/// There is not enough memory to complete the operation\n\t/// </summary>\n\tstatic readonly ESKT_NOTENOUGHMEMORY = -2;\n\n\t/// <summary>\n\t/// A lock cannot be created\n\t/// </summary>\n\tstatic readonly ESKT_UNABLECREATELOCK = -3;\n\n\t/// <summary>\n\t/// Unable to lock a shared resource\n\t/// </summary>\n\tstatic readonly ESKT_UNABLELOCK = -4;\n\n\t/// <summary>\n\t/// Unable to unlock a shared resource\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEUNLOCK = -5;\n\n\t/// <summary>\n\t/// Unable to remove an item from a list because the list is empty\n\t/// </summary>\n\tstatic readonly ESKT_LISTEMPTY = -6;\n\n\t/// <summary>\n\t/// An event cannot be created\n\t/// </summary>\n\tstatic readonly ESKT_UNABLECREATEEVENT = -7;\n\n\t/// <summary>\n\t/// Unable to set an event\n\t/// </summary>\n\tstatic readonly ESKT_UNABLESETEVENT = -8;\n\n\t/// <summary>\n\t/// Unable to reset an event\n\t/// </summary>\n\tstatic readonly ESKT_UNABLERESETEVENT = -9;\n\n\t/// <summary>\n\t/// The event is not created\n\t/// </summary>\n\tstatic readonly ESKT_EVENTNOTCREATED = -10;\n\n\t/// <summary>\n\t/// The provided handle is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDHANDLE = -11;\n\n\t/// <summary>\n\t/// A thread cannot be created\n\t/// </summary>\n\tstatic readonly ESKT_UNABLECREATETHREAD = -12;\n\n\t/// <summary>\n\t/// The thread is already created\n\t/// </summary>\n\tstatic readonly ESKT_THREADALREADYCREATED = -13;\n\n\t/// <summary>\n\t/// The thread is still running\n\t/// </summary>\n\tstatic readonly ESKT_THREADSTILLRUNNING = -14;\n\n\t/// <summary>\n\t/// This operation is not supported\n\t/// </summary>\n\tstatic readonly ESKT_NOTSUPPORTED = -15;\n\n\t/// <summary>\n\t/// The previous operation is not completed\n\t/// </summary>\n\tstatic readonly ESKT_PENDINGOPERATIONNOTCOMPLETED = -16;\n\n\t/// <summary>\n\t/// The item cannot be found\n\t/// </summary>\n\tstatic readonly ESKT_NOTFOUND = -17;\n\n\t/// <summary>\n\t/// The provided parameter is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDPARAMETER = -18;\n\n\t/// <summary>\n\t/// Trying to use an object that is not yet initialized\n\t/// </summary>\n\tstatic readonly ESKT_NOTINITIALIZED = -19;\n\n\t/// <summary>\n\t/// The timeout value is out of range\n\t/// </summary>\n\tstatic readonly ESKT_TIMEOUTOUTOFRANGE = -20;\n\n\t/// <summary>\n\t/// The object cannot be initialized\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEINITIALIZE = -21;\n\n\t/// <summary>\n\t/// The object cannot be un-initialized\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEDEINITIALIZE = -22;\n\n\t/// <summary>\n\t/// The configuration is unknown\n\t/// </summary>\n\tstatic readonly ESKT_UNKNOWNCONFIGURATION = -23;\n\n\t/// <summary>\n\t/// The configuration is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDCONFIGURATION = -24;\n\n\t/// <summary>\n\t/// Creating or adding an item that already exists\n\t/// </summary>\n\tstatic readonly ESKT_ALREADYEXISTING = -25;\n\n\t/// <summary>\n\t/// The provided buffer is too small\n\t/// </summary>\n\tstatic readonly ESKT_BUFFERTOOSMALL = -26;\n\n\t/// <summary>\n\t/// The specified device cannot be opened\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEOPENDEVICE = -27;\n\n\t/// <summary>\n\t/// The specified device cannot be configured\n\t/// </summary>\n\tstatic readonly ESKT_UNABLECONFIGUREDEVICE = -28;\n\n\t/// <summary>\n\t/// The string cannot be converted\n\t/// </summary>\n\tstatic readonly ESKT_UNABLECONVERTSTRING = -29;\n\n\t/// <summary>\n\t/// The specified string cannot be copied\n\t/// </summary>\n\tstatic readonly ESKT_UNABLECOPYSTRING = -30;\n\n\t/// <summary>\n\t/// The specified device is not open\n\t/// </summary>\n\tstatic readonly ESKT_DEVICENOTOPEN = -31;\n\n\t/// <summary>\n\t/// The specified item is not available\n\t/// </summary>\n\tstatic readonly ESKT_NOTAVAILABLE = -32;\n\n\t/// <summary>\n\t/// The specified file cannot be written\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEWRITEFILE = -33;\n\n\t/// <summary>\n\t/// The specified file cannot be read\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEREADFILE = -34;\n\n\t/// <summary>\n\t/// The wait has failed\n\t/// </summary>\n\tstatic readonly ESKT_WAITFAILED = -35;\n\n\t/// <summary>\n\t/// The specified checksum is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDCHECKSUM = -36;\n\n\t/// <summary>\n\t/// This command has been denied\n\t/// </summary>\n\tstatic readonly ESKT_COMMANDDENIED = -37;\n\n\t/// <summary>\n\t/// There was an error during communication\n\t/// </summary>\n\tstatic readonly ESKT_COMMUNICATIONERROR = -38;\n\n\t/// <summary>\n\t/// An unexpected command has been received\n\t/// </summary>\n\tstatic readonly ESKT_RECEIVEUNEXPECTEDCOMMAND = -39;\n\n\t/// <summary>\n\t/// The GUID cannot be created\n\t/// </summary>\n\tstatic readonly ESKT_UNABLECREATEGUID = -40;\n\n\t/// <summary>\n\t/// The specified value is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDVALUE = -41;\n\n\t/// <summary>\n\t/// The request has timed out\n\t/// </summary>\n\tstatic readonly ESKT_REQUESTTIMEDOUT = -42;\n\n\t/// <summary>\n\t/// The operation is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDOPERATION = -43;\n\n\t/// <summary>\n\t/// The protocol used is not the correct one\n\t/// </summary>\n\tstatic readonly ESKT_WRONGPROTOCOL = -44;\n\n\t/// <summary>\n\t/// The queue has been reset\n\t/// </summary>\n\tstatic readonly ESKT_QUEUERESETED = -45;\n\n\t/// <summary>\n\t/// The data size exceeeds maximum transmission unit\n\t/// </summary>\n\tstatic readonly ESKT_EXCEEDINGMTUSIZE = -46;\n\n\t/// <summary>\n\t/// The listener thread has nothing to listen to\n\t/// </summary>\n\tstatic readonly ESKT_NOTHINGTOLISTEN = -47;\n\n\t/// <summary>\n\t/// The current version is outdated\n\t/// </summary>\n\tstatic readonly ESKT_OUTDATEDVERSION = -48;\n\n\t/// <summary>\n\t/// The XML tag is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDXMLTAG = -49;\n\n\t/// <summary>\n\t/// Cannot register for  HID change notifications\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEREGISTERFORHIDCHANGES = -50;\n\n\t/// <summary>\n\t/// The message cannot be retrieved\n\t/// </summary>\n\tstatic readonly ESKT_UNABLERETRIEVEMESSAGE = -51;\n\n\t/// <summary>\n\t/// There is a syntax error\n\t/// </summary>\n\tstatic readonly ESKT_SYNTAXERROR = -52;\n\n\t/// <summary>\n\t/// The specified file cannot be opened\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEOPENFILE = -53;\n\n\t/// <summary>\n\t/// The file path cannot be retrieved\n\t/// </summary>\n\tstatic readonly ESKT_UNABLERETRIEVEPATH = -54;\n\n\t/// <summary>\n\t/// The specified directory cannot be created\n\t/// </summary>\n\tstatic readonly ESKT_UNABLECREATEDIRECTORY = -55;\n\n\t/// <summary>\n\t/// The specified file cannot be deleted\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEDELETEFILE = -56;\n\n\t/// <summary>\n\t/// The specified directory cannot be deleted\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEDELETEDIRECTORY = -57;\n\n\t/// <summary>\n\t/// The modem status cannot be read\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEREADMODEMSTATUS = -60;\n\n\t/// <summary>\n\t/// The Class of Devices cannot be retrieved\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEGETCLASSDEVICES = -61;\n\n\t/// <summary>\n\t/// The device interface cannot be retrieved\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEGETDEVICEINTERFACE = -62;\n\n\t/// <summary>\n\t/// The specified file or device cannot be found\n\t/// </summary>\n\tstatic readonly ESKT_FILENOTFOUND = -63;\n\n\t/// <summary>\n\t/// The specified file or device is not accessible\n\t/// </summary>\n\tstatic readonly ESKT_FILEACCESSDENIED = -64;\n\n\t/// <summary>\n\t/// The HID information cannot be read\n\t/// </summary>\n\tstatic readonly ESKT_UNABLEREADHIDINFO = -70;\n\n\t/// <summary>\n\t/// The number of parameters is incorrect\n\t/// </summary>\n\tstatic readonly ESKT_INCORRECTNUMBEROFPARAMETERS = -84;\n\n\t/// <summary>\n\t/// The specified format is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDFORMAT = -85;\n\n\t/// <summary>\n\t/// The version is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDVERSION = -86;\n\n\t/// <summary>\n\t/// The service does not respond\n\t/// </summary>\n\tstatic readonly ESKT_SERVICENOTCOMMUNICATING = -87;\n\n\t/// <summary>\n\t/// The Lasso Id is expired\n\t/// </summary>\n\tstatic readonly ESKT_LASSOIDEXPIRED = -88;\n\n\t/// <summary>\n\t/// The Lasso Id does not match\n\t/// </summary>\n\tstatic readonly ESKT_LASSOIDTNOTMATCHING = -89;\n\n\t/// <summary>\n\t/// The device already has a Lasso Id\n\t/// </summary>\n\tstatic readonly ESKT_LASSOIDALREADYSET = -90;\n\n\t/// <summary>\n\t/// This operation has been canceled\n\t/// </summary>\n\tstatic readonly ESKT_CANCEL = -91;\n\n\t/// <summary>\n\t/// The operation has expired\n\t/// </summary>\n\tstatic readonly ESKT_EXPIRED = -92;\n\n\t/// <summary>\n\t/// The AppInfo information is invalid\n\t/// </summary>\n\tstatic readonly ESKT_INVALIDAPPINFO = -93;\n\n\t/// <summary>\n\t/// BLE operation failed\n\t/// </summary>\n\tstatic readonly ESKT_BLEGATT = -94;\n\n\t/// <summary>\n\t/// Auto-discovery is in progress\n\t/// </summary>\n\tstatic readonly ESKT_FAVORITENOTEMPTY = -95;\n\n\t/// <summary>\n\t/// Location permission is required to complete the operation\n\t/// </summary>\n\tstatic readonly ESKT_LOCATIONPERMISSIONMISSING = -96;\n\n\t/// <summary>\n\t/// The requested operation cannot be completed\n\t/// </summary>\n\tstatic readonly ESKT_UNABLETOCOMPLETEOPERATION = -97;\n\n\t/// <summary>\n\t/// Location service is disabled\n\t/// </summary>\n\tstatic readonly ESKT_LOCATIONSERVICEDISABLED = -98;\n\n\t/// <summary>\n\t/// Bluetooth permission is not granted\n\t/// </summary>\n\tstatic readonly ESKT_BLUETOOTHPERMISSIONMISSING = -99;\n\n};\n\n\n","import { JRpcRequest, JRpcResponse, JRpcEvent, JRpcError } from './jsonRpc'\nimport {RpcTransport, BaseTransport} from './rpcTransport';\nimport SktErrors from './gen/errors';\nimport { CaptureEventIds, CaptureEventTypes } from './gen/eventIds';\nimport { Logger } from './logger';\n\nexport type AjaxCallback = (status: number, response: string)=> void;\n\n// below is to switch between xhr (if provided in options) or keep it as XMLHttpRequest\n// let HttpRequest = xhr || XMLHttpRequest \nlet HttpRequest = XMLHttpRequest\n\nexport class Ajax<T> extends HttpRequest {\n  sendJsonRpc:(jsonRpc: JRpcRequest<T>)=>void;\n  constructor() {\n    super();\n  }\n}\n\nexport type GetXmlHttp<T> = (uri: string, logger: Logger, callback:AjaxCallback) => Ajax<T>;\n\nfunction sktGetXmlHttp<T>(uri: string, logger:Logger, callback:AjaxCallback): Ajax<T>{\n  var xmlhttp: Ajax<T>;\n  /* code for IE7+, Firefox, Chrome, Opera, Safari */\n  if ((<any>window).XMLHttpRequest) {\n    xmlhttp = new Ajax();\n  }\n  /* code for IE6, IE5 */\n  // else {\n  //   xmlhttp = new AjaxIE<T>('Microsoft.XMLHTTP');\n  // }\n  //https://stackoverflow.com/questions/41474445/xmlhttprequest-does-not-exist-on-type-window\n  // if ((<any>window).XMLHttpRequest) {\n  //   xmlhttp = new XMLHttpRequest();\n  // } else {\n  //   xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");\n  // }\n  xmlhttp = new Ajax<T>();\n  xmlhttp.onreadystatechange = function() {\n    if (xmlhttp.readyState === 4) {\n      try {\n        const jsonRpc = JSON.parse(xmlhttp.responseText);\n        logger.log('<=', jsonRpc);\n        callback(xmlhttp.status, xmlhttp.responseText);\n      }\n      catch(e) {\n        callback(xmlhttp.status, JSON.stringify({ error: SktErrors.ESKT_COMMUNICATIONERROR, message: 'Did not receive a JSON object' }));\n      }\n    }\n  };\n  xmlhttp.sendJsonRpc = function(jsonRpc: JRpcRequest<T>) {\n    const jsonRpcString = JSON.stringify(jsonRpc);\n    xmlhttp.open('POST', uri, true);\n    xmlhttp.setRequestHeader('Content-Type', 'application/json');\n    xmlhttp.send(jsonRpcString);\n    logger.log('=>', jsonRpc);\n  };\n  return xmlhttp;\n}\n\nclass InternalLogger implements Logger {\n  log(message: string, arg?: object): void {\n\n  }\n}\n\nexport default class HttpTransport extends BaseTransport implements RpcTransport {\n  host: string;\n  hostWebsocket: string;\n  notification:(event: JRpcEvent<any>, handle?: number)=>void;\n  websocket: WebSocket;\n  sendTest: (jsonString: string)=>void;\n  getXmlRequest: GetXmlHttp<any> = sktGetXmlHttp;\n  logger?: Logger;\n  xhr?: any;\n\n  constructor(logger?: Logger, xhr?: any) {\n    super();\n    this.logger = logger || new InternalLogger();\n    this.xhr = xhr \n  }\n\n  open(host: string, notification:(event: JRpcEvent<any>, handle?: number)=>void): Promise<{handle: number}> {\n    const newHandle = this.generateHandle();\n    if (newHandle === 0) {\n      const error = new JRpcError(0, SktErrors.ESKT_INVALIDHANDLE, 'Invalid Handle');\n      return Promise.reject(error);\n    }\n    this.host = host + '/Capture/v1/api';\n    this.hostWebsocket = this.host.replace(/^https?:/, 'ws:');\n    this.notification = notification;\n\n    return Promise.resolve({ handle: newHandle });\n\n  }\n\n  close(handle: number): Promise<number> {\n    const index = this.handles.findIndex(h => h.handle === handle);\n    if (index === -1) {\n      const error = new JRpcError(0, SktErrors.ESKT_INVALIDHANDLE, 'Invalid Handle');\n      return Promise.reject(error);\n    }\n    this.handles.splice(index,1);\n    return Promise.resolve(SktErrors.ESKT_NOERROR);\n  }\n\n  send<T>(handle: number, request: JRpcRequest<T>): Promise<JRpcResponse<any>> {\n    const promise = new Promise<JRpcResponse<any>>((resolve, reject) => {\n      const ajax = this.getXmlRequest(this.host, this.logger, (status, responseStr) => {\n        if(status !== 200) {\n          let error = new JRpcError(request.id, SktErrors.ESKT_COMMUNICATIONERROR, 'Unable To Communicate With Device');\n          // var error = new JRpcError(request.id, -10000, 'bloop')\n          if(request.method === 'openclient') {\n            error = new JRpcError(request.id, SktErrors.ESKT_UNABLEOPENDEVICE, 'Unable To Open Device');\n          }\n          return reject(error);\n        }\n        try {\n          const response = JSON.parse(responseStr);\n          if(request.method === 'openclient') {\n            // we want to start the web service here if we can\n            this.openWebSocket(() => {\n              const res = response as JRpcResponse<{handle: number}>;\n              // send a waitForEvent\n              if (res.result && res.result.handle){\n                const waitForEvent = new JRpcRequest<{handle:number}>(1,'waitforcaptureevent', { handle: res.result.handle });\n                const waitForEventString = JSON.stringify(waitForEvent);\n                this.websocket.send(waitForEventString);\n              }\n            });\n          }\n          return response.error ? reject(response) : resolve(response);\n        }\n        catch(e) {\n          const err = new JRpcError(request.id, SktErrors.ESKT_INVALIDFORMAT, 'JSON Malformatted');\n          return reject(err);\n        }\n      });\n      const index = this.handles.findIndex(h => h.handle === handle);\n      if(index === -1) {\n        return reject(SktErrors.ESKT_INVALIDHANDLE);\n      }\n      ajax.sendJsonRpc(request)\n    });\n    return promise;\n  }\n\n  openWebSocket(callback:(event:any)=>void) {\n    const that = this;\n    this.websocket = new WebSocket(this.hostWebsocket); //, 'jsonRpc');\n    this.websocket.onopen = callback;\n    this.websocket.onclose = event => {\n      this.logger.log('websocket closed!!');\n      this.logger.log('', event);\n      if(event.code === 1006) {\n        const error = new JRpcEvent(CaptureEventIds.Error,CaptureEventTypes.Ulong, SktErrors.ESKT_SERVICENOTCOMMUNICATING);\n        that.notification(error);\n      }\n    };\n    this.websocket.onmessage = (event) => {\n      this.logger.log('receiving something through the websocket:');\n      var json = JSON.parse(event.data);\n      this.logger.log('', event);\n      if (json.result) {\n        if (json.result) {\n          const evt = json as JRpcEvent<any>;\n          this.notification(evt);\n        }\n      } else if (json.error) {\n        // const event = new JRpcEvent<{}>\n        // this.notification(capture, json.error.code, json.error.message);\n      }\n    };\n  }\n}\n","import { JRpcRequest, JRpcResponse, JRpcEvent } from './jsonRpc'\nimport { RpcTransport, BaseTransport } from './rpcTransport';\nimport SktErrors from './gen/errors';\nimport { Logger } from './logger';\n\n// this is for Typescript so it won't complain\n// about checking the existence of the member\n// in the window global instance\ndeclare global {\n  interface Window {\n    webkit: {\n      messageHandlers: {\n        maracaSendJsonRpc: any\n      }\n    },\n    maraca: {\n      receiveJsonRpc: (json: string) => void;\n      replyJsonRpc: (json: string) => void;\n    }\n  }\n}\n\ninterface ResponsePerJsonRpc {\n  rpcId: number,\n  responseCallback: (json: JRpcResponse<any>) => void\n};\n\nclass InternalLogger implements Logger {\n  log(message: string, arg: object): void {\n\n  }\n}\n\nexport default class MaracaTransport extends BaseTransport implements RpcTransport {\n  callbacks: { (response: JRpcResponse<any>) : void }[];\n  window: Window;\n  handles: {handle: number}[];\n  responses: ResponsePerJsonRpc[] = [];\n  logger: Logger;\n  constructor(depwindow?:Window, logger?: Logger) {\n    super();\n    this.logger = logger || new InternalLogger();\n    if (depwindow) {\n      this.window = depwindow;\n    }\n    else {\n      this.window = window;\n    }\n    this.window.maraca = this.window.maraca || {\n      receiveJsonRpc: (json: string) => void {},\n      replyJsonRpc: (json: string) => void {},\n    }; \n  }\n\n  open(host: string, notification:(event: JRpcEvent<any>)=>void): Promise<{ handle: number }> {\n// WE SHOULD USE SYMBOL FOR THE KEY (HANDLE) TO IDENTIFY A TRANSPORT CLIENT\n// AND FOR THE RESPONSE CALLBACKS\n\n//     sendJsonRpc(jsonRpc, responseCallback)\n//      callbacks[jsonRpc.id] = responseCallback;\n//      window.webkit.messageHandlers.maracaSendJsonRpc.postMessage(jsonRpc)\n//\n//      window.maraca.replyJsonRpc(jsonRpcResponse)\n//      responseCallback = callbacks[jsonRpcResponse.id]\n// responseCallback(jsonRpcResponse)\n//\n//      window.maraca.receiveJsonRpc(jsonRpcEvent)\n// OnCaptureEvent(jsonRpcEvent)\n    const newHandle = this.generateHandle();\n    if (newHandle === 0) {\n      return Promise.reject(SktErrors.ESKT_INVALIDHANDLE);\n    }\n    this.window.maraca.receiveJsonRpc = (json: string) => {\n\n      try {\n        const jsonRpcDecoded = decodeURI(json);\n        const jsonRpc = JSON.parse(jsonRpcDecoded);\n        notification(jsonRpc);\n      }\n      catch(ex) {\n        // should we log a warning here???\n      }\n    };\n    this.window.maraca.replyJsonRpc = (json:string) => {\n      const decodedJsonRpc = decodeURI(json);\n      this.dispatchResponse(decodedJsonRpc);\n    }\n    return Promise.resolve({handle: newHandle});\n  }\n\n  close(handle: number): Promise<number> {\n    const index = this.handles.findIndex(h => h.handle === handle);\n    if(index === -1) {\n      return Promise.reject(SktErrors.ESKT_INVALIDHANDLE);\n    }\n    this.handles.splice(index,1);\n    return Promise.resolve(SktErrors.ESKT_NOERROR);\n  }\n\n  send<T>(handle: number, request: JRpcRequest<T>): Promise<JRpcResponse<any>> {\n    const jsonRpc = JSON.stringify(request);\n    const promise = new Promise<JRpcResponse<any>>((resolve, reject)=>{\n      const response: ResponsePerJsonRpc = {\n        rpcId: request.id,\n        responseCallback: (jsonRpcResponse: JRpcResponse<any>) => {\n          resolve(jsonRpcResponse);\n        }\n      }\n      const index = this.handles.findIndex(h => h.handle === handle);\n      if(index === -1) {\n        return reject(SktErrors.ESKT_INVALIDHANDLE);\n      }\n      this.responses.push(response);\n      this.window.webkit.messageHandlers.maracaSendJsonRpc.postMessage(jsonRpc);\n    });\n    return promise;\n  }\n\n  dispatchResponse(jsonrpc: string) {\n    try {\n      const jsonRpc = JSON.parse(jsonrpc);\n      // look for the corresponding callback\n      const index = this.responses.findIndex(rpr => rpr.rpcId === jsonRpc.id);\n      if (index !== -1) {\n        const callback = this.responses[index];\n        this.responses.splice(index, 1);\n        callback.responseCallback(jsonRpc);\n      }\n      else {\n        // should we log a warning here???\n      }\n    }\n    catch(ex) {\n      // should we log the exception here???\n    }\n  }\n}\n","\nimport { RpcTransport } from './rpcTransport';\nimport HttpTransport from './httpTransport';\nimport MaracaTransport from './maracaTransport';\nimport { Logger } from './logger';\n\n// this is for Typescript so it won't complain\n// about checking the existence of the member\n// in the window global instance\ndeclare global {\n  interface Window {\n    webkit: {\n      messageHandlers: {\n        maracaSendJsonRpc: any\n      }\n    }\n  }\n}\n\nexport default class Transport {\n    static getTransport(logger?: Logger, xhr?: any): RpcTransport {\n      let transport: RpcTransport;\n      if((window.webkit) &&\n        (window.webkit.messageHandlers) &&\n        (window.webkit.messageHandlers.maracaSendJsonRpc)) {\n          transport = new MaracaTransport(null, logger);\n      }\n      else {\n        transport = new HttpTransport(logger, xhr);\n      }\n      return transport;\n    }\n}\n","// capture.ts\n// main entry point for Socket Mobile CaptureJS SDK\n//\n// Copyright © 2019 Socket Mobile, Inc.\nimport AppInfo from './appInfo';\nimport CaptureProperty from './captureProperty';\nimport { RpcTransport } from './rpcTransport';\nimport Transport from './transport';\nimport CaptureOptions from './captureOptions';\nimport { JRpcRequest, JRpcEvent, JRpcError, CaptureEventResult } from './jsonRpc';\nimport { CaptureEvent } from './captureEvents';\nimport { CaptureEventTypes } from './gen/eventIds';\n\nimport SktErrors from './gen/errors';\nimport { Logger } from './logger';\n\nconst ERRMSG_NO_TRANSPORT = 'no transport, is this initialized?';\n\nconst DEFAULT_HOST = \"http://127.0.0.1:18481\";\ntype Notification = (event: CaptureEvent<any>, handle?: number)=>void;\n\nclass Capture {\n  transport: RpcTransport;\n  host: string = DEFAULT_HOST;\n  clientOrDeviceHandle: number;\n  transportHandle: number;\n  rpcId: number = 0;\n  onEventNotification: Notification;\n  rootCapture?: Capture;\n  logger?: Logger;\n\n  constructor(log?: Logger) {\n    this.logger = log;\n  }\n\n  open(appInfo: AppInfo, eventNotification: Notification, options?: CaptureOptions): Promise<number>{\n    if (options) {\n      this.transport = options.transport || Transport.getTransport(this.logger);\n      this.host = options.host || DEFAULT_HOST;\n    }\n    else {\n      // this is done here for transport lazy loading\n      this.transport = Transport.getTransport(this.logger);\n    }\n    return this.transport.open(this.host, (event: JRpcEvent<any>) => {\n      return this.notification(event);\n    })\n    .then(transportHandle => {\n        const jsonRpc = new JRpcRequest<AppInfo>(this.getJsonRpcId(),'openclient', {\n          appId: appInfo.appId,\n          developerId: appInfo.developerId,\n          appKey: appInfo.appKey\n        });\n        this.onEventNotification = eventNotification;\n        this.transportHandle = transportHandle.handle;\n        return this.transport.send(transportHandle.handle, jsonRpc);\n    })\n    .then(response => {\n      if (response.result && response.result.handle) {\n        this.clientOrDeviceHandle = response.result.handle;\n        return SktErrors.ESKT_NOERROR;\n      } else {\n        const res = response as unknown as JRpcError;\n        if (res.error){\n          const {error} = res;\n          throw (new JRpcError(0, error.code, error.message));\n        } else {\n          throw ( new JRpcError(0, SktErrors.ESKT_COMMUNICATIONERROR, \"There was an error during communication.\"));\n      }\n      }\n    });\n  }\n\n  close(): Promise<number> {\n    if (this.transport) {\n      const jsonRpc = new JRpcRequest<{handle: number}>(this.getJsonRpcId(), 'close', {\n        handle: this.clientOrDeviceHandle\n      });\n      return this.transport.send(this.transportHandle, jsonRpc)\n      .then(() => {\n        if (this.rootCapture === undefined) {\n          return this.transport.close(this.transportHandle)\n          .then(() => {\n            this.transport = null;\n            this.clientOrDeviceHandle = null;\n            this.transportHandle = 0;\n            return SktErrors.ESKT_NOERROR;\n          });\n        }\n        this.rootCapture = undefined;\n        return SktErrors.ESKT_NOERROR;\n      })\n    }\n    return Promise.reject({error: SktErrors.ESKT_ALREADYDONE});\n  }\n\n  openDevice(guid: string, capture: Capture) {\n    if(typeof capture === 'undefined' || capture === null) {\n      return Promise.reject({error: SktErrors.ESKT_INVALIDPARAMETER});\n    }\n    this.rootCapture = capture;\n    this.transport = capture.transport;\n    this.transportHandle = capture.transportHandle;\n\n    if(this.transport) {\n      const openRequest = new JRpcRequest<{handle: number, guid: string}>(this.getJsonRpcId(), 'opendevice',{\n        handle: this.rootCapture.clientOrDeviceHandle,\n        guid\n      });\n      return this.transport.send(this.transportHandle, openRequest)\n      .then((response) => {\n        if(response.result && response.result.handle) {\n          this.clientOrDeviceHandle = response.result.handle;\n          return SktErrors.ESKT_NOERROR;\n        } else {\n          if (response.error) {\n              const { error } = response;\n              throw (new JRpcError(0, error.code, error.message));\n          }\n          else {\n              throw (new JRpcError(0, SktErrors.ESKT_COMMUNICATIONERROR, \"There was an error during communication.\"));\n          }\n        }\n      });\n    }\n    return Promise.reject({error: SktErrors.ESKT_NOTINITIALIZED});\n  }\n\n  getProperty<T>(property: CaptureProperty<T>): Promise<CaptureProperty<any>> {\n    if (this.transport) {\n      return this.transport.send(this.transportHandle, new JRpcRequest(this.getJsonRpcId(), 'getproperty', {\n        property, handle: this.clientOrDeviceHandle\n      }))\n      .then(response => {\n        if(response.result){\n          if(this.clientOrDeviceHandle != response.result.handle) {\n            console.log(\"Warning the response handle does not match with the handle of the request\");\n          }\n          const propertyResponse = response.result.property as CaptureProperty<unknown>;\n          return Promise.resolve(propertyResponse);\n        }\n        const rsp = response as JRpcError;\n        return Promise.reject(rsp.error);\n      });\n    }\n    return Promise.reject(new JRpcError(0, SktErrors.ESKT_NOTINITIALIZED, ERRMSG_NO_TRANSPORT));\n  }\n\n  setProperty<T>(property: CaptureProperty<T>): Promise<CaptureProperty<unknown>> {\n    if (this.transport) {\n      return this.transport.send(this.transportHandle, new JRpcRequest(this.getJsonRpcId(), 'setproperty', {\n        property, handle:this.clientOrDeviceHandle\n      }))\n      .then(response => {\n        if(response.result){\n          const propertyResponse = response.result.property as CaptureProperty<unknown>;\n          return Promise.resolve(propertyResponse);\n        }\n        const rsp = response as JRpcError;\n        return Promise.reject(rsp);\n      });\n    }\n    return Promise.reject(new JRpcError(0, SktErrors.ESKT_NOTINITIALIZED, ERRMSG_NO_TRANSPORT));\n  }\n\n  notification(jsonRpc: JRpcEvent<any>, handle?: number): void {\n    const unifiedJsonResult = this.unifyResultInEvents(jsonRpc);\n  \n    if(jsonRpc && this.onEventNotification){\n      this.onEventNotification(unifiedJsonResult.event, unifiedJsonResult.handle);\n    }\n  }\n\n  private unifyResultInEvents(jsonRpc: JRpcEvent<any>): CaptureEventResult<any>{\n    let res = jsonRpc.result\n    if (jsonRpc.result && JSON.stringify(jsonRpc.result) != '{}') {\n      if (res.event){\n        let value = res.event.value\n        if (typeof value === 'object' && !Array.isArray(value) && value !== null){\n          // updating only if the value type is an object containing properties-times it can just be a string, etc.-and \n          // checking if the result is already in the event, if so, keep it.\n          // If it is in the event value (android as of 08/15/24), if so use that value.\n          // If there is no result present anywhere in the \n          if (typeof res.event.result === 'undefined'){\n            res.event.result = value.result ?? 0\n          }\n        } else {\n            res.event.result = 0\n        }\n        // below is the case for closing socketcam view\n        // it is registered as an empty scan with no name, id === 0, and data.length === 0\n        if (value && res.event.type === CaptureEventTypes.DecodedData){\n          if (value?.id === 0 && value?.name.length === 0 && value?.data.length === 0){\n            res.event.result = SktErrors.ESKT_CANCEL\n          }\n        } \n      }\n    } else {\n      // in some cases the JsonRpc spec calls for an empty/event-less value in the jsonRpc.result.\n      res = jsonRpc.result;\n    }\n    return res;\n  }\n\n  private getJsonRpcId(): number {\n    let self: Capture = this;\n    if(this.rootCapture){\n      self = this.rootCapture;\n    }\n    return self.rpcId++;\n  }\n\n}\n\nexport default Capture;\n","//PropertyIdsTypes.ts\n//This file is generated when calling npm run update\n//\n//\nexport enum CapturePropertyIds {\n  \t// Set to notify Capture that the client is shutting down gracefully.\n\t// Capture will send device removal events followed by a terminate\n\t// event. Once you receive the terminate event, it is safe to shut\n\t// down Capture.\n\t// Device: False\tGet Type: NotApplicable \tSet Type: None\n\tAbort = -2146435072,\n\n\t// Gets the Capture service version.\n\t// Device: False\tGet Type: None \tSet Type: NotApplicable\n\tVersion = -2147418111,\n\n\t// Gets the version of the firmware interface that Capture service\n\t// supports. This can be useful for determining if the Capture service\n\t// supports a particular hardware feature.\n\t// Device: False\tGet Type: None \tSet Type: NotApplicable\n\tInterfaceVersion = -2147418112,\n\n\t// property to set or get the Capture configuration\n\t// Device: False\tGet Type: String \tSet Type: String\n\tConfiguration = -2141913085,\n\n\t// Gets or sets the data confirmation mode. The data confirmation mode\n\t// determines who acknowledges whether the data received was good or\n\t// bad.\n\t// Device: False\tGet Type: None \tSet Type: Byte\n\tDataConfirmationMode = -2147352572,\n\n\t// Gets or sets the data confirmation action. Data confirmation action\n\t// determines how good or bad data is acknowledged.\n\t// Device: False\tGet Type: None \tSet Type: Ulong\n\tDataConfirmationAction = -2147287035,\n\n\t// Gets or sets the log level of various Capture service components\n\t// (Only works on debug builds of the service).\n\t// Device: False\tGet Type: Byte \tSet Type: Array\n\tMonitorMode = -2145124346,\n\n\t// property to get or set the SocketCam status\n\t// Device: False\tGet Type: None \tSet Type: Byte\n\tSocketCamStatus = -2147352569,\n\n\t// Gets the firmware version of the device\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tVersionDevice = 65536,\n\n\t// Gets the model of the device\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tDeviceType = 65538,\n\n\t// Sends an arbitrary get or set command to the device\n\t// Device: True\tGet Type: Array \tSet Type: Array\n\tDeviceSpecific = 4456451,\n\n\t// property to get or set the data source status / information\n\t// Device: True\tGet Type: DataSource \tSet Type: DataSource\n\tDataSourceDevice = 7798788,\n\n\t// Sets the trigger of the device - can start or stop a read and\n\t// enable or disable the physical trigger button on the device.\n\t// Device: True\tGet Type: NotApplicable \tSet Type: Byte\n\tTriggerDevice = 1179653,\n\n\t// property to apply a config to a Capture Device (not yet enabled)\n\t// Device: True\tGet Type: NotApplicable \tSet Type: None\n\tApplyConfigDevice = 1048582,\n\n\t// Gets or sets a preamble for data decoded by the device. When set,\n\t// the preamble is added in front of the decoded data.\n\t// Device: True\tGet Type: None \tSet Type: String\n\tPreambleDevice = 327687,\n\n\t// Gets or sets a postamble for data decoded by the device. When set,\n\t// the postamble is added to the end of the decoded data.\n\t// Device: True\tGet Type: None \tSet Type: String\n\tPostambleDevice = 327688,\n\n\t// property to get the Capture Device capabilities\n\t// Device: True\tGet Type: Byte \tSet Type: NotApplicable\n\tCapabilitiesDevice = 2162697,\n\n\t// Gets the change id of the device. The change id is a checksum of\n\t// all the engine settings - e.g. symbology settings, preamble,\n\t// postamble, etc - and can be used to determine if the device\n\t// configuration has been altered by another application or using a\n\t// command barcode.\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tChangeIdDevice = 65546,\n\n\t// property to get or set the Decoded Data Format of a Capture Device\n\t// Device: True\tGet Type: None \tSet Type: Byte\n\tDataFormatDevice = 131083,\n\n\t// Gets or sets the friendly name of the device. The friendly name is\n\t// the name that appears in Bluetooth settings.\n\t// Device: True\tGet Type: None \tSet Type: String\n\tFriendlyNameDevice = 327936,\n\n\t// property to get or set the Capture Device Security Mode\n\t// Device: True\tGet Type: None \tSet Type: Byte\n\tSecurityModeDevice = 131329,\n\n\t// property to get or set the Capture Device PIN code\n\t// Device: True\tGet Type: NotApplicable \tSet Type: String\n\tPinCodeDevice = 1376514,\n\n\t// Set deletes pairing and bonding information off the device. Useful\n\t// when preparing to pair the Capture device to a different host.\n\t// Device: True\tGet Type: NotApplicable \tSet Type: Byte\n\tDeletePairingBondingDevice = 1179907,\n\n\t// Set resets all the settings on the device to their default values.\n\t// Device: True\tGet Type: NotApplicable \tSet Type: None\n\tRestoreFactoryDefaultsDevice = 1048836,\n\n\t// Set turns the device off\n\t// Device: True\tGet Type: NotApplicable \tSet Type: None\n\tSetPowerOffDevice = 1048837,\n\n\t// Gets the current state of each button on the device. Consider using\n\t// kNotificationsDevice to subscribe to button events instead.\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tButtonsStatusDevice = 65792,\n\n\t// Gets or sets the sound configuration of the device. There are\n\t// separate sound configurations for when a good scan is acknowledged\n\t// locally (by the Capture device) and when it is acknowledged by the\n\t// host. The same applies to the bad scan sound configuration.\n\t// Device: True\tGet Type: Byte \tSet Type: Array\n\tSoundConfigDevice = 2359559,\n\n\t// Gets or sets the trigger lock and auto-off timers. The trigger lock\n\t// determines how long the trigger remains locked after decoding data\n\t// without receiving confirmation. There are two auto-off timers, one\n\t// for when the device is connected to a host and one for when it is\n\t// not.\n\t// Device: True\tGet Type: None \tSet Type: Array\n\tTimersDevice = 262408,\n\n\t// Gets or sets local device acknowledgement. When enabled, the device\n\t// acknowledges decoded data as soon as it is decoded. When disabled,\n\t// the device waits for the host to acknowledge decoded data and the\n\t// trigger will be locked until acknowledgement is received or the\n\t// trigger lock timeout has elapsed.\n\t// Device: True\tGet Type: None \tSet Type: Byte\n\tLocalAcknowledgmentDevice = 131337,\n\n\t// Sends an acknowledgement to the device. Acknowledgement can either\n\t// be positive or negative - a.k.a. good scan or bad scan.\n\t// Device: True\tGet Type: NotApplicable \tSet Type: Ulong\n\tDataConfirmationDevice = 1245450,\n\n\t// Gets the current battery level of the device. Consider using \n\t// kNotificationsDevice to subscribe to battery level change events\n\t// instead.\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tBatteryLevelDevice = 65803,\n\n\t// Gets or sets the local decode action of the device. Determines how\n\t// decoded data is acknowledged - i.e. with a beep, rumble, flash or\n\t// some combination of all three.\n\t// Device: True\tGet Type: None \tSet Type: Byte\n\tLocalDecodeActionDevice = 131340,\n\n\t// Gets the Bluetooth address of the device\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tBluetoothAddressDevice = 65805,\n\n\t// Gets the statistics counters of the device. Counters record the\n\t// absolute number of times a particular event has occurred.\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tStatisticCountersDevice = 65806,\n\n\t// Gets or sets the rumble configuration of the device. There are\n\t// separate rumble configurations for when a good scan is acknowledged\n\t// locally (by the Capture device) and when it is acknowledged by the\n\t// host. The same applies to the bad scan rumble configuration.\n\t// Device: True\tGet Type: Byte \tSet Type: Array\n\tRumbleConfigDevice = 2359567,\n\n\t// property to get or set the Capture Device Profile Configuration\n\t// Device: True\tGet Type: None \tSet Type: Array\n\tProfileConfigDevice = 262416,\n\n\t// Instructs the device to drop its connection. Note: After sending\n\t// this command, the host will be unable to send any subsequent\n\t// commands to this device.\n\t// Device: True\tGet Type: NotApplicable \tSet Type: Byte\n\tDisconnectDevice = 1179921,\n\n\t// Gets or sets arbitrary bytes to store on the device. The device has\n\t// 16 storage locations which can hold up to 64 bytes each.\n\t// Device: True\tGet Type: Array \tSet Type: Array\n\tDataStoreDevice = 4456722,\n\n\t// Gets or sets subscriptions to various events from the device.\n\t// Events that can be subscribed to include, trigger press/release,\n\t// power button press/release, power state and battery level change.\n\t// Device: True\tGet Type: None \tSet Type: Ulong\n\tNotificationsDevice = 196883,\n\n\t// property to get the Capture Device Connect reason\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tConnectReasonDevice = 65812,\n\n\t// Gets the current power state of the device. Consider using\n\t// kNotificationsDevice to subscribe to power state events instead.\n\t// Device: True\tGet Type: None \tSet Type: NotApplicable\n\tPowerStateDevice = 65813,\n\n\t// Gets or sets the reconnect behavior of the device when it is\n\t// powered on in application mode. By default, the device will attempt\n\t// to reconnect to the last host, but this feature can be turned off\n\t// using this property.\n\t// Device: True\tGet Type: None \tSet Type: Byte\n\tStartUpRoleSPPDevice = 131350,\n\n\t// property to get or set the Capture Device Connection Beep\n\t// Configuration.\n\t// Device: True\tGet Type: None \tSet Type: Byte\n\tConnectionBeepConfigDevice = 131351,\n\n\t// Gets or sets the status of the flash on the SocketCam device.\n\t// Device: True\tGet Type: None \tSet Type: Byte\n\tFlashDevice = 131352,\n\n\t// property to get or set the Capture Device Overlay View (SocketCam\n\t// only)\n\t// Device: True\tGet Type: None \tSet Type: Object\n\tOverlayViewDevice = 590105,\n\n\t// property to get or set the Capture Device Stand Configuration\n\t// Device: True\tGet Type: None \tSet Type: Ulong\n\tStandConfigDevice = 196890,\n\n\t// property to start a BLE discovery from a Device Manager\n\t// Device: True\tGet Type: NotApplicable \tSet Type: Ulong\n\tStartDiscovery = 1245696,\n\n\t// property to set or get the BLE favorites for a Device Manager\n\t// Device: True\tGet Type: None \tSet Type: String\n\tFavorite = 328193,\n\n\t// property to get the BLE Unique Device Identifier that can be used to set favorite with\n\t// Device: True\tGet Type: String \tSet Type: NotApplicable\n\tUniqueDeviceIdentifier = 5308930,\n\n\t// property to transmit through PC/SC an array of bytes often called APDU\n\t// Device: True\tGet Type: Array \tSet Type: Array\n\tPcScTagTransmit = 4456731,\n\n\t// property to control the PC/SC coupler device by passing an array of bytes often called APDU\n\t// Device: True\tGet Type: Array \tSet Type: Array\n\tPcScCouplerControl = 4456732,\n\n\t// property to define the theme that is used for the different events: Ready, Read, Read Success, Read Failure UI\n\t// Device: True\tGet Type: None \tSet Type: Array\n\tThemeSelectionDevice = 262429,\n\n\t// property to define the theme selection mask. It applies the theme selection on the given device(s) set with the mask\n\t// Device: True\tGet Type: None \tSet Type: Array\n\tThemeSelectionMaskDevice = 262430,\n\n\t// property to define if the Lasso feature is enabled or not\n\t// Device: True\tGet Type: None \tSet Type: Byte\n\tLassoStatusDevice = 131359,\n\n\t// property to define the Lasso Id for a device\n\t// Device: True\tGet Type: NotApplicable \tSet Type: Array\n\tLassoIdDevice = 1311008,\n\n\t// property to define the Lasso life span for a device\n\t// Device: True\tGet Type: None \tSet Type: Ulong\n\tLassoLifeSpanDevice = 196897,\n\n\t// property to get or set a device's Single Partnership connection\n\t// Device: False\tGet Type: None \tSet Type: Array\n\tSinglePartnership = -2147221214,\n\n\t// property to get a stamp from the host for Single Partnership connection\n\t// Device: False\tGet Type: None \tSet Type: NotApplicable\n\tSinglePartnershipStamp = -2147417821,\n\n\t// property to reset a device's Single Partnership connection\n\t// Device: True\tGet Type: None \tSet Type: None\n\tResetSinglePartnershipDevice = 292,\n\n\t// property to connect to a discovered BLE device with a Device Manager\n\t// Device: True\tGet Type: NotApplicable \tSet Type: String\n\tConnectDiscoveredDevice = 1376771,\n\n\t// property to disconnect from a discovered BLE device with a Device Manager\n\t// Device: True\tGet Type: NotApplicable \tSet Type: String\n\tDisconnectDiscoveredDevice = 1376768,\n\n\t// property to add a Bluetooth device (Classic or Low Energy)\n\t// Device: False\tGet Type: NotApplicable \tSet Type: Byte\n\tAddDevice = -2146303981,\n\n\t// property to remove a Bluetooth device (Classic or Low Energy)\n\t// Device: False\tGet Type: NotApplicable \tSet Type: String\n\tRemoveDevice = -2146107372,\n\n\t// property to power cycle a Bluetooth LE device when on a power source (e.g. charging). Otherwise it will just power off the device\n\t// Device: True\tGet Type: NotApplicable \tSet Type: None\n\tResetDevice = 1048832,\n\n\n};\n\nexport enum CapturePropertyTypes {\n  \t// for capture properties that don't have any value\n\tNone = 0,\n\n\t// for capture properties that don't have a value for\n\t// either a get operation or a set operation or neither of\n\t// them.\n\tNotApplicable = 1,\n\n\t// the property has a byte value\n\tByte = 2,\n\n\t// the property has a unsigned long value\n\tUlong = 3,\n\n\t// the property has a byte array value\n\tArray = 4,\n\n\t// the property has a string value\n\tString = 5,\n\n\t// the property has a version structure as value (read only)\n\tVersion = 6,\n\n\t// the property has a data source structure as value\n\tDataSource = 7,\n\n\t// the property has an enum value\n\tEnum = 8,\n\n\t// the property has an object as value\n\tObject = 9,\n\n\t// the property type should not be equal or higher that kLast otherwise\n\t// it means the SDK is not in sync with the actual version of Socket\n\t// Mobile Companion running on the host\n\tLastType = 10,\n\n\n};\n","//PropertyValues.ts\n//This file is generated when calling npm run update\n//\n//\n\n// Data Confirmation Mode indicates what is \n// expected to the send the Data ACK back to the scanner\nexport enum DataConfirmationMode {\n\n\t// use the device configuration (Local Confirmation or App)\n\tModeOff = 0,\n\t// the device confirms the decoded data locally\n\tModeDevice = 1,\n\t// Capture confirms the decoded data as it receives them and there is one app\n\tModeCapture = 2,\n\t// the Application confirms the decoded data as it receives them\n\tModeApp = 3\n};\n\n// Device Data Acknowledgment mode\nexport enum DeviceDataAcknowledgment {\n\n\t// the device won't locally acknowledge decoded data\n\tOff = 0,\n\t// the device will locally acknowledge decoded data\n\tOn = 1\n};\n\n// Security Mode\nexport enum SecurityMode {\n\n\t// No security\n\tNone = 0,\n\t// communication protected by authentication\n\tAuthentication = 1,\n\t// communication protected by authentication and encrytion\n\tAuthenticationEncryption = 2\n};\n\n// trigger parameter\nexport enum Trigger {\n\n\t// start a read\n\tStart = 1,\n\t// stop a read\n\tStop = 2,\n\t// enable the trigger\n\tEnable = 3,\n\t// disable the trigger\n\tDisable = 4,\n\t// start a read in continuous\n\tContinuousScan = 5,\n\t// start a read in continuous until a code is read\n\tContinuousScanUntilRead = 6\n};\n\n// Delete the pairing of the device\nexport enum DeletePairing {\n\n\t// delete the current pairing\n\tCurrent = 0,\n\t// delete all the pairing of the device\n\tAll = 1\n};\n\n// sound configuration for the a type of action\nexport enum SoundActionType {\n\n\t// sound configuration for a good read action\n\tGoodRead = 0,\n\t// sound configuration for a good read local action\n\tGoodReadLocal = 1,\n\t// sound configuration for a bad read action\n\tBadRead = 2,\n\t// sound configuration for a bad read local action\n\tBadReadLocal = 3\n};\n\n// Sound frequency configuration\nexport enum SoundFrequency {\n\n\t// no frequency\n\tNone = 0,\n\t// Low pitch frequency\n\tLow = 1,\n\t// Medium pitch frequency\n\tMedium = 2,\n\t// High pitch frequency\n\tHigh = 3\n};\n\n// Rumble configuration for the a type of action\nexport enum RumbleActionType {\n\n\t// Rumble configuration for a good read action\n\tGoodRead = 0,\n\t// Rumble configuration for a good read local action\n\tGoodReadLocal = 1,\n\t// Rumble configuration for a bad read action\n\tBadRead = 2,\n\t// Rumble configuration for a bad read local action\n\tBadReadLocal = 3\n};\n\n// Define the action for a local decode\nexport enum LocalDecodeAction {\n\n\t// no action\n\tNone = 0,\n\t// Beep when a local decode occurs\n\tBeep = 1,\n\t// Flash the LED when a local decode occurs\n\tFlash = 2,\n\t// Rumble when a local decode occurs\n\tRumble = 4\n};\n\n// Define the LED for data confirmation\nexport enum DataConfirmationLed {\n\n\t// no LED\n\tNone = 0,\n\t// make the LED flash in green\n\tGreen = 1,\n\t// make the LED flash in red\n\tRed = 2\n};\n\n// Define the sound for data confirmation\nexport enum DataConfirmationBeep {\n\n\t// no sound\n\tNone = 0,\n\t// short beep for success\n\tGood = 1,\n\t// long beep for failure\n\tBad = 2\n};\n\n// Define the rumble for data confirmation\nexport enum DataConfirmationRumble {\n\n\t// no sound\n\tNone = 0,\n\t// short rumble for success\n\tGood = 1,\n\t// long rumble for failure\n\tBad = 2\n};\n\n// Define the flash setting\nexport enum Flash {\n\n\t// turn off the flash\n\tOff = 0,\n\t// turn on the flash\n\tOn = 1\n};\n\n// Define the SocketCam experience\nexport enum SocketCam {\n\n\t// Enable SocketCam\n\tEnable = 0,\n\t// Disable SocketCam\n\tDisable = 1,\n\t// SocketCam is not supported, and cannot be enabled\n\tNotSupported = 2\n};\n\n// Define the possible power states\nexport enum PowerState {\n\n\t// The power state is unknown\n\tUnknown = 0,\n\t// The power state is on battery\n\tOnBattery = 1,\n\t// The power state is on cradle\n\tOnCradle = 2,\n\t// The power state in on AC\n\tOnAc = 4\n};\n\n// Define the monitor feature (DEBUG build only)\nexport enum MonitorDbg {\n\n\t// define the level for the debug traces\n\tLevel = 1,\n\t// define the output channel for the debug traces\n\tChannel = 2,\n\t// define the number of lines in the file\n\tFileLineLevel = 3\n};\n\n// identifiers for the statistic counters\nexport enum Counter {\n\n\t// use for convenience only to skip a counter\n\tSkip = -1,\n\t// unknow counter\n\tUnknown = 0,\n\t// number of connections\n\tConnect = 1,\n\t// number of disconnections\n\tDisconnect = 2,\n\t// number of unbound operation\n\tUnbound = 3,\n\t// number of reset to factory default\n\tFactoryReset = 4,\n\t// number of reads (scans)\n\tReads = 5,\n\t// number of trigger button released\n\tTriggerButtonUp = 6,\n\t// number of trigger button pressed\n\tTriggerButtonDown = 7,\n\t// number of power button released\n\tPowerButtonUp = 8,\n\t// number of power button pressed\n\tPowerButtonDown = 9,\n\t// number of minutes in AC power\n\tOnAcTimeInMinutes = 10,\n\t// number of minutes on battery\n\tOnBatTimeInMinutes = 11,\n\t// number of RFCOMM sent (SSI only)\n\tRfcommSend = 12,\n\t// number of RFCOMM received (SSI only)\n\tRfcommReceive = 13,\n\t// number of RFCOMM discarded (SSI only)\n\tRfcommReceiveDiscarded = 14,\n\t// number of UART sent (SSI only)\n\tUartSend = 15,\n\t// number of UART received (SSI only)\n\tUartReceive = 16,\n\t// number of UART discarded (SSI only)\n\tUartReceiveDiscarded = 17,\n\t// number of left button press (CRS only)\n\tButtonLeftPress = 18,\n\t// number of left button release (CRS only)\n\tButtonLeftRelease = 19,\n\t// number of right button press (CRS only)\n\tButtonRightPress = 20,\n\t// number of right button release (CRS only)\n\tButtonRightRelease = 21,\n\t// number of ring unit detach (CRS only)\n\tRingUnitDetach = 22,\n\t// number of ring unit attach (CRS only)\n\tRingUnitAttach = 23,\n\t// number of decoded bytes (7x only ISCI)\n\tDecodedBytes = 24,\n\t// number of abnormal shutdowns (7x only ISCI)\n\tAbnormalShutdowns = 25,\n\t// number of battery charge cycles (7x only ISCI)\n\tBatteryChargeCycles = 26,\n\t// number of battery charge count (7x only ISCI)\n\tBatteryChargeCount = 27,\n\t// number of power on (only 8Ci)\n\tPowerOn = 28,\n\t// number of power off (only 8Ci)\n\tPowerOff = 29,\n\t// number of stand mode change (only 7X/Q 7630 and higher)\n\tStandModeChange = 30\n};\n\n// Disconnect parameters to instruct the device what to do after disconnection\nexport enum Disconnect {\n\n\t// disconnect and then start the current profile\n\tStartProfile = 0,\n\t// Disconnect and disable radio (low power)\n\tDisableRadio = 1,\n\t// Disconnect a device and make it available for a new connection (for Bluetooth Low Energy device)\n\tMakeAvailable = 2\n};\n\n// Select a profile for the device (None, SPP, HID, Reader, Coupler)\nexport enum ProfileSelect {\n\n\t// The device is in acceptor mode, not trying to connect to any host\n\tNone = 0,\n\t// The device is in App mode\n\tSpp = 1,\n\t// The device is in Basic mode, sometimes referred as Keyboard emulation\n\tHid = 2,\n\t// The device is in Reader mode, for NFC devices\n\tReader = 3,\n\t// The device is in Coupler mode, for NFC devices\n\tCoupler = 4\n};\n\n// Configure a profile for the device (None, Acceptor, Initiator)\nexport enum ProfileConfig {\n\n\t// The device is in either acceptor or initiator mode, meaning not even discoverable\n\tNone = 0,\n\t// The device is discoverable and will accept any connection\n\tAcceptor = 1,\n\t// The device initiates a connection to the Bluetooth address specified in the Profile Configuration\n\tInitiator = 2\n};\n\n// Configuration masks for selecting the notifications the device should send to the host\nexport enum Notifications {\n\n\t// The device sends a notification when the trigger button is pressed\n\tTriggerButtonPress = 1,\n\t// The device sends a notification when the trigger button is released\n\tTriggerButtonRelease = 2,\n\t// The device sends a notification when the power button is pressed\n\tPowerButtonPress = 4,\n\t// The device sends a notification when the power button is released\n\tPowerButtonRelease = 8,\n\t// The device sends a notification when the power state changes (battery to AC or vice-versa) (not supported on all device)\n\tPowerState = 16,\n\t// The device sends a notification when the battery level changed (not supported on all device)\n\tBatteryLevelChange = 32\n};\n\n// Identifies the timers used in the device, (trigger lock, disconnected, connected)\nexport enum Timer {\n\n\t// The trigger button stays ineffective for the specified amount of time \n\t// or until the device receives a data confirmation command.\n\tAutoLock = 1,\n\t// This timer specifies the amount of time the device stays on while it is not connected to any host.\n\tPowerOffDisconnected = 2,\n\t// This timer specifies the amount of time the device stays on while it is connected to a host.\n\tPowerOffConnected = 4\n};\n\n// Identifies the data format the device should send the data to the host\nexport enum DataFormat {\n\n\t// The device sends the data without any protocol overhead\n\tRaw = 0,\n\t// The device sends the data embedded in a protocol packet (default)\n\tPacket = 1,\n\t// The device sends only the RFID tag ID, (valid only for D600 NFC devices)\n\tIdOnly = 2,\n\t// The device sends the tag type and RFID tag ID, (valid only for D600 NFC devices)\n\tTagTypeAndId = 10,\n\t// The device sends only the tag data, (valid only for D600 NFC devices)\n\tDataOnly = 4,\n\t// The device sends the tag type and the tag data, (valid only for D600 NFC devices)\n\tTagTypeAndData = 12\n};\n\n// defines the operational mode of the device\nexport enum TriggerMode {\n\n\t// The device triggers a read only by pressing the trigger button\n\tLocalOnly = 1,\n\t// The device triggers a read by pressing the trigger button or by receiving the trigger command\n\tRemoteAndLocal = 2,\n\t// the device waits for the host to unlock the trigger\n\tAutoLock = 3,\n\t// the device locks and unlocks the trigger locally (default)\n\tNormalLock = 4,\n\t// The device triggers a read automatically without user intervention\n\tPresentation = 5\n};\n\n// defines the reason as of how the device connects to the host\nexport enum ConnectReason {\n\n\t// The device connects to the host from unknown reason\n\tUnknown = 0,\n\t// The device connects to the host just after power on\n\tPowerOn = 1,\n\t// The device connects to the host by reading the host address from a barcode\n\tBarcode = 2,\n\t// The device connects to the host by user action (usually a press on the trigger button)\n\tUserAction = 3,\n\t// The device connects to the host from a change of the host address in the profile configuration\n\tHostChange = 4,\n\t// The device connects to the host after a retry (device coming back to the radio range)\n\tRetry = 5\n};\n\n// The start up role SPP defines the start up role when using the SPP profile.\nexport enum StartUpRoleSpp {\n\n\t// The device returns to acceptor mode, not initiating a connection to a host.\n\tAcceptor = 0,\n\t// The device uses the last role configuration upon startup.\n\tLastRole = 1\n};\n\n// The connect beep configuration allows to turn off or on the connection beep when the scanner connects\nexport enum ConnectBeepConfig {\n\n\t// The device won't beep upon connection to a host.\n\tNoBeep = 0,\n\t// The device beeps when connecting to the host.\n\tBeep = 1\n};\n\n// The stand configuration defines the operational mode of the device when used with a stand.\nexport enum StandConfig {\n\n\t// Bluetooth Classic:\n\t// Disabled the stand config property and sets the scanner as it is intended\n\t// Bluetooth LE:\n\t// Scanner does not switch to presentation mode\n\tDisabled = 0,\n\t// Bluetooth Classic:\n\t// Mobile mode Works like today existing firmware Engine is always in trigger mode Engine hibernate enabled\n\t// Bluetooth LE:\n\t// Identical to disabled mode\n\tMobileMode = 1,\n\t// Bluetooth Classic:\n\t// Stand mode Engine always in presentation mode Engine hibernate\n\t// disabled Scanner turns on immediately Power timers disabled Connection retries forever\n\t// Bluetooth LE:\n\t// The device switches to presentation mode, always, in or out of the stand,\n\tStandMode = 2,\n\t// Bluetooth Classic:\n\t// Detect mode On stand engine in presentation mode On stand engine\n\t// hibernate disabled On stand charging led state not show On stand\n\t// scanner turns on immediately On stand power timers disabled On stand\n\t// connection retries forever Off stand engine in level mode Off stand\n\t// battery led state reported Off stand engine hibernate enabled Off stand\n\t// power off timers running Off stand connection retries halt after max count\n\t// Bluetooth LE:\n\t// The device switches in or out of presentation mode when it's in or out respectively from the stand\n\tDetectMode = 3,\n\t// Bluetooth Classic:\n\t// Auto mode On stand engine in presentation mode On stand engine hibernate\n\t// disabled On stand charging led state not show On stand scanner turns on\n\t// immediately On stand power timers disabled On stand connection retries\n\t// forever Off stand does nothing, engine remains in presentation mode Off\n\t// stand trigger press causes engine to enter level mode Engine in level\n\t// mode battery led state reported Engine in level mode hibernate enabled\n\t// Engine in level mode power off timers running Engine in level mode\n\t// connection retries halt after max count\n\t// Bluetooth LE:\n\t// Same as DetectMode, but if you use the trigger button while it's out of the stand it switches to a normal trigger operation until it returns to the stand in which it switches to presentation mode.\n\t// If it is removed from the stand it stays in presentation mode until the trigger is pressed at least once.\n\tAutoMode = 4\n};\n\n// The mask to apply for each button that is pressed\nexport enum ButtonsState {\n\n\t// The left button is pressed.\n\tLeft = 1,\n\t// The right button is pressed.\n\tRight = 2,\n\t// The middle button is pressed.\n\tMiddle = 4,\n\t// The power button is pressed.\n\tPower = 8,\n\t// The Ring is detached from the wrist unit.\n\tRingDetach = 16\n};\n\n// The mask to apply for each theme\nexport enum ThemeSelection {\n\n\t// No theme.\n\tNone = 0,\n\t// The Health theme.\n\tHealth = 1,\n\t// The Access theme.\n\tAccess = 2,\n\t// The Value theme.\n\tValue = 3,\n\t// The Membership theme.\n\tMembership = 4\n};\n\n// Mask for the Theme selection property. It applies the theme selection on the given device(s) set with the mask\nexport enum ThemeSelectionMask {\n\n\t// Mask applied on the Default device\n\tDefault = 1,\n\t// Mask applied on the Nfc device\n\tNfc = 2,\n\t// Mask applied on the Default and Nfc devices\n\tDefaultNfc = 3,\n\t// Mask applied on the Barcode device\n\tBarcode = 4,\n\t// Mask applied on the Default and Barcode devices\n\tDefaultBarcode = 5,\n\t// Mask applied on the Nfc and Barcode devices\n\tNfcBarcode = 6,\n\t// Mask applied on the Default, Nfc and Barcode devices\n\tAll = 7\n};\n\n// Define the Lasso experience\nexport enum LassoDeviceStatus {\n\n\t// Disable Lasso\n\tDisable = 0,\n\t// Enable Lasso\n\tEnable = 1\n};\n\n// Define the Single Partnership experience\nexport enum SinglePartnership {\n\n\t// Disable Single Partnership\n\tDisable = 0,\n\t// Get a Single Partnership through our Web API\n\tWebApi = 1,\n\t// Show a Single Partnership QRcode through our Web UI\n\tWebUI = 2,\n\t// Set your own Service UUID for a Single Partnership\n\tUuid = 3,\n\t// Show a Single Partnership Web UI where you can input information about the device\n\tWebUIPrompt = 4,\n\t// Set your own Device Id that will return a Single Partnership Web page with a QRcode to scan\n\tDeviceId = 5\n};\n\n// The Bluetooth technology used to make a discovery of devices in the vicinity\nexport enum BluetoothDiscoveryMode {\n\n\t// Discovery for Bluetooth LE devices such as S550, S370, S320, S721.\n\tBluetoothLowEnergy = 1,\n\t// Discovery for Bluetooth Classic devices.\n\tBluetoothClassic = 2\n};\n\n// Mask for the Decode Local Action selection property. It applies the decode local action selection on the given device(s) set with the mask\nexport enum DecodeLocalActionSelectionMask {\n\n\t// Mask applied on the Good local decode action result\n\tGood = 1,\n\t// Mask applied on the Bad local decode action result\n\tBad = 2\n};\n\n\n\n","\nimport { CapturePropertyIds, CapturePropertyTypes } from './gen/propertyIdsTypes'\n\nexport default class CaptureProperty<T> {\n  id: CapturePropertyIds;\n  type: CapturePropertyTypes;\n  value: T;\n  constructor(id: CapturePropertyIds, type: CapturePropertyTypes, value: T) {\n    this.id = id;\n    this.type = type;\n    this.value = value;\n  }\n}\n","//deviceTypes.ts\n//This file is generated when calling npm run update\n//\n//\n\nexport class CaptureDeviceTypeClass {\n\t///<summary>\n\t/// the class is a device\n\t/// value: 0 (0x00000)\n\t///</summary>\n\tstatic readonly DeviceClass = 0;\n\n\t///<summary>\n\t/// the class is a device manager\n\t/// value: 1 (0x00001)\n\t///</summary>\n\tstatic readonly DeviceManagerClass = 1;\n\n};\n\nexport class CaptureDeviceTypeInterface {\n\t///<summary>\n\t/// no interface\n\t/// value: 0 (0x00000)\n\t///</summary>\n\tstatic readonly None = 0;\n\n\t///<summary>\n\t/// SD interface\n\t/// value: 1 (0x00001)\n\t///</summary>\n\tstatic readonly SD = 1;\n\n\t///<summary>\n\t/// CF interface\n\t/// value: 2 (0x00002)\n\t///</summary>\n\tstatic readonly CF = 2;\n\n\t///<summary>\n\t/// Bluetooth interface\n\t/// value: 3 (0x00003)\n\t///</summary>\n\tstatic readonly Bluetooth = 3;\n\n\t///<summary>\n\t/// Serial interface\n\t/// value: 4 (0x00004)\n\t///</summary>\n\tstatic readonly Serial = 4;\n\n\t///<summary>\n\t/// Bluetooth Low Energy interface\n\t/// value: 5 (0x00005)\n\t///</summary>\n\tstatic readonly Ble = 5;\n\n\t///<summary>\n\t/// NFC\n\t/// value: 6 (0x00006)\n\t///</summary>\n\tstatic readonly NFC = 6;\n\n};\n\nexport class CaptureDeviceType {\n\t//no device type (initial value)\n\t//value: 0 (0x00000)\n\tstatic readonly None = 0;\n\n\t//Model 7\n\t//value: 196609 (0x30001)\n\tstatic readonly Scanner7 = 196609;\n\n\t//Model 7X\n\t//value: 196610 (0x30002)\n\tstatic readonly Scanner7x = 196610;\n\n\t//Model 7Xi\n\t//value: 196612 (0x30004)\n\tstatic readonly Scanner7xi = 196612;\n\n\t//Model 9 CRS\n\t//value: 196611 (0x30003)\n\tstatic readonly Scanner9 = 196611;\n\n\t//SocketCam C820\n\t//value: 5 (0x00005)\n\tstatic readonly SocketCamC820 = 5;\n\n\t//SocketCam C860\n\t//value: 29 (0x0001D)\n\tstatic readonly SocketCamC860 = 29;\n\n\t//Model S800\n\t//value: 196614 (0x30006)\n\tstatic readonly ScannerS800 = 196614;\n\n\t//Model S820\n\t//value: 196634 (0x3001A)\n\tstatic readonly ScannerS820 = 196634;\n\n\t//Model S850\n\t//value: 196615 (0x30007)\n\tstatic readonly ScannerS850 = 196615;\n\n\t//Model S840\n\t//value: 196616 (0x30008)\n\tstatic readonly ScannerS840 = 196616;\n\n\t//Model D700\n\t//value: 196617 (0x30009)\n\tstatic readonly ScannerD700 = 196617;\n\n\t//Model D720\n\t//value: 196633 (0x30019)\n\tstatic readonly ScannerD720 = 196633;\n\n\t//Model D730\n\t//value: 196618 (0x3000A)\n\tstatic readonly ScannerD730 = 196618;\n\n\t//Model D740\n\t//value: 196619 (0x3000B)\n\tstatic readonly ScannerD740 = 196619;\n\n\t//Model D750\n\t//value: 196620 (0x3000C)\n\tstatic readonly ScannerD750 = 196620;\n\n\t//Model D760\n\t//value: 196621 (0x3000D)\n\tstatic readonly ScannerD760 = 196621;\n\n\t//Model S700\n\t//value: 196622 (0x3000E)\n\tstatic readonly ScannerS700 = 196622;\n\n\t//Model S720\n\t//value: 196632 (0x30018)\n\tstatic readonly ScannerS720 = 196632;\n\n\t//Model S730\n\t//value: 196623 (0x3000F)\n\tstatic readonly ScannerS730 = 196623;\n\n\t//Model S740\n\t//value: 196624 (0x30010)\n\tstatic readonly ScannerS740 = 196624;\n\n\t//Model S750\n\t//value: 196625 (0x30011)\n\tstatic readonly ScannerS750 = 196625;\n\n\t//Model S760\n\t//value: 196626 (0x30012)\n\tstatic readonly ScannerS760 = 196626;\n\n\t//Model S860\n\t//value: 196627 (0x30013)\n\tstatic readonly ScannerS860 = 196627;\n\n\t//Model D790\n\t//value: 196628 (0x30014)\n\tstatic readonly ScannerD790 = 196628;\n\n\t//Model D600\n\t//value: 327701 (0x50015)\n\tstatic readonly ScannerD600 = 327701;\n\n\t//Model S550\n\t//value: 327702 (0x50016)\n\tstatic readonly ScannerS550 = 327702;\n\n\t//Model S370 - Barcode scanner\n\t//value: 327963 (0x5011B)\n\tstatic readonly ScannerS370 = 327963;\n\n\t//Model S370 - NFC Reader/Writer\n\t//value: 329243 (0x5061B)\n\tstatic readonly NFCS370 = 329243;\n\n\t//Model S320\n\t//value: 327964 (0x5011C)\n\tstatic readonly ScannerS320 = 327964;\n\n\t//NFC Tag\n\t//value: 393239 (0x60017)\n\tstatic readonly NFCTag = 393239;\n\n\t//Model M930\n\t//value: 196894 (0x3011E)\n\tstatic readonly ScannerM930 = 196894;\n\n\t//Model M940\n\t//value: 196895 (0x3011F)\n\tstatic readonly ScannerM940 = 196895;\n\n\t//Model D761\n\t//value: 196896 (0x30120)\n\tstatic readonly DeviceD761 = 196896;\n\n\t//Model D762\n\t//value: 196897 (0x30121)\n\tstatic readonly DeviceD762 = 196897;\n\n\t//Model D763\n\t//value: 327970 (0x50122)\n\tstatic readonly DeviceD763 = 327970;\n\n\t//Model D764\n\t//value: 196899 (0x30123)\n\tstatic readonly DeviceD764 = 196899;\n\n\t//Model D765\n\t//value: 196900 (0x30124)\n\tstatic readonly DeviceD765 = 196900;\n\n\t//Model D751 - NFC Reader/Writer\n\t//value: 329253 (0x50625)\n\tstatic readonly DeviceD751 = 329253;\n\n\t//Model M942\n\t//value: 327974 (0x50126)\n\tstatic readonly DeviceM942 = 327974;\n\n\t//Model M963\n\t//value: 327975 (0x50127)\n\tstatic readonly DeviceM963 = 327975;\n\n\t//Model XS663\n\t//value: 327976 (0x50128)\n\tstatic readonly DeviceXS663 = 327976;\n\n\t//Model S721\n\t//value: 327977 (0x50129)\n\tstatic readonly DeviceS721 = 327977;\n\n\t//Model S741\n\t//value: 327978 (0x5012A)\n\tstatic readonly DeviceS741 = 327978;\n\n\t//Bluetooth device type unknown by this version of Capture\n\t//value: 196651 (0x3002B)\n\tstatic readonly BtUnknown = 196651;\n\n\t//device manager for controlling BLE\n\t//value: 17104897 (0x1050001)\n\tstatic readonly DeviceManagerBle = 17104897;\n\n\t//Ble device type unknown by this version of Capture\n\t//value: 329771 (0x5082B)\n\tstatic readonly BleUnknown = 329771;\n\n};\n\nexport class CaptureDeviceTypeFunction {\n\t///<summary>\n\t/// legacy device\n\t/// value: 0 (0x00000)\n\t///</summary>\n\tstatic readonly Legacy = 0;\n\n\t///<summary>\n\t/// Barcode scanner function for this device\n\t/// value: 1 (0x00001)\n\t///</summary>\n\tstatic readonly Scanner = 1;\n\n\t///<summary>\n\t/// NFC reader function for this device\n\t/// value: 2 (0x00002)\n\t///</summary>\n\tstatic readonly NFCReader = 2;\n\n\t///<summary>\n\t/// NFC writer function for this device\n\t/// value: 4 (0x00004)\n\t///</summary>\n\tstatic readonly NFCWriter = 4;\n\n\t///<summary>\n\t/// Unknown function for this device\n\t/// value: 8 (0x00008)\n\t///</summary>\n\tstatic readonly Unknown = 8;\n\n};\n\n\n","// dataSource.ts\n// This file is generated when calling npm run update\n//\n//\nexport class CaptureDataSourceID {\n\t// the data source ID is not specified or initialized\n\tstatic readonly NotSpecified = 0;\n\n\t// the barcode symbology for Australia post\n\tstatic readonly SymbologyAustraliaPost = 1;\n\n\t// the barcode symbology Aztec\n\tstatic readonly SymbologyAztec = 2;\n\n\t// the barcode symbology Bookland EAN\n\tstatic readonly SymbologyBooklandEan = 3;\n\n\t// the barcode symbology for British post\n\tstatic readonly SymbologyBritishPost = 4;\n\n\t// the barcode symbology for Canada post\n\tstatic readonly SymbologyCanadaPost = 5;\n\n\t// the barcode symbology Chinese 2 of 5\n\tstatic readonly SymbologyChinese2of5 = 6;\n\n\t// the barcode symbology Codabar\n\tstatic readonly SymbologyCodabar = 7;\n\n\t// the barcode symbology Codablock A\n\tstatic readonly SymbologyCodablockA = 8;\n\n\t// the barcode symbology Codablock F\n\tstatic readonly SymbologyCodablockF = 9;\n\n\t// the barcode symbology Code 11\n\tstatic readonly SymbologyCode11 = 10;\n\n\t// the barcode symbology Code 39\n\tstatic readonly SymbologyCode39 = 11;\n\n\t// the barcode symbology Code 39 Extended\n\tstatic readonly SymbologyCode39Extended = 12;\n\n\t// the barcode symbology Code 39 Trioptic\n\tstatic readonly SymbologyCode39Trioptic = 13;\n\n\t// the barcode symbology Code 93\n\tstatic readonly SymbologyCode93 = 14;\n\n\t// the barcode symbology Code 128\n\tstatic readonly SymbologyCode128 = 15;\n\n\t// the barcode symbology DataMatrix\n\tstatic readonly SymbologyDataMatrix = 16;\n\n\t// the barcode symbology for Dutch post\n\tstatic readonly SymbologyDutchPost = 17;\n\n\t// the barcode symbology EAN 8\n\tstatic readonly SymbologyEan8 = 18;\n\n\t// the barcode symbology EAN 13\n\tstatic readonly SymbologyEan13 = 19;\n\n\t// the barcode symbology EAN 128\n\tstatic readonly SymbologyEan128 = 20;\n\n\t// the barcode symbology EAN 128 Irregular\n\tstatic readonly SymbologyEan128Irregular = 21;\n\n\t// the barcode symbology EAN UCC Composite AB\n\tstatic readonly SymbologyEanUccCompositeAB = 22;\n\n\t// the barcode symbology EAN UCC Composite C\n\tstatic readonly SymbologyEanUccCompositeC = 23;\n\n\t// the barcode symbology GS1 Databar\n\tstatic readonly SymbologyGs1Databar = 24;\n\n\t// the barcode symbology GS1 Databar Limited\n\tstatic readonly SymbologyGs1DatabarLimited = 25;\n\n\t// the barcode symbology GS1 Databar Expanded\n\tstatic readonly SymbologyGs1DatabarExpanded = 26;\n\n\t// the barcode symbology Interleaved 2 of 5\n\tstatic readonly SymbologyInterleaved2of5 = 27;\n\n\t// the barcode symbology ISBT 128\n\tstatic readonly SymbologyIsbt128 = 28;\n\n\t// the barcode symbology for Japan post\n\tstatic readonly SymbologyJapanPost = 29;\n\n\t// the barcode symbology Matrix 2 of 5\n\tstatic readonly SymbologyMatrix2of5 = 30;\n\n\t// the barcode symbology Maxi Code\n\tstatic readonly SymbologyMaxicode = 31;\n\n\t// the barcode symbology MSI\n\tstatic readonly SymbologyMsi = 32;\n\n\t// the barcode symbology PDF 417\n\tstatic readonly SymbologyPdf417 = 33;\n\n\t// the barcode symbology PDF 417 Micro\n\tstatic readonly SymbologyPdf417Micro = 34;\n\n\t// the barcode symbology Planet\n\tstatic readonly SymbologyPlanet = 35;\n\n\t// the barcode symbology Plessey\n\tstatic readonly SymbologyPlessey = 36;\n\n\t// the barcode symbology Postnet\n\tstatic readonly SymbologyPostnet = 37;\n\n\t// the barcode symbology QR Code\n\tstatic readonly SymbologyQRCode = 38;\n\n\t// the barcode symbology Standard 2 of 5\n\tstatic readonly SymbologyStandard2of5 = 39;\n\n\t// the barcode symbology Telepen\n\tstatic readonly SymbologyTelepen = 40;\n\n\t// the barcode symbology TLC 39\n\tstatic readonly SymbologyTlc39 = 41;\n\n\t// the barcode symbology UPC A\n\tstatic readonly SymbologyUpcA = 42;\n\n\t// the barcode symbology UPC E0\n\tstatic readonly SymbologyUpcE0 = 43;\n\n\t// the barcode symbology UPC E1\n\tstatic readonly SymbologyUpcE1 = 44;\n\n\t// the barcode symbology USPS Intelligent Mail\n\tstatic readonly SymbologyUspsIntelligentMail = 45;\n\n\t// the barcode symbology Direct Part Marking\n\tstatic readonly SymbologyDirectPartMarking = 46;\n\n\t// the barcode symbology Han Xin\n\tstatic readonly SymbologyHanXin = 47;\n\n\t// the barcode symbology DotCode\n\tstatic readonly SymbologyDotCode = 48;\n\n\t// the barcode symbology Digimarc\n\tstatic readonly SymbologyDigimarc = 49;\n\n\t// the barcode symbology Korea Post\n\tstatic readonly SymbologyKoreaPost = 50;\n\n\t// the barcode symbology Micro QR Code\n\tstatic readonly SymbologyMicroQRCode = 51;\n\n\t// the last barcode symbology ID, not an actual barcode symbology\n\tstatic readonly LastSymbologyID = 52;\n\n\t// the RFID Tag Type ISO 14443 A\n\tstatic readonly TagTypeISO14443TypeA = 256;\n\n\t// the RFID Tag Type ISO 14443 B\n\tstatic readonly TagTypeISO14443TypeB = 257;\n\n\t// the RFID Tag Type Felica\n\tstatic readonly TagTypeFelica = 258;\n\n\t// the RFID Tag Type ISO 15693\n\tstatic readonly TagTypeISO15693 = 259;\n\n\t// the RFID Tag Type NXPI Code 1\n\tstatic readonly TagTypeNXPICODE1 = 260;\n\n\t// the RFID Tag Type Inside Secure Pico Tag\n\tstatic readonly TagTypeInsideSecurePicoTag = 261;\n\n\t// the RFID Tag Type Innovision Topaz Jewel\n\tstatic readonly TagTypeInnovisionTopazJewel = 262;\n\n\t// the RFID Tag Type Thin Film NFC Barcode\n\tstatic readonly TagTypeThinfilmNFCBarcode = 263;\n\n\t// the RFID Tag Type ST Micro Electronics SR\n\tstatic readonly TagTypeSTMicroElectronicsSR = 264;\n\n\t// the RFID Tag Type ASK CTS 256B or CTS 512B\n\tstatic readonly TagTypeASKCTS256BOrCTS512B = 265;\n\n\t// the RFID Tag Type NFC Forum\n\tstatic readonly TagTypeNFCForum = 266;\n\n\t// the RFID Tag Type Innovatron Radio Protocol\n\tstatic readonly TagTypeInnovatronRadioProtocol = 267;\n\n\t// the last RFID tag type, not an actual tag type\n\tstatic readonly TagTypeLastTagType = 268;\n\n};\n\n\nexport class CaptureDataSourceFlags {\n\t// the data source contains a status\n\tstatic readonly Status = 1;\n\n\t// the data source contains some parameters\n\tstatic readonly Param = 2;\n\n};\n\n\nexport class CaptureDataSourceStatus {\n\t// the data source status by default\n\tstatic readonly Default = -1;\n\n\t// the data source status is disabled\n\tstatic readonly Disable = 0;\n\n\t// the data source status is enabled\n\tstatic readonly Enable = 1;\n\n\t// the data source is not supported\n\tstatic readonly NotSupported = 2;\n\n};\n\n"],"names":["root","factory","exports","module","define","amd","self","CaptureEventIds","CaptureEventTypes","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","CaptureEvent","constructor","id","type","result","this","JsonRpc","jsonrpc","CaptureEventResult","handle","event","JRpcEvent","res","Error","JRpcRequest","method","params","super","JRpcResponse","response","JRpcError","code","message","error","BaseTransport","handles","generateHandle","newHandle","Math","floor","random","length","push","every","h","SktErrors","ESKT_LASSODISABLED","ESKT_DEPRECATED","ESKT_NODATA","ESKT_CREATED","ESKT_STILLPENDING","ESKT_PENDING","ESKT_ALREADYDONE","ESKT_WAITTIMEOUT","ESKT_NOERROR","ESKT_TESTFAILED","ESKT_NOTENOUGHMEMORY","ESKT_UNABLECREATELOCK","ESKT_UNABLELOCK","ESKT_UNABLEUNLOCK","ESKT_LISTEMPTY","ESKT_UNABLECREATEEVENT","ESKT_UNABLESETEVENT","ESKT_UNABLERESETEVENT","ESKT_EVENTNOTCREATED","ESKT_INVALIDHANDLE","ESKT_UNABLECREATETHREAD","ESKT_THREADALREADYCREATED","ESKT_THREADSTILLRUNNING","ESKT_NOTSUPPORTED","ESKT_PENDINGOPERATIONNOTCOMPLETED","ESKT_NOTFOUND","ESKT_INVALIDPARAMETER","ESKT_NOTINITIALIZED","ESKT_TIMEOUTOUTOFRANGE","ESKT_UNABLEINITIALIZE","ESKT_UNABLEDEINITIALIZE","ESKT_UNKNOWNCONFIGURATION","ESKT_INVALIDCONFIGURATION","ESKT_ALREADYEXISTING","ESKT_BUFFERTOOSMALL","ESKT_UNABLEOPENDEVICE","ESKT_UNABLECONFIGUREDEVICE","ESKT_UNABLECONVERTSTRING","ESKT_UNABLECOPYSTRING","ESKT_DEVICENOTOPEN","ESKT_NOTAVAILABLE","ESKT_UNABLEWRITEFILE","ESKT_UNABLEREADFILE","ESKT_WAITFAILED","ESKT_INVALIDCHECKSUM","ESKT_COMMANDDENIED","ESKT_COMMUNICATIONERROR","ESKT_RECEIVEUNEXPECTEDCOMMAND","ESKT_UNABLECREATEGUID","ESKT_INVALIDVALUE","ESKT_REQUESTTIMEDOUT","ESKT_INVALIDOPERATION","ESKT_WRONGPROTOCOL","ESKT_QUEUERESETED","ESKT_EXCEEDINGMTUSIZE","ESKT_NOTHINGTOLISTEN","ESKT_OUTDATEDVERSION","ESKT_INVALIDXMLTAG","ESKT_UNABLEREGISTERFORHIDCHANGES","ESKT_UNABLERETRIEVEMESSAGE","ESKT_SYNTAXERROR","ESKT_UNABLEOPENFILE","ESKT_UNABLERETRIEVEPATH","ESKT_UNABLECREATEDIRECTORY","ESKT_UNABLEDELETEFILE","ESKT_UNABLEDELETEDIRECTORY","ESKT_UNABLEREADMODEMSTATUS","ESKT_UNABLEGETCLASSDEVICES","ESKT_UNABLEGETDEVICEINTERFACE","ESKT_FILENOTFOUND","ESKT_FILEACCESSDENIED","ESKT_UNABLEREADHIDINFO","ESKT_INCORRECTNUMBEROFPARAMETERS","ESKT_INVALIDFORMAT","ESKT_INVALIDVERSION","ESKT_SERVICENOTCOMMUNICATING","ESKT_LASSOIDEXPIRED","ESKT_LASSOIDTNOTMATCHING","ESKT_LASSOIDALREADYSET","ESKT_CANCEL","ESKT_EXPIRED","ESKT_INVALIDAPPINFO","ESKT_BLEGATT","ESKT_FAVORITENOTEMPTY","ESKT_LOCATIONPERMISSIONMISSING","ESKT_UNABLETOCOMPLETEOPERATION","ESKT_LOCATIONSERVICEDISABLED","ESKT_BLUETOOTHPERMISSIONMISSING","HttpRequest","XMLHttpRequest","Ajax","sktGetXmlHttp","uri","logger","callback","xmlhttp","window","onreadystatechange","readyState","jsonRpc","JSON","parse","responseText","log","status","e","stringify","sendJsonRpc","jsonRpcString","open","setRequestHeader","send","InternalLogger","arg","HttpTransport","xhr","getXmlRequest","host","notification","Promise","reject","hostWebsocket","replace","resolve","close","index","findIndex","splice","request","ajax","responseStr","openWebSocket","waitForEvent","waitForEventString","websocket","err","that","WebSocket","onopen","onclose","Ulong","onmessage","json","data","evt","MaracaTransport","depwindow","responses","maraca","receiveJsonRpc","replyJsonRpc","jsonRpcDecoded","decodeURI","ex","decodedJsonRpc","dispatchResponse","rpcId","responseCallback","jsonRpcResponse","webkit","messageHandlers","maracaSendJsonRpc","postMessage","rpr","Transport","getTransport","transport","ERRMSG_NO_TRANSPORT","DEFAULT_HOST","appInfo","eventNotification","options","then","transportHandle","getJsonRpcId","appId","developerId","appKey","onEventNotification","clientOrDeviceHandle","undefined","rootCapture","openDevice","guid","capture","openRequest","getProperty","property","console","propertyResponse","rsp","setProperty","unifiedJsonResult","unifyResultInEvents","Array","isArray","DecodedData","name","CapturePropertyIds","CapturePropertyTypes","DataConfirmationMode","DeviceDataAcknowledgment","SecurityMode","Trigger","DeletePairing","SoundActionType","SoundFrequency","RumbleActionType","LocalDecodeAction","DataConfirmationLed","DataConfirmationBeep","DataConfirmationRumble","Flash","SocketCam","PowerState","MonitorDbg","Counter","Disconnect","ProfileSelect","ProfileConfig","Notifications","Timer","DataFormat","TriggerMode","ConnectReason","StartUpRoleSpp","ConnectBeepConfig","StandConfig","ButtonsState","ThemeSelection","ThemeSelectionMask","LassoDeviceStatus","SinglePartnership","BluetoothDiscoveryMode","DecodeLocalActionSelectionMask","CaptureProperty","CaptureDeviceTypeClass","DeviceClass","DeviceManagerClass","CaptureDeviceTypeInterface","None","SD","CF","Bluetooth","Serial","Ble","NFC","CaptureDeviceType","Scanner7","Scanner7x","Scanner7xi","Scanner9","SocketCamC820","SocketCamC860","ScannerS800","ScannerS820","ScannerS850","ScannerS840","ScannerD700","ScannerD720","ScannerD730","ScannerD740","ScannerD750","ScannerD760","ScannerS700","ScannerS720","ScannerS730","ScannerS740","ScannerS750","ScannerS760","ScannerS860","ScannerD790","ScannerD600","ScannerS550","ScannerS370","NFCS370","ScannerS320","NFCTag","ScannerM930","ScannerM940","DeviceD761","DeviceD762","DeviceD763","DeviceD764","DeviceD765","DeviceD751","DeviceM942","DeviceM963","DeviceXS663","DeviceS721","DeviceS741","BtUnknown","DeviceManagerBle","BleUnknown","CaptureDeviceTypeFunction","Legacy","Scanner","NFCReader","NFCWriter","Unknown","CaptureDataSourceID","NotSpecified","SymbologyAustraliaPost","SymbologyAztec","SymbologyBooklandEan","SymbologyBritishPost","SymbologyCanadaPost","SymbologyChinese2of5","SymbologyCodabar","SymbologyCodablockA","SymbologyCodablockF","SymbologyCode11","SymbologyCode39","SymbologyCode39Extended","SymbologyCode39Trioptic","SymbologyCode93","SymbologyCode128","SymbologyDataMatrix","SymbologyDutchPost","SymbologyEan8","SymbologyEan13","SymbologyEan128","SymbologyEan128Irregular","SymbologyEanUccCompositeAB","SymbologyEanUccCompositeC","SymbologyGs1Databar","SymbologyGs1DatabarLimited","SymbologyGs1DatabarExpanded","SymbologyInterleaved2of5","SymbologyIsbt128","SymbologyJapanPost","SymbologyMatrix2of5","SymbologyMaxicode","SymbologyMsi","SymbologyPdf417","SymbologyPdf417Micro","SymbologyPlanet","SymbologyPlessey","SymbologyPostnet","SymbologyQRCode","SymbologyStandard2of5","SymbologyTelepen","SymbologyTlc39","SymbologyUpcA","SymbologyUpcE0","SymbologyUpcE1","SymbologyUspsIntelligentMail","SymbologyDirectPartMarking","SymbologyHanXin","SymbologyDotCode","SymbologyDigimarc","SymbologyKoreaPost","SymbologyMicroQRCode","LastSymbologyID","TagTypeISO14443TypeA","TagTypeISO14443TypeB","TagTypeFelica","TagTypeISO15693","TagTypeNXPICODE1","TagTypeInsideSecurePicoTag","TagTypeInnovisionTopazJewel","TagTypeThinfilmNFCBarcode","TagTypeSTMicroElectronicsSR","TagTypeASKCTS256BOrCTS512B","TagTypeNFCForum","TagTypeInnovatronRadioProtocol","TagTypeLastTagType","CaptureDataSourceFlags","Status","Param","CaptureDataSourceStatus","Default","Disable","Enable","NotSupported"],"sourceRoot":""}