obsidian-dev-utils 2.26.3 → 3.0.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.
Files changed (161) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/lib/@types/compare-versions.d.ts +2 -2
  3. package/dist/lib/@types.cjs +11 -2
  4. package/dist/lib/Async.cjs +18 -7
  5. package/dist/lib/Async.d.ts +2 -2
  6. package/dist/lib/Blob.cjs +21 -6
  7. package/dist/lib/DocumentFragment.cjs +11 -2
  8. package/dist/lib/Error.cjs +20 -6
  9. package/dist/lib/Error.d.ts +7 -0
  10. package/dist/lib/Object.cjs +38 -5
  11. package/dist/lib/Object.d.ts +21 -0
  12. package/dist/lib/Path.cjs +14 -6
  13. package/dist/lib/Path.d.ts +1 -1
  14. package/dist/lib/RegExp.cjs +11 -2
  15. package/dist/lib/String.cjs +14 -4
  16. package/dist/lib/String.d.ts +4 -1
  17. package/dist/lib/ValueProvider.cjs +11 -2
  18. package/dist/lib/ValueProvider.d.ts +1 -1
  19. package/dist/lib/_dependencies.cjs +7734 -1266
  20. package/dist/lib/_dependencies.d.ts +4 -6
  21. package/dist/lib/index.cjs +14 -23
  22. package/dist/lib/index.d.ts +13 -19
  23. package/dist/lib/obsidian/App.cjs +13 -3
  24. package/dist/lib/obsidian/App.d.ts +1 -1
  25. package/dist/lib/obsidian/AttachmentPath.cjs +13 -4
  26. package/dist/lib/obsidian/AttachmentPath.d.ts +2 -2
  27. package/dist/lib/obsidian/Backlink.cjs +16 -6
  28. package/dist/lib/obsidian/Backlink.d.ts +7 -7
  29. package/dist/lib/obsidian/Callout.cjs +14 -4
  30. package/dist/lib/obsidian/Callout.d.ts +4 -4
  31. package/dist/lib/obsidian/Dataview.cjs +20 -9
  32. package/dist/lib/obsidian/Dataview.d.ts +22 -16
  33. package/dist/lib/obsidian/DataviewLink.cjs +12 -4
  34. package/dist/lib/obsidian/DataviewLink.d.ts +2 -2
  35. package/dist/lib/obsidian/FrontMatter.cjs +17 -7
  36. package/dist/lib/obsidian/FrontMatter.d.ts +31 -7
  37. package/dist/lib/obsidian/Link.cjs +19 -10
  38. package/dist/lib/obsidian/Link.d.ts +25 -13
  39. package/dist/lib/obsidian/MarkdownCodeBlockProcessor.cjs +14 -4
  40. package/dist/lib/obsidian/MarkdownCodeBlockProcessor.d.ts +1 -1
  41. package/dist/lib/obsidian/MetadataCache.cjs +30 -5
  42. package/dist/lib/obsidian/MetadataCache.d.ts +11 -5
  43. package/dist/lib/obsidian/Modal/Alert.cjs +14 -3
  44. package/dist/lib/obsidian/Modal/Alert.d.ts +1 -1
  45. package/dist/lib/obsidian/Modal/Prompt.cjs +14 -3
  46. package/dist/lib/obsidian/Modal/Prompt.d.ts +3 -3
  47. package/dist/lib/obsidian/Modal/SelectItem.cjs +11 -2
  48. package/dist/lib/obsidian/Modal/SelectItem.d.ts +4 -4
  49. package/dist/lib/obsidian/Modal/index.cjs +11 -2
  50. package/dist/lib/obsidian/Modal/index.d.ts +3 -3
  51. package/dist/lib/obsidian/ObsidianSettings.cjs +11 -2
  52. package/dist/lib/obsidian/ObsidianSettings.d.ts +1 -1
  53. package/dist/lib/obsidian/Plugin/ObsidianPluginRepoPaths.cjs +11 -2
  54. package/dist/lib/obsidian/Plugin/Plugin.cjs +11 -2
  55. package/dist/lib/obsidian/Plugin/Plugin.d.ts +1 -1
  56. package/dist/lib/obsidian/Plugin/PluginBase.cjs +37 -23
  57. package/dist/lib/obsidian/Plugin/PluginBase.d.ts +8 -9
  58. package/dist/lib/obsidian/Plugin/PluginSettings.cjs +11 -2
  59. package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.cjs +11 -2
  60. package/dist/lib/obsidian/Plugin/PluginSettingsTabBase.d.ts +2 -2
  61. package/dist/lib/obsidian/Plugin/UIComponent.cjs +11 -2
  62. package/dist/lib/obsidian/Plugin/UIComponent.d.ts +2 -2
  63. package/dist/lib/obsidian/Plugin/index.cjs +11 -2
  64. package/dist/lib/obsidian/Plugin/index.d.ts +6 -6
  65. package/dist/lib/obsidian/ResourceUrl.cjs +11 -2
  66. package/dist/lib/obsidian/ResourceUrl.d.ts +1 -1
  67. package/dist/lib/obsidian/TAbstractFile.cjs +12 -3
  68. package/dist/lib/obsidian/TAbstractFile.d.ts +1 -1
  69. package/dist/lib/obsidian/TFile.cjs +11 -2
  70. package/dist/lib/obsidian/TFile.d.ts +1 -1
  71. package/dist/lib/obsidian/TFolder.cjs +11 -2
  72. package/dist/lib/obsidian/TFolder.d.ts +2 -1
  73. package/dist/lib/obsidian/Vault.cjs +23 -15
  74. package/dist/lib/obsidian/Vault.d.ts +21 -7
  75. package/dist/lib/obsidian/index.cjs +11 -2
  76. package/dist/lib/obsidian/index.d.ts +18 -18
  77. package/dist/lib/scripts/CliUtils.cjs +170 -0
  78. package/dist/lib/{cli.d.ts → scripts/CliUtils.d.ts} +1 -1
  79. package/dist/lib/scripts/CodeGenerator.cjs +56 -0
  80. package/dist/lib/{bin → scripts}/ESLint/@types/@guardian__eslint-plugin-tsdoc-required.d.ts +3 -2
  81. package/dist/lib/{bin → scripts}/ESLint/@types/eslint-plugin-modules-newlines.d.ts +3 -2
  82. package/dist/lib/{bin → scripts}/ESLint/@types/eslint-plugin-verify-tsdoc.d.ts +3 -2
  83. package/dist/lib/scripts/ESLint/ESLint.cjs +92 -0
  84. package/dist/lib/{bin → scripts}/ESLint/ESLint.d.ts +2 -2
  85. package/dist/lib/scripts/ESLint/eslint.config.cjs +170 -0
  86. package/dist/lib/scripts/ESLint/eslint.config.d.ts +16 -0
  87. package/dist/lib/scripts/ESLint/index.cjs +62 -0
  88. package/dist/lib/scripts/ESLint/index.d.ts +2 -0
  89. package/dist/lib/scripts/Fs.cjs +98 -0
  90. package/dist/lib/{Fs.d.ts → scripts/Fs.d.ts} +3 -3
  91. package/dist/lib/scripts/JSON.cjs +71 -0
  92. package/dist/lib/{JSON.d.ts → scripts/JSON.d.ts} +3 -24
  93. package/dist/lib/scripts/NodeModules.cjs +87 -0
  94. package/dist/lib/scripts/NodeModules.d.ts +9 -0
  95. package/dist/lib/scripts/Npm.cjs +97 -0
  96. package/dist/lib/{Npm.d.ts → scripts/Npm.d.ts} +3 -3
  97. package/dist/lib/scripts/ObsidianDevUtilsRepoPaths.cjs +76 -0
  98. package/dist/lib/{bin → scripts}/ObsidianDevUtilsRepoPaths.d.ts +4 -0
  99. package/dist/lib/scripts/Root.cjs +142 -0
  100. package/dist/lib/{Root.d.ts → scripts/Root.d.ts} +4 -4
  101. package/dist/lib/scripts/build.cjs +67 -0
  102. package/dist/lib/scripts/cli.cjs +80 -0
  103. package/dist/lib/scripts/esbuild/Dependency.cjs +135 -0
  104. package/dist/lib/scripts/esbuild/ObsidianPluginBuilder.cjs +167 -0
  105. package/dist/lib/{bin → scripts}/esbuild/ObsidianPluginBuilder.d.ts +5 -5
  106. package/dist/lib/scripts/esbuild/copyToObsidianPluginsFolderPlugin.cjs +67 -0
  107. package/dist/lib/{bin → scripts}/esbuild/copyToObsidianPluginsFolderPlugin.d.ts +1 -1
  108. package/dist/lib/scripts/esbuild/fixSourceMapsPlugin.cjs +83 -0
  109. package/dist/lib/{bin → scripts}/esbuild/fixSourceMapsPlugin.d.ts +1 -1
  110. package/dist/lib/{bin → scripts}/esbuild/index.cjs +11 -2
  111. package/dist/lib/scripts/esbuild/index.d.ts +7 -0
  112. package/dist/lib/scripts/esbuild/lintPlugin.cjs +64 -0
  113. package/dist/lib/{bin → scripts}/esbuild/lintPlugin.d.ts +1 -1
  114. package/dist/lib/scripts/esbuild/preprocessPlugin.cjs +95 -0
  115. package/dist/lib/{bin → scripts}/esbuild/preprocessPlugin.d.ts +1 -1
  116. package/dist/lib/scripts/esbuild/renameToCjsPlugin.cjs +85 -0
  117. package/dist/lib/{bin → scripts}/esbuild/renameToCjsPlugin.d.ts +1 -1
  118. package/dist/lib/scripts/index.cjs +98 -0
  119. package/dist/lib/scripts/index.d.ts +14 -0
  120. package/dist/lib/scripts/spellcheck.cjs +67 -0
  121. package/dist/lib/{bin → scripts}/spellcheck.d.ts +1 -1
  122. package/dist/lib/scripts/version.cjs +349 -0
  123. package/dist/lib/{bin → scripts}/version.d.ts +7 -8
  124. package/dist/lib/url.cjs +11 -2
  125. package/package.json +136 -131
  126. package/dist/lib/CodeGenerator.cjs +0 -47
  127. package/dist/lib/Fs.cjs +0 -89
  128. package/dist/lib/JSON.cjs +0 -85
  129. package/dist/lib/Npm.cjs +0 -88
  130. package/dist/lib/Root.cjs +0 -145
  131. package/dist/lib/bin/ESLint/@types/@stylistic__eslint-plugin.d.ts +0 -10
  132. package/dist/lib/bin/ESLint/@types/@typescript-eslint__eslint-plugin.d.ts +0 -21
  133. package/dist/lib/bin/ESLint/@types/@typescript-eslint__parser.d.ts +0 -10
  134. package/dist/lib/bin/ESLint/@types/eslint-plugin-deprecation.d.ts +0 -11
  135. package/dist/lib/bin/ESLint/@types/eslint-plugin-import.d.ts +0 -10
  136. package/dist/lib/bin/ESLint/@types/globals.d.ts +0 -16
  137. package/dist/lib/bin/ESLint/ESLint.cjs +0 -84
  138. package/dist/lib/bin/ESLint/eslint.config.cjs +0 -114
  139. package/dist/lib/bin/ESLint/eslint.config.d.ts +0 -20
  140. package/dist/lib/bin/ESLint/index.cjs +0 -53
  141. package/dist/lib/bin/ESLint/index.d.ts +0 -2
  142. package/dist/lib/bin/ObsidianDevUtilsRepoPaths.cjs +0 -66
  143. package/dist/lib/bin/build.cjs +0 -58
  144. package/dist/lib/bin/cli.cjs +0 -81
  145. package/dist/lib/bin/esbuild/Dependency.cjs +0 -125
  146. package/dist/lib/bin/esbuild/ObsidianPluginBuilder.cjs +0 -160
  147. package/dist/lib/bin/esbuild/copyToObsidianPluginsFolderPlugin.cjs +0 -59
  148. package/dist/lib/bin/esbuild/fixSourceMapsPlugin.cjs +0 -74
  149. package/dist/lib/bin/esbuild/index.d.ts +0 -7
  150. package/dist/lib/bin/esbuild/lintPlugin.cjs +0 -55
  151. package/dist/lib/bin/esbuild/preprocessPlugin.cjs +0 -89
  152. package/dist/lib/bin/esbuild/renameToCjsPlugin.cjs +0 -75
  153. package/dist/lib/bin/index.cjs +0 -68
  154. package/dist/lib/bin/index.d.ts +0 -7
  155. package/dist/lib/bin/spellcheck.cjs +0 -58
  156. package/dist/lib/bin/version.cjs +0 -352
  157. package/dist/lib/cli.cjs +0 -170
  158. /package/dist/lib/{CodeGenerator.d.ts → scripts/CodeGenerator.d.ts} +0 -0
  159. /package/dist/lib/{bin → scripts}/build.d.ts +0 -0
  160. /package/dist/lib/{bin → scripts}/cli.d.ts +0 -0
  161. /package/dist/lib/{bin → scripts}/esbuild/Dependency.d.ts +0 -0
package/dist/lib/cli.cjs DELETED
@@ -1,170 +0,0 @@
1
- /*
2
- THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
- if you want to view the source, please visit the github repository of this plugin
4
- */
5
-
6
- "use strict";
7
- var __create = Object.create;
8
- var __defProp = Object.defineProperty;
9
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
- var __getOwnPropNames = Object.getOwnPropertyNames;
11
- var __getProtoOf = Object.getPrototypeOf;
12
- var __hasOwnProp = Object.prototype.hasOwnProperty;
13
- var __export = (target, all) => {
14
- for (var name in all)
15
- __defProp(target, name, { get: all[name], enumerable: true });
16
- };
17
- var __copyProps = (to, from, except, desc) => {
18
- if (from && typeof from === "object" || typeof from === "function") {
19
- for (let key of __getOwnPropNames(from))
20
- if (!__hasOwnProp.call(to, key) && key !== except)
21
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
- }
23
- return to;
24
- };
25
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26
- // If the importer is in node compatibility mode or this is not an ESM
27
- // file that has been converted to a CommonJS file using a Babel-
28
- // compatible transform (i.e. "__esModule" has not been set), then set
29
- // "default" to the CommonJS "module.exports" for node compatibility.
30
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31
- mod
32
- ));
33
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
- var cli_exports = {};
35
- __export(cli_exports, {
36
- CliTaskResult: () => CliTaskResult,
37
- toCommandLine: () => toCommandLine,
38
- wrapCliTask: () => wrapCliTask
39
- });
40
- module.exports = __toCommonJS(cli_exports);
41
- var import_node_process = __toESM(require("node:process"), 1);
42
- var import_Error = require("./Error.cjs");
43
- var __import_meta_url = globalThis["import.meta.url"] ?? (() => require("node:url").pathToFileURL(__filename))();
44
- var __process = globalThis["process"] ?? {
45
- "cwd": () => "/",
46
- "env": {},
47
- "platform": "android"
48
- };
49
- class CliTaskResult {
50
- /**
51
- * Chains multiple tasks together, executing them sequentially until one fails.
52
- *
53
- * @param tasks - An array of task functions that return a `TaskResult` or `void`.
54
- * @returns A promise that resolves with the first failed `TaskResult` or a success result.
55
- */
56
- static async chain(tasks) {
57
- for (const task of tasks) {
58
- const result = await wrapResult(task);
59
- if (!result.isSuccessful()) {
60
- return result;
61
- }
62
- }
63
- return CliTaskResult.Success();
64
- }
65
- /**
66
- * Creates a CliTaskResult representing a successful task result.
67
- *
68
- * @param isSuccess - A boolean indicating whether the task was successful. Default is true.
69
- * @returns A CliTaskResult object representing a successful task result.
70
- */
71
- static Success(isSuccess = true) {
72
- return new SuccessTaskResult(isSuccess);
73
- }
74
- /**
75
- * Represents a failure result of a CLI task.
76
- *
77
- * @returns The failure result.
78
- */
79
- static Failure() {
80
- return this.Success(false);
81
- }
82
- /**
83
- * Creates a `TaskResult` based on an exit code.
84
- *
85
- * @param exitCode - The exit code to represent.
86
- * @returns A `TaskResult` representing the exit code.
87
- */
88
- static FromExitCode(exitCode) {
89
- return new ExitCodeTaskResult(exitCode);
90
- }
91
- /**
92
- * Creates a `TaskResult` that does not exit the process.
93
- *
94
- * @returns A `TaskResult` that does not exit the process.
95
- */
96
- static DoNotExit() {
97
- return new DoNotExitTaskResult();
98
- }
99
- }
100
- class SuccessTaskResult extends CliTaskResult {
101
- constructor(_isSuccessful) {
102
- super();
103
- this._isSuccessful = _isSuccessful;
104
- }
105
- /**
106
- * Exits the process based on the success of the task.
107
- */
108
- exit() {
109
- import_node_process.default.exit(this._isSuccessful ? 0 : 1);
110
- }
111
- isSuccessful() {
112
- return this._isSuccessful;
113
- }
114
- }
115
- class ExitCodeTaskResult extends CliTaskResult {
116
- constructor(exitCode) {
117
- super();
118
- this.exitCode = exitCode;
119
- }
120
- /**
121
- * Exits the process with the specified exit code.
122
- */
123
- exit() {
124
- import_node_process.default.exit(this.exitCode);
125
- }
126
- isSuccessful() {
127
- return this.exitCode === 0;
128
- }
129
- }
130
- class DoNotExitTaskResult extends CliTaskResult {
131
- constructor() {
132
- super();
133
- }
134
- /**
135
- * Does not exit the process.
136
- */
137
- exit() {
138
- }
139
- isSuccessful() {
140
- return true;
141
- }
142
- }
143
- async function wrapResult(taskFn) {
144
- try {
145
- return await taskFn() ?? CliTaskResult.Success();
146
- } catch (error) {
147
- (0, import_Error.printError)(new Error("An error occurred during task execution", { cause: error }));
148
- return CliTaskResult.Failure();
149
- }
150
- }
151
- async function wrapCliTask(taskFn) {
152
- const result = await wrapResult(taskFn);
153
- result.exit();
154
- }
155
- function toCommandLine(args) {
156
- return args.map((arg) => {
157
- if (/[\s"\n]/.test(arg)) {
158
- const escapedArg = arg.replace(/"/g, '\\"').replace(/\n/g, "\\n");
159
- return `"${escapedArg}"`;
160
- }
161
- return arg;
162
- }).join(" ");
163
- }
164
- // Annotate the CommonJS export names for ESM import in node:
165
- 0 && (module.exports = {
166
- CliTaskResult,
167
- toCommandLine,
168
- wrapCliTask
169
- });
170
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NsaS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1tcImltcG9ydC5tZXRhLnVybFwiXSA/PyAoKCk9PnJlcXVpcmUoXCJub2RlOnVybFwiKS5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpKSgpO1xudmFyIF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbXCJwcm9jZXNzXCJdID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIGNsaVxuICogQ29udGFpbnMgdXRpbGl0eSBjbGFzc2VzIGFuZCBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIHRhc2sgcmVzdWx0cywgaW5jbHVkaW5nXG4gKiBzdWNjZXNzLCBleGl0IGNvZGVzLCBhbmQgY2hhaW5pbmcgbXVsdGlwbGUgdGFza3MuXG4gKi9cblxuaW1wb3J0IHByb2Nlc3MgZnJvbSBcIm5vZGU6cHJvY2Vzc1wiO1xuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tIFwiLi9Bc3luYy50c1wiO1xuaW1wb3J0IHsgcHJpbnRFcnJvciB9IGZyb20gXCIuL0Vycm9yLnRzXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgYSB0YXNrLiBJbmNsdWRlcyBtZXRob2RzIGZvciBoYW5kbGluZyBzdWNjZXNzLFxuICogZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIHRhc2tzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBFeGl0cyB0aGUgcHJvY2VzcyBiYXNlZCBvbiB0aGUgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZXhpdCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDaGFpbnMgbXVsdGlwbGUgdGFza3MgdG9nZXRoZXIsIGV4ZWN1dGluZyB0aGVtIHNlcXVlbnRpYWxseSB1bnRpbCBvbmUgZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrcyAtIEFuIGFycmF5IG9mIHRhc2sgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEgYFRhc2tSZXN1bHRgIG9yIGB2b2lkYC5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgZmlyc3QgZmFpbGVkIGBUYXNrUmVzdWx0YCBvciBhIHN1Y2Nlc3MgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBjaGFpbih0YXNrczogKCgpID0+IE1heWJlUHJvbWlzZTxDbGlUYXNrUmVzdWx0IHwgdm9pZD4pW10pOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgICBmb3IgKGNvbnN0IHRhc2sgb2YgdGFza3MpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdyYXBSZXN1bHQodGFzayk7XG4gICAgICBpZiAoIXJlc3VsdC5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBDbGlUYXNrUmVzdWx0LlN1Y2Nlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xpVGFza1Jlc3VsdCByZXByZXNlbnRpbmcgYSBzdWNjZXNzZnVsIHRhc2sgcmVzdWx0LlxuICAgKlxuICAgKiBAcGFyYW0gaXNTdWNjZXNzIC0gQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgdGFzayB3YXMgc3VjY2Vzc2Z1bC4gRGVmYXVsdCBpcyB0cnVlLlxuICAgKiBAcmV0dXJucyBBIENsaVRhc2tSZXN1bHQgb2JqZWN0IHJlcHJlc2VudGluZyBhIHN1Y2Nlc3NmdWwgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFN1Y2Nlc3MoaXNTdWNjZXNzOiBib29sZWFuID0gdHJ1ZSk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiBuZXcgU3VjY2Vzc1Rhc2tSZXN1bHQoaXNTdWNjZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGEgZmFpbHVyZSByZXN1bHQgb2YgYSBDTEkgdGFzay5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGZhaWx1cmUgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBGYWlsdXJlKCk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLlN1Y2Nlc3MoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBgVGFza1Jlc3VsdGAgYmFzZWQgb24gYW4gZXhpdCBjb2RlLlxuICAgKlxuICAgKiBAcGFyYW0gZXhpdENvZGUgLSBUaGUgZXhpdCBjb2RlIHRvIHJlcHJlc2VudC5cbiAgICogQHJldHVybnMgQSBgVGFza1Jlc3VsdGAgcmVwcmVzZW50aW5nIHRoZSBleGl0IGNvZGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZyb21FeGl0Q29kZShleGl0Q29kZTogbnVtYmVyKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIG5ldyBFeGl0Q29kZVRhc2tSZXN1bHQoZXhpdENvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBgVGFza1Jlc3VsdGAgdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGBUYXNrUmVzdWx0YCB0aGF0IGRvZXMgbm90IGV4aXQgdGhlIHByb2Nlc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIERvTm90RXhpdCgpOiBDbGlUYXNrUmVzdWx0IHtcbiAgICByZXR1cm4gbmV3IERvTm90RXhpdFRhc2tSZXN1bHQoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0YXNrIHJlc3VsdCBiYXNlZCBvbiBzdWNjZXNzIG9yIGZhaWx1cmUuXG4gKi9cbmNsYXNzIFN1Y2Nlc3NUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9pc1N1Y2Nlc3NmdWw6IGJvb2xlYW4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4aXRzIHRoZSBwcm9jZXNzIGJhc2VkIG9uIHRoZSBzdWNjZXNzIG9mIHRoZSB0YXNrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGV4aXQoKTogdm9pZCB7XG4gICAgcHJvY2Vzcy5leGl0KHRoaXMuX2lzU3VjY2Vzc2Z1bCA/IDAgOiAxKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU3VjY2Vzc2Z1bDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0YXNrIHJlc3VsdCBiYXNlZCBvbiBhbiBleGl0IGNvZGUuXG4gKi9cbmNsYXNzIEV4aXRDb2RlVGFza1Jlc3VsdCBleHRlbmRzIENsaVRhc2tSZXN1bHQge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBleGl0Q29kZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGl0cyB0aGUgcHJvY2VzcyB3aXRoIHRoZSBzcGVjaWZpZWQgZXhpdCBjb2RlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGV4aXQoKTogdm9pZCB7XG4gICAgcHJvY2Vzcy5leGl0KHRoaXMuZXhpdENvZGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leGl0Q29kZSA9PT0gMDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0YXNrIHJlc3VsdCB0aGF0IGRvZXMgbm90IGV4aXQgdGhlIHByb2Nlc3MuXG4gKi9cbmNsYXNzIERvTm90RXhpdFRhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBleGl0KCk6IHZvaWQge1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFNhZmVseSBleGVjdXRlcyBhIHRhc2sgZnVuY3Rpb24gYW5kIHJldHVybnMgYSBgVGFza1Jlc3VsdGAuIElmIHRoZSB0YXNrIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvcixcbiAqIHRoZSBlcnJvciBpcyBjYXVnaHQsIGFuZCBhIGZhaWx1cmUgYFRhc2tSZXN1bHRgIGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSB0YXNrRm4gLSBUaGUgdGFzayBmdW5jdGlvbiB0byBleGVjdXRlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhIGBUYXNrUmVzdWx0YCByZXByZXNlbnRpbmcgdGhlIG91dGNvbWUgb2YgdGhlIHRhc2suXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdyYXBSZXN1bHQodGFza0ZuOiAoKSA9PiBNYXliZVByb21pc2U8Q2xpVGFza1Jlc3VsdCB8IHZvaWQ+KTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHRhc2tGbigpID8/IENsaVRhc2tSZXN1bHQuU3VjY2VzcygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IobmV3IEVycm9yKFwiQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRhc2sgZXhlY3V0aW9uXCIsIHsgY2F1c2U6IGVycm9yIH0pKTtcbiAgICByZXR1cm4gQ2xpVGFza1Jlc3VsdC5GYWlsdXJlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcyBhIENMSSB0YXNrIGZ1bmN0aW9uIHRvIGVuc3VyZSBpdCBydW5zIHNhZmVseSBhbmQgaGFuZGxlcyBpdHMgYFRhc2tSZXN1bHRgLlxuICpcbiAqIEBwYXJhbSB0YXNrRm4gLSBUaGUgdGFzayBmdW5jdGlvbiB0byBleGVjdXRlLCB3aGljaCBtYXkgcmV0dXJuIGEgYFRhc2tSZXN1bHRgIG9yIHZvaWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0YXNrIGlzIGNvbXBsZXRlZCBhbmQgZXhpdHMgd2l0aCB0aGUgYXBwcm9wcmlhdGUgc3RhdHVzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JhcENsaVRhc2sodGFza0ZuOiAoKSA9PiBNYXliZVByb21pc2U8Q2xpVGFza1Jlc3VsdCB8IHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdyYXBSZXN1bHQodGFza0ZuKTtcbiAgcmVzdWx0LmV4aXQoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGludG8gYSBzaW5nbGUgY29tbWFuZC1saW5lIHN0cmluZy5cbiAqIEhhbmRsZXMgZXNjYXBpbmcgb2Ygc3BlY2lhbCBjaGFyYWN0ZXJzIHN1Y2ggYXMgc3BhY2VzLCBxdW90ZXMsIGFuZCBuZXdsaW5lcy5cbiAqXG4gKiBAcGFyYW0gYXJncyAtIFRoZSBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNvbW1hbmQtbGluZSBpbnZvY2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db21tYW5kTGluZShhcmdzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBhcmdzXG4gICAgLm1hcCgoYXJnKSA9PiB7XG4gICAgICBpZiAoL1tcXHNcIlxcbl0vLnRlc3QoYXJnKSkge1xuICAgICAgICBjb25zdCBlc2NhcGVkQXJnID0gYXJnLnJlcGxhY2UoL1wiL2csIFwiXFxcXFxcXCJcIikucmVwbGFjZSgvXFxuL2csIFwiXFxcXG5cIik7XG4gICAgICAgIHJldHVybiBgXCIke2VzY2FwZWRBcmd9XCJgO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KVxuICAgIC5qb2luKFwiIFwiKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUEsMEJBQW9CO0FBRXBCLG1CQUEyQjtBQWQzQixJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUksUUFBUSxVQUFVLEVBQUUsY0FBYyxVQUFVLEdBQUc7QUFDN0csSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQWVPLE1BQWUsY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBWWxDLGFBQW9CLE1BQU0sT0FBNkU7QUFDckcsZUFBVyxRQUFRLE9BQU87QUFDeEIsWUFBTSxTQUFTLE1BQU0sV0FBVyxJQUFJO0FBQ3BDLFVBQUksQ0FBQyxPQUFPLGFBQWEsR0FBRztBQUMxQixlQUFPO0FBQUEsTUFDVDtBQUFBLElBQ0Y7QUFFQSxXQUFPLGNBQWMsUUFBUTtBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFlQSxPQUFjLFFBQVEsWUFBcUIsTUFBcUI7QUFDOUQsV0FBTyxJQUFJLGtCQUFrQixTQUFTO0FBQUEsRUFDeEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLFVBQXlCO0FBQ3JDLFdBQU8sS0FBSyxRQUFRLEtBQUs7QUFBQSxFQUMzQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsT0FBYyxhQUFhLFVBQWlDO0FBQzFELFdBQU8sSUFBSSxtQkFBbUIsUUFBUTtBQUFBLEVBQ3hDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsT0FBYyxZQUEyQjtBQUN2QyxXQUFPLElBQUksb0JBQW9CO0FBQUEsRUFDakM7QUFDRjtBQUtBLE1BQU0sMEJBQTBCLGNBQWM7QUFBQSxFQUNyQyxZQUE2QixlQUF3QjtBQUMxRCxVQUFNO0FBRDRCO0FBQUEsRUFFcEM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtnQixPQUFhO0FBQzNCLHdCQUFBQSxRQUFRLEtBQUssS0FBSyxnQkFBZ0IsSUFBSSxDQUFDO0FBQUEsRUFDekM7QUFBQSxFQUVtQixlQUF3QjtBQUN6QyxXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQ0Y7QUFLQSxNQUFNLDJCQUEyQixjQUFjO0FBQUEsRUFDdEMsWUFBNkIsVUFBa0I7QUFDcEQsVUFBTTtBQUQ0QjtBQUFBLEVBRXBDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLZ0IsT0FBYTtBQUMzQix3QkFBQUEsUUFBUSxLQUFLLEtBQUssUUFBUTtBQUFBLEVBQzVCO0FBQUEsRUFFbUIsZUFBd0I7QUFDekMsV0FBTyxLQUFLLGFBQWE7QUFBQSxFQUMzQjtBQUNGO0FBS0EsTUFBTSw0QkFBNEIsY0FBYztBQUFBLEVBQ3ZDLGNBQWM7QUFDbkIsVUFBTTtBQUFBLEVBQ1I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtnQixPQUFhO0FBQUEsRUFDN0I7QUFBQSxFQUVtQixlQUF3QjtBQUN6QyxXQUFPO0FBQUEsRUFDVDtBQUNGO0FBU0EsZUFBZSxXQUFXLFFBQTBFO0FBQ2xHLE1BQUk7QUFDRixXQUFPLE1BQU0sT0FBTyxLQUFLLGNBQWMsUUFBUTtBQUFBLEVBQ2pELFNBQVMsT0FBTztBQUNkLGlDQUFXLElBQUksTUFBTSwyQ0FBMkMsRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQ2pGLFdBQU8sY0FBYyxRQUFRO0FBQUEsRUFDL0I7QUFDRjtBQVFBLGVBQXNCLFlBQVksUUFBaUU7QUFDakcsUUFBTSxTQUFTLE1BQU0sV0FBVyxNQUFNO0FBQ3RDLFNBQU8sS0FBSztBQUNkO0FBU08sU0FBUyxjQUFjLE1BQXdCO0FBQ3BELFNBQU8sS0FDSixJQUFJLENBQUMsUUFBUTtBQUNaLFFBQUksVUFBVSxLQUFLLEdBQUcsR0FBRztBQUN2QixZQUFNLGFBQWEsSUFBSSxRQUFRLE1BQU0sS0FBTSxFQUFFLFFBQVEsT0FBTyxLQUFLO0FBQ2pFLGFBQU8sSUFBSSxVQUFVO0FBQUEsSUFDdkI7QUFDQSxXQUFPO0FBQUEsRUFDVCxDQUFDLEVBQ0EsS0FBSyxHQUFHO0FBQ2I7IiwKICAibmFtZXMiOiBbInByb2Nlc3MiXQp9Cg==
File without changes
File without changes