@bitbar/cloud-api-client 0.56.0 → 1.0.0

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.
Files changed (155) hide show
  1. package/dist/API.d.ts +55 -29
  2. package/dist/ApiConfig.d.ts +3 -3
  3. package/dist/CloudAPIClient.d.ts +3 -3
  4. package/dist/Filter.d.ts +3 -3
  5. package/dist/FilterBuilder.d.ts +19 -20
  6. package/dist/api/APIAdminListDevices.d.ts +8 -8
  7. package/dist/api/APIAdminListNotificationPlans.d.ts +9 -5
  8. package/dist/api/APIAdminListRuns.d.ts +12 -5
  9. package/dist/api/APIAdminListServices.d.ts +9 -10
  10. package/dist/api/APIAdminListStatistics.d.ts +8 -5
  11. package/dist/api/APIAdminResource.d.ts +97 -67
  12. package/dist/api/APIAdminResourceAccount.d.ts +6 -3
  13. package/dist/api/APIAdminResourceAccountService.d.ts +8 -5
  14. package/dist/api/APIAdminResourceCluster.d.ts +9 -5
  15. package/dist/api/APIAdminResourceDevice.d.ts +14 -9
  16. package/dist/api/APIAdminResourceDeviceModel.d.ts +9 -5
  17. package/dist/api/APIAdminResourceDeviceSession.d.ts +3 -3
  18. package/dist/api/APIAdminResourceDeviceSessionStandalone.d.ts +4 -10
  19. package/dist/api/APIAdminResourceDeviceTime.d.ts +10 -6
  20. package/dist/api/APIAdminResourceFramework.d.ts +11 -6
  21. package/dist/api/APIAdminResourceLicense.d.ts +10 -7
  22. package/dist/api/APIAdminResourceNotificationPlan.d.ts +11 -7
  23. package/dist/api/APIAdminResourceProject.d.ts +5 -4
  24. package/dist/api/APIAdminResourceRun.d.ts +5 -4
  25. package/dist/api/APIAdminResourceRunStandalone.d.ts +10 -11
  26. package/dist/api/APIAdminResourceService.d.ts +7 -7
  27. package/dist/api/APIAdminResourceUser.d.ts +15 -9
  28. package/dist/api/APIAdminResourceUserAccount.d.ts +13 -8
  29. package/dist/api/APIEntity.d.ts +21 -18
  30. package/dist/api/APIList.d.ts +9 -11
  31. package/dist/api/APIListCleanupConfigurations.d.ts +9 -5
  32. package/dist/api/APIListDeviceTime.d.ts +9 -5
  33. package/dist/api/APIListDevices.d.ts +11 -10
  34. package/dist/api/APIListFiles.d.ts +8 -7
  35. package/dist/api/APIListNotifications.d.ts +11 -5
  36. package/dist/api/APIListProperties.d.ts +8 -4
  37. package/dist/api/APIListRuns.d.ts +8 -5
  38. package/dist/api/APIListServices.d.ts +14 -7
  39. package/dist/api/APIListSmartbearTunnels.d.ts +8 -3
  40. package/dist/api/APIListUsers.d.ts +15 -9
  41. package/dist/api/APIResource.d.ts +3 -2
  42. package/dist/api/APIResourceAccessGroup.d.ts +14 -8
  43. package/dist/api/APIResourceAccount.d.ts +10 -5
  44. package/dist/api/APIResourceAccountService.d.ts +9 -4
  45. package/dist/api/APIResourceAdditionalUser.d.ts +7 -4
  46. package/dist/api/APIResourceBillingPeriod.d.ts +7 -4
  47. package/dist/api/APIResourceBroker.d.ts +8 -5
  48. package/dist/api/APIResourceChannel.d.ts +8 -0
  49. package/dist/api/APIResourceCleanupConfiguration.d.ts +7 -5
  50. package/dist/api/APIResourceDevice.d.ts +10 -5
  51. package/dist/api/APIResourceDeviceGroup.d.ts +16 -9
  52. package/dist/api/APIResourceDeviceSession.d.ts +7 -6
  53. package/dist/api/APIResourceDeviceSessionCommon.d.ts +22 -14
  54. package/dist/api/APIResourceDeviceSessionStandalone.d.ts +15 -10
  55. package/dist/api/APIResourceFile.d.ts +15 -7
  56. package/dist/api/APIResourceLabelGroup.d.ts +10 -6
  57. package/dist/api/APIResourceNotification.d.ts +8 -4
  58. package/dist/api/APIResourceProject.d.ts +12 -12
  59. package/dist/api/APIResourceRun.d.ts +3 -3
  60. package/dist/api/APIResourceRunCommon.d.ts +27 -17
  61. package/dist/api/APIResourceUser.d.ts +53 -40
  62. package/dist/api/APIResourceUserSession.d.ts +10 -7
  63. package/dist/api/APIUserResourceAccount.d.ts +13 -7
  64. package/dist/api/class/FilesQueryParams.d.ts +4 -0
  65. package/dist/api/class/Images.filter.d.ts +2 -0
  66. package/dist/api/class/InputFileset.d.ts +11 -6
  67. package/dist/api/class/NonMedia.filter.d.ts +2 -0
  68. package/dist/api/class/OutputFileset.d.ts +19 -12
  69. package/dist/api/decorators/NonRequestable.d.ts +8 -0
  70. package/dist/api/factory/postAdminDeviceSessionChangeBillable.d.ts +4 -3
  71. package/dist/api/factory/postDeviceRunIds.d.ts +4 -3
  72. package/dist/api/interface/DeviceSession.d.ts +6 -5
  73. package/dist/api/interface/DeviceSessionBase.d.ts +4 -4
  74. package/dist/api/interface/DeviceSessionCommon.d.ts +15 -11
  75. package/dist/api/interface/DeviceSessionStandalone.d.ts +9 -7
  76. package/dist/api/models/AccessGroup.d.ts +14 -0
  77. package/dist/api/models/Account.d.ts +7 -0
  78. package/dist/api/models/AccountConcurrencyStatusMap.d.ts +4 -0
  79. package/dist/api/models/AccountPreference.d.ts +4 -0
  80. package/dist/api/models/AccountService.d.ts +66 -0
  81. package/dist/api/models/AccountServicePayment.d.ts +11 -0
  82. package/dist/api/models/Activity.d.ts +13 -0
  83. package/dist/api/models/AdminDevice.d.ts +50 -0
  84. package/dist/api/models/AdminDeviceSession.d.ts +36 -0
  85. package/dist/api/models/AdminDeviceSessionStatistics.d.ts +22 -0
  86. package/dist/api/models/AdminDeviceType.d.ts +12 -0
  87. package/dist/api/models/AdminEmail.d.ts +9 -0
  88. package/dist/api/models/AdminError.d.ts +39 -0
  89. package/dist/api/models/AdminFrameworkStatistics.d.ts +24 -0
  90. package/dist/api/models/AdminOverview.d.ts +10 -0
  91. package/dist/api/models/AdminTestRun.d.ts +31 -0
  92. package/dist/api/models/BillingPeriod.d.ts +40 -0
  93. package/dist/api/models/Broker.d.ts +10 -0
  94. package/dist/api/models/Browser.d.ts +15 -0
  95. package/dist/api/models/CleanupConfiguration.d.ts +5 -0
  96. package/dist/api/models/Cluster.d.ts +32 -0
  97. package/dist/api/models/Connection.d.ts +15 -0
  98. package/dist/api/models/CountryVatRate.d.ts +7 -0
  99. package/dist/api/models/DesktopBrowserCapabilities.d.ts +19 -0
  100. package/dist/api/models/Device.d.ts +108 -0
  101. package/dist/api/models/DeviceFilter.d.ts +17 -0
  102. package/dist/api/models/DeviceGroup.d.ts +30 -0
  103. package/dist/api/models/DeviceModel.d.ts +23 -0
  104. package/dist/api/models/DeviceModelCriterion.d.ts +19 -0
  105. package/dist/api/models/DeviceModelPool.d.ts +19 -0
  106. package/dist/api/models/DeviceProblem.d.ts +23 -0
  107. package/dist/api/models/DeviceSession.d.ts +137 -0
  108. package/dist/api/models/DeviceSessionDataAvailability.d.ts +9 -0
  109. package/dist/api/models/DeviceStatistics.d.ts +15 -0
  110. package/dist/api/models/DeviceStatus.d.ts +30 -0
  111. package/dist/api/models/DeviceTimeCountSessionReportEntry.d.ts +12 -0
  112. package/dist/api/models/DeviceTimeStepTimeReportEntry.d.ts +12 -0
  113. package/dist/api/models/DeviceUsage.d.ts +7 -0
  114. package/dist/api/models/Enum.d.ts +10 -0
  115. package/dist/api/models/Framework.d.ts +37 -0
  116. package/dist/api/models/HTTP.d.ts +33 -0
  117. package/dist/api/models/LabelGroup.d.ts +7 -0
  118. package/dist/api/models/License.d.ts +74 -0
  119. package/dist/api/models/Maintenance.d.ts +13 -0
  120. package/dist/api/models/Message.d.ts +3 -0
  121. package/dist/api/models/Notification.d.ts +34 -0
  122. package/dist/api/models/NotificationPlan.d.ts +20 -0
  123. package/dist/api/models/Project.d.ts +31 -0
  124. package/dist/api/models/ProjectJobConfig.d.ts +9 -0
  125. package/dist/api/models/Property.d.ts +17 -0
  126. package/dist/api/models/Role.d.ts +15 -0
  127. package/dist/api/models/Screenshot.d.ts +22 -0
  128. package/dist/api/models/Service.d.ts +61 -0
  129. package/dist/api/models/Settings.d.ts +6 -0
  130. package/dist/api/models/SharedResource.d.ts +11 -0
  131. package/dist/api/models/SmartbearTunnel.d.ts +20 -0
  132. package/dist/api/models/Tag.d.ts +16 -0
  133. package/dist/api/models/TestCaseRun.d.ts +40 -0
  134. package/dist/api/models/TestRun.d.ts +132 -0
  135. package/dist/api/models/TestRunDataAvailability.d.ts +10 -0
  136. package/dist/api/models/User.d.ts +75 -0
  137. package/dist/api/models/UserDeviceTime.d.ts +21 -0
  138. package/dist/api/models/UserDeviceTimeSummary.d.ts +14 -0
  139. package/dist/api/models/UserFile.d.ts +65 -0
  140. package/dist/api/models/UserPreference.d.ts +11 -0
  141. package/dist/api/models/UserStatistics.d.ts +14 -0
  142. package/dist/api/models/VatRate.d.ts +4 -0
  143. package/dist/bitbar-cloud-api-client.js +1047 -1007
  144. package/dist/bitbar-cloud-api-client.js.map +1 -1
  145. package/dist/bitbar-cloud-api-client.min.js +17 -2
  146. package/dist/bitbar-cloud-api-client.min.js.map +1 -1
  147. package/package.json +30 -26
  148. package/.nycrc +0 -14
  149. package/Jenkinsfile.sonar +0 -53
  150. package/dist/api/APIListPurchased.d.ts +0 -5
  151. package/dist/api/APIListStatistics.d.ts +0 -6
  152. package/dist/api/APIResourceBuild.d.ts +0 -8
  153. package/dist/api/APIResourceJob.d.ts +0 -9
  154. package/sonar-project.properties +0 -17
  155. package/tsconfig.test.json +0 -20
@@ -1 +1 @@
1
- {"version":3,"file":"bitbar-cloud-api-client.js","sources":["../src/finka.ts","../src/api/APIEntity.ts","../src/Filter.ts","../src/FilterBuilder.ts","../src/api/APIList.ts","../src/api/APIResource.ts","../src/api/APIListCleanupConfigurations.ts","../src/api/APIResourceCleanupConfiguration.ts","../src/api/APIListDevices.ts","../src/api/APIListUsers.ts","../src/api/APIResourceBillingPeriod.ts","../src/api/APIResourceBuild.ts","../src/api/APIResourceJob.ts","../src/api/APIResourceDeviceGroup.ts","../src/api/factory/postDeviceRunIds.ts","../src/api/APIResourceRunCommon.ts","../src/api/class/InputFileset.ts","../src/api/class/OutputFileset.ts","../src/api/APIResourceDeviceSessionCommon.ts","../src/api/APIResourceDeviceSession.ts","../src/api/APIResourceRun.ts","../src/api/APIResourceProject.ts","../src/api/APIResourceFile.ts","../src/api/APIResourceNotification.ts","../src/api/APIResourceAccessGroup.ts","../src/api/APIResourceAdditionalUser.ts","../src/api/APIUserResourceAccount.ts","../src/api/APIListDeviceTime.ts","../src/api/APIListFiles.ts","../src/api/APIListPurchased.ts","../src/api/APIListServices.ts","../src/api/APIListRuns.ts","../src/api/APIListNotifications.ts","../src/api/APIListSmartbearTunnels.ts","../src/api/APIResourceDeviceSessionStandalone.ts","../src/api/APIResourceUser.ts","../src/api/APIResourceDevice.ts","../src/api/APIResourceUserSession.ts","../src/api/APIAdminListRuns.ts","../src/api/APIAdminResourceCluster.ts","../src/api/APIAdminResourceDeviceTime.ts","../src/api/APIAdminResourceRunStandalone.ts","../src/api/APIAdminResourceDevice.ts","../src/api/APIAdminResourceAccountService.ts","../src/api/APIAdminResourceUserAccount.ts","../src/api/APIAdminResourceUser.ts","../src/api/factory/postAdminDeviceSessionChangeBillable.ts","../src/api/APIAdminResourceDeviceSessionStandalone.ts","../src/api/APIAdminListDevices.ts","../src/api/APIAdminResourceFramework.ts","../src/api/APIAdminResourceLicense.ts","../src/api/APIAdminListNotificationPlans.ts","../src/api/APIAdminResourceNotificationPlan.ts","../src/api/APIAdminResourceService.ts","../src/api/APIAdminListServices.ts","../src/api/APIAdminListStatistics.ts","../src/api/APIAdminResourceDeviceModel.ts","../src/api/APIAdminResource.ts","../src/api/APIResourceAccount.ts","../src/api/APIResourceBroker.ts","../src/API.ts","../src/CloudAPIClient.ts"],"sourcesContent":["import finka from '@bitbar/finka';\n\nfinka();\n\nexport default {};\n","import qs from 'qs';\nimport { AxiosRequestConfig, Method } from 'axios';\n\n\n/**\n * Allowed methods\n *\n * @constant\n * @type {Array}\n * @default\n */\nenum ALLOWED_HTTP_METHODS {\n GET = 'GET',\n POST = 'POST',\n DELETE = 'DELETE'\n};\n\n\n/**\n * APIEntity\n *\n * @class\n * @abstract\n */\nclass APIEntity {\n\n /**\n * Stack\n *\n * @public\n * @type {Array}\n */\n public stack: Array<string|number>;\n\n /**\n * object of request config\n *\n * @protected\n * @type {AxiosRequestConfig}\n */\n protected requestConfig: AxiosRequestConfig;\n\n /**\n * Root\n *\n * @public\n * @type {API}\n */\n public root: object;\n\n /**\n * Constructor\n * @param {APIEntity|object} [parent] - Specifies a parent from which should be inherited properties\n */\n constructor (parent: APIEntity | object) {\n this.stack = [];\n this.requestConfig = {};\n\n if (parent instanceof APIEntity) {\n this.root = parent.root;\n\n if (Array.isArray(parent.stack)) {\n this.push(...parent.stack);\n }\n\n if (parent.requestConfig != null) {\n this.setRequestConfig(parent.requestConfig);\n }\n } else {\n this.root = parent;\n }\n }\n\n /**\n * Push\n *\n * @public\n * @param {string|number} items... - Items that should be pushed to stack\n * @returns this\n */\n public push (...items: Array<string|number>) {\n for (const item of items) {\n this.stack.push(item);\n }\n return this;\n }\n\n /**\n * Pop\n *\n * @public\n * @return this\n */\n public pop () {\n this.stack.pop();\n return this;\n }\n\n /**\n * Shift\n *\n * @public\n * @return this\n */\n public shift () {\n this.stack.shift();\n return this;\n }\n\n /**\n * Unshift\n *\n * @public\n * @return this\n */\n public unshift (...items: Array<string|number>) {\n for (const item of items) {\n this.stack.unshift(item);\n }\n return this;\n }\n\n public restack (...items: Array<string|number>) {\n this.stack = items;\n return this;\n }\n\n /**\n * Get first element of the stack\n */\n public get first () {\n return this.stack[0];\n }\n\n /**\n * Set first element of the stack\n */\n public set first (val) {\n this.stack[0] = val;\n }\n\n /**\n * Get last element of the stack\n */\n public get last () {\n return this.stack[this.stack.length - 1];\n }\n\n /**\n * Set last element of the stack\n */\n public set last (val) {\n this.stack[this.stack.length - 1] = val;\n }\n\n /**\n * To URL\n *\n * @param {boolean} absolute\n */\n public toUrl (absolute = false) {\n let url = `/${this.stack.join('/')}`;\n\n if (absolute) {\n // @ts-ignore\n url = this.root.axiosConfig.baseURL + url;\n }\n\n return url;\n }\n\n /**\n * Set request config\n *\n * @public\n * @param {AxiosRequestConfig} requestConfig - object of request config to be set\n * @returns this\n */\n public setRequestConfig (requestConfig: AxiosRequestConfig) {\n Object.deepAssign(this.requestConfig, requestConfig);\n return this;\n }\n\n /**\n * Remove request config key\n *\n * @public\n * @param {string} key - Key to me removed from request config\n * @returns this\n */\n public removeRequestConfig (key: string) {\n // @ts-ignore\n delete this.requestConfig[key];\n return this;\n }\n\n /**\n * Set headers\n *\n * @public\n * @param {object} headers - Headers object\n * @returns this\n */\n public headers (headers: object) {\n const _headers = {};\n\n // Unify/Standarize headers keys\n for (const key in headers) {\n const newKey = key.replace(/(?:^|-)([a-z])/g, (letter) => letter.toUpperCase());\n // @ts-ignore\n _headers[newKey] = headers[key];\n }\n\n // Set\n return this.setRequestConfig({\n headers: _headers\n });\n }\n\n /**\n * Set HTTP method\n *\n * @public\n * @param {string} name - HTTP methods name\n * @returns this\n */\n public method (name: Method) {\n const NAME: Method = <Method> name.toLocaleUpperCase();\n\n // @ts-ignore\n if (!ALLOWED_HTTP_METHODS[NAME]) {\n throw new Error(`Method '${NAME}' is not allowed! You can use: ${Object.keys(ALLOWED_HTTP_METHODS).join(', ')}`);\n }\n\n return this.setRequestConfig({\n method: NAME\n });\n }\n\n /**\n * Set GET as HTTP method\n *\n * @public\n * @returns this\n */\n public get () {\n return this.method('GET');\n }\n\n /**\n * Set POST as HTTP method\n *\n * @public\n * @returns this\n */\n public post () {\n return this.method('POST');\n }\n\n /**\n * Set params\n *\n * @public\n * @param {object} params - object of params to be set\n * @returns this\n */\n public params (params: object) {\n Object.deepAssign(this.requestConfig, {\n params\n });\n return this;\n }\n\n /**\n * Get params\n *\n * @public\n * @returns object\n */\n public getParams () {\n return this.requestConfig.params == null ? {} : this.requestConfig.params;\n }\n\n /**\n * Remove params key\n *\n * @public\n * @param {string} key - Key to me removed from params\n * @returns this\n */\n public removeParam (key: string) {\n delete this.requestConfig.params[key];\n return this;\n }\n\n /**\n * Set data\n *\n * @public\n * @param {object} data - object of data to be set\n * @returns this\n */\n public data (data: object) {\n Object.deepAssign(this.requestConfig, {\n data\n });\n return this;\n }\n\n /**\n * Set JSON data\n *\n * @public\n * @param {object} data - JSON object to be set\n * @returns this\n */\n public jsonData (data: object) {\n this.headers({\n 'Content-Type': 'application/json'\n }).data(data);\n return this;\n }\n\n /**\n * Set form data\n *\n * @public\n * @param {object} data - JSON object to be set\n * @returns this\n */\n public formData (data: FormData) {\n this.headers({\n 'Content-Type': 'multipart/form-data'\n }).data(data);\n return this;\n }\n\n /**\n * Custom params serializer\n * @private\n * @param {object} params\n */\n private paramsSerializer (params: object) {\n return qs.stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n\n /**\n * Send request\n *\n * @public\n * @returns Promise\n */\n public send () {\n const requestConfig = <AxiosRequestConfig> Object.deepAssign({}, this.requestConfig, {\n url: `/${this.stack.join('/')}`\n });\n\n // Set default headers\n if (requestConfig.headers == null) {\n requestConfig.headers = {};\n }\n\n // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n requestConfig.headers['Content-Type'].startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = qs.stringify(requestConfig.data, {\n arrayFormat: 'brackets'\n });\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n // @ts-ignore\n return this.root.axios.request(requestConfig);\n }\n}\n\n\nexport default APIEntity;\n","/**\n * Filter\n */\n\nclass Filter {\n public name: string;\n public value: any;\n public operand: string;\n\n constructor (name: string, value: any, operand: string) {\n this.name = name;\n this.value = value;\n this.operand = operand;\n }\n}\n\nexport default Filter;\n","import './finka';\nimport Filter from './Filter';\n\n/**\n * FilterBuilder\n *\n * Builds filter string according to Bitbar Cloud backend convention\n */\n\nclass FilterBuilder {\n\n private filters: Array<Filter>;\n\n constructor () {\n this.filters = [];\n }\n\n /**\n * Add filter to filters list\n * @param name {string} Name\n * @param value {*} Value\n * @param operand {string} Operand\n * @param [checkNull=false] {boolean} Check null?\n * @returns {FilterBuilder}\n */\n private add (name: string, value: any, operand: string, checkNull = false): FilterBuilder {\n\n value = Array.wrap(value);\n\n if (value.length === 0) {\n return this;\n }\n\n // auto-convert\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (typeof v === 'object' && v instanceof Date) {\n value[i] = v.getTime();\n }\n }\n\n let isNull = false;\n if (checkNull) {\n // check null existence\n for (const v of value) {\n if (v !== null) {\n continue;\n isNull = true;\n }\n }\n\n if (isNull) {\n value = value.filter((item: any) => item !== null);\n operand += 'ornull';\n }\n }\n\n // @ts-ignore\n if (operand.endsWith('ornull') && value.length === 0) {\n operand = 'isnull';\n }\n\n // add filter\n this.filters.push(new Filter(name, value, operand));\n\n return this;\n }\n\n\n\n public gt (name: string, value: number) {\n return this.add(name, value, 'gt');\n }\n\n public lt (name: string, value: number) {\n return this.add(name, value, 'lt');\n }\n\n public after (name: string, value: Date | number) {\n return this.add(name, value, 'after', true);\n }\n\n public afterorequal (name: string, value: Date | number) {\n return this.add(name, value, 'afterorequal', true);\n }\n\n public before (name: string, value: Date | number) {\n return this.add(name, value, 'before', true);\n }\n\n public beforeorequal (name: string, value: Date | number) {\n return this.add(name, value, 'beforeorequal', true);\n }\n\n public on (name: string, value: any) {\n return this.add(name, value, 'on');\n }\n\n public eq (name: string, value: any) {\n return this.add(name, value, 'eq');\n }\n\n public contains (name: string, value: string) {\n return this.add(name, value, 'contains');\n }\n\n public like (name: string, value: string) {\n return this.add(name, value, 'like');\n }\n\n public notlike (name: string, value: string) {\n return this.add(name, value, 'notlike');\n }\n\n public isnull (name: string) {\n return this.add(name, undefined, 'isnull');\n }\n\n public in (name: string, value: Array<any>) {\n return this.add(name, value, 'in', true);\n }\n\n public notin (name: string, value: Array<any>) {\n return this.add(name, value, 'notin', true);\n }\n\n\n public raw (filter: Filter) {\n const filters = Array.wrap(filter);\n for (const filter of filters) {\n if (this.isFilterPart(filter)) {\n this.filters.push(filter);\n } else {\n throw new SyntaxError(`Filter ${filter} has invalid syntax`);\n }\n }\n }\n\n /**\n * Check if given string is proper filter part\n */\n public isFilterPart (str: string) {\n return /^[a-zA-Z0-9.]{2,12}_(?:isnull$|(?:gt|lt|(?:after|before)(?:orequal)?|on|eq|contains|like|(?:not)?in)_)/.test(<string> str);\n }\n\n /**\n * To string\n */\n public toString () {\n const parts: Array<string> = [];\n\n let part: string,\n val: string;\n\n for (const filter of this.filters) {\n if (typeof filter === 'string') {\n part = filter;\n } else {\n val = '';\n if (filter.value.length > 1 || typeof filter.value[0] !== 'undefined') {\n val = `_${filter.value.join('|')}`;\n }\n part = `${filter.name}_${filter.operand}${val}`;\n }\n parts.push(part);\n }\n\n return parts.join(';');\n }\n}\n\n\nexport default FilterBuilder;\n","import APIEntity from './APIEntity'\nimport FilterBuilder from '../FilterBuilder'\n\n\n/**\n * Default limit\n *\n * @constant\n * @type {number}\n * @default\n */\nconst DEFAULT_LIMIT = 20;\n\n/**\n * Default offset\n *\n * @constant\n * @type {number}\n * @default\n */\nconst DEFAULT_OFFSET = 0;\n\n/**\n * API Order Enum\n */\nenum APIOrder {\n 'asc' = 'a',\n 'desc' = 'd'\n};\n\n\n/**\n * APIList\n *\n * @class\n * @extends APIEntity\n */\nclass APIList extends APIEntity {\n\n /**\n * Create\n * Shortcut for sending data POST\n *\n * @param {object} data\n */\n public create (data: object) {\n return this.post().data(data).send();\n }\n\n /**\n * Sets sorting\n *\n * @public\n * @param {string} name - Name of the column according to which the data will be sorted\n * @param {string} [order=a] - Sorting order. Possibilities: 'a', 'd'\n * @returns this\n */\n public sort (name: string, order: APIOrder = APIOrder.asc) {\n // if order not in ['a', 'd']\n // throw new Error(`Order '\\${order}' is invalid! Use 'a' for ascending or 'd' for descending.`);\n\n return this.params({\n sort: `${name}_${order}`\n });\n }\n\n /**\n * Sets limit\n *\n * @public\n * @param {number} [limit=DEFAULT_LIMIT] - Limit to be set\n * @returns this\n */\n public limit (limit = DEFAULT_LIMIT) {\n if (!Number.isNatural(limit)) {\n throw new Error(`Limit '${limit}' is invalid!`);\n }\n\n return this.params({\n limit\n });\n }\n\n /**\n * Gets limit\n *\n * @public\n * @returns number\n */\n public getLimit () {\n const params = this.getParams();\n return params.limit == null ? DEFAULT_LIMIT : params.limit;\n }\n\n /**\n * Disables limit\n *\n * @public\n * @returns this\n */\n public noLimit () {\n return this.limit(0);\n }\n\n /**\n * Sets offset\n *\n * @public\n * @param {number} [offset=DEFAULT_OFFSET] - Offset to be set\n * @returns this\n */\n public offset (offset: number = DEFAULT_OFFSET) {\n if (!Number.isNatural(offset)) {\n throw new Error(`Offset '${offset}' is invalid!`);\n }\n\n return this.params({\n offset\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE records between range\n *\n * @public\n * @param {number} from - From index\n * @param {number} to - To index\n * @returns this\n */\n public between (from: number, to: number) {\n if (!Number.isNatural(from)) {\n throw new Error(`From '${from}' is invalid!`);\n }\n\n if (!Number.isNatural(to)) {\n throw new Error(`To '${to}' is invalid!`);\n }\n\n return this.params({\n offset: from,\n limit: 1 + (to - from)\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE one record on given index\n *\n * @public\n * @param {number} idx - Index\n * @returns this\n */\n public only (idx: number) {\n if (!Number.isNatural(idx)) {\n throw new Error(`Index '${idx}' is invalid!`);\n }\n\n return this.params({\n offset: idx,\n limit: 1\n });\n }\n\n /**\n * Gets current limit and sets offset so that will request from BE one page of records\n *\n * @public\n * @param {number} [page=1] - Page number (counted from 1)\n * @returns this\n */\n public page (page = 1) {\n if (!Number.isNatural(page) || page == 0) {\n throw new Error(`Page '${page}' is invalid!`);\n }\n\n const limit = this.getLimit();\n const offset = (page - 1) * limit;\n\n return this.params({\n offset,\n limit\n });\n }\n\n /**\n * Sets search\n *\n * query param is working like SQL LIKE. BE sets wraps around query with %, and replaces every white character\n * with %. So e.g. if query='my device', then it's searching for '%my%device%' in DB.\n *\n * @public\n * @param {string} query - Query to search for\n * @returns this\n */\n public search (query: string) {\n if (typeof query !== 'string') {\n throw new Error('Search query must be a string!');\n }\n\n return this.params({\n search: query\n });\n }\n\n /**\n * Sets filter\n *\n * @public\n * @param {FilterBuilder|string} filter - Filter\n * @returns this\n */\n public filter (filter: FilterBuilder | string) {\n const isFilterBuilder = filter instanceof FilterBuilder;\n\n if (typeof filter !== 'string' && !isFilterBuilder) {\n throw new Error('Filter must be either string or instance of FilterBuilder');\n }\n\n if (isFilterBuilder) {\n filter = filter.toString();\n }\n\n return this.params({\n filter\n });\n }\n}\n\ninterface APIList {\n\n /**\n * Alias for 'noLimit'\n *\n * @public\n * @see noLimit\n * @returns this\n */\n all: typeof APIList.prototype.noLimit;\n\n /**\n * Alias for 'between'\n *\n * @public\n * @param {number} from - From idx\n * @param {number} to - To idx\n * @returns this\n */\n cut: typeof APIList.prototype.between;\n}\n\nAPIList.prototype.all = APIList.prototype.noLimit;\nAPIList.prototype.cut = APIList.prototype.between;\n\nexport default APIList;\n","import APIEntity from './APIEntity'\n\n\n/**\n * APIResource\n *\n * @class\n * @extends APIEntity\n */\nclass APIResource extends APIEntity {\n\n /**\n * Set DELETE as HTTP method\n *\n * @public\n * @returns this\n */\n public delete () {\n return this.method('DELETE');\n }\n}\n\n\nexport default APIResource\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIListCleanupConfigurations\n *\n * @class\n * @extends APIList\n */\nclass APIListCleanupConfigurations extends APIList {\n\n /**\n * /builds/{id}\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('cleanup-configurations');\n }\n\n // /cleanup-configurations/specific\n public specific () {\n return new APIResource(this).push('specific');\n }\n\n}\n\nexport default APIListCleanupConfigurations\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIResourceCleanupConfiguration\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceCleanupConfiguration extends APIResource {\n\n /**\n * /cleanup-configurations/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('cleanup-configurations', id);\n }\n\n // /cleanup-configurations/specific\n public devices () {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIResourceCleanupConfiguration\n","import APIList from './APIList'\nimport APIResource from './APIResource'\nimport APIListCleanupConfigurations from \"./APIListCleanupConfigurations\";\nimport APIResourceCleanupConfiguration from \"./APIResourceCleanupConfiguration\";\n\n\n/**\n * APIListDevices\n *\n * @class\n * @extends APIList\n */\nclass APIListDevices extends APIList {\n\n /**\n * /devices\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('devices');\n }\n\n // /devices/filters\n public filters () {\n return new APIResource(this).push('filters');\n }\n\n // /devices/cleanup-configurations\n public cleanupConfigurations () {\n return new APIListCleanupConfigurations(this);\n }\n\n /**\n * /devices/cleanup-configurations/{id}\n *\n * @param {number} id - Resource ID\n */\n public cleanupConfiguration (id: number) {\n return new APIResourceCleanupConfiguration(this, id);\n }\n\n // /devices/desktop-browser-capabilities\n public desktopBrowserCapabilities () {\n return new APIResource(this).push('desktop-browser-capabilities');\n }\n\n}\n\nexport default APIListDevices;\n","import APIList from './APIList'\nimport APIResource from './APIResource'\n\n\n/**\n * APIListDevices\n *\n * @class\n * @extends APIList\n */\nclass APIListUsers extends APIList {\n\n /**\n * /users\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('users');\n }\n\n // /users/activate\n public activate () {\n return new APIResource(this).push('activate').post();\n }\n\n // /users/recoveries\n public recoveries () {\n return new APIResource(this).push('recoveries');\n }\n\n // /users/passwordRecovery\n public passwordRecovery () {\n return new APIResource(this).push('password-recovery');\n }\n\n // /users/resetApiKey\n public resetApiKey () {\n return new APIResource(this).push('reset-api-key');\n }\n\n // /users/resetApiKey\n public validateVatId () {\n return new APIResource(this).push('validateVatId');\n }\n\n}\n\nexport default APIListUsers;\n","import APIResource from './APIResource'\n\n\n/**\n * APIResourceBillingPeriod\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceBillingPeriod extends APIResource {\n\n /**\n * /billing-periods/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('billing-periods', id);\n }\n\n // /billing-periods/{id}/receipt\n public receipt () {\n return new APIResource(this).push('receipt').setRequestConfig({\n responseType: 'arraybuffer'\n });\n }\n\n}\n\nexport default APIResourceBillingPeriod\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIResourceBuild\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceBuild extends APIResource {\n\n /**\n * /builds/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('builds', id);\n }\n\n // /builds/{id}/abort\n public abort () {\n return new APIResource(this).push('abort');\n }\n\n // /builds/{id}/output-file-set/files\n public outputFiles () {\n return new APIList(this).push('output-file-set', 'files');\n }\n\n}\n\nexport default APIResourceBuild\n","import APIResource from './APIResource'\nimport APIResourceBuild from './APIResourceBuild'\n\nimport APIList from './APIList'\n\n\n/**\n * APIResourceFile\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceJob extends APIResource {\n\n /**\n * /jobs/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('jobs', id);\n }\n\n // /jobs/{id}/builds\n public builds () {\n return new APIList(this).push('builds');\n }\n\n // /jobs/{id}/builds/{id}\n public build (id: number) {\n return new APIResourceBuild(this, id);\n }\n\n}\n\nexport default APIResourceJob\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIResourceBillingPeriod\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceDeviceGroup extends APIResource {\n\n /**\n * /device-groups/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-groups', id);\n }\n\n // /device-groups/{id}/devices\n public devices () {\n return new APIList(this).push('devices');\n }\n\n // /device-groups/{id}/device/{id}\n public device (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('devices', id);\n }\n\n // /device-groups/{id}/selectors\n public selectors () {\n return new APIList(this).push('selectors');\n }\n\n // /device-groups/{id}/selectors/{id}\n public selector (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('selectors', id);\n }\n\n // /device-groups/{id}/share\n public share () {\n return new APIResource(this).push('share');\n }\n\n}\n\nexport default APIResourceDeviceGroup\n","import APIEntity from '../APIEntity';\nimport APIResource from '../APIResource';\n\nfunction postDeviceRunIds (parent: APIEntity, name: string, ids?: Array<number>) {\n const a = new APIResource(parent).push(name);\n\n if (ids != null) {\n a.params({\n deviceRunIds: ids\n });\n }\n\n return a.post(); \n}\n\nexport default postDeviceRunIds;\n","import APIResource from './APIResource'\nimport APIList from './APIList'\nimport postDeviceRunIds from './factory/postDeviceRunIds';\n\n\n/**\n * APIResourceRun\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceRunCommon extends APIResource {\n\n /**\n * /runs/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('runs', id);\n }\n\n // /runs/{id}/abort\n public abort () {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/data-availability\n public dataAvailability () {\n return new APIList(this).push('data-availability');\n }\n\n // /runs/{id}/device-sessions\n public deviceSessions () {\n return new APIList(this).push('device-sessions');\n }\n\n // /runs/{id}/files.zip\n public filesZip (ids?: Array<number>) {\n return postDeviceRunIds(this, 'files.zip', ids);\n }\n\n // /runs/{id}/logs.zip\n public logsZip (ids?: Array<number>) {\n return postDeviceRunIds(this, 'logs.zip', ids);\n }\n\n // /runs/{id}/performance.zip\n public performanceZip (ids?: Array<number>) {\n return postDeviceRunIds(this, 'performance.zip', ids);\n }\n\n // /runs/{id}/retry\n public retry (ids?: Array<number>) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n // /runs/{id}/screenshot-names\n public screenshotNames () {\n return new APIList(this).push('screenshot-names');\n }\n\n // /runs/{id}/screenshots\n public screenshots () {\n return new APIList(this).push('screenshots');\n }\n\n // /runs/{id}/screenshots.zip\n public screenshotsZip (ids?: Array<number>) {\n return postDeviceRunIds(this, 'screenshots.zip', ids);\n }\n\n // /runs/{id}/steps\n public steps () {\n return new APIList(this).push('steps');\n }\n\n // /runs/{id}/tags\n public tags () {\n return new APIList(this).push('tags');\n }\n\n // /runs/{id}/tag\n public tag (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('tags', id);\n }\n\n}\n\nexport default APIResourceRunCommon\n","import APIResource from '../APIResource'\nimport APIList from '../APIList'\n\n/**\n * InputFileset\n *\n * @class\n * @extends APIResource\n */\nclass InputFileset extends APIResource {\n\n /**\n * /input-file-set\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('input-file-set');\n }\n\n // /input-file-set/files\n public files () {\n return new APIList(this).push('files');\n }\n\n // /input-file-set/files.zip\n public filesZip () {\n return new APIResource(this).push('files.zip');\n }\n}\n\nexport default InputFileset\n","import APIResource from '../APIResource'\nimport APIList from '../APIList'\n\nimport FilterBuilder from '../../FilterBuilder'\n\n// Create non-media files filter\nconst NON_MEDIA_FILES_FILTER = new FilterBuilder();\nNON_MEDIA_FILES_FILTER.eq('state', 'READY');\nNON_MEDIA_FILES_FILTER.notin('mimetype', [\n // no images\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif',\n\n // no videos\n 'video/mp4', 'video/avi', 'video/webm', 'video/ogg', 'video/mpeg'\n]);\n\n/**\n * OutputFileset\n *\n * @class\n * @extends APIResource\n */\nclass OutputFileset extends APIResource {\n\n /**\n * /output-file-set\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('output-file-set');\n }\n\n // /output-file-set/files\n public files () {\n return new APIList(this).push('files');\n }\n\n // /output-file-set/files/{id}\n public file (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('files', id);\n }\n\n // /output-file-set/files.zip\n public filesZip () {\n return new APIResource(this).push('files.zip');\n }\n\n // /output-file-set/screenshots\n public screenshots () {\n return new APIList(this).push('screenshots');\n }\n\n // /output-file-set/screenshots/{id}\n public screenshot (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /output-file-set/screenshots/{id}/file/{id}\n public screenshotFile (id: number) {\n this.screenshot(id).push('file');\n }\n\n // Filter files out by ready videos\n public videos () {\n return this.files().params({\n filter: 's_state_eq_READY',\n tag: ['video']\n });\n }\n\n // Filter files out by non-media\n public nonMediaFiles () {\n return this.files().filter(NON_MEDIA_FILES_FILTER);\n }\n\n}\n\nexport default OutputFileset\n","import APIResource from './APIResource'\nimport APIList from './APIList';\n\nimport InputFileset from './class/InputFileset'\nimport OutputFileset from './class/OutputFileset'\n\nimport DeviceSessionCommon from './interface/DeviceSessionCommon';\n\n\n/**\n * APIResourceDeviceSession\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceDeviceSessionCommon extends APIResource implements DeviceSessionCommon {\n\n /**\n * /device-sessions/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/commands\n public commands () {\n return new APIList(this).push('commands');\n }\n\n // /device-sessions/{id}/input-file-set\n public input () {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n public output () {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/screenshots\n public screenshots () {\n return new APIList(this).push('screenshots');\n }\n\n // /device-sessions/{id}/screenshots/{id}\n public screenshot (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /device-sessions/{id}/steps\n public steps () {\n return new APIList(this).push('steps');\n }\n\n // /device-sessions/{id}/steps/{id}\n public step (id: number | 'current') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('steps', id);\n }\n\n // /device-sessions/{id}/steps/current\n public currentStep () {\n return this.step('current');\n }\n\n // /device-sessions/{id}/test-case-runs\n public testCaseRuns () {\n return new APIList(this).push('test-case-runs');\n }\n\n}\n\nexport default APIResourceDeviceSessionCommon\n","import APIResource from './APIResource';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\nimport DeviceSession from './interface/DeviceSession';\n\n\n/**\n * APIResourceDeviceSession\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n public abort () {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n public retry () {\n return new APIResource(this).push('retry').post();\n }\n\n}\n\nexport default APIResourceDeviceSession\n","import APIResourceRunCommon from './APIResourceRunCommon'\nimport APIResourceDeviceSession from './APIResourceDeviceSession'\n\n\n/**\n * APIResourceRun\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceRun extends APIResourceRunCommon {\n\n // /runs/{id}/device-sessions/{id}\n public deviceSession (id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n}\n\nexport default APIResourceRun\n","import APIResource from './APIResource'\nimport APIResourceRun from './APIResourceRun'\n\nimport APIList from './APIList'\n\n\n/**\n * APIResourceFile\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceProject extends APIResource {\n\n /**\n * /projects/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('projects', id);\n }\n\n // /projects/{id}/runs\n public runs () {\n return new APIList(this).push('runs');\n }\n\n // /projects/{id}/runs/{id}\n public run (id: number) {\n return new APIResourceRun(this, id);\n }\n\n // /projects/{id}/runs-extended\n public runsExtended () {\n return new APIList(this).push('runs-extended');\n }\n\n // /projects/{id}/runs-extended/{id}\n public runExtended (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('runs-extended', id);\n }\n\n // /projects/{id}/files\n public files () {\n return new APIList(this).push('files');\n }\n\n // /projects/{id}/files.zip\n public filesZip () {\n return new APIResource(this).push('files.zip');\n }\n\n // /projects/{id}/sharings\n public sharings () {\n return new APIList(this).push('sharings');\n }\n\n // /projects/{id}/sharings/{id}\n public sharing (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('sharings', id);\n }\n\n}\n\nexport default APIResourceProject\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIResourceFile\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceFile extends APIResource {\n\n /**\n * /files/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('files', id);\n }\n\n // use this to download file content\n public file () {\n return new APIResource(this).push('file');\n }\n\n // /files/{id}/icon\n public icon () {\n return new APIResource(this).push('icon');\n }\n\n // /files/{id}/tags\n public tags () {\n return new APIList(this).push('tags');\n }\n\n}\n\nexport default APIResourceFile\n","import APIResource from './APIResource'\n\n\n/**\n * APIResourceNotification\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceNotification extends APIResource {\n\n /**\n * /notifications/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('notifications', id);\n }\n\n // /notifications/{id}/test\n public test () {\n return new APIResource(this).push('test');\n }\n\n}\n\nexport default APIResourceNotification\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIResourceAccessGroup\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceAccessGroup extends APIResource {\n\n /**\n * /device-groups/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('access-groups', id);\n }\n\n // /access-groups/{id}/users\n public users () {\n return new APIList(this).push('users');\n }\n\n // /access-groups/{id}/users/{id}\n public user (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('users', id);\n }\n\n // /access-groups/{id}/resources\n public resources () {\n return new APIList(this).push('resources');\n }\n\n // /access-groups/{id}/resources/{id}\n public resource (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('resources', id);\n }\n\n}\n\nexport default APIResourceAccessGroup\n","import APIResource from './APIResource'\n\n/**\n * APIResourceAdditionalUser\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceAdditionalUser extends APIResource {\n\n /**\n * /additional-users/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('additional-users', id);\n }\n\n // /account/resend-activation\n public resendActivation () {\n return new APIResource(this).push('resend-activation');\n }\n\n}\n\nexport default APIResourceAdditionalUser\n","import APIResource from './APIResource'\nimport APIResourceAdditionalUser from './APIResourceAdditionalUser';\n\nimport APIList from './APIList'\n\n/**\n * APIUserResourceAccount\n *\n * @class\n * @extends APIResource\n */\nclass APIUserResourceAccount extends APIResource {\n\n /**\n * /account\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('account');\n }\n\n // /account/additional-users\n public additionalUsers () {\n return new APIList(this).push('additional-users');\n }\n\n // /account/additional-users/{id}\n public additionalUser (id: number) {\n return new APIResourceAdditionalUser(this, id);\n }\n\n // /account-services/{id}/billing-period\n public serviceBillingPeriod (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n const a = new APIResource(this);\n a.last += '-services';\n a.push(id, 'billing-period');\n return a;\n }\n\n}\n\nexport default APIUserResourceAccount\n","import APIList from './APIList'\n\n\n/**\n * APIListDeviceTime\n *\n * @class\n * @extends APIList\n */\nclass APIListDeviceTime extends APIList {\n\n /**\n * /device-time\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('device-time');\n }\n\n // /device-time/reserved\n public reserved () {\n return new APIList(this).push('reserved');\n }\n\n // /device-time/used\n public used () {\n return new APIList(this).push('used');\n }\n\n}\n\nexport default APIListDeviceTime;\n","import APIList from './APIList'\n\ninterface UploadObj {\n /**\n * Directory\n */\n dir: string;\n\n /**\n * Filename\n */\n filename: string;\n}\n\n/**\n * APIListFiles\n *\n * @class\n * @extends APIList\n */\nclass APIListFiles extends APIList {\n\n // Constructor\n constructor (parent: object) {\n super(parent);\n this.push('files');\n }\n\n // Siplifies process of uploading\n public upload (obj: UploadObj) {\n let form;\n\n // For NodeJS\n // @ts-ignore\n if (global.isNodeJs) {\n // @ts-ignore\n const fs = require('fs');\n // @ts-ignore\n const FormData = require('form-data');\n\n form = new FormData();\n form.append('file', fs.createReadStream(obj.dir + '/' + obj.filename), {\n filename: obj.filename\n });\n\n /**\n * Browser\n * @todo\n */\n } else {\n throw new Error('Not supported yet!');\n }\n\n return this.post().headers(form.getHeaders()).data(form);\n }\n\n}\n\nexport default APIListFiles\n","import APIList from './APIList'\n\n\n/**\n * APIListPurchased\n *\n * @class\n * @extends APIList\n */\nclass APIListPurchased extends APIList {\n\n /**\n * /purchased\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('purchased');\n }\n\n}\n\nexport default APIListPurchased\n","import APIList from './APIList'\nimport APIListPurchased from './APIListPurchased'\n\n\n/**\n * APIListServices\n *\n * @class\n * @extends APIList\n */\nclass APIListServices extends APIList {\n\n // Constructor\n constructor (parent: object) {\n super(parent);\n this.push('services');\n }\n\n // /services/purchased\n public purchased () {\n return new APIListPurchased(this);\n }\n\n // /services/available\n public available () {\n return new APIList(this).push('available');\n }\n\n public active () {\n const a = new APIList(this);\n if (this.first === 'me') {\n a.push('active');\n } else {\n a.params({\n notArchived: true\n });\n }\n return a;\n }\n\n}\n\nexport default APIListServices\n","import APIList from './APIList'\nimport APIResource from './APIResource'\n\n\n/**\n * APIListRuns\n *\n * @class\n * @extends APIList\n */\nclass APIListRuns extends APIList {\n\n /**\n * /runs\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('runs');\n }\n\n // /runs/config\n public config () {\n return new APIResource(this).push('config');\n }\n\n}\n\nexport default APIListRuns\n","import APIList from './APIList'\n\n\n/**\n * APIListNotifications\n *\n * @class\n * @extends APIList\n */\nclass APIListNotifications extends APIList {\n\n /**\n * /notifications\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('notifications');\n }\n\n // /notifications/scopes\n public scopes () {\n return new APIList(this).push('scopes');\n }\n\n // /notifications/channels\n public channels () {\n return new APIList(this).push('channels');\n }\n\n}\n\nexport default APIListNotifications\n","import APIList from './APIList'\n\n/**\n * APIListSmartbearTunnels\n *\n * @class\n * @extends APIList\n */\nclass APIListSmartbearTunnels extends APIList {\n\n /**\n * /tunnels\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('tunnels');\n }\n\n /**\n * Sets tunnel activity parameter\n *\n * @public\n * @param {number} active - fetching active or inactive tunnels\n * @returns this\n */\n public active (active: boolean) {\n return this.params({ active: active });\n }\n}\n\nexport default APIListSmartbearTunnels;\n","import DeviceSessionStandalone from './interface/DeviceSessionStandalone';\nimport APIList from './APIList';\nimport APIResource from './APIResource';\n\nimport InputFileset from './class/InputFileset';\nimport OutputFileset from './class/OutputFileset';\n\n\n/**\n * APIResourceDeviceSession\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceDeviceSessionStandalone extends APIResource implements DeviceSessionStandalone {\n\n /**\n * /device-sessions/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/connections\n public connections () {\n return new APIList(this).push('connections');\n }\n\n // /device-sessions/{id}/connections/{id}\n public connection (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('connections', id);\n }\n\n // /device-sessions/{id}/input-file-set\n public input () {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n public output () {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n public release () {\n return new APIResource(this).push('release').post();\n }\n\n}\n\nexport default APIResourceDeviceSessionStandalone\n","import APIResource from './APIResource'\nimport APIResourceBillingPeriod from './APIResourceBillingPeriod'\nimport APIResourceJob from './APIResourceJob'\nimport APIResourceDeviceGroup from './APIResourceDeviceGroup'\nimport APIResourceProject from './APIResourceProject'\nimport APIResourceFile from './APIResourceFile'\nimport APIResourceNotification from './APIResourceNotification'\nimport APIResourceAccessGroup from './APIResourceAccessGroup'\n\nimport APIUserResourceAccount from './APIUserResourceAccount'\n\nimport APIList from './APIList'\nimport APIListDeviceTime from './APIListDeviceTime'\nimport APIListFiles from './APIListFiles'\nimport APIListServices from './APIListServices'\nimport APIListRuns from './APIListRuns'\nimport APIListNotifications from './APIListNotifications'\nimport APIListSmartbearTunnels from './APIListSmartbearTunnels'\nimport APIResourceDeviceSessionStandalone from './APIResourceDeviceSessionStandalone'\n\n\n/**\n * APIResourceUser\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceUser extends APIResource {\n\n /**\n * /users/{id} | /me\n *\n * Constructor\n */\n constructor (parent: object, id: number | 'me') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n\n if (id === 'me') {\n this.push('me');\n } else if (typeof id === 'number') {\n this.push('users', id);\n } else {\n throw new TypeError('id is not a number');\n }\n }\n\n // /users/{id}/account\n public account () {\n return new APIUserResourceAccount(this);\n }\n\n // /users/{id}/device-time\n public deviceTime () {\n return new APIListDeviceTime(this);\n }\n\n // /users/{id}/device-time-summary\n public deviceTimeSummary () {\n return new APIList(this).push('device-time-summary');\n }\n\n // /users/{id}/services\n public services () {\n return new APIListServices(this);\n }\n\n // /users/{id}/services/{id}\n public service (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('services', id);\n }\n\n // /users/{id}/billing-periods\n public billingPeriods () {\n return new APIList(this).push('billing-periods');\n }\n\n // /users/{id}/billing-periods/{id}\n public billingPeriod (id: number) {\n return new APIResourceBillingPeriod(this, id);\n }\n\n // /users/{id}/jobs\n public jobs () {\n return new APIList(this).push('jobs');\n }\n\n // /users/{id}/jobs/{id}\n public job (id: number) {\n return new APIResourceJob(this, id);\n }\n\n // /users/{id}/device-groups\n public deviceGroups () {\n return new APIList(this).push('device-groups');\n }\n\n // /users/{id}/device-groups/{id}\n public deviceGroup (id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /users/{id}/device-sessions\n public deviceSessions () {\n return new APIList(this).push('device-sessions');\n }\n\n // /users/{id}/device-sessions/{id}\n public deviceSession (id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /users/{id}/projects\n public projects () {\n return new APIList(this).push('projects');\n }\n\n // /users/{id}/projects/{id}\n public project (id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /users/{id}/files\n public files () {\n return new APIListFiles(this);\n }\n\n // /users/{id}/files/{id}\n public file (id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /users/{id}/runs\n public runs () {\n return new APIListRuns(this);\n }\n\n // /users/{id}/available-build-executors\n public availableBuildExecutors () {\n return new APIList(this).push('available-build-executors');\n }\n\n // /users/{id}/available-frameworks\n public availableFrameworks () {\n return new APIList(this).push('available-frameworks');\n }\n\n /**\n * /users/{id}/\n * /users/{id}/reset-api-key\n */\n public resetApiKey () {\n return new APIResource(this).push('reset-api-key');\n }\n\n // /users/{id}/restore\n public restore () {\n return new APIResource(this).push('restore');\n }\n\n // /users/{id}/feedback\n public feedback () {\n return new APIResource(this).push('feedback');\n }\n\n // /users/{id}/notifications\n public notifications () {\n return new APIListNotifications(this);\n }\n\n // /users/{id}/notifications/{id}\n public notification (id: number) {\n return new APIResourceNotification(this, id);\n }\n\n // /users/{id}/receipts\n public receipts () {\n return new APIList(this).push('receipts');\n }\n\n // /users/{id}/preferences\n public preferences () {\n return new APIResource(this).push('preferences');\n }\n\n // /users/{id}/ui-preferences\n public uiPreferences () {\n return new APIResource(this).push('ui-preferences');\n }\n\n // /users/{id}/device-usage\n public deviceUsage () {\n return new APIList(this).push('device-usage');\n }\n\n // /users/{id}/statistics\n public statistics () {\n return new APIList(this).push('statistics');\n }\n\n // /users/{id}/statistics\n public deviceStatistics () {\n return new APIList(this).push('device-statistics');\n }\n\n // /users/{id}/access-groups\n public accessGroups () {\n return new APIList(this).push('access-groups');\n }\n\n // /users/{id}/access-groups/{id}\n public accessGroup (id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /users/{id}/tunnels/{id}\n public smartbearTunnel (id: number) {\n return new APIResource(this).push('tunnels', id);\n }\n\n // /users/{id}/tunnels\n public smartbearTunnels () {\n return new APIListSmartbearTunnels(this);\n }\n}\n\nexport default APIResourceUser\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIResourceDevice\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceDevice extends APIResource {\n\n /**\n * /devices/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('devices', id);\n }\n\n // /devices/{id}/properties\n public properties () {\n return new APIList(this).push('properties');\n }\n\n}\n\nexport default APIResourceDevice\n","import APIResource from './APIResource'\n\n\n/**\n * APIResourceUserSession\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceUserSession extends APIResource {\n\n // Constructor\n // /user-sessions\n constructor (parent: object) {\n super(parent);\n this.push('user-sessions');\n }\n\n // /user-sessions/login\n public login (data: object) {\n return new APIResource(this).push('login').post().data(data);\n }\n\n // /user-sessions/logout\n public logout () {\n return new APIResource(this).push('logout').post();\n }\n\n // /user-sessions/{name}-login\n public sso (name: string) {\n return new APIResource(this).push(name + '-login');\n }\n\n // /user-sessions/portal-login\n public portalLogin () {\n return new APIResource(this).push('portal-login').post();\n }\n\n}\n\nexport default APIResourceUserSession\n","import APIList from './APIList'\nimport APIResource from './APIResource';\n\n\n/**\n * APIAdminListRuns\n *\n * @class\n * @extends APIList\n */\nclass APIAdminListRuns extends APIList {\n\n /**\n * /admin/runs\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('admin', 'runs');\n }\n\n // /runs/config\n public config () {\n const a = new APIResource(this);\n a.stack = ['runs', 'config'];\n return a;\n }\n\n}\n\n\nexport default APIAdminListRuns\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIAdminResourceCluster\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceCluster extends APIResource {\n\n /**\n * /clusters/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('clusters', id);\n }\n\n // /clusters/{id}/devices\n public devices () {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIAdminResourceCluster\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIAdminResourceDeviceTime\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceDeviceTime extends APIResource {\n\n /**\n * /device-time\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('admin', 'device-time');\n }\n\n // /device-time/count-session-report\n public countSessionReport () {\n return new APIList(this).push('count-session-report');\n }\n\n // /device-time/step-time-report\n public stepTimeReport () {\n return new APIList(this).push('step-time-report');\n }\n\n}\n\nexport default APIAdminResourceDeviceTime\n","import APIList from './APIList';\nimport APIResource from './APIResource'\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\nimport postDeviceRunIds from './factory/postDeviceRunIds';\n\n\n/**\n * APIAdminResourceRun\n *\n * @class\n * @extends APIResourceRun\n */\nclass APIAdminResourceRunStandalone extends APIResource {\n\n /**\n * /runs/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'runs', id);\n }\n\n // /runs/{id}/abort\n public abort () {\n return new APIResource(this).push('abort').post();\n } \n\n // /runs/{id}/changebillable\n public changeBillable (billable: boolean) {\n return new APIResource(this).push('changebillable').post().params({\n billable\n });\n }\n\n // /runs/{id}/changepriority\n public changePriority (priority: boolean) {\n return new APIResource(this).push('changepriority').post().params({\n priority\n });\n }\n\n // /runs/{id}/retry\n public retry (ids?: Array<number>) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n // /runs/{id}/device-sessions\n public deviceSessions () {\n return new APIList(this).shift().push('device-sessions');\n }\n\n // /runs/{id}/device-sessions/{id}\n public deviceSession (id: number) {\n return new APIResourceDeviceSessionCommon(this, id).shift();\n }\n\n}\n\nexport default APIAdminResourceRunStandalone\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIAdminResourceDevice\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceDevice extends APIResource {\n\n /**\n * /admin/devices/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'devices', id);\n }\n\n // /admin/devices/{id}/queue\n public queue () {\n return new APIList(this).push('queue');\n }\n\n // /admin/devices/{id}/cleanup-configuration\n public cleanupConfiguration () {\n return new APIResource(this).push('cleanup-configuration');\n }\n\n // /admin/devices/{id}/labels\n public labels () {\n return new APIList(this).push('labels');\n }\n\n // /admin/devices/{id}/labels/{id}\n public label (id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n // /admin/devices/{id}/blink\n public blink () {\n return new APIResource(this).push('blink').post();\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import APIResource from './APIResource'\n\n/**\n * APIAdminResourceAccountService\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceAccountService extends APIResource {\n\n /**\n * /account-services/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'account-services', id);\n }\n\n // /account-services/{id}/activate\n public activate () {\n return new APIResource(this).push('activate').post();\n }\n\n // /account-services/{id}/deactivate\n public deactivate () {\n return new APIResource(this).push('deactivate').post();\n }\n\n}\n\nexport default APIAdminResourceAccountService\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIAdminResourceUserAccount\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceUserAccount extends APIResource {\n\n /**\n * /acount\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('account');\n }\n\n // /account/roles\n public roles () {\n return new APIList(this).push('roles');\n }\n\n // /account/roles/{id}\n public role (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('roles', id);\n }\n\n // /account-services\n public services () {\n const a = new APIList(this);\n a.last += '-services';\n return a;\n }\n\n // /update-account\n public update () {\n const a = new APIResource(this);\n a.last = 'update-account';\n return a.post();\n }\n\n}\n\nexport default APIAdminResourceUserAccount\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\nimport APIAdminResourceUserAccount from './APIAdminResourceUserAccount';\n\n\n/**\n * APIAdminResourceUser\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceUser extends APIResource {\n\n /**\n * /users/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'users', id);\n }\n\n // /users/{id}/disable\n public disable () {\n return new APIResource(this).push('disable');\n }\n\n // /users/{id}/enable\n public enable () {\n return new APIResource(this).push('enable');\n }\n\n // /users/{id}/licenses\n public licenses () {\n return new APIList(this).push('licenses');\n }\n\n // /users/{id}/resend-activation\n public resendActivation () {\n return new APIResource(this).push('resend-activation').post();\n }\n\n // users/{id}/account\n public account () {\n return new APIAdminResourceUserAccount(this);\n }\n\n}\n\nexport default APIAdminResourceUser\n","import APIEntity from '../APIEntity';\nimport APIResource from '../APIResource';\n\nfunction postAdminDeviceSessionChangeBillable (parent: APIEntity, billable: boolean) {\n const a = new APIResource(parent);\n const deviceSessionId = a.last;\n\n return a.restack('admin', 'device-sessions', deviceSessionId, 'changebillable').params({\n billable\n }).post();\n}\n\nexport default postAdminDeviceSessionChangeBillable;\n","import APIResource from './APIResource'\nimport APIList from './APIList';\n\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\nimport postAdminDeviceSessionChangeBillable from './factory/postAdminDeviceSessionChangeBillable';\n\nimport DeviceSessionStandalone from './interface/DeviceSessionStandalone';\nimport DeviceSessionCommon from './interface/DeviceSessionCommon';\n\n\n/**\n * APIAdminResourceDevice\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceDeviceSessionStandalone extends APIResourceDeviceSessionCommon implements DeviceSessionCommon, DeviceSessionStandalone {\n\n // /admin/device-sessions/{id}/changebillable\n public changeBillable (billable: boolean) {\n return postAdminDeviceSessionChangeBillable(this, billable);\n }\n\n // /device-sessions/{id}/connections\n public connections () {\n return new APIList(this).push('connections');\n }\n\n // /device-sessions/{id}/connections/{id}\n public connection (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('connections', id);\n }\n\n // /device-sessions/{id}/release\n public release () {\n return new APIResource(this).push('release').post();\n }\n\n}\n\nexport default APIAdminResourceDeviceSessionStandalone\n","import APIList from './APIList'\nimport APIResource from './APIResource'\nimport APIListCleanupConfigurations from \"./APIListCleanupConfigurations\";\nimport APIResourceCleanupConfiguration from \"./APIResourceCleanupConfiguration\";\n\n\n/**\n * APIAdminListDevices\n *\n * @class\n * @extends APIList\n */\nclass APIAdminListDevices extends APIList {\n\n /**\n * /devices\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('admin', 'devices');\n }\n\n // /devices/filters\n public filters () {\n return new APIResource(this).push('filters');\n }\n\n // /devices/cleanup-configurations\n public cleanupConfigurations () {\n return new APIListCleanupConfigurations(this);\n }\n\n /**\n * /devices/cleanup-configurations/{id}\n *\n * @param {number} id - Resource ID\n */\n public cleanupConfiguration (id: number) {\n return new APIResourceCleanupConfiguration(this, id);\n }\n\n // /devices/desktop-browser-capabilities\n public desktopBrowserCapabilities () {\n return new APIResource(this).push('desktop-browser-capabilities');\n }\n\n}\n\nexport default APIAdminListDevices;\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIAdminResourceFramework\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceFramework extends APIResource {\n\n /**\n * /frameworks/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'frameworks', id);\n }\n\n // /frameworks/{id}/config\n public config () {\n return new APIResource(this).push('config');\n }\n\n // /frameworks/{id}/required-roles\n public requiredRoles () {\n return new APIList(this).push('required-roles');\n }\n\n}\n\nexport default APIAdminResourceFramework\n","import APIResource from './APIResource'\n\n\n/**\n * APIAdminResourceLicense\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceLicense extends APIResource {\n\n /**\n * /licenses/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'licenses', id);\n }\n\n // /licenses/{id}/activate\n public activate () {\n return new APIResource(this).push('activate');\n }\n\n // /licenses/{id}/deactivate\n public deactivate () {\n return new APIResource(this).push('deactivate');\n }\n\n // /licenses/{id}/resend\n public resend () {\n return new APIResource(this).push('resend');\n }\n\n // /licenses/{id}/download\n public download () {\n return new APIResource(this).push('download');\n }\n\n}\n\nexport default APIAdminResourceLicense\n","import APIList from './APIList'\n\n\n/**\n * APIListNotificationPlans\n *\n * @class\n * @extends APIList\n */\nclass APIAdminListNotificationPlans extends APIList {\n\n /**\n * /notification-plans\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('admin', 'notification-plans');\n }\n\n // /notification-plans/channels\n public channels () {\n return new APIList(this).push('channels');\n }\n\n // /notification-plans/scopes\n public scopes () {\n return new APIList(this).push('scopes');\n }\n\n}\n\n\nexport default APIAdminListNotificationPlans\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIAdminResourceNotificationPlan\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceNotificationPlan extends APIResource {\n\n /**\n * /notification-plans/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'notification-plans', id);\n }\n\n // /notification-plans/{id}/check\n public check () {\n return new APIList(this).push('check');\n }\n\n // /notification-plans/{id}/test\n public test () {\n return new APIResource(this).push('test');\n }\n\n // /notification-plans/{id}/execute\n public execute () {\n return new APIResource(this).push('execute');\n }\n\n}\n\nexport default APIAdminResourceNotificationPlan\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIAdminResourceService\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceService extends APIResource {\n\n /**\n * /services/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'services', id);\n }\n\n // /services/{id}/activate\n public activate () {\n return new APIResource(this).push('activate').post();\n }\n\n // /services/{id}/deactivate\n public deactivate () {\n return new APIResource(this).push('deactivate').post();\n }\n\n // /services/{id}/roles\n public roles () {\n return new APIList(this).push('roles');\n }\n\n}\n\nexport default APIAdminResourceService\n","import APIList from './APIList'\nimport APIListPurchased from './APIListPurchased'\n\n\n/**\n * APIAdminListServices\n *\n * @class\n * @extends APIList\n */\nclass APIAdminListServices extends APIList {\n\n // Constructor\n constructor (parent: object) {\n super(parent);\n this.push('admin', 'services');\n }\n\n // /services/purchased\n public purchased () {\n return new APIListPurchased(this);\n }\n\n // /services/available\n public available () {\n return new APIList(this).push('available');\n }\n\n public active () {\n const a = new APIList(this);\n if (this.first === 'me') {\n a.push('active');\n } else {\n a.params({\n notArchived: true\n });\n }\n return a;\n }\n\n public activated () {\n const a = this.active();\n a.params({\n filter: 'activated_eq_true',\n limit: 0,\n sort: 'name_a'\n })\n return a;\n }\n\n public inUse () {\n const a = new APIList(this);\n a.params({\n inUse: true,\n limit: 0,\n sort: 'name_a'\n })\n return a;\n }\n\n public byPrice () {\n const a = new APIList(this);\n a.params({\n sort: 'centPrice_a'\n })\n return a;\n }\n\n}\n\nexport default APIAdminListServices\n","import APIList from './APIList'\n\n\n/**\n * APIAdminListStatistics\n *\n * @class\n * @extends APIList\n */\nclass APIAdminListStatistics extends APIList {\n\n /**\n * /statistics\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n this.push('admin', 'statistics');\n }\n\n // /statistics/device-sessions\n public deviceSessions () {\n return new APIList(this).push('device-sessions');\n }\n\n // /statistics/frameworks\n public frameworks () {\n return new APIList(this).push('frameworks');\n }\n\n\n}\n\n\nexport default APIAdminListStatistics\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIAdminResourceDeviceModel\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResourceDeviceModel extends APIResource {\n\n /**\n * /device-models/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'device-models', id);\n }\n\n // /device-models/{id}/browsers\n public browsers () {\n return new APIList(this).push('browsers');\n }\n\n}\n\nexport default APIAdminResourceDeviceModel\n","import APIList from './APIList'\n\nimport APIResource from './APIResource'\nimport APIResourceFile from './APIResourceFile'\nimport APIResourceProject from './APIResourceProject';\nimport APIResourceAccessGroup from './APIResourceAccessGroup';\n\nimport APIAdminListRuns from './APIAdminListRuns';\n\nimport APIAdminResourceCluster from './APIAdminResourceCluster';\nimport APIAdminResourceDeviceTime from './APIAdminResourceDeviceTime';\nimport APIAdminResourceRunStandalone from './APIAdminResourceRunStandalone';\nimport APIAdminResourceDevice from './APIAdminResourceDevice';\nimport APIAdminResourceAccountService from './APIAdminResourceAccountService';\nimport APIAdminResourceUser from './APIAdminResourceUser';\nimport APIAdminResourceDeviceSessionStandalone from './APIAdminResourceDeviceSessionStandalone';\nimport APIAdminListDevices from \"./APIAdminListDevices\";\nimport APIResourceDeviceGroup from \"./APIResourceDeviceGroup\";\nimport APIAdminResourceFramework from \"./APIAdminResourceFramework\";\nimport APIAdminResourceLicense from \"./APIAdminResourceLicense\";\nimport APIAdminListNotificationPlans from \"./APIAdminListNotificationPlans\";\nimport APIAdminResourceNotificationPlan from \"./APIAdminResourceNotificationPlan\";\nimport APIAdminResourceService from \"./APIAdminResourceService\";\nimport APIAdminListServices from \"./APIAdminListServices\";\nimport APIAdminListStatistics from \"./APIAdminListStatistics\";\nimport APIAdminResourceDeviceModel from \"./APIAdminResourceDeviceModel\";\n\n\n/**\n * APIAdminResource\n *\n * @class\n * @extends APIResource\n */\nclass APIAdminResource extends APIResource {\n\n /**\n * /admin\n *\n * Constructor\n */\n constructor (parent: object) {\n super(parent);\n }\n\n // /access-groups\n public accessGroups () {\n return new APIList(this).push('access-groups');\n }\n\n // /access-groups/{id}\n public accessGroup (id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /admin/accounts\n public accounts () {\n return new APIList(this).push('admin', 'accounts');\n }\n\n // /admin/accounts/{id}\n public account (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'accounts', id);\n }\n\n // /admin/account-services\n public accountServices () {\n return new APIList(this).push('admin', 'account-services');\n }\n\n // /admin/account-services/{id}\n public accountService (id: number) {\n return new APIAdminResourceAccountService(this, id);\n }\n\n // activities\n public activities () {\n return new APIList(this).push('admin', 'activities');\n }\n\n // /admin/billing-periods\n public billingPeriods () {\n return new APIList(this).push('admin', 'billing-periods');\n }\n\n // /admin/billing-periods/{id}\n public billingPeriod (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'billing-periods', id);\n }\n\n // /admin/browsers\n public browsers () {\n return new APIList(this).push('admin', 'browsers');\n }\n\n // /admin/browsers/{id}\n public browser (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\n }\n\n // /clusters\n public clusters () {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n public cluster (id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /admin/country-vat-rates\n public countryVatRates () {\n return new APIList(this).push('admin', 'country-vat-rates');\n }\n\n // /admin/country-vat-rates/{id}\n public countryVatRate (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'country-vat-rates', id);\n }\n\n // /admin/devices\n public devices () {\n return new APIAdminListDevices(this);\n }\n\n // /admin/devices/{id}\n public device (id: number) {\n return new APIAdminResourceDevice(this, id);\n }\n\n public devicesForModel (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n const a = this.devices();\n a.params({\n filter: 'deviceModelId_eq_' + id\n });\n return a;\n }\n\n // /admin/device/statuses\n public deviceStatuses () {\n return new APIList(this).push('admin', 'device', 'statuses');\n }\n\n // /admin/device-models\n public deviceModels () {\n return new APIList(this).push('admin', 'device-models');\n }\n\n // /admin/device-models/{id}\n public deviceModel (id: number) {\n return new APIAdminResourceDeviceModel(this, id);\n }\n\n // /admin/device-problems\n public deviceProblems () {\n return new APIList(this).push('admin', 'device-problems');\n }\n\n // /admin/device-model-criteria\n public deviceModelCriterias () {\n return new APIList(this).push('admin', 'device-model-criteria');\n }\n\n // /admin/device-model-criteria/{id}\n public deviceModelCriteria (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'device-model-criteria', id);\n }\n\n // /device-sessions\n public deviceSessions () {\n return new APIList(this).push('admin', 'device-sessions');\n }\n\n // /device-sessions/{id}\n public deviceSession (id: number) {\n return new APIAdminResourceDeviceSessionStandalone(this, id);\n }\n\n // /device-time\n public deviceTime () {\n return new APIAdminResourceDeviceTime(this);\n }\n\n // /device-time-summary\n public deviceTimeSummary () {\n return new APIList(this).push('admin', 'device-time-summary');\n }\n\n // /device-types\n public deviceTypes () {\n return new APIList(this).push('admin', 'device-types');\n }\n\n // /device-types/{id}\n public deviceType (id: number) {\n return new APIResource(this).push('admin', 'device-types', id);\n }\n\n // /device-groups\n public deviceGroups () {\n return new APIList(this).push('device-groups');\n }\n // /device-groups/{id}\n public deviceGroup (id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /admin/emails\n public emails () {\n return new APIList(this).push('admin', 'emails');\n }\n\n // /admin/emails/{id}/resend\n public resendEmail (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'emails', id, 'resend').post();\n }\n\n // /admin/errors\n public errors () {\n return new APIList(this).push('admin', 'errors')\n }\n\n // /files\n public files () {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n public file (id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /admin/frameworks\n public frameworks () {\n return new APIList(this).push('admin', 'frameworks')\n }\n\n // /admin/frameworks/{id}\n public framework (id: number) {\n return new APIAdminResourceFramework(this, id)\n }\n\n // /admin/frameworks/available-labels\n public frameworkAvailableLabels () {\n const a = this.frameworks();\n a.push('available-labels');\n return a;\n }\n\n // /admin/interactive-queue\n public interactiveQueue () {\n return new APIList(this).push('admin', 'interactive-queue');\n }\n\n // /admin/licenses\n public licenses () {\n return new APIList(this).push('admin', 'licenses')\n }\n\n // /admin/licenses/{id}\n public license (id: number) {\n return new APIAdminResourceLicense(this, id)\n }\n\n // /admin/maintenance\n public maintenance () {\n return new APIResource(this).push('admin', 'maintenance');\n }\n\n // /admin/market-shares\n public marketShares () {\n return new APIList(this).push('admin', 'market-shares')\n }\n\n // /admin/notification-plans\n public notificationPlans () {\n return new APIAdminListNotificationPlans(this)\n }\n\n // /admin/notification-plans/{id}\n public notificationPlan (id: number) {\n return new APIAdminResourceNotificationPlan(this, id)\n }\n\n // /admin/overview\n public overview () {\n return new APIResource(this).push('admin', 'overview');\n }\n\n public pools () {\n return new APIList(this).push('admin', 'pools');\n }\n\n public pool (id: number) {\n return new APIResource(this).push('admin', 'pools', id);\n }\n\n // /projects\n public projects () {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n public project (id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /admin/roles\n public roles () {\n return new APIList(this).push('admin', 'roles')\n }\n\n // /admin/runs\n public runs () {\n return new APIAdminListRuns(this);\n }\n\n // /runs/{id}\n public run (id: number) {\n return new APIAdminResourceRunStandalone(this, id);\n }\n\n // /admin/samples\n public samples () {\n return new APIList(this).push('admin', 'samples')\n }\n\n // /admin/samples/{id}\n public sample (id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'samples', id);\n }\n\n // /admin/services\n public services () {\n return new APIAdminListServices(this)\n }\n\n // /admin/services/{id}\n public service (id: number) {\n return new APIAdminResourceService(this, id)\n }\n\n // /admin/settings\n public settings () {\n return new APIResource(this).push('admin', 'settings')\n }\n\n // /admin/statistics\n public statistics () {\n return new APIAdminListStatistics(this)\n }\n\n // /users\n public users () {\n return new APIList(this).push('users');\n }\n\n // /admin/users\n public createUser () {\n return new APIList(this).push('admin', 'users').post();\n }\n\n // /users/{id}\n public user (id: number) {\n return new APIAdminResourceUser(this, id);\n }\n\n}\n\nexport default APIAdminResource\n","import APIResource from './APIResource'\n\n/**\n * APIResourceAccount\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceAccount extends APIResource {\n\n /**\n * /accounts/{id}\n *\n * Constructor\n */\n constructor (parent: object, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('accounts', id);\n }\n\n // /accounts/{id}/concurrency-status\n public concurrencyStatus () {\n return new APIResource(this).push('concurrency-status');\n }\n\n // /accounts/{id}/preferences\n public preferences () {\n return new APIResource(this).push('preferences');\n }\n\n}\n\nexport default APIResourceAccount\n","import APIResource from './APIResource'\nimport APIList from './APIList'\n\n\n/**\n * APIResourceBroker\n *\n * @class\n * @extends APIResource\n */\nclass APIResourceBroker extends APIResource {\n\n /**\n * Endpoint: /broker\n */\n constructor (parent: object) {\n\n super(parent);\n this.push('broker');\n }\n\n // /broker/hubs\n public hubs () {\n return new APIList(this).push('hubs');\n }\n\n}\n\nexport default APIResourceBroker\n","import './finka';\nimport ApiConfig from './ApiConfig';\n\nimport axios, { AxiosInstance } from 'axios';\n\n// @ts-ignore\nimport { version } from '../package.json';\n\nimport APIList from './api/APIList';\nimport APIListDevices from './api/APIListDevices';\nimport APIListUsers from './api/APIListUsers';\n\nimport APIResourceUser from './api/APIResourceUser';\nimport APIResourceDevice from './api/APIResourceDevice';\nimport APIResourceDeviceGroup from './api/APIResourceDeviceGroup';\nimport APIResourceUserSession from './api/APIResourceUserSession';\n\nimport APIAdminResource from './api/APIAdminResource';\nimport APIResourceAccount from './api/APIResourceAccount';\nimport APIResource from \"./api/APIResource\";\nimport APIResourceDeviceSession from \"./api/APIResourceDeviceSession\";\nimport APIResourceBroker from \"./api/APIResourceBroker\";\n\n// @ts-ignore\nif (global.isNodeJs) {\n // Set User-Agent\n axios.defaults.headers.common['User-Agent'] = `Bitbar Cloud API Client for JavaScript v${version}`;\n}\n\n// Disable max content length\naxios.defaults.maxContentLength = 1073741824; // 1GB\n\n\n/**\n * API\n * Root for other API resources\n */\nclass API {\n\n // Main config\n private config: ApiConfig;\n\n // axios config\n private axiosConfig: ApiConfig;\n\n // axios instance\n public axios: AxiosInstance;\n\n\n constructor (config: ApiConfig) {\n if (config == null) {\n throw new Error('config cannot be empty');\n }\n\n this.config = config;\n this.axiosConfig = <ApiConfig> {};\n\n if (this.config.cloudUrl == null) {\n throw new TypeError('cloudUrl cannot be empty');\n } else if (typeof this.config.cloudUrl !== 'string') {\n throw new TypeError('cloudUrl must be a string');\n } else if (!/^https?:\\/\\/.{2,}/.test(this.config.cloudUrl)) {\n throw new Error(\"cloudUrl doesn't look like a URL\");\n }\n\n // Validate and correct cloudUrl if needed\n this.axiosConfig.baseURL = this.config.cloudUrl.replace(/\\/+$/, '') + '/api'\n\n // Check v2\n this.config.v2 = !!this.config.v2;\n if (this.config.v2) {\n this.axiosConfig.baseURL += '/v2';\n }\n\n // Check if apiKey is set\n if (this.config.apiKey) {\n if (typeof this.config.apiKey !== 'string') {\n throw new TypeError('apiKey must be a string');\n } else if (!/^[A-Za-z0-9]{32}$/.test(this.config.apiKey)) {\n throw new Error(\"apiKey is in the wrong format\");\n }\n\n this.axiosConfig.auth = {\n username: <string> this.config.apiKey,\n password: ''\n };\n }\n\n // With credentials\n this.axiosConfig.withCredentials = config.withCredentials == null ? false : config.withCredentials;\n\n // Create axios instance\n this.axios = axios.create(this.axiosConfig);\n }\n\n\n // --- Resources starts here --- //\n\n // /user-sessions\n public userSession () {\n return new APIResourceUserSession(this);\n }\n\n // /user/{id}\n public user (id: number | 'me') {\n return new APIResourceUser(this, id);\n }\n\n // /users\n public users () {\n return new APIListUsers(this);\n }\n\n // /account/{id}\n public account (id: number) {\n return new APIResourceAccount(this, id);\n }\n\n // /me\n public me () {\n return this.user('me');\n }\n\n // /admin\n public admin () {\n return new APIAdminResource(this);\n }\n\n // /devices\n public devices () {\n return new APIListDevices(this);\n }\n\n // /devices/{id}\n public device (id: number) {\n return new APIResourceDevice(this, id);\n }\n\n // /device-groups\n public deviceGroups () {\n return new APIList(this).push('device-groups');\n }\n\n // /device-groups/{id}\n public deviceGroup (id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /device-sessions\n public deviceSessions () {\n return new APIList(this).push('device-sessions');\n }\n\n // /device-sessions/{id}\n public deviceSession (id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n // /label-groups\n public labelGroups () {\n return new APIList(this).push('label-groups');\n }\n\n // /device-statistics\n public deviceStatistics () {\n return new APIList(this).push('device-statistics');\n }\n\n // /enums\n public enums () {\n return new APIResource(this).push('enums');\n }\n\n // /licenses\n public licenses () {\n return new APIResource(this).push('licenses');\n }\n\n // /labels\n public labels () {\n return new APIList(this).push('labels');\n }\n\n public broker () {\n return new APIResourceBroker(this);\n }\n}\n\n\nexport default API;\n","import API from './API';\nimport FilterBuilder from './FilterBuilder';\n\n/**\n * Cloud API Client\n */\nconst CloudAPIClient = {\n API,\n FilterBuilder\n}\n\nexport default CloudAPIClient;\n"],"names":["finka","qs","axios"],"mappings":"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"}
1
+ {"version":3,"file":"bitbar-cloud-api-client.js","sources":["../src/Filter.ts","../src/finka.ts","../src/FilterBuilder.ts","../src/api/models/HTTP.ts","../src/api/APIEntity.ts","../src/api/APIList.ts","../src/api/APIResource.ts","../src/api/APIListCleanupConfigurations.ts","../src/api/APIResourceCleanupConfiguration.ts","../src/api/APIAdminListDevices.ts","../src/api/APIAdminListNotificationPlans.ts","../src/api/APIAdminListRuns.ts","../src/api/APIAdminListServices.ts","../src/api/decorators/NonRequestable.ts","../src/api/APIAdminListStatistics.ts","../src/api/APIAdminResourceAccountService.ts","../src/api/APIAdminResourceCluster.ts","../src/api/APIAdminResourceDevice.ts","../src/api/APIAdminResourceDeviceModel.ts","../src/api/class/InputFileset.ts","../src/api/class/Images.filter.ts","../src/api/class/NonMedia.filter.ts","../src/api/class/OutputFileset.ts","../src/api/APIResourceDeviceSessionCommon.ts","../src/api/factory/postAdminDeviceSessionChangeBillable.ts","../src/api/APIAdminResourceDeviceSessionStandalone.ts","../src/api/APIAdminResourceDeviceTime.ts","../src/api/APIAdminResourceFramework.ts","../src/api/APIAdminResourceLicense.ts","../src/api/APIAdminResourceNotificationPlan.ts","../src/api/factory/postDeviceRunIds.ts","../src/api/APIAdminResourceRunStandalone.ts","../src/api/APIAdminResourceService.ts","../src/api/APIAdminResourceUserAccount.ts","../src/api/APIResourceDeviceSessionStandalone.ts","../src/api/APIAdminResourceUser.ts","../src/api/APIResourceAccessGroup.ts","../src/api/APIResourceDeviceGroup.ts","../src/api/APIResourceFile.ts","../src/api/APIResourceDeviceSession.ts","../src/api/APIResourceRunCommon.ts","../src/api/APIResourceRun.ts","../src/api/APIResourceProject.ts","../src/api/APIAdminResource.ts","../src/api/APIListDevices.ts","../src/api/APIListProperties.ts","../src/api/APIListServices.ts","../src/api/APIListUsers.ts","../src/api/APIResourceAccount.ts","../src/api/APIResourceBroker.ts","../src/api/APIResourceDevice.ts","../src/api/APIResourceLabelGroup.ts","../src/api/APIListDeviceTime.ts","../src/api/APIListFiles.ts","../src/api/APIResourceChannel.ts","../src/api/APIListNotifications.ts","../src/api/APIListRuns.ts","../src/api/APIListSmartbearTunnels.ts","../src/api/APIResourceBillingPeriod.ts","../src/api/APIResourceNotification.ts","../src/api/APIResourceAdditionalUser.ts","../src/api/APIUserResourceAccount.ts","../src/api/APIResourceUser.ts","../src/api/APIResourceUserSession.ts","../src/API.ts","../src/CloudAPIClient.ts"],"sourcesContent":["/**\n * Filter\n */\n\nexport class Filter<T = any> {\n name: string;\n value: T;\n operand: string;\n\n constructor(name: string, value: T, operand: string) {\n this.name = name;\n this.value = value;\n this.operand = operand;\n }\n}\n\nexport default Filter;\n","import finka from '@bitbar/finka';\n\nfinka();\n\nexport default {};\n","import {Filter} from './Filter';\nimport './finka';\n\n/**\n * FilterBuilder\n *\n * Builds filter string according to Bitbar Cloud backend convention\n */\nexport class FilterBuilder {\n\n private readonly filters: Array<Filter> = [];\n\n gt(name: string, value: number): this {\n return this.add(name, value, 'gt');\n }\n\n\n lt(name: string, value: number): this {\n return this.add(name, value, 'lt');\n }\n\n after(name: string, value: Date | number): this {\n return this.add(name, value, 'after', true);\n }\n\n afterorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'afterorequal', true);\n }\n\n before(name: string, value: Date | number): this {\n return this.add(name, value, 'before', true);\n }\n\n beforeorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'beforeorequal', true);\n }\n\n on(name: string, value: any): this {\n return this.add(name, value, 'on');\n }\n\n eq(name: string, value: any): this {\n return this.add(name, value, 'eq');\n }\n\n contains(name: string, value: string): this {\n return this.add(name, value, 'contains');\n }\n\n like(name: string, value: string): this {\n return this.add(name, value, 'like');\n }\n\n notlike(name: string, value: string): this {\n return this.add(name, value, 'notlike');\n }\n\n isnull(name: string): this {\n return this.add(name, undefined, 'isnull');\n }\n\n in(name: string, value: Array<any>): this {\n return this.add(name, value, 'in', true);\n }\n\n notin(name: string, value: Array<any>): this {\n return this.add(name, value, 'notin', true);\n }\n\n raw(filter: Filter | string | Filter[] | string[]): void {\n const filters = Array.wrap(filter);\n for (const filter of filters) {\n if (this.isFilterPart(filter)) {\n this.filters.push(filter);\n } else {\n throw new SyntaxError(`Filter ${filter} has invalid syntax`);\n }\n }\n }\n\n\n /**\n * Check if given string is proper filter part\n */\n isFilterPart(str: string): boolean {\n return /^[a-zA-Z0-9.]{2,12}_(?:isnull$|(?:gt|lt|(?:after|before)(?:orequal)?|on|eq|contains|like|(?:not)?in)_)/.test(<string>str);\n }\n\n toString(): string {\n const parts: Array<string> = [];\n\n let part: string,\n val: string;\n\n for (const filter of this.filters) {\n if (typeof filter === 'string') {\n part = filter;\n } else {\n val = '';\n if (filter.value.length > 1 || typeof filter.value[0] !== 'undefined') {\n val = `_${filter.value.join('|')}`;\n }\n part = `${filter.name}_${filter.operand}${val}`;\n }\n parts.push(part);\n }\n\n return parts.join(';');\n }\n\n /**\n * Add filter to filters list\n * @param name {string} Name\n * @param value {*} Value\n * @param operand {string} Operand\n * @param [checkNull=false] {boolean} Check null?\n * @returns {FilterBuilder}\n */\n private add<T = any>(name: string, value: T, operand: string, checkNull = false): this {\n\n let _value = Array.wrap(value);\n\n if (_value.length === 0) {\n return this;\n }\n\n // auto-convert\n for (let i = 0; i < _value.length; i++) {\n const v = _value[i];\n if (typeof v === 'object' && v instanceof Date) {\n _value[i] = v.getTime();\n }\n }\n\n let isNull = false;\n if (checkNull) {\n // check null existence\n for (const v of _value) {\n if (v !== null) {\n continue;\n }\n isNull = true;\n }\n\n if (isNull) {\n _value = _value.filter((item: any) => item !== null);\n operand += 'ornull';\n }\n }\n\n if (operand.endsWith('ornull') && _value.length === 0) {\n operand = 'isnull';\n }\n\n // add filter\n this.filters.push(new Filter<Array<T>>(name, _value, operand));\n\n return this;\n }\n}\n\n\nexport default FilterBuilder;\n","import {Method} from 'axios';\n\n\n/**\n * Allowed methods\n *\n * @constant\n * @type {Array}\n * @default\n */\nexport const ALLOWED_HTTP_METHODS: Array<Method> = ['GET', 'POST', 'DELETE'];\n\nexport type QueryParam = string | number | boolean;\nexport type QueryParams = Record<string, QueryParam | Array<QueryParam>>;\n\nexport enum APIOrder {\n asc = 'a',\n desc = 'd'\n}\n\nexport interface CollectionQueryParams extends QueryParams {\n filter: string;\n limit: number;\n offset: number;\n sort: string;\n search: string;\n}\n\nexport type CollectionBasicQueryParams = Omit<CollectionQueryParams, 'search'>\n\nexport type NoQueryParams = {\n [key in any]: never;\n}\n\nexport type CollectionResponse<T> = {\n data: Array<T>;\n empty: boolean;\n id: number;\n limit: number;\n next: string;\n offset: number;\n previous: string;\n search: string;\n sort: string;\n total: number;\n}\n\nexport type SimpleCollectionResponse<T> = Pick<CollectionResponse<T>, 'data' | 'id'>;\nexport type NoData = void;\n","import {AxiosRequestConfig, AxiosResponse, Method} from 'axios';\nimport {stringify} from 'qs';\nimport {API} from '../API';\nimport {ALLOWED_HTTP_METHODS, QueryParams} from './models/HTTP';\nimport {AbortController} from 'node-abort-controller';\n\n\n/**\n * @typeParam RESPONSE HTTP Response return type.\n * @typeParam QUERY_PARAMS Allowed Query Params\n * @typeParam DATA Allowed Data Object\n */\nexport class APIEntity<RESPONSE = any, QUERY_PARAMS extends QueryParams | void = QueryParams, DATA = any> {\n\n root: API;\n\n protected stack: Array<string | number> = [];\n protected requestConfig: AxiosRequestConfig = {};\n protected ALLOWED_HTTP_METHODS: Array<Method> = ALLOWED_HTTP_METHODS;\n protected abortController: AbortController;\n\n /**\n * Constructor\n * @param {APIEntity|object} [parent] - Specifies a parent from which should be inherited properties\n */\n constructor(parent: APIEntity<RESPONSE> | API) {\n if (parent instanceof APIEntity) {\n this.root = parent.root;\n\n if (Array.isArray(parent.stack)) { //???\n this.push(...parent.stack);\n }\n\n if (parent.requestConfig != null) {\n this.setRequestConfig(parent.requestConfig);\n }\n } else {\n this.root = parent;\n }\n this.abortController = new AbortController();\n }\n\n abortRequest() {\n this.abortController.abort();\n }\n\n push(...items: Array<string | number>): this {\n this.stack = this.stack.concat(items);\n return this;\n }\n\n shift(): this {\n this.stack.shift();\n return this;\n }\n\n restack(...items: Array<string | number>): this {\n this.stack = items;\n return this;\n }\n\n /**\n * Get first element of the stack\n */\n get first(): string | number {\n return this.stack[0];\n }\n\n /**\n * Get last element of the stack\n */\n get last(): string | number {\n return this.stack[this.stack.length - 1];\n }\n\n /**\n * Set last element of the stack\n */\n set last(val) {\n this.stack[this.stack.length - 1] = val;\n }\n\n toUrl(absolute = false): string {\n let url = `/${this.stack.join('/')}`;\n\n if (absolute) {\n url = this.root.baseUrl + url;\n }\n\n return url;\n }\n\n setRequestConfig(requestConfig: AxiosRequestConfig): this {\n Object.deepAssign(this.requestConfig, requestConfig);\n return this;\n }\n\n removeRequestConfig(key: keyof AxiosRequestConfig): this {\n delete this.requestConfig[key];\n return this;\n }\n\n headers(headers: Record<string, string>): this {\n const _headers: Record<string, string> = {};\n\n // Unify/Standarize headers keys\n for (const key in headers) {\n const newKey = key.replace(/(?:^|-)([a-z])/g, (letter) => letter.toUpperCase());\n _headers[newKey] = headers[key];\n }\n\n return this.setRequestConfig({\n headers: _headers\n });\n }\n\n /**\n * Set HTTP method\n */\n method(name: Method): this {\n const NAME: Uppercase<Method> = <Uppercase<Method>>name.toLocaleUpperCase();\n const isAllowed: boolean = this.ALLOWED_HTTP_METHODS.indexOf(NAME) > -1;\n\n if (!isAllowed) {\n throw new Error(`Method '${NAME}' is not allowed! You can use: ${this.ALLOWED_HTTP_METHODS.join(', ')}`);\n }\n\n return this.setRequestConfig({\n method: NAME\n });\n }\n\n /**\n * Set GET as HTTP method\n */\n get(): this {\n return this.method('GET');\n }\n\n /**\n * Set POST as HTTP method\n */\n post(): this {\n return this.method('POST');\n }\n\n /**\n * Set params\n */\n params<T extends keyof QUERY_PARAMS = keyof QUERY_PARAMS>(params: Pick<QUERY_PARAMS, T>): this {\n this.setRequestConfig({params});\n return this;\n }\n\n getParams(): Partial<QUERY_PARAMS> {\n return this.requestConfig.params == null ? {} : this.requestConfig.params;\n }\n\n removeParam(key: keyof QUERY_PARAMS): this {\n delete this.requestConfig.params[key];\n return this;\n }\n\n /**\n * Set data\n */\n data(data: DATA): this {\n this.setRequestConfig({data});\n return this;\n }\n\n /**\n * Set JSON data\n */\n jsonData(data: DATA): this {\n this.headers({\n 'Content-Type': 'application/json'\n }).data(data);\n return this;\n }\n\n /**\n * Set form data\n */\n formData(data: DATA): this {\n this.headers({\n 'Content-Type': 'multipart/form-data'\n }).data(data);\n return this;\n }\n\n /**\n * Send request\n */\n send<T = RESPONSE>(): Promise<AxiosResponse<T>> {\n const requestConfig = <AxiosRequestConfig>Object.deepAssign({}, this.requestConfig, {\n url: `/${this.stack.join('/')}`,\n signal: this.abortController.signal\n });\n\n // Set default headers\n if (requestConfig.headers == null) {\n requestConfig.headers = {};\n }\n\n // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (<string>requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request<T>(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList<RESPONSE = any, QUERY_PARAMS extends CollectionBasicQueryParams | CollectionQueryParams | NoQueryParams = CollectionQueryParams, DATA = any>\n extends APIEntity<CollectionResponse<RESPONSE> | APIEntity<SimpleCollectionResponse<RESPONSE>>, QUERY_PARAMS, DATA> {\n\n /**\n * Shortcut for sending data POST\n */\n create(data: DATA): Promise<AxiosResponse<RESPONSE>> {\n return this.post().data(data).send<RESPONSE>();\n }\n\n /**\n * Sets sorting\n *\n * @public\n * @param {string} name - Name of the column according to which the data will be sorted\n * @param {string} [order=a] - Sorting order. Possibilities: 'a', 'd'\n */\n sort(name: string, order: APIOrder = APIOrder.asc): this {\n return this.params<'sort'>({\n sort: `${name}_${order}`\n });\n }\n\n /**\n * Sets limit\n *\n * @public\n * @param {number} [limit=DEFAULT_LIMIT] - Limit to be set\n * @returns this\n */\n limit(limit = DEFAULT_LIMIT): this {\n if (!Number.isNatural(limit)) {\n throw new Error(`Limit '${limit}' is invalid!`);\n }\n\n return this.params<'limit'>({\n limit\n });\n }\n\n /**\n * Gets limit\n *\n * @public\n * @returns number\n */\n getLimit(): number {\n const params = this.getParams();\n return params.limit == null ? DEFAULT_LIMIT : <number>params.limit;\n }\n\n /**\n * Disables limit\n *\n * @public\n * @returns this\n */\n noLimit(): this {\n return this.limit(0);\n }\n\n /**\n * Sets offset\n *\n * @public\n * @param {number} [offset=DEFAULT_OFFSET] - Offset to be set\n * @returns this\n */\n offset(offset: number = DEFAULT_OFFSET): this {\n if (!Number.isNatural(offset)) {\n throw new Error(`Offset '${offset}' is invalid!`);\n }\n\n return this.params<'offset'>({\n offset\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE records between range\n *\n * @public\n * @param {number} from - From index\n * @param {number} to - To index\n * @returns this\n */\n between(from: number, to: number): this {\n if (!Number.isNatural(from)) {\n throw new Error(`From '${from}' is invalid!`);\n }\n\n if (!Number.isNatural(to)) {\n throw new Error(`To '${to}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: from,\n limit: 1 + (to - from)\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE one record on given index\n *\n * @public\n * @param {number} idx - Index\n * @returns this\n */\n only(idx: number): this {\n if (!Number.isNatural(idx)) {\n throw new Error(`Index '${idx}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: idx,\n limit: 1\n });\n }\n\n /**\n * Gets current limit and sets offset so that will request from BE one page of records\n *\n * @public\n * @param {number} [page=1] - Page number (counted from 1)\n * @returns this\n */\n page(page = 1): this {\n if (!Number.isNatural(page) || page == 0) {\n throw new Error(`Page '${page}' is invalid!`);\n }\n\n const limit = this.getLimit();\n const offset = (page - 1) * limit;\n\n return this.params<'offset' | 'limit'>({\n offset,\n limit\n });\n }\n\n /**\n * Sets search\n *\n * query param is working like SQL LIKE. BE sets wraps around query with %, and replaces every white character\n * with %. So e.g. if query='my device', then it's searching for '%my%device%' in DB.\n *\n * @public\n * @param {string} query - Query to search for\n * @returns this\n */\n search(query: string): this {\n if (typeof query !== 'string') {\n throw new Error('Search query must be a string!');\n }\n\n return this.params<'search'>({\n search: query\n });\n }\n\n /**\n * Sets filter\n *\n * @public\n * @param {FilterBuilder|string} filter - Filter\n * @returns this\n */\n filter(filter: FilterBuilder | string): this {\n const isFilterBuilder = filter instanceof FilterBuilder;\n\n if (typeof filter !== 'string' && !isFilterBuilder) {\n throw new Error('Filter must be either string or instance of FilterBuilder');\n }\n\n return this.params<'filter'>({\n filter: filter.toString()\n });\n }\n\n /**\n * Alias for 'noLimit'\n *\n * @public\n * @see noLimit\n * @returns this\n */\n all: typeof APIList.prototype.noLimit = this.noLimit;\n\n /**\n * Alias for 'between'\n *\n * @public\n * @param {number} from - From idx\n * @param {number} to - To idx\n * @returns this\n */\n cut: typeof APIList.prototype.between = this.between;\n}\n\nexport default APIList;\n","import {APIEntity} from './APIEntity'\nimport {QueryParams} from './models/HTTP';\n\n\n/**\n * APIResource\n *\n * @class\n * @extends APIEntity\n */\nexport class APIResource<RESPONSE = any, QUERY_PARAMS extends QueryParams | void = QueryParams, DATA = QUERY_PARAMS>\n extends APIEntity<RESPONSE, QUERY_PARAMS, DATA> {\n\n /**\n * Set DELETE as HTTP method\n *\n * @public\n * @returns this\n */\n delete(): this {\n return this.method('DELETE');\n }\n}\n\n\nexport default APIResource;\n","import {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {CleanupConfigurationData, SpecificCleanupConfigurationQueryParams} from './models/CleanupConfiguration';\nimport {DeviceCleanupConfiguration} from './models/Device';\nimport {CollectionQueryParams, NoData} from './models/HTTP';\n\n\nexport class APIListCleanupConfigurations extends APIList<DeviceCleanupConfiguration, CollectionQueryParams, CleanupConfigurationData> {\n\n /**\n * /cleanup-configurations\n */\n constructor(parent: APIAdminListDevices) {\n super(parent);\n this.push('cleanup-configurations');\n }\n\n // /cleanup-configurations/specific\n specific() {\n return new APIResource<DeviceCleanupConfiguration, Partial<SpecificCleanupConfigurationQueryParams>, NoData>(this)\n .push('specific');\n }\n\n}\n\nexport default APIListCleanupConfigurations\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIResource} from './APIResource'\nimport {CleanupConfigurationSpecificData, DeviceCleanupConfiguration} from './models/Device';\nimport {NoData} from './models/HTTP';\n\n\nexport class APIResourceCleanupConfiguration extends APIResource<DeviceCleanupConfiguration> {\n //shuldn't it be APIAdminResourceCleanupConfiguration\n\n /**\n * admin/devices/cleanup-configurations/{id}\n */\n constructor(parent: APIEntity<any> | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('cleanup-configurations', id);\n }\n\n // admin/devices/cleanup-configurations/specific\n devices() {\n return new APIResource<DeviceCleanupConfiguration, CleanupConfigurationSpecificData, NoData>(this).push('devices');\n }\n\n}\n\nexport default APIResourceCleanupConfiguration\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIListCleanupConfigurations} from './APIListCleanupConfigurations';\nimport {APIResourceCleanupConfiguration} from './APIResourceCleanupConfiguration';\nimport {AdminDevice, AdminDeviceData, AdminDevicesQueryParams} from './models/AdminDevice';\n\n\nexport class APIAdminListDevices extends APIList<AdminDevice, AdminDevicesQueryParams, AdminDeviceData> {\n\n /**\n * /admin/devices\n */\n constructor(parent: APIAdminResource | API) {\n super(parent);\n this.push('admin', 'devices');\n }\n\n // /admin/devices/cleanup-configurations\n cleanupConfigurations() {\n return new APIListCleanupConfigurations(this);\n }\n\n // /admin/devices/cleanup-configurations/{id}\n cleanupConfiguration(id: number) {\n return new APIResourceCleanupConfiguration(this, id);\n }\n\n}\n\nexport default APIAdminListDevices;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {Enum} from './models/Enum';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {NotificationPlan, NotificationPlanData} from './models/NotificationPlan';\n\n\nexport class APIAdminListNotificationPlans extends APIList<NotificationPlan, CollectionQueryParams, NotificationPlanData> {\n\n /**\n * /admin/notification-plans\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'notification-plans');\n }\n\n // /notification-plans/channels\n channels() {\n return new APIList<Enum, NoQueryParams, NoData>(this).push('channels');\n }\n\n // /notification-plans/scopes\n scopes() {\n return new APIList<Enum, NoQueryParams, NoData>(this).push('scopes');\n }\n\n}\n\n\nexport default APIAdminListNotificationPlans\n","import {Method} from 'axios';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource';\nimport {AdminTestRun, RunsConfigParams} from './models/AdminTestRun';\nimport {TestRunConfig} from './models/TestRun';\n\nexport class APIAdminListRuns extends APIList<AdminTestRun> {\n\n protected ALLOWED_HTTP_METHODS: Array<Method> = ['GET'];\n\n /**\n * /admin/runs\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'runs');\n }\n\n // /runs/config\n config() {\n const apiResource = new APIResource<TestRunConfig, RunsConfigParams, {configuration: TestRunConfig}>(this);\n apiResource.restack('runs', 'config');\n return apiResource;\n }\n\n}\n\n\nexport default APIAdminListRuns\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {AdminServicesParams, Service} from './models/Service';\n\n\nexport class APIAdminListServices extends APIList<Service, AdminServicesParams, Service> {\n\n /**\n * /admin/services\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'services');\n }\n\n active() {\n const apiList = new APIList<Service, AdminServicesParams, Service>(this);\n apiList.params<'notArchived'>({\n notArchived: true\n });\n return apiList;\n }\n\n activated() {\n const apiList = this.active();\n apiList.params<'filter' | 'limit' | 'sort'>({\n filter: 'activated_eq_true',\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n inUse() {\n const apiList = new APIList<Service, AdminServicesParams, Service>(this);\n apiList.params<'inUse' | 'limit' | 'sort'>({\n inUse: true,\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n byPrice() {\n const apiList = new APIList<Service, AdminServicesParams, Service>(this);\n apiList.params<'sort'>({\n sort: 'centPrice_a'\n })\n return apiList;\n }\n\n}\n\nexport default APIAdminListServices;\n","import {AxiosResponse} from 'axios';\n\nexport function NonRequestable<T extends {new(...args: any[]): object}>(constructor: T) {\n return class extends constructor {\n send(): Promise<AxiosResponse> {\n return Promise.reject();\n }\n };\n}\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AdminDeviceSessionStatistics, AdminStatisticsParams} from './models/AdminDeviceSessionStatistics';\nimport {AdminFrameworkStatistics} from './models/AdminFrameworkStatistics';\nimport {NoData} from './models/HTTP';\n\n\n@NonRequestable\nexport class APIAdminListStatistics extends APIList {\n\n /**\n * /admin/statistics\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'statistics');\n }\n\n // /admin/statistics/device-sessions\n deviceSessions() {\n return new APIList<AdminDeviceSessionStatistics, AdminStatisticsParams, NoData>(this).push('device-sessions');\n }\n\n // /admin/statistics/frameworks\n frameworks() {\n return new APIList<AdminFrameworkStatistics, AdminStatisticsParams, NoData>(this).push('frameworks');\n }\n\n\n}\n\n\nexport default APIAdminListStatistics\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {AccountService} from './models/AccountService';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIAdminResourceAccountService extends APIResource<AccountService, NoQueryParams, NoData> {\n\n /**\n * /admin/account-services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'account-services', id);\n }\n\n // /account-services/{id}/activate\n activate() {\n return new APIResource<AccountService, NoQueryParams, NoData>(this).push('activate').post();\n }\n\n // /account-services/{id}/deactivate\n deactivate() {\n return new APIResource<AccountService, NoQueryParams, NoData>(this).push('deactivate').post();\n }\n\n}\n\nexport default APIAdminResourceAccountService\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice} from './models/AdminDevice';\nimport {Cluster, ClusterData, ClusterParams} from './models/Cluster';\n\n\nexport class APIAdminResourceCluster extends APIResource<Cluster, ClusterParams, ClusterData> {\n\n /**\n * /clusters/{id}\n */\n constructor(parent: API | APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('clusters', id);\n }\n\n // /clusters/{id}/devices\n devices() {\n return new APIList<AdminDevice>(this).push('devices');\n }\n\n}\n\nexport default APIAdminResourceCluster\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice, AdminDeviceData} from './models/AdminDevice';\nimport {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource<AdminDevice, NoQueryParams, AdminDeviceData> {\n\n /**\n * /admin/devices/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'devices', id);\n }\n\n // /admin/devices/{id}/blink\n blink() {\n return new APIResource<AdminDevice, NoQueryParams, NoData>(this).push('blink').post();\n }\n\n // /admin/devices/{id}/cleanup-configuration\n cleanupConfiguration() {\n return new APIResource<DeviceCleanupConfiguration, QueryParams, DeviceCleanupConfigurationData>(this).push('cleanup-configuration');\n }\n\n // /admin/devices/{id}/labels\n labels() {\n return new APIList<DeviceProperty, NoQueryParams, DeviceLabelData>(this).push('labels');\n }\n\n // /admin/devices/{id}/labels/{id}\n label(id: number) {\n return new APIResource<DeviceProperty, NoQueryParams, NoData>(this).push('labels', id);\n }\n\n // /admin/devices/{id}/queue\n queue() {\n return new APIList<AdminDeviceSession>(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource<DeviceModel, NoQueryParams, DeviceModelData> {\n\n /**\n * /admin/device-models/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'device-models', id);\n }\n\n // /admin/device-models/{id}/browsers\n browsers() {\n return new APIList<Browser, NoQueryParams, DeviceBrowserData>(this).push('browsers');\n }\n\n}\n\nexport default APIAdminResourceDeviceModel;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {NoData} from '../models/HTTP';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\n\n\n@NonRequestable\nexport class InputFileset extends APIResource<NoData> {\n\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('input-file-set');\n }\n\n /**\n * @endpoint /input-file-set/files\n */\n files() {\n return new APIList<UserFile, FilesQueryParams, NoData>(this).push('files');\n }\n\n /**\n * @endpoint /input-file-set/files.zip\n */\n filesZip() {\n return new APIResource<Blob, FilesQueryParams>(this).push('files.zip');\n }\n}\n\nexport default InputFileset\n","// Create image files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const IMAGE_FILES_FILTER = new FilterBuilder();\nIMAGE_FILES_FILTER.eq('state', 'READY');\nIMAGE_FILES_FILTER.in('mimetype', [\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif'\n]);\nIMAGE_FILES_FILTER.notlike('name', 'action-%%');\n","// Create non-media files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const NON_MEDIA_FILES_FILTER = new FilterBuilder();\nNON_MEDIA_FILES_FILTER.eq('state', 'READY');\nNON_MEDIA_FILES_FILTER.notin('mimetype', [\n // no images\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif',\n\n // no videos\n 'video/mp4', 'video/avi', 'video/webm', 'video/ogg', 'video/mpeg'\n]);\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {Screenshot} from '../models/Screenshot';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\nimport {IMAGE_FILES_FILTER} from './Images.filter';\nimport {NON_MEDIA_FILES_FILTER} from './NonMedia.filter';\n\n\n@NonRequestable\nexport class OutputFileset extends APIResource<UserFile, FilesQueryParams> {\n\n /**\n * /output-file-set\n *\n * Constructor\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('output-file-set');\n }\n\n // /output-file-set/files\n files() {\n return new APIList<UserFile, FilesQueryParams>(this).push('files');\n }\n\n // /output-file-set/files/{id}\n file(id: number) {\n return new APIResource<UserFile, FilesQueryParams>(this).push('files', id);\n }\n\n // /output-file-set/files.zip\n filesZip() {\n return new APIResource<Blob, FilesQueryParams>(this).push('files.zip');\n }\n\n // /output-file-set/screenshots\n screenshots() {\n return new APIList<Screenshot, FilesQueryParams>(this).push('screenshots');\n }\n\n // /output-file-set/screenshots/{id}\n screenshot(id: number) {\n return new APIResource<Screenshot, FilesQueryParams>(this).push('screenshots', id);\n }\n\n // /output-file-set/screenshots/{id}/file/{id}\n screenshotFile(id: number) {\n return this.screenshot(id).push('file');\n }\n\n // Filter files out by ready videos\n videos() {\n return this.files().params({\n filter: 's_state_eq_READY',\n tag: ['video']\n });\n }\n\n // Filter files out by non-media\n nonMediaFiles() {\n return this.files().filter(NON_MEDIA_FILES_FILTER);\n }\n\n performance() {\n return this.files().params({\n tag: ['performance']\n })\n }\n\n images() {\n return this.files().filter(IMAGE_FILES_FILTER);\n }\n\n}\n\nexport default OutputFileset\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {InputFileset} from './class/InputFileset'\nimport {OutputFileset} from './class/OutputFileset'\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\nimport {DeviceSession, DeviceSessionCommand, DeviceSessionStep, SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Screenshot} from './models/Screenshot';\nimport {TestCaseRun} from './models/TestCaseRun';\n\nexport class APIResourceDeviceSessionCommon extends APIResource<DeviceSession> implements DeviceSessionCommon {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIEntity<any> | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/commands\n commands() {\n return new APIList<DeviceSessionCommand>(this).push('commands');\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/screenshots\n screenshots() {\n return new APIList<Screenshot, SessionQueryParams | SessionRunStepQueryParams | SessionStepQueryParams, NoData>(this).push('screenshots');\n }\n\n // /device-sessions/{id}/screenshots/{id}\n screenshot(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /device-sessions/{id}/steps\n steps() {\n return new APIList<DeviceSessionStep, CollectionBasicQueryParams | SessionRunStepQueryParams | SessionStepQueryParams, NoData>(this).push('steps');\n }\n\n // /device-sessions/{id}/steps/{id}\n step(id: number | 'current') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<DeviceSessionStep, NoQueryParams, NoData>(this).push('steps', id);\n }\n\n // /device-sessions/{id}/steps/current\n currentStep() {\n return this.step('current');\n }\n\n // /device-sessions/{id}/test-case-runs\n testCaseRuns() {\n return new APIList<TestCaseRun, SessionQueryParams | NoQueryParams, NoData>(this).push('test-case-runs');\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n logs() {\n return new APIResource(this).push('logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n}\n\nexport default APIResourceDeviceSessionCommon\n","import {APIResource} from '../APIResource';\nimport APIResourceDeviceSessionCommon from '../APIResourceDeviceSessionCommon';\nimport {DeviceSession} from '../models/DeviceSession';\n\nexport function postAdminDeviceSessionChangeBillable(parent: APIResourceDeviceSessionCommon, billable: boolean) {\n const apiResource = new APIResource<DeviceSession>(parent);\n const deviceSessionId = apiResource.last;\n\n return apiResource.restack('admin', 'device-sessions', deviceSessionId, 'changebillable').params({\n billable\n }).post();\n}\n\nexport default postAdminDeviceSessionChangeBillable;\n","import {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {postAdminDeviceSessionChangeBillable} from './factory/postAdminDeviceSessionChangeBillable';\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\n\n\n/**\n * APIAdminResourceDevice\n *\n *\n * It will require more work to decouple from regular session\n */\nexport class APIAdminResourceDeviceSessionStandalone extends APIResourceDeviceSessionCommon implements DeviceSessionCommon {\n\n // /admin/device-sessions/{id}/changebillable\n changeBillable(billable: boolean) {\n return postAdminDeviceSessionChangeBillable(this, billable);\n }\n}\n\nexport default APIAdminResourceDeviceSessionStandalone;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {DeviceTimeCountSessionReportEntry} from './models/DeviceTimeCountSessionReportEntry';\nimport {DeviceTimeStepTimeReportEntry} from './models/DeviceTimeStepTimeReportEntry';\nimport {NoData} from './models/HTTP';\nimport {DeviceTimeParams, UserDeviceTime} from './models/UserDeviceTime';\n\nexport class APIAdminResourceDeviceTime extends APIList<UserDeviceTime, DeviceTimeParams, NoData> {\n\n /**\n * /admin/device-time\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'device-time');\n }\n\n // /device-time/count-session-report\n countSessionReport() {\n return new APIList<DeviceTimeCountSessionReportEntry>(this).push('count-session-report');\n }\n\n // /device-time/step-time-report\n stepTimeReport() {\n return new APIList<DeviceTimeStepTimeReportEntry>(this).push('step-time-report');\n }\n\n}\n\nexport default APIAdminResourceDeviceTime\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Framework, FrameworkConfigData, FrameworkEditData} from './models/Framework';\nimport {NoQueryParams} from './models/HTTP';\nimport {ProjectJobConfig} from './models/ProjectJobConfig';\nimport {Role} from './models/Role';\n\nexport class APIAdminResourceFramework extends APIResource<Framework, NoQueryParams, FrameworkEditData> {\n\n /**\n * /admin/frameworks/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'frameworks', id);\n }\n\n // /admin/frameworks/{id}/config\n config() {\n return new APIResource<ProjectJobConfig, NoQueryParams, FrameworkConfigData>(this).push('config');\n }\n\n // /admin/frameworks/{id}/required-roles\n requiredRoles() {\n return new APIList<Role>(this).push('required-roles');\n }\n\n}\n\nexport default APIAdminResourceFramework\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\n\nexport class APIAdminResourceLicense extends APIResource<License, NoQueryParams, NoData> {\n\n /**\n * /licenses/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'licenses', id);\n }\n\n // /licenses/{id}/activate\n activate() {\n return new APIResource<License, NoQueryParams, NoData>(this).push('activate');\n }\n\n // /licenses/{id}/deactivate\n deactivate() {\n return new APIResource<License, NoQueryParams, NoData>(this).push('deactivate');\n }\n\n // /licenses/{id}/resend\n resend() {\n return new APIResource<License, NoQueryParams, NoData>(this).push('resend');\n }\n\n // /licenses/{id}/download\n download() {\n return new APIResource<Blob, NoQueryParams, NoData>(this).push('download');\n }\n\n}\n\nexport default APIAdminResourceLicense\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Notification} from './models/Notification';\nimport {NotificationPlan, NotificationPlanEditData} from './models/NotificationPlan';\n\nexport class APIAdminResourceNotificationPlan extends APIResource<NotificationPlan, NoQueryParams, NotificationPlanEditData> {\n\n /**\n * /admin/notification-plans/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'notification-plans', id);\n }\n\n // /admin/notification-plans/{id}/check\n check() {\n return new APIList<Notification>(this).push('check');\n }\n\n // /admin/notification-plans/{id}/test\n test() {\n return new APIResource<NotificationPlan, NoQueryParams, NoData>(this).push('test');\n }\n\n // /admin/notification-plans/{id}/execute\n execute() {\n return new APIResource<NotificationPlan, NoQueryParams, NoData>(this).push('execute');\n }\n\n}\n\nexport default APIAdminResourceNotificationPlan\n","import {APIEntity} from '../APIEntity';\nimport {APIResource} from '../APIResource';\nimport {BuildLogsData, BuildLogsParams} from '../models/UserFile';\n\nexport function postDeviceRunIds<T>(parent: APIEntity, name: string, ids?: Array<number>) {\n const a = new APIResource<T, BuildLogsParams, BuildLogsData>(parent).push(name);\n\n if (ids != null) {\n a.params<'deviceRunIds'>({\n deviceRunIds: ids\n });\n }\n\n return a.post();\n}\n\nexport default postDeviceRunIds;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun, RunChangeBillableParams, RunChangePriorityParams} from './models/AdminTestRun';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceRunStandalone extends APIResource<AdminTestRun, NoQueryParams, NoData> {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource<AdminTestRun, NoQueryParams, NoData>(this).push('abort').post();\n }\n\n // /runs/{id}/changebillable\n changeBillable(billable: boolean) {\n return new APIResource<AdminTestRun, RunChangeBillableParams>(this).push('changebillable').post().params({\n billable\n });\n }\n\n // /runs/{id}/changepriority\n changePriority(priority: boolean) {\n return new APIResource<AdminTestRun, RunChangePriorityParams>(this).push('changepriority').post().params({\n priority\n });\n }\n\n // /admin/runs/{id}/retry\n retry(ids?: Array<number>) {\n return postDeviceRunIds<AdminTestRun>(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n}\n\nexport default APIAdminResourceRunStandalone;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceActivateData} from './models/Service';\n\n\nexport class APIAdminResourceService extends APIResource<Service, NoQueryParams, NoData> {\n\n /**\n * /services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'services', id);\n }\n\n // /services/{id}/activate\n activate() {\n return new APIResource<Service, ServiceActivateData>(this).push('activate').post();\n }\n\n}\n\nexport default APIAdminResourceService\n","import {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccountService, AccountServiceData} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Role, RoleData} from './models/Role';\nimport {User, UserUpdateAccount} from './models/User';\n\n@NonRequestable\nexport class APIAdminResourceUserAccount extends APIResource {\n\n /**\n * /account\n */\n constructor(parent: APIAdminResourceUser) {\n super(parent);\n this.push('account');\n }\n\n // /account/roles\n roles() {\n return new APIList<Role, NoQueryParams, RoleData>(this).push('roles');\n }\n\n // /account/roles/{id}\n role(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<Role, NoQueryParams, NoData>(this).push('roles', id);\n }\n\n // /account-services\n services() {\n const a = new APIList<AccountService, CollectionQueryParams, AccountServiceData>(this);\n a.last += '-services';\n return a;\n }\n\n // /update-account\n update() {\n const a = new APIResource<User, UserUpdateAccount>(this);\n a.last = 'update-account';\n return a.post();\n }\n\n}\n\nexport default APIAdminResourceUserAccount\n","import {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {InputFileset} from './class/InputFileset';\nimport {OutputFileset} from './class/OutputFileset';\nimport {DeviceSessionStandalone} from './interface/DeviceSessionStandalone';\nimport {Connection, ConnectionData} from './models/Connection';\nimport {DeviceSession} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIResourceDeviceSessionStandalone extends APIResource<DeviceSession> implements DeviceSessionStandalone {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIResourceUser | APIAdminResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList<Connection, CollectionBasicQueryParams, ConnectionData>(this).push('connections');\n }\n\n // /device-sessions/{id}/connections/{id}\n connection(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<Connection, NoQueryParams, NoData>(this).push('connections', id);\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource<DeviceSession, NoQueryParams, NoData>(this).push('release').post();\n }\n\n}\n\nexport default APIResourceDeviceSessionStandalone\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIAdminResourceUserAccount} from './APIAdminResourceUserAccount';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\nimport {User} from './models/User';\n\n\n@NonRequestable\nexport class APIAdminResourceUser extends APIResource<User> {\n\n /**\n * /admin/users/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'users', id);\n }\n\n // /users/{id}/disable\n disable() {\n return new APIResource<User, NoQueryParams, NoData>(this).push('disable');\n }\n\n // /users/{id}/enable\n enable() {\n return new APIResource<User, NoQueryParams, NoData>(this).push('enable');\n }\n\n // /users/{id}/licenses\n licenses() {\n return new APIList<License, CollectionQueryParams, NoData>(this).push('licenses');\n }\n\n // /users/{id}/resend-activation\n resendActivation() {\n return new APIResource<User, NoQueryParams, NoData>(this).push('resend-activation').post();\n }\n\n // users/{id}/account\n account() {\n return new APIAdminResourceUserAccount(this);\n }\n\n // /users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n}\n\nexport default APIAdminResourceUser;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccessGroup} from './models/AccessGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {SharedResource} from './models/SharedResource';\nimport {User, UserData} from './models/User';\n\nexport class APIResourceAccessGroup extends APIResource<AccessGroup> {\n\n /**\n * /access-groups/{id}\n *\n */\n constructor(parent: APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('access-groups', id);\n }\n\n // /access-groups/{id}/users\n users() {\n return new APIList<User, CollectionBasicQueryParams, UserData>(this).push('users');\n }\n\n // /access-groups/{id}/users/{id}\n user(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<User, NoQueryParams, NoData>(this).push('users', id);\n }\n\n // /access-groups/{id}/resources\n resources() {\n return new APIList<SharedResource, CollectionBasicQueryParams, NoData>(this).push('resources');\n }\n\n // /access-groups/{id}/resources/{id}\n resource(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<SharedResource, NoQueryParams, NoData>(this).push('resources', id);\n }\n\n}\n\nexport default APIResourceAccessGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport APIResourceUser from './APIResourceUser';\nimport {Device, DeviceProperty} from './models/Device';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupParams, DeviceGroupSelectorData, DeviceGroupShareData} from './models/DeviceGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {SharedResource} from './models/SharedResource';\n\nexport class APIResourceDeviceGroup extends APIResource<DeviceGroup> {\n\n /**\n * /device-groups/{id}\n */\n constructor(parent: APIAdminResource | APIResourceUser | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-groups', id);\n }\n\n // /device-groups/{id}/devices\n devices() {\n return new APIList<Device | DeviceGroup, DeviceGroupParams, DeviceGroupData>(this).push('devices');\n }\n\n // /device-groups/{id}/devices/{id}\n device(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<void, NoQueryParams, NoData>(this).push('devices', id);\n }\n\n // /device-groups/{id}/selectors\n selectors() {\n return new APIList<DeviceProperty | DeviceGroup, CollectionBasicQueryParams, DeviceGroupSelectorData>(this).push('selectors');\n }\n\n // /device-groups/{id}/selectors/{id}\n selector(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('selectors', id);\n }\n\n // /device-groups/{id}/share\n share() {\n return new APIResource<SharedResource, NoQueryParams, DeviceGroupShareData>(this).push('share');\n }\n\n}\n\nexport default APIResourceDeviceGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {DeviceGroupShareData} from './models/DeviceGroup';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport {SharedResource} from './models/SharedResource';\nimport {FileSizeData, UserFile, UserFileTag} from './models/UserFile';\n\n\nexport class APIResourceFile extends APIResource<UserFile> {\n\n /**\n * /files/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('files', id);\n }\n\n // use this to download file content\n // /files/{id}/file\n file() {\n return new APIResource<UserFile, FileSizeData, NoData>(this).push('file');\n }\n\n // /files/{id}/icon\n icon() {\n return new APIResource(this).push('icon');\n }\n\n // /files/{id}/tags\n tags() {\n return new APIList<UserFileTag, CollectionBasicQueryParams, NoData>(this).push('tags');\n }\n\n share() {\n return new APIList<SharedResource, DeviceGroupShareData>(this).push('share');\n }\n\n}\n\nexport default APIResourceFile\n","import {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource<DeviceSessionModel>(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource<DeviceSessionModel>(this).push('retry').post();\n }\n\n}\n\nexport default APIResourceDeviceSession\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {DeviceSession, DeviceSessionStep, TRunDeviceSessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Screenshot, ScreenshotExtended, ScreenshotQueryParams} from './models/Screenshot';\nimport {Tag, TagsData, TagsQueryParams, TaqQueryParams, TestRunTagsData} from './models/Tag';\nimport {RunData, RunQueryParam, TestRun, TestRunData} from './models/TestRun';\nimport {TestRunDataAvailability, TestRunDataAvailabilityQueryParams} from './models/TestRunDataAvailability';\nimport {UserFile} from './models/UserFile';\n\nexport class APIResourceRunCommon extends APIResource<TestRun, RunQueryParam, TestRunData | RunData> {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIEntity<any> | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource<AdminTestRun | TestRun, NoQueryParams, RunData>(this).push('abort').post();\n }\n\n // /runs/{id}/data-availability\n dataAvailability() {\n return new APIResource<TestRunDataAvailability, TestRunDataAvailabilityQueryParams, NoData>(this).push('data-availability');\n }\n\n // /runs/{id}/device-sessions\n deviceSessions() {\n return new APIList<DeviceSession, CollectionBasicQueryParams | TRunDeviceSessionQueryParams, NoData>(this).push('device-sessions');\n }\n\n // /runs/{id}/files.zip\n filesZip(ids?: Array<number>) {\n return postDeviceRunIds<UserFile>(this, 'files.zip', ids);\n }\n\n // /runs/{id}/logs.zip\n logsZip(ids?: Array<number>) {\n return postDeviceRunIds<UserFile>(this, 'logs.zip', ids);\n }\n\n // /runs/{id}/performance.zip\n performanceZip(ids?: Array<number>) {\n return postDeviceRunIds<UserFile>(this, 'performance.zip', ids);\n }\n\n // /runs/{id}/retry\n retry(ids?: Array<number>) {\n return postDeviceRunIds<TestRun>(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n // /runs/{id}/screenshot-names\n screenshotNames() {\n return new APIList<Screenshot, NoQueryParams, NoData>(this).push('screenshot-names');\n }\n\n // /runs/{id}/screenshots\n screenshots() {\n return new APIList<ScreenshotExtended, ScreenshotQueryParams, NoData>(this).push('screenshots');\n }\n\n // /runs/{id}/screenshots.zip\n screenshotsZip(ids?: Array<number>) {\n return postDeviceRunIds<UserFile>(this, 'screenshots.zip', ids);\n }\n\n // /runs/{id}/steps\n steps() {\n return new APIList<DeviceSessionStep, CollectionBasicQueryParams, NoData>(this).push('steps');\n }\n\n // /runs/{id}/tags\n tags() {\n return new APIList<Tag, CollectionBasicQueryParams | TagsQueryParams, TagsData | TestRunTagsData>(this).push('tags');\n }\n\n // /runs/{id}/tag\n tag(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<Tag, TaqQueryParams, NoData>(this).push('tags', id);\n }\n\n}\n\nexport default APIResourceRunCommon\n","import {APIResourceDeviceSession} from './APIResourceDeviceSession'\nimport {APIResourceRunCommon} from './APIResourceRunCommon'\n\nexport class APIResourceRun extends APIResourceRunCommon {\n\n // /runs/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n}\n\nexport default APIResourceRun\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceRun} from './APIResourceRun'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport {Project} from './models/Project';\nimport {TestRun} from './models/TestRun';\n\nexport class APIResourceProject extends APIResource<Project> {\n\n /**\n * /projects/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('projects', id);\n }\n\n // /projects/{id}/runs\n runs() {\n return new APIList<TestRun, CollectionBasicQueryParams, NoData>(this).push('runs');\n }\n\n // /projects/{id}/runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n}\n\nexport default APIResourceProject\n","import {API} from '../API';\nimport {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIAdminListNotificationPlans} from './APIAdminListNotificationPlans';\nimport {APIAdminListRuns} from './APIAdminListRuns';\nimport {APIAdminListServices} from './APIAdminListServices';\nimport {APIAdminListStatistics} from './APIAdminListStatistics';\nimport {APIAdminResourceAccountService} from './APIAdminResourceAccountService';\nimport {APIAdminResourceCluster} from './APIAdminResourceCluster';\nimport {APIAdminResourceDevice} from './APIAdminResourceDevice';\nimport {APIAdminResourceDeviceModel} from './APIAdminResourceDeviceModel';\nimport {APIAdminResourceDeviceSessionStandalone} from './APIAdminResourceDeviceSessionStandalone';\nimport {APIAdminResourceDeviceTime} from './APIAdminResourceDeviceTime';\nimport {APIAdminResourceFramework} from './APIAdminResourceFramework';\nimport {APIAdminResourceLicense} from './APIAdminResourceLicense';\nimport {APIAdminResourceNotificationPlan} from './APIAdminResourceNotificationPlan';\nimport {APIAdminResourceRunStandalone} from './APIAdminResourceRunStandalone';\nimport {APIAdminResourceService} from './APIAdminResourceService';\nimport {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceFile} from './APIResourceFile'\nimport {APIResourceProject} from './APIResourceProject';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccessGroup, AccessGroupData} from './models/AccessGroup';\nimport {Account} from './models/Account';\nimport {AccountService} from './models/AccountService';\nimport {Activity} from './models/Activity';\nimport {AdminDeviceSession, AdminInteractiveDeviceSession} from './models/AdminDeviceSession';\nimport {AdminDeviceType, DeviceTypeData} from './models/AdminDeviceType';\nimport {AdminEmail} from './models/AdminEmail';\nimport {AdminError} from './models/AdminError';\nimport {AdminOverview} from './models/AdminOverview';\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {Browser, BrowserData} from './models/Browser';\nimport {CountryVatRate, CountryVatRateData} from './models/CountryVatRate';\nimport {DeviceModelCriterion, DeviceModelCriterionData} from './models/DeviceModelCriterion';\nimport {DeviceModelPool, DeviceModelPoolData} from './models/DeviceModelPool';\nimport {Framework, FrameworkData} from './models/Framework';\nimport {License, LicenseData} from './models/License';\nimport {Maintenance, MaintenanceData} from './models/Maintenance';\nimport {Project} from './models/Project';\nimport {Role, RoleParams} from './models/Role';\nimport {Settings, SettingsParams} from './models/Settings';\nimport {User, UserData, UserParams} from './models/User';\nimport {DeviceTimeSummaryParams, UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {UserFile, UserFileData, UserFileParams} from './models/UserFile';\nimport {Cluster} from './models/Cluster';\nimport {DeviceProperty} from './models/Device';\nimport {DeviceGroup} from './models/DeviceGroup';\nimport {DeviceModel} from './models/DeviceModel';\nimport {DeviceProblem} from './models/DeviceProblem';\nimport {DeviceStatus} from './models/DeviceStatus';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n@NonRequestable\nexport class APIAdminResource extends APIResource {\n\n /**\n * /admin\n */\n constructor(parent: API) {\n super(parent);\n }\n\n // /access-groups\n accessGroups() {\n return new APIList<AccessGroup, CollectionQueryParams, AccessGroupData>(this).push('access-groups');\n }\n\n // /access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /admin/accounts\n accounts() {\n return new APIList<Account>(this).push('admin', 'accounts');\n }\n\n // /admin/accounts/{id}\n account(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<Account>(this).push('admin', 'accounts', id);\n }\n\n // /admin/account-services\n accountServices() {\n return new APIList<AccountService>(this).push('admin', 'account-services');\n }\n\n // /admin/account-services/{id}\n accountService(id: number) {\n return new APIAdminResourceAccountService(this, id);\n }\n\n // activities\n activities() {\n return new APIList<Activity>(this).push('admin', 'activities');\n }\n\n // /admin/billing-periods\n billingPeriods() {\n return new APIList<BillingPeriod>(this).push('admin', 'billing-periods');\n }\n\n // /admin/billing-periods/{id}\n billingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<BillingPeriod>(this).push('admin', 'billing-periods', id);\n }\n\n // /admin/browsers\n browsers() {\n return new APIList<Browser, CollectionQueryParams, BrowserData>(this).push('admin', 'browsers');\n }\n\n // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<Browser, NoQueryParams, BrowserData>(this).push('admin', 'browsers', id);\n }\n\n // /clusters\n clusters() {\n return new APIList<Cluster>(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /admin/country-vat-rates\n countryVatRates() {\n return new APIList<CountryVatRate, CollectionQueryParams, CountryVatRateData>(this).push('admin', 'country-vat-rates');\n }\n\n // /admin/country-vat-rates/{id}\n countryVatRate(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<CountryVatRate, NoQueryParams, Omit<CountryVatRate, 'country'>>(this).push('admin', 'country-vat-rates', id);\n }\n\n // /admin/devices\n devices() {\n return new APIAdminListDevices(this);\n }\n\n // /admin/devices/{id}\n device(id: number) {\n return new APIAdminResourceDevice(this, id);\n }\n\n devicesForModel(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n const apiList = this.devices();\n apiList.params({\n filter: 'deviceModelId_eq_' + id\n });\n return apiList;\n }\n\n // /admin/device/statuses\n deviceStatuses() {\n return new APIList<DeviceStatus>(this).push('admin', 'device', 'statuses');\n }\n\n // /admin/device-models\n deviceModels() {\n return new APIList<DeviceModel>(this).push('admin', 'device-models');\n }\n\n // /admin/device-models/{id}\n deviceModel(id: number) {\n return new APIAdminResourceDeviceModel(this, id);\n }\n\n // /admin/device-problems\n deviceProblems() {\n return new APIList<DeviceProblem>(this).push('admin', 'device-problems');\n }\n\n // /admin/device-model-criteria\n deviceModelCriterias() {\n return new APIList<DeviceModelCriterion, CollectionQueryParams, DeviceModelCriterionData>(this).push('admin', 'device-model-criteria');\n }\n\n // /admin/device-model-criteria/{id}\n deviceModelCriteria(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<DeviceModelCriterion>(this).push('admin', 'device-model-criteria', id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList<AdminDeviceSession>(this).push('admin', 'device-sessions');\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIAdminResourceDeviceSessionStandalone(this, id);\n }\n\n // /device-time\n deviceTime() {\n return new APIAdminResourceDeviceTime(this);\n }\n\n // /device-time-summary\n deviceTimeSummary() {\n return new APIList<UserDeviceTimeSummary, DeviceTimeSummaryParams>(this).push('admin', 'device-time-summary');\n }\n\n // /device-types\n deviceTypes() {\n return new APIList<AdminDeviceType>(this).push('admin', 'device-types');\n }\n\n // /device-types/{id}\n deviceType(id: number) {\n return new APIResource<AdminDeviceType, NoQueryParams, DeviceTypeData>(this).push('admin', 'device-types', id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList<DeviceGroup>(this).push('device-groups');\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /admin/emails\n emails() {\n return new APIList<AdminEmail>(this).push('admin', 'emails');\n }\n\n // /admin/emails/{id}/resend\n resendEmail(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource<AdminEmail>(this).push('admin', 'emails', id, 'resend').post();\n }\n\n // /admin/errors\n errors() {\n return new APIList<AdminError>(this).push('admin', 'errors');\n }\n\n // /files\n files() {\n return new APIList<UserFile, UserFileParams, UserFileData>(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /admin/frameworks\n frameworks<T = Framework, U extends CollectionQueryParams = CollectionQueryParams, W = FrameworkData>() {\n return new APIList<T, U, W>(this).push('admin', 'frameworks');\n }\n\n // /admin/frameworks/{id}\n framework(id: number) {\n return new APIAdminResourceFramework(this, id);\n }\n\n // /admin/frameworks/available-labels\n frameworkAvailableLabels() {\n const apiList = this.frameworks<DeviceProperty, CollectionQueryParams, NoData>();\n apiList.push('available-labels');\n return apiList;\n }\n\n // /admin/interactive-queue\n interactiveQueue() {\n return new APIList<AdminInteractiveDeviceSession>(this).push('admin', 'interactive-queue');\n }\n\n // /admin/licenses\n licenses() {\n return new APIList<License, CollectionQueryParams, LicenseData>(this).push('admin', 'licenses');\n }\n\n // /admin/licenses/{id}\n license(id: number) {\n return new APIAdminResourceLicense(this, id);\n }\n\n // /admin/maintenance\n maintenance() {\n return new APIResource<Maintenance, NoQueryParams, MaintenanceData>(this).push('admin', 'maintenance');\n }\n\n // /admin/notification-plans\n notificationPlans() {\n return new APIAdminListNotificationPlans(this);\n }\n\n // /admin/notification-plans/{id}\n notificationPlan(id: number) {\n return new APIAdminResourceNotificationPlan(this, id);\n }\n\n // /admin/overview\n overview() {\n return new APIResource<AdminOverview>(this).push('admin', 'overview');\n }\n\n pools() {\n return new APIList<DeviceModelPool>(this).push('admin', 'pools');\n }\n\n pool(id: number) {\n return new APIResource<DeviceModelPool, NoQueryParams, DeviceModelPoolData>(this).push('admin', 'pools', id);\n }\n\n // /projects\n projects() {\n return new APIList<Project>(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /admin/roles\n roles() {\n return new APIList<Role, RoleParams, NoData>(this).push('admin', 'roles');\n }\n\n // /admin/runs\n runs() {\n return new APIAdminListRuns(this);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIAdminResourceRunStandalone(this, id);\n }\n\n // /admin/samples\n samples() {\n return new APIList<UserFile, CollectionQueryParams, Pick<UserFileData, 'file'>>(this).push('admin', 'samples');\n }\n\n // /admin/samples/{id}\n sample(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource<UserFile>(this).push('admin', 'samples', id);\n }\n\n // /admin/services\n services() {\n return new APIAdminListServices(this);\n }\n\n // /admin/services/{id}\n service(id: number) {\n return new APIAdminResourceService(this, id);\n }\n\n // /admin/settings\n settings() {\n return new APIResource<Settings, SettingsParams>(this).push('admin', 'settings');\n }\n\n // /admin/statistics\n statistics() {\n return new APIAdminListStatistics(this);\n }\n\n // /users\n users() {\n return new APIList<User, UserParams, UserData>(this).push('users');\n }\n\n // /admin/users\n createUser() {\n return new APIList<User, NoQueryParams, UserData>(this).push('admin', 'users').post();\n }\n\n // /users/{id}\n user(id: number) {\n return new APIAdminResourceUser(this, id);\n }\n\n}\n\nexport default APIAdminResource;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {DesktopBrowserCapabilities} from './models/DesktopBrowserCapabilities';\nimport {Device, DevicesQueryParams} from './models/Device';\nimport {DevicePicker} from './models/DeviceFilter';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIListDevices extends APIList<Device, DevicesQueryParams> {\n\n /**\n * /devices\n */\n constructor(parent: API) {\n super(parent);\n this.push('devices');\n }\n\n // /devices/filters\n filters() {\n return new APIResource<DevicePicker, CollectionQueryParams, NoData>(this).push('filters');\n }\n\n // /devices/desktop-browser-capabilities\n desktopBrowserCapabilities() {\n return new APIResource<DesktopBrowserCapabilities, NoQueryParams, NoData>(this).push('desktop-browser-capabilities');\n }\n\n}\n\nexport default APIListDevices;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {CollectionQueryParams} from './models/HTTP';\nimport {AppBansData, AppBansQueryParams, Property, PropertyData} from './models/Property';\n\n\nexport class APIListProperties extends APIList<Property, CollectionQueryParams, PropertyData> {\n\n /**\n * /properties\n */\n constructor(parent: API) {\n super(parent);\n this.push('properties');\n }\n\n // /properties/app-bans?testRunId=id\n appBan(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIList<Property, AppBansQueryParams, AppBansData>(this).push('app-bans').params({\n testRunId: id\n });\n }\n\n maintenance() {\n return new APIList(this).params({\n filter: 'name_eq_CLOUD_HEADER_ANNOUNCEMENT',\n limit: 1,\n sort: 'updateTime_d'\n });\n }\n\n}\n\nexport default APIListProperties\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceData} from './models/Service';\n\n\nexport class APIListServices extends APIList<ServicePaymentStatus, NoQueryParams, ServiceData> {\n\n protected ALLOWED_HTTP_METHODS: Array<Method> = ['POST'];\n\n /**\n * /services\n */\n constructor(parent: API | APIResourceUser) {\n super(parent);\n this.push('services');\n }\n\n // /services/available\n available() {\n return new APIList<Service, CollectionQueryParams, NoData>(this).push('available');\n }\n\n active() {\n const apiList = new APIList<AccountService, CollectionQueryParams, NoData>(this);\n if (this.first === 'me') {\n apiList.push('active');\n } else {\n apiList.params({\n notArchived: true\n });\n }\n return apiList;\n }\n\n byPrice() {\n return new APIList<AccountService, CollectionQueryParams, void>(this).sort('centPrice');\n }\n\n availableByPrice() {\n return new APIList<AccountService, CollectionQueryParams, void>(this).push('available').sort('centPrice');\n }\n\n}\n\nexport default APIListServices\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {\n User,\n UserActivateData,\n UserData,\n UserPasswordData,\n UserRecoveryQueryParams,\n ValidateVatQueryParams\n} from './models/User';\nimport {VatRate} from './models/VatRate';\n\n\nexport class APIListUsers extends APIList<User, NoQueryParams, UserData> {\n\n protected ALLOWED_HTTP_METHODS: Array<Method> = ['POST'];\n\n /**\n * /users\n */\n constructor(parent: API) {\n super(parent);\n this.push('users');\n }\n\n // /users/activate\n activate() {\n return new APIResource<User, NoQueryParams, UserActivateData>(this).push('activate').post();\n }\n\n // /users/recoveries\n recoveries() {\n return new APIResource<User | Message, UserRecoveryQueryParams, UserData>(this).push('recoveries');\n }\n\n // /users/passwordRecovery\n passwordRecovery() {\n return new APIResource<User, NoQueryParams, UserPasswordData>(this).push('password-recovery');\n }\n\n // /users/resetApiKey\n validateVatId() {\n return new APIResource<VatRate, ValidateVatQueryParams, NoData>(this).push('validateVatId');\n }\n\n}\n\nexport default APIListUsers;\n","import {API} from '../API';\nimport {APIResource} from './APIResource'\nimport {Account} from './models/Account';\nimport {AccountConcurrencyStatusMap} from './models/AccountConcurrencyStatusMap';\nimport {AccountPreferences} from './models/AccountPreference';\nimport {NoData, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\nexport class APIResourceAccount extends APIResource<Account> {\n\n /**\n * /accounts/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('accounts', id);\n }\n\n // /accounts/{id}/concurrency-status\n concurrencyStatus() {\n return new APIResource<AccountConcurrencyStatusMap, NoQueryParams, NoData>(this).push('concurrency-status');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource<AccountPreferences, NoQueryParams, SimpleCollectionResponse<AccountPreferences>>(this).push('preferences');\n }\n\n}\n\nexport default APIResourceAccount\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Broker} from './models/Broker';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIResourceBroker extends APIResource {\n\n /**\n * /broker\n */\n constructor(parent: API) {\n\n super(parent);\n this.push('broker');\n }\n\n // /broker/hubs\n hubs() {\n return new APIList<Broker, NoQueryParams, NoData>(this).push('hubs');\n }\n\n}\n\nexport default APIResourceBroker\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser} from './models/Browser';\nimport {Device, DeviceProperiesData, DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams} from './models/HTTP';\n\n\nexport class APIResourceDevice extends APIResource<Device> {\n\n /**\n * /devices/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('devices', id);\n }\n\n // /devices/{id}/properties\n properties() {\n return new APIList<DeviceProperty, CollectionBasicQueryParams, DeviceProperiesData>(this).push('properties');\n }\n\n browsers() {\n return new APIList<Browser>(this).push('browsers');\n }\n\n}\n\nexport default APIResourceDevice\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams, NoQueryParams} from './models/HTTP';\nimport {LabelData, LabelGroup} from './models/LabelGroup';\n\nexport class APIResourceLabelGroup extends APIResource<LabelGroup> {\n\n /**\n * /label-groups/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('label-groups', id);\n }\n\n // /label-groups/{id}/labels\n labels() {\n return new APIList<DeviceProperty, CollectionBasicQueryParams, LabelData>(this).push('labels');\n }\n\n // /label-groups/{id}/labels/{id}\n label(id: number) {\n return new APIResource<DeviceProperty, NoQueryParams, LabelData>(this).push('labels', id);\n }\n\n}\n\nexport default APIResourceLabelGroup\n","import {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData} from './models/HTTP';\nimport {BasicDeviceTime, DeviceTimeQueryParams, UserDeviceTime} from './models/UserDeviceTime';\n\n\nexport class APIListDeviceTime extends APIList<UserDeviceTime, DeviceTimeQueryParams, NoData> {\n\n /**\n * /device-time\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('device-time');\n }\n\n // /device-time/reserved\n reserved() {\n return new APIEntity<BasicDeviceTime>(this).push('reserved');\n }\n\n // /device-time/used\n used() {\n return new APIEntity<BasicDeviceTime>(this).push('used');\n }\n\n}\n\nexport default APIListDeviceTime;\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {FileData, UploadObj, UserFile} from './models/UserFile';\n\n\nexport class APIListFiles extends APIList<UserFile, FilesQueryParams, FileData> {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n /**\n * Simplifies process of uploading\n * /files\n */\n upload(obj: UploadObj): this {\n // For NodeJS\n // @ts-ignore\n if (global.isNodeJs) {\n return this.nodeUpload(obj);\n } else {\n /**\n * Browser\n * @todo\n */\n throw new Error('Not supported yet!');\n }\n }\n\n private nodeUpload(file: UploadObj): this {\n const fs = require('fs');\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', fs.createReadStream(file.dir + '/' + file.filename), {\n filename: file.filename\n });\n return this.post().headers(form.getHeaders()).data(form);\n }\n\n}\n\nexport default APIListFiles\n","import {APIList} from './APIList'\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIResource} from './APIResource'\n\n\nexport class APIResourceChannel extends APIResource {\n\n /**\n * /users/{id}/notifications/channels/{type}\n */\n constructor(parent: APIListNotifications, type: string) {\n if (type == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('channels', type);\n }\n\n // /channels/{type}/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n}\n\nexport default APIResourceChannel;\n","import {APIList} from './APIList';\nimport {APIResourceChannel} from './APIResourceChannel';\nimport {APIResourceUser} from './APIResourceUser';\nimport {Enum} from './models/Enum';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Notification, NotificationsData} from './models/Notification';\n\n\nexport class APIListNotifications extends APIList<Notification, CollectionQueryParams, NotificationsData> {\n\n /**\n * /notifications\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('notifications');\n }\n\n // /notifications/scopes\n scopes() {\n return new APIList<Enum, NoQueryParams, NoData>(this).push('scopes');\n }\n\n // /notifications/channels\n channels() {\n return new APIList<Enum, NoQueryParams, NoData>(this).push('channels');\n }\n\n channel(type: string) {\n return new APIResourceChannel(this, type);\n }\n\n}\n\nexport default APIListNotifications\n","import {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoQueryParams} from './models/HTTP';\nimport {TestRun, TestRunConfig, TestRunsConfigData, TestRunsData, TestRunsQueryParams} from './models/TestRun';\n\n\nexport class APIListRuns extends APIList<TestRun, TestRunsQueryParams, TestRunsData> {\n\n /**\n * /runs\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('runs');\n }\n\n // /runs/config\n config() {\n return new APIResource<TestRunConfig, NoQueryParams, TestRunsConfigData>(this).push('config');\n }\n\n}\n\nexport default APIListRuns\n","import {Method} from 'axios';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData} from './models/HTTP';\nimport {SmartbearTunnel, TunnelQueryParams} from './models/SmartbearTunnel';\n\n\nexport class APIListSmartbearTunnels extends APIList<SmartbearTunnel, TunnelQueryParams, NoData> {\n\n protected ALLOWED_HTTP_METHODS: Array<Method> = ['GET'];\n\n /**\n * /tunnels\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('tunnels');\n }\n\n /**\n * Sets tunnel activity parameter\n */\n active(active: boolean): this {\n return this.params({active: active});\n }\n}\n\nexport default APIListSmartbearTunnels;\n","import {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIResourceBillingPeriod extends APIResource<BillingPeriod, NoQueryParams, NoData> {\n\n /**\n * /billing-periods/{id}\n */\n constructor(parent: APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('billing-periods', id);\n }\n\n // /billing-periods/{id}/receipt\n receipt() {\n return new APIResource<void, NoQueryParams, NoData>(this).push('receipt').setRequestConfig({\n responseType: 'arraybuffer'\n });\n }\n\n}\n\nexport default APIResourceBillingPeriod\n","\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {Notification, NotificationData} from './models/Notification';\n\nexport class APIResourceNotification extends APIResource<Notification, NoQueryParams, NotificationData> {\n\n /**\n * /notifications/{id}\n */\n constructor(parent: APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('notifications', id);\n }\n\n // /notifications/{id}/test\n test() {\n return new APIResource<Message, NoQueryParams, NoData>(this).push('test');\n }\n\n}\n\nexport default APIResourceNotification\n","import {APIResource} from './APIResource'\nimport {APIUserResourceAccount} from './APIUserResourceAccount';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {User} from './models/User';\n\n\nexport class APIResourceAdditionalUser extends APIResource<User> {\n\n /**\n * /additional-users/{id}\n */\n constructor(parent: APIUserResourceAccount, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('additional-users', id);\n }\n\n // /account/additional-users/{id}/resend-activation\n resendActivation() {\n return new APIResource<User, NoQueryParams, NoData>(this).push('resend-activation');\n }\n\n}\n\nexport default APIResourceAdditionalUser\n","import {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceAdditionalUser} from './APIResourceAdditionalUser';\nimport {APIResourceUser} from './APIResourceUser';\nimport {Account} from './models/Account';\nimport {AccountServicePayment} from './models/AccountServicePayment';\nimport {BillingPeriodQueryParams} from './models/BillingPeriod';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport {User, UserData} from './models/User';\n\nexport class APIUserResourceAccount extends APIResource<Account> {\n\n /**\n * /account\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('account');\n }\n\n // /account/additional-users\n additionalUsers() {\n return new APIList<User, CollectionBasicQueryParams, UserData>(this).push('additional-users');\n }\n\n // /account/additional-users/{id}\n additionalUser(id: number) {\n return new APIResourceAdditionalUser(this, id);\n }\n\n // /account-services/{id}/billing-period\n serviceBillingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n const a = new APIResource<AccountServicePayment, BillingPeriodQueryParams, NoData>(this);\n a.last += '-services';\n a.push(id, 'billing-period');\n return a;\n }\n\n}\n\nexport default APIUserResourceAccount\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIListDeviceTime} from './APIListDeviceTime'\nimport {APIListFiles} from './APIListFiles'\nimport {APIListNotifications} from './APIListNotifications'\nimport {APIListRuns} from './APIListRuns'\nimport {APIListServices} from './APIListServices'\nimport {APIListSmartbearTunnels} from './APIListSmartbearTunnels'\nimport {APIResource} from './APIResource'\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup'\nimport {APIResourceBillingPeriod} from './APIResourceBillingPeriod'\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup'\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone'\nimport {APIResourceFile} from './APIResourceFile'\nimport {APIResourceNotification} from './APIResourceNotification'\nimport {APIResourceProject} from './APIResourceProject'\nimport {APIUserResourceAccount} from './APIUserResourceAccount'\nimport {DeviceSession} from './interface/DeviceSession';\nimport {AccessGroup, AccessGroupsData} from './models/AccessGroup';\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {DeviceGroup, DeviceGroupIdsData, DeviceGroupWithPublicParams} from './models/DeviceGroup';\nimport {DeviceStatistics} from './models/DeviceStatistics';\nimport {DeviceUsage} from './models/DeviceUsage';\nimport {Framework} from './models/Framework';\nimport {Project, UserProjectData, UserProjectQueryParams} from './models/Project';\nimport {Service} from './models/Service';\nimport {User} from './models/User';\nimport {UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {UiPreferencesData, UserPreference} from './models/UserPreference';\nimport {StatisticQueryParams, UserStatistics} from './models/UserStatistics';\nimport {DeviceSessionData, DeviceSessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {DeviceStatisticQueryParam, DeviceTimeSummaryQueryParams, DeviceUsageQueryParams} from './models/Device';\n\nexport class APIResourceUser extends APIResource {\n\n /**\n * /users/{id} | /me\n */\n constructor(parent: API, id: number | 'me') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n\n if (id === 'me') {\n this.push('me');\n } else if (typeof id === 'number') {\n this.push('users', id);\n } else {\n throw new TypeError('id is not a number');\n }\n }\n\n // /users/{id}/account\n account() {\n return new APIUserResourceAccount(this);\n }\n\n // /users/{id}/device-time\n deviceTime() {\n return new APIListDeviceTime(this);\n }\n\n // /users/{id}/device-time-summary\n deviceTimeSummary() {\n return new APIList<UserDeviceTimeSummary, DeviceTimeSummaryQueryParams, NoData>(this).push('device-time-summary');\n }\n\n // /users/{id}/services\n services() {\n return new APIListServices(this);\n }\n\n // /users/{id}/services/{id}\n service(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource<Service, NoQueryParams, NoData>(this).push('services', id);\n }\n\n // /users/{id}/billing-periods\n billingPeriods() {\n return new APIList<BillingPeriod, CollectionBasicQueryParams, NoData>(this).push('billing-periods');\n }\n\n // /users/{id}/billing-periods/{id}\n billingPeriod(id: number) {\n return new APIResourceBillingPeriod(this, id);\n }\n\n // /users/{id}/device-groups\n deviceGroups() {\n return new APIList<DeviceGroup, DeviceGroupWithPublicParams, DeviceGroupIdsData>(this).push('device-groups');\n }\n\n // /users/{id}/device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /users/{id}/device-sessions\n deviceSessions() {\n return new APIList<DeviceSession, DeviceSessionQueryParams, DeviceSessionData>(this).push('device-sessions');\n }\n\n // /users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /users/{id}/projects\n projects() {\n return new APIList<Project, UserProjectQueryParams, UserProjectData>(this).push('projects');\n }\n\n // /users/{id}/projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /users/{id}/files\n files() {\n return new APIListFiles(this);\n }\n\n // /users/{id}/files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /users/{id}/runs\n runs() {\n return new APIListRuns(this);\n }\n\n // /users/{id}/available-frameworks\n availableFrameworks() {\n return new APIList<Framework, CollectionBasicQueryParams, NoData>(this).push('available-frameworks');\n }\n\n /**\n * /users/{id}/reset-api-key\n */\n resetApiKey() {\n return new APIResource<User, NoQueryParams, NoData>(this).push('reset-api-key');\n }\n\n // /users/{id}/restore\n restore() {\n return new APIResource<User, NoQueryParams, NoData>(this).push('restore');\n }\n\n // /users/{id}/feedback\n feedback() {\n return new APIResource(this).push('feedback');\n }\n\n // /users/{id}/notifications\n notifications() {\n return new APIListNotifications(this);\n }\n\n // /users/{id}/notifications/{id}\n notification(id: number) {\n return new APIResourceNotification(this, id);\n }\n\n // /users/{id}/preferences\n preferences() {\n return new APIResource<UserPreference, NoQueryParams, UserPreference>(this).push('preferences');\n }\n\n // /users/{id}/ui-preferences\n uiPreferences() {\n return new APIResource<string, NoQueryParams, UiPreferencesData>(this).push('ui-preferences');\n }\n\n // /users/{id}/device-usage\n deviceUsage() {\n return new APIList<DeviceUsage, DeviceUsageQueryParams, NoData>(this).push('device-usage');\n }\n\n // /users/{id}/statistics\n statistics() {\n return new APIResource<UserStatistics, StatisticQueryParams, NoData>(this).push('statistics');\n }\n\n // /users/{id}/device-statistics\n deviceStatistics() {\n return new APIList<DeviceStatistics, DeviceStatisticQueryParam, NoData>(this).push('device-statistics');\n }\n\n // /users/{id}/access-groups\n accessGroups() {\n return new APIList<AccessGroup, CollectionBasicQueryParams, AccessGroupsData>(this).push('access-groups');\n }\n\n // /users/{id}/access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /users/{id}/tunnels/{id}\n smartbearTunnel(id: number) {\n return new APIResource(this).push('tunnels', id);\n }\n\n // /users/{id}/tunnels\n smartbearTunnels() {\n return new APIListSmartbearTunnels(this);\n }\n\n deleteAccount() {\n return new APIResource(this).push('delete');\n }\n}\n\nexport default APIResourceUser\n","import {API} from '../API';\nimport {APIResource} from './APIResource'\nimport {NoQueryParams} from './models/HTTP';\nimport {LoginData, User} from './models/User';\n\nexport class APIResourceUserSession extends APIResource {\n\n // /user-sessions\n constructor(parent: API) {\n super(parent);\n this.push('user-sessions');\n }\n\n // /user-sessions/login\n login(data: LoginData) {\n return new APIResource<User, NoQueryParams, LoginData>(this).push('login').post().data(data);\n }\n\n // /user-sessions/logout\n logout() {\n return new APIResource(this).push('logout').post();\n }\n\n // /user-sessions/{name}-login\n sso(name: string) {\n return new APIResource(this).push(name + '-login');\n }\n\n // /user-sessions/portal-login\n portalLogin() {\n return new APIResource(this).push('portal-login').post();\n }\n\n}\n\nexport default APIResourceUserSession\n","import axios, {AxiosInstance} from 'axios';\n// @ts-ignore\nimport {version} from '../package.json';\nimport {APIAdminResource} from './api/APIAdminResource';\nimport {APIAdminResourceCluster} from './api/APIAdminResourceCluster';\nimport {APIList} from './api/APIList';\nimport {APIListDevices} from './api/APIListDevices';\nimport {APIListProperties} from './api/APIListProperties';\nimport {APIListServices} from './api/APIListServices';\nimport {APIListUsers} from './api/APIListUsers';\nimport {APIResource} from './api/APIResource';\nimport {APIResourceAccount} from './api/APIResourceAccount';\nimport {APIResourceBroker} from './api/APIResourceBroker';\nimport {APIResourceDevice} from './api/APIResourceDevice';\nimport {APIResourceDeviceGroup} from './api/APIResourceDeviceGroup';\nimport {APIResourceDeviceSession} from './api/APIResourceDeviceSession';\nimport {APIResourceFile} from './api/APIResourceFile';\nimport {APIResourceLabelGroup} from './api/APIResourceLabelGroup';\nimport {APIResourceProject} from './api/APIResourceProject';\nimport {APIResourceRun} from './api/APIResourceRun';\nimport {APIResourceUser} from './api/APIResourceUser';\nimport {APIResourceUserSession} from './api/APIResourceUserSession';\nimport {Cluster} from './api/models/Cluster';\nimport {NoData, NoQueryParams} from './api/models/HTTP';\nimport {License} from './api/models/License';\nimport {Project} from './api/models/Project';\nimport {Property} from './api/models/Property';\nimport {UserFile, UserFileData, UserFileParams} from './api/models/UserFile';\nimport {ApiConfig} from './ApiConfig';\nimport './finka';\n\n// @ts-ignore\nif (globalThis.isNodeJs) {\n // Set User-Agent\n axios.defaults.headers.common['User-Agent'] = `Bitbar Cloud API Client for JavaScript v${version}`;\n}\n\n// Disable max content length\naxios.defaults.maxContentLength = 1073741824; // 1GB\n\n\n/**\n * API\n * Root for other API resources\n */\nexport class API {\n axios: AxiosInstance;\n\n private axiosConfig: ApiConfig = <ApiConfig>{};\n\n get baseUrl(): string {\n return this.axiosConfig.baseURL;\n }\n\n\n constructor(private config: ApiConfig) {\n if (config == null) {\n throw new Error('config cannot be empty');\n } else if (this.config.cloudUrl == null) {\n throw new TypeError('cloudUrl cannot be empty');\n } else if (typeof this.config.cloudUrl !== 'string') {\n throw new TypeError('cloudUrl must be a string');\n } else if (!/^https?:\\/\\/.{2,}/.test(this.config.cloudUrl)) {\n throw new Error(`cloudUrl doesn't look like a URL`);\n }\n\n // Validate and correct cloudUrl if needed\n this.axiosConfig.baseURL = this.config.cloudUrl.replace(/\\/+$/, '') + '/api'\n\n // Check v2\n this.config.v2 = !!this.config.v2;\n if (this.config.v2) {\n this.axiosConfig.baseURL += '/v2';\n }\n\n // Check if apiKey is set\n if (this.config.apiKey) {\n if (typeof this.config.apiKey !== 'string') {\n throw new TypeError('apiKey must be a string');\n } else if (!/^[A-Za-z0-9]{32}$/.test(this.config.apiKey)) {\n throw new Error('apiKey is in the wrong format');\n }\n\n this.axiosConfig.auth = {\n username: <string>this.config.apiKey,\n password: ''\n };\n }\n\n // With credentials\n this.axiosConfig.withCredentials = config.withCredentials == null ? false : config.withCredentials;\n\n // Create axios instance\n this.axios = axios.create(this.axiosConfig);\n }\n\n\n // --- Resources starts here --- //\n\n // /account/{id}\n account(id: number) {\n return new APIResourceAccount(this, id);\n }\n\n // /admin\n admin() {\n return new APIAdminResource(this);\n }\n\n // /broker\n broker() {\n return new APIResourceBroker(this);\n }\n\n // /clusters\n clusters() {\n return new APIList<Cluster>(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /devices/{id}\n device(id: number) {\n return new APIResourceDevice(this, id);\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /devices\n devices() {\n return new APIListDevices(this);\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /enums\n enums() {\n return new APIResource(this).push('enums');\n }\n\n // /files\n files() {\n return new APIList<UserFile, UserFileParams, UserFileData>(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /label-groups\n labelGroups() {\n return new APIList(this).push('label-groups');\n }\n\n // /label-groups/{id}\n labelGroup(id: number) {\n return new APIResourceLabelGroup(this, id);\n }\n\n // /labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /licenses\n licenses() {\n return new APIResource(this).push('licenses');\n }\n\n // /license\n license() {\n return new APIResource<License, NoQueryParams, NoData>(this).push('license');\n }\n\n // /me\n me() {\n return this.user('me');\n }\n\n // /projects\n projects() {\n return new APIList<Project>(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /properties\n properties() {\n return new APIListProperties(this);\n }\n\n // /properties/{id}\n property(id: number) {\n return new APIResource<Property>(this).push('properties', id);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n // /services\n services() {\n return new APIListServices(this);\n }\n\n // /user/{id}\n user(id: number | 'me') {\n return new APIResourceUser(this, id);\n }\n\n // /users\n users() {\n return new APIListUsers(this);\n }\n\n // /user-sessions\n userSession() {\n return new APIResourceUserSession(this);\n }\n\n}\n\n\nexport default API;\n","import {API} from './API';\nimport {FilterBuilder} from './FilterBuilder';\n\n/**\n * Cloud API Client\n */\nexport const CloudAPIClient = {\n API,\n FilterBuilder\n}\n\nexport default CloudAPIClient;\n"],"names":["finka","AbortController","stringify","axios"],"mappings":"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"}