obsidian-typings 2.3.4 → 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;
@@ -3896,4 +3899,8 @@ export interface SerializedWorkspaceSidedock extends SerializedWorkspaceItem {
3896
3899
  width: number;
3897
3900
  }
3898
3901
 
3902
+ export {
3903
+ InternalPluginName$1 as InternalPluginName,
3904
+ };
3905
+
3899
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)",
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
  */
@@ -6250,7 +6253,7 @@ declare module "obsidian" {
6250
6253
  /** @internal Update file cache entry and sync to indexedDB */
6251
6254
  saveFileCache(path: string, entry: FileCacheEntry): void;
6252
6255
  /** @internal Update metadata cache entry and sync to indexedDB */
6253
- saveMetaCache(path: string, entry: CachedMetadata): void;
6256
+ saveMetaCache(hash: string, entry: CachedMetadata): void;
6254
6257
  /** @internal Show a notice that the cache is being rebuilt */
6255
6258
  showIndexingNotice(): void;
6256
6259
  /** @internal Re-resolve all links for changed path */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-typings",
3
- "version": "2.3.4",
3
+ "version": "2.4.0",
4
4
  "description": "Extended type definitions for the Obsidian API (https://obsidian.md)",
5
5
  "main": "",
6
6
  "module": "",