obsidian-dev-utils 17.10.1 → 17.10.2-beta.10
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 +58 -0
- package/dist/lib/Async.cjs +1 -1
- package/dist/lib/Async.mjs +154 -0
- package/dist/lib/Blob.cjs +1 -1
- package/dist/lib/Blob.mjs +81 -0
- package/dist/lib/CssClass.cjs +1 -1
- package/dist/lib/CssClass.mjs +32 -0
- package/dist/lib/Debug.cjs +1 -1
- package/dist/lib/Debug.mjs +137 -0
- package/dist/lib/DebugController.cjs +1 -1
- package/dist/lib/DebugController.mjs +8 -0
- package/dist/lib/Enum.cjs +1 -1
- package/dist/lib/Enum.mjs +26 -0
- package/dist/lib/Error.cjs +1 -1
- package/dist/lib/Error.mjs +82 -0
- package/dist/lib/Function.cjs +1 -1
- package/dist/lib/Function.mjs +28 -0
- package/dist/lib/HTMLElement.cjs +1 -1
- package/dist/lib/HTMLElement.mjs +65 -0
- package/dist/lib/Library.cjs +3 -3
- package/dist/lib/Library.mjs +16 -0
- package/dist/lib/Object.cjs +2 -2
- package/dist/lib/Object.d.ts +16 -0
- package/dist/lib/Object.mjs +273 -0
- package/dist/lib/Path.cjs +1 -1
- package/dist/lib/Path.mjs +76 -0
- package/dist/lib/RegExp.cjs +1 -1
- package/dist/lib/RegExp.mjs +23 -0
- package/dist/lib/String.cjs +1 -1
- package/dist/lib/String.mjs +119 -0
- package/dist/lib/Transformers/DateTransformer.cjs +71 -0
- package/dist/lib/Transformers/DateTransformer.d.ts +35 -0
- package/dist/lib/Transformers/DateTransformer.mjs +47 -0
- package/dist/lib/Transformers/DurationTransformer.cjs +71 -0
- package/dist/lib/Transformers/DurationTransformer.d.ts +34 -0
- package/dist/lib/Transformers/DurationTransformer.mjs +47 -0
- package/dist/lib/Transformers/GroupTransformer.cjs +118 -0
- package/dist/lib/Transformers/GroupTransformer.d.ts +65 -0
- package/dist/lib/Transformers/GroupTransformer.mjs +94 -0
- package/dist/lib/Transformers/SkipPrivatePropertyTransformer.cjs +69 -0
- package/dist/lib/Transformers/SkipPrivatePropertyTransformer.d.ts +32 -0
- package/dist/lib/Transformers/SkipPrivatePropertyTransformer.mjs +45 -0
- package/dist/lib/Transformers/Transformer.cjs +107 -0
- package/dist/lib/Transformers/Transformer.d.ts +67 -0
- package/dist/lib/Transformers/Transformer.mjs +83 -0
- package/dist/lib/Transformers/TypedTransformer.cjs +38 -0
- package/dist/lib/Transformers/TypedTransformer.d.ts +37 -0
- package/dist/lib/Transformers/TypedTransformer.mjs +14 -0
- package/dist/lib/ValueProvider.cjs +1 -1
- package/dist/lib/ValueProvider.mjs +20 -0
- package/dist/lib/codemirror/StateFieldSpec.cjs +1 -1
- package/dist/lib/codemirror/StateFieldSpec.mjs +8 -0
- package/dist/lib/index.cjs +2 -14
- package/dist/lib/index.d.ts +0 -4
- package/dist/lib/index.mjs +42 -0
- package/dist/lib/obsidian/App.cjs +1 -1
- package/dist/lib/obsidian/App.mjs +33 -0
- package/dist/lib/obsidian/AttachmentPath.cjs +1 -1
- package/dist/lib/obsidian/AttachmentPath.mjs +82 -0
- package/dist/lib/obsidian/Backlink.cjs +1 -1
- package/dist/lib/obsidian/Backlink.mjs +88 -0
- package/dist/lib/obsidian/Callout.cjs +1 -1
- package/dist/lib/obsidian/Callout.mjs +71 -0
- package/dist/lib/obsidian/Components/DateComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/DateComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/DateComponent.mjs +43 -0
- package/dist/lib/obsidian/Components/DateTimeComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/DateTimeComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/DateTimeComponent.mjs +43 -0
- package/dist/lib/obsidian/Components/EmailComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/EmailComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/EmailComponent.mjs +32 -0
- package/dist/lib/obsidian/Components/FileComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/FileComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/FileComponent.mjs +48 -0
- package/dist/lib/obsidian/Components/MonthComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/MonthComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/MonthComponent.mjs +51 -0
- package/dist/lib/obsidian/Components/MultipleDropdownComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/MultipleDropdownComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/MultipleDropdownComponent.mjs +88 -0
- package/dist/lib/obsidian/Components/MultipleEmailComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/MultipleEmailComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/MultipleEmailComponent.mjs +42 -0
- package/dist/lib/obsidian/Components/MultipleFileComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/MultipleFileComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/MultipleFileComponent.mjs +49 -0
- package/dist/lib/obsidian/Components/NumberComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/NumberComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/NumberComponent.mjs +32 -0
- package/dist/lib/obsidian/Components/TimeComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/TimeComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/TimeComponent.mjs +53 -0
- package/dist/lib/obsidian/Components/TypedRangeTextComponent.cjs +1 -1
- package/dist/lib/obsidian/Components/TypedRangeTextComponent.mjs +44 -0
- package/dist/lib/obsidian/Components/TypedTextComponent.cjs +1 -1
- package/dist/lib/obsidian/Components/TypedTextComponent.mjs +107 -0
- package/dist/lib/obsidian/Components/UrlComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/UrlComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/UrlComponent.mjs +32 -0
- package/dist/lib/obsidian/Components/ValidatorComponent.cjs +1 -1
- package/dist/lib/obsidian/Components/ValidatorComponent.mjs +52 -0
- package/dist/lib/obsidian/Components/ValueComponentWithChangeTracking.cjs +1 -1
- package/dist/lib/obsidian/Components/ValueComponentWithChangeTracking.mjs +9 -0
- package/dist/lib/obsidian/Components/WeekComponent.cjs +2 -2
- package/dist/lib/obsidian/Components/WeekComponent.d.ts +1 -1
- package/dist/lib/obsidian/Components/WeekComponent.mjs +51 -0
- package/dist/lib/obsidian/Dataview.cjs +1 -1
- package/dist/lib/obsidian/Dataview.mjs +232 -0
- package/dist/lib/obsidian/DataviewLink.cjs +1 -1
- package/dist/lib/obsidian/DataviewLink.mjs +27 -0
- package/dist/lib/obsidian/FileChange.cjs +1 -1
- package/dist/lib/obsidian/FileChange.mjs +123 -0
- package/dist/lib/obsidian/FileManager.cjs +1 -1
- package/dist/lib/obsidian/FileManager.mjs +66 -0
- package/dist/lib/obsidian/FileSystem.cjs +1 -1
- package/dist/lib/obsidian/FileSystem.mjs +197 -0
- package/dist/lib/obsidian/Frontmatter.cjs +1 -1
- package/dist/lib/obsidian/Frontmatter.mjs +32 -0
- package/dist/lib/obsidian/Link.cjs +1 -1
- package/dist/lib/obsidian/Link.mjs +415 -0
- package/dist/lib/obsidian/Logger.cjs +1 -1
- package/dist/lib/obsidian/Logger.mjs +45 -0
- package/dist/lib/obsidian/Loop.cjs +1 -1
- package/dist/lib/obsidian/Loop.mjs +39 -0
- package/dist/lib/obsidian/Markdown.cjs +1 -1
- package/dist/lib/obsidian/Markdown.mjs +40 -0
- package/dist/lib/obsidian/MarkdownCodeBlockProcessor.cjs +1 -1
- package/dist/lib/obsidian/MarkdownCodeBlockProcessor.mjs +44 -0
- package/dist/lib/obsidian/MarkdownView.cjs +1 -1
- package/dist/lib/obsidian/MarkdownView.mjs +21 -0
- package/dist/lib/obsidian/MetadataCache.cjs +1 -1
- package/dist/lib/obsidian/MetadataCache.mjs +219 -0
- package/dist/lib/obsidian/Modals/Alert.cjs +1 -1
- package/dist/lib/obsidian/Modals/Alert.mjs +52 -0
- package/dist/lib/obsidian/Modals/Confirm.cjs +1 -1
- package/dist/lib/obsidian/Modals/Confirm.mjs +65 -0
- package/dist/lib/obsidian/Modals/Prompt.cjs +1 -1
- package/dist/lib/obsidian/Modals/Prompt.mjs +98 -0
- package/dist/lib/obsidian/Modals/SelectItem.cjs +1 -1
- package/dist/lib/obsidian/Modals/SelectItem.mjs +51 -0
- package/dist/lib/obsidian/ObsidianSettings.cjs +1 -1
- package/dist/lib/obsidian/ObsidianSettings.mjs +18 -0
- package/dist/lib/obsidian/Pdf.cjs +1 -1
- package/dist/lib/obsidian/Pdf.mjs +42 -0
- package/dist/lib/obsidian/Plugin/EmptySettings.cjs +1 -1
- package/dist/lib/obsidian/Plugin/EmptySettings.mjs +14 -0
- package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.cjs +3 -2
- package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.d.ts +2 -0
- package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.mjs +36 -0
- package/dist/lib/obsidian/Plugin/Plugin.cjs +1 -1
- package/dist/lib/obsidian/Plugin/Plugin.mjs +28 -0
- package/dist/lib/obsidian/Plugin/PluginBase.cjs +1 -1
- package/dist/lib/obsidian/Plugin/PluginBase.mjs +148 -0
- package/dist/lib/obsidian/Plugin/PluginContext.cjs +1 -1
- package/dist/lib/obsidian/Plugin/PluginContext.mjs +45 -0
- package/dist/lib/obsidian/Plugin/PluginId.cjs +1 -1
- package/dist/lib/obsidian/Plugin/PluginId.mjs +23 -0
- package/dist/lib/obsidian/Plugin/PluginSettingsBase.cjs +20 -10
- package/dist/lib/obsidian/Plugin/PluginSettingsBase.d.ts +2 -0
- package/dist/lib/obsidian/Plugin/PluginSettingsBase.mjs +69 -0
- package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.cjs +2 -2
- package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.d.ts +1 -1
- package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.mjs +101 -0
- package/dist/lib/obsidian/Queue.cjs +1 -1
- package/dist/lib/obsidian/Queue.mjs +50 -0
- package/dist/lib/obsidian/Reference.cjs +1 -1
- package/dist/lib/obsidian/Reference.mjs +45 -0
- package/dist/lib/obsidian/RenameDeleteHandler.cjs +1 -1
- package/dist/lib/obsidian/RenameDeleteHandler.mjs +436 -0
- package/dist/lib/obsidian/ResourceUrl.cjs +1 -1
- package/dist/lib/obsidian/ResourceUrl.mjs +19 -0
- package/dist/lib/obsidian/SettingEx.cjs +1 -1
- package/dist/lib/obsidian/SettingEx.mjs +148 -0
- package/dist/lib/obsidian/Vault.cjs +1 -1
- package/dist/lib/obsidian/Vault.mjs +248 -0
- package/dist/lib/obsidian/VaultEx.cjs +1 -1
- package/dist/lib/obsidian/VaultEx.mjs +71 -0
- package/dist/lib/scripts/CliUtils.cjs +1 -1
- package/dist/lib/scripts/CliUtils.mjs +135 -0
- package/dist/lib/scripts/CodeGenerator.cjs +1 -1
- package/dist/lib/scripts/CodeGenerator.mjs +19 -0
- package/dist/lib/scripts/ESLint/ESLint.cjs +4 -3
- package/dist/lib/scripts/ESLint/ESLint.mjs +68 -0
- package/dist/lib/scripts/ESLint/eslint.config.cjs +1 -1
- package/dist/lib/scripts/ESLint/eslint.config.mjs +287 -0
- package/dist/lib/scripts/Exec.cjs +1 -1
- package/dist/lib/scripts/Exec.mjs +98 -0
- package/dist/lib/scripts/Fs.cjs +1 -1
- package/dist/lib/scripts/Fs.mjs +64 -0
- package/dist/lib/scripts/JSON.cjs +1 -1
- package/dist/lib/scripts/JSON.mjs +60 -0
- package/dist/lib/scripts/NodeModules.cjs +1 -1
- package/dist/lib/scripts/NodeModules.mjs +62 -0
- package/dist/lib/scripts/Npm.cjs +1 -1
- package/dist/lib/scripts/Npm.mjs +106 -0
- package/dist/lib/scripts/NpmPublish.cjs +1 -1
- package/dist/lib/scripts/NpmPublish.mjs +21 -0
- package/dist/lib/scripts/ObsidianDevUtilsRepoPaths.cjs +9 -2
- package/dist/lib/scripts/ObsidianDevUtilsRepoPaths.d.ts +14 -0
- package/dist/lib/scripts/ObsidianDevUtilsRepoPaths.mjs +47 -0
- package/dist/lib/scripts/Root.cjs +1 -1
- package/dist/lib/scripts/Root.mjs +66 -0
- package/dist/lib/scripts/build.cjs +1 -1
- package/dist/lib/scripts/build.mjs +60 -0
- package/dist/lib/scripts/cli.cjs +4 -3
- package/dist/lib/scripts/cli.mjs +65 -0
- package/dist/lib/scripts/esbuild/Dependency.cjs +4 -3
- package/dist/lib/scripts/esbuild/Dependency.mjs +95 -0
- package/dist/lib/scripts/esbuild/ObsidianPluginBuilder.cjs +1 -1
- package/dist/lib/scripts/esbuild/ObsidianPluginBuilder.mjs +149 -0
- package/dist/lib/scripts/esbuild/changeExtensionPlugin.cjs +67 -0
- package/dist/lib/scripts/esbuild/changeExtensionPlugin.d.ts +12 -0
- package/dist/lib/scripts/esbuild/changeExtensionPlugin.mjs +43 -0
- package/dist/lib/scripts/esbuild/copyToObsidianPluginsFolderPlugin.cjs +1 -1
- package/dist/lib/scripts/esbuild/copyToObsidianPluginsFolderPlugin.mjs +50 -0
- package/dist/lib/scripts/esbuild/fixEsmPlugin.cjs +1 -1
- package/dist/lib/scripts/esbuild/fixEsmPlugin.mjs +25 -0
- package/dist/lib/scripts/esbuild/fixSourceMapsPlugin.cjs +1 -1
- package/dist/lib/scripts/esbuild/fixSourceMapsPlugin.mjs +55 -0
- package/dist/lib/scripts/esbuild/preprocessPlugin.cjs +7 -6
- package/dist/lib/scripts/esbuild/preprocessPlugin.d.ts +2 -1
- package/dist/lib/scripts/esbuild/preprocessPlugin.mjs +113 -0
- package/dist/lib/scripts/esbuild/renameCssPlugin.cjs +1 -1
- package/dist/lib/scripts/esbuild/renameCssPlugin.mjs +31 -0
- package/dist/lib/scripts/esbuild/svelteWrapperPlugin.cjs +1 -1
- package/dist/lib/scripts/esbuild/svelteWrapperPlugin.mjs +41 -0
- package/dist/lib/scripts/format.cjs +4 -3
- package/dist/lib/scripts/format.mjs +41 -0
- package/dist/lib/scripts/spellcheck.cjs +1 -1
- package/dist/lib/scripts/spellcheck.mjs +15 -0
- package/dist/lib/scripts/version.cjs +7 -3
- package/dist/lib/scripts/version.mjs +365 -0
- package/dist/lib/url.cjs +1 -1
- package/dist/lib/url.mjs +25 -0
- package/dist/styles.css +6 -38
- package/package.json +163 -174
- package/dist/lib/@types.cjs +0 -24
- package/dist/lib/@types.d.ts +0 -20
- package/dist/lib/codemirror/index.cjs +0 -46
- package/dist/lib/codemirror/index.d.ts +0 -1
- package/dist/lib/obsidian/Components/index.cjs +0 -91
- package/dist/lib/obsidian/Components/index.d.ts +0 -16
- package/dist/lib/obsidian/Modals/index.cjs +0 -55
- package/dist/lib/obsidian/Modals/index.d.ts +0 -4
- package/dist/lib/obsidian/Plugin/index.cjs +0 -67
- package/dist/lib/obsidian/Plugin/index.d.ts +0 -8
- package/dist/lib/obsidian/index.cjs +0 -130
- package/dist/lib/obsidian/index.d.ts +0 -29
- package/dist/lib/scripts/ESLint/index.cjs +0 -49
- package/dist/lib/scripts/ESLint/index.d.ts +0 -2
- package/dist/lib/scripts/esbuild/index.cjs +0 -70
- package/dist/lib/scripts/esbuild/index.d.ts +0 -9
- package/dist/lib/scripts/esbuild/renameToCjsPlugin.cjs +0 -60
- package/dist/lib/scripts/esbuild/renameToCjsPlugin.d.ts +0 -14
- package/dist/lib/scripts/index.cjs +0 -94
- package/dist/lib/scripts/index.d.ts +0 -17
@@ -0,0 +1,148 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
|
+
|
8
|
+
import { Setting } from "obsidian";
|
9
|
+
import { DateComponent } from "./Components/DateComponent.mjs";
|
10
|
+
import { DateTimeComponent } from "./Components/DateTimeComponent.mjs";
|
11
|
+
import { EmailComponent } from "./Components/EmailComponent.mjs";
|
12
|
+
import { FileComponent } from "./Components/FileComponent.mjs";
|
13
|
+
import { MonthComponent } from "./Components/MonthComponent.mjs";
|
14
|
+
import { MultipleDropdownComponent } from "./Components/MultipleDropdownComponent.mjs";
|
15
|
+
import { MultipleEmailComponent } from "./Components/MultipleEmailComponent.mjs";
|
16
|
+
import { MultipleFileComponent } from "./Components/MultipleFileComponent.mjs";
|
17
|
+
import { NumberComponent } from "./Components/NumberComponent.mjs";
|
18
|
+
import { TimeComponent } from "./Components/TimeComponent.mjs";
|
19
|
+
import { UrlComponent } from "./Components/UrlComponent.mjs";
|
20
|
+
import { WeekComponent } from "./Components/WeekComponent.mjs";
|
21
|
+
class SettingEx extends Setting {
|
22
|
+
/**
|
23
|
+
* Adds a component to the setting.
|
24
|
+
*
|
25
|
+
* @typeParam T - The type of the component to add.
|
26
|
+
* @param componentClass - The class of the component to add.
|
27
|
+
* @param cb - The callback to call with the component.
|
28
|
+
* @returns The setting instance.
|
29
|
+
*/
|
30
|
+
addComponent(componentClass, cb) {
|
31
|
+
const component = new componentClass(this.controlEl);
|
32
|
+
this.components.push(component);
|
33
|
+
cb(component);
|
34
|
+
return this;
|
35
|
+
}
|
36
|
+
/**
|
37
|
+
* Adds a {@link DateComponent} to the setting.
|
38
|
+
*
|
39
|
+
* @param cb - The callback to call with the component.
|
40
|
+
* @returns The setting instance.
|
41
|
+
*/
|
42
|
+
addDate(cb) {
|
43
|
+
return this.addComponent(DateComponent, cb);
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* Adds a {@link DateTimeComponent} to the setting.
|
47
|
+
*
|
48
|
+
* @param cb - The callback to call with the component.
|
49
|
+
* @returns The setting instance.
|
50
|
+
*/
|
51
|
+
addDateTime(cb) {
|
52
|
+
return this.addComponent(DateTimeComponent, cb);
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Adds an {@link EmailComponent} to the setting.
|
56
|
+
*
|
57
|
+
* @param cb - The callback to call with the component.
|
58
|
+
* @returns The setting instance.
|
59
|
+
*/
|
60
|
+
addEmail(cb) {
|
61
|
+
return this.addComponent(EmailComponent, cb);
|
62
|
+
}
|
63
|
+
/**
|
64
|
+
* Adds a {@link FileComponent} to the setting.
|
65
|
+
*
|
66
|
+
* @param cb - The callback to call with the component.
|
67
|
+
* @returns The setting instance.
|
68
|
+
*/
|
69
|
+
addFile(cb) {
|
70
|
+
return this.addComponent(FileComponent, cb);
|
71
|
+
}
|
72
|
+
/**
|
73
|
+
* Adds a {@link MonthComponent} to the setting.
|
74
|
+
*
|
75
|
+
* @param cb - The callback to call with the component.
|
76
|
+
* @returns The setting instance.
|
77
|
+
*/
|
78
|
+
addMonth(cb) {
|
79
|
+
return this.addComponent(MonthComponent, cb);
|
80
|
+
}
|
81
|
+
/**
|
82
|
+
* Adds a {@link MultipleDropdownComponent} to the setting.
|
83
|
+
*
|
84
|
+
* @param cb - The callback to call with the component.
|
85
|
+
* @returns The setting instance.
|
86
|
+
*/
|
87
|
+
addMultipleDropdown(cb) {
|
88
|
+
return this.addComponent(MultipleDropdownComponent, cb);
|
89
|
+
}
|
90
|
+
/**
|
91
|
+
* Adds a {@link MultipleEmailComponent} to the setting.
|
92
|
+
*
|
93
|
+
* @param cb - The callback to call with the component.
|
94
|
+
* @returns The setting instance.
|
95
|
+
*/
|
96
|
+
addMultipleEmail(cb) {
|
97
|
+
return this.addComponent(MultipleEmailComponent, cb);
|
98
|
+
}
|
99
|
+
/**
|
100
|
+
* Adds a {@link MultipleFileComponent} to the setting.
|
101
|
+
*
|
102
|
+
* @param cb - The callback to call with the component.
|
103
|
+
* @returns The setting instance.
|
104
|
+
*/
|
105
|
+
addMultipleFile(cb) {
|
106
|
+
return this.addComponent(MultipleFileComponent, cb);
|
107
|
+
}
|
108
|
+
/**
|
109
|
+
* Adds a {@link NumberComponent} to the setting.
|
110
|
+
*
|
111
|
+
* @param cb - The callback to call with the component.
|
112
|
+
* @returns The setting instance.
|
113
|
+
*/
|
114
|
+
addNumber(cb) {
|
115
|
+
return this.addComponent(NumberComponent, cb);
|
116
|
+
}
|
117
|
+
/**
|
118
|
+
* Adds a {@link TimeComponent} to the setting.
|
119
|
+
*
|
120
|
+
* @param cb - The callback to call with the component.
|
121
|
+
* @returns The setting instance.
|
122
|
+
*/
|
123
|
+
addTime(cb) {
|
124
|
+
return this.addComponent(TimeComponent, cb);
|
125
|
+
}
|
126
|
+
/**
|
127
|
+
* Adds an {@link UrlComponent} to the setting.
|
128
|
+
*
|
129
|
+
* @param cb - The callback to call with the component.
|
130
|
+
* @returns The setting instance.
|
131
|
+
*/
|
132
|
+
addUrl(cb) {
|
133
|
+
return this.addComponent(UrlComponent, cb);
|
134
|
+
}
|
135
|
+
/**
|
136
|
+
* Adds a {@link WeekComponent} to the setting.
|
137
|
+
*
|
138
|
+
* @param cb - The callback to call with the component.
|
139
|
+
* @returns The setting instance.
|
140
|
+
*/
|
141
|
+
addWeek(cb) {
|
142
|
+
return this.addComponent(WeekComponent, cb);
|
143
|
+
}
|
144
|
+
}
|
145
|
+
export {
|
146
|
+
SettingEx
|
147
|
+
};
|
148
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1NldHRpbmdFeC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gU2V0dGluZ0V4XG4gKiBFeHRlbmRzIHRoZSBTZXR0aW5nIGNsYXNzIHdpdGggYWRkaXRpb25hbCBtZXRob2RzIGZvciBhZGRpbmcgY29tcG9uZW50cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IFNldHRpbmcgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IERhdGVDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvRGF0ZUNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBEYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9EYXRlVGltZUNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9FbWFpbENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9Db21wb25lbnRzL0ZpbGVDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgTW9udGhDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvTW9udGhDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9NdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IE11bHRpcGxlRW1haWxDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvTXVsdGlwbGVFbWFpbENvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBNdWx0aXBsZUZpbGVDb21wb25lbnQgfSBmcm9tICcuL0NvbXBvbmVudHMvTXVsdGlwbGVGaWxlQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9OdW1iZXJDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgVGltZUNvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9UaW1lQ29tcG9uZW50LnRzJztcbmltcG9ydCB7IFVybENvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9VcmxDb21wb25lbnQudHMnO1xuaW1wb3J0IHsgV2Vla0NvbXBvbmVudCB9IGZyb20gJy4vQ29tcG9uZW50cy9XZWVrQ29tcG9uZW50LnRzJztcblxuLyoqXG4gKiBFeHRlbmRzIHRoZSBTZXR0aW5nIGNsYXNzIHdpdGggYWRkaXRpb25hbCBtZXRob2RzIGZvciBhZGRpbmcgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNldHRpbmdFeCBleHRlbmRzIFNldHRpbmcge1xuICAvKipcbiAgICogQWRkcyBhIGNvbXBvbmVudCB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnRDbGFzcyAtIFRoZSBjbGFzcyBvZiB0aGUgY29tcG9uZW50IHRvIGFkZC5cbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VDb21wb25lbnQ+KGNvbXBvbmVudENsYXNzOiBuZXcgKGNvbnRyb2xFbDogSFRNTEVsZW1lbnQpID0+IFQsIGNiOiAoY29tcG9uZW50OiBUKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gbmV3IGNvbXBvbmVudENsYXNzKHRoaXMuY29udHJvbEVsKTtcbiAgICB0aGlzLmNvbXBvbmVudHMucHVzaChjb21wb25lbnQpO1xuICAgIGNiKGNvbXBvbmVudCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBEYXRlQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGREYXRlKGNiOiAoY29tcG9uZW50OiBEYXRlQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KERhdGVDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIERhdGVUaW1lQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGREYXRlVGltZShjYjogKGNvbXBvbmVudDogRGF0ZVRpbWVDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoRGF0ZVRpbWVDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIHtAbGluayBFbWFpbENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRW1haWwoY2I6IChjb21wb25lbnQ6IEVtYWlsQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KEVtYWlsQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBGaWxlQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRGaWxlKGNiOiAoY29tcG9uZW50OiBGaWxlQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KEZpbGVDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIE1vbnRoQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRNb250aChjYjogKGNvbXBvbmVudDogTW9udGhDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoTW9udGhDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIE11bHRpcGxlRHJvcGRvd25Db21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE11bHRpcGxlRHJvcGRvd24oY2I6IChjb21wb25lbnQ6IE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgTXVsdGlwbGVFbWFpbENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTXVsdGlwbGVFbWFpbChjYjogKGNvbXBvbmVudDogTXVsdGlwbGVFbWFpbENvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChNdWx0aXBsZUVtYWlsQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBNdWx0aXBsZUZpbGVDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE11bHRpcGxlRmlsZShjYjogKGNvbXBvbmVudDogTXVsdGlwbGVGaWxlQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50KE11bHRpcGxlRmlsZUNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB7QGxpbmsgTnVtYmVyQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGROdW1iZXIoY2I6IChjb21wb25lbnQ6IE51bWJlckNvbXBvbmVudCkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudChOdW1iZXJDb21wb25lbnQsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEge0BsaW5rIFRpbWVDb21wb25lbnR9IHRvIHRoZSBzZXR0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gY2IgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aXRoIHRoZSBjb21wb25lbnQuXG4gICAqIEByZXR1cm5zIFRoZSBzZXR0aW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFRpbWUoY2I6IChjb21wb25lbnQ6IFRpbWVDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoVGltZUNvbXBvbmVudCwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4ge0BsaW5rIFVybENvbXBvbmVudH0gdG8gdGhlIHNldHRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBjYiAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdpdGggdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgVGhlIHNldHRpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVXJsKGNiOiAoY29tcG9uZW50OiBVcmxDb21wb25lbnQpID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb21wb25lbnQoVXJsQ29tcG9uZW50LCBjYik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHtAbGluayBXZWVrQ29tcG9uZW50fSB0byB0aGUgc2V0dGluZy5cbiAgICpcbiAgICogQHBhcmFtIGNiIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2l0aCB0aGUgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRXZWVrKGNiOiAoY29tcG9uZW50OiBXZWVrQ29tcG9uZW50KSA9PiB2b2lkKTogdGhpcyB7XG4g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
|
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
4
4
|
*/
|
5
5
|
|
6
|
-
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})()
|
6
|
+
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
7
|
|
8
8
|
"use strict";
|
9
9
|
var __defProp = Object.defineProperty;
|
@@ -0,0 +1,248 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
|
+
|
8
|
+
import {
|
9
|
+
App,
|
10
|
+
TFile
|
11
|
+
} from "obsidian";
|
12
|
+
import { parentFolderPath } from "obsidian-typings/implementations";
|
13
|
+
import { retryWithTimeout } from "../Async.mjs";
|
14
|
+
import { noopAsync } from "../Function.mjs";
|
15
|
+
import {
|
16
|
+
basename,
|
17
|
+
dirname,
|
18
|
+
extname,
|
19
|
+
join
|
20
|
+
} from "../Path.mjs";
|
21
|
+
import { resolveValue } from "../ValueProvider.mjs";
|
22
|
+
import {
|
23
|
+
getFile,
|
24
|
+
getFileOrNull,
|
25
|
+
getFolder,
|
26
|
+
getFolderOrNull,
|
27
|
+
getPath,
|
28
|
+
isFile,
|
29
|
+
isNote
|
30
|
+
} from "./FileSystem.mjs";
|
31
|
+
async function copySafe(app, oldPathOrFile, newPath) {
|
32
|
+
const file = getFile(app, oldPathOrFile);
|
33
|
+
const newFolderPath = parentFolderPath(newPath);
|
34
|
+
await createFolderSafe(app, newFolderPath);
|
35
|
+
const newAvailablePath = getAvailablePath(app, newPath);
|
36
|
+
try {
|
37
|
+
await app.vault.copy(file, newAvailablePath);
|
38
|
+
} catch (e) {
|
39
|
+
if (!await app.vault.exists(newAvailablePath)) {
|
40
|
+
throw e;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
return newAvailablePath;
|
44
|
+
}
|
45
|
+
async function createFolderSafe(app, path) {
|
46
|
+
if (await app.vault.adapter.exists(path)) {
|
47
|
+
return false;
|
48
|
+
}
|
49
|
+
try {
|
50
|
+
await app.vault.createFolder(path);
|
51
|
+
return true;
|
52
|
+
} catch (e) {
|
53
|
+
if (!await app.vault.exists(path)) {
|
54
|
+
throw e;
|
55
|
+
}
|
56
|
+
return true;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
async function createTempFile(app, path) {
|
60
|
+
let file = getFileOrNull(app, path);
|
61
|
+
if (file) {
|
62
|
+
return noopAsync;
|
63
|
+
}
|
64
|
+
const folderCleanup = await createTempFolder(app, parentFolderPath(path));
|
65
|
+
try {
|
66
|
+
await app.vault.create(path, "");
|
67
|
+
} catch (e) {
|
68
|
+
if (!await app.vault.exists(path)) {
|
69
|
+
throw e;
|
70
|
+
}
|
71
|
+
}
|
72
|
+
return async () => {
|
73
|
+
file = getFile(app, path);
|
74
|
+
if (!file.deleted) {
|
75
|
+
await app.fileManager.trashFile(file);
|
76
|
+
}
|
77
|
+
await folderCleanup();
|
78
|
+
};
|
79
|
+
}
|
80
|
+
async function createTempFolder(app, path) {
|
81
|
+
let folder = getFolderOrNull(app, path);
|
82
|
+
if (folder) {
|
83
|
+
return noopAsync;
|
84
|
+
}
|
85
|
+
const dirPath = parentFolderPath(path);
|
86
|
+
await createTempFolder(app, dirPath);
|
87
|
+
const folderCleanup = await createTempFolder(app, parentFolderPath(path));
|
88
|
+
await createFolderSafe(app, path);
|
89
|
+
return async () => {
|
90
|
+
folder = getFolder(app, path);
|
91
|
+
if (!folder.deleted) {
|
92
|
+
await app.fileManager.trashFile(folder);
|
93
|
+
}
|
94
|
+
await folderCleanup();
|
95
|
+
};
|
96
|
+
}
|
97
|
+
function getAvailablePath(app, path) {
|
98
|
+
const ext = extname(path);
|
99
|
+
return app.vault.getAvailablePath(join(dirname(path), basename(path, ext)), ext.slice(1));
|
100
|
+
}
|
101
|
+
function getMarkdownFilesSorted(app) {
|
102
|
+
return app.vault.getMarkdownFiles().sort((a, b) => a.path.localeCompare(b.path));
|
103
|
+
}
|
104
|
+
function getNoteFilesSorted(app) {
|
105
|
+
return app.vault.getAllLoadedFiles().filter((file) => isFile(file) && isNote(app, file)).sort((a, b) => a.path.localeCompare(b.path));
|
106
|
+
}
|
107
|
+
function getSafeRenamePath(app, oldPathOrFile, newPath) {
|
108
|
+
const oldPath = getPath(app, oldPathOrFile);
|
109
|
+
if (app.vault.adapter.insensitive) {
|
110
|
+
let folderPath = dirname(newPath);
|
111
|
+
let nonExistingPath = basename(newPath);
|
112
|
+
let folder;
|
113
|
+
for (; ; ) {
|
114
|
+
folder = getFolderOrNull(app, folderPath, true);
|
115
|
+
if (folder) {
|
116
|
+
break;
|
117
|
+
}
|
118
|
+
nonExistingPath = join(basename(folderPath), nonExistingPath);
|
119
|
+
folderPath = dirname(folderPath);
|
120
|
+
}
|
121
|
+
newPath = join(folder.getParentPrefix(), nonExistingPath);
|
122
|
+
}
|
123
|
+
if (oldPath.toLowerCase() === newPath.toLowerCase()) {
|
124
|
+
return newPath;
|
125
|
+
}
|
126
|
+
return getAvailablePath(app, newPath);
|
127
|
+
}
|
128
|
+
async function isEmptyFolder(app, pathOrFolder) {
|
129
|
+
const listedFiles = await listSafe(app, getPath(app, pathOrFolder));
|
130
|
+
return listedFiles.files.length === 0 && listedFiles.folders.length === 0;
|
131
|
+
}
|
132
|
+
async function listSafe(app, pathOrFolder) {
|
133
|
+
const path = getPath(app, pathOrFolder);
|
134
|
+
const EMPTY = { files: [], folders: [] };
|
135
|
+
if ((await app.vault.adapter.stat(path))?.type !== "folder") {
|
136
|
+
return EMPTY;
|
137
|
+
}
|
138
|
+
try {
|
139
|
+
return await app.vault.adapter.list(path);
|
140
|
+
} catch (e) {
|
141
|
+
if (await app.vault.exists(path)) {
|
142
|
+
throw e;
|
143
|
+
}
|
144
|
+
return EMPTY;
|
145
|
+
}
|
146
|
+
}
|
147
|
+
async function process(app, pathOrFile, newContentProvider, options = {}) {
|
148
|
+
const DEFAULT_RETRY_OPTIONS = {
|
149
|
+
shouldFailOnMissingFile: true
|
150
|
+
};
|
151
|
+
const fullOptions = { ...DEFAULT_RETRY_OPTIONS, ...options };
|
152
|
+
await retryWithTimeout(async () => {
|
153
|
+
const oldContent = await readSafe(app, pathOrFile);
|
154
|
+
if (oldContent === null) {
|
155
|
+
return handleMissingFile();
|
156
|
+
}
|
157
|
+
const newContent = await resolveValue(newContentProvider, oldContent);
|
158
|
+
if (newContent === null) {
|
159
|
+
return false;
|
160
|
+
}
|
161
|
+
let isSuccess = true;
|
162
|
+
const doesFileExist = await invokeFileActionSafe(app, pathOrFile, async (file) => {
|
163
|
+
await app.vault.process(file, (content) => {
|
164
|
+
if (content !== oldContent) {
|
165
|
+
console.warn("Content has changed since it was read. Retrying...", {
|
166
|
+
actualContent: content,
|
167
|
+
expectedContent: oldContent,
|
168
|
+
path: file.path
|
169
|
+
});
|
170
|
+
isSuccess = false;
|
171
|
+
return content;
|
172
|
+
}
|
173
|
+
return newContent;
|
174
|
+
});
|
175
|
+
});
|
176
|
+
if (!doesFileExist) {
|
177
|
+
return handleMissingFile();
|
178
|
+
}
|
179
|
+
return isSuccess;
|
180
|
+
function handleMissingFile() {
|
181
|
+
if (fullOptions.shouldFailOnMissingFile) {
|
182
|
+
const path = getPath(app, pathOrFile);
|
183
|
+
throw new Error(`File '${path}' not found`);
|
184
|
+
}
|
185
|
+
return true;
|
186
|
+
}
|
187
|
+
}, fullOptions);
|
188
|
+
}
|
189
|
+
async function readSafe(app, pathOrFile) {
|
190
|
+
let content = null;
|
191
|
+
await invokeFileActionSafe(app, pathOrFile, async (file) => {
|
192
|
+
content = await app.vault.read(file);
|
193
|
+
});
|
194
|
+
return content;
|
195
|
+
}
|
196
|
+
async function renameSafe(app, oldPathOrFile, newPath) {
|
197
|
+
const oldFile = getFile(app, oldPathOrFile, false, true);
|
198
|
+
const newAvailablePath = getSafeRenamePath(app, oldPathOrFile, newPath);
|
199
|
+
if (oldFile.path.toLowerCase() === newAvailablePath.toLowerCase()) {
|
200
|
+
if (oldFile.path !== newPath) {
|
201
|
+
await app.vault.rename(oldFile, newAvailablePath);
|
202
|
+
}
|
203
|
+
return newAvailablePath;
|
204
|
+
}
|
205
|
+
const newFolderPath = parentFolderPath(newAvailablePath);
|
206
|
+
await createFolderSafe(app, newFolderPath);
|
207
|
+
try {
|
208
|
+
await app.vault.rename(oldFile, newAvailablePath);
|
209
|
+
} catch (e) {
|
210
|
+
if (!await app.vault.exists(newAvailablePath) || await app.vault.exists(oldFile.path)) {
|
211
|
+
throw e;
|
212
|
+
}
|
213
|
+
}
|
214
|
+
return newAvailablePath;
|
215
|
+
}
|
216
|
+
async function invokeFileActionSafe(app, pathOrFile, fileAction) {
|
217
|
+
const path = getPath(app, pathOrFile);
|
218
|
+
let file = getFileOrNull(app, path);
|
219
|
+
if (!file || file.deleted) {
|
220
|
+
return false;
|
221
|
+
}
|
222
|
+
try {
|
223
|
+
await fileAction(file);
|
224
|
+
return true;
|
225
|
+
} catch (e) {
|
226
|
+
file = getFileOrNull(app, path);
|
227
|
+
if (!file || file.deleted) {
|
228
|
+
return false;
|
229
|
+
}
|
230
|
+
throw e;
|
231
|
+
}
|
232
|
+
}
|
233
|
+
export {
|
234
|
+
copySafe,
|
235
|
+
createFolderSafe,
|
236
|
+
createTempFile,
|
237
|
+
createTempFolder,
|
238
|
+
getAvailablePath,
|
239
|
+
getMarkdownFilesSorted,
|
240
|
+
getNoteFilesSorted,
|
241
|
+
getSafeRenamePath,
|
242
|
+
isEmptyFolder,
|
243
|
+
listSafe,
|
244
|
+
process,
|
245
|
+
readSafe,
|
246
|
+
renameSafe
|
247
|
+
};
|
248
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1ZhdWx0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBWYXVsdFxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgT2JzaWRpYW4gVmF1bHQuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBMaXN0ZWRGaWxlcyxcbiAgVEZvbGRlclxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7XG4gIEFwcCxcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHsgcGFyZW50Rm9sZGVyUGF0aCB9IGZyb20gJ29ic2lkaWFuLXR5cGluZ3MvaW1wbGVtZW50YXRpb25zJztcblxuaW1wb3J0IHR5cGUgeyBSZXRyeU9wdGlvbnMgfSBmcm9tICcuLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICcuLi9WYWx1ZVByb3ZpZGVyLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgUGF0aE9yRmlsZSxcbiAgUGF0aE9yRm9sZGVyXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbmltcG9ydCB7IHJldHJ5V2l0aFRpbWVvdXQgfSBmcm9tICcuLi9Bc3luYy50cyc7XG5pbXBvcnQgeyBub29wQXN5bmMgfSBmcm9tICcuLi9GdW5jdGlvbi50cyc7XG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgam9pblxufSBmcm9tICcuLi9QYXRoLnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RmlsZSxcbiAgZ2V0RmlsZU9yTnVsbCxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGdldFBhdGgsXG4gIGlzRmlsZSxcbiAgaXNOb3RlXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGBwcm9jZXNzYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzT3B0aW9ucyBleHRlbmRzIFJldHJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBmdW5jdGlvbiB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBmaWxlIGlzIG1pc3Npbmcgb3IgZGVsZXRlZC5cbiAgICovXG4gIHNob3VsZEZhaWxPbk1pc3NpbmdGaWxlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb3BpZXMgYSBmaWxlIHNhZmVseSBpbiB0aGUgdmF1bHQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBvbGRQYXRoT3JGaWxlIC0gVGhlIG9sZCBwYXRoIG9yIGZpbGUgdG8gY29weS5cbiAqIEBwYXJhbSBuZXdQYXRoIC0gVGhlIG5ldyBwYXRoIHRvIGNvcHkgdGhlIGZpbGUgdG8uXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgbmV3IHBhdGggb2YgdGhlIGNvcGllZCBmaWxlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29weVNhZmUoYXBwOiBBcHAsIG9sZFBhdGhPckZpbGU6IFBhdGhPckZpbGUsIG5ld1BhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgb2xkUGF0aE9yRmlsZSk7XG5cbiAgY29uc3QgbmV3Rm9sZGVyUGF0aCA9IHBhcmVudEZvbGRlclBhdGgobmV3UGF0aCk7XG4gIGF3YWl0IGNyZWF0ZUZvbGRlclNhZmUoYXBwLCBuZXdGb2xkZXJQYXRoKTtcblxuICBjb25zdCBuZXdBdmFpbGFibGVQYXRoID0gZ2V0QXZhaWxhYmxlUGF0aChhcHAsIG5ld1BhdGgpO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgYXBwLnZhdWx0LmNvcHkoZmlsZSwgbmV3QXZhaWxhYmxlUGF0aCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoIWF3YWl0IGFwcC52YXVsdC5leGlzdHMobmV3QXZhaWxhYmxlUGF0aCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld0F2YWlsYWJsZVBhdGg7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZvbGRlciBzYWZlbHkgaW4gdGhlIHNwZWNpZmllZCBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBmb2xkZXIgdG8gY3JlYXRlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZm9sZGVyIHdhcyBjcmVhdGVkLlxuICogQHRocm93cyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgY3JlYXRpbmcgdGhlIGZvbGRlciBhbmQgaXQgc3RpbGwgZG9lc24ndCBleGlzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUZvbGRlclNhZmUoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBpZiAoYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuZXhpc3RzKHBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBhcHAudmF1bHQuY3JlYXRlRm9sZGVyKHBhdGgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKCFhd2FpdCBhcHAudmF1bHQuZXhpc3RzKHBhdGgpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0ZW1wb3JhcnkgZmlsZSBpbiB0aGUgdmF1bHQgd2l0aCBwYXJlbnQgZm9sZGVycyBpZiBuZWVkZWQuXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZmlsZSB0byBjcmVhdGUuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCB0byBkZWxldGUgdGhlIHRlbXBvcmFyeSBmaWxlIGFuZCBhbGwgaXRzIGNyZWF0ZWQgcGFyZW50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRlbXBGaWxlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPCgpID0+IFByb21pc2U8dm9pZD4+IHtcbiAgbGV0IGZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgcGF0aCk7XG4gIGlmIChmaWxlKSB7XG4gICAgcmV0dXJuIG5vb3BBc3luYztcbiAgfVxuXG4gIGNvbnN0IGZvbGRlckNsZWFudXAgPSBhd2FpdCBjcmVhdGVUZW1wRm9sZGVyKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBhcHAudmF1bHQuY3JlYXRlKHBhdGgsICcnKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghYXdhaXQgYXBwLnZhdWx0LmV4aXN0cyhwYXRoKSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aCk7XG4gICAgaWYgKCFmaWxlLmRlbGV0ZWQpIHtcbiAgICAgIGF3YWl0IGFwcC5maWxlTWFuYWdlci50cmFzaEZpbGUoZmlsZSk7XG4gICAgfVxuICAgIGF3YWl0IGZvbGRlckNsZWFudXAoKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdGVtcG9yYXJ5IGZvbGRlciBpbiB0aGUgdmF1bHQgd2l0aCBwYXJlbnQgZm9sZGVycyBpZiBuZWVkZWQuXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyIHRvIGNyZWF0ZS5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgZnVuY3Rpb24gdGhhdCBjYW4gYmUgY2FsbGVkIHRvIGRlbGV0ZSB0aGUgdGVtcG9yYXJ5IGZvbGRlciBhbmQgYWxsIGl0cyBjcmVhdGVkIHBhcmVudHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVUZW1wRm9sZGVyKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPCgpID0+IFByb21pc2U8dm9pZD4+IHtcbiAgbGV0IGZvbGRlciA9IGdldEZvbGRlck9yTnVsbChhcHAsIHBhdGgpO1xuICBpZiAoZm9sZGVyKSB7XG4gICAgcmV0dXJuIG5vb3BBc3luYztcbiAgfVxuXG4gIGNvbnN0IGRpclBhdGggPSBwYXJlbnRGb2xkZXJQYXRoKHBhdGgpO1xuICBhd2FpdCBjcmVhdGVUZW1wRm9sZGVyKGFwcCwgZGlyUGF0aCk7XG5cbiAgY29uc3QgZm9sZGVyQ2xlYW51cCA9IGF3YWl0IGNyZWF0ZVRlbXBGb2xkZXIoYXBwLCBwYXJlbnRGb2xkZXJQYXRoKHBhdGgpKTtcblxuICBhd2FpdCBjcmVhdGVGb2xkZXJTYWZlKGFwcCwgcGF0aCk7XG5cbiAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICBmb2xkZXIgPSBnZXRGb2xkZXIoYXBwLCBwYXRoKTtcbiAgICBpZiAoIWZvbGRlci5kZWxldGVkKSB7XG4gICAgICBhd2FpdCBhcHAuZmlsZU1hbmFnZXIudHJhc2hGaWxlKGZvbGRlcik7XG4gICAgfVxuICAgIGF3YWl0IGZvbGRlckNsZWFudXAoKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXRzIGFuIGF2YWlsYWJsZSBwYXRoIGZvciBhIGZpbGUgaW4gdGhlIHZhdWx0LlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBmaWxlIHRvIGdldCBhbiBhdmFpbGFibGUgcGF0aCBmb3IuXG4gKiBAcmV0dXJucyBUaGUgYXZhaWxhYmxlIHBhdGggZm9yIHRoZSBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXZhaWxhYmxlUGF0aChhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZXh0ID0gZXh0bmFtZShwYXRoKTtcbiAgcmV0dXJuIGFwcC52YXVsdC5nZXRBdmFpbGFibGVQYXRoKGpvaW4oZGlybmFtZShwYXRoKSwgYmFzZW5hbWUocGF0aCwgZXh0KSksIGV4dC5zbGljZSgxKSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGFuIGFycmF5IG9mIE1hcmtkb3duIGZpbGVzIGZyb20gdGhlIGFwcCdzIHZhdWx0IGFuZCBzb3J0cyB0aGVtIGFscGhhYmV0aWNhbGx5IGJ5IHRoZWlyIGZpbGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIE1hcmtkb3duIGZpbGVzIHNvcnRlZCBieSBmaWxlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXJrZG93bkZpbGVzU29ydGVkKGFwcDogQXBwKTogVEZpbGVbXSB7XG4gIHJldHVybiBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLnNvcnQoKGEsIGIpID0+IGEucGF0aC5sb2NhbGVDb21wYXJlKGIucGF0aCkpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhbiBhcnJheSBvZiBhbGwgbm90ZSBmaWxlcyBmcm9tIHRoZSBhcHAncyB2YXVsdCBhbmQgc29ydHMgdGhlbSBhbHBoYWJldGljYWxseSBieSB0aGVpciBmaWxlIHBhdGguXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBub3RlIGZpbGVzIGluIHRoZSB2YXVsdCBzb3J0ZWQgYnkgZmlsZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm90ZUZpbGVzU29ydGVkKGFwcDogQXBwKTogVEZpbGVbXSB7XG4gIHJldHVybiBhcHAudmF1bHQuZ2V0QWxsTG9hZGVkRmlsZXMoKS5maWx0ZXIoKGZpbGUpID0+IGlzRmlsZShmaWxlKSAmJiBpc05vdGUoYXBwLCBmaWxlKSkuc29ydCgoYSwgYikgPT4gYS5wYXRoLmxvY2FsZUNvbXBhcmUoYi5wYXRoKSkgYXMgVEZpbGVbXTtcbn1cblxuLyoqXG4gKiBHZXRzIGEgc2FmZSByZW5hbWUgcGF0aCBmb3IgYSBmaWxlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gb2xkUGF0aE9yRmlsZSAtIFRoZSBvbGQgcGF0aCBvciBmaWxlIHRvIHJlbmFtZS5cbiAqIEBwYXJhbSBuZXdQYXRoIC0gVGhlIG5ldyBwYXRoIHRvIHJlbmFtZSB0aGUgZmlsZSB0by5cbiAqIEByZXR1cm5zIFRoZSBzYWZlIHJlbmFtZSBwYXRoIGZvciB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNhZmVSZW5hbWVQYXRoKGFwcDogQXBwLCBvbGRQYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBuZXdQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBvbGRQYXRoID0gZ2V0UGF0aChhcHAsIG9sZFBhdGhPckZpbGUpO1xuXG4gIGlmIChhcHAudmF1bHQuYWRhcHRlci5pbnNlbnNpdGl2ZSkge1xuICAgIGxldCBmb2xkZXJQYXRoID0gZGlybmFtZShuZXdQYXRoKTtcbiAgICBsZXQgbm9uRXhpc3RpbmdQYXRoID0gYmFzZW5hbWUobmV3UGF0aCk7XG4gICAgbGV0IGZvbGRlcjogbnVsbCB8IFRGb2xkZXI7XG4gICAgZm9yICg7Oykge1xuICAgICAgZm9sZGVyID0gZ2V0Rm9sZGVyT3JOdWxsKGFwcCwgZm9sZGVyUGF0aCwgdHJ1ZSk7XG4gICAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgbm9uRXhpc3RpbmdQYXRoID0gam9pbihiYXNlbmFtZShmb2xkZXJQYXRoKSwgbm9uRXhpc3RpbmdQYXRoKTtcbiAgICAgIGZvbGRlclBhdGggPSBkaXJuYW1lKGZvbGRlclBhdGgpO1xuICAgIH1cbiAgICBuZXdQYXRoID0gam9pbihmb2xkZXIuZ2V0UGFyZW50UHJlZml4KCksIG5vbkV4aXN0aW5nUGF0aCk7XG4gIH1cblxuICBpZiAob2xkUGF0aC50b0xvd2VyQ2FzZSgpID09PSBuZXdQYXRoLnRvTG93ZXJDYXNlKCkpIHtcbiAgICByZXR1cm4gbmV3UGF0aDtcbiAgfVxuXG4gIHJldHVybiBnZXRBdmFpbGFibGVQYXRoKGFwcCwgbmV3UGF0aCk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZm9sZGVyIGlzIGVtcHR5LlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGb2xkZXIgLSBUaGUgcGF0aCBvciBmb2xkZXIgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmb2xkZXIgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0VtcHR5Rm9sZGVyKGFwcDogQXBwLCBwYXRoT3JGb2xkZXI6IFBhdGhPckZvbGRlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBsaXN0ZWRGaWxlcyA9IGF3YWl0IGxpc3RTYWZlKGFwcCwgZ2V0UGF0aChhcHAsIHBhdGhPckZvbGRlcikpO1xuICByZXR1cm4gbGlzdGVkRmlsZXMuZmlsZXMubGVuZ3RoID09PSAwICYmIGxpc3RlZEZpbGVzLmZvbGRlcnMubGVuZ3RoID09PSAwO1xufVxuXG4vKipcbiAqIFNhZmVseSBsaXN0cyB0aGUgZmlsZXMgYW5kIGZvbGRlcnMgYXQgdGhlIHNwZWNpZmllZCBwYXRoIGluIHRoZSB2YXVsdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZvbGRlciAtIFRoZSBwYXRoIG9yIGZvbGRlciB0byBsaXN0LlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBgTGlzdGVkRmlsZXNgIG9iamVjdCBjb250YWluaW5nIHRoZSBsaXN0ZWQgZmlsZXMgYW5kIGZvbGRlcnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaXN0U2FmZShhcHA6IEFwcCwgcGF0aE9yRm9sZGVyOiBQYXRoT3JGb2xkZXIpOiBQcm9taXNlPExpc3RlZEZpbGVzPiB7XG4gIGNvbnN0IHBhdGggPSBnZXRQYXRoKGFwcCwgcGF0aE9yRm9sZGVyKTtcbiAgY29uc3QgRU1QVFkgPSB7IGZpbGVzOiBbXSwgZm9sZGVyczogW10gfTtcblxuICBpZiAoKGF3YWl0IGFwcC52YXVsdC5hZGFwdGVyLnN0YXQocGF0aCkpPy50eXBlICE9PSAnZm9sZGVyJykge1xuICAgIHJldHVybiBFTVBUWTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5hZGFwdGVyLmxpc3QocGF0aCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoYXdhaXQgYXBwLnZhdWx0LmV4aXN0cyhwYXRoKSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgcmV0dXJuIEVNUFRZO1xuICB9XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIGEgZmlsZSB3aXRoIHJldHJ5IGxvZ2ljLCB1cGRhdGluZyBpdHMgY29udGVudCBiYXNlZCBvbiBhIHByb3ZpZGVkIHZhbHVlIG9yIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UsIHR5cGljYWxseSB1c2VkIGZvciBhY2Nlc3NpbmcgdGhlIHZhdWx0LlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIGJlIHByb2Nlc3NlZC4gSXQgY2FuIGJlIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcGF0aCBvciBhIGZpbGUgb2JqZWN0LlxuICogQHBhcmFtIG5ld0NvbnRlbnRQcm92aWRlciAtIEEgdmFsdWUgcHJvdmlkZXIgdGhhdCByZXR1cm5zIHRoZSBuZXcgY29udGVudCBiYXNlZCBvbiB0aGUgb2xkIGNvbnRlbnQgb2YgdGhlIGZpbGUuXG4gKiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBvbGQgY29udGVudCBhcyBhbiBhcmd1bWVudCBhbmQgcmV0dXJucyB0aGUgbmV3IGNvbnRlbnQuXG4gKiBJZiBmdW5jdGlvbiBpcyBwcm92aWRlZCwgaXQgc2hvdWxkIHJldHVybiBgbnVsbGAgaWYgdGhlIHByb2Nlc3Mgc2hvdWxkIGJlIHJldHJpZWQuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIG9wdGlvbnMgZm9yIHByb2Nlc3NpbmcvcmV0cnlpbmcgdGhlIG9wZXJhdGlvbi5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBwcm9jZXNzIGlzIGNvbXBsZXRlLlxuICpcbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcHJvY2VzcyBmYWlscyBhZnRlciB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiByZXRyaWVzIG9yIHRpbWVvdXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzKFxuICBhcHA6IEFwcCxcbiAgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSxcbiAgbmV3Q29udGVudFByb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPG51bGwgfCBzdHJpbmcsIFtzdHJpbmddPixcbiAgb3B0aW9uczogUHJvY2Vzc09wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUyA9IHtcbiAgICBzaG91bGRGYWlsT25NaXNzaW5nRmlsZTogdHJ1ZVxuICB9O1xuICBjb25zdCBmdWxsT3B0aW9ucyA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5vcHRpb25zIH07XG5cbiAgYXdhaXQgcmV0cnlXaXRoVGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb2xkQ29udGVudCA9IGF3YWl0IHJlYWRTYWZlKGFwcCwgcGF0aE9yRmlsZSk7XG5cbiAgICBpZiAob2xkQ29udGVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGhhbmRsZU1pc3NpbmdGaWxlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3Q29udGVudCA9IGF3YWl0IHJlc29sdmVWYWx1ZShuZXdDb250ZW50UHJvdmlkZXIsIG9sZENvbnRlbnQpO1xuICAgIGlmIChuZXdDb250ZW50ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IGlzU3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgZG9lc0ZpbGVFeGlzdCA9IGF3YWl0IGludm9rZUZpbGVBY3Rpb25TYWZlKGFwcCwgcGF0aE9yRmlsZSwgYXN5bmMgKGZpbGUpID0+IHtcbiAgICAgIGF3YWl0IGFwcC52YXVsdC5wcm9jZXNzKGZpbGUsIChjb250ZW50KSA9PiB7XG4gICAgICAgIGlmIChjb250ZW50ICE9PSBvbGRDb250ZW50KSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdDb250ZW50IGhhcyBjaGFuZ2VkIHNpbmNlIGl0IHdhcyByZWFkLiBSZXRyeWluZy4uLicsIHtcbiAgICAgICAgICAgIGFjdHVhbENvbnRlbnQ6IGNvbnRlbnQsXG4gICAgICAgICAgICBleHBlY3RlZENvbnRlbnQ6IG9sZENvbnRlbnQsXG4gICAgICAgICAgICBwYXRoOiBmaWxlLnBhdGhcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpc1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXdDb250ZW50O1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAoIWRvZXNGaWxlRXhpc3QpIHtcbiAgICAgIHJldHVybiBoYW5kbGVNaXNzaW5nRmlsZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBpc1N1Y2Nlc3M7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVNaXNzaW5nRmlsZSgpOiBib29sZWFuIHtcbiAgICAgIGlmIChmdWxsT3B0aW9ucy5zaG91bGRGYWlsT25NaXNzaW5nRmlsZSkge1xuICAgICAgICBjb25zdCBwYXRoID0gZ2V0UGF0aChhcHAsIHBhdGhPckZpbGUpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZpbGUgJyR7cGF0aH0nIG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9LCBmdWxsT3B0aW9ucyk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGNvbnRlbnQgb2YgYSBmaWxlIHNhZmVseSBmcm9tIHRoZSB2YXVsdC5cbiAqXG4gKiBJdCBjb3ZlcnMgdGhlIGNhc2Ugd2hlbiB0aGUgZmlsZSB3YXMgcmVtb3ZlZCBkdXJpbmcgdGhlIHJlYWRpbmcuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byByZWFkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGNvbnRlbnQgb2YgdGhlIGZpbGUgb3IgYG51bGxgIGlmIHRoZSBmaWxlIGlzIG1pc3Npbmcgb3IgZGVsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTYWZlKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIGxldCBjb250ZW50OiBudWxsIHwgc3RyaW5nID0gbnVsbDtcbiAgYXdhaXQgaW52b2tlRmlsZUFjdGlvblNhZmUoYXBwLCBwYXRoT3JGaWxlLCBhc3luYyAoZmlsZSkgPT4ge1xuICAgIGNvbnRlbnQgPSBhd2FpdCBhcHAudmF1bHQucmVhZChmaWxlKTtcbiAgfSk7XG4gIHJldHVybiBjb250ZW50O1xufVxuXG4vKipcbiAqIFJlbmFtZXMgYSBmaWxlIHNhZmVseSBpbiB0aGUgdmF1bHQuXG4gKiBJZiB0aGUgbmV3IHBhdGggYWxyZWFkeSBleGlzdHMsIHRoZSBmaWxlIHdpbGwgYmUgcmVuYW1lZCB0byBhbiBhdmFpbGFibGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIG9sZFBhdGhPckZpbGUgLSBUaGUgb2xkIHBhdGggb3IgZmlsZSB0byByZW5hbWUuXG4gKiBAcGFyYW0gbmV3UGF0aCAtIFRoZSBuZXcgcGF0aCB0byByZW5hbWUgdGhlIGZpbGUgdG8uXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgbmV3IHBhdGggb2YgdGhlIGZpbGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5hbWVTYWZlKGFwcDogQXBwLCBvbGRQYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBuZXdQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBvbGRGaWxlID0gZ2V0RmlsZShhcHAsIG9sZFBhdGhPckZpbGUsIGZhbHNlLCB0cnVlKTtcblxuICBjb25zdCBuZXdBdmFpbGFibGVQYXRoID0gZ2V0U2FmZVJlbmFtZVBhdGgoYXBwLCBvbGRQYXRoT3JGaWxlLCBuZXdQYXRoKTtcblxuICBpZiAob2xkRmlsZS5wYXRoLnRvTG93ZXJDYXNlKCkgPT09IG5ld0F2YWlsYWJsZVBhdGgudG9Mb3dlckNhc2UoKSkge1xuICAgIGlmIChvbGRGaWxlLnBhdGggIT09IG5ld1BhdGgpIHtcbiAgICAgIGF3YWl0IGFwcC52YXVsdC5yZW5hbWUob2xkRmlsZSwgbmV3QXZhaWxhYmxlUGF0aCk7XG4gICAgfVxuICAgIHJldHVybiBuZXdBdmFpbGFibGVQYXRoO1xuICB9XG5cbiAgY29uc3QgbmV3Rm9sZGVyUGF0aCA9IHBhcmVudEZvbGRlclBhdGgobmV3QXZhaWxhYmxlUGF0aCk7XG4gIGF3YWl0IGNyZWF0ZUZvbGRlclNhZmUoYXBwLCBuZXdGb2xkZXJQYXRoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGFwcC52YXVsdC5yZW5hbWUob2xkRmlsZSwgbmV3QXZhaWxhYmxlUGF0aCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoIWF3YWl0IGFwcC52YXVsdC5leGlzdHMobmV3QXZhaWxhYmxlUGF0aCkgfHwgYXdhaXQgYXBwLnZhdWx0LmV4aXN0cyhvbGRGaWxlLnBhdGgpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdBdmFpbGFibGVQYXRoO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbnZva2VGaWxlQWN0aW9uU2FmZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgZmlsZUFjdGlvbjogKGZpbGU6IFRGaWxlKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHBhdGggPSBnZXRQYXRoKGFwcCwgcGF0aE9yRmlsZSk7XG4gIGxldCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIHBhdGgpO1xuICBpZiAoIWZpbGUgfHwgZmlsZS5kZWxldGVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgYXdhaXQgZmlsZUFjdGlvbihmaWxlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgcGF0aCk7XG4gICAgaWYgKCFmaWxlIHx8IGZpbGUuZGVsZXRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBVUE7QUFBQSxFQUNFO0FBQUEs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
|
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
4
4
|
*/
|
5
5
|
|
6
|
-
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})()
|
6
|
+
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
7
|
|
8
8
|
"use strict";
|
9
9
|
var __defProp = Object.defineProperty;
|
@@ -0,0 +1,71 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
|
+
|
8
|
+
import { printError } from "../Error.mjs";
|
9
|
+
import {
|
10
|
+
getAbstractFileOrNull,
|
11
|
+
getFolderOrNull,
|
12
|
+
isFile,
|
13
|
+
isFolder
|
14
|
+
} from "./FileSystem.mjs";
|
15
|
+
import { getBacklinksForFileSafe } from "./MetadataCache.mjs";
|
16
|
+
import {
|
17
|
+
isEmptyFolder,
|
18
|
+
listSafe
|
19
|
+
} from "./Vault.mjs";
|
20
|
+
async function deleteEmptyFolderHierarchy(app, pathOrFolder) {
|
21
|
+
let folder = getFolderOrNull(app, pathOrFolder);
|
22
|
+
while (folder) {
|
23
|
+
if (!await isEmptyFolder(app, folder)) {
|
24
|
+
return;
|
25
|
+
}
|
26
|
+
const parent = folder.parent;
|
27
|
+
await deleteSafe(app, folder.path);
|
28
|
+
folder = parent;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
async function deleteSafe(app, pathOrFile, deletedNotePath, shouldReportUsedAttachments, shouldDeleteEmptyFolders) {
|
32
|
+
const file = getAbstractFileOrNull(app, pathOrFile);
|
33
|
+
if (!file) {
|
34
|
+
return false;
|
35
|
+
}
|
36
|
+
let canDelete = isFile(file) || (shouldDeleteEmptyFolders ?? true);
|
37
|
+
if (isFile(file)) {
|
38
|
+
const backlinks = await getBacklinksForFileSafe(app, file);
|
39
|
+
if (deletedNotePath) {
|
40
|
+
backlinks.clear(deletedNotePath);
|
41
|
+
}
|
42
|
+
if (backlinks.count() !== 0) {
|
43
|
+
if (shouldReportUsedAttachments) {
|
44
|
+
new Notice(`Attachment ${file.path} is still used by other notes. It will not be deleted.`);
|
45
|
+
}
|
46
|
+
canDelete = false;
|
47
|
+
}
|
48
|
+
} else if (isFolder(file)) {
|
49
|
+
const listedFiles = await listSafe(app, file);
|
50
|
+
for (const child of [...listedFiles.files, ...listedFiles.folders]) {
|
51
|
+
canDelete &&= await deleteSafe(app, child, deletedNotePath, shouldReportUsedAttachments);
|
52
|
+
}
|
53
|
+
canDelete &&= await isEmptyFolder(app, file);
|
54
|
+
}
|
55
|
+
if (canDelete) {
|
56
|
+
try {
|
57
|
+
await app.fileManager.trashFile(file);
|
58
|
+
} catch (e) {
|
59
|
+
if (await app.vault.exists(file.path)) {
|
60
|
+
printError(new Error(`Failed to delete ${file.path}`, { cause: e }));
|
61
|
+
canDelete = false;
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
return canDelete;
|
66
|
+
}
|
67
|
+
export {
|
68
|
+
deleteEmptyFolderHierarchy,
|
69
|
+
deleteSafe
|
70
|
+
};
|
71
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1ZhdWx0RXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFZhdWx0RXhcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGFkZGl0aW9uYWwgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggdGhlIE9ic2lkaWFuIFZhdWx0LlxuICpcbiAqIEl0IGhhcyB0byBiZSBleHRyYWN0ZWQgZnJvbSBgVmF1bHRgIGJlY2F1c2Ugb2YgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhdGhPckFic3RyYWN0RmlsZSxcbiAgUGF0aE9yRm9sZGVyXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQge1xuICBnZXRBYnN0cmFjdEZpbGVPck51bGwsXG4gIGdldEZvbGRlck9yTnVsbCxcbiAgaXNGaWxlLFxuICBpc0ZvbGRlclxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHsgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUgfSBmcm9tICcuL01ldGFkYXRhQ2FjaGUudHMnO1xuaW1wb3J0IHtcbiAgaXNFbXB0eUZvbGRlcixcbiAgbGlzdFNhZmVcbn0gZnJvbSAnLi9WYXVsdC50cyc7XG5cbi8qKlxuICogUmVtb3ZlcyBlbXB0eSBmb2xkZXIgaGllcmFyY2h5IHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZvbGRlciAtIFRoZSBmb2xkZXIgdG8gc3RhcnQgcmVtb3ZpbmcgZW1wdHkgaGllcmFyY2h5IGZyb20uXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBlbXB0eSBoaWVyYXJjaHkgaXMgZGVsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUVtcHR5Rm9sZGVySGllcmFyY2h5KGFwcDogQXBwLCBwYXRoT3JGb2xkZXI6IG51bGwgfCBQYXRoT3JGb2xkZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IGZvbGRlciA9IGdldEZvbGRlck9yTnVsbChhcHAsIHBhdGhPckZvbGRlcik7XG5cbiAgd2hpbGUgKGZvbGRlcikge1xuICAgIGlmICghYXdhaXQgaXNFbXB0eUZvbGRlcihhcHAsIGZvbGRlcikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGFyZW50ID0gZm9sZGVyLnBhcmVudDtcbiAgICBhd2FpdCBkZWxldGVTYWZlKGFwcCwgZm9sZGVyLnBhdGgpO1xuICAgIGZvbGRlciA9IHBhcmVudDtcbiAgfVxufVxuXG4vKipcbiAqIERlbGV0ZXMgYWJzdHJhY3QgZmlsZSBzYWZlbHkgZnJvbSB0aGUgdmF1bHQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgYWJzdHJhY3QgZmlsZSB0byBkZWxldGUuXG4gKiBAcGFyYW0gZGVsZXRlZE5vdGVQYXRoIC0gT3B0aW9uYWwuIFRoZSBwYXRoIG9mIHRoZSBub3RlIHRoYXQgdHJpZ2dlcmVkIHRoZSByZW1vdmFsLlxuICogQHBhcmFtIHNob3VsZFJlcG9ydFVzZWRBdHRhY2htZW50cyAtIE9wdGlvbmFsLiBJZiBgdHJ1ZWAsIGEgbm90aWNlIHdpbGwgYmUgc2hvd24gZm9yIGVhY2ggYXR0YWNobWVudCB0aGF0IGlzIHN0aWxsIHVzZWQgYnkgb3RoZXIgbm90ZXMuXG4gKiBAcGFyYW0gc2hvdWxkRGVsZXRlRW1wdHlGb2xkZXJzIC0gT3B0aW9uYWwuIElmIGB0cnVlYCwgZW1wdHkgZm9sZGVycyB3aWxsIGJlIGRlbGV0ZWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSByZW1vdmFsIHdhcyBzdWNjZXNzZnVsLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlU2FmZShcbiAgYXBwOiBBcHAsXG4gIHBhdGhPckZpbGU6IFBhdGhPckFic3RyYWN0RmlsZSxcbiAgZGVsZXRlZE5vdGVQYXRoPzogc3RyaW5nLFxuICBzaG91bGRSZXBvcnRVc2VkQXR0YWNobWVudHM/OiBib29sZWFuLFxuICBzaG91bGREZWxldGVFbXB0eUZvbGRlcnM/OiBib29sZWFuXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgZmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChhcHAsIHBhdGhPckZpbGUpO1xuXG4gIGlmICghZmlsZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCBjYW5EZWxldGUgPSBpc0ZpbGUoZmlsZSkgfHwgKHNob3VsZERlbGV0ZUVtcHR5Rm9sZGVycyA/PyB0cnVlKTtcblxuICBpZiAoaXNGaWxlKGZpbGUpKSB7XG4gICAgY29uc3QgYmFja2xpbmtzID0gYXdhaXQgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoYXBwLCBmaWxlKTtcbiAgICBpZiAoZGVsZXRlZE5vdGVQYXRoKSB7XG4gICAgICBiYWNrbGlua3MuY2xlYXIoZGVsZXRlZE5vdGVQYXRoKTtcbiAgICB9XG4gICAgaWYgKGJhY2tsaW5rcy5jb3VudCgpICE9PSAwKSB7XG4gICAgICBpZiAoc2hvdWxkUmVwb3J0VXNlZEF0dGFjaG1lbnRzKSB7XG4gICAgICAgIG5ldyBOb3RpY2UoYEF0dGFjaG1lbnQgJHtmaWxlLnBhdGh9IGlzIHN0aWxsIHVzZWQgYnkgb3RoZXIgbm90ZXMuIEl0IHdpbGwgbm90IGJlIGRlbGV0ZWQuYCk7XG4gICAgICB9XG4gICAgICBjYW5EZWxldGUgPSBmYWxzZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNGb2xkZXIoZmlsZSkpIHtcbiAgICBjb25zdCBsaXN0ZWRGaWxlcyA9IGF3YWl0IGxpc3RTYWZlKGFwcCwgZmlsZSk7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBbLi4ubGlzdGVkRmlsZXMuZmlsZXMsIC4uLmxpc3RlZEZpbGVzLmZvbGRlcnNdKSB7XG4gICAgICBjYW5EZWxldGUgJiY9IGF3YWl0IGRlbGV0ZVNhZmUoYXBwLCBjaGlsZCwgZGVsZXRlZE5vdGVQYXRoLCBzaG91bGRSZXBvcnRVc2VkQXR0YWNobWVudHMpO1xuICAgIH1cblxuICAgIGNhbkRlbGV0ZSAmJj0gYXdhaXQgaXNFbXB0eUZvbGRlcihhcHAsIGZpbGUpO1xuICB9XG5cbiAgaWYgKGNhbkRlbGV0ZSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBhcHAuZmlsZU1hbmFnZXIudHJhc2hGaWxlKGZpbGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChhd2FpdCBhcHAudmF1bHQuZXhpc3RzKGZpbGUucGF0aCkpIHtcbiAgICAgICAgcHJpbnRFcnJvcihuZXcgRXJyb3IoYEZhaWxlZCB0byBkZWxldGUgJHtmaWxlLnBhdGh9YCwgeyBjYXVzZTogZSB9KSk7XG4gICAgICAgIGNhbkRlbGV0ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjYW5EZWxldGU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBY0EsU0FBUyxrQkFBa0I7QUFDM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsK0JBQStCO0FBQ3hDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBU1AsZUFBc0IsMkJBQTJCLEtBQVUsY0FBa0Q7QUFDM0csTUFBSSxTQUFTLGdCQUFnQixLQUFLLFlBQVk7QUFFOUMsU0FBTyxRQUFRO0FBQ2IsUUFBSSxDQUFDLE1BQU0sY0FBYyxLQUFLLE1BQU0sR0FBRztBQUNyQztBQUFBLElBQ0Y7QUFDQSxVQUFNLFNBQVMsT0FBTztBQUN0QixVQUFNLFdBQVcsS0FBSyxPQUFPLElBQUk7QUFDakMsYUFBUztBQUFBLEVBQ1g7QUFDRjtBQVlBLGVBQXNCLFdBQ3BCLEtBQ0EsWUFDQSxpQkFDQSw2QkFDQSwwQkFDa0I7QUFDbEIsUUFBTSxPQUFPLHNCQUFzQixLQUFLLFVBQVU7QUFFbEQsTUFBSSxDQUFDLE1BQU07QUFDVCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksWUFBWSxPQUFPLElBQUksTUFBTSw0QkFBNEI7QUFFN0QsTUFBSSxPQUFPLElBQUksR0FBRztBQUNoQixVQUFNLFlBQVksTUFBTSx3QkFBd0IsS0FBSyxJQUFJO0FBQ3pELFFBQUksaUJBQWlCO0FBQ25CLGdCQUFVLE1BQU0sZUFBZTtBQUFBLElBQ2pDO0FBQ0EsUUFBSSxVQUFVLE1BQU0sTUFBTSxHQUFHO0FBQzNCLFVBQUksNkJBQTZCO0FBQy9CLFlBQUksT0FBTyxjQUFjLEtBQUssSUFBSSx3REFBd0Q7QUFBQSxNQUM1RjtBQUNBLGtCQUFZO0FBQUEsSUFDZDtBQUFBLEVBQ0YsV0FBVyxTQUFTLElBQUksR0FBRztBQUN6QixVQUFNLGNBQWMsTUFBTSxTQUFTLEtBQUssSUFBSTtBQUM1QyxlQUFXLFNBQVMsQ0FBQyxHQUFHLFlBQVksT0FBTyxHQUFHLFlBQVksT0FBTyxHQUFHO0FBQ2xFLG9CQUFjLE1BQU0sV0FBVyxLQUFLLE9BQU8saUJBQWlCLDJCQUEyQjtBQUFBLElBQ3pGO0FBRUEsa0JBQWMsTUFBTSxjQUFjLEtBQUssSUFBSTtBQUFBLEVBQzdDO0FBRUEsTUFBSSxXQUFXO0FBQ2IsUUFBSTtBQUNGLFlBQU0sSUFBSSxZQUFZLFVBQVUsSUFBSTtBQUFBLElBQ3RDLFNBQVMsR0FBRztBQUNWLFVBQUksTUFBTSxJQUFJLE1BQU0sT0FBTyxLQUFLLElBQUksR0FBRztBQUNyQyxtQkFBVyxJQUFJLE1BQU0sb0JBQW9CLEtBQUssSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNuRSxvQkFBWTtBQUFBLE1BQ2Q7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -3,7 +3,7 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
4
4
|
*/
|
5
5
|
|
6
|
-
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})()
|
6
|
+
(function init(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;if(!require.__isPatched){const originalRequire=require;require=Object.assign(id=>requirePatched(id,originalRequire),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>({browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"}),"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id,originalRequire){const module=originalRequire(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
7
|
|
8
8
|
"use strict";
|
9
9
|
var __defProp = Object.defineProperty;
|