@bitbar/cloud-api-client 0.54.1 → 0.55.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.
@@ -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/APIAdminResource.ts","../src/api/APIResourceAccount.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 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\";\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 if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'device-models', 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 './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\";\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}\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":[],"mappings":"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"}
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.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('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 './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\";\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}\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":[],"mappings":"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"}