obsidian-dev-utils 57.0.2 → 58.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.
- package/CHANGELOG.md +5 -0
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/async-component.cjs +28 -11
- package/dist/lib/cjs/obsidian/components/async-component.d.cts +14 -0
- package/dist/lib/cjs/obsidian/plugin/components/index.cjs +4 -4
- package/dist/lib/cjs/obsidian/plugin/components/index.d.cts +1 -1
- package/dist/lib/cjs/obsidian/plugin/components/layout-ready-component.cjs +124 -0
- package/dist/lib/cjs/obsidian/plugin/components/layout-ready-component.d.cts +18 -0
- package/dist/lib/cjs/obsidian/plugin/plugin.cjs +47 -81
- package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +13 -51
- package/dist/lib/cjs/strict-proxy.cjs +15 -4
- package/dist/lib/cjs/strict-proxy.d.cts +12 -0
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/obsidian/components/async-component.d.mts +14 -0
- package/dist/lib/esm/obsidian/components/async-component.mjs +25 -10
- package/dist/lib/esm/obsidian/plugin/components/index.d.mts +1 -1
- package/dist/lib/esm/obsidian/plugin/components/index.mjs +3 -3
- package/dist/lib/esm/obsidian/plugin/components/layout-ready-component.d.mts +18 -0
- package/dist/lib/esm/obsidian/plugin/components/layout-ready-component.mjs +24 -0
- package/dist/lib/esm/obsidian/plugin/plugin.d.mts +13 -51
- package/dist/lib/esm/obsidian/plugin/plugin.mjs +48 -85
- package/dist/lib/esm/strict-proxy.d.mts +12 -0
- package/dist/lib/esm/strict-proxy.mjs +14 -4
- package/obsidian/Plugin/components/{lifecycle-events-component → layout-ready-component}/package.json +3 -3
- package/package.json +3 -3
- package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.cjs +0 -211
- package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.d.cts +0 -63
- package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.d.mts +0 -63
- package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.mjs +0 -106
|
@@ -26,17 +26,14 @@ import {
|
|
|
26
26
|
Notice,
|
|
27
27
|
Plugin as ObsidianPlugin
|
|
28
28
|
} from "obsidian";
|
|
29
|
-
import {
|
|
30
|
-
convertAsyncToSync,
|
|
31
|
-
invokeAsyncSafelyAfterDelay
|
|
32
|
-
} from "../../async.mjs";
|
|
29
|
+
import { invokeAsyncSafelyAfterDelay } from "../../async.mjs";
|
|
33
30
|
import { printError } from "../../error.mjs";
|
|
34
|
-
import {
|
|
31
|
+
import { bypassStrictProxy } from "../../strict-proxy.mjs";
|
|
32
|
+
import { loadChildrenFirstAsync } from "../components/async-component.mjs";
|
|
35
33
|
import { AbortSignalComponent } from "./components/abort-signal-component.mjs";
|
|
36
34
|
import { AsyncErrorHandlerComponent } from "./components/async-error-handler-component.mjs";
|
|
37
35
|
import { ConsoleDebugComponent } from "./components/console-debug-component.mjs";
|
|
38
36
|
import { I18nComponent } from "./components/i18n-component.mjs";
|
|
39
|
-
import { LifecycleEventsComponent } from "./components/lifecycle-events-component.mjs";
|
|
40
37
|
import { PluginContextComponent } from "./components/plugin-context-component.mjs";
|
|
41
38
|
import { PluginNoticeComponent } from "./components/plugin-notice-component.mjs";
|
|
42
39
|
import { EmptyPluginSettingsComponent } from "./components/plugin-settings-component.mjs";
|
|
@@ -49,10 +46,6 @@ class PluginBase extends ObsidianPlugin {
|
|
|
49
46
|
* The console debug component. Provides namespaced debug logging.
|
|
50
47
|
*/
|
|
51
48
|
consoleDebugComponent;
|
|
52
|
-
/**
|
|
53
|
-
* The lifecycle events component. Provides load, layoutReady, and unload events.
|
|
54
|
-
*/
|
|
55
|
-
lifecycleEventsComponent;
|
|
56
49
|
/**
|
|
57
50
|
* The notice component. Displays notices to the user.
|
|
58
51
|
*/
|
|
@@ -61,7 +54,6 @@ class PluginBase extends ObsidianPlugin {
|
|
|
61
54
|
* The settings component. Manages plugin settings lifecycle.
|
|
62
55
|
*/
|
|
63
56
|
settingsComponent;
|
|
64
|
-
preloadComponents = [];
|
|
65
57
|
singletonComponents = /* @__PURE__ */ new Map();
|
|
66
58
|
/**
|
|
67
59
|
* Creates a new PluginBase.
|
|
@@ -71,95 +63,66 @@ class PluginBase extends ObsidianPlugin {
|
|
|
71
63
|
*/
|
|
72
64
|
constructor(app, manifest) {
|
|
73
65
|
super(app, manifest);
|
|
74
|
-
this.
|
|
75
|
-
this.
|
|
76
|
-
this.noticeComponent = this.
|
|
77
|
-
this.
|
|
78
|
-
this.abortSignalComponent = this.
|
|
79
|
-
this.consoleDebugComponent = this.
|
|
80
|
-
this.
|
|
81
|
-
this.settingsComponent = this.registerComponent({ component: new EmptyPluginSettingsComponent(), shouldPreload: true });
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Called when the external settings change.
|
|
85
|
-
*
|
|
86
|
-
* Override in subclass if needed. Make sure to call `await super.onExternalSettingsChange()` first.
|
|
87
|
-
*/
|
|
88
|
-
async onExternalSettingsChange() {
|
|
89
|
-
await super.onExternalSettingsChange?.();
|
|
90
|
-
await this.settingsComponent.onExternalSettingsChange();
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Called when the plugin is loaded. Force-loads components that must be ready
|
|
94
|
-
* before plugin logic, then calls `onloadImpl()`.
|
|
95
|
-
*
|
|
96
|
-
* Usually, you don't need to override this method. Override {@link onloadImpl} instead.
|
|
97
|
-
*/
|
|
98
|
-
async onload() {
|
|
99
|
-
await super.onload();
|
|
100
|
-
for (const component of this.preloadComponents) {
|
|
101
|
-
await component.load();
|
|
102
|
-
}
|
|
103
|
-
await this.onloadImpl();
|
|
104
|
-
invokeAsyncSafelyAfterDelay(this.afterLoad.bind(this));
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Called when the layout is ready.
|
|
108
|
-
*/
|
|
109
|
-
async onLayoutReady() {
|
|
110
|
-
await noopAsync();
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Called after all pre-load components are initialized. Override this to add plugin-specific logic.
|
|
114
|
-
*
|
|
115
|
-
* @remarks It is important to call `super.onloadImpl()` in overridden method.
|
|
116
|
-
*/
|
|
117
|
-
async onloadImpl() {
|
|
118
|
-
await noopAsync();
|
|
66
|
+
this.addChild(new PluginContextComponent(app, manifest.id));
|
|
67
|
+
this.addChild(new I18nComponent());
|
|
68
|
+
this.noticeComponent = this.addChild(new PluginNoticeComponent(manifest.name));
|
|
69
|
+
this.addChild(new AsyncErrorHandlerComponent(this.noticeComponent));
|
|
70
|
+
this.abortSignalComponent = this.addChild(new AbortSignalComponent(manifest.id));
|
|
71
|
+
this.consoleDebugComponent = this.addChild(new ConsoleDebugComponent(manifest.id));
|
|
72
|
+
this.settingsComponent = this.addChild(new EmptyPluginSettingsComponent());
|
|
119
73
|
}
|
|
120
74
|
/**
|
|
121
|
-
*
|
|
75
|
+
* Adds a component to the plugin.
|
|
122
76
|
*
|
|
123
77
|
* If the component's class defines a static `COMPONENT_KEY` symbol, it is treated as a singleton —
|
|
124
|
-
*
|
|
78
|
+
* adding another component with the same key replaces the previous one.
|
|
125
79
|
* Components without a `COMPONENT_KEY` are multi-instance and simply added.
|
|
126
80
|
*
|
|
127
81
|
* @typeParam T - The component type.
|
|
128
|
-
* @param
|
|
129
|
-
* @returns The
|
|
82
|
+
* @param component - The component to add.
|
|
83
|
+
* @returns The added component.
|
|
130
84
|
*/
|
|
131
|
-
|
|
132
|
-
|
|
85
|
+
addChild(component) {
|
|
86
|
+
if (this._loaded) {
|
|
87
|
+
return super.addChild(component);
|
|
88
|
+
}
|
|
89
|
+
const singletonKey = component.constructor.COMPONENT_KEY;
|
|
133
90
|
if (singletonKey) {
|
|
134
91
|
const oldComponent = this.singletonComponents.get(singletonKey);
|
|
135
92
|
if (oldComponent) {
|
|
136
93
|
this.removeChild(oldComponent);
|
|
137
|
-
const preloadIndex = this.preloadComponents.indexOf(oldComponent);
|
|
138
|
-
if (preloadIndex !== -1) {
|
|
139
|
-
this.preloadComponents.splice(preloadIndex, 1);
|
|
140
|
-
}
|
|
141
94
|
}
|
|
142
|
-
this.singletonComponents.set(singletonKey,
|
|
143
|
-
}
|
|
144
|
-
this.addChild(params.component);
|
|
145
|
-
if (params.shouldPreload) {
|
|
146
|
-
this.preloadComponents.push(params.component);
|
|
95
|
+
this.singletonComponents.set(singletonKey, component);
|
|
147
96
|
}
|
|
148
|
-
return
|
|
97
|
+
return super.addChild(component);
|
|
149
98
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Loads the plugin and its components.
|
|
101
|
+
*/
|
|
102
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises -- Obsidian's load() handles async returns at runtime.
|
|
103
|
+
async load() {
|
|
104
|
+
await loadChildrenFirstAsync(this);
|
|
105
|
+
this.app.workspace.onLayoutReady(() => {
|
|
106
|
+
invokeAsyncSafelyAfterDelay(
|
|
107
|
+
async () => {
|
|
108
|
+
for (const child of this._children) {
|
|
109
|
+
await bypassStrictProxy(child).onLayoutReady?.();
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
0,
|
|
113
|
+
void 0,
|
|
114
|
+
this.abortSignalComponent.abortSignal
|
|
115
|
+
);
|
|
116
|
+
});
|
|
156
117
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
118
|
+
/**
|
|
119
|
+
* Called when the external settings change.
|
|
120
|
+
*
|
|
121
|
+
* Override in subclass if needed. Make sure to call `await super.onExternalSettingsChange()` first.
|
|
122
|
+
*/
|
|
123
|
+
async onExternalSettingsChange() {
|
|
124
|
+
await super.onExternalSettingsChange?.();
|
|
125
|
+
await this.settingsComponent.onExternalSettingsChange();
|
|
163
126
|
}
|
|
164
127
|
}
|
|
165
128
|
async function reloadPlugin(plugin) {
|
|
@@ -178,4 +141,4 @@ export {
|
|
|
178
141
|
reloadPlugin,
|
|
179
142
|
showErrorAndDisablePlugin
|
|
180
143
|
};
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICogU3ViY2xhc3NlcyBhZGQgdGhlaXIgb3duIGNvbXBvbmVudHMgdmlhIHtAbGluayByZWdpc3RlckNvbXBvbmVudH0gaW4gdGhlaXIgY29uc3RydWN0b3IuXG4gKiBBbnkgdW5pdmVyc2FsIGNvbXBvbmVudCBjYW4gYmUgcmVwbGFjZWQgYnkgY2FsbGluZyB7QGxpbmsgcmVnaXN0ZXJDb21wb25lbnR9IHdpdGggYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHNhbWUgY2xhc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIFBsdWdpbk1hbmlmZXN0XG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgTm90aWNlLFxuICBQbHVnaW4gYXMgT2JzaWRpYW5QbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHtcbiAgY29udmVydEFzeW5jVG9TeW5jLFxuICBpbnZva2VBc3luY1NhZmVseUFmdGVyRGVsYXlcbn0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJy4uLy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IEFib3J0U2lnbmFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fib3J0LXNpZ25hbC1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQ29uc29sZURlYnVnQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmltcG9ydCB7IEkxOG5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaTE4bi1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgTGlmZWN5Y2xlRXZlbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xpZmVjeWNsZS1ldmVudHMtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBFbXB0eVBsdWdpblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFBhcmFtcyBmb3Ige0BsaW5rIFBsdWdpbkJhc2UucmVnaXN0ZXJDb21wb25lbnR9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSBjb21wb25lbnQgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlckNvbXBvbmVudFBhcmFtczxUIGV4dGVuZHMgQ29tcG9uZW50ID0gQ29tcG9uZW50PiB7XG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50OiBUO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgY29tcG9uZW50IHNob3VsZCBiZSBsb2FkZWQgYmVmb3JlIHRoZSBwbHVnaW4ncyBgb25sb2FkSW1wbCgpYCBydW5zLlxuICAgKiBDb21wb25lbnRzIG1hcmtlZCB3aXRoIHRoaXMgZmxhZyBhcmUgZm9yY2UtbG9hZGVkIGR1cmluZyBgb25sb2FkKClgLCBlbnN1cmluZyB0aGV5IGFyZVxuICAgKiBmdWxseSBpbml0aWFsaXplZCBiZWZvcmUgcGx1Z2luIGxvZ2ljIGV4ZWN1dGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUHJlbG9hZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDb21wb25lbnRDbGFzc1dpdGhLZXkge1xuICBDT01QT05FTlRfS0VZOiBzeW1ib2w7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBSZWdpc3RlcnMgdW5pdmVyc2FsIGNvbXBvbmVudHMgYXV0b21hdGljYWxseS4gU3ViY2xhc3NlcyBhZGQgb3IgcmVwbGFjZSBjb21wb25lbnRzXG4gKiB2aWEge0BsaW5rIHJlZ2lzdGVyQ29tcG9uZW50fSBpbiB0aGVpciBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2UgZXh0ZW5kcyBPYnNpZGlhblBsdWdpbiB7XG4gIC8qKlxuICAgKiBUaGUgYWJvcnQgc2lnbmFsIGNvbXBvbmVudC4gQWJvcnRlZCB3aGVuIHRoZSBwbHVnaW4gaXMgdW5sb2FkZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWJvcnRTaWduYWxDb21wb25lbnQ6IEFib3J0U2lnbmFsQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuIFByb3ZpZGVzIG5hbWVzcGFjZWQgZGVidWcgbG9nZ2luZy5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25zb2xlRGVidWdDb21wb25lbnQ6IENvbnNvbGVEZWJ1Z0NvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBldmVudHMgY29tcG9uZW50LiBQcm92aWRlcyBsb2FkLCBsYXlvdXRSZWFkeSwgYW5kIHVubG9hZCBldmVudHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlmZWN5Y2xlRXZlbnRzQ29tcG9uZW50OiBMaWZlY3ljbGVFdmVudHNDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpY2UgY29tcG9uZW50LiBEaXNwbGF5cyBub3RpY2VzIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0dGluZ3MgY29tcG9uZW50LiBNYW5hZ2VzIHBsdWdpbiBzZXR0aW5ncyBsaWZlY3ljbGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2V0dGluZ3NDb21wb25lbnQ6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlbG9hZENvbXBvbmVudHM6IENvbXBvbmVudFtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2luZ2xldG9uQ29tcG9uZW50cyA9IG5ldyBNYXA8c3ltYm9sLCBDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgUGx1Z2luQmFzZS5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIFRoZSBwbHVnaW4gbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXBwOiBBcHAsIG1hbmlmZXN0OiBQbHVnaW5NYW5pZmVzdCkge1xuICAgIHN1cGVyKGFwcCwgbWFuaWZlc3QpO1xuXG4gICAgdGhpcy5yZWdpc3RlckNvbXBvbmVudCh7IGNvbXBvbmVudDogbmV3IFBsdWdpbkNvbnRleHRDb21wb25lbnQoYXBwLCBtYW5pZmVzdC5pZCksIHNob3VsZFByZWxvYWQ6IHRydWUgfSk7XG4gICAgdGhpcy5yZWdpc3RlckNvbXBvbmVudCh7IGNvbXBvbmVudDogbmV3IEkxOG5Db21wb25lbnQoKSwgc2hvdWxkUHJlbG9hZDogdHJ1ZSB9KTtcbiAgICB0aGlzLm5vdGljZUNvbXBvbmVudCA9IHRoaXMucmVnaXN0ZXJDb21wb25lbnQoeyBjb21wb25lbnQ6IG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQobWFuaWZlc3QubmFtZSkgfSk7XG4gICAgdGhpcy5yZWdpc3RlckNvbXBvbmVudCh7IGNvbXBvbmVudDogbmV3IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KHRoaXMubm90aWNlQ29tcG9uZW50KSB9KTtcbiAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5yZWdpc3RlckNvbXBvbmVudCh7IGNvbXBvbmVudDogbmV3IEFib3J0U2lnbmFsQ29tcG9uZW50KG1hbmlmZXN0LmlkKSB9KTtcbiAgICB0aGlzLmNvbnNvbGVEZWJ1Z0NvbXBvbmVudCA9IHRoaXMucmVnaXN0ZXJDb21wb25lbnQoeyBjb21wb25lbnQ6IG5ldyBDb25zb2xlRGVidWdDb21wb25lbnQobWFuaWZlc3QuaWQpIH0pO1xuICAgIHRoaXMubGlmZWN5Y2xlRXZlbnRzQ29tcG9uZW50ID0gdGhpcy5yZWdpc3RlckNvbXBvbmVudCh7IGNvbXBvbmVudDogbmV3IExpZmVjeWNsZUV2ZW50c0NvbXBvbmVudChhcHApIH0pO1xuICAgIHRoaXMuc2V0dGluZ3NDb21wb25lbnQgPSB0aGlzLnJlZ2lzdGVyQ29tcG9uZW50KHsgY29tcG9uZW50OiBuZXcgRW1wdHlQbHVnaW5TZXR0aW5nc0NvbXBvbmVudCgpLCBzaG91bGRQcmVsb2FkOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2UuXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIGlmIG5lZWRlZC4gTWFrZSBzdXJlIHRvIGNhbGwgYGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpYCBmaXJzdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlPy4oKTtcbiAgICBhd2FpdCB0aGlzLnNldHRpbmdzQ29tcG9uZW50Lm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gaXMgbG9hZGVkLiBGb3JjZS1sb2FkcyBjb21wb25lbnRzIHRoYXQgbXVzdCBiZSByZWFkeVxuICAgKiBiZWZvcmUgcGx1Z2luIGxvZ2ljLCB0aGVuIGNhbGxzIGBvbmxvYWRJbXBsKClgLlxuICAgKlxuICAgKiBVc3VhbGx5LCB5b3UgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aGlzIG1ldGhvZC4gT3ZlcnJpZGUge0BsaW5rIG9ubG9hZEltcGx9IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9ubG9hZCgpO1xuXG4gICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdGhpcy5wcmVsb2FkQ29tcG9uZW50cykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1jb25mdXNpbmctdm9pZC1leHByZXNzaW9uIC0tIENvbXBvbmVudC5sb2FkKCkgcmV0dXJucyB2b2lkfFByb21pc2UgYXQgcnVudGltZSBkZXNwaXRlIHZvaWQgdHlwaW5nLlxuICAgICAgYXdhaXQgKGNvbXBvbmVudC5sb2FkKCkgYXMgUHJvbWlzYWJsZTx2b2lkPik7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5vbmxvYWRJbXBsKCk7XG4gICAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5KHRoaXMuYWZ0ZXJMb2FkLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBsYXlvdXQgaXMgcmVhZHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25MYXlvdXRSZWFkeSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgYWxsIHByZS1sb2FkIGNvbXBvbmVudHMgYXJlIGluaXRpYWxpemVkLiBPdmVycmlkZSB0aGlzIHRvIGFkZCBwbHVnaW4tc3BlY2lmaWMgbG9naWMuXG4gICAqXG4gICAqIEByZW1hcmtzIEl0IGlzIGltcG9ydGFudCB0byBjYWxsIGBzdXBlci5vbmxvYWRJbXBsKClgIGluIG92ZXJyaWRkZW4gbWV0aG9kLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9ubG9hZEltcGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY29tcG9uZW50IHdpdGggdGhlIHBsdWdpbi5cbiAgICpcbiAgICogSWYgdGhlIGNvbXBvbmVudCdzIGNsYXNzIGRlZmluZXMgYSBzdGF0aWMgYENPTVBPTkVOVF9LRVlgIHN5bWJvbCwgaXQgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZXRvbiBcdTIwMTRcbiAgICogcmVnaXN0ZXJpbmcgYW5vdGhlciBjb21wb25lbnQgd2l0aCB0aGUgc2FtZSBrZXkgcmVwbGFjZXMgdGhlIHByZXZpb3VzIG9uZS5cbiAgICogQ29tcG9uZW50cyB3aXRob3V0IGEgYENPTVBPTkVOVF9LRVlgIGFyZSBtdWx0aS1pbnN0YW5jZSBhbmQgc2ltcGx5IGFkZGVkLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFQgLSBUaGUgY29tcG9uZW50IHR5cGUuXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcmVnaXN0cmF0aW9uIHBhcmFtcy5cbiAgICogQHJldHVybnMgVGhlIHJlZ2lzdGVyZWQgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyQ29tcG9uZW50PFQgZXh0ZW5kcyBDb21wb25lbnQ+KHBhcmFtczogUmVnaXN0ZXJDb21wb25lbnRQYXJhbXM8VD4pOiBUIHtcbiAgICBjb25zdCBzaW5nbGV0b25LZXkgPSAocGFyYW1zLmNvbXBvbmVudC5jb25zdHJ1Y3RvciBhcyBQYXJ0aWFsPENvbXBvbmVudENsYXNzV2l0aEtleT4pLkNPTVBPTkVOVF9LRVk7XG5cbiAgICBpZiAoc2luZ2xldG9uS2V5KSB7XG4gICAgICBjb25zdCBvbGRDb21wb25lbnQgPSB0aGlzLnNpbmdsZXRvbkNvbXBvbmVudHMuZ2V0KHNpbmdsZXRvbktleSk7XG4gICAgICBpZiAob2xkQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQob2xkQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgcHJlbG9hZEluZGV4ID0gdGhpcy5wcmVsb2FkQ29tcG9uZW50cy5pbmRleE9mKG9sZENvbXBvbmVudCk7XG4gICAgICAgIGlmIChwcmVsb2FkSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5wcmVsb2FkQ29tcG9uZW50cy5zcGxpY2UocHJlbG9hZEluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zaW5nbGV0b25Db21wb25lbnRzLnNldChzaW5nbGV0b25LZXksIHBhcmFtcy5jb21wb25lbnQpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkQ2hpbGQocGFyYW1zLmNvbXBvbmVudCk7XG5cbiAgICBpZiAocGFyYW1zLnNob3VsZFByZWxvYWQpIHtcbiAgICAgIHRoaXMucHJlbG9hZENvbXBvbmVudHMucHVzaChwYXJhbXMuY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zLmNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWZ0ZXJMb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50LmFib3J0U2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5saWZlY3ljbGVFdmVudHNDb21wb25lbnQudHJpZ2dlckxpZmVjeWNsZUV2ZW50KCdsb2FkJyk7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoY29udmVydEFzeW5jVG9TeW5jKHRoaXMub25MYXlvdXRSZWFkeUJhc2UuYmluZCh0aGlzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkxheW91dFJlYWR5QmFzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5vbkxheW91dFJlYWR5KCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHRoaXMubGlmZWN5Y2xlRXZlbnRzQ29tcG9uZW50LnRyaWdnZXJMaWZlY3ljbGVFdmVudCgnbGF5b3V0UmVhZHknKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBzcGVjaWZpZWQgcGx1Z2luIGJ5IGRpc2FibGluZyBhbmQgdGhlbiByZS1lbmFibGluZyBpdC5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0byByZWxvYWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZFBsdWdpbihwbHVnaW46IE9ic2lkaWFuUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpbihwbHVnaW46IE9ic2lkaWFuUGx1Z2luLCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbmV3IE5vdGljZShtZXNzYWdlKTtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IobWVzc2FnZSkpO1xuICBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW4ubWFuaWZlc3QuaWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0EsVUFBVTtBQUFBLE9BQ0w7QUFJUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsaUJB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
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICogU3ViY2xhc3NlcyBhZGQgdGhlaXIgb3duIGNvbXBvbmVudHMgdmlhIHtAbGluayByZWdpc3RlckNvbXBvbmVudH0gaW4gdGhlaXIgY29uc3RydWN0b3IuXG4gKiBBbnkgdW5pdmVyc2FsIGNvbXBvbmVudCBjYW4gYmUgcmVwbGFjZWQgYnkgY2FsbGluZyB7QGxpbmsgcmVnaXN0ZXJDb21wb25lbnR9IHdpdGggYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHNhbWUgY2xhc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIFBsdWdpbk1hbmlmZXN0XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBOb3RpY2UsXG4gIFBsdWdpbiBhcyBPYnNpZGlhblBsdWdpblxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgTGF5b3V0UmVhZHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5IH0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9yLnRzJztcbmltcG9ydCB7IGJ5cGFzc1N0cmljdFByb3h5IH0gZnJvbSAnLi4vLi4vc3RyaWN0LXByb3h5LnRzJztcbmltcG9ydCB7IGxvYWRDaGlsZHJlbkZpcnN0QXN5bmMgfSBmcm9tICcuLi9jb21wb25lbnRzL2FzeW5jLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBJMThuQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2kxOG4tY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBFbXB0eVBsdWdpblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuXG5pbnRlcmZhY2UgQ29tcG9uZW50Q2xhc3NXaXRoS2V5IHtcbiAgQ09NUE9ORU5UX0tFWTogc3ltYm9sO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGNyZWF0aW5nIE9ic2lkaWFuIHBsdWdpbnMgd2l0aCBhIGNvbXBvbmVudC1iYXNlZCBhcmNoaXRlY3R1cmUuXG4gKlxuICogUmVnaXN0ZXJzIHVuaXZlcnNhbCBjb21wb25lbnRzIGF1dG9tYXRpY2FsbHkuIFN1YmNsYXNzZXMgYWRkIG9yIHJlcGxhY2UgY29tcG9uZW50c1xuICogdmlhIHtAbGluayByZWdpc3RlckNvbXBvbmVudH0gaW4gdGhlaXIgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlIGV4dGVuZHMgT2JzaWRpYW5QbHVnaW4ge1xuICAvKipcbiAgICogVGhlIGFib3J0IHNpZ25hbCBjb21wb25lbnQuIEFib3J0ZWQgd2hlbiB0aGUgcGx1Z2luIGlzIHVubG9hZGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFib3J0U2lnbmFsQ29tcG9uZW50OiBBYm9ydFNpZ25hbENvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LiBQcm92aWRlcyBuYW1lc3BhY2VkIGRlYnVnIGxvZ2dpbmcuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uc29sZURlYnVnQ29tcG9uZW50OiBDb25zb2xlRGVidWdDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpY2UgY29tcG9uZW50LiBEaXNwbGF5cyBub3RpY2VzIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0dGluZ3MgY29tcG9uZW50LiBNYW5hZ2VzIHBsdWdpbiBzZXR0aW5ncyBsaWZlY3ljbGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2V0dGluZ3NDb21wb25lbnQ6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2luZ2xldG9uQ29tcG9uZW50cyA9IG5ldyBNYXA8c3ltYm9sLCBDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgUGx1Z2luQmFzZS5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIFRoZSBwbHVnaW4gbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXBwOiBBcHAsIG1hbmlmZXN0OiBQbHVnaW5NYW5pZmVzdCkge1xuICAgIHN1cGVyKGFwcCwgbWFuaWZlc3QpO1xuXG4gICAgdGhpcy5hZGRDaGlsZChuZXcgUGx1Z2luQ29udGV4dENvbXBvbmVudChhcHAsIG1hbmlmZXN0LmlkKSk7XG4gICAgdGhpcy5hZGRDaGlsZChuZXcgSTE4bkNvbXBvbmVudCgpKTtcbiAgICB0aGlzLm5vdGljZUNvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IFBsdWdpbk5vdGljZUNvbXBvbmVudChtYW5pZmVzdC5uYW1lKSk7XG4gICAgdGhpcy5hZGRDaGlsZChuZXcgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQodGhpcy5ub3RpY2VDb21wb25lbnQpKTtcbiAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQWJvcnRTaWduYWxDb21wb25lbnQobWFuaWZlc3QuaWQpKTtcbiAgICB0aGlzLmNvbnNvbGVEZWJ1Z0NvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IENvbnNvbGVEZWJ1Z0NvbXBvbmVudChtYW5pZmVzdC5pZCkpO1xuICAgIHRoaXMuc2V0dGluZ3NDb21wb25lbnQgPSB0aGlzLmFkZENoaWxkKG5ldyBFbXB0eVBsdWdpblNldHRpbmdzQ29tcG9uZW50KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21wb25lbnQgdG8gdGhlIHBsdWdpbi5cbiAgICpcbiAgICogSWYgdGhlIGNvbXBvbmVudCdzIGNsYXNzIGRlZmluZXMgYSBzdGF0aWMgYENPTVBPTkVOVF9LRVlgIHN5bWJvbCwgaXQgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZXRvbiBcdTIwMTRcbiAgICogYWRkaW5nIGFub3RoZXIgY29tcG9uZW50IHdpdGggdGhlIHNhbWUga2V5IHJlcGxhY2VzIHRoZSBwcmV2aW91cyBvbmUuXG4gICAqIENvbXBvbmVudHMgd2l0aG91dCBhIGBDT01QT05FTlRfS0VZYCBhcmUgbXVsdGktaW5zdGFuY2UgYW5kIHNpbXBseSBhZGRlZC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVGhlIGNvbXBvbmVudCB0eXBlLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEByZXR1cm5zIFRoZSBhZGRlZCBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYWRkQ2hpbGQ8VCBleHRlbmRzIENvbXBvbmVudD4oY29tcG9uZW50OiBUKTogVCB7XG4gICAgaWYgKHRoaXMuX2xvYWRlZCkge1xuICAgICAgcmV0dXJuIHN1cGVyLmFkZENoaWxkKGNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2luZ2xldG9uS2V5ID0gKGNvbXBvbmVudC5jb25zdHJ1Y3RvciBhcyBQYXJ0aWFsPENvbXBvbmVudENsYXNzV2l0aEtleT4pLkNPTVBPTkVOVF9LRVk7XG5cbiAgICBpZiAoc2luZ2xldG9uS2V5KSB7XG4gICAgICBjb25zdCBvbGRDb21wb25lbnQgPSB0aGlzLnNpbmdsZXRvbkNvbXBvbmVudHMuZ2V0KHNpbmdsZXRvbktleSk7XG4gICAgICBpZiAob2xkQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQob2xkQ29tcG9uZW50KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2luZ2xldG9uQ29tcG9uZW50cy5zZXQoc2luZ2xldG9uS2V5LCBjb21wb25lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5hZGRDaGlsZChjb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwbHVnaW4gYW5kIGl0cyBjb21wb25lbnRzLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzIC0tIE9ic2lkaWFuJ3MgbG9hZCgpIGhhbmRsZXMgYXN5bmMgcmV0dXJucyBhdCBydW50aW1lLlxuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBsb2FkQ2hpbGRyZW5GaXJzdEFzeW5jKHRoaXMpO1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpID0+IHtcbiAgICAgIGludm9rZUFzeW5jU2FmZWx5QWZ0ZXJEZWxheShcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5fY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGF3YWl0IChieXBhc3NTdHJpY3RQcm94eShjaGlsZCkgYXMgUGFydGlhbDxMYXlvdXRSZWFkeUNvbXBvbmVudD4pLm9uTGF5b3V0UmVhZHk/LigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgMCxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50LmFib3J0U2lnbmFsXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2UuXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIGlmIG5lZWRlZC4gTWFrZSBzdXJlIHRvIGNhbGwgYGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpYCBmaXJzdC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlPy4oKTtcbiAgICBhd2FpdCB0aGlzLnNldHRpbmdzQ29tcG9uZW50Lm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpO1xuICB9XG59XG5cbi8qKlxuICogUmVsb2FkcyB0aGUgc3BlY2lmaWVkIHBsdWdpbiBieSBkaXNhYmxpbmcgYW5kIHRoZW4gcmUtZW5hYmxpbmcgaXQuXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gcmVsb2FkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWxvYWRQbHVnaW4ocGx1Z2luOiBPYnNpZGlhblBsdWdpbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwbHVnaW5zID0gcGx1Z2luLmFwcC5wbHVnaW5zO1xuICBjb25zdCBwbHVnaW5JZCA9IHBsdWdpbi5tYW5pZmVzdC5pZDtcbiAgYXdhaXQgcGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbklkKTtcbiAgYXdhaXQgcGx1Z2lucy5lbmFibGVQbHVnaW4ocGx1Z2luSWQpO1xufVxuXG4vKipcbiAqIERpc3BsYXlzIGFuIGVycm9yIG1lc3NhZ2UgYXMgYSBub3RpY2UsIGxvZ3MgaXQgdG8gdGhlIGNvbnNvbGUsIGFuZCBkaXNhYmxlcyB0aGUgc3BlY2lmaWVkIHBsdWdpbi5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiB0byBkaXNhYmxlLlxuICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IGFuZCBsb2cuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBsdWdpbiBpcyBkaXNhYmxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW4ocGx1Z2luOiBPYnNpZGlhblBsdWdpbiwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIG5ldyBOb3RpY2UobWVzc2FnZSk7XG4gIHByaW50RXJyb3IobmV3IEVycm9yKG1lc3NhZ2UpKTtcbiAgYXdhaXQgcGx1Z2luLmFwcC5wbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luLm1hbmlmZXN0LmlkKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0EsVUFBVTtBQUFBLE9BQ0w7QUFLUCxTQUFTLG1DQUFtQztBQUM1QyxTQUFTLGtCQUFrQjtBQUMzQixTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLGtDQUFrQztBQUMzQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHFCQUFxQjtBQUM5QixTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLG9DQUFvQztBQVl0QyxNQUFlLG1CQUFtQixlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQSxFQUVGLHNCQUFzQixvQkFBSSxJQUF1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUTNELFlBQVksS0FBVSxVQUEwQjtBQUNyRCxVQUFNLEtBQUssUUFBUTtBQUVuQixTQUFLLFNBQVMsSUFBSSx1QkFBdUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztBQUMxRCxTQUFLLFNBQVMsSUFBSSxjQUFjLENBQUM7QUFDakMsU0FBSyxrQkFBa0IsS0FBSyxTQUFTLElBQUksc0JBQXNCLFNBQVMsSUFBSSxDQUFDO0FBQzdFLFNBQUssU0FBUyxJQUFJLDJCQUEyQixLQUFLLGVBQWUsQ0FBQztBQUNsRSxTQUFLLHVCQUF1QixLQUFLLFNBQVMsSUFBSSxxQkFBcUIsU0FBUyxFQUFFLENBQUM7QUFDL0UsU0FBSyx3QkFBd0IsS0FBSyxTQUFTLElBQUksc0JBQXNCLFNBQVMsRUFBRSxDQUFDO0FBQ2pGLFNBQUssb0JBQW9CLEtBQUssU0FBUyxJQUFJLDZCQUE2QixDQUFDO0FBQUEsRUFDM0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFhZ0IsU0FBOEIsV0FBaUI7QUFDN0QsUUFBSSxLQUFLLFNBQVM7QUFDaEIsYUFBTyxNQUFNLFNBQVMsU0FBUztBQUFBLElBQ2pDO0FBRUEsVUFBTSxlQUFnQixVQUFVLFlBQStDO0FBRS9FLFFBQUksY0FBYztBQUNoQixZQUFNLGVBQWUsS0FBSyxvQkFBb0IsSUFBSSxZQUFZO0FBQzlELFVBQUksY0FBYztBQUNoQixhQUFLLFlBQVksWUFBWTtBQUFBLE1BQy9CO0FBQ0EsV0FBSyxvQkFBb0IsSUFBSSxjQUFjLFNBQVM7QUFBQSxJQUN0RDtBQUVBLFdBQU8sTUFBTSxTQUFTLFNBQVM7QUFBQSxFQUNqQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxNQUFzQixPQUFzQjtBQUMxQyxVQUFNLHVCQUF1QixJQUFJO0FBQ2pDLFNBQUssSUFBSSxVQUFVLGNBQWMsTUFBTTtBQUNyQztBQUFBLFFBQ0UsWUFBWTtBQUNWLHFCQUFXLFNBQVMsS0FBSyxXQUFXO0FBQ2xDLGtCQUFPLGtCQUFrQixLQUFLLEVBQW9DLGdCQUFnQjtBQUFBLFVBQ3BGO0FBQUEsUUFDRjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQSxLQUFLLHFCQUFxQjtBQUFBLE1BQzVCO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE1BQXNCLDJCQUEwQztBQUM5RCxVQUFNLE1BQU0sMkJBQTJCO0FBQ3ZDLFVBQU0sS0FBSyxrQkFBa0IseUJBQXlCO0FBQUEsRUFDeEQ7QUFDRjtBQVFBLGVBQXNCLGFBQWEsUUFBdUM7QUFDeEUsUUFBTSxVQUFVLE9BQU8sSUFBSTtBQUMzQixRQUFNLFdBQVcsT0FBTyxTQUFTO0FBQ2pDLFFBQU0sUUFBUSxjQUFjLFFBQVE7QUFDcEMsUUFBTSxRQUFRLGFBQWEsUUFBUTtBQUNyQztBQVNBLGVBQXNCLDBCQUEwQixRQUF3QixTQUFnQztBQUN0RyxNQUFJLE9BQU8sT0FBTztBQUNsQixhQUFXLElBQUksTUFBTSxPQUFPLENBQUM7QUFDN0IsUUFBTSxPQUFPLElBQUksUUFBUSxjQUFjLE9BQU8sU0FBUyxFQUFFO0FBQzNEOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -8,6 +8,18 @@
|
|
|
8
8
|
* `obsidian-test-mocks/src/internal/strict-proxy.ts`.
|
|
9
9
|
*/
|
|
10
10
|
import type { PartialDeep } from 'type-fest';
|
|
11
|
+
/**
|
|
12
|
+
* Bypasses strict proxy to access the underlying object.
|
|
13
|
+
*
|
|
14
|
+
* If the object is wrapped in a strict proxy, returns the unwrapped target.
|
|
15
|
+
* Otherwise, returns the object as-is. This allows safely accessing
|
|
16
|
+
* optional properties without triggering the proxy's error on missing props.
|
|
17
|
+
*
|
|
18
|
+
* @typeParam T - The object type.
|
|
19
|
+
* @param obj - The object to bypass.
|
|
20
|
+
* @returns The unwrapped object.
|
|
21
|
+
*/
|
|
22
|
+
export declare function bypassStrictProxy<T>(obj: T): T;
|
|
11
23
|
/**
|
|
12
24
|
* Creates a strictly-typed mock object from a partial implementation.
|
|
13
25
|
* Uses a `Proxy` that throws a descriptive error when any unmocked
|
|
@@ -21,7 +21,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
21
21
|
globalThis.process = browserProcess;
|
|
22
22
|
})();
|
|
23
23
|
|
|
24
|
-
const
|
|
24
|
+
const STRICT_PROXY_TARGET_SYMBOL = /* @__PURE__ */ Symbol.for("strictProxyTarget");
|
|
25
25
|
const PASSTHROUGH_PROPS = /* @__PURE__ */ new Set([
|
|
26
26
|
Symbol.iterator,
|
|
27
27
|
Symbol.toPrimitive,
|
|
@@ -29,6 +29,15 @@ const PASSTHROUGH_PROPS = /* @__PURE__ */ new Set([
|
|
|
29
29
|
"then",
|
|
30
30
|
"toJSON"
|
|
31
31
|
]);
|
|
32
|
+
function bypassStrictProxy(obj) {
|
|
33
|
+
if (!isObjectLike(obj)) {
|
|
34
|
+
return obj;
|
|
35
|
+
}
|
|
36
|
+
if (!(STRICT_PROXY_TARGET_SYMBOL in obj)) {
|
|
37
|
+
return obj;
|
|
38
|
+
}
|
|
39
|
+
return obj[STRICT_PROXY_TARGET_SYMBOL];
|
|
40
|
+
}
|
|
32
41
|
function strictProxy(partial) {
|
|
33
42
|
return wrapProxy(partial);
|
|
34
43
|
}
|
|
@@ -42,10 +51,10 @@ function wrapProxy(value) {
|
|
|
42
51
|
if (!isObjectLike(value)) {
|
|
43
52
|
return value;
|
|
44
53
|
}
|
|
45
|
-
if (
|
|
54
|
+
if (STRICT_PROXY_TARGET_SYMBOL in value) {
|
|
46
55
|
return value;
|
|
47
56
|
}
|
|
48
|
-
Object.defineProperty(value,
|
|
57
|
+
Object.defineProperty(value, STRICT_PROXY_TARGET_SYMBOL, { value });
|
|
49
58
|
const proxiedChildren = /* @__PURE__ */ new Map();
|
|
50
59
|
return new Proxy(value, {
|
|
51
60
|
get(target, prop, receiver) {
|
|
@@ -69,6 +78,7 @@ function wrapProxy(value) {
|
|
|
69
78
|
});
|
|
70
79
|
}
|
|
71
80
|
export {
|
|
81
|
+
bypassStrictProxy,
|
|
72
82
|
strictProxy
|
|
73
83
|
};
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3N0cmljdC1wcm94eS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFN0cmljdGx5LXR5cGVkIG1vY2sgb2JqZWN0IGZhY3RvcnkgdmlhIGBQcm94eWAuIFRocm93cyBhIGRlc2NyaXB0aXZlIGVycm9yXG4gKiB3aGVuIGFueSB1bm1vY2tlZCBwcm9wZXJ0eSBpcyBhY2Nlc3NlZCwgcHJldmVudGluZyBzaWxlbnQgYHVuZGVmaW5lZGAgcmV0dXJucy5cbiAqXG4gKiBUaGUgcHJveHkgaW1wbGVtZW50YXRpb24gbWlycm9ycyB0aGUgZGVzaWduIG9mXG4gKiBgb2JzaWRpYW4tdGVzdC1tb2Nrcy9zcmMvaW50ZXJuYWwvc3RyaWN0LXByb3h5LnRzYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhcnRpYWxEZWVwIH0gZnJvbSAndHlwZS1mZXN0JztcblxuY29uc3QgU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdzdHJpY3RQcm94eVRhcmdldCcpO1xuXG5jb25zdCBQQVNTVEhST1VHSF9QUk9QUyA9IG5ldyBTZXQ8c3RyaW5nIHwgc3ltYm9sPihbXG4gIFN5bWJvbC5pdGVyYXRvcixcbiAgU3ltYm9sLnRvUHJpbWl0aXZlLFxuICBTeW1ib2wudG9TdHJpbmdUYWcsXG4gICd0aGVuJyxcbiAgJ3RvSlNPTidcbl0pO1xuXG4vKipcbiAqIEJ5cGFzc2VzIHN0cmljdCBwcm94eSB0byBhY2Nlc3MgdGhlIHVuZGVybHlpbmcgb2JqZWN0LlxuICpcbiAqIElmIHRoZSBvYmplY3QgaXMgd3JhcHBlZCBpbiBhIHN0cmljdCBwcm94eSwgcmV0dXJucyB0aGUgdW53cmFwcGVkIHRhcmdldC5cbiAqIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgb2JqZWN0IGFzLWlzLiBUaGlzIGFsbG93cyBzYWZlbHkgYWNjZXNzaW5nXG4gKiBvcHRpb25hbCBwcm9wZXJ0aWVzIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGUgcHJveHkncyBlcnJvciBvbiBtaXNzaW5nIHByb3BzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSBvYmplY3QgdHlwZS5cbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGJ5cGFzcy5cbiAqIEByZXR1cm5zIFRoZSB1bndyYXBwZWQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnlwYXNzU3RyaWN0UHJveHk8VD4ob2JqOiBUKTogVCB7XG4gIGlmICghaXNPYmplY3RMaWtlKG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIGlmICghKFNUUklDVF9QUk9YWV9UQVJHRVRfU1lNQk9MIGluIG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIHJldHVybiBvYmpbU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0xdIGFzIFQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0cmljdGx5LXR5cGVkIG1vY2sgb2JqZWN0IGZyb20gYSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uLlxuICogVXNlcyBhIGBQcm94eWAgdGhhdCB0aHJvd3MgYSBkZXNjcmlwdGl2ZSBlcnJvciB3aGVuIGFueSB1bm1vY2tlZFxuICogcHJvcGVydHkgaXMgYWNjZXNzZWQsIHByZXZlbnRpbmcgc2lsZW50IGB1bmRlZmluZWRgIHJldHVybnMuXG4gKlxuICogLSBJZGVtcG90ZW50OiBkb3VibGUtd3JhcHBpbmcgaXMgYSBuby1vcC5cbiAqIC0gUGFzc3Rocm91Z2ggZm9yIHdlbGwta25vd24gcHJvcHMgKGB0aGVuYCwgYHRvSlNPTmAsIGBTeW1ib2wuaXRlcmF0b3JgLCBldGMuKS5cbiAqIC0gUmVjdXJzaXZlIHByb3h5aW5nIG9mIG5lc3RlZCBwbGFpbiBvYmplY3RzLlxuICpcbiAqIEBwYXJhbSBwYXJ0aWFsIC0gQSBwYXJ0aWFsIG9iamVjdCBjb250YWluaW5nIG9ubHkgdGhlIG1vY2tlZCBtZW1iZXJzLlxuICogQHJldHVybnMgQSBwcm94eSB0eXBlZCBhcyBgVGAgdGhhdCB0aHJvd3Mgb24gdW5tb2NrZWQgcHJvcGVydHkgYWNjZXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaWN0UHJveHk8VD4ocGFydGlhbDogUGFydGlhbERlZXA8VD4pOiBUIHtcbiAgcmV0dXJuIHdyYXBQcm94eTxUPihwYXJ0aWFsKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBhbiBvYmplY3QtbGlrZSB2YWx1ZSAobm90IG51bGwpLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHZhbHVlIGlzIG9iamVjdC1saWtlLlxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBvYmplY3Qge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdCAobm90IGEgY2xhc3MgaW5zdGFuY2UsIGFycmF5LCBudWxsLCBldGMuKS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSA9PT0gT2JqZWN0LnByb3RvdHlwZTtcbn1cblxuLyoqXG4gKiBXcmFwcyBhIHZhbHVlIGluIGEgc3RyaWN0IHByb3h5LiBJZGVtcG90ZW50IFx1MjAxNCBkb3VibGUtd3JhcHBpbmcgaXMgYSBuby1vcC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAqIEByZXR1cm5zIFRoZSBwcm94aWVkIHZhbHVlIHR5cGVkIGFzIGBUYC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMgLS0gVCBwcm92aWRlcyByZXR1cm4gdHlwZSBpbmZlcmVuY2UgYXQgY2FsbCBzaXRlcy5cbmZ1bmN0aW9uIHdyYXBQcm94eTxUPih2YWx1ZTogdW5rbm93bik6IFQge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUgYXMgVDtcbiAgfVxuXG4gIGlmIChTVFJJQ1RfUFJPWFlfVEFSR0VUX1NZTUJPTCBpbiB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSBhcyBUO1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0wsIHsgdmFsdWUgfSk7XG5cbiAgY29uc3QgcHJveGllZENoaWxkcmVuID0gbmV3IE1hcDxzdHJpbmcgfCBzeW1ib2w+KCk7XG5cbiAgcmV0dXJuIG5ldyBQcm94eSh2YWx1ZSwge1xuICAgIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTogdW5rbm93biB7XG4gICAgICBpZiAocHJvcCBpbiB0YXJnZXQpIHtcbiAgICAgICAgaWYgKHByb3hpZWRDaGlsZHJlbi5oYXMocHJvcCkpIHtcbiAgICAgICAgICByZXR1cm4gcHJveGllZENoaWxkcmVuLmdldChwcm9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbDogdW5rbm93biA9IFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICBpZiAoaXNQbGFpbk9iamVjdCh2YWwpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gd3JhcFByb3h5PHVua25vd24+KHZhbCk7XG4gICAgICAgICAgcHJveGllZENoaWxkcmVuLnNldChwcm9wLCByZXN1bHQpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3ltYm9sJyB8fCBQQVNTVEhST1VHSF9QUk9QUy5oYXMocHJvcCkpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVubW9ja2VkIHByb3BlcnR5IFwiJHtwcm9wfVwiIHdhcyBhY2Nlc3NlZCBvbiBtb2NrIG9iamVjdGApO1xuICAgIH1cbiAgfSkgYXMgVDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWUEsTUFBTSw2QkFBNkIsdUJBQU8sSUFBSSxtQkFBbUI7QUFFakUsTUFBTSxvQkFBb0Isb0JBQUksSUFBcUI7QUFBQSxFQUNqRCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFDRixDQUFDO0FBYU0sU0FBUyxrQkFBcUIsS0FBVztBQUM5QyxNQUFJLENBQUMsYUFBYSxHQUFHLEdBQUc7QUFDdEIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLEVBQUUsOEJBQThCLE1BQU07QUFDeEMsV0FBTztBQUFBLEVBQ1Q7QUFDQSxTQUFPLElBQUksMEJBQTBCO0FBQ3ZDO0FBY08sU0FBUyxZQUFlLFNBQTRCO0FBQ3pELFNBQU8sVUFBYSxPQUFPO0FBQzdCO0FBUUEsU0FBUyxhQUFhLE9BQWlDO0FBQ3JELFNBQU8sVUFBVSxRQUFRLE9BQU8sVUFBVTtBQUM1QztBQVFBLFNBQVMsY0FBYyxPQUFrRDtBQUN2RSxTQUFPLGFBQWEsS0FBSyxLQUFLLE9BQU8sZUFBZSxLQUFLLE1BQU0sT0FBTztBQUN4RTtBQVNBLFNBQVMsVUFBYSxPQUFtQjtBQUN2QyxNQUFJLENBQUMsYUFBYSxLQUFLLEdBQUc7QUFDeEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLDhCQUE4QixPQUFPO0FBQ3ZDLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxlQUFlLE9BQU8sNEJBQTRCLEVBQUUsTUFBTSxDQUFDO0FBRWxFLFFBQU0sa0JBQWtCLG9CQUFJLElBQXFCO0FBRWpELFNBQU8sSUFBSSxNQUFNLE9BQU87QUFBQSxJQUN0QixJQUFJLFFBQVEsTUFBTSxVQUFtQjtBQUNuQyxVQUFJLFFBQVEsUUFBUTtBQUNsQixZQUFJLGdCQUFnQixJQUFJLElBQUksR0FBRztBQUM3QixpQkFBTyxnQkFBZ0IsSUFBSSxJQUFJO0FBQUEsUUFDakM7QUFFQSxjQUFNLE1BQWUsUUFBUSxJQUFJLFFBQVEsTUFBTSxRQUFRO0FBQ3ZELFlBQUksY0FBYyxHQUFHLEdBQUc7QUFDdEIsZ0JBQU0sU0FBUyxVQUFtQixHQUFHO0FBQ3JDLDBCQUFnQixJQUFJLE1BQU0sTUFBTTtBQUNoQyxpQkFBTztBQUFBLFFBQ1Q7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQUVBLFVBQUksT0FBTyxTQUFTLFlBQVksa0JBQWtCLElBQUksSUFBSSxHQUFHO0FBQzNELGVBQU8sUUFBUSxJQUFJLFFBQVEsTUFBTSxRQUFRO0FBQUEsTUFDM0M7QUFFQSxZQUFNLElBQUksTUFBTSxzQkFBc0IsSUFBSSwrQkFBK0I7QUFBQSxJQUMzRTtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"main": "../../../../dist/lib/cjs/obsidian/plugin/components/
|
|
3
|
-
"module": "../../../../dist/lib/esm/obsidian/plugin/components/
|
|
2
|
+
"main": "../../../../dist/lib/cjs/obsidian/plugin/components/layout-ready-component.cjs",
|
|
3
|
+
"module": "../../../../dist/lib/esm/obsidian/plugin/components/layout-ready-component.mjs",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"types": "../../../../dist/lib/cjs/obsidian/plugin/components/
|
|
5
|
+
"types": "../../../../dist/lib/cjs/obsidian/plugin/components/layout-ready-component.d.cts"
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obsidian-dev-utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "58.0.0",
|
|
4
4
|
"description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"obsidian"
|
|
@@ -717,7 +717,7 @@
|
|
|
717
717
|
"monkey-around": "latest",
|
|
718
718
|
"npm-run-all2": "latest",
|
|
719
719
|
"obsidian": "latest",
|
|
720
|
-
"obsidian-integration-testing": "
|
|
720
|
+
"obsidian-integration-testing": "^1.2.0",
|
|
721
721
|
"obsidian-typings": "obsidian-public-latest",
|
|
722
722
|
"path-browserify": "latest",
|
|
723
723
|
"postcss": "latest",
|
|
@@ -753,7 +753,7 @@
|
|
|
753
753
|
"jsdom": "latest",
|
|
754
754
|
"moment": "latest",
|
|
755
755
|
"nano-staged": "latest",
|
|
756
|
-
"obsidian-test-mocks": "
|
|
756
|
+
"obsidian-test-mocks": "^1.1.1",
|
|
757
757
|
"patch-package": "latest",
|
|
758
758
|
"vitest": "latest",
|
|
759
759
|
"yaml": "latest"
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
-
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
(function initCjs() {
|
|
7
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
8
|
-
const globalThisRecord = globalThis;
|
|
9
|
-
globalThisRecord['__name'] ??= name;
|
|
10
|
-
const originalRequire = require;
|
|
11
|
-
if (originalRequire && !originalRequire.__isPatched) {
|
|
12
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
13
|
-
require = Object.assign(
|
|
14
|
-
(id) => requirePatched(id),
|
|
15
|
-
originalRequire,
|
|
16
|
-
{
|
|
17
|
-
__isPatched: true
|
|
18
|
-
}
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const newFuncs = {
|
|
23
|
-
__extractDefault() {
|
|
24
|
-
return extractDefault;
|
|
25
|
-
},
|
|
26
|
-
process() {
|
|
27
|
-
const browserProcess = {
|
|
28
|
-
browser: true,
|
|
29
|
-
cwd() {
|
|
30
|
-
return '/';
|
|
31
|
-
},
|
|
32
|
-
env: {},
|
|
33
|
-
platform: 'android'
|
|
34
|
-
};
|
|
35
|
-
return browserProcess;
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
for (const key of Object.keys(newFuncs)) {
|
|
40
|
-
globalThisRecord[key] ??= newFuncs[key]?.();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function name(obj) {
|
|
44
|
-
return obj;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function extractDefault(module) {
|
|
48
|
-
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
|
|
52
|
-
'obsidian',
|
|
53
|
-
'@codemirror/autocomplete',
|
|
54
|
-
'@codemirror/collab',
|
|
55
|
-
'@codemirror/commands',
|
|
56
|
-
'@codemirror/language',
|
|
57
|
-
'@codemirror/lint',
|
|
58
|
-
'@codemirror/search',
|
|
59
|
-
'@codemirror/state',
|
|
60
|
-
'@codemirror/text',
|
|
61
|
-
'@codemirror/view',
|
|
62
|
-
'@lezer/common',
|
|
63
|
-
'@lezer/lr',
|
|
64
|
-
'@lezer/highlight'];
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
|
|
68
|
-
'@codemirror/closebrackets',
|
|
69
|
-
'@codemirror/comment',
|
|
70
|
-
'@codemirror/fold',
|
|
71
|
-
'@codemirror/gutter',
|
|
72
|
-
'@codemirror/highlight',
|
|
73
|
-
'@codemirror/history',
|
|
74
|
-
'@codemirror/matchbrackets',
|
|
75
|
-
'@codemirror/panel',
|
|
76
|
-
'@codemirror/rangeset',
|
|
77
|
-
'@codemirror/rectangular-selection',
|
|
78
|
-
'@codemirror/stream-parser',
|
|
79
|
-
'@codemirror/tooltip'];
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
function requirePatched(id) {
|
|
83
|
-
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
|
|
84
|
-
return originalRequire?.(id);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
88
|
-
if (globalThis.app.isMobile) {
|
|
89
|
-
if (id === 'process' || id === 'node:process') {
|
|
90
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
91
|
-
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
92
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
93
|
-
return globalThis.process;
|
|
94
|
-
}
|
|
95
|
-
} else {
|
|
96
|
-
const module = originalRequire?.(id);
|
|
97
|
-
if (module) {
|
|
98
|
-
return extractDefault(module);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
103
|
-
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
104
|
-
return {};
|
|
105
|
-
}
|
|
106
|
-
})();
|
|
107
|
-
|
|
108
|
-
"use strict";
|
|
109
|
-
var __defProp = Object.defineProperty;
|
|
110
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
111
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
112
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
113
|
-
var __export = (target, all) => {
|
|
114
|
-
for (var name in all)
|
|
115
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
116
|
-
};
|
|
117
|
-
var __copyProps = (to, from, except, desc) => {
|
|
118
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
119
|
-
for (let key of __getOwnPropNames(from))
|
|
120
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
121
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
122
|
-
}
|
|
123
|
-
return to;
|
|
124
|
-
};
|
|
125
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
126
|
-
var lifecycle_events_component_exports = {};
|
|
127
|
-
__export(lifecycle_events_component_exports, {
|
|
128
|
-
LifecycleEventsComponent: () => LifecycleEventsComponent
|
|
129
|
-
});
|
|
130
|
-
module.exports = __toCommonJS(lifecycle_events_component_exports);
|
|
131
|
-
var import_async_events = require('../../../async-events.cjs');
|
|
132
|
-
var import_async = require('../../../async.cjs');
|
|
133
|
-
var import_async_component = require('../../components/async-component.cjs');
|
|
134
|
-
class LifecycleEventsComponent extends import_async_component.AsyncComponentBase {
|
|
135
|
-
/**
|
|
136
|
-
* Creates a new lifecycle events component.
|
|
137
|
-
*
|
|
138
|
-
* @param app - The Obsidian app instance.
|
|
139
|
-
*/
|
|
140
|
-
constructor(app) {
|
|
141
|
-
super();
|
|
142
|
-
this.app = app;
|
|
143
|
-
}
|
|
144
|
-
app;
|
|
145
|
-
/**
|
|
146
|
-
* The singleton key for the {@link LifecycleEventsComponent} class.
|
|
147
|
-
*/
|
|
148
|
-
static COMPONENT_KEY = Symbol(LifecycleEventsComponent.name);
|
|
149
|
-
/**
|
|
150
|
-
* The async events instance.
|
|
151
|
-
*/
|
|
152
|
-
events = new import_async_events.AsyncEvents();
|
|
153
|
-
triggeredEvents = /* @__PURE__ */ new Set();
|
|
154
|
-
/**
|
|
155
|
-
* Triggers load and registers layoutReady callback.
|
|
156
|
-
*/
|
|
157
|
-
async onload() {
|
|
158
|
-
await this.triggerLifecycleEvent("load");
|
|
159
|
-
this.app.workspace.onLayoutReady((0, import_async.convertAsyncToSync)(async () => {
|
|
160
|
-
await this.triggerLifecycleEvent("layoutReady");
|
|
161
|
-
}));
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Triggers the unload lifecycle event.
|
|
165
|
-
*/
|
|
166
|
-
onunload() {
|
|
167
|
-
(0, import_async.invokeAsyncSafely)(async () => {
|
|
168
|
-
await this.triggerLifecycleEvent("unload");
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Registers a callback to be executed when a lifecycle event is triggered.
|
|
173
|
-
*
|
|
174
|
-
* @param name - The name of the event.
|
|
175
|
-
* @param callback - The callback to execute.
|
|
176
|
-
*/
|
|
177
|
-
async registerForLifecycleEvent(name, callback) {
|
|
178
|
-
await this.waitForLifecycleEvent(name);
|
|
179
|
-
await callback();
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Triggers a lifecycle event.
|
|
183
|
-
*
|
|
184
|
-
* @param name - The name of the lifecycle event to trigger.
|
|
185
|
-
*/
|
|
186
|
-
async triggerLifecycleEvent(name) {
|
|
187
|
-
this.triggeredEvents.add(name);
|
|
188
|
-
await this.events.triggerAsync(name);
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Waits for a lifecycle event to be triggered.
|
|
192
|
-
*
|
|
193
|
-
* @param name - The name of the event.
|
|
194
|
-
* @returns A {@link Promise} that resolves when the event is triggered.
|
|
195
|
-
*/
|
|
196
|
-
async waitForLifecycleEvent(name) {
|
|
197
|
-
if (this.triggeredEvents.has(name)) {
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
await new Promise((resolve) => {
|
|
201
|
-
this.events.once(name, () => {
|
|
202
|
-
resolve();
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
208
|
-
0 && (module.exports = {
|
|
209
|
-
LifecycleEventsComponent
|
|
210
|
-
});
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9jb21wb25lbnRzL2xpZmVjeWNsZS1ldmVudHMtY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29tcG9uZW50IHRoYXQgbWFuYWdlcyBwbHVnaW4gbGlmZWN5Y2xlIGV2ZW50cyAobG9hZCwgbGF5b3V0UmVhZHksIHVubG9hZCkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IEFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB7XG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgaW52b2tlQXN5bmNTYWZlbHlcbn0gZnJvbSAnLi4vLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgQXN5bmNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9hc3luYy1jb21wb25lbnQudHMnO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIGEgbGlmZWN5Y2xlIGV2ZW50LlxuICovXG5leHBvcnQgdHlwZSBMaWZlY3ljbGVFdmVudE5hbWUgPSAnbGF5b3V0UmVhZHknIHwgJ2xvYWQnIHwgJ3VubG9hZCc7XG5cbi8qKlxuICogTWFuYWdlcyBwbHVnaW4gbGlmZWN5Y2xlIGV2ZW50czogYGxvYWRgLCBgbGF5b3V0UmVhZHlgLCBhbmQgYHVubG9hZGAuXG4gKlxuICogQ29tcG9uZW50cyBjYW4gd2FpdCBmb3Igb3IgcmVnaXN0ZXIgY2FsbGJhY2tzIGZvciB0aGVzZSBldmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaWZlY3ljbGVFdmVudHNDb21wb25lbnQgZXh0ZW5kcyBBc3luY0NvbXBvbmVudEJhc2Uge1xuICAvKipcbiAgICogVGhlIHNpbmdsZXRvbiBrZXkgZm9yIHRoZSB7QGxpbmsgTGlmZWN5Y2xlRXZlbnRzQ29tcG9uZW50fSBjbGFzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09NUE9ORU5UX0tFWSA9IFN5bWJvbChMaWZlY3ljbGVFdmVudHNDb21wb25lbnQubmFtZSk7XG5cbiAgLyoqXG4gICAqIFRoZSBhc3luYyBldmVudHMgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzID0gbmV3IEFzeW5jRXZlbnRzKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0cmlnZ2VyZWRFdmVudHMgPSBuZXcgU2V0PExpZmVjeWNsZUV2ZW50TmFtZT4oKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBsaWZlY3ljbGUgZXZlbnRzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcHA6IEFwcCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgbG9hZCBhbmQgcmVnaXN0ZXJzIGxheW91dFJlYWR5IGNhbGxiYWNrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnRyaWdnZXJMaWZlY3ljbGVFdmVudCgnbG9hZCcpO1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLnRyaWdnZXJMaWZlY3ljbGVFdmVudCgnbGF5b3V0UmVhZHknKTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIHVubG9hZCBsaWZlY3ljbGUgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb251bmxvYWQoKTogdm9pZCB7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy50cmlnZ2VyTGlmZWN5Y2xlRXZlbnQoJ3VubG9hZCcpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIHRvIGJlIGV4ZWN1dGVkIHdoZW4gYSBsaWZlY3ljbGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXJGb3JMaWZlY3ljbGVFdmVudChuYW1lOiBMaWZlY3ljbGVFdmVudE5hbWUsIGNhbGxiYWNrOiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yTGlmZWN5Y2xlRXZlbnQobmFtZSk7XG4gICAgYXdhaXQgY2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBhIGxpZmVjeWNsZSBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbGlmZWN5Y2xlIGV2ZW50IHRvIHRyaWdnZXIuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdHJpZ2dlckxpZmVjeWNsZUV2ZW50KG5hbWU6IExpZmVjeWNsZUV2ZW50TmFtZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudHJpZ2dlcmVkRXZlbnRzLmFkZChuYW1lKTtcbiAgICBhd2FpdCB0aGlzLmV2ZW50cy50cmlnZ2VyQXN5bmMobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogV2FpdHMgZm9yIGEgbGlmZWN5Y2xlIGV2ZW50IHRvIGJlIHRyaWdnZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHdhaXRGb3JMaWZlY3ljbGVFdmVudChuYW1lOiBMaWZlY3ljbGVFdmVudE5hbWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy50cmlnZ2VyZWRFdmVudHMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRzLm9uY2UobmFtZSwgKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsMEJBQTRCO0FBQzVCLG1CQUdPO0FBQ1AsNkJBQW1DO0FBWTVCLE1BQU0saUNBQWlDLDBDQUFtQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWtCeEQsWUFBNkIsS0FBVTtBQUM1QyxVQUFNO0FBRDRCO0FBQUEsRUFFcEM7QUFBQSxFQUZvQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZHBDLE9BQXVCLGdCQUFnQixPQUFPLHlCQUF5QixJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLM0QsU0FBUyxJQUFJLGdDQUFZO0FBQUEsRUFFeEIsa0JBQWtCLG9CQUFJLElBQXdCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFjL0QsTUFBc0IsU0FBd0I7QUFDNUMsVUFBTSxLQUFLLHNCQUFzQixNQUFNO0FBQ3ZDLFNBQUssSUFBSSxVQUFVLGtCQUFjLGlDQUFtQixZQUFZO0FBQzlELFlBQU0sS0FBSyxzQkFBc0IsYUFBYTtBQUFBLElBQ2hELENBQUMsQ0FBQztBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtnQixXQUFpQjtBQUMvQix3Q0FBa0IsWUFBWTtBQUM1QixZQUFNLEtBQUssc0JBQXNCLFFBQVE7QUFBQSxJQUMzQyxDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsTUFBYSwwQkFBMEIsTUFBMEIsVUFBOEM7QUFDN0csVUFBTSxLQUFLLHNCQUFzQixJQUFJO0FBQ3JDLFVBQU0sU0FBUztBQUFBLEVBQ2pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBYSxzQkFBc0IsTUFBeUM7QUFDMUUsU0FBSyxnQkFBZ0IsSUFBSSxJQUFJO0FBQzdCLFVBQU0sS0FBSyxPQUFPLGFBQWEsSUFBSTtBQUFBLEVBQ3JDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxNQUFhLHNCQUFzQixNQUF5QztBQUMxRSxRQUFJLEtBQUssZ0JBQWdCLElBQUksSUFBSSxHQUFHO0FBQ2xDO0FBQUEsSUFDRjtBQUVBLFVBQU0sSUFBSSxRQUFjLENBQUMsWUFBWTtBQUNuQyxXQUFLLE9BQU8sS0FBSyxNQUFNLE1BQU07QUFDM0IsZ0JBQVE7QUFBQSxNQUNWLENBQUM7QUFBQSxJQUNILENBQUM7QUFBQSxFQUNIO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file
|
|
3
|
-
*
|
|
4
|
-
* Component that manages plugin lifecycle events (load, layoutReady, unload).
|
|
5
|
-
*/
|
|
6
|
-
import type { App } from 'obsidian';
|
|
7
|
-
import { AsyncEvents } from '../../../async-events.cjs';
|
|
8
|
-
import { AsyncComponentBase } from '../../components/async-component.cjs';
|
|
9
|
-
/**
|
|
10
|
-
* The name of a lifecycle event.
|
|
11
|
-
*/
|
|
12
|
-
export type LifecycleEventName = 'layoutReady' | 'load' | 'unload';
|
|
13
|
-
/**
|
|
14
|
-
* Manages plugin lifecycle events: `load`, `layoutReady`, and `unload`.
|
|
15
|
-
*
|
|
16
|
-
* Components can wait for or register callbacks for these events.
|
|
17
|
-
*/
|
|
18
|
-
export declare class LifecycleEventsComponent extends AsyncComponentBase {
|
|
19
|
-
private readonly app;
|
|
20
|
-
/**
|
|
21
|
-
* The singleton key for the {@link LifecycleEventsComponent} class.
|
|
22
|
-
*/
|
|
23
|
-
static readonly COMPONENT_KEY: unique symbol;
|
|
24
|
-
/**
|
|
25
|
-
* The async events instance.
|
|
26
|
-
*/
|
|
27
|
-
readonly events: AsyncEvents;
|
|
28
|
-
private readonly triggeredEvents;
|
|
29
|
-
/**
|
|
30
|
-
* Creates a new lifecycle events component.
|
|
31
|
-
*
|
|
32
|
-
* @param app - The Obsidian app instance.
|
|
33
|
-
*/
|
|
34
|
-
constructor(app: App);
|
|
35
|
-
/**
|
|
36
|
-
* Triggers load and registers layoutReady callback.
|
|
37
|
-
*/
|
|
38
|
-
onload(): Promise<void>;
|
|
39
|
-
/**
|
|
40
|
-
* Triggers the unload lifecycle event.
|
|
41
|
-
*/
|
|
42
|
-
onunload(): void;
|
|
43
|
-
/**
|
|
44
|
-
* Registers a callback to be executed when a lifecycle event is triggered.
|
|
45
|
-
*
|
|
46
|
-
* @param name - The name of the event.
|
|
47
|
-
* @param callback - The callback to execute.
|
|
48
|
-
*/
|
|
49
|
-
registerForLifecycleEvent(name: LifecycleEventName, callback: () => Promise<void>): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Triggers a lifecycle event.
|
|
52
|
-
*
|
|
53
|
-
* @param name - The name of the lifecycle event to trigger.
|
|
54
|
-
*/
|
|
55
|
-
triggerLifecycleEvent(name: LifecycleEventName): Promise<void>;
|
|
56
|
-
/**
|
|
57
|
-
* Waits for a lifecycle event to be triggered.
|
|
58
|
-
*
|
|
59
|
-
* @param name - The name of the event.
|
|
60
|
-
* @returns A {@link Promise} that resolves when the event is triggered.
|
|
61
|
-
*/
|
|
62
|
-
waitForLifecycleEvent(name: LifecycleEventName): Promise<void>;
|
|
63
|
-
}
|