appium-ios-remotexpc 5.15.4 → 5.16.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 +12 -0
- package/build/src/index.d.ts +1 -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/lib/apple-tv/pairing-protocol/pair-verification-protocol.d.ts +4 -1
- package/build/src/lib/apple-tv/pairing-protocol/pair-verification-protocol.d.ts.map +1 -1
- package/build/src/lib/apple-tv/pairing-protocol/pair-verification-protocol.js +11 -3
- package/build/src/lib/apple-tv/pairing-protocol/pair-verification-protocol.js.map +1 -1
- package/build/src/services/ios/accessibility-audit/index.d.ts +47 -3
- package/build/src/services/ios/accessibility-audit/index.d.ts.map +1 -1
- package/build/src/services/ios/accessibility-audit/index.js +116 -4
- package/build/src/services/ios/accessibility-audit/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +1 -0
- package/src/lib/apple-tv/pairing-protocol/pair-verification-protocol.ts +14 -4
- package/src/services/ios/accessibility-audit/index.ts +128 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [5.16.0](https://github.com/appium/appium-ios-remotexpc/compare/v5.15.5...v5.16.0) (2026-08-27)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **accessibility:** support writing and resetting device accessibility settings ([#301](https://github.com/appium/appium-ios-remotexpc/issues/301)) ([8d6a87b](https://github.com/appium/appium-ios-remotexpc/commit/8d6a87b3ce67f0cdbcf134b43a3f2dbf8d5073ba))
|
|
6
|
+
|
|
7
|
+
## [5.15.5](https://github.com/appium/appium-ios-remotexpc/compare/v5.15.4...v5.15.5) (2026-08-26)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **apple-tv:** wrap malformed pair-verify TLV8 responses in PairingError ([#303](https://github.com/appium/appium-ios-remotexpc/issues/303)) ([dfa37d4](https://github.com/appium/appium-ios-remotexpc/commit/dfa37d450231cddbaee30cb7e88a28b06073a62b))
|
|
12
|
+
|
|
1
13
|
## [5.15.4](https://github.com/appium/appium-ios-remotexpc/compare/v5.15.3...v5.15.4) (2026-08-25)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
package/build/src/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export { AX_OBJECT_TYPE, deserializeAxObject } from './services/ios/accessibilit
|
|
|
34
34
|
export { AxPoint } from './services/ios/accessibility-audit/ax-values.js';
|
|
35
35
|
export { serializeAxAttribute, serializeAxElement, toAxElement, toInspectedElement, } from './services/ios/accessibility-audit/ax-element.js';
|
|
36
36
|
export type { AxElement, AxElementAttribute, AxInspectedElement, AxInspectorSection, } from './services/ios/accessibility-audit/ax-element.js';
|
|
37
|
+
export { serializeAxSetting } from './services/ios/accessibility-audit/index.js';
|
|
37
38
|
export type { InspectOptions, RunAuditOptions, AxAuditIssue } from './services/ios/accessibility-audit/index.js';
|
|
38
39
|
export { CoreDeviceInfoService } from './services/ios/device-info/index.js';
|
|
39
40
|
export type { CoreDeviceAttributes, CoreDeviceDisplayInfo, CoreDeviceLockState, } from './services/ios/device-info/index.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
|
@@ -17,6 +17,7 @@ export { AxAuditDtxTransport } from './services/ios/accessibility-audit/dtx-tran
|
|
|
17
17
|
export { AX_OBJECT_TYPE, deserializeAxObject } from './services/ios/accessibility-audit/ax-deserialize.js';
|
|
18
18
|
export { AxPoint } from './services/ios/accessibility-audit/ax-values.js';
|
|
19
19
|
export { serializeAxAttribute, serializeAxElement, toAxElement, toInspectedElement, } from './services/ios/accessibility-audit/ax-element.js';
|
|
20
|
+
export { serializeAxSetting } from './services/ios/accessibility-audit/index.js';
|
|
20
21
|
export { CoreDeviceInfoService } from './services/ios/device-info/index.js';
|
|
21
22
|
export { DeviceControlService } from './services/ios/device-control/index.js';
|
|
22
23
|
export { ConfigurationService } from './services/ios/configuration/index.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;AAS/E,OAAO,EAAC,OAAO,EAAC,MAAM,8BAA8B,CAAC;AAMrD,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,yBAAyB,EAAC,MAAM,6CAA6C,CAAC;AAEtF,OAAO,EAAC,mBAAmB,EAAC,MAAM,qDAAqD,CAAC;AAExF,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,sDAAsD,CAAC;AACzG,OAAO,EAAC,OAAO,EAAC,MAAM,iDAAiD,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,GACnB,MAAM,kDAAkD,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;AAS/E,OAAO,EAAC,OAAO,EAAC,MAAM,8BAA8B,CAAC;AAMrD,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,yBAAyB,EAAC,MAAM,6CAA6C,CAAC;AAEtF,OAAO,EAAC,mBAAmB,EAAC,MAAM,qDAAqD,CAAC;AAExF,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,sDAAsD,CAAC;AACzG,OAAO,EAAC,OAAO,EAAC,MAAM,iDAAiD,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,GACnB,MAAM,kDAAkD,CAAC;AAO1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAE/E,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAM1E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAE5E,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAQ3E,OAAO,EAAC,cAAc,EAAE,qCAAqC,EAAC,MAAM,iCAAiC,CAAC;AAStG,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,uDAAuD,CAAC;AAM9G,OAAO,EAAC,mBAAmB,EAAC,MAAM,uDAAuD,CAAC;AAM1F,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,sDAAsD,CAAC;AAQ3G,OAAO,EAAC,2BAA2B,EAAC,MAAM,gDAAgD,CAAC;AAK3F,OAAO,EAAC,uBAAuB,EAAE,gBAAgB,EAAC,MAAM,iDAAiD,CAAC;AAE1G,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,4CAA4C,CAAC;AAEnF,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,mCAAmC,EACnC,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,gBAAgB,GACjB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAEzG,OAAO,EAAC,kBAAkB,EAAC,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0DAA0D,CAAC;AA8DlE,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"}
|
|
@@ -27,7 +27,9 @@ import type { PairRecord } from '../storage/types.js';
|
|
|
27
27
|
*
|
|
28
28
|
* Security Properties:
|
|
29
29
|
* - Perfect Forward Secrecy: Each session uses unique ephemeral keys
|
|
30
|
-
* -
|
|
30
|
+
* - One-Way Authentication: Only the client proves its identity; the accessory's
|
|
31
|
+
* identity is not verified during Pair-Verify (the accessory's long-term public
|
|
32
|
+
* key is exposed in Pair-Setup M6 but is not currently persisted in the pair record)
|
|
31
33
|
* - Replay Protection: Ephemeral keys prevent replay attacks
|
|
32
34
|
*
|
|
33
35
|
* References:
|
|
@@ -55,6 +57,7 @@ export declare class PairVerificationProtocol {
|
|
|
55
57
|
getSequenceNumber(): number;
|
|
56
58
|
setSequenceNumber(value: number): void;
|
|
57
59
|
private processState2Response;
|
|
60
|
+
private parseTlvOrThrow;
|
|
58
61
|
private computeSharedSecret;
|
|
59
62
|
private derivePairVerifyKey;
|
|
60
63
|
private validateState4Response;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair-verification-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/pairing-protocol/pair-verification-protocol.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAapD
|
|
1
|
+
{"version":3,"file":"pair-verification-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/pairing-protocol/pair-verification-protocol.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAapD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,wBAAwB;IAIvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAH1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,cAAc,CAAa;gBAEN,aAAa,EAAE,sBAAsB;IAI5D,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyBjF,iBAAiB,IAAI,MAAM;IAI3B,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;YAIxB,qBAAqB;IA2BnC,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,mBAAmB;YASb,sBAAsB;IAsBpC,OAAO,CAAC,oBAAoB;YAwBd,UAAU;YAcV,UAAU;IA0CxB,OAAO,CAAC,oBAAoB;CAyB7B"}
|
|
@@ -42,7 +42,7 @@ export class PairVerificationProtocol {
|
|
|
42
42
|
if (!pairingData) {
|
|
43
43
|
throw new PairingError('No pairing data in STATE=2 response', 'STATE_2_NO_DATA');
|
|
44
44
|
}
|
|
45
|
-
const tlvData =
|
|
45
|
+
const tlvData = this.parseTlvOrThrow(Buffer.from(pairingData, 'base64'), 'STATE=2 response');
|
|
46
46
|
if (tlvData[PairingDataComponentType.ERROR]) {
|
|
47
47
|
const errorCode = tlvData[PairingDataComponentType.ERROR];
|
|
48
48
|
const errorDecimal = errorCode[0];
|
|
@@ -53,9 +53,17 @@ export class PairVerificationProtocol {
|
|
|
53
53
|
if (!devicePublicKey) {
|
|
54
54
|
throw new PairingError('No device public key in STATE=2', 'STATE_2_NO_PUBLIC_KEY');
|
|
55
55
|
}
|
|
56
|
-
log.debug(' - STATE=2: Receive devices X25519 public key
|
|
56
|
+
log.debug(' - STATE=2: Receive devices X25519 public key');
|
|
57
57
|
return devicePublicKey;
|
|
58
58
|
}
|
|
59
|
+
parseTlvOrThrow(payload, context) {
|
|
60
|
+
try {
|
|
61
|
+
return decodeTLV8ToDict(payload);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
throw new PairingError(`Failed to parse TLV8 ${context}`, 'TLV8_PARSE_ERROR', error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
59
67
|
computeSharedSecret(privateKey, devicePublicKey) {
|
|
60
68
|
return performX25519DiffieHellman(privateKey, devicePublicKey);
|
|
61
69
|
}
|
|
@@ -73,7 +81,7 @@ export class PairVerificationProtocol {
|
|
|
73
81
|
if (!state4Data) {
|
|
74
82
|
return;
|
|
75
83
|
}
|
|
76
|
-
const state4TLV =
|
|
84
|
+
const state4TLV = this.parseTlvOrThrow(Buffer.from(state4Data, 'base64'), 'STATE=4 response');
|
|
77
85
|
if (state4TLV[PairingDataComponentType.ERROR]) {
|
|
78
86
|
const errorCode = state4TLV[PairingDataComponentType.ERROR];
|
|
79
87
|
const errorDecimal = errorCode[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair-verification-protocol.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/pairing-protocol/pair-verification-protocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,wBAAwB,EAAC,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,IAAI,EACJ,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,GAAG,GAAG,SAAS,CAAC,0BAA0B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pair-verification-protocol.js","sourceRoot":"","sources":["../../../../../src/lib/apple-tv/pairing-protocol/pair-verification-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,13 @@ export declare class AccessibilityAuditService {
|
|
|
50
50
|
private observerCount;
|
|
51
51
|
/** Guards {@link runAudit} against overlapping calls on one instance. */
|
|
52
52
|
private auditInFlight;
|
|
53
|
+
/**
|
|
54
|
+
* Identifier to `SettingTypeValue_v1`, read once per connection.
|
|
55
|
+
*
|
|
56
|
+
* Only a setting's *value* changes; its identity, type and tick marks are
|
|
57
|
+
* fixed for the device, so repeated writes need not re-read the catalogue.
|
|
58
|
+
*/
|
|
59
|
+
private settingTypes;
|
|
53
60
|
private constructor();
|
|
54
61
|
/**
|
|
55
62
|
* Connects to the daemon and completes the DTX handshake.
|
|
@@ -57,7 +64,7 @@ export declare class AccessibilityAuditService {
|
|
|
57
64
|
* @param udid Target device UDID.
|
|
58
65
|
*/
|
|
59
66
|
static start(udid: string): Promise<AccessibilityAuditService>;
|
|
60
|
-
/** The daemon's API version (26 on iOS 27.0). */
|
|
67
|
+
/** The daemon's API version (26 on iOS 26.6 and 27.0). */
|
|
61
68
|
getApiVersion(options?: InvokeOptions): Promise<number>;
|
|
62
69
|
/** The selectors the device's daemon implements. */
|
|
63
70
|
getCapabilities(options?: InvokeOptions): Promise<string[]>;
|
|
@@ -67,6 +74,35 @@ export declare class AccessibilityAuditService {
|
|
|
67
74
|
* The device's accessibility settings and their current values.
|
|
68
75
|
*/
|
|
69
76
|
getAccessibilitySettings(options?: InvokeOptions): Promise<AxDeviceSetting[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Writes one accessibility setting. Applies system-wide, but only while this
|
|
79
|
+
* service is open — closing it reverts the setting.
|
|
80
|
+
*
|
|
81
|
+
* Sliders snap to the device's tick marks (`DYNAMIC_TYPE` has 12, so `0.5`
|
|
82
|
+
* reads back as `0.545`). The device acknowledges a write in a few
|
|
83
|
+
* milliseconds but commits it asynchronously, so back-to-back writes to the
|
|
84
|
+
* same setting are dropped — ~1.5s apart was reliable in testing, and the
|
|
85
|
+
* exact minimum is not published.
|
|
86
|
+
*
|
|
87
|
+
* @param identifier A setting identifier, e.g. `INVERT_COLORS`, `DYNAMIC_TYPE`.
|
|
88
|
+
* @param value `boolean` for a toggle, or a number in 0..1 for a slider.
|
|
89
|
+
* @param options Reply timeout.
|
|
90
|
+
* @throws If the identifier is unknown, or the value is wrong for its type.
|
|
91
|
+
*/
|
|
92
|
+
setAccessibilitySetting(identifier: string, value: boolean | number, options?: InvokeOptions): Promise<void>;
|
|
93
|
+
/** Reads the setting catalogue once and remembers each identifier's type. */
|
|
94
|
+
private loadSettingTypes;
|
|
95
|
+
/**
|
|
96
|
+
* Resets the device's stored accessibility settings to their defaults.
|
|
97
|
+
*
|
|
98
|
+
* **Persistent and destructive** — unlike {@link setAccessibilitySetting} this
|
|
99
|
+
* survives disconnect and discards the user's own choices. Session overrides
|
|
100
|
+
* revert on close by themselves, so this is rarely the right cleanup. It also
|
|
101
|
+
* drops overrides held by other connections.
|
|
102
|
+
*
|
|
103
|
+
* @param options Reply timeout.
|
|
104
|
+
*/
|
|
105
|
+
resetAccessibilitySettings(options?: InvokeOptions): Promise<void>;
|
|
70
106
|
/**
|
|
71
107
|
* Runs the given accessibility audits on whatever the device is currently
|
|
72
108
|
* showing and resolves with the issues found (empty when everything passes).
|
|
@@ -92,7 +128,7 @@ export declare class AccessibilityAuditService {
|
|
|
92
128
|
* `hostInspectorCurrentElementChanged:` call, so that is what this reproduces:
|
|
93
129
|
* arm, ask focus to report, wait for the push, disarm. Captured from a live
|
|
94
130
|
* Inspector session — `deviceFetchElementAtNormalizedDeviceCoordinate:`
|
|
95
|
-
* returns `null` on iOS 27 no matter how it is called.
|
|
131
|
+
* returns `null` on iOS 26.6 and 27.0 no matter how it is called.
|
|
96
132
|
*
|
|
97
133
|
* @param options Timeout, and whether to draw the on-device highlight.
|
|
98
134
|
*/
|
|
@@ -126,7 +162,7 @@ export declare class AccessibilityAuditService {
|
|
|
126
162
|
/**
|
|
127
163
|
* Returns one of the daemon's well-known elements.
|
|
128
164
|
*
|
|
129
|
-
* Index `0` and `1` resolve on iOS 27; higher
|
|
165
|
+
* Index `0` and `1` resolve on iOS 26.6 and 27.0; higher return `undefined`.
|
|
130
166
|
*
|
|
131
167
|
* @param index Which special element to fetch.
|
|
132
168
|
* @param options Reply timeout.
|
|
@@ -168,6 +204,14 @@ export interface RunAuditOptions {
|
|
|
168
204
|
/** Receives the device's own audit log lines as they stream in. */
|
|
169
205
|
onLog?: (line: string) => void;
|
|
170
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Builds the setting descriptor the daemon expects.
|
|
209
|
+
*
|
|
210
|
+
* Only the identifier is read — the device ignores the type, tick-mark and
|
|
211
|
+
* enabled fields, verified by sending deliberately wrong ones — so this sends
|
|
212
|
+
* the identifier alone rather than echoing a descriptor back.
|
|
213
|
+
*/
|
|
214
|
+
export declare function serializeAxSetting(identifier: string): Record<string, unknown>;
|
|
171
215
|
export { AxAuditDtxTransport, AX_OBJECT_TYPE, MessageAux };
|
|
172
216
|
export default AccessibilityAuditService;
|
|
173
217
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAKxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,mBAAmB,EAAE,KAAK,aAAa,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAKxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,mBAAmB,EAAE,KAAK,aAAa,EAAC,MAAM,oBAAoB,CAAC;AA8C3E;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,yBAAyB;IAiBhB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAhB9C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oEAAwC;IAExE,0FAA0F;IAC1F,OAAO,CAAC,aAAa,CAAK;IAE1B,yEAAyE;IACzE,OAAO,CAAC,aAAa,CAAS;IAE9B;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAA8C;IAElE,OAAO;IAEP;;;;OAIG;WACU,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAIpE,0DAA0D;IACpD,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7D,oDAAoD;IAC9C,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjE,oEAAoE;IAC9D,sBAAsB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOxE;;OAEG;IACG,wBAAwB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQnF;;;;;;;;;;;;;;OAcG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlH,6EAA6E;YAC/D,gBAAgB;IAQ9B;;;;;;;;;OASG;IACG,0BAA0B,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;;;;;;;;;;;;;;OAeG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAgD5F;;;;;;;;;;;OAWG;IACG,iBAAiB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4BlF;;;;;;;;;;OAUG;IACH,qBAAqB,CACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,EAC/C,OAAO,GAAE;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAM,GACpC,MAAM,IAAI;IA2Bb;;;;;;;;;;OAUG;IACG,wBAAwB,CAC5B,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,kBAAkB,EAC7B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;;;;OAOG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAO/F,qDAAqD;IACrD,OAAO,CAAC,qBAAqB;IAM7B,8EAA8E;IAC9E,OAAO,CAAC,cAAc;IAMtB,wCAAwC;IACxC,KAAK,IAAI,IAAI;CAGd;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AA4BD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ9E;AAsBD,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAE,UAAU,EAAC,CAAC;AACzD,eAAe,yBAAyB,CAAC"}
|
|
@@ -5,6 +5,39 @@ import { AX_OBJECT_TYPE, deserializeAxObject } from './ax-deserialize.js';
|
|
|
5
5
|
import { serializeAxAttribute, serializeAxElement, toAxElement, toInspectedElement, } from './ax-element.js';
|
|
6
6
|
import { AxAuditDtxTransport } from './dtx-transport.js';
|
|
7
7
|
const log = getLogger('AccessibilityAudit');
|
|
8
|
+
/** `SettingTypeValue_v1` for a slider setting, e.g. `DYNAMIC_TYPE`. */
|
|
9
|
+
const SETTING_TYPE_SLIDER = 2;
|
|
10
|
+
/** `SettingTypeValue_v1` for an on/off toggle — every setting bar the slider. */
|
|
11
|
+
const SETTING_TYPE_TOGGLE = 3;
|
|
12
|
+
/**
|
|
13
|
+
* What each setting type accepts, keyed by `SettingTypeValue_v1`.
|
|
14
|
+
*
|
|
15
|
+
* The device discovers its own catalogue at runtime, so the rules are keyed by
|
|
16
|
+
* type rather than by setting: supporting a new type is one entry here, and an
|
|
17
|
+
* unrecognised type has no entry and is refused.
|
|
18
|
+
*/
|
|
19
|
+
const SETTING_VALIDATORS = new Map([
|
|
20
|
+
[
|
|
21
|
+
SETTING_TYPE_SLIDER,
|
|
22
|
+
(value, identifier) => {
|
|
23
|
+
// The device clamps out-of-range input to 1 — including negatives — so a
|
|
24
|
+
// typo would silently max the setting out rather than fail.
|
|
25
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value < 0 || value > 1) {
|
|
26
|
+
throw new Error(`Setting "${identifier}" is a slider and expects a number between 0 and 1, got ${JSON.stringify(value)}`);
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
[
|
|
31
|
+
SETTING_TYPE_TOGGLE,
|
|
32
|
+
(value, identifier) => {
|
|
33
|
+
// A toggle takes any truthy value on the wire (0.5 reads back as true),
|
|
34
|
+
// which is too loose to be useful in a typed API.
|
|
35
|
+
if (typeof value !== 'boolean') {
|
|
36
|
+
throw new Error(`Setting "${identifier}" is a toggle and expects a boolean, got ${JSON.stringify(value)}`);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
]);
|
|
8
41
|
/** `deviceInspectorSetMonitoredEventType:` value that reports focus changes. */
|
|
9
42
|
const MONITORED_EVENT_FOCUS = 2;
|
|
10
43
|
/** Value that disarms monitoring. */
|
|
@@ -36,6 +69,13 @@ export class AccessibilityAuditService {
|
|
|
36
69
|
observerCount = 0;
|
|
37
70
|
/** Guards {@link runAudit} against overlapping calls on one instance. */
|
|
38
71
|
auditInFlight = false;
|
|
72
|
+
/**
|
|
73
|
+
* Identifier to `SettingTypeValue_v1`, read once per connection.
|
|
74
|
+
*
|
|
75
|
+
* Only a setting's *value* changes; its identity, type and tick marks are
|
|
76
|
+
* fixed for the device, so repeated writes need not re-read the catalogue.
|
|
77
|
+
*/
|
|
78
|
+
settingTypes;
|
|
39
79
|
constructor(transport) {
|
|
40
80
|
this.transport = transport;
|
|
41
81
|
}
|
|
@@ -47,7 +87,7 @@ export class AccessibilityAuditService {
|
|
|
47
87
|
static async start(udid) {
|
|
48
88
|
return new AccessibilityAuditService(await AxAuditDtxTransport.connect(udid));
|
|
49
89
|
}
|
|
50
|
-
/** The daemon's API version (26 on iOS 27.0). */
|
|
90
|
+
/** The daemon's API version (26 on iOS 26.6 and 27.0). */
|
|
51
91
|
async getApiVersion(options) {
|
|
52
92
|
const value = await this.transport.invoke('deviceApiVersion', null, options);
|
|
53
93
|
if (typeof value !== 'number') {
|
|
@@ -73,6 +113,62 @@ export class AccessibilityAuditService {
|
|
|
73
113
|
}
|
|
74
114
|
return raw.map(toDeviceSetting);
|
|
75
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Writes one accessibility setting. Applies system-wide, but only while this
|
|
118
|
+
* service is open — closing it reverts the setting.
|
|
119
|
+
*
|
|
120
|
+
* Sliders snap to the device's tick marks (`DYNAMIC_TYPE` has 12, so `0.5`
|
|
121
|
+
* reads back as `0.545`). The device acknowledges a write in a few
|
|
122
|
+
* milliseconds but commits it asynchronously, so back-to-back writes to the
|
|
123
|
+
* same setting are dropped — ~1.5s apart was reliable in testing, and the
|
|
124
|
+
* exact minimum is not published.
|
|
125
|
+
*
|
|
126
|
+
* @param identifier A setting identifier, e.g. `INVERT_COLORS`, `DYNAMIC_TYPE`.
|
|
127
|
+
* @param value `boolean` for a toggle, or a number in 0..1 for a slider.
|
|
128
|
+
* @param options Reply timeout.
|
|
129
|
+
* @throws If the identifier is unknown, or the value is wrong for its type.
|
|
130
|
+
*/
|
|
131
|
+
async setAccessibilitySetting(identifier, value, options) {
|
|
132
|
+
const schema = await this.loadSettingTypes(options);
|
|
133
|
+
if (!schema.has(identifier)) {
|
|
134
|
+
throw new Error(`Unknown accessibility setting "${identifier}"; the device supports: ${[...schema.keys()].join(', ')}`);
|
|
135
|
+
}
|
|
136
|
+
const settingType = schema.get(identifier);
|
|
137
|
+
const validate = settingType === undefined ? undefined : SETTING_VALIDATORS.get(settingType);
|
|
138
|
+
if (!validate) {
|
|
139
|
+
// Only slider and toggle have been observed (iOS 26.6 and 27.0); refuse
|
|
140
|
+
// rather than guess at the value another type expects.
|
|
141
|
+
throw new Error(`Setting "${identifier}" has unsupported type ${JSON.stringify(settingType)}`);
|
|
142
|
+
}
|
|
143
|
+
validate(value, identifier);
|
|
144
|
+
const aux = new MessageAux();
|
|
145
|
+
aux.appendObj(serializeAxSetting(identifier));
|
|
146
|
+
aux.appendObj({ ObjectType: 'passthrough', Value: value });
|
|
147
|
+
// The daemon answers (with null), so awaiting it confirms the write landed
|
|
148
|
+
// before a caller screenshots or re-audits.
|
|
149
|
+
await this.transport.invoke('deviceUpdateAccessibilitySetting:withValue:', aux, options);
|
|
150
|
+
}
|
|
151
|
+
/** Reads the setting catalogue once and remembers each identifier's type. */
|
|
152
|
+
async loadSettingTypes(options) {
|
|
153
|
+
if (!this.settingTypes) {
|
|
154
|
+
const settings = await this.getAccessibilitySettings(options);
|
|
155
|
+
this.settingTypes = new Map(settings.map((entry) => [entry.identifier, entry.settingType]));
|
|
156
|
+
}
|
|
157
|
+
return this.settingTypes;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Resets the device's stored accessibility settings to their defaults.
|
|
161
|
+
*
|
|
162
|
+
* **Persistent and destructive** — unlike {@link setAccessibilitySetting} this
|
|
163
|
+
* survives disconnect and discards the user's own choices. Session overrides
|
|
164
|
+
* revert on close by themselves, so this is rarely the right cleanup. It also
|
|
165
|
+
* drops overrides held by other connections.
|
|
166
|
+
*
|
|
167
|
+
* @param options Reply timeout.
|
|
168
|
+
*/
|
|
169
|
+
async resetAccessibilitySettings(options) {
|
|
170
|
+
await this.transport.invoke('deviceResetToDefaultAccessibilitySettings', null, options);
|
|
171
|
+
}
|
|
76
172
|
/**
|
|
77
173
|
* Runs the given accessibility audits on whatever the device is currently
|
|
78
174
|
* showing and resolves with the issues found (empty when everything passes).
|
|
@@ -141,7 +237,7 @@ export class AccessibilityAuditService {
|
|
|
141
237
|
* `hostInspectorCurrentElementChanged:` call, so that is what this reproduces:
|
|
142
238
|
* arm, ask focus to report, wait for the push, disarm. Captured from a live
|
|
143
239
|
* Inspector session — `deviceFetchElementAtNormalizedDeviceCoordinate:`
|
|
144
|
-
* returns `null` on iOS 27 no matter how it is called.
|
|
240
|
+
* returns `null` on iOS 26.6 and 27.0 no matter how it is called.
|
|
145
241
|
*
|
|
146
242
|
* @param options Timeout, and whether to draw the on-device highlight.
|
|
147
243
|
*/
|
|
@@ -230,7 +326,7 @@ export class AccessibilityAuditService {
|
|
|
230
326
|
/**
|
|
231
327
|
* Returns one of the daemon's well-known elements.
|
|
232
328
|
*
|
|
233
|
-
* Index `0` and `1` resolve on iOS 27; higher
|
|
329
|
+
* Index `0` and `1` resolve on iOS 26.6 and 27.0; higher return `undefined`.
|
|
234
330
|
*
|
|
235
331
|
* @param index Which special element to fetch.
|
|
236
332
|
* @param options Reply timeout.
|
|
@@ -282,9 +378,25 @@ function asStringArray(value, selector) {
|
|
|
282
378
|
}
|
|
283
379
|
return value;
|
|
284
380
|
}
|
|
381
|
+
/**
|
|
382
|
+
* Builds the setting descriptor the daemon expects.
|
|
383
|
+
*
|
|
384
|
+
* Only the identifier is read — the device ignores the type, tick-mark and
|
|
385
|
+
* enabled fields, verified by sending deliberately wrong ones — so this sends
|
|
386
|
+
* the identifier alone rather than echoing a descriptor back.
|
|
387
|
+
*/
|
|
388
|
+
export function serializeAxSetting(identifier) {
|
|
389
|
+
return {
|
|
390
|
+
ObjectType: 'AXAuditDeviceSetting_v1',
|
|
391
|
+
Value: {
|
|
392
|
+
ObjectType: 'passthrough',
|
|
393
|
+
Value: { IdentiifierValue_v1: { ObjectType: 'passthrough', Value: identifier } },
|
|
394
|
+
},
|
|
395
|
+
};
|
|
396
|
+
}
|
|
285
397
|
/** Maps one deserialized `AXAuditDeviceSetting_v1` to the cleaned shape. */
|
|
286
398
|
function toDeviceSetting(raw) {
|
|
287
|
-
if (
|
|
399
|
+
if (!util.isPlainObject(raw)) {
|
|
288
400
|
throw new Error(`Malformed accessibility setting: ${JSON.stringify(raw)?.slice(0, 120)}`);
|
|
289
401
|
}
|
|
290
402
|
const fields = raw;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/ios/accessibility-audit/index.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.16.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"bugs": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"test:afc": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/afc.spec.js\"",
|
|
47
47
|
"test:all": "node --enable-source-maps --experimental-test-module-mocks --test --test-timeout=60000 \"build/test/unit/**/*.spec.js\" \"build/test/integration/**/*.spec.js\"",
|
|
48
48
|
"test:app-service": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/app-service.spec.js\"",
|
|
49
|
-
"test:accessibility-audit": "node --enable-source-maps --test --test-timeout=
|
|
49
|
+
"test:accessibility-audit": "node --enable-source-maps --test --test-timeout=300000 \"build/test/integration/accessibility-audit.spec.js\"",
|
|
50
50
|
"test:coredevice-device-info": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/device-info-coredevice.spec.js\"",
|
|
51
51
|
"test:device-control": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/device-control.spec.js\"",
|
|
52
52
|
"test:configuration": "node --enable-source-maps --test --test-timeout=60000 \"build/test/integration/configuration.spec.js\"",
|
package/src/index.ts
CHANGED
|
@@ -77,6 +77,7 @@ export type {
|
|
|
77
77
|
AxInspectedElement,
|
|
78
78
|
AxInspectorSection,
|
|
79
79
|
} from './services/ios/accessibility-audit/ax-element.js';
|
|
80
|
+
export {serializeAxSetting} from './services/ios/accessibility-audit/index.js';
|
|
80
81
|
export type {InspectOptions, RunAuditOptions, AxAuditIssue} from './services/ios/accessibility-audit/index.js';
|
|
81
82
|
export {CoreDeviceInfoService} from './services/ios/device-info/index.js';
|
|
82
83
|
export type {
|
|
@@ -52,7 +52,9 @@ const log = getLogger('PairVerificationProtocol');
|
|
|
52
52
|
*
|
|
53
53
|
* Security Properties:
|
|
54
54
|
* - Perfect Forward Secrecy: Each session uses unique ephemeral keys
|
|
55
|
-
* -
|
|
55
|
+
* - One-Way Authentication: Only the client proves its identity; the accessory's
|
|
56
|
+
* identity is not verified during Pair-Verify (the accessory's long-term public
|
|
57
|
+
* key is exposed in Pair-Setup M6 but is not currently persisted in the pair record)
|
|
56
58
|
* - Replay Protection: Ephemeral keys prevent replay attacks
|
|
57
59
|
*
|
|
58
60
|
* References:
|
|
@@ -122,7 +124,7 @@ export class PairVerificationProtocol {
|
|
|
122
124
|
throw new PairingError('No pairing data in STATE=2 response', 'STATE_2_NO_DATA');
|
|
123
125
|
}
|
|
124
126
|
|
|
125
|
-
const tlvData =
|
|
127
|
+
const tlvData = this.parseTlvOrThrow(Buffer.from(pairingData, 'base64'), 'STATE=2 response');
|
|
126
128
|
|
|
127
129
|
if (tlvData[PairingDataComponentType.ERROR]) {
|
|
128
130
|
const errorCode = tlvData[PairingDataComponentType.ERROR] as Buffer;
|
|
@@ -136,11 +138,19 @@ export class PairVerificationProtocol {
|
|
|
136
138
|
throw new PairingError('No device public key in STATE=2', 'STATE_2_NO_PUBLIC_KEY');
|
|
137
139
|
}
|
|
138
140
|
|
|
139
|
-
log.debug(' - STATE=2: Receive devices X25519 public key
|
|
141
|
+
log.debug(' - STATE=2: Receive devices X25519 public key');
|
|
140
142
|
|
|
141
143
|
return devicePublicKey;
|
|
142
144
|
}
|
|
143
145
|
|
|
146
|
+
private parseTlvOrThrow(payload: Buffer, context: string): Record<number, Buffer> {
|
|
147
|
+
try {
|
|
148
|
+
return decodeTLV8ToDict(payload);
|
|
149
|
+
} catch (error) {
|
|
150
|
+
throw new PairingError(`Failed to parse TLV8 ${context}`, 'TLV8_PARSE_ERROR', error);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
144
154
|
private computeSharedSecret(privateKey: KeyObject, devicePublicKey: Buffer): Buffer {
|
|
145
155
|
return performX25519DiffieHellman(privateKey, devicePublicKey);
|
|
146
156
|
}
|
|
@@ -162,7 +172,7 @@ export class PairVerificationProtocol {
|
|
|
162
172
|
return;
|
|
163
173
|
}
|
|
164
174
|
|
|
165
|
-
const state4TLV =
|
|
175
|
+
const state4TLV = this.parseTlvOrThrow(Buffer.from(state4Data, 'base64'), 'STATE=4 response');
|
|
166
176
|
|
|
167
177
|
if (state4TLV[PairingDataComponentType.ERROR]) {
|
|
168
178
|
const errorCode = state4TLV[PairingDataComponentType.ERROR] as Buffer;
|
|
@@ -16,6 +16,43 @@ import {AxAuditDtxTransport, type InvokeOptions} from './dtx-transport.js';
|
|
|
16
16
|
|
|
17
17
|
const log = getLogger('AccessibilityAudit');
|
|
18
18
|
|
|
19
|
+
/** `SettingTypeValue_v1` for a slider setting, e.g. `DYNAMIC_TYPE`. */
|
|
20
|
+
const SETTING_TYPE_SLIDER = 2;
|
|
21
|
+
/** `SettingTypeValue_v1` for an on/off toggle — every setting bar the slider. */
|
|
22
|
+
const SETTING_TYPE_TOGGLE = 3;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* What each setting type accepts, keyed by `SettingTypeValue_v1`.
|
|
26
|
+
*
|
|
27
|
+
* The device discovers its own catalogue at runtime, so the rules are keyed by
|
|
28
|
+
* type rather than by setting: supporting a new type is one entry here, and an
|
|
29
|
+
* unrecognised type has no entry and is refused.
|
|
30
|
+
*/
|
|
31
|
+
const SETTING_VALIDATORS = new Map<number, (value: boolean | number, identifier: string) => void>([
|
|
32
|
+
[
|
|
33
|
+
SETTING_TYPE_SLIDER,
|
|
34
|
+
(value, identifier) => {
|
|
35
|
+
// The device clamps out-of-range input to 1 — including negatives — so a
|
|
36
|
+
// typo would silently max the setting out rather than fail.
|
|
37
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value < 0 || value > 1) {
|
|
38
|
+
throw new Error(
|
|
39
|
+
`Setting "${identifier}" is a slider and expects a number between 0 and 1, got ${JSON.stringify(value)}`,
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
[
|
|
45
|
+
SETTING_TYPE_TOGGLE,
|
|
46
|
+
(value, identifier) => {
|
|
47
|
+
// A toggle takes any truthy value on the wire (0.5 reads back as true),
|
|
48
|
+
// which is too loose to be useful in a typed API.
|
|
49
|
+
if (typeof value !== 'boolean') {
|
|
50
|
+
throw new Error(`Setting "${identifier}" is a toggle and expects a boolean, got ${JSON.stringify(value)}`);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
]);
|
|
55
|
+
|
|
19
56
|
/** `deviceInspectorSetMonitoredEventType:` value that reports focus changes. */
|
|
20
57
|
const MONITORED_EVENT_FOCUS = 2;
|
|
21
58
|
/** Value that disarms monitoring. */
|
|
@@ -72,6 +109,14 @@ export class AccessibilityAuditService {
|
|
|
72
109
|
/** Guards {@link runAudit} against overlapping calls on one instance. */
|
|
73
110
|
private auditInFlight = false;
|
|
74
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Identifier to `SettingTypeValue_v1`, read once per connection.
|
|
114
|
+
*
|
|
115
|
+
* Only a setting's *value* changes; its identity, type and tick marks are
|
|
116
|
+
* fixed for the device, so repeated writes need not re-read the catalogue.
|
|
117
|
+
*/
|
|
118
|
+
private settingTypes: Map<string, number | undefined> | undefined;
|
|
119
|
+
|
|
75
120
|
private constructor(private readonly transport: AxAuditDtxTransport) {}
|
|
76
121
|
|
|
77
122
|
/**
|
|
@@ -83,7 +128,7 @@ export class AccessibilityAuditService {
|
|
|
83
128
|
return new AccessibilityAuditService(await AxAuditDtxTransport.connect(udid));
|
|
84
129
|
}
|
|
85
130
|
|
|
86
|
-
/** The daemon's API version (26 on iOS 27.0). */
|
|
131
|
+
/** The daemon's API version (26 on iOS 26.6 and 27.0). */
|
|
87
132
|
async getApiVersion(options?: InvokeOptions): Promise<number> {
|
|
88
133
|
const value = await this.transport.invoke('deviceApiVersion', null, options);
|
|
89
134
|
if (typeof value !== 'number') {
|
|
@@ -116,6 +161,68 @@ export class AccessibilityAuditService {
|
|
|
116
161
|
return raw.map(toDeviceSetting);
|
|
117
162
|
}
|
|
118
163
|
|
|
164
|
+
/**
|
|
165
|
+
* Writes one accessibility setting. Applies system-wide, but only while this
|
|
166
|
+
* service is open — closing it reverts the setting.
|
|
167
|
+
*
|
|
168
|
+
* Sliders snap to the device's tick marks (`DYNAMIC_TYPE` has 12, so `0.5`
|
|
169
|
+
* reads back as `0.545`). The device acknowledges a write in a few
|
|
170
|
+
* milliseconds but commits it asynchronously, so back-to-back writes to the
|
|
171
|
+
* same setting are dropped — ~1.5s apart was reliable in testing, and the
|
|
172
|
+
* exact minimum is not published.
|
|
173
|
+
*
|
|
174
|
+
* @param identifier A setting identifier, e.g. `INVERT_COLORS`, `DYNAMIC_TYPE`.
|
|
175
|
+
* @param value `boolean` for a toggle, or a number in 0..1 for a slider.
|
|
176
|
+
* @param options Reply timeout.
|
|
177
|
+
* @throws If the identifier is unknown, or the value is wrong for its type.
|
|
178
|
+
*/
|
|
179
|
+
async setAccessibilitySetting(identifier: string, value: boolean | number, options?: InvokeOptions): Promise<void> {
|
|
180
|
+
const schema = await this.loadSettingTypes(options);
|
|
181
|
+
if (!schema.has(identifier)) {
|
|
182
|
+
throw new Error(
|
|
183
|
+
`Unknown accessibility setting "${identifier}"; the device supports: ${[...schema.keys()].join(', ')}`,
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
const settingType = schema.get(identifier);
|
|
187
|
+
const validate = settingType === undefined ? undefined : SETTING_VALIDATORS.get(settingType);
|
|
188
|
+
if (!validate) {
|
|
189
|
+
// Only slider and toggle have been observed (iOS 26.6 and 27.0); refuse
|
|
190
|
+
// rather than guess at the value another type expects.
|
|
191
|
+
throw new Error(`Setting "${identifier}" has unsupported type ${JSON.stringify(settingType)}`);
|
|
192
|
+
}
|
|
193
|
+
validate(value, identifier);
|
|
194
|
+
|
|
195
|
+
const aux = new MessageAux();
|
|
196
|
+
aux.appendObj(serializeAxSetting(identifier));
|
|
197
|
+
aux.appendObj({ObjectType: 'passthrough', Value: value});
|
|
198
|
+
// The daemon answers (with null), so awaiting it confirms the write landed
|
|
199
|
+
// before a caller screenshots or re-audits.
|
|
200
|
+
await this.transport.invoke('deviceUpdateAccessibilitySetting:withValue:', aux, options);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/** Reads the setting catalogue once and remembers each identifier's type. */
|
|
204
|
+
private async loadSettingTypes(options?: InvokeOptions): Promise<Map<string, number | undefined>> {
|
|
205
|
+
if (!this.settingTypes) {
|
|
206
|
+
const settings = await this.getAccessibilitySettings(options);
|
|
207
|
+
this.settingTypes = new Map(settings.map((entry) => [entry.identifier, entry.settingType]));
|
|
208
|
+
}
|
|
209
|
+
return this.settingTypes;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Resets the device's stored accessibility settings to their defaults.
|
|
214
|
+
*
|
|
215
|
+
* **Persistent and destructive** — unlike {@link setAccessibilitySetting} this
|
|
216
|
+
* survives disconnect and discards the user's own choices. Session overrides
|
|
217
|
+
* revert on close by themselves, so this is rarely the right cleanup. It also
|
|
218
|
+
* drops overrides held by other connections.
|
|
219
|
+
*
|
|
220
|
+
* @param options Reply timeout.
|
|
221
|
+
*/
|
|
222
|
+
async resetAccessibilitySettings(options?: InvokeOptions): Promise<void> {
|
|
223
|
+
await this.transport.invoke('deviceResetToDefaultAccessibilitySettings', null, options);
|
|
224
|
+
}
|
|
225
|
+
|
|
119
226
|
/**
|
|
120
227
|
* Runs the given accessibility audits on whatever the device is currently
|
|
121
228
|
* showing and resolves with the issues found (empty when everything passes).
|
|
@@ -188,7 +295,7 @@ export class AccessibilityAuditService {
|
|
|
188
295
|
* `hostInspectorCurrentElementChanged:` call, so that is what this reproduces:
|
|
189
296
|
* arm, ask focus to report, wait for the push, disarm. Captured from a live
|
|
190
297
|
* Inspector session — `deviceFetchElementAtNormalizedDeviceCoordinate:`
|
|
191
|
-
* returns `null` on iOS 27 no matter how it is called.
|
|
298
|
+
* returns `null` on iOS 26.6 and 27.0 no matter how it is called.
|
|
192
299
|
*
|
|
193
300
|
* @param options Timeout, and whether to draw the on-device highlight.
|
|
194
301
|
*/
|
|
@@ -286,7 +393,7 @@ export class AccessibilityAuditService {
|
|
|
286
393
|
/**
|
|
287
394
|
* Returns one of the daemon's well-known elements.
|
|
288
395
|
*
|
|
289
|
-
* Index `0` and `1` resolve on iOS 27; higher
|
|
396
|
+
* Index `0` and `1` resolve on iOS 26.6 and 27.0; higher return `undefined`.
|
|
290
397
|
*
|
|
291
398
|
* @param index Which special element to fetch.
|
|
292
399
|
* @param options Reply timeout.
|
|
@@ -376,9 +483,26 @@ function asStringArray(value: unknown, selector: string): string[] {
|
|
|
376
483
|
return value as string[];
|
|
377
484
|
}
|
|
378
485
|
|
|
486
|
+
/**
|
|
487
|
+
* Builds the setting descriptor the daemon expects.
|
|
488
|
+
*
|
|
489
|
+
* Only the identifier is read — the device ignores the type, tick-mark and
|
|
490
|
+
* enabled fields, verified by sending deliberately wrong ones — so this sends
|
|
491
|
+
* the identifier alone rather than echoing a descriptor back.
|
|
492
|
+
*/
|
|
493
|
+
export function serializeAxSetting(identifier: string): Record<string, unknown> {
|
|
494
|
+
return {
|
|
495
|
+
ObjectType: 'AXAuditDeviceSetting_v1',
|
|
496
|
+
Value: {
|
|
497
|
+
ObjectType: 'passthrough',
|
|
498
|
+
Value: {IdentiifierValue_v1: {ObjectType: 'passthrough', Value: identifier}},
|
|
499
|
+
},
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
|
|
379
503
|
/** Maps one deserialized `AXAuditDeviceSetting_v1` to the cleaned shape. */
|
|
380
504
|
function toDeviceSetting(raw: unknown): AxDeviceSetting {
|
|
381
|
-
if (
|
|
505
|
+
if (!util.isPlainObject(raw)) {
|
|
382
506
|
throw new Error(`Malformed accessibility setting: ${JSON.stringify(raw)?.slice(0, 120)}`);
|
|
383
507
|
}
|
|
384
508
|
const fields = raw as Record<string, unknown>;
|