obsidian-integration-testing 9.2.2 → 10.1.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 (264) hide show
  1. package/README.md +30 -1096
  2. package/dist/lib/cjs/appium-dependencies.cjs +5 -5
  3. package/dist/lib/cjs/appium-dependencies.d.cts +4 -2
  4. package/dist/lib/cjs/appium-session-config.cjs +1 -1
  5. package/dist/lib/cjs/asar-fallback-detection.cjs +4 -4
  6. package/dist/lib/cjs/asar-fallback-detection.d.cts +15 -7
  7. package/dist/lib/cjs/avd-list.cjs +1 -1
  8. package/dist/lib/cjs/avd-list.d.cts +6 -2
  9. package/dist/lib/cjs/capture-obsidian-screenshot.cjs +60 -0
  10. package/dist/lib/cjs/capture-obsidian-screenshot.d.cts +53 -0
  11. package/dist/lib/cjs/capture-screenshot.cjs +82 -0
  12. package/dist/lib/cjs/capture-screenshot.d.cts +99 -0
  13. package/dist/lib/cjs/cli.cjs +4 -4
  14. package/dist/lib/cjs/compatibility-options.cjs +13 -13
  15. package/dist/lib/cjs/compatibility-options.d.cts +24 -12
  16. package/dist/lib/cjs/connect-to-cdp.cjs +10 -4
  17. package/dist/lib/cjs/connect-to-cdp.d.cts +19 -6
  18. package/dist/lib/cjs/context-id.cjs +5 -5
  19. package/dist/lib/cjs/context-id.d.cts +1 -1
  20. package/dist/lib/cjs/context-provider.cjs +5 -5
  21. package/dist/lib/cjs/context-provider.d.cts +4 -4
  22. package/dist/lib/cjs/demo-vault-populate.cjs +5 -5
  23. package/dist/lib/cjs/demo-vault-populate.d.cts +4 -4
  24. package/dist/lib/cjs/demo-vault-tree.cjs +4 -4
  25. package/dist/lib/cjs/demo-vault-tree.d.cts +3 -3
  26. package/dist/lib/cjs/device-readiness.cjs +3 -3
  27. package/dist/lib/cjs/device-readiness.d.cts +7 -3
  28. package/dist/lib/cjs/ecmascript-version.cjs +1 -1
  29. package/dist/lib/cjs/electron-compatibility.cjs +4 -4
  30. package/dist/lib/cjs/electron-compatibility.d.cts +33 -17
  31. package/dist/lib/cjs/emulator-arguments.cjs +36 -0
  32. package/dist/lib/{esm/emulator-args.d.mts → cjs/emulator-arguments.d.cts} +6 -4
  33. package/dist/lib/cjs/enable-plugin.cjs +29 -29
  34. package/dist/lib/cjs/enable-plugin.d.cts +6 -6
  35. package/dist/lib/cjs/eval-in-obsidian.cjs +9 -9
  36. package/dist/lib/cjs/eval-in-obsidian.d.cts +23 -23
  37. package/dist/lib/cjs/exec.cjs +49 -53
  38. package/dist/lib/cjs/exec.d.cts +9 -9
  39. package/dist/lib/cjs/function-expression.cjs +8 -8
  40. package/dist/lib/cjs/function-expression.d.cts +4 -4
  41. package/dist/lib/cjs/generate-function-call.cjs +6 -6
  42. package/dist/lib/cjs/generate-function-call.d.cts +15 -9
  43. package/dist/lib/cjs/global-setup-core.cjs +43 -43
  44. package/dist/lib/cjs/global-setup-core.d.cts +19 -9
  45. package/dist/lib/cjs/incompatible-installer-version-error.cjs +10 -4
  46. package/dist/lib/cjs/incompatible-installer-version-error.d.cts +18 -6
  47. package/dist/lib/cjs/index.cjs +22 -10
  48. package/dist/lib/cjs/index.d.cts +12 -8
  49. package/dist/lib/cjs/installer-asset.cjs +4 -4
  50. package/dist/lib/cjs/installer-asset.d.cts +21 -7
  51. package/dist/lib/cjs/installer-compatibility.cjs +4 -4
  52. package/dist/lib/cjs/installer-compatibility.d.cts +36 -18
  53. package/dist/lib/cjs/jest/global-setup-no-plugin.cjs +3 -3
  54. package/dist/lib/cjs/jest/global-setup-no-plugin.d.cts +1 -1
  55. package/dist/lib/cjs/jest/global-setup.cjs +11 -11
  56. package/dist/lib/cjs/jest/global-setup.d.cts +12 -8
  57. package/dist/lib/cjs/jest/global-teardown-no-plugin.cjs +2 -3
  58. package/dist/lib/cjs/jest/global-teardown-no-plugin.d.cts +1 -2
  59. package/dist/lib/cjs/jest/global-teardown.cjs +2 -3
  60. package/dist/lib/cjs/jest/global-teardown.d.cts +1 -2
  61. package/dist/lib/cjs/jest/setup.cjs +2 -2
  62. package/dist/lib/cjs/jest/setup.d.cts +1 -1
  63. package/dist/lib/cjs/json-with-functions.cjs +7 -7
  64. package/dist/lib/cjs/leftover-cleanup.cjs +14 -14
  65. package/dist/lib/cjs/leftover-cleanup.d.cts +42 -20
  66. package/dist/lib/cjs/library.cjs +2 -2
  67. package/dist/lib/cjs/namespace-bootstrap.cjs +46 -40
  68. package/dist/lib/cjs/native-dialog-monitor.cjs +15 -13
  69. package/dist/lib/cjs/normalize-optional-properties.cjs +3 -3
  70. package/dist/lib/cjs/normalize-optional-properties.d.cts +2 -2
  71. package/dist/lib/cjs/obsidian-config.cjs +30 -31
  72. package/dist/lib/cjs/obsidian-config.d.cts +8 -8
  73. package/dist/lib/cjs/obsidian-executable.cjs +2 -2
  74. package/dist/lib/cjs/obsidian-installer.cjs +37 -37
  75. package/dist/lib/cjs/obsidian-installer.d.cts +7 -3
  76. package/dist/lib/cjs/obsidian-instance.cjs +3 -3
  77. package/dist/lib/cjs/obsidian-instance.d.cts +18 -8
  78. package/dist/lib/cjs/obsidian-metadata.cjs +28 -1
  79. package/dist/lib/cjs/obsidian-metadata.d.cts +36 -12
  80. package/dist/lib/cjs/obsidian-namespace.cjs +1 -1
  81. package/dist/lib/cjs/obsidian-namespace.d.cts +25 -11
  82. package/dist/lib/cjs/obsidian-version-switch.cjs +9 -9
  83. package/dist/lib/cjs/obsidian-version-switch.d.cts +14 -10
  84. package/dist/lib/cjs/obsidian-version.cjs +3 -3
  85. package/dist/lib/cjs/obsidian-version.d.cts +15 -5
  86. package/dist/lib/cjs/owned-vault-seed.cjs +1 -1
  87. package/dist/lib/cjs/owned-vault-seed.d.cts +24 -8
  88. package/dist/lib/cjs/parent-liveness.cjs +4 -4
  89. package/dist/lib/cjs/parent-liveness.d.cts +7 -3
  90. package/dist/lib/cjs/poll-in-obsidian.cjs +5 -5
  91. package/dist/lib/cjs/poll-in-obsidian.d.cts +12 -12
  92. package/dist/lib/cjs/poll-until.cjs +1 -1
  93. package/dist/lib/cjs/poll-until.d.cts +21 -7
  94. package/dist/lib/cjs/process-exit-message.cjs +1 -1
  95. package/dist/lib/cjs/process-exit-message.d.cts +21 -7
  96. package/dist/lib/cjs/renderer-boot-detection.cjs +9 -9
  97. package/dist/lib/cjs/renderer-boot-detection.d.cts +31 -27
  98. package/dist/lib/cjs/renderer-failed-to-initialize-error.cjs +1 -1
  99. package/dist/lib/cjs/renderer-failed-to-initialize-error.d.cts +1 -1
  100. package/dist/lib/cjs/setup-lock.cjs +26 -26
  101. package/dist/lib/cjs/setup-lock.d.cts +6 -2
  102. package/dist/lib/cjs/silent-asar-fallback-error.cjs +7 -3
  103. package/dist/lib/cjs/silent-asar-fallback-error.d.cts +12 -4
  104. package/dist/lib/cjs/spawn-options.cjs +1 -1
  105. package/dist/lib/cjs/spawn-options.d.cts +3 -1
  106. package/dist/lib/cjs/strict-proxy.cjs +25 -25
  107. package/dist/lib/cjs/strict-proxy.d.cts +3 -3
  108. package/dist/lib/cjs/temporary-vault.cjs +166 -0
  109. package/dist/lib/cjs/{temp-vault.d.cts → temporary-vault.d.cts} +3 -3
  110. package/dist/lib/cjs/transport-appium.cjs +29 -7
  111. package/dist/lib/cjs/transport-appium.d.cts +23 -3
  112. package/dist/lib/cjs/transport-desktop-cdp.cjs +99 -57
  113. package/dist/lib/cjs/transport-desktop-cdp.d.cts +44 -17
  114. package/dist/lib/cjs/transport-factory.cjs +62 -63
  115. package/dist/lib/cjs/transport.cjs +1 -1
  116. package/dist/lib/cjs/transport.d.cts +15 -0
  117. package/dist/lib/cjs/type-guards.cjs +8 -3
  118. package/dist/lib/cjs/type-guards.d.cts +9 -2
  119. package/dist/lib/cjs/vault-path-match.cjs +9 -9
  120. package/dist/lib/cjs/vault-path-match.d.cts +11 -11
  121. package/dist/lib/cjs/version-matrix.cjs +1 -1
  122. package/dist/lib/cjs/version-matrix.d.cts +51 -17
  123. package/dist/lib/cjs/visibility.cjs +7 -7
  124. package/dist/lib/cjs/visibility.d.cts +5 -5
  125. package/dist/lib/cjs/vitest/global-setup-no-plugin.cjs +3 -3
  126. package/dist/lib/cjs/vitest/global-setup-no-plugin.d.cts +2 -2
  127. package/dist/lib/cjs/vitest/global-setup.cjs +9 -9
  128. package/dist/lib/cjs/vitest/global-setup.d.cts +4 -4
  129. package/dist/lib/cjs/vitest/setup.cjs +2 -2
  130. package/dist/lib/cjs/vitest/typings.d.cts +2 -2
  131. package/dist/lib/esm/appium-dependencies.d.mts +4 -2
  132. package/dist/lib/esm/appium-dependencies.mjs +4 -4
  133. package/dist/lib/esm/appium-session-config.mjs +1 -1
  134. package/dist/lib/esm/asar-fallback-detection.d.mts +15 -7
  135. package/dist/lib/esm/asar-fallback-detection.mjs +3 -3
  136. package/dist/lib/esm/avd-list.d.mts +6 -2
  137. package/dist/lib/esm/avd-list.mjs +1 -1
  138. package/dist/lib/esm/capture-obsidian-screenshot.d.mts +53 -0
  139. package/dist/lib/esm/capture-obsidian-screenshot.mjs +29 -0
  140. package/dist/lib/esm/capture-screenshot.d.mts +99 -0
  141. package/dist/lib/esm/capture-screenshot.mjs +55 -0
  142. package/dist/lib/esm/cli.mjs +4 -4
  143. package/dist/lib/esm/compatibility-options.d.mts +24 -12
  144. package/dist/lib/esm/compatibility-options.mjs +10 -10
  145. package/dist/lib/esm/connect-to-cdp.d.mts +19 -6
  146. package/dist/lib/esm/connect-to-cdp.mjs +12 -6
  147. package/dist/lib/esm/context-id.d.mts +1 -1
  148. package/dist/lib/esm/context-id.mjs +5 -5
  149. package/dist/lib/esm/context-provider.d.mts +4 -4
  150. package/dist/lib/esm/context-provider.mjs +5 -5
  151. package/dist/lib/esm/demo-vault-populate.d.mts +4 -4
  152. package/dist/lib/esm/demo-vault-populate.mjs +5 -5
  153. package/dist/lib/esm/demo-vault-tree.d.mts +3 -3
  154. package/dist/lib/esm/demo-vault-tree.mjs +4 -4
  155. package/dist/lib/esm/device-readiness.d.mts +7 -3
  156. package/dist/lib/esm/device-readiness.mjs +3 -3
  157. package/dist/lib/esm/ecmascript-version.mjs +1 -1
  158. package/dist/lib/esm/electron-compatibility.d.mts +33 -17
  159. package/dist/lib/esm/electron-compatibility.mjs +3 -3
  160. package/dist/lib/{cjs/emulator-args.d.cts → esm/emulator-arguments.d.mts} +6 -4
  161. package/dist/lib/esm/emulator-arguments.mjs +12 -0
  162. package/dist/lib/esm/enable-plugin.d.mts +6 -6
  163. package/dist/lib/esm/enable-plugin.mjs +29 -29
  164. package/dist/lib/esm/eval-in-obsidian.d.mts +23 -23
  165. package/dist/lib/esm/eval-in-obsidian.mjs +9 -9
  166. package/dist/lib/esm/exec.d.mts +9 -9
  167. package/dist/lib/esm/exec.mjs +49 -53
  168. package/dist/lib/esm/function-expression.d.mts +4 -4
  169. package/dist/lib/esm/function-expression.mjs +8 -8
  170. package/dist/lib/esm/generate-function-call.d.mts +15 -9
  171. package/dist/lib/esm/generate-function-call.mjs +6 -6
  172. package/dist/lib/esm/global-setup-core.d.mts +19 -9
  173. package/dist/lib/esm/global-setup-core.mjs +45 -45
  174. package/dist/lib/esm/incompatible-installer-version-error.d.mts +18 -6
  175. package/dist/lib/esm/incompatible-installer-version-error.mjs +10 -4
  176. package/dist/lib/esm/index.d.mts +12 -8
  177. package/dist/lib/esm/index.mjs +21 -9
  178. package/dist/lib/esm/installer-asset.d.mts +21 -7
  179. package/dist/lib/esm/installer-asset.mjs +4 -4
  180. package/dist/lib/esm/installer-compatibility.d.mts +36 -18
  181. package/dist/lib/esm/installer-compatibility.mjs +3 -3
  182. package/dist/lib/esm/jest/global-setup-no-plugin.d.mts +1 -1
  183. package/dist/lib/esm/jest/global-setup-no-plugin.mjs +3 -3
  184. package/dist/lib/esm/jest/global-setup.d.mts +12 -8
  185. package/dist/lib/esm/jest/global-setup.mjs +10 -10
  186. package/dist/lib/esm/jest/global-teardown-no-plugin.d.mts +1 -2
  187. package/dist/lib/esm/jest/global-teardown-no-plugin.mjs +2 -3
  188. package/dist/lib/esm/jest/global-teardown.d.mts +1 -2
  189. package/dist/lib/esm/jest/global-teardown.mjs +2 -3
  190. package/dist/lib/esm/jest/setup.d.mts +1 -1
  191. package/dist/lib/esm/jest/setup.mjs +2 -2
  192. package/dist/lib/esm/json-with-functions.mjs +7 -7
  193. package/dist/lib/esm/leftover-cleanup.d.mts +42 -20
  194. package/dist/lib/esm/leftover-cleanup.mjs +12 -12
  195. package/dist/lib/esm/library.mjs +2 -2
  196. package/dist/lib/esm/namespace-bootstrap.mjs +46 -40
  197. package/dist/lib/esm/native-dialog-monitor.mjs +15 -13
  198. package/dist/lib/esm/normalize-optional-properties.d.mts +2 -2
  199. package/dist/lib/esm/normalize-optional-properties.mjs +3 -3
  200. package/dist/lib/esm/obsidian-config.d.mts +8 -8
  201. package/dist/lib/esm/obsidian-config.mjs +27 -28
  202. package/dist/lib/esm/obsidian-executable.mjs +2 -2
  203. package/dist/lib/esm/obsidian-installer.d.mts +7 -3
  204. package/dist/lib/esm/obsidian-installer.mjs +36 -36
  205. package/dist/lib/esm/obsidian-instance.d.mts +18 -8
  206. package/dist/lib/esm/obsidian-instance.mjs +3 -3
  207. package/dist/lib/esm/obsidian-metadata.d.mts +36 -12
  208. package/dist/lib/esm/obsidian-metadata.mjs +28 -1
  209. package/dist/lib/esm/obsidian-namespace.d.mts +25 -11
  210. package/dist/lib/esm/obsidian-version-switch.d.mts +14 -10
  211. package/dist/lib/esm/obsidian-version-switch.mjs +9 -9
  212. package/dist/lib/esm/obsidian-version.d.mts +15 -5
  213. package/dist/lib/esm/obsidian-version.mjs +3 -3
  214. package/dist/lib/esm/owned-vault-seed.d.mts +24 -8
  215. package/dist/lib/esm/owned-vault-seed.mjs +1 -1
  216. package/dist/lib/esm/parent-liveness.d.mts +7 -3
  217. package/dist/lib/esm/parent-liveness.mjs +3 -3
  218. package/dist/lib/esm/poll-in-obsidian.d.mts +12 -12
  219. package/dist/lib/esm/poll-in-obsidian.mjs +5 -5
  220. package/dist/lib/esm/poll-until.d.mts +21 -7
  221. package/dist/lib/esm/poll-until.mjs +1 -1
  222. package/dist/lib/esm/process-exit-message.d.mts +21 -7
  223. package/dist/lib/esm/process-exit-message.mjs +1 -1
  224. package/dist/lib/esm/renderer-boot-detection.d.mts +31 -27
  225. package/dist/lib/esm/renderer-boot-detection.mjs +7 -7
  226. package/dist/lib/esm/renderer-failed-to-initialize-error.d.mts +1 -1
  227. package/dist/lib/esm/renderer-failed-to-initialize-error.mjs +1 -1
  228. package/dist/lib/esm/setup-lock.d.mts +6 -2
  229. package/dist/lib/esm/setup-lock.mjs +26 -26
  230. package/dist/lib/esm/silent-asar-fallback-error.d.mts +12 -4
  231. package/dist/lib/esm/silent-asar-fallback-error.mjs +7 -3
  232. package/dist/lib/esm/spawn-options.d.mts +3 -1
  233. package/dist/lib/esm/spawn-options.mjs +1 -1
  234. package/dist/lib/esm/strict-proxy.d.mts +3 -3
  235. package/dist/lib/esm/strict-proxy.mjs +25 -25
  236. package/dist/lib/esm/{temp-vault.d.mts → temporary-vault.d.mts} +3 -3
  237. package/dist/lib/esm/temporary-vault.mjs +157 -0
  238. package/dist/lib/esm/transport-appium.d.mts +23 -3
  239. package/dist/lib/esm/transport-appium.mjs +32 -7
  240. package/dist/lib/esm/transport-desktop-cdp.d.mts +44 -17
  241. package/dist/lib/esm/transport-desktop-cdp.mjs +113 -67
  242. package/dist/lib/esm/transport-factory.mjs +71 -72
  243. package/dist/lib/esm/transport.d.mts +15 -0
  244. package/dist/lib/esm/type-guards.d.mts +9 -2
  245. package/dist/lib/esm/type-guards.mjs +7 -3
  246. package/dist/lib/esm/vault-path-match.d.mts +11 -11
  247. package/dist/lib/esm/vault-path-match.mjs +7 -7
  248. package/dist/lib/esm/version-matrix.d.mts +51 -17
  249. package/dist/lib/esm/version-matrix.mjs +1 -1
  250. package/dist/lib/esm/visibility.d.mts +5 -5
  251. package/dist/lib/esm/visibility.mjs +5 -5
  252. package/dist/lib/esm/vitest/global-setup-no-plugin.d.mts +2 -2
  253. package/dist/lib/esm/vitest/global-setup-no-plugin.mjs +3 -3
  254. package/dist/lib/esm/vitest/global-setup.d.mts +4 -4
  255. package/dist/lib/esm/vitest/global-setup.mjs +8 -8
  256. package/dist/lib/esm/vitest/setup.mjs +2 -2
  257. package/dist/lib/esm/vitest/typings.d.mts +2 -2
  258. package/dist/obsidian-integration-testing-10.1.0.tgz +0 -0
  259. package/package.json +35 -18
  260. package/dist/lib/cjs/emulator-args.cjs +0 -36
  261. package/dist/lib/cjs/temp-vault.cjs +0 -166
  262. package/dist/lib/esm/emulator-args.mjs +0 -12
  263. package/dist/lib/esm/temp-vault.mjs +0 -157
  264. package/dist/obsidian-integration-testing-9.2.2.tgz +0 -0
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Two modes:
8
8
  * - **Owned (default)**: the transport launches and owns an isolated Obsidian
9
- * instance against a temporary `--user-data-dir` on a free `--remote-debugging-port`,
9
+ * instance against a temporary `--user-data-directory` on a free `--remote-debugging-port`,
10
10
  * never touching the user's Obsidian. Supports version pinning via the user-data asar.
11
11
  * - **Attach**: when an explicit CDP port is configured, the transport connects
12
12
  * to an already-running Obsidian on that port.
@@ -17,6 +17,7 @@
17
17
  * Requirements: Node.js 22+ (uses built-in `WebSocket` and `fetch` globals).
18
18
  */
19
19
  import type { AsarFallback } from './asar-fallback-detection.cjs';
20
+ import type { CaptureScreenshotParams } from './capture-screenshot.cjs';
20
21
  import type { ElectronCompatibility } from './electron-compatibility.cjs';
21
22
  import type { InstallerCompatibility } from './installer-compatibility.cjs';
22
23
  import type { ObsidianTransport, TransportEvalOptions } from './transport.cjs';
@@ -97,22 +98,28 @@ export interface DesktopCdpTransportConfig {
97
98
  shouldWarnOnCompatibilityIssues?: boolean;
98
99
  }
99
100
  /**
100
- * An asar to provision into a harness-owned instance's user-data dir before launch.
101
+ * An asar to provision into a harness-owned instance's user-data directory before launch.
101
102
  */
102
103
  export interface OwnedInstanceAsar {
103
- /** Absolute path to the cached/source asar file. */
104
+ /**
105
+ Absolute path to the cached/source asar file.
106
+ */
104
107
  readonly path: string;
105
- /** The asar's `x.y.z` version. */
108
+ /**
109
+ The asar's `x.y.z` version.
110
+ */
106
111
  readonly version: string;
107
112
  }
108
113
  /**
109
114
  * Configuration for a harness-owned, isolated Obsidian instance.
110
115
  *
111
116
  * When present, the transport launches and owns its own Obsidian process
112
- * against an isolated user-data dir instead of attaching to a running instance.
117
+ * against an isolated user-data directory instead of attaching to a running instance.
113
118
  */
114
119
  export interface OwnedInstanceConfig {
115
- /** Optional asar to provision into {@link userDataDir} before launch. */
120
+ /**
121
+ Optional asar to provision into {@link userDataDirectory} before launch.
122
+ */
116
123
  readonly asar?: OwnedInstanceAsar | undefined;
117
124
  /**
118
125
  * The resolved installer↔app compatibility verdict, when it could be determined
@@ -123,21 +130,27 @@ export interface OwnedInstanceConfig {
123
130
  * `IncompatibleInstallerVersionError` before the config is built.
124
131
  */
125
132
  readonly compatibility?: InstallerCompatibility | undefined;
126
- /** Absolute path to the Obsidian shell executable to launch. */
133
+ /**
134
+ Absolute path to the Obsidian shell executable to launch.
135
+ */
127
136
  readonly exePath: string;
128
137
  /**
129
- * Absolute path to the isolated user-data dir. Created and owned by the
138
+ * Absolute path to the isolated user-data directory. Created and owned by the
130
139
  * transport, and deleted on dispose.
131
140
  */
132
- readonly userDataDir: string;
141
+ readonly userDataDirectory: string;
133
142
  }
134
143
  /**
135
144
  * The CDP endpoint of a launched, harness-owned instance.
136
145
  */
137
146
  interface OwnedInstanceEndpoint {
138
- /** CDP host (e.g. `'localhost'`). */
147
+ /**
148
+ CDP host (e.g. `'localhost'`).
149
+ */
139
150
  readonly host: string;
140
- /** The free CDP port the owned instance was launched on. */
151
+ /**
152
+ The free CDP port the owned instance was launched on.
153
+ */
141
154
  readonly port: number;
142
155
  }
143
156
  /**
@@ -174,9 +187,23 @@ export declare class DesktopCdpTransport implements ObsidianTransport {
174
187
  * @param config - CDP connection configuration.
175
188
  */
176
189
  constructor(config?: DesktopCdpTransportConfig);
190
+ /**
191
+ * Captures a PNG screenshot of the Obsidian window showing the given vault.
192
+ *
193
+ * When a size is requested the viewport is pinned to it with
194
+ * `Emulation.setDeviceMetricsOverride` for the duration of the capture, so the
195
+ * emitted PNG is exactly that size whatever size the window happens to be —
196
+ * and the override is always cleared afterwards, including when the capture
197
+ * throws, so a failed capture cannot leave the window stuck at the override.
198
+ *
199
+ * @param params - Which vault window to capture, and the exact size to capture it at.
200
+ * @returns The raw PNG bytes.
201
+ * @throws Error if CDP returns no image data, or data that is not a PNG.
202
+ */
203
+ captureScreenshot(params: CaptureScreenshotParams): Promise<Uint8Array>;
177
204
  /**
178
205
  * Disposes of the active WebSocket connection and, in owned-instance mode,
179
- * kills the owned Obsidian process and removes its isolated user-data dir.
206
+ * kills the owned Obsidian process and removes its isolated user-data directory.
180
207
  *
181
208
  * The removal is retried because Windows briefly holds the just-killed
182
209
  * process's file handles, which would otherwise fail `rmSync` with `EPERM`.
@@ -184,8 +211,8 @@ export declare class DesktopCdpTransport implements ObsidianTransport {
184
211
  dispose(): Promise<void>;
185
212
  /**
186
213
  * Synchronous disposal — kills the owned instance and makes a best-effort
187
- * removal of its user-data dir. Safe to call from a process `exit` handler
188
- * (where async retries are impossible; a leftover temp dir is acceptable).
214
+ * removal of its user-data directory. Safe to call from a process `exit` handler
215
+ * (where async retries are impossible; a leftover temp directory is acceptable).
189
216
  */
190
217
  disposeSync(): void;
191
218
  /**
@@ -368,7 +395,7 @@ export declare class DesktopCdpTransport implements ObsidianTransport {
368
395
  * Finds the CDP target that has the given vault open.
369
396
  *
370
397
  * Probes every target by evaluating `getBasePath()` and returns the one whose
371
- * base path matches `vaultPath` (via {@link vaultPathsMatch}, tolerant of
398
+ * base path matches `vaultPath` (via {@link areVaultPathsMatching}, tolerant of
372
399
  * separator/case differences). A single target is **not** returned blindly: with
373
400
  * more than one vault open (attach mode's shared instance), the sole-target
374
401
  * shortcut would return whichever window happens to be open regardless of which
@@ -392,7 +419,7 @@ export declare class DesktopCdpTransport implements ObsidianTransport {
392
419
  * so the next launch gets a pristine single-window instance.
393
420
  *
394
421
  * Relaunching over a live instance is forwarded by Electron's single-instance
395
- * lock on the shared user-data dir and surfaces the vault picker, and opening a
422
+ * lock on the shared user-data directory and surfaces the vault picker, and opening a
396
423
  * second window via IPC leaves stale windows that break vault-target routing —
397
424
  * hence a full kill + wait-for-exit (releasing the lock) between launches. A
398
425
  * no-op on the first attempt, when no instance is running yet.
@@ -467,7 +494,7 @@ export declare class DesktopCdpTransport implements ObsidianTransport {
467
494
  /**
468
495
  * Polls a killed owned instance's CDP endpoint until it stops responding,
469
496
  * confirming the process has exited and released Electron's single-instance
470
- * lock on the shared user-data dir before a fresh instance is launched into it.
497
+ * lock on the shared user-data directory before a fresh instance is launched into it.
471
498
  *
472
499
  * @param cdpUrl - The CDP URL of the instance that was just killed.
473
500
  */