obsidian-integration-testing 9.2.2 → 10.0.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 (253) hide show
  1. package/README.md +45 -45
  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/cli.cjs +4 -4
  10. package/dist/lib/cjs/compatibility-options.cjs +13 -13
  11. package/dist/lib/cjs/compatibility-options.d.cts +24 -12
  12. package/dist/lib/cjs/connect-to-cdp.cjs +4 -4
  13. package/dist/lib/cjs/connect-to-cdp.d.cts +6 -6
  14. package/dist/lib/cjs/context-id.cjs +5 -5
  15. package/dist/lib/cjs/context-id.d.cts +1 -1
  16. package/dist/lib/cjs/context-provider.cjs +5 -5
  17. package/dist/lib/cjs/context-provider.d.cts +4 -4
  18. package/dist/lib/cjs/demo-vault-populate.cjs +5 -5
  19. package/dist/lib/cjs/demo-vault-populate.d.cts +4 -4
  20. package/dist/lib/cjs/demo-vault-tree.cjs +4 -4
  21. package/dist/lib/cjs/demo-vault-tree.d.cts +3 -3
  22. package/dist/lib/cjs/device-readiness.cjs +3 -3
  23. package/dist/lib/cjs/device-readiness.d.cts +7 -3
  24. package/dist/lib/cjs/ecmascript-version.cjs +1 -1
  25. package/dist/lib/cjs/electron-compatibility.cjs +4 -4
  26. package/dist/lib/cjs/electron-compatibility.d.cts +33 -17
  27. package/dist/lib/cjs/emulator-arguments.cjs +36 -0
  28. package/dist/lib/{esm/emulator-args.d.mts → cjs/emulator-arguments.d.cts} +6 -4
  29. package/dist/lib/cjs/enable-plugin.cjs +29 -29
  30. package/dist/lib/cjs/enable-plugin.d.cts +6 -6
  31. package/dist/lib/cjs/eval-in-obsidian.cjs +9 -9
  32. package/dist/lib/cjs/eval-in-obsidian.d.cts +23 -23
  33. package/dist/lib/cjs/exec.cjs +49 -53
  34. package/dist/lib/cjs/exec.d.cts +9 -9
  35. package/dist/lib/cjs/function-expression.cjs +8 -8
  36. package/dist/lib/cjs/function-expression.d.cts +4 -4
  37. package/dist/lib/cjs/generate-function-call.cjs +6 -6
  38. package/dist/lib/cjs/generate-function-call.d.cts +15 -9
  39. package/dist/lib/cjs/global-setup-core.cjs +43 -43
  40. package/dist/lib/cjs/global-setup-core.d.cts +19 -9
  41. package/dist/lib/cjs/incompatible-installer-version-error.cjs +10 -4
  42. package/dist/lib/cjs/incompatible-installer-version-error.d.cts +18 -6
  43. package/dist/lib/cjs/index.cjs +10 -10
  44. package/dist/lib/cjs/index.d.cts +8 -8
  45. package/dist/lib/cjs/installer-asset.cjs +4 -4
  46. package/dist/lib/cjs/installer-asset.d.cts +21 -7
  47. package/dist/lib/cjs/installer-compatibility.cjs +4 -4
  48. package/dist/lib/cjs/installer-compatibility.d.cts +36 -18
  49. package/dist/lib/cjs/jest/global-setup-no-plugin.cjs +3 -3
  50. package/dist/lib/cjs/jest/global-setup-no-plugin.d.cts +1 -1
  51. package/dist/lib/cjs/jest/global-setup.cjs +11 -11
  52. package/dist/lib/cjs/jest/global-setup.d.cts +12 -8
  53. package/dist/lib/cjs/jest/global-teardown-no-plugin.cjs +2 -3
  54. package/dist/lib/cjs/jest/global-teardown-no-plugin.d.cts +1 -2
  55. package/dist/lib/cjs/jest/global-teardown.cjs +2 -3
  56. package/dist/lib/cjs/jest/global-teardown.d.cts +1 -2
  57. package/dist/lib/cjs/jest/setup.cjs +2 -2
  58. package/dist/lib/cjs/jest/setup.d.cts +1 -1
  59. package/dist/lib/cjs/json-with-functions.cjs +7 -7
  60. package/dist/lib/cjs/leftover-cleanup.cjs +14 -14
  61. package/dist/lib/cjs/leftover-cleanup.d.cts +42 -20
  62. package/dist/lib/cjs/library.cjs +2 -2
  63. package/dist/lib/cjs/namespace-bootstrap.cjs +46 -40
  64. package/dist/lib/cjs/native-dialog-monitor.cjs +15 -13
  65. package/dist/lib/cjs/normalize-optional-properties.cjs +3 -3
  66. package/dist/lib/cjs/normalize-optional-properties.d.cts +2 -2
  67. package/dist/lib/cjs/obsidian-config.cjs +30 -31
  68. package/dist/lib/cjs/obsidian-config.d.cts +8 -8
  69. package/dist/lib/cjs/obsidian-executable.cjs +2 -2
  70. package/dist/lib/cjs/obsidian-installer.cjs +37 -37
  71. package/dist/lib/cjs/obsidian-installer.d.cts +7 -3
  72. package/dist/lib/cjs/obsidian-instance.cjs +3 -3
  73. package/dist/lib/cjs/obsidian-instance.d.cts +18 -8
  74. package/dist/lib/cjs/obsidian-metadata.cjs +1 -1
  75. package/dist/lib/cjs/obsidian-metadata.d.cts +36 -12
  76. package/dist/lib/cjs/obsidian-namespace.cjs +1 -1
  77. package/dist/lib/cjs/obsidian-namespace.d.cts +25 -11
  78. package/dist/lib/cjs/obsidian-version-switch.cjs +9 -9
  79. package/dist/lib/cjs/obsidian-version-switch.d.cts +14 -10
  80. package/dist/lib/cjs/obsidian-version.cjs +3 -3
  81. package/dist/lib/cjs/obsidian-version.d.cts +15 -5
  82. package/dist/lib/cjs/owned-vault-seed.cjs +1 -1
  83. package/dist/lib/cjs/owned-vault-seed.d.cts +24 -8
  84. package/dist/lib/cjs/parent-liveness.cjs +4 -4
  85. package/dist/lib/cjs/parent-liveness.d.cts +7 -3
  86. package/dist/lib/cjs/poll-in-obsidian.cjs +5 -5
  87. package/dist/lib/cjs/poll-in-obsidian.d.cts +12 -12
  88. package/dist/lib/cjs/poll-until.cjs +1 -1
  89. package/dist/lib/cjs/poll-until.d.cts +21 -7
  90. package/dist/lib/cjs/process-exit-message.cjs +1 -1
  91. package/dist/lib/cjs/process-exit-message.d.cts +21 -7
  92. package/dist/lib/cjs/renderer-boot-detection.cjs +9 -9
  93. package/dist/lib/cjs/renderer-boot-detection.d.cts +31 -27
  94. package/dist/lib/cjs/renderer-failed-to-initialize-error.cjs +1 -1
  95. package/dist/lib/cjs/renderer-failed-to-initialize-error.d.cts +1 -1
  96. package/dist/lib/cjs/setup-lock.cjs +26 -26
  97. package/dist/lib/cjs/setup-lock.d.cts +6 -2
  98. package/dist/lib/cjs/silent-asar-fallback-error.cjs +7 -3
  99. package/dist/lib/cjs/silent-asar-fallback-error.d.cts +12 -4
  100. package/dist/lib/cjs/spawn-options.cjs +1 -1
  101. package/dist/lib/cjs/spawn-options.d.cts +3 -1
  102. package/dist/lib/cjs/strict-proxy.cjs +25 -25
  103. package/dist/lib/cjs/strict-proxy.d.cts +3 -3
  104. package/dist/lib/cjs/temporary-vault.cjs +166 -0
  105. package/dist/lib/cjs/{temp-vault.d.cts → temporary-vault.d.cts} +3 -3
  106. package/dist/lib/cjs/transport-appium.cjs +7 -7
  107. package/dist/lib/cjs/transport-appium.d.cts +7 -3
  108. package/dist/lib/cjs/transport-desktop-cdp.cjs +57 -57
  109. package/dist/lib/cjs/transport-desktop-cdp.d.cts +29 -17
  110. package/dist/lib/cjs/transport-factory.cjs +62 -63
  111. package/dist/lib/cjs/type-guards.cjs +3 -3
  112. package/dist/lib/cjs/type-guards.d.cts +2 -2
  113. package/dist/lib/cjs/vault-path-match.cjs +9 -9
  114. package/dist/lib/cjs/vault-path-match.d.cts +11 -11
  115. package/dist/lib/cjs/version-matrix.cjs +1 -1
  116. package/dist/lib/cjs/version-matrix.d.cts +51 -17
  117. package/dist/lib/cjs/visibility.cjs +7 -7
  118. package/dist/lib/cjs/visibility.d.cts +5 -5
  119. package/dist/lib/cjs/vitest/global-setup-no-plugin.cjs +3 -3
  120. package/dist/lib/cjs/vitest/global-setup-no-plugin.d.cts +2 -2
  121. package/dist/lib/cjs/vitest/global-setup.cjs +9 -9
  122. package/dist/lib/cjs/vitest/global-setup.d.cts +4 -4
  123. package/dist/lib/cjs/vitest/setup.cjs +2 -2
  124. package/dist/lib/cjs/vitest/typings.d.cts +2 -2
  125. package/dist/lib/esm/appium-dependencies.d.mts +4 -2
  126. package/dist/lib/esm/appium-dependencies.mjs +4 -4
  127. package/dist/lib/esm/appium-session-config.mjs +1 -1
  128. package/dist/lib/esm/asar-fallback-detection.d.mts +15 -7
  129. package/dist/lib/esm/asar-fallback-detection.mjs +3 -3
  130. package/dist/lib/esm/avd-list.d.mts +6 -2
  131. package/dist/lib/esm/avd-list.mjs +1 -1
  132. package/dist/lib/esm/cli.mjs +4 -4
  133. package/dist/lib/esm/compatibility-options.d.mts +24 -12
  134. package/dist/lib/esm/compatibility-options.mjs +10 -10
  135. package/dist/lib/esm/connect-to-cdp.d.mts +6 -6
  136. package/dist/lib/esm/connect-to-cdp.mjs +6 -6
  137. package/dist/lib/esm/context-id.d.mts +1 -1
  138. package/dist/lib/esm/context-id.mjs +5 -5
  139. package/dist/lib/esm/context-provider.d.mts +4 -4
  140. package/dist/lib/esm/context-provider.mjs +5 -5
  141. package/dist/lib/esm/demo-vault-populate.d.mts +4 -4
  142. package/dist/lib/esm/demo-vault-populate.mjs +5 -5
  143. package/dist/lib/esm/demo-vault-tree.d.mts +3 -3
  144. package/dist/lib/esm/demo-vault-tree.mjs +4 -4
  145. package/dist/lib/esm/device-readiness.d.mts +7 -3
  146. package/dist/lib/esm/device-readiness.mjs +3 -3
  147. package/dist/lib/esm/ecmascript-version.mjs +1 -1
  148. package/dist/lib/esm/electron-compatibility.d.mts +33 -17
  149. package/dist/lib/esm/electron-compatibility.mjs +3 -3
  150. package/dist/lib/{cjs/emulator-args.d.cts → esm/emulator-arguments.d.mts} +6 -4
  151. package/dist/lib/esm/emulator-arguments.mjs +12 -0
  152. package/dist/lib/esm/enable-plugin.d.mts +6 -6
  153. package/dist/lib/esm/enable-plugin.mjs +29 -29
  154. package/dist/lib/esm/eval-in-obsidian.d.mts +23 -23
  155. package/dist/lib/esm/eval-in-obsidian.mjs +9 -9
  156. package/dist/lib/esm/exec.d.mts +9 -9
  157. package/dist/lib/esm/exec.mjs +49 -53
  158. package/dist/lib/esm/function-expression.d.mts +4 -4
  159. package/dist/lib/esm/function-expression.mjs +8 -8
  160. package/dist/lib/esm/generate-function-call.d.mts +15 -9
  161. package/dist/lib/esm/generate-function-call.mjs +6 -6
  162. package/dist/lib/esm/global-setup-core.d.mts +19 -9
  163. package/dist/lib/esm/global-setup-core.mjs +45 -45
  164. package/dist/lib/esm/incompatible-installer-version-error.d.mts +18 -6
  165. package/dist/lib/esm/incompatible-installer-version-error.mjs +10 -4
  166. package/dist/lib/esm/index.d.mts +8 -8
  167. package/dist/lib/esm/index.mjs +9 -9
  168. package/dist/lib/esm/installer-asset.d.mts +21 -7
  169. package/dist/lib/esm/installer-asset.mjs +4 -4
  170. package/dist/lib/esm/installer-compatibility.d.mts +36 -18
  171. package/dist/lib/esm/installer-compatibility.mjs +3 -3
  172. package/dist/lib/esm/jest/global-setup-no-plugin.d.mts +1 -1
  173. package/dist/lib/esm/jest/global-setup-no-plugin.mjs +3 -3
  174. package/dist/lib/esm/jest/global-setup.d.mts +12 -8
  175. package/dist/lib/esm/jest/global-setup.mjs +10 -10
  176. package/dist/lib/esm/jest/global-teardown-no-plugin.d.mts +1 -2
  177. package/dist/lib/esm/jest/global-teardown-no-plugin.mjs +2 -3
  178. package/dist/lib/esm/jest/global-teardown.d.mts +1 -2
  179. package/dist/lib/esm/jest/global-teardown.mjs +2 -3
  180. package/dist/lib/esm/jest/setup.d.mts +1 -1
  181. package/dist/lib/esm/jest/setup.mjs +2 -2
  182. package/dist/lib/esm/json-with-functions.mjs +7 -7
  183. package/dist/lib/esm/leftover-cleanup.d.mts +42 -20
  184. package/dist/lib/esm/leftover-cleanup.mjs +12 -12
  185. package/dist/lib/esm/library.mjs +2 -2
  186. package/dist/lib/esm/namespace-bootstrap.mjs +46 -40
  187. package/dist/lib/esm/native-dialog-monitor.mjs +15 -13
  188. package/dist/lib/esm/normalize-optional-properties.d.mts +2 -2
  189. package/dist/lib/esm/normalize-optional-properties.mjs +3 -3
  190. package/dist/lib/esm/obsidian-config.d.mts +8 -8
  191. package/dist/lib/esm/obsidian-config.mjs +27 -28
  192. package/dist/lib/esm/obsidian-executable.mjs +2 -2
  193. package/dist/lib/esm/obsidian-installer.d.mts +7 -3
  194. package/dist/lib/esm/obsidian-installer.mjs +36 -36
  195. package/dist/lib/esm/obsidian-instance.d.mts +18 -8
  196. package/dist/lib/esm/obsidian-instance.mjs +3 -3
  197. package/dist/lib/esm/obsidian-metadata.d.mts +36 -12
  198. package/dist/lib/esm/obsidian-metadata.mjs +1 -1
  199. package/dist/lib/esm/obsidian-namespace.d.mts +25 -11
  200. package/dist/lib/esm/obsidian-version-switch.d.mts +14 -10
  201. package/dist/lib/esm/obsidian-version-switch.mjs +9 -9
  202. package/dist/lib/esm/obsidian-version.d.mts +15 -5
  203. package/dist/lib/esm/obsidian-version.mjs +3 -3
  204. package/dist/lib/esm/owned-vault-seed.d.mts +24 -8
  205. package/dist/lib/esm/owned-vault-seed.mjs +1 -1
  206. package/dist/lib/esm/parent-liveness.d.mts +7 -3
  207. package/dist/lib/esm/parent-liveness.mjs +3 -3
  208. package/dist/lib/esm/poll-in-obsidian.d.mts +12 -12
  209. package/dist/lib/esm/poll-in-obsidian.mjs +5 -5
  210. package/dist/lib/esm/poll-until.d.mts +21 -7
  211. package/dist/lib/esm/poll-until.mjs +1 -1
  212. package/dist/lib/esm/process-exit-message.d.mts +21 -7
  213. package/dist/lib/esm/process-exit-message.mjs +1 -1
  214. package/dist/lib/esm/renderer-boot-detection.d.mts +31 -27
  215. package/dist/lib/esm/renderer-boot-detection.mjs +7 -7
  216. package/dist/lib/esm/renderer-failed-to-initialize-error.d.mts +1 -1
  217. package/dist/lib/esm/renderer-failed-to-initialize-error.mjs +1 -1
  218. package/dist/lib/esm/setup-lock.d.mts +6 -2
  219. package/dist/lib/esm/setup-lock.mjs +26 -26
  220. package/dist/lib/esm/silent-asar-fallback-error.d.mts +12 -4
  221. package/dist/lib/esm/silent-asar-fallback-error.mjs +7 -3
  222. package/dist/lib/esm/spawn-options.d.mts +3 -1
  223. package/dist/lib/esm/spawn-options.mjs +1 -1
  224. package/dist/lib/esm/strict-proxy.d.mts +3 -3
  225. package/dist/lib/esm/strict-proxy.mjs +25 -25
  226. package/dist/lib/esm/{temp-vault.d.mts → temporary-vault.d.mts} +3 -3
  227. package/dist/lib/esm/temporary-vault.mjs +157 -0
  228. package/dist/lib/esm/transport-appium.d.mts +7 -3
  229. package/dist/lib/esm/transport-appium.mjs +7 -7
  230. package/dist/lib/esm/transport-desktop-cdp.d.mts +29 -17
  231. package/dist/lib/esm/transport-desktop-cdp.mjs +67 -67
  232. package/dist/lib/esm/transport-factory.mjs +71 -72
  233. package/dist/lib/esm/type-guards.d.mts +2 -2
  234. package/dist/lib/esm/type-guards.mjs +3 -3
  235. package/dist/lib/esm/vault-path-match.d.mts +11 -11
  236. package/dist/lib/esm/vault-path-match.mjs +7 -7
  237. package/dist/lib/esm/version-matrix.d.mts +51 -17
  238. package/dist/lib/esm/version-matrix.mjs +1 -1
  239. package/dist/lib/esm/visibility.d.mts +5 -5
  240. package/dist/lib/esm/visibility.mjs +5 -5
  241. package/dist/lib/esm/vitest/global-setup-no-plugin.d.mts +2 -2
  242. package/dist/lib/esm/vitest/global-setup-no-plugin.mjs +3 -3
  243. package/dist/lib/esm/vitest/global-setup.d.mts +4 -4
  244. package/dist/lib/esm/vitest/global-setup.mjs +8 -8
  245. package/dist/lib/esm/vitest/setup.mjs +2 -2
  246. package/dist/lib/esm/vitest/typings.d.mts +2 -2
  247. package/dist/obsidian-integration-testing-10.0.0.tgz +0 -0
  248. package/package.json +15 -13
  249. package/dist/lib/cjs/emulator-args.cjs +0 -36
  250. package/dist/lib/cjs/temp-vault.cjs +0 -166
  251. package/dist/lib/esm/emulator-args.mjs +0 -12
  252. package/dist/lib/esm/temp-vault.mjs +0 -157
  253. package/dist/obsidian-integration-testing-9.2.2.tgz +0 -0
@@ -6,19 +6,23 @@
6
6
  * Delegates to the framework-agnostic core and bridges context
7
7
  * to test workers via `globalThis.__obsidianIntegrationTesting`.
8
8
  */
9
- import type { PopulateFilesParams } from '../temp-vault.cjs';
9
+ import type { PopulateFilesParams } from '../temporary-vault.cjs';
10
10
  import type { ObsidianTransportOptions } from '../transport-options.cjs';
11
- import { TempVault } from '../temp-vault.cjs';
11
+ import { TemporaryVault } from '../temporary-vault.cjs';
12
12
  /**
13
13
  * Shape of `globalThis.__obsidianIntegrationTesting`.
14
14
  *
15
15
  * Consumers may pre-populate `transportOptions` before the global setup runs
16
- * (e.g., via Jest config `globals`). The setup then adds `tempVaultPath`.
16
+ * (e.g., via Jest config `globals`). The setup then adds `temporaryVaultPath`.
17
17
  */
18
18
  interface ObsidianIntegrationTestingGlobal {
19
- /** Temp vault path, set by the global setup for test workers. */
20
- tempVaultPath?: string | undefined;
21
- /** Transport options. Set by the consumer before setup, or by the setup itself. */
19
+ /**
20
+ Temp vault path, set by the global setup for test workers.
21
+ */
22
+ temporaryVaultPath?: string | undefined;
23
+ /**
24
+ Transport options. Set by the consumer before setup, or by the setup itself.
25
+ */
22
26
  transportOptions?: ObsidianTransportOptions | undefined;
23
27
  }
24
28
  declare global {
@@ -76,12 +80,12 @@ export declare function createSetup(options?: CreateSetupOptions): JestGlobalSet
76
80
  /**
77
81
  * Returns the temporary vault provided by the global setup.
78
82
  *
79
- * Reads the vault path from `globalThis.__obsidianIntegrationTesting.tempVaultPath`,
83
+ * Reads the vault path from `globalThis.__obsidianIntegrationTesting.temporaryVaultPath`,
80
84
  * which is set by the Jest global setup.
81
85
  *
82
86
  * @returns The temporary vault.
83
87
  */
84
- export declare function getTempVault(): TempVault;
88
+ export declare function getTemporaryVault(): TemporaryVault;
85
89
  /**
86
90
  * Returns the transport options provided by the global setup.
87
91
  *
@@ -18,9 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var global_teardown_no_plugin_exports = {};
20
20
  __export(global_teardown_no_plugin_exports, {
21
- default: () => global_teardown_no_plugin_default
21
+ default: () => import_global_setup_no_plugin.teardown
22
22
  });
23
23
  module.exports = __toCommonJS(global_teardown_no_plugin_exports);
24
24
  var import_global_setup_no_plugin = require("./global-setup-no-plugin.cjs");
25
- var global_teardown_no_plugin_default = import_global_setup_no_plugin.teardown;
26
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXRlYXJkb3duLW5vLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEplc3QgKipwbHVnaW4tbGVzcyoqIGdsb2JhbCB0ZWFyZG93biBlbnRyeSBwb2ludC5cbiAqXG4gKiBKZXN0IHJlcXVpcmVzIGBnbG9iYWxUZWFyZG93bmAgdG8gYmUgYSBzZXBhcmF0ZSBtb2R1bGUgd2hvc2UgZGVmYXVsdCBleHBvcnQgaXNcbiAqIHRoZSB0ZWFyZG93biBmdW5jdGlvbi4gSXQgcmUtZXhwb3J0cyB0aGUgdGVhcmRvd24gZnJvbSB0aGUgcGx1Z2luLWxlc3Mgc2V0dXBcbiAqIG1vZHVsZSBzbyBib3RoIHNoYXJlIHRoZSBzYW1lIHNldHVwIHN0YXRlIHdpdGhpbiB0aGUgSmVzdCBwYXJlbnQgcHJvY2Vzcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW50ZWdyYXRpb24tdGltZSB0ZWFyZG93biBjb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RzLCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuaW1wb3J0IHsgdGVhcmRvd24gfSBmcm9tICcuL2dsb2JhbC1zZXR1cC1uby1wbHVnaW4uY2pzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0IC0tIEplc3QncyBnbG9iYWxUZWFyZG93biBsb2FkZXIgcmVxdWlyZXMgYSBkZWZhdWx0LWV4cG9ydCBmdW5jdGlvbi5cbmV4cG9ydCBkZWZhdWx0IHRlYXJkb3duO1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLG9DQUF5QjtBQUd6QixJQUFPLG9DQUFROyIsCiAgIm5hbWVzIjogW10KfQo=
25
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXRlYXJkb3duLW5vLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEplc3QgKipwbHVnaW4tbGVzcyoqIGdsb2JhbCB0ZWFyZG93biBlbnRyeSBwb2ludC5cbiAqXG4gKiBKZXN0IHJlcXVpcmVzIGBnbG9iYWxUZWFyZG93bmAgdG8gYmUgYSBzZXBhcmF0ZSBtb2R1bGUgd2hvc2UgZGVmYXVsdCBleHBvcnQgaXNcbiAqIHRoZSB0ZWFyZG93biBmdW5jdGlvbi4gSXQgcmUtZXhwb3J0cyB0aGUgdGVhcmRvd24gZnJvbSB0aGUgcGx1Z2luLWxlc3Mgc2V0dXBcbiAqIG1vZHVsZSBzbyBib3RoIHNoYXJlIHRoZSBzYW1lIHNldHVwIHN0YXRlIHdpdGhpbiB0aGUgSmVzdCBwYXJlbnQgcHJvY2Vzcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW50ZWdyYXRpb24tdGltZSB0ZWFyZG93biBjb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RzLCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0IC0tIEplc3QncyBnbG9iYWxUZWFyZG93biBsb2FkZXIgcmVxdWlyZXMgYSBkZWZhdWx0LWV4cG9ydCBmdW5jdGlvbi5cbmV4cG9ydCB7IHRlYXJkb3duIGFzIGRlZmF1bHQgfSBmcm9tICcuL2dsb2JhbC1zZXR1cC1uby1wbHVnaW4uY2pzJztcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSxvQ0FBb0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -7,5 +7,4 @@
7
7
  * the teardown function. It re-exports the teardown from the plugin-less setup
8
8
  * module so both share the same setup state within the Jest parent process.
9
9
  */
10
- import { teardown } from './global-setup-no-plugin.cjs';
11
- export default teardown;
10
+ export { teardown as default } from './global-setup-no-plugin.cjs';
@@ -18,9 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var global_teardown_exports = {};
20
20
  __export(global_teardown_exports, {
21
- default: () => global_teardown_default
21
+ default: () => import_global_setup.teardown
22
22
  });
23
23
  module.exports = __toCommonJS(global_teardown_exports);
24
24
  var import_global_setup = require("./global-setup.cjs");
25
- var global_teardown_default = import_global_setup.teardown;
26
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXRlYXJkb3duLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogSmVzdCBnbG9iYWwgdGVhcmRvd24gZW50cnkgcG9pbnQuXG4gKlxuICogSmVzdCByZXF1aXJlcyBgZ2xvYmFsVGVhcmRvd25gIHRvIGJlIGEgc2VwYXJhdGUgbW9kdWxlIHdob3NlIGRlZmF1bHQgZXhwb3J0IGlzXG4gKiB0aGUgdGVhcmRvd24gZnVuY3Rpb24uIEl0IHJlLWV4cG9ydHMgdGhlIHRlYXJkb3duIGZyb20gdGhlIHNldHVwIG1vZHVsZSBzbyBib3RoXG4gKiBzaGFyZSB0aGUgc2FtZSBzZXR1cCBzdGF0ZSB3aXRoaW4gdGhlIEplc3QgcGFyZW50IHByb2Nlc3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgdGVhcmRvd24gY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB7IHRlYXJkb3duIH0gZnJvbSAnLi9nbG9iYWwtc2V0dXAuY2pzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0IC0tIEplc3QncyBnbG9iYWxUZWFyZG93biBsb2FkZXIgcmVxdWlyZXMgYSBkZWZhdWx0LWV4cG9ydCBmdW5jdGlvbi5cbmV4cG9ydCBkZWZhdWx0IHRlYXJkb3duO1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLDBCQUF5QjtBQUd6QixJQUFPLDBCQUFROyIsCiAgIm5hbWVzIjogW10KfQo=
25
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXRlYXJkb3duLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogSmVzdCBnbG9iYWwgdGVhcmRvd24gZW50cnkgcG9pbnQuXG4gKlxuICogSmVzdCByZXF1aXJlcyBgZ2xvYmFsVGVhcmRvd25gIHRvIGJlIGEgc2VwYXJhdGUgbW9kdWxlIHdob3NlIGRlZmF1bHQgZXhwb3J0IGlzXG4gKiB0aGUgdGVhcmRvd24gZnVuY3Rpb24uIEl0IHJlLWV4cG9ydHMgdGhlIHRlYXJkb3duIGZyb20gdGhlIHNldHVwIG1vZHVsZSBzbyBib3RoXG4gKiBzaGFyZSB0aGUgc2FtZSBzZXR1cCBzdGF0ZSB3aXRoaW4gdGhlIEplc3QgcGFyZW50IHByb2Nlc3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgdGVhcmRvd24gY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCAtLSBKZXN0J3MgZ2xvYmFsVGVhcmRvd24gbG9hZGVyIHJlcXVpcmVzIGEgZGVmYXVsdC1leHBvcnQgZnVuY3Rpb24uXG5leHBvcnQgeyB0ZWFyZG93biBhcyBkZWZhdWx0IH0gZnJvbSAnLi9nbG9iYWwtc2V0dXAuY2pzJztcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSwwQkFBb0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -7,5 +7,4 @@
7
7
  * the teardown function. It re-exports the teardown from the setup module so both
8
8
  * share the same setup state within the Jest parent process.
9
9
  */
10
- import { teardown } from './global-setup.cjs';
11
- export default teardown;
10
+ export { teardown as default } from './global-setup.cjs';
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  var import_context_provider = require("../context-provider.cjs");
3
3
  (0, import_context_provider.setTransportOptionsResolver)(() => globalThis.__obsidianIntegrationTesting?.transportOptions);
4
- (0, import_context_provider.setVaultPathResolver)(() => globalThis.__obsidianIntegrationTesting?.tempVaultPath);
5
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3Qvc2V0dXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBKZXN0ICoqcGVyLXdvcmtlcioqIHNldHVwIGZpbGUuXG4gKlxuICogSmVzdCBydW5zIGBnbG9iYWxTZXR1cGAgb25seSBpbiB0aGUgbWFpbiBwcm9jZXNzLCBzbyB0aGUgdHJhbnNwb3J0LW9wdGlvbnMgYW5kXG4gKiB2YXVsdC1wYXRoIHJlc29sdmVycyByZWdpc3RlcmVkIHRoZXJlIG5ldmVyIGV4aXN0IGluIHRoZSB0ZXN0IHdvcmtlcnMgdGhhdFxuICogYWN0dWFsbHkgY2FsbCB7QGxpbmsgZXZhbEluT2JzaWRpYW59LiBBZGQgdGhpcyBtb2R1bGUgdG8gdGhlIGludGVncmF0aW9uXG4gKiBjb25maWcncyBgc2V0dXBGaWxlc2Agc28gZWFjaCB3b3JrZXIgcmVnaXN0ZXJzIHRoZSByZXNvbHZlcnMgYW5kIHJlYWRzIHRoZVxuICogY29udGV4dCBmcm9tIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgICh0aGUgdHJhbnNwb3J0IG9wdGlvbnNcbiAqIGEgY29uc3VtZXIgc2V0cyB2aWEgSmVzdCBgZ2xvYmFsc2AsIHBsdXMgdGhlIHZhdWx0IHBhdGgpLlxuICpcbiAqIE5vdGU6IHVubGlrZSBWaXRlc3QncyBgcHJvdmlkZWAvYGluamVjdGAsIEplc3QgaGFzIG5vIGNoYW5uZWwgZnJvbVxuICogYGdsb2JhbFNldHVwYCB0byB3b3JrZXIgc2FuZGJveGVzIGZvciAqZHluYW1pY2FsbHkqIGNvbXB1dGVkIHZhbHVlcywgc28gdGhlXG4gKiBvd25lZC1DRFAgZGVmYXVsdCdzIGF1dG8tY2hvc2VuIHBvcnQgY2Fubm90IHJlYWNoIEplc3Qgd29ya2VycyBcdTIwMTQgdW5kZXIgSmVzdCxcbiAqIGF0dGFjaCB0byBhIGZpeGVkIGBwb3J0YCB2aWEgdGhlIHRyYW5zcG9ydCBvcHRpb25zIGluIGBnbG9iYWxzYC5cbiAqL1xuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgc2V0dXAgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIH0gZnJvbSAnLi4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcblxuaW1wb3J0IHtcbiAgc2V0VHJhbnNwb3J0T3B0aW9uc1Jlc29sdmVyLFxuICBzZXRWYXVsdFBhdGhSZXNvbHZlclxufSBmcm9tICcuLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5cbmludGVyZmFjZSBPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ0dsb2JhbCB7XG4gIHRlbXBWYXVsdFBhdGg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHRyYW5zcG9ydE9wdGlvbnM/OiBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMgfCB1bmRlZmluZWQ7XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIHZhcnMtb24tdG9wIC0tIFJlcXVpcmVkIGZvciBgZGVjbGFyZSBnbG9iYWxgIGF1Z21lbnRhdGlvbi4gKi9cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgdmFyIF9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc6IE9ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nR2xvYmFsIHwgdW5kZWZpbmVkO1xufVxuLyogZXNsaW50LWVuYWJsZSB2YXJzLW9uLXRvcCAtLSBFbmQgb2YgYGRlY2xhcmUgZ2xvYmFsYCBibG9jay4gKi9cblxuc2V0VHJhbnNwb3J0T3B0aW9uc1Jlc29sdmVyKCgpID0+IGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udHJhbnNwb3J0T3B0aW9ucyk7XG5zZXRWYXVsdFBhdGhSZXNvbHZlcigoKSA9PiBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc/LnRlbXBWYXVsdFBhdGgpO1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQXFCQSw4QkFHTztBQUFBLElBYVAscURBQTRCLE1BQU0sV0FBVyw4QkFBOEIsZ0JBQWdCO0FBQUEsSUFDM0YsOENBQXFCLE1BQU0sV0FBVyw4QkFBOEIsYUFBYTsiLAogICJuYW1lcyI6IFtdCn0K
4
+ (0, import_context_provider.setVaultPathResolver)(() => globalThis.__obsidianIntegrationTesting?.temporaryVaultPath);
5
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3Qvc2V0dXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBKZXN0ICoqcGVyLXdvcmtlcioqIHNldHVwIGZpbGUuXG4gKlxuICogSmVzdCBydW5zIGBnbG9iYWxTZXR1cGAgb25seSBpbiB0aGUgbWFpbiBwcm9jZXNzLCBzbyB0aGUgdHJhbnNwb3J0LW9wdGlvbnMgYW5kXG4gKiB2YXVsdC1wYXRoIHJlc29sdmVycyByZWdpc3RlcmVkIHRoZXJlIG5ldmVyIGV4aXN0IGluIHRoZSB0ZXN0IHdvcmtlcnMgdGhhdFxuICogYWN0dWFsbHkgY2FsbCB7QGxpbmsgZXZhbEluT2JzaWRpYW59LiBBZGQgdGhpcyBtb2R1bGUgdG8gdGhlIGludGVncmF0aW9uXG4gKiBjb25maWcncyBgc2V0dXBGaWxlc2Agc28gZWFjaCB3b3JrZXIgcmVnaXN0ZXJzIHRoZSByZXNvbHZlcnMgYW5kIHJlYWRzIHRoZVxuICogY29udGV4dCBmcm9tIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgICh0aGUgdHJhbnNwb3J0IG9wdGlvbnNcbiAqIGEgY29uc3VtZXIgc2V0cyB2aWEgSmVzdCBgZ2xvYmFsc2AsIHBsdXMgdGhlIHZhdWx0IHBhdGgpLlxuICpcbiAqIE5vdGU6IHVubGlrZSBWaXRlc3QncyBgcHJvdmlkZWAvYGluamVjdGAsIEplc3QgaGFzIG5vIGNoYW5uZWwgZnJvbVxuICogYGdsb2JhbFNldHVwYCB0byB3b3JrZXIgc2FuZGJveGVzIGZvciAqZHluYW1pY2FsbHkqIGNvbXB1dGVkIHZhbHVlcywgc28gdGhlXG4gKiBvd25lZC1DRFAgZGVmYXVsdCdzIGF1dG8tY2hvc2VuIHBvcnQgY2Fubm90IHJlYWNoIEplc3Qgd29ya2VycyBcdTIwMTQgdW5kZXIgSmVzdCxcbiAqIGF0dGFjaCB0byBhIGZpeGVkIGBwb3J0YCB2aWEgdGhlIHRyYW5zcG9ydCBvcHRpb25zIGluIGBnbG9iYWxzYC5cbiAqL1xuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgc2V0dXAgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIH0gZnJvbSAnLi4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcblxuaW1wb3J0IHtcbiAgc2V0VHJhbnNwb3J0T3B0aW9uc1Jlc29sdmVyLFxuICBzZXRWYXVsdFBhdGhSZXNvbHZlclxufSBmcm9tICcuLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5cbmludGVyZmFjZSBPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ0dsb2JhbCB7XG4gIHRlbXBvcmFyeVZhdWx0UGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdHJhbnNwb3J0T3B0aW9ucz86IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZDtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgdmFycy1vbi10b3AgLS0gUmVxdWlyZWQgZm9yIGBkZWNsYXJlIGdsb2JhbGAgYXVnbWVudGF0aW9uLiAqL1xuZGVjbGFyZSBnbG9iYWwge1xuICB2YXIgX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZzogT2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdHbG9iYWwgfCB1bmRlZmluZWQ7XG59XG4vKiBlc2xpbnQtZW5hYmxlIHZhcnMtb24tdG9wIC0tIEVuZCBvZiBgZGVjbGFyZSBnbG9iYWxgIGJsb2NrLiAqL1xuXG5zZXRUcmFuc3BvcnRPcHRpb25zUmVzb2x2ZXIoKCkgPT4gZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy50cmFuc3BvcnRPcHRpb25zKTtcbnNldFZhdWx0UGF0aFJlc29sdmVyKCgpID0+IGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udGVtcG9yYXJ5VmF1bHRQYXRoKTtcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFxQkEsOEJBR087QUFBQSxJQWFQLHFEQUE0QixNQUFNLFdBQVcsOEJBQThCLGdCQUFnQjtBQUFBLElBQzNGLDhDQUFxQixNQUFNLFdBQVcsOEJBQThCLGtCQUFrQjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -17,7 +17,7 @@
17
17
  */
18
18
  import type { ObsidianTransportOptions } from '../transport-options.cjs';
19
19
  interface ObsidianIntegrationTestingGlobal {
20
- tempVaultPath?: string | undefined;
20
+ temporaryVaultPath?: string | undefined;
21
21
  transportOptions?: ObsidianTransportOptions | undefined;
22
22
  }
23
23
  declare global {
@@ -25,17 +25,17 @@ var import_function_expression = require("./function-expression.cjs");
25
25
  function jsonWithFunctions(value) {
26
26
  const functionMap = /* @__PURE__ */ new Map();
27
27
  const JSON_INDENT = 2;
28
- const json = JSON.stringify(value, (_key, val) => {
29
- if (typeof val === "function") {
28
+ const json = JSON.stringify(value, (_key, value_) => {
29
+ if (typeof value_ === "function") {
30
30
  const placeholder = `__fn_${String(functionMap.size)}__`;
31
- functionMap.set(placeholder, (0, import_function_expression.getFunctionExpressionString)(val));
31
+ functionMap.set(placeholder, (0, import_function_expression.getFunctionExpressionString)(value_));
32
32
  return placeholder;
33
33
  }
34
- return val;
34
+ return value_;
35
35
  }, JSON_INDENT);
36
36
  let result = json;
37
- for (const [placeholder, fnSource] of functionMap) {
38
- result = result.replace(`"${placeholder}"`, fnSource);
37
+ for (const [placeholder, functionSource] of functionMap) {
38
+ result = result.replace(`"${placeholder}"`, () => functionSource);
39
39
  }
40
40
  return result;
41
41
  }
@@ -43,4 +43,4 @@ function jsonWithFunctions(value) {
43
43
  0 && (module.exports = {
44
44
  jsonWithFunctions
45
45
  });
46
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2pzb24td2l0aC1mdW5jdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTZXJpYWxpemVzIGEgdmFsdWUgdG8gSlNPTiwgcHJlc2VydmluZyBmdW5jdGlvbiBib2RpZXMgYXMgcmF3IHNvdXJjZSB0ZXh0LlxuICovXG5cbmltcG9ydCB7IGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyB9IGZyb20gJy4vZnVuY3Rpb24tZXhwcmVzc2lvbi5janMnO1xuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSB2YWx1ZSB0byBKU09OIHdpdGggZnVuY3Rpb24gYm9kaWVzIGluY2x1ZGVkIGFzIHJhdyBzb3VyY2UgdGV4dC5cbiAqXG4gKiBTdGFuZGFyZCBgSlNPTi5zdHJpbmdpZnlgIG9taXRzIGZ1bmN0aW9ucyBlbnRpcmVseS4gVGhpcyBoZWxwZXIgcmVwbGFjZXNcbiAqIGVhY2ggZnVuY3Rpb24gdmFsdWUgd2l0aCBhIHVuaXF1ZSBwbGFjZWhvbGRlciBkdXJpbmcgc3RyaW5naWZpY2F0aW9uLFxuICogdGhlbiBzdWJzdGl0dXRlcyB0aGUgcGxhY2Vob2xkZXJzIHdpdGggdGhlIHJlYWwgYHRvU3RyaW5nKClgIG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2VyaWFsaXplLlxuICogQHJldHVybnMgQSBKU09OLWxpa2Ugc3RyaW5nIHdoZXJlIGZ1bmN0aW9ucyBhcHBlYXIgYXMgdGhlaXIgc291cmNlIHRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqc29uV2l0aEZ1bmN0aW9ucyh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIGNvbnN0IGZ1bmN0aW9uTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICBjb25zdCBKU09OX0lOREVOVCA9IDI7XG4gIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgKF9rZXk6IHN0cmluZywgdmFsOiB1bmtub3duKTogSlNPTlZhbHVlRjx1bmtub3duPiA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gYF9fZm5fJHtTdHJpbmcoZnVuY3Rpb25NYXAuc2l6ZSl9X19gO1xuICAgICAgZnVuY3Rpb25NYXAuc2V0KHBsYWNlaG9sZGVyLCBnZXRGdW5jdGlvbkV4cHJlc3Npb25TdHJpbmcodmFsKSk7XG4gICAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gICAgfVxuICAgIHJldHVybiB2YWwgYXMgSlNPTlZhbHVlRjx1bmtub3duPjtcbiAgfSwgSlNPTl9JTkRFTlQpO1xuXG4gIGxldCByZXN1bHQgPSBqc29uO1xuICBmb3IgKGNvbnN0IFtwbGFjZWhvbGRlciwgZm5Tb3VyY2VdIG9mIGZ1bmN0aW9uTWFwKSB7XG4gICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoYFwiJHtwbGFjZWhvbGRlcn1cImAsIGZuU291cmNlKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsaUNBQTRDO0FBWXJDLFNBQVMsa0JBQWtCLE9BQXdCO0FBQ3hELFFBQU0sY0FBYyxvQkFBSSxJQUFvQjtBQUU1QyxRQUFNLGNBQWM7QUFDcEIsUUFBTSxPQUFPLEtBQUssVUFBVSxPQUFPLENBQUMsTUFBYyxRQUFzQztBQUN0RixRQUFJLE9BQU8sUUFBUSxZQUFZO0FBQzdCLFlBQU0sY0FBYyxRQUFRLE9BQU8sWUFBWSxJQUFJLENBQUM7QUFDcEQsa0JBQVksSUFBSSxpQkFBYSx3REFBNEIsR0FBRyxDQUFDO0FBQzdELGFBQU87QUFBQSxJQUNUO0FBQ0EsV0FBTztBQUFBLEVBQ1QsR0FBRyxXQUFXO0FBRWQsTUFBSSxTQUFTO0FBQ2IsYUFBVyxDQUFDLGFBQWEsUUFBUSxLQUFLLGFBQWE7QUFDakQsYUFBUyxPQUFPLFFBQVEsSUFBSSxXQUFXLEtBQUssUUFBUTtBQUFBLEVBQ3REO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
46
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2pzb24td2l0aC1mdW5jdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTZXJpYWxpemVzIGEgdmFsdWUgdG8gSlNPTiwgcHJlc2VydmluZyBmdW5jdGlvbiBib2RpZXMgYXMgcmF3IHNvdXJjZSB0ZXh0LlxuICovXG5cbmltcG9ydCB7IGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyB9IGZyb20gJy4vZnVuY3Rpb24tZXhwcmVzc2lvbi5janMnO1xuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSB2YWx1ZSB0byBKU09OIHdpdGggZnVuY3Rpb24gYm9kaWVzIGluY2x1ZGVkIGFzIHJhdyBzb3VyY2UgdGV4dC5cbiAqXG4gKiBTdGFuZGFyZCBgSlNPTi5zdHJpbmdpZnlgIG9taXRzIGZ1bmN0aW9ucyBlbnRpcmVseS4gVGhpcyBoZWxwZXIgcmVwbGFjZXNcbiAqIGVhY2ggZnVuY3Rpb24gdmFsdWUgd2l0aCBhIHVuaXF1ZSBwbGFjZWhvbGRlciBkdXJpbmcgc3RyaW5naWZpY2F0aW9uLFxuICogdGhlbiBzdWJzdGl0dXRlcyB0aGUgcGxhY2Vob2xkZXJzIHdpdGggdGhlIHJlYWwgYHRvU3RyaW5nKClgIG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2VyaWFsaXplLlxuICogQHJldHVybnMgQSBKU09OLWxpa2Ugc3RyaW5nIHdoZXJlIGZ1bmN0aW9ucyBhcHBlYXIgYXMgdGhlaXIgc291cmNlIHRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqc29uV2l0aEZ1bmN0aW9ucyh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIGNvbnN0IGZ1bmN0aW9uTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICBjb25zdCBKU09OX0lOREVOVCA9IDI7XG4gIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgKF9rZXk6IHN0cmluZywgdmFsdWVfOiB1bmtub3duKTogSlNPTlZhbHVlRjx1bmtub3duPiA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZV8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gYF9fZm5fJHtTdHJpbmcoZnVuY3Rpb25NYXAuc2l6ZSl9X19gO1xuICAgICAgZnVuY3Rpb25NYXAuc2V0KHBsYWNlaG9sZGVyLCBnZXRGdW5jdGlvbkV4cHJlc3Npb25TdHJpbmcodmFsdWVfKSk7XG4gICAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZV8gYXMgSlNPTlZhbHVlRjx1bmtub3duPjtcbiAgfSwgSlNPTl9JTkRFTlQpO1xuXG4gIGxldCByZXN1bHQgPSBqc29uO1xuICBmb3IgKGNvbnN0IFtwbGFjZWhvbGRlciwgZnVuY3Rpb25Tb3VyY2VdIG9mIGZ1bmN0aW9uTWFwKSB7XG4gICAgLypcbiAgICAgKiBUaGUgcmVwbGFjZXIgRlVOQ1RJT04gaXMgcmVxdWlyZWQsIG5vdCBjb3NtZXRpYzogYGZuU291cmNlYCBpcyBhcmJpdHJhcnkgdXNlciBmdW5jdGlvbiBzb3VyY2UsIGFuZCBhXG4gICAgICogc3RyaW5nIHJlcGxhY2VtZW50IHdvdWxkIHJlYWQgYW55IGAkJmAgLyBgJCdgIC8gYGAgJGAgYGAgaW5zaWRlIGl0IGFzIGEgc3Vic3RpdHV0aW9uIHBhdHRlcm4gYW5kIHNpbGVudGx5XG4gICAgICogY29ycnVwdCB0aGUgc2VyaWFsaXplZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShgXCIke3BsYWNlaG9sZGVyfVwiYCwgKCkgPT4gZnVuY3Rpb25Tb3VyY2UpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxpQ0FBNEM7QUFZckMsU0FBUyxrQkFBa0IsT0FBd0I7QUFDeEQsUUFBTSxjQUFjLG9CQUFJLElBQW9CO0FBRTVDLFFBQU0sY0FBYztBQUNwQixRQUFNLE9BQU8sS0FBSyxVQUFVLE9BQU8sQ0FBQyxNQUFjLFdBQXlDO0FBQ3pGLFFBQUksT0FBTyxXQUFXLFlBQVk7QUFDaEMsWUFBTSxjQUFjLFFBQVEsT0FBTyxZQUFZLElBQUksQ0FBQztBQUNwRCxrQkFBWSxJQUFJLGlCQUFhLHdEQUE0QixNQUFNLENBQUM7QUFDaEUsYUFBTztBQUFBLElBQ1Q7QUFDQSxXQUFPO0FBQUEsRUFDVCxHQUFHLFdBQVc7QUFFZCxNQUFJLFNBQVM7QUFDYixhQUFXLENBQUMsYUFBYSxjQUFjLEtBQUssYUFBYTtBQU12RCxhQUFTLE9BQU8sUUFBUSxJQUFJLFdBQVcsS0FBSyxNQUFNLGNBQWM7QUFBQSxFQUNsRTtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -25,9 +25,9 @@ __export(leftover_cleanup_exports, {
25
25
  checkIsLeftoverStale: () => checkIsLeftoverStale,
26
26
  filterLeftoverNames: () => filterLeftoverNames,
27
27
  resolveLeftoverMaxAgeInMilliseconds: () => resolveLeftoverMaxAgeInMilliseconds,
28
- resolveShouldSweepLeftovers: () => resolveShouldSweepLeftovers,
29
28
  sweepDeviceLeftovers: () => sweepDeviceLeftovers,
30
- sweepHostLeftovers: () => sweepHostLeftovers
29
+ sweepHostLeftovers: () => sweepHostLeftovers,
30
+ willSweepLeftovers: () => willSweepLeftovers
31
31
  });
32
32
  module.exports = __toCommonJS(leftover_cleanup_exports);
33
33
  var import_promises = require("node:fs/promises");
@@ -50,18 +50,15 @@ function filterLeftoverNames(params) {
50
50
  function resolveLeftoverMaxAgeInMilliseconds(options) {
51
51
  return options?.leftoverMaxAgeInMilliseconds ?? DEFAULT_LEFTOVER_MAX_AGE_IN_MILLISECONDS;
52
52
  }
53
- function resolveShouldSweepLeftovers(options) {
54
- return options?.shouldSweepLeftovers ?? true;
55
- }
56
53
  async function sweepDeviceLeftovers(params) {
57
- const { listNames, removeDir, vaultBasePath } = params;
54
+ const { listNames, removeDirectory, vaultBasePath } = params;
58
55
  const names = filterLeftoverNames({ names: await listNames(), prefixes: [TEMP_VAULT_DIR_PREFIX] });
59
56
  if (names.length === 0) {
60
57
  return { failedNames: [], removedCount: 0 };
61
58
  }
62
59
  for (const name of names) {
63
60
  try {
64
- await removeDir(`${vaultBasePath}${name}`);
61
+ await removeDirectory(`${vaultBasePath}${name}`);
65
62
  } catch {
66
63
  }
67
64
  }
@@ -78,12 +75,12 @@ async function sweepHostLeftovers(options) {
78
75
  for (const root of roots) {
79
76
  const names = filterLeftoverNames({
80
77
  excludedNames: options?.excludedNames,
81
- names: await readDirNames(root.path),
78
+ names: await readDirectoryNames(root.path),
82
79
  prefixes: root.prefixes
83
80
  });
84
81
  for (const name of names) {
85
82
  const path = (0, import_node_path.join)(root.path, name);
86
- if (!await checkIsRemovableDir({ maxAgeInMilliseconds, nowInMilliseconds, path })) {
83
+ if (!await checkIsRemovableDirectory({ maxAgeInMilliseconds, nowInMilliseconds, path })) {
87
84
  continue;
88
85
  }
89
86
  try {
@@ -96,7 +93,10 @@ async function sweepHostLeftovers(options) {
96
93
  }
97
94
  return { failedCount, removedCount };
98
95
  }
99
- async function checkIsRemovableDir(params) {
96
+ function willSweepLeftovers(options) {
97
+ return options?.shouldSweepLeftovers ?? true;
98
+ }
99
+ async function checkIsRemovableDirectory(params) {
100
100
  const { maxAgeInMilliseconds, nowInMilliseconds } = params;
101
101
  try {
102
102
  const stats = await (0, import_promises.stat)(params.path);
@@ -111,7 +111,7 @@ function getDefaultLeftoverRoots() {
111
111
  { path: (0, import_node_path.join)((0, import_node_os.tmpdir)(), HARNESS_TEMP_DIR_NAME), prefixes: [OWNED_USER_DATA_DIR_PREFIX] }
112
112
  ];
113
113
  }
114
- async function readDirNames(path) {
114
+ async function readDirectoryNames(path) {
115
115
  try {
116
116
  return await (0, import_promises.readdir)(path);
117
117
  } catch {
@@ -127,8 +127,8 @@ async function readDirNames(path) {
127
127
  checkIsLeftoverStale,
128
128
  filterLeftoverNames,
129
129
  resolveLeftoverMaxAgeInMilliseconds,
130
- resolveShouldSweepLeftovers,
131
130
  sweepDeviceLeftovers,
132
- sweepHostLeftovers
131
+ sweepHostLeftovers,
132
+ willSweepLeftovers
133
133
  });
134
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xlZnRvdmVyLWNsZWFudXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTd2VlcHMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyBhIHByZXZpb3VzIGludGVncmF0aW9uIHJ1biBsZWFrZWQgXHUyMDE0IHRoZVxuICogYHRlbXAtdmF1bHQtKmAgc3RhZ2luZy92YXVsdCBkaXJlY3RvcmllcyBhbmQgdGhlIG93bmVkIGluc3RhbmNlJ3NcbiAqIGB1c2VyZGF0YS0qYCBDaHJvbWl1bSBwcm9maWxlcy5cbiAqXG4gKiBBIHJ1biB0aGF0IGRpZXMgbWlkLWZsaWdodCBjYW5ub3QgY2xlYW4gdXAgYWZ0ZXIgaXRzZWxmOiBvbiBBbmRyb2lkIHRoZVxuICogdGVhcmRvd24gdGFsa3MgdG8gdGhlIFdlYlZpZXcsIGFuZCBhIGRlYWQgV2ViVmlldyBpcyBleGFjdGx5IHdoYXQgbW9zdFxuICogZmFpbHVyZXMgYXJlIChgVmF1bHQgY2xlYW51cCBlcnJvciAobm9uLWZhdGFsKTogbm8gc3VjaCB3aW5kb3dgKS4gRXZlcnlcbiAqIGZhaWx1cmUgdGhlcmVmb3JlIGxlYWtzIGEgdmF1bHQsIGV2ZXJ5IGxlYWtlZCB2YXVsdCBzdGF5cyByZWdpc3RlcmVkIGZvclxuICogT2JzaWRpYW4gdG8gZW51bWVyYXRlIGF0IHN0YXJ0dXAsIGFuZCB0aGF0IGVudW1lcmF0aW9uIGhhcyB0byBmaW5pc2ggaW5zaWRlXG4gKiB0aGUgV2ViVmlldy1yZWFkaW5lc3MgYnVkZ2V0IFx1MjAxNCBzbyBlYWNoIGZhaWx1cmUgbWFrZXMgdGhlIG5leHQgb25lIGxpa2VsaWVyLlxuICogU3dlZXBpbmcgZm9yZWlnbiByZXNpZHVlIGF0IHRoZSBTVEFSVCBvZiBhIHJ1biBicmVha3MgdGhhdCBsb29wLCBiZWNhdXNlIGl0XG4gKiBydW5zIGJlZm9yZSBhbnl0aGluZyB0aGF0IGNhbiBkaWUuXG4gKlxuICogVGhlIHR3byBzaWRlcyB1c2UgZGVsaWJlcmF0ZWx5IGRpZmZlcmVudCBzYWZldHkgZ2F0ZXMgKHNlZSB0aGUgcmVwbydzIEwzMSk6XG4gKlxuICogLSAqKkRldmljZSAoQW5kcm9pZCkqKiBcdTIwMTQgdW5jb25kaXRpb25hbC4gQW5kcm9pZCBydW5zIGhvbGQgdGhlIGV4Y2x1c2l2ZVxuICogICBgYW5kcm9pZGAgc2V0dXAgbG9jaywgc28gbm8gY29uY3VycmVudCBydW4gY2FuIG93biBhIGRldmljZSB2YXVsdCwgYW5kIGFuXG4gKiAgIGFnZSBnYXRlIHdvdWxkIGxldCBhIHZhdWx0IGxlYWtlZCB0ZW4gbWludXRlcyBhZ28gc3Vydml2ZSBpbnRvIHRoZSBuZXh0IHJ1bi5cbiAqIC0gKipIb3N0KiogXHUyMDE0IGFnZS1nYXRlZC4gRGVza3RvcCBydW5zIGFyZSBkZWxpYmVyYXRlbHkgKm5vdCogc2VyaWFsaXplZCAoZWFjaFxuICogICBvd25zIGFuIGlzb2xhdGVkIGluc3RhbmNlKSBhbmQgZXZlcnkgcHJvamVjdCBvbiB0aGUgbWFjaGluZSBzaGFyZXMgb25lXG4gKiAgIGB0bXBkaXIoKWAsIHNvIGEgZGlyZWN0b3J5IHlvdW5nIGVub3VnaCB0byBiZWxvbmcgdG8gYSBsaXZlIHJ1biBpcyBsZWZ0XG4gKiAgIGFsb25lLlxuICovXG5cbmltcG9ydCB7XG4gIHJlYWRkaXIsXG4gIHJtLFxuICBzdGF0XG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1vcHRpb25zLmNqcyc7XG5cbi8qKlxuICogRGVmYXVsdCBmb3IgdGhlIGBsZWZ0b3Zlck1heEFnZUluTWlsbGlzZWNvbmRzYCB0cmFuc3BvcnQgb3B0aW9uIFx1MjAxNCB0d28gaG91cnMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xFRlRPVkVSX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTID0gNzIwMDAwMDtcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBoYXJuZXNzJ3Mgb3duIGRpcmVjdG9yeSBpbnNpZGUge0BsaW5rIHRtcGRpcn0sIHdoaWNoIGhvbGRzIHRoZVxuICogb3duZWQgaW5zdGFuY2VzJyB1c2VyLWRhdGEgZGlyZWN0b3JpZXMgYWxvbmdzaWRlIHRoZSB2ZXJzaW9uL2luc3RhbGxlciBjYWNoZXNcbiAqIGFuZCB0aGUgc2V0dXAgbG9ja3MuXG4gKi9cbmV4cG9ydCBjb25zdCBIQVJORVNTX1RFTVBfRElSX05BTUUgPSAnb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZyc7XG5cbi8qKlxuICogUHJlZml4IG9mIGFuIG93bmVkIGRlc2t0b3AgaW5zdGFuY2UncyBpc29sYXRlZCB1c2VyLWRhdGEgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgY29uc3QgT1dORURfVVNFUl9EQVRBX0RJUl9QUkVGSVggPSAndXNlcmRhdGEtJztcblxuLyoqXG4gKiBQcmVmaXggb2YgYSB0ZW1wb3JhcnkgdmF1bHQgZGlyZWN0b3J5LCBib3RoIG9uIHRoZSBob3N0ICh3aGVyZSBpdCBpcyBjcmVhdGVkKVxuICogYW5kIG9uIGFuIEFuZHJvaWQgZGV2aWNlICh3aGVyZSBpdCBrZWVwcyBpdHMgaG9zdCBiYXNlbmFtZSkuXG4gKi9cbmV4cG9ydCBjb25zdCBURU1QX1ZBVUxUX0RJUl9QUkVGSVggPSAndGVtcC12YXVsdC0nO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjaGVja0lzTGVmdG92ZXJTdGFsZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tJc0xlZnRvdmVyU3RhbGVQYXJhbXMge1xuICAvKipcbiAgICogSG93IG9sZCBhbiBlbnRyeSBtdXN0IGJlIHRvIGNvdW50IGFzIHN0YWxlLiBgMGAgZGlzYWJsZXMgdGhlIGdhdGUsIG1ha2luZ1xuICAgKiBldmVyeSBlbnRyeSBzdGFsZS5cbiAgICovXG4gIHJlYWRvbmx5IG1heEFnZUluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqIFRoZSBlbnRyeSdzIG1vZGlmaWNhdGlvbiB0aW1lLCBpbiBlcG9jaCBtaWxsaXNlY29uZHMuICovXG4gIHJlYWRvbmx5IG1vZGlmaWVkQXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKiBUaGUgY3VycmVudCB0aW1lLCBpbiBlcG9jaCBtaWxsaXNlY29uZHMuICovXG4gIHJlYWRvbmx5IG5vd0luTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbHRlckxlZnRvdmVyTmFtZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckxlZnRvdmVyTmFtZXNQYXJhbXMge1xuICAvKiogTmFtZXMgdG8ga2VlcCBldmVuIHdoZW4gdGhleSBtYXRjaCBhIHByZWZpeCAoZS5nLiB0aGUgY3VycmVudCBydW4ncyBvd24gdmF1bHQpLiAqL1xuICByZWFkb25seSBleGNsdWRlZE5hbWVzPzogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFJhdyBlbnRyeSBuYW1lcy4gQWNjZXB0cyBgYWRiIHNoZWxsIGxzYCBvdXRwdXQgc3BsaXQgaW50byBsaW5lcywgc28gZWFjaFxuICAgKiBuYW1lIGlzIHRyaW1tZWQgKGRyb3BwaW5nIHRoZSB0cmFpbGluZyBgXFxyYCBhbiBgYWRiYCBzaGVsbCBhZGRzIG9uIFdpbmRvd3MpXG4gICAqIGFuZCBibGFuayBsaW5lcyBhcmUgZHJvcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKiogRGlyZWN0b3J5LW5hbWUgcHJlZml4ZXMgdGhhdCBtYXJrIGFuIGVudHJ5IGFzIHRoZSBoYXJuZXNzJ3Mgb3duIHJlc2lkdWUuICovXG4gIHJlYWRvbmx5IHByZWZpeGVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIGRpcmVjdG9yeSB0aGUgaG9zdCBzd2VlcCBzY2FucywgdG9nZXRoZXIgd2l0aCB0aGUgcHJlZml4ZXMgdGhhdCBtYXJrXG4gKiByZXNpZHVlIGluc2lkZSBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMZWZ0b3ZlclJvb3Qge1xuICAvKiogVGhlIGFic29sdXRlIHBhdGggdG8gc2Nhbi4gKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKiBEaXJlY3RvcnktbmFtZSBwcmVmaXhlcyB0aGF0IG1hcmsgYW4gZW50cnkgYXMgcmVtb3ZhYmxlIHJlc2lkdWUuICovXG4gIHJlYWRvbmx5IHByZWZpeGVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc3dlZXBEZXZpY2VMZWZ0b3ZlcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN3ZWVwRGV2aWNlTGVmdG92ZXJzUGFyYW1zIHtcbiAgLyoqXG4gICAqIExpc3RzIHRoZSBlbnRyeSBuYW1lcyBkaXJlY3RseSB1bmRlciB0aGUgdmF1bHQgYmFzZSBwYXRoLiBBIGxpc3RpbmcgZmFpbHVyZVxuICAgKiBtdXN0IHJlc29sdmUgdG8gYW4gZW1wdHkgbGlzdCByYXRoZXIgdGhhbiByZWplY3QgXHUyMDE0IGEgZGV2aWNlIHdpdGggbm8gdmF1bHRcbiAgICogZGlyZWN0b3J5IHlldCBpcyB0aGUgbm9ybWFsIGZpcnN0LXJ1biBzdGF0ZSwgbm90IGFuIGVycm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE5hbWVzOiAoKSA9PiBQcm9taXNlPHJlYWRvbmx5IHN0cmluZ1tdPjtcblxuICAvKipcbiAgICogUmVtb3ZlcyBPTkUgZGlyZWN0b3J5LCBieSBhYnNvbHV0ZSBkZXZpY2UgcGF0aC4gTWF5IHJlamVjdDsgdGhlIGNhbGxlclxuICAgKiB0cmVhdHMgYSByZWplY3Rpb24gYXMgdGhpcyBkaXJlY3RvcnkgZmFpbGluZyBhbmQgbW92ZXMgb24gdG8gdGhlIG5leHQuXG4gICAqL1xuICByZWFkb25seSByZW1vdmVEaXI6IChwYXRoOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqIFRoZSBhYnNvbHV0ZSBkZXZpY2UgcGF0aCB0aGUgdmF1bHRzIHNpdCB1bmRlciwgaW5jbHVkaW5nIGl0cyB0cmFpbGluZyBzZXBhcmF0b3IuICovXG4gIHJlYWRvbmx5IHZhdWx0QmFzZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2Yge0BsaW5rIHN3ZWVwRGV2aWNlTGVmdG92ZXJzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2VlcERldmljZUxlZnRvdmVyc1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgdGhhdCB3ZXJlIHN0aWxsIHByZXNlbnQgYWZ0ZXIgdGhlIHN3ZWVwLiBOYW1lZCByYXRoZXIgdGhhblxuICAgKiBjb3VudGVkLCBiZWNhdXNlIHRoZSBpbnRlcmVzdGluZyBjYXNlIGlzIGEgZGlyZWN0b3J5IHRoYXQgZmFpbHMgRVZFUlkgcnVuXG4gICAqIGFuZCBhIGNhbGxlciBjYW4gb25seSBzYXkgc28gaWYgaXQga25vd3Mgd2hpY2ggb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbGVkTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8qKiBIb3cgbWFueSBkaXJlY3RvcmllcyBhcmUgdmVyaWZpYWJseSBnb25lLiAqL1xuICByZWFkb25seSByZW1vdmVkQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgc3dlZXBIb3N0TGVmdG92ZXJzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2VlcEhvc3RMZWZ0b3ZlcnNPcHRpb25zIHtcbiAgLyoqIE5hbWVzIHRvIGtlZXAgcmVnYXJkbGVzcyBvZiBhZ2UgKGUuZy4gdGhlIGN1cnJlbnQgcnVuJ3Mgb3duIGRpcmVjdG9yaWVzKS4gKi9cbiAgcmVhZG9ubHkgZXhjbHVkZWROYW1lcz86IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBIb3cgb2xkIGEgZGlyZWN0b3J5IG11c3QgYmUgYmVmb3JlIGl0IGlzIHJlbW92ZWQuIGAwYCByZW1vdmVzIGV2ZXJ5IG1hdGNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCB7QGxpbmsgREVGQVVMVF9MRUZUT1ZFUl9NQVhfQUdFX0lOX01JTExJU0VDT05EU31cbiAgICovXG4gIHJlYWRvbmx5IG1heEFnZUluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdHMgdG8gc3dlZXAuIERlZmF1bHRzIHRvIHRoZSB0ZW1wLXZhdWx0IHJvb3QgKHtAbGluayB0bXBkaXJ9KSBhbmQgdGhlXG4gICAqIG93bmVkIHVzZXItZGF0YSByb290IChgPHRtcGRpcj4ve0BsaW5rIEhBUk5FU1NfVEVNUF9ESVJfTkFNRX1gKS5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3RzPzogcmVhZG9ubHkgTGVmdG92ZXJSb290W10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHtAbGluayBzd2VlcEhvc3RMZWZ0b3ZlcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN3ZWVwSG9zdExlZnRvdmVyc1Jlc3VsdCB7XG4gIC8qKiBIb3cgbWFueSBkaXJlY3RvcmllcyB3ZXJlIHNlbGVjdGVkIGZvciByZW1vdmFsIGJ1dCBjb3VsZCBub3QgYmUgcmVtb3ZlZC4gKi9cbiAgcmVhZG9ubHkgZmFpbGVkQ291bnQ6IG51bWJlcjtcblxuICAvKiogSG93IG1hbnkgZGlyZWN0b3JpZXMgd2VyZSByZW1vdmVkLiAqL1xuICByZWFkb25seSByZW1vdmVkQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY2hlY2tJc1JlbW92YWJsZURpcn0uXG4gKi9cbmludGVyZmFjZSBDaGVja0lzUmVtb3ZhYmxlRGlyUGFyYW1zIHtcbiAgLyoqIEhvdyBvbGQgdGhlIGVudHJ5IG11c3QgYmUgdG8gYmUgcmVtb3ZlZCAoYDBgIGRpc2FibGVzIHRoZSBnYXRlKS4gKi9cbiAgcmVhZG9ubHkgbWF4QWdlSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKiogVGhlIHN3ZWVwJ3MgcmVmZXJlbmNlIHRpbWUsIGluIGVwb2NoIG1pbGxpc2Vjb25kcy4gKi9cbiAgcmVhZG9ubHkgbm93SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKiogVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGVudHJ5LiAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVjaWRlcyB3aGV0aGVyIGEgbGVmdG92ZXIgZW50cnkgaXMgb2xkIGVub3VnaCB0byBiZSByZW1vdmVkLlxuICpcbiAqIFRoZSBnYXRlIGV4aXN0cyBiZWNhdXNlIGV2ZXJ5IHByb2plY3Qgb24gdGhlIG1hY2hpbmUgc2hhcmVzIG9uZSBgdG1wZGlyKClgXG4gKiBhbmQgZGVza3RvcCBydW5zIGFyZSBub3Qgc2VyaWFsaXplZCwgc28gYSB5b3VuZyBkaXJlY3RvcnkgbWF5IHdlbGwgYmVsb25nIHRvXG4gKiBhIHJ1biB0aGF0IGlzIHN0aWxsIGluIGZsaWdodC4gQW4gZW50cnkgd2hvc2UgbW9kaWZpY2F0aW9uIHRpbWUgaXMgaW4gdGhlXG4gKiBmdXR1cmUgKGEgY2xvY2sgc2tldykgaXMgdHJlYXRlZCBhcyBsaXZlIGZvciB0aGUgc2FtZSByZWFzb24uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBhZ2UgY29tcGFyaXNvbiBpbnB1dHMuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgZW50cnkgbWF5IGJlIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lzTGVmdG92ZXJTdGFsZShwYXJhbXM6IENoZWNrSXNMZWZ0b3ZlclN0YWxlUGFyYW1zKTogYm9vbGVhbiB7XG4gIGlmIChwYXJhbXMubWF4QWdlSW5NaWxsaXNlY29uZHMgPT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBwYXJhbXMubm93SW5NaWxsaXNlY29uZHMgLSBwYXJhbXMubW9kaWZpZWRBdEluTWlsbGlzZWNvbmRzID49IHBhcmFtcy5tYXhBZ2VJbk1pbGxpc2Vjb25kcztcbn1cblxuLyoqXG4gKiBTZWxlY3RzIHRoZSBlbnRyeSBuYW1lcyB0aGF0IGFyZSB0aGUgaGFybmVzcydzIG93biByZXNpZHVlLlxuICpcbiAqIE5hbWUtb25seSwgc28gdGhlIGNhbGxlciBjYW4gZmlsdGVyIGEgbGFyZ2UgZGlyZWN0b3J5IGxpc3RpbmcgYmVmb3JlIHBheWluZ1xuICogZm9yIGEgYHN0YXRgIHBlciBlbnRyeSwgYW5kIHNvIHRoZSBBbmRyb2lkIHN3ZWVwIGNhbiBmZWVkIGl0IHJhd1xuICogYGFkYiBzaGVsbCBsc2Agb3V0cHV0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbmFtZXMsIHByZWZpeGVzLCBhbmQgZXhjbHVzaW9ucy5cbiAqIEByZXR1cm5zIFRoZSBtYXRjaGluZyBuYW1lcywgdHJpbW1lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckxlZnRvdmVyTmFtZXMocGFyYW1zOiBGaWx0ZXJMZWZ0b3Zlck5hbWVzUGFyYW1zKTogc3RyaW5nW10ge1xuICBjb25zdCBleGNsdWRlZE5hbWVzID0gcGFyYW1zLmV4Y2x1ZGVkTmFtZXMgPz8gW107XG4gIHJldHVybiBwYXJhbXMubmFtZXNcbiAgICAubWFwKChuYW1lKSA9PiBuYW1lLnRyaW0oKSlcbiAgICAuZmlsdGVyKChuYW1lKSA9PiBwYXJhbXMucHJlZml4ZXMuc29tZSgocHJlZml4KSA9PiBuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkpXG4gICAgLmZpbHRlcigobmFtZSkgPT4gIWV4Y2x1ZGVkTmFtZXMuaW5jbHVkZXMobmFtZSkpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBsZWZ0b3ZlciBhZ2UgZ2F0ZSwgYXBwbHlpbmcgdGhlIGRlZmF1bHQgd2hlbiB0aGUgb3B0aW9uIGlzXG4gKiBvbWl0dGVkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgVGhlIG1heCBhZ2UgaW4gbWlsbGlzZWNvbmRzIChgMGAgZGlzYWJsZXMgdGhlIGdhdGUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUxlZnRvdmVyTWF4QWdlSW5NaWxsaXNlY29uZHMob3B0aW9uczogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmxlZnRvdmVyTWF4QWdlSW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9MRUZUT1ZFUl9NQVhfQUdFX0lOX01JTExJU0VDT05EUztcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aGV0aGVyIGxlZnRvdmVyIGRpcmVjdG9yaWVzIGFyZSBzd2VwdCwgYXBwbHlpbmcgdGhlIGRlZmF1bHQgd2hlblxuICogdGhlIG9wdGlvbiBpcyBvbWl0dGVkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIHN3ZWVwcyBzaG91bGQgcnVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVNob3VsZFN3ZWVwTGVmdG92ZXJzKG9wdGlvbnM6IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3B0aW9ucz8uc2hvdWxkU3dlZXBMZWZ0b3ZlcnMgPz8gdHJ1ZTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBsZWZ0b3ZlciB2YXVsdCBkaXJlY3RvcmllcyBhIGRldmljZSBpcyBjYXJyeWluZywgb25lIGRpcmVjdG9yeSBhdFxuICogYSB0aW1lLCBhbmQgcmVwb3J0cyB3aGF0IGlzIHZlcmlmaWFibHkgZ29uZS5cbiAqXG4gKiAqKk9uZSBkaXJlY3RvcnkgcGVyIHJlbW92YWwsIGFuZCBhIGZhaWx1cmUgaXMgbm9uLWZhdGFsLioqIFJlbW92aW5nIHRoZSB3aG9sZVxuICogc2V0IGluIGEgc2luZ2xlIGBybSAtcmZgIGxldHMgb25lIHVuLXJlbW92YWJsZSBlbnRyeSBkZWNpZGUgdGhlIGZhdGUgb2YgZXZlcnlcbiAqIG90aGVyOiBhIG5hbWUgdGhhdCB0aGUgRlVTRSBsYXllciBjYW5ub3QgZXhwcmVzcyAoYW4gQW5kcm9pZCBlbXVsYXRvciBjYW5cbiAqIHByb2R1Y2Ugb25lIFx1MjAxNCBgcm0gLXJmYCwgYGZpbmQgLWRlbGV0ZWAgYW5kIGZvcmNlLXN0b3BwaW5nIE9ic2lkaWFuIGZpcnN0IGFsbFxuICogYW5zd2VyIGBPcGVyYXRpb24gbm90IHBlcm1pdHRlZGApIGlzIHBlcm1hbmVudCwgc28gYSBzd2VlcCB0aGF0IGdpdmVzIHVwIG9uIGl0XG4gKiBnaXZlcyB1cCBmb3JldmVyLCBhbmQgdGhlIHJlc2lkdWUgb25seSBncm93cy4gUGVyLWRpcmVjdG9yeSwgdGhhdCBlbnRyeSBjb3N0c1xuICogb25lIHdhcm5pbmcgcGVyIHJ1biBpbnN0ZWFkIG9mIHRoZSB3aG9sZSBzd2VlcC5cbiAqXG4gKiAqKlRoZSByZXN1bHQgaXMgbWVhc3VyZWQsIG5vdCBhc3N1bWVkLioqIFRoZSBkaXJlY3RvcmllcyBhcmUgcmUtbGlzdGVkXG4gKiBhZnRlcndhcmRzIGFuZCBvbmx5IHRoZSBvbmVzIHRoYXQgYWN0dWFsbHkgZGlzYXBwZWFyZWQgYXJlIGNvdW50ZWQsIGJlY2F1c2VcbiAqIHRoZSBmYWlsdXJlIHRoaXMgd2FzIHdyaXR0ZW4gZm9yIHdhcyBhIHN3ZWVwIHRoYXQgcmVwb3J0ZWQgc3VjY2VzcyB3aGlsZVxuICogY2xlYXJpbmcgbm90aGluZyBcdTIwMTQgYSByZW1vdmFsIGNvbW1hbmQgY2FuIGV4aXQgbm9uLXplcm8sIG9yIHBhcnRpYWxseSBzdWNjZWVkLFxuICogYW5kIG5laXRoZXIgaXMgdmlzaWJsZSBmcm9tIGl0cyBleGl0IGNvZGUgYWxvbmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIEhvdyB0byBsaXN0IGFuZCByZW1vdmUsIGFuZCB0aGUgYmFzZSBwYXRoIHRvIHN3ZWVwLlxuICogQHJldHVybnMgVGhlIHZlcmlmaWVkIHJlbW92YWwgY291bnQgYW5kIHRoZSBuYW1lcyB0aGF0IHN1cnZpdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3dlZXBEZXZpY2VMZWZ0b3ZlcnMoXG4gIHBhcmFtczogU3dlZXBEZXZpY2VMZWZ0b3ZlcnNQYXJhbXNcbik6IFByb21pc2U8U3dlZXBEZXZpY2VMZWZ0b3ZlcnNSZXN1bHQ+IHtcbiAgY29uc3QgeyBsaXN0TmFtZXMsIHJlbW92ZURpciwgdmF1bHRCYXNlUGF0aCB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IG5hbWVzID0gZmlsdGVyTGVmdG92ZXJOYW1lcyh7IG5hbWVzOiBhd2FpdCBsaXN0TmFtZXMoKSwgcHJlZml4ZXM6IFtURU1QX1ZBVUxUX0RJUl9QUkVGSVhdIH0pO1xuICBpZiAobmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHsgZmFpbGVkTmFtZXM6IFtdLCByZW1vdmVkQ291bnQ6IDAgfTtcbiAgfVxuXG4gIGZvciAoY29uc3QgbmFtZSBvZiBuYW1lcykge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZW1vdmVEaXIoYCR7dmF1bHRCYXNlUGF0aH0ke25hbWV9YCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBOb24tZmF0YWwgYnkgZGVzaWduOiB0aGUgbmV4dCBkaXJlY3Rvcnkgc3RpbGwgZ2V0cyBpdHMgY2hhbmNlLlxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN1cnZpdmluZ05hbWVzID0gZmlsdGVyTGVmdG92ZXJOYW1lcyh7IG5hbWVzOiBhd2FpdCBsaXN0TmFtZXMoKSwgcHJlZml4ZXM6IFtURU1QX1ZBVUxUX0RJUl9QUkVGSVhdIH0pO1xuICBjb25zdCBmYWlsZWROYW1lcyA9IG5hbWVzLmZpbHRlcigobmFtZSkgPT4gc3Vydml2aW5nTmFtZXMuaW5jbHVkZXMobmFtZSkpO1xuXG4gIHJldHVybiB7IGZhaWxlZE5hbWVzLCByZW1vdmVkQ291bnQ6IG5hbWVzLmxlbmd0aCAtIGZhaWxlZE5hbWVzLmxlbmd0aCB9O1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGhvc3Qtc2lkZSBkaXJlY3RvcmllcyBsZWZ0IGJlaGluZCBieSBlYXJsaWVyIHJ1bnMuXG4gKlxuICogQmVzdC1lZmZvcnQgdGhyb3VnaG91dDogYW4gdW5yZWFkYWJsZSByb290LCBhbiBlbnRyeSB0aGF0IGNhbm5vdCBiZSBgc3RhdGBlZCxcbiAqIGFuZCBhIGRpcmVjdG9yeSB0aGF0IHJlZnVzZXMgdG8gYmUgcmVtb3ZlZCAoYSBsaXZlIHByb2Nlc3Mgc3RpbGwgaG9sZGluZyBhXG4gKiBoYW5kbGUgYW5zd2VycyBgRVBFUk1gIG9uIFdpbmRvd3MpIGFyZSBhbGwgc2tpcHBlZCByYXRoZXIgdGhhbiB0aHJvd24sIHNvIGFcbiAqIHN3ZWVwIGNhbiBuZXZlciBmYWlsIHRoZSBydW4gaXQgaXMgY2xlYW5pbmcgdXAgZm9yLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHN3ZWVwIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBIb3cgbWFueSBkaXJlY3RvcmllcyB3ZXJlIHJlbW92ZWQsIGFuZCBob3cgbWFueSByZXNpc3RlZCByZW1vdmFsLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3dlZXBIb3N0TGVmdG92ZXJzKG9wdGlvbnM/OiBTd2VlcEhvc3RMZWZ0b3ZlcnNPcHRpb25zKTogUHJvbWlzZTxTd2VlcEhvc3RMZWZ0b3ZlcnNSZXN1bHQ+IHtcbiAgY29uc3QgbWF4QWdlSW5NaWxsaXNlY29uZHMgPSBvcHRpb25zPy5tYXhBZ2VJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX0xFRlRPVkVSX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTO1xuICBjb25zdCBub3dJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IHJvb3RzID0gb3B0aW9ucz8ucm9vdHMgPz8gZ2V0RGVmYXVsdExlZnRvdmVyUm9vdHMoKTtcblxuICBsZXQgZmFpbGVkQ291bnQgPSAwO1xuICBsZXQgcmVtb3ZlZENvdW50ID0gMDtcblxuICBmb3IgKGNvbnN0IHJvb3Qgb2Ygcm9vdHMpIHtcbiAgICBjb25zdCBuYW1lcyA9IGZpbHRlckxlZnRvdmVyTmFtZXMoe1xuICAgICAgZXhjbHVkZWROYW1lczogb3B0aW9ucz8uZXhjbHVkZWROYW1lcyxcbiAgICAgIG5hbWVzOiBhd2FpdCByZWFkRGlyTmFtZXMocm9vdC5wYXRoKSxcbiAgICAgIHByZWZpeGVzOiByb290LnByZWZpeGVzXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBqb2luKHJvb3QucGF0aCwgbmFtZSk7XG4gICAgICBpZiAoIWF3YWl0IGNoZWNrSXNSZW1vdmFibGVEaXIoeyBtYXhBZ2VJbk1pbGxpc2Vjb25kcywgbm93SW5NaWxsaXNlY29uZHMsIHBhdGggfSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHJtKHBhdGgsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmVtb3ZlZENvdW50Kys7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgZmFpbGVkQ291bnQrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBmYWlsZWRDb3VudCwgcmVtb3ZlZENvdW50IH07XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBtYXRjaGVkIGVudHJ5IGlzIGEgZGlyZWN0b3J5IG9sZCBlbm91Z2ggdG8gcmVtb3ZlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZW50cnkgcGF0aCBhbmQgYWdlLWdhdGUgaW5wdXRzLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGVudHJ5IG1heSBiZSByZW1vdmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiBjaGVja0lzUmVtb3ZhYmxlRGlyKHBhcmFtczogQ2hlY2tJc1JlbW92YWJsZURpclBhcmFtcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7IG1heEFnZUluTWlsbGlzZWNvbmRzLCBub3dJbk1pbGxpc2Vjb25kcyB9ID0gcGFyYW1zO1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgc3RhdChwYXJhbXMucGF0aCk7XG4gICAgcmV0dXJuIHN0YXRzLmlzRGlyZWN0b3J5KClcbiAgICAgICYmIGNoZWNrSXNMZWZ0b3ZlclN0YWxlKHsgbWF4QWdlSW5NaWxsaXNlY29uZHMsIG1vZGlmaWVkQXRJbk1pbGxpc2Vjb25kczogc3RhdHMubXRpbWVNcywgbm93SW5NaWxsaXNlY29uZHMgfSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIFZhbmlzaGVkLCBvciB1bnJlYWRhYmxlIFx1MjAxNCBlaXRoZXIgd2F5IGl0IGlzIG5vdCBvdXJzIHRvIHJlbW92ZS5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSByb290cyBzd2VwdCB3aGVuIHRoZSBjYWxsZXIgZG9lcyBub3QgbmFtZSBpdHMgb3duLlxuICpcbiAqIEByZXR1cm5zIFRoZSB0ZW1wLXZhdWx0IHJvb3QgYW5kIHRoZSBvd25lZCB1c2VyLWRhdGEgcm9vdC5cbiAqL1xuZnVuY3Rpb24gZ2V0RGVmYXVsdExlZnRvdmVyUm9vdHMoKTogTGVmdG92ZXJSb290W10ge1xuICByZXR1cm4gW1xuICAgIHsgcGF0aDogdG1wZGlyKCksIHByZWZpeGVzOiBbVEVNUF9WQVVMVF9ESVJfUFJFRklYXSB9LFxuICAgIHsgcGF0aDogam9pbih0bXBkaXIoKSwgSEFSTkVTU19URU1QX0RJUl9OQU1FKSwgcHJlZml4ZXM6IFtPV05FRF9VU0VSX0RBVEFfRElSX1BSRUZJWF0gfVxuICBdO1xufVxuXG4vKipcbiAqIExpc3RzIGEgZGlyZWN0b3J5J3MgZW50cnkgbmFtZXMsIHRyZWF0aW5nIGFuIHVucmVhZGFibGUgZGlyZWN0b3J5IGFzIGVtcHR5LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gbGlzdC5cbiAqIEByZXR1cm5zIFRoZSBlbnRyeSBuYW1lcywgb3IgYW4gZW1wdHkgbGlzdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVhZERpck5hbWVzKHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgcmVhZGRpcihwYXRoKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMkJBLHNCQUlPO0FBQ1AscUJBQXVCO0FBQ3ZCLHVCQUFxQjtBQU9kLE1BQU0sMkNBQTJDO0FBT2pELE1BQU0sd0JBQXdCO0FBSzlCLE1BQU0sNkJBQTZCO0FBTW5DLE1BQU0sd0JBQXdCO0FBOEk5QixTQUFTLHFCQUFxQixRQUE2QztBQUNoRixNQUFJLE9BQU8seUJBQXlCLEdBQUc7QUFDckMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLE9BQU8sb0JBQW9CLE9BQU8sNEJBQTRCLE9BQU87QUFDOUU7QUFZTyxTQUFTLG9CQUFvQixRQUE2QztBQUMvRSxRQUFNLGdCQUFnQixPQUFPLGlCQUFpQixDQUFDO0FBQy9DLFNBQU8sT0FBTyxNQUNYLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLEVBQ3pCLE9BQU8sQ0FBQyxTQUFTLE9BQU8sU0FBUyxLQUFLLENBQUMsV0FBVyxLQUFLLFdBQVcsTUFBTSxDQUFDLENBQUMsRUFDMUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLFNBQVMsSUFBSSxDQUFDO0FBQ25EO0FBU08sU0FBUyxvQ0FBb0MsU0FBdUQ7QUFDekcsU0FBTyxTQUFTLGdDQUFnQztBQUNsRDtBQVNPLFNBQVMsNEJBQTRCLFNBQXdEO0FBQ2xHLFNBQU8sU0FBUyx3QkFBd0I7QUFDMUM7QUF1QkEsZUFBc0IscUJBQ3BCLFFBQ3FDO0FBQ3JDLFFBQU0sRUFBRSxXQUFXLFdBQVcsY0FBYyxJ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
134
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xlZnRvdmVyLWNsZWFudXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTd2VlcHMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyBhIHByZXZpb3VzIGludGVncmF0aW9uIHJ1biBsZWFrZWQgXHUyMDE0IHRoZVxuICogYHRlbXAtdmF1bHQtKmAgc3RhZ2luZy92YXVsdCBkaXJlY3RvcmllcyBhbmQgdGhlIG93bmVkIGluc3RhbmNlJ3NcbiAqIGB1c2VyZGF0YS0qYCBDaHJvbWl1bSBwcm9maWxlcy5cbiAqXG4gKiBBIHJ1biB0aGF0IGRpZXMgbWlkLWZsaWdodCBjYW5ub3QgY2xlYW4gdXAgYWZ0ZXIgaXRzZWxmOiBvbiBBbmRyb2lkIHRoZVxuICogdGVhcmRvd24gdGFsa3MgdG8gdGhlIFdlYlZpZXcsIGFuZCBhIGRlYWQgV2ViVmlldyBpcyBleGFjdGx5IHdoYXQgbW9zdFxuICogZmFpbHVyZXMgYXJlIChgVmF1bHQgY2xlYW51cCBlcnJvciAobm9uLWZhdGFsKTogbm8gc3VjaCB3aW5kb3dgKS4gRXZlcnlcbiAqIGZhaWx1cmUgdGhlcmVmb3JlIGxlYWtzIGEgdmF1bHQsIGV2ZXJ5IGxlYWtlZCB2YXVsdCBzdGF5cyByZWdpc3RlcmVkIGZvclxuICogT2JzaWRpYW4gdG8gZW51bWVyYXRlIGF0IHN0YXJ0dXAsIGFuZCB0aGF0IGVudW1lcmF0aW9uIGhhcyB0byBmaW5pc2ggaW5zaWRlXG4gKiB0aGUgV2ViVmlldy1yZWFkaW5lc3MgYnVkZ2V0IFx1MjAxNCBzbyBlYWNoIGZhaWx1cmUgbWFrZXMgdGhlIG5leHQgb25lIGxpa2VsaWVyLlxuICogU3dlZXBpbmcgZm9yZWlnbiByZXNpZHVlIGF0IHRoZSBTVEFSVCBvZiBhIHJ1biBicmVha3MgdGhhdCBsb29wLCBiZWNhdXNlIGl0XG4gKiBydW5zIGJlZm9yZSBhbnl0aGluZyB0aGF0IGNhbiBkaWUuXG4gKlxuICogVGhlIHR3byBzaWRlcyB1c2UgZGVsaWJlcmF0ZWx5IGRpZmZlcmVudCBzYWZldHkgZ2F0ZXMgKHNlZSB0aGUgcmVwbydzIEwzMSk6XG4gKlxuICogLSAqKkRldmljZSAoQW5kcm9pZCkqKiBcdTIwMTQgdW5jb25kaXRpb25hbC4gQW5kcm9pZCBydW5zIGhvbGQgdGhlIGV4Y2x1c2l2ZVxuICogICBgYW5kcm9pZGAgc2V0dXAgbG9jaywgc28gbm8gY29uY3VycmVudCBydW4gY2FuIG93biBhIGRldmljZSB2YXVsdCwgYW5kIGFuXG4gKiAgIGFnZSBnYXRlIHdvdWxkIGxldCBhIHZhdWx0IGxlYWtlZCB0ZW4gbWludXRlcyBhZ28gc3Vydml2ZSBpbnRvIHRoZSBuZXh0IHJ1bi5cbiAqIC0gKipIb3N0KiogXHUyMDE0IGFnZS1nYXRlZC4gRGVza3RvcCBydW5zIGFyZSBkZWxpYmVyYXRlbHkgKm5vdCogc2VyaWFsaXplZCAoZWFjaFxuICogICBvd25zIGFuIGlzb2xhdGVkIGluc3RhbmNlKSBhbmQgZXZlcnkgcHJvamVjdCBvbiB0aGUgbWFjaGluZSBzaGFyZXMgb25lXG4gKiAgIGB0bXBkaXIoKWAsIHNvIGEgZGlyZWN0b3J5IHlvdW5nIGVub3VnaCB0byBiZWxvbmcgdG8gYSBsaXZlIHJ1biBpcyBsZWZ0XG4gKiAgIGFsb25lLlxuICovXG5cbmltcG9ydCB7XG4gIHJlYWRkaXIsXG4gIHJtLFxuICBzdGF0XG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1vcHRpb25zLmNqcyc7XG5cbi8qKlxuICogRGVmYXVsdCBmb3IgdGhlIGBsZWZ0b3Zlck1heEFnZUluTWlsbGlzZWNvbmRzYCB0cmFuc3BvcnQgb3B0aW9uIFx1MjAxNCB0d28gaG91cnMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xFRlRPVkVSX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTID0gN18yMDBfMDAwO1xuXG4vKipcbiAqIE5hbWUgb2YgdGhlIGhhcm5lc3MncyBvd24gZGlyZWN0b3J5IGluc2lkZSB7QGxpbmsgdG1wZGlyfSwgd2hpY2ggaG9sZHMgdGhlXG4gKiBvd25lZCBpbnN0YW5jZXMnIHVzZXItZGF0YSBkaXJlY3RvcmllcyBhbG9uZ3NpZGUgdGhlIHZlcnNpb24vaW5zdGFsbGVyIGNhY2hlc1xuICogYW5kIHRoZSBzZXR1cCBsb2Nrcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEhBUk5FU1NfVEVNUF9ESVJfTkFNRSA9ICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcblxuLyoqXG4gKiBQcmVmaXggb2YgYW4gb3duZWQgZGVza3RvcCBpbnN0YW5jZSdzIGlzb2xhdGVkIHVzZXItZGF0YSBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBPV05FRF9VU0VSX0RBVEFfRElSX1BSRUZJWCA9ICd1c2VyZGF0YS0nO1xuXG4vKipcbiAqIFByZWZpeCBvZiBhIHRlbXBvcmFyeSB2YXVsdCBkaXJlY3RvcnksIGJvdGggb24gdGhlIGhvc3QgKHdoZXJlIGl0IGlzIGNyZWF0ZWQpXG4gKiBhbmQgb24gYW4gQW5kcm9pZCBkZXZpY2UgKHdoZXJlIGl0IGtlZXBzIGl0cyBob3N0IGJhc2VuYW1lKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRFTVBfVkFVTFRfRElSX1BSRUZJWCA9ICd0ZW1wLXZhdWx0LSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrSXNMZWZ0b3ZlclN0YWxlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0lzTGVmdG92ZXJTdGFsZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBIb3cgb2xkIGFuIGVudHJ5IG11c3QgYmUgdG8gY291bnQgYXMgc3RhbGUuIGAwYCBkaXNhYmxlcyB0aGUgZ2F0ZSwgbWFraW5nXG4gICAqIGV2ZXJ5IGVudHJ5IHN0YWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdlSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKipcbiAgVGhlIGVudHJ5J3MgbW9kaWZpY2F0aW9uIHRpbWUsIGluIGVwb2NoIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmaWVkQXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgY3VycmVudCB0aW1lLCBpbiBlcG9jaCBtaWxsaXNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSBub3dJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaWx0ZXJMZWZ0b3Zlck5hbWVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJMZWZ0b3Zlck5hbWVzUGFyYW1zIHtcbiAgLyoqXG4gIE5hbWVzIHRvIGtlZXAgZXZlbiB3aGVuIHRoZXkgbWF0Y2ggYSBwcmVmaXggKGUuZy4gdGhlIGN1cnJlbnQgcnVuJ3Mgb3duIHZhdWx0KS5cbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGVkTmFtZXM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmF3IGVudHJ5IG5hbWVzLiBBY2NlcHRzIGBhZGIgc2hlbGwgbHNgIG91dHB1dCBzcGxpdCBpbnRvIGxpbmVzLCBzbyBlYWNoXG4gICAqIG5hbWUgaXMgdHJpbW1lZCAoZHJvcHBpbmcgdGhlIHRyYWlsaW5nIGBcXHJgIGFuIGBhZGJgIHNoZWxsIGFkZHMgb24gV2luZG93cylcbiAgICogYW5kIGJsYW5rIGxpbmVzIGFyZSBkcm9wcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBEaXJlY3RvcnktbmFtZSBwcmVmaXhlcyB0aGF0IG1hcmsgYW4gZW50cnkgYXMgdGhlIGhhcm5lc3MncyBvd24gcmVzaWR1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeGVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIGRpcmVjdG9yeSB0aGUgaG9zdCBzd2VlcCBzY2FucywgdG9nZXRoZXIgd2l0aCB0aGUgcHJlZml4ZXMgdGhhdCBtYXJrXG4gKiByZXNpZHVlIGluc2lkZSBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMZWZ0b3ZlclJvb3Qge1xuICAvKipcbiAgVGhlIGFic29sdXRlIHBhdGggdG8gc2Nhbi5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgRGlyZWN0b3J5LW5hbWUgcHJlZml4ZXMgdGhhdCBtYXJrIGFuIGVudHJ5IGFzIHJlbW92YWJsZSByZXNpZHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4ZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzd2VlcERldmljZUxlZnRvdmVyc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dlZXBEZXZpY2VMZWZ0b3ZlcnNQYXJhbXMge1xuICAvKipcbiAgICogTGlzdHMgdGhlIGVudHJ5IG5hbWVzIGRpcmVjdGx5IHVuZGVyIHRoZSB2YXVsdCBiYXNlIHBhdGguIEEgbGlzdGluZyBmYWlsdXJlXG4gICAqIG11c3QgcmVzb2x2ZSB0byBhbiBlbXB0eSBsaXN0IHJhdGhlciB0aGFuIHJlamVjdCBcdTIwMTQgYSBkZXZpY2Ugd2l0aCBubyB2YXVsdFxuICAgKiBkaXJlY3RvcnkgeWV0IGlzIHRoZSBub3JtYWwgZmlyc3QtcnVuIHN0YXRlLCBub3QgYW4gZXJyb3IuXG4gICAqL1xuICByZWFkb25seSBsaXN0TmFtZXM6ICgpID0+IFByb21pc2U8cmVhZG9ubHkgc3RyaW5nW10+O1xuXG4gIC8qKlxuICAgKiBSZW1vdmVzIE9ORSBkaXJlY3RvcnksIGJ5IGFic29sdXRlIGRldmljZSBwYXRoLiBNYXkgcmVqZWN0OyB0aGUgY2FsbGVyXG4gICAqIHRyZWF0cyBhIHJlamVjdGlvbiBhcyB0aGlzIGRpcmVjdG9yeSBmYWlsaW5nIGFuZCBtb3ZlcyBvbiB0byB0aGUgbmV4dC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZURpcmVjdG9yeTogKHBhdGg6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgVGhlIGFic29sdXRlIGRldmljZSBwYXRoIHRoZSB2YXVsdHMgc2l0IHVuZGVyLCBpbmNsdWRpbmcgaXRzIHRyYWlsaW5nIHNlcGFyYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0QmFzZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2Yge0BsaW5rIHN3ZWVwRGV2aWNlTGVmdG92ZXJzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2VlcERldmljZUxlZnRvdmVyc1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgdGhhdCB3ZXJlIHN0aWxsIHByZXNlbnQgYWZ0ZXIgdGhlIHN3ZWVwLiBOYW1lZCByYXRoZXIgdGhhblxuICAgKiBjb3VudGVkLCBiZWNhdXNlIHRoZSBpbnRlcmVzdGluZyBjYXNlIGlzIGEgZGlyZWN0b3J5IHRoYXQgZmFpbHMgRVZFUlkgcnVuXG4gICAqIGFuZCBhIGNhbGxlciBjYW4gb25seSBzYXkgc28gaWYgaXQga25vd3Mgd2hpY2ggb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbGVkTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBIb3cgbWFueSBkaXJlY3RvcmllcyBhcmUgdmVyaWZpYWJseSBnb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlZENvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHN3ZWVwSG9zdExlZnRvdmVyc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dlZXBIb3N0TGVmdG92ZXJzT3B0aW9ucyB7XG4gIC8qKlxuICBOYW1lcyB0byBrZWVwIHJlZ2FyZGxlc3Mgb2YgYWdlIChlLmcuIHRoZSBjdXJyZW50IHJ1bidzIG93biBkaXJlY3RvcmllcykuXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlZE5hbWVzPzogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEhvdyBvbGQgYSBkaXJlY3RvcnkgbXVzdCBiZSBiZWZvcmUgaXQgaXMgcmVtb3ZlZC4gYDBgIHJlbW92ZXMgZXZlcnkgbWF0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IHtAbGluayBERUZBVUxUX0xFRlRPVkVSX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTfVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdlSW5NaWxsaXNlY29uZHM/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSByb290cyB0byBzd2VlcC4gRGVmYXVsdHMgdG8gdGhlIHRlbXAtdmF1bHQgcm9vdCAoe0BsaW5rIHRtcGRpcn0pIGFuZCB0aGVcbiAgICogb3duZWQgdXNlci1kYXRhIHJvb3QgKGA8dG1wZGlyPi97QGxpbmsgSEFSTkVTU19URU1QX0RJUl9OQU1FfWApLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdHM/OiByZWFkb25seSBMZWZ0b3ZlclJvb3RbXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2Yge0BsaW5rIHN3ZWVwSG9zdExlZnRvdmVyc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dlZXBIb3N0TGVmdG92ZXJzUmVzdWx0IHtcbiAgLyoqXG4gIEhvdyBtYW55IGRpcmVjdG9yaWVzIHdlcmUgc2VsZWN0ZWQgZm9yIHJlbW92YWwgYnV0IGNvdWxkIG5vdCBiZSByZW1vdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbGVkQ291bnQ6IG51bWJlcjtcblxuICAvKipcbiAgSG93IG1hbnkgZGlyZWN0b3JpZXMgd2VyZSByZW1vdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlZENvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrSXNSZW1vdmFibGVEaXJ9LlxuICovXG5pbnRlcmZhY2UgQ2hlY2tJc1JlbW92YWJsZURpcmVjdG9yeVBhcmFtcyB7XG4gIC8qKlxuICBIb3cgb2xkIHRoZSBlbnRyeSBtdXN0IGJlIHRvIGJlIHJlbW92ZWQgKGAwYCBkaXNhYmxlcyB0aGUgZ2F0ZSkuXG4gICAqL1xuICByZWFkb25seSBtYXhBZ2VJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgc3dlZXAncyByZWZlcmVuY2UgdGltZSwgaW4gZXBvY2ggbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgbm93SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKipcbiAgVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGVudHJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlY2lkZXMgd2hldGhlciBhIGxlZnRvdmVyIGVudHJ5IGlzIG9sZCBlbm91Z2ggdG8gYmUgcmVtb3ZlZC5cbiAqXG4gKiBUaGUgZ2F0ZSBleGlzdHMgYmVjYXVzZSBldmVyeSBwcm9qZWN0IG9uIHRoZSBtYWNoaW5lIHNoYXJlcyBvbmUgYHRtcGRpcigpYFxuICogYW5kIGRlc2t0b3AgcnVucyBhcmUgbm90IHNlcmlhbGl6ZWQsIHNvIGEgeW91bmcgZGlyZWN0b3J5IG1heSB3ZWxsIGJlbG9uZyB0b1xuICogYSBydW4gdGhhdCBpcyBzdGlsbCBpbiBmbGlnaHQuIEFuIGVudHJ5IHdob3NlIG1vZGlmaWNhdGlvbiB0aW1lIGlzIGluIHRoZVxuICogZnV0dXJlIChhIGNsb2NrIHNrZXcpIGlzIHRyZWF0ZWQgYXMgbGl2ZSBmb3IgdGhlIHNhbWUgcmVhc29uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgYWdlIGNvbXBhcmlzb24gaW5wdXRzLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGVudHJ5IG1heSBiZSByZW1vdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJc0xlZnRvdmVyU3RhbGUocGFyYW1zOiBDaGVja0lzTGVmdG92ZXJTdGFsZVBhcmFtcyk6IGJvb2xlYW4ge1xuICBpZiAocGFyYW1zLm1heEFnZUluTWlsbGlzZWNvbmRzID09PSAwKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zLm5vd0luTWlsbGlzZWNvbmRzIC0gcGFyYW1zLm1vZGlmaWVkQXRJbk1pbGxpc2Vjb25kcyA+PSBwYXJhbXMubWF4QWdlSW5NaWxsaXNlY29uZHM7XG59XG5cbi8qKlxuICogU2VsZWN0cyB0aGUgZW50cnkgbmFtZXMgdGhhdCBhcmUgdGhlIGhhcm5lc3MncyBvd24gcmVzaWR1ZS5cbiAqXG4gKiBOYW1lLW9ubHksIHNvIHRoZSBjYWxsZXIgY2FuIGZpbHRlciBhIGxhcmdlIGRpcmVjdG9yeSBsaXN0aW5nIGJlZm9yZSBwYXlpbmdcbiAqIGZvciBhIGBzdGF0YCBwZXIgZW50cnksIGFuZCBzbyB0aGUgQW5kcm9pZCBzd2VlcCBjYW4gZmVlZCBpdCByYXdcbiAqIGBhZGIgc2hlbGwgbHNgIG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIG5hbWVzLCBwcmVmaXhlcywgYW5kIGV4Y2x1c2lvbnMuXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgbmFtZXMsIHRyaW1tZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJMZWZ0b3Zlck5hbWVzKHBhcmFtczogRmlsdGVyTGVmdG92ZXJOYW1lc1BhcmFtcyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZXhjbHVkZWROYW1lcyA9IHBhcmFtcy5leGNsdWRlZE5hbWVzID8/IFtdO1xuICByZXR1cm4gcGFyYW1zLm5hbWVzXG4gICAgLm1hcCgobmFtZSkgPT4gbmFtZS50cmltKCkpXG4gICAgLmZpbHRlcigobmFtZSkgPT4gcGFyYW1zLnByZWZpeGVzLnNvbWUoKHByZWZpeCkgPT4gbmFtZS5zdGFydHNXaXRoKHByZWZpeCkpKVxuICAgIC5maWx0ZXIoKG5hbWUpID0+ICFleGNsdWRlZE5hbWVzLmluY2x1ZGVzKG5hbWUpKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgbGVmdG92ZXIgYWdlIGdhdGUsIGFwcGx5aW5nIHRoZSBkZWZhdWx0IHdoZW4gdGhlIG9wdGlvbiBpc1xuICogb21pdHRlZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB0cmFuc3BvcnQgb3B0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBtYXggYWdlIGluIG1pbGxpc2Vjb25kcyAoYDBgIGRpc2FibGVzIHRoZSBnYXRlKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVMZWZ0b3Zlck1heEFnZUluTWlsbGlzZWNvbmRzKG9wdGlvbnM6IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZCk6IG51bWJlciB7XG4gIHJldHVybiBvcHRpb25zPy5sZWZ0b3Zlck1heEFnZUluTWlsbGlzZWNvbmRzID8/IERFRkFVTFRfTEVGVE9WRVJfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFM7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgbGVmdG92ZXIgdmF1bHQgZGlyZWN0b3JpZXMgYSBkZXZpY2UgaXMgY2FycnlpbmcsIG9uZSBkaXJlY3RvcnkgYXRcbiAqIGEgdGltZSwgYW5kIHJlcG9ydHMgd2hhdCBpcyB2ZXJpZmlhYmx5IGdvbmUuXG4gKlxuICogKipPbmUgZGlyZWN0b3J5IHBlciByZW1vdmFsLCBhbmQgYSBmYWlsdXJlIGlzIG5vbi1mYXRhbC4qKiBSZW1vdmluZyB0aGUgd2hvbGVcbiAqIHNldCBpbiBhIHNpbmdsZSBgcm0gLXJmYCBsZXRzIG9uZSB1bi1yZW1vdmFibGUgZW50cnkgZGVjaWRlIHRoZSBmYXRlIG9mIGV2ZXJ5XG4gKiBvdGhlcjogYSBuYW1lIHRoYXQgdGhlIEZVU0UgbGF5ZXIgY2Fubm90IGV4cHJlc3MgKGFuIEFuZHJvaWQgZW11bGF0b3IgY2FuXG4gKiBwcm9kdWNlIG9uZSBcdTIwMTQgYHJtIC1yZmAsIGBmaW5kIC1kZWxldGVgIGFuZCBmb3JjZS1zdG9wcGluZyBPYnNpZGlhbiBmaXJzdCBhbGxcbiAqIGFuc3dlciBgT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWRgKSBpcyBwZXJtYW5lbnQsIHNvIGEgc3dlZXAgdGhhdCBnaXZlcyB1cCBvbiBpdFxuICogZ2l2ZXMgdXAgZm9yZXZlciwgYW5kIHRoZSByZXNpZHVlIG9ubHkgZ3Jvd3MuIFBlci1kaXJlY3RvcnksIHRoYXQgZW50cnkgY29zdHNcbiAqIG9uZSB3YXJuaW5nIHBlciBydW4gaW5zdGVhZCBvZiB0aGUgd2hvbGUgc3dlZXAuXG4gKlxuICogKipUaGUgcmVzdWx0IGlzIG1lYXN1cmVkLCBub3QgYXNzdW1lZC4qKiBUaGUgZGlyZWN0b3JpZXMgYXJlIHJlLWxpc3RlZFxuICogYWZ0ZXJ3YXJkcyBhbmQgb25seSB0aGUgb25lcyB0aGF0IGFjdHVhbGx5IGRpc2FwcGVhcmVkIGFyZSBjb3VudGVkLCBiZWNhdXNlXG4gKiB0aGUgZmFpbHVyZSB0aGlzIHdhcyB3cml0dGVuIGZvciB3YXMgYSBzd2VlcCB0aGF0IHJlcG9ydGVkIHN1Y2Nlc3Mgd2hpbGVcbiAqIGNsZWFyaW5nIG5vdGhpbmcgXHUyMDE0IGEgcmVtb3ZhbCBjb21tYW5kIGNhbiBleGl0IG5vbi16ZXJvLCBvciBwYXJ0aWFsbHkgc3VjY2VlZCxcbiAqIGFuZCBuZWl0aGVyIGlzIHZpc2libGUgZnJvbSBpdHMgZXhpdCBjb2RlIGFsb25lLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBIb3cgdG8gbGlzdCBhbmQgcmVtb3ZlLCBhbmQgdGhlIGJhc2UgcGF0aCB0byBzd2VlcC5cbiAqIEByZXR1cm5zIFRoZSB2ZXJpZmllZCByZW1vdmFsIGNvdW50IGFuZCB0aGUgbmFtZXMgdGhhdCBzdXJ2aXZlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN3ZWVwRGV2aWNlTGVmdG92ZXJzKFxuICBwYXJhbXM6IFN3ZWVwRGV2aWNlTGVmdG92ZXJzUGFyYW1zXG4pOiBQcm9taXNlPFN3ZWVwRGV2aWNlTGVmdG92ZXJzUmVzdWx0PiB7XG4gIGNvbnN0IHsgbGlzdE5hbWVzLCByZW1vdmVEaXJlY3RvcnksIHZhdWx0QmFzZVBhdGggfSA9IHBhcmFtcztcblxuICBjb25zdCBuYW1lcyA9IGZpbHRlckxlZnRvdmVyTmFtZXMoeyBuYW1lczogYXdhaXQgbGlzdE5hbWVzKCksIHByZWZpeGVzOiBbVEVNUF9WQVVMVF9ESVJfUFJFRklYXSB9KTtcbiAgaWYgKG5hbWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7IGZhaWxlZE5hbWVzOiBbXSwgcmVtb3ZlZENvdW50OiAwIH07XG4gIH1cblxuICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmVtb3ZlRGlyZWN0b3J5KGAke3ZhdWx0QmFzZVBhdGh9JHtuYW1lfWApO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gTm9uLWZhdGFsIGJ5IGRlc2lnbjogdGhlIG5leHQgZGlyZWN0b3J5IHN0aWxsIGdldHMgaXRzIGNoYW5jZS5cbiAgICB9XG4gIH1cblxuICBjb25zdCBzdXJ2aXZpbmdOYW1lcyA9IGZpbHRlckxlZnRvdmVyTmFtZXMoeyBuYW1lczogYXdhaXQgbGlzdE5hbWVzKCksIHByZWZpeGVzOiBbVEVNUF9WQVVMVF9ESVJfUFJFRklYXSB9KTtcbiAgY29uc3QgZmFpbGVkTmFtZXMgPSBuYW1lcy5maWx0ZXIoKG5hbWUpID0+IHN1cnZpdmluZ05hbWVzLmluY2x1ZGVzKG5hbWUpKTtcblxuICByZXR1cm4geyBmYWlsZWROYW1lcywgcmVtb3ZlZENvdW50OiBuYW1lcy5sZW5ndGggLSBmYWlsZWROYW1lcy5sZW5ndGggfTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBob3N0LXNpZGUgZGlyZWN0b3JpZXMgbGVmdCBiZWhpbmQgYnkgZWFybGllciBydW5zLlxuICpcbiAqIEJlc3QtZWZmb3J0IHRocm91Z2hvdXQ6IGFuIHVucmVhZGFibGUgcm9vdCwgYW4gZW50cnkgdGhhdCBjYW5ub3QgYmUgYHN0YXRgZWQsXG4gKiBhbmQgYSBkaXJlY3RvcnkgdGhhdCByZWZ1c2VzIHRvIGJlIHJlbW92ZWQgKGEgbGl2ZSBwcm9jZXNzIHN0aWxsIGhvbGRpbmcgYVxuICogaGFuZGxlIGFuc3dlcnMgYEVQRVJNYCBvbiBXaW5kb3dzKSBhcmUgYWxsIHNraXBwZWQgcmF0aGVyIHRoYW4gdGhyb3duLCBzbyBhXG4gKiBzd2VlcCBjYW4gbmV2ZXIgZmFpbCB0aGUgcnVuIGl0IGlzIGNsZWFuaW5nIHVwIGZvci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBzd2VlcCBvcHRpb25zLlxuICogQHJldHVybnMgSG93IG1hbnkgZGlyZWN0b3JpZXMgd2VyZSByZW1vdmVkLCBhbmQgaG93IG1hbnkgcmVzaXN0ZWQgcmVtb3ZhbC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN3ZWVwSG9zdExlZnRvdmVycyhvcHRpb25zPzogU3dlZXBIb3N0TGVmdG92ZXJzT3B0aW9ucyk6IFByb21pc2U8U3dlZXBIb3N0TGVmdG92ZXJzUmVzdWx0PiB7XG4gIGNvbnN0IG1heEFnZUluTWlsbGlzZWNvbmRzID0gb3B0aW9ucz8ubWF4QWdlSW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9MRUZUT1ZFUl9NQVhfQUdFX0lOX01JTExJU0VDT05EUztcbiAgY29uc3Qgbm93SW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpO1xuICBjb25zdCByb290cyA9IG9wdGlvbnM/LnJvb3RzID8/IGdldERlZmF1bHRMZWZ0b3ZlclJvb3RzKCk7XG5cbiAgbGV0IGZhaWxlZENvdW50ID0gMDtcbiAgbGV0IHJlbW92ZWRDb3VudCA9IDA7XG5cbiAgZm9yIChjb25zdCByb290IG9mIHJvb3RzKSB7XG4gICAgY29uc3QgbmFtZXMgPSBmaWx0ZXJMZWZ0b3Zlck5hbWVzKHtcbiAgICAgIGV4Y2x1ZGVkTmFtZXM6IG9wdGlvbnM/LmV4Y2x1ZGVkTmFtZXMsXG4gICAgICBuYW1lczogYXdhaXQgcmVhZERpcmVjdG9yeU5hbWVzKHJvb3QucGF0aCksXG4gICAgICBwcmVmaXhlczogcm9vdC5wcmVmaXhlc1xuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgICBjb25zdCBwYXRoID0gam9pbihyb290LnBhdGgsIG5hbWUpO1xuICAgICAgaWYgKCFhd2FpdCBjaGVja0lzUmVtb3ZhYmxlRGlyZWN0b3J5KHsgbWF4QWdlSW5NaWxsaXNlY29uZHMsIG5vd0luTWlsbGlzZWNvbmRzLCBwYXRoIH0pKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBybShwYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIHJlbW92ZWRDb3VudCsrO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGZhaWxlZENvdW50Kys7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZmFpbGVkQ291bnQsIHJlbW92ZWRDb3VudCB9O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHdoZXRoZXIgbGVmdG92ZXIgZGlyZWN0b3JpZXMgYXJlIHN3ZXB0LCBhcHBseWluZyB0aGUgZGVmYXVsdCB3aGVuXG4gKiB0aGUgb3B0aW9uIGlzIG9taXR0ZWQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgdHJhbnNwb3J0IG9wdGlvbnMuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgc3dlZXBzIHNob3VsZCBydW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aWxsU3dlZXBMZWZ0b3ZlcnMob3B0aW9uczogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBvcHRpb25zPy5zaG91bGRTd2VlcExlZnRvdmVycyA/PyB0cnVlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbWF0Y2hlZCBlbnRyeSBpcyBhIGRpcmVjdG9yeSBvbGQgZW5vdWdoIHRvIHJlbW92ZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVudHJ5IHBhdGggYW5kIGFnZS1nYXRlIGlucHV0cy5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBlbnRyeSBtYXkgYmUgcmVtb3ZlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2hlY2tJc1JlbW92YWJsZURpcmVjdG9yeShwYXJhbXM6IENoZWNrSXNSZW1vdmFibGVEaXJlY3RvcnlQYXJhbXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgeyBtYXhBZ2VJbk1pbGxpc2Vjb25kcywgbm93SW5NaWxsaXNlY29uZHMgfSA9IHBhcmFtcztcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHN0YXQocGFyYW1zLnBhdGgpO1xuICAgIHJldHVybiBzdGF0cy5pc0RpcmVjdG9yeSgpXG4gICAgICAmJiBjaGVja0lzTGVmdG92ZXJTdGFsZSh7IG1heEFnZUluTWlsbGlzZWNvbmRzLCBtb2RpZmllZEF0SW5NaWxsaXNlY29uZHM6IHN0YXRzLm10aW1lTXMsIG5vd0luTWlsbGlzZWNvbmRzIH0pO1xuICB9IGNhdGNoIHtcbiAgICAvLyBWYW5pc2hlZCwgb3IgdW5yZWFkYWJsZSBcdTIwMTQgZWl0aGVyIHdheSBpdCBpcyBub3Qgb3VycyB0byByZW1vdmUuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcm9vdHMgc3dlcHQgd2hlbiB0aGUgY2FsbGVyIGRvZXMgbm90IG5hbWUgaXRzIG93bi5cbiAqXG4gKiBAcmV0dXJucyBUaGUgdGVtcC12YXVsdCByb290IGFuZCB0aGUgb3duZWQgdXNlci1kYXRhIHJvb3QuXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRMZWZ0b3ZlclJvb3RzKCk6IExlZnRvdmVyUm9vdFtdIHtcbiAgcmV0dXJuIFtcbiAgICB7IHBhdGg6IHRtcGRpcigpLCBwcmVmaXhlczogW1RFTVBfVkFVTFRfRElSX1BSRUZJWF0gfSxcbiAgICB7IHBhdGg6IGpvaW4odG1wZGlyKCksIEhBUk5FU1NfVEVNUF9ESVJfTkFNRSksIHByZWZpeGVzOiBbT1dORURfVVNFUl9EQVRBX0RJUl9QUkVGSVhdIH1cbiAgXTtcbn1cblxuLyoqXG4gKiBMaXN0cyBhIGRpcmVjdG9yeSdzIGVudHJ5IG5hbWVzLCB0cmVhdGluZyBhbiB1bnJlYWRhYmxlIGRpcmVjdG9yeSBhcyBlbXB0eS5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIGxpc3QuXG4gKiBAcmV0dXJucyBUaGUgZW50cnkgbmFtZXMsIG9yIGFuIGVtcHR5IGxpc3QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlYWREaXJlY3RvcnlOYW1lcyhwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHJlYWRkaXIocGF0aCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJCQSxzQkFJTztBQUNQLHFCQUF1QjtBQUN2Qix1QkFBcUI7QUFPZCxNQUFNLDJDQUEyQztBQU9qRCxNQUFNLHdCQUF3QjtBQUs5QixNQUFNLDZCQUE2QjtBQU1uQyxNQUFNLHdCQUF3QjtBQTBLOUIsU0FBUyxxQkFBcUIsUUFBNkM7QUFDaEYsTUFBSSxPQUFPLHlCQUF5QixHQUFHO0FBQ3JDLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxPQUFPLG9CQUFvQixPQUFPLDRCQUE0QixPQUFPO0FBQzlFO0FBWU8sU0FBUyxvQkFBb0IsUUFBNkM7QUFDL0UsUUFBTSxnQkFBZ0IsT0FBTyxpQkFBaUIsQ0FBQztBQUMvQyxTQUFPLE9BQU8sTUFDWCxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUN6QixPQUFPLENBQUMsU0FBUyxPQUFPLFNBQVMsS0FBSyxDQUFDLFdBQVcsS0FBSyxXQUFXLE1BQU0sQ0FBQyxDQUFDLEVBQzFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxTQUFTLElBQUksQ0FBQztBQUNuRDtBQVNPLFNBQVMsb0NBQW9D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
@@ -53,16 +53,22 @@ export interface CheckIsLeftoverStaleParams {
53
53
  * every entry stale.
54
54
  */
55
55
  readonly maxAgeInMilliseconds: number;
56
- /** The entry's modification time, in epoch milliseconds. */
56
+ /**
57
+ The entry's modification time, in epoch milliseconds.
58
+ */
57
59
  readonly modifiedAtInMilliseconds: number;
58
- /** The current time, in epoch milliseconds. */
60
+ /**
61
+ The current time, in epoch milliseconds.
62
+ */
59
63
  readonly nowInMilliseconds: number;
60
64
  }
61
65
  /**
62
66
  * Parameters for {@link filterLeftoverNames}.
63
67
  */
64
68
  export interface FilterLeftoverNamesParams {
65
- /** Names to keep even when they match a prefix (e.g. the current run's own vault). */
69
+ /**
70
+ Names to keep even when they match a prefix (e.g. the current run's own vault).
71
+ */
66
72
  readonly excludedNames?: readonly string[] | undefined;
67
73
  /**
68
74
  * Raw entry names. Accepts `adb shell ls` output split into lines, so each
@@ -70,7 +76,9 @@ export interface FilterLeftoverNamesParams {
70
76
  * and blank lines are dropped.
71
77
  */
72
78
  readonly names: readonly string[];
73
- /** Directory-name prefixes that mark an entry as the harness's own residue. */
79
+ /**
80
+ Directory-name prefixes that mark an entry as the harness's own residue.
81
+ */
74
82
  readonly prefixes: readonly string[];
75
83
  }
76
84
  /**
@@ -78,9 +86,13 @@ export interface FilterLeftoverNamesParams {
78
86
  * residue inside it.
79
87
  */
80
88
  export interface LeftoverRoot {
81
- /** The absolute path to scan. */
89
+ /**
90
+ The absolute path to scan.
91
+ */
82
92
  readonly path: string;
83
- /** Directory-name prefixes that mark an entry as removable residue. */
93
+ /**
94
+ Directory-name prefixes that mark an entry as removable residue.
95
+ */
84
96
  readonly prefixes: readonly string[];
85
97
  }
86
98
  /**
@@ -97,8 +109,10 @@ export interface SweepDeviceLeftoversParams {
97
109
  * Removes ONE directory, by absolute device path. May reject; the caller
98
110
  * treats a rejection as this directory failing and moves on to the next.
99
111
  */
100
- readonly removeDir: (path: string) => Promise<void>;
101
- /** The absolute device path the vaults sit under, including its trailing separator. */
112
+ readonly removeDirectory: (path: string) => Promise<void>;
113
+ /**
114
+ The absolute device path the vaults sit under, including its trailing separator.
115
+ */
102
116
  readonly vaultBasePath: string;
103
117
  }
104
118
  /**
@@ -111,14 +125,18 @@ export interface SweepDeviceLeftoversResult {
111
125
  * and a caller can only say so if it knows which one.
112
126
  */
113
127
  readonly failedNames: string[];
114
- /** How many directories are verifiably gone. */
128
+ /**
129
+ How many directories are verifiably gone.
130
+ */
115
131
  readonly removedCount: number;
116
132
  }
117
133
  /**
118
134
  * Options for {@link sweepHostLeftovers}.
119
135
  */
120
136
  export interface SweepHostLeftoversOptions {
121
- /** Names to keep regardless of age (e.g. the current run's own directories). */
137
+ /**
138
+ Names to keep regardless of age (e.g. the current run's own directories).
139
+ */
122
140
  readonly excludedNames?: readonly string[] | undefined;
123
141
  /**
124
142
  * How old a directory must be before it is removed. `0` removes every match.
@@ -136,9 +154,13 @@ export interface SweepHostLeftoversOptions {
136
154
  * Result of {@link sweepHostLeftovers}.
137
155
  */
138
156
  export interface SweepHostLeftoversResult {
139
- /** How many directories were selected for removal but could not be removed. */
157
+ /**
158
+ How many directories were selected for removal but could not be removed.
159
+ */
140
160
  readonly failedCount: number;
141
- /** How many directories were removed. */
161
+ /**
162
+ How many directories were removed.
163
+ */
142
164
  readonly removedCount: number;
143
165
  }
144
166
  /**
@@ -172,14 +194,6 @@ export declare function filterLeftoverNames(params: FilterLeftoverNamesParams):
172
194
  * @returns The max age in milliseconds (`0` disables the gate).
173
195
  */
174
196
  export declare function resolveLeftoverMaxAgeInMilliseconds(options: ObsidianTransportOptions | undefined): number;
175
- /**
176
- * Resolves whether leftover directories are swept, applying the default when
177
- * the option is omitted.
178
- *
179
- * @param options - The transport options.
180
- * @returns `true` when the sweeps should run.
181
- */
182
- export declare function resolveShouldSweepLeftovers(options: ObsidianTransportOptions | undefined): boolean;
183
197
  /**
184
198
  * Removes the leftover vault directories a device is carrying, one directory at
185
199
  * a time, and reports what is verifiably gone.
@@ -214,3 +228,11 @@ export declare function sweepDeviceLeftovers(params: SweepDeviceLeftoversParams)
214
228
  * @returns How many directories were removed, and how many resisted removal.
215
229
  */
216
230
  export declare function sweepHostLeftovers(options?: SweepHostLeftoversOptions): Promise<SweepHostLeftoversResult>;
231
+ /**
232
+ * Resolves whether leftover directories are swept, applying the default when
233
+ * the option is omitted.
234
+ *
235
+ * @param options - The transport options.
236
+ * @returns `true` when the sweeps should run.
237
+ */
238
+ export declare function willSweepLeftovers(options: ObsidianTransportOptions | undefined): boolean;
@@ -21,9 +21,9 @@ __export(library_exports, {
21
21
  LIBRARY_VERSION: () => LIBRARY_VERSION
22
22
  });
23
23
  module.exports = __toCommonJS(library_exports);
24
- const LIBRARY_VERSION = false ? "dev" : "9.2.1";
24
+ const LIBRARY_VERSION = false ? "dev" : "9.2.2";
25
25
  // Annotate the CommonJS export names for ESM import in node:
26
26
  0 && (module.exports = {
27
27
  LIBRARY_VERSION
28
28
  });
29
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xpYnJhcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaWJyYXJ5IG1ldGFkYXRhIGNvbnN0YW50cy4gVGhlIGBPQlNJRElBTl9JTlRFR1JBVElPTl9URVNUSU5HX1ZFUlNJT05gIGdsb2JhbFxuICogaXMgcmVwbGFjZWQgYXQgYnVpbGQgdGltZSBieSBlc2J1aWxkJ3MgYGRlZmluZWAgb3B0aW9uIHdpdGggdGhlIHZlcnNpb25cbiAqIGZyb20gYHBhY2thZ2UuanNvbmAuXG4gKi9cblxuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmdgIGxpYnJhcnkuXG4gKiBBdCBidWlsZCB0aW1lLCBgT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OYCBpcyByZXBsYWNlZCBieSBlc2J1aWxkJ3NcbiAqIGBkZWZpbmVgIG9wdGlvbi4gQXQgdGVzdCB0aW1lIChWaXRlc3QpLCBpdCBmYWxscyBiYWNrIHRvIGAnZGV2J2AuXG4gKi9cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBCdWlsZC10aW1lIGNvbnN0YW50OyB0aGUgZWxzZSBicmFuY2ggaXMgb25seSByZWFjaGFibGUgd2hlbiBlc2J1aWxkJ3MgZGVmaW5lIHJlcGxhY2VzIHRoZSBnbG9iYWwuICovXG5leHBvcnQgY29uc3QgTElCUkFSWV9WRVJTSU9OOiBzdHJpbmcgPSB0eXBlb2YgT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OID09PSAndW5kZWZpbmVkJ1xuICA/ICdkZXYnXG4gIDogT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OO1xuLyogdjggaWdub3JlIHN0b3AgKi9cblxuZGVjbGFyZSBjb25zdCBPQlNJRElBTl9JTlRFR1JBVElPTl9URVNUSU5HX1ZFUlNJT046IHN0cmluZyB8IHVuZGVmaW5lZDtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjTyxNQUFNLGtCQUEwQixRQUNuQyxRQUNBOyIsCiAgIm5hbWVzIjogW10KfQo=
29
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xpYnJhcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaWJyYXJ5IG1ldGFkYXRhIGNvbnN0YW50cy4gVGhlIGBPQlNJRElBTl9JTlRFR1JBVElPTl9URVNUSU5HX1ZFUlNJT05gIGdsb2JhbFxuICogaXMgcmVwbGFjZWQgYXQgYnVpbGQgdGltZSBieSBlc2J1aWxkJ3MgYGRlZmluZWAgb3B0aW9uIHdpdGggdGhlIHZlcnNpb25cbiAqIGZyb20gYHBhY2thZ2UuanNvbmAuXG4gKi9cblxuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmdgIGxpYnJhcnkuXG4gKiBBdCBidWlsZCB0aW1lLCBgT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OYCBpcyByZXBsYWNlZCBieSBlc2J1aWxkJ3NcbiAqIGBkZWZpbmVgIG9wdGlvbi4gQXQgdGVzdCB0aW1lIChWaXRlc3QpLCBpdCBmYWxscyBiYWNrIHRvIGAnZGV2J2AuXG4gKi9cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBCdWlsZC10aW1lIGNvbnN0YW50OyB0aGUgZWxzZSBicmFuY2ggaXMgb25seSByZWFjaGFibGUgd2hlbiBlc2J1aWxkJ3MgZGVmaW5lIHJlcGxhY2VzIHRoZSBnbG9iYWwuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby10eXBlb2YtdW5kZWZpbmVkIC0tIFRoZSBgdHlwZW9mYCBndWFyZCBpcyByZXF1aXJlZDogb3V0c2lkZSBhIGJ1aWx0IGJ1bmRsZSB0aGUgZ2xvYmFsIGlzIG5ldmVyIERFQ0xBUkVELCBzbyByZWFkaW5nIGl0IGRpcmVjdGx5IHRocm93cyBhIGBSZWZlcmVuY2VFcnJvcmAgcmF0aGVyIHRoYW4geWllbGRpbmcgYHVuZGVmaW5lZGAuXG5leHBvcnQgY29uc3QgTElCUkFSWV9WRVJTSU9OOiBzdHJpbmcgPSB0eXBlb2YgT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OID09PSAndW5kZWZpbmVkJ1xuICA/ICdkZXYnXG4gIDogT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OO1xuLyogdjggaWdub3JlIHN0b3AgKi9cblxuZGVjbGFyZSBjb25zdCBPQlNJRElBTl9JTlRFR1JBVElPTl9URVNUSU5HX1ZFUlNJT046IHN0cmluZyB8IHVuZGVmaW5lZDtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlTyxNQUFNLGtCQUEwQixRQUNuQyxRQUNBOyIsCiAgIm5hbWVzIjogW10KfQo=