appium-ios-remotexpc 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/src/index.d.ts +1 -0
  3. package/build/src/index.d.ts.map +1 -1
  4. package/build/src/index.js +1 -0
  5. package/build/src/index.js.map +1 -1
  6. package/build/src/lib/remote-xpc/http2-frame-parser.d.ts +23 -0
  7. package/build/src/lib/remote-xpc/http2-frame-parser.d.ts.map +1 -0
  8. package/build/src/lib/remote-xpc/http2-frame-parser.js +70 -0
  9. package/build/src/lib/remote-xpc/http2-frame-parser.js.map +1 -0
  10. package/build/src/lib/remote-xpc/remote-xpc-connection.d.ts +3 -9
  11. package/build/src/lib/remote-xpc/remote-xpc-connection.d.ts.map +1 -1
  12. package/build/src/lib/remote-xpc/remote-xpc-connection.js +28 -99
  13. package/build/src/lib/remote-xpc/remote-xpc-connection.js.map +1 -1
  14. package/build/src/lib/remote-xpc/service-catalog.d.ts +25 -0
  15. package/build/src/lib/remote-xpc/service-catalog.d.ts.map +1 -0
  16. package/build/src/lib/remote-xpc/service-catalog.js +62 -0
  17. package/build/src/lib/remote-xpc/service-catalog.js.map +1 -0
  18. package/build/src/lib/remote-xpc/xpc-protocol.d.ts +11 -1
  19. package/build/src/lib/remote-xpc/xpc-protocol.d.ts.map +1 -1
  20. package/build/src/lib/remote-xpc/xpc-protocol.js +42 -6
  21. package/build/src/lib/remote-xpc/xpc-protocol.js.map +1 -1
  22. package/build/src/services/ios/afc/codec.d.ts +6 -0
  23. package/build/src/services/ios/afc/codec.d.ts.map +1 -1
  24. package/build/src/services/ios/afc/codec.js +29 -2
  25. package/build/src/services/ios/afc/codec.js.map +1 -1
  26. package/build/src/services/ios/afc/errors.d.ts +7 -0
  27. package/build/src/services/ios/afc/errors.d.ts.map +1 -0
  28. package/build/src/services/ios/afc/errors.js +10 -0
  29. package/build/src/services/ios/afc/errors.js.map +1 -0
  30. package/build/src/services/ios/afc/index.d.ts +5 -0
  31. package/build/src/services/ios/afc/index.d.ts.map +1 -1
  32. package/build/src/services/ios/afc/index.js +49 -6
  33. package/build/src/services/ios/afc/index.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/index.ts +1 -0
  36. package/src/lib/remote-xpc/http2-frame-parser.ts +100 -0
  37. package/src/lib/remote-xpc/remote-xpc-connection.ts +46 -140
  38. package/src/lib/remote-xpc/service-catalog.ts +85 -0
  39. package/src/lib/remote-xpc/xpc-protocol.ts +52 -7
  40. package/src/services/ios/afc/codec.ts +37 -2
  41. package/src/services/ios/afc/errors.ts +9 -0
  42. package/src/services/ios/afc/index.ts +50 -5
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [2.0.2](https://github.com/appium/appium-ios-remotexpc/compare/v2.0.1...v2.0.2) (2026-05-21)
2
+
3
+ ### Bug Fixes
4
+
5
+ * AFC connection desync ([#219](https://github.com/appium/appium-ios-remotexpc/issues/219)) ([ce32050](https://github.com/appium/appium-ios-remotexpc/commit/ce32050b5691f7f010105a98a273e60107c16cb8))
6
+
7
+ ## [2.0.1](https://github.com/appium/appium-ios-remotexpc/compare/v2.0.0...v2.0.1) (2026-05-21)
8
+
9
+ ### Bug Fixes
10
+
11
+ * Partial XPC services discovery ([#218](https://github.com/appium/appium-ios-remotexpc/issues/218)) ([d173b70](https://github.com/appium/appium-ios-remotexpc/commit/d173b7029fc51c32c2941bcdf9886b9310cc4eef))
12
+
1
13
  ## [2.0.0](https://github.com/appium/appium-ios-remotexpc/compare/v1.1.13...v2.0.0) (2026-05-21)
2
14
 
3
15
  ### ⚠ BREAKING CHANGES
@@ -10,6 +10,7 @@ export type { Device as UsbmuxDevice } from './lib/usbmux/index.js';
10
10
  export type { DevicePortForwarderEvents, DevicePortForwarderOptions, UpstreamSocketConnector, } from './lib/port-forwarding/index.js';
11
11
  export type { RemoteXpcConnection } from './lib/remote-xpc/remote-xpc-connection.js';
12
12
  export type { AfcService } from './services/ios/afc/index.js';
13
+ export { AfcConnectionError } from './services/ios/afc/errors.js';
13
14
  export type { InstallationProxyService } from './services/ios/installation-proxy/index.js';
14
15
  export type { SyslogEntry, SyslogLabel, SyslogLogLevel, } from './services/ios/syslog-service/syslog-entry-parser.js';
15
16
  export type { CrashReportsService, CrashReportsPullOptions, DiagnosticsService, MobileImageMounterService, NotificationProxyService, MobileConfigService, PowerAssertionService, PowerAssertionOptions, SpringboardService, WebInspectorService, MisagentService, SyslogService, HouseArrestService, DVTSecureSocketProxyService, LocationSimulationService, ConditionInducerService, ScreenshotService, GraphicsService, DeviceInfoService, NetworkMonitorService, ProcessInfo, ConditionProfile, ConditionGroup, SocketInfo, TunnelResult, TunnelRegistry, TunnelRegistryEntry, DVTInstruments, NetworkAddress, InterfaceDetectionEvent, ConnectionDetectionEvent, ConnectionUpdateEvent, NetworkEvent, ProcessControlService, ProcessLaunchOptions, OutputReceivedEvent, SendMessageOptions, TestmanagerdService, XCTestServices, } from './lib/types.js';
@@ -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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"}
@@ -6,6 +6,7 @@ import { TunnelRegistryServer, startTunnelRegistryServer, } from './lib/tunnel/t
6
6
  import { Usbmux, createUsbmux } from './lib/usbmux/index.js';
7
7
  import * as Services from './services.js';
8
8
  import { startCoreDeviceProxy } from './services/ios/tunnel-service/index.js';
9
+ export { AfcConnectionError } from './services/ios/afc/errors.js';
9
10
  export { PowerAssertionType } from './lib/types.js';
10
11
  export { NetworkMessageType } from './services/ios/dvt/instruments/network-monitor.js';
11
12
  export { TunnelAvailabilityError, getTunnelForDevice, withRemoteXpcConnection, } from './services.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AA0D9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,SAAS,GACV,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,8CAA8C,CAAC;AAWtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAItE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAU9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAiDlE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,SAAS,GACV,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,aAAa,GACd,MAAM,8CAA8C,CAAC;AAWtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAItE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,CAAC"}
@@ -0,0 +1,23 @@
1
+ export interface ParsedDataFrame {
2
+ readonly streamId: number;
3
+ readonly data: Buffer;
4
+ readonly bodyLen: number;
5
+ }
6
+ export type ParsedFrame = {
7
+ readonly type: 'data';
8
+ readonly frame: ParsedDataFrame;
9
+ } | {
10
+ readonly type: 'other';
11
+ };
12
+ /**
13
+ * Incrementally parse HTTP/2 frames from a byte stream (RFC 7540).
14
+ */
15
+ export declare class Http2FrameParser {
16
+ private buffer;
17
+ append(chunk: Buffer): ParsedFrame[];
18
+ }
19
+ /**
20
+ * Emit WINDOW_UPDATE frames for even-numbered streams, matching `remoted` behavior.
21
+ */
22
+ export declare function buildWindowUpdateFrames(streamId: number, increment: number): Buffer[];
23
+ //# sourceMappingURL=http2-frame-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http2-frame-parser.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/http2-frame-parser.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/B;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA2B;IAEzC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;CAmBrC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAQV"}
@@ -0,0 +1,70 @@
1
+ import { InvalidDataError, WindowUpdateFrame } from './handshake-frames.js';
2
+ const FRAME_HEADER_SIZE = 9;
3
+ const FRAME_TYPE_DATA = 0x00;
4
+ const FLAG_PADDED = 0x08;
5
+ /**
6
+ * Incrementally parse HTTP/2 frames from a byte stream (RFC 7540).
7
+ */
8
+ export class Http2FrameParser {
9
+ buffer = Buffer.alloc(0);
10
+ append(chunk) {
11
+ this.buffer = Buffer.concat([this.buffer, chunk]);
12
+ const frames = [];
13
+ while (this.buffer.length >= FRAME_HEADER_SIZE) {
14
+ const length = (this.buffer[0] << 16) | (this.buffer[1] << 8) | this.buffer[2];
15
+ const totalSize = FRAME_HEADER_SIZE + length;
16
+ if (this.buffer.length < totalSize) {
17
+ break;
18
+ }
19
+ const frameBuffer = this.buffer.subarray(0, totalSize);
20
+ this.buffer = this.buffer.subarray(totalSize);
21
+ frames.push(parseFrame(frameBuffer));
22
+ }
23
+ return frames;
24
+ }
25
+ }
26
+ /**
27
+ * Emit WINDOW_UPDATE frames for even-numbered streams, matching `remoted` behavior.
28
+ */
29
+ export function buildWindowUpdateFrames(streamId, increment) {
30
+ if (streamId % 2 !== 0 || increment <= 0) {
31
+ return [];
32
+ }
33
+ return [
34
+ new WindowUpdateFrame(0, increment).serialize(),
35
+ new WindowUpdateFrame(streamId, increment).serialize(),
36
+ ];
37
+ }
38
+ function parseFrame(buffer) {
39
+ const length = (buffer[0] << 16) | (buffer[1] << 8) | buffer[2];
40
+ const type = buffer[3];
41
+ const flags = buffer[4];
42
+ const streamId = buffer.readUInt32BE(5) & 0x7fffffff;
43
+ const body = buffer.subarray(FRAME_HEADER_SIZE, FRAME_HEADER_SIZE + length);
44
+ if (type !== FRAME_TYPE_DATA) {
45
+ return { type: 'other' };
46
+ }
47
+ const data = stripDataFramePadding(body, flags);
48
+ return {
49
+ type: 'data',
50
+ frame: { streamId, data, bodyLen: length },
51
+ };
52
+ }
53
+ /**
54
+ * Strip HTTP/2 DATA frame padding (RFC 7540 §6.1).
55
+ * @throws {InvalidDataError} when padding length is invalid
56
+ */
57
+ function stripDataFramePadding(body, flags) {
58
+ if (!(flags & FLAG_PADDED)) {
59
+ return body;
60
+ }
61
+ if (body.length === 0) {
62
+ throw new InvalidDataError('PROTOCOL_ERROR: PADDED DATA frame has empty payload');
63
+ }
64
+ const padLength = body.readUInt8(0);
65
+ if (padLength >= body.length) {
66
+ throw new InvalidDataError('PROTOCOL_ERROR: Padding exceeds frame size');
67
+ }
68
+ return body.subarray(1, body.length - padLength);
69
+ }
70
+ //# sourceMappingURL=http2-frame-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http2-frame-parser.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/http2-frame-parser.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
+ import { type Service, type ServicesResponse } from './service-catalog.js';
1
2
  /** Max time to wait for the TCP socket to connect. */
2
3
  export declare const CONNECTION_CONNECT_TIMEOUT_MS = 3000;
3
4
  /**
4
5
  * Default max time for one connect attempt (TCP + handshake + service discovery).
5
- * Must cover the longest connect-phase timeout plus earlier phases.
6
+ * Sum of connect, handshake delay, and post-handshake service wait.
6
7
  */
7
8
  export declare const CONNECTION_DEFAULT_OPERATION_TIMEOUT_MS: number;
8
9
  /** TunnelManager retry budget; never shorter than a single connect attempt. */
@@ -11,13 +12,6 @@ export interface RemoteXpcConnectOptions {
11
12
  /** Max time for this connect attempt (TCP + handshake + services). */
12
13
  timeoutMs?: number;
13
14
  }
14
- interface Service {
15
- serviceName: string;
16
- port: string;
17
- }
18
- interface ServicesResponse {
19
- services: Service[];
20
- }
21
15
  declare class RemoteXpcConnection {
22
16
  private readonly _address;
23
17
  private _socket;
@@ -62,7 +56,7 @@ declare class RemoteXpcConnection {
62
56
  private createConnectSession;
63
57
  private createConnectSocket;
64
58
  private registerConnectSocketHandlers;
65
- private tryResolveServicesFromPayload;
59
+ private processIncomingData;
66
60
  private onConnectSocketReady;
67
61
  private performHandshake;
68
62
  private schedulePostHandshakeServiceTimeout;
@@ -1 +1 @@
1
- {"version":3,"file":"remote-xpc-connection.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/remote-xpc-connection.ts"],"names":[],"mappings":"AAQA,sDAAsD;AACtD,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAMnD;;;GAGG;AACH,eAAO,MAAM,uCAAuC,QAKnD,CAAC;AACF,+EAA+E;AAC/E,eAAO,MAAM,6BAA6B,QACD,CAAC;AAK1C,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,OAAO;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAUD,cAAM,mBAAmB;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAwB;IACzC,4EAA4E;IAC5E,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,mEAAmE;IACnE,OAAO,CAAC,UAAU,CAAU;gBAEhB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAUrC;;;OAGG;IACH,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9B;IAED;;;OAGG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyB3E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;;OAGG;IACH,WAAW,IAAI,OAAO,EAAE;IAOxB;;;OAGG;IACH,eAAe,IAAI,OAAO,EAAE;IAI5B;;;;OAIG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAYzC,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,6BAA6B;IA2DrC,OAAO,CAAC,6BAA6B;YAyBvB,oBAAoB;YAgBpB,gBAAgB;IAU9B,OAAO,CAAC,mCAAmC;YAQ7B,iCAAiC;IAkB/C,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,cAAc;IAiDtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,YAAY;CAcrB;AA6ED,OAAO,EAAE,mBAAmB,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"remote-xpc-connection.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/remote-xpc-connection.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAK9B,sDAAsD;AACtD,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAInD;;;GAGG;AACH,eAAO,MAAM,uCAAuC,QAGrB,CAAC;AAChC,+EAA+E;AAC/E,eAAO,MAAM,6BAA6B,QACD,CAAC;AAK1C,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,cAAM,mBAAmB;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,SAAS,CAAwB;IACzC,4EAA4E;IAC5E,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,mEAAmE;IACnE,OAAO,CAAC,UAAU,CAAU;gBAEhB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAUrC;;;OAGG;IACH,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9B;IAED;;;OAGG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyB3E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;;OAGG;IACH,WAAW,IAAI,OAAO,EAAE;IAOxB;;;OAGG;IACH,eAAe,IAAI,OAAO,EAAE;IAI5B;;;;OAIG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAYzC,OAAO,CAAC,oBAAoB;IA4C5B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,6BAA6B;IAyCrC,OAAO,CAAC,mBAAmB;YAqCb,oBAAoB;YAgBpB,gBAAgB;IAU9B,OAAO,CAAC,mCAAmC;YAQ7B,iCAAiC;IAkB/C,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,cAAc;IAiDtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,YAAY;CAcrB;AAED,OAAO,EAAE,mBAAmB,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import net from 'node:net';
2
2
  import { getLogger } from '../logger.js';
3
3
  import Handshake from './handshake.js';
4
+ import { Http2FrameParser, buildWindowUpdateFrames, } from './http2-frame-parser.js';
5
+ import { ServiceCatalogCollector, } from './service-catalog.js';
4
6
  const log = getLogger('RemoteXpcConnection');
5
7
  // Timeout constants
6
8
  /** Max time to wait for the TCP socket to connect. */
@@ -8,15 +10,13 @@ export const CONNECTION_CONNECT_TIMEOUT_MS = 3_000;
8
10
  const HANDSHAKE_DELAY_MS = 100;
9
11
  /** Wait for service list after handshake before failing the connect attempt. */
10
12
  const SERVICE_AFTER_HANDSHAKE_TIMEOUT_MS = 10_000;
11
- /** Resolve with partial data if service parsing stalls mid-stream. */
12
- const SERVICE_EXTRACTION_TIMEOUT_MS = 5_000;
13
13
  /**
14
14
  * Default max time for one connect attempt (TCP + handshake + service discovery).
15
- * Must cover the longest connect-phase timeout plus earlier phases.
15
+ * Sum of connect, handshake delay, and post-handshake service wait.
16
16
  */
17
- export const CONNECTION_DEFAULT_OPERATION_TIMEOUT_MS = Math.max(SERVICE_EXTRACTION_TIMEOUT_MS, SERVICE_AFTER_HANDSHAKE_TIMEOUT_MS +
17
+ export const CONNECTION_DEFAULT_OPERATION_TIMEOUT_MS = SERVICE_AFTER_HANDSHAKE_TIMEOUT_MS +
18
18
  HANDSHAKE_DELAY_MS +
19
- CONNECTION_CONNECT_TIMEOUT_MS);
19
+ CONNECTION_CONNECT_TIMEOUT_MS;
20
20
  /** TunnelManager retry budget; never shorter than a single connect attempt. */
21
21
  export const CONNECTION_OVERALL_TIMEOUT_MS = CONNECTION_DEFAULT_OPERATION_TIMEOUT_MS;
22
22
  const SOCKET_CLOSE_TIMEOUT_MS = 1000; // 1 second
@@ -115,13 +115,8 @@ class RemoteXpcConnection {
115
115
  }
116
116
  createConnectSession(operationTimeoutMs, resolve, reject) {
117
117
  let settled = false;
118
- let partialExtractionTimer;
119
118
  const clearAllTimers = () => {
120
119
  clearTimeout(operationTimer);
121
- if (partialExtractionTimer) {
122
- clearTimeout(partialExtractionTimer);
123
- partialExtractionTimer = undefined;
124
- }
125
120
  };
126
121
  const settleSuccess = (response) => {
127
122
  if (settled) {
@@ -148,9 +143,6 @@ class RemoteXpcConnection {
148
143
  settleSuccess,
149
144
  settleFailure,
150
145
  isSettled: () => settled,
151
- trackPartialExtractionTimer: (timer) => {
152
- partialExtractionTimer = timer;
153
- },
154
146
  };
155
147
  }
156
148
  createConnectSocket() {
@@ -163,20 +155,8 @@ class RemoteXpcConnection {
163
155
  });
164
156
  }
165
157
  registerConnectSocketHandlers(session, socket) {
166
- let accumulatedData = Buffer.alloc(0);
167
- let partialExtractionTimer;
168
- const schedulePartialExtractionTimeout = () => {
169
- if (partialExtractionTimer) {
170
- return;
171
- }
172
- partialExtractionTimer = setTimeout(() => {
173
- partialExtractionTimer = undefined;
174
- log.warn('Service extraction timeout reached, resolving with current data');
175
- const finalResponse = extractServices(accumulatedData.toString('utf8'));
176
- session.settleSuccess(finalResponse);
177
- }, SERVICE_EXTRACTION_TIMEOUT_MS);
178
- session.trackPartialExtractionTimer(partialExtractionTimer);
179
- };
158
+ const frameParser = new Http2FrameParser();
159
+ const catalogCollector = new ServiceCatalogCollector();
180
160
  socket.once('error', (error) => {
181
161
  if (!this._isClosing) {
182
162
  log.error(`Connection error: ${error}`);
@@ -185,11 +165,8 @@ class RemoteXpcConnection {
185
165
  session.settleFailure(error);
186
166
  });
187
167
  socket.on('data', (data) => {
188
- if (Buffer.isBuffer(data) || typeof data === 'string') {
189
- const chunk = Buffer.isBuffer(data) ? data : Buffer.from(data, 'hex');
190
- accumulatedData = Buffer.concat([accumulatedData, chunk]);
191
- }
192
- this.tryResolveServicesFromPayload(session, accumulatedData, schedulePartialExtractionTimeout);
168
+ const chunk = Buffer.isBuffer(data) ? data : Buffer.from(data, 'hex');
169
+ this.processIncomingData(session, socket, frameParser, catalogCollector, chunk);
193
170
  });
194
171
  socket.once('close', () => {
195
172
  this._isConnected = false;
@@ -201,21 +178,31 @@ class RemoteXpcConnection {
201
178
  void this.onConnectSocketReady(session, socket);
202
179
  });
203
180
  }
204
- tryResolveServicesFromPayload(session, accumulatedData, schedulePartialExtractionTimeout) {
205
- const dataStr = accumulatedData.toString('utf8');
206
- if (!dataStr.includes('com.apple') || !dataStr.includes('Port')) {
181
+ processIncomingData(session, socket, frameParser, catalogCollector, chunk) {
182
+ if (session.isSettled()) {
207
183
  return;
208
184
  }
185
+ let frames;
209
186
  try {
210
- const servicesResponse = extractServices(dataStr);
211
- if (servicesResponse.services.length > 0) {
187
+ frames = frameParser.append(chunk);
188
+ }
189
+ catch (error) {
190
+ session.settleFailure(error);
191
+ return;
192
+ }
193
+ for (const frame of frames) {
194
+ if (frame.type !== 'data') {
195
+ continue;
196
+ }
197
+ const { streamId, data, bodyLen } = frame.frame;
198
+ for (const windowUpdate of buildWindowUpdateFrames(streamId, bodyLen)) {
199
+ socket.write(windowUpdate);
200
+ }
201
+ const servicesResponse = catalogCollector.ingestDataPayload(data);
202
+ if (servicesResponse) {
212
203
  session.settleSuccess(servicesResponse);
213
204
  return;
214
205
  }
215
- schedulePartialExtractionTimeout();
216
- }
217
- catch (error) {
218
- log.warn(`Error extracting services: ${error}, continuing to collect data`);
219
206
  }
220
207
  }
221
208
  async onConnectSocketReady(session, socket) {
@@ -355,63 +342,5 @@ class RemoteXpcConnection {
355
342
  }
356
343
  }
357
344
  }
358
- /**
359
- * Extract services from the response
360
- * @param response The response string to parse
361
- * @returns Object containing the extracted services
362
- */
363
- function extractServices(response) {
364
- // More robust regex that handles various formats of service names and port specifications
365
- const serviceRegex = /com\.apple(?:\.[\w-]+)+/g;
366
- const portRegex = /Port[^0-9]*(\d+)/g;
367
- // First, collect all service names
368
- const serviceMatches = [];
369
- let match;
370
- while ((match = serviceRegex.exec(response)) !== null) {
371
- serviceMatches.push({ value: match[0], index: match.index });
372
- }
373
- // Then, collect all port numbers
374
- const portMatches = [];
375
- while ((match = portRegex.exec(response)) !== null) {
376
- if (match[1]) {
377
- // Ensure we have a captured port number
378
- portMatches.push({ value: match[1], index: match.index });
379
- }
380
- }
381
- // Sort both arrays by index to maintain order
382
- serviceMatches.sort((a, b) => a.index - b.index);
383
- portMatches.sort((a, b) => a.index - b.index);
384
- // Create a mapping of services to ports
385
- const services = [];
386
- // Assign a port to each service based on proximity in the response
387
- for (let i = 0; i < serviceMatches.length; i++) {
388
- const serviceName = serviceMatches[i].value;
389
- const serviceIndex = serviceMatches[i].index;
390
- // Find the closest port after this service
391
- let closestPort = '';
392
- let closestDistance = Number.MAX_SAFE_INTEGER;
393
- for (const portMatch of portMatches) {
394
- // Only consider ports that come after the service in the response
395
- if (portMatch.index > serviceIndex) {
396
- const distance = portMatch.index - serviceIndex;
397
- // If this port is closer than the current closest, update
398
- if (distance < closestDistance) {
399
- closestDistance = distance;
400
- closestPort = portMatch.value;
401
- // If the port is very close (within 200 chars), we can be confident it's the right one
402
- if (distance < 200) {
403
- break;
404
- }
405
- }
406
- }
407
- }
408
- // Add the service with its port (or empty string if no port found)
409
- services.push({
410
- serviceName,
411
- port: closestPort || '',
412
- });
413
- }
414
- return { services };
415
- }
416
345
  export { RemoteXpcConnection };
417
346
  //# sourceMappingURL=remote-xpc-connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-xpc-connection.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/remote-xpc-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-xpc-connection.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/remote-xpc-connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { XPCDictionary } from '../types.js';
2
+ export interface Service {
3
+ serviceName: string;
4
+ port: string;
5
+ }
6
+ export interface ServicesResponse {
7
+ services: Service[];
8
+ }
9
+ /**
10
+ * Reassemble length-prefixed XPC payloads from HTTP/2 DATA frames and extract
11
+ * the service catalog once the full handshake message is available.
12
+ */
13
+ export declare class ServiceCatalogCollector {
14
+ private previousFrameData;
15
+ /**
16
+ * Feed one DATA frame payload. Returns the catalog when a complete XPC
17
+ * message containing `Services` has been decoded.
18
+ */
19
+ ingestDataPayload(chunk: Buffer): ServicesResponse | null;
20
+ }
21
+ /**
22
+ * Build the service list from a decoded RSD handshake body (`peer_info`).
23
+ */
24
+ export declare function servicesFromXpcBody(body: XPCDictionary | null | undefined): ServicesResponse | null;
25
+ //# sourceMappingURL=service-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-catalog.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/service-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,iBAAiB,CAA2B;IAEpD;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;CA0B1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GACrC,gBAAgB,GAAG,IAAI,CA4BzB"}
@@ -0,0 +1,62 @@
1
+ import { decodeMessage } from './xpc-protocol.js';
2
+ /**
3
+ * Reassemble length-prefixed XPC payloads from HTTP/2 DATA frames and extract
4
+ * the service catalog once the full handshake message is available.
5
+ */
6
+ export class ServiceCatalogCollector {
7
+ previousFrameData = Buffer.alloc(0);
8
+ /**
9
+ * Feed one DATA frame payload. Returns the catalog when a complete XPC
10
+ * message containing `Services` has been decoded.
11
+ */
12
+ ingestDataPayload(chunk) {
13
+ let pending = Buffer.concat([this.previousFrameData, chunk]);
14
+ this.previousFrameData = Buffer.alloc(0);
15
+ while (pending.length > 0) {
16
+ try {
17
+ const { message, bytesConsumed } = decodeMessage(pending);
18
+ pending = pending.subarray(bytesConsumed);
19
+ if (message.body === null || message.body === undefined) {
20
+ continue;
21
+ }
22
+ const catalog = servicesFromXpcBody(message.body);
23
+ if (catalog) {
24
+ this.previousFrameData = pending;
25
+ return catalog;
26
+ }
27
+ }
28
+ catch {
29
+ this.previousFrameData = pending;
30
+ return null;
31
+ }
32
+ }
33
+ return null;
34
+ }
35
+ }
36
+ /**
37
+ * Build the service list from a decoded RSD handshake body (`peer_info`).
38
+ */
39
+ export function servicesFromXpcBody(body) {
40
+ if (!body || typeof body !== 'object' || Array.isArray(body)) {
41
+ return null;
42
+ }
43
+ const servicesDict = body.Services;
44
+ if (!servicesDict ||
45
+ typeof servicesDict !== 'object' ||
46
+ Array.isArray(servicesDict)) {
47
+ return null;
48
+ }
49
+ const services = [];
50
+ for (const [serviceName, info] of Object.entries(servicesDict)) {
51
+ if (!info || typeof info !== 'object' || Array.isArray(info)) {
52
+ continue;
53
+ }
54
+ const portValue = info.Port;
55
+ services.push({
56
+ serviceName,
57
+ port: portValue !== undefined && portValue !== null ? String(portValue) : '',
58
+ });
59
+ }
60
+ return services.length > 0 ? { services } : null;
61
+ }
62
+ //# sourceMappingURL=service-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-catalog.js","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/service-catalog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAWlD;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAC1B,iBAAiB,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpD;;;OAGG;IACH,iBAAiB,CAAC,KAAa;QAC7B,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEzC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC1D,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAE1C,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxD,SAAS;gBACX,CAAC;gBAED,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;oBACjC,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAsC;IAEtC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnC,IACE,CAAC,YAAY;QACb,OAAO,YAAY,KAAK,QAAQ;QAChC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAI,IAAsB,CAAC,IAAI,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC;YACZ,WAAW;YACX,IAAI,EACF,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;SACzE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC"}
@@ -8,15 +8,25 @@ export interface XPCMessage {
8
8
  body?: XPCDictionary | null;
9
9
  size?: number;
10
10
  }
11
+ export interface DecodedXpcMessage {
12
+ message: XPCMessage;
13
+ /** Bytes consumed from `buffer` (may be less than `buffer.length`). */
14
+ bytesConsumed: number;
15
+ }
11
16
  /**
12
17
  * Encodes a message object into an XPC Buffer.
13
18
  * A message is an object like:
14
19
  * { flags: Number, id: bigint, body: Object|null }
15
20
  */
16
21
  export declare function encodeMessage(message: XPCMessage): Buffer;
22
+ /**
23
+ * Returns the total byte length of one length-prefixed XPC wrapper in `buffer`.
24
+ * @throws if the header is missing, invalid, or the buffer is shorter than the message
25
+ */
26
+ export declare function getXpcMessageByteLength(buffer: Buffer): number;
17
27
  /**
18
28
  * Decodes an XPC Buffer into a message object.
19
29
  * (Keep this function if you plan to handle incoming messages.)
20
30
  */
21
- export declare function decodeMessage(buffer: Buffer): XPCMessage;
31
+ export declare function decodeMessage(buffer: Buffer): DecodedXpcMessage;
22
32
  //# sourceMappingURL=xpc-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xpc-protocol.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/xpc-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,aAAa,EAAY,MAAM,aAAa,CAAC;AAOrE,eAAO,MAAM,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAa9C,CAAC;AAGF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAsGD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAkCzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAoCxD"}
1
+ {"version":3,"file":"xpc-protocol.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-xpc/xpc-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,aAAa,EAAY,MAAM,aAAa,CAAC;AAOrE,eAAO,MAAM,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAa9C,CAAC;AAGF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,UAAU,CAAC;IACpB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;CACvB;AA0GD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAkCzD;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAc9D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CA2C/D"}