obsidian-dev-utils 4.10.0 → 4.12.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 +11 -0
- package/dist/lib/@types/compare-versions.d.ts +1 -0
- package/dist/lib/Async.cjs +50 -35
- package/dist/lib/Async.d.ts +66 -66
- package/dist/lib/Blob.cjs +11 -11
- package/dist/lib/Blob.d.ts +7 -7
- package/dist/lib/Error.cjs +17 -17
- package/dist/lib/Error.d.ts +14 -14
- package/dist/lib/Function.cjs +8 -8
- package/dist/lib/Function.d.ts +12 -12
- package/dist/lib/Object.cjs +36 -36
- package/dist/lib/Object.d.ts +55 -55
- package/dist/lib/Path.cjs +16 -16
- package/dist/lib/Path.d.ts +28 -28
- package/dist/lib/String.cjs +35 -35
- package/dist/lib/String.d.ts +55 -55
- package/dist/lib/ValueProvider.cjs +4 -4
- package/dist/lib/obsidian/App.cjs +6 -6
- package/dist/lib/obsidian/App.d.ts +7 -7
- package/dist/lib/obsidian/AttachmentPath.cjs +9 -9
- package/dist/lib/obsidian/AttachmentPath.d.ts +8 -8
- package/dist/lib/obsidian/Backlink.cjs +28 -28
- package/dist/lib/obsidian/Backlink.d.ts +22 -22
- package/dist/lib/obsidian/Callout.cjs +13 -13
- package/dist/lib/obsidian/Dataview.cjs +40 -40
- package/dist/lib/obsidian/Dataview.d.ts +69 -69
- package/dist/lib/obsidian/FileChange.cjs +7 -7
- package/dist/lib/obsidian/FileChange.d.ts +22 -22
- package/dist/lib/obsidian/FileManager.cjs +18 -18
- package/dist/lib/obsidian/FileManager.d.ts +11 -11
- package/dist/lib/obsidian/FileSystem.cjs +31 -31
- package/dist/lib/obsidian/FileSystem.d.ts +41 -41
- package/dist/lib/obsidian/FrontMatter.cjs +1 -1
- package/dist/lib/obsidian/FrontMatter.d.ts +6 -6
- package/dist/lib/obsidian/Link.cjs +154 -154
- package/dist/lib/obsidian/Link.d.ts +163 -163
- package/dist/lib/obsidian/MetadataCache.cjs +61 -61
- package/dist/lib/obsidian/MetadataCache.d.ts +28 -28
- package/dist/lib/obsidian/Modal/Alert.cjs +7 -7
- package/dist/lib/obsidian/Modal/Confirm.cjs +7 -7
- package/dist/lib/obsidian/Modal/Prompt.cjs +15 -15
- package/dist/lib/obsidian/Modal/SelectItem.cjs +7 -7
- package/dist/lib/obsidian/ObsidianSettings.cjs +4 -4
- package/dist/lib/obsidian/ObsidianSettings.d.ts +6 -6
- package/dist/lib/obsidian/Plugin/Plugin.cjs +6 -6
- package/dist/lib/obsidian/Plugin/Plugin.d.ts +7 -7
- package/dist/lib/obsidian/Plugin/PluginBase.cjs +52 -52
- package/dist/lib/obsidian/Plugin/PluginBase.d.ts +29 -29
- package/dist/lib/obsidian/Plugin/PluginSettings.cjs +4 -4
- package/dist/lib/obsidian/Plugin/PluginSettings.d.ts +8 -8
- package/dist/lib/obsidian/Plugin/ValueComponent.cjs +1 -1
- package/dist/lib/obsidian/Plugin/ValueComponent.d.ts +51 -51
- package/dist/lib/obsidian/Queue.cjs +76 -0
- package/dist/lib/obsidian/Queue.d.ts +28 -0
- package/dist/lib/obsidian/Reference.cjs +12 -12
- package/dist/lib/obsidian/Reference.d.ts +7 -7
- package/dist/lib/obsidian/RenameDeleteHandler.cjs +130 -130
- package/dist/lib/obsidian/Vault.cjs +116 -116
- package/dist/lib/obsidian/Vault.d.ts +70 -70
- package/dist/lib/obsidian/index.cjs +4 -4
- package/dist/lib/obsidian/index.d.ts +1 -1
- package/dist/lib/scripts/CliUtils.cjs +30 -30
- package/dist/lib/scripts/CliUtils.d.ts +11 -11
- package/dist/lib/scripts/ESLint/@types/@guardian__eslint-plugin-tsdoc-required.d.ts +2 -0
- package/dist/lib/scripts/ESLint/@types/eslint-plugin-modules-newlines.d.ts +2 -0
- package/dist/lib/scripts/ESLint/@types/eslint-plugin-verify-tsdoc.d.ts +2 -0
- package/dist/lib/scripts/ESLint/eslint.config.cjs +2 -1
- package/dist/lib/scripts/Exec.cjs +1 -1
- package/dist/lib/scripts/Exec.d.ts +21 -21
- package/dist/lib/scripts/Fs.cjs +11 -11
- package/dist/lib/scripts/Fs.d.ts +13 -13
- package/dist/lib/scripts/JSON.cjs +7 -7
- package/dist/lib/scripts/JSON.d.ts +16 -16
- package/dist/lib/scripts/Npm.cjs +13 -13
- package/dist/lib/scripts/Npm.d.ts +43 -43
- package/dist/lib/scripts/Root.cjs +4 -4
- package/dist/lib/scripts/Root.d.ts +8 -8
- package/dist/lib/scripts/build.cjs +4 -4
- package/dist/lib/scripts/build.d.ts +8 -8
- package/dist/lib/scripts/cli.cjs +1 -1
- package/dist/lib/scripts/esbuild/Dependency.cjs +21 -21
- package/dist/lib/scripts/esbuild/Dependency.d.ts +6 -6
- package/dist/lib/scripts/esbuild/fixSourceMapsPlugin.cjs +5 -5
- package/dist/lib/scripts/version.cjs +134 -134
- package/dist/lib/scripts/version.d.ts +70 -70
- package/package.json +11 -11
- package/dist/lib/obsidian/ChainedPromise.cjs +0 -59
- package/dist/lib/obsidian/ChainedPromise.d.ts +0 -26
@@ -40,12 +40,6 @@ var __process = globalThis["process"] ?? {
|
|
40
40
|
"env": {},
|
41
41
|
"platform": "android"
|
42
42
|
};
|
43
|
-
function isContentChange(fileChange) {
|
44
|
-
return fileChange.startIndex !== void 0;
|
45
|
-
}
|
46
|
-
function isFrontmatterChange(fileChange) {
|
47
|
-
return fileChange.frontMatterKey !== void 0;
|
48
|
-
}
|
49
43
|
async function applyFileChanges(app, pathOrFile, changesProvider, retryOptions = {}) {
|
50
44
|
const DEFAULT_RETRY_OPTIONS = { timeoutInMilliseconds: 6e4 };
|
51
45
|
const overriddenOptions = { ...DEFAULT_RETRY_OPTIONS, ...retryOptions };
|
@@ -133,10 +127,16 @@ async function applyFileChanges(app, pathOrFile, changesProvider, retryOptions =
|
|
133
127
|
return newContent;
|
134
128
|
}, overriddenOptions);
|
135
129
|
}
|
130
|
+
function isContentChange(fileChange) {
|
131
|
+
return fileChange.startIndex !== void 0;
|
132
|
+
}
|
133
|
+
function isFrontmatterChange(fileChange) {
|
134
|
+
return fileChange.frontMatterKey !== void 0;
|
135
|
+
}
|
136
136
|
// Annotate the CommonJS export names for ESM import in node:
|
137
137
|
0 && (module.exports = {
|
138
138
|
applyFileChanges,
|
139
139
|
isContentChange,
|
140
140
|
isFrontmatterChange
|
141
141
|
});
|
142
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVDaGFuZ2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXHJcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBGaWxlQ2hhbmdlXHJcbiAqIENvbnRhaW5zIHV0aWxpdHkgdHlwZXMgYW5kIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgZmlsZSBjaGFuZ2VzIGluIE9ic2lkaWFuLlxyXG4gKi9cclxuXHJcbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBSZXRyeU9wdGlvbnMgfSBmcm9tICcuLi9Bc3luYy50cyc7XHJcbmltcG9ydCB0eXBlIHsgVmFsdWVQcm92aWRlciB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcblxuaW1wb3J0IHtcclxuICBkZWVwRXF1YWwsXHJcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcclxuICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlXHJcbn0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHsgZ2V0UGF0aCB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XHJcbmltcG9ydCB7XHJcbiAgcGFyc2VGcm9udE1hdHRlcixcclxuICBzZXRGcm9udE1hdHRlclxyXG59IGZyb20gJy4vRnJvbnRNYXR0ZXIudHMnO1xyXG5pbXBvcnQgeyBwcm9jZXNzIH0gZnJvbSAnLi9WYXVsdC50cyc7XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIGZpbGUgY2hhbmdlIGluIHRoZSBWYXVsdC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUNoYW5nZSB7XHJcbiAgLyoqXHJcbiAgICogVGhlIG5ldyBjb250ZW50IHRvIHJlcGxhY2UgdGhlIG9sZCBjb250ZW50LlxyXG4gICAqL1xyXG4gIG5ld0NvbnRlbnQ6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG9sZCBjb250ZW50IHRoYXQgd2lsbCBiZSByZXBsYWNlZC5cclxuICAgKi9cclxuICBvbGRDb250ZW50OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGEgZnJvbnRtYXR0ZXIgY2hhbmdlIGluIHRoZSBWYXVsdC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRnJvbnRtYXR0ZXJDaGFuZ2UgZXh0ZW5kcyBGaWxlQ2hhbmdlIHtcclxuICAvKipcclxuICAgKiBUaGUga2V5IGluIHRoZSBmcm9udG1hdHRlciB0byB1c2UgZm9yIHRoZSBsaW5rLlxyXG4gICAqL1xyXG4gIGZyb250TWF0dGVyS2V5OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGEgY29udGVudCBib2R5IGNoYW5nZSBpbiB0aGUgVmF1bHQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRDaGFuZ2UgZXh0ZW5kcyBGaWxlQ2hhbmdlIHtcclxuICAvKipcclxuICAgICAqIFRoZSBlbmQgaW5kZXggb2YgdGhlIGNoYW5nZSBpbiB0aGUgZmlsZSBjb250ZW50LlxyXG4gICAgICovXHJcbiAgZW5kSW5kZXg6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICAgKiBUaGUgc3RhcnQgaW5kZXggb2YgdGhlIGNoYW5nZSBpbiB0aGUgZmlsZSBjb250ZW50LlxyXG4gICAgICovXHJcbiAgc3RhcnRJbmRleDogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGlmIGEgZmlsZSBjaGFuZ2UgaXMgYSBjb250ZW50IGNoYW5nZS5cclxuICpcclxuICogQHBhcmFtIGZpbGVDaGFuZ2UgLSBUaGUgZmlsZSBjaGFuZ2UgdG8gY2hlY2suXHJcbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgY2hhbmdlIGlzIGEgY29udGVudCBjaGFuZ2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZW50Q2hhbmdlKGZpbGVDaGFuZ2U6IEZpbGVDaGFuZ2UpOiBmaWxlQ2hhbmdlIGlzIENvbnRlbnRDaGFuZ2Uge1xyXG4gIHJldHVybiAoZmlsZUNoYW5nZSBhcyBQYXJ0aWFsPENvbnRlbnRDaGFuZ2U+KS5zdGFydEluZGV4ICE9PSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgYSBmaWxlIGNoYW5nZSBpcyBhIGZyb250bWF0dGVyIGNoYW5nZS5cclxuICpcclxuICogQHBhcmFtIGZpbGVDaGFuZ2UgLSBUaGUgZmlsZSBjaGFuZ2UgdG8gY2hlY2suXHJcbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgY2hhbmdlIGlzIGEgZnJvbnRtYXR0ZXIgY2hhbmdlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRnJvbnRtYXR0ZXJDaGFuZ2UoZmlsZUNoYW5nZTogRmlsZUNoYW5nZSk6IGZpbGVDaGFuZ2UgaXMgRnJvbnRtYXR0ZXJDaGFuZ2Uge1xyXG4gIHJldHVybiAoZmlsZUNoYW5nZSBhcyBQYXJ0aWFsPEZyb250bWF0dGVyQ2hhbmdlPikuZnJvbnRNYXR0ZXJLZXkgIT09IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFwcGxpZXMgYSBzZXJpZXMgb2YgZmlsZSBjaGFuZ2VzIHRvIHRoZSBzcGVjaWZpZWQgZmlsZSBvciBwYXRoIHdpdGhpbiB0aGUgYXBwbGljYXRpb24uXHJcbiAqXHJcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2Ugd2hlcmUgdGhlIGZpbGUgY2hhbmdlcyB3aWxsIGJlIGFwcGxpZWQuXHJcbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byB3aGljaCB0aGUgY2hhbmdlcyBzaG91bGQgYmUgYXBwbGllZC5cclxuICogQHBhcmFtIGNoYW5nZXNQcm92aWRlciAtIEEgcHJvdmlkZXIgdGhhdCByZXR1cm5zIGFuIGFycmF5IG9mIGZpbGUgY2hhbmdlcyB0byBhcHBseS5cclxuICogQHBhcmFtIHJldHJ5T3B0aW9ucyAtIE9wdGlvbmFsIHNldHRpbmdzIHRoYXQgZGV0ZXJtaW5lIGhvdyB0aGUgb3BlcmF0aW9uIHNob3VsZCByZXRyeSBvbiBmYWlsdXJlLlxyXG4gKlxyXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGNoYW5nZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBhcHBsaWVkLlxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5RmlsZUNoYW5nZXMoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGNoYW5nZXNQcm92aWRlcjogVmFsdWVQcm92aWRlcjxGaWxlQ2hhbmdlW10+LCByZXRyeU9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNjAwMDAgfTtcclxuICBjb25zdCBvdmVycmlkZGVuT3B0aW9uczogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0geyAuLi5ERUZBVUxUX1JFVFJZX09QVElPTlMsIC4uLnJldHJ5T3B0aW9ucyB9O1xyXG4gIGF3YWl0IHByb2Nlc3MoYXBwLCBwYXRoT3JGaWxlLCBhc3luYyAoY29udGVudCkgPT4ge1xyXG4gICAgbGV0IGNoYW5nZXMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY2hhbmdlc1Byb3ZpZGVyKTtcclxuICAgIGNvbnN0IGZyb250TWF0dGVyID0gcGFyc2VGcm9udE1hdHRlcihjb250ZW50KTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBjaGFuZ2VzKSB7XHJcbiAgICAgIGlmIChpc0NvbnRlbnRDaGFuZ2UoY2hhbmdlKSkge1xyXG4gICAgICAgIGNvbnN0IGFjdHVhbENvbnRlbnQgPSBjb250ZW50LnNsaWNlKGNoYW5nZS5zdGFydEluZGV4LCBjaGFuZ2UuZW5kSW5kZXgpO1xyXG4gICAgICAgIGlmIChhY3R1YWxDb250ZW50ICE9PSBjaGFuZ2Uub2xkQ29udGVudCkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKCdDb250ZW50IG1pc21hdGNoJywge1xyXG4gICAgICAgICAgICBhY3R1YWxDb250ZW50LFxyXG4gICAgICAgICAgICBlbmRJbmRleDogY2hhbmdlLmVuZEluZGV4LFxyXG4gICAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IGNoYW5nZS5vbGRDb250ZW50LFxyXG4gICAgICAgICAgICBwYXRoOiBnZXRQYXRoKHBhdGhPckZpbGUpLFxyXG4gICAgICAgICAgICBzdGFydEluZGV4OiBjaGFuZ2Uuc3RhcnRJbmRleFxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2UoY2hhbmdlKSkge1xyXG4gICAgICAgIGNvbnN0IGFjdHVhbENvbnRlbnQgPSBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKGZyb250TWF0dGVyLCBjaGFuZ2UuZnJvbnRNYXR0ZXJLZXkpO1xyXG4gICAgICAgIGlmIChhY3R1YWxDb250ZW50ICE9PSBjaGFuZ2Uub2xkQ29udGVudCkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKCdDb250ZW50IG1pc21hdGNoJywge1xyXG4gICAgICAgICAgICBhY3R1YWxDb250ZW50LFxyXG4gICAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IGNoYW5nZS5vbGRDb250ZW50LFxyXG4gICAgICAgICAgICBmcm9udE1hdHRlcktleTogY2hhbmdlLmZyb250TWF0dGVyS2V5LFxyXG4gICAgICAgICAgICBwYXRoOiBnZXRQYXRoKHBhdGhPckZpbGUpXHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShhKSAmJiBpc0NvbnRlbnRDaGFuZ2UoYikpIHtcclxuICAgICAgICByZXR1cm4gYS5zdGFydEluZGV4IC0gYi5zdGFydEluZGV4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaXNGcm9udG1hdHRlckNoYW5nZShhKSAmJiBpc0Zyb250bWF0dGVyQ2hhbmdlKGIpKSB7XHJcbiAgICAgICAgcmV0dXJuIGEuZnJvbnRNYXR0ZXJLZXkubG9jYWxlQ29tcGFyZShiLmZyb250TWF0dGVyS2V5KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGlzQ29udGVudENoYW5nZShhKSA/IC0xIDogMTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEJVRzogaHR0cHM6Ly9mb3J1bS5vYnNpZGlhbi5tZC90L2J1Zy1kdXBsaWNhdGVkLWxpbmtzLWluLW1ldGFkYXRhY2FjaGUtaW5zaWRlLWZvb3Rub3Rlcy84NTU1MVxyXG4gICAgY2hhbmdlcyA9IGNoYW5nZXMuZmlsdGVyKChjaGFuZ2UsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChjaGFuZ2Uub2xkQ29udGVudCA9PT0gY2hhbmdlLm5ld0NvbnRlbnQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICFkZWVwRXF1YWwoY2hhbmdlLCBjaGFuZ2VzW2luZGV4IC0gMV0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGNoYW5nZSA9IGNoYW5nZXNbaV07XHJcbiAgICAgIGlmICghY2hhbmdlKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcHJldmlvdXNDaGFuZ2UgPSBjaGFuZ2VzW2kgLSAxXTtcclxuICAgICAgaWYgKCFwcmV2aW91c0NoYW5nZSkge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaXNDb250ZW50Q2hhbmdlKHByZXZpb3VzQ2hhbmdlKSAmJiBpc0NvbnRlbnRDaGFuZ2UoY2hhbmdlKSAmJiBwcmV2aW91c0NoYW5nZS5lbmRJbmRleCAmJiBjaGFuZ2Uuc3RhcnRJbmRleCAmJiBwcmV2aW91c0NoYW5nZS5lbmRJbmRleCA+IGNoYW5nZS5zdGFydEluZGV4KSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKCdPdmVybGFwcGluZyBjaGFuZ2VzJywge1xyXG4gICAgICAgICAgY2hhbmdlLFxyXG4gICAgICAgICAgcHJldmlvdXNDaGFuZ2VcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxldCBuZXdDb250ZW50ID0gJyc7XHJcbiAgICBsZXQgbGFzdEluZGV4ID0gMDtcclxuICAgIGxldCBmcm9udE1hdHRlckNoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBjaGFuZ2VzKSB7XHJcbiAgICAgIGlmIChpc0NvbnRlbnRDaGFuZ2UoY2hhbmdlKSkge1xyXG4gICAgICAgIG5ld0NvbnRlbnQgKz0gY29udGVudC5zbGljZShsYXN0SW5kZXgsIGNoYW5nZS5zdGFydEluZGV4KTtcclxuICAgICAgICBuZXdDb250ZW50ICs9IGNoYW5nZS5uZXdDb250ZW50O1xyXG4gICAgICAgIGxhc3RJbmRleCA9IGNoYW5nZS5lbmRJbmRleDtcclxuICAgICAgfSBlbHNlIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGNoYW5nZSkpIHtcclxuICAgICAgICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKGZyb250TWF0dGVyLCBjaGFuZ2UuZnJvbnRNYXR0ZXJLZXksIGNoYW5nZS5uZXdDb250ZW50KTtcclxuICAgICAgICBmcm9udE1hdHRlckNoYW5nZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmV3Q29udGVudCArPSBjb250ZW50LnNsaWNlKGxhc3RJbmRleCk7XHJcbiAgICBpZiAoZnJvbnRNYXR0ZXJDaGFuZ2VkKSB7XHJcbiAgICAgIG5ld0NvbnRlbnQgPSBzZXRGcm9udE1hdHRlcihuZXdDb250ZW50LCBmcm9udE1hdHRlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3Q29udGVudDtcclxuICB9LCBvdmVycmlkZGVuT3B0aW9ucyk7XHJcbn1cclxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLG9CQUlPO0FBQ1AsMkJBQTZCO0FBQzdCLHdCQUF3QjtBQUN4Qix5QkFHTztBQUNQLG1CQUF3QjtBQTNCeEIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQXVFTyxTQUFTLGdCQUFnQixZQUFxRDtBQUNuRixTQUFRLFdBQXNDLGVBQWU7QUFDL0Q7QUFRTyxTQUFTLG9CQUFvQixZQUF5RDtBQUMzRixTQUFRLFdBQTBDLG1CQUFtQjtBQUN2RTtBQVlBLGVBQXNCLGlCQUFpQixLQUFVLFlBQXdCLGlCQUE4QyxlQUFzQyxDQUFDLEdBQWtCO0FBQzlLLFFBQU0sd0JBQStDLEVBQUUs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
|
142
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVDaGFuZ2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXHJcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBGaWxlQ2hhbmdlXHJcbiAqIENvbnRhaW5zIHV0aWxpdHkgdHlwZXMgYW5kIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgZmlsZSBjaGFuZ2VzIGluIE9ic2lkaWFuLlxyXG4gKi9cclxuXHJcbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBSZXRyeU9wdGlvbnMgfSBmcm9tICcuLi9Bc3luYy50cyc7XHJcbmltcG9ydCB0eXBlIHsgVmFsdWVQcm92aWRlciB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcblxuaW1wb3J0IHtcclxuICBkZWVwRXF1YWwsXHJcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcclxuICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlXHJcbn0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHsgZ2V0UGF0aCB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XHJcbmltcG9ydCB7XHJcbiAgcGFyc2VGcm9udE1hdHRlcixcclxuICBzZXRGcm9udE1hdHRlclxyXG59IGZyb20gJy4vRnJvbnRNYXR0ZXIudHMnO1xyXG5pbXBvcnQgeyBwcm9jZXNzIH0gZnJvbSAnLi9WYXVsdC50cyc7XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIGNvbnRlbnQgYm9keSBjaGFuZ2UgaW4gdGhlIFZhdWx0LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb250ZW50Q2hhbmdlIGV4dGVuZHMgRmlsZUNoYW5nZSB7XHJcbiAgLyoqXHJcbiAgICAgKiBUaGUgZW5kIGluZGV4IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGZpbGUgY29udGVudC5cclxuICAgICAqL1xyXG4gIGVuZEluZGV4OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAgICogVGhlIHN0YXJ0IGluZGV4IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGZpbGUgY29udGVudC5cclxuICAgICAqL1xyXG4gIHN0YXJ0SW5kZXg6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBmaWxlIGNoYW5nZSBpbiB0aGUgVmF1bHQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVDaGFuZ2Uge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBuZXcgY29udGVudCB0byByZXBsYWNlIHRoZSBvbGQgY29udGVudC5cclxuICAgKi9cclxuICBuZXdDb250ZW50OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBvbGQgY29udGVudCB0aGF0IHdpbGwgYmUgcmVwbGFjZWQuXHJcbiAgICovXHJcbiAgb2xkQ29udGVudDogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIGZyb250bWF0dGVyIGNoYW5nZSBpbiB0aGUgVmF1bHQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEZyb250bWF0dGVyQ2hhbmdlIGV4dGVuZHMgRmlsZUNoYW5nZSB7XHJcbiAgLyoqXHJcbiAgICogVGhlIGtleSBpbiB0aGUgZnJvbnRtYXR0ZXIgdG8gdXNlIGZvciB0aGUgbGluay5cclxuICAgKi9cclxuICBmcm9udE1hdHRlcktleTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIHNlcmllcyBvZiBmaWxlIGNoYW5nZXMgdG8gdGhlIHNwZWNpZmllZCBmaWxlIG9yIHBhdGggd2l0aGluIHRoZSBhcHBsaWNhdGlvbi5cclxuICpcclxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZSB3aGVyZSB0aGUgZmlsZSBjaGFuZ2VzIHdpbGwgYmUgYXBwbGllZC5cclxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIHdoaWNoIHRoZSBjaGFuZ2VzIHNob3VsZCBiZSBhcHBsaWVkLlxyXG4gKiBAcGFyYW0gY2hhbmdlc1Byb3ZpZGVyIC0gQSBwcm92aWRlciB0aGF0IHJldHVybnMgYW4gYXJyYXkgb2YgZmlsZSBjaGFuZ2VzIHRvIGFwcGx5LlxyXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgc2V0dGluZ3MgdGhhdCBkZXRlcm1pbmUgaG93IHRoZSBvcGVyYXRpb24gc2hvdWxkIHJldHJ5IG9uIGZhaWx1cmUuXHJcbiAqXHJcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgY2hhbmdlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGFwcGxpZWQuXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlGaWxlQ2hhbmdlcyhhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgY2hhbmdlc1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPEZpbGVDaGFuZ2VbXT4sIHJldHJ5T3B0aW9uczogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcclxuICBjb25zdCBERUZBVUxUX1JFVFJZX09QVElPTlM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgdGltZW91dEluTWlsbGlzZWNvbmRzOiA2MDAwMCB9O1xyXG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XHJcbiAgYXdhaXQgcHJvY2VzcyhhcHAsIHBhdGhPckZpbGUsIGFzeW5jIChjb250ZW50KSA9PiB7XHJcbiAgICBsZXQgY2hhbmdlcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjaGFuZ2VzUHJvdmlkZXIpO1xyXG4gICAgY29uc3QgZnJvbnRNYXR0ZXIgPSBwYXJzZUZyb250TWF0dGVyKGNvbnRlbnQpO1xyXG5cclxuICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcclxuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XHJcbiAgICAgICAgY29uc3QgYWN0dWFsQ29udGVudCA9IGNvbnRlbnQuc2xpY2UoY2hhbmdlLnN0YXJ0SW5kZXgsIGNoYW5nZS5lbmRJbmRleCk7XHJcbiAgICAgICAgaWYgKGFjdHVhbENvbnRlbnQgIT09IGNoYW5nZS5vbGRDb250ZW50KSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XHJcbiAgICAgICAgICAgIGFjdHVhbENvbnRlbnQsXHJcbiAgICAgICAgICAgIGVuZEluZGV4OiBjaGFuZ2UuZW5kSW5kZXgsXHJcbiAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXHJcbiAgICAgICAgICAgIHBhdGg6IGdldFBhdGgocGF0aE9yRmlsZSksXHJcbiAgICAgICAgICAgIHN0YXJ0SW5kZXg6IGNoYW5nZS5zdGFydEluZGV4XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNGcm9udG1hdHRlckNoYW5nZShjaGFuZ2UpKSB7XHJcbiAgICAgICAgY29uc3QgYWN0dWFsQ29udGVudCA9IGdldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRNYXR0ZXIsIGNoYW5nZS5mcm9udE1hdHRlcktleSk7XHJcbiAgICAgICAgaWYgKGFjdHVhbENvbnRlbnQgIT09IGNoYW5nZS5vbGRDb250ZW50KSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XHJcbiAgICAgICAgICAgIGFjdHVhbENvbnRlbnQsXHJcbiAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXHJcbiAgICAgICAgICAgIGZyb250TWF0dGVyS2V5OiBjaGFuZ2UuZnJvbnRNYXR0ZXJLZXksXHJcbiAgICAgICAgICAgIHBhdGg6IGdldFBhdGgocGF0aE9yRmlsZSlcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBpZiAoaXNDb250ZW50Q2hhbmdlKGEpICYmIGlzQ29udGVudENoYW5nZShiKSkge1xyXG4gICAgICAgIHJldHVybiBhLnN0YXJ0SW5kZXggLSBiLnN0YXJ0SW5kZXg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGEpICYmIGlzRnJvbnRtYXR0ZXJDaGFuZ2UoYikpIHtcclxuICAgICAgICByZXR1cm4gYS5mcm9udE1hdHRlcktleS5sb2NhbGVDb21wYXJlKGIuZnJvbnRNYXR0ZXJLZXkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gaXNDb250ZW50Q2hhbmdlKGEpID8gLTEgOiAxO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQlVHOiBodHRwczovL2ZvcnVtLm9ic2lkaWFuLm1kL3QvYnVnLWR1cGxpY2F0ZWQtbGlua3MtaW4tbWV0YWRhdGFjYWNoZS1pbnNpZGUtZm9vdG5vdGVzLzg1NTUxXHJcbiAgICBjaGFuZ2VzID0gY2hhbmdlcy5maWx0ZXIoKGNoYW5nZSwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGNoYW5nZS5vbGRDb250ZW50ID09PSBjaGFuZ2UubmV3Q29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gIWRlZXBFcXVhbChjaGFuZ2UsIGNoYW5nZXNbaW5kZXggLSAxXSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1tpXTtcclxuICAgICAgaWYgKCFjaGFuZ2UpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwcmV2aW91c0NoYW5nZSA9IGNoYW5nZXNbaSAtIDFdO1xyXG4gICAgICBpZiAoIXByZXZpb3VzQ2hhbmdlKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpc0NvbnRlbnRDaGFuZ2UocHJldmlvdXNDaGFuZ2UpICYmIGlzQ29udGVudENoYW5nZShjaGFuZ2UpICYmIHByZXZpb3VzQ2hhbmdlLmVuZEluZGV4ICYmIGNoYW5nZS5zdGFydEluZGV4ICYmIHByZXZpb3VzQ2hhbmdlLmVuZEluZGV4ID4gY2hhbmdlLnN0YXJ0SW5kZXgpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oJ092ZXJsYXBwaW5nIGNoYW5nZXMnLCB7XHJcbiAgICAgICAgICBjaGFuZ2UsXHJcbiAgICAgICAgICBwcmV2aW91c0NoYW5nZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG5ld0NvbnRlbnQgPSAnJztcclxuICAgIGxldCBsYXN0SW5kZXggPSAwO1xyXG4gICAgbGV0IGZyb250TWF0dGVyQ2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGNoYW5nZXMpIHtcclxuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XHJcbiAgICAgICAgbmV3Q29udGVudCArPSBjb250ZW50LnNsaWNlKGxhc3RJbmRleCwgY2hhbmdlLnN0YXJ0SW5kZXgpO1xyXG4gICAgICAgIG5ld0NvbnRlbnQgKz0gY2hhbmdlLm5ld0NvbnRlbnQ7XHJcbiAgICAgICAgbGFzdEluZGV4ID0gY2hhbmdlLmVuZEluZGV4O1xyXG4gICAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2UoY2hhbmdlKSkge1xyXG4gICAgICAgIHNldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRNYXR0ZXIsIGNoYW5nZS5mcm9udE1hdHRlcktleSwgY2hhbmdlLm5ld0NvbnRlbnQpO1xyXG4gICAgICAgIGZyb250TWF0dGVyQ2hhbmdlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZXdDb250ZW50ICs9IGNvbnRlbnQuc2xpY2UobGFzdEluZGV4KTtcclxuICAgIGlmIChmcm9udE1hdHRlckNoYW5nZWQpIHtcclxuICAgICAgbmV3Q29udGVudCA9IHNldEZyb250TWF0dGVyKG5ld0NvbnRlbnQsIGZyb250TWF0dGVyKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXdDb250ZW50O1xyXG4gIH0sIG92ZXJyaWRkZW5PcHRpb25zKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgY29udGVudCBjaGFuZ2UuXHJcbiAqXHJcbiAqIEBwYXJhbSBmaWxlQ2hhbmdlIC0gVGhlIGZpbGUgY2hhbmdlIHRvIGNoZWNrLlxyXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGNoYW5nZSBpcyBhIGNvbnRlbnQgY2hhbmdlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGVudENoYW5nZShmaWxlQ2hhbmdlOiBGaWxlQ2hhbmdlKTogZmlsZUNoYW5nZSBpcyBDb250ZW50Q2hhbmdlIHtcclxuICByZXR1cm4gKGZpbGVDaGFuZ2UgYXMgUGFydGlhbDxDb250ZW50Q2hhbmdlPikuc3RhcnRJbmRleCAhPT0gdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIGlmIGEgZmlsZSBjaGFuZ2UgaXMgYSBmcm9udG1hdHRlciBjaGFuZ2UuXHJcbiAqXHJcbiAqIEBwYXJhbSBmaWxlQ2hhbmdlIC0gVGhlIGZpbGUgY2hhbmdlIHRvIGNoZWNrLlxyXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGNoYW5nZSBpcyBhIGZyb250bWF0dGVyIGNoYW5nZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Zyb250bWF0dGVyQ2hhbmdlKGZpbGVDaGFuZ2U6IEZpbGVDaGFuZ2UpOiBmaWxlQ2hhbmdlIGlzIEZyb250bWF0dGVyQ2hhbmdlIHtcclxuICByZXR1cm4gKGZpbGVDaGFuZ2UgYXMgUGFydGlhbDxGcm9udG1hdHRlckNoYW5nZT4pLmZyb250TWF0dGVyS2V5ICE9PSB1bmRlZmluZWQ7XHJcbn1cclxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLG9CQUlPO0FBQ1AsMkJBQTZCO0FBQzdCLHdCQUF3QjtBQUN4Qix5QkFHTztBQUNQLG1CQUF3QjtBQTNCeEIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQTJFQSxlQUFzQixpQkFBaUIsS0FBVSxZQUF3QixpQkFBOEMsZUFBc0MsQ0FBQyxHQUFrQjtBQUM5SyxRQUFNLHdCQUErQyxFQUFFLHVCQUF1QixJQUFNO0FBQ3BGLFFBQU0sb0JBQTJDLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyxhQUFhO0FBQzdGLFlBQU0sc0JBQVEsS0FBSyxZQUFZLE9BQU8sWUFBWTtBQUNoRCxRQUFJ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
|
@@ -6,6 +6,19 @@ import type { App } from 'obsidian';
|
|
6
6
|
import type { RetryOptions } from '../Async.ts';
|
7
7
|
import type { ValueProvider } from '../ValueProvider.ts';
|
8
8
|
import type { PathOrFile } from './FileSystem.ts';
|
9
|
+
/**
|
10
|
+
* Represents a content body change in the Vault.
|
11
|
+
*/
|
12
|
+
export interface ContentChange extends FileChange {
|
13
|
+
/**
|
14
|
+
* The end index of the change in the file content.
|
15
|
+
*/
|
16
|
+
endIndex: number;
|
17
|
+
/**
|
18
|
+
* The start index of the change in the file content.
|
19
|
+
*/
|
20
|
+
startIndex: number;
|
21
|
+
}
|
9
22
|
/**
|
10
23
|
* Represents a file change in the Vault.
|
11
24
|
*/
|
@@ -29,18 +42,16 @@ export interface FrontmatterChange extends FileChange {
|
|
29
42
|
frontMatterKey: string;
|
30
43
|
}
|
31
44
|
/**
|
32
|
-
*
|
45
|
+
* Applies a series of file changes to the specified file or path within the application.
|
46
|
+
*
|
47
|
+
* @param app - The application instance where the file changes will be applied.
|
48
|
+
* @param pathOrFile - The path or file to which the changes should be applied.
|
49
|
+
* @param changesProvider - A provider that returns an array of file changes to apply.
|
50
|
+
* @param retryOptions - Optional settings that determine how the operation should retry on failure.
|
51
|
+
*
|
52
|
+
* @returns A promise that resolves when the file changes have been successfully applied.
|
33
53
|
*/
|
34
|
-
export
|
35
|
-
/**
|
36
|
-
* The end index of the change in the file content.
|
37
|
-
*/
|
38
|
-
endIndex: number;
|
39
|
-
/**
|
40
|
-
* The start index of the change in the file content.
|
41
|
-
*/
|
42
|
-
startIndex: number;
|
43
|
-
}
|
54
|
+
export declare function applyFileChanges(app: App, pathOrFile: PathOrFile, changesProvider: ValueProvider<FileChange[]>, retryOptions?: Partial<RetryOptions>): Promise<void>;
|
44
55
|
/**
|
45
56
|
* Checks if a file change is a content change.
|
46
57
|
*
|
@@ -55,14 +66,3 @@ export declare function isContentChange(fileChange: FileChange): fileChange is C
|
|
55
66
|
* @returns A boolean indicating whether the file change is a frontmatter change.
|
56
67
|
*/
|
57
68
|
export declare function isFrontmatterChange(fileChange: FileChange): fileChange is FrontmatterChange;
|
58
|
-
/**
|
59
|
-
* Applies a series of file changes to the specified file or path within the application.
|
60
|
-
*
|
61
|
-
* @param app - The application instance where the file changes will be applied.
|
62
|
-
* @param pathOrFile - The path or file to which the changes should be applied.
|
63
|
-
* @param changesProvider - A provider that returns an array of file changes to apply.
|
64
|
-
* @param retryOptions - Optional settings that determine how the operation should retry on failure.
|
65
|
-
*
|
66
|
-
* @returns A promise that resolves when the file changes have been successfully applied.
|
67
|
-
*/
|
68
|
-
export declare function applyFileChanges(app: App, pathOrFile: PathOrFile, changesProvider: ValueProvider<FileChange[]>, retryOptions?: Partial<RetryOptions>): Promise<void>;
|
@@ -39,23 +39,6 @@ var __process = globalThis["process"] ?? {
|
|
39
39
|
"env": {},
|
40
40
|
"platform": "android"
|
41
41
|
};
|
42
|
-
async function processFrontMatter(app, pathOrFile, frontMatterFn, retryOptions = {}) {
|
43
|
-
const file = (0, import_FileSystem.getFile)(app, pathOrFile);
|
44
|
-
const DEFAULT_RETRY_OPTIONS = { timeoutInMilliseconds: 6e4 };
|
45
|
-
const overriddenOptions = { ...DEFAULT_RETRY_OPTIONS, ...retryOptions };
|
46
|
-
await (0, import_Vault.process)(app, file, async (content) => {
|
47
|
-
const oldFrontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
|
48
|
-
const newFrontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
|
49
|
-
const result = await frontMatterFn(newFrontMatter);
|
50
|
-
if (result === null) {
|
51
|
-
return null;
|
52
|
-
}
|
53
|
-
if ((0, import_Object.deepEqual)(oldFrontMatter, newFrontMatter)) {
|
54
|
-
return content;
|
55
|
-
}
|
56
|
-
return (0, import_FrontMatter.setFrontMatter)(content, newFrontMatter);
|
57
|
-
}, overriddenOptions);
|
58
|
-
}
|
59
42
|
async function addAlias(app, pathOrFile, alias) {
|
60
43
|
if (!alias) {
|
61
44
|
return;
|
@@ -87,10 +70,27 @@ async function deleteAlias(app, pathOrFile, alias) {
|
|
87
70
|
}
|
88
71
|
});
|
89
72
|
}
|
73
|
+
async function processFrontMatter(app, pathOrFile, frontMatterFn, retryOptions = {}) {
|
74
|
+
const file = (0, import_FileSystem.getFile)(app, pathOrFile);
|
75
|
+
const DEFAULT_RETRY_OPTIONS = { timeoutInMilliseconds: 6e4 };
|
76
|
+
const overriddenOptions = { ...DEFAULT_RETRY_OPTIONS, ...retryOptions };
|
77
|
+
await (0, import_Vault.process)(app, file, async (content) => {
|
78
|
+
const oldFrontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
|
79
|
+
const newFrontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
|
80
|
+
const result = await frontMatterFn(newFrontMatter);
|
81
|
+
if (result === null) {
|
82
|
+
return null;
|
83
|
+
}
|
84
|
+
if ((0, import_Object.deepEqual)(oldFrontMatter, newFrontMatter)) {
|
85
|
+
return content;
|
86
|
+
}
|
87
|
+
return (0, import_FrontMatter.setFrontMatter)(content, newFrontMatter);
|
88
|
+
}, overriddenOptions);
|
89
|
+
}
|
90
90
|
// Annotate the CommonJS export names for ESM import in node:
|
91
91
|
0 && (module.exports = {
|
92
92
|
addAlias,
|
93
93
|
deleteAlias,
|
94
94
|
processFrontMatter
|
95
95
|
});
|
96
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVNYW5hZ2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/
|
96
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVNYW5hZ2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxyXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gRmlsZU1hbmFnZXJcclxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIGZpbGVzIGluIE9ic2lkaWFuLlxyXG4gKi9cclxuXHJcbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5cclxuaW1wb3J0IHR5cGUge1xyXG4gIE1heWJlUHJvbWlzZSxcclxuICBSZXRyeU9wdGlvbnNcclxufSBmcm9tICcuLi9Bc3luYy50cyc7XHJcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkRnJvbnRNYXR0ZXIgfSBmcm9tICcuL0Zyb250TWF0dGVyLnRzJztcblxuaW1wb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7IGdldEZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xyXG5pbXBvcnQge1xyXG4gIHBhcnNlRnJvbnRNYXR0ZXIsXHJcbiAgc2V0RnJvbnRNYXR0ZXJcclxufSBmcm9tICcuL0Zyb250TWF0dGVyLnRzJztcclxuaW1wb3J0IHsgcHJvY2VzcyB9IGZyb20gJy4vVmF1bHQudHMnO1xyXG5cclxuLyoqXHJcbiAqIEFkZHMgYW4gYWxpYXMgdG8gdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC5cclxuICpcclxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXHJcbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgVEZpbGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbm90ZS5cclxuICogQHBhcmFtIGFsaWFzIC0gVGhlIGFsaWFzIHRvIGFkZC5cclxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYWxpYXMgaGFzIGJlZW4gYWRkZWQuXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkQWxpYXMoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGFsaWFzPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgaWYgKCFhbGlhcykge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcclxuICBpZiAoYWxpYXMgPT09IGZpbGUuYmFzZW5hbWUpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGF3YWl0IHByb2Nlc3NGcm9udE1hdHRlcihhcHAsIHBhdGhPckZpbGUsIChmcm9udE1hdHRlcikgPT4ge1xyXG4gICAgaWYgKCFmcm9udE1hdHRlci5hbGlhc2VzKSB7XHJcbiAgICAgIGZyb250TWF0dGVyLmFsaWFzZXMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWZyb250TWF0dGVyLmFsaWFzZXMuaW5jbHVkZXMoYWxpYXMpKSB7XHJcbiAgICAgIGZyb250TWF0dGVyLmFsaWFzZXMucHVzaChhbGlhcyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWxldGVzIGFuIGFsaWFzIGZyb20gdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUgaWYgaXQgZXhpc3RzLlxyXG4gKlxyXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cclxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxyXG4gKiBAcGFyYW0gYWxpYXMgLSBUaGUgYWxpYXMgdG8gZGVsZXRlLlxyXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhbGlhcyBoYXMgYmVlbiBkZWxldGVkLlxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUFsaWFzKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBhbGlhcz86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gIGlmICghYWxpYXMpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGF3YWl0IHByb2Nlc3NGcm9udE1hdHRlcihhcHAsIHBhdGhPckZpbGUsIChmcm9udE1hdHRlcikgPT4ge1xyXG4gICAgaWYgKCFmcm9udE1hdHRlci5hbGlhc2VzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmcm9udE1hdHRlci5hbGlhc2VzID0gZnJvbnRNYXR0ZXIuYWxpYXNlcy5maWx0ZXIoKGEpID0+IGEgIT0gYWxpYXMpO1xyXG5cclxuICAgIGlmIChmcm9udE1hdHRlci5hbGlhc2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBkZWxldGUgZnJvbnRNYXR0ZXIuYWxpYXNlcztcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb2Nlc3NlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gZmlsZSwgYWxsb3dpbmcgbW9kaWZpY2F0aW9ucyB2aWEgYSBwcm92aWRlZCBmdW5jdGlvbi5cclxuICpcclxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udE1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXHJcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxyXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5vdGUuXHJcbiAqIEBwYXJhbSBmcm9udE1hdHRlckZuIC0gQSBmdW5jdGlvbiB0aGF0IG1vZGlmaWVzIHRoZSBmcm9udCBtYXR0ZXIuXHJcbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbC4gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciByZXRyeWluZyB0aGUgcHJvY2Vzcy4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0IG9wdGlvbnMgd2lsbCBiZSB1c2VkLlxyXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmcm9udCBtYXR0ZXIgaGFzIGJlZW4gcHJvY2Vzc2VkIGFuZCBzYXZlZC5cclxuICovXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGVcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlciA9IHVua25vd24+KGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBmcm9udE1hdHRlckZuOiAoZnJvbnRNYXR0ZXI6IENvbWJpbmVkRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+KSA9PiBNYXliZVByb21pc2U8bnVsbCB8IHZvaWQ+LCByZXRyeU9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcclxuICBjb25zdCBERUZBVUxUX1JFVFJZX09QVElPTlM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgdGltZW91dEluTWlsbGlzZWNvbmRzOiA2MDAwMCB9O1xyXG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XHJcblxyXG4gIGF3YWl0IHByb2Nlc3MoYXBwLCBmaWxlLCBhc3luYyAoY29udGVudCkgPT4ge1xyXG4gICAgY29uc3Qgb2xkRnJvbnRNYXR0ZXIgPSBwYXJzZUZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPihjb250ZW50KTtcclxuICAgIGNvbnN0IG5ld0Zyb250TWF0dGVyID0gcGFyc2VGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj4oY29udGVudCk7XHJcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmcm9udE1hdHRlckZuKG5ld0Zyb250TWF0dGVyKTtcclxuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRlZXBFcXVhbChvbGRGcm9udE1hdHRlciwgbmV3RnJvbnRNYXR0ZXIpKSB7XHJcbiAgICAgIHJldHVybiBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzZXRGcm9udE1hdHRlcihjb250ZW50LCBuZXdGcm9udE1hdHRlcik7XHJcbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xyXG59XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQSxvQkFBMEI7QUFDMUIsd0JBQXdCO0FBQ3hCLHlCQUdPO0FBQ1AsbUJBQXdCO0FBekJ4QixJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBK0JBLGVBQXNCLFNBQVMsS0FBVSxZQUF3QixPQUErQjtBQUM5RixNQUFJLENBQUMsT0FBTztBQUNWO0FBQUEsRUFDRjtBQUVBLFFBQU0sV0FBTywyQkFBUSxLQUFLLFVBQVU7QUFDcEMsTUFBSSxVQUFVLEtBQUssVUFBVTtBQUMzQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLG1CQUFtQixLQUFLLFlBQVksQ0FBQyxnQkFBZ0I7QUFDekQsUUFBSSxDQUFDLFlBQVksU0FBUztBQUN4QixrQkFBWSxVQUFVLENBQUM7QUFBQSxJQUN6QjtBQUVBLFFBQUksQ0FBQyxZQUFZLFFBQVEsU0FBUyxLQUFLLEdBQUc7QUFDeEMsa0JBQVksUUFBUSxLQUFLLEtBQUs7QUFBQSxJQUNoQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBVUEsZUFBc0IsWUFBWSxLQUFVLFlBQXdCLE9BQStCO0FBQ2pHLE1BQUksQ0FBQyxPQUFPO0FBQ1Y7QUFBQSxFQUNGO0FBRUEsUUFBTSxtQkFBbUIsS0FBSyxZQUFZLENBQUMsZ0JBQWdCO0FBQ3pELFFBQUksQ0FBQyxZQUFZLFNBQVM7QUFDeEI7QUFBQSxJQUNGO0FBRUEsZ0JBQVksVUFBVSxZQUFZLFFBQVEsT0FBTyxDQUFDLE1BQU0sS0FBSyxLQUFLO0FBRWxFLFFBQUksWUFBWSxRQUFRLFdBQVcsR0FBRztBQUNwQyxhQUFPLFlBQVk7QUFBQSxJQUNyQjtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBYUEsZUFBc0IsbUJBQWdELEtBQVUsWUFBd0IsZUFBbUcsZUFBc0MsQ0FBQyxHQUFrQjtBQUNsUSxRQUFNLFdBQU8sMkJBQVEsS0FBSyxVQUFVO0FBQ3BDLFFBQU0sd0JBQStDLEVBQUUsdUJBQXVCLElBQU07QUFDcEYsUUFBTSxvQkFBMkMsRUFBRSxHQUFHLHVCQUF1QixHQUFHLGFBQWE7QUFFN0YsWUFBTSxzQkFBUSxLQUFLLE1BQU0sT0FBTyxZQUFZO0FBQzFDLFVBQU0scUJBQWlCLHFDQUFvQyxPQUFPO0FBQ2xFLFVBQU0scUJBQWlCLHFDQUFvQyxPQUFPO0FBQ2xFLFVBQU0sU0FBUyxNQUFNLGNBQWMsY0FBYztBQUNqRCxRQUFJLFdBQVcsTUFBTTtBQUNuQixhQUFPO0FBQUEsSUFDVDtBQUVBLFlBQUkseUJBQVUsZ0JBQWdCLGNBQWMsR0FBRztBQUM3QyxhQUFPO0FBQUEsSUFDVDtBQUVBLGVBQU8sbUNBQWUsU0FBUyxjQUFjO0FBQUEsRUFDL0MsR0FBRyxpQkFBaUI7QUFDdEI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -6,17 +6,6 @@ import type { App } from 'obsidian';
|
|
6
6
|
import type { MaybePromise, RetryOptions } from '../Async.ts';
|
7
7
|
import type { PathOrFile } from './FileSystem.ts';
|
8
8
|
import type { CombinedFrontMatter } from './FrontMatter.ts';
|
9
|
-
/**
|
10
|
-
* Processes the front matter of a given file, allowing modifications via a provided function.
|
11
|
-
*
|
12
|
-
* @typeParam CustomFrontMatter - The type of custom front matter.
|
13
|
-
* @param app - The Obsidian app instance.
|
14
|
-
* @param pathOrFile - The path or TFile object representing the note.
|
15
|
-
* @param frontMatterFn - A function that modifies the front matter.
|
16
|
-
* @param retryOptions - Optional. Configuration options for retrying the process. If not provided, default options will be used.
|
17
|
-
* @returns A promise that resolves when the front matter has been processed and saved.
|
18
|
-
*/
|
19
|
-
export declare function processFrontMatter<CustomFrontMatter = unknown>(app: App, pathOrFile: PathOrFile, frontMatterFn: (frontMatter: CombinedFrontMatter<CustomFrontMatter>) => MaybePromise<null | void>, retryOptions?: Partial<RetryOptions>): Promise<void>;
|
20
9
|
/**
|
21
10
|
* Adds an alias to the front matter of a given file if it does not already exist.
|
22
11
|
*
|
@@ -35,3 +24,14 @@ export declare function addAlias(app: App, pathOrFile: PathOrFile, alias?: strin
|
|
35
24
|
* @returns A promise that resolves when the alias has been deleted.
|
36
25
|
*/
|
37
26
|
export declare function deleteAlias(app: App, pathOrFile: PathOrFile, alias?: string): Promise<void>;
|
27
|
+
/**
|
28
|
+
* Processes the front matter of a given file, allowing modifications via a provided function.
|
29
|
+
*
|
30
|
+
* @typeParam CustomFrontMatter - The type of custom front matter.
|
31
|
+
* @param app - The Obsidian app instance.
|
32
|
+
* @param pathOrFile - The path or TFile object representing the note.
|
33
|
+
* @param frontMatterFn - A function that modifies the front matter.
|
34
|
+
* @param retryOptions - Optional. Configuration options for retrying the process. If not provided, default options will be used.
|
35
|
+
* @returns A promise that resolves when the front matter has been processed and saved.
|
36
|
+
*/
|
37
|
+
export declare function processFrontMatter<CustomFrontMatter = unknown>(app: App, pathOrFile: PathOrFile, frontMatterFn: (frontMatter: CombinedFrontMatter<CustomFrontMatter>) => MaybePromise<null | void>, retryOptions?: Partial<RetryOptions>): Promise<void>;
|
@@ -53,6 +53,12 @@ var import_Path = require('../Path.cjs');
|
|
53
53
|
var import_String = require('../String.cjs');
|
54
54
|
const MARKDOWN_FILE_EXTENSION = "md";
|
55
55
|
const CANVAS_FILE_EXTENSION = "canvas";
|
56
|
+
function checkExtension(pathOrFile, extension) {
|
57
|
+
if (pathOrFile === null) {
|
58
|
+
return false;
|
59
|
+
}
|
60
|
+
return (0, import_Path.extname)(getPath(pathOrFile)).toLowerCase().slice(1) === extension.toLowerCase();
|
61
|
+
}
|
56
62
|
function getAbstractFile(app, pathOrFile, insensitive) {
|
57
63
|
const file = getAbstractFileOrNull(app, pathOrFile, insensitive);
|
58
64
|
if (!file) {
|
@@ -126,29 +132,42 @@ function getMarkdownFiles(app, pathOrFolder, isRecursive) {
|
|
126
132
|
markdownFiles = markdownFiles.sort((a, b) => a.path.localeCompare(b.path));
|
127
133
|
return markdownFiles;
|
128
134
|
}
|
135
|
+
async function getOrCreateFile(app, path) {
|
136
|
+
const file = getFileOrNull(app, path);
|
137
|
+
if (file) {
|
138
|
+
return file;
|
139
|
+
}
|
140
|
+
const folderPath = (0, import_implementations.parentFolderPath)(path);
|
141
|
+
await getOrCreateFolder(app, folderPath);
|
142
|
+
return await app.vault.create(path, "");
|
143
|
+
}
|
144
|
+
async function getOrCreateFolder(app, path) {
|
145
|
+
const folder = getFolderOrNull(app, path);
|
146
|
+
if (folder) {
|
147
|
+
return folder;
|
148
|
+
}
|
149
|
+
return await app.vault.createFolder(path);
|
150
|
+
}
|
151
|
+
function getPath(pathOrFile) {
|
152
|
+
return isAbstractFile(pathOrFile) ? pathOrFile.path : pathOrFile;
|
153
|
+
}
|
129
154
|
function isAbstractFile(file) {
|
130
155
|
return file instanceof import_obsidian.TAbstractFile;
|
131
156
|
}
|
157
|
+
function isCanvasFile(pathOrFile) {
|
158
|
+
return checkExtension(pathOrFile, CANVAS_FILE_EXTENSION);
|
159
|
+
}
|
132
160
|
function isFile(file) {
|
133
161
|
return file instanceof import_obsidian.TFile;
|
134
162
|
}
|
135
163
|
function isFolder(file) {
|
136
164
|
return file instanceof import_obsidian.TFolder;
|
137
165
|
}
|
138
|
-
function isNote(pathOrFile) {
|
139
|
-
return isMarkdownFile(pathOrFile) || isCanvasFile(pathOrFile);
|
140
|
-
}
|
141
166
|
function isMarkdownFile(pathOrFile) {
|
142
167
|
return checkExtension(pathOrFile, MARKDOWN_FILE_EXTENSION);
|
143
168
|
}
|
144
|
-
function
|
145
|
-
return
|
146
|
-
}
|
147
|
-
function checkExtension(pathOrFile, extension) {
|
148
|
-
if (pathOrFile === null) {
|
149
|
-
return false;
|
150
|
-
}
|
151
|
-
return (0, import_Path.extname)(getPath(pathOrFile)).toLowerCase().slice(1) === extension.toLowerCase();
|
169
|
+
function isNote(pathOrFile) {
|
170
|
+
return isMarkdownFile(pathOrFile) || isCanvasFile(pathOrFile);
|
152
171
|
}
|
153
172
|
function trimMarkdownExtension(file) {
|
154
173
|
if (!isMarkdownFile(file)) {
|
@@ -156,25 +175,6 @@ function trimMarkdownExtension(file) {
|
|
156
175
|
}
|
157
176
|
return (0, import_String.trimEnd)(file.path, "." + MARKDOWN_FILE_EXTENSION);
|
158
177
|
}
|
159
|
-
function getPath(pathOrFile) {
|
160
|
-
return isAbstractFile(pathOrFile) ? pathOrFile.path : pathOrFile;
|
161
|
-
}
|
162
|
-
async function getOrCreateFile(app, path) {
|
163
|
-
const file = getFileOrNull(app, path);
|
164
|
-
if (file) {
|
165
|
-
return file;
|
166
|
-
}
|
167
|
-
const folderPath = (0, import_implementations.parentFolderPath)(path);
|
168
|
-
await getOrCreateFolder(app, folderPath);
|
169
|
-
return await app.vault.create(path, "");
|
170
|
-
}
|
171
|
-
async function getOrCreateFolder(app, path) {
|
172
|
-
const folder = getFolderOrNull(app, path);
|
173
|
-
if (folder) {
|
174
|
-
return folder;
|
175
|
-
}
|
176
|
-
return await app.vault.createFolder(path);
|
177
|
-
}
|
178
178
|
// Annotate the CommonJS export names for ESM import in node:
|
179
179
|
0 && (module.exports = {
|
180
180
|
CANVAS_FILE_EXTENSION,
|
@@ -198,4 +198,4 @@ async function getOrCreateFolder(app, path) {
|
|
198
198
|
isNote,
|
199
199
|
trimMarkdownExtension
|
200
200
|
});
|
201
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVTeXN0ZW0udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEZpbGVTeXN0ZW1cbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggVEFic3RyYWN0RmlsZSwgVEZpbGUsIGFuZCBURm9sZGVyIGluc3RhbmNlcyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQge1xuICBBcHAsXG4gIFRBYnN0cmFjdEZpbGUsXG4gIFRGaWxlLFxuICBURm9sZGVyLFxuICBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQge1xuICBjcmVhdGVURmlsZUluc3RhbmNlLFxuICBjcmVhdGVURm9sZGVySW5zdGFuY2UsXG4gIHBhcmVudEZvbGRlclBhdGhcbn0gZnJvbSAnb2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnMnO1xuXG5pbXBvcnQgeyBleHRuYW1lIH0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQgeyB0cmltRW5kIH0gZnJvbSAnLi4vU3RyaW5nLnRzJztcblxuLyoqXG4gKiBUaGUgZmlsZSBleHRlbnNpb24gZm9yIE1hcmtkb3duIGZpbGVzLlxuICovXG5leHBvcnQgY29uc3QgTUFSS0RPV05fRklMRV9FWFRFTlNJT04gPSAnbWQnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZpbGUgZXh0ZW5zaW9uIGZvciBjYW52YXMgZmlsZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBDQU5WQVNfRklMRV9FWFRFTlNJT04gPSAnY2FudmFzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcGF0aCBvciBhbiBpbnN0YW5jZSBvZiBUQWJzdHJhY3RGaWxlLlxuICovXG5leHBvcnQgdHlwZSBQYXRoT3JBYnN0cmFjdEZpbGUgPSBzdHJpbmcgfCBUQWJzdHJhY3RGaWxlO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwYXRoIG9yIGEgZmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUGF0aE9yRmlsZSA9IHN0cmluZyB8IFRGaWxlO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwYXRoIG9yIGFuIGluc3RhbmNlIG9mIFRGb2xkZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFBhdGhPckZvbGRlciA9IHN0cmluZyB8IFRGb2xkZXI7XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBUQWJzdHJhY3RGaWxlIG9iamVjdCBmb3IgdGhlIGdpdmVuIHBhdGggb3IgYWJzdHJhY3QgZmlsZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIEFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgYWJzdHJhY3QgZmlsZSB0byByZXRyaWV2ZSB0aGUgVEFic3RyYWN0RmlsZSBmb3IuXG4gKiBAcGFyYW0gaW5zZW5zaXRpdmUgLSBTcGVjaWZpZXMgd2hldGhlciB0byBwZXJmb3JtIGEgY2FzZS1pbnNlbnNpdGl2ZSBzZWFyY2guIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAqIEByZXR1cm5zIFRoZSBUQWJzdHJhY3RGaWxlIG9iamVjdC5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGFic3RyYWN0IGZpbGUgaXMgbm90IGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWJzdHJhY3RGaWxlKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JBYnN0cmFjdEZpbGUsIGluc2Vuc2l0aXZlPzogYm9vbGVhbik6IFRBYnN0cmFjdEZpbGUge1xuICBjb25zdCBmaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKGFwcCwgcGF0aE9yRmlsZSwgaW5zZW5zaXRpdmUpO1xuICBpZiAoIWZpbGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFic3RyYWN0IGZpbGUgbm90IGZvdW5kOiAke3BhdGhPckZpbGUgYXMgc3RyaW5nfWApO1xuICB9XG5cbiAgcmV0dXJuIGZpbGU7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGFuIGluc3RhbmNlIG9mIFRBYnN0cmFjdEZpbGUgb3IgbnVsbCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF0aCBvciBhYnN0cmFjdCBmaWxlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGFic3RyYWN0IGZpbGUgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gaW5zZW5zaXRpdmUgLSBTcGVjaWZpZXMgd2hldGhlciB0byBwZXJmb3JtIGEgY2FzZS1pbnNlbnNpdGl2ZSBzZWFyY2guIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBvZiBUQWJzdHJhY3RGaWxlIGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHA6IEFwcCwgcGF0aE9yRmlsZTogbnVsbCB8IFBhdGhPckFic3RyYWN0RmlsZSwgaW5zZW5zaXRpdmU/OiBib29sZWFuKTogbnVsbCB8IFRBYnN0cmFjdEZpbGUge1xuICBpZiAocGF0aE9yRmlsZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHBhdGhPckZpbGUgPT09ICcuJyB8fCBwYXRoT3JGaWxlID09PSAnJykge1xuICAgIHJldHVybiBhcHAudmF1bHQuZ2V0Um9vdCgpO1xuICB9XG5cbiAgaWYgKGlzQWJzdHJhY3RGaWxlKHBhdGhPckZpbGUpKSB7XG4gICAgcmV0dXJuIHBhdGhPckZpbGU7XG4gIH1cblxuICBpZiAoaW5zZW5zaXRpdmUpIHtcbiAgICByZXR1cm4gYXBwLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aEluc2Vuc2l0aXZlKHBhdGhPckZpbGUpO1xuICB9XG5cbiAgcmV0dXJuIGFwcC52YXVsdC5nZXRBYnN0cmFjdEZpbGVCeVBhdGgocGF0aE9yRmlsZSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGEgVEZpbGUgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXRoIG9yIGZpbGUuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBBcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gcmV0cmlldmUgdGhlIFRGaWxlIG9iamVjdCBmb3IuXG4gKiBAcGFyYW0gYWxsb3dOb25FeGlzdGluZyAtIFdoZXRoZXIgdG8gYWxsb3cgdGhlIGZpbGUgdG8gbm90IGV4aXN0LlxuICogIElmIGB0cnVlYCwgYSBuZXcgVEZpbGUgb2JqZWN0IGlzIGNyZWF0ZWQgZm9yIHRoZSBwcm92aWRlZCBwYXRoLlxuICogIElmIGBmYWxzZWAsIGFuIGVycm9yIGlzIHRocm93biBpZiB0aGUgZmlsZSBpcyBub3QgZm91bmQuXG4gKiBAcGFyYW0gaW5zZW5zaXRpdmUgLSBTcGVjaWZpZXMgd2hldGhlciB0byBwZXJmb3JtIGEgY2FzZS1pbnNlbnNpdGl2ZSBzZWFyY2guIERlZmF1bHQgaXMgYGZhbHNlYC5cbiAqIEByZXR1cm5zIFRoZSBURmlsZSBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvdmlkZWQgcGF0aCBvciBmaWxlLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgZmlsZSBpcyBub3QgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBhbGxvd05vbkV4aXN0aW5nPzogYm9vbGVhbiwgaW5zZW5zaXRpdmU/OiBib29sZWFuKTogVEZpbGUge1xuICBsZXQgZmlsZSA9IGdldEZpbGVPck51bGwoYXBwLCBwYXRoT3JGaWxlLCBpbnNlbnNpdGl2ZSk7XG4gIGlmICghZmlsZSkge1xuICAgIGlmIChhbGxvd05vbkV4aXN0aW5nKSB7XG4gICAgICBmaWxlID0gY3JlYXRlVEZpbGVJbnN0YW5jZShhcHAudmF1bHQsIHBhdGhPckZpbGUgYXMgc3RyaW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaWxlIG5vdCBmb3VuZDogJHtwYXRoT3JGaWxlIGFzIHN0cmluZ31gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmlsZTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBURmlsZSBvYmplY3QgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhdGggb3IgZmlsZS5cbiAqIElmIHRoZSBwcm92aWRlZCBhcmd1bWVudCBpcyBhbHJlYWR5IGEgVEZpbGUgb2JqZWN0LCBpdCBpcyByZXR1cm5lZCBhcyBpcy5cbiAqIE90aGVyd2lzZSwgdGhlIGZ1bmN0aW9uIHVzZXMgdGhlIGFwcCdzIHZhdWx0IHRvIHJldHJpZXZlIHRoZSBURmlsZSBvYmplY3QgYnkgaXRzIHBhdGguXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIEFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgVEZpbGUgb2JqZWN0LlxuICogQHBhcmFtIGluc2Vuc2l0aXZlIC0gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcGVyZm9ybSBhIGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gKiBAcmV0dXJucyBUaGUgVEZpbGUgb2JqZWN0IGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVPck51bGwoYXBwOiBBcHAsIHBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JGaWxlLCBpbnNlbnNpdGl2ZT86IGJvb2xlYW4pOiBudWxsIHwgVEZpbGUge1xuICBjb25zdCBmaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKGFwcCwgcGF0aE9yRmlsZSwgaW5zZW5zaXRpdmUpO1xuICBpZiAoaXNGaWxlKGZpbGUpKSB7XG4gICAgcmV0dXJuIGZpbGU7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGEgVEZvbGRlciBvYmplY3QgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGFwcCBhbmQgcGF0aE9yRm9sZGVyLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZvbGRlciAtIFRoZSBwYXRoIG9yIGZvbGRlciBpZGVudGlmaWVyLlxuICogQHBhcmFtIGFsbG93Tm9uRXhpc3RpbmcgLSBXaGV0aGVyIHRvIGFsbG93IHRoZSBmb2xkZXIgdG8gbm90IGV4aXN0LlxuICogIElmIGB0cnVlYCwgYSBuZXcgVEZvbGRlciBvYmplY3QgaXMgY3JlYXRlZCBmb3IgdGhlIHByb3ZpZGVkIHBhdGguXG4gKiAgSWYgYGZhbHNlYCwgYW4gZXJyb3IgaXMgdGhyb3duIGlmIHRoZSBmb2xkZXIgaXMgbm90IGZvdW5kLlxuICogQHBhcmFtIGluc2Vuc2l0aXZlIC0gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcGVyZm9ybSBhIGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gKiBAcmV0dXJucyBUaGUgcmV0cmlldmVkIFRGb2xkZXIgb2JqZWN0LlxuICogQHRocm93cyBJZiB0aGUgZm9sZGVyIGlzIG5vdCBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihhcHA6IEFwcCwgcGF0aE9yRm9sZGVyOiBQYXRoT3JGb2xkZXIsIGFsbG93Tm9uRXhpc3Rpbmc/OiBib29sZWFuLCBpbnNlbnNpdGl2ZT86IGJvb2xlYW4pOiBURm9sZGVyIHtcbiAgbGV0IGZvbGRlciA9IGdldEZvbGRlck9yTnVsbChhcHAsIHBhdGhPckZvbGRlciwgaW5zZW5zaXRpdmUpO1xuICBpZiAoIWZvbGRlcikge1xuICAgIGlmIChhbGxvd05vbkV4aXN0aW5nKSB7XG4gICAgICBmb2xkZXIgPSBjcmVhdGVURm9sZGVySW5zdGFuY2UoYXBwLnZhdWx0LCBwYXRoT3JGb2xkZXIgYXMgc3RyaW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb2xkZXIgbm90IGZvdW5kOiAke3BhdGhPckZvbGRlciBhcyBzdHJpbmd9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZvbGRlcjtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBURm9sZGVyIG9iamVjdCBvciBudWxsIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXRoIG9yIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZvbGRlciAtIFRoZSBwYXRoIG9yIGZvbGRlciB0byByZXRyaWV2ZSB0aGUgVEZvbGRlciBmcm9tLlxuICogQHBhcmFtIGluc2Vuc2l0aXZlIC0gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcGVyZm9ybSBhIGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gKiBAcmV0dXJucyBUaGUgVEZvbGRlciBvYmplY3QgaWYgZm91bmQsIG90aGVyd2lzZSBudWxsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyT3JOdWxsKGFwcDogQXBwLCBwYXRoT3JGb2xkZXI6IG51bGwgfCBQYXRoT3JGb2xkZXIsIGluc2Vuc2l0aXZlPzogYm9vbGVhbik6IG51bGwgfCBURm9sZGVyIHtcbiAgY29uc3QgZm9sZGVyID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKGFwcCwgcGF0aE9yRm9sZGVyLCBpbnNlbnNpdGl2ZSk7XG4gIGlmIChpc0ZvbGRlcihmb2xkZXIpKSB7XG4gICAgcmV0dXJuIGZvbGRlcjtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYW4gYXJyYXkgb2YgVEZpbGUgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIG1hcmtkb3duIGZpbGVzIHdpdGhpbiBhIHNwZWNpZmllZCBmb2xkZXIgb3IgcGF0aC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIEFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGb2xkZXIgLSBUaGUgcGF0aCBvciBmb2xkZXIgdG8gcmV0cmlldmUgdGhlIG1hcmtkb3duIGZpbGVzIGZyb20uXG4gKiBAcGFyYW0gaXNSZWN1cnNpdmUgLSBPcHRpb25hbC4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmVjdXJzaXZlbHkgc2VhcmNoIGZvciBtYXJrZG93biBmaWxlcyB3aXRoaW4gc3ViZm9sZGVycy4gRGVmYXVsdCBpcyBmYWxzZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIFRGaWxlIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBtYXJrZG93biBmaWxlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hcmtkb3duRmlsZXMoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogUGF0aE9yRm9sZGVyLCBpc1JlY3Vyc2l2ZT86IGJvb2xlYW4pOiBURmlsZVtdIHtcbiAgY29uc3QgZm9sZGVyID0gZ2V0Rm9sZGVyKGFwcCwgcGF0aE9yRm9sZGVyKTtcblxuICBsZXQgbWFya2Rvd25GaWxlczogVEZpbGVbXSA9IFtdO1xuXG4gIGlmICghaXNSZWN1cnNpdmUpIHtcbiAgICBtYXJrZG93bkZpbGVzID0gZm9sZGVyLmNoaWxkcmVuLmZpbHRlcigoZmlsZSkgPT4gaXNNYXJrZG93bkZpbGUoZmlsZSkpIGFzIFRGaWxlW107XG4gIH0gZWxzZSB7XG4gICAgVmF1bHQucmVjdXJzZUNoaWxkcmVuKGZvbGRlciwgKGFic3RyYWN0RmlsZSkgPT4ge1xuICAgICAgaWYgKGlzTWFya2Rvd25GaWxlKGFic3RyYWN0RmlsZSkpIHtcbiAgICAgICAgbWFya2Rvd25GaWxlcy5wdXNoKGFic3RyYWN0RmlsZSBhcyBURmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBtYXJrZG93bkZpbGVzID0gbWFya2Rvd25GaWxlcy5zb3J0KChhLCBiKSA9PiBhLnBhdGgubG9jYWxlQ29tcGFyZShiLnBhdGgpKTtcbiAgcmV0dXJuIG1hcmtkb3duRmlsZXM7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBmaWxlIGlzIGFuIGluc3RhbmNlIG9mIFRBYnN0cmFjdEZpbGUuXG4gKlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgaXMgYW4gaW5zdGFuY2Ugb2YgVEFic3RyYWN0RmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWJzdHJhY3RGaWxlKGZpbGU6IHVua25vd24pOiBmaWxlIGlzIFRBYnN0cmFjdEZpbGUge1xuICByZXR1cm4gZmlsZSBpbnN0YW5jZW9mIFRBYnN0cmFjdEZpbGU7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBmaWxlIGlzIGFuIGluc3RhbmNlIG9mIFRGaWxlLlxuICpcbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGlzIGFuIGluc3RhbmNlIG9mIFRGaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGaWxlKGZpbGU6IHVua25vd24pOiBmaWxlIGlzIFRGaWxlIHtcbiAgcmV0dXJuIGZpbGUgaW5zdGFuY2VvZiBURmlsZTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIGZpbGUgaXMgYSBmb2xkZXIuXG4gKlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgZmlsZSBpcyBhIGZvbGRlciwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ZvbGRlcihmaWxlOiB1bmtub3duKTogZmlsZSBpcyBURm9sZGVyIHtcbiAgcmV0dXJuIGZpbGUgaW5zdGFuY2VvZiBURm9sZGVyO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gZmlsZSBpcyBhIG5vdGUuXG4gKlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBpcyBhIG5vdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05vdGUocGF0aE9yRmlsZTogbnVsbCB8IFBhdGhPckFic3RyYWN0RmlsZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNNYXJrZG93bkZpbGUocGF0aE9yRmlsZSkgfHwgaXNDYW52YXNGaWxlKHBhdGhPckZpbGUpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gZmlsZSBpcyBhIE1hcmtkb3duIGZpbGUuXG4gKlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBpcyBhIE1hcmtkb3duIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc01hcmtkb3duRmlsZShwYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yQWJzdHJhY3RGaWxlKTogYm9vbGVhbiB7XG4gIHJldHVybiBjaGVja0V4dGVuc2lvbihwYXRoT3JGaWxlLCBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTik7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBmaWxlIGlzIGEgY2FudmFzIGZpbGUuXG4gKlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBpcyBhIGNhbnZhcyBmaWxlIG9yIG5vdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzRmlsZShwYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yQWJzdHJhY3RGaWxlKTogYm9vbGVhbiB7XG4gIHJldHVybiBjaGVja0V4dGVuc2lvbihwYXRoT3JGaWxlLCBDQU5WQVNfRklMRV9FWFRFTlNJT04pO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gcGF0aCBvciBmaWxlIGhhcyB0aGUgc3BlY2lmaWVkIGV4dGVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGFic3RyYWN0IGZpbGUgdG8gY2hlY2suXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gVGhlIGV4dGVuc2lvbiB0byBjb21wYXJlIGFnYWluc3QuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcGF0aCBvciBmaWxlIGhhcyB0aGUgc3BlY2lmaWVkIGV4dGVuc2lvbiwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0V4dGVuc2lvbihwYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yQWJzdHJhY3RGaWxlLCBleHRlbnNpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAocGF0aE9yRmlsZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gZXh0bmFtZShnZXRQYXRoKHBhdGhPckZpbGUpKS50b0xvd2VyQ2FzZSgpLnNsaWNlKDEpID09PSBleHRlbnNpb24udG9Mb3dlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBUcmltcyB0aGUgbWFya2Rvd24gZXh0ZW5zaW9uIGZyb20gdGhlIGZpbGUgcGF0aCBpZiB0aGUgZmlsZSBpcyBhIG1hcmtkb3duIGZpbGUuXG4gKiBJZiB0aGUgZmlsZSBpcyBub3QgYSBtYXJrZG93biBmaWxlLCB0aGUgb3JpZ2luYWwgZmlsZSBwYXRoIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdG8gdHJpbSB0aGUgbWFya2Rvd24gZXh0ZW5zaW9uIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgZmlsZSBwYXRoIHdpdGggdGhlIG1hcmtkb3duIGV4dGVuc2lvbiB0cmltbWVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJpbU1hcmtkb3duRXh0ZW5zaW9uKGZpbGU6IFRBYnN0cmFjdEZpbGUpOiBzdHJpbmcge1xuICBpZiAoIWlzTWFya2Rvd25GaWxlKGZpbGUpKSB7XG4gICAgcmV0dXJuIGZpbGUucGF0aDtcbiAgfVxuXG4gIHJldHVybiB0cmltRW5kKGZpbGUucGF0aCwgJy4nICsgTUFSS0RPV05fRklMRV9FWFRFTlNJT04pO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBhdGggb2YgdGhlIGdpdmVuIGBwYXRoT3JGaWxlYC5cbiAqXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGFic3RyYWN0IGZpbGUuXG4gKiBAcmV0dXJucyBUaGUgcGF0aCBvZiB0aGUgYHBhdGhPckZpbGVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGF0aChwYXRoT3JGaWxlOiBQYXRoT3JBYnN0cmFjdEZpbGUpOiBzdHJpbmcge1xuICByZXR1cm4gaXNBYnN0cmFjdEZpbGUocGF0aE9yRmlsZSkgPyBwYXRoT3JGaWxlLnBhdGggOiBwYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgVEZpbGUgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gcGF0aCBvciBjcmVhdGVzIGEgbmV3IG9uZSBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIEFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZpbGUgdG8gcmV0cmlldmUgb3IgY3JlYXRlLlxuICogQHJldHVybnMgVGhlIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGZpbGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE9yQ3JlYXRlRmlsZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogUHJvbWlzZTxURmlsZT4ge1xuICBjb25zdCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIHBhdGgpO1xuICBpZiAoZmlsZSkge1xuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgY29uc3QgZm9sZGVyUGF0aCA9IHBhcmVudEZvbGRlclBhdGgocGF0aCk7XG4gIGF3YWl0IGdldE9yQ3JlYXRlRm9sZGVyKGFwcCwgZm9sZGVyUGF0aCk7XG5cbiAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5jcmVhdGUocGF0aCwgJycpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgVEZvbGRlciBvYmplY3QgZm9yIHRoZSBnaXZlbiBwYXRoIG9yIGNyZWF0ZXMgYSBuZXcgb25lIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gQXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyIHRvIHJldHJpZXZlIG9yIGNyZWF0ZS5cbiAqIEByZXR1cm5zIFRoZSBURm9sZGVyIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGZvbGRlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE9yQ3JlYXRlRm9sZGVyKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFRGb2xkZXI+IHtcbiAgY29uc3QgZm9sZGVyID0gZ2V0Rm9sZGVyT3JOdWxsKGFwcCwgcGF0aCk7XG4gIGlmIChmb2xkZXIpIHtcbiAgICByZXR1cm4gZm9sZGVyO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5jcmVhdGVGb2xkZXIocGF0aCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Esc0JBTU87QUFDUCw2QkFJTztBQUVQLGtCQUF3QjtBQUN4QixvQkFBd0I7QUFLakIsTUFBTSwwQkFBMEI7QUFLaEMsTUFBTSx3QkFBd0I7QUEwQjlCLFNBQVMsZ0JBQWdCLEtBQVUsWUFBZ0MsYUFBc0M7QUFDOUcsUUFBTSxPQUFPLHNCQUFz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
|
201
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVTeXN0ZW0udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEZpbGVTeXN0ZW1cbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggVEFic3RyYWN0RmlsZSwgVEZpbGUsIGFuZCBURm9sZGVyIGluc3RhbmNlcyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQge1xuICBBcHAsXG4gIFRBYnN0cmFjdEZpbGUsXG4gIFRGaWxlLFxuICBURm9sZGVyLFxuICBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQge1xuICBjcmVhdGVURmlsZUluc3RhbmNlLFxuICBjcmVhdGVURm9sZGVySW5zdGFuY2UsXG4gIHBhcmVudEZvbGRlclBhdGhcbn0gZnJvbSAnb2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnMnO1xuXG5pbXBvcnQgeyBleHRuYW1lIH0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQgeyB0cmltRW5kIH0gZnJvbSAnLi4vU3RyaW5nLnRzJztcblxuLyoqXG4gKiBUaGUgZmlsZSBleHRlbnNpb24gZm9yIE1hcmtkb3duIGZpbGVzLlxuICovXG5leHBvcnQgY29uc3QgTUFSS0RPV05fRklMRV9FWFRFTlNJT04gPSAnbWQnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZpbGUgZXh0ZW5zaW9uIGZvciBjYW52YXMgZmlsZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBDQU5WQVNfRklMRV9FWFRFTlNJT04gPSAnY2FudmFzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcGF0aCBvciBhbiBpbnN0YW5jZSBvZiBUQWJzdHJhY3RGaWxlLlxuICovXG5leHBvcnQgdHlwZSBQYXRoT3JBYnN0cmFjdEZpbGUgPSBzdHJpbmcgfCBUQWJzdHJhY3RGaWxlO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwYXRoIG9yIGEgZmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUGF0aE9yRmlsZSA9IHN0cmluZyB8IFRGaWxlO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwYXRoIG9yIGFuIGluc3RhbmNlIG9mIFRGb2xkZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFBhdGhPckZvbGRlciA9IHN0cmluZyB8IFRGb2xkZXI7XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBwYXRoIG9yIGZpbGUgaGFzIHRoZSBzcGVjaWZpZWQgZXh0ZW5zaW9uLlxuICpcbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgYWJzdHJhY3QgZmlsZSB0byBjaGVjay5cbiAqIEBwYXJhbSBleHRlbnNpb24gLSBUaGUgZXh0ZW5zaW9uIHRvIGNvbXBhcmUgYWdhaW5zdC5cbiAqIEByZXR1cm5zIFJldHVybnMgYHRydWVgIGlmIHRoZSBwYXRoIG9yIGZpbGUgaGFzIHRoZSBzcGVjaWZpZWQgZXh0ZW5zaW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRXh0ZW5zaW9uKHBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JBYnN0cmFjdEZpbGUsIGV4dGVuc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChwYXRoT3JGaWxlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBleHRuYW1lKGdldFBhdGgocGF0aE9yRmlsZSkpLnRvTG93ZXJDYXNlKCkuc2xpY2UoMSkgPT09IGV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgVEFic3RyYWN0RmlsZSBvYmplY3QgZm9yIHRoZSBnaXZlbiBwYXRoIG9yIGFic3RyYWN0IGZpbGUuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBBcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGFic3RyYWN0IGZpbGUgdG8gcmV0cmlldmUgdGhlIFRBYnN0cmFjdEZpbGUgZm9yLlxuICogQHBhcmFtIGluc2Vuc2l0aXZlIC0gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcGVyZm9ybSBhIGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gKiBAcmV0dXJucyBUaGUgVEFic3RyYWN0RmlsZSBvYmplY3QuXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBhYnN0cmFjdCBmaWxlIGlzIG5vdCBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFic3RyYWN0RmlsZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yQWJzdHJhY3RGaWxlLCBpbnNlbnNpdGl2ZT86IGJvb2xlYW4pOiBUQWJzdHJhY3RGaWxlIHtcbiAgY29uc3QgZmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGhPckZpbGUsIGluc2Vuc2l0aXZlKTtcbiAgaWYgKCFmaWxlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBYnN0cmFjdCBmaWxlIG5vdCBmb3VuZDogJHtwYXRoT3JGaWxlIGFzIHN0cmluZ31gKTtcbiAgfVxuXG4gIHJldHVybiBmaWxlO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhbiBpbnN0YW5jZSBvZiBUQWJzdHJhY3RGaWxlIG9yIG51bGwgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhdGggb3IgYWJzdHJhY3QgZmlsZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBhYnN0cmFjdCBmaWxlIHRvIHJldHJpZXZlLlxuICogQHBhcmFtIGluc2Vuc2l0aXZlIC0gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcGVyZm9ybSBhIGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gKiBAcmV0dXJucyBUaGUgaW5zdGFuY2Ugb2YgVEFic3RyYWN0RmlsZSBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBYnN0cmFjdEZpbGVPck51bGwoYXBwOiBBcHAsIHBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JBYnN0cmFjdEZpbGUsIGluc2Vuc2l0aXZlPzogYm9vbGVhbik6IG51bGwgfCBUQWJzdHJhY3RGaWxlIHtcbiAgaWYgKHBhdGhPckZpbGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChwYXRoT3JGaWxlID09PSAnLicgfHwgcGF0aE9yRmlsZSA9PT0gJycpIHtcbiAgICByZXR1cm4gYXBwLnZhdWx0LmdldFJvb3QoKTtcbiAgfVxuXG4gIGlmIChpc0Fic3RyYWN0RmlsZShwYXRoT3JGaWxlKSkge1xuICAgIHJldHVybiBwYXRoT3JGaWxlO1xuICB9XG5cbiAgaWYgKGluc2Vuc2l0aXZlKSB7XG4gICAgcmV0dXJuIGFwcC52YXVsdC5nZXRBYnN0cmFjdEZpbGVCeVBhdGhJbnNlbnNpdGl2ZShwYXRoT3JGaWxlKTtcbiAgfVxuXG4gIHJldHVybiBhcHAudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKHBhdGhPckZpbGUpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhIFRGaWxlIG9iamVjdCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF0aCBvciBmaWxlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gQXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIHJldHJpZXZlIHRoZSBURmlsZSBvYmplY3QgZm9yLlxuICogQHBhcmFtIGFsbG93Tm9uRXhpc3RpbmcgLSBXaGV0aGVyIHRvIGFsbG93IHRoZSBmaWxlIHRvIG5vdCBleGlzdC5cbiAqICBJZiBgdHJ1ZWAsIGEgbmV3IFRGaWxlIG9iamVjdCBpcyBjcmVhdGVkIGZvciB0aGUgcHJvdmlkZWQgcGF0aC5cbiAqICBJZiBgZmFsc2VgLCBhbiBlcnJvciBpcyB0aHJvd24gaWYgdGhlIGZpbGUgaXMgbm90IGZvdW5kLlxuICogQHBhcmFtIGluc2Vuc2l0aXZlIC0gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcGVyZm9ybSBhIGNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gKiBAcmV0dXJucyBUaGUgVEZpbGUgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3ZpZGVkIHBhdGggb3IgZmlsZS5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGZpbGUgaXMgbm90IGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgYWxsb3dOb25FeGlzdGluZz86IGJvb2xlYW4sIGluc2Vuc2l0aXZlPzogYm9vbGVhbik6IFRGaWxlIHtcbiAgbGV0IGZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgcGF0aE9yRmlsZSwgaW5zZW5zaXRpdmUpO1xuICBpZiAoIWZpbGUpIHtcbiAgICBpZiAoYWxsb3dOb25FeGlzdGluZykge1xuICAgICAgZmlsZSA9IGNyZWF0ZVRGaWxlSW5zdGFuY2UoYXBwLnZhdWx0LCBwYXRoT3JGaWxlIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSBub3QgZm91bmQ6ICR7cGF0aE9yRmlsZSBhcyBzdHJpbmd9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZpbGU7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGEgVEZpbGUgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXRoIG9yIGZpbGUuXG4gKiBJZiB0aGUgcHJvdmlkZWQgYXJndW1lbnQgaXMgYWxyZWFkeSBhIFRGaWxlIG9iamVjdCwgaXQgaXMgcmV0dXJuZWQgYXMgaXMuXG4gKiBPdGhlcndpc2UsIHRoZSBmdW5jdGlvbiB1c2VzIHRoZSBhcHAncyB2YXVsdCB0byByZXRyaWV2ZSB0aGUgVEZpbGUgb2JqZWN0IGJ5IGl0cyBwYXRoLlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBBcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdC5cbiAqIEBwYXJhbSBpbnNlbnNpdGl2ZSAtIFNwZWNpZmllcyB3aGV0aGVyIHRvIHBlcmZvcm0gYSBjYXNlLWluc2Vuc2l0aXZlIHNlYXJjaC4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICogQHJldHVybnMgVGhlIFRGaWxlIG9iamVjdCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlT3JOdWxsKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yRmlsZSwgaW5zZW5zaXRpdmU/OiBib29sZWFuKTogbnVsbCB8IFRGaWxlIHtcbiAgY29uc3QgZmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGhPckZpbGUsIGluc2Vuc2l0aXZlKTtcbiAgaWYgKGlzRmlsZShmaWxlKSkge1xuICAgIHJldHVybiBmaWxlO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhIFRGb2xkZXIgb2JqZWN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBhcHAgYW5kIHBhdGhPckZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGb2xkZXIgLSBUaGUgcGF0aCBvciBmb2xkZXIgaWRlbnRpZmllci5cbiAqIEBwYXJhbSBhbGxvd05vbkV4aXN0aW5nIC0gV2hldGhlciB0byBhbGxvdyB0aGUgZm9sZGVyIHRvIG5vdCBleGlzdC5cbiAqICBJZiBgdHJ1ZWAsIGEgbmV3IFRGb2xkZXIgb2JqZWN0IGlzIGNyZWF0ZWQgZm9yIHRoZSBwcm92aWRlZCBwYXRoLlxuICogIElmIGBmYWxzZWAsIGFuIGVycm9yIGlzIHRocm93biBpZiB0aGUgZm9sZGVyIGlzIG5vdCBmb3VuZC5cbiAqIEBwYXJhbSBpbnNlbnNpdGl2ZSAtIFNwZWNpZmllcyB3aGV0aGVyIHRvIHBlcmZvcm0gYSBjYXNlLWluc2Vuc2l0aXZlIHNlYXJjaC4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICogQHJldHVybnMgVGhlIHJldHJpZXZlZCBURm9sZGVyIG9iamVjdC5cbiAqIEB0aHJvd3MgSWYgdGhlIGZvbGRlciBpcyBub3QgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoYXBwOiBBcHAsIHBhdGhPckZvbGRlcjogUGF0aE9yRm9sZGVyLCBhbGxvd05vbkV4aXN0aW5nPzogYm9vbGVhbiwgaW5zZW5zaXRpdmU/OiBib29sZWFuKTogVEZvbGRlciB7XG4gIGxldCBmb2xkZXIgPSBnZXRGb2xkZXJPck51bGwoYXBwLCBwYXRoT3JGb2xkZXIsIGluc2Vuc2l0aXZlKTtcbiAgaWYgKCFmb2xkZXIpIHtcbiAgICBpZiAoYWxsb3dOb25FeGlzdGluZykge1xuICAgICAgZm9sZGVyID0gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcC52YXVsdCwgcGF0aE9yRm9sZGVyIGFzIHN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRm9sZGVyIG5vdCBmb3VuZDogJHtwYXRoT3JGb2xkZXIgYXMgc3RyaW5nfWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb2xkZXI7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGEgVEZvbGRlciBvYmplY3Qgb3IgbnVsbCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF0aCBvciBmb2xkZXIuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGb2xkZXIgLSBUaGUgcGF0aCBvciBmb2xkZXIgdG8gcmV0cmlldmUgdGhlIFRGb2xkZXIgZnJvbS5cbiAqIEBwYXJhbSBpbnNlbnNpdGl2ZSAtIFNwZWNpZmllcyB3aGV0aGVyIHRvIHBlcmZvcm0gYSBjYXNlLWluc2Vuc2l0aXZlIHNlYXJjaC4gRGVmYXVsdCBpcyBgZmFsc2VgLlxuICogQHJldHVybnMgVGhlIFRGb2xkZXIgb2JqZWN0IGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlck9yTnVsbChhcHA6IEFwcCwgcGF0aE9yRm9sZGVyOiBudWxsIHwgUGF0aE9yRm9sZGVyLCBpbnNlbnNpdGl2ZT86IGJvb2xlYW4pOiBudWxsIHwgVEZvbGRlciB7XG4gIGNvbnN0IGZvbGRlciA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGhPckZvbGRlciwgaW5zZW5zaXRpdmUpO1xuICBpZiAoaXNGb2xkZXIoZm9sZGVyKSkge1xuICAgIHJldHVybiBmb2xkZXI7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGFuIGFycmF5IG9mIFRGaWxlIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBtYXJrZG93biBmaWxlcyB3aXRoaW4gYSBzcGVjaWZpZWQgZm9sZGVyIG9yIHBhdGguXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBBcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRm9sZGVyIC0gVGhlIHBhdGggb3IgZm9sZGVyIHRvIHJldHJpZXZlIHRoZSBtYXJrZG93biBmaWxlcyBmcm9tLlxuICogQHBhcmFtIGlzUmVjdXJzaXZlIC0gT3B0aW9uYWwuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJlY3Vyc2l2ZWx5IHNlYXJjaCBmb3IgbWFya2Rvd24gZmlsZXMgd2l0aGluIHN1YmZvbGRlcnMuIERlZmF1bHQgaXMgZmFsc2UuXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBURmlsZSBvYmplY3RzIHJlcHJlc2VudGluZyB0aGUgbWFya2Rvd24gZmlsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXJrZG93bkZpbGVzKGFwcDogQXBwLCBwYXRoT3JGb2xkZXI6IFBhdGhPckZvbGRlciwgaXNSZWN1cnNpdmU/OiBib29sZWFuKTogVEZpbGVbXSB7XG4gIGNvbnN0IGZvbGRlciA9IGdldEZvbGRlcihhcHAsIHBhdGhPckZvbGRlcik7XG5cbiAgbGV0IG1hcmtkb3duRmlsZXM6IFRGaWxlW10gPSBbXTtcblxuICBpZiAoIWlzUmVjdXJzaXZlKSB7XG4gICAgbWFya2Rvd25GaWxlcyA9IGZvbGRlci5jaGlsZHJlbi5maWx0ZXIoKGZpbGUpID0+IGlzTWFya2Rvd25GaWxlKGZpbGUpKSBhcyBURmlsZVtdO1xuICB9IGVsc2Uge1xuICAgIFZhdWx0LnJlY3Vyc2VDaGlsZHJlbihmb2xkZXIsIChhYnN0cmFjdEZpbGUpID0+IHtcbiAgICAgIGlmIChpc01hcmtkb3duRmlsZShhYnN0cmFjdEZpbGUpKSB7XG4gICAgICAgIG1hcmtkb3duRmlsZXMucHVzaChhYnN0cmFjdEZpbGUgYXMgVEZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbWFya2Rvd25GaWxlcyA9IG1hcmtkb3duRmlsZXMuc29ydCgoYSwgYikgPT4gYS5wYXRoLmxvY2FsZUNvbXBhcmUoYi5wYXRoKSk7XG4gIHJldHVybiBtYXJrZG93bkZpbGVzO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgVEZpbGUgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gcGF0aCBvciBjcmVhdGVzIGEgbmV3IG9uZSBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIEFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZpbGUgdG8gcmV0cmlldmUgb3IgY3JlYXRlLlxuICogQHJldHVybnMgVGhlIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGZpbGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE9yQ3JlYXRlRmlsZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogUHJvbWlzZTxURmlsZT4ge1xuICBjb25zdCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIHBhdGgpO1xuICBpZiAoZmlsZSkge1xuICAgIHJldHVybiBmaWxlO1xuICB9XG5cbiAgY29uc3QgZm9sZGVyUGF0aCA9IHBhcmVudEZvbGRlclBhdGgocGF0aCk7XG4gIGF3YWl0IGdldE9yQ3JlYXRlRm9sZGVyKGFwcCwgZm9sZGVyUGF0aCk7XG5cbiAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5jcmVhdGUocGF0aCwgJycpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgVEZvbGRlciBvYmplY3QgZm9yIHRoZSBnaXZlbiBwYXRoIG9yIGNyZWF0ZXMgYSBuZXcgb25lIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gQXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyIHRvIHJldHJpZXZlIG9yIGNyZWF0ZS5cbiAqIEByZXR1cm5zIFRoZSBURm9sZGVyIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGZvbGRlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE9yQ3JlYXRlRm9sZGVyKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFRGb2xkZXI+IHtcbiAgY29uc3QgZm9sZGVyID0gZ2V0Rm9sZGVyT3JOdWxsKGFwcCwgcGF0aCk7XG4gIGlmIChmb2xkZXIpIHtcbiAgICByZXR1cm4gZm9sZGVyO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5jcmVhdGVGb2xkZXIocGF0aCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcGF0aCBvZiB0aGUgZ2l2ZW4gYHBhdGhPckZpbGVgLlxuICpcbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgYWJzdHJhY3QgZmlsZS5cbiAqIEByZXR1cm5zIFRoZSBwYXRoIG9mIHRoZSBgcGF0aE9yRmlsZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoKHBhdGhPckZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSk6IHN0cmluZyB7XG4gIHJldHVybiBpc0Fic3RyYWN0RmlsZShwYXRoT3JGaWxlKSA/IHBhdGhPckZpbGUucGF0aCA6IHBhdGhPckZpbGU7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBmaWxlIGlzIGFuIGluc3RhbmNlIG9mIFRBYnN0cmFjdEZpbGUuXG4gKlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgaXMgYW4gaW5zdGFuY2Ugb2YgVEFic3RyYWN0RmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWJzdHJhY3RGaWxlKGZpbGU6IHVua25vd24pOiBmaWxlIGlzIFRBYnN0cmFjdEZpbGUge1xuICByZXR1cm4gZmlsZSBpbnN0YW5jZW9mIFRBYnN0cmFjdEZpbGU7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBmaWxlIGlzIGEgY2FudmFzIGZpbGUuXG4gKlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBpcyBhIGNhbnZhcyBmaWxlIG9yIG5vdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FudmFzRmlsZShwYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yQWJzdHJhY3RGaWxlKTogYm9vbGVhbiB7XG4gIHJldHVybiBjaGVja0V4dGVuc2lvbihwYXRoT3JGaWxlLCBDQU5WQVNfRklMRV9FWFRFTlNJT04pO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gZmlsZSBpcyBhbiBpbnN0YW5jZSBvZiBURmlsZS5cbiAqXG4gKiBAcGFyYW0gZmlsZSAtIFRoZSBmaWxlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBpcyBhbiBpbnN0YW5jZSBvZiBURmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsZShmaWxlOiB1bmtub3duKTogZmlsZSBpcyBURmlsZSB7XG4gIHJldHVybiBmaWxlIGluc3RhbmNlb2YgVEZpbGU7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBmaWxlIGlzIGEgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGZpbGUgaXMgYSBmb2xkZXIsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGb2xkZXIoZmlsZTogdW5rbm93bik6IGZpbGUgaXMgVEZvbGRlciB7XG4gIHJldHVybiBmaWxlIGluc3RhbmNlb2YgVEZvbGRlcjtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIGZpbGUgaXMgYSBNYXJrZG93biBmaWxlLlxuICpcbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgaXMgYSBNYXJrZG93biBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNYXJrZG93bkZpbGUocGF0aE9yRmlsZTogbnVsbCB8IFBhdGhPckFic3RyYWN0RmlsZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2hlY2tFeHRlbnNpb24ocGF0aE9yRmlsZSwgTUFSS0RPV05fRklMRV9FWFRFTlNJT04pO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gZmlsZSBpcyBhIG5vdGUuXG4gKlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBpcyBhIG5vdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05vdGUocGF0aE9yRmlsZTogbnVsbCB8IFBhdGhPckFic3RyYWN0RmlsZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNNYXJrZG93bkZpbGUocGF0aE9yRmlsZSkgfHwgaXNDYW52YXNGaWxlKHBhdGhPckZpbGUpO1xufVxuXG4vKipcbiAqIFRyaW1zIHRoZSBtYXJrZG93biBleHRlbnNpb24gZnJvbSB0aGUgZmlsZSBwYXRoIGlmIHRoZSBmaWxlIGlzIGEgbWFya2Rvd24gZmlsZS5cbiAqIElmIHRoZSBmaWxlIGlzIG5vdCBhIG1hcmtkb3duIGZpbGUsIHRoZSBvcmlnaW5hbCBmaWxlIHBhdGggaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byB0cmltIHRoZSBtYXJrZG93biBleHRlbnNpb24gZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBmaWxlIHBhdGggd2l0aCB0aGUgbWFya2Rvd24gZXh0ZW5zaW9uIHRyaW1tZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltTWFya2Rvd25FeHRlbnNpb24oZmlsZTogVEFic3RyYWN0RmlsZSk6IHN0cmluZyB7XG4gIGlmICghaXNNYXJrZG93bkZpbGUoZmlsZSkpIHtcbiAgICByZXR1cm4gZmlsZS5wYXRoO1xuICB9XG5cbiAgcmV0dXJuIHRyaW1FbmQoZmlsZS5wYXRoLCAnLicgKyBNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0Esc0JBTU87QUFDUCw2QkFJTztBQUVQLGtCQUF3QjtBQUN4QixvQkFBd0I7QUFLakIsTUFBTSwwQkFBMEI7QUFLaEMsTUFBTSx3QkFBd0I7QUF3QjlCLFNBQVMsZUFBZSxZQUF1QyxXQUE0QjtBQUNoRyxNQUFJLGVBQWUsTUFBTTtBQUN2QixX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
|
@@ -23,6 +23,14 @@ export type PathOrFile = string | TFile;
|
|
23
23
|
* Represents a path or an instance of TFolder.
|
24
24
|
*/
|
25
25
|
export type PathOrFolder = string | TFolder;
|
26
|
+
/**
|
27
|
+
* Checks if the given path or file has the specified extension.
|
28
|
+
*
|
29
|
+
* @param pathOrFile - The path or abstract file to check.
|
30
|
+
* @param extension - The extension to compare against.
|
31
|
+
* @returns Returns `true` if the path or file has the specified extension, `false` otherwise.
|
32
|
+
*/
|
33
|
+
export declare function checkExtension(pathOrFile: null | PathOrAbstractFile, extension: string): boolean;
|
26
34
|
/**
|
27
35
|
* Retrieves the TAbstractFile object for the given path or abstract file.
|
28
36
|
*
|
@@ -96,6 +104,29 @@ export declare function getFolderOrNull(app: App, pathOrFolder: null | PathOrFol
|
|
96
104
|
* @returns An array of TFile objects representing the markdown files.
|
97
105
|
*/
|
98
106
|
export declare function getMarkdownFiles(app: App, pathOrFolder: PathOrFolder, isRecursive?: boolean): TFile[];
|
107
|
+
/**
|
108
|
+
* Retrieves the TFile object for the given path or creates a new one if it does not exist.
|
109
|
+
*
|
110
|
+
* @param app - The Obsidian App instance.
|
111
|
+
* @param path - The path of the file to retrieve or create.
|
112
|
+
* @returns The TFile object representing the file
|
113
|
+
*/
|
114
|
+
export declare function getOrCreateFile(app: App, path: string): Promise<TFile>;
|
115
|
+
/**
|
116
|
+
* Retrieves the TFolder object for the given path or creates a new one if it does not exist.
|
117
|
+
*
|
118
|
+
* @param app - The Obsidian App instance.
|
119
|
+
* @param path - The path of the folder to retrieve or create.
|
120
|
+
* @returns The TFolder object representing the folder.
|
121
|
+
*/
|
122
|
+
export declare function getOrCreateFolder(app: App, path: string): Promise<TFolder>;
|
123
|
+
/**
|
124
|
+
* Returns the path of the given `pathOrFile`.
|
125
|
+
*
|
126
|
+
* @param pathOrFile - The path or abstract file.
|
127
|
+
* @returns The path of the `pathOrFile`.
|
128
|
+
*/
|
129
|
+
export declare function getPath(pathOrFile: PathOrAbstractFile): string;
|
99
130
|
/**
|
100
131
|
* Checks if the given file is an instance of TAbstractFile.
|
101
132
|
*
|
@@ -103,6 +134,13 @@ export declare function getMarkdownFiles(app: App, pathOrFolder: PathOrFolder, i
|
|
103
134
|
* @returns A boolean indicating whether the file is an instance of TAbstractFile.
|
104
135
|
*/
|
105
136
|
export declare function isAbstractFile(file: unknown): file is TAbstractFile;
|
137
|
+
/**
|
138
|
+
* Checks if the given file is a canvas file.
|
139
|
+
*
|
140
|
+
* @param pathOrFile - The path or file to check.
|
141
|
+
* @returns A boolean indicating whether the file is a canvas file or not.
|
142
|
+
*/
|
143
|
+
export declare function isCanvasFile(pathOrFile: null | PathOrAbstractFile): boolean;
|
106
144
|
/**
|
107
145
|
* Checks if the given file is an instance of TFile.
|
108
146
|
*
|
@@ -117,13 +155,6 @@ export declare function isFile(file: unknown): file is TFile;
|
|
117
155
|
* @returns `true` if the file is a folder, `false` otherwise.
|
118
156
|
*/
|
119
157
|
export declare function isFolder(file: unknown): file is TFolder;
|
120
|
-
/**
|
121
|
-
* Checks if the given file is a note.
|
122
|
-
*
|
123
|
-
* @param pathOrFile - The path or file to check.
|
124
|
-
* @returns A boolean indicating whether the file is a note.
|
125
|
-
*/
|
126
|
-
export declare function isNote(pathOrFile: null | PathOrAbstractFile): boolean;
|
127
158
|
/**
|
128
159
|
* Checks if the given file is a Markdown file.
|
129
160
|
*
|
@@ -132,20 +163,12 @@ export declare function isNote(pathOrFile: null | PathOrAbstractFile): boolean;
|
|
132
163
|
*/
|
133
164
|
export declare function isMarkdownFile(pathOrFile: null | PathOrAbstractFile): boolean;
|
134
165
|
/**
|
135
|
-
* Checks if the given file is a
|
166
|
+
* Checks if the given file is a note.
|
136
167
|
*
|
137
168
|
* @param pathOrFile - The path or file to check.
|
138
|
-
* @returns A boolean indicating whether the file is a
|
139
|
-
*/
|
140
|
-
export declare function isCanvasFile(pathOrFile: null | PathOrAbstractFile): boolean;
|
141
|
-
/**
|
142
|
-
* Checks if the given path or file has the specified extension.
|
143
|
-
*
|
144
|
-
* @param pathOrFile - The path or abstract file to check.
|
145
|
-
* @param extension - The extension to compare against.
|
146
|
-
* @returns Returns `true` if the path or file has the specified extension, `false` otherwise.
|
169
|
+
* @returns A boolean indicating whether the file is a note.
|
147
170
|
*/
|
148
|
-
export declare function
|
171
|
+
export declare function isNote(pathOrFile: null | PathOrAbstractFile): boolean;
|
149
172
|
/**
|
150
173
|
* Trims the markdown extension from the file path if the file is a markdown file.
|
151
174
|
* If the file is not a markdown file, the original file path is returned.
|
@@ -154,26 +177,3 @@ export declare function checkExtension(pathOrFile: null | PathOrAbstractFile, ex
|
|
154
177
|
* @returns The file path with the markdown extension trimmed.
|
155
178
|
*/
|
156
179
|
export declare function trimMarkdownExtension(file: TAbstractFile): string;
|
157
|
-
/**
|
158
|
-
* Returns the path of the given `pathOrFile`.
|
159
|
-
*
|
160
|
-
* @param pathOrFile - The path or abstract file.
|
161
|
-
* @returns The path of the `pathOrFile`.
|
162
|
-
*/
|
163
|
-
export declare function getPath(pathOrFile: PathOrAbstractFile): string;
|
164
|
-
/**
|
165
|
-
* Retrieves the TFile object for the given path or creates a new one if it does not exist.
|
166
|
-
*
|
167
|
-
* @param app - The Obsidian App instance.
|
168
|
-
* @param path - The path of the file to retrieve or create.
|
169
|
-
* @returns The TFile object representing the file
|
170
|
-
*/
|
171
|
-
export declare function getOrCreateFile(app: App, path: string): Promise<TFile>;
|
172
|
-
/**
|
173
|
-
* Retrieves the TFolder object for the given path or creates a new one if it does not exist.
|
174
|
-
*
|
175
|
-
* @param app - The Obsidian App instance.
|
176
|
-
* @param path - The path of the folder to retrieve or create.
|
177
|
-
* @returns The TFolder object representing the folder.
|
178
|
-
*/
|
179
|
-
export declare function getOrCreateFolder(app: App, path: string): Promise<TFolder>;
|
@@ -53,4 +53,4 @@ function setFrontMatter(content, newFrontMatter) {
|
|
53
53
|
parseFrontMatter,
|
54
54
|
setFrontMatter
|
55
55
|
});
|
56
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0Zyb250TWF0dGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/
|
56
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0Zyb250TWF0dGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEZyb250TWF0dGVyXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyBhbmQgbWFuYWdpbmcgWUFNTCBmcm9udCBtYXR0ZXIgaW4gT2JzaWRpYW4gbm90ZXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgZ2V0RnJvbnRNYXR0ZXJJbmZvLFxuICBwYXJzZVlhbWwsXG4gIHN0cmluZ2lmeVlhbWxcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBpbnNlcnRBdCB9IGZyb20gJy4uL1N0cmluZy50cyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY29tYmluZWQgZnJvbnQgbWF0dGVyIG9mIGEgZG9jdW1lbnQuXG4gKiBJdCBpcyBhIHVuaW9uIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIsIE9ic2lkaWFuIGZyb250IG1hdHRlciwgYW5kIGFkZGl0aW9uYWwgcHJvcGVydGllcy5cbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRNYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgdHlwZSBDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPiA9IEN1c3RvbUZyb250TWF0dGVyICYgT2JzaWRpYW5Gcm9udE1hdHRlciAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZyb250IG1hdHRlciBvZiBhbiBPYnNpZGlhbiBmaWxlLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9oZWxwLm9ic2lkaWFuLm1kL0VkaXRpbmcrYW5kK2Zvcm1hdHRpbmcvUHJvcGVydGllcyNEZWZhdWx0K3Byb3BlcnRpZXN9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5Gcm9udE1hdHRlciB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBhbGlhc2VzIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGFsaWFzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIG5vdGUuXG4gICAqL1xuICBjc3NjbGFzc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHRhZ3MgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgdGFncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZyb250IG1hdHRlciBmb3IgcHVibGlzaGluZyBpbiBPYnNpZGlhbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaGVscC5vYnNpZGlhbi5tZC9FZGl0aW5nK2FuZCtmb3JtYXR0aW5nL1Byb3BlcnRpZXMjUHJvcGVydGllcytmb3IrT2JzaWRpYW4rUHVibGlzaH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhblB1Ymxpc2hGcm9udE1hdHRlciB7XG4gIC8qKlxuICAgKiBUaGUgY292ZXIgaW1hZ2UgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgY292ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltYWdlIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGltYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVybWFuZW50IGxpbmsgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgcGVybWFsaW5rPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBub3RlIGlzIHB1Ymxpc2hlZC5cbiAgICovXG4gIHB1Ymxpc2g/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gY29udGVudCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXIgPSB1bmtub3duPihjb250ZW50OiBzdHJpbmcpOiBDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPiB7XG4gIGNvbnN0IGZyb250TWF0dGVySW5mbyA9IGdldEZyb250TWF0dGVySW5mbyhjb250ZW50KTtcbiAgcmV0dXJuIChwYXJzZVlhbWwoZnJvbnRNYXR0ZXJJbmZvLmZyb250bWF0dGVyKSA/PyB7fSkgYXMgQ29tYmluZWRGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj47XG59XG5cbi8qKlxuICogU2V0cyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gY29udGVudCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gc2V0IHRoZSBmcm9udCBtYXR0ZXIgaW4uXG4gKiBAcGFyYW0gbmV3RnJvbnRNYXR0ZXIgLSBUaGUgbmV3IGZyb250IG1hdHRlciB0byBzZXQuXG4gKiBAcmV0dXJucyBUaGUgbmV3IGNvbnRlbnQgc3RyaW5nIHdpdGggdGhlIGZyb250IG1hdHRlciBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRGcm9udE1hdHRlcihjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250TWF0dGVyOiBvYmplY3QpOiBzdHJpbmcge1xuICBjb25zdCBmcm9udE1hdHRlckluZm8gPSBnZXRGcm9udE1hdHRlckluZm8oY29udGVudCk7XG4gIGlmIChPYmplY3Qua2V5cyhuZXdGcm9udE1hdHRlcikubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQuc2xpY2UoZnJvbnRNYXR0ZXJJbmZvLmNvbnRlbnRTdGFydCk7XG4gIH1cblxuICBjb25zdCBuZXdGcm9udE1hdHRlclN0ciA9IHN0cmluZ2lmeVlhbWwobmV3RnJvbnRNYXR0ZXIpO1xuXG4gIHJldHVybiBmcm9udE1hdHRlckluZm8uZXhpc3RzXG4gICAgPyBpbnNlcnRBdChjb250ZW50LCBuZXdGcm9udE1hdHRlclN0ciwgZnJvbnRNYXR0ZXJJbmZvLmZyb20sIGZyb250TWF0dGVySW5mby50bylcbiAgICA6ICctLS1cXG4nICsgbmV3RnJvbnRNYXR0ZXJTdHIgKyAnLS0tXFxuJyArIGNvbnRlbnQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUEsc0JBSU87QUFFUCxvQkFBeUI7QUFoQnpCLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUErRU8sU0FBUyxpQkFBOEMsU0FBeUQ7QUFDckgsUUFBTSxzQkFBa0Isb0NBQW1CLE9BQU87QUFDbEQsYUFBUSwyQkFBVSxnQkFBZ0IsV0FBVyxLQUFLLENBQUM7QUFDckQ7QUFTTyxTQUFTLGVBQWUsU0FBaUIsZ0JBQWdDO0FBQzlFLFFBQU0sc0JBQWtCLG9DQUFtQixPQUFPO0FBQ2xELE1BQUksT0FBTyxLQUFLLGNBQWMsRUFBRSxXQUFXLEdBQUc7QUFDNUMsV0FBTyxRQUFRLE1BQU0sZ0JBQWdCLFlBQVk7QUFBQSxFQUNuRDtBQUVBLFFBQU0sd0JBQW9CLCtCQUFjLGNBQWM7QUFFdEQsU0FBTyxnQkFBZ0IsYUFDbkIsd0JBQVMsU0FBUyxtQkFBbUIsZ0JBQWdCLE1BQU0sZ0JBQWdCLEVBQUUsSUFDN0UsVUFBVSxvQkFBb0IsVUFBVTtBQUM5QzsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -2,6 +2,12 @@
|
|
2
2
|
* @packageDocumentation FrontMatter
|
3
3
|
* This module provides utility functions for processing and managing YAML front matter in Obsidian notes.
|
4
4
|
*/
|
5
|
+
/**
|
6
|
+
* Represents the combined front matter of a document.
|
7
|
+
* It is a union of custom front matter, Obsidian front matter, and additional properties.
|
8
|
+
* @typeParam CustomFrontMatter - The type of custom front matter.
|
9
|
+
*/
|
10
|
+
export type CombinedFrontMatter<CustomFrontMatter> = CustomFrontMatter & ObsidianFrontMatter & Record<string, unknown>;
|
5
11
|
/**
|
6
12
|
* Represents the front matter of an Obsidian file.
|
7
13
|
* @see {@link https://help.obsidian.md/Editing+and+formatting/Properties#Default+properties}
|
@@ -46,12 +52,6 @@ export interface ObsidianPublishFrontMatter {
|
|
46
52
|
*/
|
47
53
|
publish?: boolean;
|
48
54
|
}
|
49
|
-
/**
|
50
|
-
* Represents the combined front matter of a document.
|
51
|
-
* It is a union of custom front matter, Obsidian front matter, and additional properties.
|
52
|
-
* @typeParam CustomFrontMatter - The type of custom front matter.
|
53
|
-
*/
|
54
|
-
export type CombinedFrontMatter<CustomFrontMatter> = CustomFrontMatter & ObsidianFrontMatter & Record<string, unknown>;
|
55
55
|
/**
|
56
56
|
* Parses the front matter of a given content string.
|
57
57
|
*
|