obsidian-dev-utils 2.25.1 → 2.26.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
CHANGED
@@ -29,8 +29,8 @@ __export(AttachmentPath_exports, {
|
|
29
29
|
module.exports = __toCommonJS(AttachmentPath_exports);
|
30
30
|
var import_Path = require("../Path.cjs");
|
31
31
|
var import_implementations = require("obsidian-typings/implementations");
|
32
|
-
var import_Object = require("../Object.cjs");
|
33
32
|
var import_TAbstractFile = require("./TAbstractFile.cjs");
|
33
|
+
var import_MetadataCache = require("./MetadataCache.cjs");
|
34
34
|
var __import_meta_url = globalThis["import.meta.url"] ?? (() => require("node:url").pathToFileURL(__filename))();
|
35
35
|
var __process = globalThis["process"] ?? {
|
36
36
|
"cwd": () => "/",
|
@@ -46,18 +46,22 @@ async function getAttachmentFilePath(app, attachmentPathOrFile, notePathOrFile)
|
|
46
46
|
const note = (0, import_implementations.createTFileInstance)(app.vault, notePath);
|
47
47
|
const ext = (0, import_Path.extname)(attachmentPath);
|
48
48
|
const fileName = (0, import_Path.basename)(attachmentPath, ext);
|
49
|
+
const unregisters = [];
|
49
50
|
const originalMkdir = app.vault.adapter.mkdir;
|
50
51
|
app.vault.adapter.mkdir = async (path) => {
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
const fakeFolder = (0, import_implementations.createTFolderInstance)(app.vault, path);
|
53
|
+
const unregister = (0, import_MetadataCache.registerFile)(app, fakeFolder);
|
54
|
+
unregisters.push(unregister);
|
55
|
+
await Promise.resolve();
|
55
56
|
};
|
56
57
|
try {
|
57
58
|
const path = await app.vault.getAvailablePathForAttachments(fileName, ext.slice(1), note);
|
58
59
|
return path;
|
59
60
|
} finally {
|
60
61
|
app.vault.adapter.mkdir = originalMkdir;
|
62
|
+
for (const unregister of unregisters) {
|
63
|
+
unregister();
|
64
|
+
}
|
61
65
|
}
|
62
66
|
}
|
63
67
|
// Annotate the CommonJS export names for ESM import in node:
|
@@ -65,4 +69,4 @@ async function getAttachmentFilePath(app, attachmentPathOrFile, notePathOrFile)
|
|
65
69
|
getAttachmentFilePath,
|
66
70
|
getAttachmentFolderPath
|
67
71
|
});
|
68
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0F0dGFjaG1lbnRQYXRoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzW1wiaW1wb3J0Lm1ldGEudXJsXCJdID8/ICgoKT0+cmVxdWlyZShcIm5vZGU6dXJsXCIpLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkpKCk7XG52YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+
|
72
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0F0dGFjaG1lbnRQYXRoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzW1wiaW1wb3J0Lm1ldGEudXJsXCJdID8/ICgoKT0+cmVxdWlyZShcIm5vZGU6dXJsXCIpLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkpKCk7XG52YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gQXR0YWNobWVudFBhdGhcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggYXR0YWNobWVudCBwYXRocy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHtcbiAgYmFzZW5hbWUsXG4gIGRpcm5hbWUsXG4gIGV4dG5hbWVcbn0gZnJvbSBcIi4uL1BhdGgudHNcIjtcbmltcG9ydCB7XG4gIGNyZWF0ZVRGaWxlSW5zdGFuY2UsXG4gIGNyZWF0ZVRGb2xkZXJJbnN0YW5jZVxufSBmcm9tIFwib2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gXCIuL1RGaWxlLnRzXCI7XG5pbXBvcnQgeyBnZXRQYXRoIH0gZnJvbSBcIi4vVEFic3RyYWN0RmlsZS50c1wiO1xuaW1wb3J0IHsgcmVnaXN0ZXJGaWxlIH0gZnJvbSBcIi4vTWV0YWRhdGFDYWNoZS50c1wiO1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYXR0YWNobWVudCBmb2xkZXIgcGF0aCBmb3IgYSBnaXZlbiBub3RlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gbm90ZVBhdGhPckZpbGUgLSBUaGUgcGF0aCBvZiB0aGUgbm90ZS5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdHRhY2htZW50IGZvbGRlciBwYXRoLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZvbGRlclBhdGgoYXBwOiBBcHAsIG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIGRpcm5hbWUoYXdhaXQgZ2V0QXR0YWNobWVudEZpbGVQYXRoKGFwcCwgXCJEVU1NWV9GSUxFLnBkZlwiLCBub3RlUGF0aE9yRmlsZSkpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgZmlsZSBwYXRoIGZvciBhbiBhdHRhY2htZW50IHdpdGhpbiBhIG5vdGUuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBhdHRhY2htZW50UGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9mIHRoZSBhdHRhY2htZW50LlxuICogQHBhcmFtIG5vdGVQYXRoT3JGaWxlIC0gVGhlIHBhdGggb2YgdGhlIG5vdGUuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgZmlsZSBwYXRoIG9mIHRoZSBhdHRhY2htZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZpbGVQYXRoKGFwcDogQXBwLCBhdHRhY2htZW50UGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBhdHRhY2htZW50UGF0aCA9IGdldFBhdGgoYXR0YWNobWVudFBhdGhPckZpbGUpO1xuICBjb25zdCBub3RlUGF0aCA9IGdldFBhdGgobm90ZVBhdGhPckZpbGUpO1xuICBjb25zdCBub3RlID0gY3JlYXRlVEZpbGVJbnN0YW5jZShhcHAudmF1bHQsIG5vdGVQYXRoKTtcbiAgY29uc3QgZXh0ID0gZXh0bmFtZShhdHRhY2htZW50UGF0aCk7XG4gIGNvbnN0IGZpbGVOYW1lID0gYmFzZW5hbWUoYXR0YWNobWVudFBhdGgsIGV4dCk7XG5cbiAgY29uc3QgdW5yZWdpc3RlcnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFxuICBjb25zdCBvcmlnaW5hbE1rZGlyID0gYXBwLnZhdWx0LmFkYXB0ZXIubWtkaXI7XG4gIGFwcC52YXVsdC5hZGFwdGVyLm1rZGlyID0gYXN5bmMgKHBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGZha2VGb2xkZXIgPSBjcmVhdGVURm9sZGVySW5zdGFuY2UoYXBwLnZhdWx0LCBwYXRoKTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyID0gcmVnaXN0ZXJGaWxlKGFwcCwgZmFrZUZvbGRlcik7XG4gICAgdW5yZWdpc3RlcnMucHVzaCh1bnJlZ2lzdGVyKTtcbiAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoKTtcbiAgfTtcblxuICB0cnkge1xuICAgIGNvbnN0IHBhdGggPSBhd2FpdCBhcHAudmF1bHQuZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzKGZpbGVOYW1lLCBleHQuc2xpY2UoMSksIG5vdGUpO1xuICAgIHJldHVybiBwYXRoO1xuICB9IGZpbmFsbHkge1xuICAgIGFwcC52YXVsdC5hZGFwdGVyLm1rZGlyID0gb3JpZ2luYWxNa2RpcjtcbiAgICBmb3IgKGNvbnN0IHVucmVnaXN0ZXIgb2YgdW5yZWdpc3RlcnMpIHtcbiAgICAgIHVucmVnaXN0ZXIoKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUEsa0JBSU87QUFDUCw2QkFHTztBQUVQLDJCQUF3QjtBQUN4QiwyQkFBNkI7QUF2QjdCLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSSxRQUFRLFVBQVUsRUFBRSxjQUFjLFVBQVUsR0FBRztBQUM3RyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBMkJBLGVBQXNCLHdCQUF3QixLQUFVLGdCQUE2QztBQUNuRyxhQUFPLHFCQUFRLE1BQU0sc0JBQXNCLEtBQUssa0JBQWtCLGNBQWMsQ0FBQztBQUNuRjtBQVVBLGVBQXNCLHNCQUFzQixLQUFVLHNCQUFrQyxnQkFBNkM7QUFDbkksUUFBTSxxQkFBaUIsOEJBQVEsb0JBQW9CO0FBQ25ELFFBQU0sZUFBVyw4QkFBUSxjQUFjO0FBQ3ZDLFFBQU0sV0FBTyw0Q0FBb0IsSUFBSSxPQUFPLFFBQVE7QUFDcEQsUUFBTSxVQUFNLHFCQUFRLGNBQWM7QUFDbEMsUUFBTSxlQUFXLHNCQUFTLGdCQUFnQixHQUFHO0FBRTdDLFFBQU0sY0FBOEIsQ0FBQztBQUdyQyxRQUFNLGdCQUFnQixJQUFJLE1BQU0sUUFBUTtBQUN4QyxNQUFJLE1BQU0sUUFBUSxRQUFRLE9BQU8sU0FBZ0M7QUFDL0QsVUFBTSxpQkFBYSw4Q0FBc0IsSUFBSSxPQUFPLElBQUk7QUFDeEQsVUFBTSxpQkFBYSxtQ0FBYSxLQUFLLFVBQVU7QUFDL0MsZ0JBQVksS0FBSyxVQUFVO0FBQzNCLFVBQU0sUUFBUSxRQUFRO0FBQUEsRUFDeEI7QUFFQSxNQUFJO0FBQ0YsVUFBTSxPQUFPLE1BQU0sSUFBSSxNQUFNLCtCQUErQixVQUFVLElBQUksTUFBTSxDQUFDLEdBQUcsSUFBSTtBQUN4RixXQUFPO0FBQUEsRUFDVCxVQUFFO0FBQ0EsUUFBSSxNQUFNLFFBQVEsUUFBUTtBQUMxQixlQUFXLGNBQWMsYUFBYTtBQUNwQyxpQkFBVztBQUFBLElBQ2I7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -27,9 +27,11 @@ __export(MetadataCache_exports, {
|
|
27
27
|
getBacklinksForFileSafe: () => getBacklinksForFileSafe,
|
28
28
|
getCacheSafe: () => getCacheSafe,
|
29
29
|
getFrontMatterSafe: () => getFrontMatterSafe,
|
30
|
-
|
30
|
+
registerFile: () => registerFile,
|
31
|
+
tempRegisterFileAndRun: () => tempRegisterFileAndRun
|
31
32
|
});
|
32
33
|
module.exports = __toCommonJS(MetadataCache_exports);
|
34
|
+
var import_obsidian = require("obsidian");
|
33
35
|
var import_Async = require("../Async.cjs");
|
34
36
|
var import_TAbstractFile = require("./TAbstractFile.cjs");
|
35
37
|
var import_TFile = require("./TFile.cjs");
|
@@ -96,12 +98,7 @@ async function getBacklinksForFileSafe(app, pathOrFile, retryOptions = {}) {
|
|
96
98
|
let backlinks = null;
|
97
99
|
await (0, import_Async.retryWithTimeout)(async () => {
|
98
100
|
const file = (0, import_TFile.getFile)(app, pathOrFile);
|
99
|
-
|
100
|
-
try {
|
101
|
-
backlinks = app.metadataCache.getBacklinksForFile(file);
|
102
|
-
} finally {
|
103
|
-
unregister();
|
104
|
-
}
|
101
|
+
backlinks = tempRegisterFileAndRun(app, file, () => app.metadataCache.getBacklinksForFile(file));
|
105
102
|
for (const notePath of backlinks.keys()) {
|
106
103
|
const note = app.vault.getFileByPath(notePath);
|
107
104
|
if (!note) {
|
@@ -137,7 +134,15 @@ async function getFrontMatterSafe(app, pathOrFile) {
|
|
137
134
|
const cache = await getCacheSafe(app, pathOrFile);
|
138
135
|
return cache?.frontmatter ?? {};
|
139
136
|
}
|
140
|
-
function
|
137
|
+
function tempRegisterFileAndRun(app, file, fn) {
|
138
|
+
const unregister = registerFile(app, file);
|
139
|
+
try {
|
140
|
+
return fn();
|
141
|
+
} finally {
|
142
|
+
unregister();
|
143
|
+
}
|
144
|
+
}
|
145
|
+
function registerFile(app, file) {
|
141
146
|
if (!file.deleted) {
|
142
147
|
return () => {
|
143
148
|
};
|
@@ -146,12 +151,18 @@ function registerFileInVault(vault, file) {
|
|
146
151
|
let deletedFile = file;
|
147
152
|
while (deletedFile.deleted) {
|
148
153
|
deletedPaths.push(deletedFile.path);
|
149
|
-
vault.fileMap[deletedFile.path] = deletedFile;
|
154
|
+
app.vault.fileMap[deletedFile.path] = deletedFile;
|
150
155
|
deletedFile = deletedFile.parent;
|
151
156
|
}
|
157
|
+
if (file instanceof import_obsidian.TFile) {
|
158
|
+
app.metadataCache.uniqueFileLookup.add(file.name.toLowerCase(), file);
|
159
|
+
}
|
152
160
|
return () => {
|
153
161
|
for (const path of deletedPaths) {
|
154
|
-
delete vault.fileMap[path];
|
162
|
+
delete app.vault.fileMap[path];
|
163
|
+
}
|
164
|
+
if (file instanceof import_obsidian.TFile) {
|
165
|
+
app.metadataCache.uniqueFileLookup.remove(file.name.toLowerCase(), file);
|
155
166
|
}
|
156
167
|
};
|
157
168
|
}
|
@@ -161,6 +172,7 @@ function registerFileInVault(vault, file) {
|
|
161
172
|
getBacklinksForFileSafe,
|
162
173
|
getCacheSafe,
|
163
174
|
getFrontMatterSafe,
|
164
|
-
|
175
|
+
registerFile,
|
176
|
+
tempRegisterFileAndRun
|
165
177
|
});
|
166
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL01ldGFkYXRhQ2FjaGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbXCJpbXBvcnQubWV0YS51cmxcIl0gPz8gKCgpPT5yZXF1aXJlKFwibm9kZTp1cmxcIikucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKSkoKTtcbnZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzW1wicHJvY2Vzc1wiXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBNZXRhZGF0YUNhY2hlXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igd29ya2luZyB3aXRoIHRoZSBtZXRhZGF0YSBjYWNoZSBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgQ2FjaGVkTWV0YWRhdGEsXG4gIExpbmtDYWNoZSxcbiAgTWFya2Rvd25WaWV3LFxuICBSZWZlcmVuY2VDYWNoZSxcbiAgVEFic3RyYWN0RmlsZSxcbiAgVmF1bHQsXG59IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHtcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgdHlwZSBSZXRyeU9wdGlvbnNcbn0gZnJvbSBcIi4uL0FzeW5jLnRzXCI7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbUFycmF5RGljdCB9IGZyb20gXCJvYnNpZGlhbi10eXBpbmdzXCI7XG5pbXBvcnQge1xuICBnZXRQYXRoLFxuICBpc01hcmtkb3duRmlsZVxufSBmcm9tIFwiLi9UQWJzdHJhY3RGaWxlLnRzXCI7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICB0eXBlIFBhdGhPckZpbGVcbn0gZnJvbSBcIi4vVEZpbGUudHNcIjtcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udE1hdHRlciB9IGZyb20gXCIuL0Zyb250TWF0dGVyLnRzXCI7XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjYWNoZWQgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gZmlsZSBvciBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGVPclBhdGggLSBUaGUgZmlsZSBvciBwYXRoIHRvIHJldHJpZXZlIHRoZSBtZXRhZGF0YSBmb3IuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucyBmb3IgdGhlIHJldHJpZXZhbCBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGNhY2hlZCBtZXRhZGF0YSBmb3IgdGhlIGZpbGUsIG9yIG51bGwgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENhY2hlU2FmZShhcHA6IEFwcCwgZmlsZU9yUGF0aDogUGF0aE9yRmlsZSwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8Q2FjaGVkTWV0YWRhdGEgfCBudWxsPiB7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUzogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0geyB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IDYwMDAwIH07XG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XG4gIGxldCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gbnVsbDtcblxuICBhd2FpdCByZXRyeVdpdGhUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIGZpbGVPclBhdGgpO1xuXG4gICAgaWYgKCFmaWxlIHx8IGZpbGUuZGVsZXRlZCkge1xuICAgICAgY2FjaGUgPSBudWxsO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYXdhaXQgc2F2ZU5vdGUoYXBwLCBmaWxlKTtcblxuICAgIGNvbnN0IGZpbGVJbmZvID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUluZm8oZmlsZS5wYXRoKTtcbiAgICBjb25zdCBzdGF0ID0gYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuc3RhdChmaWxlLnBhdGgpO1xuXG4gICAgaWYgKCFmaWxlSW5mbykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgRmlsZSBjYWNoZSBpbmZvIGZvciAke2ZpbGUucGF0aH0gaXMgbWlzc2luZ2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXN0YXQpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYEZpbGUgc3RhdCBmb3IgJHtmaWxlLnBhdGh9IGlzIG1pc3NpbmdgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGZpbGVJbmZvLm10aW1lIDwgc3RhdC5tdGltZSkge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgRmlsZSBjYWNoZSBpbmZvIGZvciAke2ZpbGUucGF0aH0gaXMgZnJvbSAke25ldyBEYXRlKGZpbGVJbmZvLm10aW1lKS50b1N0cmluZygpfSB3aGljaCBpcyBvbGRlciB0aGFuIHRoZSBmaWxlIG1vZGlmaWNhdGlvbiB0aW1lc3RhbXAgJHtuZXcgRGF0ZShzdGF0Lm10aW1lKS50b1N0cmluZygpfWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcbiAgICAgIGlmICghY2FjaGUpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgRmlsZSBjYWNoZSBmb3IgJHtmaWxlLnBhdGh9IGlzIG1pc3NpbmdgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9LCBvdmVycmlkZGVuT3B0aW9ucyk7XG5cbiAgcmV0dXJuIGNhY2hlO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhbGwgbGlua3MgZnJvbSB0aGUgcHJvdmlkZWQgY2FjaGUuXG4gKlxuICogQHBhcmFtIGNhY2hlIC0gVGhlIGNhY2hlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHJlZmVyZW5jZSBjYWNoZXMgcmVwcmVzZW50aW5nIHRoZSBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbExpbmtzKGNhY2hlOiBDYWNoZWRNZXRhZGF0YSk6IFJlZmVyZW5jZUNhY2hlW10ge1xuICBsZXQgbGlua3M6IFJlZmVyZW5jZUNhY2hlW10gPSBbXTtcblxuICBpZiAoY2FjaGUubGlua3MpIHtcbiAgICBsaW5rcy5wdXNoKC4uLmNhY2hlLmxpbmtzKTtcbiAgfVxuXG4gIGlmIChjYWNoZS5lbWJlZHMpIHtcbiAgICBsaW5rcy5wdXNoKC4uLmNhY2hlLmVtYmVkcyk7XG4gIH1cblxuICBsaW5rcy5zb3J0KChhLCBiKSA9PiBhLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCAtIGIucG9zaXRpb24uc3RhcnQub2Zmc2V0KTtcblxuICAvLyBCVUc6IGh0dHBzOi8vZm9ydW0ub2JzaWRpYW4ubWQvdC9idWctZHVwbGljYXRlZC1saW5rcy1pbi1tZXRhZGF0YWNhY2hlLWluc2lkZS1mb290bm90ZXMvODU1NTFcbiAgbGlua3MgPSBsaW5rcy5maWx0ZXIoKGxpbmssIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmsucG9zaXRpb24uc3RhcnQub2Zmc2V0ICE9PSBsaW5rc1tpbmRleCAtIDFdIS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ7XG4gIH0pO1xuXG4gIHJldHVybiBsaW5rcztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGJhY2tsaW5rcyBmb3IgYSBmaWxlIHNhZmVseS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIG9iamVjdC5cbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbCByZXRyeSBvcHRpb25zLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgZGljdGlvbmFyeSBvZiBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8Q3VzdG9tQXJyYXlEaWN0PExpbmtDYWNoZT4+IHtcbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNjAwMDAgfTtcbiAgY29uc3Qgb3ZlcnJpZGRlbk9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgbGV0IGJhY2tsaW5rczogQ3VzdG9tQXJyYXlEaWN0PExpbmtDYWNoZT4gfCBudWxsID0gbnVsbDtcbiAgYXdhaXQgcmV0cnlXaXRoVGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyID0gcmVnaXN0ZXJGaWxlSW5WYXVsdChhcHAudmF1bHQsIGZpbGUpO1xuICAgIHRyeSB7XG4gICAgICBiYWNrbGlua3MgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRCYWNrbGlua3NGb3JGaWxlKGZpbGUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB1bnJlZ2lzdGVyKCk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgbm90ZVBhdGggb2YgYmFja2xpbmtzLmtleXMoKSkge1xuICAgICAgY29uc3Qgbm90ZSA9IGFwcC52YXVsdC5nZXRGaWxlQnlQYXRoKG5vdGVQYXRoKTtcbiAgICAgIGlmICghbm90ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHNhdmVOb3RlKGFwcCwgbm90ZSk7XG5cbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBhcHAudmF1bHQucmVhZChub3RlKTtcbiAgICAgIGNvbnN0IGxpbmtzID0gYmFja2xpbmtzLmdldChub3RlUGF0aCkhO1xuICAgICAgZm9yIChjb25zdCBsaW5rIG9mIGxpbmtzKSB7XG4gICAgICAgIGNvbnN0IGFjdHVhbExpbmsgPSBjb250ZW50LnNsaWNlKGxpbmsucG9zaXRpb24uc3RhcnQub2Zmc2V0LCBsaW5rLnBvc2l0aW9uLmVuZC5vZmZzZXQpO1xuICAgICAgICBpZiAoYWN0dWFsTGluayAhPT0gbGluay5vcmlnaW5hbCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LCBvdmVycmlkZGVuT3B0aW9ucyk7XG5cbiAgcmV0dXJuIGJhY2tsaW5rcyE7XG59XG5cbi8qKlxuICogU2F2ZXMgdGhlIHNwZWNpZmllZCBub3RlIGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBub3RlIHRvIGJlIHNhdmVkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbm90ZSBpcyBzYXZlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2F2ZU5vdGUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFpc01hcmtkb3duRmlsZShwYXRoT3JGaWxlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhdGggPSBnZXRQYXRoKHBhdGhPckZpbGUpO1xuXG4gIGZvciAoY29uc3QgbGVhZiBvZiBhcHAud29ya3NwYWNlLmdldExlYXZlc09mVHlwZShcIm1hcmtkb3duXCIpKSB7XG4gICAgY29uc3QgdmlldyA9IGxlYWYudmlldyBhcyBNYXJrZG93blZpZXc7XG4gICAgaWYgKHZpZXcuZmlsZT8ucGF0aCA9PT0gcGF0aCkge1xuICAgICAgYXdhaXQgdmlldy5zYXZlKCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBmcm9udCBtYXR0ZXIgZnJvbSB0aGUgbWV0YWRhdGEgY2FjaGUgc2FmZWx5LlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRNYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gcmV0cmlldmUgdGhlIGZyb250IG1hdHRlciBmcm9tLlxuICogQHJldHVybnMgVGhlIGNvbWJpbmVkIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZyb250TWF0dGVyU2FmZTxDdXN0b21Gcm9udE1hdHRlciA9IHVua25vd24+KGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPj4ge1xuICBjb25zdCBjYWNoZSA9IGF3YWl0IGdldENhY2hlU2FmZShhcHAsIHBhdGhPckZpbGUpO1xuICByZXR1cm4gKGNhY2hlPy5mcm9udG1hdHRlciA/PyB7fSkgYXMgQ29tYmluZWRGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj47XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBzcGVjaWZpZWQgZmlsZSBpbiB0aGUgdmF1bHQuXG4gKlxuICogQHBhcmFtIHZhdWx0IC0gVGhlIHZhdWx0IGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byByZWdpc3Rlci5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCB1bnJlZ2lzdGVycyB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRmlsZUluVmF1bHQodmF1bHQ6IFZhdWx0LCBmaWxlOiBUQWJzdHJhY3RGaWxlKTogKCkgPT4gdm9pZCB7XG4gIGlmICghZmlsZS5kZWxldGVkKSB7XG4gICAgcmV0dXJuICgpID0+IHsgfTtcbiAgfVxuXG4gIGNvbnN0IGRlbGV0ZWRQYXRoczogc3RyaW5nW10gPSBbXTtcblxuICBsZXQgZGVsZXRlZEZpbGU6IFRBYnN0cmFjdEZpbGUgPSBmaWxlO1xuXG4gIHdoaWxlIChkZWxldGVkRmlsZS5kZWxldGVkKSB7XG4gICAgZGVsZXRlZFBhdGhzLnB1c2goZGVsZXRlZEZpbGUucGF0aCk7XG4gICAgdmF1bHQuZmlsZU1hcFtkZWxldGVkRmlsZS5wYXRoXSA9IGRlbGV0ZWRGaWxlO1xuICAgIGRlbGV0ZWRGaWxlID0gZGVsZXRlZEZpbGUucGFyZW50ITtcbiAgfVxuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIGRlbGV0ZWRQYXRocykge1xuICAgICAgZGVsZXRlIHZhdWx0LmZpbGVNYXBbcGF0aF07XG4gICAgfVxuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkEsbUJBR087QUFFUCwyQkFHTztBQUNQLG1CQUlPO0FBakNQLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSSxRQUFRLFVBQVUsRUFB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
|
178
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL01ldGFkYXRhQ2FjaGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbXCJpbXBvcnQubWV0YS51cmxcIl0gPz8gKCgpPT5yZXF1aXJlKFwibm9kZTp1cmxcIikucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKSkoKTtcbnZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzW1wicHJvY2Vzc1wiXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBNZXRhZGF0YUNhY2hlXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igd29ya2luZyB3aXRoIHRoZSBtZXRhZGF0YSBjYWNoZSBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQge1xuICBURmlsZSxcbiAgdHlwZSBBcHAsXG4gIHR5cGUgQ2FjaGVkTWV0YWRhdGEsXG4gIHR5cGUgTGlua0NhY2hlLFxuICB0eXBlIE1hcmtkb3duVmlldyxcbiAgdHlwZSBSZWZlcmVuY2VDYWNoZSxcbiAgdHlwZSBUQWJzdHJhY3RGaWxlXG59IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHtcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgdHlwZSBSZXRyeU9wdGlvbnNcbn0gZnJvbSBcIi4uL0FzeW5jLnRzXCI7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbUFycmF5RGljdCB9IGZyb20gXCJvYnNpZGlhbi10eXBpbmdzXCI7XG5pbXBvcnQge1xuICBnZXRQYXRoLFxuICBpc01hcmtkb3duRmlsZVxufSBmcm9tIFwiLi9UQWJzdHJhY3RGaWxlLnRzXCI7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICB0eXBlIFBhdGhPckZpbGVcbn0gZnJvbSBcIi4vVEZpbGUudHNcIjtcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udE1hdHRlciB9IGZyb20gXCIuL0Zyb250TWF0dGVyLnRzXCI7XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjYWNoZWQgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gZmlsZSBvciBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGVPclBhdGggLSBUaGUgZmlsZSBvciBwYXRoIHRvIHJldHJpZXZlIHRoZSBtZXRhZGF0YSBmb3IuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucyBmb3IgdGhlIHJldHJpZXZhbCBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGNhY2hlZCBtZXRhZGF0YSBmb3IgdGhlIGZpbGUsIG9yIG51bGwgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENhY2hlU2FmZShhcHA6IEFwcCwgZmlsZU9yUGF0aDogUGF0aE9yRmlsZSwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8Q2FjaGVkTWV0YWRhdGEgfCBudWxsPiB7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUzogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0geyB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IDYwMDAwIH07XG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XG4gIGxldCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gbnVsbDtcblxuICBhd2FpdCByZXRyeVdpdGhUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIGZpbGVPclBhdGgpO1xuXG4gICAgaWYgKCFmaWxlIHx8IGZpbGUuZGVsZXRlZCkge1xuICAgICAgY2FjaGUgPSBudWxsO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYXdhaXQgc2F2ZU5vdGUoYXBwLCBmaWxlKTtcblxuICAgIGNvbnN0IGZpbGVJbmZvID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUluZm8oZmlsZS5wYXRoKTtcbiAgICBjb25zdCBzdGF0ID0gYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuc3RhdChmaWxlLnBhdGgpO1xuXG4gICAgaWYgKCFmaWxlSW5mbykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgRmlsZSBjYWNoZSBpbmZvIGZvciAke2ZpbGUucGF0aH0gaXMgbWlzc2luZ2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXN0YXQpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYEZpbGUgc3RhdCBmb3IgJHtmaWxlLnBhdGh9IGlzIG1pc3NpbmdgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGZpbGVJbmZvLm10aW1lIDwgc3RhdC5tdGltZSkge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgRmlsZSBjYWNoZSBpbmZvIGZvciAke2ZpbGUucGF0aH0gaXMgZnJvbSAke25ldyBEYXRlKGZpbGVJbmZvLm10aW1lKS50b1N0cmluZygpfSB3aGljaCBpcyBvbGRlciB0aGFuIHRoZSBmaWxlIG1vZGlmaWNhdGlvbiB0aW1lc3RhbXAgJHtuZXcgRGF0ZShzdGF0Lm10aW1lKS50b1N0cmluZygpfWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcbiAgICAgIGlmICghY2FjaGUpIHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgRmlsZSBjYWNoZSBmb3IgJHtmaWxlLnBhdGh9IGlzIG1pc3NpbmdgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9LCBvdmVycmlkZGVuT3B0aW9ucyk7XG5cbiAgcmV0dXJuIGNhY2hlO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhbGwgbGlua3MgZnJvbSB0aGUgcHJvdmlkZWQgY2FjaGUuXG4gKlxuICogQHBhcmFtIGNhY2hlIC0gVGhlIGNhY2hlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHJlZmVyZW5jZSBjYWNoZXMgcmVwcmVzZW50aW5nIHRoZSBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbExpbmtzKGNhY2hlOiBDYWNoZWRNZXRhZGF0YSk6IFJlZmVyZW5jZUNhY2hlW10ge1xuICBsZXQgbGlua3M6IFJlZmVyZW5jZUNhY2hlW10gPSBbXTtcblxuICBpZiAoY2FjaGUubGlua3MpIHtcbiAgICBsaW5rcy5wdXNoKC4uLmNhY2hlLmxpbmtzKTtcbiAgfVxuXG4gIGlmIChjYWNoZS5lbWJlZHMpIHtcbiAgICBsaW5rcy5wdXNoKC4uLmNhY2hlLmVtYmVkcyk7XG4gIH1cblxuICBsaW5rcy5zb3J0KChhLCBiKSA9PiBhLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCAtIGIucG9zaXRpb24uc3RhcnQub2Zmc2V0KTtcblxuICAvLyBCVUc6IGh0dHBzOi8vZm9ydW0ub2JzaWRpYW4ubWQvdC9idWctZHVwbGljYXRlZC1saW5rcy1pbi1tZXRhZGF0YWNhY2hlLWluc2lkZS1mb290bm90ZXMvODU1NTFcbiAgbGlua3MgPSBsaW5rcy5maWx0ZXIoKGxpbmssIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmsucG9zaXRpb24uc3RhcnQub2Zmc2V0ICE9PSBsaW5rc1tpbmRleCAtIDFdIS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ7XG4gIH0pO1xuXG4gIHJldHVybiBsaW5rcztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGJhY2tsaW5rcyBmb3IgYSBmaWxlIHNhZmVseS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIG9iamVjdC5cbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbCByZXRyeSBvcHRpb25zLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgZGljdGlvbmFyeSBvZiBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8Q3VzdG9tQXJyYXlEaWN0PExpbmtDYWNoZT4+IHtcbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNjAwMDAgfTtcbiAgY29uc3Qgb3ZlcnJpZGRlbk9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgbGV0IGJhY2tsaW5rczogQ3VzdG9tQXJyYXlEaWN0PExpbmtDYWNoZT4gfCBudWxsID0gbnVsbDtcbiAgYXdhaXQgcmV0cnlXaXRoVGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgICBiYWNrbGlua3MgPSB0ZW1wUmVnaXN0ZXJGaWxlQW5kUnVuKGFwcCwgZmlsZSwgKCkgPT4gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0QmFja2xpbmtzRm9yRmlsZShmaWxlKSk7XG4gICAgZm9yIChjb25zdCBub3RlUGF0aCBvZiBiYWNrbGlua3Mua2V5cygpKSB7XG4gICAgICBjb25zdCBub3RlID0gYXBwLnZhdWx0LmdldEZpbGVCeVBhdGgobm90ZVBhdGgpO1xuICAgICAgaWYgKCFub3RlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgc2F2ZU5vdGUoYXBwLCBub3RlKTtcblxuICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGFwcC52YXVsdC5yZWFkKG5vdGUpO1xuICAgICAgY29uc3QgbGlua3MgPSBiYWNrbGlua3MuZ2V0KG5vdGVQYXRoKSE7XG4gICAgICBmb3IgKGNvbnN0IGxpbmsgb2YgbGlua3MpIHtcbiAgICAgICAgY29uc3QgYWN0dWFsTGluayA9IGNvbnRlbnQuc2xpY2UobGluay5wb3NpdGlvbi5zdGFydC5vZmZzZXQsIGxpbmsucG9zaXRpb24uZW5kLm9mZnNldCk7XG4gICAgICAgIGlmIChhY3R1YWxMaW5rICE9PSBsaW5rLm9yaWdpbmFsKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0sIG92ZXJyaWRkZW5PcHRpb25zKTtcblxuICByZXR1cm4gYmFja2xpbmtzITtcbn1cblxuLyoqXG4gKiBTYXZlcyB0aGUgc3BlY2lmaWVkIG5vdGUgaW4gdGhlIE9ic2lkaWFuIGFwcC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIG5vdGUgdG8gYmUgc2F2ZWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBub3RlIGlzIHNhdmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiBzYXZlTm90ZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIWlzTWFya2Rvd25GaWxlKHBhdGhPckZpbGUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGF0aCA9IGdldFBhdGgocGF0aE9yRmlsZSk7XG5cbiAgZm9yIChjb25zdCBsZWFmIG9mIGFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKFwibWFya2Rvd25cIikpIHtcbiAgICBjb25zdCB2aWV3ID0gbGVhZi52aWV3IGFzIE1hcmtkb3duVmlldztcbiAgICBpZiAodmlldy5maWxlPy5wYXRoID09PSBwYXRoKSB7XG4gICAgICBhd2FpdCB2aWV3LnNhdmUoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZyb250IG1hdHRlciBmcm9tIHRoZSBtZXRhZGF0YSBjYWNoZSBzYWZlbHkuXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udE1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byByZXRyaWV2ZSB0aGUgZnJvbnQgbWF0dGVyIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tYmluZWQgZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RnJvbnRNYXR0ZXJTYWZlPEN1c3RvbUZyb250TWF0dGVyID0gdW5rbm93bj4oYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPENvbWJpbmVkRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+PiB7XG4gIGNvbnN0IGNhY2hlID0gYXdhaXQgZ2V0Q2FjaGVTYWZlKGFwcCwgcGF0aE9yRmlsZSk7XG4gIHJldHVybiAoY2FjaGU/LmZyb250bWF0dGVyID8/IHt9KSBhcyBDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPjtcbn1cblxuLyoqXG4gKiBUZW1wb3JhcmlseSByZWdpc3RlcnMgYSBmaWxlIGFuZCBydW5zIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gZmlsZSAtIFRoZSBmaWxlIHRvIHRlbXBvcmFyaWx5IHJlZ2lzdGVyLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIHJ1bi5cbiAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVtcFJlZ2lzdGVyRmlsZUFuZFJ1bjxUPihhcHA6IEFwcCwgZmlsZTogVEFic3RyYWN0RmlsZSwgZm46ICgpID0+IFQpOiBUIHtcbiAgY29uc3QgdW5yZWdpc3RlciA9IHJlZ2lzdGVyRmlsZShhcHAsIGZpbGUpO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gZmluYWxseSB7XG4gICAgdW5yZWdpc3RlcigpO1xuICB9XG59XG5cbi8qKipcbiAqIFJlZ2lzdGVycyBhIGZpbGUgaW4gdGhlIE9ic2lkaWFuIGFwcC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdG8gcmVnaXN0ZXIuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgdW5yZWdpc3RlcnMgdGhlIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckZpbGUoYXBwOiBBcHAsIGZpbGU6IFRBYnN0cmFjdEZpbGUpOiAoKSA9PiB2b2lkIHtcbiAgaWYgKCFmaWxlLmRlbGV0ZWQpIHtcbiAgICByZXR1cm4gKCkgPT4geyB9O1xuICB9XG5cbiAgY29uc3QgZGVsZXRlZFBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBkZWxldGVkRmlsZTogVEFic3RyYWN0RmlsZSA9IGZpbGU7XG5cbiAgd2hpbGUgKGRlbGV0ZWRGaWxlLmRlbGV0ZWQpIHtcbiAgICBkZWxldGVkUGF0aHMucHVzaChkZWxldGVkRmlsZS5wYXRoKTtcbiAgICBhcHAudmF1bHQuZmlsZU1hcFtkZWxldGVkRmlsZS5wYXRoXSA9IGRlbGV0ZWRGaWxlO1xuICAgIGRlbGV0ZWRGaWxlID0gZGVsZXRlZEZpbGUucGFyZW50ITtcbiAgfVxuXG4gIGlmIChmaWxlIGluc3RhbmNlb2YgVEZpbGUpIHtcbiAgICBhcHAubWV0YWRhdGFDYWNoZS51bmlxdWVGaWxlTG9va3VwLmFkZChmaWxlLm5hbWUudG9Mb3dlckNhc2UoKSwgZmlsZSk7XG4gIH1cblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGZvciAoY29uc3QgcGF0aCBvZiBkZWxldGVkUGF0aHMpIHtcbiAgICAgIGRlbGV0ZSBhcHAudmF1bHQuZmlsZU1hcFtwYXRoXTtcbiAgICB9XG5cbiAgICBpZiAoZmlsZSBpbnN0YW5jZW9mIFRGaWxlKSB7XG4gICAgICBhcHAubWV0YWRhdGFDYWNoZS51bmlxdWVGaWxlTG9va3VwLnJlbW92ZShmaWxlLm5hbWUudG9Mb3dlckNhc2UoKSwgZmlsZSk7XG4gICAgfVxuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBLHNCQVFPO0FBQ1AsbUJBR087QUFFUCwyQkFHTztBQUNQLG1CQUlPO0FBakNQLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSSxRQUFRLFVBQVUsRUFBRSxjQUFjLFVBQVUsR0FBRztBQUM3RyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBdUNBLGVBQXNCLGFBQWEsS0FBVSxZQUF3QixlQUFzQyxDQUFDLEdBQW1DO0FBQzdJLFFBQU0sd0JBQStDLEVBQUUsdUJBQXVCLElBQU07QUFDcEYsUUFBTSxvQkFBMkMsRUFBRSxHQUFHLHVCQUF1QixHQUFHLGFBQWE7QUFDN0YsTUFBSSxRQUEr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
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @packageDocumentation MetadataCache
|
3
3
|
* This module provides utility functions for working with the metadata cache in Obsidian.
|
4
4
|
*/
|
5
|
-
import type
|
5
|
+
import { type App, type CachedMetadata, type LinkCache, type ReferenceCache, type TAbstractFile } from "obsidian";
|
6
6
|
import { type RetryOptions } from "../Async.ts";
|
7
7
|
import type { CustomArrayDict } from "obsidian-typings";
|
8
8
|
import { type PathOrFile } from "./TFile.ts";
|
@@ -42,10 +42,19 @@ export declare function getBacklinksForFileSafe(app: App, pathOrFile: PathOrFile
|
|
42
42
|
*/
|
43
43
|
export declare function getFrontMatterSafe<CustomFrontMatter = unknown>(app: App, pathOrFile: PathOrFile): Promise<CombinedFrontMatter<CustomFrontMatter>>;
|
44
44
|
/**
|
45
|
-
*
|
45
|
+
* Temporarily registers a file and runs a function.
|
46
46
|
*
|
47
|
-
* @param
|
47
|
+
* @param app - The Obsidian app instance.
|
48
|
+
* @param file - The file to temporarily register.
|
49
|
+
* @param fn - The function to run.
|
50
|
+
* @returns The result of the function.
|
51
|
+
*/
|
52
|
+
export declare function tempRegisterFileAndRun<T>(app: App, file: TAbstractFile, fn: () => T): T;
|
53
|
+
/***
|
54
|
+
* Registers a file in the Obsidian app.
|
55
|
+
*
|
56
|
+
* @param app - The Obsidian app instance.
|
48
57
|
* @param file - The file to register.
|
49
58
|
* @returns A function that unregisters the file.
|
50
59
|
*/
|
51
|
-
export declare function
|
60
|
+
export declare function registerFile(app: App, file: TAbstractFile): () => void;
|
package/package.json
CHANGED