appium-ios-remotexpc 5.11.0 → 5.12.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 +6 -0
- package/build/src/index.d.ts +2 -0
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +1 -0
- package/build/src/index.js.map +1 -1
- package/build/src/services/ios/configuration/index.d.ts +135 -0
- package/build/src/services/ios/configuration/index.d.ts.map +1 -0
- package/build/src/services/ios/configuration/index.js +210 -0
- package/build/src/services/ios/configuration/index.js.map +1 -0
- package/build/src/services.d.ts +9 -0
- package/build/src/services.d.ts.map +1 -1
- package/build/src/services.js +12 -0
- package/build/src/services.js.map +1 -1
- package/package.json +2 -1
- package/src/index.ts +8 -0
- package/src/services/ios/configuration/index.ts +271 -0
- package/src/services.ts +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [5.12.0](https://github.com/appium/appium-ios-remotexpc/compare/v5.11.0...v5.12.0) (2026-07-21)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **coredevice:** add configuration service (appearance & accessibility) ([#277](https://github.com/appium/appium-ios-remotexpc/issues/277)) ([8c178e5](https://github.com/appium/appium-ios-remotexpc/commit/8c178e52e834977e173a19b8d7d293d99618101a))
|
|
6
|
+
|
|
1
7
|
## [5.11.0](https://github.com/appium/appium-ios-remotexpc/compare/v5.10.1...v5.11.0) (2026-07-10)
|
|
2
8
|
|
|
3
9
|
### Features
|
package/build/src/index.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export { CoreDeviceInfoService } from './services/ios/device-info/index.js';
|
|
|
29
29
|
export type { CoreDeviceAttributes, CoreDeviceDisplayInfo, CoreDeviceLockState, } from './services/ios/device-info/index.js';
|
|
30
30
|
export { DeviceControlService } from './services/ios/device-control/index.js';
|
|
31
31
|
export type { DeviceOrientationState, RotateDirection } from './services/ios/device-control/index.js';
|
|
32
|
+
export { ConfigurationService } from './services/ios/configuration/index.js';
|
|
33
|
+
export type { ColorFilterState, ColorFilterType, DeviceTextSize, SetColorFilterOptions, UserInterfaceStyle, } from './services/ios/configuration/index.js';
|
|
32
34
|
export type { SyslogEntry, SyslogLabel, SyslogLogLevel } from './services/ios/syslog-service/syslog-entry-parser.js';
|
|
33
35
|
export type { CrashReportsService, CrashReportsPullOptions, DiagnosticsService, MobileImageMounterService, NotificationProxyService, MobileConfigService, PowerAssertionService, PowerAssertionOptions, SpringboardService, WebInspectorService, MisagentService, SyslogService, HouseArrestService, DVTSecureSocketProxyService, LocationSimulationService, ConditionInducerService, ScreenshotService, GraphicsService, DeviceInfoService, NetworkMonitorService, EnergyMonitorService, ProcessInfo, ConditionProfile, ConditionGroup, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, ActivityTraceTapService, DVTInstruments, NetworkAddress, InterfaceDetectionEvent, ConnectionDetectionEvent, ConnectionUpdateEvent, NetworkEvent, ProcessControlService, ProcessLaunchOptions, OutputReceivedEvent, SendMessageOptions, TestmanagerdService, XCTestServices, SysmontapService, SysmontapOptions, SysmonSample, SysmonProcessInfo, SysmonSystemInfo, } from './lib/types.js';
|
|
34
36
|
export { PowerAssertionType } from './lib/types.js';
|
package/build/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/src/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export { AppService } from './services/ios/app-service/index.js';
|
|
|
13
13
|
export { PasteboardService } from './services/ios/pasteboard/index.js';
|
|
14
14
|
export { CoreDeviceInfoService } from './services/ios/device-info/index.js';
|
|
15
15
|
export { DeviceControlService } from './services/ios/device-control/index.js';
|
|
16
|
+
export { ConfigurationService } from './services/ios/configuration/index.js';
|
|
16
17
|
export { PowerAssertionType } from './lib/types.js';
|
|
17
18
|
export { NetworkMessageType } from './services/ios/dvt/instruments/network-monitor.js';
|
|
18
19
|
export { ActivityTraceTap } from './services/ios/dvt/instruments/activity-trace-tap.js';
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAE,8BAA8B,EAAC,MAAM,yBAAyB,CAAC;AACpG,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,oBAAoB,EAAE,yBAAyB,EAAC,MAAM,wCAAwC,CAAC;AACvG,OAAO,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,uBAAuB,EAAC,MAAM,wCAAwC,CAAC;AAc/E,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAQhE,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,mDAAmD,CAAC;AAErG,OAAO,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAQ/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAM1E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAE,8BAA8B,EAAC,MAAM,yBAAyB,CAAC;AACpG,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,oBAAoB,EAAE,yBAAyB,EAAC,MAAM,wCAAwC,CAAC;AACvG,OAAO,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,uBAAuB,EAAC,MAAM,wCAAwC,CAAC;AAc/E,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAQhE,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,mDAAmD,CAAC;AAErG,OAAO,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAQ/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAM1E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAE5E,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AA0D3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAC,kBAAkB,EAAC,MAAM,mDAAmD,CAAC;AAErF,OAAO,EAAC,gBAAgB,EAAC,MAAM,sDAAsD,CAAC;AAEtF,OAAO,EAAC,uBAAuB,EAAE,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAChG,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAC,0BAA0B,EAAC,MAAM,oDAAoD,CAAC;AAE9F,OAAO,EAAC,cAAc,EAAC,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAC,SAAS,EAAC,MAAM,6CAA6C,CAAC;AACtE,OAAO,EAAC,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAC,MAAM,yCAAyC,CAAC;AACrH,OAAO,EAAC,gBAAgB,EAAC,MAAM,kDAAkD,CAAC;AAClF,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,8CAA8C,CAAC;AAWtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAC,qBAAqB,EAAE,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAMpE,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAElF,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,GAC1B,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { type CoreDeviceInvokeOptions, CoreDeviceService } from '../core-device/core-device-service.js';
|
|
2
|
+
/**
|
|
3
|
+
* Device appearance. Today the daemon only reports/accepts `'dark'` and
|
|
4
|
+
* `'light'`, so those are surfaced as literals for autocomplete — but the type
|
|
5
|
+
* stays open (`string & {}`) so a future OS that adds another style is neither
|
|
6
|
+
* rejected on read nor unrepresentable on write.
|
|
7
|
+
*/
|
|
8
|
+
export type UserInterfaceStyle = 'dark' | 'light' | (string & {});
|
|
9
|
+
/**
|
|
10
|
+
* Dynamic Type content-size names accepted by the daemon's `setdevicetextsize`
|
|
11
|
+
* action. These are the seven standard sizes.
|
|
12
|
+
*/
|
|
13
|
+
declare const DEVICE_TEXT_SIZES: readonly ["extraSmall", "small", "medium", "large", "extraLarge", "extraExtraLarge", "extraExtraExtraLarge"];
|
|
14
|
+
/** A valid Dynamic Type content-size name. See {@link DEVICE_TEXT_SIZES}. */
|
|
15
|
+
export type DeviceTextSize = (typeof DEVICE_TEXT_SIZES)[number];
|
|
16
|
+
/**
|
|
17
|
+
* Color-filter presets that enable from `filterType` alone.
|
|
18
|
+
*/
|
|
19
|
+
declare const COLOR_FILTER_TYPES: readonly ["Grayscale", "Protanopia", "Deuteranopia", "Tritanopia"];
|
|
20
|
+
/** A color-filter preset that enables from a name alone. See {@link COLOR_FILTER_TYPES}. */
|
|
21
|
+
export type ColorFilterType = (typeof COLOR_FILTER_TYPES)[number];
|
|
22
|
+
/** Color-filter state returned by {@link ConfigurationService.getColorFilter}. */
|
|
23
|
+
export interface ColorFilterState {
|
|
24
|
+
/** Whether the color filter is active. */
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
/** Active filter preset (e.g. `'Protanopia'`); absent when disabled. */
|
|
27
|
+
filterType?: {
|
|
28
|
+
name?: string;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
};
|
|
31
|
+
/** Filter intensity 0.0..1.0; absent when disabled or unset. */
|
|
32
|
+
intensity?: number;
|
|
33
|
+
[key: string]: unknown;
|
|
34
|
+
}
|
|
35
|
+
/** Options for {@link ConfigurationService.setColorFilter}. */
|
|
36
|
+
export interface SetColorFilterOptions {
|
|
37
|
+
/** Filter preset (e.g. `'Protanopia'`). Required when enabling. */
|
|
38
|
+
filterType?: ColorFilterType;
|
|
39
|
+
/** Filter intensity 0.0..1.0. */
|
|
40
|
+
intensity?: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* CoreDevice configuration service (`com.apple.coredevice.configuration`).
|
|
44
|
+
*
|
|
45
|
+
* Reads and writes the appearance and accessibility knobs that Xcode toggles
|
|
46
|
+
* through the same service: dark/light mode, Dynamic Type text size, Reduce
|
|
47
|
+
* Motion / Reduce Transparency / Increase Contrast, color filters, layout-debug
|
|
48
|
+
* borders, and (iOS 26) liquid-glass opacity. This is the only path here that
|
|
49
|
+
* reaches these settings — the DVT ConditionInducer does not expose them.
|
|
50
|
+
*
|
|
51
|
+
* Every method is a thin wrapper around a single `com.apple.coredevice.action.*`
|
|
52
|
+
* invocation (no feature identifier, only an action identifier).
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* const config = await Services.startConfigurationService(udid);
|
|
57
|
+
* try {
|
|
58
|
+
* await config.setUserInterfaceStyle('dark');
|
|
59
|
+
* const style = await config.getUserInterfaceStyle(); // 'dark'
|
|
60
|
+
* } finally {
|
|
61
|
+
* await config.close();
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare class ConfigurationService extends CoreDeviceService {
|
|
66
|
+
static readonly RSD_SERVICE_NAME = "com.apple.coredevice.configuration";
|
|
67
|
+
constructor(udid: string);
|
|
68
|
+
/**
|
|
69
|
+
* Returns the active appearance. Normally `'dark'` or `'light'`, but any
|
|
70
|
+
* string the device reports is passed through unchanged (so a future OS style
|
|
71
|
+
* is not rejected). Only a missing/non-string value — a malformed reply —
|
|
72
|
+
* throws a {@link CoreDeviceError}.
|
|
73
|
+
*/
|
|
74
|
+
getUserInterfaceStyle(options?: CoreDeviceInvokeOptions): Promise<UserInterfaceStyle>;
|
|
75
|
+
/**
|
|
76
|
+
* Sets the device appearance. `'dark'` and `'light'` are the known values; any
|
|
77
|
+
* other non-empty string is forwarded to the device (which validates it), so a
|
|
78
|
+
* future OS style is not blocked client-side. An empty/non-string value throws
|
|
79
|
+
* a `TypeError`.
|
|
80
|
+
*/
|
|
81
|
+
setUserInterfaceStyle(style: UserInterfaceStyle, options?: CoreDeviceInvokeOptions): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Sets the system liquid-glass opacity (iOS 26). `opacity` is range-checked to
|
|
84
|
+
* `[0.0, 1.0]` and quantized to IEEE-754 binary32.
|
|
85
|
+
*
|
|
86
|
+
* ⚠️ Device-gated, not just OS-gated: hardware that does not support Liquid
|
|
87
|
+
* Glass customization rejects this with `com.apple.dt.CoreDeviceError 21035`
|
|
88
|
+
* ("Liquid Glass configuration customization is not supported on this
|
|
89
|
+
* device."), surfaced here as a {@link CoreDeviceError} — even on iOS 26.
|
|
90
|
+
*/
|
|
91
|
+
setLiquidGlassOpacity(opacity: number, options?: CoreDeviceInvokeOptions): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Returns the color-filter state. When the filter is disabled only `enabled`
|
|
94
|
+
* is present.
|
|
95
|
+
*/
|
|
96
|
+
getColorFilter(options?: CoreDeviceInvokeOptions): Promise<ColorFilterState>;
|
|
97
|
+
/**
|
|
98
|
+
* Sets the color filter. `filterType` is required when `enabled` is true and
|
|
99
|
+
* must be one of {@link ColorFilterType} (`'Grayscale'`, `'Protanopia'`,
|
|
100
|
+
* `'Deuteranopia'`, `'Tritanopia'`) — the presets verified to enable from a
|
|
101
|
+
* name. Names are case-sensitive; an unknown value throws a `TypeError`.
|
|
102
|
+
*
|
|
103
|
+
* ⚠️ `intensity` is device-gated: on the tested device any `intensity` value is
|
|
104
|
+
* rejected with `com.apple.dt.CoreDeviceError 21056` ("The color filter
|
|
105
|
+
* intensity value is not valid."), surfaced here as a {@link CoreDeviceError}.
|
|
106
|
+
* Omit it unless you know the target device accepts it.
|
|
107
|
+
*/
|
|
108
|
+
setColorFilter(enabled: boolean, options?: SetColorFilterOptions & CoreDeviceInvokeOptions): Promise<void>;
|
|
109
|
+
/** Returns the Dynamic Type size name (e.g. `'medium'`, `'large'`). */
|
|
110
|
+
getDeviceTextSize(options?: CoreDeviceInvokeOptions): Promise<DeviceTextSize | undefined>;
|
|
111
|
+
/** Sets the Dynamic Type size by name (`'medium'`, `'large'`, …). */
|
|
112
|
+
setDeviceTextSize(size: DeviceTextSize, options?: CoreDeviceInvokeOptions): Promise<void>;
|
|
113
|
+
/** Returns whether Reduce Motion is enabled. */
|
|
114
|
+
getReduceMotion(options?: CoreDeviceInvokeOptions): Promise<boolean>;
|
|
115
|
+
/** Toggles Reduce Motion. */
|
|
116
|
+
setReduceMotion(enabled: boolean, options?: CoreDeviceInvokeOptions): Promise<void>;
|
|
117
|
+
/** Returns whether Increase Contrast is enabled. */
|
|
118
|
+
getIncreaseContrast(options?: CoreDeviceInvokeOptions): Promise<boolean>;
|
|
119
|
+
/** Toggles Increase Contrast. */
|
|
120
|
+
setIncreaseContrast(enabled: boolean, options?: CoreDeviceInvokeOptions): Promise<void>;
|
|
121
|
+
/** Returns whether the layout-debug borders overlay is enabled. */
|
|
122
|
+
getShowBorders(options?: CoreDeviceInvokeOptions): Promise<boolean>;
|
|
123
|
+
/** Toggles the layout-debug borders overlay. */
|
|
124
|
+
setShowBorders(enabled: boolean, options?: CoreDeviceInvokeOptions): Promise<void>;
|
|
125
|
+
/** Returns whether Reduce Transparency is enabled. */
|
|
126
|
+
getReduceTransparency(options?: CoreDeviceInvokeOptions): Promise<boolean>;
|
|
127
|
+
/** Toggles Reduce Transparency. */
|
|
128
|
+
setReduceTransparency(enabled: boolean, options?: CoreDeviceInvokeOptions): Promise<void>;
|
|
129
|
+
/** Invokes an action identifier (no feature identifier) and returns its output dict. */
|
|
130
|
+
private action;
|
|
131
|
+
/** Reads a `{ <key>: { enabled: bool } }`-shaped boolean knob. */
|
|
132
|
+
private getEnabled;
|
|
133
|
+
}
|
|
134
|
+
export default ConfigurationService;
|
|
135
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/configuration/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,uBAAuB,EAAmB,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAoBvH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElE;;;GAGG;AACH,QAAA,MAAM,iBAAiB,8GAQb,CAAC;AAEX,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE;;GAEG;AACH,QAAA,MAAM,kBAAkB,oEAAqE,CAAC;AAE9F,4FAA4F;AAC5F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,UAAU,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IACrD,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,wCAAwC;gBAE5D,IAAI,EAAE,MAAM;IAIxB;;;;;OAKG;IACG,qBAAqB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS/F;;;;;OAKG;IACG,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5G;;;;;;;;OAQG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IASlG;;;OAGG;IACG,cAAc,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKtF;;;;;;;;;;OAUG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,qBAAqB,GAAG,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpH,uEAAuE;IACjE,iBAAiB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAMnG,qEAAqE;IAC/D,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnG,gDAAgD;IAC1C,eAAe,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9E,6BAA6B;IACvB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F,oDAAoD;IAC9C,mBAAmB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlF,iCAAiC;IAC3B,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjG,mEAAmE;IAC7D,cAAc,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7E,gDAAgD;IAC1C,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5F,sDAAsD;IAChD,qBAAqB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpF,mCAAmC;IAC7B,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAInG,wFAAwF;YAC1E,MAAM;IAQpB,kEAAkE;YACpD,UAAU;CAIzB;AAWD,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { asDictionary } from '../../../lib/remote-xpc/xpc-value.js';
|
|
2
|
+
import { CoreDeviceError, CoreDeviceService } from '../core-device/core-device-service.js';
|
|
3
|
+
const ACTION = {
|
|
4
|
+
GET_USER_INTERFACE_STYLE: 'com.apple.coredevice.action.getuserinterfacestyle',
|
|
5
|
+
SET_USER_INTERFACE_STYLE: 'com.apple.coredevice.action.setuserinterfacestyle',
|
|
6
|
+
SET_LIQUID_GLASS: 'com.apple.coredevice.action.setliquidglassconfiguration',
|
|
7
|
+
GET_COLOR_FILTER: 'com.apple.coredevice.action.getcolorfilter',
|
|
8
|
+
SET_COLOR_FILTER: 'com.apple.coredevice.action.setcolorfilter',
|
|
9
|
+
GET_DEVICE_TEXT_SIZE: 'com.apple.coredevice.action.getdevicetextsize',
|
|
10
|
+
SET_DEVICE_TEXT_SIZE: 'com.apple.coredevice.action.setdevicetextsize',
|
|
11
|
+
GET_REDUCE_MOTION: 'com.apple.coredevice.action.getreducemotion',
|
|
12
|
+
SET_REDUCE_MOTION: 'com.apple.coredevice.action.setreducemotion',
|
|
13
|
+
GET_INCREASE_CONTRAST: 'com.apple.coredevice.action.getdeviceincreasecontrast',
|
|
14
|
+
SET_INCREASE_CONTRAST: 'com.apple.coredevice.action.setdeviceincreasecontrast',
|
|
15
|
+
GET_SHOW_BORDERS: 'com.apple.coredevice.action.getshowborders',
|
|
16
|
+
SET_SHOW_BORDERS: 'com.apple.coredevice.action.setshowborders',
|
|
17
|
+
GET_REDUCE_TRANSPARENCY: 'com.apple.coredevice.action.getreducetransparency',
|
|
18
|
+
SET_REDUCE_TRANSPARENCY: 'com.apple.coredevice.action.setreducetransparency',
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Dynamic Type content-size names accepted by the daemon's `setdevicetextsize`
|
|
22
|
+
* action. These are the seven standard sizes.
|
|
23
|
+
*/
|
|
24
|
+
const DEVICE_TEXT_SIZES = [
|
|
25
|
+
'extraSmall',
|
|
26
|
+
'small',
|
|
27
|
+
'medium',
|
|
28
|
+
'large',
|
|
29
|
+
'extraLarge',
|
|
30
|
+
'extraExtraLarge',
|
|
31
|
+
'extraExtraExtraLarge',
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* Color-filter presets that enable from `filterType` alone.
|
|
35
|
+
*/
|
|
36
|
+
const COLOR_FILTER_TYPES = ['Grayscale', 'Protanopia', 'Deuteranopia', 'Tritanopia'];
|
|
37
|
+
/**
|
|
38
|
+
* CoreDevice configuration service (`com.apple.coredevice.configuration`).
|
|
39
|
+
*
|
|
40
|
+
* Reads and writes the appearance and accessibility knobs that Xcode toggles
|
|
41
|
+
* through the same service: dark/light mode, Dynamic Type text size, Reduce
|
|
42
|
+
* Motion / Reduce Transparency / Increase Contrast, color filters, layout-debug
|
|
43
|
+
* borders, and (iOS 26) liquid-glass opacity. This is the only path here that
|
|
44
|
+
* reaches these settings — the DVT ConditionInducer does not expose them.
|
|
45
|
+
*
|
|
46
|
+
* Every method is a thin wrapper around a single `com.apple.coredevice.action.*`
|
|
47
|
+
* invocation (no feature identifier, only an action identifier).
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* const config = await Services.startConfigurationService(udid);
|
|
52
|
+
* try {
|
|
53
|
+
* await config.setUserInterfaceStyle('dark');
|
|
54
|
+
* const style = await config.getUserInterfaceStyle(); // 'dark'
|
|
55
|
+
* } finally {
|
|
56
|
+
* await config.close();
|
|
57
|
+
* }
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export class ConfigurationService extends CoreDeviceService {
|
|
61
|
+
static RSD_SERVICE_NAME = 'com.apple.coredevice.configuration';
|
|
62
|
+
constructor(udid) {
|
|
63
|
+
super(udid, ConfigurationService.RSD_SERVICE_NAME);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Returns the active appearance. Normally `'dark'` or `'light'`, but any
|
|
67
|
+
* string the device reports is passed through unchanged (so a future OS style
|
|
68
|
+
* is not rejected). Only a missing/non-string value — a malformed reply —
|
|
69
|
+
* throws a {@link CoreDeviceError}.
|
|
70
|
+
*/
|
|
71
|
+
async getUserInterfaceStyle(options = {}) {
|
|
72
|
+
const output = await this.action(ACTION.GET_USER_INTERFACE_STYLE, {}, options);
|
|
73
|
+
const style = output.style;
|
|
74
|
+
if (typeof style !== 'string') {
|
|
75
|
+
throw new CoreDeviceError(`Missing user-interface style in device response: ${String(style)}`, output);
|
|
76
|
+
}
|
|
77
|
+
return style;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Sets the device appearance. `'dark'` and `'light'` are the known values; any
|
|
81
|
+
* other non-empty string is forwarded to the device (which validates it), so a
|
|
82
|
+
* future OS style is not blocked client-side. An empty/non-string value throws
|
|
83
|
+
* a `TypeError`.
|
|
84
|
+
*/
|
|
85
|
+
async setUserInterfaceStyle(style, options = {}) {
|
|
86
|
+
if (typeof style !== 'string' || style.length === 0) {
|
|
87
|
+
throw new TypeError(`style must be a non-empty string, got '${String(style)}'`);
|
|
88
|
+
}
|
|
89
|
+
await this.action(ACTION.SET_USER_INTERFACE_STYLE, { style }, options);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Sets the system liquid-glass opacity (iOS 26). `opacity` is range-checked to
|
|
93
|
+
* `[0.0, 1.0]` and quantized to IEEE-754 binary32.
|
|
94
|
+
*
|
|
95
|
+
* ⚠️ Device-gated, not just OS-gated: hardware that does not support Liquid
|
|
96
|
+
* Glass customization rejects this with `com.apple.dt.CoreDeviceError 21035`
|
|
97
|
+
* ("Liquid Glass configuration customization is not supported on this
|
|
98
|
+
* device."), surfaced here as a {@link CoreDeviceError} — even on iOS 26.
|
|
99
|
+
*/
|
|
100
|
+
async setLiquidGlassOpacity(opacity, options = {}) {
|
|
101
|
+
if (!(opacity >= 0 && opacity <= 1)) {
|
|
102
|
+
throw new RangeError(`opacity must be in [0.0, 1.0], got ${String(opacity)}`);
|
|
103
|
+
}
|
|
104
|
+
// Quantize to IEEE-754 binary32: the daemon's Swift decoders reject floats
|
|
105
|
+
// whose low mantissa bits don't fit in Float32.
|
|
106
|
+
await this.action(ACTION.SET_LIQUID_GLASS, { configuration: { opacity: Math.fround(opacity) } }, options);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Returns the color-filter state. When the filter is disabled only `enabled`
|
|
110
|
+
* is present.
|
|
111
|
+
*/
|
|
112
|
+
async getColorFilter(options = {}) {
|
|
113
|
+
const output = await this.action(ACTION.GET_COLOR_FILTER, {}, options);
|
|
114
|
+
return (asDictionary(output.colorFilter) ?? { enabled: false });
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Sets the color filter. `filterType` is required when `enabled` is true and
|
|
118
|
+
* must be one of {@link ColorFilterType} (`'Grayscale'`, `'Protanopia'`,
|
|
119
|
+
* `'Deuteranopia'`, `'Tritanopia'`) — the presets verified to enable from a
|
|
120
|
+
* name. Names are case-sensitive; an unknown value throws a `TypeError`.
|
|
121
|
+
*
|
|
122
|
+
* ⚠️ `intensity` is device-gated: on the tested device any `intensity` value is
|
|
123
|
+
* rejected with `com.apple.dt.CoreDeviceError 21056` ("The color filter
|
|
124
|
+
* intensity value is not valid."), surfaced here as a {@link CoreDeviceError}.
|
|
125
|
+
* Omit it unless you know the target device accepts it.
|
|
126
|
+
*/
|
|
127
|
+
async setColorFilter(enabled, options = {}) {
|
|
128
|
+
const { filterType, intensity, ...invokeOptions } = options;
|
|
129
|
+
const colorFilter = { enabled };
|
|
130
|
+
// filterType/intensity only apply when enabling. When disabling we send just
|
|
131
|
+
// `{ enabled: false }` and intentionally drop them.
|
|
132
|
+
if (enabled) {
|
|
133
|
+
if (filterType === undefined) {
|
|
134
|
+
throw new TypeError('filterType is required when enabling the color filter');
|
|
135
|
+
}
|
|
136
|
+
if (!isOneOf(COLOR_FILTER_TYPES, filterType)) {
|
|
137
|
+
throw new TypeError(`filterType must be one of ${COLOR_FILTER_TYPES.join(', ')}, got '${String(filterType)}'`);
|
|
138
|
+
}
|
|
139
|
+
colorFilter.filterType = { name: filterType };
|
|
140
|
+
if (intensity !== undefined) {
|
|
141
|
+
colorFilter.intensity = Math.fround(intensity);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
await this.action(ACTION.SET_COLOR_FILTER, { colorFilter }, invokeOptions);
|
|
145
|
+
}
|
|
146
|
+
/** Returns the Dynamic Type size name (e.g. `'medium'`, `'large'`). */
|
|
147
|
+
async getDeviceTextSize(options = {}) {
|
|
148
|
+
const output = await this.action(ACTION.GET_DEVICE_TEXT_SIZE, {}, options);
|
|
149
|
+
const size = asDictionary(asDictionary(output.textSize)?.size);
|
|
150
|
+
return size ? Object.keys(size)[0] : undefined;
|
|
151
|
+
}
|
|
152
|
+
/** Sets the Dynamic Type size by name (`'medium'`, `'large'`, …). */
|
|
153
|
+
async setDeviceTextSize(size, options = {}) {
|
|
154
|
+
if (!isOneOf(DEVICE_TEXT_SIZES, size)) {
|
|
155
|
+
throw new TypeError(`size must be one of ${DEVICE_TEXT_SIZES.join(', ')}, got '${String(size)}'`);
|
|
156
|
+
}
|
|
157
|
+
await this.action(ACTION.SET_DEVICE_TEXT_SIZE, { textSize: { size: { [size]: {} } } }, options);
|
|
158
|
+
}
|
|
159
|
+
/** Returns whether Reduce Motion is enabled. */
|
|
160
|
+
async getReduceMotion(options = {}) {
|
|
161
|
+
return this.getEnabled(ACTION.GET_REDUCE_MOTION, 'reduceMotion', options);
|
|
162
|
+
}
|
|
163
|
+
/** Toggles Reduce Motion. */
|
|
164
|
+
async setReduceMotion(enabled, options = {}) {
|
|
165
|
+
await this.action(ACTION.SET_REDUCE_MOTION, { reduceMotion: { enabled } }, options);
|
|
166
|
+
}
|
|
167
|
+
/** Returns whether Increase Contrast is enabled. */
|
|
168
|
+
async getIncreaseContrast(options = {}) {
|
|
169
|
+
return this.getEnabled(ACTION.GET_INCREASE_CONTRAST, 'increaseContrast', options);
|
|
170
|
+
}
|
|
171
|
+
/** Toggles Increase Contrast. */
|
|
172
|
+
async setIncreaseContrast(enabled, options = {}) {
|
|
173
|
+
await this.action(ACTION.SET_INCREASE_CONTRAST, { increaseContrast: { enabled } }, options);
|
|
174
|
+
}
|
|
175
|
+
/** Returns whether the layout-debug borders overlay is enabled. */
|
|
176
|
+
async getShowBorders(options = {}) {
|
|
177
|
+
return this.getEnabled(ACTION.GET_SHOW_BORDERS, 'showBorders', options);
|
|
178
|
+
}
|
|
179
|
+
/** Toggles the layout-debug borders overlay. */
|
|
180
|
+
async setShowBorders(enabled, options = {}) {
|
|
181
|
+
await this.action(ACTION.SET_SHOW_BORDERS, { showBorders: { enabled } }, options);
|
|
182
|
+
}
|
|
183
|
+
/** Returns whether Reduce Transparency is enabled. */
|
|
184
|
+
async getReduceTransparency(options = {}) {
|
|
185
|
+
return this.getEnabled(ACTION.GET_REDUCE_TRANSPARENCY, 'reduceTransparency', options);
|
|
186
|
+
}
|
|
187
|
+
/** Toggles Reduce Transparency. */
|
|
188
|
+
async setReduceTransparency(enabled, options = {}) {
|
|
189
|
+
await this.action(ACTION.SET_REDUCE_TRANSPARENCY, { reduceTransparency: { enabled } }, options);
|
|
190
|
+
}
|
|
191
|
+
/** Invokes an action identifier (no feature identifier) and returns its output dict. */
|
|
192
|
+
async action(actionIdentifier, input, options) {
|
|
193
|
+
return asDictionary(await this.invoke(undefined, input, { ...options, actionIdentifier })) ?? {};
|
|
194
|
+
}
|
|
195
|
+
/** Reads a `{ <key>: { enabled: bool } }`-shaped boolean knob. */
|
|
196
|
+
async getEnabled(actionIdentifier, key, options) {
|
|
197
|
+
const output = await this.action(actionIdentifier, {}, options);
|
|
198
|
+
return asDictionary(output[key])?.enabled === true;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Type guard for membership in an `as const` list of string literals. Lets a
|
|
203
|
+
* single declaration be the source of truth for both a union type
|
|
204
|
+
* (`(typeof list)[number]`) and its runtime validation.
|
|
205
|
+
*/
|
|
206
|
+
function isOneOf(values, value) {
|
|
207
|
+
return values.includes(value);
|
|
208
|
+
}
|
|
209
|
+
export default ConfigurationService;
|
|
210
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/configuration/index.ts"],"names":[],"mappings":"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"}
|
package/build/src/services.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { DVTInstruments, SyslogService as SyslogServiceType, XCTestServices
|
|
|
2
2
|
import AfcService from './services/ios/afc/index.js';
|
|
3
3
|
import { AppService } from './services/ios/app-service/index.js';
|
|
4
4
|
import { type Service } from './services/ios/base-service.js';
|
|
5
|
+
import { ConfigurationService } from './services/ios/configuration/index.js';
|
|
5
6
|
import { CrashReportsService } from './services/ios/crash-reports/index.js';
|
|
6
7
|
import { DeviceControlService } from './services/ios/device-control/index.js';
|
|
7
8
|
import { CoreDeviceInfoService } from './services/ios/device-info/index.js';
|
|
@@ -74,6 +75,14 @@ export declare function startCoreDeviceInfoService(udid: string): Promise<CoreDe
|
|
|
74
75
|
* Start the CoreDevice device-control service for the given device UDID.
|
|
75
76
|
*/
|
|
76
77
|
export declare function startDeviceControlService(udid: string): Promise<DeviceControlService>;
|
|
78
|
+
/**
|
|
79
|
+
* Start the CoreDevice configuration service for the given device UDID.
|
|
80
|
+
*
|
|
81
|
+
* Reads and writes appearance and accessibility knobs (dark/light mode, Dynamic
|
|
82
|
+
* Type text size, Reduce Motion / Transparency, Increase Contrast, color
|
|
83
|
+
* filters, layout-debug borders, iOS 26 liquid-glass opacity) over RemoteXPC.
|
|
84
|
+
*/
|
|
85
|
+
export declare function startConfigurationService(udid: string): Promise<ConfigurationService>;
|
|
77
86
|
/** Options for {@link startXCTestServices}. */
|
|
78
87
|
export interface StartXCTestServicesOptions {
|
|
79
88
|
/** Also resolve and return an InstallationProxyService for app lookup. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAE,aAAa,IAAI,iBAAiB,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AACvG,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAC1E,OAAO,kBAAkB,MAAM,4CAA4C,CAAC;AAc5E,OAAO,EAAC,gBAAgB,EAAC,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,yBAAyB,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAE/E,OAAO,EAAC,0BAA0B,EAAC,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,iBAAiB,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAI5F;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAGvF;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAGnG;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAGzF;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAGrG;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAGvF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAGjF;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAG7F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGnF;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAGrF;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAG7F;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAG3F;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAG3F;AAKD,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAGjF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAC,aAAa,EAAE,iBAAiB,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAA;CAAC,CAAC,CAEzE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAC,aAAa,EAAE,iBAAiB,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAA;CAAC,CAAC,CAEzE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAGrF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAMzF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAGvF;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAGnG;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAGzF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAqB3E;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAMhG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC,CAyCrH"}
|
package/build/src/services.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DEFAULT_TUNNEL_SERVICE_WAIT_MS, resolveTunnelService, resolveTunnelServicePorts, } from './lib/tunnel/tunnel-service-resolver.js';
|
|
2
2
|
import AfcService from './services/ios/afc/index.js';
|
|
3
3
|
import { AppService } from './services/ios/app-service/index.js';
|
|
4
|
+
import { ConfigurationService } from './services/ios/configuration/index.js';
|
|
4
5
|
import { CrashReportsService } from './services/ios/crash-reports/index.js';
|
|
5
6
|
import { DeviceControlService } from './services/ios/device-control/index.js';
|
|
6
7
|
import { CoreDeviceInfoService } from './services/ios/device-info/index.js';
|
|
@@ -124,6 +125,17 @@ export async function startDeviceControlService(udid) {
|
|
|
124
125
|
await requireCatalogService(udid, DeviceControlService.RSD_SERVICE_NAME);
|
|
125
126
|
return new DeviceControlService(udid);
|
|
126
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Start the CoreDevice configuration service for the given device UDID.
|
|
130
|
+
*
|
|
131
|
+
* Reads and writes appearance and accessibility knobs (dark/light mode, Dynamic
|
|
132
|
+
* Type text size, Reduce Motion / Transparency, Increase Contrast, color
|
|
133
|
+
* filters, layout-debug borders, iOS 26 liquid-glass opacity) over RemoteXPC.
|
|
134
|
+
*/
|
|
135
|
+
export async function startConfigurationService(udid) {
|
|
136
|
+
await requireCatalogService(udid, ConfigurationService.RSD_SERVICE_NAME);
|
|
137
|
+
return new ConfigurationService(udid);
|
|
138
|
+
}
|
|
127
139
|
const RSD_SYSLOG_BINARY_SERVICE_NAME = 'com.apple.os_trace_relay.shim.remote';
|
|
128
140
|
const RSD_SYSLOG_TEXT_SERVICE_NAME = 'com.apple.syslog_relay.shim.remote';
|
|
129
141
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/services.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-ios-remotexpc",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.12.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"bugs": {
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"test:app-service": "node --test --test-timeout=60000 \"build/test/integration/app-service.spec.js\"",
|
|
49
49
|
"test:coredevice-device-info": "node --test --test-timeout=60000 \"build/test/integration/device-info-coredevice.spec.js\"",
|
|
50
50
|
"test:device-control": "node --test --test-timeout=60000 \"build/test/integration/device-control.spec.js\"",
|
|
51
|
+
"test:configuration": "node --test --test-timeout=60000 \"build/test/integration/configuration.spec.js\"",
|
|
51
52
|
"test:crash-reports": "node --test --test-timeout=60000 \"build/test/integration/crash-reports.spec.js\"",
|
|
52
53
|
"test:diagnostics": " node --test --test-timeout=60000 \"build/test/integration/diagnostics.spec.js\"",
|
|
53
54
|
"test:dvt-service": "node --test --test-timeout=60000 \"build/test/integration/dvt-service.spec.js\"",
|
package/src/index.ts
CHANGED
|
@@ -66,6 +66,14 @@ export type {
|
|
|
66
66
|
} from './services/ios/device-info/index.js';
|
|
67
67
|
export {DeviceControlService} from './services/ios/device-control/index.js';
|
|
68
68
|
export type {DeviceOrientationState, RotateDirection} from './services/ios/device-control/index.js';
|
|
69
|
+
export {ConfigurationService} from './services/ios/configuration/index.js';
|
|
70
|
+
export type {
|
|
71
|
+
ColorFilterState,
|
|
72
|
+
ColorFilterType,
|
|
73
|
+
DeviceTextSize,
|
|
74
|
+
SetColorFilterOptions,
|
|
75
|
+
UserInterfaceStyle,
|
|
76
|
+
} from './services/ios/configuration/index.js';
|
|
69
77
|
export type {SyslogEntry, SyslogLabel, SyslogLogLevel} from './services/ios/syslog-service/syslog-entry-parser.js';
|
|
70
78
|
|
|
71
79
|
export type {
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import {asDictionary} from '../../../lib/remote-xpc/xpc-value.js';
|
|
2
|
+
import type {XPCDictionary} from '../../../lib/types.js';
|
|
3
|
+
import {type CoreDeviceInvokeOptions, CoreDeviceError, CoreDeviceService} from '../core-device/core-device-service.js';
|
|
4
|
+
|
|
5
|
+
const ACTION = {
|
|
6
|
+
GET_USER_INTERFACE_STYLE: 'com.apple.coredevice.action.getuserinterfacestyle',
|
|
7
|
+
SET_USER_INTERFACE_STYLE: 'com.apple.coredevice.action.setuserinterfacestyle',
|
|
8
|
+
SET_LIQUID_GLASS: 'com.apple.coredevice.action.setliquidglassconfiguration',
|
|
9
|
+
GET_COLOR_FILTER: 'com.apple.coredevice.action.getcolorfilter',
|
|
10
|
+
SET_COLOR_FILTER: 'com.apple.coredevice.action.setcolorfilter',
|
|
11
|
+
GET_DEVICE_TEXT_SIZE: 'com.apple.coredevice.action.getdevicetextsize',
|
|
12
|
+
SET_DEVICE_TEXT_SIZE: 'com.apple.coredevice.action.setdevicetextsize',
|
|
13
|
+
GET_REDUCE_MOTION: 'com.apple.coredevice.action.getreducemotion',
|
|
14
|
+
SET_REDUCE_MOTION: 'com.apple.coredevice.action.setreducemotion',
|
|
15
|
+
GET_INCREASE_CONTRAST: 'com.apple.coredevice.action.getdeviceincreasecontrast',
|
|
16
|
+
SET_INCREASE_CONTRAST: 'com.apple.coredevice.action.setdeviceincreasecontrast',
|
|
17
|
+
GET_SHOW_BORDERS: 'com.apple.coredevice.action.getshowborders',
|
|
18
|
+
SET_SHOW_BORDERS: 'com.apple.coredevice.action.setshowborders',
|
|
19
|
+
GET_REDUCE_TRANSPARENCY: 'com.apple.coredevice.action.getreducetransparency',
|
|
20
|
+
SET_REDUCE_TRANSPARENCY: 'com.apple.coredevice.action.setreducetransparency',
|
|
21
|
+
} as const;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Device appearance. Today the daemon only reports/accepts `'dark'` and
|
|
25
|
+
* `'light'`, so those are surfaced as literals for autocomplete — but the type
|
|
26
|
+
* stays open (`string & {}`) so a future OS that adds another style is neither
|
|
27
|
+
* rejected on read nor unrepresentable on write.
|
|
28
|
+
*/
|
|
29
|
+
export type UserInterfaceStyle = 'dark' | 'light' | (string & {});
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Dynamic Type content-size names accepted by the daemon's `setdevicetextsize`
|
|
33
|
+
* action. These are the seven standard sizes.
|
|
34
|
+
*/
|
|
35
|
+
const DEVICE_TEXT_SIZES = [
|
|
36
|
+
'extraSmall',
|
|
37
|
+
'small',
|
|
38
|
+
'medium',
|
|
39
|
+
'large',
|
|
40
|
+
'extraLarge',
|
|
41
|
+
'extraExtraLarge',
|
|
42
|
+
'extraExtraExtraLarge',
|
|
43
|
+
] as const;
|
|
44
|
+
|
|
45
|
+
/** A valid Dynamic Type content-size name. See {@link DEVICE_TEXT_SIZES}. */
|
|
46
|
+
export type DeviceTextSize = (typeof DEVICE_TEXT_SIZES)[number];
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Color-filter presets that enable from `filterType` alone.
|
|
50
|
+
*/
|
|
51
|
+
const COLOR_FILTER_TYPES = ['Grayscale', 'Protanopia', 'Deuteranopia', 'Tritanopia'] as const;
|
|
52
|
+
|
|
53
|
+
/** A color-filter preset that enables from a name alone. See {@link COLOR_FILTER_TYPES}. */
|
|
54
|
+
export type ColorFilterType = (typeof COLOR_FILTER_TYPES)[number];
|
|
55
|
+
|
|
56
|
+
/** Color-filter state returned by {@link ConfigurationService.getColorFilter}. */
|
|
57
|
+
export interface ColorFilterState {
|
|
58
|
+
/** Whether the color filter is active. */
|
|
59
|
+
enabled: boolean;
|
|
60
|
+
/** Active filter preset (e.g. `'Protanopia'`); absent when disabled. */
|
|
61
|
+
filterType?: {name?: string; [key: string]: unknown};
|
|
62
|
+
/** Filter intensity 0.0..1.0; absent when disabled or unset. */
|
|
63
|
+
intensity?: number;
|
|
64
|
+
[key: string]: unknown;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Options for {@link ConfigurationService.setColorFilter}. */
|
|
68
|
+
export interface SetColorFilterOptions {
|
|
69
|
+
/** Filter preset (e.g. `'Protanopia'`). Required when enabling. */
|
|
70
|
+
filterType?: ColorFilterType;
|
|
71
|
+
/** Filter intensity 0.0..1.0. */
|
|
72
|
+
intensity?: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* CoreDevice configuration service (`com.apple.coredevice.configuration`).
|
|
77
|
+
*
|
|
78
|
+
* Reads and writes the appearance and accessibility knobs that Xcode toggles
|
|
79
|
+
* through the same service: dark/light mode, Dynamic Type text size, Reduce
|
|
80
|
+
* Motion / Reduce Transparency / Increase Contrast, color filters, layout-debug
|
|
81
|
+
* borders, and (iOS 26) liquid-glass opacity. This is the only path here that
|
|
82
|
+
* reaches these settings — the DVT ConditionInducer does not expose them.
|
|
83
|
+
*
|
|
84
|
+
* Every method is a thin wrapper around a single `com.apple.coredevice.action.*`
|
|
85
|
+
* invocation (no feature identifier, only an action identifier).
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* const config = await Services.startConfigurationService(udid);
|
|
90
|
+
* try {
|
|
91
|
+
* await config.setUserInterfaceStyle('dark');
|
|
92
|
+
* const style = await config.getUserInterfaceStyle(); // 'dark'
|
|
93
|
+
* } finally {
|
|
94
|
+
* await config.close();
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
export class ConfigurationService extends CoreDeviceService {
|
|
99
|
+
static readonly RSD_SERVICE_NAME = 'com.apple.coredevice.configuration';
|
|
100
|
+
|
|
101
|
+
constructor(udid: string) {
|
|
102
|
+
super(udid, ConfigurationService.RSD_SERVICE_NAME);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Returns the active appearance. Normally `'dark'` or `'light'`, but any
|
|
107
|
+
* string the device reports is passed through unchanged (so a future OS style
|
|
108
|
+
* is not rejected). Only a missing/non-string value — a malformed reply —
|
|
109
|
+
* throws a {@link CoreDeviceError}.
|
|
110
|
+
*/
|
|
111
|
+
async getUserInterfaceStyle(options: CoreDeviceInvokeOptions = {}): Promise<UserInterfaceStyle> {
|
|
112
|
+
const output = await this.action(ACTION.GET_USER_INTERFACE_STYLE, {}, options);
|
|
113
|
+
const style = output.style;
|
|
114
|
+
if (typeof style !== 'string') {
|
|
115
|
+
throw new CoreDeviceError(`Missing user-interface style in device response: ${String(style)}`, output);
|
|
116
|
+
}
|
|
117
|
+
return style;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Sets the device appearance. `'dark'` and `'light'` are the known values; any
|
|
122
|
+
* other non-empty string is forwarded to the device (which validates it), so a
|
|
123
|
+
* future OS style is not blocked client-side. An empty/non-string value throws
|
|
124
|
+
* a `TypeError`.
|
|
125
|
+
*/
|
|
126
|
+
async setUserInterfaceStyle(style: UserInterfaceStyle, options: CoreDeviceInvokeOptions = {}): Promise<void> {
|
|
127
|
+
if (typeof style !== 'string' || style.length === 0) {
|
|
128
|
+
throw new TypeError(`style must be a non-empty string, got '${String(style)}'`);
|
|
129
|
+
}
|
|
130
|
+
await this.action(ACTION.SET_USER_INTERFACE_STYLE, {style}, options);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Sets the system liquid-glass opacity (iOS 26). `opacity` is range-checked to
|
|
135
|
+
* `[0.0, 1.0]` and quantized to IEEE-754 binary32.
|
|
136
|
+
*
|
|
137
|
+
* ⚠️ Device-gated, not just OS-gated: hardware that does not support Liquid
|
|
138
|
+
* Glass customization rejects this with `com.apple.dt.CoreDeviceError 21035`
|
|
139
|
+
* ("Liquid Glass configuration customization is not supported on this
|
|
140
|
+
* device."), surfaced here as a {@link CoreDeviceError} — even on iOS 26.
|
|
141
|
+
*/
|
|
142
|
+
async setLiquidGlassOpacity(opacity: number, options: CoreDeviceInvokeOptions = {}): Promise<void> {
|
|
143
|
+
if (!(opacity >= 0 && opacity <= 1)) {
|
|
144
|
+
throw new RangeError(`opacity must be in [0.0, 1.0], got ${String(opacity)}`);
|
|
145
|
+
}
|
|
146
|
+
// Quantize to IEEE-754 binary32: the daemon's Swift decoders reject floats
|
|
147
|
+
// whose low mantissa bits don't fit in Float32.
|
|
148
|
+
await this.action(ACTION.SET_LIQUID_GLASS, {configuration: {opacity: Math.fround(opacity)}}, options);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Returns the color-filter state. When the filter is disabled only `enabled`
|
|
153
|
+
* is present.
|
|
154
|
+
*/
|
|
155
|
+
async getColorFilter(options: CoreDeviceInvokeOptions = {}): Promise<ColorFilterState> {
|
|
156
|
+
const output = await this.action(ACTION.GET_COLOR_FILTER, {}, options);
|
|
157
|
+
return (asDictionary(output.colorFilter) ?? {enabled: false}) as ColorFilterState;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Sets the color filter. `filterType` is required when `enabled` is true and
|
|
162
|
+
* must be one of {@link ColorFilterType} (`'Grayscale'`, `'Protanopia'`,
|
|
163
|
+
* `'Deuteranopia'`, `'Tritanopia'`) — the presets verified to enable from a
|
|
164
|
+
* name. Names are case-sensitive; an unknown value throws a `TypeError`.
|
|
165
|
+
*
|
|
166
|
+
* ⚠️ `intensity` is device-gated: on the tested device any `intensity` value is
|
|
167
|
+
* rejected with `com.apple.dt.CoreDeviceError 21056` ("The color filter
|
|
168
|
+
* intensity value is not valid."), surfaced here as a {@link CoreDeviceError}.
|
|
169
|
+
* Omit it unless you know the target device accepts it.
|
|
170
|
+
*/
|
|
171
|
+
async setColorFilter(enabled: boolean, options: SetColorFilterOptions & CoreDeviceInvokeOptions = {}): Promise<void> {
|
|
172
|
+
const {filterType, intensity, ...invokeOptions} = options;
|
|
173
|
+
const colorFilter: XPCDictionary = {enabled};
|
|
174
|
+
// filterType/intensity only apply when enabling. When disabling we send just
|
|
175
|
+
// `{ enabled: false }` and intentionally drop them.
|
|
176
|
+
if (enabled) {
|
|
177
|
+
if (filterType === undefined) {
|
|
178
|
+
throw new TypeError('filterType is required when enabling the color filter');
|
|
179
|
+
}
|
|
180
|
+
if (!isOneOf(COLOR_FILTER_TYPES, filterType)) {
|
|
181
|
+
throw new TypeError(`filterType must be one of ${COLOR_FILTER_TYPES.join(', ')}, got '${String(filterType)}'`);
|
|
182
|
+
}
|
|
183
|
+
colorFilter.filterType = {name: filterType};
|
|
184
|
+
if (intensity !== undefined) {
|
|
185
|
+
colorFilter.intensity = Math.fround(intensity);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
await this.action(ACTION.SET_COLOR_FILTER, {colorFilter}, invokeOptions);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/** Returns the Dynamic Type size name (e.g. `'medium'`, `'large'`). */
|
|
192
|
+
async getDeviceTextSize(options: CoreDeviceInvokeOptions = {}): Promise<DeviceTextSize | undefined> {
|
|
193
|
+
const output = await this.action(ACTION.GET_DEVICE_TEXT_SIZE, {}, options);
|
|
194
|
+
const size = asDictionary(asDictionary(output.textSize)?.size);
|
|
195
|
+
return size ? (Object.keys(size)[0] as DeviceTextSize) : undefined;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/** Sets the Dynamic Type size by name (`'medium'`, `'large'`, …). */
|
|
199
|
+
async setDeviceTextSize(size: DeviceTextSize, options: CoreDeviceInvokeOptions = {}): Promise<void> {
|
|
200
|
+
if (!isOneOf(DEVICE_TEXT_SIZES, size)) {
|
|
201
|
+
throw new TypeError(`size must be one of ${DEVICE_TEXT_SIZES.join(', ')}, got '${String(size)}'`);
|
|
202
|
+
}
|
|
203
|
+
await this.action(ACTION.SET_DEVICE_TEXT_SIZE, {textSize: {size: {[size]: {}}}}, options);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** Returns whether Reduce Motion is enabled. */
|
|
207
|
+
async getReduceMotion(options: CoreDeviceInvokeOptions = {}): Promise<boolean> {
|
|
208
|
+
return this.getEnabled(ACTION.GET_REDUCE_MOTION, 'reduceMotion', options);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/** Toggles Reduce Motion. */
|
|
212
|
+
async setReduceMotion(enabled: boolean, options: CoreDeviceInvokeOptions = {}): Promise<void> {
|
|
213
|
+
await this.action(ACTION.SET_REDUCE_MOTION, {reduceMotion: {enabled}}, options);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** Returns whether Increase Contrast is enabled. */
|
|
217
|
+
async getIncreaseContrast(options: CoreDeviceInvokeOptions = {}): Promise<boolean> {
|
|
218
|
+
return this.getEnabled(ACTION.GET_INCREASE_CONTRAST, 'increaseContrast', options);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/** Toggles Increase Contrast. */
|
|
222
|
+
async setIncreaseContrast(enabled: boolean, options: CoreDeviceInvokeOptions = {}): Promise<void> {
|
|
223
|
+
await this.action(ACTION.SET_INCREASE_CONTRAST, {increaseContrast: {enabled}}, options);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/** Returns whether the layout-debug borders overlay is enabled. */
|
|
227
|
+
async getShowBorders(options: CoreDeviceInvokeOptions = {}): Promise<boolean> {
|
|
228
|
+
return this.getEnabled(ACTION.GET_SHOW_BORDERS, 'showBorders', options);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/** Toggles the layout-debug borders overlay. */
|
|
232
|
+
async setShowBorders(enabled: boolean, options: CoreDeviceInvokeOptions = {}): Promise<void> {
|
|
233
|
+
await this.action(ACTION.SET_SHOW_BORDERS, {showBorders: {enabled}}, options);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/** Returns whether Reduce Transparency is enabled. */
|
|
237
|
+
async getReduceTransparency(options: CoreDeviceInvokeOptions = {}): Promise<boolean> {
|
|
238
|
+
return this.getEnabled(ACTION.GET_REDUCE_TRANSPARENCY, 'reduceTransparency', options);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/** Toggles Reduce Transparency. */
|
|
242
|
+
async setReduceTransparency(enabled: boolean, options: CoreDeviceInvokeOptions = {}): Promise<void> {
|
|
243
|
+
await this.action(ACTION.SET_REDUCE_TRANSPARENCY, {reduceTransparency: {enabled}}, options);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/** Invokes an action identifier (no feature identifier) and returns its output dict. */
|
|
247
|
+
private async action(
|
|
248
|
+
actionIdentifier: string,
|
|
249
|
+
input: XPCDictionary,
|
|
250
|
+
options: CoreDeviceInvokeOptions,
|
|
251
|
+
): Promise<XPCDictionary> {
|
|
252
|
+
return asDictionary(await this.invoke(undefined, input, {...options, actionIdentifier})) ?? {};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/** Reads a `{ <key>: { enabled: bool } }`-shaped boolean knob. */
|
|
256
|
+
private async getEnabled(actionIdentifier: string, key: string, options: CoreDeviceInvokeOptions): Promise<boolean> {
|
|
257
|
+
const output = await this.action(actionIdentifier, {}, options);
|
|
258
|
+
return asDictionary(output[key])?.enabled === true;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Type guard for membership in an `as const` list of string literals. Lets a
|
|
264
|
+
* single declaration be the source of truth for both a union type
|
|
265
|
+
* (`(typeof list)[number]`) and its runtime validation.
|
|
266
|
+
*/
|
|
267
|
+
function isOneOf<T extends readonly string[]>(values: T, value: string): value is T[number] {
|
|
268
|
+
return (values as readonly string[]).includes(value);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export default ConfigurationService;
|
package/src/services.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type {DVTInstruments, SyslogService as SyslogServiceType, XCTestServices}
|
|
|
7
7
|
import AfcService from './services/ios/afc/index.js';
|
|
8
8
|
import {AppService} from './services/ios/app-service/index.js';
|
|
9
9
|
import {type Service} from './services/ios/base-service.js';
|
|
10
|
+
import {ConfigurationService} from './services/ios/configuration/index.js';
|
|
10
11
|
import {CrashReportsService} from './services/ios/crash-reports/index.js';
|
|
11
12
|
import {DeviceControlService} from './services/ios/device-control/index.js';
|
|
12
13
|
import {CoreDeviceInfoService} from './services/ios/device-info/index.js';
|
|
@@ -145,6 +146,18 @@ export async function startDeviceControlService(udid: string): Promise<DeviceCon
|
|
|
145
146
|
return new DeviceControlService(udid);
|
|
146
147
|
}
|
|
147
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Start the CoreDevice configuration service for the given device UDID.
|
|
151
|
+
*
|
|
152
|
+
* Reads and writes appearance and accessibility knobs (dark/light mode, Dynamic
|
|
153
|
+
* Type text size, Reduce Motion / Transparency, Increase Contrast, color
|
|
154
|
+
* filters, layout-debug borders, iOS 26 liquid-glass opacity) over RemoteXPC.
|
|
155
|
+
*/
|
|
156
|
+
export async function startConfigurationService(udid: string): Promise<ConfigurationService> {
|
|
157
|
+
await requireCatalogService(udid, ConfigurationService.RSD_SERVICE_NAME);
|
|
158
|
+
return new ConfigurationService(udid);
|
|
159
|
+
}
|
|
160
|
+
|
|
148
161
|
const RSD_SYSLOG_BINARY_SERVICE_NAME = 'com.apple.os_trace_relay.shim.remote';
|
|
149
162
|
const RSD_SYSLOG_TEXT_SERVICE_NAME = 'com.apple.syslog_relay.shim.remote';
|
|
150
163
|
|