@limrun/api 0.17.5 → 0.18.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.
- package/CHANGELOG.md +8 -0
- package/README.md +31 -0
- package/ios-client.d.mts +143 -9
- package/ios-client.d.mts.map +1 -1
- package/ios-client.d.ts +143 -9
- package/ios-client.d.ts.map +1 -1
- package/ios-client.js +171 -191
- package/ios-client.js.map +1 -1
- package/ios-client.mjs +171 -191
- package/ios-client.mjs.map +1 -1
- package/package.json +1 -1
- package/src/ios-client.ts +391 -294
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.18.0 (2025-12-20)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.17.5...v0.18.0](https://github.com/limrun-inc/typescript-sdk/compare/v0.17.5...v0.18.0)
|
|
6
|
+
|
|
7
|
+
### Documentation
|
|
8
|
+
|
|
9
|
+
* add more examples ([4e62598](https://github.com/limrun-inc/typescript-sdk/commit/4e6259834d441af4d23b59ce43f00c1f91b544b2))
|
|
10
|
+
|
|
3
11
|
## 0.17.5 (2025-12-18)
|
|
4
12
|
|
|
5
13
|
Full Changelog: [v0.17.4...v0.17.5](https://github.com/limrun-inc/typescript-sdk/compare/v0.17.4...v0.17.5)
|
package/README.md
CHANGED
|
@@ -122,6 +122,37 @@ On timeout, an `APIConnectionTimeoutError` is thrown.
|
|
|
122
122
|
|
|
123
123
|
Note that requests which time out will be [retried twice by default](#retries).
|
|
124
124
|
|
|
125
|
+
## Auto-pagination
|
|
126
|
+
|
|
127
|
+
List methods in the Limrun API are paginated.
|
|
128
|
+
You can use the `for await … of` syntax to iterate through items across all pages:
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
async function fetchAllAndroidInstances(params) {
|
|
132
|
+
const allAndroidInstances = [];
|
|
133
|
+
// Automatically fetches more pages as needed.
|
|
134
|
+
for await (const androidInstance of client.androidInstances.list()) {
|
|
135
|
+
allAndroidInstances.push(androidInstance);
|
|
136
|
+
}
|
|
137
|
+
return allAndroidInstances;
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Alternatively, you can request a single page at a time:
|
|
142
|
+
|
|
143
|
+
```ts
|
|
144
|
+
let page = await client.androidInstances.list();
|
|
145
|
+
for (const androidInstance of page.items) {
|
|
146
|
+
console.log(androidInstance);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Convenience methods are provided for manually paginating:
|
|
150
|
+
while (page.hasNextPage()) {
|
|
151
|
+
page = await page.getNextPage();
|
|
152
|
+
// ...
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
125
156
|
## Advanced Usage
|
|
126
157
|
|
|
127
158
|
### Accessing raw Response data (e.g., headers)
|
package/ios-client.d.mts
CHANGED
|
@@ -18,15 +18,157 @@ export interface SimctlExecutionEvents {
|
|
|
18
18
|
exit: (code: number) => void;
|
|
19
19
|
error: (error: Error) => void;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Selector criteria for finding accessibility elements.
|
|
23
|
+
* All non-undefined fields must match for an element to be selected.
|
|
24
|
+
*/
|
|
25
|
+
export type AccessibilitySelector = {
|
|
26
|
+
/** Match by AXUniqueId (accessibilityIdentifier) - exact match */
|
|
27
|
+
accessibilityId?: string;
|
|
28
|
+
/** Match by AXLabel - exact match */
|
|
29
|
+
label?: string;
|
|
30
|
+
/** Match by AXLabel - contains (case-insensitive) */
|
|
31
|
+
labelContains?: string;
|
|
32
|
+
/** Match by element type/role (e.g., "Button", "TextField") - case-insensitive */
|
|
33
|
+
elementType?: string;
|
|
34
|
+
/** Match by title - exact match */
|
|
35
|
+
title?: string;
|
|
36
|
+
/** Match by title - contains (case-insensitive) */
|
|
37
|
+
titleContains?: string;
|
|
38
|
+
/** Match by AXValue - exact match */
|
|
39
|
+
value?: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* A point on the screen for accessibility queries
|
|
43
|
+
*/
|
|
44
|
+
export type AccessibilityPoint = {
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
};
|
|
48
|
+
export type ScreenshotData = {
|
|
49
|
+
/** Base64-encoded JPEG image data */
|
|
50
|
+
base64: string;
|
|
51
|
+
/** Width in points (for tap coordinates) */
|
|
52
|
+
width: number;
|
|
53
|
+
/** Height in points (for tap coordinates) */
|
|
54
|
+
height: number;
|
|
55
|
+
};
|
|
56
|
+
export type TapElementResult = {
|
|
57
|
+
elementLabel?: string;
|
|
58
|
+
elementType?: string;
|
|
59
|
+
};
|
|
60
|
+
export type ElementResult = {
|
|
61
|
+
elementLabel?: string;
|
|
62
|
+
};
|
|
63
|
+
export type InstalledApp = {
|
|
64
|
+
bundleId: string;
|
|
65
|
+
name: string;
|
|
66
|
+
installType: string;
|
|
67
|
+
};
|
|
68
|
+
export type LsofEntry = {
|
|
69
|
+
kind: 'unix';
|
|
70
|
+
path: string;
|
|
71
|
+
};
|
|
72
|
+
export type AppInstallationResult = {
|
|
73
|
+
/** The URL the app was installed from */
|
|
74
|
+
url: string;
|
|
75
|
+
/** Bundle ID of the installed app */
|
|
76
|
+
bundleId: string;
|
|
77
|
+
};
|
|
78
|
+
export type AppInstallationOptions = {
|
|
79
|
+
/** MD5 hash for caching - if provided and matches cached version, skips download */
|
|
80
|
+
md5?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Launch mode after installation:
|
|
83
|
+
* - 'ForegroundIfRunning': Bring to foreground if already running, otherwise launch
|
|
84
|
+
* - 'RelaunchIfRunning': Kill and relaunch if already running
|
|
85
|
+
* - 'FailIfRunning': Fail if the app is already running
|
|
86
|
+
* - undefined: Don't launch after installation
|
|
87
|
+
*/
|
|
88
|
+
launchMode?: 'ForegroundIfRunning' | 'RelaunchIfRunning' | 'FailIfRunning';
|
|
89
|
+
};
|
|
21
90
|
/**
|
|
22
91
|
* A client for interacting with a Limrun iOS instance
|
|
23
92
|
*/
|
|
24
93
|
export type InstanceClient = {
|
|
25
94
|
/**
|
|
26
95
|
* Take a screenshot of the current screen
|
|
27
|
-
* @returns A promise that resolves to the screenshot data
|
|
96
|
+
* @returns A promise that resolves to the screenshot data with base64 image and dimensions
|
|
28
97
|
*/
|
|
29
98
|
screenshot: () => Promise<ScreenshotData>;
|
|
99
|
+
/**
|
|
100
|
+
* Get the element tree (accessibility hierarchy) of the current screen
|
|
101
|
+
* @param point Optional point to get the element at that specific location
|
|
102
|
+
* @returns A promise that resolves to the JSON string of the accessibility tree
|
|
103
|
+
*/
|
|
104
|
+
elementTree: (point?: AccessibilityPoint) => Promise<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Tap at the specified coordinates
|
|
107
|
+
* @param x X coordinate in points
|
|
108
|
+
* @param y Y coordinate in points
|
|
109
|
+
*/
|
|
110
|
+
tap: (x: number, y: number) => Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Tap an accessibility element by selector
|
|
113
|
+
* @param selector The selector criteria to find the element
|
|
114
|
+
* @returns Information about the tapped element
|
|
115
|
+
*/
|
|
116
|
+
tapElement: (selector: AccessibilitySelector) => Promise<TapElementResult>;
|
|
117
|
+
/**
|
|
118
|
+
* Increment an accessibility element (useful for sliders, steppers, etc.)
|
|
119
|
+
* @param selector The selector criteria to find the element
|
|
120
|
+
* @returns Information about the incremented element
|
|
121
|
+
*/
|
|
122
|
+
incrementElement: (selector: AccessibilitySelector) => Promise<ElementResult>;
|
|
123
|
+
/**
|
|
124
|
+
* Decrement an accessibility element (useful for sliders, steppers, etc.)
|
|
125
|
+
* @param selector The selector criteria to find the element
|
|
126
|
+
* @returns Information about the decremented element
|
|
127
|
+
*/
|
|
128
|
+
decrementElement: (selector: AccessibilitySelector) => Promise<ElementResult>;
|
|
129
|
+
/**
|
|
130
|
+
* Set the value of an accessibility element (useful for text fields, etc.)
|
|
131
|
+
* This is much faster than typing character by character.
|
|
132
|
+
* @param text The text value to set
|
|
133
|
+
* @param selector The selector criteria to find the element
|
|
134
|
+
* @returns Information about the modified element
|
|
135
|
+
*/
|
|
136
|
+
setElementValue: (text: string, selector: AccessibilitySelector) => Promise<ElementResult>;
|
|
137
|
+
/**
|
|
138
|
+
* Type text into the currently focused input field
|
|
139
|
+
* @param text The text to type
|
|
140
|
+
* @param pressEnter If true, press Enter after typing
|
|
141
|
+
*/
|
|
142
|
+
typeText: (text: string, pressEnter?: boolean) => Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Press a key on the keyboard, optionally with modifiers
|
|
145
|
+
* @param key The key to press (e.g., 'a', 'enter', 'backspace', 'up', 'f1')
|
|
146
|
+
* @param modifiers Optional modifier keys (e.g., ['shift'], ['command', 'shift'])
|
|
147
|
+
*/
|
|
148
|
+
pressKey: (key: string, modifiers?: string[]) => Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Launch an installed app by bundle identifier
|
|
151
|
+
* @param bundleId Bundle identifier of the app to launch
|
|
152
|
+
*/
|
|
153
|
+
launchApp: (bundleId: string) => Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* List installed apps on the simulator
|
|
156
|
+
* @returns Array of installed apps with bundleId, name, and installType
|
|
157
|
+
*/
|
|
158
|
+
listApps: () => Promise<InstalledApp[]>;
|
|
159
|
+
/**
|
|
160
|
+
* Open a URL in the simulator (web URLs open in Safari, deep links open corresponding apps)
|
|
161
|
+
* @param url The URL to open
|
|
162
|
+
*/
|
|
163
|
+
openUrl: (url: string) => Promise<void>;
|
|
164
|
+
/**
|
|
165
|
+
* Install an app from a URL (supports .ipa or .app files, optionally zipped)
|
|
166
|
+
* @param url The URL to download the app from
|
|
167
|
+
* @param options Optional installation options (md5 for caching, launchMode)
|
|
168
|
+
* @returns The installation result with bundle ID on success
|
|
169
|
+
* @throws Error if installation fails (e.g., invalid app, download failure)
|
|
170
|
+
*/
|
|
171
|
+
installApp: (url: string, options?: AppInstallationOptions) => Promise<AppInstallationResult>;
|
|
30
172
|
/**
|
|
31
173
|
* Disconnect from the Limrun instance
|
|
32
174
|
*/
|
|
@@ -97,10 +239,6 @@ export type InstanceClient = {
|
|
|
97
239
|
*/
|
|
98
240
|
lsof: () => Promise<LsofEntry[]>;
|
|
99
241
|
};
|
|
100
|
-
export type LsofEntry = {
|
|
101
|
-
kind: 'unix';
|
|
102
|
-
path: string;
|
|
103
|
-
};
|
|
104
242
|
/**
|
|
105
243
|
* Controls the verbosity of logging in the client
|
|
106
244
|
*/
|
|
@@ -138,9 +276,6 @@ export type InstanceClientOptions = {
|
|
|
138
276
|
*/
|
|
139
277
|
maxReconnectDelay?: number;
|
|
140
278
|
};
|
|
141
|
-
type ScreenshotData = {
|
|
142
|
-
dataUri: string;
|
|
143
|
-
};
|
|
144
279
|
/**
|
|
145
280
|
* Handle for a running simctl command execution.
|
|
146
281
|
*
|
|
@@ -223,5 +358,4 @@ export declare class SimctlExecution extends EventEmitter {
|
|
|
223
358
|
* @returns An InstanceClient for controlling the instance
|
|
224
359
|
*/
|
|
225
360
|
export declare function createInstanceClient(options: InstanceClientOptions): Promise<InstanceClient>;
|
|
226
|
-
export {};
|
|
227
361
|
//# sourceMappingURL=ios-client.d.mts.map
|
package/ios-client.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios-client.d.mts","sourceRoot":"","sources":["src/ios-client.ts"],"names":[],"mappings":"OAEO,EAAE,YAAY,EAAE,MAAM,QAAQ;AAGrC;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"ios-client.d.mts","sourceRoot":"","sources":["src/ios-client.ts"],"names":[],"mappings":"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"}
|
package/ios-client.d.ts
CHANGED
|
@@ -18,15 +18,157 @@ export interface SimctlExecutionEvents {
|
|
|
18
18
|
exit: (code: number) => void;
|
|
19
19
|
error: (error: Error) => void;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Selector criteria for finding accessibility elements.
|
|
23
|
+
* All non-undefined fields must match for an element to be selected.
|
|
24
|
+
*/
|
|
25
|
+
export type AccessibilitySelector = {
|
|
26
|
+
/** Match by AXUniqueId (accessibilityIdentifier) - exact match */
|
|
27
|
+
accessibilityId?: string;
|
|
28
|
+
/** Match by AXLabel - exact match */
|
|
29
|
+
label?: string;
|
|
30
|
+
/** Match by AXLabel - contains (case-insensitive) */
|
|
31
|
+
labelContains?: string;
|
|
32
|
+
/** Match by element type/role (e.g., "Button", "TextField") - case-insensitive */
|
|
33
|
+
elementType?: string;
|
|
34
|
+
/** Match by title - exact match */
|
|
35
|
+
title?: string;
|
|
36
|
+
/** Match by title - contains (case-insensitive) */
|
|
37
|
+
titleContains?: string;
|
|
38
|
+
/** Match by AXValue - exact match */
|
|
39
|
+
value?: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* A point on the screen for accessibility queries
|
|
43
|
+
*/
|
|
44
|
+
export type AccessibilityPoint = {
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
};
|
|
48
|
+
export type ScreenshotData = {
|
|
49
|
+
/** Base64-encoded JPEG image data */
|
|
50
|
+
base64: string;
|
|
51
|
+
/** Width in points (for tap coordinates) */
|
|
52
|
+
width: number;
|
|
53
|
+
/** Height in points (for tap coordinates) */
|
|
54
|
+
height: number;
|
|
55
|
+
};
|
|
56
|
+
export type TapElementResult = {
|
|
57
|
+
elementLabel?: string;
|
|
58
|
+
elementType?: string;
|
|
59
|
+
};
|
|
60
|
+
export type ElementResult = {
|
|
61
|
+
elementLabel?: string;
|
|
62
|
+
};
|
|
63
|
+
export type InstalledApp = {
|
|
64
|
+
bundleId: string;
|
|
65
|
+
name: string;
|
|
66
|
+
installType: string;
|
|
67
|
+
};
|
|
68
|
+
export type LsofEntry = {
|
|
69
|
+
kind: 'unix';
|
|
70
|
+
path: string;
|
|
71
|
+
};
|
|
72
|
+
export type AppInstallationResult = {
|
|
73
|
+
/** The URL the app was installed from */
|
|
74
|
+
url: string;
|
|
75
|
+
/** Bundle ID of the installed app */
|
|
76
|
+
bundleId: string;
|
|
77
|
+
};
|
|
78
|
+
export type AppInstallationOptions = {
|
|
79
|
+
/** MD5 hash for caching - if provided and matches cached version, skips download */
|
|
80
|
+
md5?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Launch mode after installation:
|
|
83
|
+
* - 'ForegroundIfRunning': Bring to foreground if already running, otherwise launch
|
|
84
|
+
* - 'RelaunchIfRunning': Kill and relaunch if already running
|
|
85
|
+
* - 'FailIfRunning': Fail if the app is already running
|
|
86
|
+
* - undefined: Don't launch after installation
|
|
87
|
+
*/
|
|
88
|
+
launchMode?: 'ForegroundIfRunning' | 'RelaunchIfRunning' | 'FailIfRunning';
|
|
89
|
+
};
|
|
21
90
|
/**
|
|
22
91
|
* A client for interacting with a Limrun iOS instance
|
|
23
92
|
*/
|
|
24
93
|
export type InstanceClient = {
|
|
25
94
|
/**
|
|
26
95
|
* Take a screenshot of the current screen
|
|
27
|
-
* @returns A promise that resolves to the screenshot data
|
|
96
|
+
* @returns A promise that resolves to the screenshot data with base64 image and dimensions
|
|
28
97
|
*/
|
|
29
98
|
screenshot: () => Promise<ScreenshotData>;
|
|
99
|
+
/**
|
|
100
|
+
* Get the element tree (accessibility hierarchy) of the current screen
|
|
101
|
+
* @param point Optional point to get the element at that specific location
|
|
102
|
+
* @returns A promise that resolves to the JSON string of the accessibility tree
|
|
103
|
+
*/
|
|
104
|
+
elementTree: (point?: AccessibilityPoint) => Promise<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Tap at the specified coordinates
|
|
107
|
+
* @param x X coordinate in points
|
|
108
|
+
* @param y Y coordinate in points
|
|
109
|
+
*/
|
|
110
|
+
tap: (x: number, y: number) => Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Tap an accessibility element by selector
|
|
113
|
+
* @param selector The selector criteria to find the element
|
|
114
|
+
* @returns Information about the tapped element
|
|
115
|
+
*/
|
|
116
|
+
tapElement: (selector: AccessibilitySelector) => Promise<TapElementResult>;
|
|
117
|
+
/**
|
|
118
|
+
* Increment an accessibility element (useful for sliders, steppers, etc.)
|
|
119
|
+
* @param selector The selector criteria to find the element
|
|
120
|
+
* @returns Information about the incremented element
|
|
121
|
+
*/
|
|
122
|
+
incrementElement: (selector: AccessibilitySelector) => Promise<ElementResult>;
|
|
123
|
+
/**
|
|
124
|
+
* Decrement an accessibility element (useful for sliders, steppers, etc.)
|
|
125
|
+
* @param selector The selector criteria to find the element
|
|
126
|
+
* @returns Information about the decremented element
|
|
127
|
+
*/
|
|
128
|
+
decrementElement: (selector: AccessibilitySelector) => Promise<ElementResult>;
|
|
129
|
+
/**
|
|
130
|
+
* Set the value of an accessibility element (useful for text fields, etc.)
|
|
131
|
+
* This is much faster than typing character by character.
|
|
132
|
+
* @param text The text value to set
|
|
133
|
+
* @param selector The selector criteria to find the element
|
|
134
|
+
* @returns Information about the modified element
|
|
135
|
+
*/
|
|
136
|
+
setElementValue: (text: string, selector: AccessibilitySelector) => Promise<ElementResult>;
|
|
137
|
+
/**
|
|
138
|
+
* Type text into the currently focused input field
|
|
139
|
+
* @param text The text to type
|
|
140
|
+
* @param pressEnter If true, press Enter after typing
|
|
141
|
+
*/
|
|
142
|
+
typeText: (text: string, pressEnter?: boolean) => Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Press a key on the keyboard, optionally with modifiers
|
|
145
|
+
* @param key The key to press (e.g., 'a', 'enter', 'backspace', 'up', 'f1')
|
|
146
|
+
* @param modifiers Optional modifier keys (e.g., ['shift'], ['command', 'shift'])
|
|
147
|
+
*/
|
|
148
|
+
pressKey: (key: string, modifiers?: string[]) => Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Launch an installed app by bundle identifier
|
|
151
|
+
* @param bundleId Bundle identifier of the app to launch
|
|
152
|
+
*/
|
|
153
|
+
launchApp: (bundleId: string) => Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* List installed apps on the simulator
|
|
156
|
+
* @returns Array of installed apps with bundleId, name, and installType
|
|
157
|
+
*/
|
|
158
|
+
listApps: () => Promise<InstalledApp[]>;
|
|
159
|
+
/**
|
|
160
|
+
* Open a URL in the simulator (web URLs open in Safari, deep links open corresponding apps)
|
|
161
|
+
* @param url The URL to open
|
|
162
|
+
*/
|
|
163
|
+
openUrl: (url: string) => Promise<void>;
|
|
164
|
+
/**
|
|
165
|
+
* Install an app from a URL (supports .ipa or .app files, optionally zipped)
|
|
166
|
+
* @param url The URL to download the app from
|
|
167
|
+
* @param options Optional installation options (md5 for caching, launchMode)
|
|
168
|
+
* @returns The installation result with bundle ID on success
|
|
169
|
+
* @throws Error if installation fails (e.g., invalid app, download failure)
|
|
170
|
+
*/
|
|
171
|
+
installApp: (url: string, options?: AppInstallationOptions) => Promise<AppInstallationResult>;
|
|
30
172
|
/**
|
|
31
173
|
* Disconnect from the Limrun instance
|
|
32
174
|
*/
|
|
@@ -97,10 +239,6 @@ export type InstanceClient = {
|
|
|
97
239
|
*/
|
|
98
240
|
lsof: () => Promise<LsofEntry[]>;
|
|
99
241
|
};
|
|
100
|
-
export type LsofEntry = {
|
|
101
|
-
kind: 'unix';
|
|
102
|
-
path: string;
|
|
103
|
-
};
|
|
104
242
|
/**
|
|
105
243
|
* Controls the verbosity of logging in the client
|
|
106
244
|
*/
|
|
@@ -138,9 +276,6 @@ export type InstanceClientOptions = {
|
|
|
138
276
|
*/
|
|
139
277
|
maxReconnectDelay?: number;
|
|
140
278
|
};
|
|
141
|
-
type ScreenshotData = {
|
|
142
|
-
dataUri: string;
|
|
143
|
-
};
|
|
144
279
|
/**
|
|
145
280
|
* Handle for a running simctl command execution.
|
|
146
281
|
*
|
|
@@ -223,5 +358,4 @@ export declare class SimctlExecution extends EventEmitter {
|
|
|
223
358
|
* @returns An InstanceClient for controlling the instance
|
|
224
359
|
*/
|
|
225
360
|
export declare function createInstanceClient(options: InstanceClientOptions): Promise<InstanceClient>;
|
|
226
|
-
export {};
|
|
227
361
|
//# sourceMappingURL=ios-client.d.ts.map
|
package/ios-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios-client.d.ts","sourceRoot":"","sources":["src/ios-client.ts"],"names":[],"mappings":"OAEO,EAAE,YAAY,EAAE,MAAM,QAAQ;AAGrC;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"ios-client.d.ts","sourceRoot":"","sources":["src/ios-client.ts"],"names":[],"mappings":"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"}
|