@ytspar/sweetlink 1.19.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.
Files changed (94) hide show
  1. package/README.md +40 -0
  2. package/dist/cli/outputSchemas.d.ts +57 -1
  3. package/dist/cli/outputSchemas.d.ts.map +1 -1
  4. package/dist/cli/outputSchemas.js +36 -1
  5. package/dist/cli/outputSchemas.js.map +1 -1
  6. package/dist/cli/sweetlink.js +400 -48
  7. package/dist/cli/sweetlink.js.map +1 -1
  8. package/dist/daemon/browser.d.ts.map +1 -1
  9. package/dist/daemon/browser.js.map +1 -1
  10. package/dist/daemon/client.d.ts +7 -0
  11. package/dist/daemon/client.d.ts.map +1 -1
  12. package/dist/daemon/client.js +16 -2
  13. package/dist/daemon/client.js.map +1 -1
  14. package/dist/daemon/demo.d.ts.map +1 -1
  15. package/dist/daemon/demo.js +6 -2
  16. package/dist/daemon/demo.js.map +1 -1
  17. package/dist/daemon/diff.d.ts.map +1 -1
  18. package/dist/daemon/diff.js +5 -3
  19. package/dist/daemon/diff.js.map +1 -1
  20. package/dist/daemon/evidence.d.ts.map +1 -1
  21. package/dist/daemon/evidence.js +6 -6
  22. package/dist/daemon/evidence.js.map +1 -1
  23. package/dist/daemon/index.js +1 -1
  24. package/dist/daemon/index.js.map +1 -1
  25. package/dist/daemon/listeners.d.ts.map +1 -1
  26. package/dist/daemon/listeners.js +8 -6
  27. package/dist/daemon/listeners.js.map +1 -1
  28. package/dist/daemon/recording.d.ts +5 -0
  29. package/dist/daemon/recording.d.ts.map +1 -1
  30. package/dist/daemon/recording.js +38 -15
  31. package/dist/daemon/recording.js.map +1 -1
  32. package/dist/daemon/refs.d.ts.map +1 -1
  33. package/dist/daemon/refs.js +1 -1
  34. package/dist/daemon/refs.js.map +1 -1
  35. package/dist/daemon/ringBuffer.d.ts +8 -0
  36. package/dist/daemon/ringBuffer.d.ts.map +1 -1
  37. package/dist/daemon/ringBuffer.js +17 -0
  38. package/dist/daemon/ringBuffer.js.map +1 -1
  39. package/dist/daemon/server.d.ts.map +1 -1
  40. package/dist/daemon/server.js +490 -86
  41. package/dist/daemon/server.js.map +1 -1
  42. package/dist/daemon/stateFile.js +2 -2
  43. package/dist/daemon/stateFile.js.map +1 -1
  44. package/dist/daemon/summary.d.ts +1 -1
  45. package/dist/daemon/summary.d.ts.map +1 -1
  46. package/dist/daemon/summary.js +2 -2
  47. package/dist/daemon/summary.js.map +1 -1
  48. package/dist/daemon/types.d.ts +1 -1
  49. package/dist/daemon/types.d.ts.map +1 -1
  50. package/dist/daemon/types.js.map +1 -1
  51. package/dist/daemon/viewer.d.ts +1 -1
  52. package/dist/daemon/viewer.d.ts.map +1 -1
  53. package/dist/daemon/viewer.js +21 -13
  54. package/dist/daemon/viewer.js.map +1 -1
  55. package/dist/daemon/visualDiff.js +1 -1
  56. package/dist/daemon/visualDiff.js.map +1 -1
  57. package/dist/next.js +3 -3
  58. package/dist/next.js.map +1 -1
  59. package/dist/ruler.js +3 -1
  60. package/dist/ruler.js.map +1 -1
  61. package/dist/runs.d.ts +34 -0
  62. package/dist/runs.d.ts.map +1 -0
  63. package/dist/runs.js +61 -0
  64. package/dist/runs.js.map +1 -0
  65. package/dist/server/index.d.ts.map +1 -1
  66. package/dist/server/index.js +20 -10
  67. package/dist/server/index.js.map +1 -1
  68. package/dist/simulator/android.d.ts +13 -0
  69. package/dist/simulator/android.d.ts.map +1 -1
  70. package/dist/simulator/android.js +75 -5
  71. package/dist/simulator/android.js.map +1 -1
  72. package/dist/simulator/androidTaps.d.ts +99 -0
  73. package/dist/simulator/androidTaps.d.ts.map +1 -0
  74. package/dist/simulator/androidTaps.js +162 -0
  75. package/dist/simulator/androidTaps.js.map +1 -0
  76. package/dist/simulator/ios.d.ts.map +1 -1
  77. package/dist/simulator/ios.js +13 -5
  78. package/dist/simulator/ios.js.map +1 -1
  79. package/dist/simulator/overlay.d.ts +41 -0
  80. package/dist/simulator/overlay.d.ts.map +1 -0
  81. package/dist/simulator/overlay.js +78 -0
  82. package/dist/simulator/overlay.js.map +1 -0
  83. package/dist/term/ansi.d.ts.map +1 -1
  84. package/dist/term/ansi.js +49 -14
  85. package/dist/term/ansi.js.map +1 -1
  86. package/dist/term/player.d.ts.map +1 -1
  87. package/dist/term/player.js +5 -5
  88. package/dist/term/player.js.map +1 -1
  89. package/dist/term/recorder.js +1 -1
  90. package/dist/term/recorder.js.map +1 -1
  91. package/dist/vite.d.ts.map +1 -1
  92. package/dist/vite.js +8 -4
  93. package/dist/vite.js.map +1 -1
  94. package/package.json +1 -1
package/dist/runs.d.ts ADDED
@@ -0,0 +1,34 @@
1
+ /**
2
+ * App-scoped run directory hierarchy.
3
+ *
4
+ * When `--app <name>` is provided, artifacts (term casts, sim mp4s, recording
5
+ * sessions) live under:
6
+ *
7
+ * <baseDir>/<app>/<YYYYMMDD>/<run>/
8
+ *
9
+ * `run` is auto-generated from the local time (HHMM) at first call so a
10
+ * single test run groups its artifacts, but can be overridden via SWEETLINK_RUN.
11
+ *
12
+ * Without `--app`, callers fall back to the historical flat layout under
13
+ * `<baseDir>/` so existing scripts and the daemon's own state files keep
14
+ * working unchanged.
15
+ */
16
+ export interface RunSlotOptions {
17
+ /** Project root or other absolute base — usually findProjectRoot(). */
18
+ baseDir: string;
19
+ /** Logical app name. When omitted, returns the flat layout (just baseDir). */
20
+ app?: string;
21
+ /** Override the run identifier. Defaults to env SWEETLINK_RUN or HHMM. */
22
+ run?: string;
23
+ /** Subdirectory inside the run slot — typically "term" / "sim" / "" (sessions). */
24
+ kind?: 'term' | 'sim' | 'session' | '';
25
+ }
26
+ /**
27
+ * Resolve the artifact directory for a capture.
28
+ * - With `app`: <base>/<app>/<YYYYMMDD>/<run>[/<kind>]
29
+ * - Without: <base>[/<kindMap>] (back-compat with .sweetlink/term, etc.)
30
+ */
31
+ export declare function runSlot(options: RunSlotOptions): string;
32
+ /** Reset the cached run id — used in tests. */
33
+ export declare function _resetRunCache(): void;
34
+ //# sourceMappingURL=runs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,EAAE,CAAC;CACxC;AAuBD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAcvD;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
package/dist/runs.js ADDED
@@ -0,0 +1,61 @@
1
+ /**
2
+ * App-scoped run directory hierarchy.
3
+ *
4
+ * When `--app <name>` is provided, artifacts (term casts, sim mp4s, recording
5
+ * sessions) live under:
6
+ *
7
+ * <baseDir>/<app>/<YYYYMMDD>/<run>/
8
+ *
9
+ * `run` is auto-generated from the local time (HHMM) at first call so a
10
+ * single test run groups its artifacts, but can be overridden via SWEETLINK_RUN.
11
+ *
12
+ * Without `--app`, callers fall back to the historical flat layout under
13
+ * `<baseDir>/` so existing scripts and the daemon's own state files keep
14
+ * working unchanged.
15
+ */
16
+ import * as path from 'path';
17
+ let _cachedRun = null;
18
+ function defaultRunId() {
19
+ if (_cachedRun)
20
+ return _cachedRun;
21
+ if (process.env.SWEETLINK_RUN) {
22
+ _cachedRun = process.env.SWEETLINK_RUN;
23
+ return _cachedRun;
24
+ }
25
+ const d = new Date();
26
+ const pad = (n) => String(n).padStart(2, '0');
27
+ // HHMM-SS — short and human-readable. The date component lives in the
28
+ // parent directory, so duplicating it here would be noise.
29
+ _cachedRun = `${pad(d.getHours())}${pad(d.getMinutes())}-${pad(d.getSeconds())}`;
30
+ return _cachedRun;
31
+ }
32
+ function todayYmd() {
33
+ const d = new Date();
34
+ const pad = (n) => String(n).padStart(2, '0');
35
+ return `${d.getFullYear()}${pad(d.getMonth() + 1)}${pad(d.getDate())}`;
36
+ }
37
+ /**
38
+ * Resolve the artifact directory for a capture.
39
+ * - With `app`: <base>/<app>/<YYYYMMDD>/<run>[/<kind>]
40
+ * - Without: <base>[/<kindMap>] (back-compat with .sweetlink/term, etc.)
41
+ */
42
+ export function runSlot(options) {
43
+ const baseDir = options.baseDir.endsWith('.sweetlink')
44
+ ? options.baseDir
45
+ : path.join(options.baseDir, '.sweetlink');
46
+ if (!options.app) {
47
+ if (!options.kind || options.kind === 'session')
48
+ return baseDir;
49
+ return path.join(baseDir, options.kind);
50
+ }
51
+ const run = options.run ?? defaultRunId();
52
+ const head = path.join(baseDir, options.app, todayYmd(), run);
53
+ if (!options.kind || options.kind === 'session')
54
+ return head;
55
+ return path.join(head, options.kind);
56
+ }
57
+ /** Reset the cached run id — used in tests. */
58
+ export function _resetRunCache() {
59
+ _cachedRun = null;
60
+ }
61
+ //# sourceMappingURL=runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAa7B,IAAI,UAAU,GAAkB,IAAI,CAAC;AACrC,SAAS,YAAY;IACnB,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QACvC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,sEAAsE;IACtE,2DAA2D;IAC3D,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;IACjF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAuB;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QACpD,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE7C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,cAAc;IAC5B,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAa,eAAe,EAAE,MAAM,IAAI,CAAC;AAGhD,OAAO,KAAK,EAGV,UAAU,EAEV,iBAAiB,EAMjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAoErB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AAqFnF;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,wGAAwG;IACxG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiGrF;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,kCAAkC;AAClC,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,kCAAkC;AAClC,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED,uBAAuB;AACvB,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAE/C;AA+xBD,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA2C9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAa,eAAe,EAAE,MAAM,IAAI,CAAC;AAGhD,OAAO,KAAK,EAGV,UAAU,EAEV,iBAAiB,EAMjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAoErB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AAqFnF;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,wGAAwG;IACxG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiGrF;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEhD;AAED,kCAAkC;AAClC,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,kCAAkC;AAClC,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED,uBAAuB;AACvB,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAE/C;AAi0BD,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA2C9C"}
@@ -5,8 +5,8 @@
5
5
  */
6
6
  import { execFileSync } from 'child_process';
7
7
  import * as fs from 'fs';
8
- import * as path from 'path';
9
8
  import { createServer } from 'http';
9
+ import * as path from 'path';
10
10
  import { WebSocket, WebSocketServer } from 'ws';
11
11
  import { getErrorMessage, isDesignReviewScreenshotData, isSaveA11yData, isSaveConsoleLogsData, isSaveOutlineData, isSaveSchemaData, isSaveScreenshotData, isSaveSettingsData, } from '../types.js';
12
12
  // Import constants
@@ -87,8 +87,8 @@ let httpServer = null;
87
87
  let activePort = null;
88
88
  let associatedAppPort = null;
89
89
  let projectRoot = null;
90
- let gitBranch = undefined;
91
- let appName = undefined;
90
+ let gitBranch;
91
+ let appName;
92
92
  const clients = new Map();
93
93
  // WeakMap for CLI client references (prevents memory leaks)
94
94
  const cliClientMap = new WeakMap();
@@ -622,7 +622,9 @@ async function handleHifiScreenshot(_command, ctx) {
622
622
  let daemonState = null;
623
623
  // Find daemon state file (port-scoped or generic)
624
624
  try {
625
- const files = fs.readdirSync(stateDir).filter((f) => f.startsWith('daemon') && f.endsWith('.json'));
625
+ const files = fs
626
+ .readdirSync(stateDir)
627
+ .filter((f) => f.startsWith('daemon') && f.endsWith('.json'));
626
628
  for (const f of files) {
627
629
  const candidate = JSON.parse(fs.readFileSync(path.join(stateDir, f), 'utf-8'));
628
630
  if (candidate.port && candidate.token) {
@@ -631,7 +633,9 @@ async function handleHifiScreenshot(_command, ctx) {
631
633
  }
632
634
  }
633
635
  }
634
- catch { /* no daemon */ }
636
+ catch {
637
+ /* no daemon */
638
+ }
635
639
  if (!daemonState) {
636
640
  sendError(ctx.ws, 'hifi-screenshot', 'Daemon not running. Start it with: sweetlink daemon start');
637
641
  return true;
@@ -642,7 +646,7 @@ async function handleHifiScreenshot(_command, ctx) {
642
646
  headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${daemonState.token}` },
643
647
  body: '{}',
644
648
  });
645
- const body = await resp.json();
649
+ const body = (await resp.json());
646
650
  if (body.ok && body.data) {
647
651
  // Save the screenshot
648
652
  const dir = path.join(getProjectRoot(), '.tmp', 'sweetlink-screenshots');
@@ -698,10 +702,13 @@ async function handleDemoCommand(command, ctx) {
698
702
  try {
699
703
  daemonState = JSON.parse(fs.readFileSync(daemonStateFile, 'utf-8'));
700
704
  }
701
- catch { /* try port-scoped */ }
705
+ catch {
706
+ /* try port-scoped */
707
+ }
702
708
  if (!daemonState) {
703
709
  // Try to find any daemon-*.json
704
- const files = fs.readdirSync(path.join(getProjectRoot(), '.sweetlink'))
710
+ const files = fs
711
+ .readdirSync(path.join(getProjectRoot(), '.sweetlink'))
705
712
  .filter((f) => f.startsWith('daemon-') && f.endsWith('.json'));
706
713
  if (files[0]) {
707
714
  daemonState = JSON.parse(fs.readFileSync(path.join(getProjectRoot(), '.sweetlink', files[0]), 'utf-8'));
@@ -713,10 +720,13 @@ async function handleDemoCommand(command, ctx) {
713
720
  }
714
721
  const resp = await fetch(`http://127.0.0.1:${daemonState.port}/api/screenshot`, {
715
722
  method: 'POST',
716
- headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${daemonState.token}` },
723
+ headers: {
724
+ 'Content-Type': 'application/json',
725
+ Authorization: `Bearer ${daemonState.token}`,
726
+ },
717
727
  body: '{}',
718
728
  });
719
- const body = await resp.json();
729
+ const body = (await resp.json());
720
730
  if (!body.ok || !body.data) {
721
731
  sendError(ctx.ws, 'demo-screenshot', 'Screenshot failed');
722
732
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,13 @@ export interface AndroidRecordOptions {
21
21
  shell?: string;
22
22
  /** Recording cap in seconds. Android caps at 180; we default to that. */
23
23
  timeLimit?: number;
24
+ /**
25
+ * When true (default), capture tap events via `adb shell getevent -l`
26
+ * and post-process the .mp4 with ffmpeg to overlay red rings at each
27
+ * tap. Falls back to writing only the sidecar JSON if ffmpeg is
28
+ * missing — the raw recording is still produced.
29
+ */
30
+ overlays?: boolean;
24
31
  }
25
32
  export interface AndroidRecordResult {
26
33
  output: string;
@@ -28,6 +35,12 @@ export interface AndroidRecordResult {
28
35
  exitCode: number;
29
36
  durationSec: number;
30
37
  recordingClosed: boolean;
38
+ /** Number of taps captured during the run. */
39
+ tapCount?: number;
40
+ /** Path to the .taps.json sidecar describing each captured tap. */
41
+ tapsJsonPath?: string;
42
+ /** True when ffmpeg was used to render tap rings into the .mp4. */
43
+ overlaysApplied?: boolean;
31
44
  }
32
45
  /** Returns the first online emulator/device serial, optionally filtered by a preference. */
33
46
  export declare function findAndroidDevice(preference?: string): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../src/simulator/android.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAmBD,4FAA4F;AAC5F,wBAAsB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAanF;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA0EvG"}
1
+ {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../src/simulator/android.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAmBD,4FAA4F;AAC5F,wBAAsB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAanF;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA+J9B"}
@@ -12,7 +12,7 @@
12
12
  * 4. SIGINT screenrecord, wait for it to flush
13
13
  * 5. `adb pull` the .mp4 off the emulator to the user-requested output
14
14
  */
15
- import { spawn, execFile } from 'child_process';
15
+ import { execFile, spawn } from 'child_process';
16
16
  import { promises as fs } from 'fs';
17
17
  import * as path from 'path';
18
18
  function adb(args) {
@@ -60,12 +60,32 @@ export async function recordAndroidEmulator(options) {
60
60
  // at the time-limit OR on SIGINT.
61
61
  const recProc = spawn('adb', ['-s', device, 'shell', 'screenrecord', '--time-limit', String(timeLimit), remotePath], { stdio: ['ignore', 'pipe', 'pipe'] });
62
62
  let recStderr = '';
63
- recProc.stderr?.on('data', (d) => { recStderr += d.toString(); });
63
+ recProc.stderr?.on('data', (d) => {
64
+ recStderr += d.toString();
65
+ });
64
66
  // Give screenrecord a moment to start and create the file.
65
67
  await new Promise((r) => setTimeout(r, 800));
66
68
  if (recProc.exitCode !== null) {
67
69
  throw new Error(`screenrecord failed to start on ${device}: ${recStderr.trim() || 'unknown error'}`);
68
70
  }
71
+ // Optionally start tap-event capture. Best-effort — if the touchscreen
72
+ // probe fails (e.g. unusual input device layout), we still produce the
73
+ // raw recording, just without overlays.
74
+ const wantOverlays = options.overlays !== false;
75
+ let tapCapture = null;
76
+ if (wantOverlays) {
77
+ try {
78
+ const { findTouchDevice, captureTapsLive } = await import('./androidTaps.js');
79
+ const info = await findTouchDevice(device);
80
+ // Note: startMs is captured *now* so tap timestamps line up with the
81
+ // recording's t=0. screenrecord starts ~800ms before this point but
82
+ // its earliest frame is the moment recording engaged on the device.
83
+ tapCapture = captureTapsLive(device, info, Date.now());
84
+ }
85
+ catch (err) {
86
+ console.error(`[Sweetlink] Could not start tap capture: ${err instanceof Error ? err.message : err}`);
87
+ }
88
+ }
69
89
  const startedAt = Date.now();
70
90
  const cmdResult = await new Promise((resolve) => {
71
91
  const child = spawn(options.shell ?? '/bin/sh', ['-c', options.command], {
@@ -84,7 +104,9 @@ export async function recordAndroidEmulator(options) {
84
104
  try {
85
105
  recProc.kill('SIGKILL');
86
106
  }
87
- catch { /* ignore */ }
107
+ catch {
108
+ /* ignore */
109
+ }
88
110
  resolve(false);
89
111
  }
90
112
  }, 5_000);
@@ -98,7 +120,9 @@ export async function recordAndroidEmulator(options) {
98
120
  try {
99
121
  recProc.kill('SIGINT');
100
122
  }
101
- catch { /* ignore */ }
123
+ catch {
124
+ /* ignore */
125
+ }
102
126
  });
103
127
  // Pull the file off the device. Wait a bit for screenrecord to fsync.
104
128
  await new Promise((r) => setTimeout(r, 500));
@@ -107,12 +131,58 @@ export async function recordAndroidEmulator(options) {
107
131
  try {
108
132
  await adb(['-s', device, 'shell', 'rm', '-f', remotePath]);
109
133
  }
110
- catch { /* ignore */ }
134
+ catch {
135
+ /* ignore */
136
+ }
137
+ // Stop tap capture and write sidecar JSON + (optionally) ffmpeg overlay.
138
+ let tapCount;
139
+ let tapsJsonPath;
140
+ let overlaysApplied = false;
141
+ if (tapCapture) {
142
+ try {
143
+ tapCapture.proc.kill('SIGTERM');
144
+ }
145
+ catch {
146
+ /* ignore */
147
+ }
148
+ // Brief settle for trailing buffer flushes.
149
+ await new Promise((r) => setTimeout(r, 200));
150
+ const taps = tapCapture.taps;
151
+ tapCount = taps.length;
152
+ // Sidecar JSON (always written when capture was attempted).
153
+ tapsJsonPath = `${options.output.replace(/\.mp4$/i, '')}.taps.json`;
154
+ await fs.writeFile(tapsJsonPath, JSON.stringify({ taps }, null, 2));
155
+ // Apply overlays via ffmpeg when available.
156
+ if (taps.length > 0) {
157
+ const { hasFfmpeg, applyTapOverlays } = await import('./overlay.js');
158
+ if (await hasFfmpeg()) {
159
+ try {
160
+ const overlayedPath = `${options.output.replace(/\.mp4$/i, '')}.overlayed.mp4`;
161
+ await applyTapOverlays({ inputPath: options.output, outputPath: overlayedPath, taps });
162
+ // Replace the original with the overlayed version.
163
+ await fs.unlink(options.output);
164
+ await fs.rename(overlayedPath, options.output);
165
+ overlaysApplied = true;
166
+ }
167
+ catch (err) {
168
+ console.error(`[Sweetlink] Tap overlay rendering failed: ${err instanceof Error ? err.message : err}` +
169
+ ` (raw recording is preserved at ${options.output})`);
170
+ }
171
+ }
172
+ else {
173
+ console.error(`[Sweetlink] Captured ${taps.length} taps but ffmpeg is not on PATH — overlay skipped. ` +
174
+ `Sidecar JSON written to ${tapsJsonPath}.`);
175
+ }
176
+ }
177
+ }
111
178
  return {
112
179
  output: options.output,
113
180
  device,
114
181
  exitCode: cmdResult.exitCode,
115
182
  durationSec,
183
+ tapCount,
184
+ tapsJsonPath,
185
+ overlaysApplied,
116
186
  recordingClosed: closed,
117
187
  };
118
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"android.js","sourceRoot":"","sources":["../../src/simulator/android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"android.js","sourceRoot":"","sources":["../../src/simulator/android.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Android tap-event capture via `adb shell getevent -l`.
3
+ *
4
+ * We stream input events from the connected emulator/device while a screen
5
+ * recording is in progress, parse touch events into (x, y, t) tuples, and
6
+ * write them as a sidecar JSON. A separate post-process step (overlay.ts)
7
+ * renders rings on the recording at each tap timestamp.
8
+ *
9
+ * `getevent -p` is used once at startup to discover the touchscreen input
10
+ * device and its ABS coordinate range — coordinates from `getevent` are in
11
+ * raw input-device units, which we scale to screen pixels using the ratio
12
+ * of `wm size` vs. the input device's max X/Y.
13
+ */
14
+ import { type ChildProcess } from 'child_process';
15
+ export interface TapEvent {
16
+ /** Pixel x relative to the captured frame. */
17
+ x: number;
18
+ /** Pixel y relative to the captured frame. */
19
+ y: number;
20
+ /** Seconds since recording start. */
21
+ t: number;
22
+ }
23
+ export interface TouchDeviceInfo {
24
+ /** /dev/input/eventN path. */
25
+ path: string;
26
+ /** Max raw value for ABS_MT_POSITION_X (0..max). */
27
+ maxX: number;
28
+ /** Max raw value for ABS_MT_POSITION_Y (0..max). */
29
+ maxY: number;
30
+ /** Display width in pixels (from `wm size`). */
31
+ screenWidth: number;
32
+ /** Display height in pixels. */
33
+ screenHeight: number;
34
+ }
35
+ /**
36
+ * Parse `adb shell wm size` output:
37
+ * Physical size: 1080x2400
38
+ * Override size: 720x1600 (optional)
39
+ *
40
+ * Override takes precedence when present (it's what apps actually render at).
41
+ */
42
+ export declare function parseWmSize(out: string): {
43
+ width: number;
44
+ height: number;
45
+ } | null;
46
+ /**
47
+ * Parse `adb shell getevent -p` output and find the first device that
48
+ * declares BTN_TOUCH (014a) and ABS_MT_POSITION_X/Y. Returns the device
49
+ * path plus the raw coordinate ranges.
50
+ *
51
+ * Layout (one block per device):
52
+ *
53
+ * add device 3: /dev/input/event3
54
+ * name: "Touchscreen"
55
+ * events:
56
+ * KEY (0001): 014a
57
+ * ABS (0003): 0030 0031 0035 0036 ...
58
+ * input props:
59
+ * ...
60
+ * ABS_MT_POSITION_X : value 0, min 0, max 1080, fuzz 0, flat 0, resolution 0
61
+ * ABS_MT_POSITION_Y : value 0, min 0, max 2400, fuzz 0, flat 0, resolution 0
62
+ */
63
+ export declare function parseGetEventProbe(out: string): Array<{
64
+ path: string;
65
+ maxX: number;
66
+ maxY: number;
67
+ hasBtnTouch: boolean;
68
+ }>;
69
+ /**
70
+ * Run the necessary adb queries to discover the touchscreen device + scale.
71
+ * Throws when no touchscreen device is found.
72
+ */
73
+ export declare function findTouchDevice(deviceSerial: string): Promise<TouchDeviceInfo>;
74
+ /**
75
+ * Parse one chunk of `getevent -l` output, updating accumulated state in
76
+ * place. Pure function so it's straightforward to unit-test.
77
+ *
78
+ * Lines look like:
79
+ * /dev/input/event3: EV_ABS ABS_MT_POSITION_X 000003e8
80
+ * /dev/input/event3: EV_KEY BTN_TOUCH DOWN
81
+ * /dev/input/event3: EV_KEY BTN_TOUCH UP
82
+ */
83
+ export interface ParseState {
84
+ curX: number | null;
85
+ curY: number | null;
86
+ downAtMs: number | null;
87
+ }
88
+ export declare function freshParseState(): ParseState;
89
+ export declare function processGetEventChunk(text: string, state: ParseState, scaleX: number, scaleY: number, startMs: number, nowMs: number): TapEvent[];
90
+ /**
91
+ * Spawn a `getevent -l` listener for the given input path. Returns the
92
+ * child process plus a live array of tap events that the caller can read
93
+ * after they SIGTERM the process.
94
+ */
95
+ export declare function captureTapsLive(deviceSerial: string, info: TouchDeviceInfo, startMs: number): {
96
+ proc: ChildProcess;
97
+ taps: TapEvent[];
98
+ };
99
+ //# sourceMappingURL=androidTaps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"androidTaps.d.ts","sourceRoot":"","sources":["../../src/simulator/androidTaps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,eAAe,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAC;IACV,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB;AAWD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMjF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GACV,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CAgB3E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAqBpF;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AACD,wBAAgB,eAAe,IAAI,UAAU,CAE5C;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,QAAQ,EAAE,CA4BZ;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;CAAE,CAsB1C"}