@mnaoumov/obsidian-lib 10.5.1 → 10.7.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/codemirror/inline-token-widgets/package.json +6 -0
- package/codemirror/settings-facet/package.json +6 -0
- package/command-handlers/open-discussion-command-handler/package.json +6 -0
- package/command-handlers/open-feature-request-command-handler/package.json +6 -0
- package/command-handlers/open-git-hub-command-handler/package.json +6 -0
- package/components/settings-facet-component/package.json +6 -0
- package/components/style-sheet-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +137 -1
- package/dist/lib/cjs/__merged.d.cts +26 -0
- package/dist/lib/cjs/anchored-suggest.cjs +232 -0
- package/dist/lib/cjs/anchored-suggest.d.cts +116 -0
- package/dist/lib/cjs/broken-link-candidates.cjs +366 -0
- package/dist/lib/cjs/broken-link-candidates.d.cts +181 -0
- package/dist/lib/cjs/bug-report.cjs +4 -2
- package/dist/lib/cjs/bug-report.d.cts +1 -1
- package/dist/lib/cjs/code-block-render-handoff.cjs +272 -0
- package/dist/lib/cjs/code-block-render-handoff.d.cts +131 -0
- package/dist/lib/cjs/codemirror/index.cjs +7 -1
- package/dist/lib/cjs/codemirror/index.d.cts +2 -0
- package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +250 -0
- package/dist/lib/cjs/codemirror/inline-token-widgets.d.cts +109 -0
- package/dist/lib/cjs/codemirror/settings-facet.cjs +132 -0
- package/dist/lib/cjs/codemirror/settings-facet.d.cts +19 -0
- package/dist/lib/cjs/command-handlers/index.cjs +10 -1
- package/dist/lib/cjs/command-handlers/index.d.cts +3 -0
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +9 -12
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +6 -8
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +127 -0
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.d.cts +45 -0
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +119 -0
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.d.cts +33 -0
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +121 -0
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.d.cts +43 -0
- package/dist/lib/cjs/components/index.cjs +7 -1
- package/dist/lib/cjs/components/index.d.cts +2 -0
- package/dist/lib/cjs/components/settings-facet-component.cjs +136 -0
- package/dist/lib/cjs/components/settings-facet-component.d.cts +68 -0
- package/dist/lib/cjs/components/style-sheet-component.cjs +198 -0
- package/dist/lib/cjs/components/style-sheet-component.d.cts +79 -0
- package/dist/lib/cjs/css-class.cjs +8 -1
- package/dist/lib/cjs/css-class.d.cts +28 -0
- package/dist/lib/cjs/data-stores/data-store-transport.cjs +7 -4
- package/dist/lib/cjs/data-stores/data-store-transport.d.cts +1 -1
- package/dist/lib/cjs/data-stores/shared-data-store.cjs +1 -1
- package/dist/lib/cjs/data-stores/shared-data-store.d.cts +1 -1
- package/dist/lib/cjs/desktop-git-runner.cjs +117 -0
- package/dist/lib/cjs/desktop-git-runner.d.cts +17 -0
- package/dist/lib/cjs/desktop-request-url-stream.cjs +258 -0
- package/dist/lib/cjs/desktop-request-url-stream.d.cts +22 -0
- package/dist/lib/cjs/editor-suggest-registrar.cjs +8 -2
- package/dist/lib/cjs/editor-suggest-registrar.d.cts +14 -2
- package/dist/lib/cjs/editor-suggest.cjs +197 -0
- package/dist/lib/cjs/editor-suggest.d.cts +103 -0
- package/dist/lib/cjs/feature-request.cjs +115 -0
- package/dist/lib/cjs/feature-request.d.cts +54 -0
- package/dist/lib/cjs/generated-during-build.cjs +2 -2
- package/dist/lib/cjs/git-hub-discussion.cjs +101 -0
- package/dist/lib/cjs/git-hub-discussion.d.cts +28 -0
- package/dist/lib/cjs/git-rename-history.cjs +148 -0
- package/dist/lib/cjs/git-rename-history.d.cts +43 -0
- package/dist/lib/cjs/hotkey.cjs +185 -0
- package/dist/lib/cjs/hotkey.d.cts +59 -0
- package/dist/lib/cjs/i18n/locales/en.cjs +13 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +12 -0
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +12 -0
- package/dist/lib/cjs/index.cjs +46 -1
- package/dist/lib/cjs/index.d.cts +15 -0
- package/dist/lib/cjs/inline-token-renderer.cjs +145 -0
- package/dist/lib/cjs/inline-token-renderer.d.cts +88 -0
- package/dist/lib/cjs/link-and-tag-input-suggest.cjs +325 -0
- package/dist/lib/cjs/link-and-tag-input-suggest.d.cts +229 -0
- package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -1
- package/dist/lib/cjs/markdown-code-block-processor.d.cts +18 -0
- package/dist/lib/cjs/markdown.cjs +6 -1
- package/dist/lib/cjs/markdown.d.cts +10 -1
- package/dist/lib/cjs/rendered-markdown.cjs +306 -0
- package/dist/lib/cjs/rendered-markdown.d.cts +77 -0
- package/dist/lib/cjs/request-url.cjs +523 -0
- package/dist/lib/cjs/request-url.d.cts +233 -0
- package/dist/lib/cjs/setting-components/folder-list-component.cjs +216 -0
- package/dist/lib/cjs/setting-components/folder-list-component.d.cts +73 -0
- package/dist/lib/cjs/setting-components/hotkey-component.cjs +260 -0
- package/dist/lib/cjs/setting-components/hotkey-component.d.cts +85 -0
- package/dist/lib/cjs/setting-components/index.cjs +13 -1
- package/dist/lib/cjs/setting-components/index.d.cts +4 -0
- package/dist/lib/cjs/setting-components/list-component.cjs +291 -0
- package/dist/lib/cjs/setting-components/list-component.d.cts +106 -0
- package/dist/lib/cjs/setting-components/tag-list-component.cjs +220 -0
- package/dist/lib/cjs/setting-components/tag-list-component.d.cts +82 -0
- package/dist/lib/cjs/setting-ex.cjs +51 -1
- package/dist/lib/cjs/setting-ex.d.cts +35 -1
- package/dist/lib/cjs/settings-tabs.cjs +258 -0
- package/dist/lib/cjs/settings-tabs.d.cts +101 -0
- package/dist/lib/cjs/vault.cjs +2 -2
- package/dist/lib/cjs/vault.d.cts +3 -1
- package/dist/lib/esm/__merged.d.mts +26 -0
- package/dist/lib/esm/__merged.mjs +139 -1
- package/dist/lib/esm/anchored-suggest.d.mts +116 -0
- package/dist/lib/esm/anchored-suggest.mjs +144 -0
- package/dist/lib/esm/broken-link-candidates.d.mts +181 -0
- package/dist/lib/esm/broken-link-candidates.mjs +275 -0
- package/dist/lib/esm/bug-report.d.mts +1 -1
- package/dist/lib/esm/bug-report.mjs +4 -2
- package/dist/lib/esm/code-block-render-handoff.d.mts +131 -0
- package/dist/lib/esm/code-block-render-handoff.mjs +183 -0
- package/dist/lib/esm/codemirror/index.d.mts +2 -0
- package/dist/lib/esm/codemirror/index.mjs +5 -1
- package/dist/lib/esm/codemirror/inline-token-widgets.d.mts +109 -0
- package/dist/lib/esm/codemirror/inline-token-widgets.mjs +167 -0
- package/dist/lib/esm/codemirror/settings-facet.d.mts +19 -0
- package/dist/lib/esm/codemirror/settings-facet.mjs +44 -0
- package/dist/lib/esm/command-handlers/index.d.mts +3 -0
- package/dist/lib/esm/command-handlers/index.mjs +7 -1
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +6 -8
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +9 -12
- package/dist/lib/esm/command-handlers/open-discussion-command-handler.d.mts +45 -0
- package/dist/lib/esm/command-handlers/open-discussion-command-handler.mjs +39 -0
- package/dist/lib/esm/command-handlers/open-feature-request-command-handler.d.mts +33 -0
- package/dist/lib/esm/command-handlers/open-feature-request-command-handler.mjs +31 -0
- package/dist/lib/esm/command-handlers/open-git-hub-command-handler.d.mts +43 -0
- package/dist/lib/esm/command-handlers/open-git-hub-command-handler.mjs +33 -0
- package/dist/lib/esm/components/index.d.mts +2 -0
- package/dist/lib/esm/components/index.mjs +5 -1
- package/dist/lib/esm/components/settings-facet-component.d.mts +68 -0
- package/dist/lib/esm/components/settings-facet-component.mjs +48 -0
- package/dist/lib/esm/components/style-sheet-component.d.mts +79 -0
- package/dist/lib/esm/components/style-sheet-component.mjs +109 -0
- package/dist/lib/esm/css-class.d.mts +28 -0
- package/dist/lib/esm/css-class.mjs +8 -1
- package/dist/lib/esm/data-stores/data-store-transport.d.mts +1 -1
- package/dist/lib/esm/data-stores/data-store-transport.mjs +7 -4
- package/dist/lib/esm/data-stores/shared-data-store.d.mts +1 -1
- package/dist/lib/esm/data-stores/shared-data-store.mjs +1 -1
- package/dist/lib/esm/desktop-git-runner.d.mts +17 -0
- package/dist/lib/esm/desktop-git-runner.mjs +19 -0
- package/dist/lib/esm/desktop-request-url-stream.d.mts +22 -0
- package/dist/lib/esm/desktop-request-url-stream.mjs +170 -0
- package/dist/lib/esm/editor-suggest-registrar.d.mts +14 -2
- package/dist/lib/esm/editor-suggest-registrar.mjs +8 -2
- package/dist/lib/esm/editor-suggest.d.mts +103 -0
- package/dist/lib/esm/editor-suggest.mjs +108 -0
- package/dist/lib/esm/feature-request.d.mts +54 -0
- package/dist/lib/esm/feature-request.mjs +25 -0
- package/dist/lib/esm/generated-during-build.mjs +2 -2
- package/dist/lib/esm/git-hub-discussion.d.mts +28 -0
- package/dist/lib/esm/git-hub-discussion.mjs +13 -0
- package/dist/lib/esm/git-rename-history.d.mts +43 -0
- package/dist/lib/esm/git-rename-history.mjs +59 -0
- package/dist/lib/esm/hotkey.d.mts +59 -0
- package/dist/lib/esm/hotkey.mjs +95 -0
- package/dist/lib/esm/i18n/locales/en.d.mts +12 -0
- package/dist/lib/esm/i18n/locales/en.mjs +13 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +12 -0
- package/dist/lib/esm/index.d.mts +15 -0
- package/dist/lib/esm/index.mjs +31 -1
- package/dist/lib/esm/inline-token-renderer.d.mts +88 -0
- package/dist/lib/esm/inline-token-renderer.mjs +59 -0
- package/dist/lib/esm/link-and-tag-input-suggest.d.mts +229 -0
- package/dist/lib/esm/link-and-tag-input-suggest.mjs +239 -0
- package/dist/lib/esm/markdown-code-block-processor.d.mts +18 -0
- package/dist/lib/esm/markdown-code-block-processor.mjs +16 -1
- package/dist/lib/esm/markdown.d.mts +10 -1
- package/dist/lib/esm/markdown.mjs +9 -1
- package/dist/lib/esm/rendered-markdown.d.mts +77 -0
- package/dist/lib/esm/rendered-markdown.mjs +219 -0
- package/dist/lib/esm/request-url.d.mts +233 -0
- package/dist/lib/esm/request-url.mjs +428 -0
- package/dist/lib/esm/setting-components/folder-list-component.d.mts +73 -0
- package/dist/lib/esm/setting-components/folder-list-component.mjs +131 -0
- package/dist/lib/esm/setting-components/hotkey-component.d.mts +85 -0
- package/dist/lib/esm/setting-components/hotkey-component.mjs +178 -0
- package/dist/lib/esm/setting-components/index.d.mts +4 -0
- package/dist/lib/esm/setting-components/index.mjs +9 -1
- package/dist/lib/esm/setting-components/list-component.d.mts +106 -0
- package/dist/lib/esm/setting-components/list-component.mjs +206 -0
- package/dist/lib/esm/setting-components/tag-list-component.d.mts +82 -0
- package/dist/lib/esm/setting-components/tag-list-component.mjs +131 -0
- package/dist/lib/esm/setting-ex.d.mts +35 -1
- package/dist/lib/esm/setting-ex.mjs +51 -1
- package/dist/lib/esm/settings-tabs.d.mts +101 -0
- package/dist/lib/esm/settings-tabs.mjs +170 -0
- package/dist/lib/esm/vault.d.mts +3 -1
- package/dist/lib/esm/vault.mjs +2 -2
- package/dist/styles.css +83 -1
- package/package.json +2 -2
- package/setting-components/folder-list-component/package.json +6 -0
- package/setting-components/hotkey-component/package.json +6 -0
- package/setting-components/list-component/package.json +6 -0
- package/setting-components/tag-list-component/package.json +6 -0
|
@@ -0,0 +1,258 @@
|
|
|
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
|
+
(function () {
|
|
6
|
+
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
7
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
8
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function ensureBrowserProcess() {
|
|
12
|
+
const browserProcess = {
|
|
13
|
+
browser: true,
|
|
14
|
+
cwd() {
|
|
15
|
+
return "/";
|
|
16
|
+
},
|
|
17
|
+
env: {},
|
|
18
|
+
platform: "android"
|
|
19
|
+
};
|
|
20
|
+
const existingProcess = globalThis.process;
|
|
21
|
+
if (!existingProcess) {
|
|
22
|
+
globalThis.process = browserProcess;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (existingProcess.versions?.node) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const existingProcessRecord = existingProcess;
|
|
29
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
30
|
+
existingProcessRecord[key] ??= value;
|
|
31
|
+
}
|
|
32
|
+
existingProcessRecord["browser"] = true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
ensureDisposeSymbols();
|
|
36
|
+
ensureBrowserProcess();
|
|
37
|
+
})();
|
|
38
|
+
(function patchObsidianRequire() {
|
|
39
|
+
const originalRequire = require;
|
|
40
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
require = Object.assign(
|
|
44
|
+
(id) => requirePatched(id),
|
|
45
|
+
originalRequire,
|
|
46
|
+
{
|
|
47
|
+
__isPatched: true
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
function extractDefault($module) {
|
|
51
|
+
return $module && $module.__esModule && "default" in $module ? $module.default : $module;
|
|
52
|
+
}
|
|
53
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
54
|
+
"@codemirror/autocomplete",
|
|
55
|
+
"@codemirror/collab",
|
|
56
|
+
"@codemirror/commands",
|
|
57
|
+
"@codemirror/language",
|
|
58
|
+
"@codemirror/lint",
|
|
59
|
+
"@codemirror/search",
|
|
60
|
+
"@codemirror/state",
|
|
61
|
+
"@codemirror/text",
|
|
62
|
+
"@codemirror/view",
|
|
63
|
+
"@lezer/common",
|
|
64
|
+
"@lezer/highlight",
|
|
65
|
+
"@lezer/lr",
|
|
66
|
+
"obsidian"
|
|
67
|
+
]);
|
|
68
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
69
|
+
"@codemirror/closebrackets",
|
|
70
|
+
"@codemirror/comment",
|
|
71
|
+
"@codemirror/fold",
|
|
72
|
+
"@codemirror/gutter",
|
|
73
|
+
"@codemirror/highlight",
|
|
74
|
+
"@codemirror/history",
|
|
75
|
+
"@codemirror/matchbrackets",
|
|
76
|
+
"@codemirror/panel",
|
|
77
|
+
"@codemirror/rangeset",
|
|
78
|
+
"@codemirror/rectangular-selection",
|
|
79
|
+
"@codemirror/stream-parser",
|
|
80
|
+
"@codemirror/tooltip"
|
|
81
|
+
]);
|
|
82
|
+
function requirePatched(id) {
|
|
83
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
84
|
+
return originalRequire?.(id);
|
|
85
|
+
}
|
|
86
|
+
const app = globalThis.app;
|
|
87
|
+
if (app?.isMobile) {
|
|
88
|
+
if (id === "process" || id === "node:process") {
|
|
89
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
90
|
+
return process;
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
const $module = originalRequire?.(id);
|
|
94
|
+
if ($module) {
|
|
95
|
+
return extractDefault($module);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
99
|
+
return {};
|
|
100
|
+
}
|
|
101
|
+
})();
|
|
102
|
+
|
|
103
|
+
"use strict";
|
|
104
|
+
var __defProp = Object.defineProperty;
|
|
105
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
106
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
107
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
108
|
+
var __export = (target, all) => {
|
|
109
|
+
for (var name in all)
|
|
110
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
111
|
+
};
|
|
112
|
+
var __copyProps = (to, from, except, desc) => {
|
|
113
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
114
|
+
for (let key of __getOwnPropNames(from))
|
|
115
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
116
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
117
|
+
}
|
|
118
|
+
return to;
|
|
119
|
+
};
|
|
120
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
121
|
+
var desktop_request_url_stream_exports = {};
|
|
122
|
+
__export(desktop_request_url_stream_exports, {
|
|
123
|
+
openDesktopRequestUrlStream: () => openDesktopRequestUrlStream
|
|
124
|
+
});
|
|
125
|
+
module.exports = __toCommonJS(desktop_request_url_stream_exports);
|
|
126
|
+
var import_abort_controller = require('@mnaoumov/typescript-lib/abort-controller');
|
|
127
|
+
var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
|
|
128
|
+
var import_node_http = require('node:http');
|
|
129
|
+
var import_node_https = require('node:https');
|
|
130
|
+
const MAX_REDIRECT_COUNT = 20;
|
|
131
|
+
const HTTP_MOVED_PERMANENTLY_STATUS = 301;
|
|
132
|
+
const HTTP_FOUND_STATUS = 302;
|
|
133
|
+
const HTTP_SEE_OTHER_STATUS = 303;
|
|
134
|
+
const HTTP_TEMPORARY_REDIRECT_STATUS = 307;
|
|
135
|
+
const HTTP_PERMANENT_REDIRECT_STATUS = 308;
|
|
136
|
+
const REDIRECT_STATUSES = /* @__PURE__ */ new Set([
|
|
137
|
+
HTTP_FOUND_STATUS,
|
|
138
|
+
HTTP_MOVED_PERMANENTLY_STATUS,
|
|
139
|
+
HTTP_PERMANENT_REDIRECT_STATUS,
|
|
140
|
+
HTTP_SEE_OTHER_STATUS,
|
|
141
|
+
HTTP_TEMPORARY_REDIRECT_STATUS
|
|
142
|
+
]);
|
|
143
|
+
const BODY_HEADERS = /* @__PURE__ */ new Set(["content-length", "content-type"]);
|
|
144
|
+
async function openDesktopRequestUrlStream(request) {
|
|
145
|
+
let currentRequest = {
|
|
146
|
+
abortSignal: request.abortSignal,
|
|
147
|
+
body: request.body,
|
|
148
|
+
headers: request.headers,
|
|
149
|
+
method: request.method,
|
|
150
|
+
url: request.url
|
|
151
|
+
};
|
|
152
|
+
for (let redirectCount = 0; ; redirectCount++) {
|
|
153
|
+
const incomingMessage = await sendRequest(currentRequest);
|
|
154
|
+
const status = (0, import_type_guards.ensureNonNullable)(incomingMessage.statusCode);
|
|
155
|
+
const location = incomingMessage.headers.location;
|
|
156
|
+
if (!REDIRECT_STATUSES.has(status) || location === void 0) {
|
|
157
|
+
return {
|
|
158
|
+
body: createIncomingMessageStream(incomingMessage, request.abortSignal),
|
|
159
|
+
headers: flattenHeaders(incomingMessage.headers),
|
|
160
|
+
status,
|
|
161
|
+
url: currentRequest.url
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
incomingMessage.resume();
|
|
165
|
+
if (redirectCount >= MAX_REDIRECT_COUNT) {
|
|
166
|
+
throw new TypeError(`Too many redirects requesting ${request.url}`);
|
|
167
|
+
}
|
|
168
|
+
const nextUrl = new URL(location, currentRequest.url);
|
|
169
|
+
if (nextUrl.protocol !== "http:" && nextUrl.protocol !== "https:") {
|
|
170
|
+
throw new TypeError(`Unsupported protocol ${nextUrl.protocol} in the redirect to ${nextUrl.href}`);
|
|
171
|
+
}
|
|
172
|
+
currentRequest = getRedirectedRequest(currentRequest, status, nextUrl.href);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function createIncomingMessageStream(incomingMessage, abortSignal) {
|
|
176
|
+
let isSettled = false;
|
|
177
|
+
let abortListener;
|
|
178
|
+
return new ReadableStream({
|
|
179
|
+
cancel() {
|
|
180
|
+
isSettled = true;
|
|
181
|
+
abortListener[Symbol.dispose]();
|
|
182
|
+
incomingMessage.destroy();
|
|
183
|
+
},
|
|
184
|
+
pull() {
|
|
185
|
+
incomingMessage.resume();
|
|
186
|
+
},
|
|
187
|
+
start(controller) {
|
|
188
|
+
function settle(error) {
|
|
189
|
+
if (isSettled) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
isSettled = true;
|
|
193
|
+
if (error === void 0) {
|
|
194
|
+
controller.close();
|
|
195
|
+
} else {
|
|
196
|
+
controller.error(error);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
incomingMessage.on("data", (chunk) => {
|
|
200
|
+
controller.enqueue(new Uint8Array(chunk));
|
|
201
|
+
if (Number(controller.desiredSize) <= 0) {
|
|
202
|
+
incomingMessage.pause();
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
incomingMessage.on("end", () => {
|
|
206
|
+
abortListener[Symbol.dispose]();
|
|
207
|
+
settle();
|
|
208
|
+
});
|
|
209
|
+
incomingMessage.on("error", (error) => {
|
|
210
|
+
abortListener[Symbol.dispose]();
|
|
211
|
+
settle(error);
|
|
212
|
+
});
|
|
213
|
+
abortListener = (0, import_abort_controller.onAbort)(abortSignal, () => {
|
|
214
|
+
settle(abortSignal.reason);
|
|
215
|
+
incomingMessage.destroy(abortSignal.reason);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
function flattenHeaders(headers) {
|
|
221
|
+
const flatHeaders = {};
|
|
222
|
+
for (const [name, value] of Object.entries(headers)) {
|
|
223
|
+
flatHeaders[name] = [value].flat().join(", ");
|
|
224
|
+
}
|
|
225
|
+
return flatHeaders;
|
|
226
|
+
}
|
|
227
|
+
function getRedirectedRequest(request, status, url) {
|
|
228
|
+
const shouldSwitchToGet = status === HTTP_SEE_OTHER_STATUS || request.method === "POST" && (status === HTTP_MOVED_PERMANENTLY_STATUS || status === HTTP_FOUND_STATUS);
|
|
229
|
+
if (!shouldSwitchToGet) {
|
|
230
|
+
return { ...request, url };
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
abortSignal: request.abortSignal,
|
|
234
|
+
body: void 0,
|
|
235
|
+
headers: Object.fromEntries(Object.entries(request.headers).filter(([name]) => !BODY_HEADERS.has(name.toLowerCase()))),
|
|
236
|
+
method: "GET",
|
|
237
|
+
url
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
async function sendRequest(params) {
|
|
241
|
+
const request = params.url.startsWith("https:") ? import_node_https.request : import_node_http.request;
|
|
242
|
+
return await new Promise((resolve, reject) => {
|
|
243
|
+
const clientRequest = request(params.url, {
|
|
244
|
+
headers: { ...params.headers },
|
|
245
|
+
method: params.method,
|
|
246
|
+
signal: params.abortSignal
|
|
247
|
+
}, resolve);
|
|
248
|
+
clientRequest.on("error", (error) => {
|
|
249
|
+
reject(params.abortSignal.aborted ? params.abortSignal.reason : error);
|
|
250
|
+
});
|
|
251
|
+
clientRequest.end(typeof params.body === "string" ? params.body : params.body && new Uint8Array(params.body));
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
255
|
+
0 && (module.exports = {
|
|
256
|
+
openDesktopRequestUrlStream
|
|
257
|
+
});
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXNrdG9wLXJlcXVlc3QtdXJsLXN0cmVhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGRlc2t0b3AgYXJtIG9mIHtAbGluayAuL3JlcXVlc3QtdXJsLnRzIHwgcmVxdWVzdFVybFN0cmVhbX06IHJlcXVlc3RzIGEgVVJMIHRocm91Z2ggYG5vZGU6aHR0cGAgL1xuICogYG5vZGU6aHR0cHNgLCBzbyB0aGUgcmVzcG9uc2UgYm9keSBzdHJlYW1zIGFzIGl0IGFycml2ZXMgYW5kIGFuIGFib3J0IHJlYWxseSBjYW5jZWxzIHRoZSByZXF1ZXN0LlxuICpcbiAqIERlc2t0b3Agb25seTogaXQgcmVhZHMgYG5vZGU6aHR0cGAgYW5kIGBub2RlOmh0dHBzYC4gUmVhY2ggaXQgdGhyb3VnaCBgcmVxdWVzdFVybFN0cmVhbWAsIHdoaWNoIGltcG9ydHMgaXRcbiAqIGR5bmFtaWNhbGx5IG9uIGRlc2t0b3AuXG4gKlxuICogVW5saWtlIENocm9taXVtJ3MgbmV0d29yayBzdGFjaywgTm9kZSBkb2VzIG5vdCByZWFkIHRoZSBzeXN0ZW0gcHJveHkgc2V0dGluZ3Mgb3IgY2VydGlmaWNhdGUgc3RvcmUsIHNvIGEgbWFjaGluZVxuICogdGhhdCByZWFjaGVzIHRoZSBpbnRlcm5ldCBvbmx5IHRocm91Z2ggYSBwcm94eSwgb3IgdGhhdCBpbnRlcmNlcHRzIFRMUyB3aXRoIGl0cyBvd24gcm9vdCBjZXJ0aWZpY2F0ZSwgbmVlZHMgdGhlXG4gKiBidWZmZXJlZCBgcmVxdWVzdFVybEV4YCBpbnN0ZWFkLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIG4vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvbm9kZS1idWlsdGlucyAtLSBSZWFkYWJsZVN0cmVhbSBpcyB0aGUgT2JzaWRpYW4gcmVuZGVyZXIncyBXZWIgQVBJLCBub3QgYSBOb2RlIGJ1aWx0aW4uICovXG5cbmltcG9ydCB0eXBlIHtcbiAgSW5jb21pbmdIdHRwSGVhZGVycyxcbiAgSW5jb21pbmdNZXNzYWdlXG59IGZyb20gJ25vZGU6aHR0cCc7XG5cbmltcG9ydCB7IG9uQWJvcnQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYWJvcnQtY29udHJvbGxlcic7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyByZXF1ZXN0IGFzIHJlcXVlc3RIdHRwIH0gZnJvbSAnbm9kZTpodHRwJztcbmltcG9ydCB7IHJlcXVlc3QgYXMgcmVxdWVzdEh0dHBzIH0gZnJvbSAnbm9kZTpodHRwcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRW5jb2RlZFJlcXVlc3RVcmxSZXF1ZXN0LFxuICBSZXF1ZXN0VXJsU3RyZWFtUmVzcG9uc2Vcbn0gZnJvbSAnLi9yZXF1ZXN0LXVybC50cyc7XG5cbmNvbnN0IE1BWF9SRURJUkVDVF9DT1VOVCA9IDIwO1xuY29uc3QgSFRUUF9NT1ZFRF9QRVJNQU5FTlRMWV9TVEFUVVMgPSAzMDE7XG5jb25zdCBIVFRQX0ZPVU5EX1NUQVRVUyA9IDMwMjtcbmNvbnN0IEhUVFBfU0VFX09USEVSX1NUQVRVUyA9IDMwMztcbmNvbnN0IEhUVFBfVEVNUE9SQVJZX1JFRElSRUNUX1NUQVRVUyA9IDMwNztcbmNvbnN0IEhUVFBfUEVSTUFORU5UX1JFRElSRUNUX1NUQVRVUyA9IDMwODtcbmNvbnN0IFJFRElSRUNUX1NUQVRVU0VTID0gbmV3IFNldChbXG4gIEhUVFBfRk9VTkRfU1RBVFVTLFxuICBIVFRQX01PVkVEX1BFUk1BTkVOVExZX1NUQVRVUyxcbiAgSFRUUF9QRVJNQU5FTlRfUkVESVJFQ1RfU1RBVFVTLFxuICBIVFRQX1NFRV9PVEhFUl9TVEFUVVMsXG4gIEhUVFBfVEVNUE9SQVJZX1JFRElSRUNUX1NUQVRVU1xuXSk7XG5jb25zdCBCT0RZX0hFQURFUlMgPSBuZXcgU2V0KFsnY29udGVudC1sZW5ndGgnLCAnY29udGVudC10eXBlJ10pO1xuXG5pbnRlcmZhY2UgU2VuZFJlcXVlc3RQYXJhbXMge1xuICByZWFkb25seSBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWw7XG4gIHJlYWRvbmx5IGJvZHk6IEFycmF5QnVmZmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBoZWFkZXJzOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcbiAgcmVhZG9ubHkgbWV0aG9kOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3RzIGEgVVJMIHRocm91Z2ggYG5vZGU6aHR0cGAgLyBgbm9kZTpodHRwc2AgYW5kIHJldHVybnMgaXRzIGJvZHkgYXMgYSBzdHJlYW0sIGZvbGxvd2luZyByZWRpcmVjdHMuXG4gKlxuICogQHBhcmFtIHJlcXVlc3QgLSBUaGUgZW5jb2RlZCByZXF1ZXN0LlxuICogQHJldHVybnMgVGhlIHJlc3BvbnNlLCB3aXRoIGEgc3RyZWFtZWQgYm9keS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5EZXNrdG9wUmVxdWVzdFVybFN0cmVhbShyZXF1ZXN0OiBFbmNvZGVkUmVxdWVzdFVybFJlcXVlc3QpOiBQcm9taXNlPFJlcXVlc3RVcmxTdHJlYW1SZXNwb25zZT4ge1xuICBsZXQgY3VycmVudFJlcXVlc3Q6IFNlbmRSZXF1ZXN0UGFyYW1zID0ge1xuICAgIGFib3J0U2lnbmFsOiByZXF1ZXN0LmFib3J0U2lnbmFsLFxuICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcbiAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMsXG4gICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICB1cmw6IHJlcXVlc3QudXJsXG4gIH07XG5cbiAgZm9yIChsZXQgcmVkaXJlY3RDb3VudCA9IDA7OyByZWRpcmVjdENvdW50KyspIHtcbiAgICBjb25zdCBpbmNvbWluZ01lc3NhZ2UgPSBhd2FpdCBzZW5kUmVxdWVzdChjdXJyZW50UmVxdWVzdCk7XG4gICAgLy8gQSByZXNwb25zZSB0byBhIGNsaWVudCByZXF1ZXN0IGFsd2F5cyBjYXJyaWVzIGl0cyBzdGF0dXMgY29kZS5cbiAgICBjb25zdCBzdGF0dXMgPSBlbnN1cmVOb25OdWxsYWJsZShpbmNvbWluZ01lc3NhZ2Uuc3RhdHVzQ29kZSk7XG4gICAgY29uc3QgbG9jYXRpb24gPSBpbmNvbWluZ01lc3NhZ2UuaGVhZGVycy5sb2NhdGlvbjtcbiAgICBpZiAoIVJFRElSRUNUX1NUQVRVU0VTLmhhcyhzdGF0dXMpIHx8IGxvY2F0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJvZHk6IGNyZWF0ZUluY29taW5nTWVzc2FnZVN0cmVhbShpbmNvbWluZ01lc3NhZ2UsIHJlcXVlc3QuYWJvcnRTaWduYWwpLFxuICAgICAgICBoZWFkZXJzOiBmbGF0dGVuSGVhZGVycyhpbmNvbWluZ01lc3NhZ2UuaGVhZGVycyksXG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgdXJsOiBjdXJyZW50UmVxdWVzdC51cmxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaW5jb21pbmdNZXNzYWdlLnJlc3VtZSgpO1xuICAgIGlmIChyZWRpcmVjdENvdW50ID49IE1BWF9SRURJUkVDVF9DT1VOVCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVG9vIG1hbnkgcmVkaXJlY3RzIHJlcXVlc3RpbmcgJHtyZXF1ZXN0LnVybH1gKTtcbiAgICB9XG4gICAgY29uc3QgbmV4dFVybCA9IG5ldyBVUkwobG9jYXRpb24sIGN1cnJlbnRSZXF1ZXN0LnVybCk7XG4gICAgaWYgKG5leHRVcmwucHJvdG9jb2wgIT09ICdodHRwOicgJiYgbmV4dFVybC5wcm90b2NvbCAhPT0gJ2h0dHBzOicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHByb3RvY29sICR7bmV4dFVybC5wcm90b2NvbH0gaW4gdGhlIHJlZGlyZWN0IHRvICR7bmV4dFVybC5ocmVmfWApO1xuICAgIH1cbiAgICBjdXJyZW50UmVxdWVzdCA9IGdldFJlZGlyZWN0ZWRSZXF1ZXN0KGN1cnJlbnRSZXF1ZXN0LCBzdGF0dXMsIG5leHRVcmwuaHJlZik7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlSW5jb21pbmdNZXNzYWdlU3RyZWFtKGluY29taW5nTWVzc2FnZTogSW5jb21pbmdNZXNzYWdlLCBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PiB7XG4gIGxldCBpc1NldHRsZWQgPSBmYWxzZTtcbiAgLy8gQXNzaWduZWQgaW4gYHN0YXJ0YCwgd2hpY2ggcnVucyBpbnNpZGUgdGhlIGNvbnN0cnVjdG9yLCBzbyBpdCBpcyBpbiBwbGFjZSBiZWZvcmUgYGNhbmNlbGAgY2FuIHJ1bi5cbiAgbGV0IGFib3J0TGlzdGVuZXI6IERpc3Bvc2FibGU7XG4gIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4oe1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgIGlzU2V0dGxlZCA9IHRydWU7XG4gICAgICBhYm9ydExpc3RlbmVyW1N5bWJvbC5kaXNwb3NlXSgpO1xuICAgICAgaW5jb21pbmdNZXNzYWdlLmRlc3Ryb3koKTtcbiAgICB9LFxuICAgIHB1bGwoKTogdm9pZCB7XG4gICAgICBpbmNvbWluZ01lc3NhZ2UucmVzdW1lKCk7XG4gICAgfSxcbiAgICBzdGFydChjb250cm9sbGVyKTogdm9pZCB7XG4gICAgICBmdW5jdGlvbiBzZXR0bGUoZXJyb3I/OiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIGlmIChpc1NldHRsZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaXNTZXR0bGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGVycm9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5jb21pbmdNZXNzYWdlLm9uKCdkYXRhJywgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgICAgLy8gQSBjb3B5LCBzbyB0aGUgY2h1bmsgYmVsb25ncyB0byB0aGUgcmVuZGVyZXIncyByZWFsbSB3aGF0ZXZlciBOb2RlIGRvZXMgd2l0aCBpdHMgYnVmZmVyIGFmdGVyd2FyZHMuXG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShuZXcgVWludDhBcnJheShjaHVuaykpO1xuICAgICAgICBpZiAoTnVtYmVyKGNvbnRyb2xsZXIuZGVzaXJlZFNpemUpIDw9IDApIHtcbiAgICAgICAgICBpbmNvbWluZ01lc3NhZ2UucGF1c2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpbmNvbWluZ01lc3NhZ2Uub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgYWJvcnRMaXN0ZW5lcltTeW1ib2wuZGlzcG9zZV0oKTtcbiAgICAgICAgc2V0dGxlKCk7XG4gICAgICB9KTtcbiAgICAgIGluY29taW5nTWVzc2FnZS5vbignZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgICAgYWJvcnRMaXN0ZW5lcltTeW1ib2wuZGlzcG9zZV0oKTtcbiAgICAgICAgc2V0dGxlKGVycm9yKTtcbiAgICAgIH0pO1xuICAgICAgYWJvcnRMaXN0ZW5lciA9IG9uQWJvcnQoYWJvcnRTaWduYWwsICgpID0+IHtcbiAgICAgICAgc2V0dGxlKGFib3J0U2lnbmFsLnJlYXNvbik7XG4gICAgICAgIC8vIFRoZSBgZXJyb3JgIGV2ZW50IHRoaXMgcmFpc2VzIGZpbmRzIHRoZSBzdHJlYW0gc2V0dGxlZCBhbHJlYWR5LlxuICAgICAgICBpbmNvbWluZ01lc3NhZ2UuZGVzdHJveShhYm9ydFNpZ25hbC5yZWFzb24gYXMgRXJyb3IpO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbn1cbmZ1bmN0aW9uIGZsYXR0ZW5IZWFkZXJzKGhlYWRlcnM6IEluY29taW5nSHR0cEhlYWRlcnMpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgZmxhdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpKSB7XG4gICAgLy8gTm9kZSBqb2lucyBldmVyeSByZXBlYXRlZCBoZWFkZXIgYnV0IGBzZXQtY29va2llYCwgd2hpY2ggYXJyaXZlcyBhcyBhbiBhcnJheS5cbiAgICBmbGF0SGVhZGVyc1tuYW1lXSA9IFt2YWx1ZV0uZmxhdCgpLmpvaW4oJywgJyk7XG4gIH1cbiAgcmV0dXJuIGZsYXRIZWFkZXJzO1xufVxuXG5mdW5jdGlvbiBnZXRSZWRpcmVjdGVkUmVxdWVzdChyZXF1ZXN0OiBTZW5kUmVxdWVzdFBhcmFtcywgc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogU2VuZFJlcXVlc3RQYXJhbXMge1xuICAvLyBXaGF0IGBmZXRjaGAgZG9lczogYSAzMDMsIGFuZCBhIDMwMSBvciAzMDIgYW5zd2VyaW5nIGEgUE9TVCwgYmVjb21lIGEgR0VUIHdpdGhvdXQgYSBib2R5LlxuICBjb25zdCBzaG91bGRTd2l0Y2hUb0dldCA9IHN0YXR1cyA9PT0gSFRUUF9TRUVfT1RIRVJfU1RBVFVTXG4gICAgfHwgKHJlcXVlc3QubWV0aG9kID09PSAnUE9TVCcgJiYgKHN0YXR1cyA9PT0gSFRUUF9NT1ZFRF9QRVJNQU5FTlRMWV9TVEFUVVMgfHwgc3RhdHVzID09PSBIVFRQX0ZPVU5EX1NUQVRVUykpO1xuICBpZiAoIXNob3VsZFN3aXRjaFRvR2V0KSB7XG4gICAgcmV0dXJuIHsgLi4ucmVxdWVzdCwgdXJsIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBhYm9ydFNpZ25hbDogcmVxdWVzdC5hYm9ydFNpZ25hbCxcbiAgICBib2R5OiB1bmRlZmluZWQsXG4gICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHJlcXVlc3QuaGVhZGVycykuZmlsdGVyKChbbmFtZV0pID0+ICFCT0RZX0hFQURFUlMuaGFzKG5hbWUudG9Mb3dlckNhc2UoKSkpKSxcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIHVybFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kUmVxdWVzdChwYXJhbXM6IFNlbmRSZXF1ZXN0UGFyYW1zKTogUHJvbWlzZTxJbmNvbWluZ01lc3NhZ2U+IHtcbiAgY29uc3QgcmVxdWVzdCA9IHBhcmFtcy51cmwuc3RhcnRzV2l0aCgnaHR0cHM6JykgPyByZXF1ZXN0SHR0cHMgOiByZXF1ZXN0SHR0cDtcbiAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBjbGllbnRSZXF1ZXN0ID0gcmVxdWVzdChwYXJhbXMudXJsLCB7XG4gICAgICBoZWFkZXJzOiB7IC4uLnBhcmFtcy5oZWFkZXJzIH0sXG4gICAgICBtZXRob2Q6IHBhcmFtcy5tZXRob2QsXG4gICAgICBzaWduYWw6IHBhcmFtcy5hYm9ydFNpZ25hbFxuICAgIH0sIHJlc29sdmUpO1xuICAgIGNsaWVudFJlcXVlc3Qub24oJ2Vycm9yJywgKGVycm9yKSA9PiB7XG4gICAgICByZWplY3QocGFyYW1zLmFib3J0U2lnbmFsLmFib3J0ZWQgPyBwYXJhbXMuYWJvcnRTaWduYWwucmVhc29uIGFzIEVycm9yIDogZXJyb3IpO1xuICAgIH0pO1xuICAgIGNsaWVudFJlcXVlc3QuZW5kKHR5cGVvZiBwYXJhbXMuYm9keSA9PT0gJ3N0cmluZycgPyBwYXJhbXMuYm9keSA6IHBhcmFtcy5ib2R5ICYmIG5ldyBVaW50OEFycmF5KHBhcmFtcy5ib2R5KSk7XG4gIH0pO1xufVxuLyogZXNsaW50LWVuYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gUmVhZGFibGVTdHJlYW0gaXMgdGhlIE9ic2lkaWFuIHJlbmRlcmVyJ3MgV2ViIEFQSSwgbm90IGEgTm9kZSBidWlsdGluLiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUJBLDhCQUF3QjtBQUN4Qix5QkFBa0M7QUFDbEMsdUJBQXVDO0FBQ3ZDLHdCQUF3QztBQU94QyxNQUFNLHFCQUFxQjtBQUMzQixNQUFNLGdDQUFnQztBQUN0QyxNQUFNLG9CQUFvQjtBQUMxQixNQUFNLHdCQUF3QjtBQUM5QixNQUFNLGlDQUFpQztBQUN2QyxNQUFNLGlDQUFpQztBQUN2QyxNQUFNLG9CQUFvQixvQkFBSSxJQUFJO0FBQUEsRUFDaEM7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsQ0FBQztBQUNELE1BQU0sZUFBZSxvQkFBSSxJQUFJLENBQUMsa0JBQWtCLGNBQWMsQ0FBQztBQWdCL0QsZUFBc0IsNEJBQTRCLFNBQXNFO0FBQ3RILE1BQUksaUJBQW9DO0FBQUEsSUFDdEMsYUFBYSxRQUFRO0FBQUEsSUFDckIsTUFBTSxRQUFRO0FBQUEsSUFDZCxTQUFTLFFBQVE7QUFBQSxJQUNqQixRQUFRLFFBQVE7QUFBQSxJQUNoQixLQUFLLFFBQVE7QUFBQSxFQUNmO0FBRUEsV0FBUyxnQkFBZ0IsS0FBSSxpQkFBaUI7QUFDNUMsVUFBTSxrQkFBa0IsTUFBTSxZQUFZLGNBQWM7QUFFeEQsVUFBTSxhQUFTLHNDQUFrQixnQkFBZ0IsVUFBVTtBQUMzRCxVQUFNLFdBQVcsZ0JBQWdCLFFBQVE7QUFDekMsUUFBSSxDQUFDLGtCQUFrQixJQUFJLE1BQU0sS0FBSyxhQUFhLFFBQVc7QUFDNUQsYUFBTztBQUFBLFFBQ0wsTUFBTSw0QkFBNEIsaUJBQWlCLFFBQVEsV0FBVztBQUFBLFFBQ3RFLFNBQVMsZUFBZSxnQkFBZ0IsT0FBTztBQUFBLFFBQy9DO0FBQUEsUUFDQSxLQUFLLGVBQWU7QUFBQSxNQUN0QjtBQUFBLElBQ0Y7QUFFQSxvQkFBZ0IsT0FBTztBQUN2QixRQUFJLGlCQUFpQixvQkFBb0I7QUFDdkMsWUFBTSxJQUFJLFVBQVUsaUNBQWlDLFFBQVEsR0FBRyxFQUFFO0FBQUEsSUFDcEU7QUFDQSxVQUFNLFVBQVUsSUFBSSxJQUFJLFVBQVUsZUFBZSxHQUFHO0FBQ3BELFFBQUksUUFBUSxhQUFhLFdBQVcsUUFBUSxhQUFhLFVBQVU7QUFDakUsWUFBTSxJQUFJLFVBQVUsd0JBQXdCLFFBQVEsUUFBUSx1QkFBdUIsUUFBUSxJQUFJLEVBQUU7QUFBQSxJQUNuRztBQUNBLHFCQUFpQixxQkFBcUIsZ0JBQWdCLFFBQVEsUUFBUSxJQUFJO0FBQUEsRUFDNUU7QUFDRjtBQUVBLFNBQVMsNEJBQTRCLGlCQUFrQyxhQUFzRDtBQUMzSCxNQUFJLFlBQVk7QUFFaEIsTUFBSTtBQUNKLFNBQU8sSUFBSSxlQUEyQjtBQUFBLElBQ3BDLFNBQWU7QUFDYixrQkFBWTtBQUNaLG9CQUFjLE9BQU8sT0FBTyxFQUFFO0FBQzlCLHNCQUFnQixRQUFRO0FBQUEsSUFDMUI7QUFBQSxJQUNBLE9BQWE7QUFDWCxzQkFBZ0IsT0FBTztBQUFBLElBQ3pCO0FBQUEsSUFDQSxNQUFNLFlBQWtCO0FBQ3RCLGVBQVMsT0FBTyxPQUF1QjtBQUNyQyxZQUFJLFdBQVc7QUFDYjtBQUFBLFFBQ0Y7QUFDQSxvQkFBWTtBQUNaLFlBQUksVUFBVSxRQUFXO0FBQ3ZCLHFCQUFXLE1BQU07QUFBQSxRQUNuQixPQUFPO0FBQ0wscUJBQVcsTUFBTSxLQUFLO0FBQUEsUUFDeEI7QUFBQSxNQUNGO0FBRUEsc0JBQWdCLEdBQUcsUUFBUSxDQUFDLFVBQWtCO0FBRTVDLG1CQUFXLFFBQVEsSUFBSSxXQUFXLEtBQUssQ0FBQztBQUN4QyxZQUFJLE9BQU8sV0FBVyxXQUFXLEtBQUssR0FBRztBQUN2QywwQkFBZ0IsTUFBTTtBQUFBLFFBQ3hCO0FBQUEsTUFDRixDQUFDO0FBQ0Qsc0JBQWdCLEdBQUcsT0FBTyxNQUFNO0FBQzlCLHNCQUFjLE9BQU8sT0FBTyxFQUFFO0FBQzlCLGVBQU87QUFBQSxNQUNULENBQUM7QUFDRCxzQkFBZ0IsR0FBRyxTQUFTLENBQUMsVUFBVTtBQUNyQyxzQkFBYyxPQUFPLE9BQU8sRUFBRTtBQUM5QixlQUFPLEtBQUs7QUFBQSxNQUNkLENBQUM7QUFDRCwwQkFBZ0IsaUNBQVEsYUFBYSxNQUFNO0FBQ3pDLGVBQU8sWUFBWSxNQUFNO0FBRXpCLHdCQUFnQixRQUFRLFlBQVksTUFBZTtBQUFBLE1BQ3JELENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFDQSxTQUFTLGVBQWUsU0FBc0Q7QUFDNUUsUUFBTSxjQUFzQyxDQUFDO0FBQzdDLGFBQVcsQ0FBQyxNQUFNLEtBQUssS0FBSyxPQUFPLFFBQVEsT0FBTyxHQUFHO0FBRW5ELGdCQUFZLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUEsRUFDOUM7QUFDQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLHFCQUFxQixTQUE0QixRQUFnQixLQUFnQztBQUV4RyxRQUFNLG9CQUFvQixXQUFXLHlCQUMvQixRQUFRLFdBQVcsV0FBVyxXQUFXLGlDQUFpQyxXQUFXO0FBQzNGLE1BQUksQ0FBQyxtQkFBbUI7QUFDdEIsV0FBTyxFQUFFLEdBQUcsU0FBUyxJQUFJO0FBQUEsRUFDM0I7QUFDQSxTQUFPO0FBQUEsSUFDTCxhQUFhLFFBQVE7QUFBQSxJQUNyQixNQUFNO0FBQUEsSUFDTixTQUFTLE9BQU8sWUFBWSxPQUFPLFFBQVEsUUFBUSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsYUFBYSxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQztBQUFBLElBQ3JILFFBQVE7QUFBQSxJQUNSO0FBQUEsRUFDRjtBQUNGO0FBRUEsZUFBZSxZQUFZLFFBQXFEO0FBQzlFLFFBQU0sVUFBVSxPQUFPLElBQUksV0FBVyxRQUFRLElBQUksa0JBQUFBLFVBQWUsaUJBQUFDO0FBQ2pFLFNBQU8sTUFBTSxJQUFJLFFBQVEsQ0FBQyxTQUFTLFdBQVc7QUFDNUMsVUFBTSxnQkFBZ0IsUUFBUSxPQUFPLEtBQUs7QUFBQSxNQUN4QyxTQUFTLEVBQUUsR0FBRyxPQUFPLFFBQVE7QUFBQSxNQUM3QixRQUFRLE9BQU87QUFBQSxNQUNmLFFBQVEsT0FBTztBQUFBLElBQ2pCLEdBQUcsT0FBTztBQUNWLGtCQUFjLEdBQUcsU0FBUyxDQUFDLFVBQVU7QUFDbkMsYUFBTyxPQUFPLFlBQVksVUFBVSxPQUFPLFlBQVksU0FBa0IsS0FBSztBQUFBLElBQ2hGLENBQUM7QUFDRCxrQkFBYyxJQUFJLE9BQU8sT0FBTyxTQUFTLFdBQVcsT0FBTyxPQUFPLE9BQU8sUUFBUSxJQUFJLFdBQVcsT0FBTyxJQUFJLENBQUM7QUFBQSxFQUM5RyxDQUFDO0FBQ0g7IiwibmFtZXMiOlsicmVxdWVzdEh0dHBzIiwicmVxdWVzdEh0dHAiXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* The desktop arm of {@link ./request-url.ts | requestUrlStream}: requests a URL through `node:http` /
|
|
6
|
+
* `node:https`, so the response body streams as it arrives and an abort really cancels the request.
|
|
7
|
+
*
|
|
8
|
+
* Desktop only: it reads `node:http` and `node:https`. Reach it through `requestUrlStream`, which imports it
|
|
9
|
+
* dynamically on desktop.
|
|
10
|
+
*
|
|
11
|
+
* Unlike Chromium's network stack, Node does not read the system proxy settings or certificate store, so a machine
|
|
12
|
+
* that reaches the internet only through a proxy, or that intercepts TLS with its own root certificate, needs the
|
|
13
|
+
* buffered `requestUrlEx` instead.
|
|
14
|
+
*/
|
|
15
|
+
import type { EncodedRequestUrlRequest, RequestUrlStreamResponse } from './request-url.cjs';
|
|
16
|
+
/**
|
|
17
|
+
* Requests a URL through `node:http` / `node:https` and returns its body as a stream, following redirects.
|
|
18
|
+
*
|
|
19
|
+
* @param request - The encoded request.
|
|
20
|
+
* @returns The response, with a streamed body.
|
|
21
|
+
*/
|
|
22
|
+
export declare function openDesktopRequestUrlStream(request: EncodedRequestUrlRequest): Promise<RequestUrlStreamResponse>;
|
|
@@ -118,6 +118,7 @@ __export(editor_suggest_registrar_exports, {
|
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(editor_suggest_registrar_exports);
|
|
120
120
|
var import_obsidian = require('obsidian');
|
|
121
|
+
var import_editor_suggest = require('./editor-suggest.cjs');
|
|
121
122
|
class PluginEditorSuggestRegistrar {
|
|
122
123
|
/**
|
|
123
124
|
* Creates a new instance of the {@link PluginEditorSuggestRegistrar} class.
|
|
@@ -132,13 +133,18 @@ class PluginEditorSuggestRegistrar {
|
|
|
132
133
|
* Registers an editor suggest.
|
|
133
134
|
*
|
|
134
135
|
* @param editorSuggest - The editor suggest to register.
|
|
136
|
+
* @param options - The options.
|
|
135
137
|
*/
|
|
136
|
-
registerEditorSuggest
|
|
138
|
+
// eslint-disable-next-line typescript-dev-toolkit/params-options-name-match -- It implements `EditorSuggestRegistrar.registerEditorSuggest`, whose options type every registrar shares.
|
|
139
|
+
registerEditorSuggest(editorSuggest, options) {
|
|
137
140
|
this.plugin.registerEditorSuggest(editorSuggest);
|
|
141
|
+
if (options?.shouldPrioritize) {
|
|
142
|
+
(0, import_editor_suggest.prioritizeEditorSuggest)({ app: this.plugin.app, editorSuggest });
|
|
143
|
+
}
|
|
138
144
|
}
|
|
139
145
|
}
|
|
140
146
|
// Annotate the CommonJS export names for ESM import in node:
|
|
141
147
|
0 && (module.exports = {
|
|
142
148
|
PluginEditorSuggestRegistrar
|
|
143
149
|
});
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEVkaXRvciBzdWdnZXN0IHJlZ2lzdHJhcnMuXG4gKi9cblxuaW1wb3J0IHtcbiAgRWRpdG9yU3VnZ2VzdCxcbiAgUGx1Z2luXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgcHJpb3JpdGl6ZUVkaXRvclN1Z2dlc3QgfSBmcm9tICcuL2VkaXRvci1zdWdnZXN0LnRzJztcblxuLyoqXG4gKiBFZGl0b3Igc3VnZ2VzdCByZWdpc3RyYXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdG9yU3VnZ2VzdFJlZ2lzdHJhciB7XG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYW4gZWRpdG9yIHN1Z2dlc3QuXG4gICAqXG4gICAqIEBwYXJhbSBlZGl0b3JTdWdnZXN0IC0gVGhlIGVkaXRvciBzdWdnZXN0IHRvIHJlZ2lzdGVyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaXN0ZXJFZGl0b3JTdWdnZXN0OiAoZWRpdG9yU3VnZ2VzdDogRWRpdG9yU3VnZ2VzdDx1bmtub3duPiwgb3B0aW9ucz86IFJlZ2lzdGVyRWRpdG9yU3VnZ2VzdE9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIEVkaXRvclN1Z2dlc3RSZWdpc3RyYXIucmVnaXN0ZXJFZGl0b3JTdWdnZXN0fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlckVkaXRvclN1Z2dlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN1Z2dlc3QgaXMgYXNrZWQgYmVmb3JlIHRoZSBvdGhlcnMgYWxyZWFkeSByZWdpc3RlcmVkLCBPYnNpZGlhbidzIG93biBpbmNsdWRlZC4gRGVmYXVsdHMgdG8gYGZhbHNlYDpcbiAgICogcmVnaXN0cmF0aW9uIG9yZGVyIGRlY2lkZXMuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRQcmlvcml0aXplPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFZGl0b3Igc3VnZ2VzdCByZWdpc3RyYXIgaW4gYW4gT2JzaWRpYW4gcGx1Z2luLlxuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luRWRpdG9yU3VnZ2VzdFJlZ2lzdHJhciBpbXBsZW1lbnRzIEVkaXRvclN1Z2dlc3RSZWdpc3RyYXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUge0BsaW5rIFBsdWdpbkVkaXRvclN1Z2dlc3RSZWdpc3RyYXJ9IGNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIE9ic2lkaWFuIHBsdWdpbiBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luOiBQbHVnaW4pIHt9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhbiBlZGl0b3Igc3VnZ2VzdC5cbiAgICpcbiAgICogQHBhcmFtIGVkaXRvclN1Z2dlc3QgLSBUaGUgZWRpdG9yIHN1Z2dlc3QgdG8gcmVnaXN0ZXIuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIEl0IGltcGxlbWVudHMgYEVkaXRvclN1Z2dlc3RSZWdpc3RyYXIucmVnaXN0ZXJFZGl0b3JTdWdnZXN0YCwgd2hvc2Ugb3B0aW9ucyB0eXBlIGV2ZXJ5IHJlZ2lzdHJhciBzaGFyZXMuXG4gIHB1YmxpYyByZWdpc3RlckVkaXRvclN1Z2dlc3QoZWRpdG9yU3VnZ2VzdDogRWRpdG9yU3VnZ2VzdDx1bmtub3duPiwgb3B0aW9ucz86IFJlZ2lzdGVyRWRpdG9yU3VnZ2VzdE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvclN1Z2dlc3QoZWRpdG9yU3VnZ2VzdCk7XG4gICAgaWYgKG9wdGlvbnM/LnNob3VsZFByaW9yaXRpemUpIHtcbiAgICAgIHByaW9yaXRpemVFZGl0b3JTdWdnZXN0KHsgYXBwOiB0aGlzLnBsdWdpbi5hcHAsIGVkaXRvclN1Z2dlc3QgfSk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxzQkFHTztBQUVQLDRCQUF3QztBQTZCakMsTUFBTSw2QkFBK0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNbkUsWUFBK0IsUUFBZ0I7QUFBaEI7QUFBQSxFQUFpQjtBQUFBLEVBQWpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVMvQixzQkFBc0IsZUFBdUMsU0FBOEM7QUFDaEgsU0FBSyxPQUFPLHNCQUFzQixhQUFhO0FBQy9DLFFBQUksU0FBUyxrQkFBa0I7QUFDN0IseURBQXdCLEVBQUUsS0FBSyxLQUFLLE9BQU8sS0FBSyxjQUFjLENBQUM7QUFBQSxJQUNqRTtBQUFBLEVBQ0Y7QUFDRjsiLCJuYW1lcyI6W119
|
|
@@ -13,8 +13,19 @@ export interface EditorSuggestRegistrar {
|
|
|
13
13
|
* Registers an editor suggest.
|
|
14
14
|
*
|
|
15
15
|
* @param editorSuggest - The editor suggest to register.
|
|
16
|
+
* @param options - The options.
|
|
16
17
|
*/
|
|
17
|
-
readonly registerEditorSuggest: (editorSuggest: EditorSuggest<unknown
|
|
18
|
+
readonly registerEditorSuggest: (editorSuggest: EditorSuggest<unknown>, options?: RegisterEditorSuggestOptions) => void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Options for {@link EditorSuggestRegistrar.registerEditorSuggest}.
|
|
22
|
+
*/
|
|
23
|
+
export interface RegisterEditorSuggestOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Whether the suggest is asked before the others already registered, Obsidian's own included. Defaults to `false`:
|
|
26
|
+
* registration order decides.
|
|
27
|
+
*/
|
|
28
|
+
readonly shouldPrioritize?: boolean;
|
|
18
29
|
}
|
|
19
30
|
/**
|
|
20
31
|
* Editor suggest registrar in an Obsidian plugin.
|
|
@@ -31,6 +42,7 @@ export declare class PluginEditorSuggestRegistrar implements EditorSuggestRegist
|
|
|
31
42
|
* Registers an editor suggest.
|
|
32
43
|
*
|
|
33
44
|
* @param editorSuggest - The editor suggest to register.
|
|
45
|
+
* @param options - The options.
|
|
34
46
|
*/
|
|
35
|
-
registerEditorSuggest(editorSuggest: EditorSuggest<unknown
|
|
47
|
+
registerEditorSuggest(editorSuggest: EditorSuggest<unknown>, options?: RegisterEditorSuggestOptions): void;
|
|
36
48
|
}
|
|
@@ -0,0 +1,197 @@
|
|
|
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
|
+
(function () {
|
|
6
|
+
function ensureBrowserProcess() {
|
|
7
|
+
const browserProcess = {
|
|
8
|
+
browser: true,
|
|
9
|
+
cwd() {
|
|
10
|
+
return "/";
|
|
11
|
+
},
|
|
12
|
+
env: {},
|
|
13
|
+
platform: "android"
|
|
14
|
+
};
|
|
15
|
+
const existingProcess = globalThis.process;
|
|
16
|
+
if (!existingProcess) {
|
|
17
|
+
globalThis.process = browserProcess;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (existingProcess.versions?.node) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const existingProcessRecord = existingProcess;
|
|
24
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
25
|
+
existingProcessRecord[key] ??= value;
|
|
26
|
+
}
|
|
27
|
+
existingProcessRecord["browser"] = true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ensureBrowserProcess();
|
|
31
|
+
})();
|
|
32
|
+
(function patchObsidianRequire() {
|
|
33
|
+
const originalRequire = require;
|
|
34
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
require = Object.assign(
|
|
38
|
+
(id) => requirePatched(id),
|
|
39
|
+
originalRequire,
|
|
40
|
+
{
|
|
41
|
+
__isPatched: true
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
function extractDefault($module) {
|
|
45
|
+
return $module && $module.__esModule && "default" in $module ? $module.default : $module;
|
|
46
|
+
}
|
|
47
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
48
|
+
"@codemirror/autocomplete",
|
|
49
|
+
"@codemirror/collab",
|
|
50
|
+
"@codemirror/commands",
|
|
51
|
+
"@codemirror/language",
|
|
52
|
+
"@codemirror/lint",
|
|
53
|
+
"@codemirror/search",
|
|
54
|
+
"@codemirror/state",
|
|
55
|
+
"@codemirror/text",
|
|
56
|
+
"@codemirror/view",
|
|
57
|
+
"@lezer/common",
|
|
58
|
+
"@lezer/highlight",
|
|
59
|
+
"@lezer/lr",
|
|
60
|
+
"obsidian"
|
|
61
|
+
]);
|
|
62
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
63
|
+
"@codemirror/closebrackets",
|
|
64
|
+
"@codemirror/comment",
|
|
65
|
+
"@codemirror/fold",
|
|
66
|
+
"@codemirror/gutter",
|
|
67
|
+
"@codemirror/highlight",
|
|
68
|
+
"@codemirror/history",
|
|
69
|
+
"@codemirror/matchbrackets",
|
|
70
|
+
"@codemirror/panel",
|
|
71
|
+
"@codemirror/rangeset",
|
|
72
|
+
"@codemirror/rectangular-selection",
|
|
73
|
+
"@codemirror/stream-parser",
|
|
74
|
+
"@codemirror/tooltip"
|
|
75
|
+
]);
|
|
76
|
+
function requirePatched(id) {
|
|
77
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
78
|
+
return originalRequire?.(id);
|
|
79
|
+
}
|
|
80
|
+
const app = globalThis.app;
|
|
81
|
+
if (app?.isMobile) {
|
|
82
|
+
if (id === "process" || id === "node:process") {
|
|
83
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
84
|
+
return process;
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
const $module = originalRequire?.(id);
|
|
88
|
+
if ($module) {
|
|
89
|
+
return extractDefault($module);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
95
|
+
})();
|
|
96
|
+
|
|
97
|
+
"use strict";
|
|
98
|
+
var __defProp = Object.defineProperty;
|
|
99
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
100
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
101
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
102
|
+
var __export = (target, all) => {
|
|
103
|
+
for (var name in all)
|
|
104
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
105
|
+
};
|
|
106
|
+
var __copyProps = (to, from, except, desc) => {
|
|
107
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
108
|
+
for (let key of __getOwnPropNames(from))
|
|
109
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
110
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
111
|
+
}
|
|
112
|
+
return to;
|
|
113
|
+
};
|
|
114
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
115
|
+
var editor_suggest_exports = {};
|
|
116
|
+
__export(editor_suggest_exports, {
|
|
117
|
+
CommandEditorSuggest: () => CommandEditorSuggest,
|
|
118
|
+
prioritizeEditorSuggest: () => prioritizeEditorSuggest
|
|
119
|
+
});
|
|
120
|
+
module.exports = __toCommonJS(editor_suggest_exports);
|
|
121
|
+
var import_obsidian = require('obsidian');
|
|
122
|
+
class CommandEditorSuggest extends import_obsidian.EditorSuggest {
|
|
123
|
+
commandStart = null;
|
|
124
|
+
/**
|
|
125
|
+
* Closes the suggest, ending a command-opened session.
|
|
126
|
+
*/
|
|
127
|
+
close() {
|
|
128
|
+
this.commandStart = null;
|
|
129
|
+
super.close();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Decides whether the suggest opens. While a command-opened session lasts, the query is the text from where it was
|
|
133
|
+
* opened to the cursor; otherwise {@link CommandEditorSuggest.onTextTrigger} decides.
|
|
134
|
+
*
|
|
135
|
+
* @param cursor - The cursor.
|
|
136
|
+
* @param editor - The editor.
|
|
137
|
+
* @param file - The file open in the editor.
|
|
138
|
+
* @returns The trigger info, or `null` to stay closed.
|
|
139
|
+
*/
|
|
140
|
+
onTrigger(cursor, editor, file) {
|
|
141
|
+
const start = this.commandStart;
|
|
142
|
+
if (start) {
|
|
143
|
+
if (cursor.line === start.line && cursor.ch >= start.ch) {
|
|
144
|
+
return {
|
|
145
|
+
end: cursor,
|
|
146
|
+
query: editor.getLine(cursor.line).slice(start.ch, cursor.ch),
|
|
147
|
+
start
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
this.commandStart = null;
|
|
151
|
+
}
|
|
152
|
+
return this.onTextTrigger(cursor, editor, file);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Opens the suggest at the cursor of an editor, typically from a command's `editorCallback`.
|
|
156
|
+
*
|
|
157
|
+
* @param params - The parameters.
|
|
158
|
+
* @returns Whether the suggest accepted the cursor: `false` when text is selected.
|
|
159
|
+
*/
|
|
160
|
+
openFromCommand(params) {
|
|
161
|
+
const { editor, file } = params;
|
|
162
|
+
this.commandStart = editor.getCursor();
|
|
163
|
+
if (!this.trigger(editor, file, true)) {
|
|
164
|
+
this.commandStart = null;
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
this.app.workspace.editorSuggest.setCurrentSuggest(this);
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Decides whether the suggest opens on typed text, outside a command-opened session. Never, by default.
|
|
172
|
+
*
|
|
173
|
+
* @param _cursor - The cursor.
|
|
174
|
+
* @param _editor - The editor.
|
|
175
|
+
* @param _file - The file open in the editor.
|
|
176
|
+
* @returns The trigger info, or `null` to stay closed.
|
|
177
|
+
*/
|
|
178
|
+
onTextTrigger(_cursor, _editor, _file) {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function prioritizeEditorSuggest(params) {
|
|
183
|
+
const { app, editorSuggest } = params;
|
|
184
|
+
const suggests = app.workspace.editorSuggest.suggests;
|
|
185
|
+
const index = suggests.indexOf(editorSuggest);
|
|
186
|
+
if (index === -1) {
|
|
187
|
+
throw new Error("The editor suggest is not registered. Register it before prioritizing it.");
|
|
188
|
+
}
|
|
189
|
+
suggests.splice(index, 1);
|
|
190
|
+
suggests.unshift(editorSuggest);
|
|
191
|
+
}
|
|
192
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
193
|
+
0 && (module.exports = {
|
|
194
|
+
CommandEditorSuggest,
|
|
195
|
+
prioritizeEditorSuggest
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lZGl0b3Itc3VnZ2VzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogSGVscGVycyBmb3IgYEVkaXRvclN1Z2dlc3RgOiBnaXZpbmcgb25lIHByaW9yaXR5IG92ZXIgdGhlIG90aGVycywgYW5kIG9wZW5pbmcgb25lIGZyb20gYSBjb21tYW5kLlxuICpcbiAqIFJlYWQgZnJvbSBPYnNpZGlhbiBgMS4xNS4wYDogdGhlIGVkaXRvciBhc2tzIGVhY2ggc3VnZ2VzdCBpbiBgYXBwLndvcmtzcGFjZS5lZGl0b3JTdWdnZXN0LnN1Z2dlc3RzYCBpbiBvcmRlciwgYW5kIHRoZVxuICogZmlyc3Qgd2hvc2UgYHRyaWdnZXJgIGFjY2VwdHMgdGhlIGN1cnNvciB3aW5zLCBzbyByZWdpc3RyYXRpb24gb3JkZXIgZGVjaWRlcyB3aGljaCBzdWdnZXN0IG9wZW5zLiBBIHN1Z2dlc3Qgc2hvd3MgaXRzXG4gKiBsaXN0IG9ubHkgd2hlbiB0aGUgdHJpZ2dlciBpcyBleHBsaWNpdCAodGhlIHVzZXIgdHlwZWQpIG9yIGl0IGlzIGFscmVhZHkgb3Blbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgRWRpdG9yLFxuICBFZGl0b3JQb3NpdGlvbixcbiAgRWRpdG9yU3VnZ2VzdFRyaWdnZXJJbmZvLFxuICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IEVkaXRvclN1Z2dlc3QgfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIENvbW1hbmRFZGl0b3JTdWdnZXN0Lm9wZW5Gcm9tQ29tbWFuZH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZEVkaXRvclN1Z2dlc3RPcGVuRnJvbUNvbW1hbmRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGVkaXRvciB0byBvcGVuIHRoZSBzdWdnZXN0IGluLlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlIG9wZW4gaW4gdGhlIGVkaXRvci5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGU6IG51bGwgfCBURmlsZTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcHJpb3JpdGl6ZUVkaXRvclN1Z2dlc3R9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaW9yaXRpemVFZGl0b3JTdWdnZXN0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIHJlZ2lzdGVyZWQgZWRpdG9yIHN1Z2dlc3QuXG4gICAqL1xuICByZWFkb25seSBlZGl0b3JTdWdnZXN0OiBFZGl0b3JTdWdnZXN0PHVua25vd24+O1xufVxuXG4vKipcbiAqIEFuIGVkaXRvciBzdWdnZXN0IHRoYXQgYSBjb21tYW5kIGNhbiBvcGVuIGF0IHRoZSBjdXJzb3IsIHdpdGhvdXQgYSB0cmlnZ2VyIGNoYXJhY3Rlci5cbiAqXG4gKiB7QGxpbmsgQ29tbWFuZEVkaXRvclN1Z2dlc3Qub3BlbkZyb21Db21tYW5kfSBvcGVucyBpdCBhdCB0aGUgY3Vyc29yOyB0aGUgdGV4dCB0eXBlZCBhZnRlciB0aGF0IHBvaW50LCBvbiB0aGUgc2FtZVxuICogbGluZSwgaXMgdGhlIHF1ZXJ5LCBhbmQgbW92aW5nIHRoZSBjdXJzb3IgYmVmb3JlIHRoYXQgcG9pbnQgb3Igb2ZmIHRoZSBsaW5lIGNsb3NlcyBpdC4gQSBzdWJjbGFzcyBtYXkgc3RpbGwgb3BlbiBvblxuICogdHlwZWQgdGV4dCBieSBvdmVycmlkaW5nIHtAbGluayBDb21tYW5kRWRpdG9yU3VnZ2VzdC5vblRleHRUcmlnZ2VyfS5cbiAqXG4gKiBSZWdpc3RlciBpdCBhcyB1c3VhbCwgc28gdGhlIGVkaXRvciBrZWVwcyBpdCB1cGRhdGVkIHdoaWxlIHRoZSB1c2VyIHR5cGVzOlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBzdWdnZXN0ID0gbmV3IEVtb2ppU3VnZ2VzdCh0aGlzLmFwcCk7XG4gKiB0aGlzLnJlZ2lzdGVyRWRpdG9yU3VnZ2VzdChzdWdnZXN0KTtcbiAqIHRoaXMuYWRkQ29tbWFuZCh7XG4gKiAgIGVkaXRvckNhbGxiYWNrOiAoZWRpdG9yLCBjdHgpID0+IHtcbiAqICAgICBzdWdnZXN0Lm9wZW5Gcm9tQ29tbWFuZCh7IGVkaXRvciwgZmlsZTogY3R4LmZpbGUgfSk7XG4gKiAgIH0sXG4gKiAgIGlkOiAnaW5zZXJ0LWVtb2ppJyxcbiAqICAgbmFtZTogJ0luc2VydCBlbW9qaSdcbiAqIH0pO1xuICogYGBgXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgYSBzdWdnZXN0aW9uLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tbWFuZEVkaXRvclN1Z2dlc3Q8VD4gZXh0ZW5kcyBFZGl0b3JTdWdnZXN0PFQ+IHtcbiAgcHJpdmF0ZSBjb21tYW5kU3RhcnQ6IEVkaXRvclBvc2l0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgc3VnZ2VzdCwgZW5kaW5nIGEgY29tbWFuZC1vcGVuZWQgc2Vzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1hbmRTdGFydCA9IG51bGw7XG4gICAgc3VwZXIuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNpZGVzIHdoZXRoZXIgdGhlIHN1Z2dlc3Qgb3BlbnMuIFdoaWxlIGEgY29tbWFuZC1vcGVuZWQgc2Vzc2lvbiBsYXN0cywgdGhlIHF1ZXJ5IGlzIHRoZSB0ZXh0IGZyb20gd2hlcmUgaXQgd2FzXG4gICAqIG9wZW5lZCB0byB0aGUgY3Vyc29yOyBvdGhlcndpc2Uge0BsaW5rIENvbW1hbmRFZGl0b3JTdWdnZXN0Lm9uVGV4dFRyaWdnZXJ9IGRlY2lkZXMuXG4gICAqXG4gICAqIEBwYXJhbSBjdXJzb3IgLSBUaGUgY3Vyc29yLlxuICAgKiBAcGFyYW0gZWRpdG9yIC0gVGhlIGVkaXRvci5cbiAgICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSBvcGVuIGluIHRoZSBlZGl0b3IuXG4gICAqIEByZXR1cm5zIFRoZSB0cmlnZ2VyIGluZm8sIG9yIGBudWxsYCB0byBzdGF5IGNsb3NlZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvblRyaWdnZXIoY3Vyc29yOiBFZGl0b3JQb3NpdGlvbiwgZWRpdG9yOiBFZGl0b3IsIGZpbGU6IG51bGwgfCBURmlsZSk6IEVkaXRvclN1Z2dlc3RUcmlnZ2VySW5mbyB8IG51bGwge1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5jb21tYW5kU3RhcnQ7XG4gICAgaWYgKHN0YXJ0KSB7XG4gICAgICBpZiAoY3Vyc29yLmxpbmUgPT09IHN0YXJ0LmxpbmUgJiYgY3Vyc29yLmNoID49IHN0YXJ0LmNoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW5kOiBjdXJzb3IsXG4gICAgICAgICAgcXVlcnk6IGVkaXRvci5nZXRMaW5lKGN1cnNvci5saW5lKS5zbGljZShzdGFydC5jaCwgY3Vyc29yLmNoKSxcbiAgICAgICAgICBzdGFydFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdGhpcy5jb21tYW5kU3RhcnQgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vblRleHRUcmlnZ2VyKGN1cnNvciwgZWRpdG9yLCBmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgc3VnZ2VzdCBhdCB0aGUgY3Vyc29yIG9mIGFuIGVkaXRvciwgdHlwaWNhbGx5IGZyb20gYSBjb21tYW5kJ3MgYGVkaXRvckNhbGxiYWNrYC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBzdWdnZXN0IGFjY2VwdGVkIHRoZSBjdXJzb3I6IGBmYWxzZWAgd2hlbiB0ZXh0IGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIG9wZW5Gcm9tQ29tbWFuZChwYXJhbXM6IENvbW1hbmRFZGl0b3JTdWdnZXN0T3BlbkZyb21Db21tYW5kUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBlZGl0b3IsIGZpbGUgfSA9IHBhcmFtcztcbiAgICB0aGlzLmNvbW1hbmRTdGFydCA9IGVkaXRvci5nZXRDdXJzb3IoKTtcbiAgICBpZiAoIXRoaXMudHJpZ2dlcihlZGl0b3IsIGZpbGUsIHRydWUpKSB7XG4gICAgICB0aGlzLmNvbW1hbmRTdGFydCA9IG51bGw7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5lZGl0b3JTdWdnZXN0LnNldEN1cnJlbnRTdWdnZXN0KHRoaXMpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgd2hldGhlciB0aGUgc3VnZ2VzdCBvcGVucyBvbiB0eXBlZCB0ZXh0LCBvdXRzaWRlIGEgY29tbWFuZC1vcGVuZWQgc2Vzc2lvbi4gTmV2ZXIsIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqIEBwYXJhbSBfY3Vyc29yIC0gVGhlIGN1cnNvci5cbiAgICogQHBhcmFtIF9lZGl0b3IgLSBUaGUgZWRpdG9yLlxuICAgKiBAcGFyYW0gX2ZpbGUgLSBUaGUgZmlsZSBvcGVuIGluIHRoZSBlZGl0b3IuXG4gICAqIEByZXR1cm5zIFRoZSB0cmlnZ2VyIGluZm8sIG9yIGBudWxsYCB0byBzdGF5IGNsb3NlZC5cbiAgICovXG4gIHByb3RlY3RlZCBvblRleHRUcmlnZ2VyKF9jdXJzb3I6IEVkaXRvclBvc2l0aW9uLCBfZWRpdG9yOiBFZGl0b3IsIF9maWxlOiBudWxsIHwgVEZpbGUpOiBFZGl0b3JTdWdnZXN0VHJpZ2dlckluZm8gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIE1vdmVzIGEgcmVnaXN0ZXJlZCBlZGl0b3Igc3VnZ2VzdCB0byB0aGUgZnJvbnQgb2YgdGhlIGxpc3QgdGhlIGVkaXRvciBhc2tzLCBzbyBpdCBvcGVucyBhaGVhZCBvZiBldmVyeSBvdGhlciBzdWdnZXN0XG4gKiB3aG9zZSB0cmlnZ2VyIGFjY2VwdHMgdGhlIHNhbWUgdGV4dCwgT2JzaWRpYW4ncyBvd24gYFtbYCBhbmQgYCNgIHN1Z2dlc3RzIGluY2x1ZGVkLiBBIHN1Z2dlc3QgcHJpb3JpdGl6ZWQgbGF0ZXIgZ29lc1xuICogYWhlYWQgb2YgaXQgaW4gdHVybi5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAdGhyb3dzIElmIHRoZSBlZGl0b3Igc3VnZ2VzdCBpcyBub3QgcmVnaXN0ZXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW9yaXRpemVFZGl0b3JTdWdnZXN0KHBhcmFtczogUHJpb3JpdGl6ZUVkaXRvclN1Z2dlc3RQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgeyBhcHAsIGVkaXRvclN1Z2dlc3QgfSA9IHBhcmFtcztcbiAgY29uc3Qgc3VnZ2VzdHMgPSBhcHAud29ya3NwYWNlLmVkaXRvclN1Z2dlc3Quc3VnZ2VzdHM7XG4gIGNvbnN0IGluZGV4ID0gc3VnZ2VzdHMuaW5kZXhPZihlZGl0b3JTdWdnZXN0KTtcbiAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhlIGVkaXRvciBzdWdnZXN0IGlzIG5vdCByZWdpc3RlcmVkLiBSZWdpc3RlciBpdCBiZWZvcmUgcHJpb3JpdGl6aW5nIGl0LicpO1xuICB9XG4gIHN1Z2dlc3RzLnNwbGljZShpbmRleCwgMSk7XG4gIHN1Z2dlc3RzLnVuc2hpZnQoZWRpdG9yU3VnZ2VzdCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCQSxzQkFBOEI7QUF1RHZCLE1BQWUsNkJBQWdDLDhCQUFpQjtBQUFBLEVBQzdELGVBQXNDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLOUIsUUFBYztBQUM1QixTQUFLLGVBQWU7QUFDcEIsVUFBTSxNQUFNO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV2dCLFVBQVUsUUFBd0IsUUFBZ0IsTUFBcUQ7QUFDckgsVUFBTSxRQUFRLEtBQUs7QUFDbkIsUUFBSSxPQUFPO0FBQ1QsVUFBSSxPQUFPLFNBQVMsTUFBTSxRQUFRLE9BQU8sTUFBTSxNQUFNLElBQUk7QUFDdkQsZUFBTztBQUFBLFVBQ0wsS0FBSztBQUFBLFVBQ0wsT0FBTyxPQUFPLFFBQVEsT0FBTyxJQUFJLEVBQUUsTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO0FBQUEsVUFDNUQ7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUNBLFdBQUssZUFBZTtBQUFBLElBQ3RCO0FBQ0EsV0FBTyxLQUFLLGNBQWMsUUFBUSxRQUFRLElBQUk7QUFBQSxFQUNoRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sZ0JBQWdCLFFBQTREO0FBQ2pGLFVBQU0sRUFBRSxRQUFRLEtBQUssSUFBSTtBQUN6QixTQUFLLGVBQWUsT0FBTyxVQUFVO0FBQ3JDLFFBQUksQ0FBQyxLQUFLLFFBQVEsUUFBUSxNQUFNLElBQUksR0FBRztBQUNyQyxXQUFLLGVBQWU7QUFDcEIsYUFBTztBQUFBLElBQ1Q7QUFDQSxTQUFLLElBQUksVUFBVSxjQUFjLGtCQUFrQixJQUFJO0FBQ3ZELFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVVUsY0FBYyxTQUF5QixTQUFpQixPQUFzRDtBQUN0SCxXQUFPO0FBQUEsRUFDVDtBQUNGO0FBVU8sU0FBUyx3QkFBd0IsUUFBNkM7QUFDbkYsUUFBTSxFQUFFLEtBQUssY0FBYyxJQUFJO0FBQy9CLFFBQU0sV0FBVyxJQUFJLFVBQVUsY0FBYztBQUM3QyxRQUFNLFFBQVEsU0FBUyxRQUFRLGFBQWE7QUFDNUMsTUFBSSxVQUFVLElBQUk7QUFDaEIsVUFBTSxJQUFJLE1BQU0sMkVBQTJFO0FBQUEsRUFDN0Y7QUFDQSxXQUFTLE9BQU8sT0FBTyxDQUFDO0FBQ3hCLFdBQVMsUUFBUSxhQUFhO0FBQ2hDOyIsIm5hbWVzIjpbXX0=
|