obsidian-dev-utils 70.3.0 → 71.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 +9 -0
- package/dist/dev/main.js +160 -73
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/obsidian/app.cjs +2 -2
- package/dist/lib/cjs/obsidian/components/abort-signal-component.cjs +1 -2
- package/dist/lib/cjs/obsidian/components/console-debug-component.cjs +4 -2
- package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +2 -3
- package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +2 -2
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +15 -15
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.d.cts +6 -6
- package/dist/lib/cjs/obsidian/plugin/plugin.cjs +97 -49
- package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +61 -32
- package/dist/lib/cjs/value-wrapper.cjs +45 -5
- package/dist/lib/cjs/value-wrapper.d.cts +31 -4
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/obsidian/app.mjs +2 -2
- package/dist/lib/esm/obsidian/components/abort-signal-component.mjs +1 -2
- package/dist/lib/esm/obsidian/components/console-debug-component.mjs +4 -2
- package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +2 -3
- package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +2 -2
- package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.d.mts +6 -6
- package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +15 -15
- package/dist/lib/esm/obsidian/plugin/plugin.d.mts +61 -32
- package/dist/lib/esm/obsidian/plugin/plugin.mjs +97 -49
- package/dist/lib/esm/value-wrapper.d.mts +31 -4
- package/dist/lib/esm/value-wrapper.mjs +45 -5
- package/package.json +1 -1
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
*
|
|
7
7
|
* PluginBase registers universal components (context, i18n, error handling, abort signal, lifecycle events, debug).
|
|
8
8
|
*/
|
|
9
|
-
import type { App, Component, PluginManifest } from 'obsidian';
|
|
10
9
|
import { Plugin as ObsidianPlugin } from 'obsidian';
|
|
11
10
|
import type { PluginEventMap, PluginEventSource } from './plugin-event-source.mjs';
|
|
12
11
|
import { AbortSignalComponent } from '../components/abort-signal-component.mjs';
|
|
@@ -20,49 +19,87 @@ declare const PluginBase_base: import("type-fest").AbstractConstructor<import(".
|
|
|
20
19
|
* Base class for creating Obsidian plugins with a component-based architecture.
|
|
21
20
|
*
|
|
22
21
|
* Registers universal components automatically. Subclasses add or replace components
|
|
23
|
-
* via {@link
|
|
22
|
+
* via {@link removeChild} / {@link addChild}.
|
|
24
23
|
*/
|
|
25
24
|
export declare abstract class PluginBase extends PluginBase_base implements PluginEventSource {
|
|
26
25
|
/**
|
|
27
|
-
*
|
|
26
|
+
* Gets abort signal component.
|
|
27
|
+
*
|
|
28
|
+
* @returns abort signal component.
|
|
28
29
|
*/
|
|
29
|
-
protected abortSignalComponent: AbortSignalComponent;
|
|
30
|
+
protected get abortSignalComponent(): AbortSignalComponent;
|
|
30
31
|
/**
|
|
31
|
-
*
|
|
32
|
+
* Sets abort signal component.
|
|
33
|
+
*
|
|
34
|
+
* @param value - Abort signal component.
|
|
32
35
|
*/
|
|
33
|
-
protected
|
|
36
|
+
protected set abortSignalComponent(value: AbortSignalComponent);
|
|
34
37
|
/**
|
|
35
|
-
*
|
|
38
|
+
* Gets async error handler component.
|
|
39
|
+
*
|
|
40
|
+
* @returns async error handler component.
|
|
36
41
|
*/
|
|
37
|
-
protected
|
|
42
|
+
protected get asyncErrorHandlerComponent(): AsyncErrorHandlerComponent;
|
|
38
43
|
/**
|
|
39
|
-
*
|
|
44
|
+
* Sets async error handler component.
|
|
45
|
+
*
|
|
46
|
+
* @param value - Async error handler component.
|
|
40
47
|
*/
|
|
41
|
-
protected
|
|
48
|
+
protected set asyncErrorHandlerComponent(value: AsyncErrorHandlerComponent);
|
|
42
49
|
/**
|
|
43
|
-
*
|
|
50
|
+
* Gets console debug component.
|
|
51
|
+
*
|
|
52
|
+
* @returns console debug component.
|
|
44
53
|
*/
|
|
45
|
-
protected
|
|
54
|
+
protected get consoleDebugComponent(): ConsoleDebugComponent;
|
|
46
55
|
/**
|
|
47
|
-
*
|
|
56
|
+
* Sets console debug component.
|
|
57
|
+
*
|
|
58
|
+
* @param value - Console debug component.
|
|
48
59
|
*/
|
|
49
|
-
protected
|
|
50
|
-
private readonly wrapperComponent;
|
|
60
|
+
protected set consoleDebugComponent(value: ConsoleDebugComponent);
|
|
51
61
|
/**
|
|
52
|
-
*
|
|
62
|
+
* Gets i18n component.
|
|
53
63
|
*
|
|
54
|
-
* @
|
|
55
|
-
* @param manifest - The plugin manifest.
|
|
64
|
+
* @returns i18n component.
|
|
56
65
|
*/
|
|
57
|
-
|
|
66
|
+
protected get i18nComponent(): I18nComponent;
|
|
58
67
|
/**
|
|
59
|
-
*
|
|
68
|
+
* Sets i18n component.
|
|
60
69
|
*
|
|
61
|
-
* @
|
|
62
|
-
* @param component - The component to add.
|
|
63
|
-
* @returns The added component.
|
|
70
|
+
* @param value - I18n component.
|
|
64
71
|
*/
|
|
65
|
-
|
|
72
|
+
protected set i18nComponent(value: I18nComponent);
|
|
73
|
+
/**
|
|
74
|
+
* Gets plugin context component (plugin ID, debug controller, library styles).
|
|
75
|
+
*
|
|
76
|
+
* @returns plugin context component.
|
|
77
|
+
*/
|
|
78
|
+
protected get pluginContextComponent(): PluginContextComponent;
|
|
79
|
+
/**
|
|
80
|
+
* Sets plugin context component.
|
|
81
|
+
*
|
|
82
|
+
* @param value - Plugin context component.
|
|
83
|
+
*/
|
|
84
|
+
protected set pluginContextComponent(value: PluginContextComponent);
|
|
85
|
+
/**
|
|
86
|
+
* Gets plugin notice component.
|
|
87
|
+
*
|
|
88
|
+
* @returns plugin notice component.
|
|
89
|
+
*/
|
|
90
|
+
protected get pluginNoticeComponent(): PluginNoticeComponent;
|
|
91
|
+
/**
|
|
92
|
+
* Sets plugin notice component.
|
|
93
|
+
*
|
|
94
|
+
* @param value - Plugin notice component.
|
|
95
|
+
*/
|
|
96
|
+
protected set pluginNoticeComponent(value: PluginNoticeComponent);
|
|
97
|
+
private _abortSignalComponent?;
|
|
98
|
+
private _asyncErrorHandlerComponent?;
|
|
99
|
+
private _consoleDebugComponent?;
|
|
100
|
+
private _i18nComponent?;
|
|
101
|
+
private _pluginContextComponent?;
|
|
102
|
+
private _pluginNoticeComponent?;
|
|
66
103
|
/**
|
|
67
104
|
* Called when the external settings change.
|
|
68
105
|
*
|
|
@@ -73,14 +110,6 @@ export declare abstract class PluginBase extends PluginBase_base implements Plug
|
|
|
73
110
|
* Called when the plugin is loaded.
|
|
74
111
|
*/
|
|
75
112
|
onload(): Promise<void>;
|
|
76
|
-
/**
|
|
77
|
-
* Removes a child component from the plugin.
|
|
78
|
-
*
|
|
79
|
-
* @typeParam TComponent - The type of component to remove.
|
|
80
|
-
* @param component - The component to remove.
|
|
81
|
-
* @returns The removed component.
|
|
82
|
-
*/
|
|
83
|
-
removeChild<TComponent extends Component>(component: TComponent): TComponent;
|
|
84
113
|
}
|
|
85
114
|
/**
|
|
86
115
|
* Reloads the specified plugin by disabling and then re-enabling it.
|
|
@@ -27,70 +27,117 @@ import {
|
|
|
27
27
|
} from "obsidian";
|
|
28
28
|
import { mixinAsyncEvents } from "../../async-events.mjs";
|
|
29
29
|
import { printError } from "../../error.mjs";
|
|
30
|
+
import { noopAsync } from "../../function.mjs";
|
|
31
|
+
import { ensureNonNullable } from "../../type-guards.mjs";
|
|
30
32
|
import { AbortSignalComponent } from "../components/abort-signal-component.mjs";
|
|
31
33
|
import { AsyncErrorHandlerComponent } from "../components/async-error-handler-component.mjs";
|
|
32
|
-
import { ComponentEx } from "../components/component-ex.mjs";
|
|
33
34
|
import { ConsoleDebugComponent } from "../components/console-debug-component.mjs";
|
|
34
35
|
import { I18nComponent } from "../components/i18n-component.mjs";
|
|
35
36
|
import { PluginContextComponent } from "../components/plugin-context-component.mjs";
|
|
36
37
|
import { PluginNoticeComponent } from "../components/plugin-notice-component.mjs";
|
|
37
38
|
class PluginBase extends mixinAsyncEvents()(ObsidianPlugin) {
|
|
38
39
|
/**
|
|
39
|
-
*
|
|
40
|
+
* Gets abort signal component.
|
|
41
|
+
*
|
|
42
|
+
* @returns abort signal component.
|
|
40
43
|
*/
|
|
41
|
-
abortSignalComponent
|
|
44
|
+
get abortSignalComponent() {
|
|
45
|
+
return ensureNonNullable(this._abortSignalComponent);
|
|
46
|
+
}
|
|
42
47
|
/**
|
|
43
|
-
*
|
|
48
|
+
* Sets abort signal component.
|
|
49
|
+
*
|
|
50
|
+
* @param value - Abort signal component.
|
|
44
51
|
*/
|
|
45
|
-
|
|
52
|
+
set abortSignalComponent(value) {
|
|
53
|
+
this._abortSignalComponent = value;
|
|
54
|
+
}
|
|
46
55
|
/**
|
|
47
|
-
*
|
|
56
|
+
* Gets async error handler component.
|
|
57
|
+
*
|
|
58
|
+
* @returns async error handler component.
|
|
48
59
|
*/
|
|
49
|
-
|
|
60
|
+
get asyncErrorHandlerComponent() {
|
|
61
|
+
return ensureNonNullable(this._asyncErrorHandlerComponent);
|
|
62
|
+
}
|
|
50
63
|
/**
|
|
51
|
-
*
|
|
64
|
+
* Sets async error handler component.
|
|
65
|
+
*
|
|
66
|
+
* @param value - Async error handler component.
|
|
52
67
|
*/
|
|
53
|
-
|
|
68
|
+
set asyncErrorHandlerComponent(value) {
|
|
69
|
+
this._asyncErrorHandlerComponent = value;
|
|
70
|
+
}
|
|
54
71
|
/**
|
|
55
|
-
*
|
|
72
|
+
* Gets console debug component.
|
|
73
|
+
*
|
|
74
|
+
* @returns console debug component.
|
|
56
75
|
*/
|
|
57
|
-
|
|
76
|
+
get consoleDebugComponent() {
|
|
77
|
+
return ensureNonNullable(this._consoleDebugComponent);
|
|
78
|
+
}
|
|
58
79
|
/**
|
|
59
|
-
*
|
|
80
|
+
* Sets console debug component.
|
|
81
|
+
*
|
|
82
|
+
* @param value - Console debug component.
|
|
60
83
|
*/
|
|
61
|
-
|
|
62
|
-
|
|
84
|
+
set consoleDebugComponent(value) {
|
|
85
|
+
this._consoleDebugComponent = value;
|
|
86
|
+
}
|
|
63
87
|
/**
|
|
64
|
-
*
|
|
88
|
+
* Gets i18n component.
|
|
65
89
|
*
|
|
66
|
-
* @
|
|
67
|
-
* @param manifest - The plugin manifest.
|
|
90
|
+
* @returns i18n component.
|
|
68
91
|
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
this.
|
|
79
|
-
this.pluginNoticeComponent = this.addChild(new PluginNoticeComponent(this.manifest.name));
|
|
80
|
-
this.asyncErrorHandlerComponent = this.addChild(new AsyncErrorHandlerComponent(this.pluginNoticeComponent));
|
|
81
|
-
this.abortSignalComponent = this.addChild(new AbortSignalComponent(this.manifest.id));
|
|
82
|
-
this.consoleDebugComponent = this.addChild(new ConsoleDebugComponent(this.manifest.id));
|
|
92
|
+
get i18nComponent() {
|
|
93
|
+
return ensureNonNullable(this._i18nComponent);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Sets i18n component.
|
|
97
|
+
*
|
|
98
|
+
* @param value - I18n component.
|
|
99
|
+
*/
|
|
100
|
+
set i18nComponent(value) {
|
|
101
|
+
this._i18nComponent = value;
|
|
83
102
|
}
|
|
84
103
|
/**
|
|
85
|
-
*
|
|
104
|
+
* Gets plugin context component (plugin ID, debug controller, library styles).
|
|
86
105
|
*
|
|
87
|
-
* @
|
|
88
|
-
* @param component - The component to add.
|
|
89
|
-
* @returns The added component.
|
|
106
|
+
* @returns plugin context component.
|
|
90
107
|
*/
|
|
91
|
-
|
|
92
|
-
return this.
|
|
108
|
+
get pluginContextComponent() {
|
|
109
|
+
return ensureNonNullable(this._pluginContextComponent);
|
|
93
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Sets plugin context component.
|
|
113
|
+
*
|
|
114
|
+
* @param value - Plugin context component.
|
|
115
|
+
*/
|
|
116
|
+
set pluginContextComponent(value) {
|
|
117
|
+
this._pluginContextComponent = value;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Gets plugin notice component.
|
|
121
|
+
*
|
|
122
|
+
* @returns plugin notice component.
|
|
123
|
+
*/
|
|
124
|
+
get pluginNoticeComponent() {
|
|
125
|
+
return ensureNonNullable(this._pluginNoticeComponent);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Sets plugin notice component.
|
|
129
|
+
*
|
|
130
|
+
* @param value - Plugin notice component.
|
|
131
|
+
*/
|
|
132
|
+
set pluginNoticeComponent(value) {
|
|
133
|
+
this._pluginNoticeComponent = value;
|
|
134
|
+
}
|
|
135
|
+
_abortSignalComponent;
|
|
136
|
+
_asyncErrorHandlerComponent;
|
|
137
|
+
_consoleDebugComponent;
|
|
138
|
+
_i18nComponent;
|
|
139
|
+
_pluginContextComponent;
|
|
140
|
+
_pluginNoticeComponent;
|
|
94
141
|
/**
|
|
95
142
|
* Called when the external settings change.
|
|
96
143
|
*
|
|
@@ -104,17 +151,18 @@ class PluginBase extends mixinAsyncEvents()(ObsidianPlugin) {
|
|
|
104
151
|
* Called when the plugin is loaded.
|
|
105
152
|
*/
|
|
106
153
|
async onload() {
|
|
107
|
-
await
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
154
|
+
await noopAsync();
|
|
155
|
+
this.pluginContextComponent = this.addChild(
|
|
156
|
+
new PluginContextComponent({
|
|
157
|
+
app: this.app,
|
|
158
|
+
pluginId: this.manifest.id
|
|
159
|
+
})
|
|
160
|
+
);
|
|
161
|
+
this.i18nComponent = this.addChild(new I18nComponent());
|
|
162
|
+
this.pluginNoticeComponent = this.addChild(new PluginNoticeComponent(this.manifest.name));
|
|
163
|
+
this.asyncErrorHandlerComponent = this.addChild(new AsyncErrorHandlerComponent(this.pluginNoticeComponent));
|
|
164
|
+
this.abortSignalComponent = this.addChild(new AbortSignalComponent(this.manifest.id));
|
|
165
|
+
this.consoleDebugComponent = this.addChild(new ConsoleDebugComponent(this.manifest.id));
|
|
118
166
|
}
|
|
119
167
|
}
|
|
120
168
|
async function reloadPlugin(plugin) {
|
|
@@ -133,4 +181,4 @@ export {
|
|
|
133
181
|
reloadPlugin,
|
|
134
182
|
showErrorAndDisablePlugin
|
|
135
183
|
};
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBDb21wb25lbnQsXG4gIFBsdWdpbk1hbmlmZXN0XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgTm90aWNlLFxuICBQbHVnaW4gYXMgT2JzaWRpYW5QbHVnaW5cbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbkV2ZW50TWFwLFxuICBQbHVnaW5FdmVudFNvdXJjZVxufSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuXG5pbXBvcnQgeyBtaXhpbkFzeW5jRXZlbnRzIH0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvci50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbXBvbmVudC1leC50cyc7XG5pbXBvcnQgeyBDb25zb2xlRGVidWdDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmltcG9ydCB7IEkxOG5Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2kxOG4tY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5Ob3RpY2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1ub3RpY2UtY29tcG9uZW50LnRzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYSBjb21wb25lbnQtYmFzZWQgYXJjaGl0ZWN0dXJlLlxuICpcbiAqIFJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyBhdXRvbWF0aWNhbGx5LiBTdWJjbGFzc2VzIGFkZCBvciByZXBsYWNlIGNvbXBvbmVudHNcbiAqIHZpYSB7QGxpbmsgUGx1Z2luQmFzZS5hZGRDaGlsZH0gaW4gdGhlaXIgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlIGV4dGVuZHMgbWl4aW5Bc3luY0V2ZW50czxQbHVnaW5FdmVudE1hcD4oKShPYnNpZGlhblBsdWdpbikgaW1wbGVtZW50cyBQbHVnaW5FdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBBYm9ydCBzaWduYWwgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFib3J0U2lnbmFsQ29tcG9uZW50OiBBYm9ydFNpZ25hbENvbXBvbmVudDtcblxuICAvKipcbiAgICogQXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ6IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBDb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBjb25zb2xlRGVidWdDb21wb25lbnQ6IENvbnNvbGVEZWJ1Z0NvbXBvbmVudDtcblxuICAvKipcbiAgICogSTE4biBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgaTE4bkNvbXBvbmVudDogSTE4bkNvbXBvbmVudDtcblxuICAvKipcbiAgICogUGx1Z2luIGNvbnRleHQgY29tcG9uZW50IChwbHVnaW4gSUQsIGRlYnVnIGNvbnRyb2xsZXIsIGxpYnJhcnkgc3R5bGVzKS5cbiAgICovXG4gIHByb3RlY3RlZCBwbHVnaW5Db250ZXh0Q29tcG9uZW50OiBQbHVnaW5Db250ZXh0Q29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdyYXBwZXJDb21wb25lbnQ6IENvbXBvbmVudEV4O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbi5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBBcHAgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIFRoZSBwbHVnaW4gbWFuaWZlc3QuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXBwOiBBcHAsIG1hbmlmZXN0OiBQbHVnaW5NYW5pZmVzdCkge1xuICAgIHN1cGVyKGFwcCwgbWFuaWZlc3QpO1xuICAgIHRoaXMud3JhcHBlckNvbXBvbmVudCA9IHN1cGVyLmFkZENoaWxkKG5ldyBDb21wb25lbnRFeCgpKTtcblxuICAgIHRoaXMucGx1Z2luQ29udGV4dENvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQoXG4gICAgICBuZXcgUGx1Z2luQ29udGV4dENvbXBvbmVudCh7XG4gICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgIHBsdWdpbklkOiB0aGlzLm1hbmlmZXN0LmlkXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5pMThuQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgSTE4bkNvbXBvbmVudCgpKTtcbiAgICB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IFBsdWdpbk5vdGljZUNvbXBvbmVudCh0aGlzLm1hbmlmZXN0Lm5hbWUpKTtcbiAgICB0aGlzLmFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQodGhpcy5wbHVnaW5Ob3RpY2VDb21wb25lbnQpKTtcbiAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQWJvcnRTaWduYWxDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgIHRoaXMuY29uc29sZURlYnVnQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQ29uc29sZURlYnVnQ29tcG9uZW50KHRoaXMubWFuaWZlc3QuaWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hpbGQgY29tcG9uZW50IHRvIHRoZSBwbHVnaW4uXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGFkZGVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhZGRDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy53cmFwcGVyQ29tcG9uZW50LmFkZENoaWxkKGNvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGV4dGVybmFsIHNldHRpbmdzIGNoYW5nZS5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgaWYgbmVlZGVkLiBNYWtlIHN1cmUgdG8gY2FsbCBgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKClgIGZpcnN0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2U/LigpO1xuICAgIGF3YWl0IHRoaXMudHJpZ2dlckFzeW5jKCdleHRlcm5hbFNldHRpbmdzQ2hhbmdlJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMud3JhcHBlckNvbXBvbmVudC5sb2FkV2l0aFByb21pc2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGNoaWxkIGNvbXBvbmVudCBmcm9tIHRoZSBwbHVnaW4uXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byByZW1vdmUuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRvIHJlbW92ZS5cbiAgICogQHJldHVybnMgVGhlIHJlbW92ZWQgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlbW92ZUNoaWxkPFRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ+KGNvbXBvbmVudDogVENvbXBvbmVudCk6IFRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLndyYXBwZXJDb21wb25lbnQucmVtb3ZlQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbG9hZHMgdGhlIHNwZWNpZmllZCBwbHVnaW4gYnkgZGlzYWJsaW5nIGFuZCB0aGVuIHJlLWVuYWJsaW5nIGl0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlbG9hZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogT2JzaWRpYW5QbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2lucyA9IHBsdWdpbi5hcHAucGx1Z2lucztcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG4gIGF3YWl0IHBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW5JZCk7XG4gIGF3YWl0IHBsdWdpbnMuZW5hYmxlUGx1Z2luKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhbiBlcnJvciBtZXNzYWdlIGFzIGEgbm90aWNlLCBsb2dzIGl0IHRvIHRoZSBjb25zb2xlLCBhbmQgZGlzYWJsZXMgdGhlIHNwZWNpZmllZCBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gZGlzYWJsZS5cbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBhbmQgbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luKHBsdWdpbjogT2JzaWRpYW5QbHVnaW4sIG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBuZXcgTm90aWNlKG1lc3NhZ2UpO1xuICBwcmludEVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gIGF3YWl0IHBsdWdpbi5hcHAucGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbi5tYW5pZmVzdC5pZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNBO0FBQUEsRUFDRTtBQUFBLEVBQ0EsVUFBVTtBQUFBLE9BQ0w7QUFPUCxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGtCQUFrQjtBQUMzQixTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLGtDQUFrQztBQUMzQyxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHFCQUFxQjtBQUM5QixTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLDZCQUE2QjtBQVEvQixNQUFlLG1CQUFtQixpQkFBaUMsRUFBRSxjQUFjLEVBQStCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJN0c7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQTtBQUFBLEVBRU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFWLFlBQVksS0FBVSxVQUEwQjtBQUNyRCxVQUFNLEtBQUssUUFBUTtBQUNuQixTQUFLLG1CQUFtQixNQUFNLFNBQVMsSUFBSSxZQUFZLENBQUM7QUFFeEQsU0FBSyx5QkFBeUIsS0FBSztBQUFBLE1BQ2pDLElBQUksdUJBQXVCO0FBQUEsUUFDekIsS0FBSyxLQUFLO0FBQUEsUUFDVixVQUFVLEtBQUssU0FBUztBQUFBLE1BQzFCLENBQUM7QUFBQSxJQUNIO0FBQ0EsU0FBSyxnQkFBZ0IsS0FBSyxTQUFTLElBQUksY0FBYyxDQUFDO0FBQ3RELFNBQUssd0JBQXdCLEtBQUssU0FBUyxJQUFJLHNCQUFzQixLQUFLLFNBQVMsSUFBSSxDQUFDO0FBQ3hGLFNBQUssNkJBQTZCLEtBQUssU0FBUyxJQUFJLDJCQUEyQixLQUFLLHFCQUFxQixDQUFDO0FBQzFHLFNBQUssdUJBQXVCLEtBQUssU0FBUyxJQUFJLHFCQUFxQixLQUFLLFNBQVMsRUFBRSxDQUFDO0FBQ3BGLFNBQUssd0JBQXdCLEtBQUssU0FBUyxJQUFJLHNCQUFzQixLQUFLLFNBQVMsRUFBRSxDQUFDO0FBQUEsRUFDeEY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU2dCLFNBQXVDLFdBQW1DO0FBQ3hGLFdBQU8sS0FBSyxpQkFBaUIsU0FBUyxTQUFTO0FBQUEsRUFDakQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxNQUFzQiwyQkFBMEM7QUFDOUQsVUFBTSxNQUFNLDJCQUEyQjtBQUN2QyxVQUFNLEtBQUssYUFBYSx3QkFBd0I7QUFBQSxFQUNsRDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBc0IsU0FBd0I7QUFDNUMsVUFBTSxLQUFLLGlCQUFpQixpQkFBaUI7QUFBQSxFQUMvQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTZ0IsWUFBMEMsV0FBbUM7QUFDM0YsV0FBTyxLQUFLLGlCQUFpQixZQUFZLFNBQVM7QUFBQSxFQUNwRDtBQUNGO0FBUUEsZUFBc0IsYUFBYSxRQUF1QztBQUN4RSxRQUFNLFVBQVUsT0FBTyxJQUFJO0FBQzNCLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFDakMsUUFBTSxRQUFRLGNBQWMsUUFBUTtBQUNwQyxRQUFNLFFBQVEsYUFBYSxRQUFRO0FBQ3JDO0FBU0EsZUFBc0IsMEJBQTBCLFFBQXdCLFNBQWdDO0FBQ3RHLE1BQUksT0FBTyxPQUFPO0FBQ2xCLGFBQVcsSUFBSSxNQUFNLE9BQU8sQ0FBQztBQUM3QixRQUFNLE9BQU8sSUFBSSxRQUFRLGNBQWMsT0FBTyxTQUFTLEVBQUU7QUFDM0Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB7XG4gIE5vdGljZSxcbiAgUGx1Z2luIGFzIE9ic2lkaWFuUGx1Z2luXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBQbHVnaW5FdmVudE1hcCxcbiAgUGx1Z2luRXZlbnRTb3VyY2Vcbn0gZnJvbSAnLi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcblxuaW1wb3J0IHsgbWl4aW5Bc3luY0V2ZW50cyB9IGZyb20gJy4uLy4uL2FzeW5jLWV2ZW50cy50cyc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcEFzeW5jIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQ29uc29sZURlYnVnQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBJMThuQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9pMThuLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5Db250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tY29udGV4dC1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBSZWdpc3RlcnMgdW5pdmVyc2FsIGNvbXBvbmVudHMgYXV0b21hdGljYWxseS4gU3ViY2xhc3NlcyBhZGQgb3IgcmVwbGFjZSBjb21wb25lbnRzXG4gKiB2aWEge0BsaW5rIHJlbW92ZUNoaWxkfSAvIHtAbGluayBhZGRDaGlsZH0uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbHVnaW5CYXNlIGV4dGVuZHMgbWl4aW5Bc3luY0V2ZW50czxQbHVnaW5FdmVudE1hcD4oKShPYnNpZGlhblBsdWdpbikgaW1wbGVtZW50cyBQbHVnaW5FdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBHZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KCk6IEFib3J0U2lnbmFsQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5fYWJvcnRTaWduYWxDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYWJvcnQgc2lnbmFsIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gQWJvcnQgc2lnbmFsIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgYWJvcnRTaWduYWxDb21wb25lbnQodmFsdWU6IEFib3J0U2lnbmFsQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fYWJvcnRTaWduYWxDb21wb25lbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBhc3luYyBlcnJvciBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQoKTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLl9hc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhc3luYyBlcnJvciBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gQXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KHZhbHVlOiBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCkge1xuICAgIHRoaXMuX2FzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGNvbnNvbGVEZWJ1Z0NvbXBvbmVudCgpOiBDb25zb2xlRGVidWdDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLl9jb25zb2xlRGVidWdDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIENvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBjb25zb2xlRGVidWdDb21wb25lbnQodmFsdWU6IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCkge1xuICAgIHRoaXMuX2NvbnNvbGVEZWJ1Z0NvbXBvbmVudCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgaTE4biBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGkxOG4gY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBpMThuQ29tcG9uZW50KCk6IEkxOG5Db21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLl9pMThuQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGkxOG4gY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBJMThuIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgaTE4bkNvbXBvbmVudCh2YWx1ZTogSTE4bkNvbXBvbmVudCkge1xuICAgIHRoaXMuX2kxOG5Db21wb25lbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudCAocGx1Z2luIElELCBkZWJ1ZyBjb250cm9sbGVyLCBsaWJyYXJ5IHN0eWxlcykuXG4gICAqXG4gICAqIEByZXR1cm5zIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luQ29udGV4dENvbXBvbmVudCgpOiBQbHVnaW5Db250ZXh0Q29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5fcGx1Z2luQ29udGV4dENvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBwbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luQ29udGV4dENvbXBvbmVudCh2YWx1ZTogUGx1Z2luQ29udGV4dENvbXBvbmVudCkge1xuICAgIHRoaXMuX3BsdWdpbkNvbnRleHRDb21wb25lbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHBsdWdpbiBub3RpY2UgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBwbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luTm90aWNlQ29tcG9uZW50KCk6IFBsdWdpbk5vdGljZUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuX3BsdWdpbk5vdGljZUNvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBwbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gUGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHBsdWdpbk5vdGljZUNvbXBvbmVudCh2YWx1ZTogUGx1Z2luTm90aWNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fcGx1Z2luTm90aWNlQ29tcG9uZW50ID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9hYm9ydFNpZ25hbENvbXBvbmVudD86IEFib3J0U2lnbmFsQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX2FzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50PzogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfY29uc29sZURlYnVnQ29tcG9uZW50PzogQ29uc29sZURlYnVnQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX2kxOG5Db21wb25lbnQ/OiBJMThuQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX3BsdWdpbkNvbnRleHRDb21wb25lbnQ/OiBQbHVnaW5Db250ZXh0Q29tcG9uZW50O1xuXG4gIHByaXZhdGUgX3BsdWdpbk5vdGljZUNvbXBvbmVudD86IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGV4dGVybmFsIHNldHRpbmdzIGNoYW5nZS5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgaWYgbmVlZGVkLiBNYWtlIHN1cmUgdG8gY2FsbCBgYXdhaXQgc3VwZXIub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKClgIGZpcnN0LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2U/LigpO1xuICAgIGF3YWl0IHRoaXMudHJpZ2dlckFzeW5jKCdleHRlcm5hbFNldHRpbmdzQ2hhbmdlJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICAgIHRoaXMucGx1Z2luQ29udGV4dENvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQoXG4gICAgICBuZXcgUGx1Z2luQ29udGV4dENvbXBvbmVudCh7XG4gICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgIHBsdWdpbklkOiB0aGlzLm1hbmlmZXN0LmlkXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5pMThuQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgSTE4bkNvbXBvbmVudCgpKTtcbiAgICB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IFBsdWdpbk5vdGljZUNvbXBvbmVudCh0aGlzLm1hbmlmZXN0Lm5hbWUpKTtcbiAgICB0aGlzLmFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQodGhpcy5wbHVnaW5Ob3RpY2VDb21wb25lbnQpKTtcbiAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQWJvcnRTaWduYWxDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgIHRoaXMuY29uc29sZURlYnVnQ29tcG9uZW50ID0gdGhpcy5hZGRDaGlsZChuZXcgQ29uc29sZURlYnVnQ29tcG9uZW50KHRoaXMubWFuaWZlc3QuaWQpKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbG9hZHMgdGhlIHNwZWNpZmllZCBwbHVnaW4gYnkgZGlzYWJsaW5nIGFuZCB0aGVuIHJlLWVuYWJsaW5nIGl0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlbG9hZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogT2JzaWRpYW5QbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGx1Z2lucyA9IHBsdWdpbi5hcHAucGx1Z2lucztcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG4gIGF3YWl0IHBsdWdpbnMuZGlzYWJsZVBsdWdpbihwbHVnaW5JZCk7XG4gIGF3YWl0IHBsdWdpbnMuZW5hYmxlUGx1Z2luKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhbiBlcnJvciBtZXNzYWdlIGFzIGEgbm90aWNlLCBsb2dzIGl0IHRvIHRoZSBjb25zb2xlLCBhbmQgZGlzYWJsZXMgdGhlIHNwZWNpZmllZCBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gZGlzYWJsZS5cbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSBhbmQgbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwbHVnaW4gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93RXJyb3JBbmREaXNhYmxlUGx1Z2luKHBsdWdpbjogT2JzaWRpYW5QbHVnaW4sIG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBuZXcgTm90aWNlKG1lc3NhZ2UpO1xuICBwcmludEVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gIGF3YWl0IHBsdWdpbi5hcHAucGx1Z2lucy5kaXNhYmxlUGx1Z2luKHBsdWdpbi5tYW5pZmVzdC5pZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBO0FBQUEsRUFDRTtBQUFBLEVBQ0EsVUFBVTtBQUFBLE9BQ0w7QUFPUCxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGtCQUFrQjtBQUMzQixTQUFTLGlCQUFpQjtBQUMxQixTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLGtDQUFrQztBQUMzQyxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLHFCQUFxQjtBQUM5QixTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLDZCQUE2QjtBQVEvQixNQUFlLG1CQUFtQixpQkFBaUMsRUFBRSxjQUFjLEVBQStCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTXZILElBQWMsdUJBQTZDO0FBQ3pELFdBQU8sa0JBQWtCLEtBQUsscUJBQXFCO0FBQUEsRUFDckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFjLHFCQUFxQixPQUE2QjtBQUM5RCxTQUFLLHdCQUF3QjtBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFB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
|
|
@@ -9,12 +9,39 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @typeParam T - The type of the wrapped value.
|
|
11
11
|
*/
|
|
12
|
-
export declare class ValueWrapper<T> {
|
|
13
|
-
value: T;
|
|
12
|
+
export declare class ValueWrapper<T = unknown> {
|
|
14
13
|
/**
|
|
15
|
-
*
|
|
14
|
+
* Gets the wrapped value.
|
|
16
15
|
*
|
|
16
|
+
* @returns The wrapped value.
|
|
17
|
+
* @throws An {@link Error} if the value has not been set.
|
|
18
|
+
*/
|
|
19
|
+
get value(): T;
|
|
20
|
+
/**
|
|
21
|
+
* Sets the wrapped value.
|
|
22
|
+
*
|
|
23
|
+
* @param value - The value to wrap.
|
|
24
|
+
*/
|
|
25
|
+
set value(value: T);
|
|
26
|
+
private _value;
|
|
27
|
+
private hasValue;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a new value wrapper. Use {@link ValueWrapper.of} or {@link ValueWrapper.unset} instead.
|
|
30
|
+
*/
|
|
31
|
+
private constructor();
|
|
32
|
+
/**
|
|
33
|
+
* Make wrapper from the value.
|
|
34
|
+
*
|
|
35
|
+
* @typeParam T - Type of the value to wrap.
|
|
17
36
|
* @param value - The value to wrap.
|
|
37
|
+
* @returns The wrapper.
|
|
38
|
+
*/
|
|
39
|
+
static of<T>(value: T): ValueWrapper<T>;
|
|
40
|
+
/**
|
|
41
|
+
* Make the wrapper with unset value.
|
|
42
|
+
*
|
|
43
|
+
* @typeParam T - Type of the value to wrap.
|
|
44
|
+
* @returns The wrapper.
|
|
18
45
|
*/
|
|
19
|
-
|
|
46
|
+
static unset<T>(): ValueWrapper<T>;
|
|
20
47
|
}
|
|
@@ -24,17 +24,57 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
24
24
|
import { noop } from "./function.mjs";
|
|
25
25
|
class ValueWrapper {
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Gets the wrapped value.
|
|
28
|
+
*
|
|
29
|
+
* @returns The wrapped value.
|
|
30
|
+
* @throws An {@link Error} if the value has not been set.
|
|
31
|
+
*/
|
|
32
|
+
get value() {
|
|
33
|
+
if (!this.hasValue) {
|
|
34
|
+
throw new Error("Value is not set");
|
|
35
|
+
}
|
|
36
|
+
return this._value;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Sets the wrapped value.
|
|
28
40
|
*
|
|
29
41
|
* @param value - The value to wrap.
|
|
30
42
|
*/
|
|
31
|
-
|
|
32
|
-
this.
|
|
43
|
+
set value(value) {
|
|
44
|
+
this._value = value;
|
|
45
|
+
this.hasValue = true;
|
|
46
|
+
}
|
|
47
|
+
_value = null;
|
|
48
|
+
hasValue = false;
|
|
49
|
+
/**
|
|
50
|
+
* Creates a new value wrapper. Use {@link ValueWrapper.of} or {@link ValueWrapper.unset} instead.
|
|
51
|
+
*/
|
|
52
|
+
constructor() {
|
|
33
53
|
noop();
|
|
34
54
|
}
|
|
35
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Make wrapper from the value.
|
|
57
|
+
*
|
|
58
|
+
* @typeParam T - Type of the value to wrap.
|
|
59
|
+
* @param value - The value to wrap.
|
|
60
|
+
* @returns The wrapper.
|
|
61
|
+
*/
|
|
62
|
+
static of(value) {
|
|
63
|
+
const wrapper = new ValueWrapper();
|
|
64
|
+
wrapper.value = value;
|
|
65
|
+
return wrapper;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Make the wrapper with unset value.
|
|
69
|
+
*
|
|
70
|
+
* @typeParam T - Type of the value to wrap.
|
|
71
|
+
* @returns The wrapper.
|
|
72
|
+
*/
|
|
73
|
+
static unset() {
|
|
74
|
+
return new ValueWrapper();
|
|
75
|
+
}
|
|
36
76
|
}
|
|
37
77
|
export {
|
|
38
78
|
ValueWrapper
|
|
39
79
|
};
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZhbHVlLXdyYXBwZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3JpbmcgdmFsdWVzLlxuICovXG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIHN0b3JpbmcgdmFsdWVzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB3cmFwcGVkIHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgVmFsdWVXcmFwcGVyPFQgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSB3cmFwcGVkIHZhbHVlLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgd3JhcHBlZCB2YWx1ZS5cbiAgICogQHRocm93cyBBbiB7QGxpbmsgRXJyb3J9IGlmIHRoZSB2YWx1ZSBoYXMgbm90IGJlZW4gc2V0LlxuICAgKi9cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICBpZiAoIXRoaXMuaGFzVmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgbm90IHNldCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl92YWx1ZSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHdyYXBwZWQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB3cmFwLlxuICAgKi9cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNWYWx1ZSA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogbnVsbCB8IFQgPSBudWxsO1xuXG4gIHByaXZhdGUgaGFzVmFsdWUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyB2YWx1ZSB3cmFwcGVyLiBVc2Uge0BsaW5rIFZhbHVlV3JhcHBlci5vZn0gb3Ige0BsaW5rIFZhbHVlV3JhcHBlci51bnNldH0gaW5zdGVhZC5cbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2Ugd3JhcHBlciBmcm9tIHRoZSB2YWx1ZS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVHlwZSBvZiB0aGUgdmFsdWUgdG8gd3JhcC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAqIEByZXR1cm5zIFRoZSB3cmFwcGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZjxUPih2YWx1ZTogVCk6IFZhbHVlV3JhcHBlcjxUPiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IG5ldyBWYWx1ZVdyYXBwZXI8VD4oKTtcbiAgICB3cmFwcGVyLnZhbHVlID0gdmFsdWU7XG4gICAgcmV0dXJuIHdyYXBwZXI7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGUgd3JhcHBlciB3aXRoIHVuc2V0IHZhbHVlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFQgLSBUeXBlIG9mIHRoZSB2YWx1ZSB0byB3cmFwLlxuICAgKiBAcmV0dXJucyBUaGUgd3JhcHBlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdW5zZXQ8VD4oKTogVmFsdWVXcmFwcGVyPFQ+IHtcbiAgICByZXR1cm4gbmV3IFZhbHVlV3JhcHBlcjxUPigpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsWUFBWTtBQU9kLE1BQU0sYUFBMEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9yQyxJQUFXLFFBQVc7QUFDcEIsUUFBSSxDQUFDLEtBQUssVUFBVTtBQUNsQixZQUFNLElBQUksTUFBTSxrQkFBa0I7QUFBQSxJQUNwQztBQUVBLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxJQUFXLE1BQU0sT0FBVTtBQUN6QixTQUFLLFNBQVM7QUFDZCxTQUFLLFdBQVc7QUFBQSxFQUNsQjtBQUFBLEVBRVEsU0FBbUI7QUFBQSxFQUVuQixXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLWCxjQUFjO0FBQ3BCLFNBQUs7QUFBQSxFQUNQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNBLE9BQWMsR0FBTSxPQUEyQjtBQUM3QyxVQUFNLFVBQVUsSUFBSSxhQUFnQjtBQUNwQyxZQUFRLFFBQVE7QUFDaEIsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsUUFBNEI7QUFDeEMsV0FBTyxJQUFJLGFBQWdCO0FBQUEsRUFDN0I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|