obsidian-typings 2.2.1-beta.3 → 2.2.1-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +1 -0
- package/README.md +7 -7
- package/dist/implementations.cjs +59 -19
- package/dist/implementations.d.ts +3700 -156
- package/dist/obsidian-typings.api.json +39530 -17194
- package/dist/style-mod.d.cts +1 -1
- package/dist/types.d.ts +6338 -5060
- package/package.json +19 -8
- package/tools/generateTypes.js +381 -0
- package/tools/generateTypes.ts +479 -0
package/.gitattributes
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* text=auto eol=lf
|
package/README.md
CHANGED
|
@@ -79,20 +79,20 @@ Be aware that the typings currently only cover a subset of the full API: while m
|
|
|
79
79
|
|
|
80
80
|
3. **Explicit type importing**
|
|
81
81
|
|
|
82
|
-
If you prefer not to add `obsidian-typings` to your `types`, you can also add `import
|
|
82
|
+
If you prefer not to add `obsidian-typings` to your `types`, you can also add `import 'obsidian-typings';` to any project file.
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
4. **Using `obsidian-typings/implementations`** <span id="using-obsidian-typings-implementations"></span>
|
|
87
87
|
|
|
88
|
-
Depending on how your project is set up, `import { X } from
|
|
88
|
+
Depending on how your project is set up, `import { X } from 'obsidian-typings/implementations';` may not work straight out of the box, e.g., if you have `"moduleResolution": "node"` or `"node10"` in your `tsconfig.json`
|
|
89
89
|
|
|
90
90
|
To solve this, you can add the following to your `tsconfig.json`:
|
|
91
91
|
|
|
92
92
|
```json
|
|
93
93
|
{
|
|
94
94
|
"compilerOptions": {
|
|
95
|
-
...
|
|
95
|
+
"...": "...",
|
|
96
96
|
"paths": {
|
|
97
97
|
"obsidian-typings/implementations": [
|
|
98
98
|
"./node_modules/obsidian-typings/dist/implementations.d.ts",
|
|
@@ -110,7 +110,7 @@ Be aware that the typings currently only cover a subset of the full API: while m
|
|
|
110
110
|
To access types from the `obsidian` module, the import syntax does not change:
|
|
111
111
|
|
|
112
112
|
```ts
|
|
113
|
-
import { App } from
|
|
113
|
+
import { App } from 'obsidian';
|
|
114
114
|
|
|
115
115
|
function printInternalPlugins(app: App): void {
|
|
116
116
|
console.log(app.internalPlugins);
|
|
@@ -122,7 +122,7 @@ function printInternalPlugins(app: App): void {
|
|
|
122
122
|
Additional interfaces added by this package (which do not exist in the official API), can be imported using:
|
|
123
123
|
|
|
124
124
|
```ts
|
|
125
|
-
import { InternalPlugins } from
|
|
125
|
+
import { InternalPlugins } from 'obsidian-typings';
|
|
126
126
|
|
|
127
127
|
const internalPlugins: InternalPlugins = this.app.internalPlugins;
|
|
128
128
|
```
|
|
@@ -132,7 +132,7 @@ const internalPlugins: InternalPlugins = this.app.internalPlugins;
|
|
|
132
132
|
Additional helper functions/types/... added by this package can be used by importing from `obsidian-typings/implementations`:
|
|
133
133
|
|
|
134
134
|
```ts
|
|
135
|
-
import { InternalPluginName } from
|
|
135
|
+
import { InternalPluginName } from 'obsidian-typings/implementations';
|
|
136
136
|
|
|
137
137
|
this.app.internalPlugins.getEnabledPluginById(InternalPluginName.FileExplorer);
|
|
138
138
|
```
|
|
@@ -145,7 +145,7 @@ If you need to extend the typings provided by this package, add the following to
|
|
|
145
145
|
|
|
146
146
|
```ts
|
|
147
147
|
export {}; // This is a very essential line. If you don't have any other top-level `import/export` statements, those typings will work not as expected.
|
|
148
|
-
declare module
|
|
148
|
+
declare module 'obsidian-typings' {
|
|
149
149
|
interface PluginsPluginsRecord {
|
|
150
150
|
myPlugin: MyPlugin;
|
|
151
151
|
}
|
package/dist/implementations.cjs
CHANGED
|
@@ -26,37 +26,40 @@ var implementations_exports = {};
|
|
|
26
26
|
__export(implementations_exports, {
|
|
27
27
|
CustomArrayDictImpl: () => CustomArrayDictImpl,
|
|
28
28
|
InternalPluginName: () => InternalPluginName,
|
|
29
|
+
constructApp: () => constructApp,
|
|
30
|
+
constructInternalPlugin: () => constructInternalPlugin,
|
|
31
|
+
constructInternalPlugins: () => constructInternalPlugins,
|
|
32
|
+
constructTFile: () => constructTFile,
|
|
33
|
+
constructTFolder: () => constructTFolder,
|
|
29
34
|
createTFileInstance: () => createTFileInstance,
|
|
30
|
-
createTFolderInstance: () => createTFolderInstance
|
|
35
|
+
createTFolderInstance: () => createTFolderInstance,
|
|
36
|
+
parentFolderPath: () => parentFolderPath
|
|
31
37
|
});
|
|
32
38
|
module.exports = __toCommonJS(implementations_exports);
|
|
33
39
|
|
|
34
|
-
// src/obsidian/implementations/
|
|
40
|
+
// src/obsidian/implementations/PathUtils.ts
|
|
41
|
+
function parentFolderPath(path) {
|
|
42
|
+
return path.replace(/\/?[^\/]*$/, "") || "/";
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// src/obsidian/implementations/Constructors/constructTFolder.ts
|
|
35
46
|
var import_obsidian = require("obsidian");
|
|
47
|
+
function constructTFolder(vault, path) {
|
|
48
|
+
return new import_obsidian.TFolder(vault, path);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// src/obsidian/implementations/createTFolderInstance.ts
|
|
36
52
|
function createTFolderInstance(vault, path) {
|
|
37
53
|
let folder = vault.getFolderByPath(path);
|
|
38
54
|
if (folder) {
|
|
39
55
|
return folder;
|
|
40
56
|
}
|
|
41
|
-
folder =
|
|
42
|
-
folder.parent = createTFolderInstance(vault,
|
|
57
|
+
folder = constructTFolder(vault, path);
|
|
58
|
+
folder.parent = createTFolderInstance(vault, parentFolderPath(path));
|
|
43
59
|
folder.deleted = true;
|
|
44
60
|
return folder;
|
|
45
61
|
}
|
|
46
62
|
|
|
47
|
-
// src/obsidian/implementations/createTFileInstance.ts
|
|
48
|
-
var import_obsidian2 = require("obsidian");
|
|
49
|
-
function createTFileInstance(vault, path) {
|
|
50
|
-
let file = vault.getFileByPath(path);
|
|
51
|
-
if (file) {
|
|
52
|
-
return file;
|
|
53
|
-
}
|
|
54
|
-
file = new import_obsidian2.TFile(vault, path);
|
|
55
|
-
file.parent = createTFolderInstance(vault, vault.adapter.path.dirname(path));
|
|
56
|
-
file.deleted = true;
|
|
57
|
-
return file;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
63
|
// src/obsidian/implementations/CustomArrayDictImpl.ts
|
|
61
64
|
var CustomArrayDictImpl = class {
|
|
62
65
|
data = {};
|
|
@@ -132,7 +135,6 @@ var InternalPluginName = {
|
|
|
132
135
|
RandomNote: "random-note",
|
|
133
136
|
SlashCommand: "slash-command",
|
|
134
137
|
Slides: "slides",
|
|
135
|
-
Starred: "starred",
|
|
136
138
|
Switcher: "switcher",
|
|
137
139
|
Sync: "sync",
|
|
138
140
|
TagPane: "tag-pane",
|
|
@@ -141,4 +143,42 @@ var InternalPluginName = {
|
|
|
141
143
|
Workspaces: "workspaces",
|
|
142
144
|
ZkPrefixer: "zk-prefixer"
|
|
143
145
|
};
|
|
144
|
-
|
|
146
|
+
|
|
147
|
+
// src/obsidian/implementations/Constructors/constructTFile.ts
|
|
148
|
+
var import_obsidian2 = require("obsidian");
|
|
149
|
+
function constructTFile(vault, path) {
|
|
150
|
+
return new import_obsidian2.TFile(vault, path);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// src/obsidian/implementations/createTFileInstance.ts
|
|
154
|
+
function createTFileInstance(vault, path) {
|
|
155
|
+
let file = vault.getFileByPath(path);
|
|
156
|
+
if (file) {
|
|
157
|
+
return file;
|
|
158
|
+
}
|
|
159
|
+
file = constructTFile(vault, path);
|
|
160
|
+
file.parent = createTFolderInstance(vault, parentFolderPath(path));
|
|
161
|
+
file.deleted = true;
|
|
162
|
+
return file;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// src/obsidian/implementations/Constructors/constructInternalPlugins.ts
|
|
166
|
+
function constructInternalPlugins(app) {
|
|
167
|
+
return new app.internalPlugins.constructor(app);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// src/obsidian/implementations/Constructors/constructInternalPlugin.ts
|
|
171
|
+
function constructInternalPlugin(app, instance, internalPlugins) {
|
|
172
|
+
const anyPlugin = Object.values(app.internalPlugins.plugins)[0];
|
|
173
|
+
if (!anyPlugin) {
|
|
174
|
+
throw new Error("No internal plugin found");
|
|
175
|
+
}
|
|
176
|
+
return new anyPlugin.constructor(app, instance, internalPlugins);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// src/obsidian/implementations/Constructors/constructApp.ts
|
|
180
|
+
var import_obsidian3 = require("obsidian");
|
|
181
|
+
function constructApp(adapter, appId) {
|
|
182
|
+
return new import_obsidian3.App(adapter, appId);
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9pbmRleC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1BhdGhVdGlscy50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RURm9sZGVyLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvY3JlYXRlVEZvbGRlckluc3RhbmNlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ3VzdG9tQXJyYXlEaWN0SW1wbC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0ludGVybmFsUGx1Z2luTmFtZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RURmlsZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL2NyZWF0ZVRGaWxlSW5zdGFuY2UudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvY29uc3RydWN0SW50ZXJuYWxQbHVnaW5zLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2NvbnN0cnVjdEludGVybmFsUGx1Z2luLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2NvbnN0cnVjdEFwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGZyb20gJy4vUGF0aFV0aWxzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlVEZvbGRlckluc3RhbmNlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ3VzdG9tQXJyYXlEaWN0SW1wbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZVRGaWxlSW5zdGFuY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0VEZvbGRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9jb25zdHJ1Y3RJbnRlcm5hbFBsdWdpbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0SW50ZXJuYWxQbHVnaW4uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0QXBwLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2NvbnN0cnVjdFRGaWxlLmpzJztcbmltcG9ydCAnLi4vLi4vaW5kZXguanMnO1xuIiwgImV4cG9ydCBmdW5jdGlvbiBwYXJlbnRGb2xkZXJQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFwvP1teXFwvXSokLywgJycpIHx8ICcvJztcbn1cbiIsICJpbXBvcnQge1xuICAgIFRGb2xkZXIsXG4gICAgdHlwZSBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbnR5cGUgVEZvbGRlckNvbnN0cnVjdG9yID0gbmV3KHZhdWx0OiBWYXVsdCwgcGF0aDogc3RyaW5nKSA9PiBURm9sZGVyO1xuXG4vKipcbiAqIENvbnN0cnVjdHMgYSBuZXcgVEZvbGRlciBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gdmF1bHQgLSBUaGUgdmF1bHQgdG8gd2hpY2ggdGhlIGZvbGRlciBiZWxvbmdzLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgZm9sZGVyLlxuICogQHJldHVybnMgVGhlIGNvbnN0cnVjdGVkIFRGb2xkZXIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RURm9sZGVyKHZhdWx0OiBWYXVsdCwgcGF0aDogc3RyaW5nKTogVEZvbGRlciB7XG4gICAgcmV0dXJuIG5ldyAoVEZvbGRlciBhcyBURm9sZGVyQ29uc3RydWN0b3IpKHZhdWx0LCBwYXRoKTtcbn1cbiIsICJpbXBvcnQge1xuICAgIFRGb2xkZXIsXG4gICAgdHlwZSBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBjb25zdHJ1Y3RURm9sZGVyIH0gZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0VEZvbGRlci50cyc7XG5pbXBvcnQgeyBwYXJlbnRGb2xkZXJQYXRoIH0gZnJvbSAnLi9QYXRoVXRpbHMudHMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHByb3Blcmx5IGluaXRpYWxpemVzIHRoZSBpbnN0YW5jZSBvZiBURm9sZGVyIGV2ZW4gdGhlIHVuZGVybHlpbmcgZm9sZGVyIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmb2xkZXIgb24gdGhlIGZpbGUgc3lzdGVtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVEZvbGRlckluc3RhbmNlKHZhdWx0OiBWYXVsdCwgcGF0aDogc3RyaW5nKTogVEZvbGRlciB7XG4gICAgbGV0IGZvbGRlciA9IHZhdWx0LmdldEZvbGRlckJ5UGF0aChwYXRoKTtcbiAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgIHJldHVybiBmb2xkZXI7XG4gICAgfVxuXG4gICAgZm9sZGVyID0gY29uc3RydWN0VEZvbGRlcih2YXVsdCwgcGF0aCk7XG4gICAgZm9sZGVyLnBhcmVudCA9IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZSh2YXVsdCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG4gICAgZm9sZGVyLmRlbGV0ZWQgPSB0cnVlO1xuICAgIHJldHVybiBmb2xkZXI7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICcuLi9pbnRlcm5hbHMvQ3VzdG9tQXJyYXlEaWN0L0N1c3RvbUFycmF5RGljdC5qcyc7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbUFycmF5RGljdERhdGFSZWNvcmQgfSBmcm9tICcuLi9pbnRlcm5hbHMvQ3VzdG9tQXJyYXlEaWN0L0N1c3RvbUFycmF5RGljdERhdGFSZWNvcmQuanMnO1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tQXJyYXlEaWN0SW1wbDxUPiBpbXBsZW1lbnRzIEN1c3RvbUFycmF5RGljdDxUPiB7XG4gICAgcHVibGljIGRhdGE6IEN1c3RvbUFycmF5RGljdERhdGFSZWNvcmQ8VD4gPSB7fTtcblxuICAgIHB1YmxpYyBhZGQoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGlmICghKHRoaXMuZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhW2tleV0gPSBbXSBhcyBUW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmRhdGFba2V5XSE7XG5cbiAgICAgICAgaWYgKCF2YWx1ZXMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlKGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmRhdGFba2V5XTtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMucmVtb3ZlKHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGF0YVtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUtleShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBkZWxldGUgdGhpcy5kYXRhW2tleV07XG4gICAgfVxuXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IFRbXSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmhhc093blByb3BlcnR5KGtleSkgPyB0aGlzLmRhdGFba2V5XSEgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZGF0YSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmRhdGFba2V5XTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YSA9IHt9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250YWlucyhrZXk6IHN0cmluZywgdmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5kYXRhW2tleV07XG4gICAgICAgIHJldHVybiB2YWx1ZXMgJiYgdmFsdWVzLmNvbnRhaW5zKHZhbHVlKSB8fCBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGFucyA9IDA7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZGF0YSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgYW5zICs9IHRoaXMuZGF0YVtrZXldIS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYW5zO1xuICAgIH1cbn1cbiIsICJleHBvcnQgY29uc3QgSW50ZXJuYWxQbHVnaW5OYW1lID0ge1xuICAgIEF1ZGlvUmVjb3JkZXI6ICdhdWRpby1yZWNvcmRlcicsXG4gICAgQmFja2xpbms6ICdiYWNrbGluaycsXG4gICAgQm9va21hcmtzOiAnYm9va21hcmtzJyxcbiAgICBDYW52YXM6ICdjYW52YXMnLFxuICAgIENvbW1hbmRQYWxldHRlOiAnY29tbWFuZC1wYWxldHRlJyxcbiAgICBEYWlseU5vdGVzOiAnZGFpbHktbm90ZXMnLFxuICAgIEVkaXRvclN0YXR1czogJ2VkaXRvci1zdGF0dXMnLFxuICAgIEZpbGVFeHBsb3JlcjogJ2ZpbGUtZXhwbG9yZXInLFxuICAgIEZpbGVSZWNvdmVyeTogJ2ZpbGUtcmVjb3ZlcnknLFxuICAgIEdsb2JhbFNlYXJjaDogJ2dsb2JhbC1zZWFyY2gnLFxuICAgIEdyYXBoOiAnZ3JhcGgnLFxuICAgIE1hcmtkb3duSW1wb3J0ZXI6ICdtYXJrZG93bi1pbXBvcnRlcicsXG4gICAgTm90ZUNvbXBvc2VyOiAnbm90ZS1jb21wb3NlcicsXG4gICAgT3V0Z29pbmdMaW5rOiAnb3V0Z29pbmctbGluaycsXG4gICAgT3V0bGluZTogJ291dGxpbmUnLFxuICAgIFBhZ2VQcmV2aWV3OiAncGFnZS1wcmV2aWV3JyxcbiAgICBQcm9wZXJ0aWVzOiAncHJvcGVydGllcycsXG4gICAgUHVibGlzaDogJ3B1Ymxpc2gnLFxuICAgIFJhbmRvbU5vdGU6ICdyYW5kb20tbm90ZScsXG4gICAgU2xhc2hDb21tYW5kOiAnc2xhc2gtY29tbWFuZCcsXG4gICAgU2xpZGVzOiAnc2xpZGVzJyxcbiAgICBTd2l0Y2hlcjogJ3N3aXRjaGVyJyxcbiAgICBTeW5jOiAnc3luYycsXG4gICAgVGFnUGFuZTogJ3RhZy1wYW5lJyxcbiAgICBUZW1wbGF0ZXM6ICd0ZW1wbGF0ZXMnLFxuICAgIFdvcmRDb3VudDogJ3dvcmQtY291bnQnLFxuICAgIFdvcmtzcGFjZXM6ICd3b3Jrc3BhY2VzJyxcbiAgICBaa1ByZWZpeGVyOiAnemstcHJlZml4ZXInXG59IGFzIGNvbnN0O1xuIiwgImltcG9ydCB7XG4gICAgVEZpbGUsXG4gICAgdHlwZSBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbnR5cGUgVEZpbGVDb25zdHJ1Y3RvciA9IG5ldyh2YXVsdDogVmF1bHQsIHBhdGg6IHN0cmluZykgPT4gVEZpbGU7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBURmlsZSBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gdmF1bHQgLSBUaGUgdmF1bHQgdG8gd2hpY2ggdGhlIGZpbGUgYmVsb25ncy5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIGZpbGUuXG4gKiBAcmV0dXJucyBUaGUgY29uc3RydWN0ZWQgVEZpbGUgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RURmlsZSh2YXVsdDogVmF1bHQsIHBhdGg6IHN0cmluZyk6IFRGaWxlIHtcbiAgICByZXR1cm4gbmV3IChURmlsZSBhcyBURmlsZUNvbnN0cnVjdG9yKSh2YXVsdCwgcGF0aCk7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURmlsZSxcbiAgICB0eXBlIFZhdWx0XG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGNvbnN0cnVjdFRGaWxlIH0gZnJvbSAnLi9Db25zdHJ1Y3RvcnMvY29uc3RydWN0VEZpbGUudHMnO1xuaW1wb3J0IHsgY3JlYXRlVEZvbGRlckluc3RhbmNlIH0gZnJvbSAnLi9jcmVhdGVURm9sZGVySW5zdGFuY2UudHMnO1xuaW1wb3J0IHsgcGFyZW50Rm9sZGVyUGF0aCB9IGZyb20gJy4vUGF0aFV0aWxzLnRzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCBwcm9wZXJseSBpbml0aWFsaXplcyB0aGUgaW5zdGFuY2Ugb2YgVEZpbGUgZXZlbiB0aGUgdW5kZXJseWluZyBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmaWxlIG9uIHRoZSBmaWxlIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRGaWxlSW5zdGFuY2UodmF1bHQ6IFZhdWx0LCBwYXRoOiBzdHJpbmcpOiBURmlsZSB7XG4gICAgbGV0IGZpbGUgPSB2YXVsdC5nZXRGaWxlQnlQYXRoKHBhdGgpO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICAgIHJldHVybiBmaWxlO1xuICAgIH1cblxuICAgIGZpbGUgPSBjb25zdHJ1Y3RURmlsZSh2YXVsdCwgcGF0aCk7XG4gICAgZmlsZS5wYXJlbnQgPSBjcmVhdGVURm9sZGVySW5zdGFuY2UodmF1bHQsIHBhcmVudEZvbGRlclBhdGgocGF0aCkpO1xuICAgIGZpbGUuZGVsZXRlZCA9IHRydWU7XG4gICAgcmV0dXJuIGZpbGU7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsUGx1Z2lucyB9IGZyb20gJy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbi9JbnRlcm5hbFBsdWdpbnMuanMnO1xuXG50eXBlIEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yID0gbmV3KGFwcDogQXBwKSA9PiBJbnRlcm5hbFBsdWdpbnM7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBJbnRlcm5hbFBsdWdpbnMgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBUaGUgY29uc3RydWN0ZWQgSW50ZXJuYWxQbHVnaW5zIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0SW50ZXJuYWxQbHVnaW5zKGFwcDogQXBwKTogSW50ZXJuYWxQbHVnaW5zIHtcbiAgICByZXR1cm4gbmV3IChhcHAuaW50ZXJuYWxQbHVnaW5zLmNvbnN0cnVjdG9yIGFzIEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yKShhcHApO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbFBsdWdpbiB9IGZyb20gJy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbi9JbnRlcm5hbFBsdWdpbi5qcyc7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsUGx1Z2lucyB9IGZyb20gJy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbi9JbnRlcm5hbFBsdWdpbnMuanMnO1xuXG50eXBlIEludGVybmFsUGx1Z2luQ29uc3RydWN0b3I8SW5zdGFuY2U+ID0gbmV3KFxuICAgIGFwcDogQXBwLFxuICAgIGluc3RhbmNlOiBJbnN0YW5jZSxcbiAgICBpbnRlcm5hbFBsdWdpbnM6IEludGVybmFsUGx1Z2luc1xuKSA9PiBJbnRlcm5hbFBsdWdpbjxJbnN0YW5jZT47XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBJbnRlcm5hbFBsdWdpbiBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBpbnN0YW5jZSAtIFRoZSBpbnN0YW5jZSBvZiB0aGUgcGx1Z2luLlxuICogQHBhcmFtIGludGVybmFsUGx1Z2lucyAtIFRoZSBpbnRlcm5hbCBwbHVnaW5zIGluc3RhbmNlLlxuICogQHJldHVybnMgVGhlIGNvbnN0cnVjdGVkIEludGVybmFsUGx1Z2luIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0SW50ZXJuYWxQbHVnaW48SW5zdGFuY2U+KFxuICAgIGFwcDogQXBwLFxuICAgIGluc3RhbmNlOiBJbnN0YW5jZSxcbiAgICBpbnRlcm5hbFBsdWdpbnM6IEludGVybmFsUGx1Z2luc1xuKTogSW50ZXJuYWxQbHVnaW48SW5zdGFuY2U+IHtcbiAgICBjb25zdCBhbnlQbHVnaW4gPSBPYmplY3QudmFsdWVzKGFwcC5pbnRlcm5hbFBsdWdpbnMucGx1Z2lucylbMF07XG4gICAgaWYgKCFhbnlQbHVnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnRlcm5hbCBwbHVnaW4gZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyAoYW55UGx1Z2luLmNvbnN0cnVjdG9yIGFzIEludGVybmFsUGx1Z2luQ29uc3RydWN0b3I8SW5zdGFuY2U+KShhcHAsIGluc3RhbmNlLCBpbnRlcm5hbFBsdWdpbnMpO1xufVxuIiwgImltcG9ydCB7XG4gICAgQXBwLFxuICAgIHR5cGUgRGF0YUFkYXB0ZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG50eXBlIEFwcENvbnN0cnVjdG9yID0gbmV3KGFkYXB0ZXI6IERhdGFBZGFwdGVyLCBhcHBJZDogc3RyaW5nKSA9PiBBcHA7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBBcHAgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIGFkYXB0ZXIgLSBUaGUgZGF0YSBhZGFwdGVyIHRvIHVzZS5cbiAqIEBwYXJhbSBhcHBJZCAtIFRoZSBJRCBvZiB0aGUgYXBwLlxuICogQHJldHVybnMgVGhlIGNvbnN0cnVjdGVkIEFwcCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdEFwcChhZGFwdGVyOiBEYXRhQWRhcHRlciwgYXBwSWQ6IHN0cmluZyk6IEFwcCB7XG4gICAgcmV0dXJuIG5ldyAoQXBwIGFzIEFwcENvbnN0cnVjdG9yKShhZGFwdGVyLCBhcHBJZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUNBTyxTQUFTLGlCQUFpQixNQUFzQjtBQUNuRCxTQUFPLEtBQUssUUFBUSxjQUFjLEVBQUUsS0FBSztBQUM3Qzs7O0FDRkEsc0JBR087QUFXQSxTQUFTLGlCQUFpQixPQUFjLE1BQXVCO0FBQ2xFLFNBQU8sSUFBSyx3QkFBK0IsT0FBTyxJQUFJO0FBQzFEOzs7QUNMTyxTQUFTLHNCQUFzQixPQUFjLE1BQXVCO0FBQ3ZFLE1BQUksU0FBUyxNQUFNLGdCQUFnQixJQUFJO0FBQ3ZDLE1BQUksUUFBUTtBQUNSLFdBQU87QUFBQSxFQUNYO0FBRUEsV0FBUyxpQkFBaUIsT0FBTyxJQUFJO0FBQ3JDLFNBQU8sU0FBUyxzQkFBc0IsT0FBTyxpQkFBaUIsSUFBSSxDQUFDO0FBQ25FLFNBQU8sVUFBVTtBQUNqQixTQUFPO0FBQ1g7OztBQ2xCTyxJQUFNLHNCQUFOLE1BQTJEO0FBQUEsRUFDdkQsT0FBcUMsQ0FBQztBQUFBLEVBRXRDLElBQUksS0FBYSxPQUFnQjtBQUNwQyxRQUFJLENBQUUsS0FBSyxLQUFLLGVBQWUsR0FBRyxHQUFJO0FBQ2xDLFdBQUssS0FBSyxHQUFHLElBQUksQ0FBQztBQUFBLElBQ3RCO0FBRUEsVUFBTSxTQUFTLEtBQUssS0FBSyxHQUFHO0FBRTVCLFFBQUksQ0FBQyxPQUFPLFNBQVMsS0FBSyxHQUFHO0FBQ3pCLGFBQU8sS0FBSyxLQUFLO0FBQUEsSUFDckI7QUFBQSxFQUNKO0FBQUEsRUFFTyxPQUFPLEtBQWEsT0FBZ0I7QUFDdkMsVUFBTSxTQUFTLEtBQUssS0FBSyxHQUFHO0FBQzVCLFFBQUksQ0FBQyxRQUFRO0FBQ1Q7QUFBQSxJQUNKO0FBQ0EsV0FBTyxPQUFPLEtBQUs7QUFFbkIsUUFBSSxPQUFPLFdBQVcsR0FBRztBQUNyQixhQUFPLEtBQUssS0FBSyxHQUFHO0FBQUEsSUFDeEI7QUFBQSxFQUNKO0FBQUEsRUFFTyxVQUFVLEtBQW1CO0FBQ2hDLFdBQU8sS0FBSyxLQUFLLEdBQUc7QUFBQSxFQUN4QjtBQUFBLEVBRU8sSUFBSSxLQUF5QjtBQUNoQyxXQUFPLEtBQUssS0FBSyxlQUFlLEdBQUcsSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFLO0FBQUEsRUFDN0Q7QUFBQSxFQUVPLE9BQWlCO0FBQ3BCLFdBQU8sT0FBTyxLQUFLLEtBQUssSUFBSTtBQUFBLEVBQ2hDO0FBQUEsRUFFTyxNQUFNLEtBQW1CO0FBQzVCLFdBQU8sS0FBSyxLQUFLLEdBQUc7QUFBQSxFQUN4QjtBQUFBLEVBRU8sV0FBaUI7QUFDcEIsU0FBSyxPQUFPLENBQUM7QUFBQSxFQUNqQjtBQUFBLEVBRU8sU0FBUyxLQUFhLE9BQW1CO0FBQzVDLFVBQU0sU0FBUyxLQUFLLEtBQUssR0FBRztBQUM1QixXQUFPLFVBQVUsT0FBTyxTQUFTLEtBQUssS0FBSztBQUFBLEVBQy9DO0FBQUEsRUFFTyxRQUFnQjtBQUNuQixRQUFJLE1BQU07QUFDVixlQUFXLE9BQU8sS0FBSyxNQUFNO0FBQ3pCLFVBQUksS0FBSyxLQUFLLGVBQWUsR0FBRyxHQUFHO0FBQy9CLGVBQU8sS0FBSyxLQUFLLEdBQUcsRUFBRztBQUFBLE1BQzNCO0FBQUEsSUFDSjtBQUVBLFdBQU87QUFBQSxFQUNYO0FBQ0o7OztBQ2pFTyxJQUFNLHFCQUFxQjtBQUFBLEVBQzlCLGVBQWU7QUFBQSxFQUNmLFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLFFBQVE7QUFBQSxFQUNSLGdCQUFnQjtBQUFBLEVBQ2hCLFlBQVk7QUFBQSxFQUNaLGNBQWM7QUFBQSxFQUNkLGNBQWM7QUFBQSxFQUNkLGNBQWM7QUFBQSxFQUNkLGNBQWM7QUFBQSxFQUNkLE9BQU87QUFBQSxFQUNQLGtCQUFrQjtBQUFBLEVBQ2xCLGNBQWM7QUFBQSxFQUNkLGNBQWM7QUFBQSxFQUNkLFNBQVM7QUFBQSxFQUNULGFBQWE7QUFBQSxFQUNiLFlBQVk7QUFBQSxFQUNaLFNBQVM7QUFBQSxFQUNULFlBQVk7QUFBQSxFQUNaLGNBQWM7QUFBQSxFQUNkLFFBQVE7QUFBQSxFQUNSLFVBQVU7QUFBQSxFQUNWLE1BQU07QUFBQSxFQUNOLFNBQVM7QUFBQSxFQUNULFdBQVc7QUFBQSxFQUNYLFdBQVc7QUFBQSxFQUNYLFlBQVk7QUFBQSxFQUNaLFlBQVk7QUFDaEI7OztBQzdCQSxJQUFBQSxtQkFHTztBQVdBLFNBQVMsZUFBZSxPQUFjLE1BQXFCO0FBQzlELFNBQU8sSUFBSyx1QkFBMkIsT0FBTyxJQUFJO0FBQ3REOzs7QUNKTyxTQUFTLG9CQUFvQixPQUFjLE1BQXFCO0FBQ25FLE1BQUksT0FBTyxNQUFNLGNBQWMsSUFBSTtBQUNuQyxNQUFJLE1BQU07QUFDTixXQUFPO0FBQUEsRUFDWDtBQUVBLFNBQU8sZUFBZSxPQUFPLElBQUk7QUFDakMsT0FBSyxTQUFTLHNCQUFzQixPQUFPLGlCQUFpQixJQUFJLENBQUM7QUFDakUsT0FBSyxVQUFVO0FBQ2YsU0FBTztBQUNYOzs7QUNYTyxTQUFTLHlCQUF5QixLQUEyQjtBQUNoRSxTQUFPLElBQUssSUFBSSxnQkFBZ0IsWUFBMkMsR0FBRztBQUNsRjs7O0FDS08sU0FBUyx3QkFDWixLQUNBLFVBQ0EsaUJBQ3dCO0FBQ3hCLFFBQU0sWUFBWSxPQUFPLE9BQU8sSUFBSSxnQkFBZ0IsT0FBTyxFQUFFLENBQUM7QUFDOUQsTUFBSSxDQUFDLFdBQVc7QUFDWixVQUFNLElBQUksTUFBTSwwQkFBMEI7QUFBQSxFQUM5QztBQUNBLFNBQU8sSUFBSyxVQUFVLFlBQW9ELEtBQUssVUFBVSxlQUFlO0FBQzVHOzs7QUM1QkEsSUFBQUMsbUJBR087QUFXQSxTQUFTLGFBQWEsU0FBc0IsT0FBb0I7QUFDbkUsU0FBTyxJQUFLLHFCQUF1QixTQUFTLEtBQUs7QUFDckQ7IiwKICAibmFtZXMiOiBbImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iXQp9Cg==
|