@mobilerun/sdk 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +2 -2
  3. package/client.d.mts +12 -11
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +12 -11
  6. package/client.d.ts.map +1 -1
  7. package/client.js +20 -17
  8. package/client.js.map +1 -1
  9. package/client.mjs +21 -18
  10. package/client.mjs.map +1 -1
  11. package/internal/parse.d.mts.map +1 -1
  12. package/internal/parse.d.ts.map +1 -1
  13. package/internal/parse.js +5 -0
  14. package/internal/parse.js.map +1 -1
  15. package/internal/parse.mjs +5 -0
  16. package/internal/parse.mjs.map +1 -1
  17. package/internal/qs/formats.d.mts +7 -0
  18. package/internal/qs/formats.d.mts.map +1 -0
  19. package/internal/qs/formats.d.ts +7 -0
  20. package/internal/qs/formats.d.ts.map +1 -0
  21. package/internal/qs/formats.js +13 -0
  22. package/internal/qs/formats.js.map +1 -0
  23. package/internal/qs/formats.mjs +9 -0
  24. package/internal/qs/formats.mjs.map +1 -0
  25. package/internal/qs/index.d.mts +10 -0
  26. package/internal/qs/index.d.mts.map +1 -0
  27. package/internal/qs/index.d.ts +10 -0
  28. package/internal/qs/index.d.ts.map +1 -0
  29. package/internal/qs/index.js +14 -0
  30. package/internal/qs/index.js.map +1 -0
  31. package/internal/qs/index.mjs +10 -0
  32. package/internal/qs/index.mjs.map +1 -0
  33. package/internal/qs/stringify.d.mts +3 -0
  34. package/internal/qs/stringify.d.mts.map +1 -0
  35. package/internal/qs/stringify.d.ts +3 -0
  36. package/internal/qs/stringify.d.ts.map +1 -0
  37. package/internal/qs/stringify.js +277 -0
  38. package/internal/qs/stringify.js.map +1 -0
  39. package/internal/qs/stringify.mjs +274 -0
  40. package/internal/qs/stringify.mjs.map +1 -0
  41. package/internal/qs/types.d.mts +57 -0
  42. package/internal/qs/types.d.mts.map +1 -0
  43. package/internal/qs/types.d.ts +57 -0
  44. package/internal/qs/types.d.ts.map +1 -0
  45. package/internal/qs/types.js +3 -0
  46. package/internal/qs/types.js.map +1 -0
  47. package/internal/qs/types.mjs +2 -0
  48. package/internal/qs/types.mjs.map +1 -0
  49. package/internal/qs/utils.d.mts +15 -0
  50. package/internal/qs/utils.d.mts.map +1 -0
  51. package/internal/qs/utils.d.ts +15 -0
  52. package/internal/qs/utils.d.ts.map +1 -0
  53. package/internal/qs/utils.js +230 -0
  54. package/internal/qs/utils.js.map +1 -0
  55. package/internal/qs/utils.mjs +217 -0
  56. package/internal/qs/utils.mjs.map +1 -0
  57. package/package.json +1 -1
  58. package/resources/apps.d.mts +1 -0
  59. package/resources/apps.d.mts.map +1 -1
  60. package/resources/apps.d.ts +1 -0
  61. package/resources/apps.d.ts.map +1 -1
  62. package/resources/credentials/credentials.d.mts +18 -3
  63. package/resources/credentials/credentials.d.mts.map +1 -1
  64. package/resources/credentials/credentials.d.ts +18 -3
  65. package/resources/credentials/credentials.d.ts.map +1 -1
  66. package/resources/credentials/credentials.js +2 -2
  67. package/resources/credentials/credentials.js.map +1 -1
  68. package/resources/credentials/credentials.mjs +2 -2
  69. package/resources/credentials/credentials.mjs.map +1 -1
  70. package/resources/credentials/index.d.mts +1 -1
  71. package/resources/credentials/index.d.mts.map +1 -1
  72. package/resources/credentials/index.d.ts +1 -1
  73. package/resources/credentials/index.d.ts.map +1 -1
  74. package/resources/credentials/index.js.map +1 -1
  75. package/resources/credentials/index.mjs.map +1 -1
  76. package/resources/credentials/packages/credentials/fields.d.mts +6 -6
  77. package/resources/credentials/packages/credentials/fields.d.ts +6 -6
  78. package/resources/devices/actions.d.mts +10 -10
  79. package/resources/devices/actions.d.ts +10 -10
  80. package/resources/devices/apps.d.mts +24 -10
  81. package/resources/devices/apps.d.mts.map +1 -1
  82. package/resources/devices/apps.d.ts +24 -10
  83. package/resources/devices/apps.d.ts.map +1 -1
  84. package/resources/devices/apps.js +19 -0
  85. package/resources/devices/apps.js.map +1 -1
  86. package/resources/devices/apps.mjs +19 -0
  87. package/resources/devices/apps.mjs.map +1 -1
  88. package/resources/devices/devices.d.mts +26 -14
  89. package/resources/devices/devices.d.mts.map +1 -1
  90. package/resources/devices/devices.d.ts +26 -14
  91. package/resources/devices/devices.d.ts.map +1 -1
  92. package/resources/devices/devices.js +8 -1
  93. package/resources/devices/devices.js.map +1 -1
  94. package/resources/devices/devices.mjs +8 -1
  95. package/resources/devices/devices.mjs.map +1 -1
  96. package/resources/devices/index.d.mts +2 -2
  97. package/resources/devices/index.d.mts.map +1 -1
  98. package/resources/devices/index.d.ts +2 -2
  99. package/resources/devices/index.d.ts.map +1 -1
  100. package/resources/devices/index.js.map +1 -1
  101. package/resources/devices/index.mjs.map +1 -1
  102. package/resources/devices/keyboard.d.mts +5 -5
  103. package/resources/devices/keyboard.d.ts +5 -5
  104. package/resources/devices/packages.d.mts +2 -2
  105. package/resources/devices/packages.d.ts +2 -2
  106. package/resources/devices/state.d.mts +4 -4
  107. package/resources/devices/state.d.ts +4 -4
  108. package/resources/hooks.d.mts +7 -2
  109. package/resources/hooks.d.mts.map +1 -1
  110. package/resources/hooks.d.ts +7 -2
  111. package/resources/hooks.d.ts.map +1 -1
  112. package/resources/hooks.js +4 -3
  113. package/resources/hooks.js.map +1 -1
  114. package/resources/hooks.mjs +4 -3
  115. package/resources/hooks.mjs.map +1 -1
  116. package/resources/index.d.mts +5 -4
  117. package/resources/index.d.mts.map +1 -1
  118. package/resources/index.d.ts +5 -4
  119. package/resources/index.d.ts.map +1 -1
  120. package/resources/index.js +3 -1
  121. package/resources/index.js.map +1 -1
  122. package/resources/index.mjs +2 -1
  123. package/resources/index.mjs.map +1 -1
  124. package/resources/models.d.mts +28 -0
  125. package/resources/models.d.mts.map +1 -0
  126. package/resources/models.d.ts +28 -0
  127. package/resources/models.d.ts.map +1 -0
  128. package/resources/models.js +15 -0
  129. package/resources/models.js.map +1 -0
  130. package/resources/models.mjs +11 -0
  131. package/resources/models.mjs.map +1 -0
  132. package/resources/tasks/index.d.mts +1 -1
  133. package/resources/tasks/index.d.mts.map +1 -1
  134. package/resources/tasks/index.d.ts +1 -1
  135. package/resources/tasks/index.d.ts.map +1 -1
  136. package/resources/tasks/index.js.map +1 -1
  137. package/resources/tasks/index.mjs.map +1 -1
  138. package/resources/tasks/screenshots.d.mts +2 -2
  139. package/resources/tasks/screenshots.d.ts +2 -2
  140. package/resources/tasks/screenshots.js +2 -2
  141. package/resources/tasks/screenshots.mjs +2 -2
  142. package/resources/tasks/tasks.d.mts +103 -363
  143. package/resources/tasks/tasks.d.mts.map +1 -1
  144. package/resources/tasks/tasks.d.ts +103 -363
  145. package/resources/tasks/tasks.d.ts.map +1 -1
  146. package/resources/tasks/tasks.js +12 -10
  147. package/resources/tasks/tasks.js.map +1 -1
  148. package/resources/tasks/tasks.mjs +12 -10
  149. package/resources/tasks/tasks.mjs.map +1 -1
  150. package/resources/tasks/ui-states.d.mts +2 -2
  151. package/resources/tasks/ui-states.d.ts +2 -2
  152. package/resources/tasks/ui-states.js +2 -2
  153. package/resources/tasks/ui-states.mjs +2 -2
  154. package/src/client.ts +41 -26
  155. package/src/internal/parse.ts +6 -0
  156. package/src/internal/qs/LICENSE.md +13 -0
  157. package/src/internal/qs/README.md +3 -0
  158. package/src/internal/qs/formats.ts +10 -0
  159. package/src/internal/qs/index.ts +13 -0
  160. package/src/internal/qs/stringify.ts +385 -0
  161. package/src/internal/qs/types.ts +71 -0
  162. package/src/internal/qs/utils.ts +265 -0
  163. package/src/resources/apps.ts +2 -0
  164. package/src/resources/credentials/credentials.ts +34 -4
  165. package/src/resources/credentials/index.ts +1 -1
  166. package/src/resources/credentials/packages/credentials/fields.ts +6 -6
  167. package/src/resources/devices/actions.ts +10 -10
  168. package/src/resources/devices/apps.ts +42 -9
  169. package/src/resources/devices/devices.ts +37 -11
  170. package/src/resources/devices/index.ts +3 -0
  171. package/src/resources/devices/keyboard.ts +5 -5
  172. package/src/resources/devices/packages.ts +2 -2
  173. package/src/resources/devices/state.ts +4 -4
  174. package/src/resources/hooks.ts +9 -3
  175. package/src/resources/index.ts +9 -3
  176. package/src/resources/models.ts +39 -0
  177. package/src/resources/tasks/index.ts +0 -2
  178. package/src/resources/tasks/screenshots.ts +2 -2
  179. package/src/resources/tasks/tasks.ts +114 -493
  180. package/src/resources/tasks/ui-states.ts +2 -2
  181. package/src/version.ts +1 -1
  182. package/version.d.mts +1 -1
  183. package/version.d.ts +1 -1
  184. package/version.js +1 -1
  185. package/version.mjs +1 -1
@@ -0,0 +1,265 @@
1
+ import { RFC1738 } from './formats';
2
+ import type { DefaultEncoder, Format } from './types';
3
+ import { isArray } from '../utils/values';
4
+
5
+ export let has = (obj: object, key: PropertyKey): boolean => (
6
+ (has = (Object as any).hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty)),
7
+ has(obj, key)
8
+ );
9
+
10
+ const hex_table = /* @__PURE__ */ (() => {
11
+ const array = [];
12
+ for (let i = 0; i < 256; ++i) {
13
+ array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
14
+ }
15
+
16
+ return array;
17
+ })();
18
+
19
+ function compact_queue<T extends Record<string, any>>(queue: Array<{ obj: T; prop: string }>) {
20
+ while (queue.length > 1) {
21
+ const item = queue.pop();
22
+ if (!item) continue;
23
+
24
+ const obj = item.obj[item.prop];
25
+
26
+ if (isArray(obj)) {
27
+ const compacted: unknown[] = [];
28
+
29
+ for (let j = 0; j < obj.length; ++j) {
30
+ if (typeof obj[j] !== 'undefined') {
31
+ compacted.push(obj[j]);
32
+ }
33
+ }
34
+
35
+ // @ts-ignore
36
+ item.obj[item.prop] = compacted;
37
+ }
38
+ }
39
+ }
40
+
41
+ function array_to_object(source: any[], options: { plainObjects: boolean }) {
42
+ const obj = options && options.plainObjects ? Object.create(null) : {};
43
+ for (let i = 0; i < source.length; ++i) {
44
+ if (typeof source[i] !== 'undefined') {
45
+ obj[i] = source[i];
46
+ }
47
+ }
48
+
49
+ return obj;
50
+ }
51
+
52
+ export function merge(
53
+ target: any,
54
+ source: any,
55
+ options: { plainObjects?: boolean; allowPrototypes?: boolean } = {},
56
+ ) {
57
+ if (!source) {
58
+ return target;
59
+ }
60
+
61
+ if (typeof source !== 'object') {
62
+ if (isArray(target)) {
63
+ target.push(source);
64
+ } else if (target && typeof target === 'object') {
65
+ if ((options && (options.plainObjects || options.allowPrototypes)) || !has(Object.prototype, source)) {
66
+ target[source] = true;
67
+ }
68
+ } else {
69
+ return [target, source];
70
+ }
71
+
72
+ return target;
73
+ }
74
+
75
+ if (!target || typeof target !== 'object') {
76
+ return [target].concat(source);
77
+ }
78
+
79
+ let mergeTarget = target;
80
+ if (isArray(target) && !isArray(source)) {
81
+ // @ts-ignore
82
+ mergeTarget = array_to_object(target, options);
83
+ }
84
+
85
+ if (isArray(target) && isArray(source)) {
86
+ source.forEach(function (item, i) {
87
+ if (has(target, i)) {
88
+ const targetItem = target[i];
89
+ if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {
90
+ target[i] = merge(targetItem, item, options);
91
+ } else {
92
+ target.push(item);
93
+ }
94
+ } else {
95
+ target[i] = item;
96
+ }
97
+ });
98
+ return target;
99
+ }
100
+
101
+ return Object.keys(source).reduce(function (acc, key) {
102
+ const value = source[key];
103
+
104
+ if (has(acc, key)) {
105
+ acc[key] = merge(acc[key], value, options);
106
+ } else {
107
+ acc[key] = value;
108
+ }
109
+ return acc;
110
+ }, mergeTarget);
111
+ }
112
+
113
+ export function assign_single_source(target: any, source: any) {
114
+ return Object.keys(source).reduce(function (acc, key) {
115
+ acc[key] = source[key];
116
+ return acc;
117
+ }, target);
118
+ }
119
+
120
+ export function decode(str: string, _: any, charset: string) {
121
+ const strWithoutPlus = str.replace(/\+/g, ' ');
122
+ if (charset === 'iso-8859-1') {
123
+ // unescape never throws, no try...catch needed:
124
+ return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
125
+ }
126
+ // utf-8
127
+ try {
128
+ return decodeURIComponent(strWithoutPlus);
129
+ } catch (e) {
130
+ return strWithoutPlus;
131
+ }
132
+ }
133
+
134
+ const limit = 1024;
135
+
136
+ export const encode: (
137
+ str: any,
138
+ defaultEncoder: DefaultEncoder,
139
+ charset: string,
140
+ type: 'key' | 'value',
141
+ format: Format,
142
+ ) => string = (str, _defaultEncoder, charset, _kind, format: Format) => {
143
+ // This code was originally written by Brian White for the io.js core querystring library.
144
+ // It has been adapted here for stricter adherence to RFC 3986
145
+ if (str.length === 0) {
146
+ return str;
147
+ }
148
+
149
+ let string = str;
150
+ if (typeof str === 'symbol') {
151
+ string = Symbol.prototype.toString.call(str);
152
+ } else if (typeof str !== 'string') {
153
+ string = String(str);
154
+ }
155
+
156
+ if (charset === 'iso-8859-1') {
157
+ return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
158
+ return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
159
+ });
160
+ }
161
+
162
+ let out = '';
163
+ for (let j = 0; j < string.length; j += limit) {
164
+ const segment = string.length >= limit ? string.slice(j, j + limit) : string;
165
+ const arr = [];
166
+
167
+ for (let i = 0; i < segment.length; ++i) {
168
+ let c = segment.charCodeAt(i);
169
+ if (
170
+ c === 0x2d || // -
171
+ c === 0x2e || // .
172
+ c === 0x5f || // _
173
+ c === 0x7e || // ~
174
+ (c >= 0x30 && c <= 0x39) || // 0-9
175
+ (c >= 0x41 && c <= 0x5a) || // a-z
176
+ (c >= 0x61 && c <= 0x7a) || // A-Z
177
+ (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )
178
+ ) {
179
+ arr[arr.length] = segment.charAt(i);
180
+ continue;
181
+ }
182
+
183
+ if (c < 0x80) {
184
+ arr[arr.length] = hex_table[c];
185
+ continue;
186
+ }
187
+
188
+ if (c < 0x800) {
189
+ arr[arr.length] = hex_table[0xc0 | (c >> 6)]! + hex_table[0x80 | (c & 0x3f)];
190
+ continue;
191
+ }
192
+
193
+ if (c < 0xd800 || c >= 0xe000) {
194
+ arr[arr.length] =
195
+ hex_table[0xe0 | (c >> 12)]! + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];
196
+ continue;
197
+ }
198
+
199
+ i += 1;
200
+ c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));
201
+
202
+ arr[arr.length] =
203
+ hex_table[0xf0 | (c >> 18)]! +
204
+ hex_table[0x80 | ((c >> 12) & 0x3f)] +
205
+ hex_table[0x80 | ((c >> 6) & 0x3f)] +
206
+ hex_table[0x80 | (c & 0x3f)];
207
+ }
208
+
209
+ out += arr.join('');
210
+ }
211
+
212
+ return out;
213
+ };
214
+
215
+ export function compact(value: any) {
216
+ const queue = [{ obj: { o: value }, prop: 'o' }];
217
+ const refs = [];
218
+
219
+ for (let i = 0; i < queue.length; ++i) {
220
+ const item = queue[i];
221
+ // @ts-ignore
222
+ const obj = item.obj[item.prop];
223
+
224
+ const keys = Object.keys(obj);
225
+ for (let j = 0; j < keys.length; ++j) {
226
+ const key = keys[j]!;
227
+ const val = obj[key];
228
+ if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
229
+ queue.push({ obj: obj, prop: key });
230
+ refs.push(val);
231
+ }
232
+ }
233
+ }
234
+
235
+ compact_queue(queue);
236
+
237
+ return value;
238
+ }
239
+
240
+ export function is_regexp(obj: any) {
241
+ return Object.prototype.toString.call(obj) === '[object RegExp]';
242
+ }
243
+
244
+ export function is_buffer(obj: any) {
245
+ if (!obj || typeof obj !== 'object') {
246
+ return false;
247
+ }
248
+
249
+ return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
250
+ }
251
+
252
+ export function combine(a: any, b: any) {
253
+ return [].concat(a, b);
254
+ }
255
+
256
+ export function maybe_map<T>(val: T[], fn: (v: T) => T) {
257
+ if (isArray(val)) {
258
+ const mapped = [];
259
+ for (let i = 0; i < val.length; i += 1) {
260
+ mapped.push(fn(val[i]!));
261
+ }
262
+ return mapped;
263
+ }
264
+ return fn(val);
265
+ }
@@ -308,6 +308,8 @@ export namespace AppListResponse {
308
308
 
309
309
  packageName: string;
310
310
 
311
+ privacyPolicyUrl: string | null;
312
+
311
313
  queuedAt: string | null;
312
314
 
313
315
  ratingCount: number | null;
@@ -18,19 +18,49 @@ export class Credentials extends APIResource {
18
18
  /**
19
19
  * List all credentials for the authenticated user
20
20
  */
21
- list(options?: RequestOptions): APIPromise<CredentialListResponse> {
22
- return this._client.get('/credentials', options);
21
+ list(
22
+ query: CredentialListParams | null | undefined = {},
23
+ options?: RequestOptions,
24
+ ): APIPromise<CredentialListResponse> {
25
+ return this._client.get('/credentials', { query, ...options });
23
26
  }
24
27
  }
25
28
 
26
29
  export interface CredentialListResponse {
27
- data: Array<CredentialsCredentialsAPI.Credential>;
30
+ items: Array<CredentialsCredentialsAPI.Credential>;
31
+
32
+ pagination: CredentialListResponse.Pagination;
33
+ }
34
+
35
+ export namespace CredentialListResponse {
36
+ export interface Pagination {
37
+ hasNext: boolean;
38
+
39
+ hasPrev: boolean;
40
+
41
+ page: number;
42
+
43
+ pages: number;
44
+
45
+ pageSize: number;
46
+
47
+ total: number;
48
+ }
49
+ }
50
+
51
+ export interface CredentialListParams {
52
+ page?: number;
53
+
54
+ pageSize?: number;
28
55
  }
29
56
 
30
57
  Credentials.Packages = Packages;
31
58
 
32
59
  export declare namespace Credentials {
33
- export { type CredentialListResponse as CredentialListResponse };
60
+ export {
61
+ type CredentialListResponse as CredentialListResponse,
62
+ type CredentialListParams as CredentialListParams,
63
+ };
34
64
 
35
65
  export {
36
66
  Packages as Packages,
@@ -1,6 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- export { Credentials, type CredentialListResponse } from './credentials';
3
+ export { Credentials, type CredentialListResponse, type CredentialListParams } from './credentials';
4
4
  export {
5
5
  Packages,
6
6
  type PackageCreateResponse,
@@ -93,12 +93,12 @@ export interface FieldDeleteResponse {
93
93
 
94
94
  export interface FieldCreateParams {
95
95
  /**
96
- * Path param:
96
+ * Path param
97
97
  */
98
98
  packageName: string;
99
99
 
100
100
  /**
101
- * Body param:
101
+ * Body param
102
102
  */
103
103
  fieldType:
104
104
  | 'email'
@@ -110,24 +110,24 @@ export interface FieldCreateParams {
110
110
  | 'backup_codes';
111
111
 
112
112
  /**
113
- * Body param:
113
+ * Body param
114
114
  */
115
115
  value: string;
116
116
  }
117
117
 
118
118
  export interface FieldUpdateParams {
119
119
  /**
120
- * Path param:
120
+ * Path param
121
121
  */
122
122
  packageName: string;
123
123
 
124
124
  /**
125
- * Path param:
125
+ * Path param
126
126
  */
127
127
  credentialName: string;
128
128
 
129
129
  /**
130
- * Body param:
130
+ * Body param
131
131
  */
132
132
  value: string;
133
133
  }
@@ -70,12 +70,12 @@ export class Actions extends APIResource {
70
70
 
71
71
  export interface ActionGlobalParams {
72
72
  /**
73
- * Body param:
73
+ * Body param
74
74
  */
75
75
  action: number;
76
76
 
77
77
  /**
78
- * Header param:
78
+ * Header param
79
79
  */
80
80
  'X-Device-Display-ID'?: number;
81
81
  }
@@ -87,44 +87,44 @@ export interface ActionSwipeParams {
87
87
  duration: number;
88
88
 
89
89
  /**
90
- * Body param:
90
+ * Body param
91
91
  */
92
92
  endX: number;
93
93
 
94
94
  /**
95
- * Body param:
95
+ * Body param
96
96
  */
97
97
  endY: number;
98
98
 
99
99
  /**
100
- * Body param:
100
+ * Body param
101
101
  */
102
102
  startX: number;
103
103
 
104
104
  /**
105
- * Body param:
105
+ * Body param
106
106
  */
107
107
  startY: number;
108
108
 
109
109
  /**
110
- * Header param:
110
+ * Header param
111
111
  */
112
112
  'X-Device-Display-ID'?: number;
113
113
  }
114
114
 
115
115
  export interface ActionTapParams {
116
116
  /**
117
- * Body param:
117
+ * Body param
118
118
  */
119
119
  x: number;
120
120
 
121
121
  /**
122
- * Body param:
122
+ * Body param
123
123
  */
124
124
  y: number;
125
125
 
126
126
  /**
127
- * Header param:
127
+ * Header param
128
128
  */
129
129
  'X-Device-Display-ID'?: number;
130
130
  }
@@ -7,6 +7,26 @@ import { RequestOptions } from '../../internal/request-options';
7
7
  import { path } from '../../internal/utils/path';
8
8
 
9
9
  export class Apps extends APIResource {
10
+ /**
11
+ * Stop app
12
+ */
13
+ update(packageName: string, params: AppUpdateParams, options?: RequestOptions): APIPromise<void> {
14
+ const { deviceId, 'X-Device-Display-ID': xDeviceDisplayID, ...body } = params;
15
+ return this._client.patch(path`/devices/${deviceId}/apps/${packageName}`, {
16
+ body,
17
+ ...options,
18
+ headers: buildHeaders([
19
+ {
20
+ Accept: '*/*',
21
+ ...(xDeviceDisplayID?.toString() != null ?
22
+ { 'X-Device-Display-ID': xDeviceDisplayID?.toString() }
23
+ : undefined),
24
+ },
25
+ options?.headers,
26
+ ]),
27
+ });
28
+ }
29
+
10
30
  /**
11
31
  * List apps
12
32
  */
@@ -107,55 +127,67 @@ export namespace AppListResponse {
107
127
  }
108
128
  }
109
129
 
130
+ export interface AppUpdateParams {
131
+ /**
132
+ * Path param
133
+ */
134
+ deviceId: string;
135
+
136
+ /**
137
+ * Header param
138
+ */
139
+ 'X-Device-Display-ID'?: number;
140
+ }
141
+
110
142
  export interface AppListParams {
111
143
  /**
112
- * Query param:
144
+ * Query param
113
145
  */
114
146
  includeSystemApps?: boolean;
115
147
 
116
148
  /**
117
- * Header param:
149
+ * Header param
118
150
  */
119
151
  'X-Device-Display-ID'?: number;
120
152
  }
121
153
 
122
154
  export interface AppDeleteParams {
123
155
  /**
124
- * Path param:
156
+ * Path param
125
157
  */
126
158
  deviceId: string;
127
159
 
128
160
  /**
129
- * Header param:
161
+ * Header param
130
162
  */
131
163
  'X-Device-Display-ID'?: number;
132
164
  }
133
165
 
134
166
  export interface AppInstallParams {
135
167
  /**
136
- * Body param:
168
+ * Body param
137
169
  */
138
170
  packageName: string;
139
171
 
140
172
  /**
141
- * Header param:
173
+ * Header param
142
174
  */
143
175
  'X-Device-Display-ID'?: number;
144
176
  }
145
177
 
146
178
  export interface AppStartParams {
147
179
  /**
148
- * Path param:
180
+ * Path param
149
181
  */
150
182
  deviceId: string;
151
183
 
152
184
  /**
153
- * Body param:
185
+ * Body param
154
186
  */
155
187
  activity?: string;
156
188
 
157
189
  /**
158
- * Header param:
190
+ * Header param
159
191
  */
160
192
  'X-Device-Display-ID'?: number;
161
193
  }
@@ -163,6 +195,7 @@ export interface AppStartParams {
163
195
  export declare namespace Apps {
164
196
  export {
165
197
  type AppListResponse as AppListResponse,
198
+ type AppUpdateParams as AppUpdateParams,
166
199
  type AppListParams as AppListParams,
167
200
  type AppDeleteParams as AppDeleteParams,
168
201
  type AppInstallParams as AppInstallParams,
@@ -10,6 +10,7 @@ import {
10
10
  AppListParams,
11
11
  AppListResponse,
12
12
  AppStartParams,
13
+ AppUpdateParams,
13
14
  Apps,
14
15
  } from './apps';
15
16
  import * as KeyboardAPI from './keyboard';
@@ -66,11 +67,19 @@ export class Devices extends APIResource {
66
67
  return this._client.get('/devices', { query, ...options });
67
68
  }
68
69
 
70
+ /**
71
+ * Count claimed devices
72
+ */
73
+ count(options?: RequestOptions): APIPromise<DeviceCountResponse> {
74
+ return this._client.get('/devices/count', options);
75
+ }
76
+
69
77
  /**
70
78
  * Terminate a device
71
79
  */
72
- terminate(deviceID: string, options?: RequestOptions): APIPromise<void> {
80
+ terminate(deviceID: string, body: DeviceTerminateParams, options?: RequestOptions): APIPromise<void> {
73
81
  return this._client.delete(path`/devices/${deviceID}`, {
82
+ body,
74
83
  ...options,
75
84
  headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
76
85
  });
@@ -113,6 +122,8 @@ export interface Device {
113
122
 
114
123
  taskCount: number;
115
124
 
125
+ terminatesAt: string | null;
126
+
116
127
  updatedAt: string;
117
128
 
118
129
  /**
@@ -150,39 +161,45 @@ export namespace DeviceListResponse {
150
161
  }
151
162
  }
152
163
 
164
+ export type DeviceCountResponse = { [key: string]: number };
165
+
153
166
  export interface DeviceCreateParams {
154
167
  /**
155
- * Query param:
168
+ * Query param
156
169
  */
157
- deviceType?: 'device_slot' | 'dedicated_emulated_device' | 'dedicated_physical_device';
170
+ deviceType?:
171
+ | 'device_slot'
172
+ | 'dedicated_emulated_device'
173
+ | 'dedicated_physical_device'
174
+ | 'dedicated_premium_device';
158
175
 
159
176
  /**
160
- * Query param:
177
+ * Query param
161
178
  */
162
- provider?: 'limrun' | 'remote' | 'roidrun';
179
+ provider?: 'limrun' | 'physical' | 'premium' | 'roidrun';
163
180
 
164
181
  /**
165
- * Body param:
182
+ * Body param
166
183
  */
167
184
  apps?: Array<string> | null;
168
185
 
169
186
  /**
170
- * Body param:
187
+ * Body param
171
188
  */
172
189
  country?: string;
173
190
 
174
191
  /**
175
- * Body param:
192
+ * Body param
176
193
  */
177
194
  files?: Array<string> | null;
178
195
 
179
196
  /**
180
- * Body param:
197
+ * Body param
181
198
  */
182
199
  name?: string;
183
200
 
184
201
  /**
185
- * Body param:
202
+ * Body param
186
203
  */
187
204
  proxy?: DeviceCreateParams.Proxy;
188
205
  }
@@ -214,11 +231,17 @@ export interface DeviceListParams {
214
231
 
215
232
  provider?: 'limrun' | 'personal' | 'remote' | 'roidrun';
216
233
 
217
- state?: 'creating' | 'assigned' | 'ready' | 'terminated' | 'unknown';
234
+ state?: Array<'creating' | 'assigned' | 'ready' | 'disconnected' | 'terminated' | 'unknown'> | null;
218
235
 
219
236
  type?: 'device_slot' | 'dedicated_emulated_device' | 'dedicated_physical_device';
220
237
  }
221
238
 
239
+ export interface DeviceTerminateParams {
240
+ previousDeviceId?: string;
241
+
242
+ terminateAt?: string;
243
+ }
244
+
222
245
  Devices.Actions = Actions;
223
246
  Devices.State = State;
224
247
  Devices.Apps = Apps;
@@ -230,8 +253,10 @@ export declare namespace Devices {
230
253
  export {
231
254
  type Device as Device,
232
255
  type DeviceListResponse as DeviceListResponse,
256
+ type DeviceCountResponse as DeviceCountResponse,
233
257
  type DeviceCreateParams as DeviceCreateParams,
234
258
  type DeviceListParams as DeviceListParams,
259
+ type DeviceTerminateParams as DeviceTerminateParams,
235
260
  };
236
261
 
237
262
  export {
@@ -254,6 +279,7 @@ export declare namespace Devices {
254
279
  export {
255
280
  Apps as Apps,
256
281
  type AppListResponse as AppListResponse,
282
+ type AppUpdateParams as AppUpdateParams,
257
283
  type AppListParams as AppListParams,
258
284
  type AppDeleteParams as AppDeleteParams,
259
285
  type AppInstallParams as AppInstallParams,
@@ -4,6 +4,7 @@ export { Actions, type ActionGlobalParams, type ActionSwipeParams, type ActionTa
4
4
  export {
5
5
  Apps,
6
6
  type AppListResponse,
7
+ type AppUpdateParams,
7
8
  type AppListParams,
8
9
  type AppDeleteParams,
9
10
  type AppInstallParams,
@@ -13,8 +14,10 @@ export {
13
14
  Devices,
14
15
  type Device,
15
16
  type DeviceListResponse,
17
+ type DeviceCountResponse,
16
18
  type DeviceCreateParams,
17
19
  type DeviceListParams,
20
+ type DeviceTerminateParams,
18
21
  } from './devices';
19
22
  export {
20
23
  Keyboard,