obsidian-dev-utils 97.0.0 → 98.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.
- package/CHANGELOG.md +17 -0
- package/LICENSE +1 -1
- package/dist/integration-test-plugin/main.js +624 -483
- package/dist/lib/cjs/__merged.cjs +14 -9
- package/dist/lib/cjs/__merged.d.cts +2 -1
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +38 -38
- package/dist/lib/cjs/obsidian/demo-vault-naming.cjs +167 -0
- package/dist/lib/cjs/obsidian/demo-vault-naming.d.cts +54 -0
- package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +11 -5
- package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.d.cts +10 -8
- package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +9 -9
- package/dist/lib/cjs/obsidian/desktop-trusted-input.d.cts +23 -4
- package/dist/lib/cjs/obsidian/index.cjs +10 -1
- package/dist/lib/cjs/obsidian/index.d.cts +3 -0
- package/dist/lib/cjs/obsidian/mobile-trusted-input.cjs +195 -0
- package/dist/lib/cjs/obsidian/mobile-trusted-input.d.cts +93 -0
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +4 -0
- package/dist/lib/cjs/obsidian/resource-lock.cjs +122 -122
- package/dist/lib/cjs/obsidian/trusted-input.cjs +206 -0
- package/dist/lib/cjs/obsidian/trusted-input.d.cts +126 -0
- package/dist/lib/cjs/script-utils/build.cjs +30 -6
- package/dist/lib/cjs/script-utils/build.d.cts +5 -0
- package/dist/lib/cjs/script-utils/demo-vault.cjs +26 -6
- package/dist/lib/cjs/script-utils/demo-vault.d.cts +12 -8
- package/dist/lib/cjs/script-utils/exec.cjs +1 -1
- package/dist/lib/cjs/script-utils/formatters/dprint.cjs +3 -2
- package/dist/lib/cjs/script-utils/index.cjs +4 -1
- package/dist/lib/cjs/script-utils/index.d.cts +1 -0
- package/dist/lib/cjs/script-utils/linters/cspell.cjs +3 -3
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +39 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +16 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +5 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-description.cjs +254 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-description.d.cts +54 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-helpers.cjs +217 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-helpers.d.cts +141 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-id.cjs +214 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-id.d.cts +32 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-name.cjs +215 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-name.d.cts +30 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-schema.cjs +318 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-schema.d.cts +45 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +9 -1
- package/dist/lib/cjs/script-utils/linters/eslint.cjs +3 -2
- package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +4 -4
- package/dist/lib/cjs/script-utils/npm-run.cjs +4 -3
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +10 -1
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +37 -1
- package/dist/lib/cjs/script-utils/package-manager.cjs +287 -0
- package/dist/lib/cjs/script-utils/package-manager.d.cts +77 -0
- package/dist/lib/cjs/script-utils/version.cjs +21 -9
- package/dist/lib/esm/__merged.d.mts +2 -1
- package/dist/lib/esm/__merged.mjs +16 -10
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +38 -38
- package/dist/lib/esm/obsidian/demo-vault-naming.d.mts +54 -0
- package/dist/lib/esm/obsidian/demo-vault-naming.mjs +61 -0
- package/dist/lib/esm/obsidian/desktop-demo-vault-opener.d.mts +10 -8
- package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +14 -5
- package/dist/lib/esm/obsidian/desktop-trusted-input.d.mts +23 -4
- package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +9 -9
- package/dist/lib/esm/obsidian/index.d.mts +3 -0
- package/dist/lib/esm/obsidian/index.mjs +7 -1
- package/dist/lib/esm/obsidian/mobile-trusted-input.d.mts +93 -0
- package/dist/lib/esm/obsidian/mobile-trusted-input.mjs +84 -0
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +4 -0
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
- package/dist/lib/esm/obsidian/resource-lock.mjs +122 -122
- package/dist/lib/esm/obsidian/trusted-input.d.mts +126 -0
- package/dist/lib/esm/obsidian/trusted-input.mjs +85 -0
- package/dist/lib/esm/script-utils/build.d.mts +5 -0
- package/dist/lib/esm/script-utils/build.mjs +30 -6
- package/dist/lib/esm/script-utils/demo-vault.d.mts +12 -8
- package/dist/lib/esm/script-utils/demo-vault.mjs +29 -6
- package/dist/lib/esm/script-utils/exec.mjs +1 -1
- package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -2
- package/dist/lib/esm/script-utils/index.d.mts +1 -0
- package/dist/lib/esm/script-utils/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -3
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +39 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +5 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +11 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-description.d.mts +54 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-description.mjs +148 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-helpers.d.mts +141 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-helpers.mjs +92 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-id.d.mts +32 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-id.mjs +111 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-name.d.mts +30 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-name.mjs +112 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-schema.d.mts +45 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-schema.mjs +217 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +9 -1
- package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -2
- package/dist/lib/esm/script-utils/linters/markdownlint.mjs +4 -4
- package/dist/lib/esm/script-utils/npm-run.mjs +4 -3
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +37 -1
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +10 -1
- package/dist/lib/esm/script-utils/package-manager.d.mts +77 -0
- package/dist/lib/esm/script-utils/package-manager.mjs +173 -0
- package/dist/lib/esm/script-utils/version.mjs +21 -9
- package/obsidian/demo-vault-naming/package.json +6 -0
- package/obsidian/mobile-trusted-input/package.json +6 -0
- package/obsidian/trusted-input/package.json +6 -0
- package/package.json +19 -17
- package/script-utils/linters/eslint-rules/manifest-description/package.json +6 -0
- package/script-utils/linters/eslint-rules/manifest-helpers/package.json +6 -0
- package/script-utils/linters/eslint-rules/manifest-id/package.json +6 -0
- package/script-utils/linters/eslint-rules/manifest-name/package.json +6 -0
- package/script-utils/linters/eslint-rules/manifest-schema/package.json +6 -0
- package/script-utils/package-manager/package.json +6 -0
|
@@ -155,8 +155,13 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
155
155
|
ObsidianDevUtilsRepoPaths2["AnyPath"] = "**";
|
|
156
156
|
ObsidianDevUtilsRepoPaths2["AnyTs"] = "*.ts";
|
|
157
157
|
ObsidianDevUtilsRepoPaths2["AstroConfigTs"] = "astro.config.ts";
|
|
158
|
+
ObsidianDevUtilsRepoPaths2["BatExtension"] = ".bat";
|
|
159
|
+
ObsidianDevUtilsRepoPaths2["Bin"] = ".bin";
|
|
160
|
+
ObsidianDevUtilsRepoPaths2["BunLock"] = "bun.lock";
|
|
161
|
+
ObsidianDevUtilsRepoPaths2["BunLockb"] = "bun.lockb";
|
|
158
162
|
ObsidianDevUtilsRepoPaths2["Cjs"] = "cjs";
|
|
159
163
|
ObsidianDevUtilsRepoPaths2["CjsExtension"] = ".cjs";
|
|
164
|
+
ObsidianDevUtilsRepoPaths2["CommandExtension"] = ".cmd";
|
|
160
165
|
ObsidianDevUtilsRepoPaths2["CurrentFolder"] = ".";
|
|
161
166
|
ObsidianDevUtilsRepoPaths2["DataviewTypes"] = "src/obsidian/@types/dataview/**";
|
|
162
167
|
ObsidianDevUtilsRepoPaths2["DctsExtension"] = ".d.cts";
|
|
@@ -175,6 +180,7 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
175
180
|
ObsidianDevUtilsRepoPaths2["DtsExtension"] = ".d.ts";
|
|
176
181
|
ObsidianDevUtilsRepoPaths2["EslintConfigMts"] = "eslint.config.mts";
|
|
177
182
|
ObsidianDevUtilsRepoPaths2["Esm"] = "esm";
|
|
183
|
+
ObsidianDevUtilsRepoPaths2["ExeExtension"] = ".exe";
|
|
178
184
|
ObsidianDevUtilsRepoPaths2["GeneratedDuringBuildCjs"] = "generated-during-build.cjs";
|
|
179
185
|
ObsidianDevUtilsRepoPaths2["GeneratedDuringBuildMjs"] = "generated-during-build.mjs";
|
|
180
186
|
ObsidianDevUtilsRepoPaths2["IndexCjs"] = "index.cjs";
|
|
@@ -191,7 +197,9 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
191
197
|
ObsidianDevUtilsRepoPaths2["MjsExtension"] = ".mjs";
|
|
192
198
|
ObsidianDevUtilsRepoPaths2["NodeModules"] = "node_modules";
|
|
193
199
|
ObsidianDevUtilsRepoPaths2["PackageJson"] = "package.json";
|
|
200
|
+
ObsidianDevUtilsRepoPaths2["PackageLockJson"] = "package-lock.json";
|
|
194
201
|
ObsidianDevUtilsRepoPaths2["Patches"] = "patches";
|
|
202
|
+
ObsidianDevUtilsRepoPaths2["PnpmLockYaml"] = "pnpm-lock.yaml";
|
|
195
203
|
ObsidianDevUtilsRepoPaths2["RootFolder"] = "/";
|
|
196
204
|
ObsidianDevUtilsRepoPaths2["Scripts"] = "scripts";
|
|
197
205
|
ObsidianDevUtilsRepoPaths2["ScriptUtils"] = "script-utils";
|
|
@@ -205,10 +213,11 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
205
213
|
ObsidianDevUtilsRepoPaths2["TsConfigValidateDeclarationsJson"] = "tsconfig.validate-declarations.json";
|
|
206
214
|
ObsidianDevUtilsRepoPaths2["TsExtension"] = ".ts";
|
|
207
215
|
ObsidianDevUtilsRepoPaths2["Types"] = "@types";
|
|
216
|
+
ObsidianDevUtilsRepoPaths2["YarnLock"] = "yarn.lock";
|
|
208
217
|
return ObsidianDevUtilsRepoPaths2;
|
|
209
218
|
})(ObsidianDevUtilsRepoPaths || {});
|
|
210
219
|
// Annotate the CommonJS export names for ESM import in node:
|
|
211
220
|
0 && (module.exports = {
|
|
212
221
|
ObsidianDevUtilsRepoPaths
|
|
213
222
|
});
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKipcbiAgQW55IGZpbGUgb3IgZm9sZGVyLlxuICAgKi9cbiAgQW55ID0gJyonLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlLlxuICAgKi9cbiAgQW55Q2pzID0gJyouY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueURtdHMgPSAnKi5kLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueUR0cyA9ICcqLmQudHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKipcbiAgQW55IHBhdGggcmVjdXJzaXZlbHkuXG4gICAqL1xuICBBbnlQYXRoID0gJyoqJyxcblxuICAvKipcbiAgQW55IFR5cGVTY3JpcHQgZmlsZS5cbiAgICovXG4gIEFueVRzID0gJyoudHMnLFxuXG4gIC8qKlxuICBBc3RybyBjb25maWd1cmF0aW9uIGZpbGUgKGRvY3VtZW50YXRpb24gc2l0ZSkgYXQgdGhlIHJlcG8gcm9vdC5cbiAgICovXG4gIEFzdHJvQ29uZmlnVHMgPSAnYXN0cm8uY29uZmlnLnRzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgZm9sZGVyLlxuICAgKi9cbiAgQ2pzID0gJ2NqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgQ2pzRXh0ZW5zaW9uID0gJy5janMnLFxuXG4gIC8qKlxuICBDdXJyZW50IGZvbGRlci5cbiAgICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqXG4gIERhdGF2aWV3IHR5cGVzLlxuICAgKi9cbiAgRGF0YXZpZXdUeXBlcyA9ICdzcmMvb2JzaWRpYW4vQHR5cGVzL2RhdGF2aWV3LyoqJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERjdHNFeHRlbnNpb24gPSAnLmQuY3RzJyxcblxuICAvKipcbiAgRGlzdHJpYnV0aW9uIGZvbGRlci5cbiAgICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYnVpbHQgYGRlbW8tdmF1bHQtaGVscGVyYCBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLCBpbmplY3RlZCBpbnRvIGRlbW8gdmF1bHRzIGF0IHJlbGVhc2UgdGltZS5cbiAgICovXG4gIERpc3REZW1vVmF1bHRIZWxwZXIgPSAnZGlzdC9kZW1vLXZhdWx0LWhlbHBlcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYnVpbHQgaW50ZWdyYXRpb24tdGVzdCBoYXJuZXNzIHBsdWdpbiB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIsIHNlZWRlZCBpbnRvIGEgY29uc3VtZXIncyBpbnRlZ3JhdGlvbi10ZXN0IHZhdWx0IHNvIGl0cyBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmVzIHJlYWNoIHRoZSBsaWJyYXJ5IHZpYSBgbGliYC5cbiAgICovXG4gIERpc3RJbnRlZ3JhdGlvblRlc3RQbHVnaW4gPSAnZGlzdC9pbnRlZ3JhdGlvbi10ZXN0LXBsdWdpbicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci5cbiAgICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKlxuICBBIHBhdGggdG8gdGhlIGJ1aWx0IHBsdWdpbi1BUEkgaW50ZWdyYXRpb24tdGVzdCBDT05TVU1FUiBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiBUZXN0LW9ubHkgYW5kIG5ldmVyIHNoaXBwZWQ7IGJ1aWx0IHNlcGFyYXRlbHkgZnJvbSBpdHMgcHJvdmlkZXIgc28gdGhlIHR3byBjYXJyeSBkaXN0aW5jdCBgb2JzaWRpYW4tZGV2LXV0aWxzYCBjb3BpZXMuXG4gICAqL1xuICBEaXN0UGx1Z2luQXBpVGVzdENvbnN1bWVyID0gJ2Rpc3QvcGx1Z2luLWFwaS10ZXN0LWNvbnN1bWVyJyxcblxuICAvKipcbiAgQSBwYXRoIHRvIHRoZSBidWlsdCBwbHVnaW4tQVBJIGludGVncmF0aW9uLXRlc3QgUFJPVklERVIgcGx1Z2luIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gVGVzdC1vbmx5IGFuZCBuZXZlciBzaGlwcGVkOyBidWlsdCBzZXBhcmF0ZWx5IGZyb20gaXRzIGNvbnN1bWVyIHNvIHRoZSB0d28gY2FycnkgZGlzdGluY3QgYG9ic2lkaWFuLWRldi11dGlsc2AgY29waWVzLlxuICAgKi9cbiAgRGlzdFBsdWdpbkFwaVRlc3RQcm92aWRlciA9ICdkaXN0L3BsdWdpbi1hcGktdGVzdC1wcm92aWRlcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlciwgaG9sZGluZyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcy5cbiAgICovXG4gIERpc3RUZW1wbGF0ZXMgPSAnZGlzdC90ZW1wbGF0ZXMnLFxuXG4gIC8qKlxuICBUcmFuc3BpbGVkIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBEanNFeHRlbnNpb24gPSAnLmQuanMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKipcbiAgRG9jdW1lbnRhdGlvbiBzaXRlIGZvbGRlciAoQXN0cm8gKyBTdGFybGlnaHQgQVBJLWRvY3Mgc3ViLXByb2plY3QpLlxuICAgKi9cbiAgRG9jcyA9ICdkb2NzJyxcblxuICAvKipcbiAgQnVpbGQgb3V0cHV0IGZvbGRlciBvZiB0aGUgZG9jdW1lbnRhdGlvbiBzaXRlLlxuICAgKi9cbiAgRG9jc0Rpc3QgPSAnZG9jcy9kaXN0JyxcblxuICAvKipcbiAgRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIERwcmludEpzb24gPSAnZHByaW50Lmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRHRzRXh0ZW5zaW9uID0gJy5kLnRzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIEVTTSBKYXZhU2NyaXB0IGZvbGRlci5cbiAgICovXG4gIEVzbSA9ICdlc20nLFxuXG4gIC8qKlxuICBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIENvbW1vbkpTIGZpbGUuXG4gICAqL1xuICBHZW5lcmF0ZWREdXJpbmdCdWlsZENqcyA9ICdnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLmNqcycsXG5cbiAgLyoqXG4gIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgRVNNIEphdmFTY3JpcHQgZmlsZS5cbiAgICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERjdHMgPSAnaW5kZXguZC5jdHMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhUcyA9ICdpbmRleC50cycsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgc291cmNlcyBvZiB0aGUgcGx1Z2luLUFQSSBpbnRlZ3JhdGlvbi10ZXN0IENPTlNVTUVSIHBsdWdpbi5cbiAgICovXG4gIEludGVncmF0aW9uVGVzdFBsdWdpbkFwaUNvbnN1bWVyID0gJ2ludGVncmF0aW9uLXRlc3QtcGx1Z2luLWFwaS9jb25zdW1lcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgc291cmNlcyBvZiB0aGUgcGx1Z2luLUFQSSBpbnRlZ3JhdGlvbi10ZXN0IFBST1ZJREVSIHBsdWdpbi5cbiAgICovXG4gIEludGVncmF0aW9uVGVzdFBsdWdpbkFwaVByb3ZpZGVyID0gJ2ludGVncmF0aW9uLXRlc3QtcGx1Z2luLWFwaS9wcm92aWRlcicsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKlxuICBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKipcbiAgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBzY2hlbWEgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50VHlwZXNNYXJrZG93bmxpbnRDbGkyQ29uZmlnU2NoZW1hRHRzID0gJ3NyYy9zY3JpcHQtdXRpbHMvbGludGVycy9tYXJrZG93bmxpbnQtdHlwZXMvQHR5cGVzL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy1zY2hlbWEuZC50cycsXG5cbiAgLyoqXG4gIEdlbmVyYXRlZCBmbGF0IHJlLWV4cG9ydCBiYXJyZWwgZmlsZS5cbiAgICovXG4gIE1lcmdlZFRzID0gJ19fbWVyZ2VkLnRzJyxcblxuICAvKipcbiAgRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBNanNFeHRlbnNpb24gPSAnLm1qcycsXG5cbiAgLyoqXG4gIE5vZGUgbW9kdWxlcyBmb2xkZXIuXG4gICAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKlxuICBQYWNrYWdlIEpTT04gZmlsZS5cbiAgICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqXG4gIEZvbGRlciBob2xkaW5nIGhhbmQtd3JpdHRlbiBwYXRjaGVkIGNvcGllcyBvZiB0aGlyZC1wYXJ0eSBwYWNrYWdlcy5cbiAgICovXG4gIFBhdGNoZXMgPSAncGF0Y2hlcycsXG5cbiAgLyoqXG4gIFJvb3QgZm9sZGVyLlxuICAgKi9cbiAgUm9vdEZvbGRlciA9ICcvJyxcblxuICAvKipcbiAgU2NyaXB0cyBmb2xkZXIuXG4gICAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKlxuICBTY3JpcHRVdGlscyBmb2xkZXIuXG4gICAqL1xuICBTY3JpcHRVdGlscyA9ICdzY3JpcHQtdXRpbHMnLFxuXG4gIC8qKlxuICBTb3VyY2UgZm9sZGVyLlxuICAgKi9cbiAgU3JjID0gJ3NyYycsXG5cbiAgLyoqXG4gIFN0eWxlcyBmb2xkZXIuXG4gICAqL1xuICBTdHlsZXMgPSAnc3R5bGVzJyxcblxuICAvKipcbiAgU3R5bGVzIENTUyBmaWxlLlxuICAgKi9cbiAgU3R5bGVzQ3NzID0gJ3N0eWxlcy5jc3MnLFxuXG4gIC8qKlxuICBUZW1wbGF0ZXMgZm9sZGVyLlxuICAgKi9cbiAgVGVtcGxhdGVzID0gJ3RlbXBsYXRlcycsXG5cbiAgLyoqXG4gIFRlc3QgaGVscGVycyBmb2xkZXIuXG4gICAqL1xuICBUZXN0SGVscGVycyA9ICd0ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBDb21tb25KUyBkZWNsYXJhdGlvbnMuXG4gICAqL1xuICBUc0NvbmZpZ1ZhbGlkYXRlRGVjbGFyYXRpb25zQ2pzSnNvbiA9ICd0c2NvbmZpZy52YWxpZGF0ZS1kZWNsYXJhdGlvbnMtY2pzLmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHZhbGlkYXRlcyB0aGUgZ2VuZXJhdGVkIEVTTSBkZWNsYXJhdGlvbnMuXG4gICAqL1xuICBUc0NvbmZpZ1ZhbGlkYXRlRGVjbGFyYXRpb25zSnNvbiA9ICd0c2NvbmZpZy52YWxpZGF0ZS1kZWNsYXJhdGlvbnMuanNvbicsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBUc0V4dGVuc2lvbiA9ICcudHMnLFxuXG4gIC8qKlxuICBUeXBlcyBmb2xkZXIuXG4gICAqL1xuICBUeXBlcyA9ICdAdHlwZXMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdPLElBQUssNEJBQUwsa0JBQUtBLCtCQUFMO0FBSUwsRUFBQUEsMkJBQUEsU0FBTTtBQUtOLEVBQUFBLDJCQUFBLFlBQVM7QUFLVCxFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLFlBQVM7QUFLVCxFQUFBQSwyQkFBQSxZQUFTO0FBS1QsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLFdBQVE7QUFLUixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsU0FBTTtBQUtOLEVBQUFBLDJCQUFBLGtCQUFlO0FBS2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsVUFBTztBQUtQLEVBQUFBLDJCQUFBLHlCQUFzQjtBQUt0QixFQUFBQSwyQkFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUs1QixFQUFBQSwyQkFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLDJCQUFBLGtCQUFlO0FBS2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLDJCQUFBLFVBQU87QUFLUCxFQUFBQSwyQkFBQSxjQUFXO0FBS1gsRUFBQUEsMkJBQUEsZ0JBQWE7QUFLYixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLHFCQUFrQjtBQUtsQixFQUFBQSwyQkFBQSxTQUFNO0FBS04sRUFBQUEsMkJBQUEsNkJBQTBCO0FBSzFCLEVBQUFBLDJCQUFBLDZCQUEwQjtBQUsxQixFQUFBQSwyQkFBQSxjQUFXO0FBS1gsRUFBQUEsMkJBQUEsZUFBWTtBQUtaLEVBQUFBLDJCQUFBLGVBQVk7QUFLWixFQUFBQSwyQkFBQSxjQUFXO0FBS1gsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLHNDQUFtQztBQUtuQyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFLbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsMkJBQUEsc0RBQW1EO0FBS25ELEVBQUFBLDJCQUFBLGNBQVc7QUFLWCxFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsZ0JBQWE7QUFLYixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxTQUFNO0FBS04sRUFBQUEsMkJBQUEsWUFBUztBQUtULEVBQUFBLDJCQUFBLGVBQVk7QUFLWixFQUFBQSwyQkFBQSxlQUFZO0FBS1osRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLHlDQUFzQztBQUt0QyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFLbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxXQUFRO0FBdFNFLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyJdCn0K
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKipcbiAgQW55IGZpbGUgb3IgZm9sZGVyLlxuICAgKi9cbiAgQW55ID0gJyonLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlLlxuICAgKi9cbiAgQW55Q2pzID0gJyouY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueURtdHMgPSAnKi5kLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueUR0cyA9ICcqLmQudHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKipcbiAgQW55IHBhdGggcmVjdXJzaXZlbHkuXG4gICAqL1xuICBBbnlQYXRoID0gJyoqJyxcblxuICAvKipcbiAgQW55IFR5cGVTY3JpcHQgZmlsZS5cbiAgICovXG4gIEFueVRzID0gJyoudHMnLFxuXG4gIC8qKlxuICBBc3RybyBjb25maWd1cmF0aW9uIGZpbGUgKGRvY3VtZW50YXRpb24gc2l0ZSkgYXQgdGhlIHJlcG8gcm9vdC5cbiAgICovXG4gIEFzdHJvQ29uZmlnVHMgPSAnYXN0cm8uY29uZmlnLnRzJyxcblxuICAvKipcbiAgV2luZG93cyBiYXRjaCBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIEJhdEV4dGVuc2lvbiA9ICcuYmF0JyxcblxuICAvKipcbiAgRm9sZGVyIGhvbGRpbmcgdGhlIGV4ZWN1dGFibGUgc2hpbXMgb2YgbG9jYWxseS1pbnN0YWxsZWQgcGFja2FnZXMuXG4gICAqL1xuICBCaW4gPSAnLmJpbicsXG5cbiAgLyoqXG4gIEJ1biBsb2NrZmlsZS5cbiAgICovXG4gIEJ1bkxvY2sgPSAnYnVuLmxvY2snLFxuXG4gIC8qKlxuICBCaW5hcnkgYnVuIGxvY2tmaWxlLCB3cml0dGVuIGJ5IGJ1biBiZWZvcmUgdjEuMi5cbiAgICovXG4gIEJ1bkxvY2tiID0gJ2J1bi5sb2NrYicsXG5cbiAgLyoqXG4gIENvbW1vbkpTIGZvbGRlci5cbiAgICovXG4gIENqcyA9ICdjanMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKipcbiAgV2luZG93cyBjb21tYW5kIHNjcmlwdCBleHRlbnNpb24uXG4gICAqL1xuICBDb21tYW5kRXh0ZW5zaW9uID0gJy5jbWQnLFxuXG4gIC8qKlxuICBDdXJyZW50IGZvbGRlci5cbiAgICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqXG4gIERhdGF2aWV3IHR5cGVzLlxuICAgKi9cbiAgRGF0YXZpZXdUeXBlcyA9ICdzcmMvb2JzaWRpYW4vQHR5cGVzL2RhdGF2aWV3LyoqJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERjdHNFeHRlbnNpb24gPSAnLmQuY3RzJyxcblxuICAvKipcbiAgRGlzdHJpYnV0aW9uIGZvbGRlci5cbiAgICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYnVpbHQgYGRlbW8tdmF1bHQtaGVscGVyYCBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLCBpbmplY3RlZCBpbnRvIGRlbW8gdmF1bHRzIGF0IHJlbGVhc2UgdGltZS5cbiAgICovXG4gIERpc3REZW1vVmF1bHRIZWxwZXIgPSAnZGlzdC9kZW1vLXZhdWx0LWhlbHBlcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYnVpbHQgaW50ZWdyYXRpb24tdGVzdCBoYXJuZXNzIHBsdWdpbiB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIsIHNlZWRlZCBpbnRvIGEgY29uc3VtZXIncyBpbnRlZ3JhdGlvbi10ZXN0IHZhdWx0IHNvIGl0cyBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmVzIHJlYWNoIHRoZSBsaWJyYXJ5IHZpYSBgbGliYC5cbiAgICovXG4gIERpc3RJbnRlZ3JhdGlvblRlc3RQbHVnaW4gPSAnZGlzdC9pbnRlZ3JhdGlvbi10ZXN0LXBsdWdpbicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci5cbiAgICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKlxuICBBIHBhdGggdG8gdGhlIGJ1aWx0IHBsdWdpbi1BUEkgaW50ZWdyYXRpb24tdGVzdCBDT05TVU1FUiBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiBUZXN0LW9ubHkgYW5kIG5ldmVyIHNoaXBwZWQ7IGJ1aWx0IHNlcGFyYXRlbHkgZnJvbSBpdHMgcHJvdmlkZXIgc28gdGhlIHR3byBjYXJyeSBkaXN0aW5jdCBgb2JzaWRpYW4tZGV2LXV0aWxzYCBjb3BpZXMuXG4gICAqL1xuICBEaXN0UGx1Z2luQXBpVGVzdENvbnN1bWVyID0gJ2Rpc3QvcGx1Z2luLWFwaS10ZXN0LWNvbnN1bWVyJyxcblxuICAvKipcbiAgQSBwYXRoIHRvIHRoZSBidWlsdCBwbHVnaW4tQVBJIGludGVncmF0aW9uLXRlc3QgUFJPVklERVIgcGx1Z2luIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gVGVzdC1vbmx5IGFuZCBuZXZlciBzaGlwcGVkOyBidWlsdCBzZXBhcmF0ZWx5IGZyb20gaXRzIGNvbnN1bWVyIHNvIHRoZSB0d28gY2FycnkgZGlzdGluY3QgYG9ic2lkaWFuLWRldi11dGlsc2AgY29waWVzLlxuICAgKi9cbiAgRGlzdFBsdWdpbkFwaVRlc3RQcm92aWRlciA9ICdkaXN0L3BsdWdpbi1hcGktdGVzdC1wcm92aWRlcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlciwgaG9sZGluZyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcy5cbiAgICovXG4gIERpc3RUZW1wbGF0ZXMgPSAnZGlzdC90ZW1wbGF0ZXMnLFxuXG4gIC8qKlxuICBUcmFuc3BpbGVkIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBEanNFeHRlbnNpb24gPSAnLmQuanMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKipcbiAgRG9jdW1lbnRhdGlvbiBzaXRlIGZvbGRlciAoQXN0cm8gKyBTdGFybGlnaHQgQVBJLWRvY3Mgc3ViLXByb2plY3QpLlxuICAgKi9cbiAgRG9jcyA9ICdkb2NzJyxcblxuICAvKipcbiAgQnVpbGQgb3V0cHV0IGZvbGRlciBvZiB0aGUgZG9jdW1lbnRhdGlvbiBzaXRlLlxuICAgKi9cbiAgRG9jc0Rpc3QgPSAnZG9jcy9kaXN0JyxcblxuICAvKipcbiAgRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIERwcmludEpzb24gPSAnZHByaW50Lmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRHRzRXh0ZW5zaW9uID0gJy5kLnRzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIEVTTSBKYXZhU2NyaXB0IGZvbGRlci5cbiAgICovXG4gIEVzbSA9ICdlc20nLFxuXG4gIC8qKlxuICBXaW5kb3dzIGV4ZWN1dGFibGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRXhlRXh0ZW5zaW9uID0gJy5leGUnLFxuXG4gIC8qKlxuICBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIENvbW1vbkpTIGZpbGUuXG4gICAqL1xuICBHZW5lcmF0ZWREdXJpbmdCdWlsZENqcyA9ICdnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLmNqcycsXG5cbiAgLyoqXG4gIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgRVNNIEphdmFTY3JpcHQgZmlsZS5cbiAgICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERjdHMgPSAnaW5kZXguZC5jdHMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhUcyA9ICdpbmRleC50cycsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgc291cmNlcyBvZiB0aGUgcGx1Z2luLUFQSSBpbnRlZ3JhdGlvbi10ZXN0IENPTlNVTUVSIHBsdWdpbi5cbiAgICovXG4gIEludGVncmF0aW9uVGVzdFBsdWdpbkFwaUNvbnN1bWVyID0gJ2ludGVncmF0aW9uLXRlc3QtcGx1Z2luLWFwaS9jb25zdW1lcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgc291cmNlcyBvZiB0aGUgcGx1Z2luLUFQSSBpbnRlZ3JhdGlvbi10ZXN0IFBST1ZJREVSIHBsdWdpbi5cbiAgICovXG4gIEludGVncmF0aW9uVGVzdFBsdWdpbkFwaVByb3ZpZGVyID0gJ2ludGVncmF0aW9uLXRlc3QtcGx1Z2luLWFwaS9wcm92aWRlcicsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKlxuICBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKipcbiAgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBzY2hlbWEgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50VHlwZXNNYXJrZG93bmxpbnRDbGkyQ29uZmlnU2NoZW1hRHRzID0gJ3NyYy9zY3JpcHQtdXRpbHMvbGludGVycy9tYXJrZG93bmxpbnQtdHlwZXMvQHR5cGVzL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy1zY2hlbWEuZC50cycsXG5cbiAgLyoqXG4gIEdlbmVyYXRlZCBmbGF0IHJlLWV4cG9ydCBiYXJyZWwgZmlsZS5cbiAgICovXG4gIE1lcmdlZFRzID0gJ19fbWVyZ2VkLnRzJyxcblxuICAvKipcbiAgRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBNanNFeHRlbnNpb24gPSAnLm1qcycsXG5cbiAgLyoqXG4gIE5vZGUgbW9kdWxlcyBmb2xkZXIuXG4gICAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKlxuICBQYWNrYWdlIEpTT04gZmlsZS5cbiAgICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqXG4gIE5QTSBsb2NrZmlsZS5cbiAgICovXG4gIFBhY2thZ2VMb2NrSnNvbiA9ICdwYWNrYWdlLWxvY2suanNvbicsXG5cbiAgLyoqXG4gIEZvbGRlciBob2xkaW5nIGhhbmQtd3JpdHRlbiBwYXRjaGVkIGNvcGllcyBvZiB0aGlyZC1wYXJ0eSBwYWNrYWdlcy5cbiAgICovXG4gIFBhdGNoZXMgPSAncGF0Y2hlcycsXG5cbiAgLyoqXG4gIFBucG0gbG9ja2ZpbGUuXG4gICAqL1xuICBQbnBtTG9ja1lhbWwgPSAncG5wbS1sb2NrLnlhbWwnLFxuXG4gIC8qKlxuICBSb290IGZvbGRlci5cbiAgICovXG4gIFJvb3RGb2xkZXIgPSAnLycsXG5cbiAgLyoqXG4gIFNjcmlwdHMgZm9sZGVyLlxuICAgKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKipcbiAgU2NyaXB0VXRpbHMgZm9sZGVyLlxuICAgKi9cbiAgU2NyaXB0VXRpbHMgPSAnc2NyaXB0LXV0aWxzJyxcblxuICAvKipcbiAgU291cmNlIGZvbGRlci5cbiAgICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKlxuICBTdHlsZXMgZm9sZGVyLlxuICAgKi9cbiAgU3R5bGVzID0gJ3N0eWxlcycsXG5cbiAgLyoqXG4gIFN0eWxlcyBDU1MgZmlsZS5cbiAgICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKipcbiAgVGVtcGxhdGVzIGZvbGRlci5cbiAgICovXG4gIFRlbXBsYXRlcyA9ICd0ZW1wbGF0ZXMnLFxuXG4gIC8qKlxuICBUZXN0IGhlbHBlcnMgZm9sZGVyLlxuICAgKi9cbiAgVGVzdEhlbHBlcnMgPSAndGVzdC1oZWxwZXJzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBUc0NvbmZpZ0pzb24gPSAndHNjb25maWcuanNvbicsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgdmFsaWRhdGVzIHRoZSBnZW5lcmF0ZWQgQ29tbW9uSlMgZGVjbGFyYXRpb25zLlxuICAgKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0Nqc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLWNqcy5qc29uJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBFU00gZGVjbGFyYXRpb25zLlxuICAgKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgVHNFeHRlbnNpb24gPSAnLnRzJyxcblxuICAvKipcbiAgVHlwZXMgZm9sZGVyLlxuICAgKi9cbiAgVHlwZXMgPSAnQHR5cGVzJyxcblxuICAvKipcbiAgWWFybiBsb2NrZmlsZS5cbiAgICovXG4gIFlhcm5Mb2NrID0gJ3lhcm4ubG9jaydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV08sSUFBSyw0QkFBTCxrQkFBS0EsK0JBQUw7QUFJTCxFQUFBQSwyQkFBQSxTQUFNO0FBS04sRUFBQUEsMkJBQUEsWUFBUztBQUtULEVBQUFBLDJCQUFBLGFBQVU7QUFLVixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsWUFBUztBQUtULEVBQUFBLDJCQUFBLFlBQVM7QUFLVCxFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsV0FBUTtBQUtSLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLFNBQU07QUFLTixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsY0FBVztBQUtYLEVBQUFBLDJCQUFBLFNBQU07QUFLTixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLHNCQUFtQjtBQUtuQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSwyQkFBQSxVQUFPO0FBS1AsRUFBQUEsMkJBQUEseUJBQXNCO0FBS3RCLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUs1QixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUs1QixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsa0JBQWU7QUFLZixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsVUFBTztBQUtQLEVBQUFBLDJCQUFBLGNBQVc7QUFLWCxFQUFBQSwyQkFBQSxnQkFBYTtBQUtiLEVBQUFBLDJCQUFBLGtCQUFlO0FBS2YsRUFBQUEsMkJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLDJCQUFBLFNBQU07QUFLTixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLDZCQUEwQjtBQUsxQixFQUFBQSwyQkFBQSw2QkFBMEI7QUFLMUIsRUFBQUEsMkJBQUEsY0FBVztBQUtYLEVBQUFBLDJCQUFBLGVBQVk7QUFLWixFQUFBQSwyQkFBQSxlQUFZO0FBS1osRUFBQUEsMkJBQUEsY0FBVztBQUtYLEVBQUFBLDJCQUFBLGFBQVU7QUFLVixFQUFBQSwyQkFBQSxzQ0FBbUM7QUFLbkMsRUFBQUEsMkJBQUEsc0NBQW1DO0FBS25DLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLDJCQUFBLHNEQUFtRDtBQUtuRCxFQUFBQSwyQkFBQSxjQUFXO0FBS1gsRUFBQUEsMkJBQUEsa0JBQWU7QUFLZixFQUFBQSwyQkFBQSxpQkFBYztBQUtkLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLDJCQUFBLGFBQVU7QUFLVixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLGdCQUFhO0FBS2IsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsU0FBTTtBQUtOLEVBQUFBLDJCQUFBLFlBQVM7QUFLVCxFQUFBQSwyQkFBQSxlQUFZO0FBS1osRUFBQUEsMkJBQUEsZUFBWTtBQUtaLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsa0JBQWU7QUFLZixFQUFBQSwyQkFBQSx5Q0FBc0M7QUFLdEMsRUFBQUEsMkJBQUEsc0NBQW1DO0FBS25DLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsV0FBUTtBQUtSLEVBQUFBLDJCQUFBLGNBQVc7QUFuVkQsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIl0KfQo=
|
|
@@ -47,6 +47,22 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
47
47
|
*/
|
|
48
48
|
AstroConfigTs = "astro.config.ts",
|
|
49
49
|
/**
|
|
50
|
+
Windows batch file extension.
|
|
51
|
+
*/
|
|
52
|
+
BatExtension = ".bat",
|
|
53
|
+
/**
|
|
54
|
+
Folder holding the executable shims of locally-installed packages.
|
|
55
|
+
*/
|
|
56
|
+
Bin = ".bin",
|
|
57
|
+
/**
|
|
58
|
+
Bun lockfile.
|
|
59
|
+
*/
|
|
60
|
+
BunLock = "bun.lock",
|
|
61
|
+
/**
|
|
62
|
+
Binary bun lockfile, written by bun before v1.2.
|
|
63
|
+
*/
|
|
64
|
+
BunLockb = "bun.lockb",
|
|
65
|
+
/**
|
|
50
66
|
CommonJS folder.
|
|
51
67
|
*/
|
|
52
68
|
Cjs = "cjs",
|
|
@@ -55,6 +71,10 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
55
71
|
*/
|
|
56
72
|
CjsExtension = ".cjs",
|
|
57
73
|
/**
|
|
74
|
+
Windows command script extension.
|
|
75
|
+
*/
|
|
76
|
+
CommandExtension = ".cmd",
|
|
77
|
+
/**
|
|
58
78
|
Current folder.
|
|
59
79
|
*/
|
|
60
80
|
CurrentFolder = ".",
|
|
@@ -127,6 +147,10 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
127
147
|
*/
|
|
128
148
|
Esm = "esm",
|
|
129
149
|
/**
|
|
150
|
+
Windows executable extension.
|
|
151
|
+
*/
|
|
152
|
+
ExeExtension = ".exe",
|
|
153
|
+
/**
|
|
130
154
|
Generated-during-build CommonJS file.
|
|
131
155
|
*/
|
|
132
156
|
GeneratedDuringBuildCjs = "generated-during-build.cjs",
|
|
@@ -191,10 +215,18 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
191
215
|
*/
|
|
192
216
|
PackageJson = "package.json",
|
|
193
217
|
/**
|
|
218
|
+
NPM lockfile.
|
|
219
|
+
*/
|
|
220
|
+
PackageLockJson = "package-lock.json",
|
|
221
|
+
/**
|
|
194
222
|
Folder holding hand-written patched copies of third-party packages.
|
|
195
223
|
*/
|
|
196
224
|
Patches = "patches",
|
|
197
225
|
/**
|
|
226
|
+
Pnpm lockfile.
|
|
227
|
+
*/
|
|
228
|
+
PnpmLockYaml = "pnpm-lock.yaml",
|
|
229
|
+
/**
|
|
198
230
|
Root folder.
|
|
199
231
|
*/
|
|
200
232
|
RootFolder = "/",
|
|
@@ -245,5 +277,9 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
245
277
|
/**
|
|
246
278
|
Types folder.
|
|
247
279
|
*/
|
|
248
|
-
Types = "@types"
|
|
280
|
+
Types = "@types",
|
|
281
|
+
/**
|
|
282
|
+
Yarn lockfile.
|
|
283
|
+
*/
|
|
284
|
+
YarnLock = "yarn.lock"
|
|
249
285
|
}
|
|
@@ -0,0 +1,287 @@
|
|
|
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
|
+
(function () {
|
|
7
|
+
function ensureBrowserProcess() {
|
|
8
|
+
const browserProcess = {
|
|
9
|
+
browser: true,
|
|
10
|
+
cwd() {
|
|
11
|
+
return '/';
|
|
12
|
+
},
|
|
13
|
+
env: {},
|
|
14
|
+
platform: 'android'
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
18
|
+
const existingProcess = globalThis.process;
|
|
19
|
+
|
|
20
|
+
if (!existingProcess) {
|
|
21
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
22
|
+
globalThis.process = browserProcess;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (existingProcess.versions?.node) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const existingProcessRecord = existingProcess;
|
|
31
|
+
|
|
32
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
33
|
+
existingProcessRecord[key] ??= value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
existingProcessRecord['browser'] = true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function keepName($unknown) {
|
|
40
|
+
return $unknown;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
(function initCjs() {
|
|
44
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
45
|
+
const globalThisRecord = globalThis;
|
|
46
|
+
globalThisRecord['__name'] ??= keepName;
|
|
47
|
+
const originalRequire = require;
|
|
48
|
+
if (originalRequire && !originalRequire.__isPatched) {
|
|
49
|
+
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
50
|
+
require = Object.assign(
|
|
51
|
+
(id) => requirePatched(id),
|
|
52
|
+
originalRequire,
|
|
53
|
+
{
|
|
54
|
+
__isPatched: true
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
60
|
+
|
|
61
|
+
ensureBrowserProcess();
|
|
62
|
+
|
|
63
|
+
function extractDefault(module) {
|
|
64
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
68
|
+
'@codemirror/autocomplete',
|
|
69
|
+
'@codemirror/collab',
|
|
70
|
+
'@codemirror/commands',
|
|
71
|
+
'@codemirror/language',
|
|
72
|
+
'@codemirror/lint',
|
|
73
|
+
'@codemirror/search',
|
|
74
|
+
'@codemirror/state',
|
|
75
|
+
'@codemirror/text',
|
|
76
|
+
'@codemirror/view',
|
|
77
|
+
'@lezer/common',
|
|
78
|
+
'@lezer/highlight',
|
|
79
|
+
'@lezer/lr',
|
|
80
|
+
'obsidian']
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
84
|
+
'@codemirror/closebrackets',
|
|
85
|
+
'@codemirror/comment',
|
|
86
|
+
'@codemirror/fold',
|
|
87
|
+
'@codemirror/gutter',
|
|
88
|
+
'@codemirror/highlight',
|
|
89
|
+
'@codemirror/history',
|
|
90
|
+
'@codemirror/matchbrackets',
|
|
91
|
+
'@codemirror/panel',
|
|
92
|
+
'@codemirror/rangeset',
|
|
93
|
+
'@codemirror/rectangular-selection',
|
|
94
|
+
'@codemirror/stream-parser',
|
|
95
|
+
'@codemirror/tooltip']
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
function requirePatched(id) {
|
|
99
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
100
|
+
return originalRequire?.(id);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
104
|
+
if (globalThis.app.isMobile) {
|
|
105
|
+
if (id === 'process' || id === 'node:process') {
|
|
106
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
107
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
108
|
+
|
|
109
|
+
return process;
|
|
110
|
+
}
|
|
111
|
+
} else {
|
|
112
|
+
const module = originalRequire?.(id);
|
|
113
|
+
if (module) {
|
|
114
|
+
return extractDefault(module);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
119
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
120
|
+
return {};
|
|
121
|
+
}
|
|
122
|
+
})();
|
|
123
|
+
})();
|
|
124
|
+
|
|
125
|
+
"use strict";
|
|
126
|
+
var __create = Object.create;
|
|
127
|
+
var __defProp = Object.defineProperty;
|
|
128
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
129
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
130
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
131
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
132
|
+
var __export = (target, all) => {
|
|
133
|
+
for (var name in all)
|
|
134
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
135
|
+
};
|
|
136
|
+
var __copyProps = (to, from, except, desc) => {
|
|
137
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
138
|
+
for (let key of __getOwnPropNames(from))
|
|
139
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
140
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
141
|
+
}
|
|
142
|
+
return to;
|
|
143
|
+
};
|
|
144
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
145
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
146
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
147
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
148
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
149
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
150
|
+
mod
|
|
151
|
+
));
|
|
152
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
153
|
+
var package_manager_exports = {};
|
|
154
|
+
__export(package_manager_exports, {
|
|
155
|
+
PackageManager: () => PackageManager,
|
|
156
|
+
getPackageManager: () => getPackageManager,
|
|
157
|
+
getPackageManagerRunCommand: () => getPackageManagerRunCommand,
|
|
158
|
+
resolveToolCommand: () => resolveToolCommand
|
|
159
|
+
});
|
|
160
|
+
module.exports = __toCommonJS(package_manager_exports);
|
|
161
|
+
var import_node_fs = require('node:fs');
|
|
162
|
+
var import_node_process = __toESM(__extractDefault(require('node:process')), 1);
|
|
163
|
+
var import_path = require('../path.cjs');
|
|
164
|
+
var import_reg_exp = require('../reg-exp.cjs');
|
|
165
|
+
var import_type_guards = require('../type-guards.cjs');
|
|
166
|
+
var import_obsidian_dev_utils_repo_paths = require('./obsidian-dev-utils-repo-paths.cjs');
|
|
167
|
+
var import_root = require('./root.cjs');
|
|
168
|
+
var PackageManager = /* @__PURE__ */ ((PackageManager2) => {
|
|
169
|
+
PackageManager2["Bun"] = "bun";
|
|
170
|
+
PackageManager2["Npm"] = "npm";
|
|
171
|
+
PackageManager2["Pnpm"] = "pnpm";
|
|
172
|
+
PackageManager2["Yarn"] = "yarn";
|
|
173
|
+
return PackageManager2;
|
|
174
|
+
})(PackageManager || {});
|
|
175
|
+
function getPackageManager(cwd) {
|
|
176
|
+
const root = getStartFolder(cwd);
|
|
177
|
+
if ((0, import_node_fs.existsSync)((0, import_path.join)(root, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.BunLock)) || (0, import_node_fs.existsSync)((0, import_path.join)(root, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.BunLockb))) {
|
|
178
|
+
return "bun" /* Bun */;
|
|
179
|
+
}
|
|
180
|
+
if ((0, import_node_fs.existsSync)((0, import_path.join)(root, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.PnpmLockYaml))) {
|
|
181
|
+
return "pnpm" /* Pnpm */;
|
|
182
|
+
}
|
|
183
|
+
if ((0, import_node_fs.existsSync)((0, import_path.join)(root, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.YarnLock))) {
|
|
184
|
+
return "yarn" /* Yarn */;
|
|
185
|
+
}
|
|
186
|
+
if ((0, import_node_fs.existsSync)((0, import_path.join)(root, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.PackageLockJson))) {
|
|
187
|
+
return "npm" /* Npm */;
|
|
188
|
+
}
|
|
189
|
+
return detectPackageManagerFromUserAgent() ?? "npm" /* Npm */;
|
|
190
|
+
}
|
|
191
|
+
function getPackageManagerRunCommand(cwd) {
|
|
192
|
+
return [getPackageManager(cwd), "run"];
|
|
193
|
+
}
|
|
194
|
+
function resolveToolCommand(params) {
|
|
195
|
+
const { cwd, tool } = params;
|
|
196
|
+
const shimPath = findBinShim({ cwd, tool });
|
|
197
|
+
if (shimPath !== null) {
|
|
198
|
+
return [shimPath];
|
|
199
|
+
}
|
|
200
|
+
return [...getPackageManagerExecCommand(cwd), tool];
|
|
201
|
+
}
|
|
202
|
+
const USER_AGENT_NAME_REG_EXP = /^(?<name>[^/\s]+)\//;
|
|
203
|
+
function detectPackageManagerFromUserAgent() {
|
|
204
|
+
const userAgent = import_node_process.default.env["npm_config_user_agent"];
|
|
205
|
+
if (!userAgent) {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
const match = USER_AGENT_NAME_REG_EXP.exec(userAgent);
|
|
209
|
+
if (!match) {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
const name = (0, import_reg_exp.getMandatoryNamedGroup)(match, "name");
|
|
213
|
+
switch (name) {
|
|
214
|
+
case "bun" /* Bun */: {
|
|
215
|
+
return "bun" /* Bun */;
|
|
216
|
+
}
|
|
217
|
+
case "npm" /* Npm */: {
|
|
218
|
+
return "npm" /* Npm */;
|
|
219
|
+
}
|
|
220
|
+
case "pnpm" /* Pnpm */: {
|
|
221
|
+
return "pnpm" /* Pnpm */;
|
|
222
|
+
}
|
|
223
|
+
case "yarn" /* Yarn */: {
|
|
224
|
+
return "yarn" /* Yarn */;
|
|
225
|
+
}
|
|
226
|
+
default: {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
function findBinShim(params) {
|
|
232
|
+
const { cwd, tool } = params;
|
|
233
|
+
const candidates = getShimCandidates(tool);
|
|
234
|
+
let currentFolder = getStartFolder(cwd);
|
|
235
|
+
while (currentFolder !== import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.CurrentFolder && currentFolder !== import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.RootFolder) {
|
|
236
|
+
for (const candidate of candidates) {
|
|
237
|
+
const shimPath = (0, import_path.join)(currentFolder, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.NodeModules, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.Bin, candidate);
|
|
238
|
+
if ((0, import_node_fs.existsSync)(shimPath)) {
|
|
239
|
+
return shimPath;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
currentFolder = (0, import_path.dirname)(currentFolder);
|
|
243
|
+
}
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
function getPackageManagerExecCommand(cwd) {
|
|
247
|
+
const packageManager = getPackageManager(cwd);
|
|
248
|
+
switch (packageManager) {
|
|
249
|
+
case "bun" /* Bun */: {
|
|
250
|
+
return ["bun", "x"];
|
|
251
|
+
}
|
|
252
|
+
case "npm" /* Npm */: {
|
|
253
|
+
return ["npx"];
|
|
254
|
+
}
|
|
255
|
+
case "pnpm" /* Pnpm */: {
|
|
256
|
+
return ["pnpm", "exec"];
|
|
257
|
+
}
|
|
258
|
+
case "yarn" /* Yarn */: {
|
|
259
|
+
return ["yarn", "exec"];
|
|
260
|
+
}
|
|
261
|
+
/* v8 ignore start -- Exhaustive switch guard; default branch is unreachable. */
|
|
262
|
+
default: {
|
|
263
|
+
return (0, import_type_guards.assertNever)(packageManager);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
function getShimCandidates(tool) {
|
|
268
|
+
if (import_node_process.default.platform !== "win32") {
|
|
269
|
+
return [tool];
|
|
270
|
+
}
|
|
271
|
+
return [
|
|
272
|
+
`${tool}${import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.CommandExtension}`,
|
|
273
|
+
`${tool}${import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.ExeExtension}`,
|
|
274
|
+
`${tool}${import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.BatExtension}`
|
|
275
|
+
];
|
|
276
|
+
}
|
|
277
|
+
function getStartFolder(cwd) {
|
|
278
|
+
return (0, import_root.getRootFolder)(cwd) ?? (0, import_path.toPosixPath)(cwd ?? import_node_process.default.cwd());
|
|
279
|
+
}
|
|
280
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
281
|
+
0 && (module.exports = {
|
|
282
|
+
PackageManager,
|
|
283
|
+
getPackageManager,
|
|
284
|
+
getPackageManagerRunCommand,
|
|
285
|
+
resolveToolCommand
|
|
286
|
+
});
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9wYWNrYWdlLW1hbmFnZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXNvbHZlcyBsb2NhbGx5LWluc3RhbGxlZCB0b29sIGJpbmFyaWVzIGFuZCBwYWNrYWdlLXNjcmlwdCBydW5uZXJzIHdpdGhvdXQgYXNzdW1pbmcgYG5wbWAuXG4gKlxuICogRGVsZWdhdGluZyB0byBgbnB4YCBzaWxlbnRseSBhc3N1bWVzIGFuIG5wbS1pbnN0YWxsZWQgdHJlZS4gT24gV2luZG93cyB0aGF0IGFzc3VtcHRpb24gaXMgZmF0YWwgdW5kZXJcbiAqIGBidW5gOiBgYnVuIGluc3RhbGxgIHdyaXRlcyBgbm9kZV9tb2R1bGVzLy5iaW4vPHRvb2w+LmV4ZWAsIG5vdCB0aGUgYDx0b29sPi5jbWRgIHRoYXQgbnBtJ3MgYG5weGAgbG9va3NcbiAqIGZvciwgc28gYG5weGAgbWlzc2VzIHRoZSBsb2NhbCBpbnN0YWxsIGVudGlyZWx5IGFuZCBkb3dubG9hZHMgdGhlIHRvb2wgZnJvbSB0aGUgcmVnaXN0cnkgaW5zdGVhZCBcdTIwMTQgd2hpY2hcbiAqIGZvciBgdHNjYCBpcyB0aGUgd2VsbC1rbm93biBkZWNveSBwYWNrYWdlLCBub3QgVHlwZVNjcmlwdC4gUmVzb2x2aW5nIHRoZSBzaGltIGZyb20gYG5vZGVfbW9kdWxlcy8uYmluYFxuICogb3Vyc2VsdmVzIHNpZGVzdGVwcyB0aGUgd2hvbGUgc2hpbS1mb3JtYXQgcXVlc3Rpb24sIGJlY2F1c2UgZXZlcnkgcGFja2FnZSBtYW5hZ2VyIHdyaXRlcyBvbmUgdGhlcmUuXG4gKi9cblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwIH0gZnJvbSAnLi4vcmVnLWV4cC50cyc7XG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gJy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IGdldFJvb3RGb2xkZXIgfSBmcm9tICcuL3Jvb3QudHMnO1xuXG4vKipcbiAqIEEgcGFja2FnZSBtYW5hZ2VyIHRoYXQgY2FuIG93biBhIHByb2plY3QncyBkZXBlbmRlbmN5IHRyZWUuXG4gKi9cbmV4cG9ydCBlbnVtIFBhY2thZ2VNYW5hZ2VyIHtcbiAgLyoqXG4gICAqIFRoZSBgYnVuYCBwYWNrYWdlIG1hbmFnZXIuXG4gICAqL1xuICBCdW4gPSAnYnVuJyxcblxuICAvKipcbiAgICogVGhlIGBucG1gIHBhY2thZ2UgbWFuYWdlci5cbiAgICovXG4gIE5wbSA9ICducG0nLFxuXG4gIC8qKlxuICAgKiBUaGUgYHBucG1gIHBhY2thZ2UgbWFuYWdlci5cbiAgICovXG4gIFBucG0gPSAncG5wbScsXG5cbiAgLyoqXG4gICAqIFRoZSBgeWFybmAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgWWFybiA9ICd5YXJuJ1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZXNvbHZlVG9vbENvbW1hbmR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVUb29sQ29tbWFuZFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLCBhcyBpdCBhcHBlYXJzIGluIGBub2RlX21vZHVsZXMvLmJpbmAuXG4gICAqL1xuICByZWFkb25seSB0b29sOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBwYWNrYWdlIG1hbmFnZXIgb3ducyB0aGUgcHJvamVjdCdzIGRlcGVuZGVuY3kgdHJlZS5cbiAqXG4gKiBUaGUgbG9ja2ZpbGUgaXMgdGhlIHByaW1hcnkgc2lnbmFsLCBiZWNhdXNlIGl0IGRlc2NyaWJlcyB0aGUgdHJlZSBpdHNlbGYgcmF0aGVyIHRoYW4gd2hpY2hldmVyIG1hbmFnZXJcbiAqIGhhcHBlbnMgdG8gaGF2ZSBsYXVuY2hlZCB0aGUgY3VycmVudCBwcm9jZXNzLiBXaGVuIG5vIGxvY2tmaWxlIGlzIHByZXNlbnQsIHRoZSBtYW5hZ2VyIHRoYXQgbGF1bmNoZWQgdXNcbiAqIGlzIHRoZSBuZXh0IGJlc3QgYW5zd2VyLCBhbmQgZXZlcnkgbWFuYWdlciByZXBvcnRzIGl0c2VsZiBpbiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCBhcyBhIGxlYWRpbmdcbiAqIGA8bmFtZT4vPHZlcnNpb24+YCB0b2tlbi5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIHBhY2thZ2UgbWFuYWdlciwgb3Ige0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0gd2hlbiBub3RoaW5nIGluZGljYXRlcyBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlcihjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHJvb3QgPSBnZXRTdGFydEZvbGRlcihjd2QpO1xuXG4gIGlmIChcbiAgICBleGlzdHNTeW5jKGpvaW4ocm9vdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5CdW5Mb2NrKSlcbiAgICB8fCBleGlzdHNTeW5jKGpvaW4ocm9vdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5CdW5Mb2NrYikpXG4gICkge1xuICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5CdW47XG4gIH1cblxuICBpZiAoZXhpc3RzU3luYyhqb2luKHJvb3QsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUG5wbUxvY2tZYW1sKSkpIHtcbiAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuUG5wbTtcbiAgfVxuXG4gIGlmIChleGlzdHNTeW5jKGpvaW4ocm9vdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5ZYXJuTG9jaykpKSB7XG4gICAgcmV0dXJuIFBhY2thZ2VNYW5hZ2VyLllhcm47XG4gIH1cblxuICBpZiAoZXhpc3RzU3luYyhqb2luKHJvb3QsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUGFja2FnZUxvY2tKc29uKSkpIHtcbiAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuTnBtO1xuICB9XG5cbiAgcmV0dXJuIGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpID8/IFBhY2thZ2VNYW5hZ2VyLk5wbTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBwYWNrYWdlIHNjcmlwdCB0aHJvdWdoIHRoZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGNvbW1hbmQgcGFydHMsIGUuZy4gYFsnYnVuJywgJ3J1biddYC4gVGhlIHNjcmlwdCBuYW1lIGlzIGFwcGVuZGVkIGJ5IHRoZSBjYWxsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQoY3dkPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gW2dldFBhY2thZ2VNYW5hZ2VyKGN3ZCksICdydW4nXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLCB3aXRoIHRoZSB0b29sIGl0c2VsZiBhbHJlYWR5IGluY2x1ZGVkLlxuICpcbiAqIFByZWZlcnMgdGhlIHNoaW0gaW4gdGhlIG5lYXJlc3QgYG5vZGVfbW9kdWxlcy8uYmluYCwgd2Fsa2luZyB1cCB0aHJvdWdoIGFuY2VzdG9yIGZvbGRlcnMgc28gYSBob2lzdGVkXG4gKiB3b3Jrc3BhY2UgaW5zdGFsbCBpcyBzdGlsbCBmb3VuZC4gRmFsbHMgYmFjayB0byB0aGUgb3duaW5nIG1hbmFnZXIncyBleGVjIGZvcm0gd2hlbiBubyBzaGltIHJlc29sdmVzIFx1MjAxNFxuICogd2hpY2ggaXMgYm90aCB0aGUgcHJldmlvdXMgYmVoYXZpb3IgYW5kIHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3MgdW5kZXIgeWFybidzIFBsdWcnbidQbGF5LCB3aGVyZVxuICogYG5vZGVfbW9kdWxlcy8uYmluYCBkb2VzIG5vdCBleGlzdCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVzb2x1dGlvbi5cbiAqIEByZXR1cm5zIFRoZSBjb21tYW5kIHBhcnRzLCBlLmcuIGBbJy9wcm9qZWN0L25vZGVfbW9kdWxlcy8uYmluL3RzYyddYCBvciBgWydidW4nLCAneCcsICd0c2MnXWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVG9vbENvbW1hbmQocGFyYW1zOiBSZXNvbHZlVG9vbENvbW1hbmRQYXJhbXMpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHsgY3dkLCB0b29sIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNoaW1QYXRoID0gZmluZEJpblNoaW0oeyBjd2QsIHRvb2wgfSk7XG5cbiAgaWYgKHNoaW1QYXRoICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtzaGltUGF0aF07XG4gIH1cblxuICByZXR1cm4gWy4uLmdldFBhY2thZ2VNYW5hZ2VyRXhlY0NvbW1hbmQoY3dkKSwgdG9vbF07XG59XG5cbi8qKlxuICogTWF0Y2hlcyB0aGUgbGVhZGluZyBgPG5hbWU+L2AgdG9rZW4gb2YgYW4gYG5wbV9jb25maWdfdXNlcl9hZ2VudGAgdmFsdWUuXG4gKi9cbmNvbnN0IFVTRVJfQUdFTlRfTkFNRV9SRUdfRVhQID0gL14oPzxuYW1lPlteL1xcc10rKVxcLy87XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmRCaW5TaGltfS5cbiAqL1xuaW50ZXJmYWNlIEZpbmRCaW5TaGltUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gICAqL1xuICByZWFkb25seSB0b29sOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIHBhY2thZ2UgbWFuYWdlciBvdXQgb2YgYG5wbV9jb25maWdfdXNlcl9hZ2VudGAsIHdoaWNoIGV2ZXJ5IG1hbmFnZXIgc2V0cyBmb3IgdGhlIHByb2Nlc3NlcyBpdFxuICogbGF1bmNoZXMuXG4gKlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIHBhY2thZ2UgbWFuYWdlciwgb3IgYG51bGxgIHdoZW4gdGhlIHZhcmlhYmxlIGlzIGFic2VudCwgbWFsZm9ybWVkLCBvciBuYW1lcyBhXG4gKiBydW50aW1lIHdlIGRvIG5vdCBoYW5kbGUuXG4gKi9cbmZ1bmN0aW9uIGRldGVjdFBhY2thZ2VNYW5hZ2VyRnJvbVVzZXJBZ2VudCgpOiBudWxsIHwgUGFja2FnZU1hbmFnZXIge1xuICBjb25zdCB1c2VyQWdlbnQgPSBwcm9jZXNzLmVudlsnbnBtX2NvbmZpZ191c2VyX2FnZW50J107XG5cbiAgaWYgKCF1c2VyQWdlbnQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gVVNFUl9BR0VOVF9OQU1FX1JFR19FWFAuZXhlYyh1c2VyQWdlbnQpO1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG5hbWUgPSBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwKG1hdGNoLCAnbmFtZScpO1xuXG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgUGFja2FnZU1hbmFnZXIuQnVuIGFzIHN0cmluZzoge1xuICAgICAgcmV0dXJuIFBhY2thZ2VNYW5hZ2VyLkJ1bjtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5OcG0gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuTnBtO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLlBucG0gYXMgc3RyaW5nOiB7XG4gICAgICByZXR1cm4gUGFja2FnZU1hbmFnZXIuUG5wbTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5ZYXJuIGFzIHN0cmluZzoge1xuICAgICAgcmV0dXJuIFBhY2thZ2VNYW5hZ2VyLllhcm47XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBgbm9kZV9tb2R1bGVzLy5iaW5gIHNoaW0gZm9yIGEgdG9vbCwgd2Fsa2luZyB1cCBmcm9tIHRoZSBwcm9qZWN0IHJvb3QgdGhyb3VnaCBhbmNlc3RvciBmb2xkZXJzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGxvb2t1cC5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBzaGltLCBvciBgbnVsbGAgd2hlbiBub25lIGV4aXN0cy5cbiAqL1xuZnVuY3Rpb24gZmluZEJpblNoaW0ocGFyYW1zOiBGaW5kQmluU2hpbVBhcmFtcyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB7IGN3ZCwgdG9vbCB9ID0gcGFyYW1zO1xuICBjb25zdCBjYW5kaWRhdGVzID0gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbCk7XG4gIGxldCBjdXJyZW50Rm9sZGVyID0gZ2V0U3RhcnRGb2xkZXIoY3dkKTtcblxuICB3aGlsZSAoXG4gICAgY3VycmVudEZvbGRlciAhPT0gT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5DdXJyZW50Rm9sZGVyIGFzIHN0cmluZ1xuICAgICYmIGN1cnJlbnRGb2xkZXIgIT09IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUm9vdEZvbGRlciBhcyBzdHJpbmdcbiAgKSB7XG4gICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykge1xuICAgICAgY29uc3Qgc2hpbVBhdGggPSBqb2luKGN1cnJlbnRGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuTm9kZU1vZHVsZXMsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuQmluLCBjYW5kaWRhdGUpO1xuICAgICAgaWYgKGV4aXN0c1N5bmMoc2hpbVBhdGgpKSB7XG4gICAgICAgIHJldHVybiBzaGltUGF0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjdXJyZW50Rm9sZGVyID0gZGlybmFtZShjdXJyZW50Rm9sZGVyKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgY29tbWFuZCBwYXJ0cyB0aGF0IHJ1biBhIG9uZS1vZmYgdG9vbCB0aHJvdWdoIHRoZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGNvbW1hbmQgcGFydHMsIGUuZy4gYFsnYnVuJywgJ3gnXWAuIFRoZSB0b29sIG5hbWUgaXMgYXBwZW5kZWQgYnkgdGhlIGNhbGxlci5cbiAqL1xuZnVuY3Rpb24gZ2V0UGFja2FnZU1hbmFnZXJFeGVjQ29tbWFuZChjd2Q/OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHBhY2thZ2VNYW5hZ2VyID0gZ2V0UGFja2FnZU1hbmFnZXIoY3dkKTtcblxuICBzd2l0Y2ggKHBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5CdW46IHtcbiAgICAgIHJldHVybiBbJ2J1bicsICd4J107XG4gICAgfVxuICAgIGNhc2UgUGFja2FnZU1hbmFnZXIuTnBtOiB7XG4gICAgICByZXR1cm4gWyducHgnXTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5QbnBtOiB7XG4gICAgICByZXR1cm4gWydwbnBtJywgJ2V4ZWMnXTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5ZYXJuOiB7XG4gICAgICByZXR1cm4gWyd5YXJuJywgJ2V4ZWMnXTtcbiAgICB9XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEV4aGF1c3RpdmUgc3dpdGNoIGd1YXJkOyBkZWZhdWx0IGJyYW5jaCBpcyB1bnJlYWNoYWJsZS4gKi9cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gYXNzZXJ0TmV2ZXIocGFja2FnZU1hbmFnZXIpO1xuICAgIH1cbiAgICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIH1cbn1cblxuLyoqXG4gKiBMaXN0cyB0aGUgc2hpbSBmaWxlIG5hbWVzIHRvIHRyeSBmb3IgYSB0b29sLCBtb3N0IHNwZWNpZmljIGZpcnN0LlxuICpcbiAqIE9uIFdpbmRvd3Mgb25seSB0aGUgZXhlY3V0YWJsZSBmb3JtcyBhcmUgdmlhYmxlOiBucG0gYW5kIHBucG0gYWxzbyB3cml0ZSBhIHNoaW0gd2l0aCBubyBleHRlbnNpb24sIGJ1dFxuICogdGhhdCBvbmUgaXMgYSBgc2hgIHNjcmlwdCB0aGF0IGBjbWQuZXhlYCBjYW5ub3QgcnVuLCBzbyBpdCBtdXN0IG5ldmVyIGJlIGNob3NlbiB0aGVyZS5cbiAqXG4gKiBAcGFyYW0gdG9vbCAtIFRoZSBuYW1lIG9mIHRoZSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLlxuICogQHJldHVybnMgVGhlIGNhbmRpZGF0ZSBmaWxlIG5hbWVzLCBpbiB0aGUgb3JkZXIgdGhleSBzaG91bGQgYmUgdHJpZWQuXG4gKi9cbmZ1bmN0aW9uIGdldFNoaW1DYW5kaWRhdGVzKHRvb2w6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gIT09ICd3aW4zMicpIHtcbiAgICByZXR1cm4gW3Rvb2xdO1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICBgJHt0b29sfSR7T2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Db21tYW5kRXh0ZW5zaW9ufWAsXG4gICAgYCR7dG9vbH0ke09ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRXhlRXh0ZW5zaW9ufWAsXG4gICAgYCR7dG9vbH0ke09ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuQmF0RXh0ZW5zaW9ufWBcbiAgXTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZm9sZGVyIHRvIHN0YXJ0IGEgbG9va3VwIGZyb20gXHUyMDE0IHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGVyZSBpcyBvbmUsIHRoZSB3b3JraW5nIGZvbGRlclxuICogb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgZm9sZGVyIHRvIHN0YXJ0IGZyb20uXG4gKi9cbmZ1bmN0aW9uIGdldFN0YXJ0Rm9sZGVyKGN3ZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRSb290Rm9sZGVyKGN3ZCkgPz8gdG9Qb3NpeFBhdGgoY3dkID8/IHByb2Nlc3MuY3dkKCkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/// <reference path="../library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Resolves locally-installed tool binaries and package-script runners without assuming `npm`.
|
|
6
|
+
*
|
|
7
|
+
* Delegating to `npx` silently assumes an npm-installed tree. On Windows that assumption is fatal under
|
|
8
|
+
* `bun`: `bun install` writes `node_modules/.bin/<tool>.exe`, not the `<tool>.cmd` that npm's `npx` looks
|
|
9
|
+
* for, so `npx` misses the local install entirely and downloads the tool from the registry instead — which
|
|
10
|
+
* for `tsc` is the well-known decoy package, not TypeScript. Resolving the shim from `node_modules/.bin`
|
|
11
|
+
* ourselves sidesteps the whole shim-format question, because every package manager writes one there.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* A package manager that can own a project's dependency tree.
|
|
15
|
+
*/
|
|
16
|
+
export declare enum PackageManager {
|
|
17
|
+
/**
|
|
18
|
+
* The `bun` package manager.
|
|
19
|
+
*/
|
|
20
|
+
Bun = "bun",
|
|
21
|
+
/**
|
|
22
|
+
* The `npm` package manager.
|
|
23
|
+
*/
|
|
24
|
+
Npm = "npm",
|
|
25
|
+
/**
|
|
26
|
+
* The `pnpm` package manager.
|
|
27
|
+
*/
|
|
28
|
+
Pnpm = "pnpm",
|
|
29
|
+
/**
|
|
30
|
+
* The `yarn` package manager.
|
|
31
|
+
*/
|
|
32
|
+
Yarn = "yarn"
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parameters for {@link resolveToolCommand}.
|
|
36
|
+
*/
|
|
37
|
+
export interface ResolveToolCommandParams {
|
|
38
|
+
/**
|
|
39
|
+
* The current working folder to resolve from.
|
|
40
|
+
*/
|
|
41
|
+
readonly cwd?: string;
|
|
42
|
+
/**
|
|
43
|
+
* The name of the locally-installed tool, as it appears in `node_modules/.bin`.
|
|
44
|
+
*/
|
|
45
|
+
readonly tool: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Determines which package manager owns the project's dependency tree.
|
|
49
|
+
*
|
|
50
|
+
* The lockfile is the primary signal, because it describes the tree itself rather than whichever manager
|
|
51
|
+
* happens to have launched the current process. When no lockfile is present, the manager that launched us
|
|
52
|
+
* is the next best answer, and every manager reports itself in `npm_config_user_agent` as a leading
|
|
53
|
+
* `<name>/<version>` token.
|
|
54
|
+
*
|
|
55
|
+
* @param cwd - The current working folder to resolve from.
|
|
56
|
+
* @returns The detected package manager, or {@link PackageManager.Npm} when nothing indicates otherwise.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getPackageManager(cwd?: string): PackageManager;
|
|
59
|
+
/**
|
|
60
|
+
* Builds the command parts that run a package script through the manager that owns the tree.
|
|
61
|
+
*
|
|
62
|
+
* @param cwd - The current working folder to resolve from.
|
|
63
|
+
* @returns The command parts, e.g. `['bun', 'run']`. The script name is appended by the caller.
|
|
64
|
+
*/
|
|
65
|
+
export declare function getPackageManagerRunCommand(cwd?: string): string[];
|
|
66
|
+
/**
|
|
67
|
+
* Builds the command parts that run a locally-installed tool, with the tool itself already included.
|
|
68
|
+
*
|
|
69
|
+
* Prefers the shim in the nearest `node_modules/.bin`, walking up through ancestor folders so a hoisted
|
|
70
|
+
* workspace install is still found. Falls back to the owning manager's exec form when no shim resolves —
|
|
71
|
+
* which is both the previous behavior and the only thing that works under yarn's Plug'n'Play, where
|
|
72
|
+
* `node_modules/.bin` does not exist at all.
|
|
73
|
+
*
|
|
74
|
+
* @param params - The parameters for the resolution.
|
|
75
|
+
* @returns The command parts, e.g. `['/project/node_modules/.bin/tsc']` or `['bun', 'x', 'tsc']`.
|
|
76
|
+
*/
|
|
77
|
+
export declare function resolveToolCommand(params: ResolveToolCommandParams): string[];
|