From f458b8a06998f8f7843577cd406962c5f77454e6 Mon Sep 17 00:00:00 2001 From: Marietta Suchanek Date: Tue, 4 Nov 2025 13:39:43 +0100 Subject: [PATCH 1/4] Model update. --- dist/api/APIListScreenshots.d.ts | 9 ++++++ dist/api/APIListTestCaseRuns.d.ts | 9 ++++++ dist/api/APIListTestRunDeviceSessions.d.ts | 8 +++++ dist/api/APIResourceDeviceSessionCommon.d.ts | 10 +++--- dist/api/APIResourceRunCommon.d.ts | 5 +-- dist/api/lists.d.ts | 4 +++ dist/bitbar-cloud-api-client.js | 27 +++++++++++++++-- dist/bitbar-cloud-api-client.js.map | 2 +- dist/bitbar-cloud-api-client.min.js | 4 +-- dist/bitbar-cloud-api-client.min.js.map | 2 +- src/api/APIListScreenshots.spec.ts | 32 ++++++++++++++++++++ src/api/APIListScreenshots.ts | 19 ++++++++++++ src/api/APIListTestCaseRuns.spec.ts | 32 ++++++++++++++++++++ src/api/APIListTestCaseRuns.ts | 19 ++++++++++++ src/api/APIListTestRunDeviceSessions.spec.ts | 26 ++++++++++++++++ src/api/APIListTestRunDeviceSessions.ts | 18 +++++++++++ src/api/APIResourceDeviceSessionCommon.ts | 7 +++-- src/api/APIResourceRunCommon.ts | 6 ++-- src/api/class/OutputFileset.ts | 2 +- src/api/lists.ts | 5 +++ 20 files changed, 226 insertions(+), 20 deletions(-) create mode 100644 dist/api/APIListScreenshots.d.ts create mode 100644 dist/api/APIListTestCaseRuns.d.ts create mode 100644 dist/api/APIListTestRunDeviceSessions.d.ts create mode 100644 src/api/APIListScreenshots.spec.ts create mode 100644 src/api/APIListScreenshots.ts create mode 100644 src/api/APIListTestCaseRuns.spec.ts create mode 100644 src/api/APIListTestCaseRuns.ts create mode 100644 src/api/APIListTestRunDeviceSessions.spec.ts create mode 100644 src/api/APIListTestRunDeviceSessions.ts diff --git a/dist/api/APIListScreenshots.d.ts b/dist/api/APIListScreenshots.d.ts new file mode 100644 index 00000000..69b8b204 --- /dev/null +++ b/dist/api/APIListScreenshots.d.ts @@ -0,0 +1,9 @@ +import { Screenshot } from './models/Screenshot'; +import { SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams } from './models/DeviceSession'; +import { NoData } from './models/HTTP'; +import APIList from './APIList'; +import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; +export declare class APIListScreenshots extends APIList { + constructor(parent: APIResourceDeviceSessionCommon); +} +export default APIListScreenshots; diff --git a/dist/api/APIListTestCaseRuns.d.ts b/dist/api/APIListTestCaseRuns.d.ts new file mode 100644 index 00000000..593037c8 --- /dev/null +++ b/dist/api/APIListTestCaseRuns.d.ts @@ -0,0 +1,9 @@ +import { SessionQueryParams } from './models/DeviceSession'; +import { CollectionBasicQueryParams, NoData, NoQueryParams } from './models/HTTP'; +import APIList from './APIList'; +import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; +import { TestCaseRun } from './models/TestCaseRun'; +export declare class APIListTestCaseRuns extends APIList { + constructor(parent: APIResourceDeviceSessionCommon); +} +export default APIListTestCaseRuns; diff --git a/dist/api/APIListTestRunDeviceSessions.d.ts b/dist/api/APIListTestRunDeviceSessions.d.ts new file mode 100644 index 00000000..5da49cd4 --- /dev/null +++ b/dist/api/APIListTestRunDeviceSessions.d.ts @@ -0,0 +1,8 @@ +import { DeviceSession, TestRunDeviceSessionQueryParams } from './models/DeviceSession'; +import { CollectionBasicQueryParams, NoData } from './models/HTTP'; +import APIList from './APIList'; +import APIResourceRunCommon from './APIResourceRunCommon'; +export declare class APIListTestRunDeviceSessions extends APIList { + constructor(parent: APIResourceRunCommon); +} +export default APIListTestRunDeviceSessions; diff --git a/dist/api/APIResourceDeviceSessionCommon.d.ts b/dist/api/APIResourceDeviceSessionCommon.d.ts index d9fa7b55..6fc7b420 100644 --- a/dist/api/APIResourceDeviceSessionCommon.d.ts +++ b/dist/api/APIResourceDeviceSessionCommon.d.ts @@ -5,22 +5,22 @@ import { APIResource } from './APIResource'; import { InputFileset } from './class/InputFileset'; import { OutputFileset } from './class/OutputFileset'; import { DeviceSessionCommon } from './interface/DeviceSessionCommon'; -import { DeviceSession, DeviceSessionCommand, DeviceSessionStep, SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams } from './models/DeviceSession'; +import { DeviceSession, DeviceSessionCommand, DeviceSessionStep, SessionRunStepQueryParams, SessionStepQueryParams } from './models/DeviceSession'; import { CollectionBasicQueryParams, NoQueryParams } from './models/HTTP'; -import { Screenshot } from './models/Screenshot'; -import { TestCaseRun } from './models/TestCaseRun'; +import APIListScreenshots from './APIListScreenshots'; +import APIListTestCaseRuns from './APIListTestCaseRuns'; export declare class APIResourceDeviceSessionCommon extends APIResource implements DeviceSessionCommon { constructor(parent: APIEntity | API, id: number); commands(): APIList; input(): InputFileset; output(): OutputFileset; release(): APIResource; - screenshots(): APIList; + screenshots(): APIListScreenshots; screenshot(id: number): APIResource; steps(): APIList; step(id: number | 'current'): APIResource; currentStep(): APIResource; - testCaseRuns(): APIList; + testCaseRuns(): APIListTestCaseRuns; connections(): APIList; logs(): APIResource; clusterLogs(): APIResource; diff --git a/dist/api/APIResourceRunCommon.d.ts b/dist/api/APIResourceRunCommon.d.ts index fe944e99..a424cb42 100644 --- a/dist/api/APIResourceRunCommon.d.ts +++ b/dist/api/APIResourceRunCommon.d.ts @@ -3,17 +3,18 @@ import { APIEntity } from './APIEntity'; import { APIList } from './APIList'; import { APIResource } from './APIResource'; import { AdminTestRun } from './models/AdminTestRun'; -import { DeviceSession, DeviceSessionStep, TestRunDeviceSessionQueryParams } from './models/DeviceSession'; +import { DeviceSessionStep } from './models/DeviceSession'; import { CollectionBasicQueryParams, NoQueryParams } from './models/HTTP'; import { RunData, RunQueryParam, TestRun, TestRunData } from './models/TestRun'; import { TestRunDataAvailability, TestRunDataAvailabilityQueryParams } from './models/TestRunDataAvailability'; import { UserFile } from './models/UserFile'; +import APIListTestRunDeviceSessions from './APIListTestRunDeviceSessions'; export declare class APIResourceRunCommon extends APIResource { constructor(parent: APIEntity | API, id: number); abort(): APIResource; buildLogsZip(ids?: Array): APIResource; dataAvailability(): APIResource; - deviceSessions(): APIList; + deviceSessions(): APIListTestRunDeviceSessions; filesZip(ids?: Array): APIResource; logsZip(ids?: Array): APIResource; performanceZip(ids?: Array): APIResource; diff --git a/dist/api/lists.d.ts b/dist/api/lists.d.ts index 12f2a564..adfb8c35 100644 --- a/dist/api/lists.d.ts +++ b/dist/api/lists.d.ts @@ -3,6 +3,8 @@ import { APIListCleanupConfigurations as OriginAPIListCleanupConfigurations } fr import { APIListDevices as OriginAPIListDevices } from './APIListDevices'; import { APIListFiles as OriginAPIListFiles } from './APIListFiles'; import { APIListOutputFiles as OriginAPIListOutputFiles } from './APIListOutputFiles'; +import { APIListScreenshots as OriginAPIListScreenshots } from './APIListScreenshots'; +import { APIListTestRunDeviceSessions as OriginAPIListTestRunDeviceSessions } from './APIListTestRunDeviceSessions'; import { APIListNotifications as OriginAPIListNotifications } from './APIListNotifications'; import { APIListProperties as OriginAPIListProperties } from './APIListProperties'; import { APIListRuns as OriginAPIListRuns } from './APIListRuns'; @@ -14,6 +16,8 @@ export type APIListCleanupConfigurations = InstanceType; export type APIListFiles = InstanceType; export type APIListOutputFiles = InstanceType; +export type APIListScreenshots = InstanceType; +export type APIListTestRunDeviceSessions = InstanceType; export type APIListNotifications = InstanceType; export type APIListProperties = InstanceType; export type APIListRuns = InstanceType; diff --git a/dist/bitbar-cloud-api-client.js b/dist/bitbar-cloud-api-client.js index b8c833f7..91623f4b 100644 --- a/dist/bitbar-cloud-api-client.js +++ b/dist/bitbar-cloud-api-client.js @@ -686,6 +686,20 @@ NonRequestable ], exports.OutputFileset); + class APIListScreenshots extends APIList { + constructor(parent) { + super(parent); + this.push('screenshots'); + } + } + + class APIListTestCaseRuns extends APIList { + constructor(parent) { + super(parent); + this.push('test-case-runs'); + } + } + class APIResourceDeviceSessionCommon extends APIResource { constructor(parent, id) { if (id == null) { @@ -707,7 +721,7 @@ return new APIResource(this).push('release').post(); } screenshots() { - return new APIList(this).push('screenshots'); + return new APIListScreenshots(this); } screenshot(id) { if (id == null) { @@ -728,7 +742,7 @@ return this.step('current'); } testCaseRuns() { - return new APIList(this).push('test-case-runs'); + return new APIListTestCaseRuns(this); } connections() { return new APIList(this).push('connections'); @@ -1052,6 +1066,13 @@ } } + class APIListTestRunDeviceSessions extends APIList { + constructor(parent) { + super(parent); + this.push('device-sessions'); + } + } + class APIResourceRunCommon extends APIResource { constructor(parent, id) { if (id == null) { @@ -1070,7 +1091,7 @@ return new APIResource(this).push('data-availability'); } deviceSessions() { - return new APIList(this).push('device-sessions'); + return new APIListTestRunDeviceSessions(this); } filesZip(ids) { return postDeviceRunIds(this, 'files.zip', ids); diff --git a/dist/bitbar-cloud-api-client.js.map b/dist/bitbar-cloud-api-client.js.map index b30b09a5..7b8a75f7 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/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/APIResourceDeviceSession.ts","../src/api/APIResourceRunCommon.ts","../src/api/APIResourceRun.ts","../src/api/APIResourceProject.ts","../src/api/APIAdminResource.ts","../src/api/APIListDevices.ts","../src/api/APIListProperties.ts","../src/api/APIListServices.ts","../src/api/APIListUsers.ts","../src/api/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 // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList\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 {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\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 // /admin/devices/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\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}\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, IMAGE_FILES_FILTER, NON_MEDIA_FILES_FILTER} from './class';\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); /*new APIList(this).push('files')*/;\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 {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 SessionQueryParams,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Screenshot} from './models/Screenshot';\nimport {TestCaseRun} from './models/TestCaseRun';\n\nexport class APIResourceDeviceSessionCommon extends APIResource 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 APIList(this).push('screenshots');\n }\n\n // /device-sessions/{id}/screenshots/{id}\n screenshot(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /device-sessions/{id}/steps\n steps() {\n return new APIList(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}/test-case-runs\n testCaseRuns() {\n return new APIList(this).push('test-case-runs');\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n logs() {\n return new APIResource(this).push('logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n 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} 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 {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n}\n\nexport default APIResourceDeviceSession\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {DeviceSession, DeviceSessionStep, TestRunDeviceSessionQueryParams} 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';\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 APIList(this).push('device-sessions');\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'\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 // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\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 {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// 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\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/**\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 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","export 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 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}\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 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 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 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 interface TestRunDeviceSessionQueryParams extends CollectionBasicQueryParams {\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","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/APIListTestCaseRuns.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/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 // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList\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 {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\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 // /admin/devices/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\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}\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, IMAGE_FILES_FILTER, NON_MEDIA_FILES_FILTER} from './class';\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 {SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams} from './models/DeviceSession';\nimport {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 {SessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\nimport {TestCaseRun} from './models/TestCaseRun';\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 {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 SessionQueryParams,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {TestCaseRun} from './models/TestCaseRun';\nimport APIListScreenshots from './APIListScreenshots';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\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}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\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} 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 {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n}\n\nexport default APIResourceDeviceSession\n","import {DeviceSession, TestRunDeviceSessionQueryParams} 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 * /files\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'\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 // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\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 {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// 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\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/**\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 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","export 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 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}\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 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 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 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 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 interface TestRunDeviceSessionQueryParams extends CollectionBasicQueryParams {\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 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","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 7422d6c7..419247ab 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.5.13 | Copyright 2025 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ +/* @bitbar/cloud-api-client v1.5.11 | Copyright 2025 (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=this.paramsSerializer),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 m 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 S 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)}queue(){return new c(this).push("queue")}}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")}}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 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).push("screenshots")}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")}testCaseRuns(){return new c(this).push("test-case-runs")}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 D extends C{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 g extends c{constructor(e){super(e),this.push("admin","device-time")}}class b 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 U 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 _(e,s,t){const r=new l(e).push(s);return null!=t&&r.params({deviceRunIds:t}),r.post()}class y 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 _(this,"retry",e).setRequestConfig({timeout:0})}}class P 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 F=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()}};F=n([I],F);class M 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 G=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 F(this)}deviceSession(e){return new M(this,e)}roles(){return new c(this).push("roles")}role(e){return new l(this).push("roles",e)}};G=n([I],G);class x 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 k 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{abort(){return new l(this).push("abort").post()}retry(){return new l(this).push("retry").post()}}class H 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 _(this,"build-logs.zip",e)}dataAvailability(){return new l(this).push("data-availability")}deviceSessions(){return new c(this).push("device-sessions")}filesZip(e){return _(this,"files.zip",e)}logsZip(e){return _(this,"logs.zip",e)}performanceZip(e){return _(this,"performance.zip",e)}retry(e){return _(this,"retry",e).setRequestConfig({timeout:0})}screenshotsZip(e){return _(this,"screenshots.zip",e)}steps(){return new c(this).push("steps")}}class W extends H{deviceSession(e){return new q(this,e)}}class Y 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 W(this,e)}share(){return new c(this).push("share")}unarchive(){return new l(this).push("unarchive")}}let K=class extends l{constructor(e){super(e)}accessGroups(){return new c(this).push("access-groups")}accessGroup(e){return new x(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")}browser(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","browsers",e)}clusters(){return new c(this).push("clusters")}cluster(e){return new m(this,e)}devices(){return new E(this)}device(e){return new S(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 D(this,e)}deviceTime(){return new g(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 k(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 b(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 U(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 Y(this,e)}roles(){return new c(this).push("admin","roles")}runs(){return new w(this)}run(e){return new y(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 P(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 G(this,e)}};K=n([I],K);class j 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 V 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 $ 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 X 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 Z 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 X(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 J extends l{constructor(e){super(e),this.push("broker")}hubs(){return new c(this).push("hubs")}}class Q 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 ee 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 se 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 te 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 re 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 te(this,e)}}class ne extends c{constructor(e){super(e),this.push("runs")}config(){return new l(this).push("config")}}class ie extends c{constructor(e){super(e),this.ALLOWED_HTTP_METHODS=["GET"],this.push("tunnels")}active(e){return this.params({active:e})}}class ue 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 oe 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 k(this,e)}deviceSessions(){return new c(this).push("device-sessions")}deviceSession(e){return new M(this,e)}markAccountOwner(){return new l(this).push("mark-account-owner").post()}projects(){return new c(this).push("projects")}project(e){return new Y(this,e)}files(){return new se(this)}file(e){return new B(this,e)}runs(){return new ne(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 re(this)}notification(e){return new ue(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 x(this,e)}smartbearTunnel(e){return new l(this).push("tunnels",e)}smartbearTunnels(){return new ie(this)}deleteAccount(){return new l(this).push("delete")}}class ae 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 he=require("axios").default;globalThis.isNodeJs&&(he.defaults.headers.common["User-Agent"]="Bitbar Cloud API Client for JavaScript v1.5.13"),he.defaults.maxContentLength=1073741824;class ce{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.withCredentials=null!=e.withCredentials&&e.withCredentials,this.axios=he.create(this.axiosConfig)}account(e){return new Z(this,e)}admin(){return new K(this)}broker(){return new J(this)}clusters(){return new c(this).push("clusters")}cluster(e){return new m(this,e)}device(e){return new Q(this,e)}deviceGroup(e){return new k(this,e)}deviceGroups(){return new c(this).push("device-groups")}devices(){return new j(this)}deviceSession(e){return new q(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 ee(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 Y(this,e)}properties(){return new V(this)}property(e){return new l(this).push("properties",e)}run(e){return new W(this,e)}services(){return new z(this)}user(e){return new oe(this,e)}users(){return new $(this)}userSession(){return new ae(this)}}const le={API:ce,FilterBuilder:u};var pe,de,Ee,we,Te,Ie,Ae,fe,Ne,me,Se,Re,ve,Le,Oe,Ce,De,ge,be,Ue,_e,ye,Pe,Fe,Me,Ge,xe,ke,Be,qe,He,We,Ye,Ke,je,Ve,ze,$e,Xe,Ze,Je,Qe,es,ss,ts,rs,ns;e.AccessGroupScope=void 0,(pe=e.AccessGroupScope||(e.AccessGroupScope={})).USER="USER",pe.ACCOUNT="ACCOUNT",pe.GLOBAL="GLOBAL",e.SessionUsageType=void 0,(de=e.SessionUsageType||(e.SessionUsageType={})).AUTOMATIC="AUTOMATIC",de.MANUAL="MANUAL",de.DEDICATED_AUTOMATIC="DEDICATED_AUTOMATIC",de.DEDICATED_MANUAL="DEDICATED_MANUAL",e.UtilizationType=void 0,(Ee=e.UtilizationType||(e.UtilizationType={})).ALL="all",Ee.PUBLIC="public",Ee.DEDICATED="dedicated",e.SessionType=void 0,(we=e.SessionType||(e.SessionType={})).ALL="all",we.AUTOMATED="automated",we.MANUAL="manual",e.TimeResolution=void 0,(Te=e.TimeResolution||(e.TimeResolution={})).HOUR="hour",Te.DAY="day",e.PaymentStatus=void 0,(Ie=e.PaymentStatus||(e.PaymentStatus={})).SUCCEEDED="SUCCEEDED",Ie.FAILED="FAILED",Ie.REDIRECTED="REDIRECTED",e.PaymentMethod=void 0,(Ae=e.PaymentMethod||(e.PaymentMethod={})).PAYPAL="PAYPAL",Ae.BRAINTREE="BRAINTREE",Ae.STRIPE="STRIPE",Ae.INVOICE="INVOICE",Ae.PROMOTION="PROMOTION",Ae.AWS="AWS",e.DeactivateReason=void 0,(fe=e.DeactivateReason||(e.DeactivateReason={})).INITIAL_FAILURE="INITIAL_FAILURE",fe.SCA_FAILURE="SCA_FAILURE",fe.CHARGE_FAILURE="CHARGE_FAILURE",fe.CANCEL="CANCEL",fe.SUSPENDED="SUSPENDED",fe.ANOTHER_PURCHASE="ANOTHER_PURCHASE",e.InitStep=void 0,(Ne=e.InitStep||(e.InitStep={})).SKIP="SKIP",Ne.REBOOT="REBOOT",Ne.REBOOT_WITH_UNLOCK="REBOOT_WITH_UNLOCK",Ne.UNLOCK_ONLY="UNLOCK_ONLY",e.DeviceState=void 0,(me=e.DeviceState||(e.DeviceState={})).OFFLINE_CLEANING="OFFLINE_CLEANING",me.OFFLINE_DIRTY="OFFLINE_DIRTY",me.OFFLINE_FREE="OFFLINE_FREE",me.OFFLINE_TESTING="OFFLINE_TESTING",me.ONLINE_CLEANING="ONLINE_CLEANING",me.ONLINE_DIRTY="ONLINE_DIRTY",me.ONLINE_FREE="ONLINE_FREE",me.ONLINE_TESTING="ONLINE_TESTING",e.FrameworkType=void 0,(Se=e.FrameworkType||(e.FrameworkType={})).AUTOMATIC="AUTOMATIC",Se.MANUAL_APP="MANUAL_APP",Se.MANUAL_WEB="MANUAL_WEB",Se.REMOTE="REMOTE",e.BillingType=void 0,(Re=e.BillingType||(e.BillingType={})).BUY="BUY",Re.CHARGE="CHARGE",Re.CANCEL="CANCEL",e.BrokerType=void 0,(ve=e.BrokerType||(e.BrokerType={})).MOBILE="MOBILE",ve.DESKTOP="DESKTOP",e.ClusterState=void 0,(Le=e.ClusterState||(e.ClusterState={}))[Le.OFFLINE=0]="OFFLINE",Le.ONLINE="ONLINE",Le.RESTARTING="RESTARTING",Le.QUIET_DOWN="QUIET_DOWN",Le.MAINTENANCE="MAINTENANCE",e.ClusterType=void 0,(Oe=e.ClusterType||(e.ClusterType={})).BARE_METAL="BARE_METAL",Oe.EC2="EC2",Oe.VM="VM",e.DeviceGroupOrigin=void 0,(Ce=e.DeviceGroupOrigin||(e.DeviceGroupOrigin={})).STATIC="STATIC",Ce.DYNAMIC="DYNAMIC",Ce.HYBRID="HYBRID",e.Platform=void 0,(De=e.Platform||(e.Platform={})).IOS="IOS",De.ANDROID="ANDROID",De.WINDOWS="WINDOWS",De.MAC="MAC",De.LINUX="LINUX",De.UNDEFINED="UNDEFINED",e.SupportedCreators=void 0,(ge=e.SupportedCreators||(e.SupportedCreators={})).MANUAL="MANUAL",ge.ROBOT="ROBOT",ge.AUTOMATIC="AUTOMATIC",e.PoolSize=void 0,(be=e.PoolSize||(e.PoolSize={})).XL="XL",be.L="L",be.M="M",be.S="S",e.Code=void 0,(Ue=e.Code||(e.Code={})).HIGH="HIGH",Ue.MODERATE="MODERATE",Ue.LOW="LOW",Ue.NONE="NONE",e.LockReason=void 0,(_e=e.LockReason||(e.LockReason={})).TESTING="TESTING",_e.CLEANING="CLEANING",_e.NOT_OPERATIONAL="NOT_OPERATIONAL",e.CriterionField=void 0,(ye=e.CriterionField||(e.CriterionField={})).NAME="NAME",ye.FINGERPRINT="FINGERPRINT",ye.SERIAL_ID="SERIAL_ID",ye.UNLOCK_GESTURE="UNLOCK_GESTURE",ye.SOFTWARE_VERSION="SOFTWARE_VERSION",ye.INIT_STEP="INIT_STEP",ye.ACCOUNT="ACCOUNT",ye.BROWSERS="BROWSERS",e.RetentionStrategy=void 0,(Pe=e.RetentionStrategy||(e.RetentionStrategy={})).CLUSTER_ON_OFF="CLUSTER_ON_OFF",Pe.MIN_FREE_MAX_TOTAL="MIN_FREE_MAX_TOTAL",Pe.POOL_MANAGER_AWARE="POOL_MANAGER_AWARE",e.ProblemType=void 0,(Fe=e.ProblemType||(e.ProblemType={})).CLEANING="CLEANING",Fe.DIRTY="DIRTY",Fe.OFFLINE="OFFLINE",Fe.LOW_BATTERY="LOW_BATTERY",Fe.HIGH_FAIL_RATE="HIGH_FAIL_RATE",Fe.NO_INTERNET_CONNECTION="NO_INTERNET_CONNECTION",e.DeviceSessionType=void 0,(Me=e.DeviceSessionType||(e.DeviceSessionType={})).AUTOMATIC="AUTOMATIC",Me.MANUAL_APP="MANUAL_APP",Me.MANUAL_WEB="MANUAL_WEB",e.RetryState=void 0,(Ge=e.RetryState||(e.RetryState={})).NONE="NONE",Ge.MANUAL="MANUAL",Ge.AUTO="AUTO",e.DeviceSessionState=void 0,(xe=e.DeviceSessionState||(e.DeviceSessionState={})).ABORTED="ABORTED",xe.EXCLUDED="EXCLUDED",xe.FAILED="FAILED",xe.RUNNING="RUNNING",xe.SUCCEEDED="SUCCEEDED",xe.TIMEOUT="TIMEOUT",xe.WAITING="WAITING",xe.WARNING="WARNING",e.DeviceSessionStepType=void 0,(ke=e.DeviceSessionStepType||(e.DeviceSessionStepType={})).WAITING="WAITING",ke.PREPARING="PREPARING",ke.UNINSTALL="UNINSTALL",ke.INSTALL="INSTALL",ke.RUNNING="RUNNING",ke.SENDING_RESULTS="SENDING_RESULTS",ke.PROCESSING_RESULTS="PROCESSING_RESULTS",e.SessionReleaseReason=void 0,(Be=e.SessionReleaseReason||(e.SessionReleaseReason={})).INACTIVITY="INACTIVITY",Be.TIMEOUT="TIMEOUT",Be.USER_ACTION="USER_ACTION",Be.CHANGE_DEVICE="CHANGE_DEVICE",Be.WEBSOCKET_CLOSED="WEBSOCKET_CLOSED",e.OsType=void 0,(qe=e.OsType||(e.OsType={})).IOS="IOS",qe.ANDROID="ANDROID",qe.DESKTOP="DESKTOP",qe.UNDEFINED="UNDEFINED",e.LicenseStatus=void 0,(He=e.LicenseStatus||(e.LicenseStatus={})).ACTIVE="ACTIVE",He.EXPIRED="EXPIRED",He.INACTIVE="INACTIVE",He.CLOSED="CLOSED",e.NotificationChannel=void 0,(We=e.NotificationChannel||(e.NotificationChannel={})).SLACK="SLACK",We.EMAIL="EMAIL",We.WEBHOOK="WEBHOOK",e.NotificationScope=void 0,(Ye=e.NotificationScope||(e.NotificationScope={})).ALL="ALL",Ye.TEST_RUN="TEST_RUN",Ye.TEST_RUN_FAILURE="TEST_RUN_FAILURE",Ye.TEST_RUN_SUCCEEDED="TEST_RUN_SUCCEEDED",Ye.SYSTEM="SYSTEM",Ye.CHECK="CHECK",e.ArchivingStrategy=void 0,(Ke=e.ArchivingStrategy||(e.ArchivingStrategy={})).NEVER="NEVER",Ke.DAYS="DAYS",Ke.RUNS="RUNS",e.ScreenshotType=void 0,(je=e.ScreenshotType||(e.ScreenshotType={})).LANDSCAPE="LANDSCAPE",je.PORTRAIT="PORTRAIT",e.ServiceUnit=void 0,(Ve=e.ServiceUnit||(e.ServiceUnit={})).DAY="DAY",Ve.HOUR="HOUR",Ve.MONTH="MONTH",Ve.PROJECT="PROJECT",Ve.RUN="RUN",Ve.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,($e=e.TestResult||(e.TestResult={})).PASSED="PASSED",$e.FAILED="FAILED",$e.SKIPPED="SKIPPED",$e.NOT_AVAILABLE="NOT_AVAILABLE",e.LimitationType=void 0,(Xe=e.LimitationType||(e.LimitationType={})).PACKAGE="PACKAGE",Xe.CLASS="CLASS",e.TestScheduler=void 0,(Ze=e.TestScheduler||(e.TestScheduler={})).PARALLEL="PARALLEL",Ze.SERIAL="SERIAL",Ze.SINGLE="SINGLE",Ze.ALL_INSTANCES="ALL_INSTANCES",e.TestState=void 0,(Je=e.TestState||(e.TestState={})).WAITING="WAITING",Je.RUNNING="RUNNING",Je.FINISHED="FINISHED",e.TestRunConfigFileAction=void 0,(Qe=e.TestRunConfigFileAction||(e.TestRunConfigFileAction={})).COPY_TO_DEVICE="COPY_TO_DEVICE",Qe.INSTALL="INSTALL",Qe.RUN_TEST="RUN_TEST",e.UserStatus=void 0,(es=e.UserStatus||(e.UserStatus={})).INACTIVE="INACTIVE",es.DISABLED="DISABLED",es.ENABLED="ENABLED",e.FileDirection=void 0,(ss=e.FileDirection||(e.FileDirection={})).INPUT="INPUT",ss.OUTPUT="OUTPUT",e.FileInputType=void 0,(ts=e.FileInputType||(e.FileInputType={})).APPLICATION="APPLICATION",ts.TEST="TEST",ts.DATA="DATA",e.FileState=void 0,(rs=e.FileState||(e.FileState={})).PREPARING="PREPARING",rs.READY="READY",e.VisualTestImageType=void 0,(ns=e.VisualTestImageType||(e.VisualTestImageType={})).FULL_PAGE="FULL_PAGE",ns.VIEWPORT="VIEWPORT",ns.ELEMENT_SCREENSHOT="ELEMENT_SCREENSHOT",e.ALLOWED_HTTP_METHODS=o,e.API=ce,e.CloudAPIClient=le,e.FilterBuilder=u,e.IMAGE_FILES_FILTER=v,e.NON_MEDIA_FILES_FILTER=L,e.default=le,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=this.paramsSerializer),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 m 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 S 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)}queue(){return new c(this).push("queue")}}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")}}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 c{constructor(e){super(e),this.push("test-case-runs")}}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)}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")}testCaseRuns(){return new D(this)}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 b extends g{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 U extends c{constructor(e){super(e),this.push("admin","device-time")}}class _ 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 y 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 P(e,s,t){const r=new l(e).push(s);return null!=t&&r.params({deviceRunIds:t}),r.post()}class F 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 P(this,"retry",e).setRequestConfig({timeout:0})}}class M 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 G=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()}};G=n([I],G);class x 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 k=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 G(this)}deviceSession(e){return new x(this,e)}roles(){return new c(this).push("roles")}role(e){return new l(this).push("roles",e)}};k=n([I],k);class B 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 q 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 H 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 W extends g{abort(){return new l(this).push("abort").post()}retry(){return new l(this).push("retry").post()}}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 P(this,"build-logs.zip",e)}dataAvailability(){return new l(this).push("data-availability")}deviceSessions(){return new Y(this)}filesZip(e){return P(this,"files.zip",e)}logsZip(e){return P(this,"logs.zip",e)}performanceZip(e){return P(this,"performance.zip",e)}retry(e){return P(this,"retry",e).setRequestConfig({timeout:0})}screenshotsZip(e){return P(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 B(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")}browser(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","browsers",e)}clusters(){return new c(this).push("clusters")}cluster(e){return new m(this,e)}devices(){return new E(this)}device(e){return new S(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 b(this,e)}deviceTime(){return new U(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 q(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 H(this,e)}frameworks(){return new c(this).push("admin","frameworks")}framework(e){return new _(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 y(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 F(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 M(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 k(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 q(this,e)}deviceSessions(){return new c(this).push("device-sessions")}deviceSession(e){return new x(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 H(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 B(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.5.11"),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.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 m(this,e)}device(e){return new te(this,e)}deviceGroup(e){return new q(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 H(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,me,Se,Re,ve,Le,Oe,Ce,De,ge,be,Ue,_e,ye,Pe,Fe,Me,Ge,xe,ke,Be,qe,He,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,(me=e.PaymentMethod||(e.PaymentMethod={})).PAYPAL="PAYPAL",me.BRAINTREE="BRAINTREE",me.STRIPE="STRIPE",me.INVOICE="INVOICE",me.PROMOTION="PROMOTION",me.AWS="AWS",e.DeactivateReason=void 0,(Se=e.DeactivateReason||(e.DeactivateReason={})).INITIAL_FAILURE="INITIAL_FAILURE",Se.SCA_FAILURE="SCA_FAILURE",Se.CHARGE_FAILURE="CHARGE_FAILURE",Se.CANCEL="CANCEL",Se.SUSPENDED="SUSPENDED",Se.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,(Be=e.RetryState||(e.RetryState={})).NONE="NONE",Be.MANUAL="MANUAL",Be.AUTO="AUTO",e.DeviceSessionState=void 0,(qe=e.DeviceSessionState||(e.DeviceSessionState={})).ABORTED="ABORTED",qe.EXCLUDED="EXCLUDED",qe.FAILED="FAILED",qe.RUNNING="RUNNING",qe.SUCCEEDED="SUCCEEDED",qe.TIMEOUT="TIMEOUT",qe.WAITING="WAITING",qe.WARNING="WARNING",e.DeviceSessionStepType=void 0,(He=e.DeviceSessionStepType||(e.DeviceSessionStepType={})).WAITING="WAITING",He.PREPARING="PREPARING",He.UNINSTALL="UNINSTALL",He.INSTALL="INSTALL",He.RUNNING="RUNNING",He.SENDING_RESULTS="SENDING_RESULTS",He.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 6c858526..434e384d 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/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/APIResourceDeviceSession.ts","../src/api/APIResourceRunCommon.ts","../src/api/APIResourceRun.ts","../src/api/APIResourceProject.ts","../src/api/APIAdminResource.ts","../src/api/APIListDevices.ts","../src/api/APIListProperties.ts","../src/api/APIListServices.ts","../src/api/APIListUsers.ts","../src/api/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 // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList\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 {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\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 // /admin/devices/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\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}\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, IMAGE_FILES_FILTER, NON_MEDIA_FILES_FILTER} from './class';\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); /*new APIList(this).push('files')*/;\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 {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 SessionQueryParams,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {Screenshot} from './models/Screenshot';\nimport {TestCaseRun} from './models/TestCaseRun';\n\nexport class APIResourceDeviceSessionCommon extends APIResource 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 APIList(this).push('screenshots');\n }\n\n // /device-sessions/{id}/screenshots/{id}\n screenshot(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('screenshots', id);\n }\n\n // /device-sessions/{id}/steps\n steps() {\n return new APIList(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}/test-case-runs\n testCaseRuns() {\n return new APIList(this).push('test-case-runs');\n }\n\n // /device-sessions/{id}/connections\n connections() {\n return new APIList(this).push('connections');\n }\n\n logs() {\n return new APIResource(this).push('logs').setRequestConfig({\n responseType: 'text'\n });\n }\n\n 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} 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 {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n}\n\nexport default APIResourceDeviceSession\n","import {API} from '../API';\nimport {APIEntity} from './APIEntity';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {postDeviceRunIds} from './factory/postDeviceRunIds';\nimport {AdminTestRun} from './models/AdminTestRun';\nimport {DeviceSession, DeviceSessionStep, TestRunDeviceSessionQueryParams} 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';\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 APIList(this).push('device-sessions');\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'\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 // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\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 {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// 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\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/**\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 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","export 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 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}\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 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 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 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 interface TestRunDeviceSessionQueryParams extends CollectionBasicQueryParams {\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","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","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","queue","APIAdminResourceDeviceModel","browsers","InputFileset","files","filesZip","exports","IMAGE_FILES_FILTER","in","NON_MEDIA_FILES_FILTER","APIListOutputFiles","performance","tag","images","nonMediaFiles","videos","OutputFileset","file","screenshots","screenshot","screenshotFile","APIResourceDeviceSessionCommon","commands","input","output","release","steps","step","currentStep","testCaseRuns","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","APIResourceDeviceSession","APIResourceRunCommon","buildLogsZip","dataAvailability","deviceSessions","logsZip","performanceZip","screenshotsZip","APIResourceRun","APIResourceProject","runs","run","unarchive","APIAdminResource","accessGroups","accessGroup","accounts","accountService","activities","administrators","billingPeriods","billingPeriod","browser","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","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":";;;;;;;;;;;;;;;;+XAIaA,EAKX,WAAAC,CAAYC,EAAcC,EAAUC,GAClCC,KAAKH,KAAOA,EACZG,KAAKF,MAAQA,EACbE,KAAKD,QAAUA,GCVnBE,UCMaC,EAAb,WAAAN,GAEmBI,KAAOG,QAAkB,GAE1C,EAAAC,CAAGP,EAAcC,GACf,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,MAI/B,EAAAQ,CAAGT,EAAcC,GACf,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,MAG/B,KAAAS,CAAMV,EAAcC,GAClB,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,SAAS,GAGxC,YAAAU,CAAaX,EAAcC,GACzB,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,gBAAgB,GAG/C,MAAAW,CAAOZ,EAAcC,GACnB,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,UAAU,GAGzC,aAAAY,CAAcb,EAAcC,GAC1B,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,iBAAiB,GAGhD,EAAAa,CAAGd,EAAcC,GACf,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,MAG/B,EAAAc,CAAGf,EAAcC,GACf,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,MAG/B,QAAAe,CAAShB,EAAcC,GACrB,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,YAG/B,IAAAgB,CAAKjB,EAAcC,GACjB,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,QAG/B,OAAAiB,CAAQlB,EAAcC,GACpB,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,WAG/B,MAAAkB,CAAOnB,GACL,OAAOG,KAAKK,IAAIR,OAAMoB,EAAW,UAGnC,SAAAC,CAAUrB,GACR,OAAOG,KAAKK,IAAIR,OAAMoB,EAAW,aAGnC,GAAGpB,EAAcC,GACf,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,MAAM,GAGrC,KAAAqB,CAAMtB,EAAcC,GAClB,OAAOE,KAAKK,IAAIR,EAAMC,EAAO,SAAS,GAGxC,GAAAsB,CAAIC,GACF,MAAMlB,EAAUmB,MAAMC,KAAKF,GAC3B,IAAK,MAAMA,KAAUlB,EAAS,CAC5B,IAAIH,KAAKwB,aAAqBH,GAG5B,MAAM,IAAII,YAAY,UAAUJ,wBAFhCrB,KAAKG,QAAQuB,KAAaL,IAWhC,YAAAG,CAAaG,GACX,MAAO,yGAAyGC,KAAaD,GAG/H,QAAAE,GACE,MAAMC,EAAuB,GAE7B,IAAIC,EACFC,EAEF,IAAK,MAAMX,KAAUrB,KAAKG,QACF,iBAAXkB,EACTU,EAAOV,GAEPW,EAAM,IACFX,EAAOvB,MAAMmC,OAAS,QAAgC,IAApBZ,EAAOvB,MAAM,MACjDkC,EAAM,IAAIX,EAAOvB,MAAMoC,KAAK,QAE9BH,EAAO,GAAGV,EAAOxB,QAAQwB,EAAOtB,UAAUiC,KAE5CF,EAAMJ,KAAKK,GAGb,OAAOD,EAAMI,KAAK,KAWZ,GAAA7B,CAAaR,EAAcC,EAAUC,EAAiBoC,GAAY,GAExE,IAAIC,EAASd,MAAMC,KAAKzB,GAExB,GAAsB,IAAlBsC,EAAOH,OACT,OAAOjC,KAIT,IAAK,IAAIqC,EAAI,EAAGA,EAAID,EAAOH,OAAQI,IAAK,CACtC,MAAMC,EAAIF,EAAOC,GACA,iBAANC,GAAkBA,aAAaC,OACxCH,EAAOC,GAAKC,EAAEE,WAIlB,IAAIC,GAAS,EACb,GAAIN,EAAW,CAEb,IAAK,MAAMG,KAAKF,EACJ,OAANE,IAGJG,GAAS,GAGPA,IACFL,EAASA,EAAOf,QAAQqB,GAAuB,OAATA,IACtC3C,GAAW,UAWf,OAPIA,EAAQ4C,SAAS,WAA+B,IAAlBP,EAAOH,SACvClC,EAAU,UAIZC,KAAKG,QAAQuB,KAAK,IAAI/B,EAAiBE,EAAMuC,EAAQrC,IAE9CC,MCxJE,MAAA4C,EAAsC,CAAC,MAAO,OAAQ,UAKnE,IAAYC,EAAAA,EAAAA,cAAAA,GAAAA,EAAAA,EAAQA,WAARA,WAGX,CAAA,IAFC,IAAA,IACAA,EAAA,KAAA,UCJWC,EAaX,WAAAlD,CAAYmD,GATF/C,KAAKgD,MAA2B,GAChChD,KAAaiD,cAAuB,CAAE,EACtCjD,KAAoB4C,qBAAkBA,EAQ1CG,aAAkBD,GACpB9C,KAAKkD,KAAOH,EAAOG,KAEf5B,MAAM6B,QAAQJ,EAAOC,QACvBhD,KAAK0B,QAAQqB,EAAOC,OAGM,MAAxBD,EAAOE,eACTjD,KAAKoD,iBAAiBL,EAAOE,gBAG/BjD,KAAKkD,KAAOH,EAEd/C,KAAKqD,gBAAkB,IAAIC,kBAG7B,YAAAC,GACEvD,KAAKqD,gBAAgBG,QACrBxD,KAAKqD,gBAAkB,IAAIC,kBAG7B,IAAA5B,IAAQ+B,GAEN,OADAzD,KAAKgD,MAAQhD,KAAKgD,MAAMU,OAAOD,GACxBzD,KAGT,KAAA2D,GAEE,OADA3D,KAAKgD,MAAMW,QACJ3D,KAGT,OAAA4D,IAAWH,GAET,OADAzD,KAAKgD,MAAQS,EACNzD,KAMT,SAAI6D,GACF,OAAO7D,KAAKgD,MAAM,GAMpB,QAAIc,GACF,OAAO9D,KAAKgD,MAAMhD,KAAKgD,MAAMf,OAAS,GAMxC,QAAI6B,CAAK9B,GACPhC,KAAKgD,MAAMhD,KAAKgD,MAAMf,OAAS,GAAKD,EAGtC,KAAA+B,CAAMC,GAAW,GACf,IAAIC,EAAM,IAAIjE,KAAKgD,MAAMd,KAAK,OAM9B,OAJI8B,IACFC,EAAMjE,KAAKkD,KAAKgB,QAAUD,GAGrBA,EAGT,gBAAAb,CAAiBH,GAEf,OADAkB,OAAOC,WAAWpE,KAAKiD,cAAeA,GAC/BjD,KAGT,mBAAAqE,CAAoBC,GAElB,cADOtE,KAAKiD,cAAcqB,GACnBtE,KAGT,OAAAuE,CAAQA,GACN,MAAMC,EAAmC,CAAE,EAG3C,IAAK,MAAMF,KAAOC,EAAS,CAEzBC,EADeF,EAAIG,QAAQ,mBAAoBC,GAAWA,EAAOC,iBAC9CJ,EAAQD,GAG7B,OAAOtE,KAAKoD,iBAAiB,CAC3BmB,QAASC,IAOb,MAAAI,CAAO/E,GACL,MAAMgF,EAA6ChF,EAAKiF,oBAGxD,KAF2B9E,KAAK4C,qBAAqBmC,QAAQF,IAAU,GAGrE,MAAM,IAAIG,MAAM,WAAWH,mCAAsC7E,KAAK4C,qBAAqBV,KAAK,SAGlG,OAAOlC,KAAKoD,iBAAiB,CAC3BwB,OAAQC,IAOZ,GAAAI,GACE,OAAOjF,KAAK4E,OAAO,OAMrB,IAAAM,GACE,OAAOlF,KAAK4E,OAAO,QAMrB,SACE,OAAO5E,KAAK4E,OAAO,UAMrB,MAAAO,CAA0DA,GAExD,OADAnF,KAAKoD,iBAAiB,CAAC+B,WAChBnF,KAGT,SAAAoF,GACE,OAAoC,MAA7BpF,KAAKiD,cAAckC,OAAiB,GAAKnF,KAAKiD,cAAckC,OAGrE,WAAAE,CAAYf,GAEV,cADOtE,KAAKiD,cAAckC,OAAOb,GAC1BtE,KAMT,IAAAsF,CAAKA,GAEH,OADAtF,KAAKoD,iBAAiB,CAACkC,SAChBtF,KAMT,QAAAuF,CAASD,GAIP,OAHAtF,KAAKuE,QAAQ,CACX,eAAgB,qBACfe,KAAKA,GACDtF,KAMT,QAAAwF,CAASF,GAIP,OAHAtF,KAAKuE,QAAQ,CACX,eAAgB,wBACfe,KAAKA,GACDtF,KAMT,IAAAyF,GACE,MAAMxC,EAAoCkB,OAAOC,WAAW,CAAA,EAAIpE,KAAKiD,cAAe,CAClFgB,IAAK,IAAIjE,KAAKgD,MAAMd,KAAK,OACzBwD,OAAQ1F,KAAKqD,gBAAgBqC,SAyB/B,OArB6B,MAAzBzC,EAAcsB,UAChBtB,EAAcsB,QAAU,CAAE,GAIiB,MAAzCtB,EAAcsB,QAAQ,kBACxBtB,EAAcsB,QAAQ,gBAAkB,oDAIb,SAAzBtB,EAAc2B,QACP3B,EAAcsB,QAAQ,gBAAiBoB,WAAW,sCACrC,MAAtB1C,EAAcqC,OACdrC,EAAcqC,KAAOtF,KAAK4F,iBAAiB3C,EAAcqC,OAGvDrC,EAAckC,SAChBlC,EAAc2C,iBAAmB5F,KAAK4F,kBAIjC5F,KAAKkD,KAAK2C,MAAMC,QAAW7C,GAG1B,gBAAA2C,CAAiBT,GACzB,OAAOY,EAAAA,UAAUZ,EAAQ,CACvBa,YAAa,cClOb,MAAOC,UACHnD,EADV,WAAAlD,uBA0LEI,KAAAkG,IAAwClG,KAAKmG,QAU7CnG,KAAAoG,IAAwCpG,KAAKqG,QA9L7C,MAAAC,CAAOhB,GACL,OAAOtF,KAAKkF,OAAOI,KAAKA,GAAMG,OAUhC,IAAAc,CAAK1G,EAAc2G,EAAkB3D,EAAAA,SAAS4D,KAC5C,OAAOzG,KAAKmF,OAAe,CACzBoB,KAAM,GAAG1G,KAAQ2G,MAWrB,KAAAE,CAAMA,EAjC6B,IAkCjC,IAAKC,OAAOC,UAAUF,GACpB,MAAM,IAAI1B,MAAM,UAAU0B,kBAG5B,OAAO1G,KAAKmF,OAAgB,CAC1BuB,UAUJ,QAAAG,GACE,MAAM1B,EAASnF,KAAKoF,YACpB,OAAuB,MAAhBD,EAAOuB,MAnDmB,GAmDqBvB,EAAOuB,MAS/D,OAAAP,GACE,OAAOnG,KAAK0G,MAAM,GAUpB,MAAAI,CAAOA,EAtE6B,GAuElC,IAAKH,OAAOC,UAAUE,GACpB,MAAM,IAAI9B,MAAM,WAAW8B,kBAG7B,OAAO9G,KAAKmF,OAAiB,CAC3B2B,WAYJ,OAAAT,CAAQU,EAAcC,GACpB,IAAKL,OAAOC,UAAUG,GACpB,MAAM,IAAI/B,MAAM,SAAS+B,kBAG3B,IAAKJ,OAAOC,UAAUI,GACpB,MAAM,IAAIhC,MAAM,OAAOgC,kBAGzB,OAAOhH,KAAKmF,OAA2B,CACrC2B,OAAQC,EACRL,MAAYM,EAAKD,EAAV,IAWX,IAAAE,CAAKC,GACH,IAAKP,OAAOC,UAAUM,GACpB,MAAM,IAAIlC,MAAM,UAAUkC,kBAG5B,OAAOlH,KAAKmF,OAA2B,CACrC2B,OAAQI,EACRR,MAAO,IAWX,IAAAS,CAAKA,EAAO,GACV,IAAKR,OAAOC,UAAUO,IAAiB,GAARA,EAC7B,MAAM,IAAInC,MAAM,SAASmC,kBAG3B,MAAMT,EAAQ1G,KAAK6G,WACbC,GAAUK,EAAO,GAAKT,EAE5B,OAAO1G,KAAKmF,OAA2B,CACrC2B,SACAJ,UAcJ,MAAAU,CAAOC,GACL,GAAqB,iBAAVA,EACT,MAAM,IAAIrC,MAAM,kCAGlB,OAAOhF,KAAKmF,OAAiB,CAC3BiC,OAAQC,IAWZ,MAAAhG,CAAOA,GAGL,GAAsB,iBAAXA,KAFaA,aAAkBnB,GAGxC,MAAM,IAAI8E,MAAM,6DAGlB,OAAOhF,KAAKmF,OAAiB,CAC3B9D,OAAQA,EAAOQ,cC9Kf,MAAOyF,UACHxE,GCHJ,MAAOyE,UAAqCtB,EAKhD,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,0BAIZ,QAAA+F,GACE,OAAO,IAAIH,EAAkGtH,MAC1G0B,KAAK,aCbN,MAAOgG,UAAwCJ,EAMnD,WAAA1H,CAAYmD,EAA8B4E,GACxC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,yBAA0BiG,GAItC,OAAAC,GACE,OAAO,IAAI3B,EAA8EjG,MAAM0B,KAAK,YCjBlG,MAAOmG,UAA4B5B,EAKvC,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,WAIrB,qBAAAoG,GACE,OAAO,IAAIP,EAA6BvH,MAI1C,oBAAA+H,CAAqBJ,GACnB,OAAO,IAAID,EAAgC1H,KAAM2H,IClB/C,MAAOK,UAAyB/B,EAOpC,WAAArG,CAAYmD,GACVyE,MAAMzE,GANE/C,KAAA4C,qBAAsC,CAAC,OAO/C5C,KAAK0B,KAAK,QAAS,QAIrB,MAAAuG,GACE,MAAMC,EAAc,IAAIZ,EAA4DtH,MAEpF,OADAkI,EAAYtE,QAAQ,OAAQ,UACrBsE,GClBL,MAAOC,UAA6BlC,EAKxC,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,YAGrB,MAAA0G,GACE,MAAMC,EAAU,IAAIpC,EAA+CjG,MAInE,OAHAqI,EAAQlD,OAAsB,CAC5BmD,aAAa,IAERD,EAGT,SAAAE,GACE,MAAMF,EAAUrI,KAAKoI,SAMrB,OALAC,EAAQlD,OAAoC,CAC1C9D,OAAQ,oBACRqF,MAAO,EACPH,KAAM,WAED8B,EAGT,KAAAG,GACE,MAAMH,EAAU,IAAIpC,EAA+CjG,MAMnE,OALAqI,EAAQlD,OAAmC,CACzCqD,OAAO,EACP9B,MAAO,EACPH,KAAM,WAED8B,EAGT,OAAAI,GACE,MAAMJ,EAAU,IAAIpC,EAA+CjG,MAInE,OAHAqI,EAAQlD,OAAe,CACrBoB,KAAM,gBAED8B,GC9CL,SAAUK,EAAwD9I,GACtE,OAAO,cAAcA,EACnB,IAAA6F,GACE,OAAOkD,QAAQC,UAGrB,CCAO,IAAMC,EAAN,cAAqC5C,EAK1C,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,cAIrB,UAAAoH,GACE,OAAO,IAAI7C,EAAiEjG,MAAM0B,KAAK,gBAZ9EmH,EAAsBE,EAAA,CADlCL,GACYG,GCQP,MAAOG,UAAgC1B,EAK3C,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,WAAYiG,GAIjC,KAAAsB,GACE,OAAO,IAAIhD,EAAoCjG,MAAM0B,KAAK,SAI5D,IAAAwH,CAAKvB,GACH,OAAO,IAAIL,EAAsCtH,MAAM0B,KAAK,QAASiG,GAIvE,eAAAwB,GACE,OAAO,IAAIlD,EAAwBjG,MAAM0B,KAAK,oBAIhD,WAAA0H,GACE,OAAO,IAAI9B,EAAuEtH,MAAM0B,KAAK,eAI/F,KAAA2H,GACE,OAAO,IAAIpD,EAAoEjG,MAAM0B,KAAK,SAI5F,YAAA4H,GACE,OAAO,IAAIhC,EAA4DtH,MAAM0B,KAAK,kBCpDhF,MAAO6H,UAAuCjC,EAKlD,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,mBAAoBiG,GAIzC,QAAA6B,GACE,OAAO,IAAIlC,EAAmDtH,MAAM0B,KAAK,YAAYwD,OAIvF,UAAAuE,GACE,OAAO,IAAInC,EAAmDtH,MAAM0B,KAAK,cAAcwD,QClBrF,MAAOwE,UAAgCpC,EAK3C,WAAA1H,CAAYmD,EAAgC4E,GAC1C,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,WAAYiG,GAIxB,OAAAC,GACE,OAAO,IAAI3B,EAAqBjG,MAAM0B,KAAK,YCVzC,MAAOiI,UAA+BrC,EAK1C,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,UAAWiG,GAIhC,oBAAAI,GACE,OAAO,IAAIT,EAAqFtH,MAAM0B,KAAK,yBAI7G,MAAAkI,GACE,OAAO,IAAI3D,EAAwDjG,MAAM0B,KAAK,UAIhF,KAAAmI,CAAMlC,GACJ,OAAO,IAAIL,EAAmDtH,MAAM0B,KAAK,SAAUiG,GAIrF,KAAAmC,GACE,OAAO,IAAI7D,EAA4BjG,MAAM0B,KAAK,UCrChD,MAAOqI,UAAoCzC,EAK/C,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,gBAAiBiG,GAItC,QAAAqC,GACE,OAAO,IAAI/D,EAAmDjG,MAAM0B,KAAK,aCbhEuI,EAAAA,aAAN,cAA2B3C,EAEhC,WAAA1H,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,kBAMZ,KAAAwI,GACE,OAAO,IAAIjE,EAA4CjG,MAAM0B,KAAK,SAMpE,QAAAyI,GACE,OAAO,IAAI7C,EAAoCtH,MAAM0B,KAAK,eAlBrC0I,EAAAH,aAAAlB,EAAA,CADxBL,GACYuB,gBCRA,MAAAI,EAAqB,IAAInK,EACtCmK,EAAmBzJ,GAAG,QAAS,SAC/ByJ,EAAmBC,GAAG,WAAY,CAChC,YAAa,YAAa,aAAc,aAAc,cAExDD,EAAmBtJ,QAAQ,OAAQ,aCLtB,MAAAwJ,EAAyB,IAAIrK,EAC1CqK,EAAuB3J,GAAG,QAAS,SACnC2J,EAAuBpJ,MAAM,WAAY,CAEvC,YAAa,YAAa,aAAc,aAAc,YAGtD,YAAa,YAAa,aAAc,YAAa,eCHjD,MAAOqJ,UAA2BvE,EAKtC,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,SAGZ,WAAA+I,GACE,OAAOzK,KAAKmF,OAAO,CACjBuF,IAAK,CAAC,iBAIV,MAAAC,GACE,OAAO3K,KAAKqB,OAAOgJ,GAIrB,aAAAO,GACE,OAAO5K,KAAKqB,OAAOkJ,GAIrB,MAAAM,GACE,OAAO7K,KAAKmF,OAAO,CACjB9D,OAAQ,mBACRqJ,IAAK,CAAC,YCxBCI,EAAAA,cAAN,cAA4BxD,EAOjC,WAAA1H,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,mBAIZ,KAAAwI,GACE,OAAO,IAAIM,EAAmBxK,MAIhC,IAAA+K,CAAKpD,GACH,OAAO,IAAIL,EAAwCtH,MAAM0B,KAAK,QAASiG,GAIzE,QAAAwC,GACE,OAAO,IAAI7C,EAAoCtH,MAAM0B,KAAK,aAI5D,WAAAsJ,GACE,OAAO,IAAI/E,EAAsCjG,MAAM0B,KAAK,eAI9D,UAAAuJ,CAAWtD,GACT,OAAO,IAAIL,EAA0CtH,MAAM0B,KAAK,cAAeiG,GAIjF,cAAAuD,CAAevD,GACb,OAAO3H,KAAKiL,WAAWtD,GAAIjG,KAAK,UAvCV0I,EAAAU,cAAA/B,EAAA,CADzBL,GACYoC,iBCOP,MAAOK,UAAuC7D,EAKlD,WAAA1H,CAAYmD,EAA8B4E,GACxC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,kBAAmBiG,GAI/B,QAAAyD,GACE,OAAO,IAAInF,EAA8BjG,MAAM0B,KAAK,YAItD,KAAA2J,GACE,OAAO,IAAIpB,EAAYA,aAACjK,MAI1B,MAAAsL,GACE,OAAO,IAAIR,EAAaA,cAAC9K,MAI3B,OAAAuL,GACE,OAAO,IAAIjE,EAAgDtH,MAAM0B,KAAK,WAAWwD,OAInF,WAAA8F,GACE,OAAO,IAAI/E,EAAqGjG,MAAM0B,KAAK,eAI7H,UAAAuJ,CAAWtD,GACT,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAYtH,MAAM0B,KAAK,cAAeiG,GAInD,KAAA6D,GACE,OAAO,IAAIvF,EAAoHjG,MAAM0B,KAAK,SAI5I,IAAA+J,CAAK9D,GACH,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAsDtH,MAAM0B,KAAK,QAASiG,GAIvF,WAAA+D,GACE,OAAO1L,KAAKyL,KAAK,WAInB,YAAAE,GACE,OAAO,IAAI1F,EAAiEjG,MAAM0B,KAAK,kBAIzF,WAAAkK,GACE,OAAO,IAAI3F,EAAQjG,MAAM0B,KAAK,eAGhC,IAAAmK,GACE,OAAO,IAAIvE,EAAYtH,MAAM0B,KAAK,QAAQ0B,iBAAiB,CACzD0I,aAAc,SAIlB,WAAAC,GACE,OAAO,IAAIzE,EAAYtH,MAAM0B,KAAK,gBAAgB0B,iBAAiB,CACjE0I,aAAc,UC7Fd,MAAOE,UAAgDb,EAG3D,cAAAc,CAAeC,GACb,OCXY,SAAqCnJ,EAAwCmJ,GAC3F,MAAMhE,EAAc,IAAIZ,EAA2BvE,GAC7CoJ,EAAkBjE,EAAYpE,KAEpC,OAAOoE,EAAYtE,QAAQ,QAAS,kBAAmBuI,EAAiB,kBAAkBhH,OAAO,CAC/F+G,aACChH,MACL,CDIWkH,CAAqCpM,KAAMkM,IEVhD,MAAOG,UAAmCpG,EAK9C,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,gBCJjB,MAAO4K,UAAkChF,EAK7C,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,aAAciG,GAInC,MAAAM,GACE,OAAO,IAAIX,EAAkEtH,MAAM0B,KAAK,UAI1F,aAAA6K,GACE,OAAO,IAAItG,EAAcjG,MAAM0B,KAAK,mBCxBlC,MAAO8K,UAAgClF,EAK3C,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,WAAYiG,GAIjC,QAAA6B,GACE,OAAO,IAAIlC,EAA4CtH,MAAM0B,KAAK,YAIpE,UAAA+H,GACE,OAAO,IAAInC,EAA4CtH,MAAM0B,KAAK,cAIpE,MAAA+K,GACE,OAAO,IAAInF,EAA4CtH,MAAM0B,KAAK,UAIpE,QAAAgL,GACE,OAAO,IAAIpF,EAAyCtH,MAAM0B,KAAK,sBChCnDiL,EAAoB5J,EAAmBlD,EAAc+M,GACnE,MAAMC,EAAI,IAAIvF,EAA+CvE,GAAQrB,KAAK7B,GAQ1E,OANW,MAAP+M,GACFC,EAAE1H,OAAuB,CACvB2H,aAAcF,IAIXC,EAAE3H,MACX,CCPM,MAAO6H,UAAsCzF,EAKjD,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,OAAQiG,GAI7B,KAAAnE,GACE,OAAO,IAAI8D,EAAiDtH,MAAM0B,KAAK,SAASwD,OAIlF,cAAA+G,CAAeC,GACb,OAAO,IAAI5E,EAAmDtH,MAAM0B,KAAK,kBAAkBwD,OAAOC,OAAO,CACvG+G,aAKJ,cAAAc,CAAeC,GACb,MAAMC,EAAW,IAAI5F,EAAmDtH,MAAM0B,KAAK,kBAMnF,OALIuL,GACFC,EAAShI,OAAOI,KAAK,CACnB2H,aAGGC,EAIT,KAAAC,CAAMP,GACJ,OAAOD,EAA+B3M,KAAM,QAAS4M,GAAKxJ,iBAAiB,CACzEgK,QAAS,KCzCT,MAAOC,UAAgC/F,EAK3C,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,WAAYiG,GAIjC,QAAA6B,GACE,OAAO,IAAIlC,EAA0CtH,MAAM0B,KAAK,YAAYwD,QCZzE,IAAMoI,EAAN,cAA0ChG,EAK/C,WAAA1H,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,WAIZ,KAAAuH,GACE,OAAO,IAAIhD,EAAuCjG,MAAM0B,KAAK,SAI/D,IAAAwH,CAAKvB,GACH,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAyCtH,MAAM0B,KAAK,QAASiG,GAI1E,QAAA4F,GACE,MAAMV,EAAI,IAAI5G,EAAmEjG,MAEjF,OADA6M,EAAE/I,MAAQ,YACH+I,EAIT,MAAAW,GACE,MAAMX,EAAI,IAAIvF,EAAqCtH,MAEnD,OADA6M,EAAE/I,KAAO,iBACF+I,EAAE3H,SAnCAoI,EAA2BvE,EAAA,CADvCL,GACY4E,GCEP,MAAOG,UAA2CnG,EAKtD,WAAA1H,CAAYmD,EAAgD4E,GAC1D,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,kBAAmBiG,GAI/B,WAAAiE,GACE,OAAO,IAAI3F,EAAgEjG,MAAM0B,KAAK,eAIxF,UAAAgM,CAAW/F,GACT,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAA+CtH,MAAM0B,KAAK,cAAeiG,GAItF,KAAA0D,GACE,OAAO,IAAIpB,EAAYA,aAACjK,MAI1B,MAAAsL,GACE,OAAO,IAAIR,EAAaA,cAAC9K,MAI3B,OAAAuL,GACE,OAAO,IAAIjE,EAAgEtH,MAAM0B,KAAK,WAAWwD,OAInG,iBAAAyI,GACE,OAAO,IAAI1H,EAA2CjG,MAAM0B,KAAK,eAAgB,WC5C9E,IAAMkM,EAAN,cAAmCtG,EAKxC,WAAA1H,CAAYmD,EAA0B4E,GACpC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAAS,QAASiG,GAI9B,OAAAkG,GACE,OAAO,IAAIvG,EAAyCtH,MAAM0B,KAAK,WAIjE,MAAAoM,GACE,OAAO,IAAIxG,EAAyCtH,MAAM0B,KAAK,UAIjE,QAAAqM,GACE,OAAO,IAAI9H,EAAgDjG,MAAM0B,KAAK,YAIxE,gBAAAsM,GACE,OAAO,IAAI1G,EAAyCtH,MAAM0B,KAAK,qBAAqBwD,OAItF,OAAA+I,GACE,OAAO,IAAIX,EAA4BtN,MAIzC,aAAAkO,CAAcvG,GACZ,OAAO,IAAI8F,EAAmCzN,KAAM2H,GAItD,KAAAsB,GACE,OAAO,IAAIhD,EAAoCjG,MAAM0B,KAAK,SAI5D,IAAAwH,CAAKvB,GACH,OAAO,IAAIL,EAAsCtH,MAAM0B,KAAK,QAASiG,KAnD5DiG,EAAoB7E,EAAA,CADhCL,GACYkF,GCJP,MAAOO,UAA+B7G,EAM1C,WAAA1H,CAAYmD,EAA4C4E,GACtD,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,gBAAiBiG,GAI7B,KAAAyG,GACE,OAAO,IAAInI,EAAoDjG,MAAM0B,KAAK,SAI5E,IAAA2M,CAAK1G,GACH,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAyCtH,MAAM0B,KAAK,QAASiG,GAI1E,SAAA2G,GACE,OAAO,IAAIrI,EAA4DjG,MAAM0B,KAAK,aAIpF,QAAAwL,CAASvF,GACP,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAmDtH,MAAM0B,KAAK,YAAaiG,ICvCpF,MAAO4G,UAA+BjH,EAK1C,WAAA1H,CAAYmD,EAAkD4E,GAC5D,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,gBAAiBiG,GAI7B,OAAAC,GACE,OAAO,IAAI3B,EAAkEjG,MAAM0B,KAAK,WAI1F,MAAA8M,CAAO7G,GACL,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAyCtH,MAAM0B,KAAK,UAAWiG,GAI5E,SAAA8G,GACE,OAAO,IAAIxI,EAA2FjG,MAAM0B,KAAK,aAInH,QAAAgN,CAAS/G,GACP,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAYtH,MAAM0B,KAAK,YAAaiG,GAIjD,KAAAgH,GACE,OAAO,IAAI1I,EAA8CjG,MAAM0B,KAAK,UC3ClE,MAAOkN,UAAwBtH,EAKnC,WAAA1H,CAAYmD,EAAkD4E,GAC5D,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,QAASiG,GAKrB,IAAAoD,GACE,OAAO,IAAIzD,EAA4CtH,MAAM0B,KAAK,QAIpE,IAAAmN,GACE,OAAO,IAAIvH,EAAYtH,MAAM0B,KAAK,QAIpC,IAAAoN,GACE,OAAO,IAAI7I,EAAyDjG,MAAM0B,KAAK,QAGjF,KAAAiN,GACE,OAAO,IAAI1I,EAA8CjG,MAAM0B,KAAK,SAGtE,QAAAqN,CAASpH,GACP,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAElB,OAAO,IAAIsC,EAAsBtH,MAAM0B,KAAK,aAAciG,IC5CxD,MAAOqH,UAAiC7D,EAG5C,KAAA3H,GACE,OAAO,IAAI8D,EAAgCtH,MAAM0B,KAAK,SAASwD,OAIjE,KAAAiI,GACE,OAAO,IAAI7F,EAAgCtH,MAAM0B,KAAK,SAASwD,QCF7D,MAAO+J,UAA6B3H,EAKxC,WAAA1H,CAAYmD,EAA8B4E,GACxC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,OAAQiG,GAIpB,KAAAnE,GACE,OAAO,IAAI8D,EAA4DtH,MAAM0B,KAAK,SAASwD,OAI7F,YAAAgK,CAAatC,GACX,OAAOD,EAA2B3M,KAAM,iBAAkB4M,GAI5D,gBAAAuC,GACE,OAAO,IAAI7H,EAAiFtH,MAAM0B,KAAK,qBAIzG,cAAA0N,GACE,OAAO,IAAInJ,EAA6FjG,MAAM0B,KAAK,mBAIrH,QAAAyI,CAASyC,GACP,OAAOD,EAA2B3M,KAAM,YAAa4M,GAIvD,OAAAyC,CAAQzC,GACN,OAAOD,EAA2B3M,KAAM,WAAY4M,GAItD,cAAA0C,CAAe1C,GACb,OAAOD,EAA2B3M,KAAM,kBAAmB4M,GAI7D,KAAAO,CAAMP,GACJ,OAAOD,EAA0B3M,KAAM,QAAS4M,GAAKxJ,iBAAiB,CACpEgK,QAAS,IAKb,cAAAmC,CAAe3C,GACb,OAAOD,EAA2B3M,KAAM,kBAAmB4M,GAI7D,KAAApB,GACE,OAAO,IAAIvF,EAA+DjG,MAAM0B,KAAK,UCxEnF,MAAO8N,UAAuBP,EAGlC,aAAAf,CAAcvG,GACZ,OAAO,IAAIqH,EAAyBhP,KAAM2H,ICIxC,MAAO8H,UAA2BnI,EAKtC,WAAA1H,CAAYmD,EAAkD4E,GAC5D,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,WAAYiG,GAIxB,IAAA+H,GACE,OAAO,IAAIzJ,EAAqDjG,MAAM0B,KAAK,QAI7E,GAAAiO,CAAIhI,GACF,OAAO,IAAI6H,EAAexP,KAAM2H,GAGlC,KAAAgH,GACE,OAAO,IAAI1I,EAA8CjG,MAAM0B,KAAK,SAItE,SAAAkO,GACE,OAAO,IAAItI,EAAyCtH,MAAM0B,KAAK,cCc5D,IAAMmO,EAAN,cAA+BvI,EAKpC,WAAA1H,CAAYmD,GACVyE,MAAMzE,GAIR,YAAA+M,GACE,OAAO,IAAI7J,EAA6DjG,MAAM0B,KAAK,iBAIrF,WAAAqO,CAAYpI,GACV,OAAO,IAAIwG,EAAuBnO,KAAM2H,GAI1C,QAAAqI,GACE,OAAO,IAAI/J,EAAiBjG,MAAM0B,KAAK,QAAS,YAIlD,OAAAuM,CAAQtG,GACN,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIgE,EAAwBhJ,KAAM2H,GAI3C,eAAAwB,GACE,OAAO,IAAIlD,EAAwBjG,MAAM0B,KAAK,QAAS,oBAIzD,cAAAuO,CAAetI,GACb,OAAO,IAAI4B,EAA+BvJ,KAAM2H,GAIlD,UAAAuI,GACE,OAAO,IAAIjK,EAAkBjG,MAAM0B,KAAK,QAAS,cAInD,cAAAyO,GACE,OAAO,IAAIlK,EAAuBjG,MAAM0B,KAAK,QAAS,kBAIxD,cAAA0O,GACE,OAAO,IAAInK,EAAuBjG,MAAM0B,KAAK,QAAS,mBAIxD,aAAA2O,CAAc1I,GACZ,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAA2BtH,MAAM0B,KAAK,QAAS,kBAAmBiG,GAI/E,QAAAqC,GACE,OAAO,IAAI/D,EAAqDjG,MAAM0B,KAAK,QAAS,YAItF,OAAA4O,CAAQ3I,GACN,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAiDtH,MAAM0B,KAAK,QAAS,WAAYiG,GAI9F,QAAA4I,GACE,OAAO,IAAItK,EAAiBjG,MAAM0B,KAAK,YAIzC,OAAA8O,CAAQ7I,GACN,OAAO,IAAI+B,EAAwB1J,KAAM2H,GAI3C,OAAAC,GACE,OAAO,IAAIC,EAAoB7H,MAIjC,MAAAwO,CAAO7G,GACL,OAAO,IAAIgC,EAAuB3J,KAAM2H,GAG1C,eAAA8I,CAAgB9I,GACd,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,MAAMqD,EAAUrI,KAAK4H,UAIrB,OAHAS,EAAQlD,OAAO,CACb9D,OAAQ,oBAAsBsG,IAEzBU,EAIT,cAAAqI,GACE,OAAO,IAAIzK,EAAsBjG,MAAM0B,KAAK,QAAS,SAAU,YAIjE,YAAAiP,GACE,OAAO,IAAI1K,EAAqBjG,MAAM0B,KAAK,QAAS,iBAItD,WAAAkP,CAAYjJ,GACV,OAAO,IAAIoC,EAA4B/J,KAAM2H,GAI/C,cAAAkJ,GACE,OAAO,IAAI5K,EAAuBjG,MAAM0B,KAAK,QAAS,mBAIxD,oBAAAoP,GACE,OAAO,IAAI7K,EAA+EjG,MAAM0B,KAAK,QAAS,yBAIhH,mBAAAqP,CAAoBpJ,GAClB,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAkCtH,MAAM0B,KAAK,QAAS,wBAAyBiG,GAI5F,cAAAyH,GACE,OAAO,IAAInJ,EAA4BjG,MAAM0B,KAAK,QAAS,mBAI7D,aAAAwM,CAAcvG,GACZ,OAAO,IAAIqE,EAAwChM,KAAM2H,GAI3D,UAAAqJ,GACE,OAAO,IAAI3E,EAA2BrM,MAIxC,iBAAAiR,GACE,OAAO,IAAIhL,EAAwDjG,MAAM0B,KAAK,QAAS,uBAIzF,WAAAwP,GACE,OAAO,IAAIjL,EAAyBjG,MAAM0B,KAAK,QAAS,gBAI1D,UAAAyP,CAAWxJ,GACT,OAAO,IAAIL,EAA4DtH,MAAM0B,KAAK,QAAS,eAAgBiG,GAI7G,YAAAyJ,GACE,OAAO,IAAInL,EAAqBjG,MAAM0B,KAAK,iBAI7C,WAAA2P,CAAY1J,GACV,OAAO,IAAI4G,EAAuBvO,KAAM2H,GAI1C,MAAA2J,GACE,OAAO,IAAIrL,EAAoBjG,MAAM0B,KAAK,QAAS,UAIrD,WAAA6P,CAAY5J,GACV,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAElB,OAAO,IAAIsC,EAAwBtH,MAAM0B,KAAK,QAAS,SAAUiG,EAAI,UAAUzC,OAIjF,KAAAgF,GACE,OAAO,IAAIjE,EAAgDjG,MAAM0B,KAAK,SAIxE,IAAAqJ,CAAKpD,GACH,OAAO,IAAIiH,EAAgB5O,KAAM2H,GAInC,UAAAmB,GACE,OAAO,IAAI7C,EAAiBjG,MAAM0B,KAAK,QAAS,cAIlD,SAAA8P,CAAU7J,GACR,OAAO,IAAI2E,EAA0BtM,KAAM2H,GAI7C,wBAAA8J,GACE,MAAMpJ,EAAUrI,KAAK8I,aAErB,OADAT,EAAQ3G,KAAK,oBACN2G,EAIT,gBAAAqJ,GACE,OAAO,IAAIzL,EAAuCjG,MAAM0B,KAAK,QAAS,qBAIxE,QAAAqM,GACE,OAAO,IAAI9H,EAAqDjG,MAAM0B,KAAK,QAAS,YAItF,OAAAiQ,CAAQhK,GACN,OAAO,IAAI6E,EAAwBxM,KAAM2H,GAI3C,WAAAiK,GACE,OAAO,IAAItK,EAAyDtH,MAAM0B,KAAK,QAAS,eAI1F,QAAAmQ,GACE,OAAO,IAAIvK,EAA2BtH,MAAM0B,KAAK,QAAS,YAG5D,KAAAoQ,GACE,OAAO,IAAI7L,EAAyBjG,MAAM0B,KAAK,QAAS,SAG1D,IAAAqQ,CAAKpK,GACH,OAAO,IAAIL,EAAiEtH,MAAM0B,KAAK,QAAS,QAASiG,GAI3G,QAAAqK,GACE,OAAO,IAAI/L,EAAiBjG,MAAM0B,KAAK,YAIzC,OAAAuQ,CAAQtK,GACN,OAAO,IAAI8H,EAAmBzP,KAAM2H,GAItC,KAAAsB,GACE,OAAO,IAAIhD,EAAkCjG,MAAM0B,KAAK,QAAS,SAInE,IAAAgO,GACE,OAAO,IAAI1H,EAAiBhI,MAI9B,GAAA2P,CAAIhI,GACF,OAAO,IAAIoF,EAA8B/M,KAAM2H,GAIjD,OAAAuK,GACE,OAAO,IAAIjM,EAAqEjG,MAAM0B,KAAK,QAAS,WAItG,MAAAyQ,CAAOxK,GACL,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAElB,OAAO,IAAIsC,EAAsBtH,MAAM0B,KAAK,QAAS,UAAWiG,GAIlE,QAAA4F,GACE,OAAO,IAAIpF,EAAqBnI,MAIlC,OAAAoS,CAAQzK,GACN,OAAO,IAAI0F,EAAwBrN,KAAM2H,GAI3C,QAAA0K,GACE,OAAO,IAAI/K,EAAsCtH,MAAM0B,KAAK,QAAS,YAIvE,UAAA4Q,GACE,OAAO,IAAIzJ,EAAuB7I,MAIpC,KAAAoO,GACE,OAAO,IAAInI,EAAoCjG,MAAM0B,KAAK,SAI5D,UAAA6Q,GACE,OAAO,IAAItM,EAAuCjG,MAAM0B,KAAK,QAAS,SAASwD,OAIjF,IAAAmJ,CAAK1G,GACH,OAAO,IAAIiG,EAAqB5N,KAAM2H,KA1U7BkI,EAAgB9G,EAAA,CAD5BL,GACYmH,GC9CP,MAAO2C,UAAuBvM,EAKlC,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,WAIZ,OAAAvB,GACE,OAAO,IAAImH,EAA2FtH,MAAM0B,KAAK,WAInH,0BAAA+Q,GACE,OAAO,IAAInL,EAA+DtH,MAAM0B,KAAK,iCCpBnF,MAAOgR,UAA0BzM,EAKrC,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,cAGZ,WAAAkQ,GACE,OAAO,IAAI3L,EAAkBjG,MAAMmF,OAAO,CACxC9D,OAAQ,oCACRqF,MAAO,EACPH,KAAM,kBCXN,MAAOoM,UAAwB1M,EAOnC,WAAArG,CAAYmD,GACVyE,MAAMzE,GANE/C,KAAA4C,qBAAsC,CAAC,QAO/C5C,KAAK0B,KAAK,YAIZ,SAAAkR,GACE,OAAO,IAAI3M,EAAgDjG,MAAM0B,KAAK,aAGxE,MAAA0G,GACE,MAAMC,EAAU,IAAIpC,EAAuDjG,MAQ3E,MAPmB,OAAfA,KAAK6D,MACPwE,EAAQ3G,KAAK,UAEb2G,EAAQlD,OAAO,CACbmD,aAAa,IAGVD,EAGT,OAAAI,GACE,OAAO,IAAIxC,EAAqDjG,MAAMuG,KAAK,aAG7E,gBAAAsM,GACE,OAAO,IAAI5M,EAAqDjG,MAAM0B,KAAK,aAAa6E,KAAK,cC5B3F,MAAOuM,UAAqB7M,EAOhC,WAAArG,CAAYmD,GACVyE,MAAMzE,GANE/C,KAAA4C,qBAAsC,CAAC,MAAO,QAOtD5C,KAAK0B,KAAK,SAIZ,QAAA8H,GACE,OAAO,IAAIlC,EAAmDtH,MAAM0B,KAAK,YAAYwD,OAIvF,UAAA6N,GACE,OAAO,IAAIzL,EAA+DtH,MAAM0B,KAAK,cAIvF,gBAAAsR,GACE,OAAO,IAAI1L,EAAmDtH,MAAM0B,KAAK,sBC/BvE,MAAOuR,UAAiC3L,EAK5C,WAAA1H,CAAYmD,EAA4B4E,GACtC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,kBAAmBiG,GAI/B,OAAAuL,GACE,OAAO,IAAI5L,EAAyCtH,MAAM0B,KAAK,WAAW0B,iBAAiB,CACzF0I,aAAc,iBCDd,MAAOqH,UAA2B7L,EAKtC,WAAA1H,CAAYmD,EAAa4E,GACvB,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,WAAYiG,GAIxB,iBAAAyL,GACE,OAAO,IAAI9L,EAAgEtH,MAAM0B,KAAK,sBAIxF,UAAAsP,GACE,OAAO,IAAI/K,EAAuDjG,MAAM0B,KAAK,eAI/E,iBAAAuP,GACE,OAAO,IAAIhL,EAAqEjG,MAAM0B,KAAK,uBAI7F,WAAA0H,GACE,OAAO,IAAI9B,EAA6FtH,MAAM0B,KAAK,eAIrH,KAAA0M,GACE,OAAO,IAAInI,EAAoDjG,MAAM0B,KAAK,SAI5E,UAAA2R,CAAW1L,GACT,OAAO,IAAIL,EAAyCtH,MAAM0B,KAAK,QAASiG,GAI1E,WAAA2L,CAAY3L,GACV,OAAO,IAAIL,EAAyCtH,MAAM0B,KAAK,QAASiG,EAAI,WAAWzC,OAIzF,UAAAqO,CAAW5L,GACT,OAAO,IAAIL,EAAyCtH,MAAM0B,KAAK,QAASiG,EAAI,UAAUzC,OAIxF,gBAAA8I,CAAiBrG,GACf,OAAO,IAAIL,EAAyCtH,MAAM0B,KAAK,QAASiG,EAAI,qBAAqBzC,OAInG,cAAAkL,GACE,OAAO,IAAInK,EAA2DjG,MAAM0B,KAAK,mBAInF,aAAA2O,CAAc1I,GACZ,OAAO,IAAIsL,EAAyBjT,KAAM2H,GAI5C,oBAAA6L,CAAqB7L,GACnB,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlB,OAAO,IAAIsC,EAAqEtH,MAAM0B,KAAK,mBAAoBiG,EAAI,kBAIrH,gBAAA8L,GACE,OAAO,IAAInM,EAA+DtH,MAAM0B,KAAK,eAAgB,UAIvG,eAAAyH,GACE,OAAO,IAAIlD,EAAwBjG,MAAM0B,KAAK,oBAIhD,cAAAuO,CAAetI,GACb,OAAO,IAAI1B,EAAwBjG,MAAM0B,KAAK,mBAAoBiG,GAIpE,QAAA4F,GACE,OAAO,IAAIjG,EAAkCtH,MAAM0B,KAAK,YAI1D,gBAAAgS,GACE,OAAO,IAAIzN,EAAiCjG,MAAM0B,KAAK,sBAIzD,YAAAiS,GACE,OAAO,IAAI1N,EAA6BjG,MAAM0B,KAAK,iBAIrD,mBAAAkS,GACE,OAAO,IAAItM,EAAwCtH,MAAM0B,KAAK,0BChI5D,MAAOmS,UAA0BvM,EAKrC,WAAA1H,CAAYmD,GAEVyE,MAAMzE,GACN/C,KAAK0B,KAAK,UAIZ,IAAAoS,GACE,OAAO,IAAI7N,EAAuCjG,MAAM0B,KAAK,SCX3D,MAAOqS,UAA0BzM,EAKrC,WAAA1H,CAAYmD,EAAa4E,GACvB,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,UAAWiG,GAIvB,UAAAqM,GACE,OAAO,IAAI/N,EAAyEjG,MAAM0B,KAAK,cAGjG,QAAAsI,GACE,OAAO,IAAI/D,EAAiBjG,MAAM0B,KAAK,aCrBrC,MAAOuS,WAA8B3M,EAKzC,WAAA1H,CAAYmD,EAAa4E,GACvB,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,eAAgBiG,GAI5B,MAAAiC,GACE,OAAO,IAAI3D,EAA+DjG,MAAM0B,KAAK,UAIvF,KAAAmI,CAAMlC,GACJ,OAAO,IAAIL,EAAsDtH,MAAM0B,KAAK,SAAUiG,ICrBpF,MAAOuM,WAAqBjO,EAKhC,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,SAOZ,MAAAyS,CAAOC,GAGL,GAAIC,OAAOC,SACT,OAAOtU,KAAKuU,WAAWH,GAMvB,MAAM,IAAIpP,MAAM,sBAIZ,UAAAuP,CAAWxJ,GACjB,MAAMyJ,EAAKC,QAAQ,MAEbC,EAAO,IADID,QAAQ,cAKzB,OAHAC,EAAKC,OAAO,OAAQH,EAAGI,iBAAiB7J,EAAK8J,IAAM,IAAM9J,EAAK+J,UAAW,CACvEA,SAAU/J,EAAK+J,WAEV9U,KAAKkF,OAAOX,QAAQmQ,EAAKK,cAAczP,KAAKoP,ICrCjD,MAAOM,WAA2B1N,EAKtC,WAAA1H,CAAYmD,EAA8BkS,GACxC,GAAY,MAARA,EACF,MAAM,IAAIjQ,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,WAAYuT,GAIxB,MAAAC,GACE,OAAO,IAAIjP,EAAQjG,MAAM0B,KAAK,WCb5B,MAAOyT,WAA6BlP,EAKxC,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,iBAIZ,MAAAwT,GACE,OAAO,IAAIjP,EAAqCjG,MAAM0B,KAAK,UAI7D,QAAA0T,GACE,OAAO,IAAInP,EAAqCjG,MAAM0B,KAAK,YAG7D,OAAA2T,CAAQJ,GACN,OAAO,IAAID,GAAmBhV,KAAMiV,IClBlC,MAAOK,WAAoBrP,EAK/B,WAAArG,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,QAIZ,MAAAuG,GACE,OAAO,IAAIX,EAA4DtH,MAAM0B,KAAK,WChBhF,MAAO6T,WAAgCtP,EAO3C,WAAArG,CAAYmD,GACVyE,MAAMzE,GANE/C,KAAA4C,qBAAsC,CAAC,OAO/C5C,KAAK0B,KAAK,WAMZ,MAAA0G,CAAOA,GACL,OAAOpI,KAAKmF,OAAO,CAACiD,OAAQA,KChB1B,MAAOoN,WAAgClO,EAK3C,WAAA1H,CAAYmD,EAAyB4E,GACnC,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAGlBwC,MAAMzE,GACN/C,KAAK0B,KAAK,gBAAiBiG,GAI7B,IAAA/F,GACE,OAAO,IAAI0F,EAA4CtH,MAAM0B,KAAK,SCIhE,MAAO+T,WAAwBnO,EAKnC,WAAA1H,CAAYmD,EAAa4E,GACvB,GAAU,MAANA,EACF,MAAM,IAAI3C,MAAM,+BAKlB,GAFAwC,MAAMzE,GAEK,OAAP4E,EACF3H,KAAK0B,KAAK,UACL,IAAkB,iBAAPiG,EAGhB,MAAM,IAAI+N,UAAU,sBAFpB1V,KAAK0B,KAAK,QAASiG,IAOvB,QAAA4F,GACE,OAAO,IAAIoF,EAAgB3S,MAI7B,YAAAoR,GACE,OAAO,IAAInL,EAA6GjG,MAAM0B,KAAK,iBAIrI,WAAA2P,CAAY1J,GACV,OAAO,IAAI4G,EAAuBvO,KAAM2H,GAI1C,cAAAyH,GACE,OAAO,IAAInJ,EAAoEjG,MAAM0B,KAAK,mBAI5F,aAAAwM,CAAcvG,GACZ,OAAO,IAAI8F,EAAmCzN,KAAM2H,GAItD,gBAAAgO,GACE,OAAO,IAAIrO,EAAyCtH,MAAM0B,KAAK,sBAAsBwD,OAIvF,QAAA8M,GACE,OAAO,IAAI/L,EAA0DjG,MAAM0B,KAAK,YAIlF,OAAAuQ,CAAQtK,GACN,OAAO,IAAI8H,EAAmBzP,KAAM2H,GAItC,KAAAuC,GACE,OAAO,IAAIgK,GAAalU,MAI1B,IAAA+K,CAAKpD,GACH,OAAO,IAAIiH,EAAgB5O,KAAM2H,GAInC,IAAA+H,GACE,OAAO,IAAI4F,GAAYtV,MAIzB,mBAAA4V,GACE,OAAO,IAAI3P,EAAuDjG,MAAM0B,KAAK,wBAM/E,WAAAmU,GACE,OAAO,IAAIvO,EAAyCtH,MAAM0B,KAAK,iBAIjE,OAAAoU,GACE,OAAO,IAAIxO,EAAyCtH,MAAM0B,KAAK,WAIjE,QAAAqU,GACE,OAAO,IAAIzO,EAAyCtH,MAAM0B,KAAK,YAIjE,aAAAsU,GACE,OAAO,IAAIb,GAAqBnV,MAIlC,YAAAiW,CAAatO,GACX,OAAO,IAAI6N,GAAwBxV,KAAM2H,GAI3C,WAAAyB,GACE,OAAO,IAAI9B,EAA+DtH,MAAM0B,KAAK,eAIvF,aAAAwU,GACE,OAAO,IAAI5O,EAAsDtH,MAAM0B,KAAK,kBAI9E,WAAAyU,GACE,OAAO,IAAIlQ,EAAqDjG,MAAM0B,KAAK,gBAI7E,UAAA4Q,GACE,OAAO,IAAIhL,EAA0DtH,MAAM0B,KAAK,cAIlF,gBAAA0U,GACE,OAAO,IAAInQ,EAA6DjG,MAAM0B,KAAK,qBAIrF,YAAAoO,GACE,OAAO,IAAI7J,EAAmEjG,MAAM0B,KAAK,iBAI3F,WAAAqO,CAAYpI,GACV,OAAO,IAAIwG,EAAuBnO,KAAM2H,GAI1C,eAAA0O,CAAgB1O,GACd,OAAO,IAAIL,EAAYtH,MAAM0B,KAAK,UAAWiG,GAI/C,gBAAA2O,GACE,OAAO,IAAIf,GAAwBvV,MAGrC,aAAAuW,GACE,OAAO,IAAIjP,EAAwCtH,MAAM0B,KAAK,WChL5D,MAAO8U,WAA+BlP,EAG1C,WAAA1H,CAAYmD,GACVyE,MAAMzE,GACN/C,KAAK0B,KAAK,iBAIZ,KAAA+U,CAAMnR,GACJ,OAAO,IAAIgC,EAA4CtH,MAAM0B,KAAK,SAASwD,OAAOI,KAAKA,GAIzF,MAAAoR,GACE,OAAO,IAAIpP,EAAYtH,MAAM0B,KAAK,UAAUwD,OAI9C,GAAAyR,CAAI9W,GACF,OAAO,IAAIyH,EAAYtH,MAAM0B,KAAK,QAAS,YAAa7B,EAAO,UAIjE,eAAA+W,GACE,OAAO,IAAItP,EAAYtH,MAAM0B,KAAK,QAAS,YAAa,cAAcqC,OAAM,IC3BhF,MAAM8B,GAAQ4O,QAAQ,SAASoC,QAiC3BC,WAAWxC,WAEbzO,GAAMkR,SAASxS,QAAQyS,OAAO,cAAgB,kDAIhDnR,GAAMkR,SAASE,iBAAmB,iBAOrBC,GAKX,WAAIhT,GACF,OAAOlE,KAAKmX,YAAYC,QAI1B,WAAAxX,CAAoBqI,GAClB,GADkBjI,KAAMiI,OAANA,EAPZjI,KAAWmX,YAAyB,CAAE,EAQ9B,MAAVlP,EACF,MAAM,IAAIjD,MAAM,0BACX,GAA4B,MAAxBhF,KAAKiI,OAAOoP,SACrB,MAAM,IAAI3B,UAAU,4BACf,GAAoC,iBAAzB1V,KAAKiI,OAAOoP,SAC5B,MAAM,IAAI3B,UAAU,6BACf,IAAK,oBAAoB9T,KAAK5B,KAAKiI,OAAOoP,UAC/C,MAAM,IAAIrS,MAAM,oCAalB,GATAhF,KAAKmX,YAAYC,QAAUpX,KAAKiI,OAAOoP,SAAS5S,QAAQ,OAAQ,IAAM,OAGtEzE,KAAKiI,OAAOqP,KAAOtX,KAAKiI,OAAOqP,GAC3BtX,KAAKiI,OAAOqP,KACdtX,KAAKmX,YAAYC,SAAW,OAI1BpX,KAAKiI,OAAOsP,OAAQ,CACtB,GAAkC,iBAAvBvX,KAAKiI,OAAOsP,OACrB,MAAM,IAAI7B,UAAU,2BACf,IAAK,oBAAoB9T,KAAK5B,KAAKiI,OAAOsP,QAC/C,MAAM,IAAIvS,MAAM,iCAGlBhF,KAAKmX,YAAYK,KAAO,CACtBC,SAAkBzX,KAAKiI,OAAOsP,OAC9BG,SAAU,IAKd1X,KAAKmX,YAAYQ,gBAA4C,MAA1B1P,EAAO0P,iBAAkC1P,EAAO0P,gBAGnF3X,KAAK6F,MAAQA,GAAMS,OAAOtG,KAAKmX,aAOjC,OAAAlJ,CAAQtG,GACN,OAAO,IAAIwL,EAAmBnT,KAAM2H,GAItC,KAAAiQ,GACE,OAAO,IAAI/H,EAAiB7P,MAI9B,MAAA6X,GACE,OAAO,IAAIhE,EAAkB7T,MAI/B,QAAAuQ,GACE,OAAO,IAAItK,EAAiBjG,MAAM0B,KAAK,YAIzC,OAAA8O,CAAQ7I,GACN,OAAO,IAAI+B,EAAwB1J,KAAM2H,GAI3C,MAAA6G,CAAO7G,GACL,OAAO,IAAIoM,EAAkB/T,KAAM2H,GAIrC,WAAA0J,CAAY1J,GACV,OAAO,IAAI4G,EAAuBvO,KAAM2H,GAI1C,YAAAyJ,GACE,OAAO,IAAInL,EAAQjG,MAAM0B,KAAK,iBAIhC,OAAAkG,GACE,OAAO,IAAI4K,EAAexS,MAI5B,aAAAkO,CAAcvG,GACZ,OAAO,IAAIqH,EAAyBhP,KAAM2H,GAI5C,cAAAyH,GACE,OAAO,IAAInJ,EAAQjG,MAAM0B,KAAK,mBAIhC,gBAAA0U,GACE,OAAO,IAAInQ,EAAQjG,MAAM0B,KAAK,qBAIhC,KAAAoW,GACE,OAAO,IAAIxQ,EAAYtH,MAAM0B,KAAK,SAIpC,KAAAwI,GACE,OAAO,IAAIjE,EAAgDjG,MAAM0B,KAAK,SAIxE,IAAAqJ,CAAKpD,GACH,OAAO,IAAIiH,EAAgB5O,KAAM2H,GAInC,WAAAoQ,GACE,OAAO,IAAI9R,EAAmDjG,MAAM0B,KAAK,gBAI3E,UAAAsW,CAAWrQ,GACT,OAAO,IAAIsM,GAAsBjU,KAAM2H,GAIzC,MAAAiC,GACE,OAAO,IAAI3D,EAAQjG,MAAM0B,KAAK,UAIhC,QAAAqM,GACE,OAAO,IAAIzG,EAAYtH,MAAM0B,KAAK,YAIpC,OAAAiQ,GACE,OAAO,IAAIrK,EAA4CtH,MAAM0B,KAAK,WAOpE,EAAAuW,GACE,MAAM,IAAIjT,MAAM,mDAIlB,EAAAkT,GACE,OAAOlY,KAAKqO,KAAK,MAInB,QAAA2D,GACE,OAAO,IAAI/L,EAAiBjG,MAAM0B,KAAK,YAIzC,OAAAuQ,CAAQtK,GACN,OAAO,IAAI8H,EAAmBzP,KAAM2H,GAItC,UAAAqM,GACE,OAAO,IAAItB,EAAkB1S,MAI/B,QAAA+O,CAASpH,GACP,OAAO,IAAIL,EAAsBtH,MAAM0B,KAAK,aAAciG,GAI5D,GAAAgI,CAAIhI,GACF,OAAO,IAAI6H,EAAexP,KAAM2H,GAIlC,QAAA4F,GACE,OAAO,IAAIoF,EAAgB3S,MAI7B,IAAAqO,CAAK1G,GACH,OAAO,IAAI8N,GAAgBzV,KAAM2H,GAInC,KAAAyG,GACE,OAAO,IAAI0E,EAAa9S,MAI1B,WAAAmY,GACE,OAAO,IAAI3B,GAAuBxW,OCvPzB,MAAAoY,GAAiB,CAC5BlB,OACAhX,iBCbF,IAAYmY,GCoFAC,GAOAC,GAMAC,GAMAC,GCrGAC,GAMAC,GASAC,GCXAC,GAOAC,GCTAC,GCCAC,GCLAC,GCsBAC,GAQAC,GCxBAC,GAMAC,GASAC,GAMAC,GAOAC,GA2BAC,GC7DAC,GCAAC,GCAAC,GCQAC,GAMAC,GAMAC,GAWAC,GAsHAC,GCrJAC,GCAAC,GCGAC,GAMAC,GCNAC,GCDAC,GCqBAC,GCpBAC,GCCAC,GCKAC,GAKAC,GAOAC,GA8CAC,GC/DAC,GCDAC,GAKAC,GAMAC,GCdAC,GxBAA9C,EAAAA,sBAAAA,GAAAA,GAAAA,EAAgBA,mBAAhBA,mBAIX,CAAA,IAHC,KAAA,OACAA,GAAA,QAAA,UACAA,GAAA,OAAA,SCiFUC,EAAAA,sBAAAA,GAAAA,GAAAA,EAAgBA,mBAAhBA,mBAKX,CAAA,IAJC,UAAA,YACAA,GAAA,OAAA,SACAA,GAAA,oBAAA,sBACAA,GAAA,iBAAA,mBAGUC,EAAAA,qBAAAA,GAAAA,GAAAA,EAAeA,kBAAfA,kBAIX,CAAA,IAHC,IAAA,MACAA,GAAA,OAAA,SACAA,GAAA,UAAA,YAGUC,EAAAA,iBAAAA,GAAAA,GAAAA,EAAWA,cAAXA,cAIX,CAAA,IAHC,IAAA,MACAA,GAAA,UAAA,YACAA,GAAA,OAAA,SAGUC,EAAAA,oBAAAA,GAAAA,GAAAA,EAAcA,iBAAdA,iBAGX,CAAA,IAFC,KAAA,OACAA,GAAA,IAAA,MCvGUC,EAAAA,mBAAAA,GAAAA,GAAAA,EAAaA,gBAAbA,gBAIX,CAAA,IAHC,UAAA,YACAA,GAAA,OAAA,SACAA,GAAA,WAAA,aAGUC,EAAAA,mBAAAA,GAAAA,GAAAA,EAAaA,gBAAbA,gBAOX,CAAA,IANC,OAAA,SACAA,GAAA,UAAA,YACAA,GAAA,OAAA,SACAA,GAAA,QAAA,UACAA,GAAA,UAAA,YACAA,GAAA,IAAA,MAGUC,EAAAA,sBAAAA,GAAAA,GAAAA,EAAgBA,mBAAhBA,mBAOX,CAAA,IANC,gBAAA,kBACAA,GAAA,YAAA,cACAA,GAAA,eAAA,iBACAA,GAAA,OAAA,SACAA,GAAA,UAAA,YACAA,GAAA,iBAAA,mBCjBUC,EAAAA,cAAAA,GAAAA,GAAAA,EAAQA,WAARA,WAKX,CAAA,IAJC,KAAA,OACAA,GAAA,OAAA,SACAA,GAAA,mBAAA,qBACAA,GAAA,YAAA,cAGUC,EAAAA,iBAAAA,GAAAA,GAAAA,EAAWA,cAAXA,cASX,CAAA,IARC,iBAAA,mBACAA,GAAA,cAAA,gBACAA,GAAA,aAAA,eACAA,GAAA,gBAAA,kBACAA,GAAA,gBAAA,kBACAA,GAAA,aAAA,eACAA,GAAA,YAAA,cACAA,GAAA,eAAA,iBCjBUC,EAAAA,mBAAAA,GAAAA,GAAAA,EAAaA,gBAAbA,gBAKX,CAAA,IAJC,UAAA,YACAA,GAAA,WAAA,aACAA,GAAA,WAAA,aACAA,GAAA,OAAA,SCHUC,EAAAA,iBAAAA,GAAAA,GAAAA,EAAWA,cAAXA,cAIX,CAAA,IAHC,IAAA,MACAA,GAAA,OAAA,SACAA,GAAA,OAAA,SCRUC,EAAAA,gBAAAA,GAAAA,GAAAA,EAAUA,aAAVA,aAGX,CAAA,IAFC,OAAA,SACAA,GAAA,QAAA,UCoBUC,EAAAA,kBAAAA,GAAAA,GAAAA,EAAYA,eAAZA,eAMX,CAAA,IALCA,GAAA,QAAA,GAAA,UACAA,GAAA,OAAA,SACAA,GAAA,WAAA,aACAA,GAAA,WAAA,aACAA,GAAA,YAAA,cAGUC,EAAAA,iBAAAA,GAAAA,GAAAA,EAAWA,cAAXA,cAIX,CAAA,IAHC,WAAA,aACAA,GAAA,IAAA,MACAA,GAAA,GAAA,KC3BUC,EAAAA,uBAAAA,GAAAA,GAAAA,EAAiBA,oBAAjBA,oBAIX,CAAA,IAHC,OAAA,SACAA,GAAA,QAAA,UACAA,GAAA,OAAA,SAGUC,EAAAA,cAAAA,GAAAA,GAAAA,EAAQA,WAARA,WAOX,CAAA,IANC,IAAA,MACAA,GAAA,QAAA,UACAA,GAAA,QAAA,UACAA,GAAA,IAAA,MACAA,GAAA,MAAA,QACAA,GAAA,UAAA,YAGUC,EAAAA,uBAAAA,GAAAA,GAAAA,EAAiBA,oBAAjBA,oBAIX,CAAA,IAHC,OAAA,SACAA,GAAA,MAAA,QACAA,GAAA,UAAA,YAGUC,EAAAA,cAAAA,GAAAA,GAAAA,EAAQA,WAARA,WAKX,CAAA,IAJC,GAAA,KACAA,GAAA,EAAA,IACAA,GAAA,EAAA,IACAA,GAAA,EAAA,IAGUC,EAAAA,UAAAA,GAAAA,GAAAA,EAAIA,OAAJA,OAKX,CAAA,IAJC,KAAA,OACAA,GAAA,SAAA,WACAA,GAAA,IAAA,MACAA,GAAA,KAAA,OAuBUC,EAAAA,gBAAAA,GAAAA,GAAAA,EAAUA,aAAVA,aAIX,CAAA,IAHC,QAAA,UACAA,GAAA,SAAA,WACAA,GAAA,gBAAA,kBChEUC,EAAAA,oBAAAA,GAAAA,GAAAA,EAAcA,iBAAdA,iBASX,CAAA,IARC,KAAA,OACAA,GAAA,YAAA,cACAA,GAAA,UAAA,YACAA,GAAA,eAAA,iBACAA,GAAA,iBAAA,mBACAA,GAAA,UAAA,YACAA,GAAA,QAAA,UACAA,GAAA,SAAA,WCRUC,EAAAA,uBAAAA,GAAAA,GAAAA,EAAiBA,oBAAjBA,oBAIX,CAAA,IAHC,eAAA,iBACAA,GAAA,mBAAA,qBACAA,GAAA,mBAAA,qBCHUC,EAAAA,iBAAAA,GAAAA,GAAAA,EAAWA,cAAXA,cAOX,CAAA,IANC,SAAA,WACAA,GAAA,MAAA,QACAA,GAAA,QAAA,UACAA,GAAA,YAAA,cACAA,GAAA,eAAA,iBACAA,GAAA,uBAAA,yBCEUC,EAAAA,uBAAAA,GAAAA,GAAAA,EAAiBA,oBAAjBA,oBAIX,CAAA,IAHC,UAAA,YACAA,GAAA,WAAA,aACAA,GAAA,WAAA,aAGUC,EAAAA,gBAAAA,GAAAA,GAAAA,EAAUA,aAAVA,aAIX,CAAA,IAHC,KAAA,OACAA,GAAA,OAAA,SACAA,GAAA,KAAA,OAGUC,EAAAA,wBAAAA,GAAAA,GAAAA,EAAkBA,qBAAlBA,qBASX,CAAA,IARC,QAAA,UACAA,GAAA,SAAA,WACAA,GAAA,OAAA,SACAA,GAAA,QAAA,UACAA,GAAA,UAAA,YACAA,GAAA,QAAA,UACAA,GAAA,QAAA,UACAA,GAAA,QAAA,UAGUC,EAAAA,2BAAAA,GAAAA,GAAAA,EAAqBA,wBAArBA,wBAQX,CAAA,IAPC,QAAA,UACAA,GAAA,UAAA,YACAA,GAAA,UAAA,YACAA,GAAA,QAAA,UACAA,GAAA,QAAA,UACAA,GAAA,gBAAA,kBACAA,GAAA,mBAAA,qBA+GUC,EAAAA,0BAAAA,GAAAA,GAAAA,EAAoBA,uBAApBA,uBAMX,CAAA,IALC,WAAA,aACAA,GAAA,QAAA,UACAA,GAAA,YAAA,cACAA,GAAA,cAAA,gBACAA,GAAA,iBAAA,mBC1JUC,EAAAA,YAAAA,GAAAA,GAAAA,EAAMA,SAANA,SAKX,CAAA,IAJC,IAAA,MACAA,GAAA,QAAA,UACAA,GAAA,QAAA,UACAA,GAAA,UAAA,YCJUC,EAAAA,mBAAAA,GAAAA,GAAAA,EAAaA,gBAAbA,gBAKX,CAAA,IAJC,OAAA,SACAA,GAAA,QAAA,UACAA,GAAA,SAAA,WACAA,GAAA,OAAA,SCDUC,EAAAA,yBAAAA,GAAAA,GAAAA,EAAmBA,sBAAnBA,sBAIX,CAAA,IAHC,MAAA,QACAA,GAAA,MAAA,QACAA,GAAA,QAAA,UAGUC,EAAAA,uBAAAA,GAAAA,GAAAA,EAAiBA,oBAAjBA,oBAOX,CAAA,IANC,IAAA,MACAA,GAAA,SAAA,WACAA,GAAA,iBAAA,mBACAA,GAAA,mBAAA,qBACAA,GAAA,OAAA,SACAA,GAAA,MAAA,QCZUC,EAAAA,uBAAAA,GAAAA,GAAAA,EAAiBA,oBAAjBA,oBAIX,CAAA,IAHC,MAAA,QACAA,GAAA,KAAA,OACAA,GAAA,KAAA,OCJUC,EAAAA,oBAAAA,GAAAA,GAAAA,EAAcA,iBAAdA,iBAGX,CAAA,IAFC,UAAA,YACAA,GAAA,SAAA,WCmBUC,EAAAA,iBAAAA,GAAAA,GAAAA,EAAWA,cAAXA,cAOX,CAAA,IANC,IAAA,MACAA,GAAA,KAAA,OACAA,GAAA,MAAA,QACAA,GAAA,QAAA,UACAA,GAAA,IAAA,MACAA,GAAA,KAAA,OC1BUC,EAAAA,wBAAAA,GAAAA,GAAAA,EAAkBA,qBAAlBA,qBAIX,CAAA,IAHC,aAAA,eACAA,GAAA,KAAA,OACAA,GAAA,QAAA,UCFUC,EAAAA,gBAAAA,GAAAA,GAAAA,EAAUA,aAAVA,aAKX,CAAA,IAJC,OAAA,SACAA,GAAA,OAAA,SACAA,GAAA,QAAA,UACAA,GAAA,cAAA,gBCCUC,EAAAA,oBAAAA,GAAAA,GAAAA,EAAcA,iBAAdA,iBAGX,CAAA,IAFC,QAAA,UACAA,GAAA,MAAA,QAGUC,EAAAA,mBAAAA,GAAAA,GAAAA,EAAaA,gBAAbA,gBAKX,CAAA,IAJC,SAAA,WACAA,GAAA,OAAA,SACAA,GAAA,OAAA,SACAA,GAAA,cAAA,gBAGUC,EAAAA,eAAAA,GAAAA,GAAAA,EAASA,YAATA,YAIX,CAAA,IAHC,QAAA,UACAA,GAAA,QAAA,UACAA,GAAA,SAAA,WA2CUC,EAAAA,6BAAAA,GAAAA,GAAAA,EAAuBA,0BAAvBA,0BAIX,CAAA,IAHC,eAAA,iBACAA,GAAA,QAAA,UACAA,GAAA,SAAA,WClEUC,EAAAA,gBAAAA,GAAAA,GAAAA,EAAUA,aAAVA,aAIX,CAAA,IAHC,SAAA,WACAA,GAAA,SAAA,WACAA,GAAA,QAAA,UCJUC,EAAAA,mBAAAA,GAAAA,GAAAA,EAAaA,gBAAbA,gBAGX,CAAA,IAFC,MAAA,QACAA,GAAA,OAAA,SAGUC,EAAAA,mBAAAA,GAAAA,GAAAA,EAAaA,gBAAbA,gBAIX,CAAA,IAHC,YAAA,cACAA,GAAA,KAAA,OACAA,GAAA,KAAA,OAGUC,EAAAA,eAAAA,GAAAA,GAAAA,EAASA,YAATA,YAGX,CAAA,IAFC,UAAA,YACAA,GAAA,MAAA,QChBUC,EAAAA,yBAAAA,GAAAA,GAAAA,EAAmBA,sBAAnBA,sBAIX,CAAA,IAHC,UAAA,YACAA,GAAA,SAAA,WACAA,GAAA,mBAAA"} \ 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/APIListTestCaseRuns.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/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 // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList\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 {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\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 // /admin/devices/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\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}\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, IMAGE_FILES_FILTER, NON_MEDIA_FILES_FILTER} from './class';\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 {SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams} from './models/DeviceSession';\nimport {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 {SessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\nimport {TestCaseRun} from './models/TestCaseRun';\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 {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 SessionQueryParams,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {TestCaseRun} from './models/TestCaseRun';\nimport APIListScreenshots from './APIListScreenshots';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\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}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\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} 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 {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n}\n\nexport default APIResourceDeviceSession\n","import {DeviceSession, TestRunDeviceSessionQueryParams} 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 * /files\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'\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 // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\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 {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// 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\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/**\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 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","export 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 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}\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 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 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 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 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 interface TestRunDeviceSessionQueryParams extends CollectionBasicQueryParams {\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 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","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","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","queue","APIAdminResourceDeviceModel","browsers","InputFileset","files","filesZip","exports","IMAGE_FILES_FILTER","in","NON_MEDIA_FILES_FILTER","APIListOutputFiles","performance","tag","images","nonMediaFiles","videos","OutputFileset","file","screenshots","screenshot","screenshotFile","APIListScreenshots","APIListTestCaseRuns","APIResourceDeviceSessionCommon","commands","input","output","release","steps","step","currentStep","testCaseRuns","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","APIResourceDeviceSession","APIListTestRunDeviceSessions","APIResourceRunCommon","buildLogsZip","dataAvailability","deviceSessions","logsZip","performanceZip","screenshotsZip","APIResourceRun","APIResourceProject","runs","run","unarchive","APIAdminResource","accessGroups","accessGroup","accounts","accountService","activities","administrators","billingPeriods","billingPeriod","browser","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","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/src/api/APIListScreenshots.spec.ts b/src/api/APIListScreenshots.spec.ts new file mode 100644 index 00000000..b4300569 --- /dev/null +++ b/src/api/APIListScreenshots.spec.ts @@ -0,0 +1,32 @@ +import API from '../API'; +import APIListScreenshots from './APIListScreenshots'; +import APIList from './APIList'; +import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; + + +describe('APIListScreenshots', () => { + const cloudUrl = 'https://cloud.bitbar.com'; + let api: API; + let service: APIListScreenshots; + let resourceDeviceSessionCommon: APIResourceDeviceSessionCommon; + const baseId = 1; + + beforeEach(() => { + api = new API({ + baseURL: '', + cloudUrl + }); + resourceDeviceSessionCommon = new APIResourceDeviceSessionCommon(api, baseId); + service = new APIListScreenshots(resourceDeviceSessionCommon); + }); + + describe('Instance', () => { + it('Is created properly', () => { + expect(service).toBeDefined(); + expect(service).toBeInstanceOf(APIList); + expect(service.root).toBeDefined(); + expect(service.root).toBeInstanceOf(API); + expect(service.last).toEqual('screenshots'); + }); + }); +}); diff --git a/src/api/APIListScreenshots.ts b/src/api/APIListScreenshots.ts new file mode 100644 index 00000000..004ccdb1 --- /dev/null +++ b/src/api/APIListScreenshots.ts @@ -0,0 +1,19 @@ +import {Screenshot} from './models/Screenshot'; +import {SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams} from './models/DeviceSession'; +import {NoData} from './models/HTTP'; +import APIList from './APIList'; +import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; + + +export class APIListScreenshots extends APIList { + + /** + * /screenshots + */ + constructor(parent: APIResourceDeviceSessionCommon) { + super(parent); + this.push('screenshots'); + } +} + +export default APIListScreenshots diff --git a/src/api/APIListTestCaseRuns.spec.ts b/src/api/APIListTestCaseRuns.spec.ts new file mode 100644 index 00000000..cee6104c --- /dev/null +++ b/src/api/APIListTestCaseRuns.spec.ts @@ -0,0 +1,32 @@ +import API from '../API'; +import APIList from './APIList'; +import APIListTestCaseRuns from './APIListTestCaseRuns'; +import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; + + +describe('APIListTestCaseRuns', () => { + const cloudUrl = 'https://cloud.bitbar.com'; + let api: API; + let service: APIListTestCaseRuns; + let resourceDeviceSessionCommon: APIResourceDeviceSessionCommon; + const baseId = 1; + + beforeEach(() => { + api = new API({ + baseURL: '', + cloudUrl + }); + resourceDeviceSessionCommon = new APIResourceDeviceSessionCommon(api, baseId); + service = new APIListTestCaseRuns(resourceDeviceSessionCommon); + }); + + describe('Instance', () => { + it('Is created properly', () => { + expect(service).toBeDefined(); + expect(service).toBeInstanceOf(APIList); + expect(service.root).toBeDefined(); + expect(service.root).toBeInstanceOf(API); + expect(service.last).toEqual('test-case-runs'); + }); + }); +}); diff --git a/src/api/APIListTestCaseRuns.ts b/src/api/APIListTestCaseRuns.ts new file mode 100644 index 00000000..ed293356 --- /dev/null +++ b/src/api/APIListTestCaseRuns.ts @@ -0,0 +1,19 @@ +import {SessionQueryParams} from './models/DeviceSession'; +import {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP'; +import APIList from './APIList'; +import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; +import {TestCaseRun} from './models/TestCaseRun'; + + +export class APIListTestCaseRuns extends APIList { + + /** + * /test-case-runs + */ + constructor(parent: APIResourceDeviceSessionCommon) { + super(parent); + this.push('test-case-runs'); + } +} + +export default APIListTestCaseRuns diff --git a/src/api/APIListTestRunDeviceSessions.spec.ts b/src/api/APIListTestRunDeviceSessions.spec.ts new file mode 100644 index 00000000..e4821457 --- /dev/null +++ b/src/api/APIListTestRunDeviceSessions.spec.ts @@ -0,0 +1,26 @@ +import APIListTestRunDeviceSessions from './APIListTestRunDeviceSessions'; +import API from '../API'; +import APIResourceRunCommon from './APIResourceRunCommon'; + + +describe('APIListTestRunDeviceSessions', () => { + const cloudUrl = 'https://cloud.bitbar.com'; + let service: APIListTestRunDeviceSessions; + let api: API; + const baseId = 1; + const baseUrl = `/runs/${baseId}`; + + beforeEach(() => { + api = new API({ + baseURL: '', + cloudUrl + }); + const parent = new APIResourceRunCommon(api, baseId); + + service = new APIListTestRunDeviceSessions(parent); + }); + + it('should initialize proper endpoint path', () => { + expect(service.toUrl()).toEqual(`${baseUrl}/device-sessions`); + }); +}); diff --git a/src/api/APIListTestRunDeviceSessions.ts b/src/api/APIListTestRunDeviceSessions.ts new file mode 100644 index 00000000..3759a022 --- /dev/null +++ b/src/api/APIListTestRunDeviceSessions.ts @@ -0,0 +1,18 @@ +import {DeviceSession, TestRunDeviceSessionQueryParams} from './models/DeviceSession'; +import {CollectionBasicQueryParams, NoData} from './models/HTTP'; +import APIList from './APIList'; +import APIResourceRunCommon from './APIResourceRunCommon'; + + +export class APIListTestRunDeviceSessions extends APIList { + + /** + * /files + */ + constructor(parent: APIResourceRunCommon) { + super(parent); + this.push('device-sessions'); + } +} + +export default APIListTestRunDeviceSessions diff --git a/src/api/APIResourceDeviceSessionCommon.ts b/src/api/APIResourceDeviceSessionCommon.ts index 32320970..ea5d3424 100644 --- a/src/api/APIResourceDeviceSessionCommon.ts +++ b/src/api/APIResourceDeviceSessionCommon.ts @@ -14,8 +14,9 @@ import { SessionStepQueryParams } from './models/DeviceSession'; import {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP'; -import {Screenshot} from './models/Screenshot'; import {TestCaseRun} from './models/TestCaseRun'; +import APIListScreenshots from './APIListScreenshots'; +import APIListTestCaseRuns from './APIListTestCaseRuns'; export class APIResourceDeviceSessionCommon extends APIResource implements DeviceSessionCommon { @@ -53,7 +54,7 @@ export class APIResourceDeviceSessionCommon extends APIResource i // /device-sessions/{id}/screenshots screenshots() { - return new APIList(this).push('screenshots'); + return new APIListScreenshots(this); } // /device-sessions/{id}/screenshots/{id} @@ -86,7 +87,7 @@ export class APIResourceDeviceSessionCommon extends APIResource i // /device-sessions/{id}/test-case-runs testCaseRuns() { - return new APIList(this).push('test-case-runs'); + return new APIListTestCaseRuns(this); } // /device-sessions/{id}/connections diff --git a/src/api/APIResourceRunCommon.ts b/src/api/APIResourceRunCommon.ts index 885651c0..2acc183d 100644 --- a/src/api/APIResourceRunCommon.ts +++ b/src/api/APIResourceRunCommon.ts @@ -4,11 +4,13 @@ import {APIList} from './APIList' import {APIResource} from './APIResource' import {postDeviceRunIds} from './factory/postDeviceRunIds'; import {AdminTestRun} from './models/AdminTestRun'; -import {DeviceSession, DeviceSessionStep, TestRunDeviceSessionQueryParams} from './models/DeviceSession'; +import {DeviceSessionStep} from './models/DeviceSession'; import {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP'; import {RunData, RunQueryParam, TestRun, TestRunData} from './models/TestRun'; import {TestRunDataAvailability, TestRunDataAvailabilityQueryParams} from './models/TestRunDataAvailability'; import {UserFile} from './models/UserFile'; +import APIListTestRunDeviceSessions from './APIListTestRunDeviceSessions'; + export class APIResourceRunCommon extends APIResource { @@ -41,7 +43,7 @@ export class APIResourceRunCommon extends APIResource(this).push('device-sessions'); + return new APIListTestRunDeviceSessions(this); } // /runs/{id}/files.zip diff --git a/src/api/class/OutputFileset.ts b/src/api/class/OutputFileset.ts index a0016fb8..1996af66 100644 --- a/src/api/class/OutputFileset.ts +++ b/src/api/class/OutputFileset.ts @@ -24,7 +24,7 @@ export class OutputFileset extends APIResource { // /output-file-set/files files() { - return new APIListOutputFiles(this); /*new APIList(this).push('files')*/; + return new APIListOutputFiles(this); } // /output-file-set/files/{id} diff --git a/src/api/lists.ts b/src/api/lists.ts index 34d51248..c78fedaa 100644 --- a/src/api/lists.ts +++ b/src/api/lists.ts @@ -3,6 +3,8 @@ import {APIListCleanupConfigurations as OriginAPIListCleanupConfigurations} from import {APIListDevices as OriginAPIListDevices} from'./APIListDevices'; import {APIListFiles as OriginAPIListFiles} from'./APIListFiles'; import {APIListOutputFiles as OriginAPIListOutputFiles} from'./APIListOutputFiles'; +import {APIListScreenshots as OriginAPIListScreenshots} from'./APIListScreenshots'; +import {APIListTestRunDeviceSessions as OriginAPIListTestRunDeviceSessions} from'./APIListTestRunDeviceSessions'; import {APIListNotifications as OriginAPIListNotifications} from'./APIListNotifications'; import {APIListProperties as OriginAPIListProperties} from'./APIListProperties'; import {APIListRuns as OriginAPIListRuns} from'./APIListRuns'; @@ -10,11 +12,14 @@ import {APIListServices as OriginAPIListServices} from'./APIListServices'; import {APIListSmartbearTunnels as OriginAPIListSmartbearTunnels} from'./APIListSmartbearTunnels'; import {APIListUsers as OriginAPIListUsers} from'./APIListUsers'; + export type APIList = InstanceType; export type APIListCleanupConfigurations = InstanceType; export type APIListDevices = InstanceType; export type APIListFiles = InstanceType; export type APIListOutputFiles = InstanceType; +export type APIListScreenshots = InstanceType; +export type APIListTestRunDeviceSessions = InstanceType; export type APIListNotifications = InstanceType; export type APIListProperties = InstanceType; export type APIListRuns = InstanceType; From 642e14a81b012cf8c3504eb8c55b4a302e91bae6 Mon Sep 17 00:00:00 2001 From: "michal.szpruta" Date: Tue, 4 Nov 2025 15:56:49 +0100 Subject: [PATCH 2/4] Device frame - imageCornerRadius support --- dist/bitbar-cloud-api-client.js | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/bitbar-cloud-api-client.js b/dist/bitbar-cloud-api-client.js index 91623f4b..fe6d4502 100644 --- a/dist/bitbar-cloud-api-client.js +++ b/dist/bitbar-cloud-api-client.js @@ -1,11 +1,11 @@ -/* @bitbar/cloud-api-client v1.5.13 | Copyright 2025 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ +/* @bitbar/cloud-api-client v1.5.12 | Copyright 2025 (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.5.13"; + var version = "1.5.12"; /****************************************************************************** Copyright (c) Microsoft Corporation. diff --git a/package-lock.json b/package-lock.json index e421b2e7..bf294930 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bitbar/cloud-api-client", - "version": "1.5.13", + "version": "1.5.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@bitbar/cloud-api-client", - "version": "1.5.13", + "version": "1.5.12", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.2", diff --git a/package.json b/package.json index 454459e5..0bb871c9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bitbar/cloud-api-client", - "version": "1.5.13", + "version": "1.5.12", "description": "Bitbar Cloud API Client for JavaScript", "main": "dist/bitbar-cloud-api-client.min.js", "types": "dist/index.d.ts", From be6e9ceab091439b24af83c937d18a730675877b Mon Sep 17 00:00:00 2001 From: Marietta Suchanek Date: Tue, 4 Nov 2025 16:12:11 +0100 Subject: [PATCH 3/4] Add retryable property --- dist/bitbar-cloud-api-client.js | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/bitbar-cloud-api-client.js b/dist/bitbar-cloud-api-client.js index fe6d4502..91623f4b 100644 --- a/dist/bitbar-cloud-api-client.js +++ b/dist/bitbar-cloud-api-client.js @@ -1,11 +1,11 @@ -/* @bitbar/cloud-api-client v1.5.12 | Copyright 2025 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ +/* @bitbar/cloud-api-client v1.5.13 | Copyright 2025 (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.5.12"; + var version = "1.5.13"; /****************************************************************************** Copyright (c) Microsoft Corporation. diff --git a/package-lock.json b/package-lock.json index bf294930..e421b2e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bitbar/cloud-api-client", - "version": "1.5.12", + "version": "1.5.13", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@bitbar/cloud-api-client", - "version": "1.5.12", + "version": "1.5.13", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.2", diff --git a/package.json b/package.json index 0bb871c9..454459e5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bitbar/cloud-api-client", - "version": "1.5.12", + "version": "1.5.13", "description": "Bitbar Cloud API Client for JavaScript", "main": "dist/bitbar-cloud-api-client.min.js", "types": "dist/index.d.ts", From 0677451a87559c84c51aa6b965a126ed0e0f0fb7 Mon Sep 17 00:00:00 2001 From: Marietta Suchanek Date: Fri, 7 Nov 2025 12:54:34 +0100 Subject: [PATCH 4/4] Version 1.5.14. Model updates related to ScreenshotComparison --- dist/api/APIListScreenshots.d.ts | 5 ++--- dist/api/APIListTestCaseRuns.d.ts | 4 ++-- dist/api/APIListTestRunDeviceSessions.d.ts | 4 ++-- dist/api/models/DeviceSession.d.ts | 3 --- dist/bitbar-cloud-api-client.js | 4 ++-- dist/bitbar-cloud-api-client.js.map | 2 +- dist/bitbar-cloud-api-client.min.js | 4 ++-- dist/bitbar-cloud-api-client.min.js.map | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/api/APIListScreenshots.ts | 7 +++---- src/api/APIListTestCaseRuns.ts | 4 ++-- src/api/APIListTestRunDeviceSessions.ts | 6 +++--- src/api/APIResourceDeviceSessionCommon.ts | 2 -- src/api/models/DeviceSession.ts | 4 ---- 15 files changed, 23 insertions(+), 34 deletions(-) diff --git a/dist/api/APIListScreenshots.d.ts b/dist/api/APIListScreenshots.d.ts index 69b8b204..d260423f 100644 --- a/dist/api/APIListScreenshots.d.ts +++ b/dist/api/APIListScreenshots.d.ts @@ -1,9 +1,8 @@ import { Screenshot } from './models/Screenshot'; -import { SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams } from './models/DeviceSession'; -import { NoData } from './models/HTTP'; +import { CollectionBasicQueryParams, NoData } from './models/HTTP'; import APIList from './APIList'; import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; -export declare class APIListScreenshots extends APIList { +export declare class APIListScreenshots extends APIList { constructor(parent: APIResourceDeviceSessionCommon); } export default APIListScreenshots; diff --git a/dist/api/APIListTestCaseRuns.d.ts b/dist/api/APIListTestCaseRuns.d.ts index 593037c8..d5d0c6af 100644 --- a/dist/api/APIListTestCaseRuns.d.ts +++ b/dist/api/APIListTestCaseRuns.d.ts @@ -1,9 +1,9 @@ import { SessionQueryParams } from './models/DeviceSession'; -import { CollectionBasicQueryParams, NoData, NoQueryParams } from './models/HTTP'; +import { NoData, NoQueryParams } from './models/HTTP'; import APIList from './APIList'; import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; import { TestCaseRun } from './models/TestCaseRun'; -export declare class APIListTestCaseRuns extends APIList { +export declare class APIListTestCaseRuns extends APIList { constructor(parent: APIResourceDeviceSessionCommon); } export default APIListTestCaseRuns; diff --git a/dist/api/APIListTestRunDeviceSessions.d.ts b/dist/api/APIListTestRunDeviceSessions.d.ts index 5da49cd4..e840ba2f 100644 --- a/dist/api/APIListTestRunDeviceSessions.d.ts +++ b/dist/api/APIListTestRunDeviceSessions.d.ts @@ -1,8 +1,8 @@ -import { DeviceSession, TestRunDeviceSessionQueryParams } from './models/DeviceSession'; +import { DeviceSession } from './models/DeviceSession'; import { CollectionBasicQueryParams, NoData } from './models/HTTP'; import APIList from './APIList'; import APIResourceRunCommon from './APIResourceRunCommon'; -export declare class APIListTestRunDeviceSessions extends APIList { +export declare class APIListTestRunDeviceSessions extends APIList { constructor(parent: APIResourceRunCommon); } export default APIListTestRunDeviceSessions; diff --git a/dist/api/models/DeviceSession.d.ts b/dist/api/models/DeviceSession.d.ts index 1d994faa..d38b38be 100644 --- a/dist/api/models/DeviceSession.d.ts +++ b/dist/api/models/DeviceSession.d.ts @@ -129,9 +129,6 @@ export interface SessionRunStepQueryParams extends CollectionBasicQueryParams { export interface SessionStepQueryParams extends SessionRunStepQueryParams { projectId: number; } -export interface TestRunDeviceSessionQueryParams extends CollectionBasicQueryParams { - projectId: number; -} export declare enum SessionReleaseReason { INACTIVITY = "INACTIVITY", TIMEOUT = "TIMEOUT", diff --git a/dist/bitbar-cloud-api-client.js b/dist/bitbar-cloud-api-client.js index 91623f4b..d2222791 100644 --- a/dist/bitbar-cloud-api-client.js +++ b/dist/bitbar-cloud-api-client.js @@ -1,11 +1,11 @@ -/* @bitbar/cloud-api-client v1.5.13 | Copyright 2025 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ +/* @bitbar/cloud-api-client v1.5.14 | Copyright 2025 (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.5.13"; + var version = "1.5.14"; /****************************************************************************** Copyright (c) Microsoft Corporation. diff --git a/dist/bitbar-cloud-api-client.js.map b/dist/bitbar-cloud-api-client.js.map index 7b8a75f7..638080d6 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/APIListTestCaseRuns.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/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 // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList\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 {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\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 // /admin/devices/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\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}\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, IMAGE_FILES_FILTER, NON_MEDIA_FILES_FILTER} from './class';\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 {SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams} from './models/DeviceSession';\nimport {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 {SessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\nimport {TestCaseRun} from './models/TestCaseRun';\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 {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 SessionQueryParams,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {TestCaseRun} from './models/TestCaseRun';\nimport APIListScreenshots from './APIListScreenshots';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\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}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\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} 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 {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n}\n\nexport default APIResourceDeviceSession\n","import {DeviceSession, TestRunDeviceSessionQueryParams} 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 * /files\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'\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 // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\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 {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// 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\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/**\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 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","export 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 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}\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 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 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 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 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 interface TestRunDeviceSessionQueryParams extends CollectionBasicQueryParams {\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 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","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/APIListTestCaseRuns.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/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 // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList\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 {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\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 // /admin/devices/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\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}\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, IMAGE_FILES_FILTER, NON_MEDIA_FILES_FILTER} from './class';\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 {SessionQueryParams} from './models/DeviceSession';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\nimport {TestCaseRun} from './models/TestCaseRun';\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 {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';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\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}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\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} 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 {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\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'\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 // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\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 {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// 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\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/**\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 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","export 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 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}\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 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 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 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","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 419247ab..4efad38a 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.5.11 | Copyright 2025 (c) SmartBear Software and contributors | .git/blob/master/LICENSE */ +/* @bitbar/cloud-api-client v1.5.14 | Copyright 2025 (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=this.paramsSerializer),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 m 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 S 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)}queue(){return new c(this).push("queue")}}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")}}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 c{constructor(e){super(e),this.push("test-case-runs")}}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)}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")}testCaseRuns(){return new D(this)}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 b extends g{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 U extends c{constructor(e){super(e),this.push("admin","device-time")}}class _ 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 y 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 P(e,s,t){const r=new l(e).push(s);return null!=t&&r.params({deviceRunIds:t}),r.post()}class F 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 P(this,"retry",e).setRequestConfig({timeout:0})}}class M 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 G=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()}};G=n([I],G);class x 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 k=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 G(this)}deviceSession(e){return new x(this,e)}roles(){return new c(this).push("roles")}role(e){return new l(this).push("roles",e)}};k=n([I],k);class B 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 q 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 H 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 W extends g{abort(){return new l(this).push("abort").post()}retry(){return new l(this).push("retry").post()}}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 P(this,"build-logs.zip",e)}dataAvailability(){return new l(this).push("data-availability")}deviceSessions(){return new Y(this)}filesZip(e){return P(this,"files.zip",e)}logsZip(e){return P(this,"logs.zip",e)}performanceZip(e){return P(this,"performance.zip",e)}retry(e){return P(this,"retry",e).setRequestConfig({timeout:0})}screenshotsZip(e){return P(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 B(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")}browser(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","browsers",e)}clusters(){return new c(this).push("clusters")}cluster(e){return new m(this,e)}devices(){return new E(this)}device(e){return new S(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 b(this,e)}deviceTime(){return new U(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 q(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 H(this,e)}frameworks(){return new c(this).push("admin","frameworks")}framework(e){return new _(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 y(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 F(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 M(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 k(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 q(this,e)}deviceSessions(){return new c(this).push("device-sessions")}deviceSession(e){return new x(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 H(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 B(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.5.11"),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.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 m(this,e)}device(e){return new te(this,e)}deviceGroup(e){return new q(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 H(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,me,Se,Re,ve,Le,Oe,Ce,De,ge,be,Ue,_e,ye,Pe,Fe,Me,Ge,xe,ke,Be,qe,He,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,(me=e.PaymentMethod||(e.PaymentMethod={})).PAYPAL="PAYPAL",me.BRAINTREE="BRAINTREE",me.STRIPE="STRIPE",me.INVOICE="INVOICE",me.PROMOTION="PROMOTION",me.AWS="AWS",e.DeactivateReason=void 0,(Se=e.DeactivateReason||(e.DeactivateReason={})).INITIAL_FAILURE="INITIAL_FAILURE",Se.SCA_FAILURE="SCA_FAILURE",Se.CHARGE_FAILURE="CHARGE_FAILURE",Se.CANCEL="CANCEL",Se.SUSPENDED="SUSPENDED",Se.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,(Be=e.RetryState||(e.RetryState={})).NONE="NONE",Be.MANUAL="MANUAL",Be.AUTO="AUTO",e.DeviceSessionState=void 0,(qe=e.DeviceSessionState||(e.DeviceSessionState={})).ABORTED="ABORTED",qe.EXCLUDED="EXCLUDED",qe.FAILED="FAILED",qe.RUNNING="RUNNING",qe.SUCCEEDED="SUCCEEDED",qe.TIMEOUT="TIMEOUT",qe.WAITING="WAITING",qe.WARNING="WARNING",e.DeviceSessionStepType=void 0,(He=e.DeviceSessionStepType||(e.DeviceSessionStepType={})).WAITING="WAITING",He.PREPARING="PREPARING",He.UNINSTALL="UNINSTALL",He.INSTALL="INSTALL",He.RUNNING="RUNNING",He.SENDING_RESULTS="SENDING_RESULTS",He.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=this.paramsSerializer),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 m 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 S 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)}queue(){return new c(this).push("queue")}}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")}}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 c{constructor(e){super(e),this.push("test-case-runs")}}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)}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")}testCaseRuns(){return new D(this)}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 b extends g{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 U extends c{constructor(e){super(e),this.push("admin","device-time")}}class _ 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 y 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 P(e,s,t){const r=new l(e).push(s);return null!=t&&r.params({deviceRunIds:t}),r.post()}class F 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 P(this,"retry",e).setRequestConfig({timeout:0})}}class M 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 G=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()}};G=n([I],G);class x 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 k=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 G(this)}deviceSession(e){return new x(this,e)}roles(){return new c(this).push("roles")}role(e){return new l(this).push("roles",e)}};k=n([I],k);class B 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 q 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 H 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 W extends g{abort(){return new l(this).push("abort").post()}retry(){return new l(this).push("retry").post()}}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 P(this,"build-logs.zip",e)}dataAvailability(){return new l(this).push("data-availability")}deviceSessions(){return new Y(this)}filesZip(e){return P(this,"files.zip",e)}logsZip(e){return P(this,"logs.zip",e)}performanceZip(e){return P(this,"performance.zip",e)}retry(e){return P(this,"retry",e).setRequestConfig({timeout:0})}screenshotsZip(e){return P(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 B(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")}browser(e){if(null==e)throw new Error("Resource ID cannot be null!");return new l(this).push("admin","browsers",e)}clusters(){return new c(this).push("clusters")}cluster(e){return new m(this,e)}devices(){return new E(this)}device(e){return new S(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 b(this,e)}deviceTime(){return new U(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 q(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 H(this,e)}frameworks(){return new c(this).push("admin","frameworks")}framework(e){return new _(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 y(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 F(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 M(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 k(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 q(this,e)}deviceSessions(){return new c(this).push("device-sessions")}deviceSession(e){return new x(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 H(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 B(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.5.14"),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.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 m(this,e)}device(e){return new te(this,e)}deviceGroup(e){return new q(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 H(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,me,Se,Re,ve,Le,Oe,Ce,De,ge,be,Ue,_e,ye,Pe,Fe,Me,Ge,xe,ke,Be,qe,He,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,(me=e.PaymentMethod||(e.PaymentMethod={})).PAYPAL="PAYPAL",me.BRAINTREE="BRAINTREE",me.STRIPE="STRIPE",me.INVOICE="INVOICE",me.PROMOTION="PROMOTION",me.AWS="AWS",e.DeactivateReason=void 0,(Se=e.DeactivateReason||(e.DeactivateReason={})).INITIAL_FAILURE="INITIAL_FAILURE",Se.SCA_FAILURE="SCA_FAILURE",Se.CHARGE_FAILURE="CHARGE_FAILURE",Se.CANCEL="CANCEL",Se.SUSPENDED="SUSPENDED",Se.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,(Be=e.RetryState||(e.RetryState={})).NONE="NONE",Be.MANUAL="MANUAL",Be.AUTO="AUTO",e.DeviceSessionState=void 0,(qe=e.DeviceSessionState||(e.DeviceSessionState={})).ABORTED="ABORTED",qe.EXCLUDED="EXCLUDED",qe.FAILED="FAILED",qe.RUNNING="RUNNING",qe.SUCCEEDED="SUCCEEDED",qe.TIMEOUT="TIMEOUT",qe.WAITING="WAITING",qe.WARNING="WARNING",e.DeviceSessionStepType=void 0,(He=e.DeviceSessionStepType||(e.DeviceSessionStepType={})).WAITING="WAITING",He.PREPARING="PREPARING",He.UNINSTALL="UNINSTALL",He.INSTALL="INSTALL",He.RUNNING="RUNNING",He.SENDING_RESULTS="SENDING_RESULTS",He.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 434e384d..22c04fe7 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/APIListTestCaseRuns.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/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 // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList\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 {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\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 // /admin/devices/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\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}\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, IMAGE_FILES_FILTER, NON_MEDIA_FILES_FILTER} from './class';\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 {SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams} from './models/DeviceSession';\nimport {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 {SessionQueryParams} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\nimport {TestCaseRun} from './models/TestCaseRun';\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 {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 SessionQueryParams,\n SessionRunStepQueryParams,\n SessionStepQueryParams\n} from './models/DeviceSession';\nimport {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP';\nimport {TestCaseRun} from './models/TestCaseRun';\nimport APIListScreenshots from './APIListScreenshots';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\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}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\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} 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 {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\n\n}\n\nexport default APIResourceDeviceSession\n","import {DeviceSession, TestRunDeviceSessionQueryParams} 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 * /files\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'\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 // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\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 {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// 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\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/**\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 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","export 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 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}\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 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 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 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 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 interface TestRunDeviceSessionQueryParams extends CollectionBasicQueryParams {\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 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","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","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","queue","APIAdminResourceDeviceModel","browsers","InputFileset","files","filesZip","exports","IMAGE_FILES_FILTER","in","NON_MEDIA_FILES_FILTER","APIListOutputFiles","performance","tag","images","nonMediaFiles","videos","OutputFileset","file","screenshots","screenshot","screenshotFile","APIListScreenshots","APIListTestCaseRuns","APIResourceDeviceSessionCommon","commands","input","output","release","steps","step","currentStep","testCaseRuns","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","APIResourceDeviceSession","APIListTestRunDeviceSessions","APIResourceRunCommon","buildLogsZip","dataAvailability","deviceSessions","logsZip","performanceZip","screenshotsZip","APIResourceRun","APIResourceProject","runs","run","unarchive","APIAdminResource","accessGroups","accessGroup","accounts","accountService","activities","administrators","billingPeriods","billingPeriod","browser","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","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/APIListTestCaseRuns.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/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 // Set default Content-Type\n if (requestConfig.headers['Content-Type'] == null) {\n requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n\n // Convert data if needed\n if (requestConfig.method === 'POST' &&\n (requestConfig.headers['Content-Type']).startsWith('application/x-www-form-urlencoded') &&\n requestConfig.data != null) {\n requestConfig.data = this.paramsSerializer(requestConfig.data);\n }\n\n if (requestConfig.params) {\n requestConfig.paramsSerializer = this.paramsSerializer;\n }\n\n // Send request\n return this.root.axios.request(requestConfig);\n }\n\n protected paramsSerializer(params: DATA | QUERY_PARAMS): string {\n return stringify(params, {\n arrayFormat: 'brackets'\n });\n }\n}\n\n\nexport default APIEntity;\n","import {AxiosResponse} from 'axios';\nimport {FilterBuilder} from '../FilterBuilder'\nimport {APIEntity} from './APIEntity'\nimport {APIOrder, CollectionBasicQueryParams, CollectionQueryParams, CollectionResponse, NoQueryParams, SimpleCollectionResponse} from './models/HTTP';\n\n\nexport const DEFAULT_LIMIT: number = 20;\nexport const DEFAULT_OFFSET: number = 0;\n\nexport class APIList\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 {AdminDeviceSession} from './models/AdminDeviceSession';\nimport {\n DeviceCleanupConfiguration,\n DeviceCleanupConfigurationData,\n DeviceLabelData,\n DeviceProperty\n} from './models/Device';\nimport {NoData, NoQueryParams, QueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDevice extends APIResource {\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 // /admin/devices/{id}/queue\n queue() {\n return new APIList(this).push('queue');\n }\n\n}\n\nexport default APIAdminResourceDevice\n","import {APIAdminResource} from './APIAdminResource';\nimport {APIList} from './APIList'\nimport {APIResource} from './APIResource'\nimport {Browser, DeviceBrowserData} from './models/Browser';\nimport {DeviceModel, DeviceModelData} from './models/DeviceModel';\nimport {NoQueryParams} from './models/HTTP';\n\n\nexport class APIAdminResourceDeviceModel extends APIResource {\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}\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, IMAGE_FILES_FILTER, NON_MEDIA_FILES_FILTER} from './class';\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 {SessionQueryParams} from './models/DeviceSession';\nimport {NoData, NoQueryParams} from './models/HTTP';\nimport APIList from './APIList';\nimport APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon';\nimport {TestCaseRun} from './models/TestCaseRun';\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 {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';\nimport APIListTestCaseRuns from './APIListTestCaseRuns';\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}/test-case-runs\n testCaseRuns() {\n return new APIListTestCaseRuns(this);\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} 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 {APIResource} from './APIResource';\nimport {APIResourceDeviceSessionCommon} from './APIResourceDeviceSessionCommon';\nimport {DeviceSession} from './interface/DeviceSession';\nimport {DeviceSession as DeviceSessionModel} from './models/DeviceSession';\n\nexport class APIResourceDeviceSession extends APIResourceDeviceSessionCommon implements DeviceSession {\n\n // /device-sessions/{id}/abort\n abort() {\n return new APIResource(this).push('abort').post();\n }\n\n // /device-sessions/{id}/retry\n retry() {\n return new APIResource(this).push('retry').post();\n }\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'\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 // /admin/browsers/{id}\n browser(id: number) {\n if (id == null) {\n throw new Error('Resource ID cannot be null!');\n }\n\n return new APIResource(this).push('admin', 'browsers', id);\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 {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// 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\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/**\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 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","export 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 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}\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 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 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 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","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","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","queue","APIAdminResourceDeviceModel","browsers","InputFileset","files","filesZip","exports","IMAGE_FILES_FILTER","in","NON_MEDIA_FILES_FILTER","APIListOutputFiles","performance","tag","images","nonMediaFiles","videos","OutputFileset","file","screenshots","screenshot","screenshotFile","APIListScreenshots","APIListTestCaseRuns","APIResourceDeviceSessionCommon","commands","input","output","release","steps","step","currentStep","testCaseRuns","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","APIResourceDeviceSession","APIListTestRunDeviceSessions","APIResourceRunCommon","buildLogsZip","dataAvailability","deviceSessions","logsZip","performanceZip","screenshotsZip","APIResourceRun","APIResourceProject","runs","run","unarchive","APIAdminResource","accessGroups","accessGroup","accounts","accountService","activities","administrators","billingPeriods","billingPeriod","browser","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","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 e421b2e7..9c1ed410 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bitbar/cloud-api-client", - "version": "1.5.13", + "version": "1.5.14", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@bitbar/cloud-api-client", - "version": "1.5.13", + "version": "1.5.14", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.2", diff --git a/package.json b/package.json index 454459e5..70820ade 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bitbar/cloud-api-client", - "version": "1.5.13", + "version": "1.5.14", "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/APIListScreenshots.ts b/src/api/APIListScreenshots.ts index 004ccdb1..184a7c8e 100644 --- a/src/api/APIListScreenshots.ts +++ b/src/api/APIListScreenshots.ts @@ -1,14 +1,13 @@ import {Screenshot} from './models/Screenshot'; -import {SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams} from './models/DeviceSession'; -import {NoData} from './models/HTTP'; +import {CollectionBasicQueryParams, NoData} from './models/HTTP'; import APIList from './APIList'; import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; -export class APIListScreenshots extends APIList { +export class APIListScreenshots extends APIList { /** - * /screenshots + * screenshots */ constructor(parent: APIResourceDeviceSessionCommon) { super(parent); diff --git a/src/api/APIListTestCaseRuns.ts b/src/api/APIListTestCaseRuns.ts index ed293356..fd816d4a 100644 --- a/src/api/APIListTestCaseRuns.ts +++ b/src/api/APIListTestCaseRuns.ts @@ -1,11 +1,11 @@ import {SessionQueryParams} from './models/DeviceSession'; -import {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP'; +import {NoData, NoQueryParams} from './models/HTTP'; import APIList from './APIList'; import APIResourceDeviceSessionCommon from './APIResourceDeviceSessionCommon'; import {TestCaseRun} from './models/TestCaseRun'; -export class APIListTestCaseRuns extends APIList { +export class APIListTestCaseRuns extends APIList { /** * /test-case-runs diff --git a/src/api/APIListTestRunDeviceSessions.ts b/src/api/APIListTestRunDeviceSessions.ts index 3759a022..ad9ca7a0 100644 --- a/src/api/APIListTestRunDeviceSessions.ts +++ b/src/api/APIListTestRunDeviceSessions.ts @@ -1,13 +1,13 @@ -import {DeviceSession, TestRunDeviceSessionQueryParams} from './models/DeviceSession'; +import {DeviceSession} from './models/DeviceSession'; import {CollectionBasicQueryParams, NoData} from './models/HTTP'; import APIList from './APIList'; import APIResourceRunCommon from './APIResourceRunCommon'; -export class APIListTestRunDeviceSessions extends APIList { +export class APIListTestRunDeviceSessions extends APIList { /** - * /files + * device-sessions */ constructor(parent: APIResourceRunCommon) { super(parent); diff --git a/src/api/APIResourceDeviceSessionCommon.ts b/src/api/APIResourceDeviceSessionCommon.ts index ea5d3424..2e41f994 100644 --- a/src/api/APIResourceDeviceSessionCommon.ts +++ b/src/api/APIResourceDeviceSessionCommon.ts @@ -9,12 +9,10 @@ import { DeviceSession, DeviceSessionCommand, DeviceSessionStep, - SessionQueryParams, SessionRunStepQueryParams, SessionStepQueryParams } from './models/DeviceSession'; import {CollectionBasicQueryParams, NoData, NoQueryParams} from './models/HTTP'; -import {TestCaseRun} from './models/TestCaseRun'; import APIListScreenshots from './APIListScreenshots'; import APIListTestCaseRuns from './APIListTestCaseRuns'; diff --git a/src/api/models/DeviceSession.ts b/src/api/models/DeviceSession.ts index d9a9d733..15000ab4 100644 --- a/src/api/models/DeviceSession.ts +++ b/src/api/models/DeviceSession.ts @@ -143,10 +143,6 @@ export interface SessionStepQueryParams extends SessionRunStepQueryParams { projectId: number; } -export interface TestRunDeviceSessionQueryParams extends CollectionBasicQueryParams { - projectId: number; -} - export enum SessionReleaseReason { INACTIVITY = 'INACTIVITY', TIMEOUT = 'TIMEOUT',