obsidian-integration-testing 8.2.0 → 8.3.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 (38) hide show
  1. package/dist/lib/cjs/compatibility-options.cjs +51 -0
  2. package/dist/lib/cjs/compatibility-options.d.cts +71 -0
  3. package/dist/lib/cjs/connect-to-cdp.cjs +11 -2
  4. package/dist/lib/cjs/connect-to-cdp.d.cts +39 -2
  5. package/dist/lib/cjs/electron-compatibility.cjs +46 -0
  6. package/dist/lib/cjs/electron-compatibility.d.cts +74 -0
  7. package/dist/lib/cjs/index.cjs +4 -1
  8. package/dist/lib/cjs/index.d.cts +2 -0
  9. package/dist/lib/cjs/installer-compatibility.cjs +1 -1
  10. package/dist/lib/cjs/installer-compatibility.d.cts +4 -1
  11. package/dist/lib/cjs/library.cjs +1 -1
  12. package/dist/lib/cjs/spawn-options.cjs +42 -0
  13. package/dist/lib/cjs/spawn-options.d.cts +60 -0
  14. package/dist/lib/cjs/transport-desktop-cdp.cjs +55 -1
  15. package/dist/lib/cjs/transport-desktop-cdp.d.cts +46 -1
  16. package/dist/lib/cjs/transport-factory.cjs +34 -11
  17. package/dist/lib/cjs/transport-options.cjs +1 -1
  18. package/dist/lib/cjs/transport-options.d.cts +32 -0
  19. package/dist/lib/esm/compatibility-options.d.mts +71 -0
  20. package/dist/lib/esm/compatibility-options.mjs +25 -0
  21. package/dist/lib/esm/connect-to-cdp.d.mts +39 -2
  22. package/dist/lib/esm/connect-to-cdp.mjs +11 -2
  23. package/dist/lib/esm/electron-compatibility.d.mts +74 -0
  24. package/dist/lib/esm/electron-compatibility.mjs +22 -0
  25. package/dist/lib/esm/index.d.mts +2 -0
  26. package/dist/lib/esm/index.mjs +3 -1
  27. package/dist/lib/esm/installer-compatibility.d.mts +4 -1
  28. package/dist/lib/esm/installer-compatibility.mjs +1 -1
  29. package/dist/lib/esm/library.mjs +1 -1
  30. package/dist/lib/esm/spawn-options.d.mts +60 -0
  31. package/dist/lib/esm/spawn-options.mjs +17 -0
  32. package/dist/lib/esm/transport-desktop-cdp.d.mts +46 -1
  33. package/dist/lib/esm/transport-desktop-cdp.mjs +55 -1
  34. package/dist/lib/esm/transport-factory.mjs +41 -11
  35. package/dist/lib/esm/transport-options.d.mts +32 -0
  36. package/dist/obsidian-integration-testing-8.3.0.tgz +0 -0
  37. package/package.json +9 -9
  38. package/dist/obsidian-integration-testing-8.2.0.tgz +0 -0
@@ -37,4 +37,4 @@ function checkInstallerCompatibility(params) {
37
37
  export {
38
38
  checkInstallerCompatibility
39
39
  };
40
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSB2ZXJkaWN0IG9uIHdoZXRoZXIgYSByZXNvbHZlZCAoT2JzaWRpYW4gYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciBpc1xuICogY29tcGF0aWJsZSwgY29tcHV0ZWQgb2ZmbGluZSBmcm9tIHRoZSBgbWV0YWRhdGEuanNvbmAgdGhyZXNob2xkcy4gS2VwdCBzZXBhcmF0ZVxuICogZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSBgdHJhbnNwb3J0LWZhY3RvcnlgICh3aGljaCBkcml2ZXMgcmVhbFxuICogZG93bmxvYWRzL2xhdW5jaGVzIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSB0aWVyIGxvZ2ljIHN0YXlzXG4gKiB1bml0LXRlc3RhYmxlIFx1MjAxNCBtaXJyb3JpbmcgdGhlIGByZW5kZXJlci1ib290LWRldGVjdGlvbmAgc3BsaXQuXG4gKlxuICogVHdvIHRocmVzaG9sZHMgZHJpdmUgdGhlIHZlcmRpY3QsIGJvdGggaW5zdGFsbGVyIHZlcnNpb25zIGRpcmVjdGx5IGNvbXBhcmFibGVcbiAqIHRvIHRoZSByZXNvbHZlZCBpbnN0YWxsZXIvc2hlbGwgdmVyc2lvbjpcbiAqXG4gKiAtIGBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb25gIFx1MjAxNCB0aGUgcnVuIGZsb29yLiBCZWxvdyBpdCB0aGUgYXBwIGNhbm5vdCBib290XG4gKiAgIChgJ3VucnVubmFibGUnYCk7IHRoZSBjYWxsZXIgdHVybnMgdGhpcyBpbnRvIGEgcHJvYWN0aXZlXG4gKiAgIGBJbmNvbXBhdGlibGVJbnN0YWxsZXJWZXJzaW9uRXJyb3JgIGJlZm9yZSBhbnkgZG93bmxvYWQvbGF1bmNoLlxuICogLSBgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uYCBcdTIwMTQgdGhlIHJlY29tbWVuZGVkIGZsb29yIChvbGRlciB2ZXJzaW9uc1xuICogICBvbmx5KS4gQXQvYWJvdmUgdGhlIHJ1biBmbG9vciBidXQgYmVsb3cgdGhpcywgdGhlIGFwcCBydW5zIGJ1dCBpcyBiZWxvd1xuICogICBPYnNpZGlhbidzIHJlY29tbWVuZGF0aW9uIChgJ25hZ2dlZCdgKSwgc3VyZmFjZWQgYXMgYSB3YXJuaW5nLlxuICpcbiAqIFdoZW4gdGhlIGluc3RhbGxlciB2ZXJzaW9uIGlzIHVua25vd24gKGUuZy4gYW4gdW5kZXRlY3RhYmxlIExpbnV4IHNoZWxsKSBvciB0aGVcbiAqIGFwcCB2ZXJzaW9uIGlzIGFic2VudCBmcm9tIHRoZSB0YWJsZSwgdGhlIHZlcmRpY3QgaXMgYCd1bmtub3duJ2AgYW5kIG5vdGhpbmcgaXNcbiAqIHRocm93biBvciB3YXJuZWQgXHUyMDE0IHRoZSByZWFjdGl2ZSBkZWFkLWJvb3QgZmFzdC1mYWlsIHJlbWFpbnMgdGhlIHNhZmV0eSBuZXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblZlcnNpb25NZXRhZGF0YSB9IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEubWpzJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnLi9vYnNpZGlhbi12ZXJzaW9uLm1qcyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrSW5zdGFsbGVyQ29tcGF0aWJpbGl0eX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tJbnN0YWxsZXJDb21wYXRpYmlsaXR5UGFyYW1zIHtcbiAgLyoqIFRoZSByZXNvbHZlZCBPYnNpZGlhbiBhcHAgKGFzYXIpIHZlcnNpb24uICovXG4gIHJlYWRvbmx5IGFwcFZlcnNpb246IHN0cmluZztcblxuICAvKiogVGhlIHJlc29sdmVkIGluc3RhbGxlci9FbGVjdHJvbiBzaGVsbCB2ZXJzaW9uLCBvciBgdW5kZWZpbmVkYCB3aGVuIHVua25vd24uICovXG4gIHJlYWRvbmx5IGluc3RhbGxlclZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogVGhlIGBtZXRhZGF0YS5qc29uYCBlbnRyeSBmb3Ige0BsaW5rIGFwcFZlcnNpb259LCBvciBgdW5kZWZpbmVkYCB3aGVuIGFic2VudC4gKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE6IE9ic2lkaWFuVmVyc2lvbk1ldGFkYXRhIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSBjb21wYXRpYmlsaXR5IHZlcmRpY3QgZm9yIGEgcmVzb2x2ZWQgKGFwcCwgaW5zdGFsbGVyKSB2ZXJzaW9uIHBhaXIsIGNhcnJpZWRcbiAqIGFzIGRhdGEgb24gdGhlIHRyYW5zcG9ydCAvIGNvbm5lY3Rpb24gcmVzdWx0IHNvIGNvbnN1bWVycyBjYW4gYXNzZXJ0IG9uIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbGxlckNvbXBhdGliaWxpdHkge1xuICAvKiogVGhlIHJlc29sdmVkIE9ic2lkaWFuIGFwcCAoYXNhcikgdmVyc2lvbi4gKi9cbiAgcmVhZG9ubHkgYXBwVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKiBUaGUgcmVzb2x2ZWQgaW5zdGFsbGVyL0VsZWN0cm9uIHNoZWxsIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIHVua25vd24uICovXG4gIHJlYWRvbmx5IGluc3RhbGxlclZlcnNpb246IG51bGwgfCBzdHJpbmc7XG5cbiAgLyoqIEEgaHVtYW4tcmVhZGFibGUgZXhwbGFuYXRpb24sIHByZXNlbnQgZm9yIHRoZSBgJ25hZ2dlZCdgIHRpZXIuICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqIFRoZSByZWNvbW1lbmRlZCBpbnN0YWxsZXIgZmxvb3IsIHdoZW4gdGhlIHRhYmxlIGNhcnJpZXMgb25lLiAqL1xuICByZWFkb25seSBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBydW4gZmxvb3IsIHdoZW4gdGhlIHRhYmxlIGNhcnJpZXMgb25lLiAqL1xuICByZWFkb25seSBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqIFRoZSByZXNvbHZlZCBjb21wYXRpYmlsaXR5IHRpZXIuICovXG4gIHJlYWRvbmx5IHRpZXI6IEluc3RhbGxlckNvbXBhdGliaWxpdHlUaWVyO1xufVxuXG4vKipcbiAqIFRoZSBjb21wYXRpYmlsaXR5IHRpZXIgb2YgYSByZXNvbHZlZCAoYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpci5cbiAqXG4gKiAtIGAnb2snYCBcdTIwMTQgdGhlIGluc3RhbGxlciBpcyBhdCBvciBhYm92ZSB0aGUgcmVjb21tZW5kZWQgZmxvb3IgKG9yIG5vXG4gKiAgIHJlY29tbWVuZGVkIGZsb29yIGlzIGtub3duKTsgcnVucyB3aXRoIGZ1bGwgY29tcGF0aWJpbGl0eS5cbiAqIC0gYCduYWdnZWQnYCBcdTIwMTQgYXQvYWJvdmUgdGhlIHJ1biBmbG9vciBidXQgYmVsb3cgdGhlIHJlY29tbWVuZGVkIGZsb29yOyBydW5zIGJ1dFxuICogICBPYnNpZGlhbiB3b3VsZCBzaG93IGl0cyBcImluc3RhbGxlciB0b28gb2xkXCIgcmVjb21tZW5kYXRpb24uXG4gKiAtIGAndW5ydW5uYWJsZSdgIFx1MjAxNCBiZWxvdyB0aGUgcnVuIGZsb29yOyB0aGUgYXBwIGNhbm5vdCBib290IG9uIHRoaXMgaW5zdGFsbGVyLlxuICogLSBgJ3Vua25vd24nYCBcdTIwMTQgY2Fubm90IGJlIGRldGVybWluZWQgKGluc3RhbGxlciB2ZXJzaW9uIHVua25vd24sIG9yIHRoZSBhcHBcbiAqICAgdmVyc2lvbiBpcyBhYnNlbnQgZnJvbSB0aGUgdGFibGUpLlxuICovXG5leHBvcnQgdHlwZSBJbnN0YWxsZXJDb21wYXRpYmlsaXR5VGllciA9ICduYWdnZWQnIHwgJ29rJyB8ICd1bmtub3duJyB8ICd1bnJ1bm5hYmxlJztcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgY29tcGF0aWJpbGl0eSB2ZXJkaWN0IGZvciBhIHJlc29sdmVkIChhcHAsIGluc3RhbGxlcikgdmVyc2lvbiBwYWlyLlxuICpcbiAqIE9ubHkgYCd1bnJ1bm5hYmxlJ2Agd2FycmFudHMgYW4gZXJyb3I7IGAnbmFnZ2VkJ2Agd2FycmFudHMgYSB3YXJuaW5nOyBgJ29rJ2AgYW5kXG4gKiBgJ3Vua25vd24nYCBhcmUgc2lsZW50LiBDb21wYXJpc29ucyBhcmUgcHVyZSBgeC55LnpgIHZlcnNpb24gY29tcGFyZXMgXHUyMDE0IG5vIEkvTy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHJlc29sdmVkIHZlcnNpb25zIGFuZCB0aGUgYXBwIHZlcnNpb24ncyBtZXRhZGF0YSBlbnRyeS5cbiAqIEByZXR1cm5zIFRoZSBjb21wYXRpYmlsaXR5IHZlcmRpY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0luc3RhbGxlckNvbXBhdGliaWxpdHkocGFyYW1zOiBDaGVja0luc3RhbGxlckNvbXBhdGliaWxpdHlQYXJhbXMpOiBJbnN0YWxsZXJDb21wYXRpYmlsaXR5IHtcbiAgY29uc3QgeyBhcHBWZXJzaW9uLCBpbnN0YWxsZXJWZXJzaW9uLCBtZXRhZGF0YSB9ID0gcGFyYW1zO1xuICBjb25zdCBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb24gPSBtZXRhZGF0YT8ubWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uO1xuICBjb25zdCBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24gPSBtZXRhZGF0YT8ubWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uO1xuXG4gIGlmIChpbnN0YWxsZXJWZXJzaW9uID09PSB1bmRlZmluZWQgfHwgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBhcHBWZXJzaW9uLCBpbnN0YWxsZXJWZXJzaW9uOiBpbnN0YWxsZXJWZXJzaW9uID8/IG51bGwsIHRpZXI6ICd1bmtub3duJyB9O1xuICB9XG5cbiAgY29uc3QgcmVjb21tZW5kZWRGbG9vciA9IG1pblJlY29tbWVuZGVkSW5zdGFsbGVyVmVyc2lvbiAhPT0gdW5kZWZpbmVkICYmIHsgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uIH07XG5cbiAgaWYgKGNvbXBhcmVWZXJzaW9ucyhpbnN0YWxsZXJWZXJzaW9uLCBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb24pIDwgMCkge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBWZXJzaW9uLFxuICAgICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIG1pblJ1bm5hYmxlSW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIHRpZXI6ICd1bnJ1bm5hYmxlJyxcbiAgICAgIC4uLnJlY29tbWVuZGVkRmxvb3JcbiAgICB9O1xuICB9XG5cbiAgaWYgKG1pblJlY29tbWVuZGVkSW5zdGFsbGVyVmVyc2lvbiAhPT0gdW5kZWZpbmVkICYmIGNvbXBhcmVWZXJzaW9ucyhpbnN0YWxsZXJWZXJzaW9uLCBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24pIDwgMCkge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBWZXJzaW9uLFxuICAgICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIG1lc3NhZ2U6IGBPYnNpZGlhbiBpbnN0YWxsZXIgJHtpbnN0YWxsZXJWZXJzaW9ufSBydW5zIE9ic2lkaWFuICR7YXBwVmVyc2lvbn0gYnV0IGlzIG9sZGVyIHRoYW4gdGhlIGBcbiAgICAgICAgKyBgcmVjb21tZW5kZWQgaW5zdGFsbGVyICR7bWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9ufTsgdXBkYXRlIHRoZSBpbnN0YWxsZXIgZm9yIGZ1bGwgY29tcGF0aWJpbGl0eS5gLFxuICAgICAgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgdGllcjogJ25hZ2dlZCdcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhcHBWZXJzaW9uLFxuICAgIGluc3RhbGxlclZlcnNpb24sXG4gICAgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uLFxuICAgIHRpZXI6ICdvaycsXG4gICAgLi4ucmVjb21tZW5kZWRGbG9vclxuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBMEJBLFNBQVMsdUJBQXVCO0FBOER6QixTQUFTLDRCQUE0QixRQUFtRTtBQUM3RyxRQUFNLEVBQUUsWUFBWSxrQkFBa0IsU0FBUyxJQUFJO0FBQ25ELFFBQU0sOEJBQThCLFVBQVU7QUFDOUMsUUFBTSxpQ0FBaUMsVUFBVTtBQUVqRCxNQUFJLHFCQUFxQixVQUFhLGdDQUFnQyxRQUFXO0FBQy9FLFdBQU8sRUFBRSxZQUFZLGtCQUFrQixvQkFBb0IsTUFBTSxNQUFNLFVBQVU7QUFBQSxFQUNuRjtBQUVBLFFBQU0sbUJBQW1CLG1DQUFtQyxVQUFhLEVBQUUsK0JBQStCO0FBRTFHLE1BQUksZ0JBQWdCLGtCQUFrQiwyQkFBMkIsSUFBSSxHQUFHO0FBQ3RFLFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLE1BQU07QUFBQSxNQUNOLEdBQUc7QUFBQSxJQUNMO0FBQUEsRUFDRjtBQUVBLE1BQUksbUNBQW1DLFVBQWEsZ0JBQWdCLGtCQUFrQiw4QkFBOEIsSUFBSSxHQUFHO0FBQ3pILFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0EsU0FBUyxzQkFBc0IsZ0JBQWdCLGtCQUFrQixVQUFVLGdEQUM5Qyw4QkFBOEI7QUFBQSxNQUMzRDtBQUFBLE1BQ0E7QUFBQSxNQUNBLE1BQU07QUFBQSxJQUNSO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLE1BQU07QUFBQSxJQUNOLEdBQUc7QUFBQSxFQUNMO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
40
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSB2ZXJkaWN0IG9uIHdoZXRoZXIgYSByZXNvbHZlZCAoT2JzaWRpYW4gYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciBpc1xuICogY29tcGF0aWJsZSwgY29tcHV0ZWQgb2ZmbGluZSBmcm9tIHRoZSBgbWV0YWRhdGEuanNvbmAgdGhyZXNob2xkcy4gS2VwdCBzZXBhcmF0ZVxuICogZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSBgdHJhbnNwb3J0LWZhY3RvcnlgICh3aGljaCBkcml2ZXMgcmVhbFxuICogZG93bmxvYWRzL2xhdW5jaGVzIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSB0aWVyIGxvZ2ljIHN0YXlzXG4gKiB1bml0LXRlc3RhYmxlIFx1MjAxNCBtaXJyb3JpbmcgdGhlIGByZW5kZXJlci1ib290LWRldGVjdGlvbmAgc3BsaXQuXG4gKlxuICogVHdvIHRocmVzaG9sZHMgZHJpdmUgdGhlIHZlcmRpY3QsIGJvdGggaW5zdGFsbGVyIHZlcnNpb25zIGRpcmVjdGx5IGNvbXBhcmFibGVcbiAqIHRvIHRoZSByZXNvbHZlZCBpbnN0YWxsZXIvc2hlbGwgdmVyc2lvbjpcbiAqXG4gKiAtIGBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb25gIFx1MjAxNCB0aGUgcnVuIGZsb29yLiBCZWxvdyBpdCB0aGUgYXBwIGNhbm5vdCBib290XG4gKiAgIChgJ3VucnVubmFibGUnYCk7IHRoZSBjYWxsZXIgdHVybnMgdGhpcyBpbnRvIGEgcHJvYWN0aXZlXG4gKiAgIGBJbmNvbXBhdGlibGVJbnN0YWxsZXJWZXJzaW9uRXJyb3JgIGJlZm9yZSBhbnkgZG93bmxvYWQvbGF1bmNoIFx1MjAxNCB1bmxlc3MgdGhlXG4gKiAgIGNhbGxlciBoYXMgZGlzYWJsZWQgdGhlIHByb2FjdGl2ZSB0aHJvdyAoYHNob3VsZFRocm93T25JbmNvbXBhdGlibGVJbnN0YWxsZXJgXG4gKiAgIGBmYWxzZWApLCBpbiB3aGljaCBjYXNlIHRoZSBib290IHByb2NlZWRzIGFuZCB0aGUgcmVhY3RpdmUgZGVhZC1ib290IGZhc3QtZmFpbFxuICogICBjYXRjaGVzIGl0LlxuICogLSBgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uYCBcdTIwMTQgdGhlIHJlY29tbWVuZGVkIGZsb29yIChvbGRlciB2ZXJzaW9uc1xuICogICBvbmx5KS4gQXQvYWJvdmUgdGhlIHJ1biBmbG9vciBidXQgYmVsb3cgdGhpcywgdGhlIGFwcCBydW5zIGJ1dCBpcyBiZWxvd1xuICogICBPYnNpZGlhbidzIHJlY29tbWVuZGF0aW9uIChgJ25hZ2dlZCdgKSwgc3VyZmFjZWQgYXMgYSB3YXJuaW5nLlxuICpcbiAqIFdoZW4gdGhlIGluc3RhbGxlciB2ZXJzaW9uIGlzIHVua25vd24gKGUuZy4gYW4gdW5kZXRlY3RhYmxlIExpbnV4IHNoZWxsKSBvciB0aGVcbiAqIGFwcCB2ZXJzaW9uIGlzIGFic2VudCBmcm9tIHRoZSB0YWJsZSwgdGhlIHZlcmRpY3QgaXMgYCd1bmtub3duJ2AgYW5kIG5vdGhpbmcgaXNcbiAqIHRocm93biBvciB3YXJuZWQgXHUyMDE0IHRoZSByZWFjdGl2ZSBkZWFkLWJvb3QgZmFzdC1mYWlsIHJlbWFpbnMgdGhlIHNhZmV0eSBuZXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblZlcnNpb25NZXRhZGF0YSB9IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEubWpzJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnLi9vYnNpZGlhbi12ZXJzaW9uLm1qcyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrSW5zdGFsbGVyQ29tcGF0aWJpbGl0eX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tJbnN0YWxsZXJDb21wYXRpYmlsaXR5UGFyYW1zIHtcbiAgLyoqIFRoZSByZXNvbHZlZCBPYnNpZGlhbiBhcHAgKGFzYXIpIHZlcnNpb24uICovXG4gIHJlYWRvbmx5IGFwcFZlcnNpb246IHN0cmluZztcblxuICAvKiogVGhlIHJlc29sdmVkIGluc3RhbGxlci9FbGVjdHJvbiBzaGVsbCB2ZXJzaW9uLCBvciBgdW5kZWZpbmVkYCB3aGVuIHVua25vd24uICovXG4gIHJlYWRvbmx5IGluc3RhbGxlclZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogVGhlIGBtZXRhZGF0YS5qc29uYCBlbnRyeSBmb3Ige0BsaW5rIGFwcFZlcnNpb259LCBvciBgdW5kZWZpbmVkYCB3aGVuIGFic2VudC4gKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE6IE9ic2lkaWFuVmVyc2lvbk1ldGFkYXRhIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSBjb21wYXRpYmlsaXR5IHZlcmRpY3QgZm9yIGEgcmVzb2x2ZWQgKGFwcCwgaW5zdGFsbGVyKSB2ZXJzaW9uIHBhaXIsIGNhcnJpZWRcbiAqIGFzIGRhdGEgb24gdGhlIHRyYW5zcG9ydCAvIGNvbm5lY3Rpb24gcmVzdWx0IHNvIGNvbnN1bWVycyBjYW4gYXNzZXJ0IG9uIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbGxlckNvbXBhdGliaWxpdHkge1xuICAvKiogVGhlIHJlc29sdmVkIE9ic2lkaWFuIGFwcCAoYXNhcikgdmVyc2lvbi4gKi9cbiAgcmVhZG9ubHkgYXBwVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKiBUaGUgcmVzb2x2ZWQgaW5zdGFsbGVyL0VsZWN0cm9uIHNoZWxsIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIHVua25vd24uICovXG4gIHJlYWRvbmx5IGluc3RhbGxlclZlcnNpb246IG51bGwgfCBzdHJpbmc7XG5cbiAgLyoqIEEgaHVtYW4tcmVhZGFibGUgZXhwbGFuYXRpb24sIHByZXNlbnQgZm9yIHRoZSBgJ25hZ2dlZCdgIHRpZXIuICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqIFRoZSByZWNvbW1lbmRlZCBpbnN0YWxsZXIgZmxvb3IsIHdoZW4gdGhlIHRhYmxlIGNhcnJpZXMgb25lLiAqL1xuICByZWFkb25seSBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBydW4gZmxvb3IsIHdoZW4gdGhlIHRhYmxlIGNhcnJpZXMgb25lLiAqL1xuICByZWFkb25seSBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqIFRoZSByZXNvbHZlZCBjb21wYXRpYmlsaXR5IHRpZXIuICovXG4gIHJlYWRvbmx5IHRpZXI6IEluc3RhbGxlckNvbXBhdGliaWxpdHlUaWVyO1xufVxuXG4vKipcbiAqIFRoZSBjb21wYXRpYmlsaXR5IHRpZXIgb2YgYSByZXNvbHZlZCAoYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpci5cbiAqXG4gKiAtIGAnb2snYCBcdTIwMTQgdGhlIGluc3RhbGxlciBpcyBhdCBvciBhYm92ZSB0aGUgcmVjb21tZW5kZWQgZmxvb3IgKG9yIG5vXG4gKiAgIHJlY29tbWVuZGVkIGZsb29yIGlzIGtub3duKTsgcnVucyB3aXRoIGZ1bGwgY29tcGF0aWJpbGl0eS5cbiAqIC0gYCduYWdnZWQnYCBcdTIwMTQgYXQvYWJvdmUgdGhlIHJ1biBmbG9vciBidXQgYmVsb3cgdGhlIHJlY29tbWVuZGVkIGZsb29yOyBydW5zIGJ1dFxuICogICBPYnNpZGlhbiB3b3VsZCBzaG93IGl0cyBcImluc3RhbGxlciB0b28gb2xkXCIgcmVjb21tZW5kYXRpb24uXG4gKiAtIGAndW5ydW5uYWJsZSdgIFx1MjAxNCBiZWxvdyB0aGUgcnVuIGZsb29yOyB0aGUgYXBwIGNhbm5vdCBib290IG9uIHRoaXMgaW5zdGFsbGVyLlxuICogLSBgJ3Vua25vd24nYCBcdTIwMTQgY2Fubm90IGJlIGRldGVybWluZWQgKGluc3RhbGxlciB2ZXJzaW9uIHVua25vd24sIG9yIHRoZSBhcHBcbiAqICAgdmVyc2lvbiBpcyBhYnNlbnQgZnJvbSB0aGUgdGFibGUpLlxuICovXG5leHBvcnQgdHlwZSBJbnN0YWxsZXJDb21wYXRpYmlsaXR5VGllciA9ICduYWdnZWQnIHwgJ29rJyB8ICd1bmtub3duJyB8ICd1bnJ1bm5hYmxlJztcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgY29tcGF0aWJpbGl0eSB2ZXJkaWN0IGZvciBhIHJlc29sdmVkIChhcHAsIGluc3RhbGxlcikgdmVyc2lvbiBwYWlyLlxuICpcbiAqIE9ubHkgYCd1bnJ1bm5hYmxlJ2Agd2FycmFudHMgYW4gZXJyb3I7IGAnbmFnZ2VkJ2Agd2FycmFudHMgYSB3YXJuaW5nOyBgJ29rJ2AgYW5kXG4gKiBgJ3Vua25vd24nYCBhcmUgc2lsZW50LiBDb21wYXJpc29ucyBhcmUgcHVyZSBgeC55LnpgIHZlcnNpb24gY29tcGFyZXMgXHUyMDE0IG5vIEkvTy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHJlc29sdmVkIHZlcnNpb25zIGFuZCB0aGUgYXBwIHZlcnNpb24ncyBtZXRhZGF0YSBlbnRyeS5cbiAqIEByZXR1cm5zIFRoZSBjb21wYXRpYmlsaXR5IHZlcmRpY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0luc3RhbGxlckNvbXBhdGliaWxpdHkocGFyYW1zOiBDaGVja0luc3RhbGxlckNvbXBhdGliaWxpdHlQYXJhbXMpOiBJbnN0YWxsZXJDb21wYXRpYmlsaXR5IHtcbiAgY29uc3QgeyBhcHBWZXJzaW9uLCBpbnN0YWxsZXJWZXJzaW9uLCBtZXRhZGF0YSB9ID0gcGFyYW1zO1xuICBjb25zdCBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb24gPSBtZXRhZGF0YT8ubWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uO1xuICBjb25zdCBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24gPSBtZXRhZGF0YT8ubWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uO1xuXG4gIGlmIChpbnN0YWxsZXJWZXJzaW9uID09PSB1bmRlZmluZWQgfHwgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyBhcHBWZXJzaW9uLCBpbnN0YWxsZXJWZXJzaW9uOiBpbnN0YWxsZXJWZXJzaW9uID8/IG51bGwsIHRpZXI6ICd1bmtub3duJyB9O1xuICB9XG5cbiAgY29uc3QgcmVjb21tZW5kZWRGbG9vciA9IG1pblJlY29tbWVuZGVkSW5zdGFsbGVyVmVyc2lvbiAhPT0gdW5kZWZpbmVkICYmIHsgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uIH07XG5cbiAgaWYgKGNvbXBhcmVWZXJzaW9ucyhpbnN0YWxsZXJWZXJzaW9uLCBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb24pIDwgMCkge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBWZXJzaW9uLFxuICAgICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIG1pblJ1bm5hYmxlSW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIHRpZXI6ICd1bnJ1bm5hYmxlJyxcbiAgICAgIC4uLnJlY29tbWVuZGVkRmxvb3JcbiAgICB9O1xuICB9XG5cbiAgaWYgKG1pblJlY29tbWVuZGVkSW5zdGFsbGVyVmVyc2lvbiAhPT0gdW5kZWZpbmVkICYmIGNvbXBhcmVWZXJzaW9ucyhpbnN0YWxsZXJWZXJzaW9uLCBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24pIDwgMCkge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBWZXJzaW9uLFxuICAgICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIG1lc3NhZ2U6IGBPYnNpZGlhbiBpbnN0YWxsZXIgJHtpbnN0YWxsZXJWZXJzaW9ufSBydW5zIE9ic2lkaWFuICR7YXBwVmVyc2lvbn0gYnV0IGlzIG9sZGVyIHRoYW4gdGhlIGBcbiAgICAgICAgKyBgcmVjb21tZW5kZWQgaW5zdGFsbGVyICR7bWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9ufTsgdXBkYXRlIHRoZSBpbnN0YWxsZXIgZm9yIGZ1bGwgY29tcGF0aWJpbGl0eS5gLFxuICAgICAgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgdGllcjogJ25hZ2dlZCdcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhcHBWZXJzaW9uLFxuICAgIGluc3RhbGxlclZlcnNpb24sXG4gICAgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uLFxuICAgIHRpZXI6ICdvaycsXG4gICAgLi4ucmVjb21tZW5kZWRGbG9vclxuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBNkJBLFNBQVMsdUJBQXVCO0FBOER6QixTQUFTLDRCQUE0QixRQUFtRTtBQUM3RyxRQUFNLEVBQUUsWUFBWSxrQkFBa0IsU0FBUyxJQUFJO0FBQ25ELFFBQU0sOEJBQThCLFVBQVU7QUFDOUMsUUFBTSxpQ0FBaUMsVUFBVTtBQUVqRCxNQUFJLHFCQUFxQixVQUFhLGdDQUFnQyxRQUFXO0FBQy9FLFdBQU8sRUFBRSxZQUFZLGtCQUFrQixvQkFBb0IsTUFBTSxNQUFNLFVBQVU7QUFBQSxFQUNuRjtBQUVBLFFBQU0sbUJBQW1CLG1DQUFtQyxVQUFhLEVBQUUsK0JBQStCO0FBRTFHLE1BQUksZ0JBQWdCLGtCQUFrQiwyQkFBMkIsSUFBSSxHQUFHO0FBQ3RFLFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLE1BQU07QUFBQSxNQUNOLEdBQUc7QUFBQSxJQUNMO0FBQUEsRUFDRjtBQUVBLE1BQUksbUNBQW1DLFVBQWEsZ0JBQWdCLGtCQUFrQiw4QkFBOEIsSUFBSSxHQUFHO0FBQ3pILFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0EsU0FBUyxzQkFBc0IsZ0JBQWdCLGtCQUFrQixVQUFVLGdEQUM5Qyw4QkFBOEI7QUFBQSxNQUMzRDtBQUFBLE1BQ0E7QUFBQSxNQUNBLE1BQU07QUFBQSxJQUNSO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLE1BQU07QUFBQSxJQUNOLEdBQUc7QUFBQSxFQUNMO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,4 +1,4 @@
1
- const LIBRARY_VERSION = false ? "dev" : "8.1.2";
1
+ const LIBRARY_VERSION = false ? "dev" : "8.2.1";
2
2
  export {
3
3
  LIBRARY_VERSION
4
4
  };
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Pure resolution of the `detached` / `windowsHide` spawn flags for the
5
+ * auto-started Appium server and Android emulator, derived from whether their
6
+ * console windows should be hidden.
7
+ *
8
+ * Kept separate from the integration-only launch code (`transport-factory`,
9
+ * excluded from unit tests) so the flag resolution stays unit-testable — the
10
+ * launcher itself needs a real Appium server / emulator. Mirrors the split in
11
+ * `visibility.ts` and `emulator-args.ts`.
12
+ *
13
+ * **Why these exact flags** (empirically verified on Windows):
14
+ * - `detached: true` sets `DETACHED_PROCESS`, which gives the child no console.
15
+ * For a console-subsystem child that means Windows/the child later allocates a
16
+ * **fresh, visible** console — and `windowsHide` (which only sets `SW_HIDE` on
17
+ * an inherited/new console at `CreateProcess` time) is silently defeated. So a
18
+ * process we want hidden must NOT be detached.
19
+ * - Not detaching lets the child inherit the parent's (hidden) console, and any
20
+ * console-app **grandchildren** it spawns (e.g. the emulator's netsim/qemu
21
+ * helpers) inherit that hidden console too, instead of each popping their own.
22
+ * - Teardown does not rely on `detached`: `killProcessTree` uses
23
+ * `taskkill /F /T /PID`, and `child.unref()` alone lets the parent event loop
24
+ * exit without waiting on the child.
25
+ */
26
+ /**
27
+ * The subset of spawn options that control console-window visibility.
28
+ */
29
+ export interface SpawnVisibilityFlags {
30
+ /**
31
+ * Whether to run the child in its own process group / detached from the
32
+ * parent console (`DETACHED_PROCESS` on Windows).
33
+ */
34
+ readonly detached: boolean;
35
+ /** Whether to hide the child's console window (`windowsHide`). */
36
+ readonly windowsHide: boolean;
37
+ }
38
+ /**
39
+ * Resolves the visibility spawn flags for the auto-started Appium server.
40
+ *
41
+ * When hidden, the server must NOT be detached (otherwise a console window
42
+ * appears despite `windowsHide`). When the user opts to see the console, it is
43
+ * detached so it gets its own dedicated window.
44
+ *
45
+ * @param isConsoleHidden - Whether the Appium console should be hidden.
46
+ * @returns The `detached` / `windowsHide` flags to pass to `spawn`.
47
+ */
48
+ export declare function resolveAppiumSpawnFlags(isConsoleHidden: boolean): SpawnVisibilityFlags;
49
+ /**
50
+ * Resolves the visibility spawn flags for the auto-started Android emulator.
51
+ *
52
+ * The emulator is never detached: detaching only causes its console-app
53
+ * grandchildren (netsim/qemu) to allocate their own visible consoles. Its
54
+ * on-screen device window is a GUI window controlled by the `-no-window`
55
+ * argument (see `emulator-args.ts`), independent of these console flags.
56
+ *
57
+ * @param isWindowHidden - Whether the emulator (and its console) should be hidden.
58
+ * @returns The `detached` / `windowsHide` flags to pass to `spawn`.
59
+ */
60
+ export declare function resolveEmulatorSpawnFlags(isWindowHidden: boolean): SpawnVisibilityFlags;
@@ -0,0 +1,17 @@
1
+ function resolveAppiumSpawnFlags(isConsoleHidden) {
2
+ return {
3
+ detached: !isConsoleHidden,
4
+ windowsHide: isConsoleHidden
5
+ };
6
+ }
7
+ function resolveEmulatorSpawnFlags(isWindowHidden) {
8
+ return {
9
+ detached: false,
10
+ windowsHide: isWindowHidden
11
+ };
12
+ }
13
+ export {
14
+ resolveAppiumSpawnFlags,
15
+ resolveEmulatorSpawnFlags
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NwYXduLW9wdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIHJlc29sdXRpb24gb2YgdGhlIGBkZXRhY2hlZGAgLyBgd2luZG93c0hpZGVgIHNwYXduIGZsYWdzIGZvciB0aGVcbiAqIGF1dG8tc3RhcnRlZCBBcHBpdW0gc2VydmVyIGFuZCBBbmRyb2lkIGVtdWxhdG9yLCBkZXJpdmVkIGZyb20gd2hldGhlciB0aGVpclxuICogY29uc29sZSB3aW5kb3dzIHNob3VsZCBiZSBoaWRkZW4uXG4gKlxuICogS2VwdCBzZXBhcmF0ZSBmcm9tIHRoZSBpbnRlZ3JhdGlvbi1vbmx5IGxhdW5jaCBjb2RlIChgdHJhbnNwb3J0LWZhY3RvcnlgLFxuICogZXhjbHVkZWQgZnJvbSB1bml0IHRlc3RzKSBzbyB0aGUgZmxhZyByZXNvbHV0aW9uIHN0YXlzIHVuaXQtdGVzdGFibGUgXHUyMDE0IHRoZVxuICogbGF1bmNoZXIgaXRzZWxmIG5lZWRzIGEgcmVhbCBBcHBpdW0gc2VydmVyIC8gZW11bGF0b3IuIE1pcnJvcnMgdGhlIHNwbGl0IGluXG4gKiBgdmlzaWJpbGl0eS50c2AgYW5kIGBlbXVsYXRvci1hcmdzLnRzYC5cbiAqXG4gKiAqKldoeSB0aGVzZSBleGFjdCBmbGFncyoqIChlbXBpcmljYWxseSB2ZXJpZmllZCBvbiBXaW5kb3dzKTpcbiAqIC0gYGRldGFjaGVkOiB0cnVlYCBzZXRzIGBERVRBQ0hFRF9QUk9DRVNTYCwgd2hpY2ggZ2l2ZXMgdGhlIGNoaWxkIG5vIGNvbnNvbGUuXG4gKiAgIEZvciBhIGNvbnNvbGUtc3Vic3lzdGVtIGNoaWxkIHRoYXQgbWVhbnMgV2luZG93cy90aGUgY2hpbGQgbGF0ZXIgYWxsb2NhdGVzIGFcbiAqICAgKipmcmVzaCwgdmlzaWJsZSoqIGNvbnNvbGUgXHUyMDE0IGFuZCBgd2luZG93c0hpZGVgICh3aGljaCBvbmx5IHNldHMgYFNXX0hJREVgIG9uXG4gKiAgIGFuIGluaGVyaXRlZC9uZXcgY29uc29sZSBhdCBgQ3JlYXRlUHJvY2Vzc2AgdGltZSkgaXMgc2lsZW50bHkgZGVmZWF0ZWQuIFNvIGFcbiAqICAgcHJvY2VzcyB3ZSB3YW50IGhpZGRlbiBtdXN0IE5PVCBiZSBkZXRhY2hlZC5cbiAqIC0gTm90IGRldGFjaGluZyBsZXRzIHRoZSBjaGlsZCBpbmhlcml0IHRoZSBwYXJlbnQncyAoaGlkZGVuKSBjb25zb2xlLCBhbmQgYW55XG4gKiAgIGNvbnNvbGUtYXBwICoqZ3JhbmRjaGlsZHJlbioqIGl0IHNwYXducyAoZS5nLiB0aGUgZW11bGF0b3IncyBuZXRzaW0vcWVtdVxuICogICBoZWxwZXJzKSBpbmhlcml0IHRoYXQgaGlkZGVuIGNvbnNvbGUgdG9vLCBpbnN0ZWFkIG9mIGVhY2ggcG9wcGluZyB0aGVpciBvd24uXG4gKiAtIFRlYXJkb3duIGRvZXMgbm90IHJlbHkgb24gYGRldGFjaGVkYDogYGtpbGxQcm9jZXNzVHJlZWAgdXNlc1xuICogICBgdGFza2tpbGwgL0YgL1QgL1BJRGAsIGFuZCBgY2hpbGQudW5yZWYoKWAgYWxvbmUgbGV0cyB0aGUgcGFyZW50IGV2ZW50IGxvb3BcbiAqICAgZXhpdCB3aXRob3V0IHdhaXRpbmcgb24gdGhlIGNoaWxkLlxuICovXG5cbi8qKlxuICogVGhlIHN1YnNldCBvZiBzcGF3biBvcHRpb25zIHRoYXQgY29udHJvbCBjb25zb2xlLXdpbmRvdyB2aXNpYmlsaXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXduVmlzaWJpbGl0eUZsYWdzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBjaGlsZCBpbiBpdHMgb3duIHByb2Nlc3MgZ3JvdXAgLyBkZXRhY2hlZCBmcm9tIHRoZVxuICAgKiBwYXJlbnQgY29uc29sZSAoYERFVEFDSEVEX1BST0NFU1NgIG9uIFdpbmRvd3MpLlxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWNoZWQ6IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdG8gaGlkZSB0aGUgY2hpbGQncyBjb25zb2xlIHdpbmRvdyAoYHdpbmRvd3NIaWRlYCkuICovXG4gIHJlYWRvbmx5IHdpbmRvd3NIaWRlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSB2aXNpYmlsaXR5IHNwYXduIGZsYWdzIGZvciB0aGUgYXV0by1zdGFydGVkIEFwcGl1bSBzZXJ2ZXIuXG4gKlxuICogV2hlbiBoaWRkZW4sIHRoZSBzZXJ2ZXIgbXVzdCBOT1QgYmUgZGV0YWNoZWQgKG90aGVyd2lzZSBhIGNvbnNvbGUgd2luZG93XG4gKiBhcHBlYXJzIGRlc3BpdGUgYHdpbmRvd3NIaWRlYCkuIFdoZW4gdGhlIHVzZXIgb3B0cyB0byBzZWUgdGhlIGNvbnNvbGUsIGl0IGlzXG4gKiBkZXRhY2hlZCBzbyBpdCBnZXRzIGl0cyBvd24gZGVkaWNhdGVkIHdpbmRvdy5cbiAqXG4gKiBAcGFyYW0gaXNDb25zb2xlSGlkZGVuIC0gV2hldGhlciB0aGUgQXBwaXVtIGNvbnNvbGUgc2hvdWxkIGJlIGhpZGRlbi5cbiAqIEByZXR1cm5zIFRoZSBgZGV0YWNoZWRgIC8gYHdpbmRvd3NIaWRlYCBmbGFncyB0byBwYXNzIHRvIGBzcGF3bmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXBwaXVtU3Bhd25GbGFncyhpc0NvbnNvbGVIaWRkZW46IGJvb2xlYW4pOiBTcGF3blZpc2liaWxpdHlGbGFncyB7XG4gIHJldHVybiB7XG4gICAgZGV0YWNoZWQ6ICFpc0NvbnNvbGVIaWRkZW4sXG4gICAgd2luZG93c0hpZGU6IGlzQ29uc29sZUhpZGRlblxuICB9O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSB2aXNpYmlsaXR5IHNwYXduIGZsYWdzIGZvciB0aGUgYXV0by1zdGFydGVkIEFuZHJvaWQgZW11bGF0b3IuXG4gKlxuICogVGhlIGVtdWxhdG9yIGlzIG5ldmVyIGRldGFjaGVkOiBkZXRhY2hpbmcgb25seSBjYXVzZXMgaXRzIGNvbnNvbGUtYXBwXG4gKiBncmFuZGNoaWxkcmVuIChuZXRzaW0vcWVtdSkgdG8gYWxsb2NhdGUgdGhlaXIgb3duIHZpc2libGUgY29uc29sZXMuIEl0c1xuICogb24tc2NyZWVuIGRldmljZSB3aW5kb3cgaXMgYSBHVUkgd2luZG93IGNvbnRyb2xsZWQgYnkgdGhlIGAtbm8td2luZG93YFxuICogYXJndW1lbnQgKHNlZSBgZW11bGF0b3ItYXJncy50c2ApLCBpbmRlcGVuZGVudCBvZiB0aGVzZSBjb25zb2xlIGZsYWdzLlxuICpcbiAqIEBwYXJhbSBpc1dpbmRvd0hpZGRlbiAtIFdoZXRoZXIgdGhlIGVtdWxhdG9yIChhbmQgaXRzIGNvbnNvbGUpIHNob3VsZCBiZSBoaWRkZW4uXG4gKiBAcmV0dXJucyBUaGUgYGRldGFjaGVkYCAvIGB3aW5kb3dzSGlkZWAgZmxhZ3MgdG8gcGFzcyB0byBgc3Bhd25gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVtdWxhdG9yU3Bhd25GbGFncyhpc1dpbmRvd0hpZGRlbjogYm9vbGVhbik6IFNwYXduVmlzaWJpbGl0eUZsYWdzIHtcbiAgcmV0dXJuIHtcbiAgICBkZXRhY2hlZDogZmFsc2UsXG4gICAgd2luZG93c0hpZGU6IGlzV2luZG93SGlkZGVuXG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFrRE8sU0FBUyx3QkFBd0IsaUJBQWdEO0FBQ3RGLFNBQU87QUFBQSxJQUNMLFVBQVUsQ0FBQztBQUFBLElBQ1gsYUFBYTtBQUFBLEVBQ2Y7QUFDRjtBQWFPLFNBQVMsMEJBQTBCLGdCQUErQztBQUN2RixTQUFPO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsRUFDZjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -16,6 +16,7 @@
16
16
  *
17
17
  * Requirements: Node.js 22+ (uses built-in `WebSocket` and `fetch` globals).
18
18
  */
19
+ import type { ElectronCompatibility } from './electron-compatibility.mjs';
19
20
  import type { InstallerCompatibility } from './installer-compatibility.mjs';
20
21
  import type { ObsidianTransport, TransportEvalOptions } from './transport.mjs';
21
22
  /**
@@ -74,6 +75,15 @@ export interface DesktopCdpTransportConfig {
74
75
  * @default `false`
75
76
  */
76
77
  shouldDisableSandbox?: boolean;
78
+ /**
79
+ * Whether the post-boot runtime-Electron compatibility nag warning is emitted
80
+ * when the live Electron is below the app's recommended minimum. The verdict is
81
+ * always computed and surfaced via {@link DesktopCdpTransport.getElectronCompatibility};
82
+ * this only gates the log. Only meaningful in owned mode.
83
+ *
84
+ * @default `true`
85
+ */
86
+ shouldWarnOnCompatibilityIssues?: boolean;
77
87
  }
78
88
  /**
79
89
  * An asar to provision into a harness-owned instance's user-data dir before launch.
@@ -96,7 +106,10 @@ export interface OwnedInstanceConfig {
96
106
  /**
97
107
  * The resolved installer↔app compatibility verdict, when it could be determined
98
108
  * (an asar-swap onto a known shell version). Surfaced by
99
- * {@link DesktopCdpTransport.getCompatibility}.
109
+ * {@link DesktopCdpTransport.getCompatibility}. An `'unrunnable'` verdict reaches
110
+ * this surface only when the proactive throw is disabled
111
+ * (`shouldThrowOnIncompatibleInstaller: false`); otherwise it throws
112
+ * `IncompatibleInstallerVersionError` before the config is built.
100
113
  */
101
114
  readonly compatibility?: InstallerCompatibility | undefined;
102
115
  /** Absolute path to the Obsidian shell executable to launch. */
@@ -133,12 +146,14 @@ export declare class DesktopCdpTransport implements ObsidianTransport {
133
146
  private cdpUrl;
134
147
  private readonly commandTimeoutInMilliseconds;
135
148
  private readonly deadBootGraceInMilliseconds;
149
+ private electronCompatibility;
136
150
  private readonly isHarnessOwnedInstance;
137
151
  private readonly isObsidianAppVisible;
138
152
  private messageId;
139
153
  private readonly ownedConfig;
140
154
  private ownedInstance;
141
155
  private readonly shouldDisableSandbox;
156
+ private readonly shouldWarnOnCompatibilityIssues;
142
157
  private ws;
143
158
  /**
144
159
  * Creates a new CDP transport.
@@ -179,6 +194,17 @@ export declare class DesktopCdpTransport implements ObsidianTransport {
179
194
  * @returns The compatibility verdict, or `undefined`.
180
195
  */
181
196
  getCompatibility(): InstallerCompatibility | undefined;
197
+ /**
198
+ * Returns the runtime Electron compatibility verdict for this owned instance —
199
+ * whether the Electron version it is actually running is new enough for the
200
+ * running app version (read live post-boot; see {@link ObsidianVersionMetadata.minRecommendedElectronVersion}).
201
+ * Returns `undefined` when this is not an owned instance, the instance has not
202
+ * booted yet, or the verdict could not be determined (the live version was
203
+ * unreadable, or the app version carries no recommended Electron version).
204
+ *
205
+ * @returns The runtime Electron compatibility verdict, or `undefined`.
206
+ */
207
+ getElectronCompatibility(): ElectronCompatibility | undefined;
182
208
  /**
183
209
  * Returns the CDP endpoint of the owned, launched instance so the global setup
184
210
  * can hand it to test workers (which then **attach** to it instead of
@@ -212,6 +238,25 @@ export declare class DesktopCdpTransport implements ObsidianTransport {
212
238
  * @param vaultPath - The absolute path to the vault folder.
213
239
  */
214
240
  unregisterVault(vaultPath: string): Promise<void>;
241
+ /**
242
+ * Best-effort tier-2 runtime nag: reads the live Electron version and running
243
+ * app version from the booted owned renderer and warns when the Electron the
244
+ * instance is actually running is older than the app's recommended minimum.
245
+ * Stores the verdict on {@link getElectronCompatibility}.
246
+ *
247
+ * The app version is read **live** — the running app version from the main
248
+ * process (`ipcRenderer.sendSync('version')`, the same IPC channel the namespace
249
+ * bootstrap uses) rather than from the resolved config — so the nag reflects the
250
+ * version genuinely running across every owned sub-path (asar-swap / downgrade /
251
+ * own-installer) and stays truthful even under a silent asar fallback.
252
+ * `process.versions.electron` gives the shell's live Electron. Both are read at
253
+ * the renderer top level (no `require('obsidian')`, which resolves only inside a
254
+ * plugin-load context). Never throws — a read failure is logged and ignored, so
255
+ * it cannot break an otherwise-ready boot.
256
+ *
257
+ * @param vaultPath - The vault path to evaluate in.
258
+ */
259
+ private checkRuntimeElectronCompatibility;
215
260
  /**
216
261
  * Connects to a CDP target's WebSocket endpoint.
217
262
  *