obsidian-typings 2.3.3 → 2.4.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.
@@ -41,9 +41,24 @@ __export(implementations_exports, {
41
41
  });
42
42
  module.exports = __toCommonJS(implementations_exports);
43
43
 
44
- // src/obsidian/implementations/PathUtils.ts
45
- function parentFolderPath(path) {
46
- return path.replace(/\/?[^\/]*$/, "") || "/";
44
+ // src/obsidian/implementations/TypeGuards/isReferenceCache.ts
45
+ function isReferenceCache(reference) {
46
+ return !!reference.position;
47
+ }
48
+
49
+ // src/obsidian/implementations/TypeGuards/isEmbedCache.ts
50
+ function isEmbedCache(reference) {
51
+ return isReferenceCache(reference) && reference.original[0] === "!";
52
+ }
53
+
54
+ // src/obsidian/implementations/TypeGuards/isFrontmatterLinkCache.ts
55
+ function isFrontmatterLinkCache(reference) {
56
+ return !!reference.key;
57
+ }
58
+
59
+ // src/obsidian/implementations/TypeGuards/isLinkCache.ts
60
+ function isLinkCache(reference) {
61
+ return isReferenceCache(reference) && reference.original[0] !== "!";
47
62
  }
48
63
 
49
64
  // src/obsidian/implementations/Constructors/constructTFolder.ts
@@ -52,6 +67,37 @@ function constructTFolder(vault, path) {
52
67
  return new import_obsidian.TFolder(vault, path);
53
68
  }
54
69
 
70
+ // src/obsidian/implementations/Constructors/constructInternalPlugins.ts
71
+ function constructInternalPlugins(app) {
72
+ return new app.internalPlugins.constructor(app);
73
+ }
74
+
75
+ // src/obsidian/implementations/Constructors/constructInternalPlugin.ts
76
+ function constructInternalPlugin(app, instance, internalPlugins) {
77
+ const anyPlugin = Object.values(app.internalPlugins.plugins)[0];
78
+ if (!anyPlugin) {
79
+ throw new Error("No internal plugin found");
80
+ }
81
+ return new anyPlugin.constructor(app, instance, internalPlugins);
82
+ }
83
+
84
+ // src/obsidian/implementations/Constructors/constructApp.ts
85
+ var import_obsidian2 = require("obsidian");
86
+ function constructApp(adapter, appId) {
87
+ return new import_obsidian2.App(adapter, appId);
88
+ }
89
+
90
+ // src/obsidian/implementations/Constructors/constructTFile.ts
91
+ var import_obsidian3 = require("obsidian");
92
+ function constructTFile(vault, path) {
93
+ return new import_obsidian3.TFile(vault, path);
94
+ }
95
+
96
+ // src/obsidian/implementations/PathUtils.ts
97
+ function parentFolderPath(path) {
98
+ return path.replace(/\/?[^\/]*$/, "") || "/";
99
+ }
100
+
55
101
  // src/obsidian/implementations/createTFolderInstance.ts
56
102
  function createTFolderInstance(vault, path) {
57
103
  let folder = vault.getFolderByPath(path);
@@ -143,12 +189,6 @@ var InternalPluginName = {
143
189
  ZkPrefixer: "zk-prefixer"
144
190
  };
145
191
 
146
- // src/obsidian/implementations/Constructors/constructTFile.ts
147
- var import_obsidian2 = require("obsidian");
148
- function constructTFile(vault, path) {
149
- return new import_obsidian2.TFile(vault, path);
150
- }
151
-
152
192
  // src/obsidian/implementations/createTFileInstance.ts
153
193
  function createTFileInstance(vault, path) {
154
194
  let file = vault.getFileByPath(path);
@@ -160,44 +200,4 @@ function createTFileInstance(vault, path) {
160
200
  file.deleted = true;
161
201
  return file;
162
202
  }
163
-
164
- // src/obsidian/implementations/TypeGuards/isReferenceCache.ts
165
- function isReferenceCache(reference) {
166
- return !!reference.position;
167
- }
168
-
169
- // src/obsidian/implementations/TypeGuards/isEmbedCache.ts
170
- function isEmbedCache(reference) {
171
- return isReferenceCache(reference) && reference.original[0] === "!";
172
- }
173
-
174
- // src/obsidian/implementations/TypeGuards/isFrontmatterLinkCache.ts
175
- function isFrontmatterLinkCache(reference) {
176
- return !!reference.key;
177
- }
178
-
179
- // src/obsidian/implementations/TypeGuards/isLinkCache.ts
180
- function isLinkCache(reference) {
181
- return isReferenceCache(reference) && reference.original[0] !== "!";
182
- }
183
-
184
- // src/obsidian/implementations/Constructors/constructInternalPlugins.ts
185
- function constructInternalPlugins(app) {
186
- return new app.internalPlugins.constructor(app);
187
- }
188
-
189
- // src/obsidian/implementations/Constructors/constructInternalPlugin.ts
190
- function constructInternalPlugin(app, instance, internalPlugins) {
191
- const anyPlugin = Object.values(app.internalPlugins.plugins)[0];
192
- if (!anyPlugin) {
193
- throw new Error("No internal plugin found");
194
- }
195
- return new anyPlugin.constructor(app, instance, internalPlugins);
196
- }
197
-
198
- // src/obsidian/implementations/Constructors/constructApp.ts
199
- var import_obsidian3 = require("obsidian");
200
- function constructApp(adapter, appId) {
201
- return new import_obsidian3.App(adapter, appId);
202
- }
203
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9pbmRleC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1BhdGhVdGlscy50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RURm9sZGVyLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvY3JlYXRlVEZvbGRlckluc3RhbmNlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ3VzdG9tQXJyYXlEaWN0SW1wbC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0ludGVybmFsUGx1Z2luTmFtZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RURmlsZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL2NyZWF0ZVRGaWxlSW5zdGFuY2UudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9UeXBlR3VhcmRzL2lzUmVmZXJlbmNlQ2FjaGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9UeXBlR3VhcmRzL2lzRW1iZWRDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNGcm9udG1hdHRlckxpbmtDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNMaW5rQ2FjaGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvY29uc3RydWN0SW50ZXJuYWxQbHVnaW5zLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2NvbnN0cnVjdEludGVybmFsUGx1Z2luLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2NvbnN0cnVjdEFwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGZyb20gJy4vUGF0aFV0aWxzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlVEZvbGRlckluc3RhbmNlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ3VzdG9tQXJyYXlEaWN0SW1wbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZVRGaWxlSW5zdGFuY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9UeXBlR3VhcmRzL2lzRW1iZWRDYWNoZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1R5cGVHdWFyZHMvaXNGcm9udG1hdHRlckxpbmtDYWNoZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1R5cGVHdWFyZHMvaXNSZWZlcmVuY2VDYWNoZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1R5cGVHdWFyZHMvaXNMaW5rQ2FjaGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0VEZvbGRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RJbnRlcm5hbFBsdWdpbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0SW50ZXJuYWxQbHVnaW4uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0QXBwLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2NvbnN0cnVjdFRGaWxlLmpzJztcbmltcG9ydCAnLi4vLi4vaW5kZXguanMnO1xuIiwgImV4cG9ydCBmdW5jdGlvbiBwYXJlbnRGb2xkZXJQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFwvP1teXFwvXSokLywgJycpIHx8ICcvJztcbn1cbiIsICJpbXBvcnQge1xuICAgIFRGb2xkZXIsXG4gICAgdHlwZSBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbnR5cGUgVEZvbGRlckNvbnN0cnVjdG9yID0gbmV3KHZhdWx0OiBWYXVsdCwgcGF0aDogc3RyaW5nKSA9PiBURm9sZGVyO1xuXG4vKipcbiAqIENvbnN0cnVjdHMgYSBuZXcgVEZvbGRlciBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gdmF1bHQgLSBUaGUgdmF1bHQgdG8gd2hpY2ggdGhlIGZvbGRlciBiZWxvbmdzLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyLlxuICogQHJldHVybnMgVGhlIGNvbnN0cnVjdGVkIFRGb2xkZXIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RURm9sZGVyKHZhdWx0OiBWYXVsdCwgcGF0aDogc3RyaW5nKTogVEZvbGRlciB7XG4gICAgcmV0dXJuIG5ldyAoVEZvbGRlciBhcyBURm9sZGVyQ29uc3RydWN0b3IpKHZhdWx0LCBwYXRoKTtcbn1cbiIsICJpbXBvcnQge1xuICAgIFRGb2xkZXIsXG4gICAgdHlwZSBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBjb25zdHJ1Y3RURm9sZGVyIH0gZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0VEZvbGRlci50cyc7XG5pbXBvcnQgeyBwYXJlbnRGb2xkZXJQYXRoIH0gZnJvbSAnLi9QYXRoVXRpbHMudHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHByb3Blcmx5IGluaXRpYWxpemVzIHRoZSBpbnN0YW5jZSBvZiBURm9sZGVyIGV2ZW4gdGhlIHVuZGVybHlpbmcgZm9sZGVyIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmb2xkZXIgb24gdGhlIGZpbGUgc3lzdGVtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVEZvbGRlckluc3RhbmNlKHZhdWx0OiBWYXVsdCwgcGF0aDogc3RyaW5nKTogVEZvbGRlciB7XG4gICAgbGV0IGZvbGRlciA9IHZhdWx0LmdldEZvbGRlckJ5UGF0aChwYXRoKTtcbiAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgIHJldHVybiBmb2xkZXI7XG4gICAgfVxuXG4gICAgZm9sZGVyID0gY29uc3RydWN0VEZvbGRlcih2YXVsdCwgcGF0aCk7XG4gICAgZm9sZGVyLnBhcmVudCA9IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZSh2YXVsdCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG4gICAgZm9sZGVyLmRlbGV0ZWQgPSB0cnVlO1xuICAgIHJldHVybiBmb2xkZXI7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICcuLi9pbnRlcm5hbHMvQ3VzdG9tQXJyYXlEaWN0LmpzJztcblxuZXhwb3J0IGNsYXNzIEN1c3RvbUFycmF5RGljdEltcGw8VD4gaW1wbGVtZW50cyBDdXN0b21BcnJheURpY3Q8VD4ge1xuICAgIHB1YmxpYyBkYXRhOiBNYXA8c3RyaW5nLCBUW10+ID0gbmV3IE1hcCgpO1xuXG4gICAgcHVibGljIGFkZChrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgbGV0IHZhbHVlcyA9IHRoaXMuZ2V0KGtleSk7XG4gICAgICAgIGlmICghdmFsdWVzKSB7XG4gICAgICAgICAgICB2YWx1ZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5zZXQoa2V5LCB2YWx1ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZXMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlKGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldChrZXkpO1xuICAgICAgICBpZiAoIXZhbHVlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlcy5yZW1vdmUodmFsdWUpO1xuXG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyKGtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogVFtdIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZ2V0KGtleSkgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZGF0YS5rZXlzKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcihrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEuZGVsZXRlKGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udGFpbnMoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZ2V0KGtleSk/LmNvbnRhaW5zKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGFucyA9IDA7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMua2V5cygpKSB7XG4gICAgICAgICAgICBhbnMgKz0gdGhpcy5nZXQoa2V5KT8ubGVuZ3RoID8/IDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYW5zO1xuICAgIH1cbn1cbiIsICJleHBvcnQgY29uc3QgSW50ZXJuYWxQbHVnaW5OYW1lID0ge1xuICAgIEF1ZGlvUmVjb3JkZXI6ICdhdWRpby1yZWNvcmRlcicsXG4gICAgQmFja2xpbms6ICdiYWNrbGluaycsXG4gICAgQm9va21hcmtzOiAnYm9va21hcmtzJyxcbiAgICBDYW52YXM6ICdjYW52YXMnLFxuICAgIENvbW1hbmRQYWxldHRlOiAnY29tbWFuZC1wYWxldHRlJyxcbiAgICBEYWlseU5vdGVzOiAnZGFpbHktbm90ZXMnLFxuICAgIEVkaXRvclN0YXR1czogJ2VkaXRvci1zdGF0dXMnLFxuICAgIEZpbGVFeHBsb3JlcjogJ2ZpbGUtZXhwbG9yZXInLFxuICAgIEZpbGVSZWNvdmVyeTogJ2ZpbGUtcmVjb3ZlcnknLFxuICAgIEdsb2JhbFNlYXJjaDogJ2dsb2JhbC1zZWFyY2gnLFxuICAgIEdyYXBoOiAnZ3JhcGgnLFxuICAgIE1hcmtkb3duSW1wb3J0ZXI6ICdtYXJrZG93bi1pbXBvcnRlcicsXG4gICAgTm90ZUNvbXBvc2VyOiAnbm90ZS1jb21wb3NlcicsXG4gICAgT3V0Z29pbmdMaW5rOiAnb3V0Z29pbmctbGluaycsXG4gICAgT3V0bGluZTogJ291dGxpbmUnLFxuICAgIFBhZ2VQcmV2aWV3OiAncGFnZS1wcmV2aWV3JyxcbiAgICBQcm9wZXJ0aWVzOiAncHJvcGVydGllcycsXG4gICAgUHVibGlzaDogJ3B1Ymxpc2gnLFxuICAgIFJhbmRvbU5vdGU6ICdyYW5kb20tbm90ZScsXG4gICAgU2xhc2hDb21tYW5kOiAnc2xhc2gtY29tbWFuZCcsXG4gICAgU2xpZGVzOiAnc2xpZGVzJyxcbiAgICBTd2l0Y2hlcjogJ3N3aXRjaGVyJyxcbiAgICBTeW5jOiAnc3luYycsXG4gICAgVGFnUGFuZTogJ3RhZy1wYW5lJyxcbiAgICBUZW1wbGF0ZXM6ICd0ZW1wbGF0ZXMnLFxuICAgIFdvcmRDb3VudDogJ3dvcmQtY291bnQnLFxuICAgIFdvcmtzcGFjZXM6ICd3b3Jrc3BhY2VzJyxcbiAgICBaa1ByZWZpeGVyOiAnemstcHJlZml4ZXInXG59IGFzIGNvbnN0O1xuIiwgImltcG9ydCB7XG4gICAgVEZpbGUsXG4gICAgdHlwZSBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbnR5cGUgVEZpbGVDb25zdHJ1Y3RvciA9IG5ldyh2YXVsdDogVmF1bHQsIHBhdGg6IHN0cmluZykgPT4gVEZpbGU7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBURmlsZSBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gdmF1bHQgLSBUaGUgdmF1bHQgdG8gd2hpY2ggdGhlIGZpbGUgYmVsb25ncy5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZpbGUuXG4gKiBAcmV0dXJucyBUaGUgY29uc3RydWN0ZWQgVEZpbGUgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RURmlsZSh2YXVsdDogVmF1bHQsIHBhdGg6IHN0cmluZyk6IFRGaWxlIHtcbiAgICByZXR1cm4gbmV3IChURmlsZSBhcyBURmlsZUNvbnN0cnVjdG9yKSh2YXVsdCwgcGF0aCk7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURmlsZSxcbiAgICB0eXBlIFZhdWx0XG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGNvbnN0cnVjdFRGaWxlIH0gZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0VEZpbGUudHMnO1xuaW1wb3J0IHsgY3JlYXRlVEZvbGRlckluc3RhbmNlIH0gZnJvbSAnLi9jcmVhdGVURm9sZGVySW5zdGFuY2UudHMnO1xuaW1wb3J0IHsgcGFyZW50Rm9sZGVyUGF0aCB9IGZyb20gJy4vUGF0aFV0aWxzLnRzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCBwcm9wZXJseSBpbml0aWFsaXplcyB0aGUgaW5zdGFuY2Ugb2YgVEZpbGUgZXZlbiB0aGUgdW5kZXJseWluZyBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmaWxlIG9uIHRoZSBmaWxlIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRGaWxlSW5zdGFuY2UodmF1bHQ6IFZhdWx0LCBwYXRoOiBzdHJpbmcpOiBURmlsZSB7XG4gICAgbGV0IGZpbGUgPSB2YXVsdC5nZXRGaWxlQnlQYXRoKHBhdGgpO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICAgIHJldHVybiBmaWxlO1xuICAgIH1cblxuICAgIGZpbGUgPSBjb25zdHJ1Y3RURmlsZSh2YXVsdCwgcGF0aCk7XG4gICAgZmlsZS5wYXJlbnQgPSBjcmVhdGVURm9sZGVySW5zdGFuY2UodmF1bHQsIHBhcmVudEZvbGRlclBhdGgocGF0aCkpO1xuICAgIGZpbGUuZGVsZXRlZCA9IHRydWU7XG4gICAgcmV0dXJuIGZpbGU7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIFJlZmVyZW5jZSxcbiAgICBSZWZlcmVuY2VDYWNoZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZmVyZW5jZUNhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIFJlZmVyZW5jZUNhY2hlIHtcbiAgICByZXR1cm4gISEocmVmZXJlbmNlIGFzIFBhcnRpYWw8UmVmZXJlbmNlQ2FjaGU+KS5wb3NpdGlvbjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgRW1iZWRDYWNoZSxcbiAgICBSZWZlcmVuY2Vcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHsgaXNSZWZlcmVuY2VDYWNoZSB9IGZyb20gJy4vaXNSZWZlcmVuY2VDYWNoZS50cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtYmVkQ2FjaGUocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgRW1iZWRDYWNoZSB7XG4gICAgcmV0dXJuIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlKSAmJiByZWZlcmVuY2Uub3JpZ2luYWxbMF0gPT09ICchJztcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gICAgUmVmZXJlbmNlXG59IGZyb20gJ29ic2lkaWFuJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgRnJvbnRtYXR0ZXJMaW5rQ2FjaGUge1xuICAgIHJldHVybiAhIShyZWZlcmVuY2UgYXMgUGFydGlhbDxGcm9udG1hdHRlckxpbmtDYWNoZT4pLmtleTtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgTGlua0NhY2hlLFxuICAgIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBpc1JlZmVyZW5jZUNhY2hlIH0gZnJvbSAnLi9pc1JlZmVyZW5jZUNhY2hlLnRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTGlua0NhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIExpbmtDYWNoZSB7XG4gICAgcmV0dXJuIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlKSAmJiByZWZlcmVuY2Uub3JpZ2luYWxbMF0gIT09ICchJztcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxQbHVnaW5zIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0ludGVybmFsUGx1Z2luL0ludGVybmFsUGx1Z2lucy5qcyc7XG5cbnR5cGUgSW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3IgPSBuZXcoYXBwOiBBcHApID0+IEludGVybmFsUGx1Z2lucztcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGEgbmV3IEludGVybmFsUGx1Z2lucyBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFRoZSBjb25zdHJ1Y3RlZCBJbnRlcm5hbFBsdWdpbnMgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RJbnRlcm5hbFBsdWdpbnMoYXBwOiBBcHApOiBJbnRlcm5hbFBsdWdpbnMge1xuICAgIHJldHVybiBuZXcgKGFwcC5pbnRlcm5hbFBsdWdpbnMuY29uc3RydWN0b3IgYXMgSW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3IpKGFwcCk7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsUGx1Z2luIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0ludGVybmFsUGx1Z2luL0ludGVybmFsUGx1Z2luLmpzJztcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxQbHVnaW5zIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0ludGVybmFsUGx1Z2luL0ludGVybmFsUGx1Z2lucy5qcyc7XG5cbnR5cGUgSW50ZXJuYWxQbHVnaW5Db25zdHJ1Y3RvcjxJbnN0YW5jZT4gPSBuZXcoXG4gICAgYXBwOiBBcHAsXG4gICAgaW5zdGFuY2U6IEluc3RhbmNlLFxuICAgIGludGVybmFsUGx1Z2luczogSW50ZXJuYWxQbHVnaW5zXG4pID0+IEludGVybmFsUGx1Z2luPEluc3RhbmNlPjtcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGEgbmV3IEludGVybmFsUGx1Z2luIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGluc3RhbmNlIC0gVGhlIGluc3RhbmNlIG9mIHRoZSBwbHVnaW4uXG4gKiBAcGFyYW0gaW50ZXJuYWxQbHVnaW5zIC0gVGhlIGludGVybmFsIHBsdWdpbnMgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBUaGUgY29uc3RydWN0ZWQgSW50ZXJuYWxQbHVnaW4gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RJbnRlcm5hbFBsdWdpbjxJbnN0YW5jZT4oXG4gICAgYXBwOiBBcHAsXG4gICAgaW5zdGFuY2U6IEluc3RhbmNlLFxuICAgIGludGVybmFsUGx1Z2luczogSW50ZXJuYWxQbHVnaW5zXG4pOiBJbnRlcm5hbFBsdWdpbjxJbnN0YW5jZT4ge1xuICAgIGNvbnN0IGFueVBsdWdpbiA9IE9iamVjdC52YWx1ZXMoYXBwLmludGVybmFsUGx1Z2lucy5wbHVnaW5zKVswXTtcbiAgICBpZiAoIWFueVBsdWdpbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGludGVybmFsIHBsdWdpbiBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IChhbnlQbHVnaW4uY29uc3RydWN0b3IgYXMgSW50ZXJuYWxQbHVnaW5Db25zdHJ1Y3RvcjxJbnN0YW5jZT4pKGFwcCwgaW5zdGFuY2UsIGludGVybmFsUGx1Z2lucyk7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBBcHAsXG4gICAgdHlwZSBEYXRhQWRhcHRlclxufSBmcm9tICdvYnNpZGlhbic7XG5cbnR5cGUgQXBwQ29uc3RydWN0b3IgPSBuZXcoYWRhcHRlcjogRGF0YUFkYXB0ZXIsIGFwcElkOiBzdHJpbmcpID0+IEFwcDtcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGEgbmV3IEFwcCBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gYWRhcHRlciAtIFRoZSBkYXRhIGFkYXB0ZXIgdG8gdXNlLlxuICogQHBhcmFtIGFwcElkIC0gVGhlIElEIG9mIHRoZSBhcHAuXG4gKiBAcmV0dXJucyBUaGUgY29uc3RydWN0ZWQgQXBwIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0QXBwKGFkYXB0ZXI6IERhdGFBZGFwdGVyLCBhcHBJZDogc3RyaW5nKTogQXBwIHtcbiAgICByZXR1cm4gbmV3IChBcHAgYXMgQXBwQ29uc3RydWN0b3IpKGFkYXB0ZXIsIGFwcElkKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQU8sU0FBUyxpQkFBaUIsTUFBc0I7QUFDbkQsU0FBTyxLQUFLLFFBQVEsY0FBYyxFQUFFLEtBQUs7QUFDN0M7OztBQ0ZBLHNCQUdPO0FBV0EsU0FBUyxpQkFBaUIsT0FBYyxNQUF1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
203
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9pbmRleC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNSZWZlcmVuY2VDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNFbWJlZENhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0Zyb250bWF0dGVyTGlua0NhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0xpbmtDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RURm9sZGVyLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2NvbnN0cnVjdEludGVybmFsUGx1Z2lucy50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RJbnRlcm5hbFBsdWdpbi50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RBcHAudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvY29uc3RydWN0VEZpbGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9QYXRoVXRpbHMudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9jcmVhdGVURm9sZGVySW5zdGFuY2UudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9DdXN0b21BcnJheURpY3RJbXBsLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvSW50ZXJuYWxQbHVnaW5OYW1lLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvY3JlYXRlVEZpbGVJbnN0YW5jZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc0VtYmVkQ2FjaGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9UeXBlR3VhcmRzL2lzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9UeXBlR3VhcmRzL2lzUmVmZXJlbmNlQ2FjaGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9UeXBlR3VhcmRzL2lzTGlua0NhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2NvbnN0cnVjdFRGb2xkZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0SW50ZXJuYWxQbHVnaW5zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2NvbnN0cnVjdEludGVybmFsUGx1Z2luLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2NvbnN0cnVjdEFwcC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RURmlsZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1BhdGhVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZVRGb2xkZXJJbnN0YW5jZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0N1c3RvbUFycmF5RGljdEltcGwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9JbnRlcm5hbFBsdWdpbk5hbWUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGVURmlsZUluc3RhbmNlLmpzJztcbmltcG9ydCAnLi4vLi4vaW5kZXguanMnO1xuIiwgImltcG9ydCB0eXBlIHtcbiAgICBSZWZlcmVuY2UsXG4gICAgUmVmZXJlbmNlQ2FjaGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBSZWZlcmVuY2VDYWNoZSB7XG4gICAgcmV0dXJuICEhKHJlZmVyZW5jZSBhcyBQYXJ0aWFsPFJlZmVyZW5jZUNhY2hlPikucG9zaXRpb247XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEVtYmVkQ2FjaGUsXG4gICAgUmVmZXJlbmNlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGlzUmVmZXJlbmNlQ2FjaGUgfSBmcm9tICcuL2lzUmVmZXJlbmNlQ2FjaGUudHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNFbWJlZENhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIEVtYmVkQ2FjaGUge1xuICAgIHJldHVybiBpc1JlZmVyZW5jZUNhY2hlKHJlZmVyZW5jZSkgJiYgcmVmZXJlbmNlLm9yaWdpbmFsWzBdID09PSAnISc7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICAgIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIEZyb250bWF0dGVyTGlua0NhY2hlIHtcbiAgICByZXR1cm4gISEocmVmZXJlbmNlIGFzIFBhcnRpYWw8RnJvbnRtYXR0ZXJMaW5rQ2FjaGU+KS5rZXk7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIExpbmtDYWNoZSxcbiAgICBSZWZlcmVuY2Vcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHsgaXNSZWZlcmVuY2VDYWNoZSB9IGZyb20gJy4vaXNSZWZlcmVuY2VDYWNoZS50cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xpbmtDYWNoZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBMaW5rQ2FjaGUge1xuICAgIHJldHVybiBpc1JlZmVyZW5jZUNhY2hlKHJlZmVyZW5jZSkgJiYgcmVmZXJlbmNlLm9yaWdpbmFsWzBdICE9PSAnISc7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURm9sZGVyLFxuICAgIHR5cGUgVmF1bHRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG50eXBlIFRGb2xkZXJDb25zdHJ1Y3RvciA9IG5ldyh2YXVsdDogVmF1bHQsIHBhdGg6IHN0cmluZykgPT4gVEZvbGRlcjtcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGEgbmV3IFRGb2xkZXIgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIHZhdWx0IC0gVGhlIHZhdWx0IHRvIHdoaWNoIHRoZSBmb2xkZXIgYmVsb25ncy5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZvbGRlci5cbiAqIEByZXR1cm5zIFRoZSBjb25zdHJ1Y3RlZCBURm9sZGVyIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0VEZvbGRlcih2YXVsdDogVmF1bHQsIHBhdGg6IHN0cmluZyk6IFRGb2xkZXIge1xuICAgIHJldHVybiBuZXcgKFRGb2xkZXIgYXMgVEZvbGRlckNvbnN0cnVjdG9yKSh2YXVsdCwgcGF0aCk7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsUGx1Z2lucyB9IGZyb20gJy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbi9JbnRlcm5hbFBsdWdpbnMuanMnO1xuXG50eXBlIEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yID0gbmV3KGFwcDogQXBwKSA9PiBJbnRlcm5hbFBsdWdpbnM7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBJbnRlcm5hbFBsdWdpbnMgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBUaGUgY29uc3RydWN0ZWQgSW50ZXJuYWxQbHVnaW5zIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0SW50ZXJuYWxQbHVnaW5zKGFwcDogQXBwKTogSW50ZXJuYWxQbHVnaW5zIHtcbiAgICByZXR1cm4gbmV3IChhcHAuaW50ZXJuYWxQbHVnaW5zLmNvbnN0cnVjdG9yIGFzIEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yKShhcHApO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbFBsdWdpbiB9IGZyb20gJy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbi9JbnRlcm5hbFBsdWdpbi5qcyc7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsUGx1Z2lucyB9IGZyb20gJy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbi9JbnRlcm5hbFBsdWdpbnMuanMnO1xuXG50eXBlIEludGVybmFsUGx1Z2luQ29uc3RydWN0b3I8SW5zdGFuY2U+ID0gbmV3KFxuICAgIGFwcDogQXBwLFxuICAgIGluc3RhbmNlOiBJbnN0YW5jZSxcbiAgICBpbnRlcm5hbFBsdWdpbnM6IEludGVybmFsUGx1Z2luc1xuKSA9PiBJbnRlcm5hbFBsdWdpbjxJbnN0YW5jZT47XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBJbnRlcm5hbFBsdWdpbiBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBpbnN0YW5jZSAtIFRoZSBpbnN0YW5jZSBvZiB0aGUgcGx1Z2luLlxuICogQHBhcmFtIGludGVybmFsUGx1Z2lucyAtIFRoZSBpbnRlcm5hbCBwbHVnaW5zIGluc3RhbmNlLlxuICogQHJldHVybnMgVGhlIGNvbnN0cnVjdGVkIEludGVybmFsUGx1Z2luIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0SW50ZXJuYWxQbHVnaW48SW5zdGFuY2U+KFxuICAgIGFwcDogQXBwLFxuICAgIGluc3RhbmNlOiBJbnN0YW5jZSxcbiAgICBpbnRlcm5hbFBsdWdpbnM6IEludGVybmFsUGx1Z2luc1xuKTogSW50ZXJuYWxQbHVnaW48SW5zdGFuY2U+IHtcbiAgICBjb25zdCBhbnlQbHVnaW4gPSBPYmplY3QudmFsdWVzKGFwcC5pbnRlcm5hbFBsdWdpbnMucGx1Z2lucylbMF07XG4gICAgaWYgKCFhbnlQbHVnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnRlcm5hbCBwbHVnaW4gZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyAoYW55UGx1Z2luLmNvbnN0cnVjdG9yIGFzIEludGVybmFsUGx1Z2luQ29uc3RydWN0b3I8SW5zdGFuY2U+KShhcHAsIGluc3RhbmNlLCBpbnRlcm5hbFBsdWdpbnMpO1xufVxuIiwgImltcG9ydCB7XG4gICAgQXBwLFxuICAgIHR5cGUgRGF0YUFkYXB0ZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG50eXBlIEFwcENvbnN0cnVjdG9yID0gbmV3KGFkYXB0ZXI6IERhdGFBZGFwdGVyLCBhcHBJZDogc3RyaW5nKSA9PiBBcHA7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBBcHAgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIGFkYXB0ZXIgLSBUaGUgZGF0YSBhZGFwdGVyIHRvIHVzZS5cbiAqIEBwYXJhbSBhcHBJZCAtIFRoZSBJRCBvZiB0aGUgYXBwLlxuICogQHJldHVybnMgVGhlIGNvbnN0cnVjdGVkIEFwcCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdEFwcChhZGFwdGVyOiBEYXRhQWRhcHRlciwgYXBwSWQ6IHN0cmluZyk6IEFwcCB7XG4gICAgcmV0dXJuIG5ldyAoQXBwIGFzIEFwcENvbnN0cnVjdG9yKShhZGFwdGVyLCBhcHBJZCk7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURmlsZSxcbiAgICB0eXBlIFZhdWx0XG59IGZyb20gJ29ic2lkaWFuJztcblxudHlwZSBURmlsZUNvbnN0cnVjdG9yID0gbmV3KHZhdWx0OiBWYXVsdCwgcGF0aDogc3RyaW5nKSA9PiBURmlsZTtcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGEgbmV3IFRGaWxlIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB2YXVsdCAtIFRoZSB2YXVsdCB0byB3aGljaCB0aGUgZmlsZSBiZWxvbmdzLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZmlsZS5cbiAqIEByZXR1cm5zIFRoZSBjb25zdHJ1Y3RlZCBURmlsZSBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdFRGaWxlKHZhdWx0OiBWYXVsdCwgcGF0aDogc3RyaW5nKTogVEZpbGUge1xuICAgIHJldHVybiBuZXcgKFRGaWxlIGFzIFRGaWxlQ29uc3RydWN0b3IpKHZhdWx0LCBwYXRoKTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gcGFyZW50Rm9sZGVyUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcLz9bXlxcL10qJC8sICcnKSB8fCAnLyc7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURm9sZGVyLFxuICAgIHR5cGUgVmF1bHRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHsgY29uc3RydWN0VEZvbGRlciB9IGZyb20gJy4vQ29uc3RydWN0b3JzL2NvbnN0cnVjdFRGb2xkZXIudHMnO1xuaW1wb3J0IHsgcGFyZW50Rm9sZGVyUGF0aCB9IGZyb20gJy4vUGF0aFV0aWxzLnRzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCBwcm9wZXJseSBpbml0aWFsaXplcyB0aGUgaW5zdGFuY2Ugb2YgVEZvbGRlciBldmVuIHRoZSB1bmRlcmx5aW5nIGZvbGRlciBkb2VzIG5vdCBleGlzdC5cbiAqIFRoaXMgZG9lc24ndCBjcmVhdGUgdGhlIG1pc3NpbmcgZm9sZGVyIG9uIHRoZSBmaWxlIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRGb2xkZXJJbnN0YW5jZSh2YXVsdDogVmF1bHQsIHBhdGg6IHN0cmluZyk6IFRGb2xkZXIge1xuICAgIGxldCBmb2xkZXIgPSB2YXVsdC5nZXRGb2xkZXJCeVBhdGgocGF0aCk7XG4gICAgaWYgKGZvbGRlcikge1xuICAgICAgICByZXR1cm4gZm9sZGVyO1xuICAgIH1cblxuICAgIGZvbGRlciA9IGNvbnN0cnVjdFRGb2xkZXIodmF1bHQsIHBhdGgpO1xuICAgIGZvbGRlci5wYXJlbnQgPSBjcmVhdGVURm9sZGVySW5zdGFuY2UodmF1bHQsIHBhcmVudEZvbGRlclBhdGgocGF0aCkpO1xuICAgIGZvbGRlci5kZWxldGVkID0gdHJ1ZTtcbiAgICByZXR1cm4gZm9sZGVyO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQ3VzdG9tQXJyYXlEaWN0IH0gZnJvbSAnLi4vaW50ZXJuYWxzL0N1c3RvbUFycmF5RGljdC5qcyc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21BcnJheURpY3RJbXBsPFQ+IGltcGxlbWVudHMgQ3VzdG9tQXJyYXlEaWN0PFQ+IHtcbiAgICBwdWJsaWMgZGF0YTogTWFwPHN0cmluZywgVFtdPiA9IG5ldyBNYXAoKTtcblxuICAgIHB1YmxpYyBhZGQoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGxldCB2YWx1ZXMgPSB0aGlzLmdldChrZXkpO1xuICAgICAgICBpZiAoIXZhbHVlcykge1xuICAgICAgICAgICAgdmFsdWVzID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEuc2V0KGtleSwgdmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWVzLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMucmVtb3ZlKHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcihrZXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IFRbXSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmdldChrZXkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGtleXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRhdGEua2V5cygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRhaW5zKGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmdldChrZXkpPy5jb250YWlucyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIGxldCBhbnMgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmtleXMoKSkge1xuICAgICAgICAgICAgYW5zICs9IHRoaXMuZ2V0KGtleSk/Lmxlbmd0aCA/PyAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFucztcbiAgICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IEludGVybmFsUGx1Z2luTmFtZSA9IHtcbiAgICBBdWRpb1JlY29yZGVyOiAnYXVkaW8tcmVjb3JkZXInLFxuICAgIEJhY2tsaW5rOiAnYmFja2xpbmsnLFxuICAgIEJvb2ttYXJrczogJ2Jvb2ttYXJrcycsXG4gICAgQ2FudmFzOiAnY2FudmFzJyxcbiAgICBDb21tYW5kUGFsZXR0ZTogJ2NvbW1hbmQtcGFsZXR0ZScsXG4gICAgRGFpbHlOb3RlczogJ2RhaWx5LW5vdGVzJyxcbiAgICBFZGl0b3JTdGF0dXM6ICdlZGl0b3Itc3RhdHVzJyxcbiAgICBGaWxlRXhwbG9yZXI6ICdmaWxlLWV4cGxvcmVyJyxcbiAgICBGaWxlUmVjb3Zlcnk6ICdmaWxlLXJlY292ZXJ5JyxcbiAgICBHbG9iYWxTZWFyY2g6ICdnbG9iYWwtc2VhcmNoJyxcbiAgICBHcmFwaDogJ2dyYXBoJyxcbiAgICBNYXJrZG93bkltcG9ydGVyOiAnbWFya2Rvd24taW1wb3J0ZXInLFxuICAgIE5vdGVDb21wb3NlcjogJ25vdGUtY29tcG9zZXInLFxuICAgIE91dGdvaW5nTGluazogJ291dGdvaW5nLWxpbmsnLFxuICAgIE91dGxpbmU6ICdvdXRsaW5lJyxcbiAgICBQYWdlUHJldmlldzogJ3BhZ2UtcHJldmlldycsXG4gICAgUHJvcGVydGllczogJ3Byb3BlcnRpZXMnLFxuICAgIFB1Ymxpc2g6ICdwdWJsaXNoJyxcbiAgICBSYW5kb21Ob3RlOiAncmFuZG9tLW5vdGUnLFxuICAgIFNsYXNoQ29tbWFuZDogJ3NsYXNoLWNvbW1hbmQnLFxuICAgIFNsaWRlczogJ3NsaWRlcycsXG4gICAgU3dpdGNoZXI6ICdzd2l0Y2hlcicsXG4gICAgU3luYzogJ3N5bmMnLFxuICAgIFRhZ1BhbmU6ICd0YWctcGFuZScsXG4gICAgVGVtcGxhdGVzOiAndGVtcGxhdGVzJyxcbiAgICBXb3JkQ291bnQ6ICd3b3JkLWNvdW50JyxcbiAgICBXb3Jrc3BhY2VzOiAnd29ya3NwYWNlcycsXG4gICAgWmtQcmVmaXhlcjogJ3prLXByZWZpeGVyJ1xufSBhcyBjb25zdDtcbiIsICJpbXBvcnQge1xuICAgIFRGaWxlLFxuICAgIHR5cGUgVmF1bHRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHsgY29uc3RydWN0VEZpbGUgfSBmcm9tICcuL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RURmlsZS50cyc7XG5pbXBvcnQgeyBjcmVhdGVURm9sZGVySW5zdGFuY2UgfSBmcm9tICcuL2NyZWF0ZVRGb2xkZXJJbnN0YW5jZS50cyc7XG5pbXBvcnQgeyBwYXJlbnRGb2xkZXJQYXRoIH0gZnJvbSAnLi9QYXRoVXRpbHMudHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHByb3Blcmx5IGluaXRpYWxpemVzIHRoZSBpbnN0YW5jZSBvZiBURmlsZSBldmVuIHRoZSB1bmRlcmx5aW5nIGZpbGUgZG9lcyBub3QgZXhpc3QuXG4gKiBUaGlzIGRvZXNuJ3QgY3JlYXRlIHRoZSBtaXNzaW5nIGZpbGUgb24gdGhlIGZpbGUgc3lzdGVtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVEZpbGVJbnN0YW5jZSh2YXVsdDogVmF1bHQsIHBhdGg6IHN0cmluZyk6IFRGaWxlIHtcbiAgICBsZXQgZmlsZSA9IHZhdWx0LmdldEZpbGVCeVBhdGgocGF0aCk7XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgfVxuXG4gICAgZmlsZSA9IGNvbnN0cnVjdFRGaWxlKHZhdWx0LCBwYXRoKTtcbiAgICBmaWxlLnBhcmVudCA9IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZSh2YXVsdCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG4gICAgZmlsZS5kZWxldGVkID0gdHJ1ZTtcbiAgICByZXR1cm4gZmlsZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDS08sU0FBUyxpQkFBaUIsV0FBbUQ7QUFDaEYsU0FBTyxDQUFDLENBQUUsVUFBc0M7QUFDcEQ7OztBQ0RPLFNBQVMsYUFBYSxXQUErQztBQUN4RSxTQUFPLGlCQUFpQixTQUFTLEtB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
@@ -4,73 +4,8 @@ import { Extension } from '@codemirror/state';
4
4
  import { EditorView, ViewUpdate } from '@codemirror/view';
5
5
  import { App, CachedMetadata, CloseableComponent, Command, Component, DataAdapter, Debouncer, Editor, EditorPosition, EditorRange, EditorSuggest, EmbedCache, Events, FileStats, FileView, FrontmatterLinkCache, HoverLinkSource, HoverPopover, IconName, ItemView, KeymapInfo, LinkCache, Loc, MarkdownFileInfo, MarkdownView, Menu, Modal, PaneType, Plugin as Plugin$1, PluginManifest, PluginSettingTab, Reference, ReferenceCache, Scope, SearchComponent, SearchResult, SettingTab, SplitDirection, TAbstractFile, TFile, TFolder, TextFileView, Vault, View, ViewCreator, ViewState, Workspace, WorkspaceLeaf, WorkspaceTabs } from 'obsidian';
6
6
 
7
- export declare function parentFolderPath(path: string): string;
8
7
  export type StyleModule = {};
9
8
  export type StyleSpec = {};
10
- /**
11
- * Creates and properly initializes the instance of TFolder even the underlying folder does not exist.
12
- * This doesn't create the missing folder on the file system.
13
- */
14
- export declare function createTFolderInstance(vault: Vault, path: string): TFolder;
15
- /** @todo Documentation incomplete */
16
- /** @public */
17
- export interface CustomArrayDict<T> {
18
- data: Map<string, T[]>;
19
- add(key: string, value: T): void;
20
- clear(key: string): void;
21
- clearAll(): void;
22
- contains(key: string, value: T): boolean;
23
- count(): number;
24
- get(key: string): T[] | null;
25
- keys(): string[];
26
- remove(key: string, value: T): void;
27
- }
28
- export declare class CustomArrayDictImpl<T> implements CustomArrayDict<T> {
29
- data: Map<string, T[]>;
30
- add(key: string, value: T): void;
31
- remove(key: string, value: T): void;
32
- get(key: string): T[] | null;
33
- keys(): string[];
34
- clear(key: string): void;
35
- clearAll(): void;
36
- contains(key: string, value: T): boolean;
37
- count(): number;
38
- }
39
- export declare const InternalPluginName: {
40
- readonly AudioRecorder: "audio-recorder";
41
- readonly Backlink: "backlink";
42
- readonly Bookmarks: "bookmarks";
43
- readonly Canvas: "canvas";
44
- readonly CommandPalette: "command-palette";
45
- readonly DailyNotes: "daily-notes";
46
- readonly EditorStatus: "editor-status";
47
- readonly FileExplorer: "file-explorer";
48
- readonly FileRecovery: "file-recovery";
49
- readonly GlobalSearch: "global-search";
50
- readonly Graph: "graph";
51
- readonly MarkdownImporter: "markdown-importer";
52
- readonly NoteComposer: "note-composer";
53
- readonly OutgoingLink: "outgoing-link";
54
- readonly Outline: "outline";
55
- readonly PagePreview: "page-preview";
56
- readonly Properties: "properties";
57
- readonly Publish: "publish";
58
- readonly RandomNote: "random-note";
59
- readonly SlashCommand: "slash-command";
60
- readonly Slides: "slides";
61
- readonly Switcher: "switcher";
62
- readonly Sync: "sync";
63
- readonly TagPane: "tag-pane";
64
- readonly Templates: "templates";
65
- readonly WordCount: "word-count";
66
- readonly Workspaces: "workspaces";
67
- readonly ZkPrefixer: "zk-prefixer";
68
- };
69
- /**
70
- * Creates and properly initializes the instance of TFile even the underlying file does not exist.
71
- * This doesn't create the missing file on the file system.
72
- */
73
- export declare function createTFileInstance(vault: Vault, path: string): TFile;
74
9
  export declare function isEmbedCache(reference: Reference): reference is EmbedCache;
75
10
  export declare function isFrontmatterLinkCache(reference: Reference): reference is FrontmatterLinkCache;
76
11
  export declare function isReferenceCache(reference: Reference): reference is ReferenceCache;
@@ -164,6 +99,9 @@ export interface InfoFileView extends FileView {
164
99
  /** @todo Documentation incomplete */
165
100
  /** @public */
166
101
  export interface BacklinkView extends InfoFileView {
102
+ backlink: {
103
+ recomputeBacklink: (backlinkFile: TFile) => void;
104
+ };
167
105
  /**
168
106
  * Get the current view type
169
107
  */
@@ -464,7 +402,7 @@ export interface GraphPluginInstance extends InternalPluginInstance<GraphPlugin>
464
402
  defaultOn: boolean;
465
403
  plugin: GraphPlugin;
466
404
  }
467
- declare const InternalPluginName$1: {
405
+ declare const InternalPluginName: {
468
406
  readonly AudioRecorder: "audio-recorder";
469
407
  readonly Backlink: "backlink";
470
408
  readonly Bookmarks: "bookmarks";
@@ -635,68 +573,68 @@ export interface ZkPrefixerPluginInstance extends InternalPluginInstance<ZkPrefi
635
573
  }
636
574
  /** @public */
637
575
  export type InternalPluginNameInstancesMapping = {
638
- [InternalPluginName$1.AudioRecorder]: AudioRecorderPluginInstance;
639
- [InternalPluginName$1.Backlink]: BacklinkPluginInstance;
640
- [InternalPluginName$1.Bookmarks]: BookmarksPluginInstance;
641
- [InternalPluginName$1.Canvas]: CanvasPluginInstance;
642
- [InternalPluginName$1.CommandPalette]: CommandPalettePluginInstance;
643
- [InternalPluginName$1.DailyNotes]: DailyNotesPluginInstance;
644
- [InternalPluginName$1.EditorStatus]: EditorStatusPluginInstance;
645
- [InternalPluginName$1.FileExplorer]: FileExplorerPluginInstance;
646
- [InternalPluginName$1.FileRecovery]: FileRecoveryPluginInstance;
647
- [InternalPluginName$1.GlobalSearch]: GlobalSearchPluginInstance;
648
- [InternalPluginName$1.Graph]: GraphPluginInstance;
649
- [InternalPluginName$1.MarkdownImporter]: MarkdownImporterPluginInstance;
650
- [InternalPluginName$1.NoteComposer]: NoteComposerPluginInstance;
651
- [InternalPluginName$1.OutgoingLink]: OutgoingLinkPluginInstance;
652
- [InternalPluginName$1.Outline]: OutlinePluginInstance;
653
- [InternalPluginName$1.PagePreview]: PagePreviewPluginInstance;
654
- [InternalPluginName$1.Properties]: PropertiesPluginInstance;
655
- [InternalPluginName$1.Publish]: PublishPluginInstance;
656
- [InternalPluginName$1.RandomNote]: RandomNotePluginInstance;
657
- [InternalPluginName$1.SlashCommand]: SlashCommandPluginInstance;
658
- [InternalPluginName$1.Slides]: SlidesPluginInstance;
659
- [InternalPluginName$1.Switcher]: SwitcherPluginInstance;
660
- [InternalPluginName$1.Sync]: SyncPluginInstance;
661
- [InternalPluginName$1.TagPane]: TagPanePluginInstance;
662
- [InternalPluginName$1.Templates]: TemplatesPluginInstance;
663
- [InternalPluginName$1.WordCount]: WordCountPluginInstance;
664
- [InternalPluginName$1.Workspaces]: WorkspacesPluginInstance;
665
- [InternalPluginName$1.ZkPrefixer]: ZkPrefixerPluginInstance;
576
+ [InternalPluginName.AudioRecorder]: AudioRecorderPluginInstance;
577
+ [InternalPluginName.Backlink]: BacklinkPluginInstance;
578
+ [InternalPluginName.Bookmarks]: BookmarksPluginInstance;
579
+ [InternalPluginName.Canvas]: CanvasPluginInstance;
580
+ [InternalPluginName.CommandPalette]: CommandPalettePluginInstance;
581
+ [InternalPluginName.DailyNotes]: DailyNotesPluginInstance;
582
+ [InternalPluginName.EditorStatus]: EditorStatusPluginInstance;
583
+ [InternalPluginName.FileExplorer]: FileExplorerPluginInstance;
584
+ [InternalPluginName.FileRecovery]: FileRecoveryPluginInstance;
585
+ [InternalPluginName.GlobalSearch]: GlobalSearchPluginInstance;
586
+ [InternalPluginName.Graph]: GraphPluginInstance;
587
+ [InternalPluginName.MarkdownImporter]: MarkdownImporterPluginInstance;
588
+ [InternalPluginName.NoteComposer]: NoteComposerPluginInstance;
589
+ [InternalPluginName.OutgoingLink]: OutgoingLinkPluginInstance;
590
+ [InternalPluginName.Outline]: OutlinePluginInstance;
591
+ [InternalPluginName.PagePreview]: PagePreviewPluginInstance;
592
+ [InternalPluginName.Properties]: PropertiesPluginInstance;
593
+ [InternalPluginName.Publish]: PublishPluginInstance;
594
+ [InternalPluginName.RandomNote]: RandomNotePluginInstance;
595
+ [InternalPluginName.SlashCommand]: SlashCommandPluginInstance;
596
+ [InternalPluginName.Slides]: SlidesPluginInstance;
597
+ [InternalPluginName.Switcher]: SwitcherPluginInstance;
598
+ [InternalPluginName.Sync]: SyncPluginInstance;
599
+ [InternalPluginName.TagPane]: TagPanePluginInstance;
600
+ [InternalPluginName.Templates]: TemplatesPluginInstance;
601
+ [InternalPluginName.WordCount]: WordCountPluginInstance;
602
+ [InternalPluginName.Workspaces]: WorkspacesPluginInstance;
603
+ [InternalPluginName.ZkPrefixer]: ZkPrefixerPluginInstance;
666
604
  };
667
605
  /** @public */
668
606
  export type InternalPluginNamePluginsMapping = {
669
- [InternalPluginName$1.AudioRecorder]: AudioRecorderPlugin;
670
- [InternalPluginName$1.Backlink]: BacklinkPlugin;
671
- [InternalPluginName$1.Bookmarks]: BookmarksPlugin;
672
- [InternalPluginName$1.Canvas]: CanvasPlugin;
673
- [InternalPluginName$1.CommandPalette]: CommandPalettePlugin;
674
- [InternalPluginName$1.DailyNotes]: DailyNotesPlugin;
675
- [InternalPluginName$1.EditorStatus]: EditorStatusPlugin;
676
- [InternalPluginName$1.FileExplorer]: FileExplorerPlugin;
677
- [InternalPluginName$1.FileRecovery]: FileRecoveryPlugin;
678
- [InternalPluginName$1.GlobalSearch]: GlobalSearchPlugin;
679
- [InternalPluginName$1.Graph]: GraphPlugin;
680
- [InternalPluginName$1.MarkdownImporter]: MarkdownImporterPlugin;
681
- [InternalPluginName$1.NoteComposer]: NoteComposerPlugin;
682
- [InternalPluginName$1.OutgoingLink]: OutgoingLinkPlugin;
683
- [InternalPluginName$1.Outline]: OutlinePlugin;
684
- [InternalPluginName$1.PagePreview]: PagePreviewPlugin;
685
- [InternalPluginName$1.Properties]: PropertiesPlugin;
686
- [InternalPluginName$1.Publish]: PublishPlugin;
687
- [InternalPluginName$1.RandomNote]: RandomNotePlugin;
688
- [InternalPluginName$1.SlashCommand]: SlashCommandPlugin;
689
- [InternalPluginName$1.Slides]: SlidesPlugin;
690
- [InternalPluginName$1.Switcher]: SwitcherPlugin;
691
- [InternalPluginName$1.Sync]: SyncPlugin;
692
- [InternalPluginName$1.TagPane]: TagPanePlugin;
693
- [InternalPluginName$1.Templates]: TemplatesPlugin;
694
- [InternalPluginName$1.WordCount]: WordCountPlugin;
695
- [InternalPluginName$1.Workspaces]: WorkspacesPlugin;
696
- [InternalPluginName$1.ZkPrefixer]: ZkPrefixerPlugin;
607
+ [InternalPluginName.AudioRecorder]: AudioRecorderPlugin;
608
+ [InternalPluginName.Backlink]: BacklinkPlugin;
609
+ [InternalPluginName.Bookmarks]: BookmarksPlugin;
610
+ [InternalPluginName.Canvas]: CanvasPlugin;
611
+ [InternalPluginName.CommandPalette]: CommandPalettePlugin;
612
+ [InternalPluginName.DailyNotes]: DailyNotesPlugin;
613
+ [InternalPluginName.EditorStatus]: EditorStatusPlugin;
614
+ [InternalPluginName.FileExplorer]: FileExplorerPlugin;
615
+ [InternalPluginName.FileRecovery]: FileRecoveryPlugin;
616
+ [InternalPluginName.GlobalSearch]: GlobalSearchPlugin;
617
+ [InternalPluginName.Graph]: GraphPlugin;
618
+ [InternalPluginName.MarkdownImporter]: MarkdownImporterPlugin;
619
+ [InternalPluginName.NoteComposer]: NoteComposerPlugin;
620
+ [InternalPluginName.OutgoingLink]: OutgoingLinkPlugin;
621
+ [InternalPluginName.Outline]: OutlinePlugin;
622
+ [InternalPluginName.PagePreview]: PagePreviewPlugin;
623
+ [InternalPluginName.Properties]: PropertiesPlugin;
624
+ [InternalPluginName.Publish]: PublishPlugin;
625
+ [InternalPluginName.RandomNote]: RandomNotePlugin;
626
+ [InternalPluginName.SlashCommand]: SlashCommandPlugin;
627
+ [InternalPluginName.Slides]: SlidesPlugin;
628
+ [InternalPluginName.Switcher]: SwitcherPlugin;
629
+ [InternalPluginName.Sync]: SyncPlugin;
630
+ [InternalPluginName.TagPane]: TagPanePlugin;
631
+ [InternalPluginName.Templates]: TemplatesPlugin;
632
+ [InternalPluginName.WordCount]: WordCountPlugin;
633
+ [InternalPluginName.Workspaces]: WorkspacesPlugin;
634
+ [InternalPluginName.ZkPrefixer]: ZkPrefixerPlugin;
697
635
  };
698
636
  /** @public */
699
- export type InternalPluginNameType = (typeof InternalPluginName$1)[keyof typeof InternalPluginName$1];
637
+ export type InternalPluginNameType = (typeof InternalPluginName)[keyof typeof InternalPluginName];
700
638
  /** @public */
701
639
  export interface InternalPluginsConfigRecord extends Record<InternalPluginNameType, boolean> {
702
640
  }
@@ -778,6 +716,71 @@ export declare function constructApp(adapter: DataAdapter, appId: string): App;
778
716
  * @returns The constructed TFile instance.
779
717
  */
780
718
  export declare function constructTFile(vault: Vault, path: string): TFile;
719
+ export declare function parentFolderPath(path: string): string;
720
+ /**
721
+ * Creates and properly initializes the instance of TFolder even the underlying folder does not exist.
722
+ * This doesn't create the missing folder on the file system.
723
+ */
724
+ export declare function createTFolderInstance(vault: Vault, path: string): TFolder;
725
+ /** @todo Documentation incomplete */
726
+ /** @public */
727
+ export interface CustomArrayDict<T> {
728
+ data: Map<string, T[]>;
729
+ add(key: string, value: T): void;
730
+ clear(key: string): void;
731
+ clearAll(): void;
732
+ contains(key: string, value: T): boolean;
733
+ count(): number;
734
+ get(key: string): T[] | null;
735
+ keys(): string[];
736
+ remove(key: string, value: T): void;
737
+ }
738
+ export declare class CustomArrayDictImpl<T> implements CustomArrayDict<T> {
739
+ data: Map<string, T[]>;
740
+ add(key: string, value: T): void;
741
+ remove(key: string, value: T): void;
742
+ get(key: string): T[] | null;
743
+ keys(): string[];
744
+ clear(key: string): void;
745
+ clearAll(): void;
746
+ contains(key: string, value: T): boolean;
747
+ count(): number;
748
+ }
749
+ declare const InternalPluginName$1: {
750
+ readonly AudioRecorder: "audio-recorder";
751
+ readonly Backlink: "backlink";
752
+ readonly Bookmarks: "bookmarks";
753
+ readonly Canvas: "canvas";
754
+ readonly CommandPalette: "command-palette";
755
+ readonly DailyNotes: "daily-notes";
756
+ readonly EditorStatus: "editor-status";
757
+ readonly FileExplorer: "file-explorer";
758
+ readonly FileRecovery: "file-recovery";
759
+ readonly GlobalSearch: "global-search";
760
+ readonly Graph: "graph";
761
+ readonly MarkdownImporter: "markdown-importer";
762
+ readonly NoteComposer: "note-composer";
763
+ readonly OutgoingLink: "outgoing-link";
764
+ readonly Outline: "outline";
765
+ readonly PagePreview: "page-preview";
766
+ readonly Properties: "properties";
767
+ readonly Publish: "publish";
768
+ readonly RandomNote: "random-note";
769
+ readonly SlashCommand: "slash-command";
770
+ readonly Slides: "slides";
771
+ readonly Switcher: "switcher";
772
+ readonly Sync: "sync";
773
+ readonly TagPane: "tag-pane";
774
+ readonly Templates: "templates";
775
+ readonly WordCount: "word-count";
776
+ readonly Workspaces: "workspaces";
777
+ readonly ZkPrefixer: "zk-prefixer";
778
+ };
779
+ /**
780
+ * Creates and properly initializes the instance of TFile even the underlying file does not exist.
781
+ * This doesn't create the missing file on the file system.
782
+ */
783
+ export declare function createTFileInstance(vault: Vault, path: string): TFile;
781
784
  /** @public */
782
785
  export interface EditorViewState {
783
786
  printing: boolean;
@@ -2028,7 +2031,7 @@ export interface PropertyWidget<T> {
2028
2031
  * @todo Documentation incomplete
2029
2032
  */
2030
2033
  /** @public */
2031
- export type PropertyWidgetType = "aliases" | "checkbox" | "date" | "datetime" | "multitext" | "number" | "tags" | "text" | (string & any);
2034
+ export type PropertyWidgetType = "aliases" | "checkbox" | "date" | "datetime" | "multitext" | "number" | "tags" | "text" | string;
2032
2035
  /** @public */
2033
2036
  export interface MetadataTypeManagerPropertiesRecord extends Record<string, PropertyInfo> {
2034
2037
  }
@@ -2036,7 +2039,12 @@ export interface MetadataTypeManagerPropertiesRecord extends Record<string, Prop
2036
2039
  export interface MetadataTypeManagerRegisteredTypeWidgetsRecord extends Record<PropertyWidgetType, PropertyWidget<unknown>> {
2037
2040
  }
2038
2041
  /** @public */
2039
- export interface MetadataTypeManagerTypesRecord extends Record<string, PropertyWidgetType> {
2042
+ export interface PropertyWidgetEntry {
2043
+ name: string;
2044
+ type: PropertyWidgetType;
2045
+ }
2046
+ /** @public */
2047
+ export interface MetadataTypeManagerTypesRecord extends Record<string, PropertyWidgetEntry> {
2040
2048
  }
2041
2049
  /** @public */
2042
2050
  export interface MetadataTypeManager extends Events {
@@ -3891,4 +3899,8 @@ export interface SerializedWorkspaceSidedock extends SerializedWorkspaceItem {
3891
3899
  width: number;
3892
3900
  }
3893
3901
 
3902
+ export {
3903
+ InternalPluginName$1 as InternalPluginName,
3904
+ };
3905
+
3894
3906
  export {};
@@ -5068,6 +5068,42 @@
5068
5068
  "name": "BacklinkView",
5069
5069
  "preserveMemberOrder": false,
5070
5070
  "members": [
5071
+ {
5072
+ "kind": "PropertySignature",
5073
+ "canonicalReference": "obsidian-typings!BacklinkView#backlink:member",
5074
+ "docComment": "",
5075
+ "excerptTokens": [
5076
+ {
5077
+ "kind": "Content",
5078
+ "text": "backlink: "
5079
+ },
5080
+ {
5081
+ "kind": "Content",
5082
+ "text": "{\n recomputeBacklink: (backlinkFile: "
5083
+ },
5084
+ {
5085
+ "kind": "Reference",
5086
+ "text": "TFile",
5087
+ "canonicalReference": "obsidian!TFile:class"
5088
+ },
5089
+ {
5090
+ "kind": "Content",
5091
+ "text": ") => void;\n }"
5092
+ },
5093
+ {
5094
+ "kind": "Content",
5095
+ "text": ";"
5096
+ }
5097
+ ],
5098
+ "isReadonly": false,
5099
+ "isOptional": false,
5100
+ "releaseTag": "Public",
5101
+ "name": "backlink",
5102
+ "propertyTypeTokenRange": {
5103
+ "startIndex": 1,
5104
+ "endIndex": 4
5105
+ }
5106
+ },
5071
5107
  {
5072
5108
  "kind": "MethodSignature",
5073
5109
  "canonicalReference": "obsidian-typings!BacklinkView#getViewType:member(1)",
@@ -45566,8 +45602,8 @@
45566
45602
  },
45567
45603
  {
45568
45604
  "kind": "Reference",
45569
- "text": "PropertyWidgetType",
45570
- "canonicalReference": "obsidian-typings!PropertyWidgetType:type"
45605
+ "text": "PropertyWidgetEntry",
45606
+ "canonicalReference": "obsidian-typings!PropertyWidgetEntry:interface"
45571
45607
  },
45572
45608
  {
45573
45609
  "kind": "Content",
@@ -50702,6 +50738,79 @@
50702
50738
  ],
50703
50739
  "extendsTokenRanges": []
50704
50740
  },
50741
+ {
50742
+ "kind": "Interface",
50743
+ "canonicalReference": "obsidian-typings!PropertyWidgetEntry:interface",
50744
+ "docComment": "/**\n * @public\n */\n",
50745
+ "excerptTokens": [
50746
+ {
50747
+ "kind": "Content",
50748
+ "text": "export interface PropertyWidgetEntry "
50749
+ }
50750
+ ],
50751
+ "fileUrlPath": "src/obsidian/internals/PropertyWidgetEntry.d.ts",
50752
+ "releaseTag": "Public",
50753
+ "name": "PropertyWidgetEntry",
50754
+ "preserveMemberOrder": false,
50755
+ "members": [
50756
+ {
50757
+ "kind": "PropertySignature",
50758
+ "canonicalReference": "obsidian-typings!PropertyWidgetEntry#name:member",
50759
+ "docComment": "",
50760
+ "excerptTokens": [
50761
+ {
50762
+ "kind": "Content",
50763
+ "text": "name: "
50764
+ },
50765
+ {
50766
+ "kind": "Content",
50767
+ "text": "string"
50768
+ },
50769
+ {
50770
+ "kind": "Content",
50771
+ "text": ";"
50772
+ }
50773
+ ],
50774
+ "isReadonly": false,
50775
+ "isOptional": false,
50776
+ "releaseTag": "Public",
50777
+ "name": "name",
50778
+ "propertyTypeTokenRange": {
50779
+ "startIndex": 1,
50780
+ "endIndex": 2
50781
+ }
50782
+ },
50783
+ {
50784
+ "kind": "PropertySignature",
50785
+ "canonicalReference": "obsidian-typings!PropertyWidgetEntry#type:member",
50786
+ "docComment": "",
50787
+ "excerptTokens": [
50788
+ {
50789
+ "kind": "Content",
50790
+ "text": "type: "
50791
+ },
50792
+ {
50793
+ "kind": "Reference",
50794
+ "text": "PropertyWidgetType",
50795
+ "canonicalReference": "obsidian-typings!PropertyWidgetType:type"
50796
+ },
50797
+ {
50798
+ "kind": "Content",
50799
+ "text": ";"
50800
+ }
50801
+ ],
50802
+ "isReadonly": false,
50803
+ "isOptional": false,
50804
+ "releaseTag": "Public",
50805
+ "name": "type",
50806
+ "propertyTypeTokenRange": {
50807
+ "startIndex": 1,
50808
+ "endIndex": 2
50809
+ }
50810
+ }
50811
+ ],
50812
+ "extendsTokenRanges": []
50813
+ },
50705
50814
  {
50706
50815
  "kind": "TypeAlias",
50707
50816
  "canonicalReference": "obsidian-typings!PropertyWidgetType:type",
@@ -50713,7 +50822,7 @@
50713
50822
  },
50714
50823
  {
50715
50824
  "kind": "Content",
50716
- "text": "| 'aliases'\n | 'checkbox'\n | 'date'\n | 'datetime'\n | 'multitext'\n | 'number'\n | 'tags'\n | 'text'\n | (string & any)"
50825
+ "text": "| 'aliases'\n | 'checkbox'\n | 'date'\n | 'datetime'\n | 'multitext'\n | 'number'\n | 'tags'\n | 'text'\n | string"
50717
50826
  },
50718
50827
  {
50719
50828
  "kind": "Content",
package/dist/types.d.ts CHANGED
@@ -1541,6 +1541,9 @@ export interface InfoFileView extends FileView {
1541
1541
  /** @todo Documentation incomplete */
1542
1542
  /** @public */
1543
1543
  export interface BacklinkView extends InfoFileView {
1544
+ backlink: {
1545
+ recomputeBacklink: (backlinkFile: TFile) => void;
1546
+ };
1544
1547
  /**
1545
1548
  * Get the current view type
1546
1549
  */
@@ -2483,7 +2486,7 @@ export interface PropertyWidget<T> {
2483
2486
  * @todo Documentation incomplete
2484
2487
  */
2485
2488
  /** @public */
2486
- export type PropertyWidgetType = "aliases" | "checkbox" | "date" | "datetime" | "multitext" | "number" | "tags" | "text" | (string & any);
2489
+ export type PropertyWidgetType = "aliases" | "checkbox" | "date" | "datetime" | "multitext" | "number" | "tags" | "text" | string;
2487
2490
  /** @public */
2488
2491
  export interface MetadataTypeManagerPropertiesRecord extends Record<string, PropertyInfo> {
2489
2492
  }
@@ -2491,7 +2494,12 @@ export interface MetadataTypeManagerPropertiesRecord extends Record<string, Prop
2491
2494
  export interface MetadataTypeManagerRegisteredTypeWidgetsRecord extends Record<PropertyWidgetType, PropertyWidget<unknown>> {
2492
2495
  }
2493
2496
  /** @public */
2494
- export interface MetadataTypeManagerTypesRecord extends Record<string, PropertyWidgetType> {
2497
+ export interface PropertyWidgetEntry {
2498
+ name: string;
2499
+ type: PropertyWidgetType;
2500
+ }
2501
+ /** @public */
2502
+ export interface MetadataTypeManagerTypesRecord extends Record<string, PropertyWidgetEntry> {
2495
2503
  }
2496
2504
  /** @public */
2497
2505
  export interface MetadataTypeManager extends Events {
@@ -6245,7 +6253,7 @@ declare module "obsidian" {
6245
6253
  /** @internal Update file cache entry and sync to indexedDB */
6246
6254
  saveFileCache(path: string, entry: FileCacheEntry): void;
6247
6255
  /** @internal Update metadata cache entry and sync to indexedDB */
6248
- saveMetaCache(path: string, entry: CachedMetadata): void;
6256
+ saveMetaCache(hash: string, entry: CachedMetadata): void;
6249
6257
  /** @internal Show a notice that the cache is being rebuilt */
6250
6258
  showIndexingNotice(): void;
6251
6259
  /** @internal Re-resolve all links for changed path */
@@ -7433,11 +7441,6 @@ declare global {
7433
7441
  */
7434
7442
  var wf: typeof Object.defineProperty;
7435
7443
  }
7436
- declare global {
7437
- interface DomElementInfo {
7438
- [eventName: `on${string}`]: EventListenerOrEventListenerObject;
7439
- }
7440
- }
7441
7444
  /** @public */
7442
7445
  export interface IFramedMarkdownEditor extends MarkdownScrollableEditView {
7443
7446
  /**
@@ -7809,6 +7812,11 @@ export interface FileSuggest<T> extends EditorSuggest<T> {
7809
7812
  */
7810
7813
  suggestManager: FileSuggestManager;
7811
7814
  }
7815
+ declare global {
7816
+ interface DomElementInfo {
7817
+ [eventName: `on${string}`]: EventListenerOrEventListenerObject;
7818
+ }
7819
+ }
7812
7820
  /** @todo Documentation incomplete */
7813
7821
  /** @public */
7814
7822
  export interface FilePropertiesView extends InfoFileView {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-typings",
3
- "version": "2.3.3",
3
+ "version": "2.4.0",
4
4
  "description": "Extended type definitions for the Obsidian API (https://obsidian.md)",
5
5
  "main": "",
6
6
  "module": "",