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
@@ -0,0 +1,97 @@
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 __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var Npm_exports = {};
25
+ __export(Npm_exports, {
26
+ editNpmPackage: () => editNpmPackage,
27
+ editNpmPackageLock: () => editNpmPackageLock,
28
+ getPackageJsonPath: () => getPackageJsonPath,
29
+ getPackageLockJsonPath: () => getPackageLockJsonPath,
30
+ readNpmPackage: () => readNpmPackage,
31
+ readNpmPackageLock: () => readNpmPackageLock,
32
+ writeNpmPackage: () => writeNpmPackage,
33
+ writeNpmPackageLock: () => writeNpmPackageLock
34
+ });
35
+ module.exports = __toCommonJS(Npm_exports);
36
+ var import_ObsidianPluginRepoPaths = require("../obsidian/Plugin/ObsidianPluginRepoPaths.cjs");
37
+ var import_JSON = require("./JSON.cjs");
38
+ var import_Root = require("./Root.cjs");
39
+ var __import_meta_url = globalThis["import.meta.url"] ?? (() => {
40
+ const normalizedPath = __filename.replace(/\\/g, "/");
41
+ const windowsDriveLetterMatch = /^([a-zA-Z]):/.exec(normalizedPath);
42
+ let path = normalizedPath;
43
+ if (windowsDriveLetterMatch) {
44
+ path = `/${windowsDriveLetterMatch[1].toUpperCase()}:${normalizedPath.slice(2)}`;
45
+ }
46
+ const encodedPath = encodeURIComponent(path).replace(/%2F/g, "/").replace(/%3A/g, ":");
47
+ return new URL(`file://${encodedPath}`);
48
+ })();
49
+ var __process = globalThis["process"] ?? {
50
+ "cwd": () => "/",
51
+ "env": {},
52
+ "platform": "android"
53
+ };
54
+ async function readNpmPackage(cwd) {
55
+ return await (0, import_JSON.readJson)(getPackageJsonPath(cwd));
56
+ }
57
+ async function writeNpmPackage(npmPackage, cwd) {
58
+ await (0, import_JSON.writeJson)(getPackageJsonPath(cwd), npmPackage);
59
+ }
60
+ async function editNpmPackage(editFn, options = {}) {
61
+ const {
62
+ cwd,
63
+ skipIfMissing
64
+ } = options;
65
+ await (0, import_JSON.editJson)(getPackageJsonPath(cwd), editFn, { skipIfMissing });
66
+ }
67
+ async function readNpmPackageLock(cwd) {
68
+ return await (0, import_JSON.readJson)(getPackageLockJsonPath(cwd));
69
+ }
70
+ async function writeNpmPackageLock(npmPackage, cwd) {
71
+ await (0, import_JSON.writeJson)(getPackageLockJsonPath(cwd), npmPackage);
72
+ }
73
+ async function editNpmPackageLock(editFn, options = {}) {
74
+ const {
75
+ cwd,
76
+ skipIfMissing
77
+ } = options;
78
+ await (0, import_JSON.editJson)(getPackageLockJsonPath(cwd), editFn, { skipIfMissing });
79
+ }
80
+ function getPackageJsonPath(cwd) {
81
+ return (0, import_Root.resolvePathFromRoot)(import_ObsidianPluginRepoPaths.ObsidianPluginRepoPaths.PackageJson, cwd);
82
+ }
83
+ function getPackageLockJsonPath(cwd) {
84
+ return (0, import_Root.resolvePathFromRoot)(import_ObsidianPluginRepoPaths.ObsidianPluginRepoPaths.PackageLockJson, cwd);
85
+ }
86
+ // Annotate the CommonJS export names for ESM import in node:
87
+ 0 && (module.exports = {
88
+ editNpmPackage,
89
+ editNpmPackageLock,
90
+ getPackageJsonPath,
91
+ getPackageLockJsonPath,
92
+ readNpmPackage,
93
+ readNpmPackageLock,
94
+ writeNpmPackage,
95
+ writeNpmPackageLock
96
+ });
97
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvTnBtLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzW1wiaW1wb3J0Lm1ldGEudXJsXCJdID8/ICgoKT0+e2NvbnN0IG5vcm1hbGl6ZWRQYXRoPV9fZmlsZW5hbWUucmVwbGFjZSgvXFxcXC9nLFwiL1wiKTtjb25zdCB3aW5kb3dzRHJpdmVMZXR0ZXJNYXRjaD0vXihbYS16QS1aXSk6Ly5leGVjKG5vcm1hbGl6ZWRQYXRoKTtsZXQgcGF0aD1ub3JtYWxpemVkUGF0aDtpZih3aW5kb3dzRHJpdmVMZXR0ZXJNYXRjaCl7cGF0aD1gLyR7d2luZG93c0RyaXZlTGV0dGVyTWF0Y2hbMV0udG9VcHBlckNhc2UoKX06JHtub3JtYWxpemVkUGF0aC5zbGljZSgyKX1gfWNvbnN0IGVuY29kZWRQYXRoPWVuY29kZVVSSUNvbXBvbmVudChwYXRoKS5yZXBsYWNlKC8lMkYvZyxcIi9cIikucmVwbGFjZSgvJTNBL2csXCI6XCIpO3JldHVybiBuZXcgVVJMKGBmaWxlOi8vJHtlbmNvZGVkUGF0aH1gKX0pKCk7XG52YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTnBtXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgTlBNIHBhY2thZ2UuanNvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4vUGx1Z2luL09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLnRzJztcbmltcG9ydCB7XG4gIGVkaXRKc29uLFxuICByZWFkSnNvbixcbiAgd3JpdGVKc29uXG59IGZyb20gJy4vSlNPTi50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290IH0gZnJvbSAnLi9Sb290LnRzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzdHJ1Y3R1cmUgb2YgYW4gYE5wbVBhY2thZ2VgIGFzIGRlZmluZWQgaW4gYSBgcGFja2FnZS5qc29uYCBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5wbVBhY2thZ2Uge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHBhY2thZ2UncyBkZXBlbmRlbmNpZXMsIHdoZXJlIHRoZSBrZXkgaXMgdGhlIHBhY2thZ2UgbmFtZVxuICAgKiBhbmQgdGhlIHZhbHVlIGlzIHRoZSB2ZXJzaW9uIHJlcXVpcmVkLlxuICAgKi9cbiAgZGVwZW5kZW5jaWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHBhY2thZ2UncyBkZXZlbG9wbWVudCBkZXBlbmRlbmNpZXMsIHdoZXJlIHRoZSBrZXkgaXMgdGhlIHBhY2thZ2UgbmFtZVxuICAgKiBhbmQgdGhlIHZhbHVlIGlzIHRoZSB2ZXJzaW9uIHJlcXVpcmVkLlxuICAgKi9cbiAgZGV2RGVwZW5kZW5jaWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgb2JqZWN0IHRoYXQgZGVmaW5lcyB0aGUgcGFja2FnZSdzIGV4cG9ydCBtYXBwaW5ncywgd2hlcmUgdGhlIGtleSBpcyB0aGUgZXhwb3J0IG5hbWVcbiAgICogYW5kIHRoZSB2YWx1ZSBpcyB0aGUgZXhwb3J0IGRldGFpbHMuXG4gICAqL1xuICBleHBvcnRzPzogUmVjb3JkPHN0cmluZywgRXhwb3J0PjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBwYWNrYWdlJ3MgcGVlciBkZXBlbmRlbmNpZXMsIHdoZXJlIHRoZSBrZXkgaXMgdGhlIHBhY2thZ2UgbmFtZVxuICAgKi9cbiAgcGFja2FnZXM/OiBSZWNvcmQ8c3RyaW5nLCBOcG1QYWNrYWdlPjtcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHBhY2thZ2UuXG4gICAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZXhwb3J0IGRldGFpbHMgaW4gdGhlIGBleHBvcnRzYCBmaWVsZCBvZiBhIGBwYWNrYWdlLmpzb25gIGZpbGUuXG4gKi9cbmludGVyZmFjZSBFeHBvcnQge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgZXhwb3J0IHBhdGggZm9yIHRoZSBwYWNrYWdlLlxuICAgKi9cbiAgZGVmYXVsdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgdHlwZXMgZmlsZSBmb3IgdGhlIHBhY2thZ2UuXG4gICAqL1xuICB0eXBlczogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGZyb20gdGhlIHNwZWNpZmllZCBkaXJlY3Rvcnkgb3IgZnJvbSB0aGUgcm9vdCBpZiBubyBkaXJlY3RvcnkgaXMgc3BlY2lmaWVkLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgcGFyc2VkIGBOcG1QYWNrYWdlYCBvYmplY3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkTnBtUGFja2FnZShjd2Q/OiBzdHJpbmcpOiBQcm9taXNlPE5wbVBhY2thZ2U+IHtcbiAgcmV0dXJuIGF3YWl0IHJlYWRKc29uPE5wbVBhY2thZ2U+KGdldFBhY2thZ2VKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBOcG1QYWNrYWdlYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLmpzb25gIGZpbGUgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3Rvcnkgb3IgaW4gdGhlIHJvb3QuXG4gKlxuICogQHBhcmFtIG5wbVBhY2thZ2UgLSBUaGUgYE5wbVBhY2thZ2VgIG9iamVjdCB0byB3cml0ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgcGFja2FnZS5qc29uYCBpcyBsb2NhdGVkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVOcG1QYWNrYWdlKG5wbVBhY2thZ2U6IE5wbVBhY2thZ2UsIGN3ZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCB3cml0ZUpzb24oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIG5wbVBhY2thZ2UpO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGVkaXRpbmcgYW4gTlBNIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdE5wbVBhY2thZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gICAqL1xuICBjd2Q/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHNraXBzIGVkaXRpbmcgaWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QuXG4gICAqL1xuICBza2lwSWZNaXNzaW5nPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZSB1c2luZyB0aGUgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZWRpdEZuIC0gVGhlIGZ1bmN0aW9uIHRvIGVkaXQgdGhlIHBhcnNlZCBgTnBtUGFja2FnZWAgb2JqZWN0LlxuICogQHBhcmFtIG9wdGlvbnMgLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIGVkaXRpbmcuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGhhcyBiZWVuIGVkaXRlZCBhbmQgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXROcG1QYWNrYWdlKFxuICBlZGl0Rm46IChucG1QYWNrYWdlOiBOcG1QYWNrYWdlKSA9PiBNYXliZVByb21pc2U8dm9pZD4sIG9wdGlvbnM6IEVkaXROcG1QYWNrYWdlT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBjd2QsXG4gICAgc2tpcElmTWlzc2luZ1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgZWRpdEpzb248TnBtUGFja2FnZT4oZ2V0UGFja2FnZUpzb25QYXRoKGN3ZCksIGVkaXRGbiwgeyBza2lwSWZNaXNzaW5nIH0pO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgZnJvbSB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBmcm9tIHRoZSByb290IGlmIG5vIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHBhcnNlZCBgTnBtUGFja2FnZWAgb2JqZWN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE5wbVBhY2thZ2VMb2NrKGN3ZD86IHN0cmluZyk6IFByb21pc2U8TnBtUGFja2FnZT4ge1xuICByZXR1cm4gYXdhaXQgcmVhZEpzb248TnBtUGFja2FnZT4oZ2V0UGFja2FnZUxvY2tKc29uUGF0aChjd2QpKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgdGhlIHByb3ZpZGVkIGBOcG1QYWNrYWdlYCBvYmplY3QgdG8gdGhlIGBwYWNrYWdlLWxvY2suanNvbmAgZmlsZSBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSBvciBpbiB0aGUgcm9vdC5cbiAqXG4gKiBAcGFyYW0gbnBtUGFja2FnZSAtIFRoZSBgTnBtUGFja2FnZWAgb2JqZWN0IHRvIHdyaXRlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlTnBtUGFja2FnZUxvY2sobnBtUGFja2FnZTogTnBtUGFja2FnZSwgY3dkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHdyaXRlSnNvbihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIG5wbVBhY2thZ2UpO1xufVxuXG4vKipcbiAqIFJlYWRzLCBlZGl0cywgYW5kIHdyaXRlcyBiYWNrIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUgdXNpbmcgdGhlIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGVkaXRGbiAtIFRoZSBmdW5jdGlvbiB0byBlZGl0IHRoZSBwYXJzZWQgYE5wbVBhY2thZ2VgIG9iamVjdC5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBlZGl0aW5nLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiBlZGl0ZWQgYW5kIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlZGl0TnBtUGFja2FnZUxvY2soXG4gIGVkaXRGbjogKG5wbVBhY2thZ2U6IE5wbVBhY2thZ2UpID0+IE1heWJlUHJvbWlzZTx2b2lkPixcbiAgb3B0aW9uczogRWRpdE5wbVBhY2thZ2VPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGN3ZCxcbiAgICBza2lwSWZNaXNzaW5nXG4gIH0gPSBvcHRpb25zO1xuICBhd2FpdCBlZGl0SnNvbjxOcG1QYWNrYWdlPihnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZCksIGVkaXRGbiwgeyBza2lwSWZNaXNzaW5nIH0pO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwYXRoIHRvIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG9yIGluIHRoZSByb290IGlmIG5vIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLmpzb25gIGlzIGxvY2F0ZWQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgcGF0aCB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VKc29uUGF0aChjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZVBhdGhGcm9tUm9vdChPYnNpZGlhblBsdWdpblJlcG9QYXRocy5QYWNrYWdlSnNvbiwgY3dkKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgcGF0aCB0byB0aGUgYHBhY2thZ2UtbG9jay5qc29uYCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IG9yIGluIHRoZSByb290IGlmIG5vIGRpcmVjdG9yeSBpcyBzcGVjaWZpZWQuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBwYWNrYWdlLWxvY2suanNvbmAgaXMgbG9jYXRlZC5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIHRvIHRoZSBgcGFja2FnZS1sb2NrLmpzb25gIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTG9ja0pzb25QYXRoKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXNvbHZlUGF0aEZyb21Sb290KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlBhY2thZ2VMb2NrSnNvbiwgY3dkKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUEscUNBQXdDO0FBQ3hDLGtCQUlPO0FBQ1Asa0JBQW9DO0FBbEJwQyxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUk7QUFBQyxRQUFNLGlCQUFlLFdBQVcsUUFBUSxPQUFNLEdBQUc7QUFBRSxRQUFNLDBCQUF3QixlQUFlLEtBQUssY0FBYztBQUFFLE1BQUksT0FBSztBQUFlLE1BQUcseUJBQXdCO0FBQUMsV0FBSyxJQUFJLHdCQUF3QixDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksZUFBZSxNQUFNLENBQUMsQ0FBQztBQUFBLEVBQUU7QUFBQyxRQUFNLGNBQVksbUJBQW1CLElBQUksRUFBRSxRQUFRLFFBQU8sR0FBRyxFQUFFLFFBQVEsUUFBTyxHQUFHO0FBQUUsU0FBTyxJQUFJLElBQUksVUFBVSxXQUFXLEVBQUU7QUFBQyxHQUFHO0FBQ3BiLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUEwRUEsZUFBc0IsZUFBZSxLQUFtQztBQUN0RSxTQUFPLFVBQU0sc0JBQXFCLG1CQUFtQixHQUFHLENBQUM7QUFDM0Q7QUFTQSxlQUFzQixnQkFBZ0IsWUFBd0IsS0FBNkI7QUFDekYsWUFBTSx1QkFBVSxtQkFBbUIsR0FBRyxHQUFHLFVBQVU7QUFDckQ7QUF3QkEsZUFBc0IsZUFDcEIsUUFBd0QsVUFBaUMsQ0FBQyxHQUFrQjtBQUM1RyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixZQUFNLHNCQUFxQixtQkFBbUIsR0FBRyxHQUFHLFFBQVEsRUFBRSxjQUFjLENBQUM7QUFDL0U7QUFRQSxlQUFzQixtQkFBbUIsS0FBbUM7QUFDMUUsU0FBTyxVQUFNLHNCQUFxQix1QkFBdUIsR0FBRyxDQUFDO0FBQy9EO0FBU0EsZUFBc0Isb0JBQW9CLFlBQXdCLEtBQTZCO0FBQzdGLFlBQU0sdUJBQVUsdUJBQXVCLEdBQUcsR0FBRyxVQUFVO0FBQ3pEO0FBU0EsZUFBc0IsbUJBQ3BCLFFBQ0EsVUFBaUMsQ0FBQyxHQUFrQjtBQUNwRCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixZQUFNLHNCQUFxQix1QkFBdUIsR0FBRyxHQUFHLFFBQVEsRUFBRSxjQUFjLENBQUM7QUFDbkY7QUFRTyxTQUFTLG1CQUFtQixLQUFzQjtBQUN2RCxhQUFPLGlDQUFvQix1REFBd0IsYUFBYSxHQUFHO0FBQ3JFO0FBUU8sU0FBUyx1QkFBdUIsS0FBc0I7QUFDM0QsYUFBTyxpQ0FBb0IsdURBQXdCLGlCQUFpQixHQUFHO0FBQ3pFOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -2,7 +2,7 @@
2
2
  * @packageDocumentation Npm
3
3
  * Contains utility functions for NPM package.json.
4
4
  */
5
- import type { MaybePromise } from "./Async.ts";
5
+ import type { MaybePromise } from '../Async.ts';
6
6
  /**
7
7
  * Represents the structure of an `NpmPackage` as defined in a `package.json` file.
8
8
  */
@@ -66,7 +66,7 @@ export declare function writeNpmPackage(npmPackage: NpmPackage, cwd?: string): P
66
66
  /**
67
67
  * Options for editing an NPM package.
68
68
  */
69
- export type EditNpmPackageOptions = {
69
+ export interface EditNpmPackageOptions {
70
70
  /**
71
71
  * The current working directory where `package.json` is located.
72
72
  */
@@ -75,7 +75,7 @@ export type EditNpmPackageOptions = {
75
75
  * If true, skips editing if the file does not exist.
76
76
  */
77
77
  skipIfMissing?: boolean | undefined;
78
- };
78
+ }
79
79
  /**
80
80
  * Reads, edits, and writes back the `package.json` file using the provided edit function.
81
81
  *
@@ -0,0 +1,76 @@
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 __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var ObsidianDevUtilsRepoPaths_exports = {};
25
+ __export(ObsidianDevUtilsRepoPaths_exports, {
26
+ ObsidianDevUtilsRepoPaths: () => ObsidianDevUtilsRepoPaths
27
+ });
28
+ module.exports = __toCommonJS(ObsidianDevUtilsRepoPaths_exports);
29
+ var __import_meta_url = globalThis["import.meta.url"] ?? (() => {
30
+ const normalizedPath = __filename.replace(/\\/g, "/");
31
+ const windowsDriveLetterMatch = /^([a-zA-Z]):/.exec(normalizedPath);
32
+ let path = normalizedPath;
33
+ if (windowsDriveLetterMatch) {
34
+ path = `/${windowsDriveLetterMatch[1].toUpperCase()}:${normalizedPath.slice(2)}`;
35
+ }
36
+ const encodedPath = encodeURIComponent(path).replace(/%2F/g, "/").replace(/%3A/g, ":");
37
+ return new URL(`file://${encodedPath}`);
38
+ })();
39
+ var __process = globalThis["process"] ?? {
40
+ "cwd": () => "/",
41
+ "env": {},
42
+ "platform": "android"
43
+ };
44
+ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) => {
45
+ ObsidianDevUtilsRepoPaths2["Any"] = "*";
46
+ ObsidianDevUtilsRepoPaths2["AnyPath"] = "**";
47
+ ObsidianDevUtilsRepoPaths2["AnyCjs"] = "*.cjs";
48
+ ObsidianDevUtilsRepoPaths2["AnyDts"] = "*.d.ts";
49
+ ObsidianDevUtilsRepoPaths2["AnyTs"] = "*.ts";
50
+ ObsidianDevUtilsRepoPaths2["ChangelogMd"] = "CHANGELOG.md";
51
+ ObsidianDevUtilsRepoPaths2["Dist"] = "dist";
52
+ ObsidianDevUtilsRepoPaths2["DistEslintConfigEmptyCjs"] = "dist/eslint.config.empty.cjs";
53
+ ObsidianDevUtilsRepoPaths2["DistLib"] = "dist/lib";
54
+ ObsidianDevUtilsRepoPaths2["DistLibDependenciesCjs"] = "./dist/lib/_dependencies.cjs";
55
+ ObsidianDevUtilsRepoPaths2["DtsExtension"] = ".d.ts";
56
+ ObsidianDevUtilsRepoPaths2["IndexCjs"] = "index.cjs";
57
+ ObsidianDevUtilsRepoPaths2["IndexDts"] = "index.d.ts";
58
+ ObsidianDevUtilsRepoPaths2["IndexTs"] = "index.ts";
59
+ ObsidianDevUtilsRepoPaths2["License"] = "LICENSE";
60
+ ObsidianDevUtilsRepoPaths2["NodeModules"] = "node_modules";
61
+ ObsidianDevUtilsRepoPaths2["PackageJson"] = "package.json";
62
+ ObsidianDevUtilsRepoPaths2["ReadmeMd"] = "README.md";
63
+ ObsidianDevUtilsRepoPaths2["Scripts"] = "scripts";
64
+ ObsidianDevUtilsRepoPaths2["Src"] = "src";
65
+ ObsidianDevUtilsRepoPaths2["SrcObsidianTypesDataview"] = "src/obsidian/@types/Dataview";
66
+ ObsidianDevUtilsRepoPaths2["SrcDependenciesTs"] = "./src/_dependencies.ts";
67
+ ObsidianDevUtilsRepoPaths2["Static"] = "static";
68
+ ObsidianDevUtilsRepoPaths2["TsConfigJson"] = "tsconfig.json";
69
+ ObsidianDevUtilsRepoPaths2["Types"] = "@types";
70
+ return ObsidianDevUtilsRepoPaths2;
71
+ })(ObsidianDevUtilsRepoPaths || {});
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ ObsidianDevUtilsRepoPaths
75
+ });
76
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1tcImltcG9ydC5tZXRhLnVybFwiXSA/PyAoKCk9Pntjb25zdCBub3JtYWxpemVkUGF0aD1fX2ZpbGVuYW1lLnJlcGxhY2UoL1xcXFwvZyxcIi9cIik7Y29uc3Qgd2luZG93c0RyaXZlTGV0dGVyTWF0Y2g9L14oW2EtekEtWl0pOi8uZXhlYyhub3JtYWxpemVkUGF0aCk7bGV0IHBhdGg9bm9ybWFsaXplZFBhdGg7aWYod2luZG93c0RyaXZlTGV0dGVyTWF0Y2gpe3BhdGg9YC8ke3dpbmRvd3NEcml2ZUxldHRlck1hdGNoWzFdLnRvVXBwZXJDYXNlKCl9OiR7bm9ybWFsaXplZFBhdGguc2xpY2UoMil9YH1jb25zdCBlbmNvZGVkUGF0aD1lbmNvZGVVUklDb21wb25lbnQocGF0aCkucmVwbGFjZSgvJTJGL2csXCIvXCIpLnJlcGxhY2UoLyUzQS9nLFwiOlwiKTtyZXR1cm4gbmV3IFVSTChgZmlsZTovLyR7ZW5jb2RlZFBhdGh9YCl9KSgpO1xudmFyIF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbXCJwcm9jZXNzXCJdID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHNcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuZXhwb3J0IGVudW0gT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB7XG4gIC8qKiBNYXRjaGVzIGFueSBmaWxlIG9yIGRpcmVjdG9yeSAoYCpgKS4gKi9cbiAgQW55ID0gJyonLFxuXG4gIC8qKiBNYXRjaGVzIGFueSBwYXRoIHJlY3Vyc2l2ZWx5IChgKipgKS4gKi9cbiAgQW55UGF0aCA9ICcqKicsXG5cbiAgLyoqIE1hdGNoZXMgYW55IGAuY2pzYCBmaWxlIChgKi5janNgKS4gKi9cbiAgQW55Q2pzID0gJyouY2pzJyxcblxuICAvKiogTWF0Y2hlcyBhbnkgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIChgKi5kLnRzYCkuICovXG4gIEFueUR0cyA9ICcqLmQudHMnLFxuXG4gIC8qKiBNYXRjaGVzIGFueSBUeXBlU2NyaXB0IGZpbGUgKGAqLnRzYCkuICovXG4gIEFueVRzID0gJyoudHMnLFxuXG4gIC8qKiBUaGUgcGF0aCB0byB0aGUgYENIQU5HRUxPRy5tZGAgZmlsZS4gKi9cbiAgQ2hhbmdlbG9nTWQgPSAnQ0hBTkdFTE9HLm1kJyxcblxuICAvKiogVGhlIHBhdGggdG8gdGhlIGRpc3RyaWJ1dGlvbiAoYGRpc3RgKSBkaXJlY3RvcnkuICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqIFRoZSBwYXRoIHRvIHRoZSBlbXB0eSBFU0xpbnQgY29uZmlnIGluIENvbW1vbkpTIGZvcm1hdCB3aXRoaW4gdGhlIGBkaXN0YCBkaXJlY3RvcnkuICovXG4gIERpc3RFc2xpbnRDb25maWdFbXB0eUNqcyA9ICdkaXN0L2VzbGludC5jb25maWcuZW1wdHkuY2pzJyxcblxuICAvKiogVGhlIHBhdGggdG8gdGhlIGBsaWJgIGRpcmVjdG9yeSB3aXRoaW4gdGhlIGBkaXN0YCBkaXJlY3RvcnkuICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKiBUaGUgcGF0aCB0byB0aGUgYF9kZXBlbmRlbmNpZXMuY2pzYCBmaWxlIHdpdGhpbiB0aGUgYGxpYmAgZGlyZWN0b3J5IGluIHRoZSBgZGlzdGAgZGlyZWN0b3J5LiAqL1xuICBEaXN0TGliRGVwZW5kZW5jaWVzQ2pzID0gJy4vZGlzdC9saWIvX2RlcGVuZGVuY2llcy5janMnLFxuXG4gIC8qKiBUaGUgYC5kLnRzYCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRHRzRXh0ZW5zaW9uID0gJy5kLnRzJyxcblxuICAvKiogVGhlIHBhdGggdG8gdGhlIGBpbmRleC5janNgIGZpbGUuICovXG4gIEluZGV4Q2pzID0gJ2luZGV4LmNqcycsXG5cbiAgLyoqIFRoZSBwYXRoIHRvIHRoZSBgaW5kZXguZC50c2AgZmlsZS4gKi9cbiAgSW5kZXhEdHMgPSAnaW5kZXguZC50cycsXG5cbiAgLyoqIFRoZSBwYXRoIHRvIHRoZSBgaW5kZXgudHNgIGZpbGUuICovXG4gIEluZGV4VHMgPSAnaW5kZXgudHMnLFxuXG4gIC8qKiBUaGUgcGF0aCB0byB0aGUgYExJQ0VOU0VgIGZpbGUuICovXG4gIExpY2Vuc2UgPSAnTElDRU5TRScsXG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBgbm9kZV9tb2R1bGVzYCBkaXJlY3RvcnkuXG4gICAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKiBUaGUgcGF0aCB0byB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZS4gKi9cbiAgUGFja2FnZUpzb24gPSAncGFja2FnZS5qc29uJyxcblxuICAvKiogVGhlIHBhdGggdG8gdGhlIGBSRUFETUUubWRgIGZpbGUuICovXG4gIFJlYWRtZU1kID0gJ1JFQURNRS5tZCcsXG5cbiAgLyoqIFRoZSBwYXRoIHRvIHRoZSBgc2NyaXB0c2AgZGlyZWN0b3J5LiAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKiBUaGUgcGF0aCB0byB0aGUgYHNyY2AgZGlyZWN0b3J5LiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogVGhlIHBhdGggdG8gdGhlIGBzcmNgIGRpcmVjdG9yeS4gKi9cbiAgU3JjT2JzaWRpYW5UeXBlc0RhdGF2aWV3ID0gJ3NyYy9vYnNpZGlhbi9AdHlwZXMvRGF0YXZpZXcnLFxuXG4gIC8qKiBUaGUgcGF0aCB0byB0aGUgYF9kZXBlbmRlbmNpZXMudHNgIGZpbGUgd2l0aGluIHRoZSBgc3JjYCBkaXJlY3RvcnkuICovXG4gIFNyY0RlcGVuZGVuY2llc1RzID0gJy4vc3JjL19kZXBlbmRlbmNpZXMudHMnLFxuXG4gIC8qKiBUaGUgcGF0aCB0byB0aGUgYHN0YXRpY2AgZGlyZWN0b3J5LiAqL1xuICBTdGF0aWMgPSAnc3RhdGljJyxcblxuICAvKiogVGhlIHBhdGggdG8gdGhlIGB0c2NvbmZpZy5qc29uYCBmaWxlLiAqL1xuICBUc0NvbmZpZ0pzb24gPSAndHNjb25maWcuanNvbicsXG5cbiAgLyoqIFRoZSBwYXRoIHRvIHRoZSBgQHR5cGVzYCBkaXJlY3RvcnksIHR5cGljYWxseSB1c2VkIGZvciBUeXBlU2NyaXB0IHR5cGUgZGVjbGFyYXRpb25zLiAqL1xuICBUeXBlcyA9ICdAdHlwZXMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUk7QUFBQyxRQUFNLGlCQUFlLFdBQVcsUUFBUSxPQUFNLEdBQUc7QUFBRSxRQUFNLDBCQUF3QixlQUFlLEtBQUssY0FBYztBQUFFLE1BQUksT0FBSztBQUFlLE1BQUcseUJBQXdCO0FBQUMsV0FBSyxJQUFJLHdCQUF3QixDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksZUFBZSxNQUFNLENBQUMsQ0FBQztBQUFBLEVBQUU7QUFBQyxRQUFNLGNBQVksbUJBQW1CLElBQUksRUFBRSxRQUFRLFFBQU8sR0FBRyxFQUFFLFFBQVEsUUFBTyxHQUFHO0FBQUUsU0FBTyxJQUFJLElBQUksVUFBVSxXQUFXLEVBQUU7QUFBQyxHQUFHO0FBQ3BiLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUFRTyxJQUFLLDRCQUFMLGtCQUFLQSwrQkFBTDtBQUVMLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxXQUFRO0FBR1IsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxVQUFPO0FBR1AsRUFBQUEsMkJBQUEsOEJBQTJCO0FBRzNCLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSw0QkFBeUI7QUFHekIsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsY0FBVztBQUdYLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGNBQVc7QUFHWCxFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLDhCQUEyQjtBQUczQixFQUFBQSwyQkFBQSx1QkFBb0I7QUFHcEIsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsV0FBUTtBQTVFRSxTQUFBQTtBQUFBLEdBQUE7IiwKICAibmFtZXMiOiBbIk9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMiXQp9Cg==
@@ -35,6 +35,10 @@ export declare enum ObsidianDevUtilsRepoPaths {
35
35
  IndexTs = "index.ts",
36
36
  /** The path to the `LICENSE` file. */
37
37
  License = "LICENSE",
38
+ /**
39
+ * The path to the `node_modules` directory.
40
+ */
41
+ NodeModules = "node_modules",
38
42
  /** The path to the `package.json` file. */
39
43
  PackageJson = "package.json",
40
44
  /** The path to the `README.md` file. */
@@ -0,0 +1,142 @@
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 __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var Root_exports = {};
25
+ __export(Root_exports, {
26
+ execFromRoot: () => execFromRoot,
27
+ getRootDir: () => getRootDir,
28
+ resolvePathFromRoot: () => resolvePathFromRoot,
29
+ toRelativeFromRoot: () => toRelativeFromRoot
30
+ });
31
+ module.exports = __toCommonJS(Root_exports);
32
+ var import_pkg_dir = require("./../_dependencies.cjs").pkg_dir.default ?? require("./../_dependencies.cjs").pkg_dir;
33
+ var import_Path = require("../Path.cjs");
34
+ var import_String = require("../String.cjs");
35
+ var import_CliUtils = require("./CliUtils.cjs");
36
+ var import_NodeModules = require("./NodeModules.cjs");
37
+ var __import_meta_url = globalThis["import.meta.url"] ?? (() => {
38
+ const normalizedPath = __filename.replace(/\\/g, "/");
39
+ const windowsDriveLetterMatch = /^([a-zA-Z]):/.exec(normalizedPath);
40
+ let path = normalizedPath;
41
+ if (windowsDriveLetterMatch) {
42
+ path = `/${windowsDriveLetterMatch[1].toUpperCase()}:${normalizedPath.slice(2)}`;
43
+ }
44
+ const encodedPath = encodeURIComponent(path).replace(/%2F/g, "/").replace(/%3A/g, ":");
45
+ return new URL(`file://${encodedPath}`);
46
+ })();
47
+ var __process = globalThis["process"] ?? {
48
+ "cwd": () => "/",
49
+ "env": {},
50
+ "platform": "android"
51
+ };
52
+ function execFromRoot(command, options = {}) {
53
+ const {
54
+ quiet = false,
55
+ ignoreExitCode = false,
56
+ stdin = "",
57
+ cwd = void 0,
58
+ withDetails = false
59
+ } = options;
60
+ if (Array.isArray(command)) {
61
+ command = (0, import_CliUtils.toCommandLine)(command);
62
+ }
63
+ return new Promise((resolve2, reject) => {
64
+ console.log(`Executing command: ${command}`);
65
+ const [cmd = "", ...args] = command.split(" ");
66
+ const child = (0, import_NodeModules.spawn)(cmd, args, {
67
+ cwd: getRootDir(cwd),
68
+ stdio: "pipe",
69
+ shell: true
70
+ });
71
+ let stdout = "";
72
+ let stderr = "";
73
+ child.stdin.write(stdin);
74
+ child.stdin.end();
75
+ child.stdout.on("data", (data) => {
76
+ if (!quiet) {
77
+ import_NodeModules.process.stdout.write(data);
78
+ }
79
+ stdout += data.toString("utf-8");
80
+ });
81
+ child.stdout.on("end", () => {
82
+ stdout = (0, import_String.trimEnd)(stdout, "\n");
83
+ });
84
+ child.stderr.on("data", (data) => {
85
+ if (!quiet) {
86
+ import_NodeModules.process.stderr.write(data);
87
+ }
88
+ stderr += data.toString("utf-8");
89
+ });
90
+ child.stderr.on("end", () => {
91
+ stderr = (0, import_String.trimEnd)(stderr, "\n");
92
+ });
93
+ child.on("close", (exitCode, exitSignal) => {
94
+ if (exitCode !== 0 && !ignoreExitCode) {
95
+ reject(new Error(`Command failed with exit code ${exitCode?.toString() ?? "(null)"}
96
+ ${stderr}`));
97
+ } else {
98
+ resolve2(!withDetails ? stdout : {
99
+ exitCode,
100
+ exitSignal,
101
+ stderr,
102
+ stdout
103
+ });
104
+ }
105
+ });
106
+ child.on("error", (err) => {
107
+ if (!ignoreExitCode) {
108
+ reject(err);
109
+ } else {
110
+ resolve2(!withDetails ? stdout : {
111
+ exitCode: null,
112
+ exitSignal: null,
113
+ stderr,
114
+ stdout
115
+ });
116
+ }
117
+ });
118
+ });
119
+ }
120
+ function resolvePathFromRoot(path, cwd) {
121
+ return (0, import_Path.resolve)(getRootDir(cwd), path);
122
+ }
123
+ function getRootDir(cwd) {
124
+ const rootDir = (0, import_pkg_dir.packageDirectorySync)({ cwd: cwd ?? import_NodeModules.process.cwd() });
125
+ if (!rootDir) {
126
+ throw new Error("Could not find root directory");
127
+ }
128
+ return (0, import_Path.toPosixPath)(rootDir);
129
+ }
130
+ function toRelativeFromRoot(path, cwd) {
131
+ const rootDir = getRootDir(cwd);
132
+ path = (0, import_Path.toPosixPath)(path);
133
+ return (0, import_Path.relative)(rootDir, path);
134
+ }
135
+ // Annotate the CommonJS export names for ESM import in node:
136
+ 0 && (module.exports = {
137
+ execFromRoot,
138
+ getRootDir,
139
+ resolvePathFromRoot,
140
+ toRelativeFromRoot
141
+ });
142
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvUm9vdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1tcImltcG9ydC5tZXRhLnVybFwiXSA/PyAoKCk9Pntjb25zdCBub3JtYWxpemVkUGF0aD1fX2ZpbGVuYW1lLnJlcGxhY2UoL1xcXFwvZyxcIi9cIik7Y29uc3Qgd2luZG93c0RyaXZlTGV0dGVyTWF0Y2g9L14oW2EtekEtWl0pOi8uZXhlYyhub3JtYWxpemVkUGF0aCk7bGV0IHBhdGg9bm9ybWFsaXplZFBhdGg7aWYod2luZG93c0RyaXZlTGV0dGVyTWF0Y2gpe3BhdGg9YC8ke3dpbmRvd3NEcml2ZUxldHRlck1hdGNoWzFdLnRvVXBwZXJDYXNlKCl9OiR7bm9ybWFsaXplZFBhdGguc2xpY2UoMil9YH1jb25zdCBlbmNvZGVkUGF0aD1lbmNvZGVVUklDb21wb25lbnQocGF0aCkucmVwbGFjZSgvJTJGL2csXCIvXCIpLnJlcGxhY2UoLyUzQS9nLFwiOlwiKTtyZXR1cm4gbmV3IFVSTChgZmlsZTovLyR7ZW5jb2RlZFBhdGh9YCl9KSgpO1xudmFyIF9fcHJvY2VzcyA9IGdsb2JhbFRoaXNbXCJwcm9jZXNzXCJdID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFJvb3RcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBleGVjdXRpbmcgY29tbWFuZHMgZnJvbSB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgYSBwcm9qZWN0LFxuICogcmVzb2x2aW5nIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSByb290LlxuICovXG5cbmltcG9ydCB7IHBhY2thZ2VEaXJlY3RvcnlTeW5jIH0gZnJvbSAncGtnLWRpcic7XG5cbmltcG9ydCB7XG4gIHJlbGF0aXZlLFxuICByZXNvbHZlXG4gICwgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQgeyB0cmltRW5kIH0gZnJvbSAnLi4vU3RyaW5nLnRzJztcbmltcG9ydCB7IHRvQ29tbWFuZExpbmUgfSBmcm9tICcuL0NsaVV0aWxzLnRzJztcbmltcG9ydCB7XG4gIHByb2Nlc3MsXG4gIHNwYXduXG59IGZyb20gJy4vTm9kZU1vZHVsZXMudHMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHJlc3VsdCBvZiBleGVjdXRpbmcgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWNGcm9tUm9vdFJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgZXhpdCBjb2RlIG9mIHRoZSBjb21tYW5kLiBBIHZhbHVlIG9mIGBudWxsYCBpbmRpY2F0ZXMgdGhhdCB0aGUgcHJvY2VzcyBkaWQgbm90IGV4aXQgbm9ybWFsbHkuXG4gICAqL1xuICBleGl0Q29kZTogbnVtYmVyIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIHNpZ25hbCB0aGF0IGNhdXNlZCB0aGUgcHJvY2VzcyB0byBiZSB0ZXJtaW5hdGVkLiBBIHZhbHVlIG9mIGBudWxsYCBpbmRpY2F0ZXMgdGhhdCBubyBzaWduYWwgd2FzIHJlY2VpdmVkLlxuICAgKi9cbiAgZXhpdFNpZ25hbDogTm9kZUpTLlNpZ25hbHMgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhbmRhcmQgZXJyb3Igb3V0cHV0IGZyb20gdGhlIGNvbW1hbmQuXG4gICAqL1xuICBzdGRlcnI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YW5kYXJkIG91dHB1dCBmcm9tIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgc3Rkb3V0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZXhlY3V0aW5nIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjRnJvbVJvb3RPcHRpb24ge1xuICAvKipcbiAgICogSWYgdHJ1ZSwgc3VwcHJlc3NlcyB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgcXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCBpZ25vcmVzIHRoZSBleGl0IGNvZGUgb2YgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBpZ25vcmVFeGl0Q29kZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCB0byBiZSBwYXNzZWQgdG8gdGhlIGNvbW1hbmQuXG4gICAqL1xuICBzdGRpbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoZSBjb21tYW5kIGV4ZWN1dGlvbi5cbiAgICovXG4gIGN3ZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSWYgZmFsc2UsIG9ubHkgcmV0dXJucyB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kLlxuICAgKi9cbiAgd2l0aERldGFpbHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZC5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbW1hbmQgZmFpbHMgd2l0aCBhIG5vbi16ZXJvIGV4aXQgY29kZSBhbmQgaWdub3JlRXhpdENvZGUgaXMgZmFsc2UuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyB0cnVlLFxuICogICAgICAgICB0aGUgZXJyb3IgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgc3Rkb3V0IGFuZCBzdGRlcnIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjRnJvbVJvb3QoY29tbWFuZDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBFeGVjRnJvbVJvb3RPcHRpb24gJiB7IHdpdGhEZXRhaWxzPzogZmFsc2UgfSk6IFByb21pc2U8c3RyaW5nPjtcblxuLyoqXG4gKiBFeGVjdXRlcyBhIGNvbW1hbmQgZnJvbSB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBleGVjdXRlLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBleGVjdXRpb24uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGZhbHNlLlxuICogICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSBpbmNsdWRlcyB0aGUgZXhpdCBjb2RlIGFuZCBzdGRlcnIuXG4gKiAgICAgICAgIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgaWdub3JlRXhpdENvZGUgaXMgdHJ1ZSxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBFeGVjRnJvbVJvb3RPcHRpb24gJiB7IHdpdGhEZXRhaWxzOiB0cnVlIH0pOiBQcm9taXNlPEV4ZWNGcm9tUm9vdFJlc3VsdD47XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIG9yIGFuIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGZhbHNlLlxuICogICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSBpbmNsdWRlcyB0aGUgZXhpdCBjb2RlIGFuZCBzdGRlcnIuXG4gKiAgICAgICAgIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgaWdub3JlRXhpdENvZGUgaXMgdHJ1ZSxcbiAqICAgICAgICAgdGhlIGVycm9yIGlzIHJlc29sdmVkIHdpdGggdGhlIHN0ZG91dCBhbmQgc3RkZXJyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY0Zyb21Sb290KGNvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBFeGVjRnJvbVJvb3RPcHRpb24gPSB7fSk6IFByb21pc2U8c3RyaW5nIHwgRXhlY0Zyb21Sb290UmVzdWx0PiB7XG4gIGNvbnN0IHtcbiAgICBxdWlldCA9IGZhbHNlLFxuICAgIGlnbm9yZUV4aXRDb2RlID0gZmFsc2UsXG4gICAgc3RkaW4gPSAnJyxcbiAgICBjd2QgPSB1bmRlZmluZWQsXG4gICAgd2l0aERldGFpbHMgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgaWYgKEFycmF5LmlzQXJyYXkoY29tbWFuZCkpIHtcbiAgICBjb21tYW5kID0gdG9Db21tYW5kTGluZShjb21tYW5kKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc29sZS5sb2coYEV4ZWN1dGluZyBjb21tYW5kOiAke2NvbW1hbmR9YCk7XG4gICAgY29uc3QgW2NtZCA9ICcnLCAuLi5hcmdzXSA9IGNvbW1hbmQuc3BsaXQoJyAnKTtcblxuICAgIGNvbnN0IGNoaWxkID0gc3Bhd24oY21kLCBhcmdzLCB7XG4gICAgICBjd2Q6IGdldFJvb3REaXIoY3dkKSxcbiAgICAgIHN0ZGlvOiAncGlwZScsXG4gICAgICBzaGVsbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgbGV0IHN0ZG91dCA9ICcnO1xuICAgIGxldCBzdGRlcnIgPSAnJztcblxuICAgIGNoaWxkLnN0ZGluLndyaXRlKHN0ZGluKTtcbiAgICBjaGlsZC5zdGRpbi5lbmQoKTtcblxuICAgIGNoaWxkLnN0ZG91dC5vbignZGF0YScsIChkYXRhOiBCdWZmZXIpID0+IHtcbiAgICAgIGlmICghcXVpZXQpIHtcbiAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZGF0YSk7XG4gICAgICB9XG4gICAgICBzdGRvdXQgKz0gZGF0YS50b1N0cmluZygndXRmLTgnKTtcbiAgICB9KTtcblxuICAgIGNoaWxkLnN0ZG91dC5vbignZW5kJywgKCkgPT4ge1xuICAgICAgc3Rkb3V0ID0gdHJpbUVuZChzdGRvdXQsICdcXG4nKTtcbiAgICB9KTtcblxuICAgIGNoaWxkLnN0ZGVyci5vbignZGF0YScsIChkYXRhOiBCdWZmZXIpID0+IHtcbiAgICAgIGlmICghcXVpZXQpIHtcbiAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoZGF0YSk7XG4gICAgICB9XG4gICAgICBzdGRlcnIgKz0gZGF0YS50b1N0cmluZygndXRmLTgnKTtcbiAgICB9KTtcblxuICAgIGNoaWxkLnN0ZGVyci5vbignZW5kJywgKCkgPT4ge1xuICAgICAgc3RkZXJyID0gdHJpbUVuZChzdGRlcnIsICdcXG4nKTtcbiAgICB9KTtcblxuICAgIGNoaWxkLm9uKCdjbG9zZScsIChleGl0Q29kZSwgZXhpdFNpZ25hbCkgPT4ge1xuICAgICAgaWYgKGV4aXRDb2RlICE9PSAwICYmICFpZ25vcmVFeGl0Q29kZSkge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKGBDb21tYW5kIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAke2V4aXRDb2RlPy50b1N0cmluZygpID8/ICcobnVsbCknfVxcbiR7c3RkZXJyfWApKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoIXdpdGhEZXRhaWxzXG4gICAgICAgICAgPyBzdGRvdXRcbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgZXhpdENvZGUsXG4gICAgICAgICAgICAgIGV4aXRTaWduYWwsXG4gICAgICAgICAgICAgIHN0ZGVycixcbiAgICAgICAgICAgICAgc3Rkb3V0XG4gICAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNoaWxkLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgIGlmICghaWdub3JlRXhpdENvZGUpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKCF3aXRoRGV0YWlsc1xuICAgICAgICAgID8gc3Rkb3V0XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGV4aXRDb2RlOiBudWxsLFxuICAgICAgICAgICAgICBleGl0U2lnbmFsOiBudWxsLFxuICAgICAgICAgICAgICBzdGRlcnIsXG4gICAgICAgICAgICAgIHN0ZG91dFxuICAgICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byByZXNvbHZlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhYnNvbHV0ZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhdGhGcm9tUm9vdChwYXRoOiBzdHJpbmcsIGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXNvbHZlKGdldFJvb3REaXIoY3dkKSwgcGF0aCk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5LlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBkaXJlY3RvcnkgY2Fubm90IGJlIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdERpcihjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByb290RGlyID0gcGFja2FnZURpcmVjdG9yeVN5bmMoeyBjd2Q6IGN3ZCA/PyBwcm9jZXNzLmN3ZCgpIH0pO1xuICBpZiAoIXJvb3REaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZGlyZWN0b3J5Jyk7XG4gIH1cblxuICByZXR1cm4gdG9Qb3NpeFBhdGgocm9vdERpcik7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYWJzb2x1dGUgcGF0aCB0byBhIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byBjb252ZXJ0LlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9SZWxhdGl2ZUZyb21Sb290KHBhdGg6IHN0cmluZywgY3dkPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgcm9vdERpciA9IGdldFJvb3REaXIoY3dkKTtcbiAgcGF0aCA9IHRvUG9zaXhQYXRoKHBhdGgpO1xuICByZXR1cm4gcmVsYXRpdmUocm9vdERpciwgcGF0aCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSxxQkFBcUM7QUFFckMsa0JBSU87QUFDUCxvQkFBd0I7QUFDeEIsc0JBQThCO0FBQzlCLHlCQUdPO0FBeEJQLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSTtBQUFDLFFBQU0saUJBQWUsV0FBVyxRQUFRLE9BQU0sR0FBRztBQUFFLFFBQU0sMEJBQXdCLGVBQWUsS0FBSyxjQUFjO0FBQUUsTUFBSSxPQUFLO0FBQWUsTUFBRyx5QkFBd0I7QUFBQyxXQUFLLElBQUksd0JBQXdCLENBQUMsRUFBRSxZQUFZLENBQUMsSUFBSSxlQUFlLE1BQU0sQ0FBQyxDQUFDO0FBQUEsRUFBRTtBQUFDLFFBQU0sY0FBWSxtQkFBbUIsSUFBSSxFQUFFLFFBQVEsUUFBTyxHQUFHLEVBQUUsUUFBUSxRQUFPLEdBQUc7QUFBRSxTQUFPLElBQUksSUFBSSxVQUFVLFdBQVcsRUFBRTtBQUFDLEdBQUc7QUFDcGIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQW1ITyxTQUFTLGFBQWEsU0FBNEIsVUFBOEIsQ0FBQyxHQUF5QztBQUMvSCxRQUFNO0FBQUEsSUFDSixRQUFRO0FBQUEsSUFDUixpQkFBaUI7QUFBQSxJQUNqQixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixjQUFjO0FBQUEsRUFDaEIsSUFBSTtBQUNKLE1BQUksTUFBTSxRQUFRLE9BQU8sR0FBRztBQUMxQixrQkFBVSwrQkFBYyxPQUFPO0FBQUEsRUFDakM7QUFFQSxTQUFPLElBQUksUUFBUSxDQUFDQSxVQUFTLFdBQVc7QUFDdEMsWUFBUSxJQUFJLHNCQUFzQixPQUFPLEVBQUU7QUFDM0MsVUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxRQUFRLE1BQU0sR0FBRztBQUU3QyxVQUFNLFlBQVEsMEJBQU0sS0FBSyxNQUFNO0FBQUEsTUFDN0IsS0FBSyxXQUFXLEdBQUc7QUFBQSxNQUNuQixPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsSUFDVCxDQUFDO0FBRUQsUUFBSSxTQUFTO0FBQ2IsUUFBSSxTQUFTO0FBRWIsVUFBTSxNQUFNLE1BQU0sS0FBSztBQUN2QixVQUFNLE1BQU0sSUFBSTtBQUVoQixVQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBaUI7QUFDeEMsVUFBSSxDQUFDLE9BQU87QUFDVixtQ0FBUSxPQUFPLE1BQU0sSUFBSTtBQUFBLE1BQzNCO0FBQ0EsZ0JBQVUsS0FBSyxTQUFTLE9BQU87QUFBQSxJQUNqQyxDQUFDO0FBRUQsVUFBTSxPQUFPLEdBQUcsT0FBTyxNQUFNO0FBQzNCLG1CQUFTLHVCQUFRLFFBQVEsSUFBSTtBQUFBLElBQy9CLENBQUM7QUFFRCxVQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBaUI7QUFDeEMsVUFBSSxDQUFDLE9BQU87QUFDVixtQ0FBUSxPQUFPLE1BQU0sSUFBSTtBQUFBLE1BQzNCO0FBQ0EsZ0JBQVUsS0FBSyxTQUFTLE9BQU87QUFBQSxJQUNqQyxDQUFDO0FBRUQsVUFBTSxPQUFPLEdBQUcsT0FBTyxNQUFNO0FBQzNCLG1CQUFTLHVCQUFRLFFBQVEsSUFBSTtBQUFBLElBQy9CLENBQUM7QUFFRCxVQUFNLEdBQUcsU0FBUyxDQUFDLFVBQVUsZUFBZTtBQUMxQyxVQUFJLGFBQWEsS0FBSyxDQUFDLGdCQUFnQjtBQUNyQyxlQUFPLElBQUksTUFBTSxpQ0FBaUMsVUFBVSxTQUFTLEtBQUssUUFBUTtBQUFBLEVBQUssTUFBTSxFQUFFLENBQUM7QUFBQSxNQUNsRyxPQUFPO0FBQ0wsUUFBQUEsU0FBUSxDQUFDLGNBQ0wsU0FDQTtBQUFBLFVBQ0U7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNQO0FBQUEsSUFDRixDQUFDO0FBRUQsVUFBTSxHQUFHLFNBQVMsQ0FBQyxRQUFRO0FBQ3pCLFVBQUksQ0FBQyxnQkFBZ0I7QUFDbkIsZUFBTyxHQUFHO0FBQUEsTUFDWixPQUFPO0FBQ0wsUUFBQUEsU0FBUSxDQUFDLGNBQ0wsU0FDQTtBQUFBLFVBQ0UsVUFBVTtBQUFBLFVBQ1YsWUFBWTtBQUFBLFVBQ1o7QUFBQSxVQUNBO0FBQUEsUUFDRixDQUFDO0FBQUEsTUFDUDtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0gsQ0FBQztBQUNIO0FBU08sU0FBUyxvQkFBb0IsTUFBYyxLQUFzQjtBQUN0RSxhQUFPLHFCQUFRLFdBQVcsR0FBRyxHQUFHLElBQUk7QUFDdEM7QUFTTyxTQUFTLFdBQVcsS0FBc0I7QUFDL0MsUUFBTSxjQUFVLHFDQUFxQixFQUFFLEtBQUssT0FBTywyQkFBUSxJQUFJLEVBQUUsQ0FBQztBQUNsRSxNQUFJLENBQUMsU0FBUztBQUNaLFVBQU0sSUFBSSxNQUFNLCtCQUErQjtBQUFBLEVBQ2pEO0FBRUEsYUFBTyx5QkFBWSxPQUFPO0FBQzVCO0FBU08sU0FBUyxtQkFBbUIsTUFBYyxLQUFzQjtBQUNyRSxRQUFNLFVBQVUsV0FBVyxHQUFHO0FBQzlCLGFBQU8seUJBQVksSUFBSTtBQUN2QixhQUFPLHNCQUFTLFNBQVMsSUFBSTtBQUMvQjsiLAogICJuYW1lcyI6IFsicmVzb2x2ZSJdCn0K
@@ -6,7 +6,7 @@
6
6
  /**
7
7
  * Represents the result of executing a command from the root directory.
8
8
  */
9
- export type ExecFromRootResult = {
9
+ export interface ExecFromRootResult {
10
10
  /**
11
11
  * The exit code of the command. A value of `null` indicates that the process did not exit normally.
12
12
  */
@@ -23,11 +23,11 @@ export type ExecFromRootResult = {
23
23
  * The standard output from the command.
24
24
  */
25
25
  stdout: string;
26
- };
26
+ }
27
27
  /**
28
28
  * Options for executing a command from the root directory.
29
29
  */
30
- export type ExecFromRootOption = {
30
+ export interface ExecFromRootOption {
31
31
  /**
32
32
  * If true, suppresses the output of the command.
33
33
  */
@@ -48,7 +48,7 @@ export type ExecFromRootOption = {
48
48
  * If false, only returns the output of the command.
49
49
  */
50
50
  withDetails?: boolean;
51
- };
51
+ }
52
52
  /**
53
53
  * Executes a command from the root directory of the project.
54
54
  *
@@ -0,0 +1,67 @@
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 __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var build_exports = {};
25
+ __export(build_exports, {
26
+ buildClean: () => buildClean,
27
+ buildStatic: () => buildStatic
28
+ });
29
+ module.exports = __toCommonJS(build_exports);
30
+ var import_Path = require("../Path.cjs");
31
+ var import_String = require("../String.cjs");
32
+ var import_Fs = require("./Fs.cjs");
33
+ var import_NodeModules = require("./NodeModules.cjs");
34
+ var import_ObsidianDevUtilsRepoPaths = require("./ObsidianDevUtilsRepoPaths.cjs");
35
+ var __import_meta_url = globalThis["import.meta.url"] ?? (() => {
36
+ const normalizedPath = __filename.replace(/\\/g, "/");
37
+ const windowsDriveLetterMatch = /^([a-zA-Z]):/.exec(normalizedPath);
38
+ let path = normalizedPath;
39
+ if (windowsDriveLetterMatch) {
40
+ path = `/${windowsDriveLetterMatch[1].toUpperCase()}:${normalizedPath.slice(2)}`;
41
+ }
42
+ const encodedPath = encodeURIComponent(path).replace(/%2F/g, "/").replace(/%3A/g, ":");
43
+ return new URL(`file://${encodedPath}`);
44
+ })();
45
+ var __process = globalThis["process"] ?? {
46
+ "cwd": () => "/",
47
+ "env": {},
48
+ "platform": "android"
49
+ };
50
+ async function buildStatic() {
51
+ for (const dirent of await (0, import_Fs.readdirPosix)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Static, { withFileTypes: true, recursive: true })) {
52
+ if (!dirent.isFile()) {
53
+ continue;
54
+ }
55
+ const path = (0, import_String.trimStart)((0, import_Path.join)(dirent.parentPath, dirent.name), import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Static + "/");
56
+ await (0, import_NodeModules.cp)((0, import_Path.join)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Static, path), (0, import_Path.join)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Dist, path));
57
+ }
58
+ }
59
+ async function buildClean() {
60
+ await (0, import_NodeModules.rm)(import_ObsidianDevUtilsRepoPaths.ObsidianDevUtilsRepoPaths.Dist, { recursive: true, force: true });
61
+ }
62
+ // Annotate the CommonJS export names for ESM import in node:
63
+ 0 && (module.exports = {
64
+ buildClean,
65
+ buildStatic
66
+ });
67
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvYnVpbGQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX2ltcG9ydF9tZXRhX3VybCA9IGdsb2JhbFRoaXNbXCJpbXBvcnQubWV0YS51cmxcIl0gPz8gKCgpPT57Y29uc3Qgbm9ybWFsaXplZFBhdGg9X19maWxlbmFtZS5yZXBsYWNlKC9cXFxcL2csXCIvXCIpO2NvbnN0IHdpbmRvd3NEcml2ZUxldHRlck1hdGNoPS9eKFthLXpBLVpdKTovLmV4ZWMobm9ybWFsaXplZFBhdGgpO2xldCBwYXRoPW5vcm1hbGl6ZWRQYXRoO2lmKHdpbmRvd3NEcml2ZUxldHRlck1hdGNoKXtwYXRoPWAvJHt3aW5kb3dzRHJpdmVMZXR0ZXJNYXRjaFsxXS50b1VwcGVyQ2FzZSgpfToke25vcm1hbGl6ZWRQYXRoLnNsaWNlKDIpfWB9Y29uc3QgZW5jb2RlZFBhdGg9ZW5jb2RlVVJJQ29tcG9uZW50KHBhdGgpLnJlcGxhY2UoLyUyRi9nLFwiL1wiKS5yZXBsYWNlKC8lM0EvZyxcIjpcIik7cmV0dXJuIG5ldyBVUkwoYGZpbGU6Ly8ke2VuY29kZWRQYXRofWApfSkoKTtcbnZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzW1wicHJvY2Vzc1wiXSA/PyB7XG4gIFwiY3dkXCI6ICgpPT5cIi9cIixcbiAgXCJlbnZcIjoge30sXG4gIFwicGxhdGZvcm1cIjogXCJhbmRyb2lkXCJcbn07XG4vKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBidWlsZFxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGZvciBzdGF0aWMgYXNzZXRzIGFuZCBjbGVhbmluZ1xuICogdGhlIGJ1aWxkIG91dHB1dCBkaXJlY3RvcnkuIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBjb3B5IHN0YXRpYyBmaWxlcyB0byB0aGUgZGlzdHJpYnV0aW9uIGRpcmVjdG9yeVxuICogYW5kIHRvIHJlbW92ZSB0aGUgZXhpc3RpbmcgYnVpbGQgb3V0cHV0LlxuICovXG5cbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9QYXRoLnRzJztcbmltcG9ydCB7IHRyaW1TdGFydCB9IGZyb20gJy4uL1N0cmluZy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL0ZzLnRzJztcbmltcG9ydCB7XG4gIGNwLFxuICBybVxufSBmcm9tICcuL05vZGVNb2R1bGVzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL09ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMudHMnO1xuXG4vKipcbiAqIENvcGllcyBhbGwgc3RhdGljIGZpbGVzIGZyb20gdGhlIHN0YXRpYyBhc3NldHMgZGlyZWN0b3J5IHRvIHRoZSBkaXN0cmlidXRpb24gZGlyZWN0b3J5LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcmVjdXJzaXZlbHkgcmVhZHMgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGF0aWMgYXNzZXRzIGRpcmVjdG9yeSBhbmQgY29waWVzXG4gKiBlYWNoIGZpbGUgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcGF0aCBpbiB0aGUgZGlzdHJpYnV0aW9uIGRpcmVjdG9yeS5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBmaWxlcyBoYXZlIGJlZW4gY29waWVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRTdGF0aWMoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGZvciAoY29uc3QgZGlyZW50IG9mIGF3YWl0IHJlYWRkaXJQb3NpeChPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlN0YXRpYywgeyB3aXRoRmlsZVR5cGVzOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSkpIHtcbiAgICBpZiAoIWRpcmVudC5pc0ZpbGUoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aCA9IHRyaW1TdGFydChqb2luKGRpcmVudC5wYXJlbnRQYXRoLCBkaXJlbnQubmFtZSksIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuU3RhdGljICsgJy8nKTtcbiAgICBhd2FpdCBjcChqb2luKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuU3RhdGljLCBwYXRoKSwgam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIHBhdGgpKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGRpc3RyaWJ1dGlvbiBkaXJlY3RvcnkgYW5kIGl0cyBjb250ZW50cy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGVudGlyZSBkaXN0cmlidXRpb24gZGlyZWN0b3J5IHRvIGVuc3VyZSBhIGNsZWFuIGJ1aWxkIGVudmlyb25tZW50LlxuICpcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGRpcmVjdG9yeSBoYXMgYmVlbiByZW1vdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcm0oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBLGtCQUFxQjtBQUNyQixvQkFBMEI7QUFDMUIsZ0JBQTZCO0FBQzdCLHlCQUdPO0FBQ1AsdUNBQTBDO0FBcEIxQyxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQUk7QUFBQyxRQUFNLGlCQUFlLFdBQVcsUUFBUSxPQUFNLEdBQUc7QUFBRSxRQUFNLDBCQUF3QixlQUFlLEtBQUssY0FBYztBQUFFLE1BQUksT0FBSztBQUFlLE1BQUcseUJBQXdCO0FBQUMsV0FBSyxJQUFJLHdCQUF3QixDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksZUFBZSxNQUFNLENBQUMsQ0FBQztBQUFBLEVBQUU7QUFBQyxRQUFNLGNBQVksbUJBQW1CLElBQUksRUFBRSxRQUFRLFFBQU8sR0FBRyxFQUFFLFFBQVEsUUFBTyxHQUFHO0FBQUUsU0FBTyxJQUFJLElBQUksVUFBVSxXQUFXLEVBQUU7QUFBQyxHQUFHO0FBQ3BiLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUF5QkEsZUFBc0IsY0FBNkI7QUFDakQsYUFBVyxVQUFVLFVBQU0sd0JBQWEsMkRBQTBCLFFBQVEsRUFBRSxlQUFlLE1BQU0sV0FBVyxLQUFLLENBQUMsR0FBRztBQUNuSCxRQUFJLENBQUMsT0FBTyxPQUFPLEdBQUc7QUFDcEI7QUFBQSxJQUNGO0FBRUEsVUFBTSxXQUFPLDZCQUFVLGtCQUFLLE9BQU8sWUFBWSxPQUFPLElBQUksR0FBRywyREFBMEIsU0FBUyxHQUFHO0FBQ25HLGNBQU0sMkJBQUcsa0JBQUssMkRBQTBCLFFBQVEsSUFBSSxPQUFHLGtCQUFLLDJEQUEwQixNQUFNLElBQUksQ0FBQztBQUFBLEVBQ25HO0FBQ0Y7QUFTQSxlQUFzQixhQUE0QjtBQUNoRCxZQUFNLHVCQUFHLDJEQUEwQixNQUFNLEVBQUUsV0FBVyxNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQzNFOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,80 @@
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 __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var cli_exports = {};
25
+ __export(cli_exports, {
26
+ cli: () => cli
27
+ });
28
+ module.exports = __toCommonJS(cli_exports);
29
+ var import_commander = require("commander");
30
+ var import_Async = require("../Async.cjs");
31
+ var import_Path = require("../Path.cjs");
32
+ var import_build = require("./build.cjs");
33
+ var import_CliUtils = require("./CliUtils.cjs");
34
+ var import_ObsidianPluginBuilder = require("./esbuild/ObsidianPluginBuilder.cjs");
35
+ var import_ESLint = require("./ESLint/ESLint.cjs");
36
+ var import_NodeModules = require("./NodeModules.cjs");
37
+ var import_Npm = require("./Npm.cjs");
38
+ var import_spellcheck = require("./spellcheck.cjs");
39
+ var import_version = require("./version.cjs");
40
+ var __import_meta_url = globalThis["import.meta.url"] ?? (() => {
41
+ const normalizedPath = __filename.replace(/\\/g, "/");
42
+ const windowsDriveLetterMatch = /^([a-zA-Z]):/.exec(normalizedPath);
43
+ let path = normalizedPath;
44
+ if (windowsDriveLetterMatch) {
45
+ path = `/${windowsDriveLetterMatch[1].toUpperCase()}:${normalizedPath.slice(2)}`;
46
+ }
47
+ const encodedPath = encodeURIComponent(path).replace(/%2F/g, "/").replace(/%3A/g, ":");
48
+ return new URL(`file://${encodedPath}`);
49
+ })();
50
+ var __process = globalThis["process"] ?? {
51
+ "cwd": () => "/",
52
+ "env": {},
53
+ "platform": "android"
54
+ };
55
+ const NODE_SCRIPT_ARGV_SKIP_COUNT = 2;
56
+ function cli(argv = import_NodeModules.process.argv.slice(NODE_SCRIPT_ARGV_SKIP_COUNT)) {
57
+ (0, import_Async.invokeAsyncSafely)((0, import_CliUtils.wrapCliTask)(async () => {
58
+ const npmPackage = await (0, import_Npm.readNpmPackage)((0, import_Path.getDirname)(__import_meta_url));
59
+ const program = new import_commander.Command();
60
+ program.name(npmPackage.name).description("CLI for Obsidian plugin development utilities").version(npmPackage.version);
61
+ addCommand(program, "build" /* Build */, "Build the plugin", () => (0, import_ObsidianPluginBuilder.buildObsidianPlugin)({ mode: import_ObsidianPluginBuilder.BuildMode.Production }));
62
+ addCommand(program, "build:clean" /* BuildClean */, "Clean the dist folder", () => (0, import_build.buildClean)());
63
+ addCommand(program, "build:static" /* BuildStatic */, "Copy static content to dist", () => (0, import_build.buildStatic)());
64
+ addCommand(program, "dev" /* Dev */, "Build the plugin in development mode", () => (0, import_ObsidianPluginBuilder.buildObsidianPlugin)({ mode: import_ObsidianPluginBuilder.BuildMode.Development }));
65
+ addCommand(program, "lint" /* Lint */, "Lint the source code", () => (0, import_ESLint.lint)());
66
+ addCommand(program, "lint:fix" /* LintFix */, "Lint the source code and apply automatic fixes", () => (0, import_ESLint.lint)(true));
67
+ addCommand(program, "spellcheck" /* Spellcheck */, "Spellcheck the source code", () => (0, import_spellcheck.spellcheck)());
68
+ addCommand(program, "version" /* Version */, "Release a new version", (versionUpdateType) => (0, import_version.updateVersion)(versionUpdateType)).argument("[versionUpdateType]", "Version update type: major, minor, patch, beta, or x.y.z[-suffix]");
69
+ await program.parseAsync(argv, { from: "user" });
70
+ return import_CliUtils.CliTaskResult.DoNotExit();
71
+ }));
72
+ }
73
+ function addCommand(program, name, description, taskFn) {
74
+ return program.command(name).description(description).action((...args) => (0, import_CliUtils.wrapCliTask)(() => taskFn(...args)));
75
+ }
76
+ // Annotate the CommonJS export names for ESM import in node:
77
+ 0 && (module.exports = {
78
+ cli
79
+ });
80
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvY2xpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzW1wiaW1wb3J0Lm1ldGEudXJsXCJdID8/ICgoKT0+e2NvbnN0IG5vcm1hbGl6ZWRQYXRoPV9fZmlsZW5hbWUucmVwbGFjZSgvXFxcXC9nLFwiL1wiKTtjb25zdCB3aW5kb3dzRHJpdmVMZXR0ZXJNYXRjaD0vXihbYS16QS1aXSk6Ly5leGVjKG5vcm1hbGl6ZWRQYXRoKTtsZXQgcGF0aD1ub3JtYWxpemVkUGF0aDtpZih3aW5kb3dzRHJpdmVMZXR0ZXJNYXRjaCl7cGF0aD1gLyR7d2luZG93c0RyaXZlTGV0dGVyTWF0Y2hbMV0udG9VcHBlckNhc2UoKX06JHtub3JtYWxpemVkUGF0aC5zbGljZSgyKX1gfWNvbnN0IGVuY29kZWRQYXRoPWVuY29kZVVSSUNvbXBvbmVudChwYXRoKS5yZXBsYWNlKC8lMkYvZyxcIi9cIikucmVwbGFjZSgvJTNBL2csXCI6XCIpO3JldHVybiBuZXcgVVJMKGBmaWxlOi8vJHtlbmNvZGVkUGF0aH1gKX0pKCk7XG52YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1tcInByb2Nlc3NcIl0gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gY2xpXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgQ0xJIGZvciBtYW5hZ2luZyB2YXJpb3VzIHRhc2tzIHJlbGF0ZWQgdG8gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICogSXQgbGV2ZXJhZ2VzIHRoZSBgY29tbWFuZGVyYCBsaWJyYXJ5IHRvIGRlZmluZSBjb21tYW5kcyBmb3IgYnVpbGRpbmcsIGxpbnRpbmcsIHNwZWxsY2hlY2tpbmcsXG4gKiBhbmQgdXBkYXRpbmcgdGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbi4gVGhlIENMSSBpcyBkZXNpZ25lZCB0byBiZSBmbGV4aWJsZSBhbmQgY2FuIGhhbmRsZSBib3RoXG4gKiBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIHRhc2tzLlxuICovXG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IGludm9rZUFzeW5jU2FmZWx5IH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgZ2V0RGlybmFtZSB9IGZyb20gJy4uL1BhdGgudHMnO1xuaW1wb3J0IHtcbiAgYnVpbGRDbGVhbixcbiAgYnVpbGRTdGF0aWNcbn0gZnJvbSAnLi9idWlsZC50cyc7XG5pbXBvcnQge1xuICBDbGlUYXNrUmVzdWx0LFxuICB3cmFwQ2xpVGFza1xufSBmcm9tICcuL0NsaVV0aWxzLnRzJztcbmltcG9ydCB7XG4gIEJ1aWxkTW9kZSxcbiAgYnVpbGRPYnNpZGlhblBsdWdpblxufSBmcm9tICcuL2VzYnVpbGQvT2JzaWRpYW5QbHVnaW5CdWlsZGVyLnRzJztcbmltcG9ydCB7IGxpbnQgfSBmcm9tICcuL0VTTGludC9FU0xpbnQudHMnO1xuaW1wb3J0IHsgcHJvY2VzcyB9IGZyb20gJy4vTm9kZU1vZHVsZXMudHMnO1xuaW1wb3J0IHsgcmVhZE5wbVBhY2thZ2UgfSBmcm9tICcuL05wbS50cyc7XG5pbXBvcnQgeyBzcGVsbGNoZWNrIH0gZnJvbSAnLi9zcGVsbGNoZWNrLnRzJztcbmltcG9ydCB7IHVwZGF0ZVZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb24udHMnO1xuXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgbGVhZGluZyBhcmd1bWVudHMgdG8gc2tpcCB3aGVuIHBhcnNpbmcgY29tbWFuZC1saW5lIGFyZ3VtZW50cy5cbiAqIFRoZSBmaXJzdCB0d28gZWxlbWVudHMgdHlwaWNhbGx5IHJlcHJlc2VudCB0aGUgTm9kZS5qcyBleGVjdXRhYmxlIGFuZCB0aGUgc2NyaXB0IHBhdGg6XG4gKiBgW1wibm9kZVwiLCBcInBhdGgvdG8vY2xpLmNqc1wiLCAuLi5hY3R1YWxBcmdzXWBcbiAqL1xuY29uc3QgTk9ERV9TQ1JJUFRfQVJHVl9TS0lQX0NPVU5UID0gMjtcblxuLyoqXG4gKiBNYWluIGZ1bmN0aW9uIHRvIHJ1biB0aGUgQ0xJLiBJdCBzZXRzIHVwIHRoZSBjb21tYW5kcyB1c2luZyB0aGUgYGNvbW1hbmRlcmAgbGlicmFyeSBhbmRcbiAqIGhhbmRsZXMgdGhlIGV4ZWN1dGlvbiBvZiB0YXNrcyBsaWtlIGJ1aWxkaW5nLCBjbGVhbmluZywgbGludGluZywgc3BlbGxjaGVja2luZywgYW5kIHZlcnNpb25pbmcuXG4gKlxuICogQHBhcmFtIGFyZ3YgLSBUaGUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyB0byBwYXJzZS4gRGVmYXVsdHMgdG8gYHByb2Nlc3MuYXJndmAgbWludXMgdGhlIGZpcnN0IHR3byBlbGVtZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsaShhcmd2OiBzdHJpbmdbXSA9IHByb2Nlc3MuYXJndi5zbGljZShOT0RFX1NDUklQVF9BUkdWX1NLSVBfQ09VTlQpKTogdm9pZCB7XG4gIGludm9rZUFzeW5jU2FmZWx5KHdyYXBDbGlUYXNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBucG1QYWNrYWdlID0gYXdhaXQgcmVhZE5wbVBhY2thZ2UoZ2V0RGlybmFtZShpbXBvcnQubWV0YS51cmwpKTtcbiAgICBjb25zdCBwcm9ncmFtID0gbmV3IENvbW1hbmQoKTtcblxuICAgIHByb2dyYW1cbiAgICAgIC5uYW1lKG5wbVBhY2thZ2UubmFtZSlcbiAgICAgIC5kZXNjcmlwdGlvbignQ0xJIGZvciBPYnNpZGlhbiBwbHVnaW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzJylcbiAgICAgIC52ZXJzaW9uKG5wbVBhY2thZ2UudmVyc2lvbik7XG5cbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5CdWlsZCwgJ0J1aWxkIHRoZSBwbHVnaW4nLCAoKSA9PiBidWlsZE9ic2lkaWFuUGx1Z2luKHsgbW9kZTogQnVpbGRNb2RlLlByb2R1Y3Rpb24gfSkpO1xuICAgIGFkZENvbW1hbmQocHJvZ3JhbSwgQ29tbWFuZE5hbWVzLkJ1aWxkQ2xlYW4sICdDbGVhbiB0aGUgZGlzdCBmb2xkZXInLCAoKSA9PiBidWlsZENsZWFuKCkpO1xuICAgIGFkZENvbW1hbmQocHJvZ3JhbSwgQ29tbWFuZE5hbWVzLkJ1aWxkU3RhdGljLCAnQ29weSBzdGF0aWMgY29udGVudCB0byBkaXN0JywgKCkgPT4gYnVpbGRTdGF0aWMoKSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuRGV2LCAnQnVpbGQgdGhlIHBsdWdpbiBpbiBkZXZlbG9wbWVudCBtb2RlJywgKCkgPT4gYnVpbGRPYnNpZGlhblBsdWdpbih7IG1vZGU6IEJ1aWxkTW9kZS5EZXZlbG9wbWVudCB9KSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuTGludCwgJ0xpbnQgdGhlIHNvdXJjZSBjb2RlJywgKCkgPT4gbGludCgpKTtcbiAgICBhZGRDb21tYW5kKHByb2dyYW0sIENvbW1hbmROYW1lcy5MaW50Rml4LCAnTGludCB0aGUgc291cmNlIGNvZGUgYW5kIGFwcGx5IGF1dG9tYXRpYyBmaXhlcycsICgpID0+IGxpbnQodHJ1ZSkpO1xuICAgIGFkZENvbW1hbmQocHJvZ3JhbSwgQ29tbWFuZE5hbWVzLlNwZWxsY2hlY2ssICdTcGVsbGNoZWNrIHRoZSBzb3VyY2UgY29kZScsICgpID0+IHNwZWxsY2hlY2soKSk7XG4gICAgYWRkQ29tbWFuZChwcm9ncmFtLCBDb21tYW5kTmFtZXMuVmVyc2lvbiwgJ1JlbGVhc2UgYSBuZXcgdmVyc2lvbicsICh2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKSA9PiB1cGRhdGVWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlKSlcbiAgICAgIC5hcmd1bWVudCgnW3ZlcnNpb25VcGRhdGVUeXBlXScsICdWZXJzaW9uIHVwZGF0ZSB0eXBlOiBtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBvciB4Lnkuelstc3VmZml4XScpO1xuICAgIGF3YWl0IHByb2dyYW0ucGFyc2VBc3luYyhhcmd2LCB7IGZyb206ICd1c2VyJyB9KTtcbiAgICByZXR1cm4gQ2xpVGFza1Jlc3VsdC5Eb05vdEV4aXQoKTtcbiAgfSkpO1xufVxuXG4vKipcbiAqIEFkZHMgYSBjb21tYW5kIHRvIHRoZSBDTEkgcHJvZ3JhbSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwgZGVzY3JpcHRpb24sIGFuZCB0YXNrIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIGBjb21tYW5kZXJgIHByb2dyYW0gaW5zdGFuY2UgdG8gd2hpY2ggdGhlIGNvbW1hbmQgaXMgYWRkZWQuXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjb21tYW5kLlxuICogQHBhcmFtIGRlc2NyaXB0aW9uIC0gQSBicmllZiBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoZSBjb21tYW5kIGRvZXMuXG4gKiBAcGFyYW0gdGFza0ZuIC0gVGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgd2hlbiB0aGUgY29tbWFuZCBpcyBpbnZva2VkLiBDYW4gcmV0dXJuIGEgYFRhc2tSZXN1bHRgIG9yIHZvaWQuXG4gKiBAcmV0dXJucyBUaGUgYGNvbW1hbmRlcmAgY29tbWFuZCBpbnN0YW5jZSBmb3IgZnVydGhlciBjaGFpbmluZy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVxuZnVuY3Rpb24gYWRkQ29tbWFuZDxBcmdzIGV4dGVuZHMgdW5rbm93bltdPihwcm9ncmFtOiBDb21tYW5kLCBuYW1lOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHRhc2tGbjogKC4uLmFyZ3M6IEFyZ3MpID0+IE1heWJlUHJvbWlzZTxDbGlUYXNrUmVzdWx0IHwgdm9pZD4pOiBDb21tYW5kIHtcbiAgcmV0dXJuIHByb2dyYW0uY29tbWFuZChuYW1lKVxuICAgIC5kZXNjcmlwdGlvbihkZXNjcmlwdGlvbilcbiAgICAuYWN0aW9uKCguLi5hcmdzOiBBcmdzKSA9PiB3cmFwQ2xpVGFzaygoKSA9PiB0YXNrRm4oLi4uYXJncykpKTtcbn1cblxuLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgbmFtZXMgb2YgdGhlIGNvbW1hbmRzIGF2YWlsYWJsZSBpbiB0aGUgQ0xJLlxuICovXG5lbnVtIENvbW1hbmROYW1lcyB7XG4gIEJ1aWxkID0gJ2J1aWxkJyxcbiAgQnVpbGRDbGVhbiA9ICdidWlsZDpjbGVhbicsXG4gIEJ1aWxkU3RhdGljID0gJ2J1aWxkOnN0YXRpYycsXG4gIERldiA9ICdkZXYnLFxuICBMaW50ID0gJ2xpbnQnLFxuICBMaW50Rml4ID0gJ2xpbnQ6Zml4JyxcbiAgU3BlbGxjaGVjayA9ICdzcGVsbGNoZWNrJyxcbiAgVmVyc2lvbiA9ICd2ZXJzaW9uJ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0EsdUJBQXdCO0FBR3hCLG1CQUFrQztBQUNsQyxrQkFBMkI7QUFDM0IsbUJBR087QUFDUCxzQkFHTztBQUNQLG1DQUdPO0FBQ1Asb0JBQXFCO0FBQ3JCLHlCQUF3QjtBQUN4QixpQkFBK0I7QUFDL0Isd0JBQTJCO0FBQzNCLHFCQUE4QjtBQW5DOUIsSUFBSSxvQkFBb0IsV0FBVyxpQkFBaUIsTUFBTSxNQUFJO0FBQUMsUUFBTSxpQkFBZSxXQUFXLFFBQVEsT0FBTSxHQUFHO0FBQUUsUUFBTSwwQkFBd0IsZUFBZSxLQUFLLGNBQWM7QUFBRSxNQUFJLE9BQUs7QUFBZSxNQUFHLHlCQUF3QjtBQUFDLFdBQUssSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLFlBQVksQ0FBQyxJQUFJLGVBQWUsTUFBTSxDQUFDLENBQUM7QUFBQSxFQUFFO0FBQUMsUUFBTSxjQUFZLG1CQUFtQixJQUFJLEVBQUUsUUFBUSxRQUFPLEdBQUcsRUFBRSxRQUFRLFFBQU8sR0FBRztBQUFFLFNBQU8sSUFBSSxJQUFJLFVBQVUsV0FBVyxFQUFFO0FBQUMsR0FBRztBQUNwYixJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBcUNBLE1BQU0sOEJBQThCO0FBUTdCLFNBQVMsSUFBSSxPQUFpQiwyQkFBUSxLQUFLLE1BQU0sMkJBQTJCLEdBQVM7QUFDMUYsMENBQWtCLDZCQUFZLFlBQVk7QUFDeEMsVUFBTSxhQUFhLFVBQU0sK0JBQWUsd0JBQVcsaUJBQWUsQ0FBQztBQUNuRSxVQUFNLFVBQVUsSUFBSSx5QkFBUTtBQUU1QixZQUNHLEtBQUssV0FBVyxJQUFJLEVBQ3BCLFlBQVksK0NBQStDLEVBQzNELFFBQVEsV0FBVyxPQUFPO0FBRTdCLGVBQVcsU0FBUyxxQkFBb0Isb0JBQW9CLFVBQU0sa0RBQW9CLEVBQUUsTUFBTSx1Q0FBVSxXQUFXLENBQUMsQ0FBQztBQUNySCxlQUFXLFNBQVMsZ0NBQXlCLHlCQUF5QixVQUFNLHlCQUFXLENBQUM7QUFDeEYsZUFBVyxTQUFTLGtDQUEwQiwrQkFBK0IsVUFBTSwwQkFBWSxDQUFDO0FBQ2hHLGVBQVcsU0FBUyxpQkFBa0Isd0NBQXdDLFVBQU0sa0RBQW9CLEVBQUUsTUFBTSx1Q0FBVSxZQUFZLENBQUMsQ0FBQztBQUN4SSxlQUFXLFNBQVMsbUJBQW1CLHdCQUF3QixVQUFNLG9CQUFLLENBQUM7QUFDM0UsZUFBVyxTQUFTLDBCQUFzQixrREFBa0QsVUFBTSxvQkFBSyxJQUFJLENBQUM7QUFDNUcsZUFBVyxTQUFTLCtCQUF5Qiw4QkFBOEIsVUFBTSw4QkFBVyxDQUFDO0FBQzdGLGVBQVcsU0FBUyx5QkFBc0IseUJBQXlCLENBQUMsMEJBQThCLDhCQUFjLGlCQUFpQixDQUFDLEVBQy9ILFNBQVMsdUJBQXVCLG1FQUFtRTtBQUN0RyxVQUFNLFFBQVEsV0FBVyxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0MsV0FBTyw4QkFBYyxVQUFVO0FBQUEsRUFDakMsQ0FBQyxDQUFDO0FBQ0o7QUFZQSxTQUFTLFdBQW1DLFNBQWtCLE1BQWMsYUFBcUIsUUFBd0U7QUFDdkssU0FBTyxRQUFRLFFBQVEsSUFBSSxFQUN4QixZQUFZLFdBQVcsRUFDdkIsT0FBTyxJQUFJLGFBQWUsNkJBQVksTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDakU7IiwKICAibmFtZXMiOiBbXQp9Cg==