@tapflowio/ios-agent 0.16.0 → 0.17.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/dist/IOSAgent.d.ts +7 -0
- package/dist/IOSAgent.d.ts.map +1 -1
- package/dist/IOSAgent.js +277 -19
- package/dist/IOSAgent.js.map +1 -1
- package/dist/SimctlWrapper.d.ts +6 -0
- package/dist/SimctlWrapper.d.ts.map +1 -1
- package/dist/SimctlWrapper.js +42 -17
- package/dist/SimctlWrapper.js.map +1 -1
- package/dist/simctl.d.ts +18 -0
- package/dist/simctl.d.ts.map +1 -1
- package/dist/simctl.js +110 -5
- package/dist/simctl.js.map +1 -1
- package/package.json +4 -4
package/dist/IOSAgent.d.ts
CHANGED
|
@@ -50,6 +50,13 @@ export declare class IOSAgent implements DeviceAgent {
|
|
|
50
50
|
private handleDeviceBoot;
|
|
51
51
|
private bootWithZombieRecovery;
|
|
52
52
|
private handleDeviceShutdown;
|
|
53
|
+
private ensureTouchHelper;
|
|
54
|
+
private readonly clipboardQueue;
|
|
55
|
+
private readonly parkedSentinels;
|
|
56
|
+
private markSentinel;
|
|
57
|
+
private sentinelParked;
|
|
58
|
+
private ackInput;
|
|
59
|
+
private isBooted;
|
|
53
60
|
private handleRelayMessage;
|
|
54
61
|
private readUITree;
|
|
55
62
|
/**
|
package/dist/IOSAgent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IOSAgent.d.ts","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"IOSAgent.d.ts","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/IOSAgent.js
CHANGED
|
@@ -7,6 +7,8 @@ import { spawnSync } from 'child_process';
|
|
|
7
7
|
import { WebSocket } from 'ws';
|
|
8
8
|
import { createLogger, PlatformError, ValidationError } from '@tapflowio/agent-core';
|
|
9
9
|
const logger = createLogger('ios-agent');
|
|
10
|
+
// Typed so a typo cannot ship silently — the viewer gates the whole clipboard bridge on this.
|
|
11
|
+
const AGENT_CAPABILITIES = ['clipboard'];
|
|
10
12
|
// Cross-platform button name → iOS device-chrome button name. Chrome uses
|
|
11
13
|
// hyphens and "power" (not "lock"); MCP's vocabulary uses underscores. Names
|
|
12
14
|
// not listed here (incl. the raw chrome names the dashboard sends) pass through.
|
|
@@ -16,7 +18,8 @@ export const IOS_BUTTON_ALIASES = {
|
|
|
16
18
|
volume_down: 'volume-down',
|
|
17
19
|
};
|
|
18
20
|
import { createResourceSampler, registerStreamWs, disableNagle, createKeyframeAwareSender, pickMaxSize, createRateLimitedDropWarn, createThroughputSampler, createSleepBlocker, getMachineId, isLocalhostWss, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, rewriteLowLatencySpsInFrame, CODEC_JPEG, CODEC_H264, CODEC_AUDIO, sendAudioYieldingToVideo, } from '@tapflowio/agent-core/utils';
|
|
19
|
-
import { SimctlWrapper, isDeviceMissingError } from './SimctlWrapper.js';
|
|
21
|
+
import { SimctlWrapper, isDeviceMissingError, ClipboardTooLargeError } from './SimctlWrapper.js';
|
|
22
|
+
import { MAX_CLIPBOARD_BYTES, clipboardByteLength, CLIPBOARD_SENTINEL_PREFIX as SENTINEL_PREFIX, isClipboardSentinel as isSentinel, CLIPBOARD_COPY_DEADLINE_MS, CLIPBOARD_WRITE_DEADLINE_MS, CLIPBOARD_RESTORE_DEADLINE_MS, CLIPBOARD_POLL_MS, createKeyedSerialQueue, } from '@tapflowio/agent-core';
|
|
20
23
|
import { ScreenCaptureStreamer } from './ScreenCaptureStreamer.js';
|
|
21
24
|
import { AudioCaptureStreamer, readSimVolume, applyGain } from './AudioCaptureStreamer.js';
|
|
22
25
|
import { ensureHelperApp, launchAudioHelper, isAudioSupported } from '@tapflowio/audiotap-helper';
|
|
@@ -103,6 +106,9 @@ export class IOSAgent {
|
|
|
103
106
|
ws.send(JSON.stringify({
|
|
104
107
|
type: 'agent:register',
|
|
105
108
|
platform: 'ios',
|
|
109
|
+
// Lets a viewer tell a clipboard-capable agent from one that predates the
|
|
110
|
+
// feature, instead of inferring it from silence. See agent-core AgentCapability.
|
|
111
|
+
capabilities: AGENT_CAPABILITIES,
|
|
106
112
|
agentId: getMachineId(),
|
|
107
113
|
agentName: os.hostname(),
|
|
108
114
|
devices: devices.map((d) => ({
|
|
@@ -172,6 +178,7 @@ export class IOSAgent {
|
|
|
172
178
|
sessionId,
|
|
173
179
|
deviceId,
|
|
174
180
|
touchHelper: null,
|
|
181
|
+
booted: false,
|
|
175
182
|
streamWs: null,
|
|
176
183
|
streamReader: null,
|
|
177
184
|
captureStreamer: null,
|
|
@@ -273,6 +280,7 @@ export class IOSAgent {
|
|
|
273
280
|
state.audioPids = null;
|
|
274
281
|
state.touchHelper?.stop();
|
|
275
282
|
state.touchHelper = null;
|
|
283
|
+
state.booted = false;
|
|
276
284
|
state.streamWs?.close();
|
|
277
285
|
state.streamWs = null;
|
|
278
286
|
}
|
|
@@ -405,6 +413,7 @@ export class IOSAgent {
|
|
|
405
413
|
state.captureStreamer = null; // reader.cancel() kills the helper proc; drop the ref so a stale requestKeyframe() no-ops
|
|
406
414
|
state.touchHelper?.stop();
|
|
407
415
|
state.touchHelper = null;
|
|
416
|
+
state.booted = false;
|
|
408
417
|
state.streamWs?.close();
|
|
409
418
|
state.streamWs = null;
|
|
410
419
|
this.ws.send(JSON.stringify({ type: 'device:booting', sessionId }));
|
|
@@ -440,6 +449,7 @@ export class IOSAgent {
|
|
|
440
449
|
// — never blocks/affects the video path.
|
|
441
450
|
if (this.audioEnabled())
|
|
442
451
|
this.startAudioCapture(state, streamWs, deviceId);
|
|
452
|
+
state.booted = true;
|
|
443
453
|
this.ws?.send(JSON.stringify({ type: 'device:ready', sessionId, payload: { deviceId } }));
|
|
444
454
|
// Sync AppleKeyboards after ready — fire-and-forget so streaming isn't delayed.
|
|
445
455
|
// hw=Automatic lets the hardware layout follow the active input source on LANG1/CapsLock.
|
|
@@ -480,6 +490,7 @@ export class IOSAgent {
|
|
|
480
490
|
state.captureStreamer = null; // reader.cancel() kills the helper proc; drop the ref so a stale requestKeyframe() no-ops
|
|
481
491
|
state.touchHelper?.stop();
|
|
482
492
|
state.touchHelper = null;
|
|
493
|
+
state.booted = false;
|
|
483
494
|
state.streamWs?.close();
|
|
484
495
|
state.streamWs = null;
|
|
485
496
|
this.lastBundleIds.delete(deviceId);
|
|
@@ -499,6 +510,51 @@ export class IOSAgent {
|
|
|
499
510
|
logger.error('shutdown failed:', message);
|
|
500
511
|
}
|
|
501
512
|
}
|
|
513
|
+
// Lazily set up the touch channel: a reconnect re-issues the session with touchHelper=null while the sim stays booted, so input self-heals without a fresh device:boot. Sync so a tap's start+end stay paired (async would drop touchEnd → stuck finger).
|
|
514
|
+
ensureTouchHelper(state) {
|
|
515
|
+
if (state.touchHelper)
|
|
516
|
+
return;
|
|
517
|
+
state.touchHelper = new TouchHelper(state.deviceId);
|
|
518
|
+
state.touchHelper.start();
|
|
519
|
+
}
|
|
520
|
+
// Clipboard work parks a sentinel on the device while it waits, so two operations on the same
|
|
521
|
+
// device must not interleave — each would read the other's marker instead of the real
|
|
522
|
+
// clipboard. Keyed by device, not session: several sessions (and MCP) can address one device.
|
|
523
|
+
clipboardQueue = createKeyedSerialQueue();
|
|
524
|
+
// Device-scoped, not operation-scoped. Several sessions (and MCP) can address one simulator,
|
|
525
|
+
// so an operation that fails before parking anything may still be answering while ANOTHER
|
|
526
|
+
// holds a marker down. The viewer decides from this whether pressing the plain chord is safe,
|
|
527
|
+
// and that chord travels as `input:key` — outside this queue — so the answer has to describe
|
|
528
|
+
// the device rather than the caller.
|
|
529
|
+
parkedSentinels = new Map();
|
|
530
|
+
markSentinel(deviceId, delta) {
|
|
531
|
+
const n = (this.parkedSentinels.get(deviceId) ?? 0) + delta;
|
|
532
|
+
if (n > 0)
|
|
533
|
+
this.parkedSentinels.set(deviceId, n);
|
|
534
|
+
else
|
|
535
|
+
this.parkedSentinels.delete(deviceId);
|
|
536
|
+
}
|
|
537
|
+
sentinelParked(deviceId) {
|
|
538
|
+
return (this.parkedSentinels.get(deviceId) ?? 0) > 0;
|
|
539
|
+
}
|
|
540
|
+
// Ack a terminal input: input:done = dispatched to a booted device (not a landing guarantee — HID is fire-and-forget); input:error = no live channel / not booted. Off the sync inject path, so start/end pairing is unaffected.
|
|
541
|
+
async ackInput(state, dispatched) {
|
|
542
|
+
const booted = dispatched && (state.booted || (await this.isBooted(state.deviceId)));
|
|
543
|
+
if (booted)
|
|
544
|
+
state.booted = true; // cache the post-reconnect verify so later inputs skip simctl
|
|
545
|
+
this.ws?.send(JSON.stringify(booted
|
|
546
|
+
? { type: 'input:done', sessionId: state.sessionId }
|
|
547
|
+
: { type: 'input:error', sessionId: state.sessionId, message: dispatched ? 'device not booted' : 'input channel not ready' }));
|
|
548
|
+
}
|
|
549
|
+
async isBooted(deviceId) {
|
|
550
|
+
try {
|
|
551
|
+
const devices = await this.simctl.listDevices();
|
|
552
|
+
return devices.find((d) => d.id === deviceId)?.status === 'booted';
|
|
553
|
+
}
|
|
554
|
+
catch {
|
|
555
|
+
return false;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
502
558
|
handleRelayMessage(msg) {
|
|
503
559
|
switch (msg.type) {
|
|
504
560
|
case 'device:boot': {
|
|
@@ -547,12 +603,11 @@ export class IOSAgent {
|
|
|
547
603
|
}
|
|
548
604
|
case 'input:touch:start': {
|
|
549
605
|
const state = this.deviceStates.get(msg.sessionId);
|
|
550
|
-
if (!state
|
|
551
|
-
logger.error('touch:start — touchHelper not ready');
|
|
606
|
+
if (!state)
|
|
552
607
|
break;
|
|
553
|
-
|
|
608
|
+
this.ensureTouchHelper(state);
|
|
554
609
|
const { x, y } = msg.payload;
|
|
555
|
-
state.touchHelper
|
|
610
|
+
state.touchHelper?.touchStart(x, y);
|
|
556
611
|
break;
|
|
557
612
|
}
|
|
558
613
|
case 'input:touch:move': {
|
|
@@ -565,15 +620,19 @@ export class IOSAgent {
|
|
|
565
620
|
}
|
|
566
621
|
case 'input:touch:end': {
|
|
567
622
|
const state = this.deviceStates.get(msg.sessionId);
|
|
568
|
-
state
|
|
623
|
+
if (!state)
|
|
624
|
+
break;
|
|
625
|
+
state.touchHelper?.touchEnd();
|
|
626
|
+
void this.ackInput(state, state.touchHelper !== null); // terminal of a tap/swipe → ack the gesture
|
|
569
627
|
break;
|
|
570
628
|
}
|
|
571
629
|
case 'input:pinch:start': {
|
|
572
630
|
const state = this.deviceStates.get(msg.sessionId);
|
|
573
|
-
if (!state
|
|
631
|
+
if (!state)
|
|
574
632
|
break;
|
|
633
|
+
this.ensureTouchHelper(state);
|
|
575
634
|
const { f0, f1 } = msg.payload;
|
|
576
|
-
state.touchHelper
|
|
635
|
+
state.touchHelper?.pinchStart(f0.x, f0.y, f1.x, f1.y);
|
|
577
636
|
break;
|
|
578
637
|
}
|
|
579
638
|
case 'input:pinch:move': {
|
|
@@ -586,9 +645,10 @@ export class IOSAgent {
|
|
|
586
645
|
}
|
|
587
646
|
case 'input:pinch:end': {
|
|
588
647
|
const state = this.deviceStates.get(msg.sessionId);
|
|
589
|
-
if (!state
|
|
648
|
+
if (!state)
|
|
590
649
|
break;
|
|
591
|
-
state.touchHelper
|
|
650
|
+
state.touchHelper?.pinchEnd();
|
|
651
|
+
void this.ackInput(state, state.touchHelper !== null);
|
|
592
652
|
break;
|
|
593
653
|
}
|
|
594
654
|
case 'input:rotate': {
|
|
@@ -628,6 +688,8 @@ export class IOSAgent {
|
|
|
628
688
|
case 'input:type': {
|
|
629
689
|
const sessionId = msg.sessionId;
|
|
630
690
|
const state = this.deviceStates.get(sessionId);
|
|
691
|
+
if (state)
|
|
692
|
+
this.ensureTouchHelper(state);
|
|
631
693
|
const { text } = (msg.payload ?? {});
|
|
632
694
|
if (!state?.touchHelper) {
|
|
633
695
|
this.ws?.send(JSON.stringify({ type: 'input:type-error', sessionId, message: 'No booted device' }));
|
|
@@ -651,7 +713,9 @@ export class IOSAgent {
|
|
|
651
713
|
};
|
|
652
714
|
// Ack on completion so a following input step (e.g. pressKey Enter) is
|
|
653
715
|
// only sent after the paste has actually landed.
|
|
654
|
-
|
|
716
|
+
// Shares the clipboard queue: this writes the pasteboard, so running it alongside a
|
|
717
|
+
// clipboard:read would overwrite that read's sentinel and be returned as "copied".
|
|
718
|
+
this.clipboardQueue(state.deviceId, doType)
|
|
655
719
|
.then(() => this.ws?.send(JSON.stringify({ type: 'input:type-done', sessionId })))
|
|
656
720
|
.catch((e) => {
|
|
657
721
|
const message = e instanceof Error ? e.message : String(e);
|
|
@@ -662,12 +726,15 @@ export class IOSAgent {
|
|
|
662
726
|
}
|
|
663
727
|
case 'input:key': {
|
|
664
728
|
const state = this.deviceStates.get(msg.sessionId);
|
|
665
|
-
if (!state
|
|
729
|
+
if (!state)
|
|
666
730
|
break;
|
|
731
|
+
this.ensureTouchHelper(state);
|
|
667
732
|
const { code, modifiers } = msg.payload;
|
|
668
733
|
const usage = KEY_CODE_MAP[code];
|
|
669
|
-
if (usage === undefined)
|
|
734
|
+
if (usage === undefined) {
|
|
735
|
+
this.ws?.send(JSON.stringify({ type: 'input:error', sessionId: msg.sessionId, message: `unknown key code: ${code}` }));
|
|
670
736
|
break;
|
|
737
|
+
}
|
|
671
738
|
if (state.softKeyboardVisible) {
|
|
672
739
|
// Hide the SW keyboard first so iOS re-initialises the HW keyboard
|
|
673
740
|
// context. Skipping this causes input-source desync (qks / ㅂㅏㄴ symptoms).
|
|
@@ -680,14 +747,16 @@ export class IOSAgent {
|
|
|
680
747
|
});
|
|
681
748
|
}
|
|
682
749
|
else {
|
|
683
|
-
state.touchHelper
|
|
750
|
+
state.touchHelper?.sendKey(usage, modifiers ?? 0);
|
|
684
751
|
}
|
|
752
|
+
void this.ackInput(state, state.touchHelper !== null);
|
|
685
753
|
break;
|
|
686
754
|
}
|
|
687
755
|
case 'input:button': {
|
|
688
756
|
const state = this.deviceStates.get(msg.sessionId);
|
|
689
|
-
if (!state
|
|
757
|
+
if (!state)
|
|
690
758
|
break;
|
|
759
|
+
this.ensureTouchHelper(state);
|
|
691
760
|
const { name, phase } = msg.payload;
|
|
692
761
|
// Map the cross-platform button vocabulary (used by MCP) onto this
|
|
693
762
|
// device's actual chrome button names. Dashboard already sends the raw
|
|
@@ -697,19 +766,20 @@ export class IOSAgent {
|
|
|
697
766
|
// Home has no HID down/up split — always a single legacy press. Send once on release
|
|
698
767
|
// (or on a phase-less legacy message) so a down+up pair doesn't fire it twice.
|
|
699
768
|
if (phase !== 'down')
|
|
700
|
-
state.touchHelper
|
|
769
|
+
state.touchHelper?.pressLegacyButton(0);
|
|
701
770
|
}
|
|
702
771
|
else {
|
|
703
772
|
const btn = state.loadedChrome?.buttons.find((b) => b.name === chromeName);
|
|
704
773
|
if (btn && btn.usagePage > 0 && btn.usage > 0) {
|
|
705
774
|
if (phase === 'down')
|
|
706
|
-
state.touchHelper
|
|
775
|
+
state.touchHelper?.pressButtonDown(btn.usagePage, btn.usage);
|
|
707
776
|
else if (phase === 'up')
|
|
708
|
-
state.touchHelper
|
|
777
|
+
state.touchHelper?.pressButtonUp(btn.usagePage, btn.usage);
|
|
709
778
|
else
|
|
710
|
-
state.touchHelper
|
|
779
|
+
state.touchHelper?.pressButton(btn.usagePage, btn.usage);
|
|
711
780
|
}
|
|
712
781
|
}
|
|
782
|
+
void this.ackInput(state, state.touchHelper !== null);
|
|
713
783
|
break;
|
|
714
784
|
}
|
|
715
785
|
case 'open-url': {
|
|
@@ -762,6 +832,194 @@ export class IOSAgent {
|
|
|
762
832
|
});
|
|
763
833
|
break;
|
|
764
834
|
}
|
|
835
|
+
// Clipboard bridge. The chord is pressed HERE rather than by the viewer: the browser
|
|
836
|
+
// cannot know when the key actually lands (a visible software keyboard makes this path
|
|
837
|
+
// await hideSoftwareKeyboard first), and reading too early returns the PREVIOUS
|
|
838
|
+
// pasteboard — a stale value the user would never notice.
|
|
839
|
+
case 'clipboard:read': {
|
|
840
|
+
const { requestId } = msg;
|
|
841
|
+
const sessionId = msg.sessionId;
|
|
842
|
+
const state = this.deviceStates.get(sessionId);
|
|
843
|
+
if (!state) {
|
|
844
|
+
this.ws?.send(JSON.stringify({
|
|
845
|
+
type: 'clipboard:error', sessionId, requestId, message: 'No booted device',
|
|
846
|
+
payload: { sentinelParked: false },
|
|
847
|
+
}));
|
|
848
|
+
break;
|
|
849
|
+
}
|
|
850
|
+
const { press } = (msg.payload ?? {});
|
|
851
|
+
// Answering is separate from cleaning up. The restore below runs in a `finally`, which
|
|
852
|
+
// executes AFTER this — so the viewer hears back as soon as the outcome is known and
|
|
853
|
+
// does not wait out the restore window. The queue is still held until the restore
|
|
854
|
+
// finishes, which is what actually matters: the next operation must not see a sentinel.
|
|
855
|
+
const respond = (body) => this.ws?.send(JSON.stringify({ sessionId, requestId, ...body }));
|
|
856
|
+
const read = async () => {
|
|
857
|
+
if (!press) {
|
|
858
|
+
respond({ type: 'clipboard:data', payload: { text: await this.simctl.getPasteboard(state.deviceId) } });
|
|
859
|
+
return;
|
|
860
|
+
}
|
|
861
|
+
this.ensureTouchHelper(state);
|
|
862
|
+
if (!state.touchHelper)
|
|
863
|
+
throw new PlatformError('Cannot press copy — no input channel to the device');
|
|
864
|
+
if (state.softKeyboardVisible) {
|
|
865
|
+
state.softKeyboardVisible = false;
|
|
866
|
+
await this.simctl.hideSoftwareKeyboard(state.deviceId).catch(() => { });
|
|
867
|
+
}
|
|
868
|
+
// Overwrite the pasteboard with a value only we could have written, then press the
|
|
869
|
+
// chord and wait for it to change. Without this there is no way to tell "the app
|
|
870
|
+
// copied" from "the app has not copied yet" — a fixed delay guesses, and guessing
|
|
871
|
+
// wrong hands the PREVIOUS clipboard to the user with no error. The sentinel also
|
|
872
|
+
// covers re-copying the identical text, where a plain value-change watch never fires.
|
|
873
|
+
// Read the original first. If we cannot (a hung simctl, or a pasteboard past
|
|
874
|
+
// maxBuffer), do NOT continue: parking a sentinel we are unable to undo would
|
|
875
|
+
// destroy whatever the user had on the device clipboard.
|
|
876
|
+
const raw = await this.simctl.getPasteboard(state.deviceId);
|
|
877
|
+
// Never restore someone else's marker as if it were the user's text.
|
|
878
|
+
const before = isSentinel(raw) ? '' : raw;
|
|
879
|
+
const sentinel = `${SENTINEL_PREFIX}${randomUUID()}`;
|
|
880
|
+
let copied = null;
|
|
881
|
+
// Counted before the call: setPasteboard can reject after the device took the value,
|
|
882
|
+
// so anything from here until the restore has to be treated as parked.
|
|
883
|
+
this.markSentinel(state.deviceId, 1);
|
|
884
|
+
try {
|
|
885
|
+
// Inside the try: if this rejects *after* the device applied it, the restore below
|
|
886
|
+
// still runs. Outside, a leaked sentinel would sit on the device permanently.
|
|
887
|
+
await this.simctl.setPasteboard(state.deviceId, sentinel);
|
|
888
|
+
// `pbcopy` exiting means the write was accepted, not that the pasteboard shows it
|
|
889
|
+
// yet. Pressing before it does lets the first poll read the PRE-sentinel value,
|
|
890
|
+
// decide it is not a sentinel, and return it as "what the app copied" — the exact
|
|
891
|
+
// staleness this whole mechanism exists to prevent. Mirrors the Android read path.
|
|
892
|
+
const applied = Date.now() + CLIPBOARD_WRITE_DEADLINE_MS;
|
|
893
|
+
while ((await this.simctl.getPasteboard(state.deviceId)) !== sentinel) {
|
|
894
|
+
if (Date.now() >= applied)
|
|
895
|
+
throw new PlatformError('The device clipboard did not respond');
|
|
896
|
+
await new Promise((r) => setTimeout(r, CLIPBOARD_POLL_MS));
|
|
897
|
+
}
|
|
898
|
+
state.touchHelper.sendKey(KEY_CODE_MAP[press === 'cut' ? 'KeyX' : 'KeyC'], MODIFIER_BITS['MetaLeft']);
|
|
899
|
+
const deadline = Date.now() + CLIPBOARD_COPY_DEADLINE_MS;
|
|
900
|
+
do {
|
|
901
|
+
let now;
|
|
902
|
+
try {
|
|
903
|
+
now = await this.simctl.getPasteboard(state.deviceId);
|
|
904
|
+
}
|
|
905
|
+
catch (e) {
|
|
906
|
+
// ONLY the size ceiling means the app copied — we just cannot carry it — so the
|
|
907
|
+
// restore below must be skipped or it would overwrite the very text the user
|
|
908
|
+
// copied. Every other failure here (a hung or timed-out pbpaste) says nothing
|
|
909
|
+
// about the device, and skipping the restore for those left the sentinel parked
|
|
910
|
+
// for good: the user's clipboard destroyed, and a zero-width marker pasted into
|
|
911
|
+
// the app under test. Android reaches the same two states, by assigning `copied`
|
|
912
|
+
// before it throws for the over-sized case and not otherwise.
|
|
913
|
+
if (e instanceof ClipboardTooLargeError)
|
|
914
|
+
copied = '';
|
|
915
|
+
throw e;
|
|
916
|
+
}
|
|
917
|
+
// A sentinel is never a copy result — ours means "not yet", any other means a
|
|
918
|
+
// concurrent operation slipped in and its marker must not be handed to the user.
|
|
919
|
+
if (!isSentinel(now)) {
|
|
920
|
+
copied = now;
|
|
921
|
+
respond({ type: 'clipboard:data', payload: { text: now } });
|
|
922
|
+
return;
|
|
923
|
+
}
|
|
924
|
+
await new Promise((r) => setTimeout(r, CLIPBOARD_POLL_MS));
|
|
925
|
+
} while (Date.now() < deadline);
|
|
926
|
+
throw new PlatformError('The device did not copy anything — is something selected?');
|
|
927
|
+
}
|
|
928
|
+
catch (e) {
|
|
929
|
+
// Reply here rather than letting this propagate: a rejection would surface only
|
|
930
|
+
// after `finally` had finished restoring, putting that window inside the round trip.
|
|
931
|
+
respond({
|
|
932
|
+
type: 'clipboard:error', message: e instanceof Error ? e.message : String(e),
|
|
933
|
+
// A sentinel may be on the device: setPasteboard can reject after the device took
|
|
934
|
+
// it. The viewer must not press the chord — the restore would overwrite the copy.
|
|
935
|
+
payload: { sentinelParked: this.sentinelParked(state.deviceId) },
|
|
936
|
+
});
|
|
937
|
+
}
|
|
938
|
+
finally {
|
|
939
|
+
// Only restore when the copy never happened; otherwise this would overwrite the
|
|
940
|
+
// value we just captured. A leaked sentinel would be worse than the original bug.
|
|
941
|
+
// Wait for the restore to be visible, not merely accepted: releasing the queue early
|
|
942
|
+
// lets the next operation read the sentinel as "the original", which then becomes ''
|
|
943
|
+
// and wipes the user's device clipboard. Mirrors the Android read path.
|
|
944
|
+
if (copied === null) {
|
|
945
|
+
await this.simctl.setPasteboard(state.deviceId, before).catch(() => { });
|
|
946
|
+
const restored = Date.now() + CLIPBOARD_RESTORE_DEADLINE_MS;
|
|
947
|
+
while ((await this.simctl.getPasteboard(state.deviceId).catch(() => before)) !== before) {
|
|
948
|
+
if (Date.now() >= restored)
|
|
949
|
+
break; // best effort; the error is already going out
|
|
950
|
+
await new Promise((r) => setTimeout(r, CLIPBOARD_POLL_MS));
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
this.markSentinel(state.deviceId, -1);
|
|
954
|
+
}
|
|
955
|
+
};
|
|
956
|
+
// `read` answers for itself once the sentinel is in play. This catches only what can
|
|
957
|
+
// throw BEFORE that — the press-less branch, a missing input channel, and the failed
|
|
958
|
+
// read of the original — so nothing is parked and the viewer's chord fallback is safe.
|
|
959
|
+
this.clipboardQueue(state.deviceId, read).catch((e) => {
|
|
960
|
+
respond({
|
|
961
|
+
type: 'clipboard:error', message: e instanceof Error ? e.message : String(e),
|
|
962
|
+
payload: { sentinelParked: this.sentinelParked(state.deviceId) },
|
|
963
|
+
});
|
|
964
|
+
});
|
|
965
|
+
break;
|
|
966
|
+
}
|
|
967
|
+
case 'clipboard:write': {
|
|
968
|
+
const { requestId } = msg;
|
|
969
|
+
const sessionId = msg.sessionId;
|
|
970
|
+
const state = this.deviceStates.get(sessionId);
|
|
971
|
+
if (!state) {
|
|
972
|
+
this.ws?.send(JSON.stringify({
|
|
973
|
+
type: 'clipboard:error', sessionId, requestId, message: 'No booted device',
|
|
974
|
+
payload: { sentinelParked: false },
|
|
975
|
+
}));
|
|
976
|
+
break;
|
|
977
|
+
}
|
|
978
|
+
const { text, pasteAfter } = (msg.payload ?? {});
|
|
979
|
+
if (clipboardByteLength(text ?? '') > MAX_CLIPBOARD_BYTES) {
|
|
980
|
+
this.ws?.send(JSON.stringify({
|
|
981
|
+
type: 'clipboard:error', sessionId, requestId,
|
|
982
|
+
message: `Clipboard is too large (max ${Math.floor(MAX_CLIPBOARD_BYTES / 1024)} KB)`,
|
|
983
|
+
payload: { sentinelParked: this.sentinelParked(state.deviceId) },
|
|
984
|
+
}));
|
|
985
|
+
break;
|
|
986
|
+
}
|
|
987
|
+
const write = async () => {
|
|
988
|
+
const wanted = text ?? '';
|
|
989
|
+
await this.simctl.setPasteboard(state.deviceId, wanted);
|
|
990
|
+
if (!pasteAfter)
|
|
991
|
+
return;
|
|
992
|
+
this.ensureTouchHelper(state);
|
|
993
|
+
if (!state.touchHelper)
|
|
994
|
+
throw new PlatformError('Cannot press paste — no input channel to the device');
|
|
995
|
+
// Confirm the pasteboard really holds it before pressing paste; otherwise the device
|
|
996
|
+
// could paste whatever was there before. (On Android the same call is documented as
|
|
997
|
+
// asynchronous, so this is not iOS paranoia — it is the same failure on both sides.)
|
|
998
|
+
const deadline = Date.now() + CLIPBOARD_WRITE_DEADLINE_MS;
|
|
999
|
+
while ((await this.simctl.getPasteboard(state.deviceId).catch(() => null)) !== wanted) {
|
|
1000
|
+
if (Date.now() >= deadline)
|
|
1001
|
+
throw new PlatformError('The device clipboard did not accept the text');
|
|
1002
|
+
await new Promise((r) => setTimeout(r, CLIPBOARD_POLL_MS));
|
|
1003
|
+
}
|
|
1004
|
+
// Same guard as input:key — skipping it desyncs the hardware keyboard context.
|
|
1005
|
+
if (state.softKeyboardVisible) {
|
|
1006
|
+
state.softKeyboardVisible = false;
|
|
1007
|
+
await this.simctl.hideSoftwareKeyboard(state.deviceId).catch(() => { });
|
|
1008
|
+
}
|
|
1009
|
+
state.touchHelper.sendKey(KEY_CODE_MAP['KeyV'], MODIFIER_BITS['MetaLeft']);
|
|
1010
|
+
};
|
|
1011
|
+
// Ack only once the write (and the paste, when asked for) actually landed.
|
|
1012
|
+
this.clipboardQueue(state.deviceId, write)
|
|
1013
|
+
.then(() => this.ws?.send(JSON.stringify({ type: 'clipboard:write-done', sessionId, requestId })))
|
|
1014
|
+
.catch((e) => {
|
|
1015
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
1016
|
+
this.ws?.send(JSON.stringify({
|
|
1017
|
+
type: 'clipboard:error', sessionId, requestId, message,
|
|
1018
|
+
payload: { sentinelParked: this.sentinelParked(state.deviceId) },
|
|
1019
|
+
}));
|
|
1020
|
+
});
|
|
1021
|
+
break;
|
|
1022
|
+
}
|
|
765
1023
|
case 'ui:tree:request': {
|
|
766
1024
|
const raw = msg;
|
|
767
1025
|
const { requestId } = raw;
|
package/dist/IOSAgent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IOSAgent.js","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IOSAgent.js","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/SimctlWrapper.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import { PlatformError } from '@tapflowio/agent-core';
|
|
1
2
|
import type { Device } from '@tapflowio/agent-core';
|
|
2
3
|
import { type SimctlRunner } from './simctl.js';
|
|
3
4
|
export declare function isDeviceMissingError(err: unknown): boolean;
|
|
5
|
+
/** The device clipboard held more than `MAX_CLIPBOARD_BYTES`. The app did copy — we just cannot
|
|
6
|
+
* carry it — so a caller mid-handshake must NOT restore over it. */
|
|
7
|
+
export declare class ClipboardTooLargeError extends PlatformError {
|
|
8
|
+
}
|
|
4
9
|
export declare class SimctlWrapper {
|
|
5
10
|
private readonly runner;
|
|
6
11
|
private readonly kbd;
|
|
@@ -15,6 +20,7 @@ export declare class SimctlWrapper {
|
|
|
15
20
|
launchApp(bundleId: string): Promise<number | null>;
|
|
16
21
|
openUrl(deviceId: string, url: string): Promise<void>;
|
|
17
22
|
setPasteboard(deviceId: string, text: string): Promise<void>;
|
|
23
|
+
getPasteboard(deviceId: string): Promise<string>;
|
|
18
24
|
screenshot(format?: 'png' | 'jpeg'): Promise<Buffer>;
|
|
19
25
|
syncKeyboardsFromLanguages(udid: string): Promise<void>;
|
|
20
26
|
rotate(udid: string, orientation: 'portrait' | 'landscapeLeft' | 'landscapeRight' | 'portraitUpsideDown'): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimctlWrapper.d.ts","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SimctlWrapper.d.ts","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAuB,MAAM,uBAAuB,CAAA;AA0C1E,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AA+BnF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAK1D;AAED;qEACqE;AACrE,qBAAa,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;gBAEpB,MAAM,GAAE,YAA4B;IAE3D,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBhC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMnD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAchD,UAAU,CAAC,MAAM,GAAE,KAAK,GAAG,MAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAe3D,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,eAAe,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,kBAAkB,IAAI,IAAI;CAG3B"}
|
package/dist/SimctlWrapper.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { randomUUID } from 'crypto';
|
|
2
|
-
import { execFile
|
|
2
|
+
import { execFile } from 'child_process';
|
|
3
3
|
import { promisify } from 'util';
|
|
4
4
|
import { promises as fs } from 'fs';
|
|
5
5
|
import { tmpdir } from 'os';
|
|
6
6
|
import { join } from 'path';
|
|
7
|
-
import { PlatformError } from '@tapflowio/agent-core';
|
|
7
|
+
import { PlatformError, MAX_CLIPBOARD_BYTES } from '@tapflowio/agent-core';
|
|
8
8
|
const execFileAsync = promisify(execFile);
|
|
9
9
|
const ROTATION_HELPER = join(import.meta.dirname, '..', 'bin', 'rotation-helper');
|
|
10
10
|
// Language code → iOS AppleKeyboards entry string with hw=Automatic.
|
|
@@ -28,7 +28,19 @@ function langToKeyboard(lang) {
|
|
|
28
28
|
const code = lang.split('-')[0].toLowerCase();
|
|
29
29
|
return LANG_KEYBOARD_MAP[code] ?? 'en_US@sw=QWERTY;hw=Automatic';
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
// A hung pasteboard call must not strand the caller: the read path holds a sentinel on the
|
|
32
|
+
// device until it finishes, so "never returns" would leave the device clipboard destroyed.
|
|
33
|
+
const CLIPBOARD_CMD_TIMEOUT_MS = 5_000;
|
|
34
|
+
// simctl failures reach a user-facing toast. Node's first line is "Command failed: <argv>",
|
|
35
|
+
// which says nothing and echoes the device UDID, so prefer any other line. When there is none
|
|
36
|
+
// (e.g. the timeout path, where stderr is empty) fall back to a plain description rather than
|
|
37
|
+
// the argv line this exists to drop.
|
|
38
|
+
function firstLine(e) {
|
|
39
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
40
|
+
const lines = msg.split('\n').map((l) => l.trim()).filter(Boolean);
|
|
41
|
+
return lines.find((l) => !l.startsWith('Command failed:')) ?? 'the simulator did not respond';
|
|
42
|
+
}
|
|
43
|
+
import { defaultRunner, OutputTooLargeError } from './simctl.js';
|
|
32
44
|
import { KeyboardHelperDaemon } from './KeyboardHelperDaemon.js';
|
|
33
45
|
function toDeviceStatus(state) {
|
|
34
46
|
if (state === 'Booted')
|
|
@@ -54,6 +66,10 @@ export function isDeviceMissingError(err) {
|
|
|
54
66
|
const text = [e.message, e.stderr].filter((s) => typeof s === 'string').join(' ');
|
|
55
67
|
return /cannot be located on disk|data is no longer present/i.test(text);
|
|
56
68
|
}
|
|
69
|
+
/** The device clipboard held more than `MAX_CLIPBOARD_BYTES`. The app did copy — we just cannot
|
|
70
|
+
* carry it — so a caller mid-handshake must NOT restore over it. */
|
|
71
|
+
export class ClipboardTooLargeError extends PlatformError {
|
|
72
|
+
}
|
|
57
73
|
export class SimctlWrapper {
|
|
58
74
|
runner;
|
|
59
75
|
kbd = new KeyboardHelperDaemon();
|
|
@@ -134,21 +150,30 @@ export class SimctlWrapper {
|
|
|
134
150
|
async openUrl(deviceId, url) {
|
|
135
151
|
await this.runner.exec('openurl', deviceId, url);
|
|
136
152
|
}
|
|
137
|
-
// Set the device pasteboard from stdin. Not routed through SimctlRunner
|
|
138
|
-
// because pbcopy reads text from stdin, which the exec(...args) contract
|
|
139
|
-
// doesn't carry — same exception as the osascript call in boot(). Used by
|
|
140
|
-
// IOSAgent for input:type (pbcopy → Cmd+V paste).
|
|
141
153
|
async setPasteboard(deviceId, text) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
//
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
154
|
+
try {
|
|
155
|
+
await this.runner.execWithOpts({ input: text, timeoutMs: CLIPBOARD_CMD_TIMEOUT_MS }, 'pbcopy', deviceId);
|
|
156
|
+
}
|
|
157
|
+
catch (e) {
|
|
158
|
+
// This reaches a user-facing toast, and the raw text is multi-line and echoes the argv.
|
|
159
|
+
throw new PlatformError(`Could not write the device clipboard: ${firstLine(e)}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// Read the device pasteboard. Returned verbatim — no trim, since a trailing newline can be
|
|
163
|
+
// part of the copied text. `maxBuffer` is where the clipboard size ceiling is actually
|
|
164
|
+
// enforced for iOS: exceeding it rejects rather than buffering unboundedly, so callers do
|
|
165
|
+
// not re-check the length (a second check there would be unreachable). simctl's own failures are noisy multi-line
|
|
166
|
+
// strings that end up in a user-facing toast, so they are condensed here.
|
|
167
|
+
async getPasteboard(deviceId) {
|
|
168
|
+
try {
|
|
169
|
+
// `maxBuffer` is where the clipboard size ceiling is actually enforced for iOS: exceeding
|
|
170
|
+
// it rejects rather than buffering without bound, so callers do not re-check the length.
|
|
171
|
+
return await this.runner.execWithOpts({ timeoutMs: CLIPBOARD_CMD_TIMEOUT_MS, maxBuffer: MAX_CLIPBOARD_BYTES }, 'pbpaste', deviceId);
|
|
172
|
+
}
|
|
173
|
+
catch (e) {
|
|
174
|
+
const message = `Could not read the device clipboard: ${firstLine(e)}`;
|
|
175
|
+
throw e instanceof OutputTooLargeError ? new ClipboardTooLargeError(message) : new PlatformError(message);
|
|
176
|
+
}
|
|
152
177
|
}
|
|
153
178
|
async screenshot(format = 'png') {
|
|
154
179
|
const ext = format === 'jpeg' ? 'jpg' : 'png';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimctlWrapper.js","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"SimctlWrapper.js","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/simctl.d.ts
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
|
+
/** Options for calls the plain `exec(...args)` shape cannot express. */
|
|
2
|
+
export interface SimctlExecOpts {
|
|
3
|
+
/** Text to write to stdin — `pbcopy` takes its payload that way, not as an argument. */
|
|
4
|
+
input?: string;
|
|
5
|
+
/** Kill the command after this long. Deliberately per-call: a blanket timeout would break
|
|
6
|
+
* legitimately slow calls like `install`. */
|
|
7
|
+
timeoutMs?: number;
|
|
8
|
+
/** Ceiling on stdout. Exceeding it rejects rather than buffering without bound. */
|
|
9
|
+
maxBuffer?: number;
|
|
10
|
+
}
|
|
11
|
+
/** Thrown when a call blows its `maxBuffer`. Distinguishable on purpose: for the clipboard, an
|
|
12
|
+
* over-sized read means the app DID copy and the text simply cannot be carried, whereas a
|
|
13
|
+
* timeout means nothing is known — and the two need opposite recovery. */
|
|
14
|
+
export declare class OutputTooLargeError extends Error {
|
|
15
|
+
}
|
|
1
16
|
export interface SimctlRunner {
|
|
2
17
|
exec(...args: string[]): Promise<string>;
|
|
3
18
|
execBinary(...args: string[]): Promise<Buffer>;
|
|
19
|
+
/** Same CoreSimulatorService recovery as `exec`, for calls that need stdin or bounds.
|
|
20
|
+
* Kept separate so the two shapes above stay untouched for their many callers. */
|
|
21
|
+
execWithOpts(opts: SimctlExecOpts, ...args: string[]): Promise<string>;
|
|
4
22
|
}
|
|
5
23
|
export declare const defaultRunner: SimctlRunner;
|
|
6
24
|
//# sourceMappingURL=simctl.d.ts.map
|
package/dist/simctl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simctl.d.ts","sourceRoot":"","sources":["../src/simctl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"simctl.d.ts","sourceRoot":"","sources":["../src/simctl.ts"],"names":[],"mappings":"AAwBA,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;kDAC8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;2EAE2E;AAC3E,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAEjD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,UAAU,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9C;uFACmF;IACnF,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACvE;AA+ED,eAAO,MAAM,aAAa,EAAE,YA6D3B,CAAA"}
|
package/dist/simctl.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { execFile } from 'child_process';
|
|
1
|
+
import { execFile, spawn } from 'child_process';
|
|
2
2
|
import { promisify } from 'util';
|
|
3
3
|
import { createLogger } from '@tapflowio/agent-core';
|
|
4
4
|
const logger = createLogger('ios-agent:simctl');
|
|
5
5
|
const execFileAsync = promisify(execFile);
|
|
6
|
+
// stderr is only ever read to build an error message, so a runaway one is pure waste.
|
|
7
|
+
const MAX_STDERR_BYTES = 64 * 1024;
|
|
6
8
|
function isCoreSimulatorVersionMismatch(err) {
|
|
7
9
|
const msg = err.stderr
|
|
8
10
|
?? err.message ?? '';
|
|
@@ -14,6 +16,11 @@ async function restartCoreSimulatorService() {
|
|
|
14
16
|
await execFileAsync('killall', ['-9', 'com.apple.CoreSimulator.CoreSimulatorService']).catch(() => { });
|
|
15
17
|
await new Promise((r) => setTimeout(r, 3000));
|
|
16
18
|
}
|
|
19
|
+
/** Thrown when a call blows its `maxBuffer`. Distinguishable on purpose: for the clipboard, an
|
|
20
|
+
* over-sized read means the app DID copy and the text simply cannot be carried, whereas a
|
|
21
|
+
* timeout means nothing is known — and the two need opposite recovery. */
|
|
22
|
+
export class OutputTooLargeError extends Error {
|
|
23
|
+
}
|
|
17
24
|
const CORE_SIM_DOCS_URL = 'https://tapflow.dev/guide/troubleshooting#ios-simulator-service-version-mismatch';
|
|
18
25
|
function coreSimServiceError() {
|
|
19
26
|
return new Error('CoreSimulatorService version mismatch — the service could not be recovered automatically.\n' +
|
|
@@ -21,6 +28,73 @@ function coreSimServiceError() {
|
|
|
21
28
|
' killall -9 com.apple.CoreSimulator.CoreSimulatorService\n\n' +
|
|
22
29
|
`See ${CORE_SIM_DOCS_URL}`);
|
|
23
30
|
}
|
|
31
|
+
// `input` rules out execFile (it has no stdin channel), so this spawns and pumps stdin itself.
|
|
32
|
+
// Everything else — timeout, stdout ceiling, exit-code handling — is reproduced here rather
|
|
33
|
+
// than inherited, which is the price of `pbcopy` not being expressible as arguments.
|
|
34
|
+
function runWithOpts(opts, args) {
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
const proc = spawn('xcrun', ['simctl', ...args]);
|
|
37
|
+
// Accumulate BYTES and decode once at the end. Decoding each chunk as it arrives splits
|
|
38
|
+
// multi-byte characters at pipe boundaries and turns them into U+FFFD — execFile avoided
|
|
39
|
+
// that by running stdout through a StringDecoder, and this path has to reproduce it.
|
|
40
|
+
// Keeping bytes also makes the maxBuffer accounting exact instead of measuring a string
|
|
41
|
+
// that may already contain replacement characters.
|
|
42
|
+
const chunks = [];
|
|
43
|
+
let bytes = 0;
|
|
44
|
+
const stderrChunks = [];
|
|
45
|
+
let stderrBytes = 0;
|
|
46
|
+
let over = false;
|
|
47
|
+
let settled = false;
|
|
48
|
+
let timer;
|
|
49
|
+
const finish = (err, out) => {
|
|
50
|
+
if (settled)
|
|
51
|
+
return;
|
|
52
|
+
settled = true;
|
|
53
|
+
clearTimeout(timer);
|
|
54
|
+
if (err)
|
|
55
|
+
reject(err);
|
|
56
|
+
else
|
|
57
|
+
resolve(out ?? '');
|
|
58
|
+
};
|
|
59
|
+
proc.stdout?.on('data', (d) => {
|
|
60
|
+
chunks.push(d);
|
|
61
|
+
bytes += d.length;
|
|
62
|
+
if (opts.maxBuffer && bytes > opts.maxBuffer) {
|
|
63
|
+
over = true;
|
|
64
|
+
proc.kill('SIGKILL');
|
|
65
|
+
finish(new OutputTooLargeError('stdout maxBuffer length exceeded'));
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
// Same treatment as stdout: keep bytes, decode once. Bounded like execFile bounded it.
|
|
69
|
+
proc.stderr?.on('data', (d) => {
|
|
70
|
+
if (stderrBytes >= MAX_STDERR_BYTES)
|
|
71
|
+
return;
|
|
72
|
+
// Slice to the remaining budget: testing before pushing the WHOLE chunk let a single
|
|
73
|
+
// `data` event carry the total past the ceiling the constant names.
|
|
74
|
+
const room = MAX_STDERR_BYTES - stderrBytes;
|
|
75
|
+
const slice = d.length > room ? d.subarray(0, room) : d;
|
|
76
|
+
stderrChunks.push(slice);
|
|
77
|
+
stderrBytes += slice.length;
|
|
78
|
+
});
|
|
79
|
+
proc.on('error', (e) => finish(e));
|
|
80
|
+
proc.on('close', (code) => {
|
|
81
|
+
if (over)
|
|
82
|
+
return;
|
|
83
|
+
const stdout = Buffer.concat(chunks).toString('utf8');
|
|
84
|
+
const stderr = Buffer.concat(stderrChunks).toString('utf8');
|
|
85
|
+
finish(code === 0 ? undefined : new Error(stderr.trim() || `simctl ${args[0]} exited ${code}`), stdout);
|
|
86
|
+
});
|
|
87
|
+
if (opts.timeoutMs) {
|
|
88
|
+
timer = setTimeout(() => { proc.kill('SIGKILL'); finish(new Error(`simctl ${args[0]} timed out`)); }, opts.timeoutMs);
|
|
89
|
+
}
|
|
90
|
+
if (opts.input !== undefined) {
|
|
91
|
+
// An unhandled stream 'error' would take the process down, so route it to the promise.
|
|
92
|
+
proc.stdin.on('error', (e) => finish(e));
|
|
93
|
+
proc.stdin.write(opts.input);
|
|
94
|
+
proc.stdin.end();
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
24
98
|
export const defaultRunner = {
|
|
25
99
|
async exec(...args) {
|
|
26
100
|
try {
|
|
@@ -36,8 +110,35 @@ export const defaultRunner = {
|
|
|
36
110
|
const { stdout } = await execFileAsync('xcrun', ['simctl', ...args]);
|
|
37
111
|
return stdout;
|
|
38
112
|
}
|
|
39
|
-
catch {
|
|
40
|
-
|
|
113
|
+
catch (retryErr) {
|
|
114
|
+
// Only claim the version mismatch if that is still what failed. Reporting it for an
|
|
115
|
+
// unrelated failure hides the real cause — and erases `OutputTooLargeError`, which
|
|
116
|
+
// `getPasteboard` needs to distinguish "the app copied something too big to carry"
|
|
117
|
+
// from "the read failed", the two having opposite recovery.
|
|
118
|
+
throw isCoreSimulatorVersionMismatch(retryErr) ? coreSimServiceError() : retryErr;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
async execWithOpts(opts, ...args) {
|
|
123
|
+
try {
|
|
124
|
+
return await runWithOpts(opts, args);
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
// Same self-healing every other simctl call gets. Before this existed the clipboard was
|
|
128
|
+
// the one path that could not recover from a service version mismatch.
|
|
129
|
+
if (!isCoreSimulatorVersionMismatch(err))
|
|
130
|
+
throw err;
|
|
131
|
+
logger.warn('CoreSimulatorService version mismatch — restarting service and retrying');
|
|
132
|
+
await restartCoreSimulatorService();
|
|
133
|
+
try {
|
|
134
|
+
return await runWithOpts(opts, args);
|
|
135
|
+
}
|
|
136
|
+
catch (retryErr) {
|
|
137
|
+
// Only claim the version mismatch if that is still what failed. Reporting it for an
|
|
138
|
+
// unrelated failure hides the real cause — and erases `OutputTooLargeError`, which
|
|
139
|
+
// `getPasteboard` needs to distinguish "the app copied something too big to carry"
|
|
140
|
+
// from "the read failed", the two having opposite recovery.
|
|
141
|
+
throw isCoreSimulatorVersionMismatch(retryErr) ? coreSimServiceError() : retryErr;
|
|
41
142
|
}
|
|
42
143
|
}
|
|
43
144
|
},
|
|
@@ -55,8 +156,12 @@ export const defaultRunner = {
|
|
|
55
156
|
const { stdout } = await execFileAsync('xcrun', ['simctl', ...args], { encoding: 'buffer' });
|
|
56
157
|
return stdout;
|
|
57
158
|
}
|
|
58
|
-
catch {
|
|
59
|
-
|
|
159
|
+
catch (retryErr) {
|
|
160
|
+
// Only claim the version mismatch if that is still what failed. Reporting it for an
|
|
161
|
+
// unrelated failure hides the real cause — and erases `OutputTooLargeError`, which
|
|
162
|
+
// `getPasteboard` needs to distinguish "the app copied something too big to carry"
|
|
163
|
+
// from "the read failed", the two having opposite recovery.
|
|
164
|
+
throw isCoreSimulatorVersionMismatch(retryErr) ? coreSimServiceError() : retryErr;
|
|
60
165
|
}
|
|
61
166
|
}
|
|
62
167
|
},
|
package/dist/simctl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simctl.js","sourceRoot":"","sources":["../src/simctl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"simctl.js","sourceRoot":"","sources":["../src/simctl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAE/C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEzC,sFAAsF;AACtF,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAA;AAElC,SAAS,8BAA8B,CAAC,GAAY;IAClD,MAAM,GAAG,GAAI,GAA6C,CAAC,MAAM;WAC3D,GAA4B,CAAC,OAAO,IAAI,EAAE,CAAA;IAChD,OAAO,GAAG,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAA;AAC9F,CAAC;AAED,KAAK,UAAU,2BAA2B;IACxC,sEAAsE;IACtE,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,8CAA8C,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACtG,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;AACrD,CAAC;AAaD;;2EAE2E;AAC3E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;CAAG;AAUjD,MAAM,iBAAiB,GAAG,kFAAkF,CAAA;AAE5G,SAAS,mBAAmB;IAC1B,OAAO,IAAI,KAAK,CACd,6FAA6F;QAC7F,8CAA8C;QAC9C,+DAA+D;QAC/D,OAAO,iBAAiB,EAAE,CAC3B,CAAA;AACH,CAAC;AAED,+FAA+F;AAC/F,4FAA4F;AAC5F,qFAAqF;AACrF,SAAS,WAAW,CAAC,IAAoB,EAAE,IAAc;IACvD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QAChD,wFAAwF;QACxF,yFAAyF;QACzF,qFAAqF;QACrF,wFAAwF;QACxF,mDAAmD;QACnD,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,MAAM,YAAY,GAAa,EAAE,CAAA;QACjC,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,IAAI,IAAI,GAAG,KAAK,CAAA;QAChB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,KAAgD,CAAA;QACpD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,GAAY,EAAE,EAAE;YAC3C,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAA;;gBACf,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QACzB,CAAC,CAAA;QAED,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACpC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACd,KAAK,IAAI,CAAC,CAAC,MAAM,CAAA;YACjB,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7C,IAAI,GAAG,IAAI,CAAA;gBACX,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACpB,MAAM,CAAC,IAAI,mBAAmB,CAAC,kCAAkC,CAAC,CAAC,CAAA;YACrE,CAAC;QACH,CAAC,CAAC,CAAA;QACF,uFAAuF;QACvF,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACpC,IAAI,WAAW,IAAI,gBAAgB;gBAAE,OAAM;YAC3C,qFAAqF;YACrF,oEAAoE;YACpE,MAAM,IAAI,GAAG,gBAAgB,GAAG,WAAW,CAAA;YAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACvD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,WAAW,IAAI,KAAK,CAAC,MAAM,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI;gBAAE,OAAM;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAC3D,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACtH,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,uFAAuF;YACvF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAc;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;YACpE,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;YACnD,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;YACtF,MAAM,2BAA2B,EAAE,CAAA;YACnC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBACpE,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,oFAAoF;gBACpF,mFAAmF;gBACnF,mFAAmF;gBACnF,4DAA4D;gBAC5D,MAAM,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,IAAoB,EAAE,GAAG,IAAc;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wFAAwF;YACxF,uEAAuE;YACvE,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;YACnD,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;YACtF,MAAM,2BAA2B,EAAE,CAAA;YACnC,IAAI,CAAC;gBACH,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,oFAAoF;gBACpF,mFAAmF;gBACnF,mFAAmF;gBACnF,4DAA4D;gBAC5D,MAAM,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,GAAG,IAAc;QAChC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC5F,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;YACnD,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;YACtF,MAAM,2BAA2B,EAAE,CAAA;YACnC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAC5F,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,oFAAoF;gBACpF,mFAAmF;gBACnF,mFAAmF;gBACnF,4DAA4D;gBAC5D,MAAM,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;YACnF,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tapflowio/ios-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "iOS simulator agent for tapflow — xcrun simctl control and screen streaming",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tapflow",
|
|
@@ -53,15 +53,15 @@
|
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"ws": "^8.21.1",
|
|
56
|
-
"@tapflowio/agent-core": "0.
|
|
57
|
-
"@tapflowio/audiotap-helper": "0.2.
|
|
56
|
+
"@tapflowio/agent-core": "0.17.0",
|
|
57
|
+
"@tapflowio/audiotap-helper": "0.2.7"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@types/node": "^20.19.43",
|
|
61
61
|
"@types/ws": "^8.0.0",
|
|
62
62
|
"typescript": "^5.0.0",
|
|
63
63
|
"vitest": "^4.1.10",
|
|
64
|
-
"@tapflowio/relay": "0.
|
|
64
|
+
"@tapflowio/relay": "0.17.0"
|
|
65
65
|
},
|
|
66
66
|
"scripts": {
|
|
67
67
|
"postinstall": "node -e \"if (process.platform === 'darwin') { require('fs').readdirSync('bin').forEach(f => require('fs').chmodSync('bin/' + f, 0o755)) }\"",
|