diff --git a/dist/api/models/Project.d.ts b/dist/api/models/Project.d.ts index bb618d4..352f9c7 100644 --- a/dist/api/models/Project.d.ts +++ b/dist/api/models/Project.d.ts @@ -6,7 +6,7 @@ export declare enum ArchivingStrategy { RUNS = "RUNS" } export type Project = { - archiveTime: number; + archiveTime: number | null; archivingItemCount: number; archivingStrategy: ArchivingStrategy; common: boolean; diff --git a/dist/bitbar-cloud-api-client.js b/dist/bitbar-cloud-api-client.js index 39567c1..371c2e1 100644 --- a/dist/bitbar-cloud-api-client.js +++ b/dist/bitbar-cloud-api-client.js @@ -1,11 +1,11 @@ -/* @bitbar/cloud-api-client v1.7.0 | Copyright 2026 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ +/* @bitbar/cloud-api-client v1.7.1 | Copyright 2026 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@bitbar/finka'), require('qs'), require('node-abort-controller')) : typeof define === 'function' && define.amd ? define(['exports', '@bitbar/finka', 'qs', 'node-abort-controller'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["bitbar-cloud-api-client"] = {}, global["@bitbar/finka"], global.qs, global["node-abort-controller"])); })(this, (function (exports, finka, qs, nodeAbortController) { 'use strict'; - var version = "1.7.0"; + var version = "1.7.1"; /****************************************************************************** Copyright (c) Microsoft Corporation. diff --git a/dist/bitbar-cloud-api-client.js.map b/dist/bitbar-cloud-api-client.js.map index e850173..7fdb159 100644 --- a/dist/bitbar-cloud-api-client.js.map +++ b/dist/bitbar-cloud-api-client.js.map @@ -1 +1 @@ -{"version":3,"file":"bitbar-cloud-api-client.js","sources":["../src/Filter.ts","../src/finka.ts","../src/FilterBuilder.ts","../src/api/models/HTTP.ts","../src/api/APIEntity.ts","../src/api/APIList.ts","../src/api/APIResource.ts","../src/api/APIListCleanupConfigurations.ts","../src/api/APIResourceCleanupConfiguration.ts","../src/api/APIAdminListDevices.ts","../src/api/APIAdminListRuns.ts","../src/api/APIAdminListServices.ts","../src/api/decorators/NonRequestable.ts","../src/api/APIAdminListStatistics.ts","../src/api/APIAdminResourceAccount.ts","../src/api/APIAdminResourceAccountService.ts","../src/api/APIAdminResourceCluster.ts","../src/api/APIAdminResourceDevice.ts","../src/api/APIAdminResourceDeviceModel.ts","../src/api/class/InputFileset.ts","../src/api/class/Images.filter.ts","../src/api/class/NonMedia.filter.ts","../src/api/APIListOutputFiles.ts","../src/api/class/OutputFileset.ts","../src/api/APIListScreenshots.ts","../src/api/APIResourceDeviceSessionCommon.ts","../src/api/factory/postAdminDeviceSessionChangeBillable.ts","../src/api/APIAdminResourceDeviceSessionStandalone.ts","../src/api/APIAdminResourceDeviceTime.ts","../src/api/APIAdminResourceFramework.ts","../src/api/APIAdminResourceLicense.ts","../src/api/factory/postDeviceRunIds.ts","../src/api/APIAdminResourceRunStandalone.ts","../src/api/APIAdminResourceService.ts","../src/api/APIAdminResourceUserAccount.ts","../src/api/APIResourceDeviceSessionStandalone.ts","../src/api/APIAdminResourceUser.ts","../src/api/APIResourceAccessGroup.ts","../src/api/APIResourceDeviceGroup.ts","../src/api/APIResourceFile.ts","../src/api/APIListTestCaseRuns.ts","../src/api/APIResourceDeviceSession.ts","../src/api/APIListTestRunDeviceSessions.ts","../src/api/APIResourceRunCommon.ts","../src/api/APIResourceRun.ts","../src/api/APIResourceProject.ts","../src/api/APIAdminResource.ts","../src/api/APIListDevices.ts","../src/api/APIListProperties.ts","../src/api/APIListServices.ts","../src/api/APIListUsers.ts","../src/api/APIResourceBillingPeriod.ts","../src/api/APIResourceAccount.ts","../src/api/APIResourceBroker.ts","../src/api/APIResourceDevice.ts","../src/api/APIResourceLabelGroup.ts","../src/api/APIListFiles.ts","../src/api/APIResourceChannel.ts","../src/api/APIListNotifications.ts","../src/api/APIListRuns.ts","../src/api/APIListSmartbearTunnels.ts","../src/api/APIResourceNotification.ts","../src/api/APIResourceUser.ts","../src/api/APIResourceUserSession.ts","../src/API.ts","../src/CloudAPIClient.ts","../src/api/models/AccessGroup.ts","../src/api/models/Account.ts","../src/api/models/AccountService.ts","../src/api/models/AdminDevice.ts","../src/api/models/AdminFrameworkStatistics.ts","../src/api/models/BillingPeriod.ts","../src/api/models/Broker.ts","../src/api/models/Cluster.ts","../src/api/models/Device.ts","../src/api/models/DeviceModelCriterion.ts","../src/api/models/DeviceModelPool.ts","../src/api/models/DeviceProblem.ts","../src/api/models/DeviceSession.ts","../src/api/models/Enum.ts","../src/api/models/License.ts","../src/api/models/Notification.ts","../src/api/models/Project.ts","../src/api/models/Screenshot.ts","../src/api/models/Service.ts","../src/api/models/SharedResource.ts","../src/api/models/TestCaseRun.ts","../src/api/models/TestRun.ts","../src/api/models/User.ts","../src/api/models/UserFile.ts","../src/api/models/VisualTest.ts"],"sourcesContent":["/**\n * Filter\n */\n\nexport class Filter {\n name: string;\n value: T;\n operand: string;\n\n constructor(name: string, value: T, operand: string) {\n this.name = name;\n this.value = value;\n this.operand = operand;\n }\n}\n\nexport default Filter;\n","import finka from '@bitbar/finka';\n\nfinka();\n\nexport default {};\n","import {Filter} from './Filter';\nimport './finka';\n\n/**\n * FilterBuilder\n *\n * Builds filter string according to Bitbar Cloud backend convention\n */\nexport class FilterBuilder {\n\n private readonly filters: Array = [];\n\n gt(name: string, value: number): this {\n return this.add(name, value, 'gt');\n }\n\n\n lt(name: string, value: number): this {\n return this.add(name, value, 'lt');\n }\n\n after(name: string, value: Date | number): this {\n return this.add(name, value, 'after', true);\n }\n\n afterorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'afterorequal', true);\n }\n\n before(name: string, value: Date | number): this {\n return this.add(name, value, 'before', true);\n }\n\n beforeorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'beforeorequal', true);\n }\n\n on(name: string, value: any): this {\n return this.add(name, value, 'on');\n }\n\n eq(name: string, value: any): this {\n return this.add(name, value, 'eq');\n }\n\n contains(name: string, value: string): this {\n return this.add(name, value, 'contains');\n }\n\n like(name: string, value: string): this {\n return this.add(name, value, 'like');\n }\n\n notlike(name: string, value: string): this {\n return this.add(name, value, 'notlike');\n }\n\n isnull(name: string): this {\n return this.add(name, undefined, 'isnull');\n }\n\n isnotnull(name: string): this {\n return this.add(name, undefined, 'isnotnull');\n }\n\n in(name: string, value: Array): this {\n return this.add(name, value, 'in', true);\n }\n\n notin(name: string, value: Array): this {\n return this.add(name, value, 'notin', true);\n }\n\n raw(filter: Filter | string | Filter[] | string[]): void {\n const filters = Array.wrap(filter);\n for (const filter of filters) {\n if (this.isFilterPart(filter)) {\n this.filters.push(filter);\n } else {\n throw new SyntaxError(`Filter ${filter} has invalid syntax`);\n }\n }\n }\n\n\n /**\n * Check if given string is proper filter part\n */\n isFilterPart(str: string): boolean {\n return /^[a-zA-Z0-9.]{2,12}_(?:isnull$|(?:gt|lt|(?:after|before)(?:orequal)?|on|eq|contains|like|(?:not)?in)_)/.test(str);\n }\n\n toString(): string {\n const parts: Array = [];\n\n let part: string,\n val: string;\n\n for (const filter of this.filters) {\n if (typeof filter === 'string') {\n part = filter;\n } else {\n val = '';\n if (filter.value.length > 1 || typeof filter.value[0] !== 'undefined') {\n val = `_${filter.value.join('|')}`;\n }\n part = `${filter.name}_${filter.operand}${val}`;\n }\n parts.push(part);\n }\n\n return parts.join(';');\n }\n\n /**\n * Add filter to filters list\n * @param name {string} Name\n * @param value {*} Value\n * @param operand {string} Operand\n * @param [checkNull=false] {boolean} Check null?\n * @returns {FilterBuilder}\n */\n private add(name: string, value: T, operand: string, checkNull = false): this {\n\n let _value = Array.wrap(value);\n\n if (_value.length === 0) {\n return this;\n }\n\n // auto-convert\n for (let i = 0; i < _value.length; i++) {\n const v = _value[i];\n if (typeof v === 'object' && v instanceof Date) {\n _value[i] = v.getTime();\n }\n }\n\n let isNull = false;\n if (checkNull) {\n // check null existence\n for (const v of _value) {\n if (v !== null) {\n continue;\n }\n isNull = true;\n }\n\n if (isNull) {\n _value = _value.filter((item: any) => item !== null);\n operand += 'ornull';\n }\n }\n\n if (operand.endsWith('ornull') && _value.length === 0) {\n operand = 'isnull';\n }\n\n // add filter\n this.filters.push(new Filter>(name, _value, operand));\n\n return this;\n }\n}\n\n\nexport default FilterBuilder;\n","import {Method} from 'axios';\n\n\n/**\n * Allowed methods\n *\n * @type {Array}\n * @default\n */\nexport const ALLOWED_HTTP_METHODS: Array = ['GET', 'POST', 'DELETE'];\n\nexport type QueryParam = string | number | boolean;\nexport type QueryParams = Record>;\n\nexport enum APIOrder {\n asc = 'a',\n desc = 'd'\n}\n\nexport interface CollectionQueryParams extends QueryParams {\n filter: string;\n limit: number;\n offset: number;\n sort: string;\n search: string;\n}\n\nexport type CollectionBasicQueryParams = Omit\n\nexport type NoQueryParams = {\n [key in any]: never;\n}\n\nexport type CollectionResponse = {\n data: Array;\n empty: boolean;\n id: number;\n limit: number;\n next: string;\n offset: number;\n previous: string;\n search: string;\n sort: string;\n total: number;\n}\n\nexport type SimpleCollectionResponse = Pick, 'data' | 'id'>;\nexport type NoData = void;\n","import {AxiosRequestConfig, AxiosResponse, Method} from 'axios';\nimport {stringify} from 'qs';\nimport {API} from '../API';\nimport {ALLOWED_HTTP_METHODS, QueryParams} from './models/HTTP';\nimport {AbortController} from 'node-abort-controller';\n\n\n/**\n * @typeParam RESPONSE HTTP Response return type.\n * @typeParam QUERY_PARAMS Allowed Query Params\n * @typeParam DATA Allowed Data Object\n */\nexport class APIEntity {\n\n root: API;\n\n protected stack: Array = [];\n protected requestConfig: AxiosRequestConfig = {};\n protected ALLOWED_HTTP_METHODS: Array = ALLOWED_HTTP_METHODS;\n protected abortController: AbortController;\n\n /**\n * Constructor\n * @param {APIEntity|object} [parent] - Specifies a parent from which should be inherited properties\n */\n constructor(parent: APIEntity | API) {\n if (parent instanceof APIEntity) {\n this.root = parent.root;\n\n if (Array.isArray(parent.stack)) { //???\n this.push(...parent.stack);\n }\n\n if (parent.requestConfig != null) {\n this.setRequestConfig(parent.requestConfig);\n }\n } else {\n this.root = parent;\n }\n this.abortController = new AbortController();\n }\n\n abortRequest() {\n this.abortController.abort();\n this.abortController = new AbortController();\n }\n\n push(...items: Array): this {\n this.stack = this.stack.concat(items);\n return this;\n }\n\n shift(): this {\n this.stack.shift();\n return this;\n }\n\n restack(...items: Array): this {\n this.stack = items;\n return this;\n }\n\n /**\n * Get first element of the stack\n */\n get first(): string | number {\n return this.stack[0];\n }\n\n /**\n * Get last element of the stack\n */\n get last(): string | number {\n return this.stack[this.stack.length - 1];\n }\n\n /**\n * Set last element of the stack\n */\n set last(val) {\n this.stack[this.stack.length - 1] = val;\n }\n\n toUrl(absolute = false): string {\n let url = `/${this.stack.join('/')}`;\n\n if (absolute) {\n url = this.root.baseUrl + url;\n }\n\n return url;\n }\n\n setRequestConfig(requestConfig: AxiosRequestConfig): this {\n Object.deepAssign(this.requestConfig, requestConfig);\n return this;\n }\n\n removeRequestConfig(key: keyof AxiosRequestConfig): this {\n delete this.requestConfig[key];\n return this;\n }\n\n headers(headers: Record): this {\n const _headers: Record = {};\n\n // Unify/Standarize headers keys\n for (const key in headers) {\n const newKey = key.replace(/(?:^|-)([a-z])/g, (letter) => letter.toUpperCase());\n _headers[newKey] = headers[key];\n }\n\n return this.setRequestConfig({\n headers: _headers\n });\n }\n\n /**\n * Set HTTP method\n */\n method(name: Method): this {\n const NAME: Uppercase = >name.toLocaleUpperCase();\n const isAllowed: boolean = this.ALLOWED_HTTP_METHODS.indexOf(NAME) > -1;\n\n if (!isAllowed) {\n throw new Error(`Method '${NAME}' is not allowed! You can use: ${this.ALLOWED_HTTP_METHODS.join(', ')}`);\n }\n\n return this.setRequestConfig({\n method: NAME\n });\n }\n\n /**\n * Set GET as HTTP method\n */\n get(): this {\n return this.method('GET');\n }\n\n /**\n * Set POST as HTTP method\n */\n post(): this {\n return this.method('POST');\n }\n\n /**\n * Set DELETE as HTTP method\n */\n delete(): this {\n return this.method('DELETE');\n }\n\n /**\n * Set params\n */\n params(params: Pick): this {\n this.setRequestConfig({params});\n return this;\n }\n\n getParams(): Partial {\n return this.requestConfig.params == null ? {} : this.requestConfig.params;\n }\n\n removeParam(key: keyof QUERY_PARAMS): this {\n delete this.requestConfig.params[key];\n return this;\n }\n\n /**\n * Set data\n */\n data(data: DATA): this {\n this.setRequestConfig({data});\n return this;\n }\n\n /**\n * Set JSON data\n */\n jsonData(data: DATA): this {\n this.headers({\n 'Content-Type': 'application/json'\n }).data(data);\n return this;\n }\n\n /**\n * Set form data\n */\n formData(data: DATA): this {\n this.headers({\n 'Content-Type': 'multipart/form-data'\n }).data(data);\n return this;\n }\n\n /**\n * Send request\n */\n send(): Promise> {\n const requestConfig = Object.deepAssign({}, this.requestConfig, {\n url: `/${this.stack.join('/')}`,\n signal: this.abortController.signal\n });\n\n // Set default headers\n if (requestConfig.headers == null) {\n requestConfig.headers = {};\n }\n\n 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 = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = {indexes: false};\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {\n APIOrder,\n CollectionBasicQueryParams,\n CollectionQueryParams,\n CollectionResponse,\n NoQueryParams,\n SimpleCollectionResponse\n} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport type APIListQuery = CollectionBasicQueryParams | CollectionQueryParams | NoQueryParams;\n\nexport class APIList\n extends APIEntity | SimpleCollectionResponse, QUERY_PARAMS, DATA> {\n\n /**\n * Shortcut for sending data POST\n */\n create(data: DATA): Promise> {\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 */\n sort(name: string, order: APIOrder = APIOrder.asc): this {\n return this.params<'sort'>({\n sort: `${name}_${order}`\n });\n }\n\n /**\n * Sets limit\n *\n * @public\n * @param {number} [limit=DEFAULT_LIMIT] - Limit to be set\n * @returns this\n */\n limit(limit = DEFAULT_LIMIT): this {\n if (!Number.isNatural(limit)) {\n throw new Error(`Limit '${limit}' is invalid!`);\n }\n\n return this.params<'limit'>({\n limit\n });\n }\n\n /**\n * Gets limit\n *\n * @public\n * @returns number\n */\n getLimit(): number {\n const params = this.getParams();\n return params.limit == null ? DEFAULT_LIMIT : params.limit;\n }\n\n /**\n * Disables limit\n *\n * @public\n * @returns this\n */\n noLimit(): this {\n return this.limit(0);\n }\n\n /**\n * Sets offset\n *\n * @public\n * @param {number} [offset=DEFAULT_OFFSET] - Offset to be set\n * @returns this\n */\n offset(offset: number = DEFAULT_OFFSET): this {\n if (!Number.isNatural(offset)) {\n throw new Error(`Offset '${offset}' is invalid!`);\n }\n\n return this.params<'offset'>({\n offset\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE records between range\n *\n * @public\n * @param {number} from - From index\n * @param {number} to - To index\n * @returns this\n */\n between(from: number, to: number): this {\n if (!Number.isNatural(from)) {\n throw new Error(`From '${from}' is invalid!`);\n }\n\n if (!Number.isNatural(to)) {\n throw new Error(`To '${to}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: from,\n limit: 1 + (to - from)\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE one record on given index\n *\n * @public\n * @param {number} idx - Index\n * @returns this\n */\n only(idx: number): this {\n if (!Number.isNatural(idx)) {\n throw new Error(`Index '${idx}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: idx,\n limit: 1\n });\n }\n\n /**\n * Gets current limit and sets offset so that will request from BE one page of records\n *\n * @public\n * @param {number} [page=1] - Page number (counted from 1)\n * @returns this\n */\n page(page = 1): this {\n if (!Number.isNatural(page) || page == 0) {\n throw new Error(`Page '${page}' is invalid!`);\n }\n\n const limit = this.getLimit();\n const offset = (page - 1) * limit;\n\n return this.params<'offset' | 'limit'>({\n offset,\n limit\n });\n }\n\n /**\n * Sets search\n *\n * query param is working like SQL LIKE. BE sets wraps around query with %, and replaces every white character\n * with %. So e.g. if query='my device', then it's searching for '%my%device%' in DB.\n *\n * @public\n * @param {string} query - Query to search for\n * @returns this\n */\n search(query: string): this {\n if (typeof query !== 'string') {\n throw new Error('Search query must be a string!');\n }\n\n return this.params<'search'>({\n search: query\n });\n }\n\n /**\n * Sets filter\n *\n * @public\n * @param {FilterBuilder|string} filter - Filter\n * @returns this\n */\n filter(filter: FilterBuilder | string): this {\n const isFilterBuilder = filter instanceof FilterBuilder;\n\n if (typeof filter !== 'string' && !isFilterBuilder) {\n throw new Error('Filter must be either string or instance of FilterBuilder');\n }\n\n return this.params<'filter'>({\n filter: filter.toString()\n });\n }\n\n /**\n * Alias for 'noLimit'\n *\n * @public\n * @see noLimit\n * @returns this\n */\n all: typeof APIList.prototype.noLimit = this.noLimit;\n\n /**\n * Alias for 'between'\n *\n * @public\n * @param {number} from - From idx\n * @param {number} to - To idx\n * @returns this\n */\n cut: typeof APIList.prototype.between = this.between;\n}\n\nexport default APIList;\n","import {APIEntity} from './APIEntity'\nimport {QueryParams} from './models/HTTP';\n\n\n/**\n * APIResource\n *\n * @class\n * @extends APIEntity\n */\nexport class APIResource\n extends APIEntity {\n}\n\n\nexport default APIResource;\n","import {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {CleanupConfigurationData, SpecificCleanupConfigurationQueryParams} from './models/CleanupConfiguration';\nimport {DeviceCleanupConfiguration} from './models/Device';\nimport {CollectionQueryParams, NoData} from './models/HTTP';\n\n\nexport class APIListCleanupConfigurations extends APIList {\n\n /**\n * /cleanup-configurations\n */\n constructor(parent: APIAdminListDevices) {\n super(parent);\n this.push('cleanup-configurations');\n }\n\n // /cleanup-configurations/specific\n specific() {\n return new APIResource, NoData>(this)\n .push('specific');\n }\n\n}\n\nexport default APIListCleanupConfigurations\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIResource} from './APIResource'\nimport {CleanupConfigurationSpecificData, DeviceCleanupConfiguration} from './models/Device';\nimport {NoData} from './models/HTTP';\nimport APIList from './APIList';\n\n\nexport class APIResourceCleanupConfiguration extends APIResource {\n //shuldn't it be APIAdminResourceCleanupConfiguration\n\n /**\n * admin/devices/cleanup-configurations/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('cleanup-configurations', id);\n }\n\n // admin/devices/cleanup-configurations/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIResourceCleanupConfiguration\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIListCleanupConfigurations} from './APIListCleanupConfigurations';\nimport {APIResourceCleanupConfiguration} from './APIResourceCleanupConfiguration';\nimport {AdminDevice, AdminDeviceData, AdminDevicesQueryParams} from './models/AdminDevice';\n\n\nexport class APIAdminListDevices extends APIList {\n\n /**\n * /admin/devices\n */\n constructor(parent: APIAdminResource | API) {\n super(parent);\n this.push('admin', 'devices');\n }\n\n // /admin/devices/cleanup-configurations\n cleanupConfigurations() {\n return new APIListCleanupConfigurations(this);\n }\n\n // /admin/devices/cleanup-configurations/{id}\n cleanupConfiguration(id: number) {\n return new APIResourceCleanupConfiguration(this, id);\n }\n\n}\n\nexport default APIAdminListDevices;\n","import {Method} from 'axios';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {RunsConfigParams, TestRunConfig} from './models/TestRun';\n\nexport class APIAdminListRuns extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET'];\n\n /**\n * /admin/runs\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'runs');\n }\n\n // /runs/config\n config() {\n const apiResource = new APIResource(this);\n apiResource.restack('runs', 'config');\n return apiResource;\n }\n\n}\n\n\nexport default APIAdminListRuns\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {AdminServicesParams, Service} from './models/Service';\n\n\nexport class APIAdminListServices extends APIList {\n\n /**\n * /admin/services\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'services');\n }\n\n active() {\n const apiList = new APIList(this);\n apiList.params<'notArchived'>({\n notArchived: true\n });\n return apiList;\n }\n\n activated() {\n const apiList = this.active();\n apiList.params<'filter' | 'limit' | 'sort'>({\n filter: 'activated_eq_true',\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n inUse() {\n const apiList = new APIList(this);\n apiList.params<'inUse' | 'limit' | 'sort'>({\n inUse: true,\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n byPrice() {\n const apiList = new APIList(this);\n apiList.params<'sort'>({\n sort: 'centPrice_a'\n })\n return apiList;\n }\n\n}\n\nexport default APIAdminListServices;\n","import {AxiosResponse} from 'axios';\n\nexport function NonRequestable(constructor: T) {\n return class extends constructor {\n send(): Promise {\n return Promise.reject();\n }\n };\n}\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AdminFrameworkStatistics, AdminStatisticsParams} from './models/AdminFrameworkStatistics';\nimport {NoData} from './models/HTTP';\n\n\n@NonRequestable\nexport class APIAdminListStatistics extends APIList {\n\n /**\n * /admin/statistics\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'statistics');\n }\n\n // /admin/statistics/frameworks\n frameworks() {\n return new APIList(this).push('frameworks');\n }\n\n\n}\n\n\nexport default APIAdminListStatistics\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {\n Account, AccountData,\n AccountUsage,\n AccountUsageParams,\n AccountUsageSummary,\n AccountUsageSummaryParams\n} from './models/Account';\nimport {NoData, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\nimport {Role, RoleData, RoleParams} from './models/Role';\nimport {AccountService} from './models/AccountService';\nimport {AccountPreferences, AccountPreferencesData} from './models/AccountPreference';\n\n\nexport class APIAdminResourceAccount extends APIResource {\n\n /**\n * /admin/accounts/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'accounts', id);\n }\n\n // /admin/accounts/{id}/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /admin/accounts/{id}/roles/{id}\n role(id: number) {\n return new APIResource(this).push('roles', id);\n }\n\n // /admin/accounts/{id}/account-services\n accountServices() {\n return new APIList(this).push('account-services');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource(this).push('preferences');\n }\n\n // /admin/accounts/{id}/usage\n usage() {\n return new APIList, AccountUsageParams>(this).push('usage');\n }\n\n // /admin/accounts/{id}/usage-summary\n usageSummary() {\n return new APIResource(this).push('usage-summary');\n }\n\n}\n\nexport default APIAdminResourceAccount\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {AccountService} from './models/AccountService';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIAdminResourceAccountService extends APIResource {\n\n /**\n * /admin/account-services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'account-services', id);\n }\n\n // /account-services/{id}/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n // /account-services/{id}/deactivate\n deactivate() {\n return new APIResource(this).push('deactivate').post();\n }\n\n}\n\nexport default APIAdminResourceAccountService\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice} from './models/AdminDevice';\nimport {Cluster, ClusterData, ClusterParams} from './models/Cluster';\n\n\nexport class APIAdminResourceCluster extends APIResource {\n\n /**\n * /clusters/{id}\n */\n constructor(parent: API | APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('clusters', id);\n }\n\n // /clusters/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIAdminResourceCluster\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice, AdminDeviceData} from './models/AdminDevice';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\n\n /**\n * /admin/devices/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'devices', id);\n }\n\n // /admin/devices/{id}/cleanup-configuration\n cleanupConfiguration() {\n return new APIResource(this).push('cleanup-configuration');\n }\n\n // /admin/devices/{id}/labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /admin/devices/{id}/labels/{id}\n label(id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\nimport {AdminDeviceSession} from './models/AdminDeviceSession';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\n\n /**\n * /admin/device-models/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'device-models', id);\n }\n\n // /admin/device-models/{id}/browsers\n browsers() {\n return new APIList(this).push('browsers');\n }\n\n // /admin/device-models/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDeviceModel;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {NoData} from '../models/HTTP';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\n\n\n@NonRequestable\nexport class InputFileset extends APIResource {\n\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('input-file-set');\n }\n\n /**\n * @remarks Endpoint /input-file-set/files\n */\n files() {\n return new APIList(this).push('files');\n }\n\n /**\n * @remarks Endpoint /input-file-set/files.zip\n */\n filesZip() {\n return new APIResource(this).push('files.zip');\n }\n}\n\nexport default InputFileset\n","// Create image files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const IMAGE_FILES_FILTER = new FilterBuilder();\nIMAGE_FILES_FILTER.eq('state', 'READY');\nIMAGE_FILES_FILTER.in('mimetype', [\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif'\n]);\nIMAGE_FILES_FILTER.notlike('name', 'action-%%');\n","// Create non-media files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const NON_MEDIA_FILES_FILTER = new FilterBuilder();\nNON_MEDIA_FILES_FILTER.eq('state', 'READY');\nNON_MEDIA_FILES_FILTER.notin('mimetype', [\n // no images\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif',\n\n // no videos\n 'video/mp4', 'video/avi', 'video/webm', 'video/ogg', 'video/mpeg'\n]);\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {UserFile} from './models/UserFile';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {IMAGE_FILES_FILTER} from './class/Images.filter';\nimport {NON_MEDIA_FILES_FILTER} from './class/NonMedia.filter';\n\n\nexport class APIListOutputFiles extends APIList {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n performance(): this {\n return this.params({\n tag: ['performance']\n })\n }\n\n images(): this {\n return this.filter(IMAGE_FILES_FILTER);\n }\n\n // Filter files out by non-media\n nonMediaFiles(): this {\n return this.filter(NON_MEDIA_FILES_FILTER);\n }\n\n // Filter files out by ready videos\n videos(): this {\n return this.params({\n filter: 's_state_eq_READY',\n tag: ['video']\n });\n }\n}\n\nexport default APIListOutputFiles;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {Screenshot} from '../models/Screenshot';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\nimport APIListOutputFiles from '../APIListOutputFiles';\n\n\n@NonRequestable\nexport class OutputFileset extends APIResource {\n\n /**\n * /output-file-set\n *\n * Constructor\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('output-file-set');\n }\n\n // /output-file-set/files\n files() {\n return new APIListOutputFiles(this);\n }\n\n // /output-file-set/files/{id}\n file(id: number) {\n return new APIResource(this).push('files', id);\n }\n\n // /output-file-set/files.zip\n filesZip() {\n return new APIResource(this).push('files.zip');\n }\n\n // /output-file-set/screenshots\n screenshots() {\n return new APIList(this).push('screenshots');\n }\n\n // /output-file-set/screenshots/{id}\n screenshot(id: number) {\n return new APIResource(this).push('screenshots', id);\n }\n\n // /output-file-set/screenshots/{id}/file/{id}\n screenshotFile(id: number) {\n return this.screenshot(id).push('file');\n }\n}\n\nexport default OutputFileset\n","import {Screenshot} from './models/Screenshot';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\n\nexport class APIListScreenshots extends APIList {\n\n /**\n * screenshots\n */\n constructor(parent: APIResourceDeviceSessionCommon) {\n super(parent);\n this.push('screenshots');\n }\n}\n\nexport default APIListScreenshots\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {InputFileset} from './class/InputFileset'\nimport {OutputFileset} from './class/OutputFileset'\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\nimport {\n DeviceSession,\n DeviceSessionCommand,\n DeviceSessionStep,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport APIListScreenshots from './APIListScreenshots';\n\n\nexport class APIResourceDeviceSessionCommon extends APIResource implements DeviceSessionCommon {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/commands\n commands() {\n return new APIList(this).push('commands');\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource(this).push('release').post();\n }\n\n // /device-sessions/{id}/screenshots\n screenshots() {\n return new APIListScreenshots(this);\n }\n\n // /device-sessions/{id}/screenshots/{id}\n screenshot(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /device-sessions/{id}/steps\n steps() {\n return new APIList(this).push('steps');\n }\n\n // /device-sessions/{id}/steps/{id}\n step(id: number | 'current') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('steps', id);\n }\n\n // /device-sessions/{id}/steps/current\n currentStep() {\n return this.step('current');\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n logs() {\n return new APIResource(this).push('logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n clusterLogs() {\n return new APIResource(this).push('cluster-logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n}\n\nexport default APIResourceDeviceSessionCommon\n","import {APIResource} from '../APIResource';\nimport APIResourceDeviceSessionCommon from '../APIResourceDeviceSessionCommon';\nimport {DeviceSession} from '../models/DeviceSession';\n\nexport function postAdminDeviceSessionChangeBillable(parent: APIResourceDeviceSessionCommon, billable: boolean) {\n const apiResource = new APIResource(parent);\n const deviceSessionId = apiResource.last;\n\n return apiResource.restack('admin', 'device-sessions', deviceSessionId, 'changebillable').params({\n billable\n }).post();\n}\n\nexport default postAdminDeviceSessionChangeBillable;\n","import {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {postAdminDeviceSessionChangeBillable} from './factory/postAdminDeviceSessionChangeBillable';\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\n\n\n/**\n * APIAdminResourceDevice\n *\n *\n * It will require more work to decouple from regular session\n */\nexport class APIAdminResourceDeviceSessionStandalone extends APIResourceDeviceSessionCommon implements DeviceSessionCommon {\n\n // /admin/device-sessions/{id}/changebillable\n changeBillable(billable: boolean) {\n return postAdminDeviceSessionChangeBillable(this, billable);\n }\n}\n\nexport default APIAdminResourceDeviceSessionStandalone;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NoData} from './models/HTTP';\nimport {DeviceTimeParams, UserDeviceTime} from './models/UserDeviceTime';\n\nexport class APIAdminResourceDeviceTime extends APIList {\n\n /**\n * /admin/device-time\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'device-time');\n }\n}\n\nexport default APIAdminResourceDeviceTime\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Framework, FrameworkConfigData, FrameworkEditData} from './models/Framework';\nimport {NoQueryParams} from './models/HTTP';\nimport {ProjectJobConfig} from './models/ProjectJobConfig';\nimport {Role} from './models/Role';\n\nexport class APIAdminResourceFramework extends APIResource {\n\n /**\n * /admin/frameworks/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'frameworks', id);\n }\n\n // /admin/frameworks/{id}/config\n config() {\n return new APIResource(this).push('config');\n }\n\n // /admin/frameworks/{id}/required-roles\n requiredRoles() {\n return new APIList(this).push('required-roles');\n }\n\n}\n\nexport default APIAdminResourceFramework\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\n\nexport class APIAdminResourceLicense extends APIResource {\n\n /**\n * /licenses/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'licenses', id);\n }\n\n // /licenses/{id}/activate\n activate() {\n return new APIResource(this).push('activate');\n }\n\n // /licenses/{id}/deactivate\n deactivate() {\n return new APIResource(this).push('deactivate');\n }\n\n // /licenses/{id}/resend\n resend() {\n return new APIResource(this).push('resend');\n }\n\n // /licenses/{id}/download\n download() {\n return new APIResource(this).push('download');\n }\n\n}\n\nexport default APIAdminResourceLicense\n","import {APIEntity} from '../APIEntity';\nimport {APIResource} from '../APIResource';\nimport {BuildLogsData, BuildLogsParams} from '../models/UserFile';\n\nexport function postDeviceRunIds(parent: APIEntity, name: string, ids?: Array) {\n const a = new APIResource(parent).push(name);\n\n if (ids != null) {\n a.params<'deviceRunIds'>({\n deviceRunIds: ids\n });\n }\n\n return a.post();\n}\n\nexport default postDeviceRunIds;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun, RunChangeBillableParams, RunChangePriorityParams} from './models/AdminTestRun';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceRunStandalone extends APIResource {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/changebillable\n changeBillable(billable: boolean) {\n return new APIResource(this).push('changebillable').post().params({\n billable\n });\n }\n\n // /runs/{id}/changepriority\n changePriority(priority?: number) {\n const resource = new APIResource(this).push('changepriority');\n if (priority) {\n resource.post().data({\n priority\n });\n }\n return resource;\n }\n\n // /admin/runs/{id}/retry\n retry(ids?: Array) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n}\n\nexport default APIAdminResourceRunStandalone;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceActivateData} from './models/Service';\n\n\nexport class APIAdminResourceService extends APIResource {\n\n /**\n * /services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'services', id);\n }\n\n // /services/{id}/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n}\n\nexport default APIAdminResourceService\n","import {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccountService, AccountServiceData} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Role, RoleData} from './models/Role';\nimport {User, UserUpdateAccount} from './models/User';\n\n@NonRequestable\nexport class APIAdminResourceUserAccount extends APIResource {\n\n /**\n * /account\n */\n constructor(parent: APIAdminResourceUser) {\n super(parent);\n this.push('account');\n }\n\n // /account/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /account/roles/{id}\n role(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('roles', id);\n }\n\n // /account-services\n services() {\n const a = new APIList(this);\n a.last += '-services';\n return a;\n }\n\n // /update-account\n 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 {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {InputFileset} from './class/InputFileset';\nimport {OutputFileset} from './class/OutputFileset';\nimport {DeviceSessionStandalone} from './interface/DeviceSessionStandalone';\nimport {Connection, ConnectionData} from './models/Connection';\nimport {DeviceSession, DeviceSessionRelease} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {VisualTest} from './models/VisualTest';\n\nexport class APIResourceDeviceSessionStandalone extends APIResource implements DeviceSessionStandalone {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIResourceUser | APIAdminResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n // /device-sessions/{id}/connections/{id}\n connection(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('connections', id);\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource(this).push('release').post();\n }\n\n // /device-sessions/{id}/visual-tests/images\n visualTestsImages() {\n return new APIList(this).push('visual-tests', 'images');\n }\n\n}\n\nexport default APIResourceDeviceSessionStandalone\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIAdminResourceUserAccount} from './APIAdminResourceUserAccount';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\nimport {Role, RoleData, RoleParams} from './models/Role';\nimport {User} from './models/User';\n\n\n@NonRequestable\nexport class APIAdminResourceUser extends APIResource {\n\n /**\n * /admin/users/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'users', id);\n }\n\n // /admin/users/{id}/disable\n disable() {\n return new APIResource(this).push('disable');\n }\n\n // /admin/users/{id}/enable\n enable() {\n return new APIResource(this).push('enable');\n }\n\n // /admin/users/{id}/licenses\n licenses() {\n return new APIList(this).push('licenses');\n }\n\n // /admin/users/{id}/resend-activation\n resendActivation() {\n return new APIResource(this).push('resend-activation').post();\n }\n\n // /admin/users/{id}/account\n account() {\n return new APIAdminResourceUserAccount(this);\n }\n\n // /admin/users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /admin/users/{id}/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /admin/users/{id}/roles/{id}\n role(id: number) {\n return new APIResource(this).push('roles', id);\n }\n\n}\n\nexport default APIAdminResourceUser;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccessGroup, AccessGroupUsersQueryParams} from './models/AccessGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {SharedResource} from './models/SharedResource';\nimport {User, UserData} from './models/User';\n\nexport class APIResourceAccessGroup extends APIResource {\n\n /**\n * /access-groups/{id}\n *\n */\n constructor(parent: APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('access-groups', id);\n }\n\n // /access-groups/{id}/users\n users() {\n return new APIList(this).push('users');\n }\n\n // /access-groups/{id}/users/{id}\n user(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('users', id);\n }\n\n // /access-groups/{id}/resources\n resources() {\n return new APIList(this).push('resources');\n }\n\n // /access-groups/{id}/resources/{id}\n resource(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('resources', id);\n }\n\n}\n\nexport default APIResourceAccessGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport APIResourceUser from './APIResourceUser';\nimport {Device, DeviceProperty} from './models/Device';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupParams, DeviceGroupSelectorData} from './models/DeviceGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {ShareData, SharedResource} from './models/SharedResource';\n\nexport class APIResourceDeviceGroup extends APIResource {\n\n /**\n * /device-groups/{id}\n */\n constructor(parent: APIAdminResource | APIResourceUser | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-groups', id);\n }\n\n // /device-groups/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n // /device-groups/{id}/devices/{id}\n device(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('devices', id);\n }\n\n // /device-groups/{id}/selectors\n selectors() {\n return new APIList(this).push('selectors');\n }\n\n // /device-groups/{id}/selectors/{id}\n selector(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('selectors', id);\n }\n\n // /device-groups/{id}/share\n share() {\n return new APIList(this).push('share');\n }\n\n}\n\nexport default APIResourceDeviceGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport {Property} from './models/Property';\nimport {ShareData, SharedResource} from './models/SharedResource';\nimport {FileSizeData, UserFile, UserFileTag} from './models/UserFile';\n\n\nexport class APIResourceFile extends APIResource {\n\n /**\n * /files/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('files', id);\n }\n\n // use this to download file content\n // /files/{id}/file\n file() {\n return new APIResource(this).push('file');\n }\n\n // /files/{id}/icon\n icon() {\n return new APIResource(this).push('icon');\n }\n\n // /files/{id}/tags\n tags() {\n return new APIList(this).push('tags');\n }\n\n share() {\n return new APIList(this).push('share');\n }\n\n property(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('properties', id);\n }\n\n}\n\nexport default APIResourceFile\n","import {NoData} from './models/HTTP';\nimport {TestCaseRun} from './models/TestCaseRun';\nimport APIList, {APIListQuery} from './APIList';\nimport {SessionQueryParams} from './models/DeviceSession';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\n\nexport class APIListTestCaseRuns extends APIList {\n\n /**\n * /test-case-runs\n */\n constructor(parent: APIResourceDeviceSessionCommon) {\n super(parent);\n this.push('test-case-runs');\n }\n}\n\nexport default APIListTestCaseRuns\n","import {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession as DeviceSessionModel, SessionQueryParams} from './models/DeviceSession';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\nimport {APIListQuery} from './APIList';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n // /device-sessions/{id}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\n }\n}\n\nexport default APIResourceDeviceSession\n","import {DeviceSession} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceRunCommon from './APIResourceRunCommon';\n\n\nexport class APIListTestRunDeviceSessions extends APIList {\n\n /**\n * device-sessions\n */\n constructor(parent: APIResourceRunCommon) {\n super(parent);\n this.push('device-sessions');\n }\n}\n\nexport default APIListTestRunDeviceSessions\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {DeviceSessionStep} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {RunData, RunQueryParam, TestRun, TestRunData} from './models/TestRun';\nimport {TestRunDataAvailability, TestRunDataAvailabilityQueryParams} from './models/TestRunDataAvailability';\nimport {UserFile} from './models/UserFile';\nimport APIListTestRunDeviceSessions from './APIListTestRunDeviceSessions';\n\n\nexport class APIResourceRunCommon extends APIResource {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/build-logs.zip\n buildLogsZip(ids?: Array) {\n return postDeviceRunIds(this, 'build-logs.zip', ids);\n }\n\n // /runs/{id}/data-availability\n dataAvailability() {\n return new APIResource(this).push('data-availability');\n }\n\n // /runs/{id}/device-sessions\n deviceSessions() {\n return new APIListTestRunDeviceSessions(this);\n }\n\n // /runs/{id}/files.zip\n filesZip(ids?: Array) {\n return postDeviceRunIds(this, 'files.zip', ids);\n }\n\n // /runs/{id}/logs.zip\n logsZip(ids?: Array) {\n return postDeviceRunIds(this, 'logs.zip', ids);\n }\n\n // /runs/{id}/performance.zip\n performanceZip(ids?: Array) {\n return postDeviceRunIds(this, 'performance.zip', ids);\n }\n\n // /runs/{id}/retry\n retry(ids?: Array) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n // /runs/{id}/screenshots.zip\n screenshotsZip(ids?: Array) {\n return postDeviceRunIds(this, 'screenshots.zip', ids);\n }\n\n // /runs/{id}/steps\n steps() {\n return new APIList(this).push('steps');\n }\n\n}\n\nexport default APIResourceRunCommon\n","import {APIResourceDeviceSession} from './APIResourceDeviceSession'\nimport {APIResourceRunCommon} from './APIResourceRunCommon'\nimport {CollectionQueryParams} from './models/HTTP';\n\nexport class APIResourceRun extends APIResourceRunCommon {\n\n // /runs/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n}\n\nexport default APIResourceRun\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceRun} from './APIResourceRun'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Project} from './models/Project';\nimport {ShareData, SharedResource} from './models/SharedResource';\nimport {TestRun} from './models/TestRun';\n\nexport class APIResourceProject extends APIResource {\n\n /**\n * /projects/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('projects', id);\n }\n\n // /projects/{id}/runs\n runs() {\n return new APIList(this).push('runs');\n }\n\n // /projects/{id}/runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n share() {\n return new APIList(this).push('share');\n }\n\n // /unarchive\n unarchive() {\n return new APIResource(this).push('unarchive');\n }\n\n}\n\nexport default APIResourceProject\n","import {API} from '../API';\nimport {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIAdminListRuns} from './APIAdminListRuns';\nimport {APIAdminListServices} from './APIAdminListServices';\nimport {APIAdminListStatistics} from './APIAdminListStatistics';\nimport APIAdminResourceAccount from './APIAdminResourceAccount';\nimport {APIAdminResourceAccountService} from './APIAdminResourceAccountService';\nimport {APIAdminResourceCluster} from './APIAdminResourceCluster';\nimport {APIAdminResourceDevice} from './APIAdminResourceDevice';\nimport {APIAdminResourceDeviceModel} from './APIAdminResourceDeviceModel';\nimport {APIAdminResourceDeviceSessionStandalone} from './APIAdminResourceDeviceSessionStandalone';\nimport {APIAdminResourceDeviceTime} from './APIAdminResourceDeviceTime';\nimport {APIAdminResourceFramework} from './APIAdminResourceFramework';\nimport {APIAdminResourceLicense} from './APIAdminResourceLicense';\nimport {APIAdminResourceRunStandalone} from './APIAdminResourceRunStandalone';\nimport {APIAdminResourceService} from './APIAdminResourceService';\nimport {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceFile} from './APIResourceFile'\nimport {APIResourceProject} from './APIResourceProject';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccessGroup, AccessGroupData} from './models/AccessGroup';\nimport {Account} from './models/Account';\nimport {AccountService} from './models/AccountService';\nimport {Activity} from './models/Activity';\nimport {AdminDeviceSession, AdminInteractiveDeviceSession} from './models/AdminDeviceSession';\nimport {AdminDeviceType, DeviceTypeData} from './models/AdminDeviceType';\nimport {AdminEmail} from './models/AdminEmail';\nimport {Administrator} from './models/Administrator';\nimport {AdminOverview} from './models/AdminOverview';\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {Browser, BrowserData} from './models/Browser';\nimport {DeviceModelCriterion, DeviceModelCriterionData} from './models/DeviceModelCriterion';\nimport {DeviceModelPool, DeviceModelPoolData} from './models/DeviceModelPool';\nimport {Framework, FrameworkData} from './models/Framework';\nimport {License, LicenseData} from './models/License';\nimport {Maintenance, MaintenanceData} from './models/Maintenance';\nimport {Project} from './models/Project';\nimport {Role, RoleParams} from './models/Role';\nimport {Settings, SettingsParams} from './models/Settings';\nimport {User, UserData, UserParams} from './models/User';\nimport {DeviceTimeSummaryParams, UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {UserFile, UserFileData, UserFileParams} from './models/UserFile';\nimport {Cluster} from './models/Cluster';\nimport {DeviceProperty} from './models/Device';\nimport {DeviceGroup} from './models/DeviceGroup';\nimport {DeviceModel} from './models/DeviceModel';\nimport {DeviceProblem} from './models/DeviceProblem';\nimport {DeviceStatus} from './models/DeviceStatus';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n@NonRequestable\nexport class APIAdminResource extends APIResource {\n\n /**\n * /admin\n */\n constructor(parent: API) {\n super(parent);\n }\n\n // /access-groups\n accessGroups() {\n return new APIList(this).push('access-groups');\n }\n\n // /access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /admin/accounts\n accounts() {\n return new APIList(this).push('admin', 'accounts');\n }\n\n // /admin/accounts/{id}\n account(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIAdminResourceAccount(this, id);\n }\n\n // /admin/account-services\n accountServices() {\n return new APIList(this).push('admin', 'account-services');\n }\n\n // /admin/account-services/{id}\n accountService(id: number) {\n return new APIAdminResourceAccountService(this, id);\n }\n\n // activities\n activities() {\n return new APIList(this).push('admin', 'activities');\n }\n\n // admin/administrators\n administrators() {\n return new APIList(this).push('admin', 'administrators');\n }\n\n // /admin/billing-periods\n billingPeriods() {\n return new APIList(this).push('admin', 'billing-periods');\n }\n\n // /admin/billing-periods/{id}\n billingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'billing-periods', id);\n }\n\n // /admin/browsers\n browsers() {\n return new APIList(this).push('admin', 'browsers');\n }\n\n // /clusters\n clusters() {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /admin/devices\n devices() {\n return new APIAdminListDevices(this);\n }\n\n // /admin/devices/{id}\n device(id: number) {\n return new APIAdminResourceDevice(this, id);\n }\n\n devicesForModel(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n const apiList = this.devices();\n apiList.params({\n filter: 'deviceModelId_eq_' + id\n });\n return apiList;\n }\n\n // /admin/device/statuses\n deviceStatuses() {\n return new APIList(this).push('admin', 'device', 'statuses');\n }\n\n // /admin/device-models\n deviceModels() {\n return new APIList(this).push('admin', 'device-models');\n }\n\n // /admin/device-models/{id}\n deviceModel(id: number) {\n return new APIAdminResourceDeviceModel(this, id);\n }\n\n // /admin/device-problems\n deviceProblems() {\n return new APIList(this).push('admin', 'device-problems');\n }\n\n // /admin/device-model-criteria\n deviceModelCriterias() {\n return new APIList(this).push('admin', 'device-model-criteria');\n }\n\n // /admin/device-model-criteria/{id}\n deviceModelCriteria(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'device-model-criteria', id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('admin', 'device-sessions');\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIAdminResourceDeviceSessionStandalone(this, id);\n }\n\n // /device-time\n deviceTime() {\n return new APIAdminResourceDeviceTime(this);\n }\n\n // /device-time-summary\n deviceTimeSummary() {\n return new APIList(this).push('admin', 'device-time-summary');\n }\n\n // /device-types\n deviceTypes() {\n return new APIList(this).push('admin', 'device-types');\n }\n\n // /device-types/{id}\n deviceType(id: number) {\n return new APIResource(this).push('admin', 'device-types', id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /admin/emails\n emails() {\n return new APIList(this).push('admin', 'emails');\n }\n\n // /admin/emails/{id}/resend\n resendEmail(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'emails', id, 'resend').post();\n }\n\n // /files\n files() {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /admin/frameworks\n frameworks() {\n return new APIList(this).push('admin', 'frameworks');\n }\n\n // /admin/frameworks/{id}\n framework(id: number) {\n return new APIAdminResourceFramework(this, id);\n }\n\n // /admin/frameworks/available-labels\n frameworkAvailableLabels() {\n const apiList = this.frameworks();\n apiList.push('available-labels');\n return apiList;\n }\n\n // /admin/interactive-queue\n interactiveQueue() {\n return new APIList(this).push('admin', 'interactive-queue');\n }\n\n // /admin/licenses\n licenses() {\n return new APIList(this).push('admin', 'licenses');\n }\n\n // /admin/licenses/{id}\n license(id: number) {\n return new APIAdminResourceLicense(this, id);\n }\n\n // /admin/maintenance\n maintenance() {\n return new APIResource(this).push('admin', 'maintenance');\n }\n\n // /admin/overview\n overview() {\n return new APIResource(this).push('admin', 'overview');\n }\n\n pools() {\n return new APIList(this).push('admin', 'pools');\n }\n\n pool(id: number) {\n return new APIResource(this).push('admin', 'pools', id);\n }\n\n // /projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /admin/roles\n roles() {\n return new APIList(this).push('admin', 'roles');\n }\n\n // /admin/runs\n runs() {\n return new APIAdminListRuns(this);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIAdminResourceRunStandalone(this, id);\n }\n\n // /admin/samples\n samples() {\n return new APIList>(this).push('admin', 'samples');\n }\n\n // /admin/samples/{id}\n sample(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'samples', id);\n }\n\n // /admin/services\n services() {\n return new APIAdminListServices(this);\n }\n\n // /admin/services/{id}\n service(id: number) {\n return new APIAdminResourceService(this, id);\n }\n\n // /admin/settings\n settings() {\n return new APIResource(this).push('admin', 'settings');\n }\n\n // /admin/statistics\n statistics() {\n return new APIAdminListStatistics(this);\n }\n\n // /users\n users() {\n return new APIList(this).push('users');\n }\n\n // /admin/users\n createUser() {\n return new APIList(this).push('admin', 'users').post();\n }\n\n // /users/{id}\n user(id: number) {\n return new APIAdminResourceUser(this, id);\n }\n\n}\n\nexport default APIAdminResource;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {DesktopBrowserCapabilities} from './models/DesktopBrowserCapabilities';\nimport {Device, DevicesQueryParams} from './models/Device';\nimport {DevicePicker} from './models/DeviceFilter';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIListDevices extends APIList {\n\n /**\n * /devices\n */\n constructor(parent: API) {\n super(parent);\n this.push('devices');\n }\n\n // /devices/filters\n filters() {\n return new APIResource>(this).push('filters');\n }\n\n // /devices/desktop-browser-capabilities\n desktopBrowserCapabilities() {\n return new APIResource(this).push('desktop-browser-capabilities');\n }\n\n}\n\nexport default APIListDevices;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {CollectionQueryParams} from './models/HTTP';\nimport {Property, PropertyData} from './models/Property';\n\n\nexport class APIListProperties extends APIList {\n\n /**\n * /properties\n */\n constructor(parent: API) {\n super(parent);\n this.push('properties');\n }\n\n maintenance() {\n return new APIList(this).params({\n filter: 'name_eq_CLOUD_HEADER_ANNOUNCEMENT',\n limit: 1,\n sort: 'updateTime_d'\n });\n }\n\n}\n\nexport default APIListProperties\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceData} from './models/Service';\n\n\nexport class APIListServices extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['POST'];\n\n /**\n * /services\n */\n constructor(parent: API | APIResourceUser) {\n super(parent);\n this.push('services');\n }\n\n // /services/available\n available() {\n return new APIList(this).push('available');\n }\n\n active() {\n const apiList = new APIList(this);\n if (this.first === 'me') {\n apiList.push('active');\n } else {\n apiList.params({\n notArchived: true\n });\n }\n return apiList;\n }\n\n byPrice() {\n return new APIList(this).sort('centPrice');\n }\n\n availableByPrice() {\n return new APIList(this).push('available').sort('centPrice');\n }\n\n}\n\nexport default APIListServices\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {\n User,\n UserActivateData,\n UserData,\n UserPasswordData,\n UserRecoveryQueryParams,\n} from './models/User';\n\n\nexport class APIListUsers extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET', 'POST'];\n\n /**\n * /users\n */\n constructor(parent: API) {\n super(parent);\n this.push('users');\n }\n\n // /users/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n // /users/recoveries\n recoveries() {\n return new APIResource(this).push('recoveries');\n }\n\n // /users/passwordRecovery\n passwordRecovery() {\n return new APIResource(this).push('password-recovery');\n }\n\n}\n\nexport default APIListUsers;\n","import {APIResource} from './APIResource'\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {APIResourceAccount} from './APIResourceAccount';\n\n\n\n\nexport class APIResourceBillingPeriod extends APIResource {\n\n /**\n * /billing-periods/{id}\n */\n constructor(parent: APIResourceAccount, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('billing-periods', id);\n }\n\n // /billing-periods/{id}/receipt\n receipt() {\n return new APIResource(this).push('receipt').setRequestConfig({\n responseType: 'arraybuffer'\n });\n }\n\n}\n\nexport default APIResourceBillingPeriod\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceBillingPeriod} from './APIResourceBillingPeriod';\nimport {\n Account,\n AccountData,\n AccountSessionUsage,\n AccountSessionUsageSummary,\n AccountUserSessionUsage\n} from './models/Account';\nimport {AccountConcurrencyStatusMap} from './models/AccountConcurrencyStatusMap';\nimport {AccountPreferences} from './models/AccountPreference';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {AccountServicePayment} from './models/AccountServicePayment';\nimport {BillingPeriod, BillingPeriodQueryParams} from './models/BillingPeriod';\nimport {DeviceTimeSummaryQueryParams} from './models/Device';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams, QueryParams, SimpleCollectionResponse} from './models/HTTP';\nimport {User, UserData} from './models/User';\nimport {DeviceTimeQueryParams, UserDeviceTime} from './models/UserDeviceTime';\nimport {UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {VisualTestAccess} from './models/VisualTest';\n\n\nexport class APIResourceAccount extends APIResource {\n\n /**\n * /accounts/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('accounts', id);\n }\n\n // /accounts/{id}/concurrency-status\n concurrencyStatus() {\n return new APIResource(this).push('concurrency-status');\n }\n\n // /accounts/{id}/device-time\n deviceTime() {\n return new APIList(this).push('device-time');\n }\n\n // /accounts/{id}/device-time-summary\n deviceTimeSummary() {\n return new APIList(this).push('device-time-summary');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource>(this).push('preferences');\n }\n\n // /accounts/{id}/users\n users() {\n return new APIList(this).push('users');\n }\n\n // /accounts/{accountId}/users/{userId}\n removeUser(id: number) {\n return new APIResource(this).push('users', id);\n }\n\n // /accounts/{accountId}/users/{userId}/disable\n disableUser(id: number) {\n return new APIResource(this).push('users', id, 'disable').post();\n }\n\n // /accounts/{accountId}/users/{userId}/enable\n enableUser(id: number) {\n return new APIResource(this).push('users', id, 'enable').post();\n }\n\n // /accounts/{accountId}/users/{userId}/resend-activation\n resendActivation(id: number) {\n return new APIResource(this).push('users', id, 'resend-activation').post();\n }\n\n // /accounts/{accountId}/billing-periods\n billingPeriods() {\n return new APIList(this).push('billing-periods');\n }\n\n // /accounts/{accountId}/billing-periods/{id}\n billingPeriod(id: number) {\n return new APIResourceBillingPeriod(this, id);\n }\n\n // /account-services/{id}/billing-period\n serviceBillingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('account-services', id, 'billing-period');\n }\n\n // /accounts/{accountId}/visual-test/access\n visualTestAccess() {\n return new APIResource(this).push('visual-tests', 'access');\n }\n\n // /accounts/{accountId}/account-services\n accountServices() {\n return new APIList(this).push('account-services');\n }\n\n // /accounts/{accountId}/account-services/{id}\n accountService(id: number) {\n return new APIList(this).push('account-services', id);\n }\n\n // /accounts/{accountId}/services\n services() {\n return new APIResource(this).push('services');\n }\n\n // /accounts/{accountId}/user-usage-details\n userUsageDetails() {\n return new APIList(this).push('user-usage-details');\n }\n\n // /accounts/{accountId}/usage-details\n usageDetails() {\n return new APIList(this).push('usage-details');\n }\n\n // /accounts/{accountId}/usage-details-summary\n usageDetailsSummary() {\n return new APIResource(this).push('usage-details-summary');\n }\n\n}\n\nexport default APIResourceAccount;\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Broker} from './models/Broker';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIResourceBroker extends APIResource {\n\n /**\n * /broker\n */\n constructor(parent: API) {\n\n super(parent);\n this.push('broker');\n }\n\n // /broker/hubs\n hubs() {\n return new APIList(this).push('hubs');\n }\n\n}\n\nexport default APIResourceBroker\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser} from './models/Browser';\nimport {Device, DeviceProperiesData, DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams} from './models/HTTP';\n\n\nexport class APIResourceDevice extends APIResource {\n\n /**\n * /devices/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('devices', id);\n }\n\n // /devices/{id}/properties\n properties() {\n return new APIList(this).push('properties');\n }\n\n browsers() {\n return new APIList(this).push('browsers');\n }\n\n}\n\nexport default APIResourceDevice\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams, NoQueryParams} from './models/HTTP';\nimport {LabelData, LabelGroup} from './models/LabelGroup';\n\nexport class APIResourceLabelGroup extends APIResource {\n\n /**\n * /label-groups/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('label-groups', id);\n }\n\n // /label-groups/{id}/labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /label-groups/{id}/labels/{id}\n label(id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n}\n\nexport default APIResourceLabelGroup\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {FileData, UploadObj, UserFile} from './models/UserFile';\n\n\nexport class APIListFiles extends APIList {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n /**\n * Simplifies process of uploading\n * /files\n */\n upload(obj: UploadObj): this {\n // For NodeJS\n // @ts-ignore\n if (global.isNodeJs) {\n return this.nodeUpload(obj);\n } else {\n /**\n * Browser\n * @todo\n */\n throw new Error('Not supported yet!');\n }\n }\n\n private nodeUpload(file: UploadObj): this {\n const fs = require('fs');\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', fs.createReadStream(file.dir + '/' + file.filename), {\n filename: file.filename\n });\n return this.post().headers(form.getHeaders()).data(form);\n }\n\n}\n\nexport default APIListFiles\n","import {APIList} from './APIList'\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIResource} from './APIResource'\n\n\nexport class APIResourceChannel extends APIResource {\n\n /**\n * /users/{id}/notifications/channels/{type}\n */\n constructor(parent: APIListNotifications, type: string) {\n if (type == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('channels', type);\n }\n\n // /channels/{type}/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n}\n\nexport default APIResourceChannel;\n","import {APIList} from './APIList';\nimport {APIResourceChannel} from './APIResourceChannel';\nimport {APIResourceUser} from './APIResourceUser';\nimport {Enum} from './models/Enum';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Notification, NotificationsData} from './models/Notification';\n\n\nexport class APIListNotifications extends APIList {\n\n /**\n * /notifications\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('notifications');\n }\n\n // /notifications/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n // /notifications/channels\n channels() {\n return new APIList(this).push('channels');\n }\n\n channel(type: string) {\n return new APIResourceChannel(this, type);\n }\n\n}\n\nexport default APIListNotifications\n","import {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {\n RunsConfigParams,\n TestRun,\n TestRunConfig,\n TestRunsQueryParams\n} from './models/TestRun';\n\n\nexport class APIListRuns extends APIList {\n\n /**\n * /runs\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('runs');\n }\n\n // /runs/config\n config() {\n return new APIResource(this).push('config');\n }\n\n}\n\nexport default APIListRuns\n","import {Method} from 'axios';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData} from './models/HTTP';\nimport {SmartbearTunnel, TunnelQueryParams} from './models/SmartbearTunnel';\n\n\nexport class APIListSmartbearTunnels extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET'];\n\n /**\n * /tunnels\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('tunnels');\n }\n\n /**\n * Sets tunnel activity parameter\n */\n active(active: boolean): this {\n return this.params({active: active});\n }\n}\n\nexport default APIListSmartbearTunnels;\n","\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {Notification, NotificationData} from './models/Notification';\n\nexport class APIResourceNotification extends APIResource {\n\n /**\n * /notifications/{id}\n */\n constructor(parent: APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('notifications', id);\n }\n\n // /notifications/{id}/test\n test() {\n return new APIResource(this).push('test');\n }\n\n}\n\nexport default APIResourceNotification\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIListFiles} from './APIListFiles';\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIListRuns} from './APIListRuns';\nimport {APIListServices} from './APIListServices';\nimport {APIListSmartbearTunnels} from './APIListSmartbearTunnels';\nimport {APIResource} from './APIResource';\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {APIResourceFile} from './APIResourceFile';\nimport {APIResourceNotification} from './APIResourceNotification';\nimport {APIResourceProject} from './APIResourceProject';\nimport {AccessGroup, AccessGroupsData} from './models/AccessGroup';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupIdsData, DeviceGroupWithPublicParams} from './models/DeviceGroup';\nimport {DeviceStatistics} from './models/DeviceStatistics';\nimport {DeviceUsage} from './models/DeviceUsage';\nimport {Framework} from './models/Framework';\nimport {Project, UserProjectData, UserProjectQueryParams} from './models/Project';\nimport {MarkAccountOwnerData, User, UserDeleteData} from './models/User';\nimport {UiPreferencesData, UserPreference, UserPreferenceData} from './models/UserPreference';\nimport {StatisticQueryParams, UserStatistics} from './models/UserStatistics';\nimport {DeviceSession, DeviceSessionData, DeviceSessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams, QueryParams} from './models/HTTP';\nimport {DeviceStatisticQueryParam, DeviceUsageQueryParams} from './models/Device';\n\nexport class APIResourceUser extends APIResource {\n\n /**\n * /users/{id} | /me\n */\n constructor(parent: API, id: number | 'me') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n\n if (id === 'me') {\n this.push('me');\n } else if (typeof id === 'number') {\n this.push('users', id);\n } else {\n throw new TypeError('id is not a number');\n }\n }\n\n // /users/{id}/services\n services() {\n return new APIListServices(this);\n }\n\n // /users/{id}/device-groups\n deviceGroups() {\n return new APIList>(this).push('device-groups');\n }\n\n // /users/{id}/device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /users/{id}/device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /users/{id}/mark-account-owner\n markAccountOwner() {\n return new APIResource(this).push('mark-account-owner').post();\n }\n\n // /users/{id}/projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /users/{id}/projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /users/{id}/files\n files() {\n return new APIListFiles(this);\n }\n\n // /users/{id}/files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /users/{id}/runs\n runs() {\n return new APIListRuns(this);\n }\n\n // /users/{id}/available-frameworks\n availableFrameworks() {\n return new APIList(this).push('available-frameworks');\n }\n\n /**\n * /users/{id}/reset-api-key\n */\n resetApiKey() {\n return new APIResource(this).push('reset-api-key');\n }\n\n // /users/{id}/restore\n restore() {\n return new APIResource(this).push('restore');\n }\n\n // /users/{id}/feedback\n feedback() {\n return new APIResource(this).push('feedback');\n }\n\n // /users/{id}/notifications\n notifications() {\n return new APIListNotifications(this);\n }\n\n // /users/{id}/notifications/{id}\n notification(id: number) {\n return new APIResourceNotification(this, id);\n }\n\n // /users/{id}/preferences\n preferences() {\n return new APIResource(this).push('preferences');\n }\n\n // /users/{id}/ui-preferences\n uiPreferences() {\n return new APIResource(this).push('ui-preferences');\n }\n\n // /users/{id}/device-usage\n deviceUsage() {\n return new APIList(this).push('device-usage');\n }\n\n // /users/{id}/statistics\n statistics() {\n return new APIResource(this).push('statistics');\n }\n\n // /users/{id}/device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /users/{id}/access-groups\n accessGroups() {\n return new APIList(this).push('access-groups');\n }\n\n // /users/{id}/access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /users/{id}/tunnels/{id}\n smartbearTunnel(id: number) {\n return new APIResource(this).push('tunnels', id);\n }\n\n // /users/{id}/tunnels\n smartbearTunnels() {\n return new APIListSmartbearTunnels(this);\n }\n\n deleteAccount() {\n return new APIResource(this).push('delete');\n }\n}\n\nexport default APIResourceUser\n","import {API} from '../API';\nimport {APIResource} from './APIResource'\nimport {NoQueryParams} from './models/HTTP';\nimport {LoginData, User} from './models/User';\n\nexport class APIResourceUserSession extends APIResource {\n\n // /user-sessions\n constructor(parent: API) {\n super(parent);\n this.push('user-sessions');\n }\n\n // /user-sessions/login\n login(data: LoginData) {\n return new APIResource(this).push('login').post().data(data);\n }\n\n // /user-sessions/logout\n logout() {\n return new APIResource(this).push('logout').post();\n }\n\n // /user-sessions/oauth/authorize/{name}-login\n sso(name: string) {\n return new APIResource(this).push('oauth', 'authorize', name + '-login');\n }\n\n // /user-sessions/oauth/authorize/sbid-login\n sbidCallbackUrl() {\n return new APIResource(this).push('oauth', 'authorize', 'sbid-login').toUrl(true);\n }\n\n}\n\nexport default APIResourceUserSession\n","import {AxiosInstance} from 'axios';\n\n// this version of axios has some issue paired with rollup and is not handling default import correctly\n// as a workaround we need to use require instead of import until migrating to newer axios version.\n//\n// Axios has been updated to version 1.13.2. Due to issues related to how axios exports are handled between CommonJS and ES Module\n// as a workaround we need to use require instead of import in case we want to support both CJS and ESM.\n// For CommonJS output in the consumer project (f.ex cloud-frontend), the workaround may still be needed. For ESM, the default import should work.\nconst axios = require('axios').default;\n// @ts-ignore\nimport {version} from '../package.json';\nimport {APIAdminResource} from './api/APIAdminResource';\nimport {APIAdminResourceCluster} from './api/APIAdminResourceCluster';\nimport {APIList} from './api/APIList';\nimport {APIListDevices} from './api/APIListDevices';\nimport {APIListProperties} from './api/APIListProperties';\nimport {APIListServices} from './api/APIListServices';\nimport {APIListUsers} from './api/APIListUsers';\nimport {APIResource} from './api/APIResource';\nimport {APIResourceAccount} from './api/APIResourceAccount';\nimport {APIResourceBroker} from './api/APIResourceBroker';\nimport {APIResourceDevice} from './api/APIResourceDevice';\nimport {APIResourceDeviceGroup} from './api/APIResourceDeviceGroup';\nimport {APIResourceDeviceSession} from './api/APIResourceDeviceSession';\nimport {APIResourceFile} from './api/APIResourceFile';\nimport {APIResourceLabelGroup} from './api/APIResourceLabelGroup';\nimport {APIResourceProject} from './api/APIResourceProject';\nimport {APIResourceRun} from './api/APIResourceRun';\nimport {APIResourceUser} from './api/APIResourceUser';\nimport {APIResourceUserSession} from './api/APIResourceUserSession';\nimport {Cluster} from './api/models/Cluster';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './api/models/HTTP';\nimport {License} from './api/models/License';\nimport {Project} from './api/models/Project';\nimport {Property} from './api/models/Property';\nimport {UserFile, UserFileData, UserFileParams} from './api/models/UserFile';\nimport {ApiConfig} from './ApiConfig';\nimport './finka';\nimport {LabelGroup} from './api/models/LabelGroup';\n\n// @ts-ignore\nif (globalThis.isNodeJs) {\n // Set User-Agent\n axios.defaults.headers.common['User-Agent'] = `Bitbar Cloud API Client for JavaScript v${version}`;\n}\n\n// Disable max content length\naxios.defaults.maxContentLength = 1073741824; // 1GB\n\n/**\n * API\n * Root for other API resources\n */\nexport class API {\n axios: AxiosInstance;\n\n private axiosConfig: ApiConfig = {};\n\n get baseUrl(): string {\n return this.axiosConfig.baseURL;\n }\n\n\n constructor(private config: ApiConfig) {\n if (config == null) {\n throw new Error('config cannot be empty');\n } else if (this.config.cloudUrl == null) {\n throw new TypeError('cloudUrl cannot be empty');\n } else if (typeof this.config.cloudUrl !== 'string') {\n throw new TypeError('cloudUrl must be a string');\n } else if (!/^https?:\\/\\/.{2,}/.test(this.config.cloudUrl)) {\n throw new Error(`cloudUrl doesn't look like a URL`);\n }\n\n // Validate and correct cloudUrl if needed\n this.axiosConfig.baseURL = this.config.cloudUrl.replace(/\\/+$/, '') + '/api'\n\n // Check v2\n this.config.v2 = !!this.config.v2;\n if (this.config.v2) {\n this.axiosConfig.baseURL += '/v2';\n }\n\n // Check if apiKey is set\n if (this.config.apiKey) {\n if (typeof this.config.apiKey !== 'string') {\n throw new TypeError('apiKey must be a string');\n } else if (!/^[A-Za-z0-9]{32}$/.test(this.config.apiKey)) {\n throw new Error('apiKey is in the wrong format');\n }\n\n this.axiosConfig.auth = {\n username: this.config.apiKey,\n password: ''\n };\n }\n\n // With XSRFToken\n this.axiosConfig.withXSRFToken = true;\n // With credentials\n this.axiosConfig.withCredentials = config.withCredentials == null ? false : config.withCredentials;\n\n // Create axios instance\n this.axios = axios.create(this.axiosConfig);\n }\n\n\n // --- Resources starts here --- //\n\n // /account/{id}\n account(id: number) {\n return new APIResourceAccount(this, id);\n }\n\n // /admin\n admin() {\n return new APIAdminResource(this);\n }\n\n // /broker\n broker() {\n return new APIResourceBroker(this);\n }\n\n // /clusters\n clusters() {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /devices/{id}\n device(id: number) {\n return new APIResourceDevice(this, id);\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /devices\n devices() {\n return new APIListDevices(this);\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /enums\n enums() {\n return new APIResource(this).push('enums');\n }\n\n // /files\n files() {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /label-groups\n labelGroups() {\n return new APIList(this).push('label-groups');\n }\n\n // /label-groups/{id}\n labelGroup(id: number) {\n return new APIResourceLabelGroup(this, id);\n }\n\n // /labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /licenses\n licenses() {\n return new APIResource(this).push('licenses');\n }\n\n // /license\n license() {\n return new APIResource(this).push('license');\n }\n\n /*\n /me or /admin\n Requires prototype extension covering ACL check\n */\n ma(): APIAdminResource | APIResourceUser {\n throw new Error('Requires prototype extension covering ACL check');\n }\n\n // /me\n me() {\n return this.user('me');\n }\n\n // /projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /properties\n properties() {\n return new APIListProperties(this);\n }\n\n // /properties/{id}\n property(id: number) {\n return new APIResource(this).push('properties', id);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n // /services\n services() {\n return new APIListServices(this);\n }\n\n // /user/{id}\n user(id: number | 'me') {\n return new APIResourceUser(this, id);\n }\n\n // /users\n users() {\n return new APIListUsers(this);\n }\n\n // /user-sessions\n userSession() {\n return new APIResourceUserSession(this);\n }\n\n}\n\n\nexport default API;\n","/* istanbul ignore file */\n\nimport {API} from './API';\nimport {FilterBuilder} from './FilterBuilder';\n\nexport {API} from './API';\nexport {FilterBuilder} from './FilterBuilder';\n\n/**\n * Cloud API Client\n */\nexport const CloudAPIClient = {\n API,\n FilterBuilder\n}\n\nexport default CloudAPIClient;\n","import {CollectionQueryParams} from './HTTP';\n\nexport enum AccessGroupScope {\n USER = 'USER',\n ACCOUNT = 'ACCOUNT',\n GLOBAL = 'GLOBAL'\n}\n\nexport type AccessGroup = {\n id: number;\n name: string;\n scope: AccessGroupScope;\n userEmail: string;\n userId: number;\n}\n\nexport type AccessGroupUsersQueryParams = CollectionQueryParams & {\n email: string;\n}\n\nexport type AccessGroupData = Pick;\n\nexport type AccessGroupsData = Omit;\n","import {CollectionQueryParams} from './HTTP';\n\n\nexport type Account = {\n activeServiceName: string,\n comment: string,\n createTime: number,\n dedicatedDevicesConcurrency: number,\n dedicatedDevicesCount: number,\n dedicatedDevicesRatio: number,\n dedicatedDevicesUsage: number,\n id: number,\n invoiceDetails: Invoice,\n name: string,\n publicDevicesConcurrency: number,\n publicDevicesRatio: number,\n publicDevicesUsage: number,\n slmOrganizationId: string,\n userName: string\n}\n\nexport type Invoice = {\n address: string,\n city: string,\n code: string,\n country: string,\n state: string\n}\n\nexport type AccountData = Partial<{\n comment: string,\n invoiceDetails: Invoice,\n name: string,\n slmOrganizationId: string;\n userName: string\n}>\n\nexport type AccountUsageSummary = {\n sessionsCount: number,\n duration: number,\n deviceModelsCount: number,\n tunnelEnabledCount: number,\n osVersionsCount: number,\n projectsCount: number,\n usersCount: number,\n previous: AccountUsageSummary\n}\n\nexport type AccountUsage = {\n timestamp: number,\n timestampLabel: string,\n sessionsCount: number,\n automatedConcurrency: number,\n automatedUsage: number,\n dedicatedConcurrency: number,\n dedicatedUsage: number,\n manualConcurrency: number,\n manualUsage: number\n}\n\nexport type AccountUserSessionUsage = {\n devices: number,\n duration: number,\n osVersions: number,\n sessions: number,\n sessionShare: number\n userId: number,\n userName: string,\n}\n\nexport type AccountSessionUsage = {\n createTime: number,\n deviceModelName: string,\n duration: number,\n osVersion: string,\n type: SessionUsageType,\n userId: number,\n userName: string\n}\n\nexport type AccountSessionUsageSummary = {\n totalTime: number,\n usage: Record\n}\n\nexport enum SessionUsageType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL = 'MANUAL',\n DEDICATED_AUTOMATIC = 'DEDICATED_AUTOMATIC',\n DEDICATED_MANUAL = 'DEDICATED_MANUAL'\n}\n\nexport enum UtilizationType {\n ALL = 'all',\n PUBLIC = 'public',\n DEDICATED = 'dedicated'\n}\n\nexport enum SessionType {\n ALL = 'all',\n AUTOMATED = 'automated',\n MANUAL = 'manual'\n}\n\nexport enum TimeResolution {\n HOUR = 'hour',\n DAY = 'day'\n}\n\nexport type AccountUsageParams = CollectionQueryParams & {\n grouping?: TimeResolution,\n sessionType?: SessionType,\n utilizationType?: UtilizationType,\n}\n\nexport type AccountUsageSummaryParams = CollectionQueryParams & {\n grouping?: TimeResolution,\n}\n","import {ServiceUnit} from './Service';\n\nexport enum PaymentStatus {\n SUCCEEDED = 'SUCCEEDED',\n FAILED = 'FAILED',\n REDIRECTED = 'REDIRECTED'\n}\n\nexport enum PaymentMethod {\n PAYPAL = 'PAYPAL',\n BRAINTREE = 'BRAINTREE',\n STRIPE = 'STRIPE',\n INVOICE = 'INVOICE',\n PROMOTION = 'PROMOTION',\n AWS = 'AWS'\n}\n\nexport enum DeactivateReason {\n INITIAL_FAILURE = 'INITIAL_FAILURE',\n SCA_FAILURE = 'SCA_FAILURE',\n CHARGE_FAILURE = 'CHARGE_FAILURE',\n CANCEL = 'CANCEL',\n SUSPENDED = 'SUSPENDED',\n ANOTHER_PURCHASE = 'ANOTHER_PURCHASE'\n}\n\nexport type ServicePaymentStatus = {\n accountService: AccountService;\n message: string;\n redirectUrl: string;\n status: PaymentStatus;\n}\n\nexport type AccountService = {\n accountId: number;\n accountName: string;\n activatedById: number;\n activatedByName: string;\n active: boolean;\n braintreeId: string;\n createTime: number;\n deactivateReason: DeactivateReason;\n deactivatedById: number;\n deactivatedByName: string;\n endTime: number;\n finished: boolean;\n id: number;\n lastPaymentTime: number;\n paymentMethod: PaymentMethod;\n price: number;\n serviceCount: number;\n serviceId: number;\n serviceName: string;\n slmLicenseId: string;\n startTime: number;\n subscriptionManagementURL: string;\n unit: ServiceUnit;\n unitCount: number;\n vatRate: number;\n}\n\nexport type AccountServiceData = Pick & {count: number};\n","import {DevicesQueryParams, Platform, SoftwareVersion} from './Device';\nimport {OsType} from './Enum';\nimport {CollectionQueryParams} from './HTTP';\nimport {Cluster} from './Cluster';\n\n\nexport enum InitStep {\n SKIP = 'SKIP',\n REBOOT = 'REBOOT',\n REBOOT_WITH_UNLOCK = 'REBOOT_WITH_UNLOCK',\n UNLOCK_ONLY = 'UNLOCK_ONLY'\n}\n\nexport enum DeviceState {\n OFFLINE_CLEANING = 'OFFLINE_CLEANING',\n OFFLINE_DIRTY = 'OFFLINE_DIRTY',\n OFFLINE_FREE = 'OFFLINE_FREE',\n OFFLINE_TESTING = 'OFFLINE_TESTING',\n ONLINE_CLEANING = 'ONLINE_CLEANING',\n ONLINE_DIRTY = 'ONLINE_DIRTY',\n ONLINE_FREE = 'ONLINE_FREE',\n ONLINE_TESTING = 'ONLINE_TESTING'\n}\n\nexport type AdminDevice = {\n accountId: number | null;\n accountName: string | null;\n browsersMatched: boolean;\n cluster: Cluster;\n comment: string;\n dedicationEndTime: number | null;\n deviceModelId: number;\n deviceModelName: string;\n enabled: boolean;\n fingerprint: string;\n forceRestore: boolean;\n id: number;\n initStep: InitStep;\n ipAddress: string;\n lastOnlineTime: number;\n location: string;\n locked: boolean;\n manufacturer: string;\n name: string;\n osType: OsType;\n ownerHasAccountService: boolean;\n platform: Platform;\n serialId: string;\n softwareVersion: SoftwareVersion;\n state: DeviceState;\n stateChangeTime: number;\n stateTime: number;\n testTimeLimit: number;\n unlockGesture: string;\n}\n\nexport type AdminDevicesQueryParams = Pick & CollectionQueryParams;\n\nexport type AdminDeviceData = Pick & {\n apiLevel: number;\n releaseVersion: string;\n};\n","import {CollectionQueryParams} from './HTTP';\nimport {DeviceSessionState} from './DeviceSession';\nimport {OsType} from './Enum';\n\nexport enum FrameworkType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL_APP = 'MANUAL_APP',\n MANUAL_WEB = 'MANUAL_WEB',\n REMOTE = 'REMOTE'\n}\n\nexport type AdminFrameworkStatistics = {\n cloudName: string;\n count: number;\n day: number;\n deviceModelId: number;\n deviceModelName: string;\n frameworkId: number;\n frameworkName: string;\n id: number;\n osType: OsType;\n releaseVersion: string;\n state: DeviceSessionState;\n type: FrameworkType;\n userEmail: string;\n userId: number;\n}\n\nexport interface AdminStatisticsParams extends CollectionQueryParams {\n days: number;\n}\n","import {PaymentMethod} from './AccountService';\nimport {DeviceSessionType} from './DeviceSession';\nimport {OsType} from './Enum';\nimport {QueryParams} from './HTTP';\n\nexport enum BillingType {\n BUY = 'BUY',\n CHARGE = 'CHARGE',\n CANCEL = 'CANCEL'\n}\n\nexport type BillingPeriod = {\n accountId: number;\n accountName: string;\n accountServiceId: number;\n additionalHours: number;\n additionalHoursPrice: number;\n apiBillingPeriodType: BillingType;\n createTime: number;\n endBillingPeriod: number;\n id: number;\n lastPaymentDate: number;\n paid: boolean;\n paymentMethod: PaymentMethod;\n plan: string;\n servicePrice: number;\n startBillingPeriod: number;\n subscriptionEnd: number;\n subscriptionStart: number;\n totalPrice: number;\n usages: Array;\n}\n\nexport type BillingPeriodUsage = {\n duration: number;\n id: number;\n osType: OsType;\n type: DeviceSessionType;\n}\n\nexport interface BillingPeriodQueryParams extends QueryParams {\n onDate: number;\n}\n","export enum BrokerType {\n MOBILE = 'MOBILE',\n DESKTOP = 'DESKTOP'\n}\n\nexport type Broker = {\n id: number;\n location: string;\n type: BrokerType;\n url: string;\n}\n","\nimport {AdminDevice} from './AdminDevice';\nimport {CollectionResponse, QueryParams} from './HTTP';\n\nexport type Cluster = {\n devices: CollectionResponse;\n enabled: boolean;\n id: number;\n ipAddress: string;\n jenkinsUrl: string;\n jenkinsVersion: string;\n location: string;\n name: string;\n pluginVersion: string;\n region: string;\n state: ClusterState;\n stateChangeTime: number;\n stateTime: number;\n type: ClusterType;\n url: string;\n}\n\nexport enum ClusterState {\n 'OFFLINE',\n ONLINE = 'ONLINE',\n RESTARTING = 'RESTARTING',\n QUIET_DOWN = 'QUIET_DOWN',\n MAINTENANCE = 'MAINTENANCE'\n}\n\nexport enum ClusterType {\n BARE_METAL = 'BARE_METAL',\n EC2 = 'EC2',\n VM = 'VM'\n}\n\nexport interface ClusterParams extends QueryParams {\n withDevices: boolean;\n}\n\nexport type ClusterData = Pick & {\n quietDown: boolean;\n restart: boolean;\n turnMaintenance: boolean;\n}\n","import {Browser} from './Browser';\nimport {OsType} from './Enum';\nimport {CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, QueryParams} from './HTTP';\nimport {TestRunsQueryParams} from './TestRun';\n\n\nexport enum DeviceGroupOrigin {\n STATIC = 'STATIC',\n DYNAMIC = 'DYNAMIC',\n HYBRID = 'HYBRID'\n}\n\nexport enum Platform {\n IOS = 'IOS',\n ANDROID = 'ANDROID',\n WINDOWS = 'WINDOWS',\n MAC = 'MAC',\n LINUX = 'LINUX',\n UNDEFINED = 'UNDEFINED'\n}\n\nexport enum SupportedCreators {\n MANUAL = 'MANUAL',\n ROBOT = 'ROBOT',\n AUTOMATIC = 'AUTOMATIC'\n}\n\nexport enum PoolSize {\n XL= 'XL',\n L = 'L',\n M = 'M',\n S = 'S'\n}\n\nexport enum Code {\n HIGH = 'HIGH',\n MODERATE = 'MODERATE',\n LOW = 'LOW',\n NONE = 'NONE',\n}\n\nexport type DeviceAvailability = {\n poolSize: PoolSize,\n code: Code\n}\n\nexport type DeviceProperty = {\n displayName: string;\n id: number;\n labelGroupName: string;\n name: string;\n propertyGroupId: number;\n propertyGroupName: string;\n}\n\nexport type SoftwareVersion = {\n apiLevel: number;\n id: number;\n releaseVersion: string;\n}\n\nexport enum LockReason {\n TESTING = 'TESTING',\n CLEANING = 'CLEANING',\n NOT_OPERATIONAL = 'NOT_OPERATIONAL'\n}\n\nexport type Device = {\n accountId: number;\n accountName: string;\n available: boolean;\n availability: DeviceAvailability;\n browsers: CollectionResponse;\n creditsPrice: number;\n deviceGroupOrigin: DeviceGroupOrigin;\n displayName: string;\n enabled: boolean;\n frame100Url: string;\n frame160Url: string;\n frame400Url: string;\n frame80Url: string;\n frameExtraWidth: number;\n id: number;\n imageCornerRadius: number;\n imageHeight: number;\n imageLeft: number;\n imagePrefix: string;\n imageTop: number;\n imageWidth: number;\n locked: boolean;\n lockReason: LockReason;\n manufacturer: string;\n online: boolean;\n osType: OsType;\n platform: Platform;\n properties: CollectionResponse;\n softwareVersion: SoftwareVersion;\n supportedCreators: Array;\n}\n\nexport type DeviceCleanupConfiguration = {\n content: string;\n createTime: number;\n createdByEmail: string;\n createdById: number;\n description: string;\n name: string;\n enabled: boolean;\n global: boolean;\n example: true;\n id: number;\n lastModificationTime: number;\n osType: OsType;\n}\n\nexport type DeviceCleanupConfigurationData = {\n deviceCleanupConfigurationId: number;\n}\n\nexport type DeviceLabelData = {\n labelId: number;\n}\n\nexport interface DeviceProperiesData extends QueryParams {\n labelId: number;\n}\n\nexport interface CleanupConfigurationSpecificData extends QueryParams {\n serialId: string;\n}\n\nexport interface DeviceTimeSummaryQueryParams extends CollectionBasicQueryParams {\n forWholeAccount: boolean;\n}\nexport interface DeviceUsageQueryParams extends TestRunsQueryParams {\n startTime: number;\n}\n\nexport interface DeviceStatisticQueryParam extends TestRunsQueryParams {\n mode: string;\n}\n\nexport interface DevicesQueryParams extends CollectionQueryParams {\n labelIds: Array;\n liveTestingOnly: boolean;\n withBrowsers: boolean;\n withDedicated: boolean;\n withDisabled: boolean;\n withProperties: boolean;\n withSupportedCreators: boolean;\n}\n","export enum CriterionField {\n NAME = 'NAME',\n FINGERPRINT = 'FINGERPRINT',\n SERIAL_ID = 'SERIAL_ID',\n UNLOCK_GESTURE = 'UNLOCK_GESTURE',\n SOFTWARE_VERSION = 'SOFTWARE_VERSION',\n INIT_STEP = 'INIT_STEP',\n ACCOUNT = 'ACCOUNT',\n BROWSERS = 'BROWSERS'\n}\n\nexport type DeviceModelCriterion = {\n createTime: number;\n field: CriterionField;\n id: number;\n labelGroupDisplayName: string;\n labelGroupId: number;\n labelGroupName: string;\n}\n\nexport type DeviceModelCriterionData = Pick;\n","export enum RetentionStrategy {\n CLUSTER_ON_OFF = 'CLUSTER_ON_OFF',\n MIN_FREE_MAX_TOTAL = 'MIN_FREE_MAX_TOTAL',\n POOL_MANAGER_AWARE = 'POOL_MANAGER_AWARE'\n}\n\nexport type DeviceModelPool = {\n createTime: number;\n enabled: boolean;\n id: number;\n location: string;\n maxTotal: number;\n minAvailable: number;\n name: string;\n numberOfBrowsers: number;\n osVersion: string;\n retentionStrategy: RetentionStrategy;\n running: number;\n}\n\nexport type DeviceModelPoolData = Pick;\n","export enum ProblemType {\n CLEANING = 'CLEANING',\n DIRTY = 'DIRTY',\n OFFLINE = 'OFFLINE',\n LOW_BATTERY = 'LOW_BATTERY',\n HIGH_FAIL_RATE = 'HIGH_FAIL_RATE',\n NO_INTERNET_CONNECTION = 'NO_INTERNET_CONNECTION'\n}\n\nexport type DeviceProblem = {\n clusterId: number;\n clusterName: string;\n deviceId: number;\n deviceModelId: number;\n deviceModelName: string;\n deviceName: string;\n id: number;\n problems: Array;\n location: string;\n}\n\nexport type DeviceProblemPair = {\n id: number;\n type: ProblemType;\n value: any;\n}\n","import {Device} from './Device';\nimport {CollectionBasicQueryParams} from './HTTP';\n\nexport type TunnelSettings = {\n domain: string;\n email: string;\n}\n\nexport enum DeviceSessionType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL_APP = 'MANUAL_APP',\n MANUAL_WEB = 'MANUAL_WEB'\n}\n\nexport enum RetryState {\n NONE = 'NONE',\n MANUAL = 'MANUAL',\n AUTO = 'AUTO'\n}\n\nexport enum DeviceSessionState {\n ABORTED = 'ABORTED',\n EXCLUDED = 'EXCLUDED',\n FAILED = 'FAILED',\n FINISHING = 'FINISHING',\n RUNNING = 'RUNNING',\n SUCCEEDED = 'SUCCEEDED',\n TIMEOUT = 'TIMEOUT',\n WAITING = 'WAITING',\n WARNING = 'WARNING'\n}\n\nexport enum DeviceSessionStepType {\n WAITING = 'WAITING',\n PREPARING = 'PREPARING',\n UNINSTALL = 'UNINSTALL',\n INSTALL = 'INSTALL',\n RUNNING = 'RUNNING',\n SENDING_RESULTS = 'SENDING_RESULTS',\n PROCESSING_RESULTS = 'PROCESSING_RESULTS'\n}\n\nexport type DeviceSessionConfig = {\n adbVersion: string;\n browserName: string;\n browserVersion: string;\n deviceModelId: number;\n id: number;\n screenResolution: string;\n tunnelSettings: TunnelSettings;\n type: DeviceSessionConfig;\n url: string;\n}\n\nexport type DeviceSession = {\n abortTime: number;\n accountId: number;\n autoRetriesLeftCount: number;\n biometricInstrumentation: boolean;\n config: DeviceSessionConfig;\n createTime: number;\n clientSideId: string;\n device: Device;\n deviceInstanceId: number;\n deviceRunId: number;\n duration: number;\n endTime: number;\n excludeReason: string;\n externalId: string;\n id: number;\n installTime: number;\n name: string;\n projectId: number;\n projectName: string;\n retryable: boolean;\n retryState: RetryState;\n startTime: number;\n state: DeviceSessionState;\n successRatio: number;\n testCaseAllCount: number;\n testCaseFailedCount: number;\n testCasePassedCount: number;\n testCaseSkippedCount: number;\n testCaseSuccessCount: number;\n testRunId: number;\n testRunName: string;\n timeLimit: number;\n type: DeviceSessionType;\n uiLink: string;\n userEmail: string;\n userId: number;\n}\n\nexport type DeviceSessionCommand = {\n duration: number;\n httpMethod: string;\n id: number;\n requestBody: string;\n responseBody: string;\n responseCode: number;\n timestamp: number;\n uri: string;\n}\n\nexport type DeviceSessionStep = {\n deviceSessionId: number;\n excludeReason: string;\n failReason: string;\n finishTimeMS: number;\n id: number;\n startTimeMS: number;\n type: DeviceSessionStepType;\n}\n\nexport type DeviceSessionConnection = {\n createTime: number;\n deviceSessionId: number;\n endTime: number;\n externalId: string;\n host: string;\n id: number;\n password: string;\n path: string;\n port: number;\n type: string;\n urlSchema: string;\n}\n\nexport type DeviceSessionData = Omit & {configuration: DeviceSessionConfig};\n\nexport interface DeviceSessionQueryParams extends CollectionBasicQueryParams {\n withProperties: boolean;\n}\n\nexport interface SessionQueryParams extends CollectionBasicQueryParams {\n projectId: number;\n testRunId: number;\n}\n\nexport interface SessionRunStepQueryParams extends CollectionBasicQueryParams {\n runId: number;\n}\n\nexport interface SessionStepQueryParams extends SessionRunStepQueryParams {\n projectId: number;\n}\n\nexport enum SessionReleaseReason {\n INACTIVITY = 'INACTIVITY',\n TIMEOUT = 'TIMEOUT',\n USER_ACTION = 'USER_ACTION',\n CHANGE_DEVICE = 'CHANGE_DEVICE',\n WEBSOCKET_CLOSED = 'WEBSOCKET_CLOSED'\n}\n\nexport type DeviceSessionRelease = {\n reason: SessionReleaseReason;\n}\n","export enum OsType {\n IOS = 'IOS',\n ANDROID = 'ANDROID',\n DESKTOP = 'DESKTOP',\n UNDEFINED = 'UNDEFINED'\n}\n\nexport type Enum = {\n id: number;\n value: string;\n}\n","export enum LicenseStatus {\n ACTIVE = 'ACTIVE',\n EXPIRED = 'EXPIRED',\n INACTIVE = 'INACTIVE',\n CLOSED = 'CLOSED'\n}\n\nexport type BaseLicense = {\n enabled: boolean;\n};\n\nexport type FeatureLicense = {\n deviceLimit: number;\n deviceLimited: boolean;\n projectLimit: number;\n projectLimited: boolean;\n};\n\nexport type AndroidLicense = BaseLicense & FeatureLicense & {\n cts: CTSLicense;\n uiAutomator: UIAutomatorLicense;\n};\n\nexport type BuildLicense = BaseLicense & {\n limit: number;\n limited: boolean;\n};\n\nexport type DesktopLicense = BaseLicense & FeatureLicense;\n\nexport type GlobalLicense = FeatureLicense;\n\nexport type InspectorLicense = BaseLicense;\n\nexport type IOSLicense = BaseLicense & FeatureLicense;\n\nexport type RecorderLicense = BaseLicense & {\n limit: number;\n limited: boolean;\n};\n\nexport type ServerLicense = BaseLicense & {\n androidEnabled: boolean;\n iosEnabled: boolean;\n};\n\nexport type CTSLicense = BaseLicense;\n\nexport type UIAutomatorLicense = BaseLicense;\n\nexport type License = {\n activateTime: number;\n android: AndroidLicense;\n build: BuildLicense;\n closeTime: number;\n desktop: DesktopLicense;\n expireTime: number;\n global: GlobalLicense;\n id: number;\n inspector: InspectorLicense;\n ios: IOSLicense;\n privateInstance: boolean;\n recorder: RecorderLicense;\n server: ServerLicense;\n status: LicenseStatus;\n userEmail: string;\n userId: number;\n}\n\nexport type LicenseData = Pick & {\n androidDeviceLimit: number;\n androidEnabled: boolean;\n androidProjectLimit: number;\n buildEnabled: boolean;\n buildLimit: number;\n desktopDeviceLimit: number;\n desktopEnabled: boolean;\n desktopProjectLimit: number;\n globalDeviceLimit: number;\n globalProjectLimit: number;\n inspectorEnabled: boolean;\n iosDeviceLimit: number;\n iosEnabled: boolean;\n iosProjectLimit: number;\n privateInstance: boolean;\n unit: string;\n unitCount: number;\n}\n","import {QueryParams} from './HTTP';\n\n\nexport enum NotificationChannel {\n SLACK = 'SLACK',\n EMAIL = 'EMAIL',\n WEBHOOK = 'WEBHOOK'\n}\n\nexport enum NotificationScope {\n ALL = 'ALL',\n TEST_RUN = 'TEST_RUN',\n TEST_RUN_FAILURE = 'TEST_RUN_FAILURE',\n TEST_RUN_SUCCEEDED = 'TEST_RUN_SUCCEEDED',\n SYSTEM = 'SYSTEM',\n CHECK = 'CHECK',\n}\n\nexport type Notification = {\n channel: NotificationChannel;\n destination: string;\n id: number;\n projectId?: number;\n projectName?: string;\n scope: NotificationScope;\n userEmail: string;\n userId: number;\n}\n\nexport interface NotificationData extends QueryParams {\n scope: NotificationScope;\n}\n\nexport type NotificationsData = Pick;\n","import {OsType} from './Enum';\nimport {TestRunConfig, TestRunsQueryParams} from './TestRun';\n\nexport enum ArchivingStrategy {\n NEVER = 'NEVER',\n DAYS = 'DAYS',\n RUNS = 'RUNS'\n}\n\nexport type Project = {\n archiveTime: number;\n archivingItemCount: number;\n archivingStrategy: ArchivingStrategy;\n common: boolean;\n createTime: number;\n description: string;\n id: number;\n name: string;\n osType: OsType;\n readOnly: boolean;\n rowIndex: number;\n shared: boolean;\n sharedWithCaller: boolean;\n successRatio: number;\n testRunConfig: TestRunConfig;\n userEmail: string;\n userId: number;\n}\n\nexport type UserProjectData = Pick;\n\nexport interface UserProjectQueryParams extends TestRunsQueryParams {\n showStatistics: boolean;\n}\n","import {CollectionBasicQueryParams} from './HTTP';\n\nexport enum ScreenshotType {\n LANDSCAPE = 'LANDSCAPE',\n PORTRAIT = 'PORTRAIT'\n}\n\nexport type Screenshot = {\n fail: boolean;\n id: number;\n originalName: string;\n takeTimestamp: number;\n type: ScreenshotType;\n}\n\nexport interface ScreenshotQueryParams extends CollectionBasicQueryParams {\n name: string;\n}\n","import {PaymentMethod} from './AccountService';\nimport {CollectionQueryParams} from './HTTP';\nimport {Role} from './Role';\n\n\nexport type Service = {\n activateTime: number;\n activated: boolean;\n archiveTime: number;\n centPrice: number;\n commonId: string;\n customPlan: boolean;\n defaultConcurrences: Array;\n description: string;\n externalId: string;\n features: string;\n id: number;\n name: string;\n priceString: string;\n roles: Array;\n unit: ServiceUnit;\n}\n\nexport enum ServiceUnit {\n DAY = 'DAY',\n HOUR = 'HOUR',\n MONTH = 'MONTH',\n PROJECT = 'PROJECT',\n RUN = 'RUN',\n YEAR = 'YEAR'\n}\n\nexport interface AdminServicesParams extends CollectionQueryParams {\n activeOnly: boolean;\n inUse: boolean;\n notArchive: boolean;\n}\n\nexport type ServiceActivateData = {\n activateTime: number;\n}\n\nexport interface ServiceData {\n address?: string;\n cardNumber?: string;\n city?: string;\n count?: number;\n country?: string;\n cvv?: string;\n email?: string;\n expirationDate?: string;\n firstName?: string;\n lastName?: string;\n organization?: string;\n paymentMethod: PaymentMethod;\n phone?: string;\n serviceId: number;\n state?: string;\n stripeToken?: string;\n vatId?: string;\n zip?: string;\n}\n","import {QueryParams} from './HTTP';\n\n\nexport enum SharedResourceType {\n DEVICE_GROUP = 'DEVICE_GROUP',\n FILE = 'FILE',\n PROJECT = 'PROJECT',\n}\n\nexport type SharedResource = {\n id: number;\n name: string;\n resourceId: number;\n type: SharedResourceType;\n}\n\nexport interface ShareWithGroup extends QueryParams {\n accessGroupId: number;\n}\n\nexport interface ShareWithEmail extends QueryParams {\n email: string;\n}\n\nexport type ShareData = ShareWithGroup | ShareWithEmail;\n","import {Method} from 'axios';\nimport {CollectionResponse} from './HTTP';\n\n\nexport enum TestResult {\n PASSED = 'PASSED',\n FAILED = 'FAILED',\n SKIPPED = 'SKIPPED',\n NOT_AVAILABLE = 'NOT_AVAILABLE'\n}\n\nexport type TestCaseRun = {\n className: string;\n createTime: number;\n duration: number;\n errorMessage: string;\n id: number;\n methodName: string;\n result: TestResult;\n stacktrace: string;\n steps: CollectionResponse;\n suiteName: string;\n}\n\nexport type TestCaseRunStep = {\n description: string;\n duration: number;\n httpMethod: Uppercase;\n id: number;\n requestBody: string;\n responseBody: string;\n responseCode: number;\n timestamp: number;\n uri: string;\n}\n","import {Device} from './Device';\nimport {TunnelSettings} from './DeviceSession';\nimport {OsType} from './Enum';\nimport {CollectionBasicQueryParams, QueryParams} from './HTTP';\nimport {UserFile} from './UserFile';\nimport {DeviceGroup} from './DeviceGroup';\nimport {Framework} from './Framework';\n\n\nexport enum LimitationType {\n PACKAGE = 'PACKAGE',\n CLASS = 'CLASS'\n}\n\nexport enum TestScheduler {\n PARALLEL = 'PARALLEL',\n SERIAL = 'SERIAL',\n SINGLE = 'SINGLE',\n ALL_INSTANCES = 'ALL_INSTANCES'\n}\n\nexport enum TestState {\n WAITING = 'WAITING',\n RUNNING = 'RUNNING',\n FINISHED = 'FINISHED'\n}\n\n\nexport type TestRun = {\n abortedDeviceCount: number;\n config: TestRunConfig;\n createTime: number;\n deviceCount: number;\n displayName: string;\n errorsDeviceCount: number;\n excludedDeviceCount: number;\n executedTestCaseCount: number;\n executionRatio: number;\n failedTestCaseCount: number;\n finishedDeviceCount: number;\n frameworkId: number;\n frameworkName: string;\n id: number;\n logsFileId: number;\n message: string;\n 'number': number;\n projectId: number;\n projectName: string;\n retryable: boolean;\n rowIndex: number;\n runningDeviceCount: number;\n screenshotsFileId: number;\n startTime: number;\n startedByDisplayName: string;\n startedById: number;\n state: TestState;\n succeededDeviceCount: number;\n successRatio: number;\n successfulTestCaseCount: number;\n testCaseCount: number;\n timeoutedDeviceCount: number;\n uiLink: string;\n userId: number;\n waitingDeviceCount: number;\n warningDeviceCount: number;\n}\n\nexport enum TestRunConfigFileAction {\n COPY_TO_DEVICE = 'COPY_TO_DEVICE',\n INSTALL = 'INSTALL',\n RUN_TEST = 'RUN_TEST',\n}\n\nexport type TestRunConfigFile = {\n action: TestRunConfigFileAction;\n availableActions: Array;\n file: UserFile;\n id: number;\n};\n\nexport type TestRunParameter = {\n name?: string;\n key: string;\n value: string;\n label?: string;\n}\n\nexport type TRCDefaultSettings = {\n deviceLanguageCode: string;\n disableResigning: boolean;\n hookURL: string;\n instrumentationRunner: string;\n limitationType: string;\n limitationValue: string;\n scheduler: string;\n screenshotDir: string;\n withAnnotation: string;\n withoutAnnotation: string;\n timeout: string;\n projectName: string;\n testRunName: string;\n testRunParameters?: TestRunParameter[];\n biometricInstrumentation: boolean;\n}\n\nexport type TestRunConfig = TRCDefaultSettings & {\n appCrawlerRun: boolean;\n appiumBrokerAddress: string;\n appiumBrokerQueueName: string;\n applicationPassword: string;\n applicationUsername: string;\n availableDeviceGroups: DeviceGroup[];\n availableDevices: Array;\n availableFrameworks: Framework[];\n availableOsTypes: Array;\n clientSideTestConfig: any;\n computedDevices: Array;\n creditsPrice: number;\n deviceGroupId?: number;\n deviceIds: any;\n deviceNamePattern: string;\n files: Array | null;\n frameworkId: number;\n id: number;\n loadedPrevious: boolean;\n maxAutoRetriesCount: number;\n maxTestTimeout: any;\n maxWaitTime: number;\n osType: OsType;\n projectId: number;\n resignFiles: boolean;\n runAvailable: boolean;\n status: string;\n statusCode: number;\n testRunId: number;\n testRunNameGrouping: string;\n tunnelSettings: TunnelSettings;\n useSamples: boolean;\n usedDeviceGroupId: number;\n usedDeviceGroupName: string;\n videoRecordingEnabled: boolean;\n withAnnotation: string;\n}\n\nexport interface TestRunData extends QueryParams {\n displayName: string;\n}\n\nexport interface RunData extends TestRunData {\n projectId: number;\n}\n\nexport interface RunQueryParam extends QueryParams {\n projectId: number;\n}\n\n\nexport type TestRunsIncludes = {\n includeDeviceGroups: boolean;\n includeDevices: boolean;\n includeFrameworks: boolean;\n}\n\nexport type RunsConfigParams = TestRunsIncludes & QueryParams;\n\n// for users/{userid}/runs\nexport interface TestRunsQueryParams extends CollectionBasicQueryParams {\n forWholeAccount: boolean;\n skipCommonProject: boolean;\n skipShared: boolean;\n}\n","import {CollectionQueryParams, QueryParams} from './HTTP';\nimport {Role} from './Role';\n\n\nexport enum UserStatus {\n INACTIVE = 'INACTIVE',\n DISABLED = 'DISABLED',\n ENABLED = 'ENABLED'\n}\n\nexport type User = {\n accountId: number;\n accountName: string;\n userAccountName: string;\n accountServiceIds: Array;\n address: string;\n apiKey: string;\n city: string;\n code: string;\n country: string;\n createTime: number;\n createdByEmail: string;\n createdById: number;\n deleteTime: number;\n email: string;\n enabled: boolean;\n firstName: string;\n id: number;\n isAccountOwner: boolean;\n lastLaunchedTestTime: number;\n lastLoginTime: number;\n lastName: string;\n organization: string;\n phone: string;\n registrationIP: string;\n roles: Array;\n serviceIds: Array;\n state: string;\n status: UserStatus;\n timeZone: string;\n}\n\nexport type UserData = Pick;\n\nexport interface UserParams extends CollectionQueryParams {\n WITH_ADDRESS: boolean;\n WITH_USER_INFO: boolean;\n onlyMainUsers: boolean;\n onlyWithDisabledServices: boolean;\n withRole: string;\n withRoles: boolean;\n}\n\nexport type UserUpdateAccount = Pick;\n\nexport type UserDeleteData = {\n password: string;\n}\n\nexport interface LoginData {\n username: string;\n password: string;\n}\n\n\nexport type UserPasswordData = {\n key: string;\n password: string;\n};\nexport type UserActivateData = {\n zip: string;\n} & UserPasswordData\n & Pick;\n\nexport interface UserRecoveryQueryParams extends QueryParams {\n recoveryKey: string;\n}\n\nexport type MarkAccountOwnerData = {\n value: boolean;\n}\n","import {CollectionQueryParams, QueryParams} from './HTTP';\n\n\nexport enum FileDirection {\n INPUT = 'INPUT',\n OUTPUT = 'OUTPUT'\n}\n\nexport enum FileInputType {\n APPLICATION = 'APPLICATION',\n TEST = 'TEST',\n DATA = 'DATA'\n}\n\nexport enum FileState {\n PREPARING = 'PREPARING',\n READY = 'READY'\n}\n\nexport type FileProperty = {\n id: number;\n key: string;\n value: string;\n};\n\nexport type UserFileTag = {\n id: number;\n name: string;\n}\n\nexport type UserFile = {\n createTime: number;\n directUrl: string;\n direction: FileDirection;\n duplicate: boolean;\n fileProperties: Array;\n iconDirectUrl: string;\n id: number;\n inputType: FileInputType;\n mimetype: string;\n name: string;\n shared: boolean;\n size: number;\n state: FileState;\n userEmail: string;\n userId: number;\n};\n\nexport interface UserFileParams extends CollectionQueryParams {\n tag: Array;\n}\n\nexport type UserFileData = {\n file: FormData;\n global: boolean;\n}\n\nexport type BuildLogsData = {\n deviceRunIds: Array;\n projectId: number;\n userId: number;\n}\n\nexport type BuildLogsParams = BuildLogsData;\n\nexport interface FileSizeData extends QueryParams {\n height: number;\n width: number;\n}\n\nexport type UploadObj = {\n dir: string;\n filename: string;\n}\n\nexport interface FileData {\n file: Blob;\n global: boolean;\n}\n","export enum VisualTestImageType {\n FULL_PAGE = 'FULL_PAGE',\n VIEWPORT = 'VIEWPORT',\n ELEMENT_SCREENSHOT = 'ELEMENT_SCREENSHOT'\n}\n\nexport type VisualTestAccess = {\n enabled: boolean;\n apiKey: string | null;\n}\n\nexport type VisualTest = {\n comparisonStatus:\tstring;\n appUrl:\tstring;\n createdAt:\tstring;\n id: number;\n imageName:\tstring;\n imageThumbnailUrl:\tstring;\n imageType:\tVisualTestImageType;\n imageUrl:\tstring;\n sessionId:\tstring;\n testUrl:\tstring;\n}\n"],"names":["APIOrder","AbortController","stringify","InputFileset","OutputFileset","AccessGroupScope","SessionUsageType","UtilizationType","SessionType","TimeResolution","PaymentStatus","PaymentMethod","DeactivateReason","InitStep","DeviceState","FrameworkType","BillingType","BrokerType","ClusterState","ClusterType","DeviceGroupOrigin","Platform","SupportedCreators","PoolSize","Code","LockReason","CriterionField","RetentionStrategy","ProblemType","DeviceSessionType","RetryState","DeviceSessionState","DeviceSessionStepType","SessionReleaseReason","OsType","LicenseStatus","NotificationChannel","NotificationScope","ArchivingStrategy","ScreenshotType","ServiceUnit","SharedResourceType","TestResult","LimitationType","TestScheduler","TestState","TestRunConfigFileAction","UserStatus","FileDirection","FileInputType","FileState","VisualTestImageType"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bitbar-cloud-api-client.js","sources":["../src/Filter.ts","../src/finka.ts","../src/FilterBuilder.ts","../src/api/models/HTTP.ts","../src/api/APIEntity.ts","../src/api/APIList.ts","../src/api/APIResource.ts","../src/api/APIListCleanupConfigurations.ts","../src/api/APIResourceCleanupConfiguration.ts","../src/api/APIAdminListDevices.ts","../src/api/APIAdminListRuns.ts","../src/api/APIAdminListServices.ts","../src/api/decorators/NonRequestable.ts","../src/api/APIAdminListStatistics.ts","../src/api/APIAdminResourceAccount.ts","../src/api/APIAdminResourceAccountService.ts","../src/api/APIAdminResourceCluster.ts","../src/api/APIAdminResourceDevice.ts","../src/api/APIAdminResourceDeviceModel.ts","../src/api/class/InputFileset.ts","../src/api/class/Images.filter.ts","../src/api/class/NonMedia.filter.ts","../src/api/APIListOutputFiles.ts","../src/api/class/OutputFileset.ts","../src/api/APIListScreenshots.ts","../src/api/APIResourceDeviceSessionCommon.ts","../src/api/factory/postAdminDeviceSessionChangeBillable.ts","../src/api/APIAdminResourceDeviceSessionStandalone.ts","../src/api/APIAdminResourceDeviceTime.ts","../src/api/APIAdminResourceFramework.ts","../src/api/APIAdminResourceLicense.ts","../src/api/factory/postDeviceRunIds.ts","../src/api/APIAdminResourceRunStandalone.ts","../src/api/APIAdminResourceService.ts","../src/api/APIAdminResourceUserAccount.ts","../src/api/APIResourceDeviceSessionStandalone.ts","../src/api/APIAdminResourceUser.ts","../src/api/APIResourceAccessGroup.ts","../src/api/APIResourceDeviceGroup.ts","../src/api/APIResourceFile.ts","../src/api/APIListTestCaseRuns.ts","../src/api/APIResourceDeviceSession.ts","../src/api/APIListTestRunDeviceSessions.ts","../src/api/APIResourceRunCommon.ts","../src/api/APIResourceRun.ts","../src/api/APIResourceProject.ts","../src/api/APIAdminResource.ts","../src/api/APIListDevices.ts","../src/api/APIListProperties.ts","../src/api/APIListServices.ts","../src/api/APIListUsers.ts","../src/api/APIResourceBillingPeriod.ts","../src/api/APIResourceAccount.ts","../src/api/APIResourceBroker.ts","../src/api/APIResourceDevice.ts","../src/api/APIResourceLabelGroup.ts","../src/api/APIListFiles.ts","../src/api/APIResourceChannel.ts","../src/api/APIListNotifications.ts","../src/api/APIListRuns.ts","../src/api/APIListSmartbearTunnels.ts","../src/api/APIResourceNotification.ts","../src/api/APIResourceUser.ts","../src/api/APIResourceUserSession.ts","../src/API.ts","../src/CloudAPIClient.ts","../src/api/models/AccessGroup.ts","../src/api/models/Account.ts","../src/api/models/AccountService.ts","../src/api/models/AdminDevice.ts","../src/api/models/AdminFrameworkStatistics.ts","../src/api/models/BillingPeriod.ts","../src/api/models/Broker.ts","../src/api/models/Cluster.ts","../src/api/models/Device.ts","../src/api/models/DeviceModelCriterion.ts","../src/api/models/DeviceModelPool.ts","../src/api/models/DeviceProblem.ts","../src/api/models/DeviceSession.ts","../src/api/models/Enum.ts","../src/api/models/License.ts","../src/api/models/Notification.ts","../src/api/models/Project.ts","../src/api/models/Screenshot.ts","../src/api/models/Service.ts","../src/api/models/SharedResource.ts","../src/api/models/TestCaseRun.ts","../src/api/models/TestRun.ts","../src/api/models/User.ts","../src/api/models/UserFile.ts","../src/api/models/VisualTest.ts"],"sourcesContent":["/**\n * Filter\n */\n\nexport class Filter {\n name: string;\n value: T;\n operand: string;\n\n constructor(name: string, value: T, operand: string) {\n this.name = name;\n this.value = value;\n this.operand = operand;\n }\n}\n\nexport default Filter;\n","import finka from '@bitbar/finka';\n\nfinka();\n\nexport default {};\n","import {Filter} from './Filter';\nimport './finka';\n\n/**\n * FilterBuilder\n *\n * Builds filter string according to Bitbar Cloud backend convention\n */\nexport class FilterBuilder {\n\n private readonly filters: Array = [];\n\n gt(name: string, value: number): this {\n return this.add(name, value, 'gt');\n }\n\n\n lt(name: string, value: number): this {\n return this.add(name, value, 'lt');\n }\n\n after(name: string, value: Date | number): this {\n return this.add(name, value, 'after', true);\n }\n\n afterorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'afterorequal', true);\n }\n\n before(name: string, value: Date | number): this {\n return this.add(name, value, 'before', true);\n }\n\n beforeorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'beforeorequal', true);\n }\n\n on(name: string, value: any): this {\n return this.add(name, value, 'on');\n }\n\n eq(name: string, value: any): this {\n return this.add(name, value, 'eq');\n }\n\n contains(name: string, value: string): this {\n return this.add(name, value, 'contains');\n }\n\n like(name: string, value: string): this {\n return this.add(name, value, 'like');\n }\n\n notlike(name: string, value: string): this {\n return this.add(name, value, 'notlike');\n }\n\n isnull(name: string): this {\n return this.add(name, undefined, 'isnull');\n }\n\n isnotnull(name: string): this {\n return this.add(name, undefined, 'isnotnull');\n }\n\n in(name: string, value: Array): this {\n return this.add(name, value, 'in', true);\n }\n\n notin(name: string, value: Array): this {\n return this.add(name, value, 'notin', true);\n }\n\n raw(filter: Filter | string | Filter[] | string[]): void {\n const filters = Array.wrap(filter);\n for (const filter of filters) {\n if (this.isFilterPart(filter)) {\n this.filters.push(filter);\n } else {\n throw new SyntaxError(`Filter ${filter} has invalid syntax`);\n }\n }\n }\n\n\n /**\n * Check if given string is proper filter part\n */\n isFilterPart(str: string): boolean {\n return /^[a-zA-Z0-9.]{2,12}_(?:isnull$|(?:gt|lt|(?:after|before)(?:orequal)?|on|eq|contains|like|(?:not)?in)_)/.test(str);\n }\n\n toString(): string {\n const parts: Array = [];\n\n let part: string,\n val: string;\n\n for (const filter of this.filters) {\n if (typeof filter === 'string') {\n part = filter;\n } else {\n val = '';\n if (filter.value.length > 1 || typeof filter.value[0] !== 'undefined') {\n val = `_${filter.value.join('|')}`;\n }\n part = `${filter.name}_${filter.operand}${val}`;\n }\n parts.push(part);\n }\n\n return parts.join(';');\n }\n\n /**\n * Add filter to filters list\n * @param name {string} Name\n * @param value {*} Value\n * @param operand {string} Operand\n * @param [checkNull=false] {boolean} Check null?\n * @returns {FilterBuilder}\n */\n private add(name: string, value: T, operand: string, checkNull = false): this {\n\n let _value = Array.wrap(value);\n\n if (_value.length === 0) {\n return this;\n }\n\n // auto-convert\n for (let i = 0; i < _value.length; i++) {\n const v = _value[i];\n if (typeof v === 'object' && v instanceof Date) {\n _value[i] = v.getTime();\n }\n }\n\n let isNull = false;\n if (checkNull) {\n // check null existence\n for (const v of _value) {\n if (v !== null) {\n continue;\n }\n isNull = true;\n }\n\n if (isNull) {\n _value = _value.filter((item: any) => item !== null);\n operand += 'ornull';\n }\n }\n\n if (operand.endsWith('ornull') && _value.length === 0) {\n operand = 'isnull';\n }\n\n // add filter\n this.filters.push(new Filter>(name, _value, operand));\n\n return this;\n }\n}\n\n\nexport default FilterBuilder;\n","import {Method} from 'axios';\n\n\n/**\n * Allowed methods\n *\n * @type {Array}\n * @default\n */\nexport const ALLOWED_HTTP_METHODS: Array = ['GET', 'POST', 'DELETE'];\n\nexport type QueryParam = string | number | boolean;\nexport type QueryParams = Record>;\n\nexport enum APIOrder {\n asc = 'a',\n desc = 'd'\n}\n\nexport interface CollectionQueryParams extends QueryParams {\n filter: string;\n limit: number;\n offset: number;\n sort: string;\n search: string;\n}\n\nexport type CollectionBasicQueryParams = Omit\n\nexport type NoQueryParams = {\n [key in any]: never;\n}\n\nexport type CollectionResponse = {\n data: Array;\n empty: boolean;\n id: number;\n limit: number;\n next: string;\n offset: number;\n previous: string;\n search: string;\n sort: string;\n total: number;\n}\n\nexport type SimpleCollectionResponse = Pick, 'data' | 'id'>;\nexport type NoData = void;\n","import {AxiosRequestConfig, AxiosResponse, Method} from 'axios';\nimport {stringify} from 'qs';\nimport {API} from '../API';\nimport {ALLOWED_HTTP_METHODS, QueryParams} from './models/HTTP';\nimport {AbortController} from 'node-abort-controller';\n\n\n/**\n * @typeParam RESPONSE HTTP Response return type.\n * @typeParam QUERY_PARAMS Allowed Query Params\n * @typeParam DATA Allowed Data Object\n */\nexport class APIEntity {\n\n root: API;\n\n protected stack: Array = [];\n protected requestConfig: AxiosRequestConfig = {};\n protected ALLOWED_HTTP_METHODS: Array = ALLOWED_HTTP_METHODS;\n protected abortController: AbortController;\n\n /**\n * Constructor\n * @param {APIEntity|object} [parent] - Specifies a parent from which should be inherited properties\n */\n constructor(parent: APIEntity | API) {\n if (parent instanceof APIEntity) {\n this.root = parent.root;\n\n if (Array.isArray(parent.stack)) { //???\n this.push(...parent.stack);\n }\n\n if (parent.requestConfig != null) {\n this.setRequestConfig(parent.requestConfig);\n }\n } else {\n this.root = parent;\n }\n this.abortController = new AbortController();\n }\n\n abortRequest() {\n this.abortController.abort();\n this.abortController = new AbortController();\n }\n\n push(...items: Array): this {\n this.stack = this.stack.concat(items);\n return this;\n }\n\n shift(): this {\n this.stack.shift();\n return this;\n }\n\n restack(...items: Array): this {\n this.stack = items;\n return this;\n }\n\n /**\n * Get first element of the stack\n */\n get first(): string | number {\n return this.stack[0];\n }\n\n /**\n * Get last element of the stack\n */\n get last(): string | number {\n return this.stack[this.stack.length - 1];\n }\n\n /**\n * Set last element of the stack\n */\n set last(val) {\n this.stack[this.stack.length - 1] = val;\n }\n\n toUrl(absolute = false): string {\n let url = `/${this.stack.join('/')}`;\n\n if (absolute) {\n url = this.root.baseUrl + url;\n }\n\n return url;\n }\n\n setRequestConfig(requestConfig: AxiosRequestConfig): this {\n Object.deepAssign(this.requestConfig, requestConfig);\n return this;\n }\n\n removeRequestConfig(key: keyof AxiosRequestConfig): this {\n delete this.requestConfig[key];\n return this;\n }\n\n headers(headers: Record): this {\n const _headers: Record = {};\n\n // Unify/Standarize headers keys\n for (const key in headers) {\n const newKey = key.replace(/(?:^|-)([a-z])/g, (letter) => letter.toUpperCase());\n _headers[newKey] = headers[key];\n }\n\n return this.setRequestConfig({\n headers: _headers\n });\n }\n\n /**\n * Set HTTP method\n */\n method(name: Method): this {\n const NAME: Uppercase = >name.toLocaleUpperCase();\n const isAllowed: boolean = this.ALLOWED_HTTP_METHODS.indexOf(NAME) > -1;\n\n if (!isAllowed) {\n throw new Error(`Method '${NAME}' is not allowed! You can use: ${this.ALLOWED_HTTP_METHODS.join(', ')}`);\n }\n\n return this.setRequestConfig({\n method: NAME\n });\n }\n\n /**\n * Set GET as HTTP method\n */\n get(): this {\n return this.method('GET');\n }\n\n /**\n * Set POST as HTTP method\n */\n post(): this {\n return this.method('POST');\n }\n\n /**\n * Set DELETE as HTTP method\n */\n delete(): this {\n return this.method('DELETE');\n }\n\n /**\n * Set params\n */\n params(params: Pick): this {\n this.setRequestConfig({params});\n return this;\n }\n\n getParams(): Partial {\n return this.requestConfig.params == null ? {} : this.requestConfig.params;\n }\n\n removeParam(key: keyof QUERY_PARAMS): this {\n delete this.requestConfig.params[key];\n return this;\n }\n\n /**\n * Set data\n */\n data(data: DATA): this {\n this.setRequestConfig({data});\n return this;\n }\n\n /**\n * Set JSON data\n */\n jsonData(data: DATA): this {\n this.headers({\n 'Content-Type': 'application/json'\n }).data(data);\n return this;\n }\n\n /**\n * Set form data\n */\n formData(data: DATA): this {\n this.headers({\n 'Content-Type': 'multipart/form-data'\n }).data(data);\n return this;\n }\n\n /**\n * Send request\n */\n send(): Promise> {\n const requestConfig = Object.deepAssign({}, this.requestConfig, {\n url: `/${this.stack.join('/')}`,\n signal: this.abortController.signal\n });\n\n // Set default headers\n if (requestConfig.headers == null) {\n requestConfig.headers = {};\n }\n\n 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 = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = {indexes: false};\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {\n APIOrder,\n CollectionBasicQueryParams,\n CollectionQueryParams,\n CollectionResponse,\n NoQueryParams,\n SimpleCollectionResponse\n} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport type APIListQuery = CollectionBasicQueryParams | CollectionQueryParams | NoQueryParams;\n\nexport class APIList\n extends APIEntity | SimpleCollectionResponse, QUERY_PARAMS, DATA> {\n\n /**\n * Shortcut for sending data POST\n */\n create(data: DATA): Promise> {\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 */\n sort(name: string, order: APIOrder = APIOrder.asc): this {\n return this.params<'sort'>({\n sort: `${name}_${order}`\n });\n }\n\n /**\n * Sets limit\n *\n * @public\n * @param {number} [limit=DEFAULT_LIMIT] - Limit to be set\n * @returns this\n */\n limit(limit = DEFAULT_LIMIT): this {\n if (!Number.isNatural(limit)) {\n throw new Error(`Limit '${limit}' is invalid!`);\n }\n\n return this.params<'limit'>({\n limit\n });\n }\n\n /**\n * Gets limit\n *\n * @public\n * @returns number\n */\n getLimit(): number {\n const params = this.getParams();\n return params.limit == null ? DEFAULT_LIMIT : params.limit;\n }\n\n /**\n * Disables limit\n *\n * @public\n * @returns this\n */\n noLimit(): this {\n return this.limit(0);\n }\n\n /**\n * Sets offset\n *\n * @public\n * @param {number} [offset=DEFAULT_OFFSET] - Offset to be set\n * @returns this\n */\n offset(offset: number = DEFAULT_OFFSET): this {\n if (!Number.isNatural(offset)) {\n throw new Error(`Offset '${offset}' is invalid!`);\n }\n\n return this.params<'offset'>({\n offset\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE records between range\n *\n * @public\n * @param {number} from - From index\n * @param {number} to - To index\n * @returns this\n */\n between(from: number, to: number): this {\n if (!Number.isNatural(from)) {\n throw new Error(`From '${from}' is invalid!`);\n }\n\n if (!Number.isNatural(to)) {\n throw new Error(`To '${to}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: from,\n limit: 1 + (to - from)\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE one record on given index\n *\n * @public\n * @param {number} idx - Index\n * @returns this\n */\n only(idx: number): this {\n if (!Number.isNatural(idx)) {\n throw new Error(`Index '${idx}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: idx,\n limit: 1\n });\n }\n\n /**\n * Gets current limit and sets offset so that will request from BE one page of records\n *\n * @public\n * @param {number} [page=1] - Page number (counted from 1)\n * @returns this\n */\n page(page = 1): this {\n if (!Number.isNatural(page) || page == 0) {\n throw new Error(`Page '${page}' is invalid!`);\n }\n\n const limit = this.getLimit();\n const offset = (page - 1) * limit;\n\n return this.params<'offset' | 'limit'>({\n offset,\n limit\n });\n }\n\n /**\n * Sets search\n *\n * query param is working like SQL LIKE. BE sets wraps around query with %, and replaces every white character\n * with %. So e.g. if query='my device', then it's searching for '%my%device%' in DB.\n *\n * @public\n * @param {string} query - Query to search for\n * @returns this\n */\n search(query: string): this {\n if (typeof query !== 'string') {\n throw new Error('Search query must be a string!');\n }\n\n return this.params<'search'>({\n search: query\n });\n }\n\n /**\n * Sets filter\n *\n * @public\n * @param {FilterBuilder|string} filter - Filter\n * @returns this\n */\n filter(filter: FilterBuilder | string): this {\n const isFilterBuilder = filter instanceof FilterBuilder;\n\n if (typeof filter !== 'string' && !isFilterBuilder) {\n throw new Error('Filter must be either string or instance of FilterBuilder');\n }\n\n return this.params<'filter'>({\n filter: filter.toString()\n });\n }\n\n /**\n * Alias for 'noLimit'\n *\n * @public\n * @see noLimit\n * @returns this\n */\n all: typeof APIList.prototype.noLimit = this.noLimit;\n\n /**\n * Alias for 'between'\n *\n * @public\n * @param {number} from - From idx\n * @param {number} to - To idx\n * @returns this\n */\n cut: typeof APIList.prototype.between = this.between;\n}\n\nexport default APIList;\n","import {APIEntity} from './APIEntity'\nimport {QueryParams} from './models/HTTP';\n\n\n/**\n * APIResource\n *\n * @class\n * @extends APIEntity\n */\nexport class APIResource\n extends APIEntity {\n}\n\n\nexport default APIResource;\n","import {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {CleanupConfigurationData, SpecificCleanupConfigurationQueryParams} from './models/CleanupConfiguration';\nimport {DeviceCleanupConfiguration} from './models/Device';\nimport {CollectionQueryParams, NoData} from './models/HTTP';\n\n\nexport class APIListCleanupConfigurations extends APIList {\n\n /**\n * /cleanup-configurations\n */\n constructor(parent: APIAdminListDevices) {\n super(parent);\n this.push('cleanup-configurations');\n }\n\n // /cleanup-configurations/specific\n specific() {\n return new APIResource, NoData>(this)\n .push('specific');\n }\n\n}\n\nexport default APIListCleanupConfigurations\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIResource} from './APIResource'\nimport {CleanupConfigurationSpecificData, DeviceCleanupConfiguration} from './models/Device';\nimport {NoData} from './models/HTTP';\nimport APIList from './APIList';\n\n\nexport class APIResourceCleanupConfiguration extends APIResource {\n //shuldn't it be APIAdminResourceCleanupConfiguration\n\n /**\n * admin/devices/cleanup-configurations/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('cleanup-configurations', id);\n }\n\n // admin/devices/cleanup-configurations/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIResourceCleanupConfiguration\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIListCleanupConfigurations} from './APIListCleanupConfigurations';\nimport {APIResourceCleanupConfiguration} from './APIResourceCleanupConfiguration';\nimport {AdminDevice, AdminDeviceData, AdminDevicesQueryParams} from './models/AdminDevice';\n\n\nexport class APIAdminListDevices extends APIList {\n\n /**\n * /admin/devices\n */\n constructor(parent: APIAdminResource | API) {\n super(parent);\n this.push('admin', 'devices');\n }\n\n // /admin/devices/cleanup-configurations\n cleanupConfigurations() {\n return new APIListCleanupConfigurations(this);\n }\n\n // /admin/devices/cleanup-configurations/{id}\n cleanupConfiguration(id: number) {\n return new APIResourceCleanupConfiguration(this, id);\n }\n\n}\n\nexport default APIAdminListDevices;\n","import {Method} from 'axios';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {RunsConfigParams, TestRunConfig} from './models/TestRun';\n\nexport class APIAdminListRuns extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET'];\n\n /**\n * /admin/runs\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'runs');\n }\n\n // /runs/config\n config() {\n const apiResource = new APIResource(this);\n apiResource.restack('runs', 'config');\n return apiResource;\n }\n\n}\n\n\nexport default APIAdminListRuns\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {AdminServicesParams, Service} from './models/Service';\n\n\nexport class APIAdminListServices extends APIList {\n\n /**\n * /admin/services\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'services');\n }\n\n active() {\n const apiList = new APIList(this);\n apiList.params<'notArchived'>({\n notArchived: true\n });\n return apiList;\n }\n\n activated() {\n const apiList = this.active();\n apiList.params<'filter' | 'limit' | 'sort'>({\n filter: 'activated_eq_true',\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n inUse() {\n const apiList = new APIList(this);\n apiList.params<'inUse' | 'limit' | 'sort'>({\n inUse: true,\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n byPrice() {\n const apiList = new APIList(this);\n apiList.params<'sort'>({\n sort: 'centPrice_a'\n })\n return apiList;\n }\n\n}\n\nexport default APIAdminListServices;\n","import {AxiosResponse} from 'axios';\n\nexport function NonRequestable(constructor: T) {\n return class extends constructor {\n send(): Promise {\n return Promise.reject();\n }\n };\n}\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AdminFrameworkStatistics, AdminStatisticsParams} from './models/AdminFrameworkStatistics';\nimport {NoData} from './models/HTTP';\n\n\n@NonRequestable\nexport class APIAdminListStatistics extends APIList {\n\n /**\n * /admin/statistics\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'statistics');\n }\n\n // /admin/statistics/frameworks\n frameworks() {\n return new APIList(this).push('frameworks');\n }\n\n\n}\n\n\nexport default APIAdminListStatistics\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {\n Account, AccountData,\n AccountUsage,\n AccountUsageParams,\n AccountUsageSummary,\n AccountUsageSummaryParams\n} from './models/Account';\nimport {NoData, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\nimport {Role, RoleData, RoleParams} from './models/Role';\nimport {AccountService} from './models/AccountService';\nimport {AccountPreferences, AccountPreferencesData} from './models/AccountPreference';\n\n\nexport class APIAdminResourceAccount extends APIResource {\n\n /**\n * /admin/accounts/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'accounts', id);\n }\n\n // /admin/accounts/{id}/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /admin/accounts/{id}/roles/{id}\n role(id: number) {\n return new APIResource(this).push('roles', id);\n }\n\n // /admin/accounts/{id}/account-services\n accountServices() {\n return new APIList(this).push('account-services');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource(this).push('preferences');\n }\n\n // /admin/accounts/{id}/usage\n usage() {\n return new APIList, AccountUsageParams>(this).push('usage');\n }\n\n // /admin/accounts/{id}/usage-summary\n usageSummary() {\n return new APIResource(this).push('usage-summary');\n }\n\n}\n\nexport default APIAdminResourceAccount\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {AccountService} from './models/AccountService';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIAdminResourceAccountService extends APIResource {\n\n /**\n * /admin/account-services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'account-services', id);\n }\n\n // /account-services/{id}/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n // /account-services/{id}/deactivate\n deactivate() {\n return new APIResource(this).push('deactivate').post();\n }\n\n}\n\nexport default APIAdminResourceAccountService\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice} from './models/AdminDevice';\nimport {Cluster, ClusterData, ClusterParams} from './models/Cluster';\n\n\nexport class APIAdminResourceCluster extends APIResource {\n\n /**\n * /clusters/{id}\n */\n constructor(parent: API | APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('clusters', id);\n }\n\n // /clusters/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIAdminResourceCluster\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice, AdminDeviceData} from './models/AdminDevice';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\n\n /**\n * /admin/devices/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'devices', id);\n }\n\n // /admin/devices/{id}/cleanup-configuration\n cleanupConfiguration() {\n return new APIResource(this).push('cleanup-configuration');\n }\n\n // /admin/devices/{id}/labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /admin/devices/{id}/labels/{id}\n label(id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\nimport {AdminDeviceSession} from './models/AdminDeviceSession';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\n\n /**\n * /admin/device-models/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'device-models', id);\n }\n\n // /admin/device-models/{id}/browsers\n browsers() {\n return new APIList(this).push('browsers');\n }\n\n // /admin/device-models/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDeviceModel;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {NoData} from '../models/HTTP';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\n\n\n@NonRequestable\nexport class InputFileset extends APIResource {\n\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('input-file-set');\n }\n\n /**\n * @remarks Endpoint /input-file-set/files\n */\n files() {\n return new APIList(this).push('files');\n }\n\n /**\n * @remarks Endpoint /input-file-set/files.zip\n */\n filesZip() {\n return new APIResource(this).push('files.zip');\n }\n}\n\nexport default InputFileset\n","// Create image files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const IMAGE_FILES_FILTER = new FilterBuilder();\nIMAGE_FILES_FILTER.eq('state', 'READY');\nIMAGE_FILES_FILTER.in('mimetype', [\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif'\n]);\nIMAGE_FILES_FILTER.notlike('name', 'action-%%');\n","// Create non-media files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const NON_MEDIA_FILES_FILTER = new FilterBuilder();\nNON_MEDIA_FILES_FILTER.eq('state', 'READY');\nNON_MEDIA_FILES_FILTER.notin('mimetype', [\n // no images\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif',\n\n // no videos\n 'video/mp4', 'video/avi', 'video/webm', 'video/ogg', 'video/mpeg'\n]);\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {UserFile} from './models/UserFile';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {IMAGE_FILES_FILTER} from './class/Images.filter';\nimport {NON_MEDIA_FILES_FILTER} from './class/NonMedia.filter';\n\n\nexport class APIListOutputFiles extends APIList {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n performance(): this {\n return this.params({\n tag: ['performance']\n })\n }\n\n images(): this {\n return this.filter(IMAGE_FILES_FILTER);\n }\n\n // Filter files out by non-media\n nonMediaFiles(): this {\n return this.filter(NON_MEDIA_FILES_FILTER);\n }\n\n // Filter files out by ready videos\n videos(): this {\n return this.params({\n filter: 's_state_eq_READY',\n tag: ['video']\n });\n }\n}\n\nexport default APIListOutputFiles;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {Screenshot} from '../models/Screenshot';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\nimport APIListOutputFiles from '../APIListOutputFiles';\n\n\n@NonRequestable\nexport class OutputFileset extends APIResource {\n\n /**\n * /output-file-set\n *\n * Constructor\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('output-file-set');\n }\n\n // /output-file-set/files\n files() {\n return new APIListOutputFiles(this);\n }\n\n // /output-file-set/files/{id}\n file(id: number) {\n return new APIResource(this).push('files', id);\n }\n\n // /output-file-set/files.zip\n filesZip() {\n return new APIResource(this).push('files.zip');\n }\n\n // /output-file-set/screenshots\n screenshots() {\n return new APIList(this).push('screenshots');\n }\n\n // /output-file-set/screenshots/{id}\n screenshot(id: number) {\n return new APIResource(this).push('screenshots', id);\n }\n\n // /output-file-set/screenshots/{id}/file/{id}\n screenshotFile(id: number) {\n return this.screenshot(id).push('file');\n }\n}\n\nexport default OutputFileset\n","import {Screenshot} from './models/Screenshot';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\n\nexport class APIListScreenshots extends APIList {\n\n /**\n * screenshots\n */\n constructor(parent: APIResourceDeviceSessionCommon) {\n super(parent);\n this.push('screenshots');\n }\n}\n\nexport default APIListScreenshots\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {InputFileset} from './class/InputFileset'\nimport {OutputFileset} from './class/OutputFileset'\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\nimport {\n DeviceSession,\n DeviceSessionCommand,\n DeviceSessionStep,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport APIListScreenshots from './APIListScreenshots';\n\n\nexport class APIResourceDeviceSessionCommon extends APIResource implements DeviceSessionCommon {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/commands\n commands() {\n return new APIList(this).push('commands');\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource(this).push('release').post();\n }\n\n // /device-sessions/{id}/screenshots\n screenshots() {\n return new APIListScreenshots(this);\n }\n\n // /device-sessions/{id}/screenshots/{id}\n screenshot(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /device-sessions/{id}/steps\n steps() {\n return new APIList(this).push('steps');\n }\n\n // /device-sessions/{id}/steps/{id}\n step(id: number | 'current') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('steps', id);\n }\n\n // /device-sessions/{id}/steps/current\n currentStep() {\n return this.step('current');\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n logs() {\n return new APIResource(this).push('logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n clusterLogs() {\n return new APIResource(this).push('cluster-logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n}\n\nexport default APIResourceDeviceSessionCommon\n","import {APIResource} from '../APIResource';\nimport APIResourceDeviceSessionCommon from '../APIResourceDeviceSessionCommon';\nimport {DeviceSession} from '../models/DeviceSession';\n\nexport function postAdminDeviceSessionChangeBillable(parent: APIResourceDeviceSessionCommon, billable: boolean) {\n const apiResource = new APIResource(parent);\n const deviceSessionId = apiResource.last;\n\n return apiResource.restack('admin', 'device-sessions', deviceSessionId, 'changebillable').params({\n billable\n }).post();\n}\n\nexport default postAdminDeviceSessionChangeBillable;\n","import {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {postAdminDeviceSessionChangeBillable} from './factory/postAdminDeviceSessionChangeBillable';\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\n\n\n/**\n * APIAdminResourceDevice\n *\n *\n * It will require more work to decouple from regular session\n */\nexport class APIAdminResourceDeviceSessionStandalone extends APIResourceDeviceSessionCommon implements DeviceSessionCommon {\n\n // /admin/device-sessions/{id}/changebillable\n changeBillable(billable: boolean) {\n return postAdminDeviceSessionChangeBillable(this, billable);\n }\n}\n\nexport default APIAdminResourceDeviceSessionStandalone;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NoData} from './models/HTTP';\nimport {DeviceTimeParams, UserDeviceTime} from './models/UserDeviceTime';\n\nexport class APIAdminResourceDeviceTime extends APIList {\n\n /**\n * /admin/device-time\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'device-time');\n }\n}\n\nexport default APIAdminResourceDeviceTime\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Framework, FrameworkConfigData, FrameworkEditData} from './models/Framework';\nimport {NoQueryParams} from './models/HTTP';\nimport {ProjectJobConfig} from './models/ProjectJobConfig';\nimport {Role} from './models/Role';\n\nexport class APIAdminResourceFramework extends APIResource {\n\n /**\n * /admin/frameworks/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'frameworks', id);\n }\n\n // /admin/frameworks/{id}/config\n config() {\n return new APIResource(this).push('config');\n }\n\n // /admin/frameworks/{id}/required-roles\n requiredRoles() {\n return new APIList(this).push('required-roles');\n }\n\n}\n\nexport default APIAdminResourceFramework\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\n\nexport class APIAdminResourceLicense extends APIResource {\n\n /**\n * /licenses/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'licenses', id);\n }\n\n // /licenses/{id}/activate\n activate() {\n return new APIResource(this).push('activate');\n }\n\n // /licenses/{id}/deactivate\n deactivate() {\n return new APIResource(this).push('deactivate');\n }\n\n // /licenses/{id}/resend\n resend() {\n return new APIResource(this).push('resend');\n }\n\n // /licenses/{id}/download\n download() {\n return new APIResource(this).push('download');\n }\n\n}\n\nexport default APIAdminResourceLicense\n","import {APIEntity} from '../APIEntity';\nimport {APIResource} from '../APIResource';\nimport {BuildLogsData, BuildLogsParams} from '../models/UserFile';\n\nexport function postDeviceRunIds(parent: APIEntity, name: string, ids?: Array) {\n const a = new APIResource(parent).push(name);\n\n if (ids != null) {\n a.params<'deviceRunIds'>({\n deviceRunIds: ids\n });\n }\n\n return a.post();\n}\n\nexport default postDeviceRunIds;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun, RunChangeBillableParams, RunChangePriorityParams} from './models/AdminTestRun';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceRunStandalone extends APIResource {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/changebillable\n changeBillable(billable: boolean) {\n return new APIResource(this).push('changebillable').post().params({\n billable\n });\n }\n\n // /runs/{id}/changepriority\n changePriority(priority?: number) {\n const resource = new APIResource(this).push('changepriority');\n if (priority) {\n resource.post().data({\n priority\n });\n }\n return resource;\n }\n\n // /admin/runs/{id}/retry\n retry(ids?: Array) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n}\n\nexport default APIAdminResourceRunStandalone;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceActivateData} from './models/Service';\n\n\nexport class APIAdminResourceService extends APIResource {\n\n /**\n * /services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'services', id);\n }\n\n // /services/{id}/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n}\n\nexport default APIAdminResourceService\n","import {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccountService, AccountServiceData} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Role, RoleData} from './models/Role';\nimport {User, UserUpdateAccount} from './models/User';\n\n@NonRequestable\nexport class APIAdminResourceUserAccount extends APIResource {\n\n /**\n * /account\n */\n constructor(parent: APIAdminResourceUser) {\n super(parent);\n this.push('account');\n }\n\n // /account/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /account/roles/{id}\n role(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('roles', id);\n }\n\n // /account-services\n services() {\n const a = new APIList(this);\n a.last += '-services';\n return a;\n }\n\n // /update-account\n 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 {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {InputFileset} from './class/InputFileset';\nimport {OutputFileset} from './class/OutputFileset';\nimport {DeviceSessionStandalone} from './interface/DeviceSessionStandalone';\nimport {Connection, ConnectionData} from './models/Connection';\nimport {DeviceSession, DeviceSessionRelease} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {VisualTest} from './models/VisualTest';\n\nexport class APIResourceDeviceSessionStandalone extends APIResource implements DeviceSessionStandalone {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIResourceUser | APIAdminResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n // /device-sessions/{id}/connections/{id}\n connection(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('connections', id);\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource(this).push('release').post();\n }\n\n // /device-sessions/{id}/visual-tests/images\n visualTestsImages() {\n return new APIList(this).push('visual-tests', 'images');\n }\n\n}\n\nexport default APIResourceDeviceSessionStandalone\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIAdminResourceUserAccount} from './APIAdminResourceUserAccount';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\nimport {Role, RoleData, RoleParams} from './models/Role';\nimport {User} from './models/User';\n\n\n@NonRequestable\nexport class APIAdminResourceUser extends APIResource {\n\n /**\n * /admin/users/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'users', id);\n }\n\n // /admin/users/{id}/disable\n disable() {\n return new APIResource(this).push('disable');\n }\n\n // /admin/users/{id}/enable\n enable() {\n return new APIResource(this).push('enable');\n }\n\n // /admin/users/{id}/licenses\n licenses() {\n return new APIList(this).push('licenses');\n }\n\n // /admin/users/{id}/resend-activation\n resendActivation() {\n return new APIResource(this).push('resend-activation').post();\n }\n\n // /admin/users/{id}/account\n account() {\n return new APIAdminResourceUserAccount(this);\n }\n\n // /admin/users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /admin/users/{id}/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /admin/users/{id}/roles/{id}\n role(id: number) {\n return new APIResource(this).push('roles', id);\n }\n\n}\n\nexport default APIAdminResourceUser;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccessGroup, AccessGroupUsersQueryParams} from './models/AccessGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {SharedResource} from './models/SharedResource';\nimport {User, UserData} from './models/User';\n\nexport class APIResourceAccessGroup extends APIResource {\n\n /**\n * /access-groups/{id}\n *\n */\n constructor(parent: APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('access-groups', id);\n }\n\n // /access-groups/{id}/users\n users() {\n return new APIList(this).push('users');\n }\n\n // /access-groups/{id}/users/{id}\n user(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('users', id);\n }\n\n // /access-groups/{id}/resources\n resources() {\n return new APIList(this).push('resources');\n }\n\n // /access-groups/{id}/resources/{id}\n resource(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('resources', id);\n }\n\n}\n\nexport default APIResourceAccessGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport APIResourceUser from './APIResourceUser';\nimport {Device, DeviceProperty} from './models/Device';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupParams, DeviceGroupSelectorData} from './models/DeviceGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {ShareData, SharedResource} from './models/SharedResource';\n\nexport class APIResourceDeviceGroup extends APIResource {\n\n /**\n * /device-groups/{id}\n */\n constructor(parent: APIAdminResource | APIResourceUser | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-groups', id);\n }\n\n // /device-groups/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n // /device-groups/{id}/devices/{id}\n device(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('devices', id);\n }\n\n // /device-groups/{id}/selectors\n selectors() {\n return new APIList(this).push('selectors');\n }\n\n // /device-groups/{id}/selectors/{id}\n selector(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('selectors', id);\n }\n\n // /device-groups/{id}/share\n share() {\n return new APIList(this).push('share');\n }\n\n}\n\nexport default APIResourceDeviceGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport {Property} from './models/Property';\nimport {ShareData, SharedResource} from './models/SharedResource';\nimport {FileSizeData, UserFile, UserFileTag} from './models/UserFile';\n\n\nexport class APIResourceFile extends APIResource {\n\n /**\n * /files/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('files', id);\n }\n\n // use this to download file content\n // /files/{id}/file\n file() {\n return new APIResource(this).push('file');\n }\n\n // /files/{id}/icon\n icon() {\n return new APIResource(this).push('icon');\n }\n\n // /files/{id}/tags\n tags() {\n return new APIList(this).push('tags');\n }\n\n share() {\n return new APIList(this).push('share');\n }\n\n property(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('properties', id);\n }\n\n}\n\nexport default APIResourceFile\n","import {NoData} from './models/HTTP';\nimport {TestCaseRun} from './models/TestCaseRun';\nimport APIList, {APIListQuery} from './APIList';\nimport {SessionQueryParams} from './models/DeviceSession';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\n\nexport class APIListTestCaseRuns extends APIList {\n\n /**\n * /test-case-runs\n */\n constructor(parent: APIResourceDeviceSessionCommon) {\n super(parent);\n this.push('test-case-runs');\n }\n}\n\nexport default APIListTestCaseRuns\n","import {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession as DeviceSessionModel, SessionQueryParams} from './models/DeviceSession';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\nimport {APIListQuery} from './APIList';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n // /device-sessions/{id}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\n }\n}\n\nexport default APIResourceDeviceSession\n","import {DeviceSession} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceRunCommon from './APIResourceRunCommon';\n\n\nexport class APIListTestRunDeviceSessions extends APIList {\n\n /**\n * device-sessions\n */\n constructor(parent: APIResourceRunCommon) {\n super(parent);\n this.push('device-sessions');\n }\n}\n\nexport default APIListTestRunDeviceSessions\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {DeviceSessionStep} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {RunData, RunQueryParam, TestRun, TestRunData} from './models/TestRun';\nimport {TestRunDataAvailability, TestRunDataAvailabilityQueryParams} from './models/TestRunDataAvailability';\nimport {UserFile} from './models/UserFile';\nimport APIListTestRunDeviceSessions from './APIListTestRunDeviceSessions';\n\n\nexport class APIResourceRunCommon extends APIResource {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/build-logs.zip\n buildLogsZip(ids?: Array) {\n return postDeviceRunIds(this, 'build-logs.zip', ids);\n }\n\n // /runs/{id}/data-availability\n dataAvailability() {\n return new APIResource(this).push('data-availability');\n }\n\n // /runs/{id}/device-sessions\n deviceSessions() {\n return new APIListTestRunDeviceSessions(this);\n }\n\n // /runs/{id}/files.zip\n filesZip(ids?: Array) {\n return postDeviceRunIds(this, 'files.zip', ids);\n }\n\n // /runs/{id}/logs.zip\n logsZip(ids?: Array) {\n return postDeviceRunIds(this, 'logs.zip', ids);\n }\n\n // /runs/{id}/performance.zip\n performanceZip(ids?: Array) {\n return postDeviceRunIds(this, 'performance.zip', ids);\n }\n\n // /runs/{id}/retry\n retry(ids?: Array) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n // /runs/{id}/screenshots.zip\n screenshotsZip(ids?: Array) {\n return postDeviceRunIds(this, 'screenshots.zip', ids);\n }\n\n // /runs/{id}/steps\n steps() {\n return new APIList(this).push('steps');\n }\n\n}\n\nexport default APIResourceRunCommon\n","import {APIResourceDeviceSession} from './APIResourceDeviceSession'\nimport {APIResourceRunCommon} from './APIResourceRunCommon'\nimport {CollectionQueryParams} from './models/HTTP';\n\nexport class APIResourceRun extends APIResourceRunCommon {\n\n // /runs/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n}\n\nexport default APIResourceRun\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceRun} from './APIResourceRun'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Project} from './models/Project';\nimport {ShareData, SharedResource} from './models/SharedResource';\nimport {TestRun} from './models/TestRun';\n\nexport class APIResourceProject extends APIResource {\n\n /**\n * /projects/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('projects', id);\n }\n\n // /projects/{id}/runs\n runs() {\n return new APIList(this).push('runs');\n }\n\n // /projects/{id}/runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n share() {\n return new APIList(this).push('share');\n }\n\n // /unarchive\n unarchive() {\n return new APIResource(this).push('unarchive');\n }\n\n}\n\nexport default APIResourceProject\n","import {API} from '../API';\nimport {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIAdminListRuns} from './APIAdminListRuns';\nimport {APIAdminListServices} from './APIAdminListServices';\nimport {APIAdminListStatistics} from './APIAdminListStatistics';\nimport APIAdminResourceAccount from './APIAdminResourceAccount';\nimport {APIAdminResourceAccountService} from './APIAdminResourceAccountService';\nimport {APIAdminResourceCluster} from './APIAdminResourceCluster';\nimport {APIAdminResourceDevice} from './APIAdminResourceDevice';\nimport {APIAdminResourceDeviceModel} from './APIAdminResourceDeviceModel';\nimport {APIAdminResourceDeviceSessionStandalone} from './APIAdminResourceDeviceSessionStandalone';\nimport {APIAdminResourceDeviceTime} from './APIAdminResourceDeviceTime';\nimport {APIAdminResourceFramework} from './APIAdminResourceFramework';\nimport {APIAdminResourceLicense} from './APIAdminResourceLicense';\nimport {APIAdminResourceRunStandalone} from './APIAdminResourceRunStandalone';\nimport {APIAdminResourceService} from './APIAdminResourceService';\nimport {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceFile} from './APIResourceFile'\nimport {APIResourceProject} from './APIResourceProject';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccessGroup, AccessGroupData} from './models/AccessGroup';\nimport {Account} from './models/Account';\nimport {AccountService} from './models/AccountService';\nimport {Activity} from './models/Activity';\nimport {AdminDeviceSession, AdminInteractiveDeviceSession} from './models/AdminDeviceSession';\nimport {AdminDeviceType, DeviceTypeData} from './models/AdminDeviceType';\nimport {AdminEmail} from './models/AdminEmail';\nimport {Administrator} from './models/Administrator';\nimport {AdminOverview} from './models/AdminOverview';\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {Browser, BrowserData} from './models/Browser';\nimport {DeviceModelCriterion, DeviceModelCriterionData} from './models/DeviceModelCriterion';\nimport {DeviceModelPool, DeviceModelPoolData} from './models/DeviceModelPool';\nimport {Framework, FrameworkData} from './models/Framework';\nimport {License, LicenseData} from './models/License';\nimport {Maintenance, MaintenanceData} from './models/Maintenance';\nimport {Project} from './models/Project';\nimport {Role, RoleParams} from './models/Role';\nimport {Settings, SettingsParams} from './models/Settings';\nimport {User, UserData, UserParams} from './models/User';\nimport {DeviceTimeSummaryParams, UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {UserFile, UserFileData, UserFileParams} from './models/UserFile';\nimport {Cluster} from './models/Cluster';\nimport {DeviceProperty} from './models/Device';\nimport {DeviceGroup} from './models/DeviceGroup';\nimport {DeviceModel} from './models/DeviceModel';\nimport {DeviceProblem} from './models/DeviceProblem';\nimport {DeviceStatus} from './models/DeviceStatus';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n@NonRequestable\nexport class APIAdminResource extends APIResource {\n\n /**\n * /admin\n */\n constructor(parent: API) {\n super(parent);\n }\n\n // /access-groups\n accessGroups() {\n return new APIList(this).push('access-groups');\n }\n\n // /access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /admin/accounts\n accounts() {\n return new APIList(this).push('admin', 'accounts');\n }\n\n // /admin/accounts/{id}\n account(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIAdminResourceAccount(this, id);\n }\n\n // /admin/account-services\n accountServices() {\n return new APIList(this).push('admin', 'account-services');\n }\n\n // /admin/account-services/{id}\n accountService(id: number) {\n return new APIAdminResourceAccountService(this, id);\n }\n\n // activities\n activities() {\n return new APIList(this).push('admin', 'activities');\n }\n\n // admin/administrators\n administrators() {\n return new APIList(this).push('admin', 'administrators');\n }\n\n // /admin/billing-periods\n billingPeriods() {\n return new APIList(this).push('admin', 'billing-periods');\n }\n\n // /admin/billing-periods/{id}\n billingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'billing-periods', id);\n }\n\n // /admin/browsers\n browsers() {\n return new APIList(this).push('admin', 'browsers');\n }\n\n // /clusters\n clusters() {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /admin/devices\n devices() {\n return new APIAdminListDevices(this);\n }\n\n // /admin/devices/{id}\n device(id: number) {\n return new APIAdminResourceDevice(this, id);\n }\n\n devicesForModel(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n const apiList = this.devices();\n apiList.params({\n filter: 'deviceModelId_eq_' + id\n });\n return apiList;\n }\n\n // /admin/device/statuses\n deviceStatuses() {\n return new APIList(this).push('admin', 'device', 'statuses');\n }\n\n // /admin/device-models\n deviceModels() {\n return new APIList(this).push('admin', 'device-models');\n }\n\n // /admin/device-models/{id}\n deviceModel(id: number) {\n return new APIAdminResourceDeviceModel(this, id);\n }\n\n // /admin/device-problems\n deviceProblems() {\n return new APIList(this).push('admin', 'device-problems');\n }\n\n // /admin/device-model-criteria\n deviceModelCriterias() {\n return new APIList(this).push('admin', 'device-model-criteria');\n }\n\n // /admin/device-model-criteria/{id}\n deviceModelCriteria(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'device-model-criteria', id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('admin', 'device-sessions');\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIAdminResourceDeviceSessionStandalone(this, id);\n }\n\n // /device-time\n deviceTime() {\n return new APIAdminResourceDeviceTime(this);\n }\n\n // /device-time-summary\n deviceTimeSummary() {\n return new APIList(this).push('admin', 'device-time-summary');\n }\n\n // /device-types\n deviceTypes() {\n return new APIList(this).push('admin', 'device-types');\n }\n\n // /device-types/{id}\n deviceType(id: number) {\n return new APIResource(this).push('admin', 'device-types', id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /admin/emails\n emails() {\n return new APIList(this).push('admin', 'emails');\n }\n\n // /admin/emails/{id}/resend\n resendEmail(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'emails', id, 'resend').post();\n }\n\n // /files\n files() {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /admin/frameworks\n frameworks() {\n return new APIList(this).push('admin', 'frameworks');\n }\n\n // /admin/frameworks/{id}\n framework(id: number) {\n return new APIAdminResourceFramework(this, id);\n }\n\n // /admin/frameworks/available-labels\n frameworkAvailableLabels() {\n const apiList = this.frameworks();\n apiList.push('available-labels');\n return apiList;\n }\n\n // /admin/interactive-queue\n interactiveQueue() {\n return new APIList(this).push('admin', 'interactive-queue');\n }\n\n // /admin/licenses\n licenses() {\n return new APIList(this).push('admin', 'licenses');\n }\n\n // /admin/licenses/{id}\n license(id: number) {\n return new APIAdminResourceLicense(this, id);\n }\n\n // /admin/maintenance\n maintenance() {\n return new APIResource(this).push('admin', 'maintenance');\n }\n\n // /admin/overview\n overview() {\n return new APIResource(this).push('admin', 'overview');\n }\n\n pools() {\n return new APIList(this).push('admin', 'pools');\n }\n\n pool(id: number) {\n return new APIResource(this).push('admin', 'pools', id);\n }\n\n // /projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /admin/roles\n roles() {\n return new APIList(this).push('admin', 'roles');\n }\n\n // /admin/runs\n runs() {\n return new APIAdminListRuns(this);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIAdminResourceRunStandalone(this, id);\n }\n\n // /admin/samples\n samples() {\n return new APIList>(this).push('admin', 'samples');\n }\n\n // /admin/samples/{id}\n sample(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'samples', id);\n }\n\n // /admin/services\n services() {\n return new APIAdminListServices(this);\n }\n\n // /admin/services/{id}\n service(id: number) {\n return new APIAdminResourceService(this, id);\n }\n\n // /admin/settings\n settings() {\n return new APIResource(this).push('admin', 'settings');\n }\n\n // /admin/statistics\n statistics() {\n return new APIAdminListStatistics(this);\n }\n\n // /users\n users() {\n return new APIList(this).push('users');\n }\n\n // /admin/users\n createUser() {\n return new APIList(this).push('admin', 'users').post();\n }\n\n // /users/{id}\n user(id: number) {\n return new APIAdminResourceUser(this, id);\n }\n\n}\n\nexport default APIAdminResource;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {DesktopBrowserCapabilities} from './models/DesktopBrowserCapabilities';\nimport {Device, DevicesQueryParams} from './models/Device';\nimport {DevicePicker} from './models/DeviceFilter';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIListDevices extends APIList {\n\n /**\n * /devices\n */\n constructor(parent: API) {\n super(parent);\n this.push('devices');\n }\n\n // /devices/filters\n filters() {\n return new APIResource>(this).push('filters');\n }\n\n // /devices/desktop-browser-capabilities\n desktopBrowserCapabilities() {\n return new APIResource(this).push('desktop-browser-capabilities');\n }\n\n}\n\nexport default APIListDevices;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {CollectionQueryParams} from './models/HTTP';\nimport {Property, PropertyData} from './models/Property';\n\n\nexport class APIListProperties extends APIList {\n\n /**\n * /properties\n */\n constructor(parent: API) {\n super(parent);\n this.push('properties');\n }\n\n maintenance() {\n return new APIList(this).params({\n filter: 'name_eq_CLOUD_HEADER_ANNOUNCEMENT',\n limit: 1,\n sort: 'updateTime_d'\n });\n }\n\n}\n\nexport default APIListProperties\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceData} from './models/Service';\n\n\nexport class APIListServices extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['POST'];\n\n /**\n * /services\n */\n constructor(parent: API | APIResourceUser) {\n super(parent);\n this.push('services');\n }\n\n // /services/available\n available() {\n return new APIList(this).push('available');\n }\n\n active() {\n const apiList = new APIList(this);\n if (this.first === 'me') {\n apiList.push('active');\n } else {\n apiList.params({\n notArchived: true\n });\n }\n return apiList;\n }\n\n byPrice() {\n return new APIList(this).sort('centPrice');\n }\n\n availableByPrice() {\n return new APIList(this).push('available').sort('centPrice');\n }\n\n}\n\nexport default APIListServices\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {\n User,\n UserActivateData,\n UserData,\n UserPasswordData,\n UserRecoveryQueryParams,\n} from './models/User';\n\n\nexport class APIListUsers extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET', 'POST'];\n\n /**\n * /users\n */\n constructor(parent: API) {\n super(parent);\n this.push('users');\n }\n\n // /users/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n // /users/recoveries\n recoveries() {\n return new APIResource(this).push('recoveries');\n }\n\n // /users/passwordRecovery\n passwordRecovery() {\n return new APIResource(this).push('password-recovery');\n }\n\n}\n\nexport default APIListUsers;\n","import {APIResource} from './APIResource'\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {APIResourceAccount} from './APIResourceAccount';\n\n\n\n\nexport class APIResourceBillingPeriod extends APIResource {\n\n /**\n * /billing-periods/{id}\n */\n constructor(parent: APIResourceAccount, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('billing-periods', id);\n }\n\n // /billing-periods/{id}/receipt\n receipt() {\n return new APIResource(this).push('receipt').setRequestConfig({\n responseType: 'arraybuffer'\n });\n }\n\n}\n\nexport default APIResourceBillingPeriod\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceBillingPeriod} from './APIResourceBillingPeriod';\nimport {\n Account,\n AccountData,\n AccountSessionUsage,\n AccountSessionUsageSummary,\n AccountUserSessionUsage\n} from './models/Account';\nimport {AccountConcurrencyStatusMap} from './models/AccountConcurrencyStatusMap';\nimport {AccountPreferences} from './models/AccountPreference';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {AccountServicePayment} from './models/AccountServicePayment';\nimport {BillingPeriod, BillingPeriodQueryParams} from './models/BillingPeriod';\nimport {DeviceTimeSummaryQueryParams} from './models/Device';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams, QueryParams, SimpleCollectionResponse} from './models/HTTP';\nimport {User, UserData} from './models/User';\nimport {DeviceTimeQueryParams, UserDeviceTime} from './models/UserDeviceTime';\nimport {UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {VisualTestAccess} from './models/VisualTest';\n\n\nexport class APIResourceAccount extends APIResource {\n\n /**\n * /accounts/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('accounts', id);\n }\n\n // /accounts/{id}/concurrency-status\n concurrencyStatus() {\n return new APIResource(this).push('concurrency-status');\n }\n\n // /accounts/{id}/device-time\n deviceTime() {\n return new APIList(this).push('device-time');\n }\n\n // /accounts/{id}/device-time-summary\n deviceTimeSummary() {\n return new APIList(this).push('device-time-summary');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource>(this).push('preferences');\n }\n\n // /accounts/{id}/users\n users() {\n return new APIList(this).push('users');\n }\n\n // /accounts/{accountId}/users/{userId}\n removeUser(id: number) {\n return new APIResource(this).push('users', id);\n }\n\n // /accounts/{accountId}/users/{userId}/disable\n disableUser(id: number) {\n return new APIResource(this).push('users', id, 'disable').post();\n }\n\n // /accounts/{accountId}/users/{userId}/enable\n enableUser(id: number) {\n return new APIResource(this).push('users', id, 'enable').post();\n }\n\n // /accounts/{accountId}/users/{userId}/resend-activation\n resendActivation(id: number) {\n return new APIResource(this).push('users', id, 'resend-activation').post();\n }\n\n // /accounts/{accountId}/billing-periods\n billingPeriods() {\n return new APIList(this).push('billing-periods');\n }\n\n // /accounts/{accountId}/billing-periods/{id}\n billingPeriod(id: number) {\n return new APIResourceBillingPeriod(this, id);\n }\n\n // /account-services/{id}/billing-period\n serviceBillingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('account-services', id, 'billing-period');\n }\n\n // /accounts/{accountId}/visual-test/access\n visualTestAccess() {\n return new APIResource(this).push('visual-tests', 'access');\n }\n\n // /accounts/{accountId}/account-services\n accountServices() {\n return new APIList(this).push('account-services');\n }\n\n // /accounts/{accountId}/account-services/{id}\n accountService(id: number) {\n return new APIList(this).push('account-services', id);\n }\n\n // /accounts/{accountId}/services\n services() {\n return new APIResource(this).push('services');\n }\n\n // /accounts/{accountId}/user-usage-details\n userUsageDetails() {\n return new APIList(this).push('user-usage-details');\n }\n\n // /accounts/{accountId}/usage-details\n usageDetails() {\n return new APIList(this).push('usage-details');\n }\n\n // /accounts/{accountId}/usage-details-summary\n usageDetailsSummary() {\n return new APIResource(this).push('usage-details-summary');\n }\n\n}\n\nexport default APIResourceAccount;\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Broker} from './models/Broker';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIResourceBroker extends APIResource {\n\n /**\n * /broker\n */\n constructor(parent: API) {\n\n super(parent);\n this.push('broker');\n }\n\n // /broker/hubs\n hubs() {\n return new APIList(this).push('hubs');\n }\n\n}\n\nexport default APIResourceBroker\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser} from './models/Browser';\nimport {Device, DeviceProperiesData, DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams} from './models/HTTP';\n\n\nexport class APIResourceDevice extends APIResource {\n\n /**\n * /devices/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('devices', id);\n }\n\n // /devices/{id}/properties\n properties() {\n return new APIList(this).push('properties');\n }\n\n browsers() {\n return new APIList(this).push('browsers');\n }\n\n}\n\nexport default APIResourceDevice\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams, NoQueryParams} from './models/HTTP';\nimport {LabelData, LabelGroup} from './models/LabelGroup';\n\nexport class APIResourceLabelGroup extends APIResource {\n\n /**\n * /label-groups/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('label-groups', id);\n }\n\n // /label-groups/{id}/labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /label-groups/{id}/labels/{id}\n label(id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n}\n\nexport default APIResourceLabelGroup\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {FileData, UploadObj, UserFile} from './models/UserFile';\n\n\nexport class APIListFiles extends APIList {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n /**\n * Simplifies process of uploading\n * /files\n */\n upload(obj: UploadObj): this {\n // For NodeJS\n // @ts-ignore\n if (global.isNodeJs) {\n return this.nodeUpload(obj);\n } else {\n /**\n * Browser\n * @todo\n */\n throw new Error('Not supported yet!');\n }\n }\n\n private nodeUpload(file: UploadObj): this {\n const fs = require('fs');\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', fs.createReadStream(file.dir + '/' + file.filename), {\n filename: file.filename\n });\n return this.post().headers(form.getHeaders()).data(form);\n }\n\n}\n\nexport default APIListFiles\n","import {APIList} from './APIList'\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIResource} from './APIResource'\n\n\nexport class APIResourceChannel extends APIResource {\n\n /**\n * /users/{id}/notifications/channels/{type}\n */\n constructor(parent: APIListNotifications, type: string) {\n if (type == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('channels', type);\n }\n\n // /channels/{type}/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n}\n\nexport default APIResourceChannel;\n","import {APIList} from './APIList';\nimport {APIResourceChannel} from './APIResourceChannel';\nimport {APIResourceUser} from './APIResourceUser';\nimport {Enum} from './models/Enum';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Notification, NotificationsData} from './models/Notification';\n\n\nexport class APIListNotifications extends APIList {\n\n /**\n * /notifications\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('notifications');\n }\n\n // /notifications/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n // /notifications/channels\n channels() {\n return new APIList(this).push('channels');\n }\n\n channel(type: string) {\n return new APIResourceChannel(this, type);\n }\n\n}\n\nexport default APIListNotifications\n","import {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {\n RunsConfigParams,\n TestRun,\n TestRunConfig,\n TestRunsQueryParams\n} from './models/TestRun';\n\n\nexport class APIListRuns extends APIList {\n\n /**\n * /runs\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('runs');\n }\n\n // /runs/config\n config() {\n return new APIResource(this).push('config');\n }\n\n}\n\nexport default APIListRuns\n","import {Method} from 'axios';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData} from './models/HTTP';\nimport {SmartbearTunnel, TunnelQueryParams} from './models/SmartbearTunnel';\n\n\nexport class APIListSmartbearTunnels extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET'];\n\n /**\n * /tunnels\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('tunnels');\n }\n\n /**\n * Sets tunnel activity parameter\n */\n active(active: boolean): this {\n return this.params({active: active});\n }\n}\n\nexport default APIListSmartbearTunnels;\n","\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {Notification, NotificationData} from './models/Notification';\n\nexport class APIResourceNotification extends APIResource {\n\n /**\n * /notifications/{id}\n */\n constructor(parent: APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('notifications', id);\n }\n\n // /notifications/{id}/test\n test() {\n return new APIResource(this).push('test');\n }\n\n}\n\nexport default APIResourceNotification\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIListFiles} from './APIListFiles';\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIListRuns} from './APIListRuns';\nimport {APIListServices} from './APIListServices';\nimport {APIListSmartbearTunnels} from './APIListSmartbearTunnels';\nimport {APIResource} from './APIResource';\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {APIResourceFile} from './APIResourceFile';\nimport {APIResourceNotification} from './APIResourceNotification';\nimport {APIResourceProject} from './APIResourceProject';\nimport {AccessGroup, AccessGroupsData} from './models/AccessGroup';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupIdsData, DeviceGroupWithPublicParams} from './models/DeviceGroup';\nimport {DeviceStatistics} from './models/DeviceStatistics';\nimport {DeviceUsage} from './models/DeviceUsage';\nimport {Framework} from './models/Framework';\nimport {Project, UserProjectData, UserProjectQueryParams} from './models/Project';\nimport {MarkAccountOwnerData, User, UserDeleteData} from './models/User';\nimport {UiPreferencesData, UserPreference, UserPreferenceData} from './models/UserPreference';\nimport {StatisticQueryParams, UserStatistics} from './models/UserStatistics';\nimport {DeviceSession, DeviceSessionData, DeviceSessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams, QueryParams} from './models/HTTP';\nimport {DeviceStatisticQueryParam, DeviceUsageQueryParams} from './models/Device';\n\nexport class APIResourceUser extends APIResource {\n\n /**\n * /users/{id} | /me\n */\n constructor(parent: API, id: number | 'me') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n\n if (id === 'me') {\n this.push('me');\n } else if (typeof id === 'number') {\n this.push('users', id);\n } else {\n throw new TypeError('id is not a number');\n }\n }\n\n // /users/{id}/services\n services() {\n return new APIListServices(this);\n }\n\n // /users/{id}/device-groups\n deviceGroups() {\n return new APIList>(this).push('device-groups');\n }\n\n // /users/{id}/device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /users/{id}/device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /users/{id}/mark-account-owner\n markAccountOwner() {\n return new APIResource(this).push('mark-account-owner').post();\n }\n\n // /users/{id}/projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /users/{id}/projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /users/{id}/files\n files() {\n return new APIListFiles(this);\n }\n\n // /users/{id}/files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /users/{id}/runs\n runs() {\n return new APIListRuns(this);\n }\n\n // /users/{id}/available-frameworks\n availableFrameworks() {\n return new APIList(this).push('available-frameworks');\n }\n\n /**\n * /users/{id}/reset-api-key\n */\n resetApiKey() {\n return new APIResource(this).push('reset-api-key');\n }\n\n // /users/{id}/restore\n restore() {\n return new APIResource(this).push('restore');\n }\n\n // /users/{id}/feedback\n feedback() {\n return new APIResource(this).push('feedback');\n }\n\n // /users/{id}/notifications\n notifications() {\n return new APIListNotifications(this);\n }\n\n // /users/{id}/notifications/{id}\n notification(id: number) {\n return new APIResourceNotification(this, id);\n }\n\n // /users/{id}/preferences\n preferences() {\n return new APIResource(this).push('preferences');\n }\n\n // /users/{id}/ui-preferences\n uiPreferences() {\n return new APIResource(this).push('ui-preferences');\n }\n\n // /users/{id}/device-usage\n deviceUsage() {\n return new APIList(this).push('device-usage');\n }\n\n // /users/{id}/statistics\n statistics() {\n return new APIResource(this).push('statistics');\n }\n\n // /users/{id}/device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /users/{id}/access-groups\n accessGroups() {\n return new APIList(this).push('access-groups');\n }\n\n // /users/{id}/access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /users/{id}/tunnels/{id}\n smartbearTunnel(id: number) {\n return new APIResource(this).push('tunnels', id);\n }\n\n // /users/{id}/tunnels\n smartbearTunnels() {\n return new APIListSmartbearTunnels(this);\n }\n\n deleteAccount() {\n return new APIResource(this).push('delete');\n }\n}\n\nexport default APIResourceUser\n","import {API} from '../API';\nimport {APIResource} from './APIResource'\nimport {NoQueryParams} from './models/HTTP';\nimport {LoginData, User} from './models/User';\n\nexport class APIResourceUserSession extends APIResource {\n\n // /user-sessions\n constructor(parent: API) {\n super(parent);\n this.push('user-sessions');\n }\n\n // /user-sessions/login\n login(data: LoginData) {\n return new APIResource(this).push('login').post().data(data);\n }\n\n // /user-sessions/logout\n logout() {\n return new APIResource(this).push('logout').post();\n }\n\n // /user-sessions/oauth/authorize/{name}-login\n sso(name: string) {\n return new APIResource(this).push('oauth', 'authorize', name + '-login');\n }\n\n // /user-sessions/oauth/authorize/sbid-login\n sbidCallbackUrl() {\n return new APIResource(this).push('oauth', 'authorize', 'sbid-login').toUrl(true);\n }\n\n}\n\nexport default APIResourceUserSession\n","import {AxiosInstance} from 'axios';\n\n// this version of axios has some issue paired with rollup and is not handling default import correctly\n// as a workaround we need to use require instead of import until migrating to newer axios version.\n//\n// Axios has been updated to version 1.13.2. Due to issues related to how axios exports are handled between CommonJS and ES Module\n// as a workaround we need to use require instead of import in case we want to support both CJS and ESM.\n// For CommonJS output in the consumer project (f.ex cloud-frontend), the workaround may still be needed. For ESM, the default import should work.\nconst axios = require('axios').default;\n// @ts-ignore\nimport {version} from '../package.json';\nimport {APIAdminResource} from './api/APIAdminResource';\nimport {APIAdminResourceCluster} from './api/APIAdminResourceCluster';\nimport {APIList} from './api/APIList';\nimport {APIListDevices} from './api/APIListDevices';\nimport {APIListProperties} from './api/APIListProperties';\nimport {APIListServices} from './api/APIListServices';\nimport {APIListUsers} from './api/APIListUsers';\nimport {APIResource} from './api/APIResource';\nimport {APIResourceAccount} from './api/APIResourceAccount';\nimport {APIResourceBroker} from './api/APIResourceBroker';\nimport {APIResourceDevice} from './api/APIResourceDevice';\nimport {APIResourceDeviceGroup} from './api/APIResourceDeviceGroup';\nimport {APIResourceDeviceSession} from './api/APIResourceDeviceSession';\nimport {APIResourceFile} from './api/APIResourceFile';\nimport {APIResourceLabelGroup} from './api/APIResourceLabelGroup';\nimport {APIResourceProject} from './api/APIResourceProject';\nimport {APIResourceRun} from './api/APIResourceRun';\nimport {APIResourceUser} from './api/APIResourceUser';\nimport {APIResourceUserSession} from './api/APIResourceUserSession';\nimport {Cluster} from './api/models/Cluster';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './api/models/HTTP';\nimport {License} from './api/models/License';\nimport {Project} from './api/models/Project';\nimport {Property} from './api/models/Property';\nimport {UserFile, UserFileData, UserFileParams} from './api/models/UserFile';\nimport {ApiConfig} from './ApiConfig';\nimport './finka';\nimport {LabelGroup} from './api/models/LabelGroup';\n\n// @ts-ignore\nif (globalThis.isNodeJs) {\n // Set User-Agent\n axios.defaults.headers.common['User-Agent'] = `Bitbar Cloud API Client for JavaScript v${version}`;\n}\n\n// Disable max content length\naxios.defaults.maxContentLength = 1073741824; // 1GB\n\n/**\n * API\n * Root for other API resources\n */\nexport class API {\n axios: AxiosInstance;\n\n private axiosConfig: ApiConfig = {};\n\n get baseUrl(): string {\n return this.axiosConfig.baseURL;\n }\n\n\n constructor(private config: ApiConfig) {\n if (config == null) {\n throw new Error('config cannot be empty');\n } else if (this.config.cloudUrl == null) {\n throw new TypeError('cloudUrl cannot be empty');\n } else if (typeof this.config.cloudUrl !== 'string') {\n throw new TypeError('cloudUrl must be a string');\n } else if (!/^https?:\\/\\/.{2,}/.test(this.config.cloudUrl)) {\n throw new Error(`cloudUrl doesn't look like a URL`);\n }\n\n // Validate and correct cloudUrl if needed\n this.axiosConfig.baseURL = this.config.cloudUrl.replace(/\\/+$/, '') + '/api'\n\n // Check v2\n this.config.v2 = !!this.config.v2;\n if (this.config.v2) {\n this.axiosConfig.baseURL += '/v2';\n }\n\n // Check if apiKey is set\n if (this.config.apiKey) {\n if (typeof this.config.apiKey !== 'string') {\n throw new TypeError('apiKey must be a string');\n } else if (!/^[A-Za-z0-9]{32}$/.test(this.config.apiKey)) {\n throw new Error('apiKey is in the wrong format');\n }\n\n this.axiosConfig.auth = {\n username: this.config.apiKey,\n password: ''\n };\n }\n\n // With XSRFToken\n this.axiosConfig.withXSRFToken = true;\n // With credentials\n this.axiosConfig.withCredentials = config.withCredentials == null ? false : config.withCredentials;\n\n // Create axios instance\n this.axios = axios.create(this.axiosConfig);\n }\n\n\n // --- Resources starts here --- //\n\n // /account/{id}\n account(id: number) {\n return new APIResourceAccount(this, id);\n }\n\n // /admin\n admin() {\n return new APIAdminResource(this);\n }\n\n // /broker\n broker() {\n return new APIResourceBroker(this);\n }\n\n // /clusters\n clusters() {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /devices/{id}\n device(id: number) {\n return new APIResourceDevice(this, id);\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /devices\n devices() {\n return new APIListDevices(this);\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /enums\n enums() {\n return new APIResource(this).push('enums');\n }\n\n // /files\n files() {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /label-groups\n labelGroups() {\n return new APIList(this).push('label-groups');\n }\n\n // /label-groups/{id}\n labelGroup(id: number) {\n return new APIResourceLabelGroup(this, id);\n }\n\n // /labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /licenses\n licenses() {\n return new APIResource(this).push('licenses');\n }\n\n // /license\n license() {\n return new APIResource(this).push('license');\n }\n\n /*\n /me or /admin\n Requires prototype extension covering ACL check\n */\n ma(): APIAdminResource | APIResourceUser {\n throw new Error('Requires prototype extension covering ACL check');\n }\n\n // /me\n me() {\n return this.user('me');\n }\n\n // /projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /properties\n properties() {\n return new APIListProperties(this);\n }\n\n // /properties/{id}\n property(id: number) {\n return new APIResource(this).push('properties', id);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n // /services\n services() {\n return new APIListServices(this);\n }\n\n // /user/{id}\n user(id: number | 'me') {\n return new APIResourceUser(this, id);\n }\n\n // /users\n users() {\n return new APIListUsers(this);\n }\n\n // /user-sessions\n userSession() {\n return new APIResourceUserSession(this);\n }\n\n}\n\n\nexport default API;\n","/* istanbul ignore file */\n\nimport {API} from './API';\nimport {FilterBuilder} from './FilterBuilder';\n\nexport {API} from './API';\nexport {FilterBuilder} from './FilterBuilder';\n\n/**\n * Cloud API Client\n */\nexport const CloudAPIClient = {\n API,\n FilterBuilder\n}\n\nexport default CloudAPIClient;\n","import {CollectionQueryParams} from './HTTP';\n\nexport enum AccessGroupScope {\n USER = 'USER',\n ACCOUNT = 'ACCOUNT',\n GLOBAL = 'GLOBAL'\n}\n\nexport type AccessGroup = {\n id: number;\n name: string;\n scope: AccessGroupScope;\n userEmail: string;\n userId: number;\n}\n\nexport type AccessGroupUsersQueryParams = CollectionQueryParams & {\n email: string;\n}\n\nexport type AccessGroupData = Pick;\n\nexport type AccessGroupsData = Omit;\n","import {CollectionQueryParams} from './HTTP';\n\n\nexport type Account = {\n activeServiceName: string,\n comment: string,\n createTime: number,\n dedicatedDevicesConcurrency: number,\n dedicatedDevicesCount: number,\n dedicatedDevicesRatio: number,\n dedicatedDevicesUsage: number,\n id: number,\n invoiceDetails: Invoice,\n name: string,\n publicDevicesConcurrency: number,\n publicDevicesRatio: number,\n publicDevicesUsage: number,\n slmOrganizationId: string,\n userName: string\n}\n\nexport type Invoice = {\n address: string,\n city: string,\n code: string,\n country: string,\n state: string\n}\n\nexport type AccountData = Partial<{\n comment: string,\n invoiceDetails: Invoice,\n name: string,\n slmOrganizationId: string;\n userName: string\n}>\n\nexport type AccountUsageSummary = {\n sessionsCount: number,\n duration: number,\n deviceModelsCount: number,\n tunnelEnabledCount: number,\n osVersionsCount: number,\n projectsCount: number,\n usersCount: number,\n previous: AccountUsageSummary\n}\n\nexport type AccountUsage = {\n timestamp: number,\n timestampLabel: string,\n sessionsCount: number,\n automatedConcurrency: number,\n automatedUsage: number,\n dedicatedConcurrency: number,\n dedicatedUsage: number,\n manualConcurrency: number,\n manualUsage: number\n}\n\nexport type AccountUserSessionUsage = {\n devices: number,\n duration: number,\n osVersions: number,\n sessions: number,\n sessionShare: number\n userId: number,\n userName: string,\n}\n\nexport type AccountSessionUsage = {\n createTime: number,\n deviceModelName: string,\n duration: number,\n osVersion: string,\n type: SessionUsageType,\n userId: number,\n userName: string\n}\n\nexport type AccountSessionUsageSummary = {\n totalTime: number,\n usage: Record\n}\n\nexport enum SessionUsageType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL = 'MANUAL',\n DEDICATED_AUTOMATIC = 'DEDICATED_AUTOMATIC',\n DEDICATED_MANUAL = 'DEDICATED_MANUAL'\n}\n\nexport enum UtilizationType {\n ALL = 'all',\n PUBLIC = 'public',\n DEDICATED = 'dedicated'\n}\n\nexport enum SessionType {\n ALL = 'all',\n AUTOMATED = 'automated',\n MANUAL = 'manual'\n}\n\nexport enum TimeResolution {\n HOUR = 'hour',\n DAY = 'day'\n}\n\nexport type AccountUsageParams = CollectionQueryParams & {\n grouping?: TimeResolution,\n sessionType?: SessionType,\n utilizationType?: UtilizationType,\n}\n\nexport type AccountUsageSummaryParams = CollectionQueryParams & {\n grouping?: TimeResolution,\n}\n","import {ServiceUnit} from './Service';\n\nexport enum PaymentStatus {\n SUCCEEDED = 'SUCCEEDED',\n FAILED = 'FAILED',\n REDIRECTED = 'REDIRECTED'\n}\n\nexport enum PaymentMethod {\n PAYPAL = 'PAYPAL',\n BRAINTREE = 'BRAINTREE',\n STRIPE = 'STRIPE',\n INVOICE = 'INVOICE',\n PROMOTION = 'PROMOTION',\n AWS = 'AWS'\n}\n\nexport enum DeactivateReason {\n INITIAL_FAILURE = 'INITIAL_FAILURE',\n SCA_FAILURE = 'SCA_FAILURE',\n CHARGE_FAILURE = 'CHARGE_FAILURE',\n CANCEL = 'CANCEL',\n SUSPENDED = 'SUSPENDED',\n ANOTHER_PURCHASE = 'ANOTHER_PURCHASE'\n}\n\nexport type ServicePaymentStatus = {\n accountService: AccountService;\n message: string;\n redirectUrl: string;\n status: PaymentStatus;\n}\n\nexport type AccountService = {\n accountId: number;\n accountName: string;\n activatedById: number;\n activatedByName: string;\n active: boolean;\n braintreeId: string;\n createTime: number;\n deactivateReason: DeactivateReason;\n deactivatedById: number;\n deactivatedByName: string;\n endTime: number;\n finished: boolean;\n id: number;\n lastPaymentTime: number;\n paymentMethod: PaymentMethod;\n price: number;\n serviceCount: number;\n serviceId: number;\n serviceName: string;\n slmLicenseId: string;\n startTime: number;\n subscriptionManagementURL: string;\n unit: ServiceUnit;\n unitCount: number;\n vatRate: number;\n}\n\nexport type AccountServiceData = Pick & {count: number};\n","import {DevicesQueryParams, Platform, SoftwareVersion} from './Device';\nimport {OsType} from './Enum';\nimport {CollectionQueryParams} from './HTTP';\nimport {Cluster} from './Cluster';\n\n\nexport enum InitStep {\n SKIP = 'SKIP',\n REBOOT = 'REBOOT',\n REBOOT_WITH_UNLOCK = 'REBOOT_WITH_UNLOCK',\n UNLOCK_ONLY = 'UNLOCK_ONLY'\n}\n\nexport enum DeviceState {\n OFFLINE_CLEANING = 'OFFLINE_CLEANING',\n OFFLINE_DIRTY = 'OFFLINE_DIRTY',\n OFFLINE_FREE = 'OFFLINE_FREE',\n OFFLINE_TESTING = 'OFFLINE_TESTING',\n ONLINE_CLEANING = 'ONLINE_CLEANING',\n ONLINE_DIRTY = 'ONLINE_DIRTY',\n ONLINE_FREE = 'ONLINE_FREE',\n ONLINE_TESTING = 'ONLINE_TESTING'\n}\n\nexport type AdminDevice = {\n accountId: number | null;\n accountName: string | null;\n browsersMatched: boolean;\n cluster: Cluster;\n comment: string;\n dedicationEndTime: number | null;\n deviceModelId: number;\n deviceModelName: string;\n enabled: boolean;\n fingerprint: string;\n forceRestore: boolean;\n id: number;\n initStep: InitStep;\n ipAddress: string;\n lastOnlineTime: number;\n location: string;\n locked: boolean;\n manufacturer: string;\n name: string;\n osType: OsType;\n ownerHasAccountService: boolean;\n platform: Platform;\n serialId: string;\n softwareVersion: SoftwareVersion;\n state: DeviceState;\n stateChangeTime: number;\n stateTime: number;\n testTimeLimit: number;\n unlockGesture: string;\n}\n\nexport type AdminDevicesQueryParams = Pick & CollectionQueryParams;\n\nexport type AdminDeviceData = Pick & {\n apiLevel: number;\n releaseVersion: string;\n};\n","import {CollectionQueryParams} from './HTTP';\nimport {DeviceSessionState} from './DeviceSession';\nimport {OsType} from './Enum';\n\nexport enum FrameworkType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL_APP = 'MANUAL_APP',\n MANUAL_WEB = 'MANUAL_WEB',\n REMOTE = 'REMOTE'\n}\n\nexport type AdminFrameworkStatistics = {\n cloudName: string;\n count: number;\n day: number;\n deviceModelId: number;\n deviceModelName: string;\n frameworkId: number;\n frameworkName: string;\n id: number;\n osType: OsType;\n releaseVersion: string;\n state: DeviceSessionState;\n type: FrameworkType;\n userEmail: string;\n userId: number;\n}\n\nexport interface AdminStatisticsParams extends CollectionQueryParams {\n days: number;\n}\n","import {PaymentMethod} from './AccountService';\nimport {DeviceSessionType} from './DeviceSession';\nimport {OsType} from './Enum';\nimport {QueryParams} from './HTTP';\n\nexport enum BillingType {\n BUY = 'BUY',\n CHARGE = 'CHARGE',\n CANCEL = 'CANCEL'\n}\n\nexport type BillingPeriod = {\n accountId: number;\n accountName: string;\n accountServiceId: number;\n additionalHours: number;\n additionalHoursPrice: number;\n apiBillingPeriodType: BillingType;\n createTime: number;\n endBillingPeriod: number;\n id: number;\n lastPaymentDate: number;\n paid: boolean;\n paymentMethod: PaymentMethod;\n plan: string;\n servicePrice: number;\n startBillingPeriod: number;\n subscriptionEnd: number;\n subscriptionStart: number;\n totalPrice: number;\n usages: Array;\n}\n\nexport type BillingPeriodUsage = {\n duration: number;\n id: number;\n osType: OsType;\n type: DeviceSessionType;\n}\n\nexport interface BillingPeriodQueryParams extends QueryParams {\n onDate: number;\n}\n","export enum BrokerType {\n MOBILE = 'MOBILE',\n DESKTOP = 'DESKTOP'\n}\n\nexport type Broker = {\n id: number;\n location: string;\n type: BrokerType;\n url: string;\n}\n","\nimport {AdminDevice} from './AdminDevice';\nimport {CollectionResponse, QueryParams} from './HTTP';\n\nexport type Cluster = {\n devices: CollectionResponse;\n enabled: boolean;\n id: number;\n ipAddress: string;\n jenkinsUrl: string;\n jenkinsVersion: string;\n location: string;\n name: string;\n pluginVersion: string;\n region: string;\n state: ClusterState;\n stateChangeTime: number;\n stateTime: number;\n type: ClusterType;\n url: string;\n}\n\nexport enum ClusterState {\n 'OFFLINE',\n ONLINE = 'ONLINE',\n RESTARTING = 'RESTARTING',\n QUIET_DOWN = 'QUIET_DOWN',\n MAINTENANCE = 'MAINTENANCE'\n}\n\nexport enum ClusterType {\n BARE_METAL = 'BARE_METAL',\n EC2 = 'EC2',\n VM = 'VM'\n}\n\nexport interface ClusterParams extends QueryParams {\n withDevices: boolean;\n}\n\nexport type ClusterData = Pick & {\n quietDown: boolean;\n restart: boolean;\n turnMaintenance: boolean;\n}\n","import {Browser} from './Browser';\nimport {OsType} from './Enum';\nimport {CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, QueryParams} from './HTTP';\nimport {TestRunsQueryParams} from './TestRun';\n\n\nexport enum DeviceGroupOrigin {\n STATIC = 'STATIC',\n DYNAMIC = 'DYNAMIC',\n HYBRID = 'HYBRID'\n}\n\nexport enum Platform {\n IOS = 'IOS',\n ANDROID = 'ANDROID',\n WINDOWS = 'WINDOWS',\n MAC = 'MAC',\n LINUX = 'LINUX',\n UNDEFINED = 'UNDEFINED'\n}\n\nexport enum SupportedCreators {\n MANUAL = 'MANUAL',\n ROBOT = 'ROBOT',\n AUTOMATIC = 'AUTOMATIC'\n}\n\nexport enum PoolSize {\n XL= 'XL',\n L = 'L',\n M = 'M',\n S = 'S'\n}\n\nexport enum Code {\n HIGH = 'HIGH',\n MODERATE = 'MODERATE',\n LOW = 'LOW',\n NONE = 'NONE',\n}\n\nexport type DeviceAvailability = {\n poolSize: PoolSize,\n code: Code\n}\n\nexport type DeviceProperty = {\n displayName: string;\n id: number;\n labelGroupName: string;\n name: string;\n propertyGroupId: number;\n propertyGroupName: string;\n}\n\nexport type SoftwareVersion = {\n apiLevel: number;\n id: number;\n releaseVersion: string;\n}\n\nexport enum LockReason {\n TESTING = 'TESTING',\n CLEANING = 'CLEANING',\n NOT_OPERATIONAL = 'NOT_OPERATIONAL'\n}\n\nexport type Device = {\n accountId: number;\n accountName: string;\n available: boolean;\n availability: DeviceAvailability;\n browsers: CollectionResponse;\n creditsPrice: number;\n deviceGroupOrigin: DeviceGroupOrigin;\n displayName: string;\n enabled: boolean;\n frame100Url: string;\n frame160Url: string;\n frame400Url: string;\n frame80Url: string;\n frameExtraWidth: number;\n id: number;\n imageCornerRadius: number;\n imageHeight: number;\n imageLeft: number;\n imagePrefix: string;\n imageTop: number;\n imageWidth: number;\n locked: boolean;\n lockReason: LockReason;\n manufacturer: string;\n online: boolean;\n osType: OsType;\n platform: Platform;\n properties: CollectionResponse;\n softwareVersion: SoftwareVersion;\n supportedCreators: Array;\n}\n\nexport type DeviceCleanupConfiguration = {\n content: string;\n createTime: number;\n createdByEmail: string;\n createdById: number;\n description: string;\n name: string;\n enabled: boolean;\n global: boolean;\n example: true;\n id: number;\n lastModificationTime: number;\n osType: OsType;\n}\n\nexport type DeviceCleanupConfigurationData = {\n deviceCleanupConfigurationId: number;\n}\n\nexport type DeviceLabelData = {\n labelId: number;\n}\n\nexport interface DeviceProperiesData extends QueryParams {\n labelId: number;\n}\n\nexport interface CleanupConfigurationSpecificData extends QueryParams {\n serialId: string;\n}\n\nexport interface DeviceTimeSummaryQueryParams extends CollectionBasicQueryParams {\n forWholeAccount: boolean;\n}\nexport interface DeviceUsageQueryParams extends TestRunsQueryParams {\n startTime: number;\n}\n\nexport interface DeviceStatisticQueryParam extends TestRunsQueryParams {\n mode: string;\n}\n\nexport interface DevicesQueryParams extends CollectionQueryParams {\n labelIds: Array;\n liveTestingOnly: boolean;\n withBrowsers: boolean;\n withDedicated: boolean;\n withDisabled: boolean;\n withProperties: boolean;\n withSupportedCreators: boolean;\n}\n","export enum CriterionField {\n NAME = 'NAME',\n FINGERPRINT = 'FINGERPRINT',\n SERIAL_ID = 'SERIAL_ID',\n UNLOCK_GESTURE = 'UNLOCK_GESTURE',\n SOFTWARE_VERSION = 'SOFTWARE_VERSION',\n INIT_STEP = 'INIT_STEP',\n ACCOUNT = 'ACCOUNT',\n BROWSERS = 'BROWSERS'\n}\n\nexport type DeviceModelCriterion = {\n createTime: number;\n field: CriterionField;\n id: number;\n labelGroupDisplayName: string;\n labelGroupId: number;\n labelGroupName: string;\n}\n\nexport type DeviceModelCriterionData = Pick;\n","export enum RetentionStrategy {\n CLUSTER_ON_OFF = 'CLUSTER_ON_OFF',\n MIN_FREE_MAX_TOTAL = 'MIN_FREE_MAX_TOTAL',\n POOL_MANAGER_AWARE = 'POOL_MANAGER_AWARE'\n}\n\nexport type DeviceModelPool = {\n createTime: number;\n enabled: boolean;\n id: number;\n location: string;\n maxTotal: number;\n minAvailable: number;\n name: string;\n numberOfBrowsers: number;\n osVersion: string;\n retentionStrategy: RetentionStrategy;\n running: number;\n}\n\nexport type DeviceModelPoolData = Pick;\n","export enum ProblemType {\n CLEANING = 'CLEANING',\n DIRTY = 'DIRTY',\n OFFLINE = 'OFFLINE',\n LOW_BATTERY = 'LOW_BATTERY',\n HIGH_FAIL_RATE = 'HIGH_FAIL_RATE',\n NO_INTERNET_CONNECTION = 'NO_INTERNET_CONNECTION'\n}\n\nexport type DeviceProblem = {\n clusterId: number;\n clusterName: string;\n deviceId: number;\n deviceModelId: number;\n deviceModelName: string;\n deviceName: string;\n id: number;\n problems: Array;\n location: string;\n}\n\nexport type DeviceProblemPair = {\n id: number;\n type: ProblemType;\n value: any;\n}\n","import {Device} from './Device';\nimport {CollectionBasicQueryParams} from './HTTP';\n\nexport type TunnelSettings = {\n domain: string;\n email: string;\n}\n\nexport enum DeviceSessionType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL_APP = 'MANUAL_APP',\n MANUAL_WEB = 'MANUAL_WEB'\n}\n\nexport enum RetryState {\n NONE = 'NONE',\n MANUAL = 'MANUAL',\n AUTO = 'AUTO'\n}\n\nexport enum DeviceSessionState {\n ABORTED = 'ABORTED',\n EXCLUDED = 'EXCLUDED',\n FAILED = 'FAILED',\n FINISHING = 'FINISHING',\n RUNNING = 'RUNNING',\n SUCCEEDED = 'SUCCEEDED',\n TIMEOUT = 'TIMEOUT',\n WAITING = 'WAITING',\n WARNING = 'WARNING'\n}\n\nexport enum DeviceSessionStepType {\n WAITING = 'WAITING',\n PREPARING = 'PREPARING',\n UNINSTALL = 'UNINSTALL',\n INSTALL = 'INSTALL',\n RUNNING = 'RUNNING',\n SENDING_RESULTS = 'SENDING_RESULTS',\n PROCESSING_RESULTS = 'PROCESSING_RESULTS'\n}\n\nexport type DeviceSessionConfig = {\n adbVersion: string;\n browserName: string;\n browserVersion: string;\n deviceModelId: number;\n id: number;\n screenResolution: string;\n tunnelSettings: TunnelSettings;\n type: DeviceSessionConfig;\n url: string;\n}\n\nexport type DeviceSession = {\n abortTime: number;\n accountId: number;\n autoRetriesLeftCount: number;\n biometricInstrumentation: boolean;\n config: DeviceSessionConfig;\n createTime: number;\n clientSideId: string;\n device: Device;\n deviceInstanceId: number;\n deviceRunId: number;\n duration: number;\n endTime: number;\n excludeReason: string;\n externalId: string;\n id: number;\n installTime: number;\n name: string;\n projectId: number;\n projectName: string;\n retryable: boolean;\n retryState: RetryState;\n startTime: number;\n state: DeviceSessionState;\n successRatio: number;\n testCaseAllCount: number;\n testCaseFailedCount: number;\n testCasePassedCount: number;\n testCaseSkippedCount: number;\n testCaseSuccessCount: number;\n testRunId: number;\n testRunName: string;\n timeLimit: number;\n type: DeviceSessionType;\n uiLink: string;\n userEmail: string;\n userId: number;\n}\n\nexport type DeviceSessionCommand = {\n duration: number;\n httpMethod: string;\n id: number;\n requestBody: string;\n responseBody: string;\n responseCode: number;\n timestamp: number;\n uri: string;\n}\n\nexport type DeviceSessionStep = {\n deviceSessionId: number;\n excludeReason: string;\n failReason: string;\n finishTimeMS: number;\n id: number;\n startTimeMS: number;\n type: DeviceSessionStepType;\n}\n\nexport type DeviceSessionConnection = {\n createTime: number;\n deviceSessionId: number;\n endTime: number;\n externalId: string;\n host: string;\n id: number;\n password: string;\n path: string;\n port: number;\n type: string;\n urlSchema: string;\n}\n\nexport type DeviceSessionData = Omit & {configuration: DeviceSessionConfig};\n\nexport interface DeviceSessionQueryParams extends CollectionBasicQueryParams {\n withProperties: boolean;\n}\n\nexport interface SessionQueryParams extends CollectionBasicQueryParams {\n projectId: number;\n testRunId: number;\n}\n\nexport interface SessionRunStepQueryParams extends CollectionBasicQueryParams {\n runId: number;\n}\n\nexport interface SessionStepQueryParams extends SessionRunStepQueryParams {\n projectId: number;\n}\n\nexport enum SessionReleaseReason {\n INACTIVITY = 'INACTIVITY',\n TIMEOUT = 'TIMEOUT',\n USER_ACTION = 'USER_ACTION',\n CHANGE_DEVICE = 'CHANGE_DEVICE',\n WEBSOCKET_CLOSED = 'WEBSOCKET_CLOSED'\n}\n\nexport type DeviceSessionRelease = {\n reason: SessionReleaseReason;\n}\n","export enum OsType {\n IOS = 'IOS',\n ANDROID = 'ANDROID',\n DESKTOP = 'DESKTOP',\n UNDEFINED = 'UNDEFINED'\n}\n\nexport type Enum = {\n id: number;\n value: string;\n}\n","export enum LicenseStatus {\n ACTIVE = 'ACTIVE',\n EXPIRED = 'EXPIRED',\n INACTIVE = 'INACTIVE',\n CLOSED = 'CLOSED'\n}\n\nexport type BaseLicense = {\n enabled: boolean;\n};\n\nexport type FeatureLicense = {\n deviceLimit: number;\n deviceLimited: boolean;\n projectLimit: number;\n projectLimited: boolean;\n};\n\nexport type AndroidLicense = BaseLicense & FeatureLicense & {\n cts: CTSLicense;\n uiAutomator: UIAutomatorLicense;\n};\n\nexport type BuildLicense = BaseLicense & {\n limit: number;\n limited: boolean;\n};\n\nexport type DesktopLicense = BaseLicense & FeatureLicense;\n\nexport type GlobalLicense = FeatureLicense;\n\nexport type InspectorLicense = BaseLicense;\n\nexport type IOSLicense = BaseLicense & FeatureLicense;\n\nexport type RecorderLicense = BaseLicense & {\n limit: number;\n limited: boolean;\n};\n\nexport type ServerLicense = BaseLicense & {\n androidEnabled: boolean;\n iosEnabled: boolean;\n};\n\nexport type CTSLicense = BaseLicense;\n\nexport type UIAutomatorLicense = BaseLicense;\n\nexport type License = {\n activateTime: number;\n android: AndroidLicense;\n build: BuildLicense;\n closeTime: number;\n desktop: DesktopLicense;\n expireTime: number;\n global: GlobalLicense;\n id: number;\n inspector: InspectorLicense;\n ios: IOSLicense;\n privateInstance: boolean;\n recorder: RecorderLicense;\n server: ServerLicense;\n status: LicenseStatus;\n userEmail: string;\n userId: number;\n}\n\nexport type LicenseData = Pick & {\n androidDeviceLimit: number;\n androidEnabled: boolean;\n androidProjectLimit: number;\n buildEnabled: boolean;\n buildLimit: number;\n desktopDeviceLimit: number;\n desktopEnabled: boolean;\n desktopProjectLimit: number;\n globalDeviceLimit: number;\n globalProjectLimit: number;\n inspectorEnabled: boolean;\n iosDeviceLimit: number;\n iosEnabled: boolean;\n iosProjectLimit: number;\n privateInstance: boolean;\n unit: string;\n unitCount: number;\n}\n","import {QueryParams} from './HTTP';\n\n\nexport enum NotificationChannel {\n SLACK = 'SLACK',\n EMAIL = 'EMAIL',\n WEBHOOK = 'WEBHOOK'\n}\n\nexport enum NotificationScope {\n ALL = 'ALL',\n TEST_RUN = 'TEST_RUN',\n TEST_RUN_FAILURE = 'TEST_RUN_FAILURE',\n TEST_RUN_SUCCEEDED = 'TEST_RUN_SUCCEEDED',\n SYSTEM = 'SYSTEM',\n CHECK = 'CHECK',\n}\n\nexport type Notification = {\n channel: NotificationChannel;\n destination: string;\n id: number;\n projectId?: number;\n projectName?: string;\n scope: NotificationScope;\n userEmail: string;\n userId: number;\n}\n\nexport interface NotificationData extends QueryParams {\n scope: NotificationScope;\n}\n\nexport type NotificationsData = Pick;\n","import {OsType} from './Enum';\nimport {TestRunConfig, TestRunsQueryParams} from './TestRun';\n\nexport enum ArchivingStrategy {\n NEVER = 'NEVER',\n DAYS = 'DAYS',\n RUNS = 'RUNS'\n}\n\nexport type Project = {\n archiveTime: number | null;\n archivingItemCount: number;\n archivingStrategy: ArchivingStrategy;\n common: boolean;\n createTime: number;\n description: string;\n id: number;\n name: string;\n osType: OsType;\n readOnly: boolean;\n rowIndex: number;\n shared: boolean;\n sharedWithCaller: boolean;\n successRatio: number;\n testRunConfig: TestRunConfig;\n userEmail: string;\n userId: number;\n}\n\nexport type UserProjectData = Pick;\n\nexport interface UserProjectQueryParams extends TestRunsQueryParams {\n showStatistics: boolean;\n}\n","import {CollectionBasicQueryParams} from './HTTP';\n\nexport enum ScreenshotType {\n LANDSCAPE = 'LANDSCAPE',\n PORTRAIT = 'PORTRAIT'\n}\n\nexport type Screenshot = {\n fail: boolean;\n id: number;\n originalName: string;\n takeTimestamp: number;\n type: ScreenshotType;\n}\n\nexport interface ScreenshotQueryParams extends CollectionBasicQueryParams {\n name: string;\n}\n","import {PaymentMethod} from './AccountService';\nimport {CollectionQueryParams} from './HTTP';\nimport {Role} from './Role';\n\n\nexport type Service = {\n activateTime: number;\n activated: boolean;\n archiveTime: number;\n centPrice: number;\n commonId: string;\n customPlan: boolean;\n defaultConcurrences: Array;\n description: string;\n externalId: string;\n features: string;\n id: number;\n name: string;\n priceString: string;\n roles: Array;\n unit: ServiceUnit;\n}\n\nexport enum ServiceUnit {\n DAY = 'DAY',\n HOUR = 'HOUR',\n MONTH = 'MONTH',\n PROJECT = 'PROJECT',\n RUN = 'RUN',\n YEAR = 'YEAR'\n}\n\nexport interface AdminServicesParams extends CollectionQueryParams {\n activeOnly: boolean;\n inUse: boolean;\n notArchive: boolean;\n}\n\nexport type ServiceActivateData = {\n activateTime: number;\n}\n\nexport interface ServiceData {\n address?: string;\n cardNumber?: string;\n city?: string;\n count?: number;\n country?: string;\n cvv?: string;\n email?: string;\n expirationDate?: string;\n firstName?: string;\n lastName?: string;\n organization?: string;\n paymentMethod: PaymentMethod;\n phone?: string;\n serviceId: number;\n state?: string;\n stripeToken?: string;\n vatId?: string;\n zip?: string;\n}\n","import {QueryParams} from './HTTP';\n\n\nexport enum SharedResourceType {\n DEVICE_GROUP = 'DEVICE_GROUP',\n FILE = 'FILE',\n PROJECT = 'PROJECT',\n}\n\nexport type SharedResource = {\n id: number;\n name: string;\n resourceId: number;\n type: SharedResourceType;\n}\n\nexport interface ShareWithGroup extends QueryParams {\n accessGroupId: number;\n}\n\nexport interface ShareWithEmail extends QueryParams {\n email: string;\n}\n\nexport type ShareData = ShareWithGroup | ShareWithEmail;\n","import {Method} from 'axios';\nimport {CollectionResponse} from './HTTP';\n\n\nexport enum TestResult {\n PASSED = 'PASSED',\n FAILED = 'FAILED',\n SKIPPED = 'SKIPPED',\n NOT_AVAILABLE = 'NOT_AVAILABLE'\n}\n\nexport type TestCaseRun = {\n className: string;\n createTime: number;\n duration: number;\n errorMessage: string;\n id: number;\n methodName: string;\n result: TestResult;\n stacktrace: string;\n steps: CollectionResponse;\n suiteName: string;\n}\n\nexport type TestCaseRunStep = {\n description: string;\n duration: number;\n httpMethod: Uppercase;\n id: number;\n requestBody: string;\n responseBody: string;\n responseCode: number;\n timestamp: number;\n uri: string;\n}\n","import {Device} from './Device';\nimport {TunnelSettings} from './DeviceSession';\nimport {OsType} from './Enum';\nimport {CollectionBasicQueryParams, QueryParams} from './HTTP';\nimport {UserFile} from './UserFile';\nimport {DeviceGroup} from './DeviceGroup';\nimport {Framework} from './Framework';\n\n\nexport enum LimitationType {\n PACKAGE = 'PACKAGE',\n CLASS = 'CLASS'\n}\n\nexport enum TestScheduler {\n PARALLEL = 'PARALLEL',\n SERIAL = 'SERIAL',\n SINGLE = 'SINGLE',\n ALL_INSTANCES = 'ALL_INSTANCES'\n}\n\nexport enum TestState {\n WAITING = 'WAITING',\n RUNNING = 'RUNNING',\n FINISHED = 'FINISHED'\n}\n\n\nexport type TestRun = {\n abortedDeviceCount: number;\n config: TestRunConfig;\n createTime: number;\n deviceCount: number;\n displayName: string;\n errorsDeviceCount: number;\n excludedDeviceCount: number;\n executedTestCaseCount: number;\n executionRatio: number;\n failedTestCaseCount: number;\n finishedDeviceCount: number;\n frameworkId: number;\n frameworkName: string;\n id: number;\n logsFileId: number;\n message: string;\n 'number': number;\n projectId: number;\n projectName: string;\n retryable: boolean;\n rowIndex: number;\n runningDeviceCount: number;\n screenshotsFileId: number;\n startTime: number;\n startedByDisplayName: string;\n startedById: number;\n state: TestState;\n succeededDeviceCount: number;\n successRatio: number;\n successfulTestCaseCount: number;\n testCaseCount: number;\n timeoutedDeviceCount: number;\n uiLink: string;\n userId: number;\n waitingDeviceCount: number;\n warningDeviceCount: number;\n}\n\nexport enum TestRunConfigFileAction {\n COPY_TO_DEVICE = 'COPY_TO_DEVICE',\n INSTALL = 'INSTALL',\n RUN_TEST = 'RUN_TEST',\n}\n\nexport type TestRunConfigFile = {\n action: TestRunConfigFileAction;\n availableActions: Array;\n file: UserFile;\n id: number;\n};\n\nexport type TestRunParameter = {\n name?: string;\n key: string;\n value: string;\n label?: string;\n}\n\nexport type TRCDefaultSettings = {\n deviceLanguageCode: string;\n disableResigning: boolean;\n hookURL: string;\n instrumentationRunner: string;\n limitationType: string;\n limitationValue: string;\n scheduler: string;\n screenshotDir: string;\n withAnnotation: string;\n withoutAnnotation: string;\n timeout: string;\n projectName: string;\n testRunName: string;\n testRunParameters?: TestRunParameter[];\n biometricInstrumentation: boolean;\n}\n\nexport type TestRunConfig = TRCDefaultSettings & {\n appCrawlerRun: boolean;\n appiumBrokerAddress: string;\n appiumBrokerQueueName: string;\n applicationPassword: string;\n applicationUsername: string;\n availableDeviceGroups: DeviceGroup[];\n availableDevices: Array;\n availableFrameworks: Framework[];\n availableOsTypes: Array;\n clientSideTestConfig: any;\n computedDevices: Array;\n creditsPrice: number;\n deviceGroupId?: number;\n deviceIds: any;\n deviceNamePattern: string;\n files: Array | null;\n frameworkId: number;\n id: number;\n loadedPrevious: boolean;\n maxAutoRetriesCount: number;\n maxTestTimeout: any;\n maxWaitTime: number;\n osType: OsType;\n projectId: number;\n resignFiles: boolean;\n runAvailable: boolean;\n status: string;\n statusCode: number;\n testRunId: number;\n testRunNameGrouping: string;\n tunnelSettings: TunnelSettings;\n useSamples: boolean;\n usedDeviceGroupId: number;\n usedDeviceGroupName: string;\n videoRecordingEnabled: boolean;\n withAnnotation: string;\n}\n\nexport interface TestRunData extends QueryParams {\n displayName: string;\n}\n\nexport interface RunData extends TestRunData {\n projectId: number;\n}\n\nexport interface RunQueryParam extends QueryParams {\n projectId: number;\n}\n\n\nexport type TestRunsIncludes = {\n includeDeviceGroups: boolean;\n includeDevices: boolean;\n includeFrameworks: boolean;\n}\n\nexport type RunsConfigParams = TestRunsIncludes & QueryParams;\n\n// for users/{userid}/runs\nexport interface TestRunsQueryParams extends CollectionBasicQueryParams {\n forWholeAccount: boolean;\n skipCommonProject: boolean;\n skipShared: boolean;\n}\n","import {CollectionQueryParams, QueryParams} from './HTTP';\nimport {Role} from './Role';\n\n\nexport enum UserStatus {\n INACTIVE = 'INACTIVE',\n DISABLED = 'DISABLED',\n ENABLED = 'ENABLED'\n}\n\nexport type User = {\n accountId: number;\n accountName: string;\n userAccountName: string;\n accountServiceIds: Array;\n address: string;\n apiKey: string;\n city: string;\n code: string;\n country: string;\n createTime: number;\n createdByEmail: string;\n createdById: number;\n deleteTime: number;\n email: string;\n enabled: boolean;\n firstName: string;\n id: number;\n isAccountOwner: boolean;\n lastLaunchedTestTime: number;\n lastLoginTime: number;\n lastName: string;\n organization: string;\n phone: string;\n registrationIP: string;\n roles: Array;\n serviceIds: Array;\n state: string;\n status: UserStatus;\n timeZone: string;\n}\n\nexport type UserData = Pick;\n\nexport interface UserParams extends CollectionQueryParams {\n WITH_ADDRESS: boolean;\n WITH_USER_INFO: boolean;\n onlyMainUsers: boolean;\n onlyWithDisabledServices: boolean;\n withRole: string;\n withRoles: boolean;\n}\n\nexport type UserUpdateAccount = Pick;\n\nexport type UserDeleteData = {\n password: string;\n}\n\nexport interface LoginData {\n username: string;\n password: string;\n}\n\n\nexport type UserPasswordData = {\n key: string;\n password: string;\n};\nexport type UserActivateData = {\n zip: string;\n} & UserPasswordData\n & Pick;\n\nexport interface UserRecoveryQueryParams extends QueryParams {\n recoveryKey: string;\n}\n\nexport type MarkAccountOwnerData = {\n value: boolean;\n}\n","import {CollectionQueryParams, QueryParams} from './HTTP';\n\n\nexport enum FileDirection {\n INPUT = 'INPUT',\n OUTPUT = 'OUTPUT'\n}\n\nexport enum FileInputType {\n APPLICATION = 'APPLICATION',\n TEST = 'TEST',\n DATA = 'DATA'\n}\n\nexport enum FileState {\n PREPARING = 'PREPARING',\n READY = 'READY'\n}\n\nexport type FileProperty = {\n id: number;\n key: string;\n value: string;\n};\n\nexport type UserFileTag = {\n id: number;\n name: string;\n}\n\nexport type UserFile = {\n createTime: number;\n directUrl: string;\n direction: FileDirection;\n duplicate: boolean;\n fileProperties: Array;\n iconDirectUrl: string;\n id: number;\n inputType: FileInputType;\n mimetype: string;\n name: string;\n shared: boolean;\n size: number;\n state: FileState;\n userEmail: string;\n userId: number;\n};\n\nexport interface UserFileParams extends CollectionQueryParams {\n tag: Array;\n}\n\nexport type UserFileData = {\n file: FormData;\n global: boolean;\n}\n\nexport type BuildLogsData = {\n deviceRunIds: Array;\n projectId: number;\n userId: number;\n}\n\nexport type BuildLogsParams = BuildLogsData;\n\nexport interface FileSizeData extends QueryParams {\n height: number;\n width: number;\n}\n\nexport type UploadObj = {\n dir: string;\n filename: string;\n}\n\nexport interface FileData {\n file: Blob;\n global: boolean;\n}\n","export enum VisualTestImageType {\n FULL_PAGE = 'FULL_PAGE',\n VIEWPORT = 'VIEWPORT',\n ELEMENT_SCREENSHOT = 'ELEMENT_SCREENSHOT'\n}\n\nexport type VisualTestAccess = {\n enabled: boolean;\n apiKey: string | null;\n}\n\nexport type VisualTest = {\n comparisonStatus:\tstring;\n appUrl:\tstring;\n createdAt:\tstring;\n id: number;\n imageName:\tstring;\n imageThumbnailUrl:\tstring;\n imageType:\tVisualTestImageType;\n imageUrl:\tstring;\n sessionId:\tstring;\n testUrl:\tstring;\n}\n"],"names":["APIOrder","AbortController","stringify","InputFileset","OutputFileset","AccessGroupScope","SessionUsageType","UtilizationType","SessionType","TimeResolution","PaymentStatus","PaymentMethod","DeactivateReason","InitStep","DeviceState","FrameworkType","BillingType","BrokerType","ClusterState","ClusterType","DeviceGroupOrigin","Platform","SupportedCreators","PoolSize","Code","LockReason","CriterionField","RetentionStrategy","ProblemType","DeviceSessionType","RetryState","DeviceSessionState","DeviceSessionStepType","SessionReleaseReason","OsType","LicenseStatus","NotificationChannel","NotificationScope","ArchivingStrategy","ScreenshotType","ServiceUnit","SharedResourceType","TestResult","LimitationType","TestScheduler","TestState","TestRunConfigFileAction","UserStatus","FileDirection","FileInputType","FileState","VisualTestImageType"],"mappings":"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"} \ No newline at end of file diff --git a/dist/bitbar-cloud-api-client.min.js b/dist/bitbar-cloud-api-client.min.js index ccb6797..82e0167 100644 --- a/dist/bitbar-cloud-api-client.min.js +++ b/dist/bitbar-cloud-api-client.min.js @@ -1,4 +1,4 @@ -/* @bitbar/cloud-api-client v1.7.0 | Copyright 2026 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ +/* @bitbar/cloud-api-client v1.7.1 | Copyright 2026 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ !function(e,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("@bitbar/finka"),require("qs"),require("node-abort-controller")):"function"==typeof define&&define.amd?define(["exports","@bitbar/finka","qs","node-abort-controller"],s):s((e="undefined"!=typeof globalThis?globalThis:e||self)["bitbar-cloud-api-client"]={},e["@bitbar/finka"],e.qs,e["node-abort-controller"])}(this,(function(e,s,t,r){"use strict"; /****************************************************************************** Copyright (c) Microsoft Corporation. @@ -14,5 +14,5 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -function n(e,s,t,r){var n,i=arguments.length,u=i<3?s:null===r?r=Object.getOwnPropertyDescriptor(s,t):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,s,t,r);else for(var o=e.length-1;o>=0;o--)(n=e[o])&&(u=(i<3?n(u):i>3?n(s,t,u):n(s,t))||u);return i>3&&u&&Object.defineProperty(s,t,u),u}"function"==typeof SuppressedError&&SuppressedError;class i{constructor(e,s,t){this.name=e,this.value=s,this.operand=t}}s();class u{constructor(){this.filters=[]}gt(e,s){return this.add(e,s,"gt")}lt(e,s){return this.add(e,s,"lt")}after(e,s){return this.add(e,s,"after",!0)}afterorequal(e,s){return this.add(e,s,"afterorequal",!0)}before(e,s){return this.add(e,s,"before",!0)}beforeorequal(e,s){return this.add(e,s,"beforeorequal",!0)}on(e,s){return this.add(e,s,"on")}eq(e,s){return this.add(e,s,"eq")}contains(e,s){return this.add(e,s,"contains")}like(e,s){return this.add(e,s,"like")}notlike(e,s){return this.add(e,s,"notlike")}isnull(e){return this.add(e,void 0,"isnull")}isnotnull(e){return this.add(e,void 0,"isnotnull")}in(e,s){return this.add(e,s,"in",!0)}notin(e,s){return this.add(e,s,"notin",!0)}raw(e){const s=Array.wrap(e);for(const e of s){if(!this.isFilterPart(e))throw new SyntaxError(`Filter ${e} has invalid syntax`);this.filters.push(e)}}isFilterPart(e){return/^[a-zA-Z0-9.]{2,12}_(?:isnull$|(?:gt|lt|(?:after|before)(?:orequal)?|on|eq|contains|like|(?:not)?in)_)/.test(e)}toString(){const e=[];let s,t;for(const r of this.filters)"string"==typeof r?s=r:(t="",(r.value.length>1||void 0!==r.value[0])&&(t=`_${r.value.join("|")}`),s=`${r.name}_${r.operand}${t}`),e.push(s);return e.join(";")}add(e,s,t,r=!1){let n=Array.wrap(s);if(0===n.length)return this;for(let e=0;enull!==e)),t+="ornull")}return t.endsWith("ornull")&&0===n.length&&(t="isnull"),this.filters.push(new i(e,n,t)),this}}const o=["GET","POST","DELETE"];var a;e.APIOrder=void 0,(a=e.APIOrder||(e.APIOrder={})).asc="a",a.desc="d";class h{constructor(e){this.stack=[],this.requestConfig={},this.ALLOWED_HTTP_METHODS=o,e instanceof h?(this.root=e.root,Array.isArray(e.stack)&&this.push(...e.stack),null!=e.requestConfig&&this.setRequestConfig(e.requestConfig)):this.root=e,this.abortController=new r.AbortController}abortRequest(){this.abortController.abort(),this.abortController=new r.AbortController}push(...e){return this.stack=this.stack.concat(e),this}shift(){return this.stack.shift(),this}restack(...e){return this.stack=e,this}get first(){return this.stack[0]}get last(){return this.stack[this.stack.length-1]}set last(e){this.stack[this.stack.length-1]=e}toUrl(e=!1){let s=`/${this.stack.join("/")}`;return e&&(s=this.root.baseUrl+s),s}setRequestConfig(e){return Object.deepAssign(this.requestConfig,e),this}removeRequestConfig(e){return delete this.requestConfig[e],this}headers(e){const s={};for(const t in e){s[t.replace(/(?:^|-)([a-z])/g,(e=>e.toUpperCase()))]=e[t]}return this.setRequestConfig({headers:s})}method(e){const s=e.toLocaleUpperCase();if(!(this.ALLOWED_HTTP_METHODS.indexOf(s)>-1))throw new Error(`Method '${s}' is not allowed! You can use: ${this.ALLOWED_HTTP_METHODS.join(", ")}`);return this.setRequestConfig({method:s})}get(){return this.method("GET")}post(){return this.method("POST")}delete(){return this.method("DELETE")}params(e){return this.setRequestConfig({params:e}),this}getParams(){return null==this.requestConfig.params?{}:this.requestConfig.params}removeParam(e){return delete this.requestConfig.params[e],this}data(e){return this.setRequestConfig({data:e}),this}jsonData(e){return this.headers({"Content-Type":"application/json"}).data(e),this}formData(e){return this.headers({"Content-Type":"multipart/form-data"}).data(e),this}send(){const e=Object.deepAssign({},this.requestConfig,{url:`/${this.stack.join("/")}`,signal:this.abortController.signal});return null==e.headers&&(e.headers={}),null==e.headers["Content-Type"]&&(e.headers["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8"),"POST"===e.method&&e.headers["Content-Type"].startsWith("application/x-www-form-urlencoded")&&null!=e.data&&(e.data=this.paramsSerializer(e.data)),e.params&&(e.paramsSerializer={indexes:!1}),this.root.axios.request(e)}paramsSerializer(e){return t.stringify(e,{arrayFormat:"brackets"})}}class c extends h{constructor(){super(...arguments),this.all=this.noLimit,this.cut=this.between}create(e){return this.post().data(e).send()}sort(s,t=e.APIOrder.asc){return this.params({sort:`${s}_${t}`})}limit(e=20){if(!Number.isNatural(e))throw new Error(`Limit '${e}' is invalid!`);return this.params({limit:e})}getLimit(){const e=this.getParams();return null==e.limit?20:e.limit}noLimit(){return this.limit(0)}offset(e=0){if(!Number.isNatural(e))throw new Error(`Offset '${e}' is invalid!`);return this.params({offset:e})}between(e,s){if(!Number.isNatural(e))throw new Error(`From '${e}' is invalid!`);if(!Number.isNatural(s))throw new Error(`To '${s}' is invalid!`);return this.params({offset:e,limit:s-e+1})}only(e){if(!Number.isNatural(e))throw new Error(`Index '${e}' is invalid!`);return this.params({offset:e,limit:1})}page(e=1){if(!Number.isNatural(e)||0==e)throw new Error(`Page '${e}' is invalid!`);const s=this.getLimit(),t=(e-1)*s;return this.params({offset:t,limit:s})}search(e){if("string"!=typeof e)throw new Error("Search query must be a string!");return this.params({search:e})}filter(e){if("string"!=typeof e&&!(e instanceof u))throw new Error("Filter must be either string or instance of FilterBuilder");return this.params({filter:e.toString()})}}class l extends h{}class p extends c{constructor(e){super(e),this.push("cleanup-configurations")}specific(){return new l(this).push("specific")}}class d extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("cleanup-configurations",s)}devices(){return new c(this).push("devices")}}class E extends c{constructor(e){super(e),this.push("admin","devices")}cleanupConfigurations(){return new p(this)}cleanupConfiguration(e){return new d(this,e)}}class w extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["GET"],this.push("admin","runs")}config(){const e=new l(this);return e.restack("runs","config"),e}}class T extends c{constructor(e){super(e),this.push("admin","services")}active(){const e=new c(this);return e.params({notArchived:!0}),e}activated(){const e=this.active();return e.params({filter:"activated_eq_true",limit:0,sort:"name_a"}),e}inUse(){const e=new c(this);return e.params({inUse:!0,limit:0,sort:"name_a"}),e}byPrice(){const e=new c(this);return e.params({sort:"centPrice_a"}),e}}function I(e){return class extends e{send(){return Promise.reject()}}}let A=class extends c{constructor(e){super(e),this.push("admin","statistics")}frameworks(){return new c(this).push("frameworks")}};A=n([I],A);class f extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","accounts",s)}roles(){return new c(this).push("roles")}role(e){return new l(this).push("roles",e)}accountServices(){return new c(this).push("account-services")}preferences(){return new l(this).push("preferences")}usage(){return new c(this).push("usage")}usageSummary(){return new l(this).push("usage-summary")}}class N extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","account-services",s)}activate(){return new l(this).push("activate").post()}deactivate(){return new l(this).push("deactivate").post()}}class S extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("clusters",s)}devices(){return new c(this).push("devices")}}class m extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","devices",s)}cleanupConfiguration(){return new l(this).push("cleanup-configuration")}labels(){return new c(this).push("labels")}label(e){return new l(this).push("labels",e)}}class R extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","device-models",s)}browsers(){return new c(this).push("browsers")}queue(){return new c(this).push("queue")}}e.InputFileset=class extends l{constructor(e){super(e),this.push("input-file-set")}files(){return new c(this).push("files")}filesZip(){return new l(this).push("files.zip")}},e.InputFileset=n([I],e.InputFileset);const v=new u;v.eq("state","READY"),v.in("mimetype",["image/png","image/jpg","image/jpeg","image/webp","image/gif"]),v.notlike("name","action-%%");const L=new u;L.eq("state","READY"),L.notin("mimetype",["image/png","image/jpg","image/jpeg","image/webp","image/gif","video/mp4","video/avi","video/webm","video/ogg","video/mpeg"]);class O extends c{constructor(e){super(e),this.push("files")}performance(){return this.params({tag:["performance"]})}images(){return this.filter(v)}nonMediaFiles(){return this.filter(L)}videos(){return this.params({filter:"s_state_eq_READY",tag:["video"]})}}e.OutputFileset=class extends l{constructor(e){super(e),this.push("output-file-set")}files(){return new O(this)}file(e){return new l(this).push("files",e)}filesZip(){return new l(this).push("files.zip")}screenshots(){return new c(this).push("screenshots")}screenshot(e){return new l(this).push("screenshots",e)}screenshotFile(e){return this.screenshot(e).push("file")}},e.OutputFileset=n([I],e.OutputFileset);class C extends c{constructor(e){super(e),this.push("screenshots")}}class D extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("device-sessions",s)}commands(){return new c(this).push("commands")}input(){return new e.InputFileset(this)}output(){return new e.OutputFileset(this)}release(){return new l(this).push("release").post()}screenshots(){return new C(this)}screenshot(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("screenshots",e)}steps(){return new c(this).push("steps")}step(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("steps",e)}currentStep(){return this.step("current")}connections(){return new c(this).push("connections")}logs(){return new l(this).push("logs").setRequestConfig({responseType:"text"})}clusterLogs(){return new l(this).push("cluster-logs").setRequestConfig({responseType:"text"})}}class g extends D{changeBillable(e){return function(e,s){const t=new l(e),r=t.last;return t.restack("admin","device-sessions",r,"changebillable").params({billable:s}).post()}(this,e)}}class b extends c{constructor(e){super(e),this.push("admin","device-time")}}class U extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","frameworks",s)}config(){return new l(this).push("config")}requiredRoles(){return new c(this).push("required-roles")}}class _ extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","licenses",s)}activate(){return new l(this).push("activate")}deactivate(){return new l(this).push("deactivate")}resend(){return new l(this).push("resend")}download(){return new l(this).push("download")}}function y(e,s,t){const r=new l(e).push(s);return null!=t&&r.params({deviceRunIds:t}),r.post()}class P extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","runs",s)}abort(){return new l(this).push("abort").post()}changeBillable(e){return new l(this).push("changebillable").post().params({billable:e})}changePriority(e){const s=new l(this).push("changepriority");return e&&s.post().data({priority:e}),s}retry(e){return y(this,"retry",e).setRequestConfig({timeout:0})}}class F extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","services",s)}activate(){return new l(this).push("activate").post()}}let M=class extends l{constructor(e){super(e),this.push("account")}roles(){return new c(this).push("roles")}role(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("roles",e)}services(){const e=new c(this);return e.last+="-services",e}update(){const e=new l(this);return e.last="update-account",e.post()}};M=n([I],M);class G extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("device-sessions",s)}connections(){return new c(this).push("connections")}connection(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("connections",e)}input(){return new e.InputFileset(this)}output(){return new e.OutputFileset(this)}release(){return new l(this).push("release").post()}visualTestsImages(){return new c(this).push("visual-tests","images")}}let x=class extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","users",s)}disable(){return new l(this).push("disable")}enable(){return new l(this).push("enable")}licenses(){return new c(this).push("licenses")}resendActivation(){return new l(this).push("resend-activation").post()}account(){return new M(this)}deviceSession(e){return new G(this,e)}roles(){return new c(this).push("roles")}role(e){return new l(this).push("roles",e)}};x=n([I],x);class k extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("access-groups",s)}users(){return new c(this).push("users")}user(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("users",e)}resources(){return new c(this).push("resources")}resource(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("resources",e)}}class H extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("device-groups",s)}devices(){return new c(this).push("devices")}device(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("devices",e)}selectors(){return new c(this).push("selectors")}selector(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("selectors",e)}share(){return new c(this).push("share")}}class B extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("files",s)}file(){return new l(this).push("file")}icon(){return new l(this).push("icon")}tags(){return new c(this).push("tags")}share(){return new c(this).push("share")}property(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("properties",e)}}class q extends c{constructor(e){super(e),this.push("test-case-runs")}}class W extends D{abort(){return new l(this).push("abort").post()}retry(){return new l(this).push("retry").post()}testCaseRuns(){return new q(this)}}class Y extends c{constructor(e){super(e),this.push("device-sessions")}}class K extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("runs",s)}abort(){return new l(this).push("abort").post()}buildLogsZip(e){return y(this,"build-logs.zip",e)}dataAvailability(){return new l(this).push("data-availability")}deviceSessions(){return new Y(this)}filesZip(e){return y(this,"files.zip",e)}logsZip(e){return y(this,"logs.zip",e)}performanceZip(e){return y(this,"performance.zip",e)}retry(e){return y(this,"retry",e).setRequestConfig({timeout:0})}screenshotsZip(e){return y(this,"screenshots.zip",e)}steps(){return new c(this).push("steps")}}class j extends K{deviceSession(e){return new W(this,e)}}class V extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("projects",s)}runs(){return new c(this).push("runs")}run(e){return new j(this,e)}share(){return new c(this).push("share")}unarchive(){return new l(this).push("unarchive")}}let z=class extends l{constructor(e){super(e)}accessGroups(){return new c(this).push("access-groups")}accessGroup(e){return new k(this,e)}accounts(){return new c(this).push("admin","accounts")}account(e){if(null==e)throw new Error("Resource ID cannot be null!");return new f(this,e)}accountServices(){return new c(this).push("admin","account-services")}accountService(e){return new N(this,e)}activities(){return new c(this).push("admin","activities")}administrators(){return new c(this).push("admin","administrators")}billingPeriods(){return new c(this).push("admin","billing-periods")}billingPeriod(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","billing-periods",e)}browsers(){return new c(this).push("admin","browsers")}clusters(){return new c(this).push("clusters")}cluster(e){return new S(this,e)}devices(){return new E(this)}device(e){return new m(this,e)}devicesForModel(e){if(null==e)throw new Error("Resource ID cannot be null!");const s=this.devices();return s.params({filter:"deviceModelId_eq_"+e}),s}deviceStatuses(){return new c(this).push("admin","device","statuses")}deviceModels(){return new c(this).push("admin","device-models")}deviceModel(e){return new R(this,e)}deviceProblems(){return new c(this).push("admin","device-problems")}deviceModelCriterias(){return new c(this).push("admin","device-model-criteria")}deviceModelCriteria(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","device-model-criteria",e)}deviceSessions(){return new c(this).push("admin","device-sessions")}deviceSession(e){return new g(this,e)}deviceTime(){return new b(this)}deviceTimeSummary(){return new c(this).push("admin","device-time-summary")}deviceTypes(){return new c(this).push("admin","device-types")}deviceType(e){return new l(this).push("admin","device-types",e)}deviceGroups(){return new c(this).push("device-groups")}deviceGroup(e){return new H(this,e)}emails(){return new c(this).push("admin","emails")}resendEmail(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","emails",e,"resend").post()}files(){return new c(this).push("files")}file(e){return new B(this,e)}frameworks(){return new c(this).push("admin","frameworks")}framework(e){return new U(this,e)}frameworkAvailableLabels(){const e=this.frameworks();return e.push("available-labels"),e}interactiveQueue(){return new c(this).push("admin","interactive-queue")}licenses(){return new c(this).push("admin","licenses")}license(e){return new _(this,e)}maintenance(){return new l(this).push("admin","maintenance")}overview(){return new l(this).push("admin","overview")}pools(){return new c(this).push("admin","pools")}pool(e){return new l(this).push("admin","pools",e)}projects(){return new c(this).push("projects")}project(e){return new V(this,e)}roles(){return new c(this).push("admin","roles")}runs(){return new w(this)}run(e){return new P(this,e)}samples(){return new c(this).push("admin","samples")}sample(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","samples",e)}services(){return new T(this)}service(e){return new F(this,e)}settings(){return new l(this).push("admin","settings")}statistics(){return new A(this)}users(){return new c(this).push("users")}createUser(){return new c(this).push("admin","users").post()}user(e){return new x(this,e)}};z=n([I],z);class $ extends c{constructor(e){super(e),this.push("devices")}filters(){return new l(this).push("filters")}desktopBrowserCapabilities(){return new l(this).push("desktop-browser-capabilities")}}class X extends c{constructor(e){super(e),this.push("properties")}maintenance(){return new c(this).params({filter:"name_eq_CLOUD_HEADER_ANNOUNCEMENT",limit:1,sort:"updateTime_d"})}}class Z extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["POST"],this.push("services")}available(){return new c(this).push("available")}active(){const e=new c(this);return"me"===this.first?e.push("active"):e.params({notArchived:!0}),e}byPrice(){return new c(this).sort("centPrice")}availableByPrice(){return new c(this).push("available").sort("centPrice")}}class J extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["GET","POST"],this.push("users")}activate(){return new l(this).push("activate").post()}recoveries(){return new l(this).push("recoveries")}passwordRecovery(){return new l(this).push("password-recovery")}}class Q extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("billing-periods",s)}receipt(){return new l(this).push("receipt").setRequestConfig({responseType:"arraybuffer"})}}class ee extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("accounts",s)}concurrencyStatus(){return new l(this).push("concurrency-status")}deviceTime(){return new c(this).push("device-time")}deviceTimeSummary(){return new c(this).push("device-time-summary")}preferences(){return new l(this).push("preferences")}users(){return new c(this).push("users")}removeUser(e){return new l(this).push("users",e)}disableUser(e){return new l(this).push("users",e,"disable").post()}enableUser(e){return new l(this).push("users",e,"enable").post()}resendActivation(e){return new l(this).push("users",e,"resend-activation").post()}billingPeriods(){return new c(this).push("billing-periods")}billingPeriod(e){return new Q(this,e)}serviceBillingPeriod(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("account-services",e,"billing-period")}visualTestAccess(){return new l(this).push("visual-tests","access")}accountServices(){return new c(this).push("account-services")}accountService(e){return new c(this).push("account-services",e)}services(){return new l(this).push("services")}userUsageDetails(){return new c(this).push("user-usage-details")}usageDetails(){return new c(this).push("usage-details")}usageDetailsSummary(){return new l(this).push("usage-details-summary")}}class se extends l{constructor(e){super(e),this.push("broker")}hubs(){return new c(this).push("hubs")}}class te extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("devices",s)}properties(){return new c(this).push("properties")}browsers(){return new c(this).push("browsers")}}class re extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("label-groups",s)}labels(){return new c(this).push("labels")}label(e){return new l(this).push("labels",e)}}class ne extends c{constructor(e){super(e),this.push("files")}upload(e){if(global.isNodeJs)return this.nodeUpload(e);throw new Error("Not supported yet!")}nodeUpload(e){const s=require("fs"),t=new(require("form-data"));return t.append("file",s.createReadStream(e.dir+"/"+e.filename),{filename:e.filename}),this.post().headers(t.getHeaders()).data(t)}}class ie extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("channels",s)}scopes(){return new c(this).push("scopes")}}class ue extends c{constructor(e){super(e),this.push("notifications")}scopes(){return new c(this).push("scopes")}channels(){return new c(this).push("channels")}channel(e){return new ie(this,e)}}class oe extends c{constructor(e){super(e),this.push("runs")}config(){return new l(this).push("config")}}class ae extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["GET"],this.push("tunnels")}active(e){return this.params({active:e})}}class he extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("notifications",s)}test(){return new l(this).push("test")}}class ce extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");if(super(e),"me"===s)this.push("me");else{if("number"!=typeof s)throw new TypeError("id is not a number");this.push("users",s)}}services(){return new Z(this)}deviceGroups(){return new c(this).push("device-groups")}deviceGroup(e){return new H(this,e)}deviceSessions(){return new c(this).push("device-sessions")}deviceSession(e){return new G(this,e)}markAccountOwner(){return new l(this).push("mark-account-owner").post()}projects(){return new c(this).push("projects")}project(e){return new V(this,e)}files(){return new ne(this)}file(e){return new B(this,e)}runs(){return new oe(this)}availableFrameworks(){return new c(this).push("available-frameworks")}resetApiKey(){return new l(this).push("reset-api-key")}restore(){return new l(this).push("restore")}feedback(){return new l(this).push("feedback")}notifications(){return new ue(this)}notification(e){return new he(this,e)}preferences(){return new l(this).push("preferences")}uiPreferences(){return new l(this).push("ui-preferences")}deviceUsage(){return new c(this).push("device-usage")}statistics(){return new l(this).push("statistics")}deviceStatistics(){return new c(this).push("device-statistics")}accessGroups(){return new c(this).push("access-groups")}accessGroup(e){return new k(this,e)}smartbearTunnel(e){return new l(this).push("tunnels",e)}smartbearTunnels(){return new ae(this)}deleteAccount(){return new l(this).push("delete")}}class le extends l{constructor(e){super(e),this.push("user-sessions")}login(e){return new l(this).push("login").post().data(e)}logout(){return new l(this).push("logout").post()}sso(e){return new l(this).push("oauth","authorize",e+"-login")}sbidCallbackUrl(){return new l(this).push("oauth","authorize","sbid-login").toUrl(!0)}}const pe=require("axios").default;globalThis.isNodeJs&&(pe.defaults.headers.common["User-Agent"]="Bitbar Cloud API Client for JavaScript v1.7.0"),pe.defaults.maxContentLength=1073741824;class de{get baseUrl(){return this.axiosConfig.baseURL}constructor(e){if(this.config=e,this.axiosConfig={},null==e)throw new Error("config cannot be empty");if(null==this.config.cloudUrl)throw new TypeError("cloudUrl cannot be empty");if("string"!=typeof this.config.cloudUrl)throw new TypeError("cloudUrl must be a string");if(!/^https?:\/\/.{2,}/.test(this.config.cloudUrl))throw new Error("cloudUrl doesn't look like a URL");if(this.axiosConfig.baseURL=this.config.cloudUrl.replace(/\/+$/,"")+"/api",this.config.v2=!!this.config.v2,this.config.v2&&(this.axiosConfig.baseURL+="/v2"),this.config.apiKey){if("string"!=typeof this.config.apiKey)throw new TypeError("apiKey must be a string");if(!/^[A-Za-z0-9]{32}$/.test(this.config.apiKey))throw new Error("apiKey is in the wrong format");this.axiosConfig.auth={username:this.config.apiKey,password:""}}this.axiosConfig.withXSRFToken=!0,this.axiosConfig.withCredentials=null!=e.withCredentials&&e.withCredentials,this.axios=pe.create(this.axiosConfig)}account(e){return new ee(this,e)}admin(){return new z(this)}broker(){return new se(this)}clusters(){return new c(this).push("clusters")}cluster(e){return new S(this,e)}device(e){return new te(this,e)}deviceGroup(e){return new H(this,e)}deviceGroups(){return new c(this).push("device-groups")}devices(){return new $(this)}deviceSession(e){return new W(this,e)}deviceSessions(){return new c(this).push("device-sessions")}deviceStatistics(){return new c(this).push("device-statistics")}enums(){return new l(this).push("enums")}files(){return new c(this).push("files")}file(e){return new B(this,e)}labelGroups(){return new c(this).push("label-groups")}labelGroup(e){return new re(this,e)}labels(){return new c(this).push("labels")}licenses(){return new l(this).push("licenses")}license(){return new l(this).push("license")}ma(){throw new Error("Requires prototype extension covering ACL check")}me(){return this.user("me")}projects(){return new c(this).push("projects")}project(e){return new V(this,e)}properties(){return new X(this)}property(e){return new l(this).push("properties",e)}run(e){return new j(this,e)}services(){return new Z(this)}user(e){return new ce(this,e)}users(){return new J(this)}userSession(){return new le(this)}}const Ee={API:de,FilterBuilder:u};var we,Te,Ie,Ae,fe,Ne,Se,me,Re,ve,Le,Oe,Ce,De,ge,be,Ue,_e,ye,Pe,Fe,Me,Ge,xe,ke,He,Be,qe,We,Ye,Ke,je,Ve,ze,$e,Xe,Ze,Je,Qe,es,ss,ts,rs,ns,is,us,os;e.AccessGroupScope=void 0,(we=e.AccessGroupScope||(e.AccessGroupScope={})).USER="USER",we.ACCOUNT="ACCOUNT",we.GLOBAL="GLOBAL",e.SessionUsageType=void 0,(Te=e.SessionUsageType||(e.SessionUsageType={})).AUTOMATIC="AUTOMATIC",Te.MANUAL="MANUAL",Te.DEDICATED_AUTOMATIC="DEDICATED_AUTOMATIC",Te.DEDICATED_MANUAL="DEDICATED_MANUAL",e.UtilizationType=void 0,(Ie=e.UtilizationType||(e.UtilizationType={})).ALL="all",Ie.PUBLIC="public",Ie.DEDICATED="dedicated",e.SessionType=void 0,(Ae=e.SessionType||(e.SessionType={})).ALL="all",Ae.AUTOMATED="automated",Ae.MANUAL="manual",e.TimeResolution=void 0,(fe=e.TimeResolution||(e.TimeResolution={})).HOUR="hour",fe.DAY="day",e.PaymentStatus=void 0,(Ne=e.PaymentStatus||(e.PaymentStatus={})).SUCCEEDED="SUCCEEDED",Ne.FAILED="FAILED",Ne.REDIRECTED="REDIRECTED",e.PaymentMethod=void 0,(Se=e.PaymentMethod||(e.PaymentMethod={})).PAYPAL="PAYPAL",Se.BRAINTREE="BRAINTREE",Se.STRIPE="STRIPE",Se.INVOICE="INVOICE",Se.PROMOTION="PROMOTION",Se.AWS="AWS",e.DeactivateReason=void 0,(me=e.DeactivateReason||(e.DeactivateReason={})).INITIAL_FAILURE="INITIAL_FAILURE",me.SCA_FAILURE="SCA_FAILURE",me.CHARGE_FAILURE="CHARGE_FAILURE",me.CANCEL="CANCEL",me.SUSPENDED="SUSPENDED",me.ANOTHER_PURCHASE="ANOTHER_PURCHASE",e.InitStep=void 0,(Re=e.InitStep||(e.InitStep={})).SKIP="SKIP",Re.REBOOT="REBOOT",Re.REBOOT_WITH_UNLOCK="REBOOT_WITH_UNLOCK",Re.UNLOCK_ONLY="UNLOCK_ONLY",e.DeviceState=void 0,(ve=e.DeviceState||(e.DeviceState={})).OFFLINE_CLEANING="OFFLINE_CLEANING",ve.OFFLINE_DIRTY="OFFLINE_DIRTY",ve.OFFLINE_FREE="OFFLINE_FREE",ve.OFFLINE_TESTING="OFFLINE_TESTING",ve.ONLINE_CLEANING="ONLINE_CLEANING",ve.ONLINE_DIRTY="ONLINE_DIRTY",ve.ONLINE_FREE="ONLINE_FREE",ve.ONLINE_TESTING="ONLINE_TESTING",e.FrameworkType=void 0,(Le=e.FrameworkType||(e.FrameworkType={})).AUTOMATIC="AUTOMATIC",Le.MANUAL_APP="MANUAL_APP",Le.MANUAL_WEB="MANUAL_WEB",Le.REMOTE="REMOTE",e.BillingType=void 0,(Oe=e.BillingType||(e.BillingType={})).BUY="BUY",Oe.CHARGE="CHARGE",Oe.CANCEL="CANCEL",e.BrokerType=void 0,(Ce=e.BrokerType||(e.BrokerType={})).MOBILE="MOBILE",Ce.DESKTOP="DESKTOP",e.ClusterState=void 0,(De=e.ClusterState||(e.ClusterState={}))[De.OFFLINE=0]="OFFLINE",De.ONLINE="ONLINE",De.RESTARTING="RESTARTING",De.QUIET_DOWN="QUIET_DOWN",De.MAINTENANCE="MAINTENANCE",e.ClusterType=void 0,(ge=e.ClusterType||(e.ClusterType={})).BARE_METAL="BARE_METAL",ge.EC2="EC2",ge.VM="VM",e.DeviceGroupOrigin=void 0,(be=e.DeviceGroupOrigin||(e.DeviceGroupOrigin={})).STATIC="STATIC",be.DYNAMIC="DYNAMIC",be.HYBRID="HYBRID",e.Platform=void 0,(Ue=e.Platform||(e.Platform={})).IOS="IOS",Ue.ANDROID="ANDROID",Ue.WINDOWS="WINDOWS",Ue.MAC="MAC",Ue.LINUX="LINUX",Ue.UNDEFINED="UNDEFINED",e.SupportedCreators=void 0,(_e=e.SupportedCreators||(e.SupportedCreators={})).MANUAL="MANUAL",_e.ROBOT="ROBOT",_e.AUTOMATIC="AUTOMATIC",e.PoolSize=void 0,(ye=e.PoolSize||(e.PoolSize={})).XL="XL",ye.L="L",ye.M="M",ye.S="S",e.Code=void 0,(Pe=e.Code||(e.Code={})).HIGH="HIGH",Pe.MODERATE="MODERATE",Pe.LOW="LOW",Pe.NONE="NONE",e.LockReason=void 0,(Fe=e.LockReason||(e.LockReason={})).TESTING="TESTING",Fe.CLEANING="CLEANING",Fe.NOT_OPERATIONAL="NOT_OPERATIONAL",e.CriterionField=void 0,(Me=e.CriterionField||(e.CriterionField={})).NAME="NAME",Me.FINGERPRINT="FINGERPRINT",Me.SERIAL_ID="SERIAL_ID",Me.UNLOCK_GESTURE="UNLOCK_GESTURE",Me.SOFTWARE_VERSION="SOFTWARE_VERSION",Me.INIT_STEP="INIT_STEP",Me.ACCOUNT="ACCOUNT",Me.BROWSERS="BROWSERS",e.RetentionStrategy=void 0,(Ge=e.RetentionStrategy||(e.RetentionStrategy={})).CLUSTER_ON_OFF="CLUSTER_ON_OFF",Ge.MIN_FREE_MAX_TOTAL="MIN_FREE_MAX_TOTAL",Ge.POOL_MANAGER_AWARE="POOL_MANAGER_AWARE",e.ProblemType=void 0,(xe=e.ProblemType||(e.ProblemType={})).CLEANING="CLEANING",xe.DIRTY="DIRTY",xe.OFFLINE="OFFLINE",xe.LOW_BATTERY="LOW_BATTERY",xe.HIGH_FAIL_RATE="HIGH_FAIL_RATE",xe.NO_INTERNET_CONNECTION="NO_INTERNET_CONNECTION",e.DeviceSessionType=void 0,(ke=e.DeviceSessionType||(e.DeviceSessionType={})).AUTOMATIC="AUTOMATIC",ke.MANUAL_APP="MANUAL_APP",ke.MANUAL_WEB="MANUAL_WEB",e.RetryState=void 0,(He=e.RetryState||(e.RetryState={})).NONE="NONE",He.MANUAL="MANUAL",He.AUTO="AUTO",e.DeviceSessionState=void 0,(Be=e.DeviceSessionState||(e.DeviceSessionState={})).ABORTED="ABORTED",Be.EXCLUDED="EXCLUDED",Be.FAILED="FAILED",Be.FINISHING="FINISHING",Be.RUNNING="RUNNING",Be.SUCCEEDED="SUCCEEDED",Be.TIMEOUT="TIMEOUT",Be.WAITING="WAITING",Be.WARNING="WARNING",e.DeviceSessionStepType=void 0,(qe=e.DeviceSessionStepType||(e.DeviceSessionStepType={})).WAITING="WAITING",qe.PREPARING="PREPARING",qe.UNINSTALL="UNINSTALL",qe.INSTALL="INSTALL",qe.RUNNING="RUNNING",qe.SENDING_RESULTS="SENDING_RESULTS",qe.PROCESSING_RESULTS="PROCESSING_RESULTS",e.SessionReleaseReason=void 0,(We=e.SessionReleaseReason||(e.SessionReleaseReason={})).INACTIVITY="INACTIVITY",We.TIMEOUT="TIMEOUT",We.USER_ACTION="USER_ACTION",We.CHANGE_DEVICE="CHANGE_DEVICE",We.WEBSOCKET_CLOSED="WEBSOCKET_CLOSED",e.OsType=void 0,(Ye=e.OsType||(e.OsType={})).IOS="IOS",Ye.ANDROID="ANDROID",Ye.DESKTOP="DESKTOP",Ye.UNDEFINED="UNDEFINED",e.LicenseStatus=void 0,(Ke=e.LicenseStatus||(e.LicenseStatus={})).ACTIVE="ACTIVE",Ke.EXPIRED="EXPIRED",Ke.INACTIVE="INACTIVE",Ke.CLOSED="CLOSED",e.NotificationChannel=void 0,(je=e.NotificationChannel||(e.NotificationChannel={})).SLACK="SLACK",je.EMAIL="EMAIL",je.WEBHOOK="WEBHOOK",e.NotificationScope=void 0,(Ve=e.NotificationScope||(e.NotificationScope={})).ALL="ALL",Ve.TEST_RUN="TEST_RUN",Ve.TEST_RUN_FAILURE="TEST_RUN_FAILURE",Ve.TEST_RUN_SUCCEEDED="TEST_RUN_SUCCEEDED",Ve.SYSTEM="SYSTEM",Ve.CHECK="CHECK",e.ArchivingStrategy=void 0,(ze=e.ArchivingStrategy||(e.ArchivingStrategy={})).NEVER="NEVER",ze.DAYS="DAYS",ze.RUNS="RUNS",e.ScreenshotType=void 0,($e=e.ScreenshotType||(e.ScreenshotType={})).LANDSCAPE="LANDSCAPE",$e.PORTRAIT="PORTRAIT",e.ServiceUnit=void 0,(Xe=e.ServiceUnit||(e.ServiceUnit={})).DAY="DAY",Xe.HOUR="HOUR",Xe.MONTH="MONTH",Xe.PROJECT="PROJECT",Xe.RUN="RUN",Xe.YEAR="YEAR",e.SharedResourceType=void 0,(Ze=e.SharedResourceType||(e.SharedResourceType={})).DEVICE_GROUP="DEVICE_GROUP",Ze.FILE="FILE",Ze.PROJECT="PROJECT",e.TestResult=void 0,(Je=e.TestResult||(e.TestResult={})).PASSED="PASSED",Je.FAILED="FAILED",Je.SKIPPED="SKIPPED",Je.NOT_AVAILABLE="NOT_AVAILABLE",e.LimitationType=void 0,(Qe=e.LimitationType||(e.LimitationType={})).PACKAGE="PACKAGE",Qe.CLASS="CLASS",e.TestScheduler=void 0,(es=e.TestScheduler||(e.TestScheduler={})).PARALLEL="PARALLEL",es.SERIAL="SERIAL",es.SINGLE="SINGLE",es.ALL_INSTANCES="ALL_INSTANCES",e.TestState=void 0,(ss=e.TestState||(e.TestState={})).WAITING="WAITING",ss.RUNNING="RUNNING",ss.FINISHED="FINISHED",e.TestRunConfigFileAction=void 0,(ts=e.TestRunConfigFileAction||(e.TestRunConfigFileAction={})).COPY_TO_DEVICE="COPY_TO_DEVICE",ts.INSTALL="INSTALL",ts.RUN_TEST="RUN_TEST",e.UserStatus=void 0,(rs=e.UserStatus||(e.UserStatus={})).INACTIVE="INACTIVE",rs.DISABLED="DISABLED",rs.ENABLED="ENABLED",e.FileDirection=void 0,(ns=e.FileDirection||(e.FileDirection={})).INPUT="INPUT",ns.OUTPUT="OUTPUT",e.FileInputType=void 0,(is=e.FileInputType||(e.FileInputType={})).APPLICATION="APPLICATION",is.TEST="TEST",is.DATA="DATA",e.FileState=void 0,(us=e.FileState||(e.FileState={})).PREPARING="PREPARING",us.READY="READY",e.VisualTestImageType=void 0,(os=e.VisualTestImageType||(e.VisualTestImageType={})).FULL_PAGE="FULL_PAGE",os.VIEWPORT="VIEWPORT",os.ELEMENT_SCREENSHOT="ELEMENT_SCREENSHOT",e.ALLOWED_HTTP_METHODS=o,e.API=de,e.CloudAPIClient=Ee,e.FilterBuilder=u,e.IMAGE_FILES_FILTER=v,e.NON_MEDIA_FILES_FILTER=L,e.default=Ee,Object.defineProperty(e,"__esModule",{value:!0})})); +function n(e,s,t,r){var n,i=arguments.length,u=i<3?s:null===r?r=Object.getOwnPropertyDescriptor(s,t):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)u=Reflect.decorate(e,s,t,r);else for(var o=e.length-1;o>=0;o--)(n=e[o])&&(u=(i<3?n(u):i>3?n(s,t,u):n(s,t))||u);return i>3&&u&&Object.defineProperty(s,t,u),u}"function"==typeof SuppressedError&&SuppressedError;class i{constructor(e,s,t){this.name=e,this.value=s,this.operand=t}}s();class u{constructor(){this.filters=[]}gt(e,s){return this.add(e,s,"gt")}lt(e,s){return this.add(e,s,"lt")}after(e,s){return this.add(e,s,"after",!0)}afterorequal(e,s){return this.add(e,s,"afterorequal",!0)}before(e,s){return this.add(e,s,"before",!0)}beforeorequal(e,s){return this.add(e,s,"beforeorequal",!0)}on(e,s){return this.add(e,s,"on")}eq(e,s){return this.add(e,s,"eq")}contains(e,s){return this.add(e,s,"contains")}like(e,s){return this.add(e,s,"like")}notlike(e,s){return this.add(e,s,"notlike")}isnull(e){return this.add(e,void 0,"isnull")}isnotnull(e){return this.add(e,void 0,"isnotnull")}in(e,s){return this.add(e,s,"in",!0)}notin(e,s){return this.add(e,s,"notin",!0)}raw(e){const s=Array.wrap(e);for(const e of s){if(!this.isFilterPart(e))throw new SyntaxError(`Filter ${e} has invalid syntax`);this.filters.push(e)}}isFilterPart(e){return/^[a-zA-Z0-9.]{2,12}_(?:isnull$|(?:gt|lt|(?:after|before)(?:orequal)?|on|eq|contains|like|(?:not)?in)_)/.test(e)}toString(){const e=[];let s,t;for(const r of this.filters)"string"==typeof r?s=r:(t="",(r.value.length>1||void 0!==r.value[0])&&(t=`_${r.value.join("|")}`),s=`${r.name}_${r.operand}${t}`),e.push(s);return e.join(";")}add(e,s,t,r=!1){let n=Array.wrap(s);if(0===n.length)return this;for(let e=0;enull!==e)),t+="ornull")}return t.endsWith("ornull")&&0===n.length&&(t="isnull"),this.filters.push(new i(e,n,t)),this}}const o=["GET","POST","DELETE"];var a;e.APIOrder=void 0,(a=e.APIOrder||(e.APIOrder={})).asc="a",a.desc="d";class h{constructor(e){this.stack=[],this.requestConfig={},this.ALLOWED_HTTP_METHODS=o,e instanceof h?(this.root=e.root,Array.isArray(e.stack)&&this.push(...e.stack),null!=e.requestConfig&&this.setRequestConfig(e.requestConfig)):this.root=e,this.abortController=new r.AbortController}abortRequest(){this.abortController.abort(),this.abortController=new r.AbortController}push(...e){return this.stack=this.stack.concat(e),this}shift(){return this.stack.shift(),this}restack(...e){return this.stack=e,this}get first(){return this.stack[0]}get last(){return this.stack[this.stack.length-1]}set last(e){this.stack[this.stack.length-1]=e}toUrl(e=!1){let s=`/${this.stack.join("/")}`;return e&&(s=this.root.baseUrl+s),s}setRequestConfig(e){return Object.deepAssign(this.requestConfig,e),this}removeRequestConfig(e){return delete this.requestConfig[e],this}headers(e){const s={};for(const t in e){s[t.replace(/(?:^|-)([a-z])/g,(e=>e.toUpperCase()))]=e[t]}return this.setRequestConfig({headers:s})}method(e){const s=e.toLocaleUpperCase();if(!(this.ALLOWED_HTTP_METHODS.indexOf(s)>-1))throw new Error(`Method '${s}' is not allowed! You can use: ${this.ALLOWED_HTTP_METHODS.join(", ")}`);return this.setRequestConfig({method:s})}get(){return this.method("GET")}post(){return this.method("POST")}delete(){return this.method("DELETE")}params(e){return this.setRequestConfig({params:e}),this}getParams(){return null==this.requestConfig.params?{}:this.requestConfig.params}removeParam(e){return delete this.requestConfig.params[e],this}data(e){return this.setRequestConfig({data:e}),this}jsonData(e){return this.headers({"Content-Type":"application/json"}).data(e),this}formData(e){return this.headers({"Content-Type":"multipart/form-data"}).data(e),this}send(){const e=Object.deepAssign({},this.requestConfig,{url:`/${this.stack.join("/")}`,signal:this.abortController.signal});return null==e.headers&&(e.headers={}),null==e.headers["Content-Type"]&&(e.headers["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8"),"POST"===e.method&&e.headers["Content-Type"].startsWith("application/x-www-form-urlencoded")&&null!=e.data&&(e.data=this.paramsSerializer(e.data)),e.params&&(e.paramsSerializer={indexes:!1}),this.root.axios.request(e)}paramsSerializer(e){return t.stringify(e,{arrayFormat:"brackets"})}}class c extends h{constructor(){super(...arguments),this.all=this.noLimit,this.cut=this.between}create(e){return this.post().data(e).send()}sort(s,t=e.APIOrder.asc){return this.params({sort:`${s}_${t}`})}limit(e=20){if(!Number.isNatural(e))throw new Error(`Limit '${e}' is invalid!`);return this.params({limit:e})}getLimit(){const e=this.getParams();return null==e.limit?20:e.limit}noLimit(){return this.limit(0)}offset(e=0){if(!Number.isNatural(e))throw new Error(`Offset '${e}' is invalid!`);return this.params({offset:e})}between(e,s){if(!Number.isNatural(e))throw new Error(`From '${e}' is invalid!`);if(!Number.isNatural(s))throw new Error(`To '${s}' is invalid!`);return this.params({offset:e,limit:s-e+1})}only(e){if(!Number.isNatural(e))throw new Error(`Index '${e}' is invalid!`);return this.params({offset:e,limit:1})}page(e=1){if(!Number.isNatural(e)||0==e)throw new Error(`Page '${e}' is invalid!`);const s=this.getLimit(),t=(e-1)*s;return this.params({offset:t,limit:s})}search(e){if("string"!=typeof e)throw new Error("Search query must be a string!");return this.params({search:e})}filter(e){if("string"!=typeof e&&!(e instanceof u))throw new Error("Filter must be either string or instance of FilterBuilder");return this.params({filter:e.toString()})}}class l extends h{}class p extends c{constructor(e){super(e),this.push("cleanup-configurations")}specific(){return new l(this).push("specific")}}class d extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("cleanup-configurations",s)}devices(){return new c(this).push("devices")}}class E extends c{constructor(e){super(e),this.push("admin","devices")}cleanupConfigurations(){return new p(this)}cleanupConfiguration(e){return new d(this,e)}}class w extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["GET"],this.push("admin","runs")}config(){const e=new l(this);return e.restack("runs","config"),e}}class T extends c{constructor(e){super(e),this.push("admin","services")}active(){const e=new c(this);return e.params({notArchived:!0}),e}activated(){const e=this.active();return e.params({filter:"activated_eq_true",limit:0,sort:"name_a"}),e}inUse(){const e=new c(this);return e.params({inUse:!0,limit:0,sort:"name_a"}),e}byPrice(){const e=new c(this);return e.params({sort:"centPrice_a"}),e}}function I(e){return class extends e{send(){return Promise.reject()}}}let A=class extends c{constructor(e){super(e),this.push("admin","statistics")}frameworks(){return new c(this).push("frameworks")}};A=n([I],A);class f extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","accounts",s)}roles(){return new c(this).push("roles")}role(e){return new l(this).push("roles",e)}accountServices(){return new c(this).push("account-services")}preferences(){return new l(this).push("preferences")}usage(){return new c(this).push("usage")}usageSummary(){return new l(this).push("usage-summary")}}class N extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","account-services",s)}activate(){return new l(this).push("activate").post()}deactivate(){return new l(this).push("deactivate").post()}}class S extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("clusters",s)}devices(){return new c(this).push("devices")}}class m extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","devices",s)}cleanupConfiguration(){return new l(this).push("cleanup-configuration")}labels(){return new c(this).push("labels")}label(e){return new l(this).push("labels",e)}}class R extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","device-models",s)}browsers(){return new c(this).push("browsers")}queue(){return new c(this).push("queue")}}e.InputFileset=class extends l{constructor(e){super(e),this.push("input-file-set")}files(){return new c(this).push("files")}filesZip(){return new l(this).push("files.zip")}},e.InputFileset=n([I],e.InputFileset);const v=new u;v.eq("state","READY"),v.in("mimetype",["image/png","image/jpg","image/jpeg","image/webp","image/gif"]),v.notlike("name","action-%%");const L=new u;L.eq("state","READY"),L.notin("mimetype",["image/png","image/jpg","image/jpeg","image/webp","image/gif","video/mp4","video/avi","video/webm","video/ogg","video/mpeg"]);class O extends c{constructor(e){super(e),this.push("files")}performance(){return this.params({tag:["performance"]})}images(){return this.filter(v)}nonMediaFiles(){return this.filter(L)}videos(){return this.params({filter:"s_state_eq_READY",tag:["video"]})}}e.OutputFileset=class extends l{constructor(e){super(e),this.push("output-file-set")}files(){return new O(this)}file(e){return new l(this).push("files",e)}filesZip(){return new l(this).push("files.zip")}screenshots(){return new c(this).push("screenshots")}screenshot(e){return new l(this).push("screenshots",e)}screenshotFile(e){return this.screenshot(e).push("file")}},e.OutputFileset=n([I],e.OutputFileset);class C extends c{constructor(e){super(e),this.push("screenshots")}}class D extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("device-sessions",s)}commands(){return new c(this).push("commands")}input(){return new e.InputFileset(this)}output(){return new e.OutputFileset(this)}release(){return new l(this).push("release").post()}screenshots(){return new C(this)}screenshot(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("screenshots",e)}steps(){return new c(this).push("steps")}step(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("steps",e)}currentStep(){return this.step("current")}connections(){return new c(this).push("connections")}logs(){return new l(this).push("logs").setRequestConfig({responseType:"text"})}clusterLogs(){return new l(this).push("cluster-logs").setRequestConfig({responseType:"text"})}}class g extends D{changeBillable(e){return function(e,s){const t=new l(e),r=t.last;return t.restack("admin","device-sessions",r,"changebillable").params({billable:s}).post()}(this,e)}}class b extends c{constructor(e){super(e),this.push("admin","device-time")}}class U extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","frameworks",s)}config(){return new l(this).push("config")}requiredRoles(){return new c(this).push("required-roles")}}class _ extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","licenses",s)}activate(){return new l(this).push("activate")}deactivate(){return new l(this).push("deactivate")}resend(){return new l(this).push("resend")}download(){return new l(this).push("download")}}function y(e,s,t){const r=new l(e).push(s);return null!=t&&r.params({deviceRunIds:t}),r.post()}class P extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","runs",s)}abort(){return new l(this).push("abort").post()}changeBillable(e){return new l(this).push("changebillable").post().params({billable:e})}changePriority(e){const s=new l(this).push("changepriority");return e&&s.post().data({priority:e}),s}retry(e){return y(this,"retry",e).setRequestConfig({timeout:0})}}class F extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","services",s)}activate(){return new l(this).push("activate").post()}}let M=class extends l{constructor(e){super(e),this.push("account")}roles(){return new c(this).push("roles")}role(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("roles",e)}services(){const e=new c(this);return e.last+="-services",e}update(){const e=new l(this);return e.last="update-account",e.post()}};M=n([I],M);class G extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("device-sessions",s)}connections(){return new c(this).push("connections")}connection(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("connections",e)}input(){return new e.InputFileset(this)}output(){return new e.OutputFileset(this)}release(){return new l(this).push("release").post()}visualTestsImages(){return new c(this).push("visual-tests","images")}}let x=class extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("admin","users",s)}disable(){return new l(this).push("disable")}enable(){return new l(this).push("enable")}licenses(){return new c(this).push("licenses")}resendActivation(){return new l(this).push("resend-activation").post()}account(){return new M(this)}deviceSession(e){return new G(this,e)}roles(){return new c(this).push("roles")}role(e){return new l(this).push("roles",e)}};x=n([I],x);class k extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("access-groups",s)}users(){return new c(this).push("users")}user(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("users",e)}resources(){return new c(this).push("resources")}resource(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("resources",e)}}class H extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("device-groups",s)}devices(){return new c(this).push("devices")}device(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("devices",e)}selectors(){return new c(this).push("selectors")}selector(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("selectors",e)}share(){return new c(this).push("share")}}class B extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("files",s)}file(){return new l(this).push("file")}icon(){return new l(this).push("icon")}tags(){return new c(this).push("tags")}share(){return new c(this).push("share")}property(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("properties",e)}}class q extends c{constructor(e){super(e),this.push("test-case-runs")}}class W extends D{abort(){return new l(this).push("abort").post()}retry(){return new l(this).push("retry").post()}testCaseRuns(){return new q(this)}}class Y extends c{constructor(e){super(e),this.push("device-sessions")}}class K extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("runs",s)}abort(){return new l(this).push("abort").post()}buildLogsZip(e){return y(this,"build-logs.zip",e)}dataAvailability(){return new l(this).push("data-availability")}deviceSessions(){return new Y(this)}filesZip(e){return y(this,"files.zip",e)}logsZip(e){return y(this,"logs.zip",e)}performanceZip(e){return y(this,"performance.zip",e)}retry(e){return y(this,"retry",e).setRequestConfig({timeout:0})}screenshotsZip(e){return y(this,"screenshots.zip",e)}steps(){return new c(this).push("steps")}}class j extends K{deviceSession(e){return new W(this,e)}}class V extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("projects",s)}runs(){return new c(this).push("runs")}run(e){return new j(this,e)}share(){return new c(this).push("share")}unarchive(){return new l(this).push("unarchive")}}let z=class extends l{constructor(e){super(e)}accessGroups(){return new c(this).push("access-groups")}accessGroup(e){return new k(this,e)}accounts(){return new c(this).push("admin","accounts")}account(e){if(null==e)throw new Error("Resource ID cannot be null!");return new f(this,e)}accountServices(){return new c(this).push("admin","account-services")}accountService(e){return new N(this,e)}activities(){return new c(this).push("admin","activities")}administrators(){return new c(this).push("admin","administrators")}billingPeriods(){return new c(this).push("admin","billing-periods")}billingPeriod(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","billing-periods",e)}browsers(){return new c(this).push("admin","browsers")}clusters(){return new c(this).push("clusters")}cluster(e){return new S(this,e)}devices(){return new E(this)}device(e){return new m(this,e)}devicesForModel(e){if(null==e)throw new Error("Resource ID cannot be null!");const s=this.devices();return s.params({filter:"deviceModelId_eq_"+e}),s}deviceStatuses(){return new c(this).push("admin","device","statuses")}deviceModels(){return new c(this).push("admin","device-models")}deviceModel(e){return new R(this,e)}deviceProblems(){return new c(this).push("admin","device-problems")}deviceModelCriterias(){return new c(this).push("admin","device-model-criteria")}deviceModelCriteria(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","device-model-criteria",e)}deviceSessions(){return new c(this).push("admin","device-sessions")}deviceSession(e){return new g(this,e)}deviceTime(){return new b(this)}deviceTimeSummary(){return new c(this).push("admin","device-time-summary")}deviceTypes(){return new c(this).push("admin","device-types")}deviceType(e){return new l(this).push("admin","device-types",e)}deviceGroups(){return new c(this).push("device-groups")}deviceGroup(e){return new H(this,e)}emails(){return new c(this).push("admin","emails")}resendEmail(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","emails",e,"resend").post()}files(){return new c(this).push("files")}file(e){return new B(this,e)}frameworks(){return new c(this).push("admin","frameworks")}framework(e){return new U(this,e)}frameworkAvailableLabels(){const e=this.frameworks();return e.push("available-labels"),e}interactiveQueue(){return new c(this).push("admin","interactive-queue")}licenses(){return new c(this).push("admin","licenses")}license(e){return new _(this,e)}maintenance(){return new l(this).push("admin","maintenance")}overview(){return new l(this).push("admin","overview")}pools(){return new c(this).push("admin","pools")}pool(e){return new l(this).push("admin","pools",e)}projects(){return new c(this).push("projects")}project(e){return new V(this,e)}roles(){return new c(this).push("admin","roles")}runs(){return new w(this)}run(e){return new P(this,e)}samples(){return new c(this).push("admin","samples")}sample(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","samples",e)}services(){return new T(this)}service(e){return new F(this,e)}settings(){return new l(this).push("admin","settings")}statistics(){return new A(this)}users(){return new c(this).push("users")}createUser(){return new c(this).push("admin","users").post()}user(e){return new x(this,e)}};z=n([I],z);class $ extends c{constructor(e){super(e),this.push("devices")}filters(){return new l(this).push("filters")}desktopBrowserCapabilities(){return new l(this).push("desktop-browser-capabilities")}}class X extends c{constructor(e){super(e),this.push("properties")}maintenance(){return new c(this).params({filter:"name_eq_CLOUD_HEADER_ANNOUNCEMENT",limit:1,sort:"updateTime_d"})}}class Z extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["POST"],this.push("services")}available(){return new c(this).push("available")}active(){const e=new c(this);return"me"===this.first?e.push("active"):e.params({notArchived:!0}),e}byPrice(){return new c(this).sort("centPrice")}availableByPrice(){return new c(this).push("available").sort("centPrice")}}class J extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["GET","POST"],this.push("users")}activate(){return new l(this).push("activate").post()}recoveries(){return new l(this).push("recoveries")}passwordRecovery(){return new l(this).push("password-recovery")}}class Q extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("billing-periods",s)}receipt(){return new l(this).push("receipt").setRequestConfig({responseType:"arraybuffer"})}}class ee extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("accounts",s)}concurrencyStatus(){return new l(this).push("concurrency-status")}deviceTime(){return new c(this).push("device-time")}deviceTimeSummary(){return new c(this).push("device-time-summary")}preferences(){return new l(this).push("preferences")}users(){return new c(this).push("users")}removeUser(e){return new l(this).push("users",e)}disableUser(e){return new l(this).push("users",e,"disable").post()}enableUser(e){return new l(this).push("users",e,"enable").post()}resendActivation(e){return new l(this).push("users",e,"resend-activation").post()}billingPeriods(){return new c(this).push("billing-periods")}billingPeriod(e){return new Q(this,e)}serviceBillingPeriod(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("account-services",e,"billing-period")}visualTestAccess(){return new l(this).push("visual-tests","access")}accountServices(){return new c(this).push("account-services")}accountService(e){return new c(this).push("account-services",e)}services(){return new l(this).push("services")}userUsageDetails(){return new c(this).push("user-usage-details")}usageDetails(){return new c(this).push("usage-details")}usageDetailsSummary(){return new l(this).push("usage-details-summary")}}class se extends l{constructor(e){super(e),this.push("broker")}hubs(){return new c(this).push("hubs")}}class te extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("devices",s)}properties(){return new c(this).push("properties")}browsers(){return new c(this).push("browsers")}}class re extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("label-groups",s)}labels(){return new c(this).push("labels")}label(e){return new l(this).push("labels",e)}}class ne extends c{constructor(e){super(e),this.push("files")}upload(e){if(global.isNodeJs)return this.nodeUpload(e);throw new Error("Not supported yet!")}nodeUpload(e){const s=require("fs"),t=new(require("form-data"));return t.append("file",s.createReadStream(e.dir+"/"+e.filename),{filename:e.filename}),this.post().headers(t.getHeaders()).data(t)}}class ie extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("channels",s)}scopes(){return new c(this).push("scopes")}}class ue extends c{constructor(e){super(e),this.push("notifications")}scopes(){return new c(this).push("scopes")}channels(){return new c(this).push("channels")}channel(e){return new ie(this,e)}}class oe extends c{constructor(e){super(e),this.push("runs")}config(){return new l(this).push("config")}}class ae extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["GET"],this.push("tunnels")}active(e){return this.params({active:e})}}class he extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");super(e),this.push("notifications",s)}test(){return new l(this).push("test")}}class ce extends l{constructor(e,s){if(null==s)throw new Error("Resource ID cannot be null!");if(super(e),"me"===s)this.push("me");else{if("number"!=typeof s)throw new TypeError("id is not a number");this.push("users",s)}}services(){return new Z(this)}deviceGroups(){return new c(this).push("device-groups")}deviceGroup(e){return new H(this,e)}deviceSessions(){return new c(this).push("device-sessions")}deviceSession(e){return new G(this,e)}markAccountOwner(){return new l(this).push("mark-account-owner").post()}projects(){return new c(this).push("projects")}project(e){return new V(this,e)}files(){return new ne(this)}file(e){return new B(this,e)}runs(){return new oe(this)}availableFrameworks(){return new c(this).push("available-frameworks")}resetApiKey(){return new l(this).push("reset-api-key")}restore(){return new l(this).push("restore")}feedback(){return new l(this).push("feedback")}notifications(){return new ue(this)}notification(e){return new he(this,e)}preferences(){return new l(this).push("preferences")}uiPreferences(){return new l(this).push("ui-preferences")}deviceUsage(){return new c(this).push("device-usage")}statistics(){return new l(this).push("statistics")}deviceStatistics(){return new c(this).push("device-statistics")}accessGroups(){return new c(this).push("access-groups")}accessGroup(e){return new k(this,e)}smartbearTunnel(e){return new l(this).push("tunnels",e)}smartbearTunnels(){return new ae(this)}deleteAccount(){return new l(this).push("delete")}}class le extends l{constructor(e){super(e),this.push("user-sessions")}login(e){return new l(this).push("login").post().data(e)}logout(){return new l(this).push("logout").post()}sso(e){return new l(this).push("oauth","authorize",e+"-login")}sbidCallbackUrl(){return new l(this).push("oauth","authorize","sbid-login").toUrl(!0)}}const pe=require("axios").default;globalThis.isNodeJs&&(pe.defaults.headers.common["User-Agent"]="Bitbar Cloud API Client for JavaScript v1.7.1"),pe.defaults.maxContentLength=1073741824;class de{get baseUrl(){return this.axiosConfig.baseURL}constructor(e){if(this.config=e,this.axiosConfig={},null==e)throw new Error("config cannot be empty");if(null==this.config.cloudUrl)throw new TypeError("cloudUrl cannot be empty");if("string"!=typeof this.config.cloudUrl)throw new TypeError("cloudUrl must be a string");if(!/^https?:\/\/.{2,}/.test(this.config.cloudUrl))throw new Error("cloudUrl doesn't look like a URL");if(this.axiosConfig.baseURL=this.config.cloudUrl.replace(/\/+$/,"")+"/api",this.config.v2=!!this.config.v2,this.config.v2&&(this.axiosConfig.baseURL+="/v2"),this.config.apiKey){if("string"!=typeof this.config.apiKey)throw new TypeError("apiKey must be a string");if(!/^[A-Za-z0-9]{32}$/.test(this.config.apiKey))throw new Error("apiKey is in the wrong format");this.axiosConfig.auth={username:this.config.apiKey,password:""}}this.axiosConfig.withXSRFToken=!0,this.axiosConfig.withCredentials=null!=e.withCredentials&&e.withCredentials,this.axios=pe.create(this.axiosConfig)}account(e){return new ee(this,e)}admin(){return new z(this)}broker(){return new se(this)}clusters(){return new c(this).push("clusters")}cluster(e){return new S(this,e)}device(e){return new te(this,e)}deviceGroup(e){return new H(this,e)}deviceGroups(){return new c(this).push("device-groups")}devices(){return new $(this)}deviceSession(e){return new W(this,e)}deviceSessions(){return new c(this).push("device-sessions")}deviceStatistics(){return new c(this).push("device-statistics")}enums(){return new l(this).push("enums")}files(){return new c(this).push("files")}file(e){return new B(this,e)}labelGroups(){return new c(this).push("label-groups")}labelGroup(e){return new re(this,e)}labels(){return new c(this).push("labels")}licenses(){return new l(this).push("licenses")}license(){return new l(this).push("license")}ma(){throw new Error("Requires prototype extension covering ACL check")}me(){return this.user("me")}projects(){return new c(this).push("projects")}project(e){return new V(this,e)}properties(){return new X(this)}property(e){return new l(this).push("properties",e)}run(e){return new j(this,e)}services(){return new Z(this)}user(e){return new ce(this,e)}users(){return new J(this)}userSession(){return new le(this)}}const Ee={API:de,FilterBuilder:u};var we,Te,Ie,Ae,fe,Ne,Se,me,Re,ve,Le,Oe,Ce,De,ge,be,Ue,_e,ye,Pe,Fe,Me,Ge,xe,ke,He,Be,qe,We,Ye,Ke,je,Ve,ze,$e,Xe,Ze,Je,Qe,es,ss,ts,rs,ns,is,us,os;e.AccessGroupScope=void 0,(we=e.AccessGroupScope||(e.AccessGroupScope={})).USER="USER",we.ACCOUNT="ACCOUNT",we.GLOBAL="GLOBAL",e.SessionUsageType=void 0,(Te=e.SessionUsageType||(e.SessionUsageType={})).AUTOMATIC="AUTOMATIC",Te.MANUAL="MANUAL",Te.DEDICATED_AUTOMATIC="DEDICATED_AUTOMATIC",Te.DEDICATED_MANUAL="DEDICATED_MANUAL",e.UtilizationType=void 0,(Ie=e.UtilizationType||(e.UtilizationType={})).ALL="all",Ie.PUBLIC="public",Ie.DEDICATED="dedicated",e.SessionType=void 0,(Ae=e.SessionType||(e.SessionType={})).ALL="all",Ae.AUTOMATED="automated",Ae.MANUAL="manual",e.TimeResolution=void 0,(fe=e.TimeResolution||(e.TimeResolution={})).HOUR="hour",fe.DAY="day",e.PaymentStatus=void 0,(Ne=e.PaymentStatus||(e.PaymentStatus={})).SUCCEEDED="SUCCEEDED",Ne.FAILED="FAILED",Ne.REDIRECTED="REDIRECTED",e.PaymentMethod=void 0,(Se=e.PaymentMethod||(e.PaymentMethod={})).PAYPAL="PAYPAL",Se.BRAINTREE="BRAINTREE",Se.STRIPE="STRIPE",Se.INVOICE="INVOICE",Se.PROMOTION="PROMOTION",Se.AWS="AWS",e.DeactivateReason=void 0,(me=e.DeactivateReason||(e.DeactivateReason={})).INITIAL_FAILURE="INITIAL_FAILURE",me.SCA_FAILURE="SCA_FAILURE",me.CHARGE_FAILURE="CHARGE_FAILURE",me.CANCEL="CANCEL",me.SUSPENDED="SUSPENDED",me.ANOTHER_PURCHASE="ANOTHER_PURCHASE",e.InitStep=void 0,(Re=e.InitStep||(e.InitStep={})).SKIP="SKIP",Re.REBOOT="REBOOT",Re.REBOOT_WITH_UNLOCK="REBOOT_WITH_UNLOCK",Re.UNLOCK_ONLY="UNLOCK_ONLY",e.DeviceState=void 0,(ve=e.DeviceState||(e.DeviceState={})).OFFLINE_CLEANING="OFFLINE_CLEANING",ve.OFFLINE_DIRTY="OFFLINE_DIRTY",ve.OFFLINE_FREE="OFFLINE_FREE",ve.OFFLINE_TESTING="OFFLINE_TESTING",ve.ONLINE_CLEANING="ONLINE_CLEANING",ve.ONLINE_DIRTY="ONLINE_DIRTY",ve.ONLINE_FREE="ONLINE_FREE",ve.ONLINE_TESTING="ONLINE_TESTING",e.FrameworkType=void 0,(Le=e.FrameworkType||(e.FrameworkType={})).AUTOMATIC="AUTOMATIC",Le.MANUAL_APP="MANUAL_APP",Le.MANUAL_WEB="MANUAL_WEB",Le.REMOTE="REMOTE",e.BillingType=void 0,(Oe=e.BillingType||(e.BillingType={})).BUY="BUY",Oe.CHARGE="CHARGE",Oe.CANCEL="CANCEL",e.BrokerType=void 0,(Ce=e.BrokerType||(e.BrokerType={})).MOBILE="MOBILE",Ce.DESKTOP="DESKTOP",e.ClusterState=void 0,(De=e.ClusterState||(e.ClusterState={}))[De.OFFLINE=0]="OFFLINE",De.ONLINE="ONLINE",De.RESTARTING="RESTARTING",De.QUIET_DOWN="QUIET_DOWN",De.MAINTENANCE="MAINTENANCE",e.ClusterType=void 0,(ge=e.ClusterType||(e.ClusterType={})).BARE_METAL="BARE_METAL",ge.EC2="EC2",ge.VM="VM",e.DeviceGroupOrigin=void 0,(be=e.DeviceGroupOrigin||(e.DeviceGroupOrigin={})).STATIC="STATIC",be.DYNAMIC="DYNAMIC",be.HYBRID="HYBRID",e.Platform=void 0,(Ue=e.Platform||(e.Platform={})).IOS="IOS",Ue.ANDROID="ANDROID",Ue.WINDOWS="WINDOWS",Ue.MAC="MAC",Ue.LINUX="LINUX",Ue.UNDEFINED="UNDEFINED",e.SupportedCreators=void 0,(_e=e.SupportedCreators||(e.SupportedCreators={})).MANUAL="MANUAL",_e.ROBOT="ROBOT",_e.AUTOMATIC="AUTOMATIC",e.PoolSize=void 0,(ye=e.PoolSize||(e.PoolSize={})).XL="XL",ye.L="L",ye.M="M",ye.S="S",e.Code=void 0,(Pe=e.Code||(e.Code={})).HIGH="HIGH",Pe.MODERATE="MODERATE",Pe.LOW="LOW",Pe.NONE="NONE",e.LockReason=void 0,(Fe=e.LockReason||(e.LockReason={})).TESTING="TESTING",Fe.CLEANING="CLEANING",Fe.NOT_OPERATIONAL="NOT_OPERATIONAL",e.CriterionField=void 0,(Me=e.CriterionField||(e.CriterionField={})).NAME="NAME",Me.FINGERPRINT="FINGERPRINT",Me.SERIAL_ID="SERIAL_ID",Me.UNLOCK_GESTURE="UNLOCK_GESTURE",Me.SOFTWARE_VERSION="SOFTWARE_VERSION",Me.INIT_STEP="INIT_STEP",Me.ACCOUNT="ACCOUNT",Me.BROWSERS="BROWSERS",e.RetentionStrategy=void 0,(Ge=e.RetentionStrategy||(e.RetentionStrategy={})).CLUSTER_ON_OFF="CLUSTER_ON_OFF",Ge.MIN_FREE_MAX_TOTAL="MIN_FREE_MAX_TOTAL",Ge.POOL_MANAGER_AWARE="POOL_MANAGER_AWARE",e.ProblemType=void 0,(xe=e.ProblemType||(e.ProblemType={})).CLEANING="CLEANING",xe.DIRTY="DIRTY",xe.OFFLINE="OFFLINE",xe.LOW_BATTERY="LOW_BATTERY",xe.HIGH_FAIL_RATE="HIGH_FAIL_RATE",xe.NO_INTERNET_CONNECTION="NO_INTERNET_CONNECTION",e.DeviceSessionType=void 0,(ke=e.DeviceSessionType||(e.DeviceSessionType={})).AUTOMATIC="AUTOMATIC",ke.MANUAL_APP="MANUAL_APP",ke.MANUAL_WEB="MANUAL_WEB",e.RetryState=void 0,(He=e.RetryState||(e.RetryState={})).NONE="NONE",He.MANUAL="MANUAL",He.AUTO="AUTO",e.DeviceSessionState=void 0,(Be=e.DeviceSessionState||(e.DeviceSessionState={})).ABORTED="ABORTED",Be.EXCLUDED="EXCLUDED",Be.FAILED="FAILED",Be.FINISHING="FINISHING",Be.RUNNING="RUNNING",Be.SUCCEEDED="SUCCEEDED",Be.TIMEOUT="TIMEOUT",Be.WAITING="WAITING",Be.WARNING="WARNING",e.DeviceSessionStepType=void 0,(qe=e.DeviceSessionStepType||(e.DeviceSessionStepType={})).WAITING="WAITING",qe.PREPARING="PREPARING",qe.UNINSTALL="UNINSTALL",qe.INSTALL="INSTALL",qe.RUNNING="RUNNING",qe.SENDING_RESULTS="SENDING_RESULTS",qe.PROCESSING_RESULTS="PROCESSING_RESULTS",e.SessionReleaseReason=void 0,(We=e.SessionReleaseReason||(e.SessionReleaseReason={})).INACTIVITY="INACTIVITY",We.TIMEOUT="TIMEOUT",We.USER_ACTION="USER_ACTION",We.CHANGE_DEVICE="CHANGE_DEVICE",We.WEBSOCKET_CLOSED="WEBSOCKET_CLOSED",e.OsType=void 0,(Ye=e.OsType||(e.OsType={})).IOS="IOS",Ye.ANDROID="ANDROID",Ye.DESKTOP="DESKTOP",Ye.UNDEFINED="UNDEFINED",e.LicenseStatus=void 0,(Ke=e.LicenseStatus||(e.LicenseStatus={})).ACTIVE="ACTIVE",Ke.EXPIRED="EXPIRED",Ke.INACTIVE="INACTIVE",Ke.CLOSED="CLOSED",e.NotificationChannel=void 0,(je=e.NotificationChannel||(e.NotificationChannel={})).SLACK="SLACK",je.EMAIL="EMAIL",je.WEBHOOK="WEBHOOK",e.NotificationScope=void 0,(Ve=e.NotificationScope||(e.NotificationScope={})).ALL="ALL",Ve.TEST_RUN="TEST_RUN",Ve.TEST_RUN_FAILURE="TEST_RUN_FAILURE",Ve.TEST_RUN_SUCCEEDED="TEST_RUN_SUCCEEDED",Ve.SYSTEM="SYSTEM",Ve.CHECK="CHECK",e.ArchivingStrategy=void 0,(ze=e.ArchivingStrategy||(e.ArchivingStrategy={})).NEVER="NEVER",ze.DAYS="DAYS",ze.RUNS="RUNS",e.ScreenshotType=void 0,($e=e.ScreenshotType||(e.ScreenshotType={})).LANDSCAPE="LANDSCAPE",$e.PORTRAIT="PORTRAIT",e.ServiceUnit=void 0,(Xe=e.ServiceUnit||(e.ServiceUnit={})).DAY="DAY",Xe.HOUR="HOUR",Xe.MONTH="MONTH",Xe.PROJECT="PROJECT",Xe.RUN="RUN",Xe.YEAR="YEAR",e.SharedResourceType=void 0,(Ze=e.SharedResourceType||(e.SharedResourceType={})).DEVICE_GROUP="DEVICE_GROUP",Ze.FILE="FILE",Ze.PROJECT="PROJECT",e.TestResult=void 0,(Je=e.TestResult||(e.TestResult={})).PASSED="PASSED",Je.FAILED="FAILED",Je.SKIPPED="SKIPPED",Je.NOT_AVAILABLE="NOT_AVAILABLE",e.LimitationType=void 0,(Qe=e.LimitationType||(e.LimitationType={})).PACKAGE="PACKAGE",Qe.CLASS="CLASS",e.TestScheduler=void 0,(es=e.TestScheduler||(e.TestScheduler={})).PARALLEL="PARALLEL",es.SERIAL="SERIAL",es.SINGLE="SINGLE",es.ALL_INSTANCES="ALL_INSTANCES",e.TestState=void 0,(ss=e.TestState||(e.TestState={})).WAITING="WAITING",ss.RUNNING="RUNNING",ss.FINISHED="FINISHED",e.TestRunConfigFileAction=void 0,(ts=e.TestRunConfigFileAction||(e.TestRunConfigFileAction={})).COPY_TO_DEVICE="COPY_TO_DEVICE",ts.INSTALL="INSTALL",ts.RUN_TEST="RUN_TEST",e.UserStatus=void 0,(rs=e.UserStatus||(e.UserStatus={})).INACTIVE="INACTIVE",rs.DISABLED="DISABLED",rs.ENABLED="ENABLED",e.FileDirection=void 0,(ns=e.FileDirection||(e.FileDirection={})).INPUT="INPUT",ns.OUTPUT="OUTPUT",e.FileInputType=void 0,(is=e.FileInputType||(e.FileInputType={})).APPLICATION="APPLICATION",is.TEST="TEST",is.DATA="DATA",e.FileState=void 0,(us=e.FileState||(e.FileState={})).PREPARING="PREPARING",us.READY="READY",e.VisualTestImageType=void 0,(os=e.VisualTestImageType||(e.VisualTestImageType={})).FULL_PAGE="FULL_PAGE",os.VIEWPORT="VIEWPORT",os.ELEMENT_SCREENSHOT="ELEMENT_SCREENSHOT",e.ALLOWED_HTTP_METHODS=o,e.API=de,e.CloudAPIClient=Ee,e.FilterBuilder=u,e.IMAGE_FILES_FILTER=v,e.NON_MEDIA_FILES_FILTER=L,e.default=Ee,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=bitbar-cloud-api-client.min.js.map diff --git a/dist/bitbar-cloud-api-client.min.js.map b/dist/bitbar-cloud-api-client.min.js.map index 6807e6f..a817d68 100644 --- a/dist/bitbar-cloud-api-client.min.js.map +++ b/dist/bitbar-cloud-api-client.min.js.map @@ -1 +1 @@ -{"version":3,"file":"bitbar-cloud-api-client.min.js","sources":["../src/Filter.ts","../src/finka.ts","../src/FilterBuilder.ts","../src/api/models/HTTP.ts","../src/api/APIEntity.ts","../src/api/APIList.ts","../src/api/APIResource.ts","../src/api/APIListCleanupConfigurations.ts","../src/api/APIResourceCleanupConfiguration.ts","../src/api/APIAdminListDevices.ts","../src/api/APIAdminListRuns.ts","../src/api/APIAdminListServices.ts","../src/api/decorators/NonRequestable.ts","../src/api/APIAdminListStatistics.ts","../src/api/APIAdminResourceAccount.ts","../src/api/APIAdminResourceAccountService.ts","../src/api/APIAdminResourceCluster.ts","../src/api/APIAdminResourceDevice.ts","../src/api/APIAdminResourceDeviceModel.ts","../src/api/class/InputFileset.ts","../src/api/class/Images.filter.ts","../src/api/class/NonMedia.filter.ts","../src/api/APIListOutputFiles.ts","../src/api/class/OutputFileset.ts","../src/api/APIListScreenshots.ts","../src/api/APIResourceDeviceSessionCommon.ts","../src/api/APIAdminResourceDeviceSessionStandalone.ts","../src/api/factory/postAdminDeviceSessionChangeBillable.ts","../src/api/APIAdminResourceDeviceTime.ts","../src/api/APIAdminResourceFramework.ts","../src/api/APIAdminResourceLicense.ts","../src/api/factory/postDeviceRunIds.ts","../src/api/APIAdminResourceRunStandalone.ts","../src/api/APIAdminResourceService.ts","../src/api/APIAdminResourceUserAccount.ts","../src/api/APIResourceDeviceSessionStandalone.ts","../src/api/APIAdminResourceUser.ts","../src/api/APIResourceAccessGroup.ts","../src/api/APIResourceDeviceGroup.ts","../src/api/APIResourceFile.ts","../src/api/APIListTestCaseRuns.ts","../src/api/APIResourceDeviceSession.ts","../src/api/APIListTestRunDeviceSessions.ts","../src/api/APIResourceRunCommon.ts","../src/api/APIResourceRun.ts","../src/api/APIResourceProject.ts","../src/api/APIAdminResource.ts","../src/api/APIListDevices.ts","../src/api/APIListProperties.ts","../src/api/APIListServices.ts","../src/api/APIListUsers.ts","../src/api/APIResourceBillingPeriod.ts","../src/api/APIResourceAccount.ts","../src/api/APIResourceBroker.ts","../src/api/APIResourceDevice.ts","../src/api/APIResourceLabelGroup.ts","../src/api/APIListFiles.ts","../src/api/APIResourceChannel.ts","../src/api/APIListNotifications.ts","../src/api/APIListRuns.ts","../src/api/APIListSmartbearTunnels.ts","../src/api/APIResourceNotification.ts","../src/api/APIResourceUser.ts","../src/api/APIResourceUserSession.ts","../src/API.ts","../src/CloudAPIClient.ts","../src/api/models/AccessGroup.ts","../src/api/models/Account.ts","../src/api/models/AccountService.ts","../src/api/models/AdminDevice.ts","../src/api/models/AdminFrameworkStatistics.ts","../src/api/models/BillingPeriod.ts","../src/api/models/Broker.ts","../src/api/models/Cluster.ts","../src/api/models/Device.ts","../src/api/models/DeviceModelCriterion.ts","../src/api/models/DeviceModelPool.ts","../src/api/models/DeviceProblem.ts","../src/api/models/DeviceSession.ts","../src/api/models/Enum.ts","../src/api/models/License.ts","../src/api/models/Notification.ts","../src/api/models/Project.ts","../src/api/models/Screenshot.ts","../src/api/models/Service.ts","../src/api/models/SharedResource.ts","../src/api/models/TestCaseRun.ts","../src/api/models/TestRun.ts","../src/api/models/User.ts","../src/api/models/UserFile.ts","../src/api/models/VisualTest.ts"],"sourcesContent":["/**\n * Filter\n */\n\nexport class Filter {\n name: string;\n value: T;\n operand: string;\n\n constructor(name: string, value: T, operand: string) {\n this.name = name;\n this.value = value;\n this.operand = operand;\n }\n}\n\nexport default Filter;\n","import finka from '@bitbar/finka';\n\nfinka();\n\nexport default {};\n","import {Filter} from './Filter';\nimport './finka';\n\n/**\n * FilterBuilder\n *\n * Builds filter string according to Bitbar Cloud backend convention\n */\nexport class FilterBuilder {\n\n private readonly filters: Array = [];\n\n gt(name: string, value: number): this {\n return this.add(name, value, 'gt');\n }\n\n\n lt(name: string, value: number): this {\n return this.add(name, value, 'lt');\n }\n\n after(name: string, value: Date | number): this {\n return this.add(name, value, 'after', true);\n }\n\n afterorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'afterorequal', true);\n }\n\n before(name: string, value: Date | number): this {\n return this.add(name, value, 'before', true);\n }\n\n beforeorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'beforeorequal', true);\n }\n\n on(name: string, value: any): this {\n return this.add(name, value, 'on');\n }\n\n eq(name: string, value: any): this {\n return this.add(name, value, 'eq');\n }\n\n contains(name: string, value: string): this {\n return this.add(name, value, 'contains');\n }\n\n like(name: string, value: string): this {\n return this.add(name, value, 'like');\n }\n\n notlike(name: string, value: string): this {\n return this.add(name, value, 'notlike');\n }\n\n isnull(name: string): this {\n return this.add(name, undefined, 'isnull');\n }\n\n isnotnull(name: string): this {\n return this.add(name, undefined, 'isnotnull');\n }\n\n in(name: string, value: Array): this {\n return this.add(name, value, 'in', true);\n }\n\n notin(name: string, value: Array): this {\n return this.add(name, value, 'notin', true);\n }\n\n raw(filter: Filter | string | Filter[] | string[]): void {\n const filters = Array.wrap(filter);\n for (const filter of filters) {\n if (this.isFilterPart(filter)) {\n this.filters.push(filter);\n } else {\n throw new SyntaxError(`Filter ${filter} has invalid syntax`);\n }\n }\n }\n\n\n /**\n * Check if given string is proper filter part\n */\n isFilterPart(str: string): boolean {\n return /^[a-zA-Z0-9.]{2,12}_(?:isnull$|(?:gt|lt|(?:after|before)(?:orequal)?|on|eq|contains|like|(?:not)?in)_)/.test(str);\n }\n\n toString(): string {\n const parts: Array = [];\n\n let part: string,\n val: string;\n\n for (const filter of this.filters) {\n if (typeof filter === 'string') {\n part = filter;\n } else {\n val = '';\n if (filter.value.length > 1 || typeof filter.value[0] !== 'undefined') {\n val = `_${filter.value.join('|')}`;\n }\n part = `${filter.name}_${filter.operand}${val}`;\n }\n parts.push(part);\n }\n\n return parts.join(';');\n }\n\n /**\n * Add filter to filters list\n * @param name {string} Name\n * @param value {*} Value\n * @param operand {string} Operand\n * @param [checkNull=false] {boolean} Check null?\n * @returns {FilterBuilder}\n */\n private add(name: string, value: T, operand: string, checkNull = false): this {\n\n let _value = Array.wrap(value);\n\n if (_value.length === 0) {\n return this;\n }\n\n // auto-convert\n for (let i = 0; i < _value.length; i++) {\n const v = _value[i];\n if (typeof v === 'object' && v instanceof Date) {\n _value[i] = v.getTime();\n }\n }\n\n let isNull = false;\n if (checkNull) {\n // check null existence\n for (const v of _value) {\n if (v !== null) {\n continue;\n }\n isNull = true;\n }\n\n if (isNull) {\n _value = _value.filter((item: any) => item !== null);\n operand += 'ornull';\n }\n }\n\n if (operand.endsWith('ornull') && _value.length === 0) {\n operand = 'isnull';\n }\n\n // add filter\n this.filters.push(new Filter>(name, _value, operand));\n\n return this;\n }\n}\n\n\nexport default FilterBuilder;\n","import {Method} from 'axios';\n\n\n/**\n * Allowed methods\n *\n * @type {Array}\n * @default\n */\nexport const ALLOWED_HTTP_METHODS: Array = ['GET', 'POST', 'DELETE'];\n\nexport type QueryParam = string | number | boolean;\nexport type QueryParams = Record>;\n\nexport enum APIOrder {\n asc = 'a',\n desc = 'd'\n}\n\nexport interface CollectionQueryParams extends QueryParams {\n filter: string;\n limit: number;\n offset: number;\n sort: string;\n search: string;\n}\n\nexport type CollectionBasicQueryParams = Omit\n\nexport type NoQueryParams = {\n [key in any]: never;\n}\n\nexport type CollectionResponse = {\n data: Array;\n empty: boolean;\n id: number;\n limit: number;\n next: string;\n offset: number;\n previous: string;\n search: string;\n sort: string;\n total: number;\n}\n\nexport type SimpleCollectionResponse = Pick, 'data' | 'id'>;\nexport type NoData = void;\n","import {AxiosRequestConfig, AxiosResponse, Method} from 'axios';\nimport {stringify} from 'qs';\nimport {API} from '../API';\nimport {ALLOWED_HTTP_METHODS, QueryParams} from './models/HTTP';\nimport {AbortController} from 'node-abort-controller';\n\n\n/**\n * @typeParam RESPONSE HTTP Response return type.\n * @typeParam QUERY_PARAMS Allowed Query Params\n * @typeParam DATA Allowed Data Object\n */\nexport class APIEntity {\n\n root: API;\n\n protected stack: Array = [];\n protected requestConfig: AxiosRequestConfig = {};\n protected ALLOWED_HTTP_METHODS: Array = ALLOWED_HTTP_METHODS;\n protected abortController: AbortController;\n\n /**\n * Constructor\n * @param {APIEntity|object} [parent] - Specifies a parent from which should be inherited properties\n */\n constructor(parent: APIEntity | API) {\n if (parent instanceof APIEntity) {\n this.root = parent.root;\n\n if (Array.isArray(parent.stack)) { //???\n this.push(...parent.stack);\n }\n\n if (parent.requestConfig != null) {\n this.setRequestConfig(parent.requestConfig);\n }\n } else {\n this.root = parent;\n }\n this.abortController = new AbortController();\n }\n\n abortRequest() {\n this.abortController.abort();\n this.abortController = new AbortController();\n }\n\n push(...items: Array): this {\n this.stack = this.stack.concat(items);\n return this;\n }\n\n shift(): this {\n this.stack.shift();\n return this;\n }\n\n restack(...items: Array): this {\n this.stack = items;\n return this;\n }\n\n /**\n * Get first element of the stack\n */\n get first(): string | number {\n return this.stack[0];\n }\n\n /**\n * Get last element of the stack\n */\n get last(): string | number {\n return this.stack[this.stack.length - 1];\n }\n\n /**\n * Set last element of the stack\n */\n set last(val) {\n this.stack[this.stack.length - 1] = val;\n }\n\n toUrl(absolute = false): string {\n let url = `/${this.stack.join('/')}`;\n\n if (absolute) {\n url = this.root.baseUrl + url;\n }\n\n return url;\n }\n\n setRequestConfig(requestConfig: AxiosRequestConfig): this {\n Object.deepAssign(this.requestConfig, requestConfig);\n return this;\n }\n\n removeRequestConfig(key: keyof AxiosRequestConfig): this {\n delete this.requestConfig[key];\n return this;\n }\n\n headers(headers: Record): this {\n const _headers: Record = {};\n\n // Unify/Standarize headers keys\n for (const key in headers) {\n const newKey = key.replace(/(?:^|-)([a-z])/g, (letter) => letter.toUpperCase());\n _headers[newKey] = headers[key];\n }\n\n return this.setRequestConfig({\n headers: _headers\n });\n }\n\n /**\n * Set HTTP method\n */\n method(name: Method): this {\n const NAME: Uppercase = >name.toLocaleUpperCase();\n const isAllowed: boolean = this.ALLOWED_HTTP_METHODS.indexOf(NAME) > -1;\n\n if (!isAllowed) {\n throw new Error(`Method '${NAME}' is not allowed! You can use: ${this.ALLOWED_HTTP_METHODS.join(', ')}`);\n }\n\n return this.setRequestConfig({\n method: NAME\n });\n }\n\n /**\n * Set GET as HTTP method\n */\n get(): this {\n return this.method('GET');\n }\n\n /**\n * Set POST as HTTP method\n */\n post(): this {\n return this.method('POST');\n }\n\n /**\n * Set DELETE as HTTP method\n */\n delete(): this {\n return this.method('DELETE');\n }\n\n /**\n * Set params\n */\n params(params: Pick): this {\n this.setRequestConfig({params});\n return this;\n }\n\n getParams(): Partial {\n return this.requestConfig.params == null ? {} : this.requestConfig.params;\n }\n\n removeParam(key: keyof QUERY_PARAMS): this {\n delete this.requestConfig.params[key];\n return this;\n }\n\n /**\n * Set data\n */\n data(data: DATA): this {\n this.setRequestConfig({data});\n return this;\n }\n\n /**\n * Set JSON data\n */\n jsonData(data: DATA): this {\n this.headers({\n 'Content-Type': 'application/json'\n }).data(data);\n return this;\n }\n\n /**\n * Set form data\n */\n formData(data: DATA): this {\n this.headers({\n 'Content-Type': 'multipart/form-data'\n }).data(data);\n return this;\n }\n\n /**\n * Send request\n */\n send(): Promise> {\n const requestConfig = Object.deepAssign({}, this.requestConfig, {\n url: `/${this.stack.join('/')}`,\n signal: this.abortController.signal\n });\n\n // Set default headers\n if (requestConfig.headers == null) {\n requestConfig.headers = {};\n }\n\n 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 = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = {indexes: false};\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {\n APIOrder,\n CollectionBasicQueryParams,\n CollectionQueryParams,\n CollectionResponse,\n NoQueryParams,\n SimpleCollectionResponse\n} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport type APIListQuery = CollectionBasicQueryParams | CollectionQueryParams | NoQueryParams;\n\nexport class APIList\n extends APIEntity | SimpleCollectionResponse, QUERY_PARAMS, DATA> {\n\n /**\n * Shortcut for sending data POST\n */\n create(data: DATA): Promise> {\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 */\n sort(name: string, order: APIOrder = APIOrder.asc): this {\n return this.params<'sort'>({\n sort: `${name}_${order}`\n });\n }\n\n /**\n * Sets limit\n *\n * @public\n * @param {number} [limit=DEFAULT_LIMIT] - Limit to be set\n * @returns this\n */\n limit(limit = DEFAULT_LIMIT): this {\n if (!Number.isNatural(limit)) {\n throw new Error(`Limit '${limit}' is invalid!`);\n }\n\n return this.params<'limit'>({\n limit\n });\n }\n\n /**\n * Gets limit\n *\n * @public\n * @returns number\n */\n getLimit(): number {\n const params = this.getParams();\n return params.limit == null ? DEFAULT_LIMIT : params.limit;\n }\n\n /**\n * Disables limit\n *\n * @public\n * @returns this\n */\n noLimit(): this {\n return this.limit(0);\n }\n\n /**\n * Sets offset\n *\n * @public\n * @param {number} [offset=DEFAULT_OFFSET] - Offset to be set\n * @returns this\n */\n offset(offset: number = DEFAULT_OFFSET): this {\n if (!Number.isNatural(offset)) {\n throw new Error(`Offset '${offset}' is invalid!`);\n }\n\n return this.params<'offset'>({\n offset\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE records between range\n *\n * @public\n * @param {number} from - From index\n * @param {number} to - To index\n * @returns this\n */\n between(from: number, to: number): this {\n if (!Number.isNatural(from)) {\n throw new Error(`From '${from}' is invalid!`);\n }\n\n if (!Number.isNatural(to)) {\n throw new Error(`To '${to}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: from,\n limit: 1 + (to - from)\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE one record on given index\n *\n * @public\n * @param {number} idx - Index\n * @returns this\n */\n only(idx: number): this {\n if (!Number.isNatural(idx)) {\n throw new Error(`Index '${idx}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: idx,\n limit: 1\n });\n }\n\n /**\n * Gets current limit and sets offset so that will request from BE one page of records\n *\n * @public\n * @param {number} [page=1] - Page number (counted from 1)\n * @returns this\n */\n page(page = 1): this {\n if (!Number.isNatural(page) || page == 0) {\n throw new Error(`Page '${page}' is invalid!`);\n }\n\n const limit = this.getLimit();\n const offset = (page - 1) * limit;\n\n return this.params<'offset' | 'limit'>({\n offset,\n limit\n });\n }\n\n /**\n * Sets search\n *\n * query param is working like SQL LIKE. BE sets wraps around query with %, and replaces every white character\n * with %. So e.g. if query='my device', then it's searching for '%my%device%' in DB.\n *\n * @public\n * @param {string} query - Query to search for\n * @returns this\n */\n search(query: string): this {\n if (typeof query !== 'string') {\n throw new Error('Search query must be a string!');\n }\n\n return this.params<'search'>({\n search: query\n });\n }\n\n /**\n * Sets filter\n *\n * @public\n * @param {FilterBuilder|string} filter - Filter\n * @returns this\n */\n filter(filter: FilterBuilder | string): this {\n const isFilterBuilder = filter instanceof FilterBuilder;\n\n if (typeof filter !== 'string' && !isFilterBuilder) {\n throw new Error('Filter must be either string or instance of FilterBuilder');\n }\n\n return this.params<'filter'>({\n filter: filter.toString()\n });\n }\n\n /**\n * Alias for 'noLimit'\n *\n * @public\n * @see noLimit\n * @returns this\n */\n all: typeof APIList.prototype.noLimit = this.noLimit;\n\n /**\n * Alias for 'between'\n *\n * @public\n * @param {number} from - From idx\n * @param {number} to - To idx\n * @returns this\n */\n cut: typeof APIList.prototype.between = this.between;\n}\n\nexport default APIList;\n","import {APIEntity} from './APIEntity'\nimport {QueryParams} from './models/HTTP';\n\n\n/**\n * APIResource\n *\n * @class\n * @extends APIEntity\n */\nexport class APIResource\n extends APIEntity {\n}\n\n\nexport default APIResource;\n","import {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {CleanupConfigurationData, SpecificCleanupConfigurationQueryParams} from './models/CleanupConfiguration';\nimport {DeviceCleanupConfiguration} from './models/Device';\nimport {CollectionQueryParams, NoData} from './models/HTTP';\n\n\nexport class APIListCleanupConfigurations extends APIList {\n\n /**\n * /cleanup-configurations\n */\n constructor(parent: APIAdminListDevices) {\n super(parent);\n this.push('cleanup-configurations');\n }\n\n // /cleanup-configurations/specific\n specific() {\n return new APIResource, NoData>(this)\n .push('specific');\n }\n\n}\n\nexport default APIListCleanupConfigurations\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIResource} from './APIResource'\nimport {CleanupConfigurationSpecificData, DeviceCleanupConfiguration} from './models/Device';\nimport {NoData} from './models/HTTP';\nimport APIList from './APIList';\n\n\nexport class APIResourceCleanupConfiguration extends APIResource {\n //shuldn't it be APIAdminResourceCleanupConfiguration\n\n /**\n * admin/devices/cleanup-configurations/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('cleanup-configurations', id);\n }\n\n // admin/devices/cleanup-configurations/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIResourceCleanupConfiguration\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIListCleanupConfigurations} from './APIListCleanupConfigurations';\nimport {APIResourceCleanupConfiguration} from './APIResourceCleanupConfiguration';\nimport {AdminDevice, AdminDeviceData, AdminDevicesQueryParams} from './models/AdminDevice';\n\n\nexport class APIAdminListDevices extends APIList {\n\n /**\n * /admin/devices\n */\n constructor(parent: APIAdminResource | API) {\n super(parent);\n this.push('admin', 'devices');\n }\n\n // /admin/devices/cleanup-configurations\n cleanupConfigurations() {\n return new APIListCleanupConfigurations(this);\n }\n\n // /admin/devices/cleanup-configurations/{id}\n cleanupConfiguration(id: number) {\n return new APIResourceCleanupConfiguration(this, id);\n }\n\n}\n\nexport default APIAdminListDevices;\n","import {Method} from 'axios';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {RunsConfigParams, TestRunConfig} from './models/TestRun';\n\nexport class APIAdminListRuns extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET'];\n\n /**\n * /admin/runs\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'runs');\n }\n\n // /runs/config\n config() {\n const apiResource = new APIResource(this);\n apiResource.restack('runs', 'config');\n return apiResource;\n }\n\n}\n\n\nexport default APIAdminListRuns\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {AdminServicesParams, Service} from './models/Service';\n\n\nexport class APIAdminListServices extends APIList {\n\n /**\n * /admin/services\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'services');\n }\n\n active() {\n const apiList = new APIList(this);\n apiList.params<'notArchived'>({\n notArchived: true\n });\n return apiList;\n }\n\n activated() {\n const apiList = this.active();\n apiList.params<'filter' | 'limit' | 'sort'>({\n filter: 'activated_eq_true',\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n inUse() {\n const apiList = new APIList(this);\n apiList.params<'inUse' | 'limit' | 'sort'>({\n inUse: true,\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n byPrice() {\n const apiList = new APIList(this);\n apiList.params<'sort'>({\n sort: 'centPrice_a'\n })\n return apiList;\n }\n\n}\n\nexport default APIAdminListServices;\n","import {AxiosResponse} from 'axios';\n\nexport function NonRequestable(constructor: T) {\n return class extends constructor {\n send(): Promise {\n return Promise.reject();\n }\n };\n}\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AdminFrameworkStatistics, AdminStatisticsParams} from './models/AdminFrameworkStatistics';\nimport {NoData} from './models/HTTP';\n\n\n@NonRequestable\nexport class APIAdminListStatistics extends APIList {\n\n /**\n * /admin/statistics\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'statistics');\n }\n\n // /admin/statistics/frameworks\n frameworks() {\n return new APIList(this).push('frameworks');\n }\n\n\n}\n\n\nexport default APIAdminListStatistics\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {\n Account, AccountData,\n AccountUsage,\n AccountUsageParams,\n AccountUsageSummary,\n AccountUsageSummaryParams\n} from './models/Account';\nimport {NoData, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\nimport {Role, RoleData, RoleParams} from './models/Role';\nimport {AccountService} from './models/AccountService';\nimport {AccountPreferences, AccountPreferencesData} from './models/AccountPreference';\n\n\nexport class APIAdminResourceAccount extends APIResource {\n\n /**\n * /admin/accounts/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'accounts', id);\n }\n\n // /admin/accounts/{id}/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /admin/accounts/{id}/roles/{id}\n role(id: number) {\n return new APIResource(this).push('roles', id);\n }\n\n // /admin/accounts/{id}/account-services\n accountServices() {\n return new APIList(this).push('account-services');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource(this).push('preferences');\n }\n\n // /admin/accounts/{id}/usage\n usage() {\n return new APIList, AccountUsageParams>(this).push('usage');\n }\n\n // /admin/accounts/{id}/usage-summary\n usageSummary() {\n return new APIResource(this).push('usage-summary');\n }\n\n}\n\nexport default APIAdminResourceAccount\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {AccountService} from './models/AccountService';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIAdminResourceAccountService extends APIResource {\n\n /**\n * /admin/account-services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'account-services', id);\n }\n\n // /account-services/{id}/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n // /account-services/{id}/deactivate\n deactivate() {\n return new APIResource(this).push('deactivate').post();\n }\n\n}\n\nexport default APIAdminResourceAccountService\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice} from './models/AdminDevice';\nimport {Cluster, ClusterData, ClusterParams} from './models/Cluster';\n\n\nexport class APIAdminResourceCluster extends APIResource {\n\n /**\n * /clusters/{id}\n */\n constructor(parent: API | APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('clusters', id);\n }\n\n // /clusters/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIAdminResourceCluster\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice, AdminDeviceData} from './models/AdminDevice';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\n\n /**\n * /admin/devices/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'devices', id);\n }\n\n // /admin/devices/{id}/cleanup-configuration\n cleanupConfiguration() {\n return new APIResource(this).push('cleanup-configuration');\n }\n\n // /admin/devices/{id}/labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /admin/devices/{id}/labels/{id}\n label(id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\nimport {AdminDeviceSession} from './models/AdminDeviceSession';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\n\n /**\n * /admin/device-models/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'device-models', id);\n }\n\n // /admin/device-models/{id}/browsers\n browsers() {\n return new APIList(this).push('browsers');\n }\n\n // /admin/device-models/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDeviceModel;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {NoData} from '../models/HTTP';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\n\n\n@NonRequestable\nexport class InputFileset extends APIResource {\n\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('input-file-set');\n }\n\n /**\n * @remarks Endpoint /input-file-set/files\n */\n files() {\n return new APIList(this).push('files');\n }\n\n /**\n * @remarks Endpoint /input-file-set/files.zip\n */\n filesZip() {\n return new APIResource(this).push('files.zip');\n }\n}\n\nexport default InputFileset\n","// Create image files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const IMAGE_FILES_FILTER = new FilterBuilder();\nIMAGE_FILES_FILTER.eq('state', 'READY');\nIMAGE_FILES_FILTER.in('mimetype', [\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif'\n]);\nIMAGE_FILES_FILTER.notlike('name', 'action-%%');\n","// Create non-media files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const NON_MEDIA_FILES_FILTER = new FilterBuilder();\nNON_MEDIA_FILES_FILTER.eq('state', 'READY');\nNON_MEDIA_FILES_FILTER.notin('mimetype', [\n // no images\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif',\n\n // no videos\n 'video/mp4', 'video/avi', 'video/webm', 'video/ogg', 'video/mpeg'\n]);\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {UserFile} from './models/UserFile';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {IMAGE_FILES_FILTER} from './class/Images.filter';\nimport {NON_MEDIA_FILES_FILTER} from './class/NonMedia.filter';\n\n\nexport class APIListOutputFiles extends APIList {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n performance(): this {\n return this.params({\n tag: ['performance']\n })\n }\n\n images(): this {\n return this.filter(IMAGE_FILES_FILTER);\n }\n\n // Filter files out by non-media\n nonMediaFiles(): this {\n return this.filter(NON_MEDIA_FILES_FILTER);\n }\n\n // Filter files out by ready videos\n videos(): this {\n return this.params({\n filter: 's_state_eq_READY',\n tag: ['video']\n });\n }\n}\n\nexport default APIListOutputFiles;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {Screenshot} from '../models/Screenshot';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\nimport APIListOutputFiles from '../APIListOutputFiles';\n\n\n@NonRequestable\nexport class OutputFileset extends APIResource {\n\n /**\n * /output-file-set\n *\n * Constructor\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('output-file-set');\n }\n\n // /output-file-set/files\n files() {\n return new APIListOutputFiles(this);\n }\n\n // /output-file-set/files/{id}\n file(id: number) {\n return new APIResource(this).push('files', id);\n }\n\n // /output-file-set/files.zip\n filesZip() {\n return new APIResource(this).push('files.zip');\n }\n\n // /output-file-set/screenshots\n screenshots() {\n return new APIList(this).push('screenshots');\n }\n\n // /output-file-set/screenshots/{id}\n screenshot(id: number) {\n return new APIResource(this).push('screenshots', id);\n }\n\n // /output-file-set/screenshots/{id}/file/{id}\n screenshotFile(id: number) {\n return this.screenshot(id).push('file');\n }\n}\n\nexport default OutputFileset\n","import {Screenshot} from './models/Screenshot';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\n\nexport class APIListScreenshots extends APIList {\n\n /**\n * screenshots\n */\n constructor(parent: APIResourceDeviceSessionCommon) {\n super(parent);\n this.push('screenshots');\n }\n}\n\nexport default APIListScreenshots\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {InputFileset} from './class/InputFileset'\nimport {OutputFileset} from './class/OutputFileset'\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\nimport {\n DeviceSession,\n DeviceSessionCommand,\n DeviceSessionStep,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport APIListScreenshots from './APIListScreenshots';\n\n\nexport class APIResourceDeviceSessionCommon extends APIResource implements DeviceSessionCommon {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/commands\n commands() {\n return new APIList(this).push('commands');\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource(this).push('release').post();\n }\n\n // /device-sessions/{id}/screenshots\n screenshots() {\n return new APIListScreenshots(this);\n }\n\n // /device-sessions/{id}/screenshots/{id}\n screenshot(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /device-sessions/{id}/steps\n steps() {\n return new APIList(this).push('steps');\n }\n\n // /device-sessions/{id}/steps/{id}\n step(id: number | 'current') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('steps', id);\n }\n\n // /device-sessions/{id}/steps/current\n currentStep() {\n return this.step('current');\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n logs() {\n return new APIResource(this).push('logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n clusterLogs() {\n return new APIResource(this).push('cluster-logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n}\n\nexport default APIResourceDeviceSessionCommon\n","import {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {postAdminDeviceSessionChangeBillable} from './factory/postAdminDeviceSessionChangeBillable';\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\n\n\n/**\n * APIAdminResourceDevice\n *\n *\n * It will require more work to decouple from regular session\n */\nexport class APIAdminResourceDeviceSessionStandalone extends APIResourceDeviceSessionCommon implements DeviceSessionCommon {\n\n // /admin/device-sessions/{id}/changebillable\n changeBillable(billable: boolean) {\n return postAdminDeviceSessionChangeBillable(this, billable);\n }\n}\n\nexport default APIAdminResourceDeviceSessionStandalone;\n","import {APIResource} from '../APIResource';\nimport APIResourceDeviceSessionCommon from '../APIResourceDeviceSessionCommon';\nimport {DeviceSession} from '../models/DeviceSession';\n\nexport function postAdminDeviceSessionChangeBillable(parent: APIResourceDeviceSessionCommon, billable: boolean) {\n const apiResource = new APIResource(parent);\n const deviceSessionId = apiResource.last;\n\n return apiResource.restack('admin', 'device-sessions', deviceSessionId, 'changebillable').params({\n billable\n }).post();\n}\n\nexport default postAdminDeviceSessionChangeBillable;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NoData} from './models/HTTP';\nimport {DeviceTimeParams, UserDeviceTime} from './models/UserDeviceTime';\n\nexport class APIAdminResourceDeviceTime extends APIList {\n\n /**\n * /admin/device-time\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'device-time');\n }\n}\n\nexport default APIAdminResourceDeviceTime\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Framework, FrameworkConfigData, FrameworkEditData} from './models/Framework';\nimport {NoQueryParams} from './models/HTTP';\nimport {ProjectJobConfig} from './models/ProjectJobConfig';\nimport {Role} from './models/Role';\n\nexport class APIAdminResourceFramework extends APIResource {\n\n /**\n * /admin/frameworks/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'frameworks', id);\n }\n\n // /admin/frameworks/{id}/config\n config() {\n return new APIResource(this).push('config');\n }\n\n // /admin/frameworks/{id}/required-roles\n requiredRoles() {\n return new APIList(this).push('required-roles');\n }\n\n}\n\nexport default APIAdminResourceFramework\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\n\nexport class APIAdminResourceLicense extends APIResource {\n\n /**\n * /licenses/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'licenses', id);\n }\n\n // /licenses/{id}/activate\n activate() {\n return new APIResource(this).push('activate');\n }\n\n // /licenses/{id}/deactivate\n deactivate() {\n return new APIResource(this).push('deactivate');\n }\n\n // /licenses/{id}/resend\n resend() {\n return new APIResource(this).push('resend');\n }\n\n // /licenses/{id}/download\n download() {\n return new APIResource(this).push('download');\n }\n\n}\n\nexport default APIAdminResourceLicense\n","import {APIEntity} from '../APIEntity';\nimport {APIResource} from '../APIResource';\nimport {BuildLogsData, BuildLogsParams} from '../models/UserFile';\n\nexport function postDeviceRunIds(parent: APIEntity, name: string, ids?: Array) {\n const a = new APIResource(parent).push(name);\n\n if (ids != null) {\n a.params<'deviceRunIds'>({\n deviceRunIds: ids\n });\n }\n\n return a.post();\n}\n\nexport default postDeviceRunIds;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun, RunChangeBillableParams, RunChangePriorityParams} from './models/AdminTestRun';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceRunStandalone extends APIResource {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/changebillable\n changeBillable(billable: boolean) {\n return new APIResource(this).push('changebillable').post().params({\n billable\n });\n }\n\n // /runs/{id}/changepriority\n changePriority(priority?: number) {\n const resource = new APIResource(this).push('changepriority');\n if (priority) {\n resource.post().data({\n priority\n });\n }\n return resource;\n }\n\n // /admin/runs/{id}/retry\n retry(ids?: Array) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n}\n\nexport default APIAdminResourceRunStandalone;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceActivateData} from './models/Service';\n\n\nexport class APIAdminResourceService extends APIResource {\n\n /**\n * /services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'services', id);\n }\n\n // /services/{id}/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n}\n\nexport default APIAdminResourceService\n","import {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccountService, AccountServiceData} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Role, RoleData} from './models/Role';\nimport {User, UserUpdateAccount} from './models/User';\n\n@NonRequestable\nexport class APIAdminResourceUserAccount extends APIResource {\n\n /**\n * /account\n */\n constructor(parent: APIAdminResourceUser) {\n super(parent);\n this.push('account');\n }\n\n // /account/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /account/roles/{id}\n role(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('roles', id);\n }\n\n // /account-services\n services() {\n const a = new APIList(this);\n a.last += '-services';\n return a;\n }\n\n // /update-account\n 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 {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {InputFileset} from './class/InputFileset';\nimport {OutputFileset} from './class/OutputFileset';\nimport {DeviceSessionStandalone} from './interface/DeviceSessionStandalone';\nimport {Connection, ConnectionData} from './models/Connection';\nimport {DeviceSession, DeviceSessionRelease} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {VisualTest} from './models/VisualTest';\n\nexport class APIResourceDeviceSessionStandalone extends APIResource implements DeviceSessionStandalone {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIResourceUser | APIAdminResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n // /device-sessions/{id}/connections/{id}\n connection(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('connections', id);\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource(this).push('release').post();\n }\n\n // /device-sessions/{id}/visual-tests/images\n visualTestsImages() {\n return new APIList(this).push('visual-tests', 'images');\n }\n\n}\n\nexport default APIResourceDeviceSessionStandalone\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIAdminResourceUserAccount} from './APIAdminResourceUserAccount';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\nimport {Role, RoleData, RoleParams} from './models/Role';\nimport {User} from './models/User';\n\n\n@NonRequestable\nexport class APIAdminResourceUser extends APIResource {\n\n /**\n * /admin/users/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'users', id);\n }\n\n // /admin/users/{id}/disable\n disable() {\n return new APIResource(this).push('disable');\n }\n\n // /admin/users/{id}/enable\n enable() {\n return new APIResource(this).push('enable');\n }\n\n // /admin/users/{id}/licenses\n licenses() {\n return new APIList(this).push('licenses');\n }\n\n // /admin/users/{id}/resend-activation\n resendActivation() {\n return new APIResource(this).push('resend-activation').post();\n }\n\n // /admin/users/{id}/account\n account() {\n return new APIAdminResourceUserAccount(this);\n }\n\n // /admin/users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /admin/users/{id}/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /admin/users/{id}/roles/{id}\n role(id: number) {\n return new APIResource(this).push('roles', id);\n }\n\n}\n\nexport default APIAdminResourceUser;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccessGroup, AccessGroupUsersQueryParams} from './models/AccessGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {SharedResource} from './models/SharedResource';\nimport {User, UserData} from './models/User';\n\nexport class APIResourceAccessGroup extends APIResource {\n\n /**\n * /access-groups/{id}\n *\n */\n constructor(parent: APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('access-groups', id);\n }\n\n // /access-groups/{id}/users\n users() {\n return new APIList(this).push('users');\n }\n\n // /access-groups/{id}/users/{id}\n user(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('users', id);\n }\n\n // /access-groups/{id}/resources\n resources() {\n return new APIList(this).push('resources');\n }\n\n // /access-groups/{id}/resources/{id}\n resource(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('resources', id);\n }\n\n}\n\nexport default APIResourceAccessGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport APIResourceUser from './APIResourceUser';\nimport {Device, DeviceProperty} from './models/Device';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupParams, DeviceGroupSelectorData} from './models/DeviceGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {ShareData, SharedResource} from './models/SharedResource';\n\nexport class APIResourceDeviceGroup extends APIResource {\n\n /**\n * /device-groups/{id}\n */\n constructor(parent: APIAdminResource | APIResourceUser | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-groups', id);\n }\n\n // /device-groups/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n // /device-groups/{id}/devices/{id}\n device(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('devices', id);\n }\n\n // /device-groups/{id}/selectors\n selectors() {\n return new APIList(this).push('selectors');\n }\n\n // /device-groups/{id}/selectors/{id}\n selector(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('selectors', id);\n }\n\n // /device-groups/{id}/share\n share() {\n return new APIList(this).push('share');\n }\n\n}\n\nexport default APIResourceDeviceGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport {Property} from './models/Property';\nimport {ShareData, SharedResource} from './models/SharedResource';\nimport {FileSizeData, UserFile, UserFileTag} from './models/UserFile';\n\n\nexport class APIResourceFile extends APIResource {\n\n /**\n * /files/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('files', id);\n }\n\n // use this to download file content\n // /files/{id}/file\n file() {\n return new APIResource(this).push('file');\n }\n\n // /files/{id}/icon\n icon() {\n return new APIResource(this).push('icon');\n }\n\n // /files/{id}/tags\n tags() {\n return new APIList(this).push('tags');\n }\n\n share() {\n return new APIList(this).push('share');\n }\n\n property(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('properties', id);\n }\n\n}\n\nexport default APIResourceFile\n","import {NoData} from './models/HTTP';\nimport {TestCaseRun} from './models/TestCaseRun';\nimport APIList, {APIListQuery} from './APIList';\nimport {SessionQueryParams} from './models/DeviceSession';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\n\nexport class APIListTestCaseRuns extends APIList {\n\n /**\n * /test-case-runs\n */\n constructor(parent: APIResourceDeviceSessionCommon) {\n super(parent);\n this.push('test-case-runs');\n }\n}\n\nexport default APIListTestCaseRuns\n","import {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession as DeviceSessionModel, SessionQueryParams} from './models/DeviceSession';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\nimport {APIListQuery} from './APIList';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n // /device-sessions/{id}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\n }\n}\n\nexport default APIResourceDeviceSession\n","import {DeviceSession} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceRunCommon from './APIResourceRunCommon';\n\n\nexport class APIListTestRunDeviceSessions extends APIList {\n\n /**\n * device-sessions\n */\n constructor(parent: APIResourceRunCommon) {\n super(parent);\n this.push('device-sessions');\n }\n}\n\nexport default APIListTestRunDeviceSessions\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {DeviceSessionStep} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {RunData, RunQueryParam, TestRun, TestRunData} from './models/TestRun';\nimport {TestRunDataAvailability, TestRunDataAvailabilityQueryParams} from './models/TestRunDataAvailability';\nimport {UserFile} from './models/UserFile';\nimport APIListTestRunDeviceSessions from './APIListTestRunDeviceSessions';\n\n\nexport class APIResourceRunCommon extends APIResource {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/build-logs.zip\n buildLogsZip(ids?: Array) {\n return postDeviceRunIds(this, 'build-logs.zip', ids);\n }\n\n // /runs/{id}/data-availability\n dataAvailability() {\n return new APIResource(this).push('data-availability');\n }\n\n // /runs/{id}/device-sessions\n deviceSessions() {\n return new APIListTestRunDeviceSessions(this);\n }\n\n // /runs/{id}/files.zip\n filesZip(ids?: Array) {\n return postDeviceRunIds(this, 'files.zip', ids);\n }\n\n // /runs/{id}/logs.zip\n logsZip(ids?: Array) {\n return postDeviceRunIds(this, 'logs.zip', ids);\n }\n\n // /runs/{id}/performance.zip\n performanceZip(ids?: Array) {\n return postDeviceRunIds(this, 'performance.zip', ids);\n }\n\n // /runs/{id}/retry\n retry(ids?: Array) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n // /runs/{id}/screenshots.zip\n screenshotsZip(ids?: Array) {\n return postDeviceRunIds(this, 'screenshots.zip', ids);\n }\n\n // /runs/{id}/steps\n steps() {\n return new APIList(this).push('steps');\n }\n\n}\n\nexport default APIResourceRunCommon\n","import {APIResourceDeviceSession} from './APIResourceDeviceSession'\nimport {APIResourceRunCommon} from './APIResourceRunCommon'\nimport {CollectionQueryParams} from './models/HTTP';\n\nexport class APIResourceRun extends APIResourceRunCommon {\n\n // /runs/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n}\n\nexport default APIResourceRun\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceRun} from './APIResourceRun'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Project} from './models/Project';\nimport {ShareData, SharedResource} from './models/SharedResource';\nimport {TestRun} from './models/TestRun';\n\nexport class APIResourceProject extends APIResource {\n\n /**\n * /projects/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('projects', id);\n }\n\n // /projects/{id}/runs\n runs() {\n return new APIList(this).push('runs');\n }\n\n // /projects/{id}/runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n share() {\n return new APIList(this).push('share');\n }\n\n // /unarchive\n unarchive() {\n return new APIResource(this).push('unarchive');\n }\n\n}\n\nexport default APIResourceProject\n","import {API} from '../API';\nimport {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIAdminListRuns} from './APIAdminListRuns';\nimport {APIAdminListServices} from './APIAdminListServices';\nimport {APIAdminListStatistics} from './APIAdminListStatistics';\nimport APIAdminResourceAccount from './APIAdminResourceAccount';\nimport {APIAdminResourceAccountService} from './APIAdminResourceAccountService';\nimport {APIAdminResourceCluster} from './APIAdminResourceCluster';\nimport {APIAdminResourceDevice} from './APIAdminResourceDevice';\nimport {APIAdminResourceDeviceModel} from './APIAdminResourceDeviceModel';\nimport {APIAdminResourceDeviceSessionStandalone} from './APIAdminResourceDeviceSessionStandalone';\nimport {APIAdminResourceDeviceTime} from './APIAdminResourceDeviceTime';\nimport {APIAdminResourceFramework} from './APIAdminResourceFramework';\nimport {APIAdminResourceLicense} from './APIAdminResourceLicense';\nimport {APIAdminResourceRunStandalone} from './APIAdminResourceRunStandalone';\nimport {APIAdminResourceService} from './APIAdminResourceService';\nimport {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceFile} from './APIResourceFile'\nimport {APIResourceProject} from './APIResourceProject';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccessGroup, AccessGroupData} from './models/AccessGroup';\nimport {Account} from './models/Account';\nimport {AccountService} from './models/AccountService';\nimport {Activity} from './models/Activity';\nimport {AdminDeviceSession, AdminInteractiveDeviceSession} from './models/AdminDeviceSession';\nimport {AdminDeviceType, DeviceTypeData} from './models/AdminDeviceType';\nimport {AdminEmail} from './models/AdminEmail';\nimport {Administrator} from './models/Administrator';\nimport {AdminOverview} from './models/AdminOverview';\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {Browser, BrowserData} from './models/Browser';\nimport {DeviceModelCriterion, DeviceModelCriterionData} from './models/DeviceModelCriterion';\nimport {DeviceModelPool, DeviceModelPoolData} from './models/DeviceModelPool';\nimport {Framework, FrameworkData} from './models/Framework';\nimport {License, LicenseData} from './models/License';\nimport {Maintenance, MaintenanceData} from './models/Maintenance';\nimport {Project} from './models/Project';\nimport {Role, RoleParams} from './models/Role';\nimport {Settings, SettingsParams} from './models/Settings';\nimport {User, UserData, UserParams} from './models/User';\nimport {DeviceTimeSummaryParams, UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {UserFile, UserFileData, UserFileParams} from './models/UserFile';\nimport {Cluster} from './models/Cluster';\nimport {DeviceProperty} from './models/Device';\nimport {DeviceGroup} from './models/DeviceGroup';\nimport {DeviceModel} from './models/DeviceModel';\nimport {DeviceProblem} from './models/DeviceProblem';\nimport {DeviceStatus} from './models/DeviceStatus';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n@NonRequestable\nexport class APIAdminResource extends APIResource {\n\n /**\n * /admin\n */\n constructor(parent: API) {\n super(parent);\n }\n\n // /access-groups\n accessGroups() {\n return new APIList(this).push('access-groups');\n }\n\n // /access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /admin/accounts\n accounts() {\n return new APIList(this).push('admin', 'accounts');\n }\n\n // /admin/accounts/{id}\n account(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIAdminResourceAccount(this, id);\n }\n\n // /admin/account-services\n accountServices() {\n return new APIList(this).push('admin', 'account-services');\n }\n\n // /admin/account-services/{id}\n accountService(id: number) {\n return new APIAdminResourceAccountService(this, id);\n }\n\n // activities\n activities() {\n return new APIList(this).push('admin', 'activities');\n }\n\n // admin/administrators\n administrators() {\n return new APIList(this).push('admin', 'administrators');\n }\n\n // /admin/billing-periods\n billingPeriods() {\n return new APIList(this).push('admin', 'billing-periods');\n }\n\n // /admin/billing-periods/{id}\n billingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'billing-periods', id);\n }\n\n // /admin/browsers\n browsers() {\n return new APIList(this).push('admin', 'browsers');\n }\n\n // /clusters\n clusters() {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /admin/devices\n devices() {\n return new APIAdminListDevices(this);\n }\n\n // /admin/devices/{id}\n device(id: number) {\n return new APIAdminResourceDevice(this, id);\n }\n\n devicesForModel(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n const apiList = this.devices();\n apiList.params({\n filter: 'deviceModelId_eq_' + id\n });\n return apiList;\n }\n\n // /admin/device/statuses\n deviceStatuses() {\n return new APIList(this).push('admin', 'device', 'statuses');\n }\n\n // /admin/device-models\n deviceModels() {\n return new APIList(this).push('admin', 'device-models');\n }\n\n // /admin/device-models/{id}\n deviceModel(id: number) {\n return new APIAdminResourceDeviceModel(this, id);\n }\n\n // /admin/device-problems\n deviceProblems() {\n return new APIList(this).push('admin', 'device-problems');\n }\n\n // /admin/device-model-criteria\n deviceModelCriterias() {\n return new APIList(this).push('admin', 'device-model-criteria');\n }\n\n // /admin/device-model-criteria/{id}\n deviceModelCriteria(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'device-model-criteria', id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('admin', 'device-sessions');\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIAdminResourceDeviceSessionStandalone(this, id);\n }\n\n // /device-time\n deviceTime() {\n return new APIAdminResourceDeviceTime(this);\n }\n\n // /device-time-summary\n deviceTimeSummary() {\n return new APIList(this).push('admin', 'device-time-summary');\n }\n\n // /device-types\n deviceTypes() {\n return new APIList(this).push('admin', 'device-types');\n }\n\n // /device-types/{id}\n deviceType(id: number) {\n return new APIResource(this).push('admin', 'device-types', id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /admin/emails\n emails() {\n return new APIList(this).push('admin', 'emails');\n }\n\n // /admin/emails/{id}/resend\n resendEmail(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'emails', id, 'resend').post();\n }\n\n // /files\n files() {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /admin/frameworks\n frameworks() {\n return new APIList(this).push('admin', 'frameworks');\n }\n\n // /admin/frameworks/{id}\n framework(id: number) {\n return new APIAdminResourceFramework(this, id);\n }\n\n // /admin/frameworks/available-labels\n frameworkAvailableLabels() {\n const apiList = this.frameworks();\n apiList.push('available-labels');\n return apiList;\n }\n\n // /admin/interactive-queue\n interactiveQueue() {\n return new APIList(this).push('admin', 'interactive-queue');\n }\n\n // /admin/licenses\n licenses() {\n return new APIList(this).push('admin', 'licenses');\n }\n\n // /admin/licenses/{id}\n license(id: number) {\n return new APIAdminResourceLicense(this, id);\n }\n\n // /admin/maintenance\n maintenance() {\n return new APIResource(this).push('admin', 'maintenance');\n }\n\n // /admin/overview\n overview() {\n return new APIResource(this).push('admin', 'overview');\n }\n\n pools() {\n return new APIList(this).push('admin', 'pools');\n }\n\n pool(id: number) {\n return new APIResource(this).push('admin', 'pools', id);\n }\n\n // /projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /admin/roles\n roles() {\n return new APIList(this).push('admin', 'roles');\n }\n\n // /admin/runs\n runs() {\n return new APIAdminListRuns(this);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIAdminResourceRunStandalone(this, id);\n }\n\n // /admin/samples\n samples() {\n return new APIList>(this).push('admin', 'samples');\n }\n\n // /admin/samples/{id}\n sample(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'samples', id);\n }\n\n // /admin/services\n services() {\n return new APIAdminListServices(this);\n }\n\n // /admin/services/{id}\n service(id: number) {\n return new APIAdminResourceService(this, id);\n }\n\n // /admin/settings\n settings() {\n return new APIResource(this).push('admin', 'settings');\n }\n\n // /admin/statistics\n statistics() {\n return new APIAdminListStatistics(this);\n }\n\n // /users\n users() {\n return new APIList(this).push('users');\n }\n\n // /admin/users\n createUser() {\n return new APIList(this).push('admin', 'users').post();\n }\n\n // /users/{id}\n user(id: number) {\n return new APIAdminResourceUser(this, id);\n }\n\n}\n\nexport default APIAdminResource;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {DesktopBrowserCapabilities} from './models/DesktopBrowserCapabilities';\nimport {Device, DevicesQueryParams} from './models/Device';\nimport {DevicePicker} from './models/DeviceFilter';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIListDevices extends APIList {\n\n /**\n * /devices\n */\n constructor(parent: API) {\n super(parent);\n this.push('devices');\n }\n\n // /devices/filters\n filters() {\n return new APIResource>(this).push('filters');\n }\n\n // /devices/desktop-browser-capabilities\n desktopBrowserCapabilities() {\n return new APIResource(this).push('desktop-browser-capabilities');\n }\n\n}\n\nexport default APIListDevices;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {CollectionQueryParams} from './models/HTTP';\nimport {Property, PropertyData} from './models/Property';\n\n\nexport class APIListProperties extends APIList {\n\n /**\n * /properties\n */\n constructor(parent: API) {\n super(parent);\n this.push('properties');\n }\n\n maintenance() {\n return new APIList(this).params({\n filter: 'name_eq_CLOUD_HEADER_ANNOUNCEMENT',\n limit: 1,\n sort: 'updateTime_d'\n });\n }\n\n}\n\nexport default APIListProperties\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceData} from './models/Service';\n\n\nexport class APIListServices extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['POST'];\n\n /**\n * /services\n */\n constructor(parent: API | APIResourceUser) {\n super(parent);\n this.push('services');\n }\n\n // /services/available\n available() {\n return new APIList(this).push('available');\n }\n\n active() {\n const apiList = new APIList(this);\n if (this.first === 'me') {\n apiList.push('active');\n } else {\n apiList.params({\n notArchived: true\n });\n }\n return apiList;\n }\n\n byPrice() {\n return new APIList(this).sort('centPrice');\n }\n\n availableByPrice() {\n return new APIList(this).push('available').sort('centPrice');\n }\n\n}\n\nexport default APIListServices\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {\n User,\n UserActivateData,\n UserData,\n UserPasswordData,\n UserRecoveryQueryParams,\n} from './models/User';\n\n\nexport class APIListUsers extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET', 'POST'];\n\n /**\n * /users\n */\n constructor(parent: API) {\n super(parent);\n this.push('users');\n }\n\n // /users/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n // /users/recoveries\n recoveries() {\n return new APIResource(this).push('recoveries');\n }\n\n // /users/passwordRecovery\n passwordRecovery() {\n return new APIResource(this).push('password-recovery');\n }\n\n}\n\nexport default APIListUsers;\n","import {APIResource} from './APIResource'\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {APIResourceAccount} from './APIResourceAccount';\n\n\n\n\nexport class APIResourceBillingPeriod extends APIResource {\n\n /**\n * /billing-periods/{id}\n */\n constructor(parent: APIResourceAccount, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('billing-periods', id);\n }\n\n // /billing-periods/{id}/receipt\n receipt() {\n return new APIResource(this).push('receipt').setRequestConfig({\n responseType: 'arraybuffer'\n });\n }\n\n}\n\nexport default APIResourceBillingPeriod\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceBillingPeriod} from './APIResourceBillingPeriod';\nimport {\n Account,\n AccountData,\n AccountSessionUsage,\n AccountSessionUsageSummary,\n AccountUserSessionUsage\n} from './models/Account';\nimport {AccountConcurrencyStatusMap} from './models/AccountConcurrencyStatusMap';\nimport {AccountPreferences} from './models/AccountPreference';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {AccountServicePayment} from './models/AccountServicePayment';\nimport {BillingPeriod, BillingPeriodQueryParams} from './models/BillingPeriod';\nimport {DeviceTimeSummaryQueryParams} from './models/Device';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams, QueryParams, SimpleCollectionResponse} from './models/HTTP';\nimport {User, UserData} from './models/User';\nimport {DeviceTimeQueryParams, UserDeviceTime} from './models/UserDeviceTime';\nimport {UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {VisualTestAccess} from './models/VisualTest';\n\n\nexport class APIResourceAccount extends APIResource {\n\n /**\n * /accounts/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('accounts', id);\n }\n\n // /accounts/{id}/concurrency-status\n concurrencyStatus() {\n return new APIResource(this).push('concurrency-status');\n }\n\n // /accounts/{id}/device-time\n deviceTime() {\n return new APIList(this).push('device-time');\n }\n\n // /accounts/{id}/device-time-summary\n deviceTimeSummary() {\n return new APIList(this).push('device-time-summary');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource>(this).push('preferences');\n }\n\n // /accounts/{id}/users\n users() {\n return new APIList(this).push('users');\n }\n\n // /accounts/{accountId}/users/{userId}\n removeUser(id: number) {\n return new APIResource(this).push('users', id);\n }\n\n // /accounts/{accountId}/users/{userId}/disable\n disableUser(id: number) {\n return new APIResource(this).push('users', id, 'disable').post();\n }\n\n // /accounts/{accountId}/users/{userId}/enable\n enableUser(id: number) {\n return new APIResource(this).push('users', id, 'enable').post();\n }\n\n // /accounts/{accountId}/users/{userId}/resend-activation\n resendActivation(id: number) {\n return new APIResource(this).push('users', id, 'resend-activation').post();\n }\n\n // /accounts/{accountId}/billing-periods\n billingPeriods() {\n return new APIList(this).push('billing-periods');\n }\n\n // /accounts/{accountId}/billing-periods/{id}\n billingPeriod(id: number) {\n return new APIResourceBillingPeriod(this, id);\n }\n\n // /account-services/{id}/billing-period\n serviceBillingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('account-services', id, 'billing-period');\n }\n\n // /accounts/{accountId}/visual-test/access\n visualTestAccess() {\n return new APIResource(this).push('visual-tests', 'access');\n }\n\n // /accounts/{accountId}/account-services\n accountServices() {\n return new APIList(this).push('account-services');\n }\n\n // /accounts/{accountId}/account-services/{id}\n accountService(id: number) {\n return new APIList(this).push('account-services', id);\n }\n\n // /accounts/{accountId}/services\n services() {\n return new APIResource(this).push('services');\n }\n\n // /accounts/{accountId}/user-usage-details\n userUsageDetails() {\n return new APIList(this).push('user-usage-details');\n }\n\n // /accounts/{accountId}/usage-details\n usageDetails() {\n return new APIList(this).push('usage-details');\n }\n\n // /accounts/{accountId}/usage-details-summary\n usageDetailsSummary() {\n return new APIResource(this).push('usage-details-summary');\n }\n\n}\n\nexport default APIResourceAccount;\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Broker} from './models/Broker';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIResourceBroker extends APIResource {\n\n /**\n * /broker\n */\n constructor(parent: API) {\n\n super(parent);\n this.push('broker');\n }\n\n // /broker/hubs\n hubs() {\n return new APIList(this).push('hubs');\n }\n\n}\n\nexport default APIResourceBroker\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser} from './models/Browser';\nimport {Device, DeviceProperiesData, DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams} from './models/HTTP';\n\n\nexport class APIResourceDevice extends APIResource {\n\n /**\n * /devices/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('devices', id);\n }\n\n // /devices/{id}/properties\n properties() {\n return new APIList(this).push('properties');\n }\n\n browsers() {\n return new APIList(this).push('browsers');\n }\n\n}\n\nexport default APIResourceDevice\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams, NoQueryParams} from './models/HTTP';\nimport {LabelData, LabelGroup} from './models/LabelGroup';\n\nexport class APIResourceLabelGroup extends APIResource {\n\n /**\n * /label-groups/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('label-groups', id);\n }\n\n // /label-groups/{id}/labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /label-groups/{id}/labels/{id}\n label(id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n}\n\nexport default APIResourceLabelGroup\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {FileData, UploadObj, UserFile} from './models/UserFile';\n\n\nexport class APIListFiles extends APIList {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n /**\n * Simplifies process of uploading\n * /files\n */\n upload(obj: UploadObj): this {\n // For NodeJS\n // @ts-ignore\n if (global.isNodeJs) {\n return this.nodeUpload(obj);\n } else {\n /**\n * Browser\n * @todo\n */\n throw new Error('Not supported yet!');\n }\n }\n\n private nodeUpload(file: UploadObj): this {\n const fs = require('fs');\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', fs.createReadStream(file.dir + '/' + file.filename), {\n filename: file.filename\n });\n return this.post().headers(form.getHeaders()).data(form);\n }\n\n}\n\nexport default APIListFiles\n","import {APIList} from './APIList'\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIResource} from './APIResource'\n\n\nexport class APIResourceChannel extends APIResource {\n\n /**\n * /users/{id}/notifications/channels/{type}\n */\n constructor(parent: APIListNotifications, type: string) {\n if (type == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('channels', type);\n }\n\n // /channels/{type}/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n}\n\nexport default APIResourceChannel;\n","import {APIList} from './APIList';\nimport {APIResourceChannel} from './APIResourceChannel';\nimport {APIResourceUser} from './APIResourceUser';\nimport {Enum} from './models/Enum';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Notification, NotificationsData} from './models/Notification';\n\n\nexport class APIListNotifications extends APIList {\n\n /**\n * /notifications\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('notifications');\n }\n\n // /notifications/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n // /notifications/channels\n channels() {\n return new APIList(this).push('channels');\n }\n\n channel(type: string) {\n return new APIResourceChannel(this, type);\n }\n\n}\n\nexport default APIListNotifications\n","import {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {\n RunsConfigParams,\n TestRun,\n TestRunConfig,\n TestRunsQueryParams\n} from './models/TestRun';\n\n\nexport class APIListRuns extends APIList {\n\n /**\n * /runs\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('runs');\n }\n\n // /runs/config\n config() {\n return new APIResource(this).push('config');\n }\n\n}\n\nexport default APIListRuns\n","import {Method} from 'axios';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData} from './models/HTTP';\nimport {SmartbearTunnel, TunnelQueryParams} from './models/SmartbearTunnel';\n\n\nexport class APIListSmartbearTunnels extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET'];\n\n /**\n * /tunnels\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('tunnels');\n }\n\n /**\n * Sets tunnel activity parameter\n */\n active(active: boolean): this {\n return this.params({active: active});\n }\n}\n\nexport default APIListSmartbearTunnels;\n","\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {Notification, NotificationData} from './models/Notification';\n\nexport class APIResourceNotification extends APIResource {\n\n /**\n * /notifications/{id}\n */\n constructor(parent: APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('notifications', id);\n }\n\n // /notifications/{id}/test\n test() {\n return new APIResource(this).push('test');\n }\n\n}\n\nexport default APIResourceNotification\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIListFiles} from './APIListFiles';\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIListRuns} from './APIListRuns';\nimport {APIListServices} from './APIListServices';\nimport {APIListSmartbearTunnels} from './APIListSmartbearTunnels';\nimport {APIResource} from './APIResource';\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {APIResourceFile} from './APIResourceFile';\nimport {APIResourceNotification} from './APIResourceNotification';\nimport {APIResourceProject} from './APIResourceProject';\nimport {AccessGroup, AccessGroupsData} from './models/AccessGroup';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupIdsData, DeviceGroupWithPublicParams} from './models/DeviceGroup';\nimport {DeviceStatistics} from './models/DeviceStatistics';\nimport {DeviceUsage} from './models/DeviceUsage';\nimport {Framework} from './models/Framework';\nimport {Project, UserProjectData, UserProjectQueryParams} from './models/Project';\nimport {MarkAccountOwnerData, User, UserDeleteData} from './models/User';\nimport {UiPreferencesData, UserPreference, UserPreferenceData} from './models/UserPreference';\nimport {StatisticQueryParams, UserStatistics} from './models/UserStatistics';\nimport {DeviceSession, DeviceSessionData, DeviceSessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams, QueryParams} from './models/HTTP';\nimport {DeviceStatisticQueryParam, DeviceUsageQueryParams} from './models/Device';\n\nexport class APIResourceUser extends APIResource {\n\n /**\n * /users/{id} | /me\n */\n constructor(parent: API, id: number | 'me') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n\n if (id === 'me') {\n this.push('me');\n } else if (typeof id === 'number') {\n this.push('users', id);\n } else {\n throw new TypeError('id is not a number');\n }\n }\n\n // /users/{id}/services\n services() {\n return new APIListServices(this);\n }\n\n // /users/{id}/device-groups\n deviceGroups() {\n return new APIList>(this).push('device-groups');\n }\n\n // /users/{id}/device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /users/{id}/device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /users/{id}/mark-account-owner\n markAccountOwner() {\n return new APIResource(this).push('mark-account-owner').post();\n }\n\n // /users/{id}/projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /users/{id}/projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /users/{id}/files\n files() {\n return new APIListFiles(this);\n }\n\n // /users/{id}/files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /users/{id}/runs\n runs() {\n return new APIListRuns(this);\n }\n\n // /users/{id}/available-frameworks\n availableFrameworks() {\n return new APIList(this).push('available-frameworks');\n }\n\n /**\n * /users/{id}/reset-api-key\n */\n resetApiKey() {\n return new APIResource(this).push('reset-api-key');\n }\n\n // /users/{id}/restore\n restore() {\n return new APIResource(this).push('restore');\n }\n\n // /users/{id}/feedback\n feedback() {\n return new APIResource(this).push('feedback');\n }\n\n // /users/{id}/notifications\n notifications() {\n return new APIListNotifications(this);\n }\n\n // /users/{id}/notifications/{id}\n notification(id: number) {\n return new APIResourceNotification(this, id);\n }\n\n // /users/{id}/preferences\n preferences() {\n return new APIResource(this).push('preferences');\n }\n\n // /users/{id}/ui-preferences\n uiPreferences() {\n return new APIResource(this).push('ui-preferences');\n }\n\n // /users/{id}/device-usage\n deviceUsage() {\n return new APIList(this).push('device-usage');\n }\n\n // /users/{id}/statistics\n statistics() {\n return new APIResource(this).push('statistics');\n }\n\n // /users/{id}/device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /users/{id}/access-groups\n accessGroups() {\n return new APIList(this).push('access-groups');\n }\n\n // /users/{id}/access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /users/{id}/tunnels/{id}\n smartbearTunnel(id: number) {\n return new APIResource(this).push('tunnels', id);\n }\n\n // /users/{id}/tunnels\n smartbearTunnels() {\n return new APIListSmartbearTunnels(this);\n }\n\n deleteAccount() {\n return new APIResource(this).push('delete');\n }\n}\n\nexport default APIResourceUser\n","import {API} from '../API';\nimport {APIResource} from './APIResource'\nimport {NoQueryParams} from './models/HTTP';\nimport {LoginData, User} from './models/User';\n\nexport class APIResourceUserSession extends APIResource {\n\n // /user-sessions\n constructor(parent: API) {\n super(parent);\n this.push('user-sessions');\n }\n\n // /user-sessions/login\n login(data: LoginData) {\n return new APIResource(this).push('login').post().data(data);\n }\n\n // /user-sessions/logout\n logout() {\n return new APIResource(this).push('logout').post();\n }\n\n // /user-sessions/oauth/authorize/{name}-login\n sso(name: string) {\n return new APIResource(this).push('oauth', 'authorize', name + '-login');\n }\n\n // /user-sessions/oauth/authorize/sbid-login\n sbidCallbackUrl() {\n return new APIResource(this).push('oauth', 'authorize', 'sbid-login').toUrl(true);\n }\n\n}\n\nexport default APIResourceUserSession\n","import {AxiosInstance} from 'axios';\n\n// this version of axios has some issue paired with rollup and is not handling default import correctly\n// as a workaround we need to use require instead of import until migrating to newer axios version.\n//\n// Axios has been updated to version 1.13.2. Due to issues related to how axios exports are handled between CommonJS and ES Module\n// as a workaround we need to use require instead of import in case we want to support both CJS and ESM.\n// For CommonJS output in the consumer project (f.ex cloud-frontend), the workaround may still be needed. For ESM, the default import should work.\nconst axios = require('axios').default;\n// @ts-ignore\nimport {version} from '../package.json';\nimport {APIAdminResource} from './api/APIAdminResource';\nimport {APIAdminResourceCluster} from './api/APIAdminResourceCluster';\nimport {APIList} from './api/APIList';\nimport {APIListDevices} from './api/APIListDevices';\nimport {APIListProperties} from './api/APIListProperties';\nimport {APIListServices} from './api/APIListServices';\nimport {APIListUsers} from './api/APIListUsers';\nimport {APIResource} from './api/APIResource';\nimport {APIResourceAccount} from './api/APIResourceAccount';\nimport {APIResourceBroker} from './api/APIResourceBroker';\nimport {APIResourceDevice} from './api/APIResourceDevice';\nimport {APIResourceDeviceGroup} from './api/APIResourceDeviceGroup';\nimport {APIResourceDeviceSession} from './api/APIResourceDeviceSession';\nimport {APIResourceFile} from './api/APIResourceFile';\nimport {APIResourceLabelGroup} from './api/APIResourceLabelGroup';\nimport {APIResourceProject} from './api/APIResourceProject';\nimport {APIResourceRun} from './api/APIResourceRun';\nimport {APIResourceUser} from './api/APIResourceUser';\nimport {APIResourceUserSession} from './api/APIResourceUserSession';\nimport {Cluster} from './api/models/Cluster';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './api/models/HTTP';\nimport {License} from './api/models/License';\nimport {Project} from './api/models/Project';\nimport {Property} from './api/models/Property';\nimport {UserFile, UserFileData, UserFileParams} from './api/models/UserFile';\nimport {ApiConfig} from './ApiConfig';\nimport './finka';\nimport {LabelGroup} from './api/models/LabelGroup';\n\n// @ts-ignore\nif (globalThis.isNodeJs) {\n // Set User-Agent\n axios.defaults.headers.common['User-Agent'] = `Bitbar Cloud API Client for JavaScript v${version}`;\n}\n\n// Disable max content length\naxios.defaults.maxContentLength = 1073741824; // 1GB\n\n/**\n * API\n * Root for other API resources\n */\nexport class API {\n axios: AxiosInstance;\n\n private axiosConfig: ApiConfig = {};\n\n get baseUrl(): string {\n return this.axiosConfig.baseURL;\n }\n\n\n constructor(private config: ApiConfig) {\n if (config == null) {\n throw new Error('config cannot be empty');\n } else if (this.config.cloudUrl == null) {\n throw new TypeError('cloudUrl cannot be empty');\n } else if (typeof this.config.cloudUrl !== 'string') {\n throw new TypeError('cloudUrl must be a string');\n } else if (!/^https?:\\/\\/.{2,}/.test(this.config.cloudUrl)) {\n throw new Error(`cloudUrl doesn't look like a URL`);\n }\n\n // Validate and correct cloudUrl if needed\n this.axiosConfig.baseURL = this.config.cloudUrl.replace(/\\/+$/, '') + '/api'\n\n // Check v2\n this.config.v2 = !!this.config.v2;\n if (this.config.v2) {\n this.axiosConfig.baseURL += '/v2';\n }\n\n // Check if apiKey is set\n if (this.config.apiKey) {\n if (typeof this.config.apiKey !== 'string') {\n throw new TypeError('apiKey must be a string');\n } else if (!/^[A-Za-z0-9]{32}$/.test(this.config.apiKey)) {\n throw new Error('apiKey is in the wrong format');\n }\n\n this.axiosConfig.auth = {\n username: this.config.apiKey,\n password: ''\n };\n }\n\n // With XSRFToken\n this.axiosConfig.withXSRFToken = true;\n // With credentials\n this.axiosConfig.withCredentials = config.withCredentials == null ? false : config.withCredentials;\n\n // Create axios instance\n this.axios = axios.create(this.axiosConfig);\n }\n\n\n // --- Resources starts here --- //\n\n // /account/{id}\n account(id: number) {\n return new APIResourceAccount(this, id);\n }\n\n // /admin\n admin() {\n return new APIAdminResource(this);\n }\n\n // /broker\n broker() {\n return new APIResourceBroker(this);\n }\n\n // /clusters\n clusters() {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /devices/{id}\n device(id: number) {\n return new APIResourceDevice(this, id);\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /devices\n devices() {\n return new APIListDevices(this);\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /enums\n enums() {\n return new APIResource(this).push('enums');\n }\n\n // /files\n files() {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /label-groups\n labelGroups() {\n return new APIList(this).push('label-groups');\n }\n\n // /label-groups/{id}\n labelGroup(id: number) {\n return new APIResourceLabelGroup(this, id);\n }\n\n // /labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /licenses\n licenses() {\n return new APIResource(this).push('licenses');\n }\n\n // /license\n license() {\n return new APIResource(this).push('license');\n }\n\n /*\n /me or /admin\n Requires prototype extension covering ACL check\n */\n ma(): APIAdminResource | APIResourceUser {\n throw new Error('Requires prototype extension covering ACL check');\n }\n\n // /me\n me() {\n return this.user('me');\n }\n\n // /projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /properties\n properties() {\n return new APIListProperties(this);\n }\n\n // /properties/{id}\n property(id: number) {\n return new APIResource(this).push('properties', id);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n // /services\n services() {\n return new APIListServices(this);\n }\n\n // /user/{id}\n user(id: number | 'me') {\n return new APIResourceUser(this, id);\n }\n\n // /users\n users() {\n return new APIListUsers(this);\n }\n\n // /user-sessions\n userSession() {\n return new APIResourceUserSession(this);\n }\n\n}\n\n\nexport default API;\n","/* istanbul ignore file */\n\nimport {API} from './API';\nimport {FilterBuilder} from './FilterBuilder';\n\nexport {API} from './API';\nexport {FilterBuilder} from './FilterBuilder';\n\n/**\n * Cloud API Client\n */\nexport const CloudAPIClient = {\n API,\n FilterBuilder\n}\n\nexport default CloudAPIClient;\n","import {CollectionQueryParams} from './HTTP';\n\nexport enum AccessGroupScope {\n USER = 'USER',\n ACCOUNT = 'ACCOUNT',\n GLOBAL = 'GLOBAL'\n}\n\nexport type AccessGroup = {\n id: number;\n name: string;\n scope: AccessGroupScope;\n userEmail: string;\n userId: number;\n}\n\nexport type AccessGroupUsersQueryParams = CollectionQueryParams & {\n email: string;\n}\n\nexport type AccessGroupData = Pick;\n\nexport type AccessGroupsData = Omit;\n","import {CollectionQueryParams} from './HTTP';\n\n\nexport type Account = {\n activeServiceName: string,\n comment: string,\n createTime: number,\n dedicatedDevicesConcurrency: number,\n dedicatedDevicesCount: number,\n dedicatedDevicesRatio: number,\n dedicatedDevicesUsage: number,\n id: number,\n invoiceDetails: Invoice,\n name: string,\n publicDevicesConcurrency: number,\n publicDevicesRatio: number,\n publicDevicesUsage: number,\n slmOrganizationId: string,\n userName: string\n}\n\nexport type Invoice = {\n address: string,\n city: string,\n code: string,\n country: string,\n state: string\n}\n\nexport type AccountData = Partial<{\n comment: string,\n invoiceDetails: Invoice,\n name: string,\n slmOrganizationId: string;\n userName: string\n}>\n\nexport type AccountUsageSummary = {\n sessionsCount: number,\n duration: number,\n deviceModelsCount: number,\n tunnelEnabledCount: number,\n osVersionsCount: number,\n projectsCount: number,\n usersCount: number,\n previous: AccountUsageSummary\n}\n\nexport type AccountUsage = {\n timestamp: number,\n timestampLabel: string,\n sessionsCount: number,\n automatedConcurrency: number,\n automatedUsage: number,\n dedicatedConcurrency: number,\n dedicatedUsage: number,\n manualConcurrency: number,\n manualUsage: number\n}\n\nexport type AccountUserSessionUsage = {\n devices: number,\n duration: number,\n osVersions: number,\n sessions: number,\n sessionShare: number\n userId: number,\n userName: string,\n}\n\nexport type AccountSessionUsage = {\n createTime: number,\n deviceModelName: string,\n duration: number,\n osVersion: string,\n type: SessionUsageType,\n userId: number,\n userName: string\n}\n\nexport type AccountSessionUsageSummary = {\n totalTime: number,\n usage: Record\n}\n\nexport enum SessionUsageType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL = 'MANUAL',\n DEDICATED_AUTOMATIC = 'DEDICATED_AUTOMATIC',\n DEDICATED_MANUAL = 'DEDICATED_MANUAL'\n}\n\nexport enum UtilizationType {\n ALL = 'all',\n PUBLIC = 'public',\n DEDICATED = 'dedicated'\n}\n\nexport enum SessionType {\n ALL = 'all',\n AUTOMATED = 'automated',\n MANUAL = 'manual'\n}\n\nexport enum TimeResolution {\n HOUR = 'hour',\n DAY = 'day'\n}\n\nexport type AccountUsageParams = CollectionQueryParams & {\n grouping?: TimeResolution,\n sessionType?: SessionType,\n utilizationType?: UtilizationType,\n}\n\nexport type AccountUsageSummaryParams = CollectionQueryParams & {\n grouping?: TimeResolution,\n}\n","import {ServiceUnit} from './Service';\n\nexport enum PaymentStatus {\n SUCCEEDED = 'SUCCEEDED',\n FAILED = 'FAILED',\n REDIRECTED = 'REDIRECTED'\n}\n\nexport enum PaymentMethod {\n PAYPAL = 'PAYPAL',\n BRAINTREE = 'BRAINTREE',\n STRIPE = 'STRIPE',\n INVOICE = 'INVOICE',\n PROMOTION = 'PROMOTION',\n AWS = 'AWS'\n}\n\nexport enum DeactivateReason {\n INITIAL_FAILURE = 'INITIAL_FAILURE',\n SCA_FAILURE = 'SCA_FAILURE',\n CHARGE_FAILURE = 'CHARGE_FAILURE',\n CANCEL = 'CANCEL',\n SUSPENDED = 'SUSPENDED',\n ANOTHER_PURCHASE = 'ANOTHER_PURCHASE'\n}\n\nexport type ServicePaymentStatus = {\n accountService: AccountService;\n message: string;\n redirectUrl: string;\n status: PaymentStatus;\n}\n\nexport type AccountService = {\n accountId: number;\n accountName: string;\n activatedById: number;\n activatedByName: string;\n active: boolean;\n braintreeId: string;\n createTime: number;\n deactivateReason: DeactivateReason;\n deactivatedById: number;\n deactivatedByName: string;\n endTime: number;\n finished: boolean;\n id: number;\n lastPaymentTime: number;\n paymentMethod: PaymentMethod;\n price: number;\n serviceCount: number;\n serviceId: number;\n serviceName: string;\n slmLicenseId: string;\n startTime: number;\n subscriptionManagementURL: string;\n unit: ServiceUnit;\n unitCount: number;\n vatRate: number;\n}\n\nexport type AccountServiceData = Pick & {count: number};\n","import {DevicesQueryParams, Platform, SoftwareVersion} from './Device';\nimport {OsType} from './Enum';\nimport {CollectionQueryParams} from './HTTP';\nimport {Cluster} from './Cluster';\n\n\nexport enum InitStep {\n SKIP = 'SKIP',\n REBOOT = 'REBOOT',\n REBOOT_WITH_UNLOCK = 'REBOOT_WITH_UNLOCK',\n UNLOCK_ONLY = 'UNLOCK_ONLY'\n}\n\nexport enum DeviceState {\n OFFLINE_CLEANING = 'OFFLINE_CLEANING',\n OFFLINE_DIRTY = 'OFFLINE_DIRTY',\n OFFLINE_FREE = 'OFFLINE_FREE',\n OFFLINE_TESTING = 'OFFLINE_TESTING',\n ONLINE_CLEANING = 'ONLINE_CLEANING',\n ONLINE_DIRTY = 'ONLINE_DIRTY',\n ONLINE_FREE = 'ONLINE_FREE',\n ONLINE_TESTING = 'ONLINE_TESTING'\n}\n\nexport type AdminDevice = {\n accountId: number | null;\n accountName: string | null;\n browsersMatched: boolean;\n cluster: Cluster;\n comment: string;\n dedicationEndTime: number | null;\n deviceModelId: number;\n deviceModelName: string;\n enabled: boolean;\n fingerprint: string;\n forceRestore: boolean;\n id: number;\n initStep: InitStep;\n ipAddress: string;\n lastOnlineTime: number;\n location: string;\n locked: boolean;\n manufacturer: string;\n name: string;\n osType: OsType;\n ownerHasAccountService: boolean;\n platform: Platform;\n serialId: string;\n softwareVersion: SoftwareVersion;\n state: DeviceState;\n stateChangeTime: number;\n stateTime: number;\n testTimeLimit: number;\n unlockGesture: string;\n}\n\nexport type AdminDevicesQueryParams = Pick & CollectionQueryParams;\n\nexport type AdminDeviceData = Pick & {\n apiLevel: number;\n releaseVersion: string;\n};\n","import {CollectionQueryParams} from './HTTP';\nimport {DeviceSessionState} from './DeviceSession';\nimport {OsType} from './Enum';\n\nexport enum FrameworkType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL_APP = 'MANUAL_APP',\n MANUAL_WEB = 'MANUAL_WEB',\n REMOTE = 'REMOTE'\n}\n\nexport type AdminFrameworkStatistics = {\n cloudName: string;\n count: number;\n day: number;\n deviceModelId: number;\n deviceModelName: string;\n frameworkId: number;\n frameworkName: string;\n id: number;\n osType: OsType;\n releaseVersion: string;\n state: DeviceSessionState;\n type: FrameworkType;\n userEmail: string;\n userId: number;\n}\n\nexport interface AdminStatisticsParams extends CollectionQueryParams {\n days: number;\n}\n","import {PaymentMethod} from './AccountService';\nimport {DeviceSessionType} from './DeviceSession';\nimport {OsType} from './Enum';\nimport {QueryParams} from './HTTP';\n\nexport enum BillingType {\n BUY = 'BUY',\n CHARGE = 'CHARGE',\n CANCEL = 'CANCEL'\n}\n\nexport type BillingPeriod = {\n accountId: number;\n accountName: string;\n accountServiceId: number;\n additionalHours: number;\n additionalHoursPrice: number;\n apiBillingPeriodType: BillingType;\n createTime: number;\n endBillingPeriod: number;\n id: number;\n lastPaymentDate: number;\n paid: boolean;\n paymentMethod: PaymentMethod;\n plan: string;\n servicePrice: number;\n startBillingPeriod: number;\n subscriptionEnd: number;\n subscriptionStart: number;\n totalPrice: number;\n usages: Array;\n}\n\nexport type BillingPeriodUsage = {\n duration: number;\n id: number;\n osType: OsType;\n type: DeviceSessionType;\n}\n\nexport interface BillingPeriodQueryParams extends QueryParams {\n onDate: number;\n}\n","export enum BrokerType {\n MOBILE = 'MOBILE',\n DESKTOP = 'DESKTOP'\n}\n\nexport type Broker = {\n id: number;\n location: string;\n type: BrokerType;\n url: string;\n}\n","\nimport {AdminDevice} from './AdminDevice';\nimport {CollectionResponse, QueryParams} from './HTTP';\n\nexport type Cluster = {\n devices: CollectionResponse;\n enabled: boolean;\n id: number;\n ipAddress: string;\n jenkinsUrl: string;\n jenkinsVersion: string;\n location: string;\n name: string;\n pluginVersion: string;\n region: string;\n state: ClusterState;\n stateChangeTime: number;\n stateTime: number;\n type: ClusterType;\n url: string;\n}\n\nexport enum ClusterState {\n 'OFFLINE',\n ONLINE = 'ONLINE',\n RESTARTING = 'RESTARTING',\n QUIET_DOWN = 'QUIET_DOWN',\n MAINTENANCE = 'MAINTENANCE'\n}\n\nexport enum ClusterType {\n BARE_METAL = 'BARE_METAL',\n EC2 = 'EC2',\n VM = 'VM'\n}\n\nexport interface ClusterParams extends QueryParams {\n withDevices: boolean;\n}\n\nexport type ClusterData = Pick & {\n quietDown: boolean;\n restart: boolean;\n turnMaintenance: boolean;\n}\n","import {Browser} from './Browser';\nimport {OsType} from './Enum';\nimport {CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, QueryParams} from './HTTP';\nimport {TestRunsQueryParams} from './TestRun';\n\n\nexport enum DeviceGroupOrigin {\n STATIC = 'STATIC',\n DYNAMIC = 'DYNAMIC',\n HYBRID = 'HYBRID'\n}\n\nexport enum Platform {\n IOS = 'IOS',\n ANDROID = 'ANDROID',\n WINDOWS = 'WINDOWS',\n MAC = 'MAC',\n LINUX = 'LINUX',\n UNDEFINED = 'UNDEFINED'\n}\n\nexport enum SupportedCreators {\n MANUAL = 'MANUAL',\n ROBOT = 'ROBOT',\n AUTOMATIC = 'AUTOMATIC'\n}\n\nexport enum PoolSize {\n XL= 'XL',\n L = 'L',\n M = 'M',\n S = 'S'\n}\n\nexport enum Code {\n HIGH = 'HIGH',\n MODERATE = 'MODERATE',\n LOW = 'LOW',\n NONE = 'NONE',\n}\n\nexport type DeviceAvailability = {\n poolSize: PoolSize,\n code: Code\n}\n\nexport type DeviceProperty = {\n displayName: string;\n id: number;\n labelGroupName: string;\n name: string;\n propertyGroupId: number;\n propertyGroupName: string;\n}\n\nexport type SoftwareVersion = {\n apiLevel: number;\n id: number;\n releaseVersion: string;\n}\n\nexport enum LockReason {\n TESTING = 'TESTING',\n CLEANING = 'CLEANING',\n NOT_OPERATIONAL = 'NOT_OPERATIONAL'\n}\n\nexport type Device = {\n accountId: number;\n accountName: string;\n available: boolean;\n availability: DeviceAvailability;\n browsers: CollectionResponse;\n creditsPrice: number;\n deviceGroupOrigin: DeviceGroupOrigin;\n displayName: string;\n enabled: boolean;\n frame100Url: string;\n frame160Url: string;\n frame400Url: string;\n frame80Url: string;\n frameExtraWidth: number;\n id: number;\n imageCornerRadius: number;\n imageHeight: number;\n imageLeft: number;\n imagePrefix: string;\n imageTop: number;\n imageWidth: number;\n locked: boolean;\n lockReason: LockReason;\n manufacturer: string;\n online: boolean;\n osType: OsType;\n platform: Platform;\n properties: CollectionResponse;\n softwareVersion: SoftwareVersion;\n supportedCreators: Array;\n}\n\nexport type DeviceCleanupConfiguration = {\n content: string;\n createTime: number;\n createdByEmail: string;\n createdById: number;\n description: string;\n name: string;\n enabled: boolean;\n global: boolean;\n example: true;\n id: number;\n lastModificationTime: number;\n osType: OsType;\n}\n\nexport type DeviceCleanupConfigurationData = {\n deviceCleanupConfigurationId: number;\n}\n\nexport type DeviceLabelData = {\n labelId: number;\n}\n\nexport interface DeviceProperiesData extends QueryParams {\n labelId: number;\n}\n\nexport interface CleanupConfigurationSpecificData extends QueryParams {\n serialId: string;\n}\n\nexport interface DeviceTimeSummaryQueryParams extends CollectionBasicQueryParams {\n forWholeAccount: boolean;\n}\nexport interface DeviceUsageQueryParams extends TestRunsQueryParams {\n startTime: number;\n}\n\nexport interface DeviceStatisticQueryParam extends TestRunsQueryParams {\n mode: string;\n}\n\nexport interface DevicesQueryParams extends CollectionQueryParams {\n labelIds: Array;\n liveTestingOnly: boolean;\n withBrowsers: boolean;\n withDedicated: boolean;\n withDisabled: boolean;\n withProperties: boolean;\n withSupportedCreators: boolean;\n}\n","export enum CriterionField {\n NAME = 'NAME',\n FINGERPRINT = 'FINGERPRINT',\n SERIAL_ID = 'SERIAL_ID',\n UNLOCK_GESTURE = 'UNLOCK_GESTURE',\n SOFTWARE_VERSION = 'SOFTWARE_VERSION',\n INIT_STEP = 'INIT_STEP',\n ACCOUNT = 'ACCOUNT',\n BROWSERS = 'BROWSERS'\n}\n\nexport type DeviceModelCriterion = {\n createTime: number;\n field: CriterionField;\n id: number;\n labelGroupDisplayName: string;\n labelGroupId: number;\n labelGroupName: string;\n}\n\nexport type DeviceModelCriterionData = Pick;\n","export enum RetentionStrategy {\n CLUSTER_ON_OFF = 'CLUSTER_ON_OFF',\n MIN_FREE_MAX_TOTAL = 'MIN_FREE_MAX_TOTAL',\n POOL_MANAGER_AWARE = 'POOL_MANAGER_AWARE'\n}\n\nexport type DeviceModelPool = {\n createTime: number;\n enabled: boolean;\n id: number;\n location: string;\n maxTotal: number;\n minAvailable: number;\n name: string;\n numberOfBrowsers: number;\n osVersion: string;\n retentionStrategy: RetentionStrategy;\n running: number;\n}\n\nexport type DeviceModelPoolData = Pick;\n","export enum ProblemType {\n CLEANING = 'CLEANING',\n DIRTY = 'DIRTY',\n OFFLINE = 'OFFLINE',\n LOW_BATTERY = 'LOW_BATTERY',\n HIGH_FAIL_RATE = 'HIGH_FAIL_RATE',\n NO_INTERNET_CONNECTION = 'NO_INTERNET_CONNECTION'\n}\n\nexport type DeviceProblem = {\n clusterId: number;\n clusterName: string;\n deviceId: number;\n deviceModelId: number;\n deviceModelName: string;\n deviceName: string;\n id: number;\n problems: Array;\n location: string;\n}\n\nexport type DeviceProblemPair = {\n id: number;\n type: ProblemType;\n value: any;\n}\n","import {Device} from './Device';\nimport {CollectionBasicQueryParams} from './HTTP';\n\nexport type TunnelSettings = {\n domain: string;\n email: string;\n}\n\nexport enum DeviceSessionType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL_APP = 'MANUAL_APP',\n MANUAL_WEB = 'MANUAL_WEB'\n}\n\nexport enum RetryState {\n NONE = 'NONE',\n MANUAL = 'MANUAL',\n AUTO = 'AUTO'\n}\n\nexport enum DeviceSessionState {\n ABORTED = 'ABORTED',\n EXCLUDED = 'EXCLUDED',\n FAILED = 'FAILED',\n FINISHING = 'FINISHING',\n RUNNING = 'RUNNING',\n SUCCEEDED = 'SUCCEEDED',\n TIMEOUT = 'TIMEOUT',\n WAITING = 'WAITING',\n WARNING = 'WARNING'\n}\n\nexport enum DeviceSessionStepType {\n WAITING = 'WAITING',\n PREPARING = 'PREPARING',\n UNINSTALL = 'UNINSTALL',\n INSTALL = 'INSTALL',\n RUNNING = 'RUNNING',\n SENDING_RESULTS = 'SENDING_RESULTS',\n PROCESSING_RESULTS = 'PROCESSING_RESULTS'\n}\n\nexport type DeviceSessionConfig = {\n adbVersion: string;\n browserName: string;\n browserVersion: string;\n deviceModelId: number;\n id: number;\n screenResolution: string;\n tunnelSettings: TunnelSettings;\n type: DeviceSessionConfig;\n url: string;\n}\n\nexport type DeviceSession = {\n abortTime: number;\n accountId: number;\n autoRetriesLeftCount: number;\n biometricInstrumentation: boolean;\n config: DeviceSessionConfig;\n createTime: number;\n clientSideId: string;\n device: Device;\n deviceInstanceId: number;\n deviceRunId: number;\n duration: number;\n endTime: number;\n excludeReason: string;\n externalId: string;\n id: number;\n installTime: number;\n name: string;\n projectId: number;\n projectName: string;\n retryable: boolean;\n retryState: RetryState;\n startTime: number;\n state: DeviceSessionState;\n successRatio: number;\n testCaseAllCount: number;\n testCaseFailedCount: number;\n testCasePassedCount: number;\n testCaseSkippedCount: number;\n testCaseSuccessCount: number;\n testRunId: number;\n testRunName: string;\n timeLimit: number;\n type: DeviceSessionType;\n uiLink: string;\n userEmail: string;\n userId: number;\n}\n\nexport type DeviceSessionCommand = {\n duration: number;\n httpMethod: string;\n id: number;\n requestBody: string;\n responseBody: string;\n responseCode: number;\n timestamp: number;\n uri: string;\n}\n\nexport type DeviceSessionStep = {\n deviceSessionId: number;\n excludeReason: string;\n failReason: string;\n finishTimeMS: number;\n id: number;\n startTimeMS: number;\n type: DeviceSessionStepType;\n}\n\nexport type DeviceSessionConnection = {\n createTime: number;\n deviceSessionId: number;\n endTime: number;\n externalId: string;\n host: string;\n id: number;\n password: string;\n path: string;\n port: number;\n type: string;\n urlSchema: string;\n}\n\nexport type DeviceSessionData = Omit & {configuration: DeviceSessionConfig};\n\nexport interface DeviceSessionQueryParams extends CollectionBasicQueryParams {\n withProperties: boolean;\n}\n\nexport interface SessionQueryParams extends CollectionBasicQueryParams {\n projectId: number;\n testRunId: number;\n}\n\nexport interface SessionRunStepQueryParams extends CollectionBasicQueryParams {\n runId: number;\n}\n\nexport interface SessionStepQueryParams extends SessionRunStepQueryParams {\n projectId: number;\n}\n\nexport enum SessionReleaseReason {\n INACTIVITY = 'INACTIVITY',\n TIMEOUT = 'TIMEOUT',\n USER_ACTION = 'USER_ACTION',\n CHANGE_DEVICE = 'CHANGE_DEVICE',\n WEBSOCKET_CLOSED = 'WEBSOCKET_CLOSED'\n}\n\nexport type DeviceSessionRelease = {\n reason: SessionReleaseReason;\n}\n","export enum OsType {\n IOS = 'IOS',\n ANDROID = 'ANDROID',\n DESKTOP = 'DESKTOP',\n UNDEFINED = 'UNDEFINED'\n}\n\nexport type Enum = {\n id: number;\n value: string;\n}\n","export enum LicenseStatus {\n ACTIVE = 'ACTIVE',\n EXPIRED = 'EXPIRED',\n INACTIVE = 'INACTIVE',\n CLOSED = 'CLOSED'\n}\n\nexport type BaseLicense = {\n enabled: boolean;\n};\n\nexport type FeatureLicense = {\n deviceLimit: number;\n deviceLimited: boolean;\n projectLimit: number;\n projectLimited: boolean;\n};\n\nexport type AndroidLicense = BaseLicense & FeatureLicense & {\n cts: CTSLicense;\n uiAutomator: UIAutomatorLicense;\n};\n\nexport type BuildLicense = BaseLicense & {\n limit: number;\n limited: boolean;\n};\n\nexport type DesktopLicense = BaseLicense & FeatureLicense;\n\nexport type GlobalLicense = FeatureLicense;\n\nexport type InspectorLicense = BaseLicense;\n\nexport type IOSLicense = BaseLicense & FeatureLicense;\n\nexport type RecorderLicense = BaseLicense & {\n limit: number;\n limited: boolean;\n};\n\nexport type ServerLicense = BaseLicense & {\n androidEnabled: boolean;\n iosEnabled: boolean;\n};\n\nexport type CTSLicense = BaseLicense;\n\nexport type UIAutomatorLicense = BaseLicense;\n\nexport type License = {\n activateTime: number;\n android: AndroidLicense;\n build: BuildLicense;\n closeTime: number;\n desktop: DesktopLicense;\n expireTime: number;\n global: GlobalLicense;\n id: number;\n inspector: InspectorLicense;\n ios: IOSLicense;\n privateInstance: boolean;\n recorder: RecorderLicense;\n server: ServerLicense;\n status: LicenseStatus;\n userEmail: string;\n userId: number;\n}\n\nexport type LicenseData = Pick & {\n androidDeviceLimit: number;\n androidEnabled: boolean;\n androidProjectLimit: number;\n buildEnabled: boolean;\n buildLimit: number;\n desktopDeviceLimit: number;\n desktopEnabled: boolean;\n desktopProjectLimit: number;\n globalDeviceLimit: number;\n globalProjectLimit: number;\n inspectorEnabled: boolean;\n iosDeviceLimit: number;\n iosEnabled: boolean;\n iosProjectLimit: number;\n privateInstance: boolean;\n unit: string;\n unitCount: number;\n}\n","import {QueryParams} from './HTTP';\n\n\nexport enum NotificationChannel {\n SLACK = 'SLACK',\n EMAIL = 'EMAIL',\n WEBHOOK = 'WEBHOOK'\n}\n\nexport enum NotificationScope {\n ALL = 'ALL',\n TEST_RUN = 'TEST_RUN',\n TEST_RUN_FAILURE = 'TEST_RUN_FAILURE',\n TEST_RUN_SUCCEEDED = 'TEST_RUN_SUCCEEDED',\n SYSTEM = 'SYSTEM',\n CHECK = 'CHECK',\n}\n\nexport type Notification = {\n channel: NotificationChannel;\n destination: string;\n id: number;\n projectId?: number;\n projectName?: string;\n scope: NotificationScope;\n userEmail: string;\n userId: number;\n}\n\nexport interface NotificationData extends QueryParams {\n scope: NotificationScope;\n}\n\nexport type NotificationsData = Pick;\n","import {OsType} from './Enum';\nimport {TestRunConfig, TestRunsQueryParams} from './TestRun';\n\nexport enum ArchivingStrategy {\n NEVER = 'NEVER',\n DAYS = 'DAYS',\n RUNS = 'RUNS'\n}\n\nexport type Project = {\n archiveTime: number;\n archivingItemCount: number;\n archivingStrategy: ArchivingStrategy;\n common: boolean;\n createTime: number;\n description: string;\n id: number;\n name: string;\n osType: OsType;\n readOnly: boolean;\n rowIndex: number;\n shared: boolean;\n sharedWithCaller: boolean;\n successRatio: number;\n testRunConfig: TestRunConfig;\n userEmail: string;\n userId: number;\n}\n\nexport type UserProjectData = Pick;\n\nexport interface UserProjectQueryParams extends TestRunsQueryParams {\n showStatistics: boolean;\n}\n","import {CollectionBasicQueryParams} from './HTTP';\n\nexport enum ScreenshotType {\n LANDSCAPE = 'LANDSCAPE',\n PORTRAIT = 'PORTRAIT'\n}\n\nexport type Screenshot = {\n fail: boolean;\n id: number;\n originalName: string;\n takeTimestamp: number;\n type: ScreenshotType;\n}\n\nexport interface ScreenshotQueryParams extends CollectionBasicQueryParams {\n name: string;\n}\n","import {PaymentMethod} from './AccountService';\nimport {CollectionQueryParams} from './HTTP';\nimport {Role} from './Role';\n\n\nexport type Service = {\n activateTime: number;\n activated: boolean;\n archiveTime: number;\n centPrice: number;\n commonId: string;\n customPlan: boolean;\n defaultConcurrences: Array;\n description: string;\n externalId: string;\n features: string;\n id: number;\n name: string;\n priceString: string;\n roles: Array;\n unit: ServiceUnit;\n}\n\nexport enum ServiceUnit {\n DAY = 'DAY',\n HOUR = 'HOUR',\n MONTH = 'MONTH',\n PROJECT = 'PROJECT',\n RUN = 'RUN',\n YEAR = 'YEAR'\n}\n\nexport interface AdminServicesParams extends CollectionQueryParams {\n activeOnly: boolean;\n inUse: boolean;\n notArchive: boolean;\n}\n\nexport type ServiceActivateData = {\n activateTime: number;\n}\n\nexport interface ServiceData {\n address?: string;\n cardNumber?: string;\n city?: string;\n count?: number;\n country?: string;\n cvv?: string;\n email?: string;\n expirationDate?: string;\n firstName?: string;\n lastName?: string;\n organization?: string;\n paymentMethod: PaymentMethod;\n phone?: string;\n serviceId: number;\n state?: string;\n stripeToken?: string;\n vatId?: string;\n zip?: string;\n}\n","import {QueryParams} from './HTTP';\n\n\nexport enum SharedResourceType {\n DEVICE_GROUP = 'DEVICE_GROUP',\n FILE = 'FILE',\n PROJECT = 'PROJECT',\n}\n\nexport type SharedResource = {\n id: number;\n name: string;\n resourceId: number;\n type: SharedResourceType;\n}\n\nexport interface ShareWithGroup extends QueryParams {\n accessGroupId: number;\n}\n\nexport interface ShareWithEmail extends QueryParams {\n email: string;\n}\n\nexport type ShareData = ShareWithGroup | ShareWithEmail;\n","import {Method} from 'axios';\nimport {CollectionResponse} from './HTTP';\n\n\nexport enum TestResult {\n PASSED = 'PASSED',\n FAILED = 'FAILED',\n SKIPPED = 'SKIPPED',\n NOT_AVAILABLE = 'NOT_AVAILABLE'\n}\n\nexport type TestCaseRun = {\n className: string;\n createTime: number;\n duration: number;\n errorMessage: string;\n id: number;\n methodName: string;\n result: TestResult;\n stacktrace: string;\n steps: CollectionResponse;\n suiteName: string;\n}\n\nexport type TestCaseRunStep = {\n description: string;\n duration: number;\n httpMethod: Uppercase;\n id: number;\n requestBody: string;\n responseBody: string;\n responseCode: number;\n timestamp: number;\n uri: string;\n}\n","import {Device} from './Device';\nimport {TunnelSettings} from './DeviceSession';\nimport {OsType} from './Enum';\nimport {CollectionBasicQueryParams, QueryParams} from './HTTP';\nimport {UserFile} from './UserFile';\nimport {DeviceGroup} from './DeviceGroup';\nimport {Framework} from './Framework';\n\n\nexport enum LimitationType {\n PACKAGE = 'PACKAGE',\n CLASS = 'CLASS'\n}\n\nexport enum TestScheduler {\n PARALLEL = 'PARALLEL',\n SERIAL = 'SERIAL',\n SINGLE = 'SINGLE',\n ALL_INSTANCES = 'ALL_INSTANCES'\n}\n\nexport enum TestState {\n WAITING = 'WAITING',\n RUNNING = 'RUNNING',\n FINISHED = 'FINISHED'\n}\n\n\nexport type TestRun = {\n abortedDeviceCount: number;\n config: TestRunConfig;\n createTime: number;\n deviceCount: number;\n displayName: string;\n errorsDeviceCount: number;\n excludedDeviceCount: number;\n executedTestCaseCount: number;\n executionRatio: number;\n failedTestCaseCount: number;\n finishedDeviceCount: number;\n frameworkId: number;\n frameworkName: string;\n id: number;\n logsFileId: number;\n message: string;\n 'number': number;\n projectId: number;\n projectName: string;\n retryable: boolean;\n rowIndex: number;\n runningDeviceCount: number;\n screenshotsFileId: number;\n startTime: number;\n startedByDisplayName: string;\n startedById: number;\n state: TestState;\n succeededDeviceCount: number;\n successRatio: number;\n successfulTestCaseCount: number;\n testCaseCount: number;\n timeoutedDeviceCount: number;\n uiLink: string;\n userId: number;\n waitingDeviceCount: number;\n warningDeviceCount: number;\n}\n\nexport enum TestRunConfigFileAction {\n COPY_TO_DEVICE = 'COPY_TO_DEVICE',\n INSTALL = 'INSTALL',\n RUN_TEST = 'RUN_TEST',\n}\n\nexport type TestRunConfigFile = {\n action: TestRunConfigFileAction;\n availableActions: Array;\n file: UserFile;\n id: number;\n};\n\nexport type TestRunParameter = {\n name?: string;\n key: string;\n value: string;\n label?: string;\n}\n\nexport type TRCDefaultSettings = {\n deviceLanguageCode: string;\n disableResigning: boolean;\n hookURL: string;\n instrumentationRunner: string;\n limitationType: string;\n limitationValue: string;\n scheduler: string;\n screenshotDir: string;\n withAnnotation: string;\n withoutAnnotation: string;\n timeout: string;\n projectName: string;\n testRunName: string;\n testRunParameters?: TestRunParameter[];\n biometricInstrumentation: boolean;\n}\n\nexport type TestRunConfig = TRCDefaultSettings & {\n appCrawlerRun: boolean;\n appiumBrokerAddress: string;\n appiumBrokerQueueName: string;\n applicationPassword: string;\n applicationUsername: string;\n availableDeviceGroups: DeviceGroup[];\n availableDevices: Array;\n availableFrameworks: Framework[];\n availableOsTypes: Array;\n clientSideTestConfig: any;\n computedDevices: Array;\n creditsPrice: number;\n deviceGroupId?: number;\n deviceIds: any;\n deviceNamePattern: string;\n files: Array | null;\n frameworkId: number;\n id: number;\n loadedPrevious: boolean;\n maxAutoRetriesCount: number;\n maxTestTimeout: any;\n maxWaitTime: number;\n osType: OsType;\n projectId: number;\n resignFiles: boolean;\n runAvailable: boolean;\n status: string;\n statusCode: number;\n testRunId: number;\n testRunNameGrouping: string;\n tunnelSettings: TunnelSettings;\n useSamples: boolean;\n usedDeviceGroupId: number;\n usedDeviceGroupName: string;\n videoRecordingEnabled: boolean;\n withAnnotation: string;\n}\n\nexport interface TestRunData extends QueryParams {\n displayName: string;\n}\n\nexport interface RunData extends TestRunData {\n projectId: number;\n}\n\nexport interface RunQueryParam extends QueryParams {\n projectId: number;\n}\n\n\nexport type TestRunsIncludes = {\n includeDeviceGroups: boolean;\n includeDevices: boolean;\n includeFrameworks: boolean;\n}\n\nexport type RunsConfigParams = TestRunsIncludes & QueryParams;\n\n// for users/{userid}/runs\nexport interface TestRunsQueryParams extends CollectionBasicQueryParams {\n forWholeAccount: boolean;\n skipCommonProject: boolean;\n skipShared: boolean;\n}\n","import {CollectionQueryParams, QueryParams} from './HTTP';\nimport {Role} from './Role';\n\n\nexport enum UserStatus {\n INACTIVE = 'INACTIVE',\n DISABLED = 'DISABLED',\n ENABLED = 'ENABLED'\n}\n\nexport type User = {\n accountId: number;\n accountName: string;\n userAccountName: string;\n accountServiceIds: Array;\n address: string;\n apiKey: string;\n city: string;\n code: string;\n country: string;\n createTime: number;\n createdByEmail: string;\n createdById: number;\n deleteTime: number;\n email: string;\n enabled: boolean;\n firstName: string;\n id: number;\n isAccountOwner: boolean;\n lastLaunchedTestTime: number;\n lastLoginTime: number;\n lastName: string;\n organization: string;\n phone: string;\n registrationIP: string;\n roles: Array;\n serviceIds: Array;\n state: string;\n status: UserStatus;\n timeZone: string;\n}\n\nexport type UserData = Pick;\n\nexport interface UserParams extends CollectionQueryParams {\n WITH_ADDRESS: boolean;\n WITH_USER_INFO: boolean;\n onlyMainUsers: boolean;\n onlyWithDisabledServices: boolean;\n withRole: string;\n withRoles: boolean;\n}\n\nexport type UserUpdateAccount = Pick;\n\nexport type UserDeleteData = {\n password: string;\n}\n\nexport interface LoginData {\n username: string;\n password: string;\n}\n\n\nexport type UserPasswordData = {\n key: string;\n password: string;\n};\nexport type UserActivateData = {\n zip: string;\n} & UserPasswordData\n & Pick;\n\nexport interface UserRecoveryQueryParams extends QueryParams {\n recoveryKey: string;\n}\n\nexport type MarkAccountOwnerData = {\n value: boolean;\n}\n","import {CollectionQueryParams, QueryParams} from './HTTP';\n\n\nexport enum FileDirection {\n INPUT = 'INPUT',\n OUTPUT = 'OUTPUT'\n}\n\nexport enum FileInputType {\n APPLICATION = 'APPLICATION',\n TEST = 'TEST',\n DATA = 'DATA'\n}\n\nexport enum FileState {\n PREPARING = 'PREPARING',\n READY = 'READY'\n}\n\nexport type FileProperty = {\n id: number;\n key: string;\n value: string;\n};\n\nexport type UserFileTag = {\n id: number;\n name: string;\n}\n\nexport type UserFile = {\n createTime: number;\n directUrl: string;\n direction: FileDirection;\n duplicate: boolean;\n fileProperties: Array;\n iconDirectUrl: string;\n id: number;\n inputType: FileInputType;\n mimetype: string;\n name: string;\n shared: boolean;\n size: number;\n state: FileState;\n userEmail: string;\n userId: number;\n};\n\nexport interface UserFileParams extends CollectionQueryParams {\n tag: Array;\n}\n\nexport type UserFileData = {\n file: FormData;\n global: boolean;\n}\n\nexport type BuildLogsData = {\n deviceRunIds: Array;\n projectId: number;\n userId: number;\n}\n\nexport type BuildLogsParams = BuildLogsData;\n\nexport interface FileSizeData extends QueryParams {\n height: number;\n width: number;\n}\n\nexport type UploadObj = {\n dir: string;\n filename: string;\n}\n\nexport interface FileData {\n file: Blob;\n global: boolean;\n}\n","export enum VisualTestImageType {\n FULL_PAGE = 'FULL_PAGE',\n VIEWPORT = 'VIEWPORT',\n ELEMENT_SCREENSHOT = 'ELEMENT_SCREENSHOT'\n}\n\nexport type VisualTestAccess = {\n enabled: boolean;\n apiKey: string | null;\n}\n\nexport type VisualTest = {\n comparisonStatus:\tstring;\n appUrl:\tstring;\n createdAt:\tstring;\n id: number;\n imageName:\tstring;\n imageThumbnailUrl:\tstring;\n imageType:\tVisualTestImageType;\n imageUrl:\tstring;\n sessionId:\tstring;\n testUrl:\tstring;\n}\n"],"names":["Filter","constructor","name","value","operand","this","finka","FilterBuilder","filters","gt","add","lt","after","afterorequal","before","beforeorequal","on","eq","contains","like","notlike","isnull","undefined","isnotnull","notin","raw","filter","Array","wrap","isFilterPart","SyntaxError","push","str","test","toString","parts","part","val","length","join","checkNull","_value","i","v","Date","getTime","isNull","item","endsWith","ALLOWED_HTTP_METHODS","APIOrder","APIEntity","parent","stack","requestConfig","root","isArray","setRequestConfig","abortController","AbortController","abortRequest","abort","items","concat","shift","restack","first","last","toUrl","absolute","url","baseUrl","Object","deepAssign","removeRequestConfig","key","headers","_headers","replace","letter","toUpperCase","method","NAME","toLocaleUpperCase","indexOf","Error","get","post","params","getParams","removeParam","data","jsonData","formData","send","signal","startsWith","paramsSerializer","indexes","axios","request","stringify","arrayFormat","APIList","all","noLimit","cut","between","create","sort","order","asc","limit","Number","isNatural","getLimit","offset","from","to","only","idx","page","search","query","APIResource","APIListCleanupConfigurations","super","specific","APIResourceCleanupConfiguration","id","devices","APIAdminListDevices","cleanupConfigurations","cleanupConfiguration","APIAdminListRuns","config","apiResource","APIAdminListServices","active","apiList","notArchived","activated","inUse","byPrice","NonRequestable","Promise","reject","APIAdminListStatistics","frameworks","__decorate","APIAdminResourceAccount","roles","role","accountServices","preferences","usage","usageSummary","APIAdminResourceAccountService","activate","deactivate","APIAdminResourceCluster","APIAdminResourceDevice","labels","label","APIAdminResourceDeviceModel","browsers","queue","InputFileset","files","filesZip","IMAGE_FILES_FILTER","in","NON_MEDIA_FILES_FILTER","APIListOutputFiles","performance","tag","images","nonMediaFiles","videos","OutputFileset","file","screenshots","screenshot","screenshotFile","APIListScreenshots","APIResourceDeviceSessionCommon","commands","input","output","release","steps","step","currentStep","connections","logs","responseType","clusterLogs","APIAdminResourceDeviceSessionStandalone","changeBillable","billable","deviceSessionId","postAdminDeviceSessionChangeBillable","APIAdminResourceDeviceTime","APIAdminResourceFramework","requiredRoles","APIAdminResourceLicense","resend","download","postDeviceRunIds","ids","a","deviceRunIds","APIAdminResourceRunStandalone","changePriority","priority","resource","retry","timeout","APIAdminResourceService","APIAdminResourceUserAccount","services","update","APIResourceDeviceSessionStandalone","connection","visualTestsImages","APIAdminResourceUser","disable","enable","licenses","resendActivation","account","deviceSession","APIResourceAccessGroup","users","user","resources","APIResourceDeviceGroup","device","selectors","selector","share","APIResourceFile","icon","tags","property","APIListTestCaseRuns","APIResourceDeviceSession","testCaseRuns","APIListTestRunDeviceSessions","APIResourceRunCommon","buildLogsZip","dataAvailability","deviceSessions","logsZip","performanceZip","screenshotsZip","APIResourceRun","APIResourceProject","runs","run","unarchive","APIAdminResource","accessGroups","accessGroup","accounts","accountService","activities","administrators","billingPeriods","billingPeriod","clusters","cluster","devicesForModel","deviceStatuses","deviceModels","deviceModel","deviceProblems","deviceModelCriterias","deviceModelCriteria","deviceTime","deviceTimeSummary","deviceTypes","deviceType","deviceGroups","deviceGroup","emails","resendEmail","framework","frameworkAvailableLabels","interactiveQueue","license","maintenance","overview","pools","pool","projects","project","samples","sample","service","settings","statistics","createUser","APIListDevices","desktopBrowserCapabilities","APIListProperties","APIListServices","available","availableByPrice","APIListUsers","recoveries","passwordRecovery","APIResourceBillingPeriod","receipt","APIResourceAccount","concurrencyStatus","removeUser","disableUser","enableUser","serviceBillingPeriod","visualTestAccess","userUsageDetails","usageDetails","usageDetailsSummary","APIResourceBroker","hubs","APIResourceDevice","properties","APIResourceLabelGroup","APIListFiles","upload","obj","global","isNodeJs","nodeUpload","fs","require","form","append","createReadStream","dir","filename","getHeaders","APIResourceChannel","type","scopes","APIListNotifications","channels","channel","APIListRuns","APIListSmartbearTunnels","APIResourceNotification","APIResourceUser","TypeError","markAccountOwner","availableFrameworks","resetApiKey","restore","feedback","notifications","notification","uiPreferences","deviceUsage","deviceStatistics","smartbearTunnel","smartbearTunnels","deleteAccount","APIResourceUserSession","login","logout","sso","sbidCallbackUrl","default","globalThis","defaults","common","maxContentLength","API","axiosConfig","baseURL","cloudUrl","v2","apiKey","auth","username","password","withXSRFToken","withCredentials","admin","broker","enums","labelGroups","labelGroup","ma","me","userSession","CloudAPIClient","AccessGroupScope","SessionUsageType","UtilizationType","SessionType","TimeResolution","PaymentStatus","PaymentMethod","DeactivateReason","InitStep","DeviceState","FrameworkType","BillingType","BrokerType","ClusterState","ClusterType","DeviceGroupOrigin","Platform","SupportedCreators","PoolSize","Code","LockReason","CriterionField","RetentionStrategy","ProblemType","DeviceSessionType","RetryState","DeviceSessionState","DeviceSessionStepType","SessionReleaseReason","OsType","LicenseStatus","NotificationChannel","NotificationScope","ArchivingStrategy","ScreenshotType","ServiceUnit","SharedResourceType","TestResult","LimitationType","TestScheduler","TestState","TestRunConfigFileAction","UserStatus","FileDirection","FileInputType","FileState","VisualTestImageType"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bitbar-cloud-api-client.min.js","sources":["../src/Filter.ts","../src/finka.ts","../src/FilterBuilder.ts","../src/api/models/HTTP.ts","../src/api/APIEntity.ts","../src/api/APIList.ts","../src/api/APIResource.ts","../src/api/APIListCleanupConfigurations.ts","../src/api/APIResourceCleanupConfiguration.ts","../src/api/APIAdminListDevices.ts","../src/api/APIAdminListRuns.ts","../src/api/APIAdminListServices.ts","../src/api/decorators/NonRequestable.ts","../src/api/APIAdminListStatistics.ts","../src/api/APIAdminResourceAccount.ts","../src/api/APIAdminResourceAccountService.ts","../src/api/APIAdminResourceCluster.ts","../src/api/APIAdminResourceDevice.ts","../src/api/APIAdminResourceDeviceModel.ts","../src/api/class/InputFileset.ts","../src/api/class/Images.filter.ts","../src/api/class/NonMedia.filter.ts","../src/api/APIListOutputFiles.ts","../src/api/class/OutputFileset.ts","../src/api/APIListScreenshots.ts","../src/api/APIResourceDeviceSessionCommon.ts","../src/api/APIAdminResourceDeviceSessionStandalone.ts","../src/api/factory/postAdminDeviceSessionChangeBillable.ts","../src/api/APIAdminResourceDeviceTime.ts","../src/api/APIAdminResourceFramework.ts","../src/api/APIAdminResourceLicense.ts","../src/api/factory/postDeviceRunIds.ts","../src/api/APIAdminResourceRunStandalone.ts","../src/api/APIAdminResourceService.ts","../src/api/APIAdminResourceUserAccount.ts","../src/api/APIResourceDeviceSessionStandalone.ts","../src/api/APIAdminResourceUser.ts","../src/api/APIResourceAccessGroup.ts","../src/api/APIResourceDeviceGroup.ts","../src/api/APIResourceFile.ts","../src/api/APIListTestCaseRuns.ts","../src/api/APIResourceDeviceSession.ts","../src/api/APIListTestRunDeviceSessions.ts","../src/api/APIResourceRunCommon.ts","../src/api/APIResourceRun.ts","../src/api/APIResourceProject.ts","../src/api/APIAdminResource.ts","../src/api/APIListDevices.ts","../src/api/APIListProperties.ts","../src/api/APIListServices.ts","../src/api/APIListUsers.ts","../src/api/APIResourceBillingPeriod.ts","../src/api/APIResourceAccount.ts","../src/api/APIResourceBroker.ts","../src/api/APIResourceDevice.ts","../src/api/APIResourceLabelGroup.ts","../src/api/APIListFiles.ts","../src/api/APIResourceChannel.ts","../src/api/APIListNotifications.ts","../src/api/APIListRuns.ts","../src/api/APIListSmartbearTunnels.ts","../src/api/APIResourceNotification.ts","../src/api/APIResourceUser.ts","../src/api/APIResourceUserSession.ts","../src/API.ts","../src/CloudAPIClient.ts","../src/api/models/AccessGroup.ts","../src/api/models/Account.ts","../src/api/models/AccountService.ts","../src/api/models/AdminDevice.ts","../src/api/models/AdminFrameworkStatistics.ts","../src/api/models/BillingPeriod.ts","../src/api/models/Broker.ts","../src/api/models/Cluster.ts","../src/api/models/Device.ts","../src/api/models/DeviceModelCriterion.ts","../src/api/models/DeviceModelPool.ts","../src/api/models/DeviceProblem.ts","../src/api/models/DeviceSession.ts","../src/api/models/Enum.ts","../src/api/models/License.ts","../src/api/models/Notification.ts","../src/api/models/Project.ts","../src/api/models/Screenshot.ts","../src/api/models/Service.ts","../src/api/models/SharedResource.ts","../src/api/models/TestCaseRun.ts","../src/api/models/TestRun.ts","../src/api/models/User.ts","../src/api/models/UserFile.ts","../src/api/models/VisualTest.ts"],"sourcesContent":["/**\n * Filter\n */\n\nexport class Filter {\n name: string;\n value: T;\n operand: string;\n\n constructor(name: string, value: T, operand: string) {\n this.name = name;\n this.value = value;\n this.operand = operand;\n }\n}\n\nexport default Filter;\n","import finka from '@bitbar/finka';\n\nfinka();\n\nexport default {};\n","import {Filter} from './Filter';\nimport './finka';\n\n/**\n * FilterBuilder\n *\n * Builds filter string according to Bitbar Cloud backend convention\n */\nexport class FilterBuilder {\n\n private readonly filters: Array = [];\n\n gt(name: string, value: number): this {\n return this.add(name, value, 'gt');\n }\n\n\n lt(name: string, value: number): this {\n return this.add(name, value, 'lt');\n }\n\n after(name: string, value: Date | number): this {\n return this.add(name, value, 'after', true);\n }\n\n afterorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'afterorequal', true);\n }\n\n before(name: string, value: Date | number): this {\n return this.add(name, value, 'before', true);\n }\n\n beforeorequal(name: string, value: Date | number): this {\n return this.add(name, value, 'beforeorequal', true);\n }\n\n on(name: string, value: any): this {\n return this.add(name, value, 'on');\n }\n\n eq(name: string, value: any): this {\n return this.add(name, value, 'eq');\n }\n\n contains(name: string, value: string): this {\n return this.add(name, value, 'contains');\n }\n\n like(name: string, value: string): this {\n return this.add(name, value, 'like');\n }\n\n notlike(name: string, value: string): this {\n return this.add(name, value, 'notlike');\n }\n\n isnull(name: string): this {\n return this.add(name, undefined, 'isnull');\n }\n\n isnotnull(name: string): this {\n return this.add(name, undefined, 'isnotnull');\n }\n\n in(name: string, value: Array): this {\n return this.add(name, value, 'in', true);\n }\n\n notin(name: string, value: Array): this {\n return this.add(name, value, 'notin', true);\n }\n\n raw(filter: Filter | string | Filter[] | string[]): void {\n const filters = Array.wrap(filter);\n for (const filter of filters) {\n if (this.isFilterPart(filter)) {\n this.filters.push(filter);\n } else {\n throw new SyntaxError(`Filter ${filter} has invalid syntax`);\n }\n }\n }\n\n\n /**\n * Check if given string is proper filter part\n */\n isFilterPart(str: string): boolean {\n return /^[a-zA-Z0-9.]{2,12}_(?:isnull$|(?:gt|lt|(?:after|before)(?:orequal)?|on|eq|contains|like|(?:not)?in)_)/.test(str);\n }\n\n toString(): string {\n const parts: Array = [];\n\n let part: string,\n val: string;\n\n for (const filter of this.filters) {\n if (typeof filter === 'string') {\n part = filter;\n } else {\n val = '';\n if (filter.value.length > 1 || typeof filter.value[0] !== 'undefined') {\n val = `_${filter.value.join('|')}`;\n }\n part = `${filter.name}_${filter.operand}${val}`;\n }\n parts.push(part);\n }\n\n return parts.join(';');\n }\n\n /**\n * Add filter to filters list\n * @param name {string} Name\n * @param value {*} Value\n * @param operand {string} Operand\n * @param [checkNull=false] {boolean} Check null?\n * @returns {FilterBuilder}\n */\n private add(name: string, value: T, operand: string, checkNull = false): this {\n\n let _value = Array.wrap(value);\n\n if (_value.length === 0) {\n return this;\n }\n\n // auto-convert\n for (let i = 0; i < _value.length; i++) {\n const v = _value[i];\n if (typeof v === 'object' && v instanceof Date) {\n _value[i] = v.getTime();\n }\n }\n\n let isNull = false;\n if (checkNull) {\n // check null existence\n for (const v of _value) {\n if (v !== null) {\n continue;\n }\n isNull = true;\n }\n\n if (isNull) {\n _value = _value.filter((item: any) => item !== null);\n operand += 'ornull';\n }\n }\n\n if (operand.endsWith('ornull') && _value.length === 0) {\n operand = 'isnull';\n }\n\n // add filter\n this.filters.push(new Filter>(name, _value, operand));\n\n return this;\n }\n}\n\n\nexport default FilterBuilder;\n","import {Method} from 'axios';\n\n\n/**\n * Allowed methods\n *\n * @type {Array}\n * @default\n */\nexport const ALLOWED_HTTP_METHODS: Array = ['GET', 'POST', 'DELETE'];\n\nexport type QueryParam = string | number | boolean;\nexport type QueryParams = Record>;\n\nexport enum APIOrder {\n asc = 'a',\n desc = 'd'\n}\n\nexport interface CollectionQueryParams extends QueryParams {\n filter: string;\n limit: number;\n offset: number;\n sort: string;\n search: string;\n}\n\nexport type CollectionBasicQueryParams = Omit\n\nexport type NoQueryParams = {\n [key in any]: never;\n}\n\nexport type CollectionResponse = {\n data: Array;\n empty: boolean;\n id: number;\n limit: number;\n next: string;\n offset: number;\n previous: string;\n search: string;\n sort: string;\n total: number;\n}\n\nexport type SimpleCollectionResponse = Pick, 'data' | 'id'>;\nexport type NoData = void;\n","import {AxiosRequestConfig, AxiosResponse, Method} from 'axios';\nimport {stringify} from 'qs';\nimport {API} from '../API';\nimport {ALLOWED_HTTP_METHODS, QueryParams} from './models/HTTP';\nimport {AbortController} from 'node-abort-controller';\n\n\n/**\n * @typeParam RESPONSE HTTP Response return type.\n * @typeParam QUERY_PARAMS Allowed Query Params\n * @typeParam DATA Allowed Data Object\n */\nexport class APIEntity {\n\n root: API;\n\n protected stack: Array = [];\n protected requestConfig: AxiosRequestConfig = {};\n protected ALLOWED_HTTP_METHODS: Array = ALLOWED_HTTP_METHODS;\n protected abortController: AbortController;\n\n /**\n * Constructor\n * @param {APIEntity|object} [parent] - Specifies a parent from which should be inherited properties\n */\n constructor(parent: APIEntity | API) {\n if (parent instanceof APIEntity) {\n this.root = parent.root;\n\n if (Array.isArray(parent.stack)) { //???\n this.push(...parent.stack);\n }\n\n if (parent.requestConfig != null) {\n this.setRequestConfig(parent.requestConfig);\n }\n } else {\n this.root = parent;\n }\n this.abortController = new AbortController();\n }\n\n abortRequest() {\n this.abortController.abort();\n this.abortController = new AbortController();\n }\n\n push(...items: Array): this {\n this.stack = this.stack.concat(items);\n return this;\n }\n\n shift(): this {\n this.stack.shift();\n return this;\n }\n\n restack(...items: Array): this {\n this.stack = items;\n return this;\n }\n\n /**\n * Get first element of the stack\n */\n get first(): string | number {\n return this.stack[0];\n }\n\n /**\n * Get last element of the stack\n */\n get last(): string | number {\n return this.stack[this.stack.length - 1];\n }\n\n /**\n * Set last element of the stack\n */\n set last(val) {\n this.stack[this.stack.length - 1] = val;\n }\n\n toUrl(absolute = false): string {\n let url = `/${this.stack.join('/')}`;\n\n if (absolute) {\n url = this.root.baseUrl + url;\n }\n\n return url;\n }\n\n setRequestConfig(requestConfig: AxiosRequestConfig): this {\n Object.deepAssign(this.requestConfig, requestConfig);\n return this;\n }\n\n removeRequestConfig(key: keyof AxiosRequestConfig): this {\n delete this.requestConfig[key];\n return this;\n }\n\n headers(headers: Record): this {\n const _headers: Record = {};\n\n // Unify/Standarize headers keys\n for (const key in headers) {\n const newKey = key.replace(/(?:^|-)([a-z])/g, (letter) => letter.toUpperCase());\n _headers[newKey] = headers[key];\n }\n\n return this.setRequestConfig({\n headers: _headers\n });\n }\n\n /**\n * Set HTTP method\n */\n method(name: Method): this {\n const NAME: Uppercase = >name.toLocaleUpperCase();\n const isAllowed: boolean = this.ALLOWED_HTTP_METHODS.indexOf(NAME) > -1;\n\n if (!isAllowed) {\n throw new Error(`Method '${NAME}' is not allowed! You can use: ${this.ALLOWED_HTTP_METHODS.join(', ')}`);\n }\n\n return this.setRequestConfig({\n method: NAME\n });\n }\n\n /**\n * Set GET as HTTP method\n */\n get(): this {\n return this.method('GET');\n }\n\n /**\n * Set POST as HTTP method\n */\n post(): this {\n return this.method('POST');\n }\n\n /**\n * Set DELETE as HTTP method\n */\n delete(): this {\n return this.method('DELETE');\n }\n\n /**\n * Set params\n */\n params(params: Pick): this {\n this.setRequestConfig({params});\n return this;\n }\n\n getParams(): Partial {\n return this.requestConfig.params == null ? {} : this.requestConfig.params;\n }\n\n removeParam(key: keyof QUERY_PARAMS): this {\n delete this.requestConfig.params[key];\n return this;\n }\n\n /**\n * Set data\n */\n data(data: DATA): this {\n this.setRequestConfig({data});\n return this;\n }\n\n /**\n * Set JSON data\n */\n jsonData(data: DATA): this {\n this.headers({\n 'Content-Type': 'application/json'\n }).data(data);\n return this;\n }\n\n /**\n * Set form data\n */\n formData(data: DATA): this {\n this.headers({\n 'Content-Type': 'multipart/form-data'\n }).data(data);\n return this;\n }\n\n /**\n * Send request\n */\n send(): Promise> {\n const requestConfig = Object.deepAssign({}, this.requestConfig, {\n url: `/${this.stack.join('/')}`,\n signal: this.abortController.signal\n });\n\n // Set default headers\n if (requestConfig.headers == null) {\n requestConfig.headers = {};\n }\n\n 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 = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = {indexes: false};\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {\n APIOrder,\n CollectionBasicQueryParams,\n CollectionQueryParams,\n CollectionResponse,\n NoQueryParams,\n SimpleCollectionResponse\n} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport type APIListQuery = CollectionBasicQueryParams | CollectionQueryParams | NoQueryParams;\n\nexport class APIList\n extends APIEntity | SimpleCollectionResponse, QUERY_PARAMS, DATA> {\n\n /**\n * Shortcut for sending data POST\n */\n create(data: DATA): Promise> {\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 */\n sort(name: string, order: APIOrder = APIOrder.asc): this {\n return this.params<'sort'>({\n sort: `${name}_${order}`\n });\n }\n\n /**\n * Sets limit\n *\n * @public\n * @param {number} [limit=DEFAULT_LIMIT] - Limit to be set\n * @returns this\n */\n limit(limit = DEFAULT_LIMIT): this {\n if (!Number.isNatural(limit)) {\n throw new Error(`Limit '${limit}' is invalid!`);\n }\n\n return this.params<'limit'>({\n limit\n });\n }\n\n /**\n * Gets limit\n *\n * @public\n * @returns number\n */\n getLimit(): number {\n const params = this.getParams();\n return params.limit == null ? DEFAULT_LIMIT : params.limit;\n }\n\n /**\n * Disables limit\n *\n * @public\n * @returns this\n */\n noLimit(): this {\n return this.limit(0);\n }\n\n /**\n * Sets offset\n *\n * @public\n * @param {number} [offset=DEFAULT_OFFSET] - Offset to be set\n * @returns this\n */\n offset(offset: number = DEFAULT_OFFSET): this {\n if (!Number.isNatural(offset)) {\n throw new Error(`Offset '${offset}' is invalid!`);\n }\n\n return this.params<'offset'>({\n offset\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE records between range\n *\n * @public\n * @param {number} from - From index\n * @param {number} to - To index\n * @returns this\n */\n between(from: number, to: number): this {\n if (!Number.isNatural(from)) {\n throw new Error(`From '${from}' is invalid!`);\n }\n\n if (!Number.isNatural(to)) {\n throw new Error(`To '${to}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: from,\n limit: 1 + (to - from)\n });\n }\n\n /**\n * Sets limit and offset so that will request from BE one record on given index\n *\n * @public\n * @param {number} idx - Index\n * @returns this\n */\n only(idx: number): this {\n if (!Number.isNatural(idx)) {\n throw new Error(`Index '${idx}' is invalid!`);\n }\n\n return this.params<'offset' | 'limit'>({\n offset: idx,\n limit: 1\n });\n }\n\n /**\n * Gets current limit and sets offset so that will request from BE one page of records\n *\n * @public\n * @param {number} [page=1] - Page number (counted from 1)\n * @returns this\n */\n page(page = 1): this {\n if (!Number.isNatural(page) || page == 0) {\n throw new Error(`Page '${page}' is invalid!`);\n }\n\n const limit = this.getLimit();\n const offset = (page - 1) * limit;\n\n return this.params<'offset' | 'limit'>({\n offset,\n limit\n });\n }\n\n /**\n * Sets search\n *\n * query param is working like SQL LIKE. BE sets wraps around query with %, and replaces every white character\n * with %. So e.g. if query='my device', then it's searching for '%my%device%' in DB.\n *\n * @public\n * @param {string} query - Query to search for\n * @returns this\n */\n search(query: string): this {\n if (typeof query !== 'string') {\n throw new Error('Search query must be a string!');\n }\n\n return this.params<'search'>({\n search: query\n });\n }\n\n /**\n * Sets filter\n *\n * @public\n * @param {FilterBuilder|string} filter - Filter\n * @returns this\n */\n filter(filter: FilterBuilder | string): this {\n const isFilterBuilder = filter instanceof FilterBuilder;\n\n if (typeof filter !== 'string' && !isFilterBuilder) {\n throw new Error('Filter must be either string or instance of FilterBuilder');\n }\n\n return this.params<'filter'>({\n filter: filter.toString()\n });\n }\n\n /**\n * Alias for 'noLimit'\n *\n * @public\n * @see noLimit\n * @returns this\n */\n all: typeof APIList.prototype.noLimit = this.noLimit;\n\n /**\n * Alias for 'between'\n *\n * @public\n * @param {number} from - From idx\n * @param {number} to - To idx\n * @returns this\n */\n cut: typeof APIList.prototype.between = this.between;\n}\n\nexport default APIList;\n","import {APIEntity} from './APIEntity'\nimport {QueryParams} from './models/HTTP';\n\n\n/**\n * APIResource\n *\n * @class\n * @extends APIEntity\n */\nexport class APIResource\n extends APIEntity {\n}\n\n\nexport default APIResource;\n","import {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {CleanupConfigurationData, SpecificCleanupConfigurationQueryParams} from './models/CleanupConfiguration';\nimport {DeviceCleanupConfiguration} from './models/Device';\nimport {CollectionQueryParams, NoData} from './models/HTTP';\n\n\nexport class APIListCleanupConfigurations extends APIList {\n\n /**\n * /cleanup-configurations\n */\n constructor(parent: APIAdminListDevices) {\n super(parent);\n this.push('cleanup-configurations');\n }\n\n // /cleanup-configurations/specific\n specific() {\n return new APIResource, NoData>(this)\n .push('specific');\n }\n\n}\n\nexport default APIListCleanupConfigurations\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIResource} from './APIResource'\nimport {CleanupConfigurationSpecificData, DeviceCleanupConfiguration} from './models/Device';\nimport {NoData} from './models/HTTP';\nimport APIList from './APIList';\n\n\nexport class APIResourceCleanupConfiguration extends APIResource {\n //shuldn't it be APIAdminResourceCleanupConfiguration\n\n /**\n * admin/devices/cleanup-configurations/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('cleanup-configurations', id);\n }\n\n // admin/devices/cleanup-configurations/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIResourceCleanupConfiguration\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIListCleanupConfigurations} from './APIListCleanupConfigurations';\nimport {APIResourceCleanupConfiguration} from './APIResourceCleanupConfiguration';\nimport {AdminDevice, AdminDeviceData, AdminDevicesQueryParams} from './models/AdminDevice';\n\n\nexport class APIAdminListDevices extends APIList {\n\n /**\n * /admin/devices\n */\n constructor(parent: APIAdminResource | API) {\n super(parent);\n this.push('admin', 'devices');\n }\n\n // /admin/devices/cleanup-configurations\n cleanupConfigurations() {\n return new APIListCleanupConfigurations(this);\n }\n\n // /admin/devices/cleanup-configurations/{id}\n cleanupConfiguration(id: number) {\n return new APIResourceCleanupConfiguration(this, id);\n }\n\n}\n\nexport default APIAdminListDevices;\n","import {Method} from 'axios';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {RunsConfigParams, TestRunConfig} from './models/TestRun';\n\nexport class APIAdminListRuns extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET'];\n\n /**\n * /admin/runs\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'runs');\n }\n\n // /runs/config\n config() {\n const apiResource = new APIResource(this);\n apiResource.restack('runs', 'config');\n return apiResource;\n }\n\n}\n\n\nexport default APIAdminListRuns\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {AdminServicesParams, Service} from './models/Service';\n\n\nexport class APIAdminListServices extends APIList {\n\n /**\n * /admin/services\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'services');\n }\n\n active() {\n const apiList = new APIList(this);\n apiList.params<'notArchived'>({\n notArchived: true\n });\n return apiList;\n }\n\n activated() {\n const apiList = this.active();\n apiList.params<'filter' | 'limit' | 'sort'>({\n filter: 'activated_eq_true',\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n inUse() {\n const apiList = new APIList(this);\n apiList.params<'inUse' | 'limit' | 'sort'>({\n inUse: true,\n limit: 0,\n sort: 'name_a'\n })\n return apiList;\n }\n\n byPrice() {\n const apiList = new APIList(this);\n apiList.params<'sort'>({\n sort: 'centPrice_a'\n })\n return apiList;\n }\n\n}\n\nexport default APIAdminListServices;\n","import {AxiosResponse} from 'axios';\n\nexport function NonRequestable(constructor: T) {\n return class extends constructor {\n send(): Promise {\n return Promise.reject();\n }\n };\n}\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AdminFrameworkStatistics, AdminStatisticsParams} from './models/AdminFrameworkStatistics';\nimport {NoData} from './models/HTTP';\n\n\n@NonRequestable\nexport class APIAdminListStatistics extends APIList {\n\n /**\n * /admin/statistics\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'statistics');\n }\n\n // /admin/statistics/frameworks\n frameworks() {\n return new APIList(this).push('frameworks');\n }\n\n\n}\n\n\nexport default APIAdminListStatistics\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {\n Account, AccountData,\n AccountUsage,\n AccountUsageParams,\n AccountUsageSummary,\n AccountUsageSummaryParams\n} from './models/Account';\nimport {NoData, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\nimport {Role, RoleData, RoleParams} from './models/Role';\nimport {AccountService} from './models/AccountService';\nimport {AccountPreferences, AccountPreferencesData} from './models/AccountPreference';\n\n\nexport class APIAdminResourceAccount extends APIResource {\n\n /**\n * /admin/accounts/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'accounts', id);\n }\n\n // /admin/accounts/{id}/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /admin/accounts/{id}/roles/{id}\n role(id: number) {\n return new APIResource(this).push('roles', id);\n }\n\n // /admin/accounts/{id}/account-services\n accountServices() {\n return new APIList(this).push('account-services');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource(this).push('preferences');\n }\n\n // /admin/accounts/{id}/usage\n usage() {\n return new APIList, AccountUsageParams>(this).push('usage');\n }\n\n // /admin/accounts/{id}/usage-summary\n usageSummary() {\n return new APIResource(this).push('usage-summary');\n }\n\n}\n\nexport default APIAdminResourceAccount\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {AccountService} from './models/AccountService';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIAdminResourceAccountService extends APIResource {\n\n /**\n * /admin/account-services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'account-services', id);\n }\n\n // /account-services/{id}/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n // /account-services/{id}/deactivate\n deactivate() {\n return new APIResource(this).push('deactivate').post();\n }\n\n}\n\nexport default APIAdminResourceAccountService\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice} from './models/AdminDevice';\nimport {Cluster, ClusterData, ClusterParams} from './models/Cluster';\n\n\nexport class APIAdminResourceCluster extends APIResource {\n\n /**\n * /clusters/{id}\n */\n constructor(parent: API | APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('clusters', id);\n }\n\n // /clusters/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n}\n\nexport default APIAdminResourceCluster\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {AdminDevice, AdminDeviceData} from './models/AdminDevice';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\n\n /**\n * /admin/devices/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'devices', id);\n }\n\n // /admin/devices/{id}/cleanup-configuration\n cleanupConfiguration() {\n return new APIResource(this).push('cleanup-configuration');\n }\n\n // /admin/devices/{id}/labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /admin/devices/{id}/labels/{id}\n label(id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\nimport {AdminDeviceSession} from './models/AdminDeviceSession';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\n\n /**\n * /admin/device-models/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'device-models', id);\n }\n\n // /admin/device-models/{id}/browsers\n browsers() {\n return new APIList(this).push('browsers');\n }\n\n // /admin/device-models/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDeviceModel;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {NoData} from '../models/HTTP';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\n\n\n@NonRequestable\nexport class InputFileset extends APIResource {\n\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('input-file-set');\n }\n\n /**\n * @remarks Endpoint /input-file-set/files\n */\n files() {\n return new APIList(this).push('files');\n }\n\n /**\n * @remarks Endpoint /input-file-set/files.zip\n */\n filesZip() {\n return new APIResource(this).push('files.zip');\n }\n}\n\nexport default InputFileset\n","// Create image files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const IMAGE_FILES_FILTER = new FilterBuilder();\nIMAGE_FILES_FILTER.eq('state', 'READY');\nIMAGE_FILES_FILTER.in('mimetype', [\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif'\n]);\nIMAGE_FILES_FILTER.notlike('name', 'action-%%');\n","// Create non-media files filter\nimport FilterBuilder from '../../FilterBuilder';\n\nexport const NON_MEDIA_FILES_FILTER = new FilterBuilder();\nNON_MEDIA_FILES_FILTER.eq('state', 'READY');\nNON_MEDIA_FILES_FILTER.notin('mimetype', [\n // no images\n 'image/png', 'image/jpg', 'image/jpeg', 'image/webp', 'image/gif',\n\n // no videos\n 'video/mp4', 'video/avi', 'video/webm', 'video/ogg', 'video/mpeg'\n]);\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {UserFile} from './models/UserFile';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {IMAGE_FILES_FILTER} from './class/Images.filter';\nimport {NON_MEDIA_FILES_FILTER} from './class/NonMedia.filter';\n\n\nexport class APIListOutputFiles extends APIList {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n performance(): this {\n return this.params({\n tag: ['performance']\n })\n }\n\n images(): this {\n return this.filter(IMAGE_FILES_FILTER);\n }\n\n // Filter files out by non-media\n nonMediaFiles(): this {\n return this.filter(NON_MEDIA_FILES_FILTER);\n }\n\n // Filter files out by ready videos\n videos(): this {\n return this.params({\n filter: 's_state_eq_READY',\n tag: ['video']\n });\n }\n}\n\nexport default APIListOutputFiles;\n","import {API} from '../../API';\nimport {APIEntity} from '../APIEntity';\nimport {APIList} from '../APIList'\nimport {APIResource} from '../APIResource'\nimport {NonRequestable} from '../decorators/NonRequestable';\nimport {Screenshot} from '../models/Screenshot';\nimport {UserFile} from '../models/UserFile';\nimport {FilesQueryParams} from './FilesQueryParams';\nimport APIListOutputFiles from '../APIListOutputFiles';\n\n\n@NonRequestable\nexport class OutputFileset extends APIResource {\n\n /**\n * /output-file-set\n *\n * Constructor\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('output-file-set');\n }\n\n // /output-file-set/files\n files() {\n return new APIListOutputFiles(this);\n }\n\n // /output-file-set/files/{id}\n file(id: number) {\n return new APIResource(this).push('files', id);\n }\n\n // /output-file-set/files.zip\n filesZip() {\n return new APIResource(this).push('files.zip');\n }\n\n // /output-file-set/screenshots\n screenshots() {\n return new APIList(this).push('screenshots');\n }\n\n // /output-file-set/screenshots/{id}\n screenshot(id: number) {\n return new APIResource(this).push('screenshots', id);\n }\n\n // /output-file-set/screenshots/{id}/file/{id}\n screenshotFile(id: number) {\n return this.screenshot(id).push('file');\n }\n}\n\nexport default OutputFileset\n","import {Screenshot} from './models/Screenshot';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\n\nexport class APIListScreenshots extends APIList {\n\n /**\n * screenshots\n */\n constructor(parent: APIResourceDeviceSessionCommon) {\n super(parent);\n this.push('screenshots');\n }\n}\n\nexport default APIListScreenshots\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource'\nimport {InputFileset} from './class/InputFileset'\nimport {OutputFileset} from './class/OutputFileset'\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\nimport {\n DeviceSession,\n DeviceSessionCommand,\n DeviceSessionStep,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport APIListScreenshots from './APIListScreenshots';\n\n\nexport class APIResourceDeviceSessionCommon extends APIResource implements DeviceSessionCommon {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/commands\n commands() {\n return new APIList(this).push('commands');\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource(this).push('release').post();\n }\n\n // /device-sessions/{id}/screenshots\n screenshots() {\n return new APIListScreenshots(this);\n }\n\n // /device-sessions/{id}/screenshots/{id}\n screenshot(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /device-sessions/{id}/steps\n steps() {\n return new APIList(this).push('steps');\n }\n\n // /device-sessions/{id}/steps/{id}\n step(id: number | 'current') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('steps', id);\n }\n\n // /device-sessions/{id}/steps/current\n currentStep() {\n return this.step('current');\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n logs() {\n return new APIResource(this).push('logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n clusterLogs() {\n return new APIResource(this).push('cluster-logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n}\n\nexport default APIResourceDeviceSessionCommon\n","import {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {postAdminDeviceSessionChangeBillable} from './factory/postAdminDeviceSessionChangeBillable';\nimport {DeviceSessionCommon} from './interface/DeviceSessionCommon';\n\n\n/**\n * APIAdminResourceDevice\n *\n *\n * It will require more work to decouple from regular session\n */\nexport class APIAdminResourceDeviceSessionStandalone extends APIResourceDeviceSessionCommon implements DeviceSessionCommon {\n\n // /admin/device-sessions/{id}/changebillable\n changeBillable(billable: boolean) {\n return postAdminDeviceSessionChangeBillable(this, billable);\n }\n}\n\nexport default APIAdminResourceDeviceSessionStandalone;\n","import {APIResource} from '../APIResource';\nimport APIResourceDeviceSessionCommon from '../APIResourceDeviceSessionCommon';\nimport {DeviceSession} from '../models/DeviceSession';\n\nexport function postAdminDeviceSessionChangeBillable(parent: APIResourceDeviceSessionCommon, billable: boolean) {\n const apiResource = new APIResource(parent);\n const deviceSessionId = apiResource.last;\n\n return apiResource.restack('admin', 'device-sessions', deviceSessionId, 'changebillable').params({\n billable\n }).post();\n}\n\nexport default postAdminDeviceSessionChangeBillable;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {NoData} from './models/HTTP';\nimport {DeviceTimeParams, UserDeviceTime} from './models/UserDeviceTime';\n\nexport class APIAdminResourceDeviceTime extends APIList {\n\n /**\n * /admin/device-time\n */\n constructor(parent: APIAdminResource) {\n super(parent);\n this.push('admin', 'device-time');\n }\n}\n\nexport default APIAdminResourceDeviceTime\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Framework, FrameworkConfigData, FrameworkEditData} from './models/Framework';\nimport {NoQueryParams} from './models/HTTP';\nimport {ProjectJobConfig} from './models/ProjectJobConfig';\nimport {Role} from './models/Role';\n\nexport class APIAdminResourceFramework extends APIResource {\n\n /**\n * /admin/frameworks/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'frameworks', id);\n }\n\n // /admin/frameworks/{id}/config\n config() {\n return new APIResource(this).push('config');\n }\n\n // /admin/frameworks/{id}/required-roles\n requiredRoles() {\n return new APIList(this).push('required-roles');\n }\n\n}\n\nexport default APIAdminResourceFramework\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\n\nexport class APIAdminResourceLicense extends APIResource {\n\n /**\n * /licenses/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'licenses', id);\n }\n\n // /licenses/{id}/activate\n activate() {\n return new APIResource(this).push('activate');\n }\n\n // /licenses/{id}/deactivate\n deactivate() {\n return new APIResource(this).push('deactivate');\n }\n\n // /licenses/{id}/resend\n resend() {\n return new APIResource(this).push('resend');\n }\n\n // /licenses/{id}/download\n download() {\n return new APIResource(this).push('download');\n }\n\n}\n\nexport default APIAdminResourceLicense\n","import {APIEntity} from '../APIEntity';\nimport {APIResource} from '../APIResource';\nimport {BuildLogsData, BuildLogsParams} from '../models/UserFile';\n\nexport function postDeviceRunIds(parent: APIEntity, name: string, ids?: Array) {\n const a = new APIResource(parent).push(name);\n\n if (ids != null) {\n a.params<'deviceRunIds'>({\n deviceRunIds: ids\n });\n }\n\n return a.post();\n}\n\nexport default postDeviceRunIds;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun, RunChangeBillableParams, RunChangePriorityParams} from './models/AdminTestRun';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceRunStandalone extends APIResource {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/changebillable\n changeBillable(billable: boolean) {\n return new APIResource(this).push('changebillable').post().params({\n billable\n });\n }\n\n // /runs/{id}/changepriority\n changePriority(priority?: number) {\n const resource = new APIResource(this).push('changepriority');\n if (priority) {\n resource.post().data({\n priority\n });\n }\n return resource;\n }\n\n // /admin/runs/{id}/retry\n retry(ids?: Array) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n}\n\nexport default APIAdminResourceRunStandalone;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIResource} from './APIResource'\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceActivateData} from './models/Service';\n\n\nexport class APIAdminResourceService extends APIResource {\n\n /**\n * /services/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'services', id);\n }\n\n // /services/{id}/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n}\n\nexport default APIAdminResourceService\n","import {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccountService, AccountServiceData} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Role, RoleData} from './models/Role';\nimport {User, UserUpdateAccount} from './models/User';\n\n@NonRequestable\nexport class APIAdminResourceUserAccount extends APIResource {\n\n /**\n * /account\n */\n constructor(parent: APIAdminResourceUser) {\n super(parent);\n this.push('account');\n }\n\n // /account/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /account/roles/{id}\n role(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('roles', id);\n }\n\n // /account-services\n services() {\n const a = new APIList(this);\n a.last += '-services';\n return a;\n }\n\n // /update-account\n 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 {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {InputFileset} from './class/InputFileset';\nimport {OutputFileset} from './class/OutputFileset';\nimport {DeviceSessionStandalone} from './interface/DeviceSessionStandalone';\nimport {Connection, ConnectionData} from './models/Connection';\nimport {DeviceSession, DeviceSessionRelease} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {VisualTest} from './models/VisualTest';\n\nexport class APIResourceDeviceSessionStandalone extends APIResource implements DeviceSessionStandalone {\n\n /**\n * /device-sessions/{id}\n */\n constructor(parent: APIResourceUser | APIAdminResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-sessions', id);\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n // /device-sessions/{id}/connections/{id}\n connection(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('connections', id);\n }\n\n // /device-sessions/{id}/input-file-set\n input() {\n return new InputFileset(this);\n }\n\n // /device-sessions/{id}/output-file-set\n output() {\n return new OutputFileset(this);\n }\n\n // /device-sessions/{id}/release\n release() {\n return new APIResource(this).push('release').post();\n }\n\n // /device-sessions/{id}/visual-tests/images\n visualTestsImages() {\n return new APIList(this).push('visual-tests', 'images');\n }\n\n}\n\nexport default APIResourceDeviceSessionStandalone\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIAdminResourceUserAccount} from './APIAdminResourceUserAccount';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {License} from './models/License';\nimport {Role, RoleData, RoleParams} from './models/Role';\nimport {User} from './models/User';\n\n\n@NonRequestable\nexport class APIAdminResourceUser extends APIResource {\n\n /**\n * /admin/users/{id}\n */\n constructor(parent: APIAdminResource, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('admin', 'users', id);\n }\n\n // /admin/users/{id}/disable\n disable() {\n return new APIResource(this).push('disable');\n }\n\n // /admin/users/{id}/enable\n enable() {\n return new APIResource(this).push('enable');\n }\n\n // /admin/users/{id}/licenses\n licenses() {\n return new APIList(this).push('licenses');\n }\n\n // /admin/users/{id}/resend-activation\n resendActivation() {\n return new APIResource(this).push('resend-activation').post();\n }\n\n // /admin/users/{id}/account\n account() {\n return new APIAdminResourceUserAccount(this);\n }\n\n // /admin/users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /admin/users/{id}/roles\n roles() {\n return new APIList(this).push('roles');\n }\n\n // /admin/users/{id}/roles/{id}\n role(id: number) {\n return new APIResource(this).push('roles', id);\n }\n\n}\n\nexport default APIAdminResourceUser;\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccessGroup, AccessGroupUsersQueryParams} from './models/AccessGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {SharedResource} from './models/SharedResource';\nimport {User, UserData} from './models/User';\n\nexport class APIResourceAccessGroup extends APIResource {\n\n /**\n * /access-groups/{id}\n *\n */\n constructor(parent: APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('access-groups', id);\n }\n\n // /access-groups/{id}/users\n users() {\n return new APIList(this).push('users');\n }\n\n // /access-groups/{id}/users/{id}\n user(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('users', id);\n }\n\n // /access-groups/{id}/resources\n resources() {\n return new APIList(this).push('resources');\n }\n\n // /access-groups/{id}/resources/{id}\n resource(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('resources', id);\n }\n\n}\n\nexport default APIResourceAccessGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport APIResourceUser from './APIResourceUser';\nimport {Device, DeviceProperty} from './models/Device';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupParams, DeviceGroupSelectorData} from './models/DeviceGroup';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {ShareData, SharedResource} from './models/SharedResource';\n\nexport class APIResourceDeviceGroup extends APIResource {\n\n /**\n * /device-groups/{id}\n */\n constructor(parent: APIAdminResource | APIResourceUser | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('device-groups', id);\n }\n\n // /device-groups/{id}/devices\n devices() {\n return new APIList(this).push('devices');\n }\n\n // /device-groups/{id}/devices/{id}\n device(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('devices', id);\n }\n\n // /device-groups/{id}/selectors\n selectors() {\n return new APIList(this).push('selectors');\n }\n\n // /device-groups/{id}/selectors/{id}\n selector(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('selectors', id);\n }\n\n // /device-groups/{id}/share\n share() {\n return new APIList(this).push('share');\n }\n\n}\n\nexport default APIResourceDeviceGroup\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport {Property} from './models/Property';\nimport {ShareData, SharedResource} from './models/SharedResource';\nimport {FileSizeData, UserFile, UserFileTag} from './models/UserFile';\n\n\nexport class APIResourceFile extends APIResource {\n\n /**\n * /files/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('files', id);\n }\n\n // use this to download file content\n // /files/{id}/file\n file() {\n return new APIResource(this).push('file');\n }\n\n // /files/{id}/icon\n icon() {\n return new APIResource(this).push('icon');\n }\n\n // /files/{id}/tags\n tags() {\n return new APIList(this).push('tags');\n }\n\n share() {\n return new APIList(this).push('share');\n }\n\n property(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('properties', id);\n }\n\n}\n\nexport default APIResourceFile\n","import {NoData} from './models/HTTP';\nimport {TestCaseRun} from './models/TestCaseRun';\nimport APIList, {APIListQuery} from './APIList';\nimport {SessionQueryParams} from './models/DeviceSession';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\n\n\nexport class APIListTestCaseRuns extends APIList {\n\n /**\n * /test-case-runs\n */\n constructor(parent: APIResourceDeviceSessionCommon) {\n super(parent);\n this.push('test-case-runs');\n }\n}\n\nexport default APIListTestCaseRuns\n","import {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession as DeviceSessionModel, SessionQueryParams} from './models/DeviceSession';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\nimport {APIListQuery} from './APIList';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n // /device-sessions/{id}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\n }\n}\n\nexport default APIResourceDeviceSession\n","import {DeviceSession} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceRunCommon from './APIResourceRunCommon';\n\n\nexport class APIListTestRunDeviceSessions extends APIList {\n\n /**\n * device-sessions\n */\n constructor(parent: APIResourceRunCommon) {\n super(parent);\n this.push('device-sessions');\n }\n}\n\nexport default APIListTestRunDeviceSessions\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {DeviceSessionStep} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {RunData, RunQueryParam, TestRun, TestRunData} from './models/TestRun';\nimport {TestRunDataAvailability, TestRunDataAvailabilityQueryParams} from './models/TestRunDataAvailability';\nimport {UserFile} from './models/UserFile';\nimport APIListTestRunDeviceSessions from './APIListTestRunDeviceSessions';\n\n\nexport class APIResourceRunCommon extends APIResource {\n\n /**\n * /runs/{id}\n */\n constructor(parent: APIEntity | API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('runs', id);\n }\n\n // /runs/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /runs/{id}/build-logs.zip\n buildLogsZip(ids?: Array) {\n return postDeviceRunIds(this, 'build-logs.zip', ids);\n }\n\n // /runs/{id}/data-availability\n dataAvailability() {\n return new APIResource(this).push('data-availability');\n }\n\n // /runs/{id}/device-sessions\n deviceSessions() {\n return new APIListTestRunDeviceSessions(this);\n }\n\n // /runs/{id}/files.zip\n filesZip(ids?: Array) {\n return postDeviceRunIds(this, 'files.zip', ids);\n }\n\n // /runs/{id}/logs.zip\n logsZip(ids?: Array) {\n return postDeviceRunIds(this, 'logs.zip', ids);\n }\n\n // /runs/{id}/performance.zip\n performanceZip(ids?: Array) {\n return postDeviceRunIds(this, 'performance.zip', ids);\n }\n\n // /runs/{id}/retry\n retry(ids?: Array) {\n return postDeviceRunIds(this, 'retry', ids).setRequestConfig({\n timeout: 0\n });\n }\n\n // /runs/{id}/screenshots.zip\n screenshotsZip(ids?: Array) {\n return postDeviceRunIds(this, 'screenshots.zip', ids);\n }\n\n // /runs/{id}/steps\n steps() {\n return new APIList(this).push('steps');\n }\n\n}\n\nexport default APIResourceRunCommon\n","import {APIResourceDeviceSession} from './APIResourceDeviceSession'\nimport {APIResourceRunCommon} from './APIResourceRunCommon'\nimport {CollectionQueryParams} from './models/HTTP';\n\nexport class APIResourceRun extends APIResourceRunCommon {\n\n // /runs/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n}\n\nexport default APIResourceRun\n","import {API} from '../API';\nimport {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceRun} from './APIResourceRun'\nimport {APIResourceUser} from './APIResourceUser';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Project} from './models/Project';\nimport {ShareData, SharedResource} from './models/SharedResource';\nimport {TestRun} from './models/TestRun';\n\nexport class APIResourceProject extends APIResource {\n\n /**\n * /projects/{id}\n */\n constructor(parent: API | APIAdminResource | APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('projects', id);\n }\n\n // /projects/{id}/runs\n runs() {\n return new APIList(this).push('runs');\n }\n\n // /projects/{id}/runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n share() {\n return new APIList(this).push('share');\n }\n\n // /unarchive\n unarchive() {\n return new APIResource(this).push('unarchive');\n }\n\n}\n\nexport default APIResourceProject\n","import {API} from '../API';\nimport {APIAdminListDevices} from './APIAdminListDevices';\nimport {APIAdminListRuns} from './APIAdminListRuns';\nimport {APIAdminListServices} from './APIAdminListServices';\nimport {APIAdminListStatistics} from './APIAdminListStatistics';\nimport APIAdminResourceAccount from './APIAdminResourceAccount';\nimport {APIAdminResourceAccountService} from './APIAdminResourceAccountService';\nimport {APIAdminResourceCluster} from './APIAdminResourceCluster';\nimport {APIAdminResourceDevice} from './APIAdminResourceDevice';\nimport {APIAdminResourceDeviceModel} from './APIAdminResourceDeviceModel';\nimport {APIAdminResourceDeviceSessionStandalone} from './APIAdminResourceDeviceSessionStandalone';\nimport {APIAdminResourceDeviceTime} from './APIAdminResourceDeviceTime';\nimport {APIAdminResourceFramework} from './APIAdminResourceFramework';\nimport {APIAdminResourceLicense} from './APIAdminResourceLicense';\nimport {APIAdminResourceRunStandalone} from './APIAdminResourceRunStandalone';\nimport {APIAdminResourceService} from './APIAdminResourceService';\nimport {APIAdminResourceUser} from './APIAdminResourceUser';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceFile} from './APIResourceFile'\nimport {APIResourceProject} from './APIResourceProject';\nimport {NonRequestable} from './decorators/NonRequestable';\nimport {AccessGroup, AccessGroupData} from './models/AccessGroup';\nimport {Account} from './models/Account';\nimport {AccountService} from './models/AccountService';\nimport {Activity} from './models/Activity';\nimport {AdminDeviceSession, AdminInteractiveDeviceSession} from './models/AdminDeviceSession';\nimport {AdminDeviceType, DeviceTypeData} from './models/AdminDeviceType';\nimport {AdminEmail} from './models/AdminEmail';\nimport {Administrator} from './models/Administrator';\nimport {AdminOverview} from './models/AdminOverview';\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {Browser, BrowserData} from './models/Browser';\nimport {DeviceModelCriterion, DeviceModelCriterionData} from './models/DeviceModelCriterion';\nimport {DeviceModelPool, DeviceModelPoolData} from './models/DeviceModelPool';\nimport {Framework, FrameworkData} from './models/Framework';\nimport {License, LicenseData} from './models/License';\nimport {Maintenance, MaintenanceData} from './models/Maintenance';\nimport {Project} from './models/Project';\nimport {Role, RoleParams} from './models/Role';\nimport {Settings, SettingsParams} from './models/Settings';\nimport {User, UserData, UserParams} from './models/User';\nimport {DeviceTimeSummaryParams, UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {UserFile, UserFileData, UserFileParams} from './models/UserFile';\nimport {Cluster} from './models/Cluster';\nimport {DeviceProperty} from './models/Device';\nimport {DeviceGroup} from './models/DeviceGroup';\nimport {DeviceModel} from './models/DeviceModel';\nimport {DeviceProblem} from './models/DeviceProblem';\nimport {DeviceStatus} from './models/DeviceStatus';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n@NonRequestable\nexport class APIAdminResource extends APIResource {\n\n /**\n * /admin\n */\n constructor(parent: API) {\n super(parent);\n }\n\n // /access-groups\n accessGroups() {\n return new APIList(this).push('access-groups');\n }\n\n // /access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /admin/accounts\n accounts() {\n return new APIList(this).push('admin', 'accounts');\n }\n\n // /admin/accounts/{id}\n account(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIAdminResourceAccount(this, id);\n }\n\n // /admin/account-services\n accountServices() {\n return new APIList(this).push('admin', 'account-services');\n }\n\n // /admin/account-services/{id}\n accountService(id: number) {\n return new APIAdminResourceAccountService(this, id);\n }\n\n // activities\n activities() {\n return new APIList(this).push('admin', 'activities');\n }\n\n // admin/administrators\n administrators() {\n return new APIList(this).push('admin', 'administrators');\n }\n\n // /admin/billing-periods\n billingPeriods() {\n return new APIList(this).push('admin', 'billing-periods');\n }\n\n // /admin/billing-periods/{id}\n billingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'billing-periods', id);\n }\n\n // /admin/browsers\n browsers() {\n return new APIList(this).push('admin', 'browsers');\n }\n\n // /clusters\n clusters() {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /admin/devices\n devices() {\n return new APIAdminListDevices(this);\n }\n\n // /admin/devices/{id}\n device(id: number) {\n return new APIAdminResourceDevice(this, id);\n }\n\n devicesForModel(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n const apiList = this.devices();\n apiList.params({\n filter: 'deviceModelId_eq_' + id\n });\n return apiList;\n }\n\n // /admin/device/statuses\n deviceStatuses() {\n return new APIList(this).push('admin', 'device', 'statuses');\n }\n\n // /admin/device-models\n deviceModels() {\n return new APIList(this).push('admin', 'device-models');\n }\n\n // /admin/device-models/{id}\n deviceModel(id: number) {\n return new APIAdminResourceDeviceModel(this, id);\n }\n\n // /admin/device-problems\n deviceProblems() {\n return new APIList(this).push('admin', 'device-problems');\n }\n\n // /admin/device-model-criteria\n deviceModelCriterias() {\n return new APIList(this).push('admin', 'device-model-criteria');\n }\n\n // /admin/device-model-criteria/{id}\n deviceModelCriteria(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'device-model-criteria', id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('admin', 'device-sessions');\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIAdminResourceDeviceSessionStandalone(this, id);\n }\n\n // /device-time\n deviceTime() {\n return new APIAdminResourceDeviceTime(this);\n }\n\n // /device-time-summary\n deviceTimeSummary() {\n return new APIList(this).push('admin', 'device-time-summary');\n }\n\n // /device-types\n deviceTypes() {\n return new APIList(this).push('admin', 'device-types');\n }\n\n // /device-types/{id}\n deviceType(id: number) {\n return new APIResource(this).push('admin', 'device-types', id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /admin/emails\n emails() {\n return new APIList(this).push('admin', 'emails');\n }\n\n // /admin/emails/{id}/resend\n resendEmail(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'emails', id, 'resend').post();\n }\n\n // /files\n files() {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /admin/frameworks\n frameworks() {\n return new APIList(this).push('admin', 'frameworks');\n }\n\n // /admin/frameworks/{id}\n framework(id: number) {\n return new APIAdminResourceFramework(this, id);\n }\n\n // /admin/frameworks/available-labels\n frameworkAvailableLabels() {\n const apiList = this.frameworks();\n apiList.push('available-labels');\n return apiList;\n }\n\n // /admin/interactive-queue\n interactiveQueue() {\n return new APIList(this).push('admin', 'interactive-queue');\n }\n\n // /admin/licenses\n licenses() {\n return new APIList(this).push('admin', 'licenses');\n }\n\n // /admin/licenses/{id}\n license(id: number) {\n return new APIAdminResourceLicense(this, id);\n }\n\n // /admin/maintenance\n maintenance() {\n return new APIResource(this).push('admin', 'maintenance');\n }\n\n // /admin/overview\n overview() {\n return new APIResource(this).push('admin', 'overview');\n }\n\n pools() {\n return new APIList(this).push('admin', 'pools');\n }\n\n pool(id: number) {\n return new APIResource(this).push('admin', 'pools', id);\n }\n\n // /projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /admin/roles\n roles() {\n return new APIList(this).push('admin', 'roles');\n }\n\n // /admin/runs\n runs() {\n return new APIAdminListRuns(this);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIAdminResourceRunStandalone(this, id);\n }\n\n // /admin/samples\n samples() {\n return new APIList>(this).push('admin', 'samples');\n }\n\n // /admin/samples/{id}\n sample(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n return new APIResource(this).push('admin', 'samples', id);\n }\n\n // /admin/services\n services() {\n return new APIAdminListServices(this);\n }\n\n // /admin/services/{id}\n service(id: number) {\n return new APIAdminResourceService(this, id);\n }\n\n // /admin/settings\n settings() {\n return new APIResource(this).push('admin', 'settings');\n }\n\n // /admin/statistics\n statistics() {\n return new APIAdminListStatistics(this);\n }\n\n // /users\n users() {\n return new APIList(this).push('users');\n }\n\n // /admin/users\n createUser() {\n return new APIList(this).push('admin', 'users').post();\n }\n\n // /users/{id}\n user(id: number) {\n return new APIAdminResourceUser(this, id);\n }\n\n}\n\nexport default APIAdminResource;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {DesktopBrowserCapabilities} from './models/DesktopBrowserCapabilities';\nimport {Device, DevicesQueryParams} from './models/Device';\nimport {DevicePicker} from './models/DeviceFilter';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\n\n\nexport class APIListDevices extends APIList {\n\n /**\n * /devices\n */\n constructor(parent: API) {\n super(parent);\n this.push('devices');\n }\n\n // /devices/filters\n filters() {\n return new APIResource>(this).push('filters');\n }\n\n // /devices/desktop-browser-capabilities\n desktopBrowserCapabilities() {\n return new APIResource(this).push('desktop-browser-capabilities');\n }\n\n}\n\nexport default APIListDevices;\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {CollectionQueryParams} from './models/HTTP';\nimport {Property, PropertyData} from './models/Property';\n\n\nexport class APIListProperties extends APIList {\n\n /**\n * /properties\n */\n constructor(parent: API) {\n super(parent);\n this.push('properties');\n }\n\n maintenance() {\n return new APIList(this).params({\n filter: 'name_eq_CLOUD_HEADER_ANNOUNCEMENT',\n limit: 1,\n sort: 'updateTime_d'\n });\n }\n\n}\n\nexport default APIListProperties\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Service, ServiceData} from './models/Service';\n\n\nexport class APIListServices extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['POST'];\n\n /**\n * /services\n */\n constructor(parent: API | APIResourceUser) {\n super(parent);\n this.push('services');\n }\n\n // /services/available\n available() {\n return new APIList(this).push('available');\n }\n\n active() {\n const apiList = new APIList(this);\n if (this.first === 'me') {\n apiList.push('active');\n } else {\n apiList.params({\n notArchived: true\n });\n }\n return apiList;\n }\n\n byPrice() {\n return new APIList(this).sort('centPrice');\n }\n\n availableByPrice() {\n return new APIList(this).push('available').sort('centPrice');\n }\n\n}\n\nexport default APIListServices\n","import {Method} from 'axios';\nimport {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {\n User,\n UserActivateData,\n UserData,\n UserPasswordData,\n UserRecoveryQueryParams,\n} from './models/User';\n\n\nexport class APIListUsers extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET', 'POST'];\n\n /**\n * /users\n */\n constructor(parent: API) {\n super(parent);\n this.push('users');\n }\n\n // /users/activate\n activate() {\n return new APIResource(this).push('activate').post();\n }\n\n // /users/recoveries\n recoveries() {\n return new APIResource(this).push('recoveries');\n }\n\n // /users/passwordRecovery\n passwordRecovery() {\n return new APIResource(this).push('password-recovery');\n }\n\n}\n\nexport default APIListUsers;\n","import {APIResource} from './APIResource'\nimport {BillingPeriod} from './models/BillingPeriod';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {APIResourceAccount} from './APIResourceAccount';\n\n\n\n\nexport class APIResourceBillingPeriod extends APIResource {\n\n /**\n * /billing-periods/{id}\n */\n constructor(parent: APIResourceAccount, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('billing-periods', id);\n }\n\n // /billing-periods/{id}/receipt\n receipt() {\n return new APIResource(this).push('receipt').setRequestConfig({\n responseType: 'arraybuffer'\n });\n }\n\n}\n\nexport default APIResourceBillingPeriod\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceBillingPeriod} from './APIResourceBillingPeriod';\nimport {\n Account,\n AccountData,\n AccountSessionUsage,\n AccountSessionUsageSummary,\n AccountUserSessionUsage\n} from './models/Account';\nimport {AccountConcurrencyStatusMap} from './models/AccountConcurrencyStatusMap';\nimport {AccountPreferences} from './models/AccountPreference';\nimport {AccountService, ServicePaymentStatus} from './models/AccountService';\nimport {AccountServicePayment} from './models/AccountServicePayment';\nimport {BillingPeriod, BillingPeriodQueryParams} from './models/BillingPeriod';\nimport {DeviceTimeSummaryQueryParams} from './models/Device';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams, QueryParams, SimpleCollectionResponse} from './models/HTTP';\nimport {User, UserData} from './models/User';\nimport {DeviceTimeQueryParams, UserDeviceTime} from './models/UserDeviceTime';\nimport {UserDeviceTimeSummary} from './models/UserDeviceTimeSummary';\nimport {VisualTestAccess} from './models/VisualTest';\n\n\nexport class APIResourceAccount extends APIResource {\n\n /**\n * /accounts/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('accounts', id);\n }\n\n // /accounts/{id}/concurrency-status\n concurrencyStatus() {\n return new APIResource(this).push('concurrency-status');\n }\n\n // /accounts/{id}/device-time\n deviceTime() {\n return new APIList(this).push('device-time');\n }\n\n // /accounts/{id}/device-time-summary\n deviceTimeSummary() {\n return new APIList(this).push('device-time-summary');\n }\n\n // /accounts/{id}/preferences\n preferences() {\n return new APIResource>(this).push('preferences');\n }\n\n // /accounts/{id}/users\n users() {\n return new APIList(this).push('users');\n }\n\n // /accounts/{accountId}/users/{userId}\n removeUser(id: number) {\n return new APIResource(this).push('users', id);\n }\n\n // /accounts/{accountId}/users/{userId}/disable\n disableUser(id: number) {\n return new APIResource(this).push('users', id, 'disable').post();\n }\n\n // /accounts/{accountId}/users/{userId}/enable\n enableUser(id: number) {\n return new APIResource(this).push('users', id, 'enable').post();\n }\n\n // /accounts/{accountId}/users/{userId}/resend-activation\n resendActivation(id: number) {\n return new APIResource(this).push('users', id, 'resend-activation').post();\n }\n\n // /accounts/{accountId}/billing-periods\n billingPeriods() {\n return new APIList(this).push('billing-periods');\n }\n\n // /accounts/{accountId}/billing-periods/{id}\n billingPeriod(id: number) {\n return new APIResourceBillingPeriod(this, id);\n }\n\n // /account-services/{id}/billing-period\n serviceBillingPeriod(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('account-services', id, 'billing-period');\n }\n\n // /accounts/{accountId}/visual-test/access\n visualTestAccess() {\n return new APIResource(this).push('visual-tests', 'access');\n }\n\n // /accounts/{accountId}/account-services\n accountServices() {\n return new APIList(this).push('account-services');\n }\n\n // /accounts/{accountId}/account-services/{id}\n accountService(id: number) {\n return new APIList(this).push('account-services', id);\n }\n\n // /accounts/{accountId}/services\n services() {\n return new APIResource(this).push('services');\n }\n\n // /accounts/{accountId}/user-usage-details\n userUsageDetails() {\n return new APIList(this).push('user-usage-details');\n }\n\n // /accounts/{accountId}/usage-details\n usageDetails() {\n return new APIList(this).push('usage-details');\n }\n\n // /accounts/{accountId}/usage-details-summary\n usageDetailsSummary() {\n return new APIResource(this).push('usage-details-summary');\n }\n\n}\n\nexport default APIResourceAccount;\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Broker} from './models/Broker';\nimport {NoData, NoQueryParams} from './models/HTTP';\n\nexport class APIResourceBroker extends APIResource {\n\n /**\n * /broker\n */\n constructor(parent: API) {\n\n super(parent);\n this.push('broker');\n }\n\n // /broker/hubs\n hubs() {\n return new APIList(this).push('hubs');\n }\n\n}\n\nexport default APIResourceBroker\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser} from './models/Browser';\nimport {Device, DeviceProperiesData, DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams} from './models/HTTP';\n\n\nexport class APIResourceDevice extends APIResource {\n\n /**\n * /devices/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('devices', id);\n }\n\n // /devices/{id}/properties\n properties() {\n return new APIList(this).push('properties');\n }\n\n browsers() {\n return new APIList(this).push('browsers');\n }\n\n}\n\nexport default APIResourceDevice\n","import {API} from '../API';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {DeviceProperty} from './models/Device';\nimport {CollectionBasicQueryParams, NoQueryParams} from './models/HTTP';\nimport {LabelData, LabelGroup} from './models/LabelGroup';\n\nexport class APIResourceLabelGroup extends APIResource {\n\n /**\n * /label-groups/{id}\n */\n constructor(parent: API, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('label-groups', id);\n }\n\n // /label-groups/{id}/labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /label-groups/{id}/labels/{id}\n label(id: number) {\n return new APIResource(this).push('labels', id);\n }\n\n}\n\nexport default APIResourceLabelGroup\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList';\nimport {FilesQueryParams} from './class/FilesQueryParams';\nimport {FileData, UploadObj, UserFile} from './models/UserFile';\n\n\nexport class APIListFiles extends APIList {\n\n /**\n * /files\n */\n constructor(parent: APIEntity | API) {\n super(parent);\n this.push('files');\n }\n\n /**\n * Simplifies process of uploading\n * /files\n */\n upload(obj: UploadObj): this {\n // For NodeJS\n // @ts-ignore\n if (global.isNodeJs) {\n return this.nodeUpload(obj);\n } else {\n /**\n * Browser\n * @todo\n */\n throw new Error('Not supported yet!');\n }\n }\n\n private nodeUpload(file: UploadObj): this {\n const fs = require('fs');\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', fs.createReadStream(file.dir + '/' + file.filename), {\n filename: file.filename\n });\n return this.post().headers(form.getHeaders()).data(form);\n }\n\n}\n\nexport default APIListFiles\n","import {APIList} from './APIList'\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIResource} from './APIResource'\n\n\nexport class APIResourceChannel extends APIResource {\n\n /**\n * /users/{id}/notifications/channels/{type}\n */\n constructor(parent: APIListNotifications, type: string) {\n if (type == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('channels', type);\n }\n\n // /channels/{type}/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n}\n\nexport default APIResourceChannel;\n","import {APIList} from './APIList';\nimport {APIResourceChannel} from './APIResourceChannel';\nimport {APIResourceUser} from './APIResourceUser';\nimport {Enum} from './models/Enum';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Notification, NotificationsData} from './models/Notification';\n\n\nexport class APIListNotifications extends APIList {\n\n /**\n * /notifications\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('notifications');\n }\n\n // /notifications/scopes\n scopes() {\n return new APIList(this).push('scopes');\n }\n\n // /notifications/channels\n channels() {\n return new APIList(this).push('channels');\n }\n\n channel(type: string) {\n return new APIResourceChannel(this, type);\n }\n\n}\n\nexport default APIListNotifications\n","import {APIList} from './APIList';\nimport {APIResource} from './APIResource';\nimport {APIResourceUser} from './APIResourceUser';\nimport {\n RunsConfigParams,\n TestRun,\n TestRunConfig,\n TestRunsQueryParams\n} from './models/TestRun';\n\n\nexport class APIListRuns extends APIList {\n\n /**\n * /runs\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('runs');\n }\n\n // /runs/config\n config() {\n return new APIResource(this).push('config');\n }\n\n}\n\nexport default APIListRuns\n","import {Method} from 'axios';\nimport {APIList} from './APIList';\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData} from './models/HTTP';\nimport {SmartbearTunnel, TunnelQueryParams} from './models/SmartbearTunnel';\n\n\nexport class APIListSmartbearTunnels extends APIList {\n\n protected ALLOWED_HTTP_METHODS: Array = ['GET'];\n\n /**\n * /tunnels\n */\n constructor(parent: APIResourceUser) {\n super(parent);\n this.push('tunnels');\n }\n\n /**\n * Sets tunnel activity parameter\n */\n active(active: boolean): this {\n return this.params({active: active});\n }\n}\n\nexport default APIListSmartbearTunnels;\n","\nimport {APIResource} from './APIResource'\nimport {APIResourceUser} from './APIResourceUser';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport {Message} from './models/Message';\nimport {Notification, NotificationData} from './models/Notification';\n\nexport class APIResourceNotification extends APIResource {\n\n /**\n * /notifications/{id}\n */\n constructor(parent: APIResourceUser, id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n this.push('notifications', id);\n }\n\n // /notifications/{id}/test\n test() {\n return new APIResource(this).push('test');\n }\n\n}\n\nexport default APIResourceNotification\n","import {API} from '../API';\nimport {APIList} from './APIList';\nimport {APIListFiles} from './APIListFiles';\nimport {APIListNotifications} from './APIListNotifications';\nimport {APIListRuns} from './APIListRuns';\nimport {APIListServices} from './APIListServices';\nimport {APIListSmartbearTunnels} from './APIListSmartbearTunnels';\nimport {APIResource} from './APIResource';\nimport {APIResourceAccessGroup} from './APIResourceAccessGroup';\nimport {APIResourceDeviceGroup} from './APIResourceDeviceGroup';\nimport {APIResourceDeviceSessionStandalone} from './APIResourceDeviceSessionStandalone';\nimport {APIResourceFile} from './APIResourceFile';\nimport {APIResourceNotification} from './APIResourceNotification';\nimport {APIResourceProject} from './APIResourceProject';\nimport {AccessGroup, AccessGroupsData} from './models/AccessGroup';\nimport {DeviceGroup, DeviceGroupData, DeviceGroupIdsData, DeviceGroupWithPublicParams} from './models/DeviceGroup';\nimport {DeviceStatistics} from './models/DeviceStatistics';\nimport {DeviceUsage} from './models/DeviceUsage';\nimport {Framework} from './models/Framework';\nimport {Project, UserProjectData, UserProjectQueryParams} from './models/Project';\nimport {MarkAccountOwnerData, User, UserDeleteData} from './models/User';\nimport {UiPreferencesData, UserPreference, UserPreferenceData} from './models/UserPreference';\nimport {StatisticQueryParams, UserStatistics} from './models/UserStatistics';\nimport {DeviceSession, DeviceSessionData, DeviceSessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams, QueryParams} from './models/HTTP';\nimport {DeviceStatisticQueryParam, DeviceUsageQueryParams} from './models/Device';\n\nexport class APIResourceUser extends APIResource {\n\n /**\n * /users/{id} | /me\n */\n constructor(parent: API, id: number | 'me') {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n super(parent);\n\n if (id === 'me') {\n this.push('me');\n } else if (typeof id === 'number') {\n this.push('users', id);\n } else {\n throw new TypeError('id is not a number');\n }\n }\n\n // /users/{id}/services\n services() {\n return new APIListServices(this);\n }\n\n // /users/{id}/device-groups\n deviceGroups() {\n return new APIList>(this).push('device-groups');\n }\n\n // /users/{id}/device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /users/{id}/device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /users/{id}/device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSessionStandalone(this, id);\n }\n\n // /users/{id}/mark-account-owner\n markAccountOwner() {\n return new APIResource(this).push('mark-account-owner').post();\n }\n\n // /users/{id}/projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /users/{id}/projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /users/{id}/files\n files() {\n return new APIListFiles(this);\n }\n\n // /users/{id}/files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /users/{id}/runs\n runs() {\n return new APIListRuns(this);\n }\n\n // /users/{id}/available-frameworks\n availableFrameworks() {\n return new APIList(this).push('available-frameworks');\n }\n\n /**\n * /users/{id}/reset-api-key\n */\n resetApiKey() {\n return new APIResource(this).push('reset-api-key');\n }\n\n // /users/{id}/restore\n restore() {\n return new APIResource(this).push('restore');\n }\n\n // /users/{id}/feedback\n feedback() {\n return new APIResource(this).push('feedback');\n }\n\n // /users/{id}/notifications\n notifications() {\n return new APIListNotifications(this);\n }\n\n // /users/{id}/notifications/{id}\n notification(id: number) {\n return new APIResourceNotification(this, id);\n }\n\n // /users/{id}/preferences\n preferences() {\n return new APIResource(this).push('preferences');\n }\n\n // /users/{id}/ui-preferences\n uiPreferences() {\n return new APIResource(this).push('ui-preferences');\n }\n\n // /users/{id}/device-usage\n deviceUsage() {\n return new APIList(this).push('device-usage');\n }\n\n // /users/{id}/statistics\n statistics() {\n return new APIResource(this).push('statistics');\n }\n\n // /users/{id}/device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /users/{id}/access-groups\n accessGroups() {\n return new APIList(this).push('access-groups');\n }\n\n // /users/{id}/access-groups/{id}\n accessGroup(id: number) {\n return new APIResourceAccessGroup(this, id);\n }\n\n // /users/{id}/tunnels/{id}\n smartbearTunnel(id: number) {\n return new APIResource(this).push('tunnels', id);\n }\n\n // /users/{id}/tunnels\n smartbearTunnels() {\n return new APIListSmartbearTunnels(this);\n }\n\n deleteAccount() {\n return new APIResource(this).push('delete');\n }\n}\n\nexport default APIResourceUser\n","import {API} from '../API';\nimport {APIResource} from './APIResource'\nimport {NoQueryParams} from './models/HTTP';\nimport {LoginData, User} from './models/User';\n\nexport class APIResourceUserSession extends APIResource {\n\n // /user-sessions\n constructor(parent: API) {\n super(parent);\n this.push('user-sessions');\n }\n\n // /user-sessions/login\n login(data: LoginData) {\n return new APIResource(this).push('login').post().data(data);\n }\n\n // /user-sessions/logout\n logout() {\n return new APIResource(this).push('logout').post();\n }\n\n // /user-sessions/oauth/authorize/{name}-login\n sso(name: string) {\n return new APIResource(this).push('oauth', 'authorize', name + '-login');\n }\n\n // /user-sessions/oauth/authorize/sbid-login\n sbidCallbackUrl() {\n return new APIResource(this).push('oauth', 'authorize', 'sbid-login').toUrl(true);\n }\n\n}\n\nexport default APIResourceUserSession\n","import {AxiosInstance} from 'axios';\n\n// this version of axios has some issue paired with rollup and is not handling default import correctly\n// as a workaround we need to use require instead of import until migrating to newer axios version.\n//\n// Axios has been updated to version 1.13.2. Due to issues related to how axios exports are handled between CommonJS and ES Module\n// as a workaround we need to use require instead of import in case we want to support both CJS and ESM.\n// For CommonJS output in the consumer project (f.ex cloud-frontend), the workaround may still be needed. For ESM, the default import should work.\nconst axios = require('axios').default;\n// @ts-ignore\nimport {version} from '../package.json';\nimport {APIAdminResource} from './api/APIAdminResource';\nimport {APIAdminResourceCluster} from './api/APIAdminResourceCluster';\nimport {APIList} from './api/APIList';\nimport {APIListDevices} from './api/APIListDevices';\nimport {APIListProperties} from './api/APIListProperties';\nimport {APIListServices} from './api/APIListServices';\nimport {APIListUsers} from './api/APIListUsers';\nimport {APIResource} from './api/APIResource';\nimport {APIResourceAccount} from './api/APIResourceAccount';\nimport {APIResourceBroker} from './api/APIResourceBroker';\nimport {APIResourceDevice} from './api/APIResourceDevice';\nimport {APIResourceDeviceGroup} from './api/APIResourceDeviceGroup';\nimport {APIResourceDeviceSession} from './api/APIResourceDeviceSession';\nimport {APIResourceFile} from './api/APIResourceFile';\nimport {APIResourceLabelGroup} from './api/APIResourceLabelGroup';\nimport {APIResourceProject} from './api/APIResourceProject';\nimport {APIResourceRun} from './api/APIResourceRun';\nimport {APIResourceUser} from './api/APIResourceUser';\nimport {APIResourceUserSession} from './api/APIResourceUserSession';\nimport {Cluster} from './api/models/Cluster';\nimport {CollectionQueryParams, NoData, NoQueryParams} from './api/models/HTTP';\nimport {License} from './api/models/License';\nimport {Project} from './api/models/Project';\nimport {Property} from './api/models/Property';\nimport {UserFile, UserFileData, UserFileParams} from './api/models/UserFile';\nimport {ApiConfig} from './ApiConfig';\nimport './finka';\nimport {LabelGroup} from './api/models/LabelGroup';\n\n// @ts-ignore\nif (globalThis.isNodeJs) {\n // Set User-Agent\n axios.defaults.headers.common['User-Agent'] = `Bitbar Cloud API Client for JavaScript v${version}`;\n}\n\n// Disable max content length\naxios.defaults.maxContentLength = 1073741824; // 1GB\n\n/**\n * API\n * Root for other API resources\n */\nexport class API {\n axios: AxiosInstance;\n\n private axiosConfig: ApiConfig = {};\n\n get baseUrl(): string {\n return this.axiosConfig.baseURL;\n }\n\n\n constructor(private config: ApiConfig) {\n if (config == null) {\n throw new Error('config cannot be empty');\n } else if (this.config.cloudUrl == null) {\n throw new TypeError('cloudUrl cannot be empty');\n } else if (typeof this.config.cloudUrl !== 'string') {\n throw new TypeError('cloudUrl must be a string');\n } else if (!/^https?:\\/\\/.{2,}/.test(this.config.cloudUrl)) {\n throw new Error(`cloudUrl doesn't look like a URL`);\n }\n\n // Validate and correct cloudUrl if needed\n this.axiosConfig.baseURL = this.config.cloudUrl.replace(/\\/+$/, '') + '/api'\n\n // Check v2\n this.config.v2 = !!this.config.v2;\n if (this.config.v2) {\n this.axiosConfig.baseURL += '/v2';\n }\n\n // Check if apiKey is set\n if (this.config.apiKey) {\n if (typeof this.config.apiKey !== 'string') {\n throw new TypeError('apiKey must be a string');\n } else if (!/^[A-Za-z0-9]{32}$/.test(this.config.apiKey)) {\n throw new Error('apiKey is in the wrong format');\n }\n\n this.axiosConfig.auth = {\n username: this.config.apiKey,\n password: ''\n };\n }\n\n // With XSRFToken\n this.axiosConfig.withXSRFToken = true;\n // With credentials\n this.axiosConfig.withCredentials = config.withCredentials == null ? false : config.withCredentials;\n\n // Create axios instance\n this.axios = axios.create(this.axiosConfig);\n }\n\n\n // --- Resources starts here --- //\n\n // /account/{id}\n account(id: number) {\n return new APIResourceAccount(this, id);\n }\n\n // /admin\n admin() {\n return new APIAdminResource(this);\n }\n\n // /broker\n broker() {\n return new APIResourceBroker(this);\n }\n\n // /clusters\n clusters() {\n return new APIList(this).push('clusters');\n }\n\n // /clusters/{id}\n cluster(id: number) {\n return new APIAdminResourceCluster(this, id);\n }\n\n // /devices/{id}\n device(id: number) {\n return new APIResourceDevice(this, id);\n }\n\n // /device-groups/{id}\n deviceGroup(id: number) {\n return new APIResourceDeviceGroup(this, id);\n }\n\n // /device-groups\n deviceGroups() {\n return new APIList(this).push('device-groups');\n }\n\n // /devices\n devices() {\n return new APIListDevices(this);\n }\n\n // /device-sessions/{id}\n deviceSession(id: number) {\n return new APIResourceDeviceSession(this, id);\n }\n\n // /device-sessions\n deviceSessions() {\n return new APIList(this).push('device-sessions');\n }\n\n // /device-statistics\n deviceStatistics() {\n return new APIList(this).push('device-statistics');\n }\n\n // /enums\n enums() {\n return new APIResource(this).push('enums');\n }\n\n // /files\n files() {\n return new APIList(this).push('files');\n }\n\n // /files/{id}\n file(id: number) {\n return new APIResourceFile(this, id);\n }\n\n // /label-groups\n labelGroups() {\n return new APIList(this).push('label-groups');\n }\n\n // /label-groups/{id}\n labelGroup(id: number) {\n return new APIResourceLabelGroup(this, id);\n }\n\n // /labels\n labels() {\n return new APIList(this).push('labels');\n }\n\n // /licenses\n licenses() {\n return new APIResource(this).push('licenses');\n }\n\n // /license\n license() {\n return new APIResource(this).push('license');\n }\n\n /*\n /me or /admin\n Requires prototype extension covering ACL check\n */\n ma(): APIAdminResource | APIResourceUser {\n throw new Error('Requires prototype extension covering ACL check');\n }\n\n // /me\n me() {\n return this.user('me');\n }\n\n // /projects\n projects() {\n return new APIList(this).push('projects');\n }\n\n // /projects/{id}\n project(id: number) {\n return new APIResourceProject(this, id);\n }\n\n // /properties\n properties() {\n return new APIListProperties(this);\n }\n\n // /properties/{id}\n property(id: number) {\n return new APIResource(this).push('properties', id);\n }\n\n // /runs/{id}\n run(id: number) {\n return new APIResourceRun(this, id);\n }\n\n // /services\n services() {\n return new APIListServices(this);\n }\n\n // /user/{id}\n user(id: number | 'me') {\n return new APIResourceUser(this, id);\n }\n\n // /users\n users() {\n return new APIListUsers(this);\n }\n\n // /user-sessions\n userSession() {\n return new APIResourceUserSession(this);\n }\n\n}\n\n\nexport default API;\n","/* istanbul ignore file */\n\nimport {API} from './API';\nimport {FilterBuilder} from './FilterBuilder';\n\nexport {API} from './API';\nexport {FilterBuilder} from './FilterBuilder';\n\n/**\n * Cloud API Client\n */\nexport const CloudAPIClient = {\n API,\n FilterBuilder\n}\n\nexport default CloudAPIClient;\n","import {CollectionQueryParams} from './HTTP';\n\nexport enum AccessGroupScope {\n USER = 'USER',\n ACCOUNT = 'ACCOUNT',\n GLOBAL = 'GLOBAL'\n}\n\nexport type AccessGroup = {\n id: number;\n name: string;\n scope: AccessGroupScope;\n userEmail: string;\n userId: number;\n}\n\nexport type AccessGroupUsersQueryParams = CollectionQueryParams & {\n email: string;\n}\n\nexport type AccessGroupData = Pick;\n\nexport type AccessGroupsData = Omit;\n","import {CollectionQueryParams} from './HTTP';\n\n\nexport type Account = {\n activeServiceName: string,\n comment: string,\n createTime: number,\n dedicatedDevicesConcurrency: number,\n dedicatedDevicesCount: number,\n dedicatedDevicesRatio: number,\n dedicatedDevicesUsage: number,\n id: number,\n invoiceDetails: Invoice,\n name: string,\n publicDevicesConcurrency: number,\n publicDevicesRatio: number,\n publicDevicesUsage: number,\n slmOrganizationId: string,\n userName: string\n}\n\nexport type Invoice = {\n address: string,\n city: string,\n code: string,\n country: string,\n state: string\n}\n\nexport type AccountData = Partial<{\n comment: string,\n invoiceDetails: Invoice,\n name: string,\n slmOrganizationId: string;\n userName: string\n}>\n\nexport type AccountUsageSummary = {\n sessionsCount: number,\n duration: number,\n deviceModelsCount: number,\n tunnelEnabledCount: number,\n osVersionsCount: number,\n projectsCount: number,\n usersCount: number,\n previous: AccountUsageSummary\n}\n\nexport type AccountUsage = {\n timestamp: number,\n timestampLabel: string,\n sessionsCount: number,\n automatedConcurrency: number,\n automatedUsage: number,\n dedicatedConcurrency: number,\n dedicatedUsage: number,\n manualConcurrency: number,\n manualUsage: number\n}\n\nexport type AccountUserSessionUsage = {\n devices: number,\n duration: number,\n osVersions: number,\n sessions: number,\n sessionShare: number\n userId: number,\n userName: string,\n}\n\nexport type AccountSessionUsage = {\n createTime: number,\n deviceModelName: string,\n duration: number,\n osVersion: string,\n type: SessionUsageType,\n userId: number,\n userName: string\n}\n\nexport type AccountSessionUsageSummary = {\n totalTime: number,\n usage: Record\n}\n\nexport enum SessionUsageType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL = 'MANUAL',\n DEDICATED_AUTOMATIC = 'DEDICATED_AUTOMATIC',\n DEDICATED_MANUAL = 'DEDICATED_MANUAL'\n}\n\nexport enum UtilizationType {\n ALL = 'all',\n PUBLIC = 'public',\n DEDICATED = 'dedicated'\n}\n\nexport enum SessionType {\n ALL = 'all',\n AUTOMATED = 'automated',\n MANUAL = 'manual'\n}\n\nexport enum TimeResolution {\n HOUR = 'hour',\n DAY = 'day'\n}\n\nexport type AccountUsageParams = CollectionQueryParams & {\n grouping?: TimeResolution,\n sessionType?: SessionType,\n utilizationType?: UtilizationType,\n}\n\nexport type AccountUsageSummaryParams = CollectionQueryParams & {\n grouping?: TimeResolution,\n}\n","import {ServiceUnit} from './Service';\n\nexport enum PaymentStatus {\n SUCCEEDED = 'SUCCEEDED',\n FAILED = 'FAILED',\n REDIRECTED = 'REDIRECTED'\n}\n\nexport enum PaymentMethod {\n PAYPAL = 'PAYPAL',\n BRAINTREE = 'BRAINTREE',\n STRIPE = 'STRIPE',\n INVOICE = 'INVOICE',\n PROMOTION = 'PROMOTION',\n AWS = 'AWS'\n}\n\nexport enum DeactivateReason {\n INITIAL_FAILURE = 'INITIAL_FAILURE',\n SCA_FAILURE = 'SCA_FAILURE',\n CHARGE_FAILURE = 'CHARGE_FAILURE',\n CANCEL = 'CANCEL',\n SUSPENDED = 'SUSPENDED',\n ANOTHER_PURCHASE = 'ANOTHER_PURCHASE'\n}\n\nexport type ServicePaymentStatus = {\n accountService: AccountService;\n message: string;\n redirectUrl: string;\n status: PaymentStatus;\n}\n\nexport type AccountService = {\n accountId: number;\n accountName: string;\n activatedById: number;\n activatedByName: string;\n active: boolean;\n braintreeId: string;\n createTime: number;\n deactivateReason: DeactivateReason;\n deactivatedById: number;\n deactivatedByName: string;\n endTime: number;\n finished: boolean;\n id: number;\n lastPaymentTime: number;\n paymentMethod: PaymentMethod;\n price: number;\n serviceCount: number;\n serviceId: number;\n serviceName: string;\n slmLicenseId: string;\n startTime: number;\n subscriptionManagementURL: string;\n unit: ServiceUnit;\n unitCount: number;\n vatRate: number;\n}\n\nexport type AccountServiceData = Pick & {count: number};\n","import {DevicesQueryParams, Platform, SoftwareVersion} from './Device';\nimport {OsType} from './Enum';\nimport {CollectionQueryParams} from './HTTP';\nimport {Cluster} from './Cluster';\n\n\nexport enum InitStep {\n SKIP = 'SKIP',\n REBOOT = 'REBOOT',\n REBOOT_WITH_UNLOCK = 'REBOOT_WITH_UNLOCK',\n UNLOCK_ONLY = 'UNLOCK_ONLY'\n}\n\nexport enum DeviceState {\n OFFLINE_CLEANING = 'OFFLINE_CLEANING',\n OFFLINE_DIRTY = 'OFFLINE_DIRTY',\n OFFLINE_FREE = 'OFFLINE_FREE',\n OFFLINE_TESTING = 'OFFLINE_TESTING',\n ONLINE_CLEANING = 'ONLINE_CLEANING',\n ONLINE_DIRTY = 'ONLINE_DIRTY',\n ONLINE_FREE = 'ONLINE_FREE',\n ONLINE_TESTING = 'ONLINE_TESTING'\n}\n\nexport type AdminDevice = {\n accountId: number | null;\n accountName: string | null;\n browsersMatched: boolean;\n cluster: Cluster;\n comment: string;\n dedicationEndTime: number | null;\n deviceModelId: number;\n deviceModelName: string;\n enabled: boolean;\n fingerprint: string;\n forceRestore: boolean;\n id: number;\n initStep: InitStep;\n ipAddress: string;\n lastOnlineTime: number;\n location: string;\n locked: boolean;\n manufacturer: string;\n name: string;\n osType: OsType;\n ownerHasAccountService: boolean;\n platform: Platform;\n serialId: string;\n softwareVersion: SoftwareVersion;\n state: DeviceState;\n stateChangeTime: number;\n stateTime: number;\n testTimeLimit: number;\n unlockGesture: string;\n}\n\nexport type AdminDevicesQueryParams = Pick & CollectionQueryParams;\n\nexport type AdminDeviceData = Pick & {\n apiLevel: number;\n releaseVersion: string;\n};\n","import {CollectionQueryParams} from './HTTP';\nimport {DeviceSessionState} from './DeviceSession';\nimport {OsType} from './Enum';\n\nexport enum FrameworkType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL_APP = 'MANUAL_APP',\n MANUAL_WEB = 'MANUAL_WEB',\n REMOTE = 'REMOTE'\n}\n\nexport type AdminFrameworkStatistics = {\n cloudName: string;\n count: number;\n day: number;\n deviceModelId: number;\n deviceModelName: string;\n frameworkId: number;\n frameworkName: string;\n id: number;\n osType: OsType;\n releaseVersion: string;\n state: DeviceSessionState;\n type: FrameworkType;\n userEmail: string;\n userId: number;\n}\n\nexport interface AdminStatisticsParams extends CollectionQueryParams {\n days: number;\n}\n","import {PaymentMethod} from './AccountService';\nimport {DeviceSessionType} from './DeviceSession';\nimport {OsType} from './Enum';\nimport {QueryParams} from './HTTP';\n\nexport enum BillingType {\n BUY = 'BUY',\n CHARGE = 'CHARGE',\n CANCEL = 'CANCEL'\n}\n\nexport type BillingPeriod = {\n accountId: number;\n accountName: string;\n accountServiceId: number;\n additionalHours: number;\n additionalHoursPrice: number;\n apiBillingPeriodType: BillingType;\n createTime: number;\n endBillingPeriod: number;\n id: number;\n lastPaymentDate: number;\n paid: boolean;\n paymentMethod: PaymentMethod;\n plan: string;\n servicePrice: number;\n startBillingPeriod: number;\n subscriptionEnd: number;\n subscriptionStart: number;\n totalPrice: number;\n usages: Array;\n}\n\nexport type BillingPeriodUsage = {\n duration: number;\n id: number;\n osType: OsType;\n type: DeviceSessionType;\n}\n\nexport interface BillingPeriodQueryParams extends QueryParams {\n onDate: number;\n}\n","export enum BrokerType {\n MOBILE = 'MOBILE',\n DESKTOP = 'DESKTOP'\n}\n\nexport type Broker = {\n id: number;\n location: string;\n type: BrokerType;\n url: string;\n}\n","\nimport {AdminDevice} from './AdminDevice';\nimport {CollectionResponse, QueryParams} from './HTTP';\n\nexport type Cluster = {\n devices: CollectionResponse;\n enabled: boolean;\n id: number;\n ipAddress: string;\n jenkinsUrl: string;\n jenkinsVersion: string;\n location: string;\n name: string;\n pluginVersion: string;\n region: string;\n state: ClusterState;\n stateChangeTime: number;\n stateTime: number;\n type: ClusterType;\n url: string;\n}\n\nexport enum ClusterState {\n 'OFFLINE',\n ONLINE = 'ONLINE',\n RESTARTING = 'RESTARTING',\n QUIET_DOWN = 'QUIET_DOWN',\n MAINTENANCE = 'MAINTENANCE'\n}\n\nexport enum ClusterType {\n BARE_METAL = 'BARE_METAL',\n EC2 = 'EC2',\n VM = 'VM'\n}\n\nexport interface ClusterParams extends QueryParams {\n withDevices: boolean;\n}\n\nexport type ClusterData = Pick & {\n quietDown: boolean;\n restart: boolean;\n turnMaintenance: boolean;\n}\n","import {Browser} from './Browser';\nimport {OsType} from './Enum';\nimport {CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, QueryParams} from './HTTP';\nimport {TestRunsQueryParams} from './TestRun';\n\n\nexport enum DeviceGroupOrigin {\n STATIC = 'STATIC',\n DYNAMIC = 'DYNAMIC',\n HYBRID = 'HYBRID'\n}\n\nexport enum Platform {\n IOS = 'IOS',\n ANDROID = 'ANDROID',\n WINDOWS = 'WINDOWS',\n MAC = 'MAC',\n LINUX = 'LINUX',\n UNDEFINED = 'UNDEFINED'\n}\n\nexport enum SupportedCreators {\n MANUAL = 'MANUAL',\n ROBOT = 'ROBOT',\n AUTOMATIC = 'AUTOMATIC'\n}\n\nexport enum PoolSize {\n XL= 'XL',\n L = 'L',\n M = 'M',\n S = 'S'\n}\n\nexport enum Code {\n HIGH = 'HIGH',\n MODERATE = 'MODERATE',\n LOW = 'LOW',\n NONE = 'NONE',\n}\n\nexport type DeviceAvailability = {\n poolSize: PoolSize,\n code: Code\n}\n\nexport type DeviceProperty = {\n displayName: string;\n id: number;\n labelGroupName: string;\n name: string;\n propertyGroupId: number;\n propertyGroupName: string;\n}\n\nexport type SoftwareVersion = {\n apiLevel: number;\n id: number;\n releaseVersion: string;\n}\n\nexport enum LockReason {\n TESTING = 'TESTING',\n CLEANING = 'CLEANING',\n NOT_OPERATIONAL = 'NOT_OPERATIONAL'\n}\n\nexport type Device = {\n accountId: number;\n accountName: string;\n available: boolean;\n availability: DeviceAvailability;\n browsers: CollectionResponse;\n creditsPrice: number;\n deviceGroupOrigin: DeviceGroupOrigin;\n displayName: string;\n enabled: boolean;\n frame100Url: string;\n frame160Url: string;\n frame400Url: string;\n frame80Url: string;\n frameExtraWidth: number;\n id: number;\n imageCornerRadius: number;\n imageHeight: number;\n imageLeft: number;\n imagePrefix: string;\n imageTop: number;\n imageWidth: number;\n locked: boolean;\n lockReason: LockReason;\n manufacturer: string;\n online: boolean;\n osType: OsType;\n platform: Platform;\n properties: CollectionResponse;\n softwareVersion: SoftwareVersion;\n supportedCreators: Array;\n}\n\nexport type DeviceCleanupConfiguration = {\n content: string;\n createTime: number;\n createdByEmail: string;\n createdById: number;\n description: string;\n name: string;\n enabled: boolean;\n global: boolean;\n example: true;\n id: number;\n lastModificationTime: number;\n osType: OsType;\n}\n\nexport type DeviceCleanupConfigurationData = {\n deviceCleanupConfigurationId: number;\n}\n\nexport type DeviceLabelData = {\n labelId: number;\n}\n\nexport interface DeviceProperiesData extends QueryParams {\n labelId: number;\n}\n\nexport interface CleanupConfigurationSpecificData extends QueryParams {\n serialId: string;\n}\n\nexport interface DeviceTimeSummaryQueryParams extends CollectionBasicQueryParams {\n forWholeAccount: boolean;\n}\nexport interface DeviceUsageQueryParams extends TestRunsQueryParams {\n startTime: number;\n}\n\nexport interface DeviceStatisticQueryParam extends TestRunsQueryParams {\n mode: string;\n}\n\nexport interface DevicesQueryParams extends CollectionQueryParams {\n labelIds: Array;\n liveTestingOnly: boolean;\n withBrowsers: boolean;\n withDedicated: boolean;\n withDisabled: boolean;\n withProperties: boolean;\n withSupportedCreators: boolean;\n}\n","export enum CriterionField {\n NAME = 'NAME',\n FINGERPRINT = 'FINGERPRINT',\n SERIAL_ID = 'SERIAL_ID',\n UNLOCK_GESTURE = 'UNLOCK_GESTURE',\n SOFTWARE_VERSION = 'SOFTWARE_VERSION',\n INIT_STEP = 'INIT_STEP',\n ACCOUNT = 'ACCOUNT',\n BROWSERS = 'BROWSERS'\n}\n\nexport type DeviceModelCriterion = {\n createTime: number;\n field: CriterionField;\n id: number;\n labelGroupDisplayName: string;\n labelGroupId: number;\n labelGroupName: string;\n}\n\nexport type DeviceModelCriterionData = Pick;\n","export enum RetentionStrategy {\n CLUSTER_ON_OFF = 'CLUSTER_ON_OFF',\n MIN_FREE_MAX_TOTAL = 'MIN_FREE_MAX_TOTAL',\n POOL_MANAGER_AWARE = 'POOL_MANAGER_AWARE'\n}\n\nexport type DeviceModelPool = {\n createTime: number;\n enabled: boolean;\n id: number;\n location: string;\n maxTotal: number;\n minAvailable: number;\n name: string;\n numberOfBrowsers: number;\n osVersion: string;\n retentionStrategy: RetentionStrategy;\n running: number;\n}\n\nexport type DeviceModelPoolData = Pick;\n","export enum ProblemType {\n CLEANING = 'CLEANING',\n DIRTY = 'DIRTY',\n OFFLINE = 'OFFLINE',\n LOW_BATTERY = 'LOW_BATTERY',\n HIGH_FAIL_RATE = 'HIGH_FAIL_RATE',\n NO_INTERNET_CONNECTION = 'NO_INTERNET_CONNECTION'\n}\n\nexport type DeviceProblem = {\n clusterId: number;\n clusterName: string;\n deviceId: number;\n deviceModelId: number;\n deviceModelName: string;\n deviceName: string;\n id: number;\n problems: Array;\n location: string;\n}\n\nexport type DeviceProblemPair = {\n id: number;\n type: ProblemType;\n value: any;\n}\n","import {Device} from './Device';\nimport {CollectionBasicQueryParams} from './HTTP';\n\nexport type TunnelSettings = {\n domain: string;\n email: string;\n}\n\nexport enum DeviceSessionType {\n AUTOMATIC = 'AUTOMATIC',\n MANUAL_APP = 'MANUAL_APP',\n MANUAL_WEB = 'MANUAL_WEB'\n}\n\nexport enum RetryState {\n NONE = 'NONE',\n MANUAL = 'MANUAL',\n AUTO = 'AUTO'\n}\n\nexport enum DeviceSessionState {\n ABORTED = 'ABORTED',\n EXCLUDED = 'EXCLUDED',\n FAILED = 'FAILED',\n FINISHING = 'FINISHING',\n RUNNING = 'RUNNING',\n SUCCEEDED = 'SUCCEEDED',\n TIMEOUT = 'TIMEOUT',\n WAITING = 'WAITING',\n WARNING = 'WARNING'\n}\n\nexport enum DeviceSessionStepType {\n WAITING = 'WAITING',\n PREPARING = 'PREPARING',\n UNINSTALL = 'UNINSTALL',\n INSTALL = 'INSTALL',\n RUNNING = 'RUNNING',\n SENDING_RESULTS = 'SENDING_RESULTS',\n PROCESSING_RESULTS = 'PROCESSING_RESULTS'\n}\n\nexport type DeviceSessionConfig = {\n adbVersion: string;\n browserName: string;\n browserVersion: string;\n deviceModelId: number;\n id: number;\n screenResolution: string;\n tunnelSettings: TunnelSettings;\n type: DeviceSessionConfig;\n url: string;\n}\n\nexport type DeviceSession = {\n abortTime: number;\n accountId: number;\n autoRetriesLeftCount: number;\n biometricInstrumentation: boolean;\n config: DeviceSessionConfig;\n createTime: number;\n clientSideId: string;\n device: Device;\n deviceInstanceId: number;\n deviceRunId: number;\n duration: number;\n endTime: number;\n excludeReason: string;\n externalId: string;\n id: number;\n installTime: number;\n name: string;\n projectId: number;\n projectName: string;\n retryable: boolean;\n retryState: RetryState;\n startTime: number;\n state: DeviceSessionState;\n successRatio: number;\n testCaseAllCount: number;\n testCaseFailedCount: number;\n testCasePassedCount: number;\n testCaseSkippedCount: number;\n testCaseSuccessCount: number;\n testRunId: number;\n testRunName: string;\n timeLimit: number;\n type: DeviceSessionType;\n uiLink: string;\n userEmail: string;\n userId: number;\n}\n\nexport type DeviceSessionCommand = {\n duration: number;\n httpMethod: string;\n id: number;\n requestBody: string;\n responseBody: string;\n responseCode: number;\n timestamp: number;\n uri: string;\n}\n\nexport type DeviceSessionStep = {\n deviceSessionId: number;\n excludeReason: string;\n failReason: string;\n finishTimeMS: number;\n id: number;\n startTimeMS: number;\n type: DeviceSessionStepType;\n}\n\nexport type DeviceSessionConnection = {\n createTime: number;\n deviceSessionId: number;\n endTime: number;\n externalId: string;\n host: string;\n id: number;\n password: string;\n path: string;\n port: number;\n type: string;\n urlSchema: string;\n}\n\nexport type DeviceSessionData = Omit & {configuration: DeviceSessionConfig};\n\nexport interface DeviceSessionQueryParams extends CollectionBasicQueryParams {\n withProperties: boolean;\n}\n\nexport interface SessionQueryParams extends CollectionBasicQueryParams {\n projectId: number;\n testRunId: number;\n}\n\nexport interface SessionRunStepQueryParams extends CollectionBasicQueryParams {\n runId: number;\n}\n\nexport interface SessionStepQueryParams extends SessionRunStepQueryParams {\n projectId: number;\n}\n\nexport enum SessionReleaseReason {\n INACTIVITY = 'INACTIVITY',\n TIMEOUT = 'TIMEOUT',\n USER_ACTION = 'USER_ACTION',\n CHANGE_DEVICE = 'CHANGE_DEVICE',\n WEBSOCKET_CLOSED = 'WEBSOCKET_CLOSED'\n}\n\nexport type DeviceSessionRelease = {\n reason: SessionReleaseReason;\n}\n","export enum OsType {\n IOS = 'IOS',\n ANDROID = 'ANDROID',\n DESKTOP = 'DESKTOP',\n UNDEFINED = 'UNDEFINED'\n}\n\nexport type Enum = {\n id: number;\n value: string;\n}\n","export enum LicenseStatus {\n ACTIVE = 'ACTIVE',\n EXPIRED = 'EXPIRED',\n INACTIVE = 'INACTIVE',\n CLOSED = 'CLOSED'\n}\n\nexport type BaseLicense = {\n enabled: boolean;\n};\n\nexport type FeatureLicense = {\n deviceLimit: number;\n deviceLimited: boolean;\n projectLimit: number;\n projectLimited: boolean;\n};\n\nexport type AndroidLicense = BaseLicense & FeatureLicense & {\n cts: CTSLicense;\n uiAutomator: UIAutomatorLicense;\n};\n\nexport type BuildLicense = BaseLicense & {\n limit: number;\n limited: boolean;\n};\n\nexport type DesktopLicense = BaseLicense & FeatureLicense;\n\nexport type GlobalLicense = FeatureLicense;\n\nexport type InspectorLicense = BaseLicense;\n\nexport type IOSLicense = BaseLicense & FeatureLicense;\n\nexport type RecorderLicense = BaseLicense & {\n limit: number;\n limited: boolean;\n};\n\nexport type ServerLicense = BaseLicense & {\n androidEnabled: boolean;\n iosEnabled: boolean;\n};\n\nexport type CTSLicense = BaseLicense;\n\nexport type UIAutomatorLicense = BaseLicense;\n\nexport type License = {\n activateTime: number;\n android: AndroidLicense;\n build: BuildLicense;\n closeTime: number;\n desktop: DesktopLicense;\n expireTime: number;\n global: GlobalLicense;\n id: number;\n inspector: InspectorLicense;\n ios: IOSLicense;\n privateInstance: boolean;\n recorder: RecorderLicense;\n server: ServerLicense;\n status: LicenseStatus;\n userEmail: string;\n userId: number;\n}\n\nexport type LicenseData = Pick & {\n androidDeviceLimit: number;\n androidEnabled: boolean;\n androidProjectLimit: number;\n buildEnabled: boolean;\n buildLimit: number;\n desktopDeviceLimit: number;\n desktopEnabled: boolean;\n desktopProjectLimit: number;\n globalDeviceLimit: number;\n globalProjectLimit: number;\n inspectorEnabled: boolean;\n iosDeviceLimit: number;\n iosEnabled: boolean;\n iosProjectLimit: number;\n privateInstance: boolean;\n unit: string;\n unitCount: number;\n}\n","import {QueryParams} from './HTTP';\n\n\nexport enum NotificationChannel {\n SLACK = 'SLACK',\n EMAIL = 'EMAIL',\n WEBHOOK = 'WEBHOOK'\n}\n\nexport enum NotificationScope {\n ALL = 'ALL',\n TEST_RUN = 'TEST_RUN',\n TEST_RUN_FAILURE = 'TEST_RUN_FAILURE',\n TEST_RUN_SUCCEEDED = 'TEST_RUN_SUCCEEDED',\n SYSTEM = 'SYSTEM',\n CHECK = 'CHECK',\n}\n\nexport type Notification = {\n channel: NotificationChannel;\n destination: string;\n id: number;\n projectId?: number;\n projectName?: string;\n scope: NotificationScope;\n userEmail: string;\n userId: number;\n}\n\nexport interface NotificationData extends QueryParams {\n scope: NotificationScope;\n}\n\nexport type NotificationsData = Pick;\n","import {OsType} from './Enum';\nimport {TestRunConfig, TestRunsQueryParams} from './TestRun';\n\nexport enum ArchivingStrategy {\n NEVER = 'NEVER',\n DAYS = 'DAYS',\n RUNS = 'RUNS'\n}\n\nexport type Project = {\n archiveTime: number | null;\n archivingItemCount: number;\n archivingStrategy: ArchivingStrategy;\n common: boolean;\n createTime: number;\n description: string;\n id: number;\n name: string;\n osType: OsType;\n readOnly: boolean;\n rowIndex: number;\n shared: boolean;\n sharedWithCaller: boolean;\n successRatio: number;\n testRunConfig: TestRunConfig;\n userEmail: string;\n userId: number;\n}\n\nexport type UserProjectData = Pick;\n\nexport interface UserProjectQueryParams extends TestRunsQueryParams {\n showStatistics: boolean;\n}\n","import {CollectionBasicQueryParams} from './HTTP';\n\nexport enum ScreenshotType {\n LANDSCAPE = 'LANDSCAPE',\n PORTRAIT = 'PORTRAIT'\n}\n\nexport type Screenshot = {\n fail: boolean;\n id: number;\n originalName: string;\n takeTimestamp: number;\n type: ScreenshotType;\n}\n\nexport interface ScreenshotQueryParams extends CollectionBasicQueryParams {\n name: string;\n}\n","import {PaymentMethod} from './AccountService';\nimport {CollectionQueryParams} from './HTTP';\nimport {Role} from './Role';\n\n\nexport type Service = {\n activateTime: number;\n activated: boolean;\n archiveTime: number;\n centPrice: number;\n commonId: string;\n customPlan: boolean;\n defaultConcurrences: Array;\n description: string;\n externalId: string;\n features: string;\n id: number;\n name: string;\n priceString: string;\n roles: Array;\n unit: ServiceUnit;\n}\n\nexport enum ServiceUnit {\n DAY = 'DAY',\n HOUR = 'HOUR',\n MONTH = 'MONTH',\n PROJECT = 'PROJECT',\n RUN = 'RUN',\n YEAR = 'YEAR'\n}\n\nexport interface AdminServicesParams extends CollectionQueryParams {\n activeOnly: boolean;\n inUse: boolean;\n notArchive: boolean;\n}\n\nexport type ServiceActivateData = {\n activateTime: number;\n}\n\nexport interface ServiceData {\n address?: string;\n cardNumber?: string;\n city?: string;\n count?: number;\n country?: string;\n cvv?: string;\n email?: string;\n expirationDate?: string;\n firstName?: string;\n lastName?: string;\n organization?: string;\n paymentMethod: PaymentMethod;\n phone?: string;\n serviceId: number;\n state?: string;\n stripeToken?: string;\n vatId?: string;\n zip?: string;\n}\n","import {QueryParams} from './HTTP';\n\n\nexport enum SharedResourceType {\n DEVICE_GROUP = 'DEVICE_GROUP',\n FILE = 'FILE',\n PROJECT = 'PROJECT',\n}\n\nexport type SharedResource = {\n id: number;\n name: string;\n resourceId: number;\n type: SharedResourceType;\n}\n\nexport interface ShareWithGroup extends QueryParams {\n accessGroupId: number;\n}\n\nexport interface ShareWithEmail extends QueryParams {\n email: string;\n}\n\nexport type ShareData = ShareWithGroup | ShareWithEmail;\n","import {Method} from 'axios';\nimport {CollectionResponse} from './HTTP';\n\n\nexport enum TestResult {\n PASSED = 'PASSED',\n FAILED = 'FAILED',\n SKIPPED = 'SKIPPED',\n NOT_AVAILABLE = 'NOT_AVAILABLE'\n}\n\nexport type TestCaseRun = {\n className: string;\n createTime: number;\n duration: number;\n errorMessage: string;\n id: number;\n methodName: string;\n result: TestResult;\n stacktrace: string;\n steps: CollectionResponse;\n suiteName: string;\n}\n\nexport type TestCaseRunStep = {\n description: string;\n duration: number;\n httpMethod: Uppercase;\n id: number;\n requestBody: string;\n responseBody: string;\n responseCode: number;\n timestamp: number;\n uri: string;\n}\n","import {Device} from './Device';\nimport {TunnelSettings} from './DeviceSession';\nimport {OsType} from './Enum';\nimport {CollectionBasicQueryParams, QueryParams} from './HTTP';\nimport {UserFile} from './UserFile';\nimport {DeviceGroup} from './DeviceGroup';\nimport {Framework} from './Framework';\n\n\nexport enum LimitationType {\n PACKAGE = 'PACKAGE',\n CLASS = 'CLASS'\n}\n\nexport enum TestScheduler {\n PARALLEL = 'PARALLEL',\n SERIAL = 'SERIAL',\n SINGLE = 'SINGLE',\n ALL_INSTANCES = 'ALL_INSTANCES'\n}\n\nexport enum TestState {\n WAITING = 'WAITING',\n RUNNING = 'RUNNING',\n FINISHED = 'FINISHED'\n}\n\n\nexport type TestRun = {\n abortedDeviceCount: number;\n config: TestRunConfig;\n createTime: number;\n deviceCount: number;\n displayName: string;\n errorsDeviceCount: number;\n excludedDeviceCount: number;\n executedTestCaseCount: number;\n executionRatio: number;\n failedTestCaseCount: number;\n finishedDeviceCount: number;\n frameworkId: number;\n frameworkName: string;\n id: number;\n logsFileId: number;\n message: string;\n 'number': number;\n projectId: number;\n projectName: string;\n retryable: boolean;\n rowIndex: number;\n runningDeviceCount: number;\n screenshotsFileId: number;\n startTime: number;\n startedByDisplayName: string;\n startedById: number;\n state: TestState;\n succeededDeviceCount: number;\n successRatio: number;\n successfulTestCaseCount: number;\n testCaseCount: number;\n timeoutedDeviceCount: number;\n uiLink: string;\n userId: number;\n waitingDeviceCount: number;\n warningDeviceCount: number;\n}\n\nexport enum TestRunConfigFileAction {\n COPY_TO_DEVICE = 'COPY_TO_DEVICE',\n INSTALL = 'INSTALL',\n RUN_TEST = 'RUN_TEST',\n}\n\nexport type TestRunConfigFile = {\n action: TestRunConfigFileAction;\n availableActions: Array;\n file: UserFile;\n id: number;\n};\n\nexport type TestRunParameter = {\n name?: string;\n key: string;\n value: string;\n label?: string;\n}\n\nexport type TRCDefaultSettings = {\n deviceLanguageCode: string;\n disableResigning: boolean;\n hookURL: string;\n instrumentationRunner: string;\n limitationType: string;\n limitationValue: string;\n scheduler: string;\n screenshotDir: string;\n withAnnotation: string;\n withoutAnnotation: string;\n timeout: string;\n projectName: string;\n testRunName: string;\n testRunParameters?: TestRunParameter[];\n biometricInstrumentation: boolean;\n}\n\nexport type TestRunConfig = TRCDefaultSettings & {\n appCrawlerRun: boolean;\n appiumBrokerAddress: string;\n appiumBrokerQueueName: string;\n applicationPassword: string;\n applicationUsername: string;\n availableDeviceGroups: DeviceGroup[];\n availableDevices: Array;\n availableFrameworks: Framework[];\n availableOsTypes: Array;\n clientSideTestConfig: any;\n computedDevices: Array;\n creditsPrice: number;\n deviceGroupId?: number;\n deviceIds: any;\n deviceNamePattern: string;\n files: Array | null;\n frameworkId: number;\n id: number;\n loadedPrevious: boolean;\n maxAutoRetriesCount: number;\n maxTestTimeout: any;\n maxWaitTime: number;\n osType: OsType;\n projectId: number;\n resignFiles: boolean;\n runAvailable: boolean;\n status: string;\n statusCode: number;\n testRunId: number;\n testRunNameGrouping: string;\n tunnelSettings: TunnelSettings;\n useSamples: boolean;\n usedDeviceGroupId: number;\n usedDeviceGroupName: string;\n videoRecordingEnabled: boolean;\n withAnnotation: string;\n}\n\nexport interface TestRunData extends QueryParams {\n displayName: string;\n}\n\nexport interface RunData extends TestRunData {\n projectId: number;\n}\n\nexport interface RunQueryParam extends QueryParams {\n projectId: number;\n}\n\n\nexport type TestRunsIncludes = {\n includeDeviceGroups: boolean;\n includeDevices: boolean;\n includeFrameworks: boolean;\n}\n\nexport type RunsConfigParams = TestRunsIncludes & QueryParams;\n\n// for users/{userid}/runs\nexport interface TestRunsQueryParams extends CollectionBasicQueryParams {\n forWholeAccount: boolean;\n skipCommonProject: boolean;\n skipShared: boolean;\n}\n","import {CollectionQueryParams, QueryParams} from './HTTP';\nimport {Role} from './Role';\n\n\nexport enum UserStatus {\n INACTIVE = 'INACTIVE',\n DISABLED = 'DISABLED',\n ENABLED = 'ENABLED'\n}\n\nexport type User = {\n accountId: number;\n accountName: string;\n userAccountName: string;\n accountServiceIds: Array;\n address: string;\n apiKey: string;\n city: string;\n code: string;\n country: string;\n createTime: number;\n createdByEmail: string;\n createdById: number;\n deleteTime: number;\n email: string;\n enabled: boolean;\n firstName: string;\n id: number;\n isAccountOwner: boolean;\n lastLaunchedTestTime: number;\n lastLoginTime: number;\n lastName: string;\n organization: string;\n phone: string;\n registrationIP: string;\n roles: Array;\n serviceIds: Array;\n state: string;\n status: UserStatus;\n timeZone: string;\n}\n\nexport type UserData = Pick;\n\nexport interface UserParams extends CollectionQueryParams {\n WITH_ADDRESS: boolean;\n WITH_USER_INFO: boolean;\n onlyMainUsers: boolean;\n onlyWithDisabledServices: boolean;\n withRole: string;\n withRoles: boolean;\n}\n\nexport type UserUpdateAccount = Pick;\n\nexport type UserDeleteData = {\n password: string;\n}\n\nexport interface LoginData {\n username: string;\n password: string;\n}\n\n\nexport type UserPasswordData = {\n key: string;\n password: string;\n};\nexport type UserActivateData = {\n zip: string;\n} & UserPasswordData\n & Pick;\n\nexport interface UserRecoveryQueryParams extends QueryParams {\n recoveryKey: string;\n}\n\nexport type MarkAccountOwnerData = {\n value: boolean;\n}\n","import {CollectionQueryParams, QueryParams} from './HTTP';\n\n\nexport enum FileDirection {\n INPUT = 'INPUT',\n OUTPUT = 'OUTPUT'\n}\n\nexport enum FileInputType {\n APPLICATION = 'APPLICATION',\n TEST = 'TEST',\n DATA = 'DATA'\n}\n\nexport enum FileState {\n PREPARING = 'PREPARING',\n READY = 'READY'\n}\n\nexport type FileProperty = {\n id: number;\n key: string;\n value: string;\n};\n\nexport type UserFileTag = {\n id: number;\n name: string;\n}\n\nexport type UserFile = {\n createTime: number;\n directUrl: string;\n direction: FileDirection;\n duplicate: boolean;\n fileProperties: Array;\n iconDirectUrl: string;\n id: number;\n inputType: FileInputType;\n mimetype: string;\n name: string;\n shared: boolean;\n size: number;\n state: FileState;\n userEmail: string;\n userId: number;\n};\n\nexport interface UserFileParams extends CollectionQueryParams {\n tag: Array;\n}\n\nexport type UserFileData = {\n file: FormData;\n global: boolean;\n}\n\nexport type BuildLogsData = {\n deviceRunIds: Array;\n projectId: number;\n userId: number;\n}\n\nexport type BuildLogsParams = BuildLogsData;\n\nexport interface FileSizeData extends QueryParams {\n height: number;\n width: number;\n}\n\nexport type UploadObj = {\n dir: string;\n filename: string;\n}\n\nexport interface FileData {\n file: Blob;\n global: boolean;\n}\n","export enum VisualTestImageType {\n FULL_PAGE = 'FULL_PAGE',\n VIEWPORT = 'VIEWPORT',\n ELEMENT_SCREENSHOT = 'ELEMENT_SCREENSHOT'\n}\n\nexport type VisualTestAccess = {\n enabled: boolean;\n apiKey: string | null;\n}\n\nexport type VisualTest = {\n comparisonStatus:\tstring;\n appUrl:\tstring;\n createdAt:\tstring;\n id: number;\n imageName:\tstring;\n imageThumbnailUrl:\tstring;\n imageType:\tVisualTestImageType;\n imageUrl:\tstring;\n sessionId:\tstring;\n testUrl:\tstring;\n}\n"],"names":["Filter","constructor","name","value","operand","this","finka","FilterBuilder","filters","gt","add","lt","after","afterorequal","before","beforeorequal","on","eq","contains","like","notlike","isnull","undefined","isnotnull","notin","raw","filter","Array","wrap","isFilterPart","SyntaxError","push","str","test","toString","parts","part","val","length","join","checkNull","_value","i","v","Date","getTime","isNull","item","endsWith","ALLOWED_HTTP_METHODS","APIOrder","APIEntity","parent","stack","requestConfig","root","isArray","setRequestConfig","abortController","AbortController","abortRequest","abort","items","concat","shift","restack","first","last","toUrl","absolute","url","baseUrl","Object","deepAssign","removeRequestConfig","key","headers","_headers","replace","letter","toUpperCase","method","NAME","toLocaleUpperCase","indexOf","Error","get","post","params","getParams","removeParam","data","jsonData","formData","send","signal","startsWith","paramsSerializer","indexes","axios","request","stringify","arrayFormat","APIList","all","noLimit","cut","between","create","sort","order","asc","limit","Number","isNatural","getLimit","offset","from","to","only","idx","page","search","query","APIResource","APIListCleanupConfigurations","super","specific","APIResourceCleanupConfiguration","id","devices","APIAdminListDevices","cleanupConfigurations","cleanupConfiguration","APIAdminListRuns","config","apiResource","APIAdminListServices","active","apiList","notArchived","activated","inUse","byPrice","NonRequestable","Promise","reject","APIAdminListStatistics","frameworks","__decorate","APIAdminResourceAccount","roles","role","accountServices","preferences","usage","usageSummary","APIAdminResourceAccountService","activate","deactivate","APIAdminResourceCluster","APIAdminResourceDevice","labels","label","APIAdminResourceDeviceModel","browsers","queue","InputFileset","files","filesZip","IMAGE_FILES_FILTER","in","NON_MEDIA_FILES_FILTER","APIListOutputFiles","performance","tag","images","nonMediaFiles","videos","OutputFileset","file","screenshots","screenshot","screenshotFile","APIListScreenshots","APIResourceDeviceSessionCommon","commands","input","output","release","steps","step","currentStep","connections","logs","responseType","clusterLogs","APIAdminResourceDeviceSessionStandalone","changeBillable","billable","deviceSessionId","postAdminDeviceSessionChangeBillable","APIAdminResourceDeviceTime","APIAdminResourceFramework","requiredRoles","APIAdminResourceLicense","resend","download","postDeviceRunIds","ids","a","deviceRunIds","APIAdminResourceRunStandalone","changePriority","priority","resource","retry","timeout","APIAdminResourceService","APIAdminResourceUserAccount","services","update","APIResourceDeviceSessionStandalone","connection","visualTestsImages","APIAdminResourceUser","disable","enable","licenses","resendActivation","account","deviceSession","APIResourceAccessGroup","users","user","resources","APIResourceDeviceGroup","device","selectors","selector","share","APIResourceFile","icon","tags","property","APIListTestCaseRuns","APIResourceDeviceSession","testCaseRuns","APIListTestRunDeviceSessions","APIResourceRunCommon","buildLogsZip","dataAvailability","deviceSessions","logsZip","performanceZip","screenshotsZip","APIResourceRun","APIResourceProject","runs","run","unarchive","APIAdminResource","accessGroups","accessGroup","accounts","accountService","activities","administrators","billingPeriods","billingPeriod","clusters","cluster","devicesForModel","deviceStatuses","deviceModels","deviceModel","deviceProblems","deviceModelCriterias","deviceModelCriteria","deviceTime","deviceTimeSummary","deviceTypes","deviceType","deviceGroups","deviceGroup","emails","resendEmail","framework","frameworkAvailableLabels","interactiveQueue","license","maintenance","overview","pools","pool","projects","project","samples","sample","service","settings","statistics","createUser","APIListDevices","desktopBrowserCapabilities","APIListProperties","APIListServices","available","availableByPrice","APIListUsers","recoveries","passwordRecovery","APIResourceBillingPeriod","receipt","APIResourceAccount","concurrencyStatus","removeUser","disableUser","enableUser","serviceBillingPeriod","visualTestAccess","userUsageDetails","usageDetails","usageDetailsSummary","APIResourceBroker","hubs","APIResourceDevice","properties","APIResourceLabelGroup","APIListFiles","upload","obj","global","isNodeJs","nodeUpload","fs","require","form","append","createReadStream","dir","filename","getHeaders","APIResourceChannel","type","scopes","APIListNotifications","channels","channel","APIListRuns","APIListSmartbearTunnels","APIResourceNotification","APIResourceUser","TypeError","markAccountOwner","availableFrameworks","resetApiKey","restore","feedback","notifications","notification","uiPreferences","deviceUsage","deviceStatistics","smartbearTunnel","smartbearTunnels","deleteAccount","APIResourceUserSession","login","logout","sso","sbidCallbackUrl","default","globalThis","defaults","common","maxContentLength","API","axiosConfig","baseURL","cloudUrl","v2","apiKey","auth","username","password","withXSRFToken","withCredentials","admin","broker","enums","labelGroups","labelGroup","ma","me","userSession","CloudAPIClient","AccessGroupScope","SessionUsageType","UtilizationType","SessionType","TimeResolution","PaymentStatus","PaymentMethod","DeactivateReason","InitStep","DeviceState","FrameworkType","BillingType","BrokerType","ClusterState","ClusterType","DeviceGroupOrigin","Platform","SupportedCreators","PoolSize","Code","LockReason","CriterionField","RetentionStrategy","ProblemType","DeviceSessionType","RetryState","DeviceSessionState","DeviceSessionStepType","SessionReleaseReason","OsType","LicenseStatus","NotificationChannel","NotificationScope","ArchivingStrategy","ScreenshotType","ServiceUnit","SharedResourceType","TestResult","LimitationType","TestScheduler","TestState","TestRunConfigFileAction","UserStatus","FileDirection","FileInputType","FileState","VisualTestImageType"],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 137a39e..12e711a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bitbar/cloud-api-client", - "version": "1.7.0", + "version": "1.7.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@bitbar/cloud-api-client", - "version": "1.7.0", + "version": "1.7.1", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.2", diff --git a/package.json b/package.json index a0a7c24..2a41d67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bitbar/cloud-api-client", - "version": "1.7.0", + "version": "1.7.1", "description": "Bitbar Cloud API Client for JavaScript", "main": "dist/bitbar-cloud-api-client.min.js", "types": "dist/index.d.ts", diff --git a/src/api/models/Project.ts b/src/api/models/Project.ts index c1e2935..ee2d53e 100644 --- a/src/api/models/Project.ts +++ b/src/api/models/Project.ts @@ -8,7 +8,7 @@ export enum ArchivingStrategy { } export type Project = { - archiveTime: number; + archiveTime: number | null; archivingItemCount: number; archivingStrategy: ArchivingStrategy; common: boolean;