obsidian-dev-utils 101.5.0 → 101.6.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 +7 -0
- package/dist/integration-test-plugin/main.js +1714 -1622
- package/dist/lib/cjs/__merged.cjs +4 -1
- package/dist/lib/cjs/__merged.d.cts +1 -0
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/index.cjs +4 -1
- package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/settings-migration-component.cjs +232 -0
- package/dist/lib/cjs/obsidian/components/settings-migration-component.d.cts +120 -0
- package/dist/lib/cjs/obsidian/mobile-trusted-input.cjs +1 -1
- package/dist/lib/cjs/obsidian/mobile-trusted-input.d.cts +5 -3
- package/dist/lib/cjs/obsidian/plugin/index.cjs +6 -3
- package/dist/lib/cjs/obsidian/plugin/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/plugin/settings-migration-api.cjs +141 -0
- package/dist/lib/cjs/obsidian/plugin/settings-migration-api.d.cts +91 -0
- package/dist/lib/esm/__merged.d.mts +1 -0
- package/dist/lib/esm/__merged.mjs +3 -1
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/components/index.mjs +3 -1
- package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +1 -1
- package/dist/lib/esm/obsidian/components/settings-migration-component.d.mts +120 -0
- package/dist/lib/esm/obsidian/components/settings-migration-component.mjs +127 -0
- package/dist/lib/esm/obsidian/mobile-trusted-input.d.mts +5 -3
- package/dist/lib/esm/obsidian/mobile-trusted-input.mjs +1 -1
- package/dist/lib/esm/obsidian/plugin/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/plugin/index.mjs +4 -2
- package/dist/lib/esm/obsidian/plugin/settings-migration-api.d.mts +91 -0
- package/dist/lib/esm/obsidian/plugin/settings-migration-api.mjs +44 -0
- package/obsidian/components/settings-migration-component/package.json +6 -0
- package/obsidian/plugin/settings-migration-api/package.json +6 -0
- package/package.json +15 -15
|
@@ -0,0 +1,232 @@
|
|
|
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 () {
|
|
7
|
+
function ensureBrowserProcess() {
|
|
8
|
+
const browserProcess = {
|
|
9
|
+
browser: true,
|
|
10
|
+
cwd() {
|
|
11
|
+
return '/';
|
|
12
|
+
},
|
|
13
|
+
env: {},
|
|
14
|
+
platform: 'android'
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
18
|
+
const existingProcess = globalThis.process;
|
|
19
|
+
|
|
20
|
+
if (!existingProcess) {
|
|
21
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
22
|
+
globalThis.process = browserProcess;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (existingProcess.versions?.node) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const existingProcessRecord = existingProcess;
|
|
31
|
+
|
|
32
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
33
|
+
existingProcessRecord[key] ??= value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
existingProcessRecord['browser'] = true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function keepName($unknown) {
|
|
40
|
+
return $unknown;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
(function initCjs() {
|
|
44
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
45
|
+
const globalThisRecord = globalThis;
|
|
46
|
+
globalThisRecord['__name'] ??= keepName;
|
|
47
|
+
const originalRequire = require;
|
|
48
|
+
if (originalRequire && !originalRequire.__isPatched) {
|
|
49
|
+
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
50
|
+
require = Object.assign(
|
|
51
|
+
(id) => requirePatched(id),
|
|
52
|
+
originalRequire,
|
|
53
|
+
{
|
|
54
|
+
__isPatched: true
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
60
|
+
|
|
61
|
+
ensureBrowserProcess();
|
|
62
|
+
|
|
63
|
+
function extractDefault(module) {
|
|
64
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
68
|
+
'@codemirror/autocomplete',
|
|
69
|
+
'@codemirror/collab',
|
|
70
|
+
'@codemirror/commands',
|
|
71
|
+
'@codemirror/language',
|
|
72
|
+
'@codemirror/lint',
|
|
73
|
+
'@codemirror/search',
|
|
74
|
+
'@codemirror/state',
|
|
75
|
+
'@codemirror/text',
|
|
76
|
+
'@codemirror/view',
|
|
77
|
+
'@lezer/common',
|
|
78
|
+
'@lezer/highlight',
|
|
79
|
+
'@lezer/lr',
|
|
80
|
+
'obsidian']
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
84
|
+
'@codemirror/closebrackets',
|
|
85
|
+
'@codemirror/comment',
|
|
86
|
+
'@codemirror/fold',
|
|
87
|
+
'@codemirror/gutter',
|
|
88
|
+
'@codemirror/highlight',
|
|
89
|
+
'@codemirror/history',
|
|
90
|
+
'@codemirror/matchbrackets',
|
|
91
|
+
'@codemirror/panel',
|
|
92
|
+
'@codemirror/rangeset',
|
|
93
|
+
'@codemirror/rectangular-selection',
|
|
94
|
+
'@codemirror/stream-parser',
|
|
95
|
+
'@codemirror/tooltip']
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
function requirePatched(id) {
|
|
99
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
100
|
+
return originalRequire?.(id);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
104
|
+
if (globalThis.app.isMobile) {
|
|
105
|
+
if (id === 'process' || id === 'node:process') {
|
|
106
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
107
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
108
|
+
|
|
109
|
+
return process;
|
|
110
|
+
}
|
|
111
|
+
} else {
|
|
112
|
+
const module = originalRequire?.(id);
|
|
113
|
+
if (module) {
|
|
114
|
+
return extractDefault(module);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
119
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
120
|
+
return {};
|
|
121
|
+
}
|
|
122
|
+
})();
|
|
123
|
+
})();
|
|
124
|
+
|
|
125
|
+
"use strict";
|
|
126
|
+
var __defProp = Object.defineProperty;
|
|
127
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
128
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
129
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
130
|
+
var __export = (target, all) => {
|
|
131
|
+
for (var name in all)
|
|
132
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
133
|
+
};
|
|
134
|
+
var __copyProps = (to, from, except, desc) => {
|
|
135
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
136
|
+
for (let key of __getOwnPropNames(from))
|
|
137
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
138
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
139
|
+
}
|
|
140
|
+
return to;
|
|
141
|
+
};
|
|
142
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
143
|
+
var settings_migration_component_exports = {};
|
|
144
|
+
__export(settings_migration_component_exports, {
|
|
145
|
+
SettingsMigrationComponent: () => SettingsMigrationComponent
|
|
146
|
+
});
|
|
147
|
+
module.exports = __toCommonJS(settings_migration_component_exports);
|
|
148
|
+
var import_async = require('../../async.cjs');
|
|
149
|
+
var import_object_utils = require('../../object-utils.cjs');
|
|
150
|
+
var import_plugin_api = require('../plugin/plugin-api.cjs');
|
|
151
|
+
var import_async_events_component = require('./async-events-component.cjs');
|
|
152
|
+
var import_component_ex = require('./component-ex.cjs');
|
|
153
|
+
class SettingsMigrationComponent extends import_component_ex.ComponentEx {
|
|
154
|
+
apiVersionRange;
|
|
155
|
+
app;
|
|
156
|
+
contract;
|
|
157
|
+
getProposedSettings;
|
|
158
|
+
isProposing = false;
|
|
159
|
+
pluginSettingsComponent;
|
|
160
|
+
providerPluginId;
|
|
161
|
+
retireProposedSettings;
|
|
162
|
+
sourcePluginId;
|
|
163
|
+
/**
|
|
164
|
+
* Creates an instance of {@link SettingsMigrationComponent}.
|
|
165
|
+
*
|
|
166
|
+
* @param params - The constructor parameters.
|
|
167
|
+
*/
|
|
168
|
+
constructor(params) {
|
|
169
|
+
super();
|
|
170
|
+
this.apiVersionRange = params.apiVersionRange;
|
|
171
|
+
this.app = params.app;
|
|
172
|
+
this.contract = params.contract;
|
|
173
|
+
this.getProposedSettings = params.getProposedSettings;
|
|
174
|
+
this.pluginSettingsComponent = params.pluginSettingsComponent;
|
|
175
|
+
this.providerPluginId = params.providerPluginId;
|
|
176
|
+
this.retireProposedSettings = params.retireProposedSettings;
|
|
177
|
+
this.sourcePluginId = params.sourcePluginId;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Loads the component, wiring both edges that can make an offer possible.
|
|
181
|
+
*/
|
|
182
|
+
onload() {
|
|
183
|
+
const ref = (0, import_plugin_api.watchPluginApi)((0, import_object_utils.normalizeOptionalProperties)({
|
|
184
|
+
apiVersionRange: this.apiVersionRange,
|
|
185
|
+
app: this.app,
|
|
186
|
+
component: this,
|
|
187
|
+
contract: this.contract,
|
|
188
|
+
pluginId: this.providerPluginId
|
|
189
|
+
}));
|
|
190
|
+
(0, import_async_events_component.registerAsyncEvent)(
|
|
191
|
+
this,
|
|
192
|
+
ref.on("change", () => {
|
|
193
|
+
this.handleChange(ref);
|
|
194
|
+
})
|
|
195
|
+
);
|
|
196
|
+
(0, import_async_events_component.registerAsyncEvent)(
|
|
197
|
+
this,
|
|
198
|
+
this.pluginSettingsComponent.on("loadSettings", () => {
|
|
199
|
+
this.handleChange(ref);
|
|
200
|
+
})
|
|
201
|
+
);
|
|
202
|
+
this.handleChange(ref);
|
|
203
|
+
}
|
|
204
|
+
handleChange(ref) {
|
|
205
|
+
(0, import_async.invokeAsyncSafely)(async () => {
|
|
206
|
+
await this.propose(ref.value);
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
async propose(api) {
|
|
210
|
+
const proposedSettings = this.getProposedSettings();
|
|
211
|
+
if (!api || this.isProposing || proposedSettings === null) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
this.isProposing = true;
|
|
215
|
+
try {
|
|
216
|
+
const result = await api.migrateSettings({
|
|
217
|
+
proposedSettings,
|
|
218
|
+
sourcePluginId: this.sourcePluginId
|
|
219
|
+
});
|
|
220
|
+
if (result.isApplied) {
|
|
221
|
+
await this.retireProposedSettings();
|
|
222
|
+
}
|
|
223
|
+
} finally {
|
|
224
|
+
this.isProposing = false;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
229
|
+
0 && (module.exports = {
|
|
230
|
+
SettingsMigrationComponent
|
|
231
|
+
});
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvc2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbXBvbmVudCB0aGF0IG9mZmVycyBzZXR0aW5ncyB0aGlzIHBsdWdpbiB1c2VkIHRvIG93biB0byB0aGUgcGx1Z2luIHRoYXQgb3ducyB0aGVtIG5vdywgb25jZSwgdGhyb3VnaFxuICogdGhhdCBwbHVnaW4ncyBwdWJsaWMgQVBJLlxuICpcbiAqIFRoaXMgaXMgdGhlIG90aGVyIGhhbGYgb2Yge0BsaW5rIG9ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLXN1Z2dlc3Rpb24tY29tcG9uZW50IVBsdWdpblN1Z2dlc3Rpb25Db21wb25lbnR9LlxuICogVGhlIHN1Z2dlc3Rpb24gYXNrcyB0aGUgdXNlciB0byBpbnN0YWxsIHRoZSBwbHVnaW4gdGhhdCB0b29rIGEgZmVhdHVyZSBvdmVyOyB0aGlzIGNhcnJpZXMgdGhlIHNldHRpbmdzIHRoZXlcbiAqIGhhZCBjb25maWd1cmVkIGZvciBpdCBhY3Jvc3MsIHNvIHRha2luZyB0aGUgc3VnZ2VzdGlvbiBkb2VzIG5vdCBtZWFuIHJlLWVudGVyaW5nIGV2ZXJ5dGhpbmcgYnkgaGFuZC5cbiAqXG4gKiBBIHByb3Bvc2luZyBwbHVnaW4gbmV2ZXIgd3JpdGVzIGludG8gYW5vdGhlciBwbHVnaW4ncyBgZGF0YS5qc29uYC4gSXQgUFJPUE9TRVM6IHRoZSBvdGhlciBwbHVnaW4gb3ducyB0aGVcbiAqIHNldHRpbmdzLCBzbyBpdCBvd25zIHRoZSBkaWFsb2csIGFuZCB0aGUgdXNlciBhcHByb3ZlcywgZWRpdHMgb3IgZGVjbGluZXMuIE9ubHkgYW4gYXBwbGllZCBtaWdyYXRpb24gcmV0aXJlc1xuICogdGhlIHBlbmRpbmcgdmFsdWVzLlxuICpcbiAqIFRoZSBvZmZlciBpcyBtYWRlIHdoZW5ldmVyIGl0IENBTiBzdWNjZWVkLCB3aGljaCBuZWVkcyB0d28gaW5kZXBlbmRlbnQgdGhpbmdzIHRvIGhhdmUgaGFwcGVuZWQgXHUyMDE0IHRoZVxuICogcHJvdmlkZXIncyBBUEkgYmVpbmcgYXZhaWxhYmxlLCBhbmQgdGhpcyBwbHVnaW4ncyBvd24gc2V0dGluZ3MgaGF2aW5nIGFycml2ZWQgZnJvbSBkaXNrLiBFaXRoZXIgY2FuIGxhbmRcbiAqIGZpcnN0LCBzbyBib3RoIGVkZ2VzIGFyZSB3aXJlZCBhbmQgZWFjaCByZS1yZWFkcyB0aGUgY3VycmVudCBzdGF0ZSByYXRoZXIgdGhhbiBhc3N1bWluZyB0aGUgb3RoZXIgaGFzXG4gKiBhbHJlYWR5IGhhcHBlbmVkLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHR5cGUge1xuICBQbHVnaW5BcGlDb250cmFjdCxcbiAgUGx1Z2luQXBpUmVmLFxuICBXYXRjaFBsdWdpbkFwaVBhcmFtc1xufSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgdHlwZSB7IFNldHRpbmdzTWlncmF0aW9uQXBpIH0gZnJvbSAnLi4vcGx1Z2luL3NldHRpbmdzLW1pZ3JhdGlvbi1hcGkudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgeyBpbnZva2VBc3luY1NhZmVseSB9IGZyb20gJy4uLy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL29iamVjdC11dGlscy50cyc7XG5pbXBvcnQgeyB3YXRjaFBsdWdpbkFwaSB9IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tYXBpLnRzJztcbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFdmVudCB9IGZyb20gJy4vYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIFNldHRpbmdzTWlncmF0aW9uQ29tcG9uZW50fSBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAdHlwZVBhcmFtIFRNaWdyYXRhYmxlU2V0dGluZ3MgLSBUaGUgc2V0dGluZ3MgdGhpcyBwbHVnaW4gbWF5IGhhbmQgb3Zlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXR0aW5nc01pZ3JhdGlvbkNvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zPFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIFRoZSBzZW12ZXIgcmFuZ2Ugb2YgY29udHJhY3QgdmVyc2lvbnMgdGhpcyBwbHVnaW4gY29tcGlsZWQgYWdhaW5zdCwgZS5nLiBgJ14xJ2AuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIEV2YWx1YXRlZCBieSBgY29tcGFyZS12ZXJzaW9uc2AsIHdoaWNoIGRvZXMgTk9UIGFjY2VwdCBhIGJhcmUgYCpgLiBTcGVsbCBcImFueSB2ZXJzaW9uXCIgYXMgYCc+PTAuMC4wJ2AuXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uUmFuZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udHJhY3QgdGhpcyBwbHVnaW4gZXhwZWN0cyBvZiB0aGUgcHJvdmlkZXIsIHdoaWNoIHdpbnMgb3ZlciB0aGUgcHJvdmlkZXIncyBvd24gd2hlbiBzdXBwbGllZC5cbiAgICpcbiAgICogV29ydGggc3VwcGx5aW5nLCBhbmQgd29ydGgga2VlcGluZyBOQVJST1cuIEEgbWlncmF0aW9uIHVzdWFsbHkgbmVlZHMgb25lIG1ldGhvZCB0aGF0IGhhcyBleGlzdGVkIHNpbmNlIHRoZVxuICAgKiBwcm92aWRlcidzIGZpcnN0IGNvbnRyYWN0IHZlcnNpb24sIHdoaWxlIHRoZSBzYW1lIHBsdWdpbiBtYXkgcmVhZCBvdGhlciBwYXJ0cyBvZiB0aGF0IEFQSSB0aHJvdWdoIGEgbXVjaFxuICAgKiBuZXdlciBvbmUuIERlY2xhcmluZyB0aGUgd2lkZXIgZXhwZWN0YXRpb24gaGVyZSB3b3VsZCByZWZ1c2UgdG8gb2ZmZXIgdGhlIG1pZ3JhdGlvbiB0byBhIHVzZXIgb24gYW4gb2xkZXJcbiAgICogcHJvdmlkZXIgXHUyMDE0IHdoaWNoIGlzIHByZWNpc2VseSB0aGUgdXNlciB3aG8gc3RpbGwgaGFzIHNldHRpbmdzIHRvIG1pZ3JhdGUuXG4gICAqL1xuICByZWFkb25seSBjb250cmFjdD86IFBsdWdpbkFwaUNvbnRyYWN0O1xuXG4gIC8qKlxuICAgKiBSZWFkcyB0aGUgdmFsdWVzIGN1cnJlbnRseSB3YWl0aW5nIHRvIGJlIGhhbmRlZCBvdmVyLlxuICAgKlxuICAgKiBDYWxsZWQgYWZyZXNoIG9uIGV2ZXJ5IGVkZ2UgcmF0aGVyIHRoYW4gb25jZSwgc28gYW4gaW1wbGVtZW50YXRpb24gc2ltcGx5IHJlYWRzIGl0cyBwbHVnaW4ncyBzZXR0aW5ncy5cbiAgICogUmV0dXJuIGBudWxsYCB3aGVuIHRoZXJlIGlzIG5vdGhpbmcgcGVuZGluZyBcdTIwMTQgYWZ0ZXIgYSBtaWdyYXRpb24gaGFzIGJlZW4gYXBwbGllZCwgb3Igb24gYSB2YXVsdCB0aGF0IG5ldmVyXG4gICAqIGhhZCB0aGVzZSBzZXR0aW5ncyBjb25maWd1cmVkLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWVzIHRvIHByb3Bvc2UsIG9yIGBudWxsYCB3aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gb2ZmZXIuXG4gICAqL1xuICBnZXRQcm9wb3NlZFNldHRpbmdzKHRoaXM6IHZvaWQpOiBudWxsIHwgVE1pZ3JhdGFibGVTZXR0aW5ncztcblxuICAvKipcbiAgICogVGhlIHNldHRpbmdzIGNvbXBvbmVudCBvZiB0aGUgcGx1Z2luIG1ha2luZyB0aGUgcHJvcG9zYWwuXG4gICAqXG4gICAqIFRha2VuIGFzIGEgd2hvbGUgY29tcG9uZW50IHJhdGhlciB0aGFuIGFzIGEgYmFyZSBcInJlYWR5XCIgZmxhZyBzbyB0aGUgaG9zdCBjYW5ub3QgZm9yZ2V0IHRvIHdpcmUgdGhlIHdhaXQ6XG4gICAqIHdoYXRldmVyIHtAbGluayBnZXRQcm9wb3NlZFNldHRpbmdzfSByZWFkcyBpcyBtZWFuaW5nbGVzcyB1bnRpbCB0aGlzIGNvbXBvbmVudCBoYXMgcmVhZCBgZGF0YS5qc29uYC5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblNldHRpbmdzQ29tcG9uZW50OiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2U8b2JqZWN0PjtcblxuICAvKipcbiAgICogVGhlIGBtYW5pZmVzdC5pZGAgb2YgdGhlIHBsdWdpbiB0aGF0IG93bnMgdGhlc2Ugc2V0dGluZ3Mgbm93LCBhcyBsaXN0ZWQgaW4gT2JzaWRpYW4ncyBjb21tdW5pdHkgcGx1Z2luXG4gICAqIHJlZ2lzdHJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXJQbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWNvcmRzIHRoYXQgdGhlIHBlbmRpbmcgdmFsdWVzIGhhdmUgYmVlbiBoYW5kZWQgb3Zlciwgc28gdGhlIG9mZmVyIGlzIG5vdCBtYWRlIGFnYWluLlxuICAgKlxuICAgKiBDYWxsZWQgT05MWSB3aGVuIHRoZSB1c2VyIGFjdHVhbGx5IGFwcGxpZWQgdGhlIG1pZ3JhdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSByZXRpcmVtZW50IGlzIHBlcnNpc3RlZC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogQW4gaW1wbGVtZW50YXRpb24gbXVzdCBQRVJTSVNUIHRoZSByZXRpcmVtZW50IFx1MjAxNCBgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQuZWRpdEFuZFNhdmUoXHUyMDI2KWAsIG5vdFxuICAgKiBgc2V0UHJvcGVydHkoXHUyMDI2KWAuIFRoZSBsYXR0ZXIgb25seSBlZGl0cyB0aGUgaW4tbWVtb3J5IHN0YXRlLCBzbyB0aGUgcmV0aXJlbWVudCBpcyBmb3Jnb3R0ZW4gb24gdGhlIG5leHRcbiAgICogcmVsb2FkIGFuZCB0aGUgbWlncmF0aW9uIGlzIG9mZmVyZWQgYWdhaW4gZm9yZXZlci5cbiAgICovXG4gIHJldGlyZVByb3Bvc2VkU2V0dGluZ3ModGhpczogdm9pZCk6IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIFRoZSBgbWFuaWZlc3QuaWRgIG9mIHRoZSBwbHVnaW4gbWFraW5nIHRoZSBwcm9wb3NhbCwgc28gdGhlIHByb3ZpZGVyJ3MgZGlhbG9nIGNhbiBzYXkgd2hvc2Ugc2V0dGluZ3MgdGhlc2VcbiAgICogYXJlLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlUGx1Z2luSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPZmZlcnMgc2V0dGluZ3MgdGhpcyBwbHVnaW4gdXNlZCB0byBvd24gdG8gdGhlIHBsdWdpbiB0aGF0IG93bnMgdGhlbSBub3cuXG4gKlxuICogQHR5cGVQYXJhbSBUTWlncmF0YWJsZVNldHRpbmdzIC0gVGhlIHNldHRpbmdzIHRoaXMgcGx1Z2luIG1heSBoYW5kIG92ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXR0aW5nc01pZ3JhdGlvbkNvbXBvbmVudDxUTWlncmF0YWJsZVNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIENvbXBvbmVudEV4IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlWZXJzaW9uUmFuZ2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBhcHA6IEFwcDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250cmFjdDogUGx1Z2luQXBpQ29udHJhY3QgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2V0UHJvcG9zZWRTZXR0aW5nczogKCkgPT4gbnVsbCB8IFRNaWdyYXRhYmxlU2V0dGluZ3M7XG4gIHByaXZhdGUgaXNQcm9wb3NpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5TZXR0aW5nc0NvbXBvbmVudDogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXJQbHVnaW5JZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHJldGlyZVByb3Bvc2VkU2V0dGluZ3M6ICgpID0+IFByb21pc2FibGU8dm9pZD47XG4gIHByaXZhdGUgcmVhZG9ubHkgc291cmNlUGx1Z2luSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB7QGxpbmsgU2V0dGluZ3NNaWdyYXRpb25Db21wb25lbnR9LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBTZXR0aW5nc01pZ3JhdGlvbkNvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zPFRNaWdyYXRhYmxlU2V0dGluZ3M+KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwaVZlcnNpb25SYW5nZSA9IHBhcmFtcy5hcGlWZXJzaW9uUmFuZ2U7XG4gICAgdGhpcy5hcHAgPSBwYXJhbXMuYXBwO1xuICAgIHRoaXMuY29udHJhY3QgPSBwYXJhbXMuY29udHJhY3Q7XG4gICAgdGhpcy5nZXRQcm9wb3NlZFNldHRpbmdzID0gcGFyYW1zLmdldFByb3Bvc2VkU2V0dGluZ3M7XG4gICAgdGhpcy5wbHVnaW5TZXR0aW5nc0NvbXBvbmVudCA9IHBhcmFtcy5wbHVnaW5TZXR0aW5nc0NvbXBvbmVudDtcbiAgICB0aGlzLnByb3ZpZGVyUGx1Z2luSWQgPSBwYXJhbXMucHJvdmlkZXJQbHVnaW5JZDtcbiAgICB0aGlzLnJldGlyZVByb3Bvc2VkU2V0dGluZ3MgPSBwYXJhbXMucmV0aXJlUHJvcG9zZWRTZXR0aW5ncztcbiAgICB0aGlzLnNvdXJjZVBsdWdpbklkID0gcGFyYW1zLnNvdXJjZVBsdWdpbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjb21wb25lbnQsIHdpcmluZyBib3RoIGVkZ2VzIHRoYXQgY2FuIG1ha2UgYW4gb2ZmZXIgcG9zc2libGUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIC8vIE5vdGhpbmcgaXMgZ2F0ZWQgb24gdGhlIHBlbmRpbmcgdmFsdWVzIEhFUkUuIFRoZSBzZXR0aW5ncyBjb21wb25lbnQgaXMgYSBzaWJsaW5nIHdob3NlIG93biBsb2FkIGlzIHN0aWxsXG4gICAgLy8gSW4gZmxpZ2h0IGF0IHRoaXMgcG9pbnQsIHNvIGl0IHN0aWxsIGhvbGRzIHRoZSBERUZBVUxUUyBcdTIwMTQgcmVhZGluZyB0aGUgcGVuZGluZyB2YWx1ZXMgbm93IHdvdWxkIHNlZVxuICAgIC8vIE5vdGhpbmcgb24gZXhhY3RseSB0aGUgdmF1bHRzIHRoYXQgaGF2ZSBzb21ldGhpbmcsIHJlZ2lzdGVyIG5vIHdhdGNoLCBhbmQgbG9zZSB0aGUgbWlncmF0aW9uIGZvciBnb29kLlxuICAgIC8vIEJvdGggZWRnZXMgYXJlIHdpcmVkIGluc3RlYWQsIGFuZCBgcHJvcG9zZWAgcmUtcmVhZHMgdGhlIHZhbHVlcyBlYWNoIHRpbWUgaXQgcnVucy5cbiAgICBjb25zdCByZWYgPSB3YXRjaFBsdWdpbkFwaTxTZXR0aW5nc01pZ3JhdGlvbkFwaTxUTWlncmF0YWJsZVNldHRpbmdzPj4obm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPFdhdGNoUGx1Z2luQXBpUGFyYW1zPih7XG4gICAgICBhcGlWZXJzaW9uUmFuZ2U6IHRoaXMuYXBpVmVyc2lvblJhbmdlLFxuICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGNvbnRyYWN0OiB0aGlzLmNvbnRyYWN0LFxuICAgICAgcGx1Z2luSWQ6IHRoaXMucHJvdmlkZXJQbHVnaW5JZFxuICAgIH0pKTtcblxuICAgIC8vIERyaXZlbiBieSB0aGUgcmVmJ3Mgb3duIGV2ZW50IHJhdGhlciB0aGFuIGJ5IGB3aGVuQXZhaWxhYmxlKClgLCBkZWxpYmVyYXRlbHkuIFRoYXQgd2FpdCBibG9ja3MgZm9yIHRlblxuICAgIC8vIFNlY29uZHMgYW5kIHRoZW4gdGhyb3dzIHdoZW4gdGhlIHByb3ZpZGVyIGlzIHNpbXBseSBub3QgaW5zdGFsbGVkLCB3aGljaCB3b3VsZCBzdGFsbCB0aGlzIHBsdWdpbidzIGxvYWRcbiAgICAvLyBGb3IgZXZlcnkgdXNlciB3aG8gZGVjbGluZXMgdGhlIHN1Z2dlc3Rpb24uIFdhdGNoaW5nIGNvc3RzIG5vdGhpbmcgd2hpbGUgdGhlIHByb3ZpZGVyIGlzIGFic2VudCBhbmRcbiAgICAvLyBPZmZlcnMgdGhlIG1pZ3JhdGlvbiB0aGUgbW9tZW50IGl0IGFwcGVhcnMgXHUyMDE0IGluY2x1ZGluZyByaWdodCBhZnRlciB0aGUgdXNlciBpbnN0YWxscyBpdCBmcm9tIHRoZVxuICAgIC8vIFN1Z2dlc3Rpb24gYmFubmVyLlxuICAgIHJlZ2lzdGVyQXN5bmNFdmVudChcbiAgICAgIHRoaXMsXG4gICAgICByZWYub24oJ2NoYW5nZScsICgpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UocmVmKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIFRoZSBzZWNvbmQgZWRnZTogdGhpcyBwbHVnaW4ncyBvd24gc2V0dGluZ3MgYXJyaXZpbmcgZnJvbSBkaXNrLiBJdCBtYXkgZmlyZSBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGZpcnN0LlxuICAgIHJlZ2lzdGVyQXN5bmNFdmVudChcbiAgICAgIHRoaXMsXG4gICAgICB0aGlzLnBsdWdpblNldHRpbmdzQ29tcG9uZW50Lm9uKCdsb2FkU2V0dGluZ3MnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHJlZik7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmhhbmRsZUNoYW5nZShyZWYpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDaGFuZ2UocmVmOiBQbHVnaW5BcGlSZWY8U2V0dGluZ3NNaWdyYXRpb25BcGk8VE1pZ3JhdGFibGVTZXR0aW5ncz4+KTogdm9pZCB7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5wcm9wb3NlKHJlZi52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb3Bvc2UoYXBpOiBudWxsIHwgU2V0dGluZ3NNaWdyYXRpb25BcGk8VE1pZ3JhdGFibGVTZXR0aW5ncz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwcm9wb3NlZFNldHRpbmdzID0gdGhpcy5nZXRQcm9wb3NlZFNldHRpbmdzKCk7XG4gICAgaWYgKCFhcGkgfHwgdGhpcy5pc1Byb3Bvc2luZyB8fCBwcm9wb3NlZFNldHRpbmdzID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQm90aCBlZGdlcyBjYW4gZmlyZSB3aGlsZSB0aGUgcHJvdmlkZXIncyBkaWFsb2cgaXMgb3BlbiwgYW5kIGVhY2ggd291bGQgcmFpc2UgYSBzZWNvbmQgb25lLlxuICAgIHRoaXMuaXNQcm9wb3NpbmcgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcGkubWlncmF0ZVNldHRpbmdzKHtcbiAgICAgICAgcHJvcG9zZWRTZXR0aW5ncyxcbiAgICAgICAgc291cmNlUGx1Z2luSWQ6IHRoaXMuc291cmNlUGx1Z2luSWRcbiAgICAgIH0pO1xuXG4gICAgICAvLyBBIGNhbmNlbCBpcyBub3QgYW4gYW5zd2VyLCBzbyB0aGUgdmFsdWVzIHN0YXkgcGVuZGluZyBhbmQgdGhlIG9mZmVyIGNvbWVzIGJhY2sgXHUyMDE0IG9uIHRoZSBuZXh0IGxvYWQsIG9yXG4gICAgICAvLyBBcyBzb29uIGFzIHRoZSBwcm92aWRlciByZWxvYWRzLiBPbmx5IGFuIGFwcGxpZWQgbWlncmF0aW9uIHJldGlyZXMgdGhlbS5cbiAgICAgIGlmIChyZXN1bHQuaXNBcHBsaWVkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucmV0aXJlUHJvcG9zZWRTZXR0aW5ncygpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzUHJvcG9zaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQStCQSxtQkFBa0M7QUFDbEMsMEJBQTRDO0FBQzVDLHdCQUErQjtBQUMvQixvQ0FBbUM7QUFDbkMsMEJBQTRCO0FBa0ZyQixNQUFNLG1DQUF1RSxnQ0FBWTtBQUFBLEVBQzdFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDTDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9WLFlBQVksUUFBMEU7QUFDM0YsVUFBTTtBQUNOLFNBQUssa0JBQWtCLE9BQU87QUFDOUIsU0FBSyxNQUFNLE9BQU87QUFDbEIsU0FBSyxXQUFXLE9BQU87QUFDdkIsU0FBSyxzQkFBc0IsT0FBTztBQUNsQyxTQUFLLDBCQUEwQixPQUFPO0FBQ3RDLFNBQUssbUJBQW1CLE9BQU87QUFDL0IsU0FBSyx5QkFBeUIsT0FBTztBQUNyQyxTQUFLLGlCQUFpQixPQUFPO0FBQUEsRUFDL0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtnQixTQUFlO0FBSzdCLFVBQU0sVUFBTSxzQ0FBMEQsaURBQWtEO0FBQUEsTUFDdEgsaUJBQWlCLEtBQUs7QUFBQSxNQUN0QixLQUFLLEtBQUs7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLFVBQVUsS0FBSztBQUFBLE1BQ2YsVUFBVSxLQUFLO0FBQUEsSUFDakIsQ0FBQyxDQUFDO0FBT0Y7QUFBQSxNQUNFO0FBQUEsTUFDQSxJQUFJLEdBQUcsVUFBVSxNQUFNO0FBQ3JCLGFBQUssYUFBYSxHQUFHO0FBQUEsTUFDdkIsQ0FBQztBQUFBLElBQ0g7QUFHQTtBQUFBLE1BQ0U7QUFBQSxNQUNBLEtBQUssd0JBQXdCLEdBQUcsZ0JBQWdCLE1BQU07QUFDcEQsYUFBSyxhQUFhLEdBQUc7QUFBQSxNQUN2QixDQUFDO0FBQUEsSUFDSDtBQUVBLFNBQUssYUFBYSxHQUFHO0FBQUEsRUFDdkI7QUFBQSxFQUVRLGFBQWEsS0FBb0U7QUFDdkYsd0NBQWtCLFlBQVk7QUFDNUIsWUFBTSxLQUFLLFFBQVEsSUFBSSxLQUFLO0FBQUEsSUFDOUIsQ0FBQztBQUFBLEVBQ0g7QUFBQSxFQUVBLE1BQWMsUUFBUSxLQUFzRTtBQUMxRixVQUFNLG1CQUFtQixLQUFLLG9CQUFvQjtBQUNsRCxRQUFJLENBQUMsT0FBTyxLQUFLLGVBQWUscUJBQXFCLE1BQU07QUFDekQ7QUFBQSxJQUNGO0FBR0EsU0FBSyxjQUFjO0FBQ25CLFFBQUk7QUFDRixZQUFNLFNBQVMsTUFBTSxJQUFJLGdCQUFnQjtBQUFBLFFBQ3ZDO0FBQUEsUUFDQSxnQkFBZ0IsS0FBSztBQUFBLE1BQ3ZCLENBQUM7QUFJRCxVQUFJLE9BQU8sV0FBVztBQUNwQixjQUFNLEtBQUssdUJBQXVCO0FBQUEsTUFDcEM7QUFBQSxJQUNGLFVBQUU7QUFDQSxXQUFLLGNBQWM7QUFBQSxJQUNyQjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/// <reference path="../../library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Component that offers settings this plugin used to own to the plugin that owns them now, once, through
|
|
6
|
+
* that plugin's public API.
|
|
7
|
+
*
|
|
8
|
+
* This is the other half of {@link obsidian/components/plugin-suggestion-component!PluginSuggestionComponent}.
|
|
9
|
+
* The suggestion asks the user to install the plugin that took a feature over; this carries the settings they
|
|
10
|
+
* had configured for it across, so taking the suggestion does not mean re-entering everything by hand.
|
|
11
|
+
*
|
|
12
|
+
* A proposing plugin never writes into another plugin's `data.json`. It PROPOSES: the other plugin owns the
|
|
13
|
+
* settings, so it owns the dialog, and the user approves, edits or declines. Only an applied migration retires
|
|
14
|
+
* the pending values.
|
|
15
|
+
*
|
|
16
|
+
* The offer is made whenever it CAN succeed, which needs two independent things to have happened — the
|
|
17
|
+
* provider's API being available, and this plugin's own settings having arrived from disk. Either can land
|
|
18
|
+
* first, so both edges are wired and each re-reads the current state rather than assuming the other has
|
|
19
|
+
* already happened.
|
|
20
|
+
*/
|
|
21
|
+
import type { App } from 'obsidian' with { 'resolution-mode': 'import' };
|
|
22
|
+
import type { Promisable } from 'type-fest' with { 'resolution-mode': 'import' };
|
|
23
|
+
import type { PluginApiContract } from '../plugin/plugin-api.cjs';
|
|
24
|
+
import type { PluginSettingsComponentBase } from './plugin-settings-component.cjs';
|
|
25
|
+
import { ComponentEx } from './component-ex.cjs';
|
|
26
|
+
/**
|
|
27
|
+
* Parameters for the {@link SettingsMigrationComponent} constructor.
|
|
28
|
+
*
|
|
29
|
+
* @typeParam TMigratableSettings - The settings this plugin may hand over.
|
|
30
|
+
*/
|
|
31
|
+
export interface SettingsMigrationComponentConstructorParams<TMigratableSettings extends object> {
|
|
32
|
+
/**
|
|
33
|
+
* The semver range of contract versions this plugin compiled against, e.g. `'^1'`.
|
|
34
|
+
*
|
|
35
|
+
* @remarks
|
|
36
|
+
* Evaluated by `compare-versions`, which does NOT accept a bare `*`. Spell "any version" as `'>=0.0.0'`.
|
|
37
|
+
*/
|
|
38
|
+
readonly apiVersionRange: string;
|
|
39
|
+
/**
|
|
40
|
+
* The Obsidian app instance.
|
|
41
|
+
*/
|
|
42
|
+
readonly app: App;
|
|
43
|
+
/**
|
|
44
|
+
* The contract this plugin expects of the provider, which wins over the provider's own when supplied.
|
|
45
|
+
*
|
|
46
|
+
* Worth supplying, and worth keeping NARROW. A migration usually needs one method that has existed since the
|
|
47
|
+
* provider's first contract version, while the same plugin may read other parts of that API through a much
|
|
48
|
+
* newer one. Declaring the wider expectation here would refuse to offer the migration to a user on an older
|
|
49
|
+
* provider — which is precisely the user who still has settings to migrate.
|
|
50
|
+
*/
|
|
51
|
+
readonly contract?: PluginApiContract;
|
|
52
|
+
/**
|
|
53
|
+
* Reads the values currently waiting to be handed over.
|
|
54
|
+
*
|
|
55
|
+
* Called afresh on every edge rather than once, so an implementation simply reads its plugin's settings.
|
|
56
|
+
* Return `null` when there is nothing pending — after a migration has been applied, or on a vault that never
|
|
57
|
+
* had these settings configured.
|
|
58
|
+
*
|
|
59
|
+
* @returns The values to propose, or `null` when there is nothing to offer.
|
|
60
|
+
*/
|
|
61
|
+
getProposedSettings(this: void): null | TMigratableSettings;
|
|
62
|
+
/**
|
|
63
|
+
* The settings component of the plugin making the proposal.
|
|
64
|
+
*
|
|
65
|
+
* Taken as a whole component rather than as a bare "ready" flag so the host cannot forget to wire the wait:
|
|
66
|
+
* whatever {@link getProposedSettings} reads is meaningless until this component has read `data.json`.
|
|
67
|
+
*/
|
|
68
|
+
readonly pluginSettingsComponent: PluginSettingsComponentBase<object>;
|
|
69
|
+
/**
|
|
70
|
+
* The `manifest.id` of the plugin that owns these settings now, as listed in Obsidian's community plugin
|
|
71
|
+
* registry.
|
|
72
|
+
*/
|
|
73
|
+
readonly providerPluginId: string;
|
|
74
|
+
/**
|
|
75
|
+
* Records that the pending values have been handed over, so the offer is not made again.
|
|
76
|
+
*
|
|
77
|
+
* Called ONLY when the user actually applied the migration.
|
|
78
|
+
*
|
|
79
|
+
* @returns A {@link Promise} that resolves once the retirement is persisted.
|
|
80
|
+
*
|
|
81
|
+
* @remarks
|
|
82
|
+
* An implementation must PERSIST the retirement — `pluginSettingsComponent.editAndSave(…)`, not
|
|
83
|
+
* `setProperty(…)`. The latter only edits the in-memory state, so the retirement is forgotten on the next
|
|
84
|
+
* reload and the migration is offered again forever.
|
|
85
|
+
*/
|
|
86
|
+
retireProposedSettings(this: void): Promisable<void>;
|
|
87
|
+
/**
|
|
88
|
+
* The `manifest.id` of the plugin making the proposal, so the provider's dialog can say whose settings these
|
|
89
|
+
* are.
|
|
90
|
+
*/
|
|
91
|
+
readonly sourcePluginId: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Offers settings this plugin used to own to the plugin that owns them now.
|
|
95
|
+
*
|
|
96
|
+
* @typeParam TMigratableSettings - The settings this plugin may hand over.
|
|
97
|
+
*/
|
|
98
|
+
export declare class SettingsMigrationComponent<TMigratableSettings extends object> extends ComponentEx {
|
|
99
|
+
private readonly apiVersionRange;
|
|
100
|
+
private readonly app;
|
|
101
|
+
private readonly contract;
|
|
102
|
+
private readonly getProposedSettings;
|
|
103
|
+
private isProposing;
|
|
104
|
+
private readonly pluginSettingsComponent;
|
|
105
|
+
private readonly providerPluginId;
|
|
106
|
+
private readonly retireProposedSettings;
|
|
107
|
+
private readonly sourcePluginId;
|
|
108
|
+
/**
|
|
109
|
+
* Creates an instance of {@link SettingsMigrationComponent}.
|
|
110
|
+
*
|
|
111
|
+
* @param params - The constructor parameters.
|
|
112
|
+
*/
|
|
113
|
+
constructor(params: SettingsMigrationComponentConstructorParams<TMigratableSettings>);
|
|
114
|
+
/**
|
|
115
|
+
* Loads the component, wiring both edges that can make an offer possible.
|
|
116
|
+
*/
|
|
117
|
+
onload(): void;
|
|
118
|
+
private handleChange;
|
|
119
|
+
private propose;
|
|
120
|
+
}
|
|
@@ -192,4 +192,4 @@ function getSeamFunction(name) {
|
|
|
192
192
|
typeIntoEditor,
|
|
193
193
|
unhoverElement
|
|
194
194
|
});
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vYmlsZS10cnVzdGVkLWlucHV0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTW9iaWxlLW9ubHkgdHJ1c3RlZCBpbnB1dCBoZWxwZXJzLiBUaGVyZSBpcyBubyBpbi1yZW5kZXJlciByb3V0ZSB0byBhIHRydXN0ZWQgZXZlbnQgb24gYSBwaG9uZSBcdTIwMTRcbiAqIGB3ZWJDb250ZW50cy5zZW5kSW5wdXRFdmVudGAgaXMgRWxlY3Ryb24tb25seSBhbmQgYSBkaXNwYXRjaGVkIGV2ZW50IGlzIHVudHJ1c3RlZCBcdTIwMTQgc28gdGhlIGluamVjdGlvblxuICogaGFzIHRvIGJlIGEgcm91bmQtdHJpcDogdGhlIHJlcXVlc3QgZ29lcyB0byB0aGUgaG9zdCBvdmVyIHRoZSBgb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZ2AgaGFybmVzcydzXG4gKiBiaW5kaW5nIGNoYW5uZWwsIGFuZCB0aGUgaG9zdCBpbmplY3RzIGl0IGludG8gdGhlIFdlYlZpZXcgb3ZlciBDRFAuXG4gKlxuICogVGhhdCBjaGFubmVsIGlzIGluc3RhbGxlZCBieSB0aGUgaGFybmVzcydzIEFwcGl1bSB0cmFuc3BvcnQsIHNvIHRoZXNlIGhlbHBlcnMgKipkZWxlZ2F0ZSoqIHRvIHRoZVxuICogaGFybmVzcyByYXRoZXIgdGhhbiByZWltcGxlbWVudGluZyB0aGUgd2lyZSBmb3JtYXQ6IHRoZXkgY2FsbFxuICogYHdpbmRvdy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nLnRydXN0ZWRJbnB1dC4qYCwgd2hpY2ggaG9sZHMgdGhlIHZlcnkgZnVuY3Rpb24gb2JqZWN0cyB0aGUgaGFybmVzc1xuICogc2VlZHMgaW50byBhbiBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUncyBgbGliYCBiYWcuIERlbGVnYXRpbmcgaXMgd2hhdCBrZWVwcyB0aGUgbW9iaWxlIHNlbWFudGljcyBcdTIwMTRcbiAqIHRhcCwgbG9uZy1wcmVzcyBmb3IgYGJ1dHRvbjogJ3JpZ2h0J2AsIGEgdGhyb3cgZm9yIGAnbWlkZGxlJ2AsIHRoZSBgcHJlc3NLZXlgIGtleSBzZXQsIGFuZCB0aGUgdGhyb3dzXG4gKiBmb3IgdGhlIGA6aG92ZXJgIGhlbHBlcnMgXHUyMDE0IGlkZW50aWNhbCB0byB0aGUgaGFybmVzcydzIG93biBjb3B5IGZvciBmcmVlLCBpbnN0ZWFkIG9mIGEgc2Vjb25kXG4gKiBpbXBsZW1lbnRhdGlvbiB0byBoYW5kLXN5bmMgKHNlZSB0aGUgcHJvamVjdCBgQUdFTlRTLm1kYCAqKkw0KiopLlxuICpcbiAqIFRoZSBuYW1lc3BhY2Ugc2hhcGUgaXMgZGVjbGFyZWQgKipsb2NhbGx5Kio6IHRoZSBoYXJuZXNzIG11c3QgbmV2ZXIgYmUgYSBkZXBlbmRlbmN5IG9mIHRoaXMgbGlicmFyeSwgaW5cbiAqIGVpdGhlciBkaXJlY3Rpb24sIGF0IHJ1bnRpbWUgb3IgaW4gdHlwZXMuXG4gKlxuICogKipDb25zZXF1ZW5jZSwgYW5kIGl0IGlzIGRlbGliZXJhdGU6KiogdGhlc2UgaGVscGVycyBvbmx5IHdvcmsgaW5zaWRlIGFuIGFwcCB0aGUgaGFybmVzcyBib290c3RyYXBwZWQuXG4gKiBPdXRzaWRlIG9uZSB0aGV5IHRocm93IGEgbWVzc2FnZSBzYXlpbmcgc28sIHJhdGhlciB0aGFuIHNpbGVudGx5IGRvaW5nIG5vdGhpbmcgXHUyMDE0IGEgbm8tb3Agd291bGQgcmVjcmVhdGVcbiAqIGV4YWN0bHkgdGhlIGZhbHNlLWNvbmZpZGVuY2UgZmFpbHVyZSB0cnVzdGVkIGlucHV0IGV4aXN0cyB0byBlbmQuIENvbnN1bWVycyB3YW50aW5nIHRoZSBwbGF0Zm9ybS1jb3JyZWN0XG4gKiBoZWxwZXIgc2hvdWxkIGltcG9ydCB0aGUge0BsaW5rIC4uL3RydXN0ZWQtaW5wdXQudHMgfCB0cnVzdGVkLWlucHV0fSBmYWNhZGUgaW5zdGVhZCBvZiB0aGlzIG1vZHVsZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIENsaWNrRWxlbWVudFBhcmFtcyxcbiAgQ2xpY2tNb3VzZVBhcmFtcyxcbiAgSG92ZXJFbGVtZW50UGFyYW1zLFxuICBNb3ZlTW91c2VQYXJhbXMsXG4gIFByZXNzS2V5UGFyYW1zLFxuICBUeXBlSW50b0VkaXRvclBhcmFtcyxcbiAgVW5ob3ZlckVsZW1lbnRQYXJhbXNcbiAgLy8gVGhlIHBhcmFtZXRlciBjb250cmFjdHMgbGl2ZSB3aXRoIHRoZSBkZXNrdG9wIHR3aW4gYW5kIGFyZSBzaGFyZWQgdmVyYmF0aW0sIHNvIHRoZSB0d28gcGxhdGZvcm1zXG4gIC8vIENhbm5vdCBkcmlmdCBhcGFydCBvbiB3aGF0IGEgY2FsbGVyIHBhc3Nlcy4gQSB0eXBlLW9ubHkgaW1wb3J0IGxvYWRzIG5vdGhpbmcgKEw1KS5cbn0gZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuXG4vKipcbiAqIFRoZSBnbG9iYWwgdGhlIGhhcm5lc3MgYm9vdHN0cmFwcyBpdHMgbmFtZXNwYWNlIG9udG8uXG4gKi9cbmludGVyZmFjZSBPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ0hvbGRlciB7XG4gIF9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc6IE9ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nTmFtZXNwYWNlO1xufVxuXG4vKipcbiAqIFRoZSBwYXJ0IG9mIHRoZSBoYXJuZXNzIG5hbWVzcGFjZSB0aGlzIG1vZHVsZSByZWFkcy4gRXZlcnl0aGluZyBlbHNlIG9uIGl0IGlzIG5vbmUgb2YgdGhpcyBtb2R1bGUnc1xuICogYnVzaW5lc3MuXG4gKi9cbmludGVyZmFjZSBPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSB7XG4gIHRydXN0ZWRJbnB1dD86IFBhcnRpYWw8VHJ1c3RlZElucHV0U2VhbT47XG59XG5cbi8qKlxuICogVGhlIHRydXN0ZWQtaW5wdXQgc2VhbSB0aGUgYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmdgIGhhcm5lc3MgcHVibGlzaGVzIG9uIGl0cyBuYW1lc3BhY2UuXG4gKlxuICogRGVjbGFyZWQgaGVyZSByYXRoZXIgdGhhbiBpbXBvcnRlZDogdGhlIGhhcm5lc3MgaXMgbm90IGEgZGVwZW5kZW5jeSBvZiB0aGlzIGxpYnJhcnkuIEl0IG1pcnJvcnNcbiAqIGBuYW1lc3BhY2UtYm9vdHN0cmFwLnRzYCdzIGB0cnVzdGVkSW5wdXRgIG9iamVjdCwgYW5kIHRoZSBtaXJyb3JpbmcgaXMgYnkgaGFuZCBcdTIwMTQgdGhlIHNhbWVcbiAqIGJlaGF2aW9yYWwtc3luYyBvYmxpZ2F0aW9uIHRoZSBkZXNrdG9wIHR3aW4gY2Fycmllcy5cbiAqL1xuaW50ZXJmYWNlIFRydXN0ZWRJbnB1dFNlYW0ge1xuICBjbGlja0VsZW1lbnQocGFyYW1zOiBDbGlja0VsZW1lbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICBjbGlja01vdXNlKHBhcmFtczogQ2xpY2tNb3VzZVBhcmFtcyk6IFByb21pc2U8dm9pZD47XG4gIGhvdmVyRWxlbWVudChwYXJhbXM6IEhvdmVyRWxlbWVudFBhcmFtcyk6IFByb21pc2U8dm9pZD47XG4gIG1vdmVNb3VzZShwYXJhbXM6IE1vdmVNb3VzZVBhcmFtcyk6IFByb21pc2U8dm9pZD47XG4gIHByZXNzS2V5KHBhcmFtczogUHJlc3NLZXlQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICB0eXBlSW50b0VkaXRvcihwYXJhbXM6IFR5cGVJbnRvRWRpdG9yUGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcbiAgdW5ob3ZlckVsZW1lbnQocGFyYW1zOiBVbmhvdmVyRWxlbWVudFBhcmFtcyk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQ2xpY2tzIHRoZSBjZW50ZXIgb2YgYW4gZWxlbWVudCB1c2luZyAqKnRydXN0ZWQqKiB0b3VjaCBpbnB1dCBcdTIwMTQgYSBDRFAgdGFwIGluIHRoZSBXZWJWaWV3LCBpbmplY3RlZCBieVxuICogdGhlIGhvc3QuXG4gKlxuICogVGhlIGVsZW1lbnQtcmVsYXRpdmUgY291bnRlcnBhcnQgb2Yge0BsaW5rIGNsaWNrTW91c2V9LiBgYnV0dG9uOiAncmlnaHQnYCBpcyB0aGUgbG9uZy1wcmVzcyB0aGF0IG9wZW5zXG4gKiBPYnNpZGlhbiBNb2JpbGUncyBjb250ZXh0IG1lbnU7IGAnbWlkZGxlJ2AgdGhyb3dzLCBiZWNhdXNlIHRvdWNoIGhhcyBubyBnZXN0dXJlIGZvciBpdCBhbmQgaW52ZW50aW5nXG4gKiBvbmUgd291bGQgYmUgd29yc2UgdGhhbiBzYXlpbmcgc28uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlbGVtZW50IHRvIGNsaWNrLCB0aGUgYnV0dG9uIHRvIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzIHRvIGhvbGQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGNsaWNrIGhhcyBiZWVuIGluamVjdGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xpY2tFbGVtZW50KHBhcmFtczogQ2xpY2tFbGVtZW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbignY2xpY2tFbGVtZW50JykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBDbGlja3MgYXQgdGhlIGdpdmVuIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHVzaW5nICoqdHJ1c3RlZCoqIHRvdWNoIGlucHV0LCBpbmplY3RlZCBieSB0aGUgaG9zdCBvdmVyIENEUC5cbiAqXG4gKiBUaGUgY29vcmRpbmF0ZXMgYXJlIENTUyBwaXhlbHMgaW4gdGhlIFdlYlZpZXcncyBvd24gdmlld3BvcnQgXHUyMDE0IHdoaWNoIGlzIHdoYXQgQ0RQIHRha2VzIFx1MjAxNCBzb1xuICogYGRldmljZVBpeGVsUmF0aW9gIG5ldmVyIGVudGVycyB0aGUgcGljdHVyZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHRvIGNsaWNrIGF0LCB0aGUgYnV0dG9uIHRvIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzIHRvIGhvbGQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGNsaWNrIGhhcyBiZWVuIGluamVjdGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xpY2tNb3VzZShwYXJhbXM6IENsaWNrTW91c2VQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZ2V0U2VhbUZ1bmN0aW9uKCdjbGlja01vdXNlJykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBBbHdheXMgdGhyb3dzOiBgOmhvdmVyYCBoYXMgbm8gdG91Y2ggZXF1aXZhbGVudC5cbiAqXG4gKiBBIHNpbGVudCBuby1vcCBoZXJlIHdvdWxkIGxldCBhIGhvdmVyIHRlc3QgcGFzcyBvbiBhIHBob25lIHdpdGhvdXQgaG92ZXJpbmcgYW55dGhpbmcsIHNvIHRoZSBtb2JpbGUgYXJtXG4gKiByZWZ1c2VzIGluc3RlYWQuIEdhdGUgdGhlIGFzc2VydGlvbiBvbiBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYCwgb3IgZHJpdmUgdGhlIGVsZW1lbnQgd2l0aFxuICoge0BsaW5rIGNsaWNrRWxlbWVudH0uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBlbGVtZW50IHRvIGhvdmVyLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCBuZXZlciByZXNvbHZlcyBcdTIwMTQgdGhlIGNhbGwgdGhyb3dzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaG92ZXJFbGVtZW50KHBhcmFtczogSG92ZXJFbGVtZW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbignaG92ZXJFbGVtZW50JykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBBbHdheXMgdGhyb3dzOiBhIHRvdWNoIHNjcmVlbiBoYXMgbm8gcGVyc2lzdGVudCBwb2ludGVyIHRvIG1vdmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB2aWV3cG9ydCBjb29yZGluYXRlcyB0byBtb3ZlIHRvLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCBuZXZlciByZXNvbHZlcyBcdTIwMTQgdGhlIGNhbGwgdGhyb3dzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbW92ZU1vdXNlKHBhcmFtczogTW92ZU1vdXNlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbignbW92ZU1vdXNlJykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBQcmVzc2VzIGEgc2luZ2xlIGtleSB1c2luZyAqKnRydXN0ZWQqKiBrZXlib2FyZCBpbnB1dCwgaW5qZWN0ZWQgYnkgdGhlIGhvc3Qgb3ZlciBDRFAuXG4gKlxuICogTmFtZWQga2V5cyAoYCdFbnRlcidgLCBgJ0VzY2FwZSdgLCBgJ1RhYidgLCBgJ0JhY2tzcGFjZSdgLCBgJ0RlbGV0ZSdgLCB0aGUgYXJyb3dzKSBhbmQgc2luZ2xlIHByaW50YWJsZVxuICogY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVkOyBhbnl0aGluZyBlbHNlIHRocm93cyByYXRoZXIgdGhhbiBwcmVzc2luZyBub3RoaW5nLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUga2V5IHRvIHByZXNzIGFuZCBhbnkgbW9kaWZpZXJzIHRvIGhvbGQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGtleSBwcmVzcyBoYXMgYmVlbiBpbmplY3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXNzS2V5KHBhcmFtczogUHJlc3NLZXlQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZ2V0U2VhbUZ1bmN0aW9uKCdwcmVzc0tleScpKHBhcmFtcyk7XG59XG5cbi8qKlxuICogVHlwZXMgdGV4dCBpbnRvIGEgQ29kZU1pcnJvciBlZGl0b3IgdXNpbmcgKip0cnVzdGVkKioga2V5Ym9hcmQgaW5wdXQsIGluamVjdGVkIGJ5IHRoZSBob3N0IG92ZXIgQ0RQLlxuICpcbiAqIEZvY3VzZXMgdGhlIGVkaXRvciAoY2FyZXQgdG8gdGhlIGVuZCksIHByZXNzZXMgZXZlcnkgY29kZSBwb2ludCBvZiB0aGUgdGV4dCwgdGhlbiBwb2xscyB1bnRpbCB0aGVcbiAqIGRvY3VtZW50IHJlZmxlY3RzIHRoZSBpbnB1dCBvciBhIGJvdW5kZWQgdGltZW91dCBlbGFwc2VzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZWRpdG9yIHRvIHR5cGUgaW50byBhbmQgdGhlIHRleHQgdG8gdHlwZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUga2V5c3Ryb2tlcyBoYXZlIHNldHRsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0eXBlSW50b0VkaXRvcihwYXJhbXM6IFR5cGVJbnRvRWRpdG9yUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbigndHlwZUludG9FZGl0b3InKShwYXJhbXMpO1xufVxuXG4vKipcbiAqIEFsd2F5cyB0aHJvd3MsIGZvciB0aGUgc2FtZSByZWFzb24gYXMge0BsaW5rIGhvdmVyRWxlbWVudH06IHRoZXJlIGlzIG5vIGA6aG92ZXJgIHN0YXRlIHRvIGNsZWFyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZWxlbWVudCB0byBtb3ZlIHRoZSBwb2ludGVyIGF3YXkgZnJvbS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgbmV2ZXIgcmVzb2x2ZXMgXHUyMDE0IHRoZSBjYWxsIHRocm93cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVuaG92ZXJFbGVtZW50KHBhcmFtczogVW5ob3ZlckVsZW1lbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZ2V0U2VhbUZ1bmN0aW9uKCd1bmhvdmVyRWxlbWVudCcpKHBhcmFtcyk7XG59XG5cbmZ1bmN0aW9uIGdldFNlYW1GdW5jdGlvbjxLZXkgZXh0ZW5kcyBrZXlvZiBUcnVzdGVkSW5wdXRTZWFtPihuYW1lOiBLZXkpOiBUcnVzdGVkSW5wdXRTZWFtW0tleV0ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpcyAtLSBUaGUgaGFybmVzcyBpbnN0YWxscyBpdHMgbmFtZXNwYWNlIG9uIHRoZSByZWFsbSBnbG9iYWw7IHRoZXJlIGlzIG5vd2hlcmUgZWxzZSB0byByZWFkIGl0IGZyb20uXG4gIGNvbnN0IGhvbGRlciA9IGdsb2JhbFRoaXMgYXMgUGFydGlhbDxPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ0hvbGRlcj47XG4gIGNvbnN0IHNlYW1GdW5jdGlvbiA9IGhvbGRlci5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy50cnVzdGVkSW5wdXQ/LltuYW1lXTtcbiAgaWYgKCFzZWFtRnVuY3Rpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVHJ1c3RlZCBpbnB1dCBpcyB1bmF2YWlsYWJsZSBvbiBtb2JpbGU6IFxcYHdpbmRvdy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nLnRydXN0ZWRJbnB1dC4ke25hbWV9XFxgIGlzIG5vdCBpbnN0YWxsZWQuIGBcbiAgICAgICAgKyAnQSBwaG9uZSBoYXMgbm8gaW4tcmVuZGVyZXIgcm91dGUgdG8gYSB0cnVzdGVkIGV2ZW50LCBzbyB0aGUgaW5qZWN0aW9uIGlzIGEgcm91bmQtdHJpcCB0byB0aGUgaG9zdCBvdmVyIHRoZSAnXG4gICAgICAgICsgJ2BvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nYCBBcHBpdW0gdHJhbnNwb3J0XFwncyBjaGFubmVsIFx1MjAxNCB3aGljaCBtZWFucyB0aGVzZSBoZWxwZXJzIG9ubHkgd29yayBpbnNpZGUgYW4gYXBwIHRoYXQgJ1xuICAgICAgICArICdoYXJuZXNzIGJvb3RzdHJhcHBlZC4nXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBzZWFtRnVuY3Rpb247XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdGQSxlQUFzQixhQUFhLFFBQTJDO0FBQzVFLFFBQU0sZ0JBQWdCLGNBQWMsRUFBRSxNQUFNO0FBQzlDO0FBV0EsZUFBc0IsV0FBVyxRQUF5QztBQUN4RSxRQUFNLGdCQUFnQixZQUFZLEVBQUUsTUFBTTtBQUM1QztBQVlBLGVBQXNCLGFBQWEsUUFBMkM7QUFDNUUsUUFBTSxnQkFBZ0IsY0FBYyxFQUFFLE1BQU07QUFDOUM7QUFRQSxlQUFzQixVQUFVLFFBQXdDO0FBQ3RFLFFBQU0sZ0JBQWdCLFdBQVcsRUFBRSxNQUFNO0FBQzNDO0FBV0EsZUFBc0IsU0FBUyxRQUF1QztBQUNwRSxRQUFNLGdCQUFnQixVQUFVLEVBQUUsTUFBTTtBQUMxQztBQVdBLGVBQXNCLGVBQWUsUUFBNkM7QUFDaEYsUUFBTSxnQkFBZ0IsZ0JBQWdCLEVBQUUsTUFBTTtBQUNoRDtBQVFBLGVBQXNCLGVBQWUsUUFBNkM7QUFDaEYsUUFBTSxnQkFBZ0IsZ0JBQWdCLEVBQUUsTUFBTTtBQUNoRDtBQUVBLFNBQVMsZ0JBQW9ELE1BQWtDO0FBRTdGLFFBQU0sU0FBUztBQUNmLFFBQU0sZUFBZSxPQUFPLDhCQUE4QixlQUFlLElBQUk7QUFDN0UsTUFBSSxDQUFDLGNBQWM7QUFDakIsVUFBTSxJQUFJO0FBQUEsTUFDUiw4RkFBOEYsSUFBSTtBQUFBLElBSXBHO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vYmlsZS10cnVzdGVkLWlucHV0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTW9iaWxlLW9ubHkgdHJ1c3RlZCBpbnB1dCBoZWxwZXJzLiBUaGVyZSBpcyBubyBpbi1yZW5kZXJlciByb3V0ZSB0byBhIHRydXN0ZWQgZXZlbnQgb24gYSBwaG9uZSBcdTIwMTRcbiAqIGB3ZWJDb250ZW50cy5zZW5kSW5wdXRFdmVudGAgaXMgRWxlY3Ryb24tb25seSBhbmQgYSBkaXNwYXRjaGVkIGV2ZW50IGlzIHVudHJ1c3RlZCBcdTIwMTQgc28gdGhlIGluamVjdGlvblxuICogaGFzIHRvIGJlIGEgcm91bmQtdHJpcDogdGhlIHJlcXVlc3QgZ29lcyB0byB0aGUgaG9zdCBvdmVyIHRoZSBgb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZ2AgaGFybmVzcydzXG4gKiBiaW5kaW5nIGNoYW5uZWwsIGFuZCB0aGUgaG9zdCBpbmplY3RzIGl0IGludG8gdGhlIFdlYlZpZXcgb3ZlciBDRFAgXHUyMDE0IGFzIGBJbnB1dC5kaXNwYXRjaFRvdWNoRXZlbnRgIGZvclxuICogYSB0YXAgYnV0IGBJbnB1dC5zeW50aGVzaXplVGFwR2VzdHVyZWAgZm9yIGEgbG9uZy1wcmVzcywgYmVjYXVzZSBgZGlzcGF0Y2hUb3VjaEV2ZW50YCBpbmplY3RzIHBhc3RcbiAqIEFuZHJvaWQncyBnZXN0dXJlIHJlY29nbml6ZXIgYW5kIHNvIGlzIGNsYXNzaWZpZWQgYXMgYSB0YXAgYXQgYW55IGR3ZWxsLlxuICpcbiAqIFRoYXQgY2hhbm5lbCBpcyBpbnN0YWxsZWQgYnkgdGhlIGhhcm5lc3MncyBBcHBpdW0gdHJhbnNwb3J0LCBzbyB0aGVzZSBoZWxwZXJzICoqZGVsZWdhdGUqKiB0byB0aGVcbiAqIGhhcm5lc3MgcmF0aGVyIHRoYW4gcmVpbXBsZW1lbnRpbmcgdGhlIHdpcmUgZm9ybWF0OiB0aGV5IGNhbGxcbiAqIGB3aW5kb3cuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZy50cnVzdGVkSW5wdXQuKmAsIHdoaWNoIGhvbGRzIHRoZSB2ZXJ5IGZ1bmN0aW9uIG9iamVjdHMgdGhlIGhhcm5lc3NcbiAqIHNlZWRzIGludG8gYW4gYGV2YWxJbk9ic2lkaWFuYCBjbG9zdXJlJ3MgYGxpYmAgYmFnLiBEZWxlZ2F0aW5nIGlzIHdoYXQga2VlcHMgdGhlIG1vYmlsZSBzZW1hbnRpY3MgXHUyMDE0XG4gKiB0YXAsIGxvbmctcHJlc3MgZm9yIGBidXR0b246ICdyaWdodCdgLCBhIHRocm93IGZvciBgJ21pZGRsZSdgLCB0aGUgYHByZXNzS2V5YCBrZXkgc2V0LCBhbmQgdGhlIHRocm93c1xuICogZm9yIHRoZSBgOmhvdmVyYCBoZWxwZXJzIFx1MjAxNCBpZGVudGljYWwgdG8gdGhlIGhhcm5lc3MncyBvd24gY29weSBmb3IgZnJlZSwgaW5zdGVhZCBvZiBhIHNlY29uZFxuICogaW1wbGVtZW50YXRpb24gdG8gaGFuZC1zeW5jIChzZWUgdGhlIHByb2plY3QgYEFHRU5UUy5tZGAgKipMNCoqKS5cbiAqXG4gKiBUaGUgbmFtZXNwYWNlIHNoYXBlIGlzIGRlY2xhcmVkICoqbG9jYWxseSoqOiB0aGUgaGFybmVzcyBtdXN0IG5ldmVyIGJlIGEgZGVwZW5kZW5jeSBvZiB0aGlzIGxpYnJhcnksIGluXG4gKiBlaXRoZXIgZGlyZWN0aW9uLCBhdCBydW50aW1lIG9yIGluIHR5cGVzLlxuICpcbiAqICoqQ29uc2VxdWVuY2UsIGFuZCBpdCBpcyBkZWxpYmVyYXRlOioqIHRoZXNlIGhlbHBlcnMgb25seSB3b3JrIGluc2lkZSBhbiBhcHAgdGhlIGhhcm5lc3MgYm9vdHN0cmFwcGVkLlxuICogT3V0c2lkZSBvbmUgdGhleSB0aHJvdyBhIG1lc3NhZ2Ugc2F5aW5nIHNvLCByYXRoZXIgdGhhbiBzaWxlbnRseSBkb2luZyBub3RoaW5nIFx1MjAxNCBhIG5vLW9wIHdvdWxkIHJlY3JlYXRlXG4gKiBleGFjdGx5IHRoZSBmYWxzZS1jb25maWRlbmNlIGZhaWx1cmUgdHJ1c3RlZCBpbnB1dCBleGlzdHMgdG8gZW5kLiBDb25zdW1lcnMgd2FudGluZyB0aGUgcGxhdGZvcm0tY29ycmVjdFxuICogaGVscGVyIHNob3VsZCBpbXBvcnQgdGhlIHtAbGluayAuLi90cnVzdGVkLWlucHV0LnRzIHwgdHJ1c3RlZC1pbnB1dH0gZmFjYWRlIGluc3RlYWQgb2YgdGhpcyBtb2R1bGUuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBDbGlja0VsZW1lbnRQYXJhbXMsXG4gIENsaWNrTW91c2VQYXJhbXMsXG4gIEhvdmVyRWxlbWVudFBhcmFtcyxcbiAgTW92ZU1vdXNlUGFyYW1zLFxuICBQcmVzc0tleVBhcmFtcyxcbiAgVHlwZUludG9FZGl0b3JQYXJhbXMsXG4gIFVuaG92ZXJFbGVtZW50UGFyYW1zXG4gIC8vIFRoZSBwYXJhbWV0ZXIgY29udHJhY3RzIGxpdmUgd2l0aCB0aGUgZGVza3RvcCB0d2luIGFuZCBhcmUgc2hhcmVkIHZlcmJhdGltLCBzbyB0aGUgdHdvIHBsYXRmb3Jtc1xuICAvLyBDYW5ub3QgZHJpZnQgYXBhcnQgb24gd2hhdCBhIGNhbGxlciBwYXNzZXMuIEEgdHlwZS1vbmx5IGltcG9ydCBsb2FkcyBub3RoaW5nIChMNSkuXG59IGZyb20gJy4vZGVza3RvcC10cnVzdGVkLWlucHV0LnRzJztcblxuLyoqXG4gKiBUaGUgZ2xvYmFsIHRoZSBoYXJuZXNzIGJvb3RzdHJhcHMgaXRzIG5hbWVzcGFjZSBvbnRvLlxuICovXG5pbnRlcmZhY2UgT2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdIb2xkZXIge1xuICBfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nOiBPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZTtcbn1cblxuLyoqXG4gKiBUaGUgcGFydCBvZiB0aGUgaGFybmVzcyBuYW1lc3BhY2UgdGhpcyBtb2R1bGUgcmVhZHMuIEV2ZXJ5dGhpbmcgZWxzZSBvbiBpdCBpcyBub25lIG9mIHRoaXMgbW9kdWxlJ3NcbiAqIGJ1c2luZXNzLlxuICovXG5pbnRlcmZhY2UgT2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2Uge1xuICB0cnVzdGVkSW5wdXQ/OiBQYXJ0aWFsPFRydXN0ZWRJbnB1dFNlYW0+O1xufVxuXG4vKipcbiAqIFRoZSB0cnVzdGVkLWlucHV0IHNlYW0gdGhlIGBvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nYCBoYXJuZXNzIHB1Ymxpc2hlcyBvbiBpdHMgbmFtZXNwYWNlLlxuICpcbiAqIERlY2xhcmVkIGhlcmUgcmF0aGVyIHRoYW4gaW1wb3J0ZWQ6IHRoZSBoYXJuZXNzIGlzIG5vdCBhIGRlcGVuZGVuY3kgb2YgdGhpcyBsaWJyYXJ5LiBJdCBtaXJyb3JzXG4gKiBgbmFtZXNwYWNlLWJvb3RzdHJhcC50c2AncyBgdHJ1c3RlZElucHV0YCBvYmplY3QsIGFuZCB0aGUgbWlycm9yaW5nIGlzIGJ5IGhhbmQgXHUyMDE0IHRoZSBzYW1lXG4gKiBiZWhhdmlvcmFsLXN5bmMgb2JsaWdhdGlvbiB0aGUgZGVza3RvcCB0d2luIGNhcnJpZXMuXG4gKi9cbmludGVyZmFjZSBUcnVzdGVkSW5wdXRTZWFtIHtcbiAgY2xpY2tFbGVtZW50KHBhcmFtczogQ2xpY2tFbGVtZW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcbiAgY2xpY2tNb3VzZShwYXJhbXM6IENsaWNrTW91c2VQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICBob3ZlckVsZW1lbnQocGFyYW1zOiBIb3ZlckVsZW1lbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICBtb3ZlTW91c2UocGFyYW1zOiBNb3ZlTW91c2VQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICBwcmVzc0tleShwYXJhbXM6IFByZXNzS2V5UGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcbiAgdHlwZUludG9FZGl0b3IocGFyYW1zOiBUeXBlSW50b0VkaXRvclBhcmFtcyk6IFByb21pc2U8dm9pZD47XG4gIHVuaG92ZXJFbGVtZW50KHBhcmFtczogVW5ob3ZlckVsZW1lbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIENsaWNrcyB0aGUgY2VudGVyIG9mIGFuIGVsZW1lbnQgdXNpbmcgKip0cnVzdGVkKiogdG91Y2ggaW5wdXQsIGluamVjdGVkIGludG8gdGhlIFdlYlZpZXcgYnkgdGhlIGhvc3RcbiAqIG92ZXIgQ0RQLlxuICpcbiAqIFRoZSBlbGVtZW50LXJlbGF0aXZlIGNvdW50ZXJwYXJ0IG9mIHtAbGluayBjbGlja01vdXNlfS4gYGJ1dHRvbjogJ3JpZ2h0J2AgaXMgdGhlIGxvbmctcHJlc3MgdGhhdCBvcGVuc1xuICogT2JzaWRpYW4gTW9iaWxlJ3MgY29udGV4dCBtZW51OyBgJ21pZGRsZSdgIHRocm93cywgYmVjYXVzZSB0b3VjaCBoYXMgbm8gZ2VzdHVyZSBmb3IgaXQgYW5kIGludmVudGluZ1xuICogb25lIHdvdWxkIGJlIHdvcnNlIHRoYW4gc2F5aW5nIHNvLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZWxlbWVudCB0byBjbGljaywgdGhlIGJ1dHRvbiB0byBwcmVzcyBhbmQgYW55IG1vZGlmaWVycyB0byBob2xkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBjbGljayBoYXMgYmVlbiBpbmplY3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsaWNrRWxlbWVudChwYXJhbXM6IENsaWNrRWxlbWVudFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBnZXRTZWFtRnVuY3Rpb24oJ2NsaWNrRWxlbWVudCcpKHBhcmFtcyk7XG59XG5cbi8qKlxuICogQ2xpY2tzIGF0IHRoZSBnaXZlbiB2aWV3cG9ydCBjb29yZGluYXRlcyB1c2luZyAqKnRydXN0ZWQqKiB0b3VjaCBpbnB1dCwgaW5qZWN0ZWQgYnkgdGhlIGhvc3Qgb3ZlciBDRFAuXG4gKlxuICogVGhlIGNvb3JkaW5hdGVzIGFyZSBDU1MgcGl4ZWxzIGluIHRoZSBXZWJWaWV3J3Mgb3duIHZpZXdwb3J0IFx1MjAxNCB3aGljaCBpcyB3aGF0IENEUCB0YWtlcyBcdTIwMTQgc29cbiAqIGBkZXZpY2VQaXhlbFJhdGlvYCBuZXZlciBlbnRlcnMgdGhlIHBpY3R1cmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB2aWV3cG9ydCBjb29yZGluYXRlcyB0byBjbGljayBhdCwgdGhlIGJ1dHRvbiB0byBwcmVzcyBhbmQgYW55IG1vZGlmaWVycyB0byBob2xkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBjbGljayBoYXMgYmVlbiBpbmplY3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsaWNrTW91c2UocGFyYW1zOiBDbGlja01vdXNlUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbignY2xpY2tNb3VzZScpKHBhcmFtcyk7XG59XG5cbi8qKlxuICogQWx3YXlzIHRocm93czogYDpob3ZlcmAgaGFzIG5vIHRvdWNoIGVxdWl2YWxlbnQuXG4gKlxuICogQSBzaWxlbnQgbm8tb3AgaGVyZSB3b3VsZCBsZXQgYSBob3ZlciB0ZXN0IHBhc3Mgb24gYSBwaG9uZSB3aXRob3V0IGhvdmVyaW5nIGFueXRoaW5nLCBzbyB0aGUgbW9iaWxlIGFybVxuICogcmVmdXNlcyBpbnN0ZWFkLiBHYXRlIHRoZSBhc3NlcnRpb24gb24gYFBsYXRmb3JtLmlzRGVza3RvcEFwcGAsIG9yIGRyaXZlIHRoZSBlbGVtZW50IHdpdGhcbiAqIHtAbGluayBjbGlja0VsZW1lbnR9LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZWxlbWVudCB0byBob3Zlci5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgbmV2ZXIgcmVzb2x2ZXMgXHUyMDE0IHRoZSBjYWxsIHRocm93cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhvdmVyRWxlbWVudChwYXJhbXM6IEhvdmVyRWxlbWVudFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBnZXRTZWFtRnVuY3Rpb24oJ2hvdmVyRWxlbWVudCcpKHBhcmFtcyk7XG59XG5cbi8qKlxuICogQWx3YXlzIHRocm93czogYSB0b3VjaCBzY3JlZW4gaGFzIG5vIHBlcnNpc3RlbnQgcG9pbnRlciB0byBtb3ZlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgdmlld3BvcnQgY29vcmRpbmF0ZXMgdG8gbW92ZSB0by5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgbmV2ZXIgcmVzb2x2ZXMgXHUyMDE0IHRoZSBjYWxsIHRocm93cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1vdmVNb3VzZShwYXJhbXM6IE1vdmVNb3VzZVBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBnZXRTZWFtRnVuY3Rpb24oJ21vdmVNb3VzZScpKHBhcmFtcyk7XG59XG5cbi8qKlxuICogUHJlc3NlcyBhIHNpbmdsZSBrZXkgdXNpbmcgKip0cnVzdGVkKioga2V5Ym9hcmQgaW5wdXQsIGluamVjdGVkIGJ5IHRoZSBob3N0IG92ZXIgQ0RQLlxuICpcbiAqIE5hbWVkIGtleXMgKGAnRW50ZXInYCwgYCdFc2NhcGUnYCwgYCdUYWInYCwgYCdCYWNrc3BhY2UnYCwgYCdEZWxldGUnYCwgdGhlIGFycm93cykgYW5kIHNpbmdsZSBwcmludGFibGVcbiAqIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDsgYW55dGhpbmcgZWxzZSB0aHJvd3MgcmF0aGVyIHRoYW4gcHJlc3Npbmcgbm90aGluZy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGtleSB0byBwcmVzcyBhbmQgYW55IG1vZGlmaWVycyB0byBob2xkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBrZXkgcHJlc3MgaGFzIGJlZW4gaW5qZWN0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcmVzc0tleShwYXJhbXM6IFByZXNzS2V5UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbigncHJlc3NLZXknKShwYXJhbXMpO1xufVxuXG4vKipcbiAqIFR5cGVzIHRleHQgaW50byBhIENvZGVNaXJyb3IgZWRpdG9yIHVzaW5nICoqdHJ1c3RlZCoqIGtleWJvYXJkIGlucHV0LCBpbmplY3RlZCBieSB0aGUgaG9zdCBvdmVyIENEUC5cbiAqXG4gKiBGb2N1c2VzIHRoZSBlZGl0b3IgKGNhcmV0IHRvIHRoZSBlbmQpLCBwcmVzc2VzIGV2ZXJ5IGNvZGUgcG9pbnQgb2YgdGhlIHRleHQsIHRoZW4gcG9sbHMgdW50aWwgdGhlXG4gKiBkb2N1bWVudCByZWZsZWN0cyB0aGUgaW5wdXQgb3IgYSBib3VuZGVkIHRpbWVvdXQgZWxhcHNlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVkaXRvciB0byB0eXBlIGludG8gYW5kIHRoZSB0ZXh0IHRvIHR5cGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGtleXN0cm9rZXMgaGF2ZSBzZXR0bGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHlwZUludG9FZGl0b3IocGFyYW1zOiBUeXBlSW50b0VkaXRvclBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBnZXRTZWFtRnVuY3Rpb24oJ3R5cGVJbnRvRWRpdG9yJykocGFyYW1zKTtcbn1cblxuLyoqXG4gKiBBbHdheXMgdGhyb3dzLCBmb3IgdGhlIHNhbWUgcmVhc29uIGFzIHtAbGluayBob3ZlckVsZW1lbnR9OiB0aGVyZSBpcyBubyBgOmhvdmVyYCBzdGF0ZSB0byBjbGVhci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVsZW1lbnQgdG8gbW92ZSB0aGUgcG9pbnRlciBhd2F5IGZyb20uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IG5ldmVyIHJlc29sdmVzIFx1MjAxNCB0aGUgY2FsbCB0aHJvd3MuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1bmhvdmVyRWxlbWVudChwYXJhbXM6IFVuaG92ZXJFbGVtZW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGdldFNlYW1GdW5jdGlvbigndW5ob3ZlckVsZW1lbnQnKShwYXJhbXMpO1xufVxuXG5mdW5jdGlvbiBnZXRTZWFtRnVuY3Rpb248S2V5IGV4dGVuZHMga2V5b2YgVHJ1c3RlZElucHV0U2VhbT4obmFtZTogS2V5KTogVHJ1c3RlZElucHV0U2VhbVtLZXldIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMgLS0gVGhlIGhhcm5lc3MgaW5zdGFsbHMgaXRzIG5hbWVzcGFjZSBvbiB0aGUgcmVhbG0gZ2xvYmFsOyB0aGVyZSBpcyBub3doZXJlIGVsc2UgdG8gcmVhZCBpdCBmcm9tLlxuICBjb25zdCBob2xkZXIgPSBnbG9iYWxUaGlzIGFzIFBhcnRpYWw8T2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdIb2xkZXI+O1xuICBjb25zdCBzZWFtRnVuY3Rpb24gPSBob2xkZXIuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udHJ1c3RlZElucHV0Py5bbmFtZV07XG4gIGlmICghc2VhbUZ1bmN0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRydXN0ZWQgaW5wdXQgaXMgdW5hdmFpbGFibGUgb24gbW9iaWxlOiBcXGB3aW5kb3cuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZy50cnVzdGVkSW5wdXQuJHtuYW1lfVxcYCBpcyBub3QgaW5zdGFsbGVkLiBgXG4gICAgICAgICsgJ0EgcGhvbmUgaGFzIG5vIGluLXJlbmRlcmVyIHJvdXRlIHRvIGEgdHJ1c3RlZCBldmVudCwgc28gdGhlIGluamVjdGlvbiBpcyBhIHJvdW5kLXRyaXAgdG8gdGhlIGhvc3Qgb3ZlciB0aGUgJ1xuICAgICAgICArICdgb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZ2AgQXBwaXVtIHRyYW5zcG9ydFxcJ3MgY2hhbm5lbCBcdTIwMTQgd2hpY2ggbWVhbnMgdGhlc2UgaGVscGVycyBvbmx5IHdvcmsgaW5zaWRlIGFuIGFwcCB0aGF0ICdcbiAgICAgICAgKyAnaGFybmVzcyBib290c3RyYXBwZWQuJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gc2VhbUZ1bmN0aW9uO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFrRkEsZUFBc0IsYUFBYSxRQUEyQztBQUM1RSxRQUFNLGdCQUFnQixjQUFjLEVBQUUsTUFBTTtBQUM5QztBQVdBLGVBQXNCLFdBQVcsUUFBeUM7QUFDeEUsUUFBTSxnQkFBZ0IsWUFBWSxFQUFFLE1BQU07QUFDNUM7QUFZQSxlQUFzQixhQUFhLFFBQTJDO0FBQzVFLFFBQU0sZ0JBQWdCLGNBQWMsRUFBRSxNQUFNO0FBQzlDO0FBUUEsZUFBc0IsVUFBVSxRQUF3QztBQUN0RSxRQUFNLGdCQUFnQixXQUFXLEVBQUUsTUFBTTtBQUMzQztBQVdBLGVBQXNCLFNBQVMsUUFBdUM7QUFDcEUsUUFBTSxnQkFBZ0IsVUFBVSxFQUFFLE1BQU07QUFDMUM7QUFXQSxlQUFzQixlQUFlLFFBQTZDO0FBQ2hGLFFBQU0sZ0JBQWdCLGdCQUFnQixFQUFFLE1BQU07QUFDaEQ7QUFRQSxlQUFzQixlQUFlLFFBQTZDO0FBQ2hGLFFBQU0sZ0JBQWdCLGdCQUFnQixFQUFFLE1BQU07QUFDaEQ7QUFFQSxTQUFTLGdCQUFvRCxNQUFrQztBQUU3RixRQUFNLFNBQVM7QUFDZixRQUFNLGVBQWUsT0FBTyw4QkFBOEIsZUFBZSxJQUFJO0FBQzdFLE1BQUksQ0FBQyxjQUFjO0FBQ2pCLFVBQU0sSUFBSTtBQUFBLE1BQ1IsOEZBQThGLElBQUk7QUFBQSxJQUlwRztBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* Mobile-only trusted input helpers. There is no in-renderer route to a trusted event on a phone —
|
|
6
6
|
* `webContents.sendInputEvent` is Electron-only and a dispatched event is untrusted — so the injection
|
|
7
7
|
* has to be a round-trip: the request goes to the host over the `obsidian-integration-testing` harness's
|
|
8
|
-
* binding channel, and the host injects it into the WebView over CDP.
|
|
8
|
+
* binding channel, and the host injects it into the WebView over CDP — as `Input.dispatchTouchEvent` for
|
|
9
|
+
* a tap but `Input.synthesizeTapGesture` for a long-press, because `dispatchTouchEvent` injects past
|
|
10
|
+
* Android's gesture recognizer and so is classified as a tap at any dwell.
|
|
9
11
|
*
|
|
10
12
|
* That channel is installed by the harness's Appium transport, so these helpers **delegate** to the
|
|
11
13
|
* harness rather than reimplementing the wire format: they call
|
|
@@ -25,8 +27,8 @@
|
|
|
25
27
|
*/
|
|
26
28
|
import type { ClickElementParams, ClickMouseParams, HoverElementParams, MoveMouseParams, PressKeyParams, TypeIntoEditorParams, UnhoverElementParams } from './desktop-trusted-input.cjs';
|
|
27
29
|
/**
|
|
28
|
-
* Clicks the center of an element using **trusted** touch input
|
|
29
|
-
*
|
|
30
|
+
* Clicks the center of an element using **trusted** touch input, injected into the WebView by the host
|
|
31
|
+
* over CDP.
|
|
30
32
|
*
|
|
31
33
|
* The element-relative counterpart of {@link clickMouse}. `button: 'right'` is the long-press that opens
|
|
32
34
|
* Obsidian Mobile's context menu; `'middle'` throws, because touch has no gesture for it and inventing
|
|
@@ -157,7 +157,8 @@ __export(plugin_exports, {
|
|
|
157
157
|
"plugin-api": () => plugin_api,
|
|
158
158
|
"plugin-context": () => plugin_context,
|
|
159
159
|
"plugin-event-source": () => plugin_event_source,
|
|
160
|
-
"plugin-settings-tab": () => plugin_settings_tab
|
|
160
|
+
"plugin-settings-tab": () => plugin_settings_tab,
|
|
161
|
+
"settings-migration-api": () => settings_migration_api
|
|
161
162
|
});
|
|
162
163
|
module.exports = __toCommonJS(plugin_exports);
|
|
163
164
|
var obsidian_plugin_repo_paths = __toESM(__extractDefault(require('./obsidian-plugin-repo-paths.cjs')), 1);
|
|
@@ -166,6 +167,7 @@ var plugin_context = __toESM(__extractDefault(require('./plugin-context.cjs')),
|
|
|
166
167
|
var plugin_event_source = __toESM(__extractDefault(require('./plugin-event-source.cjs')), 1);
|
|
167
168
|
var plugin_settings_tab = __toESM(__extractDefault(require('./plugin-settings-tab.cjs')), 1);
|
|
168
169
|
var plugin = __toESM(__extractDefault(require('./plugin.cjs')), 1);
|
|
170
|
+
var settings_migration_api = __toESM(__extractDefault(require('./settings-migration-api.cjs')), 1);
|
|
169
171
|
// Annotate the CommonJS export names for ESM import in node:
|
|
170
172
|
0 && (module.exports = {
|
|
171
173
|
"obsidian-plugin-repo-paths": null,
|
|
@@ -173,6 +175,7 @@ var plugin = __toESM(__extractDefault(require('./plugin.cjs')), 1);
|
|
|
173
175
|
"plugin-api": null,
|
|
174
176
|
"plugin-context": null,
|
|
175
177
|
"plugin-event-source": null,
|
|
176
|
-
"plugin-settings-tab": null
|
|
178
|
+
"plugin-settings-tab": null,
|
|
179
|
+
"settings-migration-api": null
|
|
177
180
|
});
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocycgZnJvbSAnLi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWFwaScgZnJvbSAnLi9wbHVnaW4tYXBpLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY29udGV4dCcgZnJvbSAnLi9wbHVnaW4tY29udGV4dC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWV2ZW50LXNvdXJjZScgZnJvbSAnLi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tc2V0dGluZ3MtdGFiJyBmcm9tICcuL3BsdWdpbi1zZXR0aW5ncy10YWIudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbicgZnJvbSAnLi9wbHVnaW4udHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmdzLW1pZ3JhdGlvbi1hcGknIGZyb20gJy4vc2V0dGluZ3MtbWlncmF0aW9uLWFwaS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSxzQ0FBQUE7QUFBQSxFQUFBO0FBQUEsc0JBQUFDO0FBQUEsRUFBQSx3QkFBQUM7QUFBQSxFQUFBLDZCQUFBQztBQUFBLEVBQUEsNkJBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQTtBQUFBO0FBRUEsSUFBQUwsNkJBQThDO0FBQzlDLElBQUFDLGFBQThCO0FBQzlCLElBQUFDLGlCQUFrQztBQUNsQyxJQUFBQyxzQkFBdUM7QUFDdkMsSUFBQUMsc0JBQXVDO0FBQ3ZDLGFBQTBCO0FBQzFCLElBQUFDLHlCQUEwQzsiLAogICJuYW1lcyI6IFsib2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMiLCAicGx1Z2luLWFwaSIsICJwbHVnaW4tY29udGV4dCIsICJwbHVnaW4tZXZlbnQtc291cmNlIiwgInBsdWdpbi1zZXR0aW5ncy10YWIiLCAic2V0dGluZ3MtbWlncmF0aW9uLWFwaSJdCn0K
|
|
@@ -5,3 +5,4 @@ export * as 'plugin-context' from './plugin-context.cjs';
|
|
|
5
5
|
export * as 'plugin-event-source' from './plugin-event-source.cjs';
|
|
6
6
|
export * as 'plugin-settings-tab' from './plugin-settings-tab.cjs';
|
|
7
7
|
export * as 'plugin' from './plugin.cjs';
|
|
8
|
+
export * as 'settings-migration-api' from './settings-migration-api.cjs';
|
|
@@ -0,0 +1,141 @@
|
|
|
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 () {
|
|
7
|
+
function ensureBrowserProcess() {
|
|
8
|
+
const browserProcess = {
|
|
9
|
+
browser: true,
|
|
10
|
+
cwd() {
|
|
11
|
+
return '/';
|
|
12
|
+
},
|
|
13
|
+
env: {},
|
|
14
|
+
platform: 'android'
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
18
|
+
const existingProcess = globalThis.process;
|
|
19
|
+
|
|
20
|
+
if (!existingProcess) {
|
|
21
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
22
|
+
globalThis.process = browserProcess;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (existingProcess.versions?.node) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const existingProcessRecord = existingProcess;
|
|
31
|
+
|
|
32
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
33
|
+
existingProcessRecord[key] ??= value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
existingProcessRecord['browser'] = true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function keepName($unknown) {
|
|
40
|
+
return $unknown;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
(function initCjs() {
|
|
44
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
45
|
+
const globalThisRecord = globalThis;
|
|
46
|
+
globalThisRecord['__name'] ??= keepName;
|
|
47
|
+
const originalRequire = require;
|
|
48
|
+
if (originalRequire && !originalRequire.__isPatched) {
|
|
49
|
+
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
50
|
+
require = Object.assign(
|
|
51
|
+
(id) => requirePatched(id),
|
|
52
|
+
originalRequire,
|
|
53
|
+
{
|
|
54
|
+
__isPatched: true
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
60
|
+
|
|
61
|
+
ensureBrowserProcess();
|
|
62
|
+
|
|
63
|
+
function extractDefault(module) {
|
|
64
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
68
|
+
'@codemirror/autocomplete',
|
|
69
|
+
'@codemirror/collab',
|
|
70
|
+
'@codemirror/commands',
|
|
71
|
+
'@codemirror/language',
|
|
72
|
+
'@codemirror/lint',
|
|
73
|
+
'@codemirror/search',
|
|
74
|
+
'@codemirror/state',
|
|
75
|
+
'@codemirror/text',
|
|
76
|
+
'@codemirror/view',
|
|
77
|
+
'@lezer/common',
|
|
78
|
+
'@lezer/highlight',
|
|
79
|
+
'@lezer/lr',
|
|
80
|
+
'obsidian']
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
84
|
+
'@codemirror/closebrackets',
|
|
85
|
+
'@codemirror/comment',
|
|
86
|
+
'@codemirror/fold',
|
|
87
|
+
'@codemirror/gutter',
|
|
88
|
+
'@codemirror/highlight',
|
|
89
|
+
'@codemirror/history',
|
|
90
|
+
'@codemirror/matchbrackets',
|
|
91
|
+
'@codemirror/panel',
|
|
92
|
+
'@codemirror/rangeset',
|
|
93
|
+
'@codemirror/rectangular-selection',
|
|
94
|
+
'@codemirror/stream-parser',
|
|
95
|
+
'@codemirror/tooltip']
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
function requirePatched(id) {
|
|
99
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
100
|
+
return originalRequire?.(id);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
104
|
+
if (globalThis.app.isMobile) {
|
|
105
|
+
if (id === 'process' || id === 'node:process') {
|
|
106
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
107
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
108
|
+
|
|
109
|
+
return process;
|
|
110
|
+
}
|
|
111
|
+
} else {
|
|
112
|
+
const module = originalRequire?.(id);
|
|
113
|
+
if (module) {
|
|
114
|
+
return extractDefault(module);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
119
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
120
|
+
return {};
|
|
121
|
+
}
|
|
122
|
+
})();
|
|
123
|
+
})();
|
|
124
|
+
|
|
125
|
+
"use strict";
|
|
126
|
+
var __defProp = Object.defineProperty;
|
|
127
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
128
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
129
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
130
|
+
var __copyProps = (to, from, except, desc) => {
|
|
131
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
132
|
+
for (let key of __getOwnPropNames(from))
|
|
133
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
134
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
135
|
+
}
|
|
136
|
+
return to;
|
|
137
|
+
};
|
|
138
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
139
|
+
var settings_migration_api_exports = {};
|
|
140
|
+
module.exports = __toCommonJS(settings_migration_api_exports);
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9zZXR0aW5ncy1taWdyYXRpb24tYXBpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGdlbmVyaWMgaGFsZiBvZiBhIHNldHRpbmdzIEhBTkRPVkVSIGNvbnRyYWN0OiBvbmUgcGx1Z2luIG9mZmVycyBhbm90aGVyIHRoZSBzZXR0aW5ncyBpdCB1c2VkIHRvIG93bixcbiAqIGFuZCB0aGUgcGx1Z2luIHRoYXQgb3ducyB0aGVtIG5vdyBkZWNpZGVzIHdoYXQgdG8gZG8gd2l0aCB0aGUgb2ZmZXIuXG4gKlxuICogVGhlIHNoYXBlIGJlbG93IGlzIGRlbGliZXJhdGVseSB0aGUgKmVudmVsb3BlKiBhbmQgbm90aGluZyBlbHNlLiBBIGhhbmRvdmVyIGhhcyB0aHJlZSBwYXJ0cywgYW5kIG9ubHkgb25lXG4gKiBvZiB0aGVtIGlzIGdlbmVyaWM6XG4gKlxuICogLSBUaGUgKiplbnZlbG9wZSoqIFx1MjAxNCBhIGBtaWdyYXRlU2V0dGluZ3NgIGNhbGwsIHdobyBpcyBwcm9wb3NpbmcsIGFuZCB3aGV0aGVyIHRoZSB1c2VyIGFwcGxpZWQgaXQuIElkZW50aWNhbFxuICogICBmb3IgZXZlcnkgcGFpciBvZiBwbHVnaW5zLCBzbyBpdCBsaXZlcyBoZXJlLlxuICogLSBUaGUgKipwYXlsb2FkKiogXHUyMDE0IHdoaWNoIHNldHRpbmdzIGFyZSBiZWluZyBwcm9wb3NlZC4gRW50aXJlbHkgdGhlIHBhaXIncyBvd24gYnVzaW5lc3MsIHNvIGl0IHN0YXlzIGEgdHlwZVxuICogICBwYXJhbWV0ZXIgYW5kIGlzIG5ldmVyIG5hbWVkIGhlcmUuXG4gKiAtIFRoZSAqKnByb3ZpZGVyJ3MgaWRlbnRpdHkqKiBcdTIwMTQgaXRzIHBsdWdpbiBpZCBhbmQgZGlzcGxheSBuYW1lLiBBbHNvIHRoZSBwYWlyJ3Mgb3duIGJ1c2luZXNzLCBhbmQgbm90XG4gKiAgIHNvbWV0aGluZyB0aGlzIGxpYnJhcnkgaGFzIGFueSBzdGFuZGluZyB0byBvd24uXG4gKlxuICogV2h5IGl0IGlzIGRlY2xhcmVkIHJhdGhlciB0aGFuIGltcG9ydGVkLiBBIHByb3ZpZGVyIGlzIHR5cGljYWxseSBhbiBPYnNpZGlhbiAqcGx1Z2luKiByZXBvLCBub3QgYW4gbnBtXG4gKiBwYWNrYWdlLCBzbyBhIGNvbnN1bWVyIGhhcyBub3RoaW5nIHRvIGRlcGVuZCBvbiBhbmQgaGFuZC13cml0ZXMgaXRzIG93biBjb3B5IG9mIHRoZSBjb250cmFjdC4gRml2ZSBjb3BpZXNcbiAqIG9mIG9uZSBjb250cmFjdCB3aXRoIG5vIGNvbXBpbGVyIGxpbmsgYmV0d2VlbiB0aGVtIG1lYW5zIGRyaWZ0IGlzIFNJTEVOVCBcdTIwMTQgZXZlcnkgY29weSBzdGlsbCBjb21waWxlcyBhbmRcbiAqIHRoZSBoYW5kb3ZlciBmYWlscyBhdCBydW50aW1lIGluc3RlYWQuIERlY2xhcmluZyB0aGUgZW52ZWxvcGUgaGVyZSBnaXZlcyBib3RoIGVuZHMgb25lIGRlY2xhcmF0aW9uIHRvXG4gKiBjb21waWxlIGFnYWluc3Q7IGB3YXRjaFBsdWdpbkFwaWAgc3RpbGwgbmVnb3RpYXRlcyB0aGUgdmVyc2lvbiBhdCBydW50aW1lLCBiZWNhdXNlIHRoZSB0d28gZW5kcyBzaGlwXG4gKiBpbmRlcGVuZGVudGx5IGFuZCBhbHdheXMgd2lsbC5cbiAqXG4gKiBUaGUgcHJvdmlkZXIgcHVibGlzaGVzIGl0OlxuICpcbiAqIGBgYHRzXG4gKiBwdWJsaXNoUGx1Z2luQXBpPFNldHRpbmdzTWlncmF0aW9uQXBpPE15TWlncmF0YWJsZVNldHRpbmdzPj4oe1xuICogICBhcGk6IHRoaXMuc2V0dGluZ3NNaWdyYXRpb25BcGksXG4gKiAgIGFwaVZlcnNpb246ICcxLjAuMCcsXG4gKiAgIGNvbnRyYWN0OiB7IG1pZ3JhdGVTZXR0aW5nczoge30gfSxcbiAqICAgcGx1Z2luOiB0aGlzXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIFRoZSBjb25zdW1lciByZWFjaGVzIGl0IHRocm91Z2gge0BsaW5rIG9ic2lkaWFuL2NvbXBvbmVudHMvc2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudCFTZXR0aW5nc01pZ3JhdGlvbkNvbXBvbmVudH0sXG4gKiB3aGljaCBvd25zIHRoZSB3aG9sZSBvZmZlci1hbmQtcmV0aXJlIGRhbmNlLlxuICovXG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIFNldHRpbmdzTWlncmF0aW9uQXBpLm1pZ3JhdGVTZXR0aW5nc30uXG4gKlxuICogQHR5cGVQYXJhbSBUTWlncmF0YWJsZVNldHRpbmdzIC0gVGhlIHNldHRpbmdzIHRoZSBwcm9wb3NpbmcgcGx1Z2luIG1heSBoYW5kIG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0ZVNldHRpbmdzUGFyYW1zPFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZXMgdGhlIHByb3Bvc2luZyBwbHVnaW4gb2ZmZXJzLlxuICAgKlxuICAgKiBDb252ZW50aW9uYWxseSBldmVyeSBtZW1iZXIgaXMgb3B0aW9uYWwsIHNvIGEgcGx1Z2luIHByb3Bvc2VzIG9ubHkgd2hhdCBpdCBhY3R1YWxseSBoZWxkIGFuZCBhIHZhbHVlIHRoZVxuICAgKiBwcm92aWRlciBhbHJlYWR5IG93bnMgaXMgbmV2ZXIgb3ZlcndyaXR0ZW4gYnkgYSBkZWZhdWx0IG5vYm9keSBjaG9zZS4gVGhhdCBjb252ZW50aW9uIGJlbG9uZ3MgdG8gdGhlIHBhaXIsXG4gICAqIHRob3VnaCBcdTIwMTQgdGhpcyB0eXBlIGltcG9zZXMgb25seSB0aGUgZW52ZWxvcGUuXG4gICAqL1xuICByZWFkb25seSBwcm9wb3NlZFNldHRpbmdzOiBUTWlncmF0YWJsZVNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBUaGUgYG1hbmlmZXN0LmlkYCBvZiB0aGUgcGx1Z2luIG1ha2luZyB0aGUgcHJvcG9zYWwsIHNvIHRoZSBwcm92aWRlcidzIGRpYWxvZyBjYW4gc2F5IHdob3NlIHNldHRpbmdzXG4gICAqIHRoZXNlIGFyZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIG91dGNvbWUgb2Yge0BsaW5rIFNldHRpbmdzTWlncmF0aW9uQXBpLm1pZ3JhdGVTZXR0aW5nc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0ZVNldHRpbmdzUmVzdWx0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgYXBwcm92ZWQgdGhlIG1pZ3JhdGlvbi5cbiAgICpcbiAgICogYGZhbHNlYCBtZWFucyB0aGV5IGNhbmNlbGxlZCBhbmQgbm90aGluZyB3YXMgd3JpdHRlbiwgc28gdGhlIHByb3Bvc2luZyBwbHVnaW4gbXVzdCBOT1QgcmVjb3JkIHRoZVxuICAgKiBtaWdyYXRpb24gYXMgZG9uZSBcdTIwMTQgYSBjYW5jZWwgaXMgbm90IGFuIGFuc3dlciwgYW5kIHRoZSBvZmZlciBoYXMgdG8gY29tZSBiYWNrLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNBcHBsaWVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBBUEkgYSBwbHVnaW4gcHVibGlzaGVzIHdoZW4gaXQgaXMgd2lsbGluZyB0byByZWNlaXZlIHNldHRpbmdzIGFub3RoZXIgcGx1Z2luIHVzZWQgdG8gb3duLlxuICpcbiAqIEB0eXBlUGFyYW0gVE1pZ3JhdGFibGVTZXR0aW5ncyAtIFRoZSBzZXR0aW5ncyB0aGlzIHByb3ZpZGVyIGFjY2VwdHMuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBwcm92aWRlciBvd25zIHRoZSBzZXR0aW5ncywgc28gaXQgb3ducyB0aGUgZGlhbG9nOiBhIHByb3Bvc2luZyBwbHVnaW4gbmV2ZXIgd3JpdGVzIGludG8gYW5vdGhlclxuICogcGx1Z2luJ3MgYGRhdGEuanNvbmAuIEl0IHByb3Bvc2VzLCBhbmQgdGhlIHVzZXIgYXBwcm92ZXMsIGVkaXRzIG9yIGRlY2xpbmVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzTWlncmF0aW9uQXBpPFRNaWdyYXRhYmxlU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIE9mZmVycyB0aGUgdXNlciBhIHNldCBvZiBzZXR0aW5ncyB2YWx1ZXMgYW5vdGhlciBwbHVnaW4gcHJvcG9zZXMsIGFuZCBhcHBsaWVzIHdoYXQgdGhleSBhcHByb3ZlLlxuICAgKlxuICAgKiBSZXNvbHZlcyBvbmx5IG9uY2UgdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBjYWxsZXIgbGVhcm5zIHdoZXRoZXIgdGhlIG1pZ3JhdGlvbiBhY3R1YWxseSBoYXBwZW5lZCBhbmRcbiAgICogY2FuIHJldGlyZSBcdTIwMTQgb3Igd2l0aGhvbGQgXHUyMDE0IGl0cyBvd24gcGVuZGluZyB2YWx1ZXMgb24gdGhhdCBhbnN3ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcHJvcG9zYWwuXG4gICAqIEByZXR1cm5zIFdoYXQgdGhlIHVzZXIgYXBwcm92ZWQuXG4gICAqL1xuICBtaWdyYXRlU2V0dGluZ3MocGFyYW1zOiBNaWdyYXRlU2V0dGluZ3NQYXJhbXM8VE1pZ3JhdGFibGVTZXR0aW5ncz4pOiBQcm9taXNlPE1pZ3JhdGVTZXR0aW5nc1Jlc3VsdD47XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
|