obsidian-integration-testing 8.4.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -11
- package/dist/lib/cjs/avd-list.cjs +36 -0
- package/dist/lib/cjs/avd-list.d.cts +38 -0
- package/dist/lib/cjs/demo-vault-populate.cjs +77 -0
- package/dist/lib/cjs/demo-vault-populate.d.cts +71 -0
- package/dist/lib/cjs/demo-vault-tree.cjs +52 -0
- package/dist/lib/cjs/demo-vault-tree.d.cts +34 -0
- package/dist/lib/cjs/enable-plugin.cjs +56 -5
- package/dist/lib/cjs/enable-plugin.d.cts +26 -1
- package/dist/lib/cjs/global-setup-core.cjs +92 -26
- package/dist/lib/cjs/global-setup-core.d.cts +24 -3
- package/dist/lib/cjs/index.cjs +10 -1
- package/dist/lib/cjs/index.d.cts +6 -0
- package/dist/lib/cjs/jest/global-setup-no-plugin.cjs +41 -0
- package/dist/lib/cjs/jest/global-setup-no-plugin.d.cts +26 -0
- package/dist/lib/cjs/jest/global-setup.cjs +7 -2
- package/dist/lib/cjs/jest/global-setup.d.cts +20 -3
- package/dist/lib/cjs/jest/global-teardown-no-plugin.cjs +26 -0
- package/dist/lib/cjs/jest/global-teardown-no-plugin.d.cts +11 -0
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/plugin-enable-retry.cjs +53 -0
- package/dist/lib/cjs/plugin-enable-retry.d.cts +71 -0
- package/dist/lib/cjs/poll-in-obsidian.cjs +72 -0
- package/dist/lib/cjs/poll-in-obsidian.d.cts +92 -0
- package/dist/lib/cjs/poll-until.cjs +43 -0
- package/dist/lib/cjs/poll-until.d.cts +42 -0
- package/dist/lib/cjs/process-exit-message.cjs +47 -0
- package/dist/lib/cjs/process-exit-message.d.cts +48 -0
- package/dist/lib/cjs/transport-appium.cjs +51 -1
- package/dist/lib/cjs/transport-appium.d.cts +24 -1
- package/dist/lib/cjs/transport-desktop-cdp.cjs +20 -11
- package/dist/lib/cjs/transport-desktop-cdp.d.cts +9 -2
- package/dist/lib/cjs/transport-factory.cjs +122 -23
- package/dist/lib/cjs/transport-options.cjs +1 -1
- package/dist/lib/cjs/transport-options.d.cts +28 -0
- package/dist/lib/cjs/transport.cjs +1 -1
- package/dist/lib/cjs/transport.d.cts +37 -0
- package/dist/lib/cjs/vault-path-match.cjs +49 -0
- package/dist/lib/cjs/vault-path-match.d.cts +36 -0
- package/dist/lib/cjs/vitest/global-setup-no-plugin.cjs +37 -0
- package/dist/lib/cjs/vitest/global-setup-no-plugin.d.cts +26 -0
- package/dist/lib/cjs/vitest/global-setup.cjs +7 -2
- package/dist/lib/cjs/vitest/global-setup.d.cts +20 -3
- package/dist/lib/esm/avd-list.d.mts +38 -0
- package/dist/lib/esm/avd-list.mjs +11 -0
- package/dist/lib/esm/demo-vault-populate.d.mts +71 -0
- package/dist/lib/esm/demo-vault-populate.mjs +57 -0
- package/dist/lib/esm/demo-vault-tree.d.mts +34 -0
- package/dist/lib/esm/demo-vault-tree.mjs +35 -0
- package/dist/lib/esm/enable-plugin.d.mts +26 -1
- package/dist/lib/esm/enable-plugin.mjs +54 -4
- package/dist/lib/esm/global-setup-core.d.mts +24 -3
- package/dist/lib/esm/global-setup-core.mjs +101 -27
- package/dist/lib/esm/index.d.mts +6 -0
- package/dist/lib/esm/index.mjs +7 -1
- package/dist/lib/esm/jest/global-setup-no-plugin.d.mts +26 -0
- package/dist/lib/esm/jest/global-setup-no-plugin.mjs +17 -0
- package/dist/lib/esm/jest/global-setup.d.mts +20 -3
- package/dist/lib/esm/jest/global-setup.mjs +7 -2
- package/dist/lib/esm/jest/global-teardown-no-plugin.d.mts +11 -0
- package/dist/lib/esm/jest/global-teardown-no-plugin.mjs +6 -0
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/plugin-enable-retry.d.mts +71 -0
- package/dist/lib/esm/plugin-enable-retry.mjs +24 -0
- package/dist/lib/esm/poll-in-obsidian.d.mts +92 -0
- package/dist/lib/esm/poll-in-obsidian.mjs +48 -0
- package/dist/lib/esm/poll-until.d.mts +42 -0
- package/dist/lib/esm/poll-until.mjs +19 -0
- package/dist/lib/esm/process-exit-message.d.mts +48 -0
- package/dist/lib/esm/process-exit-message.mjs +23 -0
- package/dist/lib/esm/transport-appium.d.mts +24 -1
- package/dist/lib/esm/transport-appium.mjs +51 -1
- package/dist/lib/esm/transport-desktop-cdp.d.mts +9 -2
- package/dist/lib/esm/transport-desktop-cdp.mjs +20 -11
- package/dist/lib/esm/transport-factory.mjs +125 -23
- package/dist/lib/esm/transport-options.d.mts +28 -0
- package/dist/lib/esm/transport.d.mts +37 -0
- package/dist/lib/esm/vault-path-match.d.mts +36 -0
- package/dist/lib/esm/vault-path-match.mjs +14 -0
- package/dist/lib/esm/vitest/global-setup-no-plugin.d.mts +26 -0
- package/dist/lib/esm/vitest/global-setup-no-plugin.mjs +11 -0
- package/dist/lib/esm/vitest/global-setup.d.mts +20 -3
- package/dist/lib/esm/vitest/global-setup.mjs +7 -2
- package/dist/obsidian-integration-testing-9.1.0.tgz +0 -0
- package/package.json +38 -8
- package/dist/obsidian-integration-testing-8.4.0.tgz +0 -0
package/dist/lib/cjs/index.cjs
CHANGED
|
@@ -25,6 +25,7 @@ __export(index_exports, {
|
|
|
25
25
|
RendererFailedToInitializeError: () => import_renderer_failed_to_initialize_error.RendererFailedToInitializeError,
|
|
26
26
|
SilentAsarFallbackError: () => import_silent_asar_fallback_error.SilentAsarFallbackError,
|
|
27
27
|
TempVault: () => import_temp_vault.TempVault,
|
|
28
|
+
buildDemoVaultPopulate: () => import_demo_vault_populate.buildDemoVaultPopulate,
|
|
28
29
|
checkAsarFallback: () => import_asar_fallback_detection.checkAsarFallback,
|
|
29
30
|
checkElectronCompatibility: () => import_electron_compatibility.checkElectronCompatibility,
|
|
30
31
|
checkInstallerCompatibility: () => import_installer_compatibility.checkInstallerCompatibility,
|
|
@@ -32,6 +33,8 @@ __export(index_exports, {
|
|
|
32
33
|
createTransportFromOptions: () => import_transport_factory.createTransportFromOptions,
|
|
33
34
|
evalInObsidian: () => import_eval_in_obsidian.evalInObsidian,
|
|
34
35
|
getVersionMetadata: () => import_obsidian_metadata.getVersionMetadata,
|
|
36
|
+
pollInObsidian: () => import_poll_in_obsidian.pollInObsidian,
|
|
37
|
+
readDemoVaultTree: () => import_demo_vault_tree.readDemoVaultTree,
|
|
35
38
|
registerLibResolver: () => import_lib_registry.registerLibResolver,
|
|
36
39
|
registerVault: () => import_vault_registry.registerVault,
|
|
37
40
|
setTransportOptionsResolver: () => import_context_provider.setTransportOptionsResolver,
|
|
@@ -43,12 +46,15 @@ var import_asar_fallback_detection = require("./asar-fallback-detection.cjs");
|
|
|
43
46
|
var import_connect_to_cdp = require("./connect-to-cdp.cjs");
|
|
44
47
|
var import_context_id = require("./context-id.cjs");
|
|
45
48
|
var import_context_provider = require("./context-provider.cjs");
|
|
49
|
+
var import_demo_vault_populate = require("./demo-vault-populate.cjs");
|
|
50
|
+
var import_demo_vault_tree = require("./demo-vault-tree.cjs");
|
|
46
51
|
var import_electron_compatibility = require("./electron-compatibility.cjs");
|
|
47
52
|
var import_eval_in_obsidian = require("./eval-in-obsidian.cjs");
|
|
48
53
|
var import_incompatible_installer_version_error = require("./incompatible-installer-version-error.cjs");
|
|
49
54
|
var import_installer_compatibility = require("./installer-compatibility.cjs");
|
|
50
55
|
var import_lib_registry = require("./lib-registry.cjs");
|
|
51
56
|
var import_obsidian_metadata = require("./obsidian-metadata.cjs");
|
|
57
|
+
var import_poll_in_obsidian = require("./poll-in-obsidian.cjs");
|
|
52
58
|
var import_renderer_failed_to_initialize_error = require("./renderer-failed-to-initialize-error.cjs");
|
|
53
59
|
var import_silent_asar_fallback_error = require("./silent-asar-fallback-error.cjs");
|
|
54
60
|
var import_temp_vault = require("./temp-vault.cjs");
|
|
@@ -65,6 +71,7 @@ var import_vault_registry = require("./vault-registry.cjs");
|
|
|
65
71
|
RendererFailedToInitializeError,
|
|
66
72
|
SilentAsarFallbackError,
|
|
67
73
|
TempVault,
|
|
74
|
+
buildDemoVaultPopulate,
|
|
68
75
|
checkAsarFallback,
|
|
69
76
|
checkElectronCompatibility,
|
|
70
77
|
checkInstallerCompatibility,
|
|
@@ -72,10 +79,12 @@ var import_vault_registry = require("./vault-registry.cjs");
|
|
|
72
79
|
createTransportFromOptions,
|
|
73
80
|
evalInObsidian,
|
|
74
81
|
getVersionMetadata,
|
|
82
|
+
pollInObsidian,
|
|
83
|
+
readDemoVaultTree,
|
|
75
84
|
registerLibResolver,
|
|
76
85
|
registerVault,
|
|
77
86
|
setTransportOptionsResolver,
|
|
78
87
|
setVaultPathResolver,
|
|
79
88
|
unregisterVault
|
|
80
89
|
});
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdGluZyBtb2R1bGUuXG4gKi9cblxuZXhwb3J0IHR5cGUge1xuICBBc2FyRmFsbGJhY2ssXG4gIEFzYXJGYWxsYmFja1RpZXIsXG4gIENoZWNrQXNhckZhbGxiYWNrUGFyYW1zXG59IGZyb20gJy4vYXNhci1mYWxsYmFjay1kZXRlY3Rpb24uY2pzJztcbmV4cG9ydCB7IGNoZWNrQXNhckZhbGxiYWNrIH0gZnJvbSAnLi9hc2FyLWZhbGxiYWNrLWRldGVjdGlvbi5janMnO1xuZXhwb3J0IHR5cGUge1xuICBDZHBDb25uZWN0aW9uLFxuICBDb25uZWN0VG9DZHBPcHRpb25zXG59IGZyb20gJy4vY29ubmVjdC10by1jZHAuY2pzJztcbmV4cG9ydCB7IGNvbm5lY3RUb0NkcCB9IGZyb20gJy4vY29ubmVjdC10by1jZHAuY2pzJztcbmV4cG9ydCB7IENvbnRleHRJZCB9IGZyb20gJy4vY29udGV4dC1pZC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBUcmFuc3BvcnRPcHRpb25zUmVzb2x2ZXIsXG4gIFZhdWx0UGF0aFJlc29sdmVyXG59IGZyb20gJy4vY29udGV4dC1wcm92aWRlci5janMnO1xuZXhwb3J0IHtcbiAgc2V0VHJhbnNwb3J0T3B0aW9uc1Jlc29sdmVyLFxuICBzZXRWYXVsdFBhdGhSZXNvbHZlclxufSBmcm9tICcuL2NvbnRleHQtcHJvdmlkZXIuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQnVpbGREZW1vVmF1bHRQb3B1bGF0ZVBhcmFtcyxcbiAgSW5qZWN0UGx1Z2luUGFyYW1zXG59IGZyb20gJy4vZGVtby12YXVsdC1wb3B1bGF0ZS5janMnO1xuZXhwb3J0IHsgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZSB9IGZyb20gJy4vZGVtby12YXVsdC1wb3B1bGF0ZS5janMnO1xuZXhwb3J0IHR5cGUgeyBSZWFkRGVtb1ZhdWx0VHJlZVBhcmFtcyB9IGZyb20gJy4vZGVtby12YXVsdC10cmVlLmNqcyc7XG5leHBvcnQgeyByZWFkRGVtb1ZhdWx0VHJlZSB9IGZyb20gJy4vZGVtby12YXVsdC10cmVlLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENoZWNrRWxlY3Ryb25Db21wYXRpYmlsaXR5UGFyYW1zLFxuICBFbGVjdHJvbkNvbXBhdGliaWxpdHksXG4gIEVsZWN0cm9uQ29tcGF0aWJpbGl0eVRpZXJcbn0gZnJvbSAnLi9lbGVjdHJvbi1jb21wYXRpYmlsaXR5LmNqcyc7XG5leHBvcnQgeyBjaGVja0VsZWN0cm9uQ29tcGF0aWJpbGl0eSB9IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHR5cGUge1xuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgSG92ZXJFbGVtZW50UGFyYW1zLFxuICBMaWIsXG4gIE1vdmVNb3VzZVBhcmFtcyxcbiAgUHJlc3NLZXlQYXJhbXMsXG4gIFR5cGVJbnRvRWRpdG9yUGFyYW1zLFxuICBVbmhvdmVyRWxlbWVudFBhcmFtcyxcbiAgV2FpdFVudGlsUGFyYW1zXG59IGZyb20gJy4vZXZhbC1pbi1vYnNpZGlhbi5janMnO1xuZXhwb3J0IHsgZXZhbEluT2JzaWRpYW4gfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB0eXBlIHsgSW5jb21wYXRpYmxlSW5zdGFsbGVyVmVyc2lvbkVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2luY29tcGF0aWJsZS1pbnN0YWxsZXItdmVyc2lvbi1lcnJvci5janMnO1xuZXhwb3J0IHsgSW5jb21wYXRpYmxlSW5zdGFsbGVyVmVyc2lvbkVycm9yIH0gZnJvbSAnLi9pbmNvbXBhdGlibGUtaW5zdGFsbGVyLXZlcnNpb24tZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2hlY2tJbnN0YWxsZXJDb21wYXRpYmlsaXR5UGFyYW1zLFxuICBJbnN0YWxsZXJDb21wYXRpYmlsaXR5LFxuICBJbnN0YWxsZXJDb21wYXRpYmlsaXR5VGllclxufSBmcm9tICcuL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LmNqcyc7XG5leHBvcnQgeyBjaGVja0luc3RhbGxlckNvbXBhdGliaWxpdHkgfSBmcm9tICcuL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LmNqcyc7XG5leHBvcnQgdHlwZSB7IExpYlJlc29sdmVyIH0gZnJvbSAnLi9saWItcmVnaXN0cnkuY2pzJztcbmV4cG9ydCB7IHJlZ2lzdGVyTGliUmVzb2x2ZXIgfSBmcm9tICcuL2xpYi1yZWdpc3RyeS5janMnO1xuZXhwb3J0IHR5cGUge1xuICBPYnNpZGlhblJ1bnRpbWVWZXJzaW9ucyxcbiAgT2JzaWRpYW5WZXJzaW9uRG93bmxvYWRzLFxuICBPYnNpZGlhblZlcnNpb25NZXRhZGF0YVxufSBmcm9tICcuL29ic2lkaWFuLW1ldGFkYXRhLmNqcyc7XG5leHBvcnQgeyBnZXRWZXJzaW9uTWV0YWRhdGEgfSBmcm9tICcuL29ic2lkaWFuLW1ldGFkYXRhLmNqcyc7XG5leHBvcnQgdHlwZSB7IFBvbGxJbk9ic2lkaWFuUGFyYW1zIH0gZnJvbSAnLi9wb2xsLWluLW9ic2lkaWFuLmNqcyc7XG5leHBvcnQgeyBwb2xsSW5PYnNpZGlhbiB9IGZyb20gJy4vcG9sbC1pbi1vYnNpZGlhbi5janMnO1xuZXhwb3J0IHsgUmVuZGVyZXJGYWlsZWRUb0luaXRpYWxpemVFcnJvciB9IGZyb20gJy4vcmVuZGVyZXItZmFpbGVkLXRvLWluaXRpYWxpemUtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHsgU2lsZW50QXNhckZhbGxiYWNrRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vc2lsZW50LWFzYXItZmFsbGJhY2stZXJyb3IuY2pzJztcbmV4cG9ydCB7IFNpbGVudEFzYXJGYWxsYmFja0Vycm9yIH0gZnJvbSAnLi9zaWxlbnQtYXNhci1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUge1xuICBQb3B1bGF0ZUZpbGVDb250ZW50LFxuICBQb3B1bGF0ZUZpbGVzUGFyYW1zXG59IGZyb20gJy4vdGVtcC12YXVsdC5janMnO1xuZXhwb3J0IHsgVGVtcFZhdWx0IH0gZnJvbSAnLi90ZW1wLXZhdWx0LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEFwcGl1bVNlc3Npb25JbmZvLFxuICBBcHBpdW1UcmFuc3BvcnRDb25maWdcbn0gZnJvbSAnLi90cmFuc3BvcnQtYXBwaXVtLmNqcyc7XG5leHBvcnQgeyBBcHBpdW1UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1hcHBpdW0uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGVza3RvcENkcFRyYW5zcG9ydENvbmZpZyxcbiAgT3duZWRJbnN0YW5jZUFzYXIsXG4gIE93bmVkSW5zdGFuY2VDb25maWdcbn0gZnJvbSAnLi90cmFuc3BvcnQtZGVza3RvcC1jZHAuY2pzJztcbmV4cG9ydCB7IERlc2t0b3BDZHBUcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1kZXNrdG9wLWNkcC5janMnO1xuZXhwb3J0IHsgY3JlYXRlVHJhbnNwb3J0RnJvbU9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1mYWN0b3J5LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIE9ic2lkaWFuQW5kcm9pZEFwcGl1bVRyYW5zcG9ydE9wdGlvbnMsXG4gIE9ic2lkaWFuQ2RwVHJhbnNwb3J0T3B0aW9ucyxcbiAgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zXG59IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5UcmFuc3BvcnQsXG4gIFRyYW5zcG9ydEV2YWxPcHRpb25zXG59IGZyb20gJy4vdHJhbnNwb3J0LmNqcyc7XG5leHBvcnQge1xuICByZWdpc3RlclZhdWx0LFxuICB1bnJlZ2lzdGVyVmF1bHRcbn0gZnJvbSAnLi92YXVsdC1yZWdpc3RyeS5janMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBLHFDQUFrQztBQUtsQyw0QkFBNkI7QUFDN0Isd0JBQTBCO0FBSzFCLDhCQUdPO0FBS1AsaUNBQXVDO0FBRXZDLDZCQUFrQztBQU1sQyxvQ0FBMkM7QUFXM0MsOEJBQStCO0FBRS9CLGtEQUFrRDtBQU1sRCxxQ0FBNEM7QUFFNUMsMEJBQW9DO0FBTXBDLCtCQUFtQztBQUVuQyw4QkFBK0I7QUFDL0IsaURBQWdEO0FBRWhELHdDQUF3QztBQUt4Qyx3QkFBMEI7QUFLMUIsOEJBQWdDO0FBTWhDLG1DQUFvQztBQUNwQywrQkFBMkM7QUFVM0MsNEJBR087IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/dist/lib/cjs/index.d.cts
CHANGED
|
@@ -10,6 +10,10 @@ export { connectToCdp } from './connect-to-cdp.cjs';
|
|
|
10
10
|
export { ContextId } from './context-id.cjs';
|
|
11
11
|
export type { TransportOptionsResolver, VaultPathResolver } from './context-provider.cjs';
|
|
12
12
|
export { setTransportOptionsResolver, setVaultPathResolver } from './context-provider.cjs';
|
|
13
|
+
export type { BuildDemoVaultPopulateParams, InjectPluginParams } from './demo-vault-populate.cjs';
|
|
14
|
+
export { buildDemoVaultPopulate } from './demo-vault-populate.cjs';
|
|
15
|
+
export type { ReadDemoVaultTreeParams } from './demo-vault-tree.cjs';
|
|
16
|
+
export { readDemoVaultTree } from './demo-vault-tree.cjs';
|
|
13
17
|
export type { CheckElectronCompatibilityParams, ElectronCompatibility, ElectronCompatibilityTier } from './electron-compatibility.cjs';
|
|
14
18
|
export { checkElectronCompatibility } from './electron-compatibility.cjs';
|
|
15
19
|
export type { EvalInObsidianParams, HoverElementParams, Lib, MoveMouseParams, PressKeyParams, TypeIntoEditorParams, UnhoverElementParams, WaitUntilParams } from './eval-in-obsidian.cjs';
|
|
@@ -22,6 +26,8 @@ export type { LibResolver } from './lib-registry.cjs';
|
|
|
22
26
|
export { registerLibResolver } from './lib-registry.cjs';
|
|
23
27
|
export type { ObsidianRuntimeVersions, ObsidianVersionDownloads, ObsidianVersionMetadata } from './obsidian-metadata.cjs';
|
|
24
28
|
export { getVersionMetadata } from './obsidian-metadata.cjs';
|
|
29
|
+
export type { PollInObsidianParams } from './poll-in-obsidian.cjs';
|
|
30
|
+
export { pollInObsidian } from './poll-in-obsidian.cjs';
|
|
25
31
|
export { RendererFailedToInitializeError } from './renderer-failed-to-initialize-error.cjs';
|
|
26
32
|
export type { SilentAsarFallbackErrorConstructorParams } from './silent-asar-fallback-error.cjs';
|
|
27
33
|
export { SilentAsarFallbackError } from './silent-asar-fallback-error.cjs';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var global_setup_no_plugin_exports = {};
|
|
20
|
+
__export(global_setup_no_plugin_exports, {
|
|
21
|
+
default: () => global_setup_no_plugin_default,
|
|
22
|
+
getTempVault: () => import_global_setup2.getTempVault,
|
|
23
|
+
getTransportOptions: () => import_global_setup2.getTransportOptions,
|
|
24
|
+
setup: () => setup,
|
|
25
|
+
teardown: () => teardown
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(global_setup_no_plugin_exports);
|
|
28
|
+
var import_global_setup = require("./global-setup.cjs");
|
|
29
|
+
var import_global_setup2 = require("./global-setup.cjs");
|
|
30
|
+
const noPluginGlobalSetup = (0, import_global_setup.createSetup)({ installPlugin: false });
|
|
31
|
+
const setup = noPluginGlobalSetup.setup;
|
|
32
|
+
const teardown = noPluginGlobalSetup.teardown;
|
|
33
|
+
var global_setup_no_plugin_default = setup;
|
|
34
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
+
0 && (module.exports = {
|
|
36
|
+
getTempVault,
|
|
37
|
+
getTransportOptions,
|
|
38
|
+
setup,
|
|
39
|
+
teardown
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXNldHVwLW5vLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEplc3QgKipwbHVnaW4tbGVzcyoqIGdsb2JhbCBzZXR1cCBlbnRyeSBwb2ludC5cbiAqXG4gKiBUaGUgY291bnRlcnBhcnQgdG8gYC4vZ2xvYmFsLXNldHVwLnRzYCAod2hpY2ggaW5zdGFsbHMgYW5kIGVuYWJsZXMgdGhlIGJ1aWx0XG4gKiBwbHVnaW4pLiBUaGlzIG9uZSBydW5zIHtAbGluayBjcmVhdGVTZXR1cH0gd2l0aCBgaW5zdGFsbFBsdWdpbjogZmFsc2VgLCBzbyBpdFxuICogcmVnaXN0ZXJzIGFuICoqZW1wdHkqKiB0ZW1wIHZhdWx0IGFuZCBwdWJsaXNoZXMgdGhlIG93bmVkLWluc3RhbmNlIGVuZHBvaW50IHRvXG4gKiB3b3JrZXJzIHdpdGhvdXQgY29weWluZyBvciBlbmFibGluZyBhbnkgcGx1Z2luLiBJdHMgZGVmYXVsdCBleHBvcnQgaXMgdGhlIHNldHVwXG4gKiBmdW5jdGlvbiwgYXMgSmVzdCdzIGBnbG9iYWxTZXR1cGAgbG9hZGVyIHJlcXVpcmVzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIHNldHVwIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVTZXR1cCB9IGZyb20gJy4vZ2xvYmFsLXNldHVwLmNqcyc7XG5cbmNvbnN0IG5vUGx1Z2luR2xvYmFsU2V0dXAgPSBjcmVhdGVTZXR1cCh7IGluc3RhbGxQbHVnaW46IGZhbHNlIH0pO1xuXG4vKipcbiAqIEplc3QgZ2xvYmFsIHNldHVwIGZ1bmN0aW9uIChwbHVnaW4tbGVzcykuXG4gKlxuICogUmVnaXN0ZXJzIGFuIGVtcHR5IHRlbXAgdmF1bHQgYW5kIHBvcHVsYXRlcyBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nYFxuICogZm9yIHRlc3RzLCB3aXRob3V0IGNvcHlpbmcgb3IgZW5hYmxpbmcgYW55IHBsdWdpbi5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldHVwID0gbm9QbHVnaW5HbG9iYWxTZXR1cC5zZXR1cDtcblxuLyoqXG4gKiBKZXN0IGdsb2JhbCB0ZWFyZG93biBmdW5jdGlvbi5cbiAqXG4gKiBSZW1vdmVzIHRoZSB0ZW1wb3JhcnkgdmF1bHQgY3JlYXRlZCBkdXJpbmcgc2V0dXAuXG4gKi9cbmV4cG9ydCBjb25zdCB0ZWFyZG93biA9IG5vUGx1Z2luR2xvYmFsU2V0dXAudGVhcmRvd247XG5cbmV4cG9ydCB7XG4gIGdldFRlbXBWYXVsdCxcbiAgZ2V0VHJhbnNwb3J0T3B0aW9uc1xufSBmcm9tICcuL2dsb2JhbC1zZXR1cC5janMnO1xuXG4vLyBKZXN0J3MgYGdsb2JhbFNldHVwYCBjb25maWcgY2FuIHJlZmVyZW5jZSB0aGlzIG1vZHVsZSBkaXJlY3RseSBiZWNhdXNlIGl0cyBkZWZhdWx0IGV4cG9ydCBpcyB0aGUgc2V0dXAgZnVuY3Rpb24uXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tZGVmYXVsdC1leHBvcnQgLS0gSmVzdCdzIGdsb2JhbFNldHVwIGxvYWRlciByZXF1aXJlcyBhIGRlZmF1bHQtZXhwb3J0IGZ1bmN0aW9uLlxuZXhwb3J0IGRlZmF1bHQgc2V0dXA7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSwwQkFBNEI7QUFtQjVCLElBQUFBLHVCQUdPO0FBcEJQLE1BQU0sMEJBQXNCLGlDQUFZLEVBQUUsZUFBZSxNQUFNLENBQUM7QUFRekQsTUFBTSxRQUFRLG9CQUFvQjtBQU9sQyxNQUFNLFdBQVcsb0JBQW9CO0FBUzVDLElBQU8saUNBQVE7IiwKICAibmFtZXMiOiBbImltcG9ydF9nbG9iYWxfc2V0dXAiXQp9Cg==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* Jest **plugin-less** global setup entry point.
|
|
5
|
+
*
|
|
6
|
+
* The counterpart to `./global-setup.ts` (which installs and enables the built
|
|
7
|
+
* plugin). This one runs {@link createSetup} with `installPlugin: false`, so it
|
|
8
|
+
* registers an **empty** temp vault and publishes the owned-instance endpoint to
|
|
9
|
+
* workers without copying or enabling any plugin. Its default export is the setup
|
|
10
|
+
* function, as Jest's `globalSetup` loader requires.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Jest global setup function (plugin-less).
|
|
14
|
+
*
|
|
15
|
+
* Registers an empty temp vault and populates `globalThis.__obsidianIntegrationTesting`
|
|
16
|
+
* for tests, without copying or enabling any plugin.
|
|
17
|
+
*/
|
|
18
|
+
export declare const setup: (this: void) => Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Jest global teardown function.
|
|
21
|
+
*
|
|
22
|
+
* Removes the temporary vault created during setup.
|
|
23
|
+
*/
|
|
24
|
+
export declare const teardown: (this: void) => Promise<void>;
|
|
25
|
+
export { getTempVault, getTransportOptions } from './global-setup.cjs';
|
|
26
|
+
export default setup;
|
|
@@ -36,7 +36,12 @@ function createSetup(options) {
|
|
|
36
36
|
return { setup: setup2, teardown: teardown2 };
|
|
37
37
|
async function setup2() {
|
|
38
38
|
const transportOptions = globalThis.__obsidianIntegrationTesting?.transportOptions;
|
|
39
|
-
setupResult = await (0, import_global_setup_core.coreSetup)({
|
|
39
|
+
setupResult = await (0, import_global_setup_core.coreSetup)({
|
|
40
|
+
enableCommunityPlugins: options?.enableCommunityPlugins,
|
|
41
|
+
installPlugin: options?.installPlugin,
|
|
42
|
+
populate: options?.populate?.(),
|
|
43
|
+
transportOptions
|
|
44
|
+
});
|
|
40
45
|
globalThis.__obsidianIntegrationTesting = {
|
|
41
46
|
...globalThis.__obsidianIntegrationTesting,
|
|
42
47
|
tempVaultPath: setupResult.tempVault.path,
|
|
@@ -71,4 +76,4 @@ var global_setup_default = setup;
|
|
|
71
76
|
setup,
|
|
72
77
|
teardown
|
|
73
78
|
});
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXNldHVwLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogSmVzdCBnbG9iYWwgc2V0dXAgYW5kIHRlYXJkb3duIGFkYXB0ZXIuXG4gKlxuICogRGVsZWdhdGVzIHRvIHRoZSBmcmFtZXdvcmstYWdub3N0aWMgY29yZSBhbmQgYnJpZGdlcyBjb250ZXh0XG4gKiB0byB0ZXN0IHdvcmtlcnMgdmlhIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIHNldHVwIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IENvcmVTZXR1cFJlc3VsdCB9IGZyb20gJy4uL2dsb2JhbC1zZXR1cC1jb3JlLmNqcyc7XG5pbXBvcnQgdHlwZSB7IFBvcHVsYXRlRmlsZXNQYXJhbXMgfSBmcm9tICcuLi90ZW1wLXZhdWx0LmNqcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB9IGZyb20gJy4uL3RyYW5zcG9ydC1vcHRpb25zLmNqcyc7XG5cbmltcG9ydCB7XG4gIHNldFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgc2V0VmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi4vY29udGV4dC1wcm92aWRlci5janMnO1xuaW1wb3J0IHtcbiAgY29yZVNldHVwLFxuICBjb3JlVGVhcmRvd25cbn0gZnJvbSAnLi4vZ2xvYmFsLXNldHVwLWNvcmUuY2pzJztcbmltcG9ydCB7IFRlbXBWYXVsdCB9IGZyb20gJy4uL3RlbXAtdmF1bHQuY2pzJztcblxuLyoqXG4gKiBTaGFwZSBvZiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nYC5cbiAqXG4gKiBDb25zdW1lcnMgbWF5IHByZS1wb3B1bGF0ZSBgdHJhbnNwb3J0T3B0aW9uc2AgYmVmb3JlIHRoZSBnbG9iYWwgc2V0dXAgcnVuc1xuICogKGUuZy4sIHZpYSBKZXN0IGNvbmZpZyBgZ2xvYmFsc2ApLiBUaGUgc2V0dXAgdGhlbiBhZGRzIGB0ZW1wVmF1bHRQYXRoYC5cbiAqL1xuaW50ZXJmYWNlIE9ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nR2xvYmFsIHtcbiAgLyoqIFRlbXAgdmF1bHQgcGF0aCwgc2V0IGJ5IHRoZSBnbG9iYWwgc2V0dXAgZm9yIHRlc3Qgd29ya2Vycy4gKi9cbiAgdGVtcFZhdWx0UGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogVHJhbnNwb3J0IG9wdGlvbnMuIFNldCBieSB0aGUgY29uc3VtZXIgYmVmb3JlIHNldHVwLCBvciBieSB0aGUgc2V0dXAgaXRzZWxmLiAqL1xuICB0cmFuc3BvcnRPcHRpb25zPzogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSB2YXJzLW9uLXRvcCAtLSBSZXF1aXJlZCBmb3IgYGRlY2xhcmUgZ2xvYmFsYCBhdWdtZW50YXRpb24uICovXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8qKlxuICAgKiBOYW1lc3BhY2UgZm9yIGFsbCBgb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZ2AgZ2xvYmFsIHN0YXRlLlxuICAgKiBDb25zdW1lcnMgY29uZmlndXJlIHRyYW5zcG9ydCBvcHRpb25zIGhlcmU7IHRoZSBzZXR1cCBwb3B1bGF0ZXMgdGhlIHJlc3QuXG4gICAqL1xuICB2YXIgX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZzogT2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdHbG9iYWwgfCB1bmRlZmluZWQ7XG59XG4vKiBlc2xpbnQtZW5hYmxlIHZhcnMtb24tdG9wIC0tIEVuZCBvZiBgZGVjbGFyZSBnbG9iYWxgIGJsb2NrLiAqL1xuXG5zZXRUcmFuc3BvcnRPcHRpb25zUmVzb2x2ZXIoKCkgPT4gZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy50cmFuc3BvcnRPcHRpb25zKTtcbnNldFZhdWx0UGF0aFJlc29sdmVyKCgpID0+IGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udGVtcFZhdWx0UGF0aCk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGNyZWF0ZVNldHVwfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTZXR1cE9wdGlvbnMge1xuICAvKipcbiAgICogUmV0dXJucyBmaWxlcy9mb2xkZXJzIHRvIHdyaXRlIGludG8gdGhlIHZhdWx0IGJlZm9yZSBPYnNpZGlhbiBvcGVucyBpdCAoc2VlXG4gICAqIHtAbGluayBDb3JlU2V0dXBQYXJhbXMucG9wdWxhdGV9KS4gQSB0aHVuayBzbyBsYXJnZSBmaXh0dXJlcyBhcmUgYnVpbHQgbGF6aWx5LFxuICAgKiBvbmNlLCBpbiB0aGUgc2V0dXAgcHJvY2Vzcy5cbiAgICovXG4gIHBvcHVsYXRlPyh0aGlzOiB2b2lkKTogUG9wdWxhdGVGaWxlc1BhcmFtcztcbn1cblxuLyoqXG4gKiBBIEplc3QgYGdsb2JhbFNldHVwYCAvIGBnbG9iYWxUZWFyZG93bmAgbW9kdWxlJ3MgYHNldHVwYCAvIGB0ZWFyZG93bmAgcGFpci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKZXN0R2xvYmFsU2V0dXAge1xuICBzZXR1cCh0aGlzOiB2b2lkKTogUHJvbWlzZTx2b2lkPjtcbiAgdGVhcmRvd24odGhpczogdm9pZCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIEplc3QgZ2xvYmFsIHNldHVwL3RlYXJkb3duIHBhaXIsIG9wdGlvbmFsbHkgcHJlLXBvcHVsYXRpbmcgdGhlIHZhdWx0XG4gKiBiZWZvcmUgT2JzaWRpYW4gb3BlbnMgaXQgXHUyMDE0IHVzZSB0aGlzIGZvciBhIGRlZGljYXRlZCBsYXJnZS12YXVsdC9wZXJmb3JtYW5jZVxuICogc2V0dXAuIFRoZSBwbGFpbiB7QGxpbmsgc2V0dXB9IC8ge0BsaW5rIHRlYXJkb3dufSBleHBvcnRzIGFyZSB0aGUgbm8tcG9wdWxhdGVcbiAqIGNhc2UgKGBjcmVhdGVTZXR1cCgpYCkuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBTZXR1cCBvcHRpb25zLlxuICogQHJldHVybnMgVGhlIGBzZXR1cGAgYW5kIGB0ZWFyZG93bmAgZnVuY3Rpb25zIHRvIHJlLWV4cG9ydCBmcm9tIGEgYGdsb2JhbFNldHVwYCBtb2R1bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZXR1cChvcHRpb25zPzogQ3JlYXRlU2V0dXBPcHRpb25zKTogSmVzdEdsb2JhbFNldHVwIHtcbiAgbGV0IHNldHVwUmVzdWx0OiBDb3JlU2V0dXBSZXN1bHQgfCB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHsgc2V0dXAsIHRlYXJkb3duIH07XG5cbiAgYXN5bmMgZnVuY3Rpb24gc2V0dXAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdHJhbnNwb3J0T3B0aW9ucyA9IGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udHJhbnNwb3J0T3B0aW9ucztcblxuICAgIHNldHVwUmVzdWx0ID0gYXdhaXQgY29yZVNldHVwKHsgcG9wdWxhdGU6IG9wdGlvbnM/LnBvcHVsYXRlPy4oKSwgdHJhbnNwb3J0T3B0aW9ucyB9KTtcblxuICAgIGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZyA9IHtcbiAgICAgIC4uLmdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZyxcbiAgICAgIHRlbXBWYXVsdFBhdGg6IHNldHVwUmVzdWx0LnRlbXBWYXVsdC5wYXRoLFxuICAgICAgdHJhbnNwb3J0T3B0aW9uczogc2V0dXBSZXN1bHQudHJhbnNwb3J0T3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiB0ZWFyZG93bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBjb3JlVGVhcmRvd24oc2V0dXBSZXN1bHQpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgdGVtcG9yYXJ5IHZhdWx0IHByb3ZpZGVkIGJ5IHRoZSBnbG9iYWwgc2V0dXAuXG4gKlxuICogUmVhZHMgdGhlIHZhdWx0IHBhdGggZnJvbSBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nLnRlbXBWYXVsdFBhdGhgLFxuICogd2hpY2ggaXMgc2V0IGJ5IHRoZSBKZXN0IGdsb2JhbCBzZXR1cC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgdGVtcG9yYXJ5IHZhdWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVtcFZhdWx0KCk6IFRlbXBWYXVsdCB7XG4gIGNvbnN0IHRlbXBWYXVsdFBhdGggPSBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc/LnRlbXBWYXVsdFBhdGg7XG4gIGlmICghdGVtcFZhdWx0UGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmcudGVtcFZhdWx0UGF0aCBpcyBub3Qgc2V0LiBEaWQgeW91IGNvbmZpZ3VyZSBvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nL2plc3QtZ2xvYmFsLXNldHVwIGFzIGEgSmVzdCBnbG9iYWxTZXR1cD8nXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbmV3IFRlbXBWYXVsdCh0ZW1wVmF1bHRQYXRoKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB0cmFuc3BvcnQgb3B0aW9ucyBwcm92aWRlZCBieSB0aGUgZ2xvYmFsIHNldHVwLlxuICpcbiAqIEByZXR1cm5zIFRoZSB0cmFuc3BvcnQgb3B0aW9ucywgb3IgYHVuZGVmaW5lZGAgaWYgbm90IGNvbmZpZ3VyZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc3BvcnRPcHRpb25zKCk6IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc/LnRyYW5zcG9ydE9wdGlvbnM7XG59XG5cbmNvbnN0IGRlZmF1bHRHbG9iYWxTZXR1cCA9IGNyZWF0ZVNldHVwKCk7XG5cbi8qKlxuICogSmVzdCBnbG9iYWwgc2V0dXAgZnVuY3Rpb24gKG5vIHByZS1wb3B1bGF0aW9uKS5cbiAqXG4gKiBDb3BpZXMgdGhlIGJ1aWx0IHBsdWdpbiBpbnRvIGEgdGVtcG9yYXJ5IHZhdWx0LCBlbmFibGVzIGl0IHZpYSB0aGUgT2JzaWRpYW4gQ0xJLFxuICogYW5kIHBvcHVsYXRlcyBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nYCBmb3IgdGVzdHMuXG4gKlxuICogVHJhbnNwb3J0IG9wdGlvbnMgYXJlIHJlYWQgZnJvbSBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nLnRyYW5zcG9ydE9wdGlvbnNgLlxuICogU2V0IHRoaXMgaW4geW91ciBKZXN0IGNvbmZpZyB2aWEgdGhlIGBnbG9iYWxzYCBvcHRpb24uXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBzZXR1cCBjb21wbGV0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXR1cCA9IGRlZmF1bHRHbG9iYWxTZXR1cC5zZXR1cDtcblxuLyoqXG4gKiBKZXN0IGdsb2JhbCB0ZWFyZG93biBmdW5jdGlvbi5cbiAqXG4gKiBSZW1vdmVzIHRoZSB0ZW1wb3JhcnkgdmF1bHQgY3JlYXRlZCBkdXJpbmcgc2V0dXAuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0ZWFyZG93biBjb21wbGV0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB0ZWFyZG93biA9IGRlZmF1bHRHbG9iYWxTZXR1cC50ZWFyZG93bjtcblxuLy8gSmVzdCdzIGBnbG9iYWxTZXR1cGAgY29uZmlnIGNhbiByZWZlcmVuY2UgdGhpcyBtb2R1bGUgZGlyZWN0bHkgYmVjYXVzZSBpdHMgZGVmYXVsdCBleHBvcnQgaXMgdGhlIHNldHVwIGZ1bmN0aW9uLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0IC0tIEplc3QncyBnbG9iYWxTZXR1cCBsb2FkZXIgcmVxdWlyZXMgYSBkZWZhdWx0LWV4cG9ydCBmdW5jdGlvbi5cbmV4cG9ydCBkZWZhdWx0IHNldHVwO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQSw4QkFHTztBQUNQLCtCQUdPO0FBQ1Asd0JBQTBCO0FBQUEsSUEwQjFCLHFEQUE0QixNQUFNLFdBQVcsOEJBQThCLGdCQUFnQjtBQUFBLElBQzNGLDhDQUFxQixNQUFNLFdBQVcsOEJBQThCLGFBQWE7QUErQjFFLFNBQVMsWUFBWSxTQUErQztBQUN6RSxNQUFJO0FBRUosU0FBTyxFQUFFLE9BQUFBLFFBQU8sVUFBQUMsVUFBUztBQUV6QixpQkFBZUQsU0FBdUI7QUFDcEMsVUFBTSxtQkFBbUIsV0FBVyw4QkFBOEI7QUFFbEUsa0JBQWMsVUFBTSxvQ0FBVSxFQUFFLFVBQVUsU0FBUyxXQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFFbkYsZUFBVywrQkFBK0I7QUFBQSxNQUN4QyxHQUFHLFdBQVc7QUFBQSxNQUNkLGVBQWUsWUFBWSxVQUFVO0FBQUEsTUFDckMsa0JBQWtCLFlBQVk7QUFBQSxJQUNoQztBQUFBLEVBQ0Y7QUFFQSxpQkFBZUMsWUFBMEI7QUFDdkMsY0FBTSx1Q0FBYSxXQUFXO0FBQUEsRUFDaEM7QUFDRjtBQVVPLFNBQVMsZUFBMEI7QUFDeEMsUUFBTSxnQkFBZ0IsV0FBVyw4QkFBOEI7QUFDL0QsTUFBSSxDQUFDLGVBQWU7QUFDbEIsVUFBTSxJQUFJO0FBQUEsTUFDUjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsU0FBTyxJQUFJLDRCQUFVLGFBQWE7QUFDcEM7QUFPTyxTQUFTLHNCQUE0RDtBQUMxRSxTQUFPLFdBQVcsOEJBQThCO0FBQ2xEO0FBRUEsTUFBTSxxQkFBcUIsWUFBWTtBQWFoQyxNQUFNLFFBQVEsbUJBQW1CO0FBU2pDLE1BQU0sV0FBVyxtQkFBbUI7QUFJM0MsSUFBTyx1QkFBUTsiLAogICJuYW1lcyI6IFsic2V0dXAiLCAidGVhcmRvd24iXQp9Cg==
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXNldHVwLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogSmVzdCBnbG9iYWwgc2V0dXAgYW5kIHRlYXJkb3duIGFkYXB0ZXIuXG4gKlxuICogRGVsZWdhdGVzIHRvIHRoZSBmcmFtZXdvcmstYWdub3N0aWMgY29yZSBhbmQgYnJpZGdlcyBjb250ZXh0XG4gKiB0byB0ZXN0IHdvcmtlcnMgdmlhIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIHNldHVwIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IENvcmVTZXR1cFJlc3VsdCB9IGZyb20gJy4uL2dsb2JhbC1zZXR1cC1jb3JlLmNqcyc7XG5pbXBvcnQgdHlwZSB7IFBvcHVsYXRlRmlsZXNQYXJhbXMgfSBmcm9tICcuLi90ZW1wLXZhdWx0LmNqcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB9IGZyb20gJy4uL3RyYW5zcG9ydC1vcHRpb25zLmNqcyc7XG5cbmltcG9ydCB7XG4gIHNldFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgc2V0VmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi4vY29udGV4dC1wcm92aWRlci5janMnO1xuaW1wb3J0IHtcbiAgY29yZVNldHVwLFxuICBjb3JlVGVhcmRvd25cbn0gZnJvbSAnLi4vZ2xvYmFsLXNldHVwLWNvcmUuY2pzJztcbmltcG9ydCB7IFRlbXBWYXVsdCB9IGZyb20gJy4uL3RlbXAtdmF1bHQuY2pzJztcblxuLyoqXG4gKiBTaGFwZSBvZiBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nYC5cbiAqXG4gKiBDb25zdW1lcnMgbWF5IHByZS1wb3B1bGF0ZSBgdHJhbnNwb3J0T3B0aW9uc2AgYmVmb3JlIHRoZSBnbG9iYWwgc2V0dXAgcnVuc1xuICogKGUuZy4sIHZpYSBKZXN0IGNvbmZpZyBgZ2xvYmFsc2ApLiBUaGUgc2V0dXAgdGhlbiBhZGRzIGB0ZW1wVmF1bHRQYXRoYC5cbiAqL1xuaW50ZXJmYWNlIE9ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nR2xvYmFsIHtcbiAgLyoqIFRlbXAgdmF1bHQgcGF0aCwgc2V0IGJ5IHRoZSBnbG9iYWwgc2V0dXAgZm9yIHRlc3Qgd29ya2Vycy4gKi9cbiAgdGVtcFZhdWx0UGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKiogVHJhbnNwb3J0IG9wdGlvbnMuIFNldCBieSB0aGUgY29uc3VtZXIgYmVmb3JlIHNldHVwLCBvciBieSB0aGUgc2V0dXAgaXRzZWxmLiAqL1xuICB0cmFuc3BvcnRPcHRpb25zPzogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSB2YXJzLW9uLXRvcCAtLSBSZXF1aXJlZCBmb3IgYGRlY2xhcmUgZ2xvYmFsYCBhdWdtZW50YXRpb24uICovXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8qKlxuICAgKiBOYW1lc3BhY2UgZm9yIGFsbCBgb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZ2AgZ2xvYmFsIHN0YXRlLlxuICAgKiBDb25zdW1lcnMgY29uZmlndXJlIHRyYW5zcG9ydCBvcHRpb25zIGhlcmU7IHRoZSBzZXR1cCBwb3B1bGF0ZXMgdGhlIHJlc3QuXG4gICAqL1xuICB2YXIgX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZzogT2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdHbG9iYWwgfCB1bmRlZmluZWQ7XG59XG4vKiBlc2xpbnQtZW5hYmxlIHZhcnMtb24tdG9wIC0tIEVuZCBvZiBgZGVjbGFyZSBnbG9iYWxgIGJsb2NrLiAqL1xuXG5zZXRUcmFuc3BvcnRPcHRpb25zUmVzb2x2ZXIoKCkgPT4gZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy50cmFuc3BvcnRPcHRpb25zKTtcbnNldFZhdWx0UGF0aFJlc29sdmVyKCgpID0+IGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udGVtcFZhdWx0UGF0aCk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGNyZWF0ZVNldHVwfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTZXR1cE9wdGlvbnMge1xuICAvKipcbiAgICogQ29tbXVuaXR5LXBsdWdpbiBpZHMgdG8gZW5hYmxlIGluIHRoZSB2YXVsdCBpbiBhZGRpdGlvbiB0byB0aGUgcGx1Z2luLXVuZGVyLXRlc3QsXG4gICAqIGFmdGVyIGl0IGlzIGVuYWJsZWQgKHNlZSB7QGxpbmsgQ29yZVNldHVwUGFyYW1zLmVuYWJsZUNvbW11bml0eVBsdWdpbnN9KS4gU2VlZCBlYWNoXG4gICAqIHBsdWdpbidzIGJ1aWx0IGZpbGVzIHZpYSB7QGxpbmsgQ3JlYXRlU2V0dXBPcHRpb25zLnBvcHVsYXRlfSAoZS5nLiB3aXRoIGBidWlsZERlbW9WYXVsdFBvcHVsYXRlYClcbiAgICogc28gdGhlIGVuYWJsZSBmaW5kcyB0aGVtIG9uIGRpc2suXG4gICAqL1xuICByZWFkb25seSBlbmFibGVDb21tdW5pdHlQbHVnaW5zPzogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBidWlsdCBwbHVnaW4gaW4gdGhlIHRlbXAgdmF1bHQuIERlZmF1bHRzXG4gICAqIHRvIGB0cnVlYC4gU2V0IHRvIGBmYWxzZWAgZm9yIGEgKipub24tcGx1Z2luKiogY29uc3VtZXIgdGhhdCBvbmx5IG5lZWRzIGFcbiAgICogcmVnaXN0ZXJlZCwgZW1wdHkgdmF1bHQgdG8gYGV2YWxJbk9ic2lkaWFuYCBhZ2FpbnN0IFx1MjAxNCB0aGUgb3duZWQgaW5zdGFuY2UgaXNcbiAgICogc3RpbGwgbGF1bmNoZWQgYW5kIGl0cyBlbmRwb2ludCBwdWJsaXNoZWQgdG8gd29ya2Vycywgc28gcmUtZXhwb3J0aW5nXG4gICAqIGBjcmVhdGVTZXR1cCh7IGluc3RhbGxQbHVnaW46IGZhbHNlIH0pYCByZXVzZXMgdGhlIHNhbWUgYXR0YWNoIHdpcmluZyB3aXRoIG5vXG4gICAqIHBsdWdpbiBjb3B5L2VuYWJsZS4gU2VlIHtAbGluayBDb3JlU2V0dXBQYXJhbXMuaW5zdGFsbFBsdWdpbn0uXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsUGx1Z2luPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV0dXJucyBmaWxlcy9mb2xkZXJzIHRvIHdyaXRlIGludG8gdGhlIHZhdWx0IGJlZm9yZSBPYnNpZGlhbiBvcGVucyBpdCAoc2VlXG4gICAqIHtAbGluayBDb3JlU2V0dXBQYXJhbXMucG9wdWxhdGV9KS4gQSB0aHVuayBzbyBsYXJnZSBmaXh0dXJlcyBhcmUgYnVpbHQgbGF6aWx5LFxuICAgKiBvbmNlLCBpbiB0aGUgc2V0dXAgcHJvY2Vzcy5cbiAgICovXG4gIHBvcHVsYXRlPyh0aGlzOiB2b2lkKTogUG9wdWxhdGVGaWxlc1BhcmFtcztcbn1cblxuLyoqXG4gKiBBIEplc3QgYGdsb2JhbFNldHVwYCAvIGBnbG9iYWxUZWFyZG93bmAgbW9kdWxlJ3MgYHNldHVwYCAvIGB0ZWFyZG93bmAgcGFpci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKZXN0R2xvYmFsU2V0dXAge1xuICBzZXR1cCh0aGlzOiB2b2lkKTogUHJvbWlzZTx2b2lkPjtcbiAgdGVhcmRvd24odGhpczogdm9pZCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIEplc3QgZ2xvYmFsIHNldHVwL3RlYXJkb3duIHBhaXIsIG9wdGlvbmFsbHkgcHJlLXBvcHVsYXRpbmcgdGhlIHZhdWx0XG4gKiBiZWZvcmUgT2JzaWRpYW4gb3BlbnMgaXQgXHUyMDE0IHVzZSB0aGlzIGZvciBhIGRlZGljYXRlZCBsYXJnZS12YXVsdC9wZXJmb3JtYW5jZVxuICogc2V0dXAuIFRoZSBwbGFpbiB7QGxpbmsgc2V0dXB9IC8ge0BsaW5rIHRlYXJkb3dufSBleHBvcnRzIGFyZSB0aGUgbm8tcG9wdWxhdGVcbiAqIGNhc2UgKGBjcmVhdGVTZXR1cCgpYCkuIFBhc3MgYHsgaW5zdGFsbFBsdWdpbjogZmFsc2UgfWAgZm9yIGEgbm9uLXBsdWdpbiBjb25zdW1lclxuICogdGhhdCBvbmx5IG5lZWRzIGEgcmVnaXN0ZXJlZCwgZW1wdHkgdmF1bHQgKHNlZSB7QGxpbmsgQ3JlYXRlU2V0dXBPcHRpb25zLmluc3RhbGxQbHVnaW59KS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFNldHVwIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgYHNldHVwYCBhbmQgYHRlYXJkb3duYCBmdW5jdGlvbnMgdG8gcmUtZXhwb3J0IGZyb20gYSBgZ2xvYmFsU2V0dXBgIG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNldHVwKG9wdGlvbnM/OiBDcmVhdGVTZXR1cE9wdGlvbnMpOiBKZXN0R2xvYmFsU2V0dXAge1xuICBsZXQgc2V0dXBSZXN1bHQ6IENvcmVTZXR1cFJlc3VsdCB8IHVuZGVmaW5lZDtcblxuICByZXR1cm4geyBzZXR1cCwgdGVhcmRvd24gfTtcblxuICBhc3luYyBmdW5jdGlvbiBzZXR1cCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0cmFuc3BvcnRPcHRpb25zID0gZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy50cmFuc3BvcnRPcHRpb25zO1xuXG4gICAgc2V0dXBSZXN1bHQgPSBhd2FpdCBjb3JlU2V0dXAoe1xuICAgICAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luczogb3B0aW9ucz8uZW5hYmxlQ29tbXVuaXR5UGx1Z2lucyxcbiAgICAgIGluc3RhbGxQbHVnaW46IG9wdGlvbnM/Lmluc3RhbGxQbHVnaW4sXG4gICAgICBwb3B1bGF0ZTogb3B0aW9ucz8ucG9wdWxhdGU/LigpLFxuICAgICAgdHJhbnNwb3J0T3B0aW9uc1xuICAgIH0pO1xuXG4gICAgZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nID0ge1xuICAgICAgLi4uZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nLFxuICAgICAgdGVtcFZhdWx0UGF0aDogc2V0dXBSZXN1bHQudGVtcFZhdWx0LnBhdGgsXG4gICAgICB0cmFuc3BvcnRPcHRpb25zOiBzZXR1cFJlc3VsdC50cmFuc3BvcnRPcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHRlYXJkb3duKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGNvcmVUZWFyZG93bihzZXR1cFJlc3VsdCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB0ZW1wb3JhcnkgdmF1bHQgcHJvdmlkZWQgYnkgdGhlIGdsb2JhbCBzZXR1cC5cbiAqXG4gKiBSZWFkcyB0aGUgdmF1bHQgcGF0aCBmcm9tIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmcudGVtcFZhdWx0UGF0aGAsXG4gKiB3aGljaCBpcyBzZXQgYnkgdGhlIEplc3QgZ2xvYmFsIHNldHVwLlxuICpcbiAqIEByZXR1cm5zIFRoZSB0ZW1wb3JhcnkgdmF1bHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZW1wVmF1bHQoKTogVGVtcFZhdWx0IHtcbiAgY29uc3QgdGVtcFZhdWx0UGF0aCA9IGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udGVtcFZhdWx0UGF0aDtcbiAgaWYgKCF0ZW1wVmF1bHRQYXRoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2dsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZy50ZW1wVmF1bHRQYXRoIGlzIG5vdCBzZXQuIERpZCB5b3UgY29uZmlndXJlIG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcvamVzdC1nbG9iYWwtc2V0dXAgYXMgYSBKZXN0IGdsb2JhbFNldHVwPydcbiAgICApO1xuICB9XG4gIHJldHVybiBuZXcgVGVtcFZhdWx0KHRlbXBWYXVsdFBhdGgpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHRyYW5zcG9ydCBvcHRpb25zIHByb3ZpZGVkIGJ5IHRoZSBnbG9iYWwgc2V0dXAuXG4gKlxuICogQHJldHVybnMgVGhlIHRyYW5zcG9ydCBvcHRpb25zLCBvciBgdW5kZWZpbmVkYCBpZiBub3QgY29uZmlndXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zcG9ydE9wdGlvbnMoKTogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udHJhbnNwb3J0T3B0aW9ucztcbn1cblxuY29uc3QgZGVmYXVsdEdsb2JhbFNldHVwID0gY3JlYXRlU2V0dXAoKTtcblxuLyoqXG4gKiBKZXN0IGdsb2JhbCBzZXR1cCBmdW5jdGlvbiAobm8gcHJlLXBvcHVsYXRpb24pLlxuICpcbiAqIENvcGllcyB0aGUgYnVpbHQgcGx1Z2luIGludG8gYSB0ZW1wb3JhcnkgdmF1bHQsIGVuYWJsZXMgaXQgdmlhIGEgcmVuZGVyZXIgZXZhbFxuICogb3ZlciB0aGUgdHJhbnNwb3J0LCBhbmQgcG9wdWxhdGVzIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgIGZvciB0ZXN0cy5cbiAqXG4gKiBUcmFuc3BvcnQgb3B0aW9ucyBhcmUgcmVhZCBmcm9tIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmcudHJhbnNwb3J0T3B0aW9uc2AuXG4gKiBTZXQgdGhpcyBpbiB5b3VyIEplc3QgY29uZmlnIHZpYSB0aGUgYGdsb2JhbHNgIG9wdGlvbi5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHNldHVwIGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldHVwID0gZGVmYXVsdEdsb2JhbFNldHVwLnNldHVwO1xuXG4vKipcbiAqIEplc3QgZ2xvYmFsIHRlYXJkb3duIGZ1bmN0aW9uLlxuICpcbiAqIFJlbW92ZXMgdGhlIHRlbXBvcmFyeSB2YXVsdCBjcmVhdGVkIGR1cmluZyBzZXR1cC5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRlYXJkb3duIGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHRlYXJkb3duID0gZGVmYXVsdEdsb2JhbFNldHVwLnRlYXJkb3duO1xuXG4vLyBKZXN0J3MgYGdsb2JhbFNldHVwYCBjb25maWcgY2FuIHJlZmVyZW5jZSB0aGlzIG1vZHVsZSBkaXJlY3RseSBiZWNhdXNlIGl0cyBkZWZhdWx0IGV4cG9ydCBpcyB0aGUgc2V0dXAgZnVuY3Rpb24uXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tZGVmYXVsdC1leHBvcnQgLS0gSmVzdCdzIGdsb2JhbFNldHVwIGxvYWRlciByZXF1aXJlcyBhIGRlZmF1bHQtZXhwb3J0IGZ1bmN0aW9uLlxuZXhwb3J0IGRlZmF1bHQgc2V0dXA7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVBLDhCQUdPO0FBQ1AsK0JBR087QUFDUCx3QkFBMEI7QUFBQSxJQTBCMUIscURBQTRCLE1BQU0sV0FBVyw4QkFBOEIsZ0JBQWdCO0FBQUEsSUFDM0YsOENBQXFCLE1BQU0sV0FBVyw4QkFBOEIsYUFBYTtBQWtEMUUsU0FBUyxZQUFZLFNBQStDO0FBQ3pFLE1BQUk7QUFFSixTQUFPLEVBQUUsT0FBQUEsUUFBTyxVQUFBQyxVQUFTO0FBRXpCLGlCQUFlRCxTQUF1QjtBQUNwQyxVQUFNLG1CQUFtQixXQUFXLDhCQUE4QjtBQUVsRSxrQkFBYyxVQUFNLG9DQUFVO0FBQUEsTUFDNUIsd0JBQXdCLFNBQVM7QUFBQSxNQUNqQyxlQUFlLFNBQVM7QUFBQSxNQUN4QixVQUFVLFNBQVMsV0FBVztBQUFBLE1BQzlCO0FBQUEsSUFDRixDQUFDO0FBRUQsZUFBVywrQkFBK0I7QUFBQSxNQUN4QyxHQUFHLFdBQVc7QUFBQSxNQUNkLGVBQWUsWUFBWSxVQUFVO0FBQUEsTUFDckMsa0JBQWtCLFlBQVk7QUFBQSxJQUNoQztBQUFBLEVBQ0Y7QUFFQSxpQkFBZUMsWUFBMEI7QUFDdkMsY0FBTSx1Q0FBYSxXQUFXO0FBQUEsRUFDaEM7QUFDRjtBQVVPLFNBQVMsZUFBMEI7QUFDeEMsUUFBTSxnQkFBZ0IsV0FBVyw4QkFBOEI7QUFDL0QsTUFBSSxDQUFDLGVBQWU7QUFDbEIsVUFBTSxJQUFJO0FBQUEsTUFDUjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsU0FBTyxJQUFJLDRCQUFVLGFBQWE7QUFDcEM7QUFPTyxTQUFTLHNCQUE0RDtBQUMxRSxTQUFPLFdBQVcsOEJBQThCO0FBQ2xEO0FBRUEsTUFBTSxxQkFBcUIsWUFBWTtBQWFoQyxNQUFNLFFBQVEsbUJBQW1CO0FBU2pDLE1BQU0sV0FBVyxtQkFBbUI7QUFJM0MsSUFBTyx1QkFBUTsiLAogICJuYW1lcyI6IFsic2V0dXAiLCAidGVhcmRvd24iXQp9Cg==
|
|
@@ -32,6 +32,22 @@ declare global {
|
|
|
32
32
|
* Options for {@link createSetup}.
|
|
33
33
|
*/
|
|
34
34
|
export interface CreateSetupOptions {
|
|
35
|
+
/**
|
|
36
|
+
* Community-plugin ids to enable in the vault in addition to the plugin-under-test,
|
|
37
|
+
* after it is enabled (see {@link CoreSetupParams.enableCommunityPlugins}). Seed each
|
|
38
|
+
* plugin's built files via {@link CreateSetupOptions.populate} (e.g. with `buildDemoVaultPopulate`)
|
|
39
|
+
* so the enable finds them on disk.
|
|
40
|
+
*/
|
|
41
|
+
readonly enableCommunityPlugins?: readonly string[];
|
|
42
|
+
/**
|
|
43
|
+
* Whether to install and enable the built plugin in the temp vault. Defaults
|
|
44
|
+
* to `true`. Set to `false` for a **non-plugin** consumer that only needs a
|
|
45
|
+
* registered, empty vault to `evalInObsidian` against — the owned instance is
|
|
46
|
+
* still launched and its endpoint published to workers, so re-exporting
|
|
47
|
+
* `createSetup({ installPlugin: false })` reuses the same attach wiring with no
|
|
48
|
+
* plugin copy/enable. See {@link CoreSetupParams.installPlugin}.
|
|
49
|
+
*/
|
|
50
|
+
readonly installPlugin?: boolean;
|
|
35
51
|
/**
|
|
36
52
|
* Returns files/folders to write into the vault before Obsidian opens it (see
|
|
37
53
|
* {@link CoreSetupParams.populate}). A thunk so large fixtures are built lazily,
|
|
@@ -50,7 +66,8 @@ export interface JestGlobalSetup {
|
|
|
50
66
|
* Creates a Jest global setup/teardown pair, optionally pre-populating the vault
|
|
51
67
|
* before Obsidian opens it — use this for a dedicated large-vault/performance
|
|
52
68
|
* setup. The plain {@link setup} / {@link teardown} exports are the no-populate
|
|
53
|
-
* case (`createSetup()`).
|
|
69
|
+
* case (`createSetup()`). Pass `{ installPlugin: false }` for a non-plugin consumer
|
|
70
|
+
* that only needs a registered, empty vault (see {@link CreateSetupOptions.installPlugin}).
|
|
54
71
|
*
|
|
55
72
|
* @param options - Setup options.
|
|
56
73
|
* @returns The `setup` and `teardown` functions to re-export from a `globalSetup` module.
|
|
@@ -74,8 +91,8 @@ export declare function getTransportOptions(): ObsidianTransportOptions | undefi
|
|
|
74
91
|
/**
|
|
75
92
|
* Jest global setup function (no pre-population).
|
|
76
93
|
*
|
|
77
|
-
* Copies the built plugin into a temporary vault, enables it via
|
|
78
|
-
* and populates `globalThis.__obsidianIntegrationTesting` for tests.
|
|
94
|
+
* Copies the built plugin into a temporary vault, enables it via a renderer eval
|
|
95
|
+
* over the transport, and populates `globalThis.__obsidianIntegrationTesting` for tests.
|
|
79
96
|
*
|
|
80
97
|
* Transport options are read from `globalThis.__obsidianIntegrationTesting.transportOptions`.
|
|
81
98
|
* Set this in your Jest config via the `globals` option.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var global_teardown_no_plugin_exports = {};
|
|
20
|
+
__export(global_teardown_no_plugin_exports, {
|
|
21
|
+
default: () => global_teardown_no_plugin_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(global_teardown_no_plugin_exports);
|
|
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=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* Jest **plugin-less** global teardown entry point.
|
|
5
|
+
*
|
|
6
|
+
* Jest requires `globalTeardown` to be a separate module whose default export is
|
|
7
|
+
* the teardown function. It re-exports the teardown from the plugin-less setup
|
|
8
|
+
* module so both share the same setup state within the Jest parent process.
|
|
9
|
+
*/
|
|
10
|
+
import { teardown } from './global-setup-no-plugin.cjs';
|
|
11
|
+
export default teardown;
|
package/dist/lib/cjs/library.cjs
CHANGED
|
@@ -21,7 +21,7 @@ __export(library_exports, {
|
|
|
21
21
|
LIBRARY_VERSION: () => LIBRARY_VERSION
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(library_exports);
|
|
24
|
-
const LIBRARY_VERSION = false ? "dev" : "
|
|
24
|
+
const LIBRARY_VERSION = false ? "dev" : "9.0.0";
|
|
25
25
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
26
|
0 && (module.exports = {
|
|
27
27
|
LIBRARY_VERSION
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var plugin_enable_retry_exports = {};
|
|
20
|
+
__export(plugin_enable_retry_exports, {
|
|
21
|
+
DEFAULT_PLUGIN_ENABLE_RETRY_COUNT: () => DEFAULT_PLUGIN_ENABLE_RETRY_COUNT,
|
|
22
|
+
DEFAULT_PLUGIN_ENABLE_RETRY_DELAY_IN_MILLISECONDS: () => DEFAULT_PLUGIN_ENABLE_RETRY_DELAY_IN_MILLISECONDS,
|
|
23
|
+
computeBackoffDelayInMilliseconds: () => computeBackoffDelayInMilliseconds,
|
|
24
|
+
resolvePluginEnableRetryCount: () => resolvePluginEnableRetryCount,
|
|
25
|
+
resolvePluginEnableRetryDelayInMilliseconds: () => resolvePluginEnableRetryDelayInMilliseconds,
|
|
26
|
+
shouldRetryPluginEnable: () => shouldRetryPluginEnable
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(plugin_enable_retry_exports);
|
|
29
|
+
const DEFAULT_PLUGIN_ENABLE_RETRY_COUNT = 3;
|
|
30
|
+
const DEFAULT_PLUGIN_ENABLE_RETRY_DELAY_IN_MILLISECONDS = 2e3;
|
|
31
|
+
const EXPONENTIAL_BACKOFF_BASE = 2;
|
|
32
|
+
function computeBackoffDelayInMilliseconds(baseDelayInMilliseconds, attemptIndex) {
|
|
33
|
+
return baseDelayInMilliseconds * EXPONENTIAL_BACKOFF_BASE ** attemptIndex;
|
|
34
|
+
}
|
|
35
|
+
function resolvePluginEnableRetryCount(options) {
|
|
36
|
+
return options?.type === "obsidian-android-appium" ? options.pluginEnableRetryCount ?? DEFAULT_PLUGIN_ENABLE_RETRY_COUNT : DEFAULT_PLUGIN_ENABLE_RETRY_COUNT;
|
|
37
|
+
}
|
|
38
|
+
function resolvePluginEnableRetryDelayInMilliseconds(options) {
|
|
39
|
+
return options?.type === "obsidian-android-appium" ? options.pluginEnableRetryDelayInMilliseconds ?? DEFAULT_PLUGIN_ENABLE_RETRY_DELAY_IN_MILLISECONDS : DEFAULT_PLUGIN_ENABLE_RETRY_DELAY_IN_MILLISECONDS;
|
|
40
|
+
}
|
|
41
|
+
function shouldRetryPluginEnable(result) {
|
|
42
|
+
return !result.isLoaded && !result.errorMessage && !result.rendererConsoleErrors;
|
|
43
|
+
}
|
|
44
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
45
|
+
0 && (module.exports = {
|
|
46
|
+
DEFAULT_PLUGIN_ENABLE_RETRY_COUNT,
|
|
47
|
+
DEFAULT_PLUGIN_ENABLE_RETRY_DELAY_IN_MILLISECONDS,
|
|
48
|
+
computeBackoffDelayInMilliseconds,
|
|
49
|
+
resolvePluginEnableRetryCount,
|
|
50
|
+
resolvePluginEnableRetryDelayInMilliseconds,
|
|
51
|
+
shouldRetryPluginEnable
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BsdWdpbi1lbmFibGUtcmV0cnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIGhlbHBlcnMgZm9yIHJldHJ5aW5nIHRoZSBwbHVnaW4tZW5hYmxlIHN0ZXAsIHBsdXMgcmVzb2x2aW5nIHRoZSByZXRyeVxuICoga25vYnMgZnJvbSB0aGUgdHJhbnNwb3J0IG9wdGlvbnMuIEtlcHQgc2VwYXJhdGUgZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seVxuICogYGdsb2JhbC1zZXR1cC1jb3JlYCBvcmNoZXN0cmF0aW9uIHNvIHRoZSBkZWNpc2lvbiBsb2dpYyBhbmQgZGVmYXVsdFxuICogcmVzb2x1dGlvbiBzdGF5IHVuaXQtdGVzdGFibGUgKHRoZSBvcmNoZXN0cmF0aW9uIGl0c2VsZiBuZWVkcyBhIHJlYWxcbiAqIHRyYW5zcG9ydCBhbmQgaXMgZXhjbHVkZWQgZnJvbSB1bml0IHRlc3RzKS5cbiAqXG4gKiBXaGVuIHRoZSBoYXJuZXNzIGF1dG8tc3RhcnRzIGFuIEFuZHJvaWQgZW11bGF0b3IgKGNvbGQgYm9vdCkgYW5kIGltbWVkaWF0ZWx5XG4gKiBzeW5jcyB0aGUgdmF1bHQgYW5kIGVuYWJsZXMgdGhlIHBsdWdpbiwgdGhlIHBsdWdpbiBjYW4gbGFuZCBpbiB0aGUgZW5hYmxlZCBzZXRcbiAqIGJ1dCBmYWlsIHRvIGxvYWQgXHUyMDE0IHRoZSBmcmVzaGx5IGJvb3RlZCBndWVzdCdzIHBsdWdpbiBzdWJzeXN0ZW0gaXNuJ3Qgc2V0dGxlZFxuICogYW5kIHRoZSBzaW5nbGUtc2hvdCBlbmFibGUgcmFjZXMgaXQuIERldmljZS1pZGxlIGFuZCBgbGF5b3V0UmVhZHlgIGFyZSBhbHJlYWR5XG4gKiBnYXRlZCB1cHN0cmVhbSwgc28gdGhlIHJlc2lkdWFsIGdhcCBpcyBuYXJyb3c7IHJldHJ5aW5nIHRoZSBlbmFibGUgYSBmZXcgdGltZXNcbiAqIHdpdGggYmFja29mZiByZWNvdmVycyB0aGUgdHJhbnNpZW50IHJhY2Ugd2hpbGUgc3RpbGwgZmFpbGluZyBmYXN0IG9uIGEgZ2VudWluZVxuICogcGx1Z2luIGJ1ZyAoYSBjYXB0dXJlZCBsb2FkIGVycm9yLCB3aGljaCByZXRyeWluZyBjYW5ub3QgZml4KS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEVuYWJsZVBsdWdpblJlc3VsdCB9IGZyb20gJy4vZW5hYmxlLXBsdWdpbi5janMnO1xuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1vcHRpb25zLmNqcyc7XG5cbi8qKlxuICogRGVmYXVsdCBmb3Ige0BsaW5rIE9ic2lkaWFuQW5kcm9pZEFwcGl1bVRyYW5zcG9ydE9wdGlvbnMucGx1Z2luRW5hYmxlUmV0cnlDb3VudH0uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BMVUdJTl9FTkFCTEVfUkVUUllfQ09VTlQgPSAzO1xuXG4vKipcbiAqIERlZmF1bHQgZm9yIHtAbGluayBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zLnBsdWdpbkVuYWJsZVJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kc30uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BMVUdJTl9FTkFCTEVfUkVUUllfREVMQVlfSU5fTUlMTElTRUNPTkRTID0gMjAwMDtcblxuLyoqXG4gKiBUaGUgcGVyLXJldHJ5IG11bHRpcGxpZXIgZm9yIHRoZSBleHBvbmVudGlhbCBiYWNrb2ZmOiBlYWNoIHJldHJ5IHdhaXRzIHR3aWNlIGFzXG4gKiBsb25nIGFzIHRoZSBwcmV2aW91cyBvbmUuXG4gKi9cbmNvbnN0IEVYUE9ORU5USUFMX0JBQ0tPRkZfQkFTRSA9IDI7XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGV4cG9uZW50aWFsIGJhY2tvZmYgZGVsYXkgZm9yIGEgZ2l2ZW4gcmV0cnksIGZyb20gYSBiYXNlIGRlbGF5LlxuICpcbiAqIGBhdHRlbXB0SW5kZXhgIGlzIDAtYmFzZWQ6IHRoZSBmaXJzdCByZXRyeSB3YWl0cyB0aGUgYmFzZSBkZWxheSwgdGhlIHNlY29uZFxuICogdHdpY2UgdGhhdCwgdGhlIHRoaXJkIGZvdXIgdGltZXMsIGFuZCBzbyBvbi5cbiAqXG4gKiBAcGFyYW0gYmFzZURlbGF5SW5NaWxsaXNlY29uZHMgLSBUaGUgYmFzZSBkZWxheS5cbiAqIEBwYXJhbSBhdHRlbXB0SW5kZXggLSBUaGUgMC1iYXNlZCByZXRyeSBpbmRleC5cbiAqIEByZXR1cm5zIFRoZSBkZWxheSBpbiBtaWxsaXNlY29uZHMgZm9yIHRoaXMgcmV0cnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlQmFja29mZkRlbGF5SW5NaWxsaXNlY29uZHMoYmFzZURlbGF5SW5NaWxsaXNlY29uZHM6IG51bWJlciwgYXR0ZW1wdEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gYmFzZURlbGF5SW5NaWxsaXNlY29uZHMgKiAoRVhQT05FTlRJQUxfQkFDS09GRl9CQVNFICoqIGF0dGVtcHRJbmRleCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIG51bWJlciBvZiBleHRyYSBwbHVnaW4tZW5hYmxlIGF0dGVtcHRzLCBhcHBseWluZyB0aGUgZGVmYXVsdCB3aGVuXG4gKiB0aGUgb3B0aW9uIGlzIG9taXR0ZWQuIE9ubHkgdGhlIEFuZHJvaWQgdHJhbnNwb3J0IGNhcnJpZXMgdGhlIGtub2I7IGV2ZXJ5XG4gKiBvdGhlciB0cmFuc3BvcnQgKGFuZCBgdW5kZWZpbmVkYCkgZmFsbHMgYmFjayB0byB0aGUgZGVmYXVsdCBcdTIwMTQgaGFybWxlc3MgdGhlcmUsXG4gKiBzaW5jZSBhIHBsdWdpbiB0aGF0IGxvYWRzIG9uIHRoZSBmaXJzdCB0cnkgbmV2ZXIgZW50ZXJzIHRoZSByZXRyeSBwYXRoLlxuICpcbiAqIEEgdmFsdWUgb2YgYDBgIGRpc2FibGVzIHJldHJ5IChhIHNpbmdsZSBhdHRlbXB0KS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSByZXNvbHZlZCB0cmFuc3BvcnQgb3B0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSByZXRyeSBjb3VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQbHVnaW5FbmFibGVSZXRyeUNvdW50KG9wdGlvbnM6IG51bGwgfCBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMpOiBudW1iZXIge1xuICByZXR1cm4gb3B0aW9ucz8udHlwZSA9PT0gJ29ic2lkaWFuLWFuZHJvaWQtYXBwaXVtJ1xuICAgID8gKG9wdGlvbnMucGx1Z2luRW5hYmxlUmV0cnlDb3VudCA/PyBERUZBVUxUX1BMVUdJTl9FTkFCTEVfUkVUUllfQ09VTlQpXG4gICAgOiBERUZBVUxUX1BMVUdJTl9FTkFCTEVfUkVUUllfQ09VTlQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGJhc2UgYmFja29mZiBkZWxheSBiZXR3ZWVuIHBsdWdpbi1lbmFibGUgYXR0ZW1wdHMsIGFwcGx5aW5nIHRoZVxuICogZGVmYXVsdCB3aGVuIHRoZSBvcHRpb24gaXMgb21pdHRlZC4gU2VlIHtAbGluayByZXNvbHZlUGx1Z2luRW5hYmxlUmV0cnlDb3VudH1cbiAqIGZvciB0aGUgdHJhbnNwb3J0IGhhbmRsaW5nLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHJlc29sdmVkIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgVGhlIGJhc2UgZGVsYXkgaW4gbWlsbGlzZWNvbmRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBsdWdpbkVuYWJsZVJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kcyhvcHRpb25zOiBudWxsIHwgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zKTogbnVtYmVyIHtcbiAgcmV0dXJuIG9wdGlvbnM/LnR5cGUgPT09ICdvYnNpZGlhbi1hbmRyb2lkLWFwcGl1bSdcbiAgICA/IChvcHRpb25zLnBsdWdpbkVuYWJsZVJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1BMVUdJTl9FTkFCTEVfUkVUUllfREVMQVlfSU5fTUlMTElTRUNPTkRTKVxuICAgIDogREVGQVVMVF9QTFVHSU5fRU5BQkxFX1JFVFJZX0RFTEFZX0lOX01JTExJU0VDT05EUztcbn1cblxuLyoqXG4gKiBEZWNpZGVzIHdoZXRoZXIgYSBmYWlsZWQgcGx1Z2luLWVuYWJsZSBpcyBhIHJldHJ5YWJsZSBjb2xkLWJvb3QgcmFjZS5cbiAqXG4gKiBSZXRyeSBvbmx5IHRoZSB0cmFuc2llbnQgc3dhbGxvdyBzaWduYXR1cmUgXHUyMDE0IHRoZSBwbHVnaW4gaXMgaW4gdGhlIGVuYWJsZWQgc2V0XG4gKiBidXQgbm90IGxvYWRlZCBhbmQgbm8gY2F1c2Ugd2FzIGNhcHR1cmVkIChuZWl0aGVyIHRoZSBgbG9hZFBsdWdpbmBcbiAqIG1vbmtleS1wYXRjaCBub3IgdGhlIHJlbmRlcmVyIGNvbnNvbGUgc3VyZmFjZWQgYW4gZXJyb3IpLiBBIGNhcHR1cmVkIGVycm9yIGlzXG4gKiBhIGRldGVybWluaXN0aWMgYnVnIHRoYXQgcmV0cnlpbmcgY2Fubm90IGZpeCwgc28gaXQgaXMgbm90IHJldHJ5YWJsZS5cbiAqXG4gKiBAcGFyYW0gcmVzdWx0IC0gVGhlIGVuYWJsZSByZXN1bHQgZnJvbSBhIHNpbmdsZSBhdHRlbXB0LlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGVuYWJsZSBzaG91bGQgYmUgcmV0cmllZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFJldHJ5UGx1Z2luRW5hYmxlKHJlc3VsdDogRW5hYmxlUGx1Z2luUmVzdWx0KTogYm9vbGVhbiB7XG4gIHJldHVybiAhcmVzdWx0LmlzTG9hZGVkICYmICFyZXN1bHQuZXJyb3JNZXNzYWdlICYmICFyZXN1bHQucmVuZGVyZXJDb25zb2xlRXJyb3JzO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3Qk8sTUFBTSxvQ0FBb0M7QUFLMUMsTUFBTSxvREFBb0Q7QUFNakUsTUFBTSwyQkFBMkI7QUFZMUIsU0FBUyxrQ0FBa0MseUJBQWlDLGNBQThCO0FBQy9HLFNBQU8sMEJBQTJCLDRCQUE0QjtBQUNoRTtBQWFPLFNBQVMsOEJBQThCLFNBQWtEO0FBQzlGLFNBQU8sU0FBUyxTQUFTLDRCQUNwQixRQUFRLDBCQUEwQixvQ0FDbkM7QUFDTjtBQVVPLFNBQVMsNENBQTRDLFNBQWtEO0FBQzVHLFNBQU8sU0FBUyxTQUFTLDRCQUNwQixRQUFRLHdDQUF3QyxvREFDakQ7QUFDTjtBQWFPLFNBQVMsd0JBQXdCLFFBQXFDO0FBQzNFLFNBQU8sQ0FBQyxPQUFPLFlBQVksQ0FBQyxPQUFPLGdCQUFnQixDQUFDLE9BQU87QUFDN0Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* Pure helpers for retrying the plugin-enable step, plus resolving the retry
|
|
5
|
+
* knobs from the transport options. Kept separate from the integration-only
|
|
6
|
+
* `global-setup-core` orchestration so the decision logic and default
|
|
7
|
+
* resolution stay unit-testable (the orchestration itself needs a real
|
|
8
|
+
* transport and is excluded from unit tests).
|
|
9
|
+
*
|
|
10
|
+
* When the harness auto-starts an Android emulator (cold boot) and immediately
|
|
11
|
+
* syncs the vault and enables the plugin, the plugin can land in the enabled set
|
|
12
|
+
* but fail to load — the freshly booted guest's plugin subsystem isn't settled
|
|
13
|
+
* and the single-shot enable races it. Device-idle and `layoutReady` are already
|
|
14
|
+
* gated upstream, so the residual gap is narrow; retrying the enable a few times
|
|
15
|
+
* with backoff recovers the transient race while still failing fast on a genuine
|
|
16
|
+
* plugin bug (a captured load error, which retrying cannot fix).
|
|
17
|
+
*/
|
|
18
|
+
import type { EnablePluginResult } from './enable-plugin.cjs';
|
|
19
|
+
import type { ObsidianTransportOptions } from './transport-options.cjs';
|
|
20
|
+
/**
|
|
21
|
+
* Default for {@link ObsidianAndroidAppiumTransportOptions.pluginEnableRetryCount}.
|
|
22
|
+
*/
|
|
23
|
+
export declare const DEFAULT_PLUGIN_ENABLE_RETRY_COUNT = 3;
|
|
24
|
+
/**
|
|
25
|
+
* Default for {@link ObsidianAndroidAppiumTransportOptions.pluginEnableRetryDelayInMilliseconds}.
|
|
26
|
+
*/
|
|
27
|
+
export declare const DEFAULT_PLUGIN_ENABLE_RETRY_DELAY_IN_MILLISECONDS = 2000;
|
|
28
|
+
/**
|
|
29
|
+
* Computes the exponential backoff delay for a given retry, from a base delay.
|
|
30
|
+
*
|
|
31
|
+
* `attemptIndex` is 0-based: the first retry waits the base delay, the second
|
|
32
|
+
* twice that, the third four times, and so on.
|
|
33
|
+
*
|
|
34
|
+
* @param baseDelayInMilliseconds - The base delay.
|
|
35
|
+
* @param attemptIndex - The 0-based retry index.
|
|
36
|
+
* @returns The delay in milliseconds for this retry.
|
|
37
|
+
*/
|
|
38
|
+
export declare function computeBackoffDelayInMilliseconds(baseDelayInMilliseconds: number, attemptIndex: number): number;
|
|
39
|
+
/**
|
|
40
|
+
* Resolves the number of extra plugin-enable attempts, applying the default when
|
|
41
|
+
* the option is omitted. Only the Android transport carries the knob; every
|
|
42
|
+
* other transport (and `undefined`) falls back to the default — harmless there,
|
|
43
|
+
* since a plugin that loads on the first try never enters the retry path.
|
|
44
|
+
*
|
|
45
|
+
* A value of `0` disables retry (a single attempt).
|
|
46
|
+
*
|
|
47
|
+
* @param options - The resolved transport options.
|
|
48
|
+
* @returns The retry count.
|
|
49
|
+
*/
|
|
50
|
+
export declare function resolvePluginEnableRetryCount(options: null | ObsidianTransportOptions): number;
|
|
51
|
+
/**
|
|
52
|
+
* Resolves the base backoff delay between plugin-enable attempts, applying the
|
|
53
|
+
* default when the option is omitted. See {@link resolvePluginEnableRetryCount}
|
|
54
|
+
* for the transport handling.
|
|
55
|
+
*
|
|
56
|
+
* @param options - The resolved transport options.
|
|
57
|
+
* @returns The base delay in milliseconds.
|
|
58
|
+
*/
|
|
59
|
+
export declare function resolvePluginEnableRetryDelayInMilliseconds(options: null | ObsidianTransportOptions): number;
|
|
60
|
+
/**
|
|
61
|
+
* Decides whether a failed plugin-enable is a retryable cold-boot race.
|
|
62
|
+
*
|
|
63
|
+
* Retry only the transient swallow signature — the plugin is in the enabled set
|
|
64
|
+
* but not loaded and no cause was captured (neither the `loadPlugin`
|
|
65
|
+
* monkey-patch nor the renderer console surfaced an error). A captured error is
|
|
66
|
+
* a deterministic bug that retrying cannot fix, so it is not retryable.
|
|
67
|
+
*
|
|
68
|
+
* @param result - The enable result from a single attempt.
|
|
69
|
+
* @returns `true` when the enable should be retried.
|
|
70
|
+
*/
|
|
71
|
+
export declare function shouldRetryPluginEnable(result: EnablePluginResult): boolean;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var poll_in_obsidian_exports = {};
|
|
20
|
+
__export(poll_in_obsidian_exports, {
|
|
21
|
+
pollInObsidian: () => pollInObsidian
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(poll_in_obsidian_exports);
|
|
24
|
+
var import_promises = require("node:timers/promises");
|
|
25
|
+
var import_context_id = require("./context-id.cjs");
|
|
26
|
+
var import_eval_in_obsidian = require("./eval-in-obsidian.cjs");
|
|
27
|
+
var import_poll_until = require("./poll-until.cjs");
|
|
28
|
+
const DEFAULT_POLL_INTERVAL_IN_MILLISECONDS = 500;
|
|
29
|
+
const DEFAULT_POLL_TIMEOUT_IN_MILLISECONDS = 12e4;
|
|
30
|
+
async function pollInObsidian(params) {
|
|
31
|
+
const {
|
|
32
|
+
args,
|
|
33
|
+
contextId,
|
|
34
|
+
intervalInMilliseconds = DEFAULT_POLL_INTERVAL_IN_MILLISECONDS,
|
|
35
|
+
poll,
|
|
36
|
+
start,
|
|
37
|
+
timeoutInMilliseconds = DEFAULT_POLL_TIMEOUT_IN_MILLISECONDS,
|
|
38
|
+
timeoutMessage,
|
|
39
|
+
transport,
|
|
40
|
+
until,
|
|
41
|
+
vaultPath
|
|
42
|
+
} = params;
|
|
43
|
+
async function runEval(fn) {
|
|
44
|
+
const evalParams = {
|
|
45
|
+
fn,
|
|
46
|
+
...args !== void 0 && { args },
|
|
47
|
+
...contextId !== void 0 && { contextId },
|
|
48
|
+
...transport !== void 0 && { transport },
|
|
49
|
+
...vaultPath !== void 0 && { vaultPath }
|
|
50
|
+
};
|
|
51
|
+
return (0, import_eval_in_obsidian.evalInObsidian)(evalParams);
|
|
52
|
+
}
|
|
53
|
+
if (start) {
|
|
54
|
+
await runEval(start);
|
|
55
|
+
}
|
|
56
|
+
return (0, import_poll_until.pollUntil)({
|
|
57
|
+
attempt: async () => runEval(poll),
|
|
58
|
+
intervalInMilliseconds,
|
|
59
|
+
nowInMilliseconds: () => Date.now(),
|
|
60
|
+
sleep: async (milliseconds) => {
|
|
61
|
+
await (0, import_promises.setTimeout)(milliseconds);
|
|
62
|
+
},
|
|
63
|
+
timeoutInMilliseconds,
|
|
64
|
+
until,
|
|
65
|
+
...timeoutMessage !== void 0 && { timeoutMessage }
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
69
|
+
0 && (module.exports = {
|
|
70
|
+
pollInObsidian
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgXCJraWNrIG9mZiwgdGhlbiBwb2xsXCIgaGVscGVyIG92ZXIge0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqXG4gKiBBIHNpbmdsZSBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUgY2Fubm90IHJ1biBsb25nZXIgdGhhbiBDRFAncyB+MzBzXG4gKiBgUnVudGltZS5ldmFsdWF0ZWAgY2FwLCBzbyBhIGxvbmctcnVubmluZyBpbi1PYnNpZGlhbiBvcGVyYXRpb24gKGUuZy4gYSB3aG9sZVxuICogcGx1Z2luL3ZhdWx0IGJvb3RzdHJhcCkgY2Fubm90IGJlIGF3YWl0ZWQgaW5zaWRlIG9uZSBjbG9zdXJlLiBUaGlzIGhlbHBlciBkb2VzXG4gKiBpdCBmcm9tIE5vZGUgaW5zdGVhZDogaXQgb3B0aW9uYWxseSBydW5zIGEgc2hvcnQgYHN0YXJ0YCBjbG9zdXJlIG9uY2UgdG8ga2lja1xuICogdGhlIHdvcmsgb2ZmLCB0aGVuIHJlcGVhdGVkbHkgcnVucyBhIHNob3J0IGBwb2xsYCBjbG9zdXJlIFx1MjAxNCBlYWNoIGEgc2VwYXJhdGUsXG4gKiB3ZWxsLXVuZGVyLTMwcyBldmFsIFx1MjAxNCB1bnRpbCB0aGUgTm9kZS1zaWRlIGB1bnRpbGAgcHJlZGljYXRlIGFjY2VwdHMgYSBwb2xsXG4gKiByZXN1bHQsIG9yIGEgTm9kZS1zaWRlIHRpbWVvdXQgZWxhcHNlcy4gSXQgcmVtb3ZlcyB0aGUgcGVyLXRlc3QgaGFuZC1yb2xsZWRcbiAqIGBldmFsSW5PYnNpZGlhbmAgKyBgc2xlZXBgIGxvb3AuXG4gKlxuICogVGhlIHRpbWluZyBsb29wIGxpdmVzIGluIHRoZSBwdXJlLCB1bml0LXRlc3RlZCB7QGxpbmsgcG9sbFVudGlsfTsgdGhpcyBtb2R1bGUgaXNcbiAqIHRoZSBpbnRlZ3JhdGlvbi1vbmx5IHdpcmluZyAoaXQgZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiksIGNvdmVyZWQgYnkgYW5cbiAqIGludGVncmF0aW9uIHRlc3QuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgY29kZSAoZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiB2aWEgZXZhbEluT2JzaWRpYW4pIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNsZWVwIH0gZnJvbSAnbm9kZTp0aW1lcnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHRBcmdzIH0gZnJvbSAnLi9jb250ZXh0LWlkLmNqcyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvbW1vbkFyZ3MsXG4gIEV2YWxJbk9ic2lkaWFuUGFyYW1zLFxuICBHZW5lcmljT2JqZWN0XG59IGZyb20gJy4vZXZhbC1pbi1vYnNpZGlhbi5janMnO1xuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LmNqcyc7XG5cbmltcG9ydCB7IENvbnRleHRJZCB9IGZyb20gJy4vY29udGV4dC1pZC5janMnO1xuaW1wb3J0IHsgZXZhbEluT2JzaWRpYW4gfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmltcG9ydCB7IHBvbGxVbnRpbCB9IGZyb20gJy4vcG9sbC11bnRpbC5janMnO1xuXG5jb25zdCBERUZBVUxUX1BPTExfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTID0gNTAwO1xuY29uc3QgREVGQVVMVF9QT0xMX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gMTIwXzAwMDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcG9sbEluT2JzaWRpYW59LiBNaXJyb3JzIHtAbGluayBFdmFsSW5PYnNpZGlhblBhcmFtc30gZm9yXG4gKiB0aGUgc2hhcmVkIGZvcndhcmRlZCBmaWVsZHMgKGBhcmdzYCAvIGBjb250ZXh0SWRgIC8gYHRyYW5zcG9ydGAgLyBgdmF1bHRQYXRoYCk7XG4gKiBgc3RhcnRgIC8gYHBvbGxgIGFyZSB0aGUgaW4tT2JzaWRpYW4gY2xvc3VyZXMgYW5kIGB1bnRpbGAgaXMgdGhlIE5vZGUtc2lkZVxuICogYWNjZXB0YW5jZSBwcmVkaWNhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9sbEluT2JzaWRpYW5QYXJhbXM8QXJncyBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIHBhc3NlZCB0byBib3RoIGBzdGFydGAgYW5kIGBwb2xsYCAoc2VyaWFsaXplZCBsaWtlXG4gICAqIHtAbGluayBFdmFsSW5PYnNpZGlhblBhcmFtcy5hcmdzfSkuXG4gICAqL1xuICByZWFkb25seSBhcmdzPzogQXJncztcblxuICAvKipcbiAgICogQSB7QGxpbmsgQ29udGV4dElkfSBzaGFyZWQgYnkgYHN0YXJ0YCBhbmQgYHBvbGxgLCBzbyBgc3RhcnRgIGNhbiBzdGFzaFxuICAgKiBub24tc2VyaWFsaXphYmxlIHN0YXRlIHRoYXQgYHBvbGxgIGxhdGVyIHJlYWRzLiBXaGVuIG9taXR0ZWQsIGVhY2ggY2xvc3VyZVxuICAgKiBnZXRzIGEgZnJlc2ggZW1wdHkgYGNvbnRleHRgLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dElkPzogVENvbnRleHRJZDtcblxuICAvKipcbiAgICogRGVsYXkgYmV0d2VlbiBgcG9sbGAgYXR0ZW1wdHMsIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwMGBcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsSW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjbG9zdXJlIHBvbGxlZCByZXBlYXRlZGx5IGluc2lkZSBPYnNpZGlhbi4gS2VlcCBpdCBzaG9ydCAod2VsbCB1bmRlciB0aGVcbiAgICogfjMwcyBDRFAgY2FwKTogaXQgc2hvdWxkIHJlYWQgYW5kIHJldHVybiBhIEpTT04tc2VyaWFsaXphYmxlIHN0YXR1cywgbm90XG4gICAqIGF3YWl0IHRoZSBsb25nIG9wZXJhdGlvbiBpdHNlbGYuXG4gICAqL1xuICBwb2xsKHRoaXM6IHZvaWQsIGFyZ3M6IEFyZ3MgJiBDb21tb25BcmdzICYgQ29udGV4dEFyZ3M8VENvbnRleHRJZD4pOiBQcm9taXNhYmxlPFBvbGxSZXN1bHQ+O1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBjbG9zdXJlIHJ1biAqKm9uY2UqKiBiZWZvcmUgcG9sbGluZyBiZWdpbnMsIHRvIGtpY2sgb2ZmIHRoZVxuICAgKiBsb25nLXJ1bm5pbmcgd29yayAoZmlyZS1hbmQtZm9yZ2V0IGZyb20gTm9kZSdzIHBlcnNwZWN0aXZlKS4gS2VlcCBpdCBzaG9ydCBcdTIwMTRcbiAgICogc3RhcnQgdGhlIHdvcmsgYW5kIHJldHVybjsgZG8gbm90IGF3YWl0IGl0IHRvIGNvbXBsZXRpb24gaGVyZS5cbiAgICovXG4gIHN0YXJ0Pyh0aGlzOiB2b2lkLCBhcmdzOiBBcmdzICYgQ29tbW9uQXJncyAmIENvbnRleHRBcmdzPFRDb250ZXh0SWQ+KTogUHJvbWlzYWJsZTx1bmtub3duPjtcblxuICAvKipcbiAgICogVG90YWwgYnVkZ2V0IGJlZm9yZSB0aGUgcG9sbCByZWplY3RzLCBpbiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxMjAwMDBgXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRldGFpbCBhcHBlbmRlZCB0byB0aGUgdGltZW91dCBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dE1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSB0cmFuc3BvcnQgKGZvcndhcmRlZCB0byBldmVyeSB1bmRlcmx5aW5nIGBldmFsSW5PYnNpZGlhbmApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNwb3J0PzogT2JzaWRpYW5UcmFuc3BvcnQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBnaXZlbiBgcG9sbGAgcmVzdWx0IGlzIGFjY2VwdGFibGUsIGV2YWx1YXRlZCBpbiAqKk5vZGUqKi4gUmV0dXJuaW5nXG4gICAqIGB0cnVlYCByZXNvbHZlcyB7QGxpbmsgcG9sbEluT2JzaWRpYW59IHdpdGggdGhhdCByZXN1bHQuXG4gICAqL1xuICB1bnRpbCh0aGlzOiB2b2lkLCByZXN1bHQ6IFBvbGxSZXN1bHQpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgcGF0aCB0byBldmFsdWF0ZSBhZ2FpbnN0IChmb3J3YXJkZWQgdG8gZXZlcnkgdW5kZXJseWluZ1xuICAgKiBgZXZhbEluT2JzaWRpYW5gKS5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBLaWNrcyBvZmYgYW4gb3B0aW9uYWwgYHN0YXJ0YCBjbG9zdXJlIG9uY2UsIHRoZW4gcG9sbHMgYHBvbGxgIGZyb20gTm9kZSB1bnRpbFxuICogYHVudGlsYCBhY2NlcHRzIGEgcmVzdWx0IG9yIHRoZSB0aW1lb3V0IGVsYXBzZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwb2xsIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGFjY2VwdGVkIGBwb2xsYCByZXN1bHQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsSW5PYnNpZGlhbjxBcmdzIGV4dGVuZHMgR2VuZXJpY09iamVjdCwgUG9sbFJlc3VsdCwgVENvbnRleHRJZCBleHRlbmRzIENvbnRleHRJZDx1bmtub3duPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4oXG4gIHBhcmFtczogUG9sbEluT2JzaWRpYW5QYXJhbXM8QXJncywgUG9sbFJlc3VsdCwgVENvbnRleHRJZD5cbik6IFByb21pc2U8UG9sbFJlc3VsdD4ge1xuICBjb25zdCB7XG4gICAgYXJncyxcbiAgICBjb250ZXh0SWQsXG4gICAgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcyA9IERFRkFVTFRfUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgcG9sbCxcbiAgICBzdGFydCxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBERUZBVUxUX1BPTExfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgdGltZW91dE1lc3NhZ2UsXG4gICAgdHJhbnNwb3J0LFxuICAgIHVudGlsLFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1bkV2YWw8UmVzdWx0PihmbjogKGZuQXJnczogQXJncyAmIENvbW1vbkFyZ3MgJiBDb250ZXh0QXJnczxUQ29udGV4dElkPikgPT4gUHJvbWlzYWJsZTxSZXN1bHQ+KTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgICBjb25zdCBldmFsUGFyYW1zOiBFdmFsSW5PYnNpZGlhblBhcmFtczxBcmdzLCBSZXN1bHQsIFRDb250ZXh0SWQ+ID0ge1xuICAgICAgZm4sXG4gICAgICAuLi4oYXJncyAhPT0gdW5kZWZpbmVkICYmIHsgYXJncyB9KSxcbiAgICAgIC4uLihjb250ZXh0SWQgIT09IHVuZGVmaW5lZCAmJiB7IGNvbnRleHRJZCB9KSxcbiAgICAgIC4uLih0cmFuc3BvcnQgIT09IHVuZGVmaW5lZCAmJiB7IHRyYW5zcG9ydCB9KSxcbiAgICAgIC4uLih2YXVsdFBhdGggIT09IHVuZGVmaW5lZCAmJiB7IHZhdWx0UGF0aCB9KVxuICAgIH07XG4gICAgcmV0dXJuIGV2YWxJbk9ic2lkaWFuPEFyZ3MsIFJlc3VsdCwgVENvbnRleHRJZD4oZXZhbFBhcmFtcyk7XG4gIH1cblxuICBpZiAoc3RhcnQpIHtcbiAgICBhd2FpdCBydW5FdmFsKHN0YXJ0KTtcbiAgfVxuXG4gIHJldHVybiBwb2xsVW50aWw8UG9sbFJlc3VsdD4oe1xuICAgIGF0dGVtcHQ6IGFzeW5jICgpID0+IHJ1bkV2YWwocG9sbCksXG4gICAgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcyxcbiAgICBub3dJbk1pbGxpc2Vjb25kczogKCkgPT4gRGF0ZS5ub3coKSxcbiAgICBzbGVlcDogYXN5bmMgKG1pbGxpc2Vjb25kczogbnVtYmVyKSA9PiB7XG4gICAgICBhd2FpdCBzbGVlcChtaWxsaXNlY29uZHMpO1xuICAgIH0sXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzLFxuICAgIHVudGlsLFxuICAgIC4uLih0aW1lb3V0TWVzc2FnZSAhPT0gdW5kZWZpbmVkICYmIHsgdGltZW91dE1lc3NhZ2UgfSlcbiAgfSk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUJBLHNCQUFvQztBQVVwQyx3QkFBMEI7QUFDMUIsOEJBQStCO0FBQy9CLHdCQUEwQjtBQUUxQixNQUFNLHdDQUF3QztBQUM5QyxNQUFNLHVDQUF1QztBQWdGN0MsZUFBc0IsZUFDcEIsUUFDcUI7QUFDckIsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQSx5QkFBeUI7QUFBQSxJQUN6QjtBQUFBLElBQ0E7QUFBQSxJQUNBLHdCQUF3QjtBQUFBLElBQ3hCO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosaUJBQWUsUUFBZ0IsSUFBa0c7QUFDL0gsVUFBTSxhQUE2RDtBQUFBLE1BQ2pFO0FBQUEsTUFDQSxHQUFJLFNBQVMsVUFBYSxFQUFFLEtBQUs7QUFBQSxNQUNqQyxHQUFJLGNBQWMsVUFBYSxFQUFFLFVBQVU7QUFBQSxNQUMzQyxHQUFJLGNBQWMsVUFBYSxFQUFFLFVBQVU7QUFBQSxNQUMzQyxHQUFJLGNBQWMsVUFBYSxFQUFFLFVBQVU7QUFBQSxJQUM3QztBQUNBLGVBQU8sd0NBQXlDLFVBQVU7QUFBQSxFQUM1RDtBQUVBLE1BQUksT0FBTztBQUNULFVBQU0sUUFBUSxLQUFLO0FBQUEsRUFDckI7QUFFQSxhQUFPLDZCQUFzQjtBQUFBLElBQzNCLFNBQVMsWUFBWSxRQUFRLElBQUk7QUFBQSxJQUNqQztBQUFBLElBQ0EsbUJBQW1CLE1BQU0sS0FBSyxJQUFJO0FBQUEsSUFDbEMsT0FBTyxPQUFPLGlCQUF5QjtBQUNyQyxnQkFBTSxnQkFBQUEsWUFBTSxZQUFZO0FBQUEsSUFDMUI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsR0FBSSxtQkFBbUIsVUFBYSxFQUFFLGVBQWU7QUFBQSxFQUN2RCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbInNsZWVwIl0KfQo=
|