@ytspar/sweetlink 1.20.0 → 1.21.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/cli/sweetlink.js +18 -4
- package/dist/cli/sweetlink.js.map +1 -1
- package/dist/daemon/evidence.js +1 -1
- package/dist/daemon/evidence.js.map +1 -1
- package/dist/daemon/listeners.js +1 -1
- package/dist/daemon/listeners.js.map +1 -1
- package/dist/daemon/recording.js +4 -4
- package/dist/daemon/recording.js.map +1 -1
- package/dist/daemon/refs.js +1 -1
- package/dist/daemon/refs.js.map +1 -1
- package/dist/daemon/ringBuffer.d.ts +8 -0
- package/dist/daemon/ringBuffer.d.ts.map +1 -1
- package/dist/daemon/ringBuffer.js +17 -0
- package/dist/daemon/ringBuffer.js.map +1 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +79 -14
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/stateFile.js +2 -2
- package/dist/daemon/stateFile.js.map +1 -1
- package/dist/daemon/summary.js +2 -2
- package/dist/daemon/summary.js.map +1 -1
- package/dist/daemon/viewer.js +3 -3
- package/dist/daemon/viewer.js.map +1 -1
- package/dist/daemon/visualDiff.js +1 -1
- package/dist/daemon/visualDiff.js.map +1 -1
- package/dist/next.js +3 -3
- package/dist/next.js.map +1 -1
- package/dist/simulator/android.d.ts +13 -0
- package/dist/simulator/android.d.ts.map +1 -1
- package/dist/simulator/android.js +62 -0
- package/dist/simulator/android.js.map +1 -1
- package/dist/simulator/androidTaps.d.ts +99 -0
- package/dist/simulator/androidTaps.d.ts.map +1 -0
- package/dist/simulator/androidTaps.js +162 -0
- package/dist/simulator/androidTaps.js.map +1 -0
- package/dist/simulator/overlay.d.ts +41 -0
- package/dist/simulator/overlay.d.ts.map +1 -0
- package/dist/simulator/overlay.js +78 -0
- package/dist/simulator/overlay.js.map +1 -0
- package/dist/term/player.js +1 -1
- package/dist/term/player.js.map +1 -1
- package/dist/term/recorder.js +1 -1
- package/dist/term/recorder.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/sweetlink.js
CHANGED
|
@@ -1935,15 +1935,21 @@ const COMMAND_HELP = {
|
|
|
1935
1935
|
--label <text> Embedded in filename
|
|
1936
1936
|
--device <name|udid> Pick a specific simulator/emulator (default: first booted)
|
|
1937
1937
|
--time-limit <sec> Android only — caps screen recording (max 180)
|
|
1938
|
+
--app <name> Group artifacts under .sweetlink/<app>/<YYYYMMDD>/<run>/sim/
|
|
1939
|
+
--run <id> Override the auto-generated run id
|
|
1940
|
+
--no-overlays Android only — skip tap-event capture and ffmpeg overlay
|
|
1938
1941
|
--ignore-exit Don't propagate the recorded command's exit code
|
|
1939
1942
|
|
|
1940
1943
|
Requirements:
|
|
1941
1944
|
iOS: Xcode + a booted Simulator (Simulator.app)
|
|
1942
1945
|
Android: Android Platform Tools (\`adb\`) + a running emulator
|
|
1946
|
+
Tap-indicator overlays additionally need \`ffmpeg\` on PATH;
|
|
1947
|
+
without it, taps are still captured to a sidecar .taps.json.
|
|
1943
1948
|
|
|
1944
1949
|
Examples:
|
|
1945
1950
|
pnpm sweetlink sim ios "fastlane scan" --device "iPhone 15"
|
|
1946
|
-
pnpm sweetlink sim android "./gradlew connectedAndroidTest"
|
|
1951
|
+
pnpm sweetlink sim android "./gradlew connectedAndroidTest"
|
|
1952
|
+
pnpm sweetlink sim android "appium run" --no-overlays`,
|
|
1947
1953
|
term: ` term <command...>
|
|
1948
1954
|
Record a shell command's stdout/stderr into asciicast v2 + a self-contained
|
|
1949
1955
|
HTML player. Captures real timing; the player has play/pause, 0.1×–4×
|
|
@@ -2111,7 +2117,7 @@ if (!commandType || commandType === '--help' || commandType === '-h') {
|
|
|
2111
2117
|
}
|
|
2112
2118
|
catch (err) {
|
|
2113
2119
|
const msg = err instanceof Error ? err.message : String(err);
|
|
2114
|
-
process.stdout.write(JSON.stringify({ ok: false, error: msg })
|
|
2120
|
+
process.stdout.write(`${JSON.stringify({ ok: false, error: msg })}\n`);
|
|
2115
2121
|
process.exit(1);
|
|
2116
2122
|
}
|
|
2117
2123
|
}
|
|
@@ -2157,11 +2163,11 @@ async function runBatchFromStdin() {
|
|
|
2157
2163
|
}
|
|
2158
2164
|
}
|
|
2159
2165
|
const allOk = results.every((r) => r.ok);
|
|
2160
|
-
process.stdout.write(JSON.stringify({
|
|
2166
|
+
process.stdout.write(`${JSON.stringify({
|
|
2161
2167
|
ok: allOk,
|
|
2162
2168
|
duration: Date.now() - startTime,
|
|
2163
2169
|
captures: results,
|
|
2164
|
-
})
|
|
2170
|
+
})}\n`);
|
|
2165
2171
|
if (!allOk)
|
|
2166
2172
|
process.exit(1);
|
|
2167
2173
|
}
|
|
@@ -3094,6 +3100,7 @@ async function handleStatusCommand() {
|
|
|
3094
3100
|
output,
|
|
3095
3101
|
device,
|
|
3096
3102
|
timeLimit: tl ? parseInt(tl, 10) : undefined,
|
|
3103
|
+
overlays: !hasFlag('--no-overlays'),
|
|
3097
3104
|
});
|
|
3098
3105
|
}
|
|
3099
3106
|
let sizeKb = '?';
|
|
@@ -3103,8 +3110,12 @@ async function handleStatusCommand() {
|
|
|
3103
3110
|
catch {
|
|
3104
3111
|
/* file may not exist if recordingClosed is false */
|
|
3105
3112
|
}
|
|
3113
|
+
const tapSuffix = (recResult.tapCount ?? 0) > 0
|
|
3114
|
+
? ` · ${recResult.tapCount} taps${recResult.overlaysApplied ? ' (overlaid)' : ' (sidecar only — install ffmpeg for overlays)'}`
|
|
3115
|
+
: '';
|
|
3106
3116
|
console.log(`[Sweetlink] ${recResult.recordingClosed ? '✓' : '⚠'} ${getRelativePath(output)} · ` +
|
|
3107
3117
|
`${recResult.durationSec.toFixed(1)}s · ${sizeKb}KB · ${recResult.device} · exit=${recResult.exitCode}` +
|
|
3118
|
+
tapSuffix +
|
|
3108
3119
|
(recResult.recordingClosed
|
|
3109
3120
|
? ''
|
|
3110
3121
|
: ' (recording was force-killed; mp4 may be incomplete)'));
|
|
@@ -3114,6 +3125,9 @@ async function handleStatusCommand() {
|
|
|
3114
3125
|
durationSec: recResult.durationSec,
|
|
3115
3126
|
exitCode: recResult.exitCode,
|
|
3116
3127
|
recordingClosed: recResult.recordingClosed,
|
|
3128
|
+
tapCount: recResult.tapCount,
|
|
3129
|
+
tapsJsonPath: recResult.tapsJsonPath,
|
|
3130
|
+
overlaysApplied: recResult.overlaysApplied,
|
|
3117
3131
|
};
|
|
3118
3132
|
if (recResult.exitCode !== 0 && !hasFlag('--ignore-exit')) {
|
|
3119
3133
|
process.exit(recResult.exitCode);
|