obsidian-dev-utils 97.0.0 → 99.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 (143) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE +1 -1
  3. package/dist/integration-test-plugin/main.js +686 -439
  4. package/dist/lib/cjs/__merged.cjs +22 -9
  5. package/dist/lib/cjs/__merged.d.cts +4 -3
  6. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  7. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +36 -1
  8. package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +21 -0
  9. package/dist/lib/cjs/obsidian/components/plugin-suggestion-component.cjs +20 -6
  10. package/dist/lib/cjs/obsidian/components/plugin-suggestion-component.d.cts +26 -4
  11. package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +38 -38
  12. package/dist/lib/cjs/obsidian/demo-vault-naming.cjs +167 -0
  13. package/dist/lib/cjs/obsidian/demo-vault-naming.d.cts +54 -0
  14. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +11 -5
  15. package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.d.cts +10 -8
  16. package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +9 -9
  17. package/dist/lib/cjs/obsidian/desktop-trusted-input.d.cts +23 -4
  18. package/dist/lib/cjs/obsidian/file-change.cjs +6 -6
  19. package/dist/lib/cjs/obsidian/index.cjs +10 -1
  20. package/dist/lib/cjs/obsidian/index.d.cts +3 -0
  21. package/dist/lib/cjs/obsidian/link.cjs +33 -6
  22. package/dist/lib/cjs/obsidian/link.d.cts +35 -0
  23. package/dist/lib/cjs/obsidian/mobile-trusted-input.cjs +195 -0
  24. package/dist/lib/cjs/obsidian/mobile-trusted-input.d.cts +93 -0
  25. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
  26. package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +4 -0
  27. package/dist/lib/cjs/obsidian/reference.cjs +9 -1
  28. package/dist/lib/cjs/obsidian/reference.d.cts +33 -0
  29. package/dist/lib/cjs/obsidian/resource-lock.cjs +122 -122
  30. package/dist/lib/cjs/obsidian/trusted-input.cjs +206 -0
  31. package/dist/lib/cjs/obsidian/trusted-input.d.cts +126 -0
  32. package/dist/lib/cjs/obsidian/validation.cjs +22 -3
  33. package/dist/lib/cjs/obsidian/validation.d.cts +37 -0
  34. package/dist/lib/cjs/obsidian/vault.cjs +4 -1
  35. package/dist/lib/cjs/obsidian/vault.d.cts +8 -1
  36. package/dist/lib/cjs/script-utils/build.cjs +30 -6
  37. package/dist/lib/cjs/script-utils/build.d.cts +5 -0
  38. package/dist/lib/cjs/script-utils/demo-vault.cjs +26 -6
  39. package/dist/lib/cjs/script-utils/demo-vault.d.cts +12 -8
  40. package/dist/lib/cjs/script-utils/exec.cjs +1 -1
  41. package/dist/lib/cjs/script-utils/formatters/dprint.cjs +3 -2
  42. package/dist/lib/cjs/script-utils/index.cjs +4 -1
  43. package/dist/lib/cjs/script-utils/index.d.cts +1 -0
  44. package/dist/lib/cjs/script-utils/linters/cspell.cjs +3 -3
  45. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +39 -1
  46. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +16 -1
  47. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +5 -0
  48. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-description.cjs +254 -0
  49. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-description.d.cts +54 -0
  50. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-helpers.cjs +217 -0
  51. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-helpers.d.cts +141 -0
  52. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-id.cjs +214 -0
  53. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-id.d.cts +32 -0
  54. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-name.cjs +215 -0
  55. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-name.d.cts +30 -0
  56. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-schema.cjs +318 -0
  57. package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-schema.d.cts +45 -0
  58. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +9 -1
  59. package/dist/lib/cjs/script-utils/linters/eslint.cjs +3 -2
  60. package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +4 -4
  61. package/dist/lib/cjs/script-utils/nano-staged-config.cjs +7 -5
  62. package/dist/lib/cjs/script-utils/nano-staged-config.d.cts +5 -2
  63. package/dist/lib/cjs/script-utils/npm-run.cjs +4 -3
  64. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +10 -1
  65. package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +37 -1
  66. package/dist/lib/cjs/script-utils/package-manager.cjs +370 -0
  67. package/dist/lib/cjs/script-utils/package-manager.d.cts +93 -0
  68. package/dist/lib/cjs/script-utils/version.cjs +21 -9
  69. package/dist/lib/esm/__merged.d.mts +4 -3
  70. package/dist/lib/esm/__merged.mjs +24 -10
  71. package/dist/lib/esm/generated-during-build.mjs +1 -1
  72. package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +21 -0
  73. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +36 -1
  74. package/dist/lib/esm/obsidian/components/plugin-suggestion-component.d.mts +26 -4
  75. package/dist/lib/esm/obsidian/components/plugin-suggestion-component.mjs +20 -6
  76. package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +38 -38
  77. package/dist/lib/esm/obsidian/demo-vault-naming.d.mts +54 -0
  78. package/dist/lib/esm/obsidian/demo-vault-naming.mjs +61 -0
  79. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.d.mts +10 -8
  80. package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +14 -5
  81. package/dist/lib/esm/obsidian/desktop-trusted-input.d.mts +23 -4
  82. package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +9 -9
  83. package/dist/lib/esm/obsidian/file-change.mjs +6 -6
  84. package/dist/lib/esm/obsidian/index.d.mts +3 -0
  85. package/dist/lib/esm/obsidian/index.mjs +7 -1
  86. package/dist/lib/esm/obsidian/link.d.mts +35 -0
  87. package/dist/lib/esm/obsidian/link.mjs +38 -7
  88. package/dist/lib/esm/obsidian/mobile-trusted-input.d.mts +93 -0
  89. package/dist/lib/esm/obsidian/mobile-trusted-input.mjs +84 -0
  90. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +4 -0
  91. package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
  92. package/dist/lib/esm/obsidian/reference.d.mts +33 -0
  93. package/dist/lib/esm/obsidian/reference.mjs +8 -1
  94. package/dist/lib/esm/obsidian/resource-lock.mjs +122 -122
  95. package/dist/lib/esm/obsidian/trusted-input.d.mts +126 -0
  96. package/dist/lib/esm/obsidian/trusted-input.mjs +85 -0
  97. package/dist/lib/esm/obsidian/validation.d.mts +37 -0
  98. package/dist/lib/esm/obsidian/validation.mjs +21 -2
  99. package/dist/lib/esm/obsidian/vault.d.mts +8 -1
  100. package/dist/lib/esm/obsidian/vault.mjs +4 -1
  101. package/dist/lib/esm/script-utils/build.d.mts +5 -0
  102. package/dist/lib/esm/script-utils/build.mjs +30 -6
  103. package/dist/lib/esm/script-utils/demo-vault.d.mts +12 -8
  104. package/dist/lib/esm/script-utils/demo-vault.mjs +29 -6
  105. package/dist/lib/esm/script-utils/exec.mjs +1 -1
  106. package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -2
  107. package/dist/lib/esm/script-utils/index.d.mts +1 -0
  108. package/dist/lib/esm/script-utils/index.mjs +3 -1
  109. package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -3
  110. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +39 -1
  111. package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +5 -0
  112. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +11 -1
  113. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-description.d.mts +54 -0
  114. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-description.mjs +148 -0
  115. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-helpers.d.mts +141 -0
  116. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-helpers.mjs +92 -0
  117. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-id.d.mts +32 -0
  118. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-id.mjs +111 -0
  119. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-name.d.mts +30 -0
  120. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-name.mjs +112 -0
  121. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-schema.d.mts +45 -0
  122. package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-schema.mjs +217 -0
  123. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +9 -1
  124. package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -2
  125. package/dist/lib/esm/script-utils/linters/markdownlint.mjs +4 -4
  126. package/dist/lib/esm/script-utils/nano-staged-config.d.mts +5 -2
  127. package/dist/lib/esm/script-utils/nano-staged-config.mjs +7 -5
  128. package/dist/lib/esm/script-utils/npm-run.mjs +4 -3
  129. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +37 -1
  130. package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +10 -1
  131. package/dist/lib/esm/script-utils/package-manager.d.mts +93 -0
  132. package/dist/lib/esm/script-utils/package-manager.mjs +256 -0
  133. package/dist/lib/esm/script-utils/version.mjs +21 -9
  134. package/obsidian/demo-vault-naming/package.json +6 -0
  135. package/obsidian/mobile-trusted-input/package.json +6 -0
  136. package/obsidian/trusted-input/package.json +6 -0
  137. package/package.json +19 -17
  138. package/script-utils/linters/eslint-rules/manifest-description/package.json +6 -0
  139. package/script-utils/linters/eslint-rules/manifest-helpers/package.json +6 -0
  140. package/script-utils/linters/eslint-rules/manifest-id/package.json +6 -0
  141. package/script-utils/linters/eslint-rules/manifest-name/package.json +6 -0
  142. package/script-utils/linters/eslint-rules/manifest-schema/package.json +6 -0
  143. package/script-utils/package-manager/package.json +6 -0
@@ -0,0 +1,318 @@
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 __defProp = Object.defineProperty;
127
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
128
+ var __getOwnPropNames = Object.getOwnPropertyNames;
129
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
130
+ var __export = (target, all) => {
131
+ for (var name in all)
132
+ __defProp(target, name, { get: all[name], enumerable: true });
133
+ };
134
+ var __copyProps = (to, from, except, desc) => {
135
+ if (from && typeof from === "object" || typeof from === "function") {
136
+ for (let key of __getOwnPropNames(from))
137
+ if (!__hasOwnProp.call(to, key) && key !== except)
138
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
139
+ }
140
+ return to;
141
+ };
142
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
143
+ var manifest_schema_exports = {};
144
+ __export(manifest_schema_exports, {
145
+ MESSAGE_ID_DISALLOWED_KEY: () => MESSAGE_ID_DISALLOWED_KEY,
146
+ MESSAGE_ID_DUPLICATE_KEY: () => MESSAGE_ID_DUPLICATE_KEY,
147
+ MESSAGE_ID_EMPTY_FUNDING_URL: () => MESSAGE_ID_EMPTY_FUNDING_URL,
148
+ MESSAGE_ID_INVALID_FUNDING_URL: () => MESSAGE_ID_INVALID_FUNDING_URL,
149
+ MESSAGE_ID_INVALID_TYPE: () => MESSAGE_ID_INVALID_TYPE,
150
+ MESSAGE_ID_MISSING_KEY: () => MESSAGE_ID_MISSING_KEY,
151
+ MESSAGE_ID_MUST_BE_ROOT_OBJECT: () => MESSAGE_ID_MUST_BE_ROOT_OBJECT,
152
+ manifestSchema: () => manifestSchema
153
+ });
154
+ module.exports = __toCommonJS(manifest_schema_exports);
155
+ var import_manifest_helpers = require('./manifest-helpers.cjs');
156
+ const MESSAGE_ID_DISALLOWED_KEY = "disallowedKey";
157
+ const MESSAGE_ID_DUPLICATE_KEY = "duplicateKey";
158
+ const MESSAGE_ID_EMPTY_FUNDING_URL = "emptyFundingUrl";
159
+ const MESSAGE_ID_INVALID_TYPE = "invalidType";
160
+ const MESSAGE_ID_INVALID_FUNDING_URL = "invalidFundingUrl";
161
+ const MESSAGE_ID_MISSING_KEY = "missingKey";
162
+ const MESSAGE_ID_MUST_BE_ROOT_OBJECT = "mustBeRootObject";
163
+ const ALWAYS_REQUIRED_KEYS = ["author", "description", "id", "isDesktopOnly", "name", "version"];
164
+ const KEY_NODE_TYPES = /* @__PURE__ */ new Map([
165
+ ["author", [import_manifest_helpers.JSON_NODE_TYPE_STRING]],
166
+ ["authorUrl", [import_manifest_helpers.JSON_NODE_TYPE_STRING]],
167
+ ["description", [import_manifest_helpers.JSON_NODE_TYPE_STRING]],
168
+ ["fundingUrl", [import_manifest_helpers.JSON_NODE_TYPE_OBJECT, import_manifest_helpers.JSON_NODE_TYPE_STRING]],
169
+ ["id", [import_manifest_helpers.JSON_NODE_TYPE_STRING]],
170
+ ["isDesktopOnly", [import_manifest_helpers.JSON_NODE_TYPE_BOOLEAN]],
171
+ ["minAppVersion", [import_manifest_helpers.JSON_NODE_TYPE_STRING]],
172
+ ["name", [import_manifest_helpers.JSON_NODE_TYPE_STRING]],
173
+ ["version", [import_manifest_helpers.JSON_NODE_TYPE_STRING]]
174
+ ]);
175
+ const manifestSchema = {
176
+ create(context) {
177
+ return {
178
+ Document(node) {
179
+ const manifestObject = (0, import_manifest_helpers.getManifestObject)(node);
180
+ if (!manifestObject) {
181
+ context.report({
182
+ messageId: MESSAGE_ID_MUST_BE_ROOT_OBJECT,
183
+ node: (0, import_manifest_helpers.toReportNode)(node)
184
+ });
185
+ return;
186
+ }
187
+ reportDuplicateKeys({ context, manifestObject });
188
+ reportMissingKeys({ context, manifestObject });
189
+ reportKeyValues({ context, manifestObject });
190
+ }
191
+ };
192
+ },
193
+ meta: {
194
+ docs: {
195
+ description: "Validate the structure of a plugin's root `manifest.json`"
196
+ },
197
+ messages: {
198
+ [MESSAGE_ID_DISALLOWED_KEY]: "The `{{ key }}` property is not allowed in the manifest.",
199
+ [MESSAGE_ID_DUPLICATE_KEY]: "The `{{ key }}` property is defined more than once.",
200
+ [MESSAGE_ID_EMPTY_FUNDING_URL]: "The `fundingUrl` property cannot be empty. Remove it instead when no donations are accepted.",
201
+ [MESSAGE_ID_INVALID_FUNDING_URL]: "The `fundingUrl` object must only contain string values.",
202
+ [MESSAGE_ID_INVALID_TYPE]: "The `{{ key }}` property must be of type `{{ expectedType }}`, but was `{{ actualType }}`.",
203
+ [MESSAGE_ID_MISSING_KEY]: "The manifest is missing the required `{{ key }}` property.",
204
+ [MESSAGE_ID_MUST_BE_ROOT_OBJECT]: "The manifest must be a single JSON object."
205
+ },
206
+ schema: [],
207
+ type: "problem"
208
+ }
209
+ };
210
+ function reportDuplicateKeys(params) {
211
+ const { context, manifestObject } = params;
212
+ const seenKeys = /* @__PURE__ */ new Set();
213
+ for (const member of manifestObject.members) {
214
+ const key = (0, import_manifest_helpers.getMemberKey)(member);
215
+ if (seenKeys.has(key)) {
216
+ context.report({
217
+ data: { key },
218
+ messageId: MESSAGE_ID_DUPLICATE_KEY,
219
+ node: (0, import_manifest_helpers.toReportNode)(member.name)
220
+ });
221
+ } else {
222
+ seenKeys.add(key);
223
+ }
224
+ }
225
+ }
226
+ function reportFundingUrl(params) {
227
+ const { context, member } = params;
228
+ const stringValue = (0, import_manifest_helpers.getStringValue)(member.value);
229
+ if (stringValue !== null) {
230
+ if (stringValue === "") {
231
+ context.report({
232
+ messageId: MESSAGE_ID_EMPTY_FUNDING_URL,
233
+ node: (0, import_manifest_helpers.toReportNode)(member.value)
234
+ });
235
+ }
236
+ return;
237
+ }
238
+ const fundingObject = member.value;
239
+ if (fundingObject.members.length === 0) {
240
+ context.report({
241
+ messageId: MESSAGE_ID_EMPTY_FUNDING_URL,
242
+ node: (0, import_manifest_helpers.toReportNode)(fundingObject)
243
+ });
244
+ return;
245
+ }
246
+ for (const fundingMember of fundingObject.members) {
247
+ const fundingValue = (0, import_manifest_helpers.getStringValue)(fundingMember.value);
248
+ if (fundingValue === null) {
249
+ context.report({
250
+ messageId: MESSAGE_ID_INVALID_FUNDING_URL,
251
+ node: (0, import_manifest_helpers.toReportNode)(fundingMember.value)
252
+ });
253
+ } else if (fundingValue === "") {
254
+ context.report({
255
+ messageId: MESSAGE_ID_EMPTY_FUNDING_URL,
256
+ node: (0, import_manifest_helpers.toReportNode)(fundingMember.value)
257
+ });
258
+ }
259
+ }
260
+ }
261
+ function reportKeyValues(params) {
262
+ const { context, manifestObject } = params;
263
+ for (const member of manifestObject.members) {
264
+ const key = (0, import_manifest_helpers.getMemberKey)(member);
265
+ const expectedNodeTypes = KEY_NODE_TYPES.get(key);
266
+ if (!expectedNodeTypes) {
267
+ context.report({
268
+ data: { key },
269
+ messageId: MESSAGE_ID_DISALLOWED_KEY,
270
+ node: (0, import_manifest_helpers.toReportNode)(member.name)
271
+ });
272
+ continue;
273
+ }
274
+ if (!expectedNodeTypes.includes(member.value.type)) {
275
+ context.report({
276
+ data: {
277
+ actualType: member.value.type,
278
+ expectedType: expectedNodeTypes.join(" or "),
279
+ key
280
+ },
281
+ messageId: MESSAGE_ID_INVALID_TYPE,
282
+ node: (0, import_manifest_helpers.toReportNode)(member.value)
283
+ });
284
+ continue;
285
+ }
286
+ if (key === "fundingUrl") {
287
+ reportFundingUrl({ context, member });
288
+ }
289
+ }
290
+ }
291
+ function reportMissingKeys(params) {
292
+ const { context, manifestObject } = params;
293
+ const requiredKeys = [...ALWAYS_REQUIRED_KEYS];
294
+ if ((0, import_manifest_helpers.getManifestStringValue)(manifestObject, "version") !== import_manifest_helpers.UNRELEASED_VERSION) {
295
+ requiredKeys.push("minAppVersion");
296
+ }
297
+ for (const key of requiredKeys) {
298
+ if (!(0, import_manifest_helpers.findManifestMember)(manifestObject, key)) {
299
+ context.report({
300
+ data: { key },
301
+ messageId: MESSAGE_ID_MISSING_KEY,
302
+ node: (0, import_manifest_helpers.toReportNode)(manifestObject)
303
+ });
304
+ }
305
+ }
306
+ }
307
+ // Annotate the CommonJS export names for ESM import in node:
308
+ 0 && (module.exports = {
309
+ MESSAGE_ID_DISALLOWED_KEY,
310
+ MESSAGE_ID_DUPLICATE_KEY,
311
+ MESSAGE_ID_EMPTY_FUNDING_URL,
312
+ MESSAGE_ID_INVALID_FUNDING_URL,
313
+ MESSAGE_ID_INVALID_TYPE,
314
+ MESSAGE_ID_MISSING_KEY,
315
+ MESSAGE_ID_MUST_BE_ROOT_OBJECT,
316
+ manifestSchema
317
+ });
318
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9tYW5pZmVzdC1zY2hlbWEudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogbWFuaWZlc3Qtc2NoZW1hXG4gKlxuICogVmFsaWRhdGVzIHRoZSBzdHJ1Y3R1cmUgb2YgYSBwbHVnaW4ncyByb290IGBtYW5pZmVzdC5qc29uYCAtIHRoZSByZXF1aXJlZCBrZXlzLCB0aGUga2V5cyB0aGUgQ29tbXVuaXR5XG4gKiBkaXJlY3RvcnkgZG9lcyBub3QgYWxsb3csIGR1cGxpY2F0ZSBrZXlzLCBlYWNoIHZhbHVlJ3MgdHlwZSwgYW5kIHRoZSBzaGFwZSBvZiBgZnVuZGluZ1VybGAuXG4gKlxuICogUnVucyBvbiB0aGUgYEBlc2xpbnQvanNvbmAgYGpzb24vanNvbmAgbGFuZ3VhZ2U7IHNlZSBgbWFuaWZlc3QtaGVscGVycy50c2AgZm9yIHdoeSB0aGUgQVNUIGlzIE1vbW9hXG4gKiByYXRoZXIgdGhhbiBFU1RyZWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHR5cGUge1xuICBKc29uTWVtYmVyTm9kZSxcbiAgSnNvbk9iamVjdE5vZGVcbn0gZnJvbSAnLi9tYW5pZmVzdC1oZWxwZXJzLnRzJztcblxuaW1wb3J0IHtcbiAgZmluZE1hbmlmZXN0TWVtYmVyLFxuICBnZXRNYW5pZmVzdE9iamVjdCxcbiAgZ2V0TWFuaWZlc3RTdHJpbmdWYWx1ZSxcbiAgZ2V0TWVtYmVyS2V5LFxuICBnZXRTdHJpbmdWYWx1ZSxcbiAgSlNPTl9OT0RFX1RZUEVfQk9PTEVBTixcbiAgSlNPTl9OT0RFX1RZUEVfT0JKRUNULFxuICBKU09OX05PREVfVFlQRV9TVFJJTkcsXG4gIHRvUmVwb3J0Tm9kZSxcbiAgVU5SRUxFQVNFRF9WRVJTSU9OXG59IGZyb20gJy4vbWFuaWZlc3QtaGVscGVycy50cyc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGEga2V5IHRoZSBDb21tdW5pdHkgZGlyZWN0b3J5IGRvZXMgbm90IGFsbG93IGlzIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEX0RJU0FMTE9XRURfS0VZID0gJ2Rpc2FsbG93ZWRLZXknO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiB0aGUgc2FtZSBrZXkgYXBwZWFycyBtb3JlIHRoYW4gb25jZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfRFVQTElDQVRFX0tFWSA9ICdkdXBsaWNhdGVLZXknO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiBgZnVuZGluZ1VybGAgaXMgYW4gZW1wdHkgc3RyaW5nLCBhbiBlbXB0eSBvYmplY3QsIG9yIGFuIG9iamVjdCB3aXRoIGFuIGVtcHR5IHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9FTVBUWV9GVU5ESU5HX1VSTCA9ICdlbXB0eUZ1bmRpbmdVcmwnO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiBhIHZhbHVlIGhhcyB0aGUgd3JvbmcgdHlwZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfSU5WQUxJRF9UWVBFID0gJ2ludmFsaWRUeXBlJztcblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYSBgZnVuZGluZ1VybGAgb2JqZWN0IGhvbGRzIGEgbm9uLXN0cmluZyB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfSU5WQUxJRF9GVU5ESU5HX1VSTCA9ICdpbnZhbGlkRnVuZGluZ1VybCc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGEgcmVxdWlyZWQga2V5IGlzIG1pc3NpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEX01JU1NJTkdfS0VZID0gJ21pc3NpbmdLZXknO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiB0aGUgbWFuaWZlc3QncyB0b3AtbGV2ZWwgdmFsdWUgaXMgbm90IGFuIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfTVVTVF9CRV9ST09UX09CSkVDVCA9ICdtdXN0QmVSb290T2JqZWN0JztcblxuLyoqXG5UaGUga2V5cyBldmVyeSBtYW5pZmVzdCBtdXN0IGNhcnJ5LCB3aGV0aGVyIG9yIG5vdCB0aGUgcGx1Z2luIGhhcyBiZWVuIHJlbGVhc2VkLlxuICovXG5jb25zdCBBTFdBWVNfUkVRVUlSRURfS0VZUyA9IFsnYXV0aG9yJywgJ2Rlc2NyaXB0aW9uJywgJ2lkJywgJ2lzRGVza3RvcE9ubHknLCAnbmFtZScsICd2ZXJzaW9uJ107XG5cbi8qKlxuVGhlIE1vbW9hIG5vZGUgdHlwZSBlYWNoIGFsbG93ZWQga2V5J3MgdmFsdWUgbWF5IGhhdmUuIEEga2V5IGFic2VudCBmcm9tIHRoaXMgbWFwIGlzIG5vdCBhbGxvd2VkIGF0IGFsbC5cbiAqL1xuY29uc3QgS0VZX05PREVfVFlQRVMgPSBuZXcgTWFwPHN0cmluZywgcmVhZG9ubHkgc3RyaW5nW10+KFtcbiAgWydhdXRob3InLCBbSlNPTl9OT0RFX1RZUEVfU1RSSU5HXV0sXG4gIFsnYXV0aG9yVXJsJywgW0pTT05fTk9ERV9UWVBFX1NUUklOR11dLFxuICBbJ2Rlc2NyaXB0aW9uJywgW0pTT05fTk9ERV9UWVBFX1NUUklOR11dLFxuICBbJ2Z1bmRpbmdVcmwnLCBbSlNPTl9OT0RFX1RZUEVfT0JKRUNULCBKU09OX05PREVfVFlQRV9TVFJJTkddXSxcbiAgWydpZCcsIFtKU09OX05PREVfVFlQRV9TVFJJTkddXSxcbiAgWydpc0Rlc2t0b3BPbmx5JywgW0pTT05fTk9ERV9UWVBFX0JPT0xFQU5dXSxcbiAgWydtaW5BcHBWZXJzaW9uJywgW0pTT05fTk9ERV9UWVBFX1NUUklOR11dLFxuICBbJ25hbWUnLCBbSlNPTl9OT0RFX1RZUEVfU1RSSU5HXV0sXG4gIFsndmVyc2lvbicsIFtKU09OX05PREVfVFlQRV9TVFJJTkddXVxuXSk7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgdmFsaWRhdGluZyB0aGUgc3RydWN0dXJlIG9mIGEgcGx1Z2luJ3Mgcm9vdCBgbWFuaWZlc3QuanNvbmAuXG4gKi9cbmV4cG9ydCBjb25zdCBtYW5pZmVzdFNjaGVtYTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBEb2N1bWVudChub2RlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1hbmlmZXN0T2JqZWN0ID0gZ2V0TWFuaWZlc3RPYmplY3Qobm9kZSk7XG5cbiAgICAgICAgaWYgKCFtYW5pZmVzdE9iamVjdCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogTUVTU0FHRV9JRF9NVVNUX0JFX1JPT1RfT0JKRUNULFxuICAgICAgICAgICAgbm9kZTogdG9SZXBvcnROb2RlKG5vZGUpXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVwb3J0RHVwbGljYXRlS2V5cyh7IGNvbnRleHQsIG1hbmlmZXN0T2JqZWN0IH0pO1xuICAgICAgICByZXBvcnRNaXNzaW5nS2V5cyh7IGNvbnRleHQsIG1hbmlmZXN0T2JqZWN0IH0pO1xuICAgICAgICByZXBvcnRLZXlWYWx1ZXMoeyBjb250ZXh0LCBtYW5pZmVzdE9iamVjdCB9KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdWYWxpZGF0ZSB0aGUgc3RydWN0dXJlIG9mIGEgcGx1Z2luXFwncyByb290IGBtYW5pZmVzdC5qc29uYCdcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBbTUVTU0FHRV9JRF9ESVNBTExPV0VEX0tFWV06ICdUaGUgYHt7IGtleSB9fWAgcHJvcGVydHkgaXMgbm90IGFsbG93ZWQgaW4gdGhlIG1hbmlmZXN0LicsXG4gICAgICBbTUVTU0FHRV9JRF9EVVBMSUNBVEVfS0VZXTogJ1RoZSBge3sga2V5IH19YCBwcm9wZXJ0eSBpcyBkZWZpbmVkIG1vcmUgdGhhbiBvbmNlLicsXG4gICAgICBbTUVTU0FHRV9JRF9FTVBUWV9GVU5ESU5HX1VSTF06ICdUaGUgYGZ1bmRpbmdVcmxgIHByb3BlcnR5IGNhbm5vdCBiZSBlbXB0eS4gUmVtb3ZlIGl0IGluc3RlYWQgd2hlbiBubyBkb25hdGlvbnMgYXJlIGFjY2VwdGVkLicsXG4gICAgICBbTUVTU0FHRV9JRF9JTlZBTElEX0ZVTkRJTkdfVVJMXTogJ1RoZSBgZnVuZGluZ1VybGAgb2JqZWN0IG11c3Qgb25seSBjb250YWluIHN0cmluZyB2YWx1ZXMuJyxcbiAgICAgIFtNRVNTQUdFX0lEX0lOVkFMSURfVFlQRV06ICdUaGUgYHt7IGtleSB9fWAgcHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlIGB7eyBleHBlY3RlZFR5cGUgfX1gLCBidXQgd2FzIGB7eyBhY3R1YWxUeXBlIH19YC4nLFxuICAgICAgW01FU1NBR0VfSURfTUlTU0lOR19LRVldOiAnVGhlIG1hbmlmZXN0IGlzIG1pc3NpbmcgdGhlIHJlcXVpcmVkIGB7eyBrZXkgfX1gIHByb3BlcnR5LicsXG4gICAgICBbTUVTU0FHRV9JRF9NVVNUX0JFX1JPT1RfT0JKRUNUXTogJ1RoZSBtYW5pZmVzdCBtdXN0IGJlIGEgc2luZ2xlIEpTT04gb2JqZWN0LidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlcG9ydEZ1bmRpbmdVcmx9LlxuICovXG5pbnRlcmZhY2UgUmVwb3J0RnVuZGluZ1VybFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgRVNMaW50IHJ1bGUgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgZnVuZGluZ1VybGAgbWVtYmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtYmVyOiBKc29uTWVtYmVyTm9kZTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUgbWFuaWZlc3QgcmVwb3J0aW5nIGhlbHBlcnMuXG4gKi9cbmludGVyZmFjZSBSZXBvcnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIEVTTGludCBydWxlIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBUaGUgbWFuaWZlc3QncyByb290IG9iamVjdCBub2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFuaWZlc3RPYmplY3Q6IEpzb25PYmplY3ROb2RlO1xufVxuXG4vKipcbiAqIFJlcG9ydHMgZXZlcnkga2V5IHRoYXQgYXBwZWFycyBtb3JlIHRoYW4gb25jZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBSZXBvcnRQYXJhbXN9LlxuICovXG5mdW5jdGlvbiByZXBvcnREdXBsaWNhdGVLZXlzKHBhcmFtczogUmVwb3J0UGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHsgY29udGV4dCwgbWFuaWZlc3RPYmplY3QgfSA9IHBhcmFtcztcbiAgY29uc3Qgc2VlbktleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IG1lbWJlciBvZiBtYW5pZmVzdE9iamVjdC5tZW1iZXJzKSB7XG4gICAgY29uc3Qga2V5ID0gZ2V0TWVtYmVyS2V5KG1lbWJlcik7XG5cbiAgICBpZiAoc2VlbktleXMuaGFzKGtleSkpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgZGF0YTogeyBrZXkgfSxcbiAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX0RVUExJQ0FURV9LRVksXG4gICAgICAgIG5vZGU6IHRvUmVwb3J0Tm9kZShtZW1iZXIubmFtZSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWVuS2V5cy5hZGQoa2V5KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZXBvcnRzIHRoZSB3YXlzIGEgYGZ1bmRpbmdVcmxgIGNhbiBiZSBlbXB0eSBvciBob2xkIGEgbm9uLXN0cmluZyB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBSZXBvcnRGdW5kaW5nVXJsUGFyYW1zfS5cbiAqL1xuZnVuY3Rpb24gcmVwb3J0RnVuZGluZ1VybChwYXJhbXM6IFJlcG9ydEZ1bmRpbmdVcmxQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgeyBjb250ZXh0LCBtZW1iZXIgfSA9IHBhcmFtcztcblxuICBjb25zdCBzdHJpbmdWYWx1ZSA9IGdldFN0cmluZ1ZhbHVlKG1lbWJlci52YWx1ZSk7XG5cbiAgaWYgKHN0cmluZ1ZhbHVlICE9PSBudWxsKSB7XG4gICAgaWYgKHN0cmluZ1ZhbHVlID09PSAnJykge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfRU1QVFlfRlVORElOR19VUkwsXG4gICAgICAgIG5vZGU6IHRvUmVwb3J0Tm9kZShtZW1iZXIudmFsdWUpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmdW5kaW5nT2JqZWN0ID0gbWVtYmVyLnZhbHVlIGFzIEpzb25PYmplY3ROb2RlO1xuXG4gIGlmIChmdW5kaW5nT2JqZWN0Lm1lbWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX0VNUFRZX0ZVTkRJTkdfVVJMLFxuICAgICAgbm9kZTogdG9SZXBvcnROb2RlKGZ1bmRpbmdPYmplY3QpXG4gICAgfSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZm9yIChjb25zdCBmdW5kaW5nTWVtYmVyIG9mIGZ1bmRpbmdPYmplY3QubWVtYmVycykge1xuICAgIGNvbnN0IGZ1bmRpbmdWYWx1ZSA9IGdldFN0cmluZ1ZhbHVlKGZ1bmRpbmdNZW1iZXIudmFsdWUpO1xuXG4gICAgaWYgKGZ1bmRpbmdWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfSU5WQUxJRF9GVU5ESU5HX1VSTCxcbiAgICAgICAgbm9kZTogdG9SZXBvcnROb2RlKGZ1bmRpbmdNZW1iZXIudmFsdWUpXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGZ1bmRpbmdWYWx1ZSA9PT0gJycpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX0VNUFRZX0ZVTkRJTkdfVVJMLFxuICAgICAgICBub2RlOiB0b1JlcG9ydE5vZGUoZnVuZGluZ01lbWJlci52YWx1ZSlcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlcG9ydHMgZXZlcnkga2V5IHRoYXQgaXMgbm90IGFsbG93ZWQsIGFuZCBldmVyeSBhbGxvd2VkIGtleSB3aG9zZSB2YWx1ZSBoYXMgdGhlIHdyb25nIHR5cGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgUmVwb3J0UGFyYW1zfS5cbiAqL1xuZnVuY3Rpb24gcmVwb3J0S2V5VmFsdWVzKHBhcmFtczogUmVwb3J0UGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHsgY29udGV4dCwgbWFuaWZlc3RPYmplY3QgfSA9IHBhcmFtcztcblxuICBmb3IgKGNvbnN0IG1lbWJlciBvZiBtYW5pZmVzdE9iamVjdC5tZW1iZXJzKSB7XG4gICAgY29uc3Qga2V5ID0gZ2V0TWVtYmVyS2V5KG1lbWJlcik7XG4gICAgY29uc3QgZXhwZWN0ZWROb2RlVHlwZXMgPSBLRVlfTk9ERV9UWVBFUy5nZXQoa2V5KTtcblxuICAgIGlmICghZXhwZWN0ZWROb2RlVHlwZXMpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgZGF0YTogeyBrZXkgfSxcbiAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX0RJU0FMTE9XRURfS0VZLFxuICAgICAgICBub2RlOiB0b1JlcG9ydE5vZGUobWVtYmVyLm5hbWUpXG4gICAgICB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmICghZXhwZWN0ZWROb2RlVHlwZXMuaW5jbHVkZXMobWVtYmVyLnZhbHVlLnR5cGUpKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBhY3R1YWxUeXBlOiBtZW1iZXIudmFsdWUudHlwZSxcbiAgICAgICAgICBleHBlY3RlZFR5cGU6IGV4cGVjdGVkTm9kZVR5cGVzLmpvaW4oJyBvciAnKSxcbiAgICAgICAgICBrZXlcbiAgICAgICAgfSxcbiAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX0lOVkFMSURfVFlQRSxcbiAgICAgICAgbm9kZTogdG9SZXBvcnROb2RlKG1lbWJlci52YWx1ZSlcbiAgICAgIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gJ2Z1bmRpbmdVcmwnKSB7XG4gICAgICByZXBvcnRGdW5kaW5nVXJsKHsgY29udGV4dCwgbWVtYmVyIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlcG9ydHMgZXZlcnkgcmVxdWlyZWQga2V5IHRoZSBtYW5pZmVzdCBpcyBtaXNzaW5nLlxuICpcbiAqIGBtaW5BcHBWZXJzaW9uYCBpcyByZXF1aXJlZCBvbmx5IG9uY2UgdGhlIHBsdWdpbiBoYXMgYmVlbiByZWxlYXNlZC4gYHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luYFxuICogd3JpdGVzIGl0IGF0IHJlbGVhc2UgdGltZSwgc28gYSByZXBvIHN0aWxsIGF0IHZlcnNpb24gYDAuMC4wYCBsZWdpdGltYXRlbHkgaGFzIG5vbmUgYW5kIG11c3Qgbm90IGJlXG4gKiByZXBvcnRlZCBmb3IgaXQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgUmVwb3J0UGFyYW1zfS5cbiAqL1xuZnVuY3Rpb24gcmVwb3J0TWlzc2luZ0tleXMocGFyYW1zOiBSZXBvcnRQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgeyBjb250ZXh0LCBtYW5pZmVzdE9iamVjdCB9ID0gcGFyYW1zO1xuICBjb25zdCByZXF1aXJlZEtleXMgPSBbLi4uQUxXQVlTX1JFUVVJUkVEX0tFWVNdO1xuXG4gIGlmIChnZXRNYW5pZmVzdFN0cmluZ1ZhbHVlKG1hbmlmZXN0T2JqZWN0LCAndmVyc2lvbicpICE9PSBVTlJFTEVBU0VEX1ZFUlNJT04pIHtcbiAgICByZXF1aXJlZEtleXMucHVzaCgnbWluQXBwVmVyc2lvbicpO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgcmVxdWlyZWRLZXlzKSB7XG4gICAgaWYgKCFmaW5kTWFuaWZlc3RNZW1iZXIobWFuaWZlc3RPYmplY3QsIGtleSkpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgZGF0YTogeyBrZXkgfSxcbiAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX01JU1NJTkdfS0VZLFxuICAgICAgICBub2RlOiB0b1JlcG9ydE5vZGUobWFuaWZlc3RPYmplY3QpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkEsOEJBV087QUFLQSxNQUFNLDRCQUE0QjtBQUtsQyxNQUFNLDJCQUEyQjtBQUtqQyxNQUFNLCtCQUErQjtBQUtyQyxNQUFNLDBCQUEwQjtBQUtoQyxNQUFNLGlDQUFpQztBQUt2QyxNQUFNLHlCQUF5QjtBQUsvQixNQUFNLGlDQUFpQztBQUs5QyxN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
@@ -0,0 +1,45 @@
1
+ /// <reference path="../../../library.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * ESLint rule: manifest-schema
6
+ *
7
+ * Validates the structure of a plugin's root `manifest.json` - the required keys, the keys the Community
8
+ * directory does not allow, duplicate keys, each value's type, and the shape of `fundingUrl`.
9
+ *
10
+ * Runs on the `@eslint/json` `json/json` language; see `manifest-helpers.ts` for why the AST is Momoa
11
+ * rather than ESTree.
12
+ */
13
+ import type { Rule } from 'eslint' with { 'resolution-mode': 'import' };
14
+ /**
15
+ Message ID reported when a key the Community directory does not allow is present.
16
+ */
17
+ export declare const MESSAGE_ID_DISALLOWED_KEY = "disallowedKey";
18
+ /**
19
+ Message ID reported when the same key appears more than once.
20
+ */
21
+ export declare const MESSAGE_ID_DUPLICATE_KEY = "duplicateKey";
22
+ /**
23
+ Message ID reported when `fundingUrl` is an empty string, an empty object, or an object with an empty value.
24
+ */
25
+ export declare const MESSAGE_ID_EMPTY_FUNDING_URL = "emptyFundingUrl";
26
+ /**
27
+ Message ID reported when a value has the wrong type.
28
+ */
29
+ export declare const MESSAGE_ID_INVALID_TYPE = "invalidType";
30
+ /**
31
+ Message ID reported when a `fundingUrl` object holds a non-string value.
32
+ */
33
+ export declare const MESSAGE_ID_INVALID_FUNDING_URL = "invalidFundingUrl";
34
+ /**
35
+ Message ID reported when a required key is missing.
36
+ */
37
+ export declare const MESSAGE_ID_MISSING_KEY = "missingKey";
38
+ /**
39
+ Message ID reported when the manifest's top-level value is not an object.
40
+ */
41
+ export declare const MESSAGE_ID_MUST_BE_ROOT_OBJECT = "mustBeRootObject";
42
+ /**
43
+ * ESLint rule validating the structure of a plugin's root `manifest.json`.
44
+ */
45
+ export declare const manifestSchema: Rule.RuleModule;
@@ -145,6 +145,10 @@ __export(obsidian_dev_utils_plugin_exports, {
145
145
  obsidianDevUtilsPlugin: () => obsidianDevUtilsPlugin
146
146
  });
147
147
  module.exports = __toCommonJS(obsidian_dev_utils_plugin_exports);
148
+ var import_manifest_description = require('./manifest-description.cjs');
149
+ var import_manifest_id = require('./manifest-id.cjs');
150
+ var import_manifest_name = require('./manifest-name.cjs');
151
+ var import_manifest_schema = require('./manifest-schema.cjs');
148
152
  var import_no_async_callback_to_unsafe_return = require('./no-async-callback-to-unsafe-return.cjs');
149
153
  var import_no_untrusted_input_events = require('./no-untrusted-input-events.cjs');
150
154
  var import_no_unused_params_members = require('./no-unused-params-members.cjs');
@@ -157,6 +161,10 @@ var import_require_method_template = require('./require-method-template.cjs');
157
161
  var import_require_super_call = require('./require-super-call.cjs');
158
162
  const obsidianDevUtilsPlugin = {
159
163
  rules: {
164
+ "manifest-description": import_manifest_description.manifestDescription,
165
+ "manifest-id": import_manifest_id.manifestId,
166
+ "manifest-name": import_manifest_name.manifestName,
167
+ "manifest-schema": import_manifest_schema.manifestSchema,
160
168
  "no-async-callback-to-unsafe-return": import_no_async_callback_to_unsafe_return.noAsyncCallbackToUnsafeReturn,
161
169
  "no-untrusted-input-events": import_no_untrusted_input_events.noUntrustedInputEvents,
162
170
  "no-unused-params-members": import_no_unused_params_members.noUnusedParamsMembers,
@@ -173,4 +181,4 @@ const obsidianDevUtilsPlugin = {
173
181
  0 && (module.exports = {
174
182
  obsidianDevUtilsPlugin
175
183
  });
176
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHBsdWdpbiBmb3IgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzLlxuICovXG5pbXBvcnQgdHlwZSB7IEVTTGludCB9IGZyb20gJ2VzbGludCc7XG5cbmltcG9ydCB7IG5vQXN5bmNDYWxsYmFja1RvVW5zYWZlUmV0dXJuIH0gZnJvbSAnLi9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzJztcbmltcG9ydCB7IG5vVW50cnVzdGVkSW5wdXRFdmVudHMgfSBmcm9tICcuL25vLXVudHJ1c3RlZC1pbnB1dC1ldmVudHMudHMnO1xuaW1wb3J0IHsgbm9VbnVzZWRQYXJhbXNNZW1iZXJzIH0gZnJvbSAnLi9uby11bnVzZWQtcGFyYW1zLW1lbWJlcnMudHMnO1xuaW1wb3J0IHsgbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlcyB9IGZyb20gJy4vbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcy50cyc7XG5pbXBvcnQgeyBwYXJhbXNPcHRpb25zTmFtZU1hdGNoIH0gZnJvbSAnLi9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoLnRzJztcbmltcG9ydCB7IHByZWZlck5vb3BBc3luYyB9IGZyb20gJy4vcHJlZmVyLW5vb3AtYXN5bmMudHMnO1xuaW1wb3J0IHsgcmVhZG9ubHlQYXJhbXNPcHRpb25zUmVzdWx0TWVtYmVycyB9IGZyb20gJy4vcmVhZG9ubHktcGFyYW1zLW9wdGlvbnMtcmVzdWx0LW1lbWJlcnMudHMnO1xuaW1wb3J0IHsgcmVxdWlyZUNvbXBvbmVudFN1ZmZpeCB9IGZyb20gJy4vcmVxdWlyZS1jb21wb25lbnQtc3VmZml4LnRzJztcbmltcG9ydCB7IHJlcXVpcmVNZXRob2RUZW1wbGF0ZSB9IGZyb20gJy4vcmVxdWlyZS1tZXRob2QtdGVtcGxhdGUudHMnO1xuaW1wb3J0IHsgcmVxdWlyZVN1cGVyQ2FsbCB9IGZyb20gJy4vcmVxdWlyZS1zdXBlci1jYWxsLnRzJztcblxuLyoqXG4gKiBFU0xpbnQgcGx1Z2luIGJ1bmRsaW5nIGV2ZXJ5IGBvYnNpZGlhbi1kZXYtdXRpbHNgIGN1c3RvbSBydWxlLCByZWdpc3RlcmVkIHVuZGVyIHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBuYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBvYnNpZGlhbkRldlV0aWxzUGx1Z2luOiBFU0xpbnQuUGx1Z2luID0ge1xuICBydWxlczoge1xuICAgICduby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuJzogbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm4sXG4gICAgJ25vLXVudHJ1c3RlZC1pbnB1dC1ldmVudHMnOiBub1VudHJ1c3RlZElucHV0RXZlbnRzLFxuICAgICduby11bnVzZWQtcGFyYW1zLW1lbWJlcnMnOiBub1VudXNlZFBhcmFtc01lbWJlcnMsXG4gICAgJ25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMnOiBub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzLFxuICAgICdwYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoJzogcGFyYW1zT3B0aW9uc05hbWVNYXRjaCxcbiAgICAncHJlZmVyLW5vb3AtYXN5bmMnOiBwcmVmZXJOb29wQXN5bmMsXG4gICAgJ3JlYWRvbmx5LXBhcmFtcy1vcHRpb25zLXJlc3VsdC1tZW1iZXJzJzogcmVhZG9ubHlQYXJhbXNPcHRpb25zUmVzdWx0TWVtYmVycyxcbiAgICAncmVxdWlyZS1jb21wb25lbnQtc3VmZml4JzogcmVxdWlyZUNvbXBvbmVudFN1ZmZpeCxcbiAgICAncmVxdWlyZS1tZXRob2QtdGVtcGxhdGUnOiByZXF1aXJlTWV0aG9kVGVtcGxhdGUsXG4gICAgJ3JlcXVpcmUtc3VwZXItY2FsbCc6IHJlcXVpcmVTdXBlckNhbGxcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsZ0RBQThDO0FBQzlDLHVDQUF1QztBQUN2QyxzQ0FBc0M7QUFDdEMsMENBQTBDO0FBQzFDLHVDQUF1QztBQUN2QywrQkFBZ0M7QUFDaEMsb0RBQW1EO0FBQ25ELHNDQUF1QztBQUN2QyxxQ0FBc0M7QUFDdEMsZ0NBQWlDO0FBSzFCLE1BQU0seUJBQXdDO0FBQUEsRUFDbkQsT0FBTztBQUFBLElBQ0wsc0NBQXNDO0FBQUEsSUFDdEMsNkJBQTZCO0FBQUEsSUFDN0IsNEJBQTRCO0FBQUEsSUFDNUIsZ0NBQWdDO0FBQUEsSUFDaEMsNkJBQTZCO0FBQUEsSUFDN0IscUJBQXFCO0FBQUEsSUFDckIsMENBQTBDO0FBQUEsSUFDMUMsNEJBQTRCO0FBQUEsSUFDNUIsMkJBQTJCO0FBQUEsSUFDM0Isc0JBQXNCO0FBQUEsRUFDeEI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
184
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHBsdWdpbiBmb3IgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzLlxuICovXG5pbXBvcnQgdHlwZSB7IEVTTGludCB9IGZyb20gJ2VzbGludCc7XG5cbmltcG9ydCB7IG1hbmlmZXN0RGVzY3JpcHRpb24gfSBmcm9tICcuL21hbmlmZXN0LWRlc2NyaXB0aW9uLnRzJztcbmltcG9ydCB7IG1hbmlmZXN0SWQgfSBmcm9tICcuL21hbmlmZXN0LWlkLnRzJztcbmltcG9ydCB7IG1hbmlmZXN0TmFtZSB9IGZyb20gJy4vbWFuaWZlc3QtbmFtZS50cyc7XG5pbXBvcnQgeyBtYW5pZmVzdFNjaGVtYSB9IGZyb20gJy4vbWFuaWZlc3Qtc2NoZW1hLnRzJztcbmltcG9ydCB7IG5vQXN5bmNDYWxsYmFja1RvVW5zYWZlUmV0dXJuIH0gZnJvbSAnLi9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzJztcbmltcG9ydCB7IG5vVW50cnVzdGVkSW5wdXRFdmVudHMgfSBmcm9tICcuL25vLXVudHJ1c3RlZC1pbnB1dC1ldmVudHMudHMnO1xuaW1wb3J0IHsgbm9VbnVzZWRQYXJhbXNNZW1iZXJzIH0gZnJvbSAnLi9uby11bnVzZWQtcGFyYW1zLW1lbWJlcnMudHMnO1xuaW1wb3J0IHsgbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlcyB9IGZyb20gJy4vbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcy50cyc7XG5pbXBvcnQgeyBwYXJhbXNPcHRpb25zTmFtZU1hdGNoIH0gZnJvbSAnLi9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoLnRzJztcbmltcG9ydCB7IHByZWZlck5vb3BBc3luYyB9IGZyb20gJy4vcHJlZmVyLW5vb3AtYXN5bmMudHMnO1xuaW1wb3J0IHsgcmVhZG9ubHlQYXJhbXNPcHRpb25zUmVzdWx0TWVtYmVycyB9IGZyb20gJy4vcmVhZG9ubHktcGFyYW1zLW9wdGlvbnMtcmVzdWx0LW1lbWJlcnMudHMnO1xuaW1wb3J0IHsgcmVxdWlyZUNvbXBvbmVudFN1ZmZpeCB9IGZyb20gJy4vcmVxdWlyZS1jb21wb25lbnQtc3VmZml4LnRzJztcbmltcG9ydCB7IHJlcXVpcmVNZXRob2RUZW1wbGF0ZSB9IGZyb20gJy4vcmVxdWlyZS1tZXRob2QtdGVtcGxhdGUudHMnO1xuaW1wb3J0IHsgcmVxdWlyZVN1cGVyQ2FsbCB9IGZyb20gJy4vcmVxdWlyZS1zdXBlci1jYWxsLnRzJztcblxuLyoqXG4gKiBFU0xpbnQgcGx1Z2luIGJ1bmRsaW5nIGV2ZXJ5IGBvYnNpZGlhbi1kZXYtdXRpbHNgIGN1c3RvbSBydWxlLCByZWdpc3RlcmVkIHVuZGVyIHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBuYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBvYnNpZGlhbkRldlV0aWxzUGx1Z2luOiBFU0xpbnQuUGx1Z2luID0ge1xuICBydWxlczoge1xuICAgICdtYW5pZmVzdC1kZXNjcmlwdGlvbic6IG1hbmlmZXN0RGVzY3JpcHRpb24sXG4gICAgJ21hbmlmZXN0LWlkJzogbWFuaWZlc3RJZCxcbiAgICAnbWFuaWZlc3QtbmFtZSc6IG1hbmlmZXN0TmFtZSxcbiAgICAnbWFuaWZlc3Qtc2NoZW1hJzogbWFuaWZlc3RTY2hlbWEsXG4gICAgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nOiBub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybixcbiAgICAnbm8tdW50cnVzdGVkLWlucHV0LWV2ZW50cyc6IG5vVW50cnVzdGVkSW5wdXRFdmVudHMsXG4gICAgJ25vLXVudXNlZC1wYXJhbXMtbWVtYmVycyc6IG5vVW51c2VkUGFyYW1zTWVtYmVycyxcbiAgICAnbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyc6IG5vVXNlZFVuZGVyc2NvcmVWYXJpYWJsZXMsXG4gICAgJ3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gnOiBwYXJhbXNPcHRpb25zTmFtZU1hdGNoLFxuICAgICdwcmVmZXItbm9vcC1hc3luYyc6IHByZWZlck5vb3BBc3luYyxcbiAgICAncmVhZG9ubHktcGFyYW1zLW9wdGlvbnMtcmVzdWx0LW1lbWJlcnMnOiByZWFkb25seVBhcmFtc09wdGlvbnNSZXN1bHRNZW1iZXJzLFxuICAgICdyZXF1aXJlLWNvbXBvbmVudC1zdWZmaXgnOiByZXF1aXJlQ29tcG9uZW50U3VmZml4LFxuICAgICdyZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZSc6IHJlcXVpcmVNZXRob2RUZW1wbGF0ZSxcbiAgICAncmVxdWlyZS1zdXBlci1jYWxsJzogcmVxdWlyZVN1cGVyQ2FsbFxuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSxrQ0FBb0M7QUFDcEMseUJBQTJCO0FBQzNCLDJCQUE2QjtBQUM3Qiw2QkFBK0I7QUFDL0IsZ0RBQThDO0FBQzlDLHVDQUF1QztBQUN2QyxzQ0FBc0M7QUFDdEMsMENBQTBDO0FBQzFDLHVDQUF1QztBQUN2QywrQkFBZ0M7QUFDaEMsb0RBQW1EO0FBQ25ELHNDQUF1QztBQUN2QyxxQ0FBc0M7QUFDdEMsZ0NBQWlDO0FBSzFCLE1BQU0seUJBQXdDO0FBQUEsRUFDbkQsT0FBTztBQUFBLElBQ0wsd0JBQXdCO0FBQUEsSUFDeEIsZUFBZTtBQUFBLElBQ2YsaUJBQWlCO0FBQUEsSUFDakIsbUJBQW1CO0FBQUEsSUFDbkIsc0NBQXNDO0FBQUEsSUFDdEMsNkJBQTZCO0FBQUEsSUFDN0IsNEJBQTRCO0FBQUEsSUFDNUIsZ0NBQWdDO0FBQUEsSUFDaEMsNkJBQTZCO0FBQUEsSUFDN0IscUJBQXFCO0FBQUEsSUFDckIsMENBQTBDO0FBQUEsSUFDMUMsNEJBQTRCO0FBQUEsSUFDNUIsMkJBQTJCO0FBQUEsSUFDM0Isc0JBQXNCO0FBQUEsRUFDeEI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -152,6 +152,7 @@ var import_obsidian_plugin_repo_paths = require('../../obsidian/plugin/obsidian-
152
152
  var import_path = require('../../path.cjs');
153
153
  var import_type_guards = require('../../type-guards.cjs');
154
154
  var import_obsidian_dev_utils_repo_paths = require('../obsidian-dev-utils-repo-paths.cjs');
155
+ var import_package_manager = require('../package-manager.cjs');
155
156
  var import_root = require('../root.cjs');
156
157
  var __import_meta_url = globalThis["import.meta.url"] ?? (() => {
157
158
  if (typeof __filename === "string") {
@@ -190,10 +191,10 @@ async function lint(options) {
190
191
  );
191
192
  }
192
193
  const targets = paths?.length ? paths : [import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.CurrentFolder];
193
- await (0, import_root.execFromRoot)(["npx", "eslint", ...shouldFix ? ["--fix"] : [], { batchedArguments: targets }]);
194
+ await (0, import_root.execFromRoot)([...(0, import_package_manager.resolveToolCommand)({ tool: "eslint" }), ...shouldFix ? ["--fix"] : [], { batchedArguments: targets }]);
194
195
  }
195
196
  // Annotate the CommonJS export names for ESM import in node:
196
197
  0 && (module.exports = {
197
198
  lint
198
199
  });
199
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgX19maWxlbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgbG9jYWxSZXF1aXJlID0gcmVxdWlyZTtcbiAgICAgICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgICAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHVybC5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpLmhyZWY7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBhY3RpdmVXaW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgIH1cblxuICAgICAgLy8gRmFsbGJhY2sgdG8gYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBlbnZpcm9ubWVudCBpcyB1bmtub3duXG4gICAgICByZXR1cm4gJyc7XG4gICAgfSkoKTtcbi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaW50aW5nIHV0aWxpdHkgZm9yIEVTTGludCBjb25maWd1cmF0aW9uIHdpdGggc3VwcG9ydCBmb3IgYXV0b21hdGljIGZpeGluZy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGZ1bmN0aW9uIHRvIGxpbnQgZmlsZXMgYmFzZWQgb24gdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGRlZmluZWQgaW4gYGVzbGludC5jb25maWcudHNgLlxuICogSXQgY2FuIGF1dG9tYXRpY2FsbHkgZml4IGxpbnRpbmcgaXNzdWVzIGlmIHNwZWNpZmllZCwgYW5kIGxvZ3MgcmVzdWx0cyB0byB0aGUgY29uc29sZS5cbiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBjcCB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4uL3Jvb3QudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgbGludH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludE9wdGlvbnMge1xuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgdGhlIHByb2plY3Qgd2l0aCBFU0xpbnQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcGF0aHMsIHNob3VsZEZpeCB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3QgY29uZmlnRmlsZXMgPSBbXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnSnMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTWpzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ0NqcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdUcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnQ3RzXG4gIF07XG5cbiAgY29uc3QgZG9lc0NvbmZpZ0ZpbGVFeGlzdCA9IGNvbmZpZ0ZpbGVzLnNvbWUoKGNvbmZpZ0ZpbGUpID0+IHtcbiAgICBjb25zdCBjb25maWdGaWxlUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogY29uZmlnRmlsZSB9KTtcbiAgICByZXR1cm4gZXhpc3RzU3luYyhjb25maWdGaWxlUGF0aCk7XG4gIH0pO1xuXG4gIGlmICghZG9lc0NvbmZpZ0ZpbGVFeGlzdCkge1xuICAgIGdldExpYkRlYnVnZ2VyKCdFU0xpbnQ6bGludCcpKCdFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlIG5vdCBmb3VuZC4gQ3JlYXRpbmcgZGVmYXVsdCBjb25maWcuLi4nKTtcbiAgICBjb25zdCBwYWNrYWdlRm9sZGVyID0gZ2V0Um9vdEZvbGRlcihnZXRGb2xkZXJOYW1lKGltcG9ydC5tZXRhLnVybCkpO1xuICAgIGFzc2VydE5vbk51bGxhYmxlKHBhY2thZ2VGb2xkZXIsICdQYWNrYWdlIGZvbGRlciBub3QgZm91bmQnKTtcbiAgICBhd2FpdCBjcChcbiAgICAgIGpvaW4ocGFja2FnZUZvbGRlciwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0VGVtcGxhdGVzLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyksXG4gICAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyB9KVxuICAgICk7XG4gIH1cblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaCBpcyBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHRhcmdldHMgPSBwYXRocz8ubGVuZ3RoID8gcGF0aHMgOiBbT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ3VycmVudEZvbGRlcl07XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICdlc2xpbnQnLCAuLi4oc2hvdWxkRml4ID8gWyctLWZpeCddIDogW10pLCB7IGJhdGNoZWRBcmd1bWVudHM6IHRhcmdldHMgfV0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkEscUJBQTJCO0FBQzNCLHNCQUFtQjtBQUVuQixtQkFBK0I7QUFDL0Isd0NBQXdDO0FBQ3hDLGtCQUdPO0FBQ1AseUJBQWtDO0FBQ2xDLDJDQUEwQztBQUMxQyxrQkFJTztBQXhDUCxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLE1BQU07QUFDMUQsTUFBSSxPQUFPLGVBQWUsVUFBVTtBQUNsQyxVQUFNLGVBQWU7QUFDckIsVUFBTSxNQUFNLGFBQWEsVUFBVTtBQUNuQyxRQUFJLE9BQU8sSUFBSSxrQkFBa0IsWUFBWTtBQUMzQyxhQUFPLElBQUksY0FBYyxVQUFVLEVBQUU7QUFBQSxJQUN2QztBQUFBLEVBQ0Y7QUFFQSxNQUFJLE9BQU8sV0FBVyxhQUFhO0FBQ2pDLFdBQU8sYUFBYSxTQUFTO0FBQUEsRUFDL0I7QUFHQSxTQUFPO0FBQ1QsR0FBRztBQWlEUCxlQUFzQixLQUFLLFNBQXNDO0FBQy9ELFFBQU0sRUFBRSxPQUFPLFVBQVUsSUFBSSxXQUFXLENBQUM7QUFDekMsUUFBTSxjQUFjO0FBQUEsSUFDbEIsMERBQXdCO0FBQUEsSUFDeEIsMERBQXdCO0FBQUEsSUFDeEIsMERBQXdCO0FBQUEsSUFDeEIsMERBQXdCO0FBQUEsSUFDeEIsMERBQXdCO0FBQUEsSUFDeEIsMERBQXdCO0FBQUEsRUFDMUI7QUFFQSxRQUFNLHNCQUFzQixZQUFZLEtBQUssQ0FBQyxlQUFlO0FBQzNELFVBQU0scUJBQWlCLHFDQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25FLGVBQU8sMkJBQVcsY0FBYztBQUFBLEVBQ2xDLENBQUM7QUFFRCxNQUFJLENBQUMscUJBQXFCO0FBQ3hCLHFDQUFlLGFBQWEsRUFBRSxpRUFBaUU7QUFDL0YsVUFBTSxvQkFBZ0IsK0JBQWMsMkJBQWMsaUJBQWUsQ0FBQztBQUNsRSw4Q0FBa0IsZUFBZSwwQkFBMEI7QUFDM0QsY0FBTTtBQUFBLFVBQ0osa0JBQUssZUFBZSwrREFBMEIsZUFBZSwrREFBMEIsZUFBZTtBQUFBLFVBQ3RHLHFDQUF3QixFQUFFLE1BQU0sMERBQXdCLGdCQUFnQixDQUFDO0FBQUEsSUFDM0U7QUFBQSxFQUNGO0FBR0EsUUFBTSxVQUFVLE9BQU8sU0FBUyxRQUFRLENBQUMsMERBQXdCLGFBQWE7QUFFOUUsWUFBTSwwQkFBYSxDQUFDLE9BQU8sVUFBVSxHQUFJLFlBQVksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFJLEVBQUUsa0JBQWtCLFFBQVEsQ0FBQyxDQUFDO0FBQ3RHOyIsCiAgIm5hbWVzIjogW10KfQo=
200
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgX19maWxlbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgbG9jYWxSZXF1aXJlID0gcmVxdWlyZTtcbiAgICAgICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgICAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHVybC5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpLmhyZWY7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBhY3RpdmVXaW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgIH1cblxuICAgICAgLy8gRmFsbGJhY2sgdG8gYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBlbnZpcm9ubWVudCBpcyB1bmtub3duXG4gICAgICByZXR1cm4gJyc7XG4gICAgfSkoKTtcbi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaW50aW5nIHV0aWxpdHkgZm9yIEVTTGludCBjb25maWd1cmF0aW9uIHdpdGggc3VwcG9ydCBmb3IgYXV0b21hdGljIGZpeGluZy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGZ1bmN0aW9uIHRvIGxpbnQgZmlsZXMgYmFzZWQgb24gdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGRlZmluZWQgaW4gYGVzbGludC5jb25maWcudHNgLlxuICogSXQgY2FuIGF1dG9tYXRpY2FsbHkgZml4IGxpbnRpbmcgaXNzdWVzIGlmIHNwZWNpZmllZCwgYW5kIGxvZ3MgcmVzdWx0cyB0byB0aGUgY29uc29sZS5cbiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBjcCB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uLy4uL2RlYnVnLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vLi4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGdldEZvbGRlck5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyByZXNvbHZlVG9vbENvbW1hbmQgfSBmcm9tICcuLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICBnZXRSb290Rm9sZGVyLFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuLi9yb290LnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZpbGUgcGF0aHMgdG8gbGludC4gSWYgb21pdHRlZCwgbGludHMgdGhlIGVudGlyZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBmaXggbGludGluZyBpc3N1ZXMgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkRml4PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBMaW50IHRoZSBwcm9qZWN0IHdpdGggRVNMaW50LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBMaW50T3B0aW9uc30uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW50KG9wdGlvbnM/OiBMaW50T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBhdGhzLCBzaG91bGRGaXggfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbmZpZ0ZpbGVzID0gW1xuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ0pzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ01qcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdDanMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnVHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ0N0c1xuICBdO1xuXG4gIGNvbnN0IGRvZXNDb25maWdGaWxlRXhpc3QgPSBjb25maWdGaWxlcy5zb21lKChjb25maWdGaWxlKSA9PiB7XG4gICAgY29uc3QgY29uZmlnRmlsZVBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGNvbmZpZ0ZpbGUgfSk7XG4gICAgcmV0dXJuIGV4aXN0c1N5bmMoY29uZmlnRmlsZVBhdGgpO1xuICB9KTtcblxuICBpZiAoIWRvZXNDb25maWdGaWxlRXhpc3QpIHtcbiAgICBnZXRMaWJEZWJ1Z2dlcignRVNMaW50OmxpbnQnKSgnRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZSBub3QgZm91bmQuIENyZWF0aW5nIGRlZmF1bHQgY29uZmlnLi4uJyk7XG4gICAgY29uc3QgcGFja2FnZUZvbGRlciA9IGdldFJvb3RGb2xkZXIoZ2V0Rm9sZGVyTmFtZShpbXBvcnQubWV0YS51cmwpKTtcbiAgICBhc3NlcnROb25OdWxsYWJsZShwYWNrYWdlRm9sZGVyLCAnUGFja2FnZSBmb2xkZXIgbm90IGZvdW5kJyk7XG4gICAgYXdhaXQgY3AoXG4gICAgICBqb2luKHBhY2thZ2VGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdFRlbXBsYXRlcywgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMpLFxuICAgICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMgfSlcbiAgICApO1xuICB9XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCB0YXJnZXRzID0gcGF0aHM/Lmxlbmd0aCA/IHBhdGhzIDogW09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXJdO1xuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdlc2xpbnQnIH0pLCAuLi4oc2hvdWxkRml4ID8gWyctLWZpeCddIDogW10pLCB7IGJhdGNoZWRBcmd1bWVudHM6IHRhcmdldHMgfV0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkEscUJBQTJCO0FBQzNCLHNCQUFtQjtBQUVuQixtQkFBK0I7QUFDL0Isd0NBQXdDO0FBQ3hDLGtCQUdPO0FBQ1AseUJBQWtDO0FBQ2xDLDJDQUEwQztBQUMxQyw2QkFBbUM7QUFDbkMsa0JBSU87QUF6Q1AsSUFBSSxvQkFBb0IsV0FBVyxpQkFBaUIsTUFBTSxNQUFNO0FBQzFELE1BQUksT0FBTyxlQUFlLFVBQVU7QUFDbEMsVUFBTSxlQUFlO0FBQ3JCLFVBQU0sTUFBTSxhQUFhLFVBQVU7QUFDbkMsUUFBSSxPQUFPLElBQUksa0JBQWtCLFlBQVk7QUFDM0MsYUFBTyxJQUFJLGNBQWMsVUFBVSxFQUFFO0FBQUEsSUFDdkM7QUFBQSxFQUNGO0FBRUEsTUFBSSxPQUFPLFdBQVcsYUFBYTtBQUNqQyxXQUFPLGFBQWEsU0FBUztBQUFBLEVBQy9CO0FBR0EsU0FBTztBQUNULEdBQUc7QUFrRFAsZUFBc0IsS0FBSyxTQUFzQztBQUMvRCxRQUFNLEVBQUUsT0FBTyxVQUFVLElBQUksV0FBVyxDQUFDO0FBQ3pDLFFBQU0sY0FBYztBQUFBLElBQ2xCLDBEQUF3QjtBQUFBLElBQ3hCLDBEQUF3QjtBQUFBLElBQ3hCLDBEQUF3QjtBQUFBLElBQ3hCLDBEQUF3QjtBQUFBLElBQ3hCLDBEQUF3QjtBQUFBLElBQ3hCLDBEQUF3QjtBQUFBLEVBQzFCO0FBRUEsUUFBTSxzQkFBc0IsWUFBWSxLQUFLLENBQUMsZUFBZTtBQUMzRCxVQUFNLHFCQUFpQixxQ0FBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRSxlQUFPLDJCQUFXLGNBQWM7QUFBQSxFQUNsQyxDQUFDO0FBRUQsTUFBSSxDQUFDLHFCQUFxQjtBQUN4QixxQ0FBZSxhQUFhLEVBQUUsaUVBQWlFO0FBQy9GLFVBQU0sb0JBQWdCLCtCQUFjLDJCQUFjLGlCQUFlLENBQUM7QUFDbEUsOENBQWtCLGVBQWUsMEJBQTBCO0FBQzNELGNBQU07QUFBQSxVQUNKLGtCQUFLLGVBQWUsK0RBQTBCLGVBQWUsK0RBQTBCLGVBQWU7QUFBQSxVQUN0RyxxQ0FBd0IsRUFBRSxNQUFNLDBEQUF3QixnQkFBZ0IsQ0FBQztBQUFBLElBQzNFO0FBQUEsRUFDRjtBQUdBLFFBQU0sVUFBVSxPQUFPLFNBQVMsUUFBUSxDQUFDLDBEQUF3QixhQUFhO0FBRTlFLFlBQU0sMEJBQWEsQ0FBQyxPQUFHLDJDQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDLEdBQUcsR0FBSSxZQUFZLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBSSxFQUFFLGtCQUFrQixRQUFRLENBQUMsQ0FBQztBQUNoSTsiLAogICJuYW1lcyI6IFtdCn0K
@@ -155,6 +155,7 @@ var import_path = require('../../path.cjs');
155
155
  var import_type_guards = require('../../type-guards.cjs');
156
156
  var import_git = require('../git.cjs');
157
157
  var import_obsidian_dev_utils_repo_paths = require('../obsidian-dev-utils-repo-paths.cjs');
158
+ var import_package_manager = require('../package-manager.cjs');
158
159
  var import_root = require('../root.cjs');
159
160
  var import_markdownlint_ignores = require('./markdownlint-ignores.cjs');
160
161
  var __import_meta_url = globalThis["import.meta.url"] ?? (() => {
@@ -198,12 +199,11 @@ async function lint(options) {
198
199
  );
199
200
  }
200
201
  const targets = paths?.length ? paths : [import_obsidian_plugin_repo_paths.ObsidianPluginRepoPaths.CurrentFolder];
201
- await (0, import_root.execFromRoot)(["npx", "markdownlint-cli2", ...shouldFix ? ["--fix"] : [], { batchedArguments: targets }]);
202
+ await (0, import_root.execFromRoot)([...(0, import_package_manager.resolveToolCommand)({ tool: "markdownlint-cli2" }), ...shouldFix ? ["--fix"] : [], { batchedArguments: targets }]);
202
203
  const rootFolder = (0, import_root.getRootFolder)() ?? process.cwd();
203
204
  const mdFiles = paths?.length ? paths.map((p) => (0, import_node_path.relative)(rootFolder, p).replaceAll("\\", "/") || p) : await getMarkdownFiles();
204
205
  await (0, import_root.execFromRoot)([
205
- "npx",
206
- "linkinator",
206
+ ...(0, import_package_manager.resolveToolCommand)({ tool: "linkinator" }),
207
207
  "--retry",
208
208
  "--retry-errors",
209
209
  "--retry-errors-count",
@@ -235,4 +235,4 @@ async function getMarkdownFiles() {
235
235
  0 && (module.exports = {
236
236
  lint
237
237
  });
238
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgX19maWxlbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgbG9jYWxSZXF1aXJlID0gcmVxdWlyZTtcbiAgICAgICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgICAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHVybC5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpLmhyZWY7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBhY3RpdmVXaW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgIH1cblxuICAgICAgLy8gRmFsbGJhY2sgdG8gYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBlbnZpcm9ubWVudCBpcyB1bmtub3duXG4gICAgICByZXR1cm4gJyc7XG4gICAgfSkoKTtcbi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaW50IG1hcmtkb3duIGRvY3VtZW50YXRpb24gdXNpbmcgYG1hcmtkb3dubGludC1jbGkyYCBhbmQgYGxpbmtpbmF0b3JgLlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBnZXRGb2xkZXJOYW1lLFxuICBqb2luXG59IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBnZXROb25JZ25vcmVkRmlsZXMgfSBmcm9tICcuLi9naXQudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQge1xuICBjaGVja0lzSW5Ob2RlTW9kdWxlcyxcbiAgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CXG59IGZyb20gJy4vbWFya2Rvd25saW50LWlnbm9yZXMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgbGludH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludE9wdGlvbnMge1xuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgbWFya2Rvd24gZG9jdW1lbnRhdGlvbiB1c2luZyBgbWFya2Rvd25saW50LWNsaTJgIGFuZCBgbGlua2luYXRvcmAuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcGF0aHMsIHNob3VsZEZpeCA9IGZhbHNlIH0gPSBvcHRpb25zID8/IHt9O1xuICBjb25zdCBjb25maWdGaWxlcyA9IFtcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ1lhbWwsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ0pzb25jLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ0pzb24sXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnWWFtbCxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdZbWwsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnQ2pzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ01qc1xuICBdO1xuXG4gIGNvbnN0IGRvZXNDb25maWdGaWxlRXhpc3QgPSBjb25maWdGaWxlcy5zb21lKChjb25maWdGaWxlKSA9PiB7XG4gICAgY29uc3QgY29uZmlnRmlsZVBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGNvbmZpZ0ZpbGUgfSk7XG4gICAgcmV0dXJuIGV4aXN0c1N5bmMoY29uZmlnRmlsZVBhdGgpO1xuICB9KTtcblxuICBpZiAoIWRvZXNDb25maWdGaWxlRXhpc3QpIHtcbiAgICBnZXRMaWJEZWJ1Z2dlcignbWFya2Rvd25saW50OmxpbnQnKSgnbWFya2Rvd25saW50IGNvbmZpZ3VyYXRpb24gZmlsZSBub3QgZm91bmQuIENyZWF0aW5nIGRlZmF1bHQgY29uZmlnLi4uJyk7XG4gICAgY29uc3QgcGFja2FnZUZvbGRlciA9IGdldFJvb3RGb2xkZXIoZ2V0Rm9sZGVyTmFtZShpbXBvcnQubWV0YS51cmwpKTtcbiAgICBhc3NlcnROb25OdWxsYWJsZShwYWNrYWdlRm9sZGVyLCAnUGFja2FnZSBmb2xkZXIgbm90IGZvdW5kJyk7XG4gICAgYXdhaXQgY3AoXG4gICAgICBqb2luKHBhY2thZ2VGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdFRlbXBsYXRlcywgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzKSxcbiAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyB9KVxuICAgICk7XG4gIH1cblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaGVzIGFyZSBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHRhcmdldHMgPSBwYXRocz8ubGVuZ3RoID8gcGF0aHMgOiBbT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ3VycmVudEZvbGRlcl07XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICdtYXJrZG93bmxpbnQtY2xpMicsIC4uLihzaG91bGRGaXggPyBbJy0tZml4J10gOiBbXSksIHsgYmF0Y2hlZEFyZ3VtZW50czogdGFyZ2V0cyB9XSk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcigpID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IG1kRmlsZXMgPSBwYXRocz8ubGVuZ3RoXG4gICAgPyBwYXRocy5tYXAoKHApID0+IHJlbGF0aXZlKHJvb3RGb2xkZXIsIHApLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpIHx8IHApXG4gICAgOiBhd2FpdCBnZXRNYXJrZG93bkZpbGVzKCk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgJ25weCcsXG4gICAgJ2xpbmtpbmF0b3InLFxuICAgICctLXJldHJ5JyxcbiAgICAnLS1yZXRyeS1lcnJvcnMnLFxuICAgICctLXJldHJ5LWVycm9ycy1jb3VudCcsXG4gICAgJzMnLFxuICAgICctLXJldHJ5LWVycm9ycy1qaXR0ZXInLFxuICAgICc1JyxcbiAgICAnLS11cmwtcmV3cml0ZS1zZWFyY2gnLFxuICAgIFN0cmluZy5yYXdgaHR0cHM6Ly93d3dcXC5ucG1qc1xcLmNvbS9wYWNrYWdlL2AsXG4gICAgJy0tdXJsLXJld3JpdGUtcmVwbGFjZScsXG4gICAgJ2h0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLycsXG4gICAgeyBiYXRjaGVkQXJndW1lbnRzOiBtZEZpbGVzIH1cbiAgXSk7XG59XG5cbi8qKlxuICogVGhlIGdpdCBwYXRoc3BlYyBtYXRjaGluZyBldmVyeSBtYXJrZG93biBmaWxlIGluIHRoZSByZXBvc2l0b3J5LCBhdCBhbnkgZGVwdGguXG4gKi9cbmNvbnN0IE1BUktET1dOX1BBVEhTUEVDID0gJyoubWQnO1xuXG4vKipcbiAqIExpc3RzIHRoZSBtYXJrZG93biBmaWxlcyB0byBoYW5kIHRvIGBsaW5raW5hdG9yYC5cbiAqXG4gKiBgbGlua2luYXRvcmAgdGFrZXMgYSBmaWxlIGxpc3QgcmF0aGVyIHRoYW4gYW4gaWdub3JlIGNvbmZpZ3VyYXRpb24sIHNvIHRoZSBnaXRpZ25vcmVkIGZpbGVzIGhhdmUgdG8gYmVcbiAqIGRyb3BwZWQgYmVmb3JlIGl0IGlzIGludm9rZWQuIEdpdCBpdHNlbGYgYW5zd2VycyB0aGF0IChuZXN0ZWQgaWdub3JlIGZpbGVzLCBgIWAgbmVnYXRpb25zIGFuZCBhbGwpOyB0aGVcbiAqIGhhbmQtbWFpbnRhaW5lZCBnbG9iIGV4Y2x1c2lvbnMgYmVsb3cgYXJlIG9ubHkgdGhlIGZhbGxiYWNrIGZvciBhIGNoZWNrb3V0IHdpdGhvdXQgZ2l0LCBhbmQgdGhleSBhcmUgdGhlXG4gKiB2ZXJ5IGxpc3RzIHRoaXMgaW5kaXJlY3Rpb24gZXhpc3RzIHRvIHN0b3AgZnJvbSBkcmlmdGluZy5cbiAqXG4gKiBUaGUgYG5vZGVfbW9kdWxlc2AgZmlsdGVyIGlzIGFwcGxpZWQgdG8gdGhlIGdpdC1kZXJpdmVkIGxpc3QgdG9vLCBhbmQgZGVsaWJlcmF0ZWx5IHNvOiBnaXQgb25seSBza2lwc1xuICogd2hhdCB0aGUgcmVwb3NpdG9yeSBhc2tlZCBpdCB0byBza2lwLCBhbmQgYSByZXBvc2l0b3J5IGNhbiBkZWxpYmVyYXRlbHkgVFJBQ0sgYSB2ZW5kb3JlZCBgbm9kZV9tb2R1bGVzYFxuICogdHJlZS4gVGhhdCBpcyB0aGUgb25lIGV4Y2x1c2lvbiBgLmdpdGlnbm9yZWAgY2Fubm90IGFuc3dlciBcdTIwMTQgc2VlIGBtYXJrZG93bmxpbnQtaWdub3Jlcy50c2AuIEFwcGx5aW5nIGl0XG4gKiBoZXJlIGtlZXBzIGBsaW5raW5hdG9yYCBpbiBzdGVwIHdpdGggdGhlIG1hcmtkb3dubGludCBoYWxmLCB3aGljaCBpZ25vcmVzIHRoZSBzYW1lIHBhdGhzIGJ5IGdsb2IuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBtYXJrZG93biBmaWxlIHBhdGhzLCByZWxhdGl2ZSB0byB0aGUgcm9vdCBmb2xkZXIuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldE1hcmtkb3duRmlsZXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCBub25JZ25vcmVkRmlsZXMgPSBhd2FpdCBnZXROb25JZ25vcmVkRmlsZXMoeyBwYXR0ZXJuczogW01BUktET1dOX1BBVEhTUEVDXSB9KTtcbiAgaWYgKG5vbklnbm9yZWRGaWxlcykge1xuICAgIHJldHVybiBub25JZ25vcmVkRmlsZXMuZmlsdGVyKChwYXRoKSA9PiAhY2hlY2tJc0luTm9kZU1vZHVsZXMocGF0aCkpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHRvQXJyYXkoZ2xvYihbJyoqLyoubWQnXSwge1xuICAgIGV4Y2x1ZGU6IFtcbiAgICAgICcuZ2l0LyoqJyxcbiAgICAgICdkaXN0LyoqJyxcbiAgICAgIE5PREVfTU9EVUxFU19JR05PUkVfR0xPQlxuICAgIF1cbiAgfSkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFzQkEscUJBQTJCO0FBQzNCLHNCQUdPO0FBQ1AsdUJBQXlCO0FBRXpCLG1CQUF3QjtBQUN4QixtQkFBK0I7QUFDL0Isd0NBQXdDO0FBQ3hDLGtCQUdPO0FBQ1AseUJBQWtDO0FBQ2xDLGlCQUFtQztB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
238
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgX19maWxlbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgbG9jYWxSZXF1aXJlID0gcmVxdWlyZTtcbiAgICAgICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgICAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHVybC5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpLmhyZWY7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBhY3RpdmVXaW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgIH1cblxuICAgICAgLy8gRmFsbGJhY2sgdG8gYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBlbnZpcm9ubWVudCBpcyB1bmtub3duXG4gICAgICByZXR1cm4gJyc7XG4gICAgfSkoKTtcbi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaW50IG1hcmtkb3duIGRvY3VtZW50YXRpb24gdXNpbmcgYG1hcmtkb3dubGludC1jbGkyYCBhbmQgYGxpbmtpbmF0b3JgLlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBnZXRGb2xkZXJOYW1lLFxuICBqb2luXG59IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBnZXROb25JZ25vcmVkRmlsZXMgfSBmcm9tICcuLi9naXQudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7IHJlc29sdmVUb29sQ29tbWFuZCB9IGZyb20gJy4uL3BhY2thZ2UtbWFuYWdlci50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHtcbiAgY2hlY2tJc0luTm9kZU1vZHVsZXMsXG4gIE5PREVfTU9EVUxFU19JR05PUkVfR0xPQlxufSBmcm9tICcuL21hcmtkb3dubGludC1pZ25vcmVzLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZpbGUgcGF0aHMgdG8gbGludC4gSWYgb21pdHRlZCwgbGludHMgdGhlIGVudGlyZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBmaXggbGludGluZyBpc3N1ZXMgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkRml4PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBMaW50IG1hcmtkb3duIGRvY3VtZW50YXRpb24gdXNpbmcgYG1hcmtkb3dubGludC1jbGkyYCBhbmQgYGxpbmtpbmF0b3JgLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBMaW50T3B0aW9uc30uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW50KG9wdGlvbnM/OiBMaW50T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBhdGhzLCBzaG91bGRGaXggPSBmYWxzZSB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3QgY29uZmlnRmlsZXMgPSBbXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0pzb25jLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdZYW1sLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdDanMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdKc29uYyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdKc29uLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1lhbWwsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnWW1sLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ0NqcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdNanNcbiAgXTtcblxuICBjb25zdCBkb2VzQ29uZmlnRmlsZUV4aXN0ID0gY29uZmlnRmlsZXMuc29tZSgoY29uZmlnRmlsZSkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBjb25maWdGaWxlIH0pO1xuICAgIHJldHVybiBleGlzdHNTeW5jKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgfSk7XG5cbiAgaWYgKCFkb2VzQ29uZmlnRmlsZUV4aXN0KSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ21hcmtkb3dubGludDpsaW50JykoJ21hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUgbm90IGZvdW5kLiBDcmVhdGluZyBkZWZhdWx0IGNvbmZpZy4uLicpO1xuICAgIGNvbnN0IHBhY2thZ2VGb2xkZXIgPSBnZXRSb290Rm9sZGVyKGdldEZvbGRlck5hbWUoaW1wb3J0Lm1ldGEudXJsKSk7XG4gICAgYXNzZXJ0Tm9uTnVsbGFibGUocGFja2FnZUZvbGRlciwgJ1BhY2thZ2UgZm9sZGVyIG5vdCBmb3VuZCcpO1xuICAgIGF3YWl0IGNwKFxuICAgICAgam9pbihwYWNrYWdlRm9sZGVyLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3RUZW1wbGF0ZXMsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyksXG4gICAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdNanMgfSlcbiAgICApO1xuICB9XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2hlcyBhcmUgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCB0YXJnZXRzID0gcGF0aHM/Lmxlbmd0aCA/IHBhdGhzIDogW09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXJdO1xuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdtYXJrZG93bmxpbnQtY2xpMicgfSksIC4uLihzaG91bGRGaXggPyBbJy0tZml4J10gOiBbXSksIHsgYmF0Y2hlZEFyZ3VtZW50czogdGFyZ2V0cyB9XSk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcigpID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IG1kRmlsZXMgPSBwYXRocz8ubGVuZ3RoXG4gICAgPyBwYXRocy5tYXAoKHApID0+IHJlbGF0aXZlKHJvb3RGb2xkZXIsIHApLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpIHx8IHApXG4gICAgOiBhd2FpdCBnZXRNYXJrZG93bkZpbGVzKCk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgLi4ucmVzb2x2ZVRvb2xDb21tYW5kKHsgdG9vbDogJ2xpbmtpbmF0b3InIH0pLFxuICAgICctLXJldHJ5JyxcbiAgICAnLS1yZXRyeS1lcnJvcnMnLFxuICAgICctLXJldHJ5LWVycm9ycy1jb3VudCcsXG4gICAgJzMnLFxuICAgICctLXJldHJ5LWVycm9ycy1qaXR0ZXInLFxuICAgICc1JyxcbiAgICAnLS11cmwtcmV3cml0ZS1zZWFyY2gnLFxuICAgIFN0cmluZy5yYXdgaHR0cHM6Ly93d3dcXC5ucG1qc1xcLmNvbS9wYWNrYWdlL2AsXG4gICAgJy0tdXJsLXJld3JpdGUtcmVwbGFjZScsXG4gICAgJ2h0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLycsXG4gICAgeyBiYXRjaGVkQXJndW1lbnRzOiBtZEZpbGVzIH1cbiAgXSk7XG59XG5cbi8qKlxuICogVGhlIGdpdCBwYXRoc3BlYyBtYXRjaGluZyBldmVyeSBtYXJrZG93biBmaWxlIGluIHRoZSByZXBvc2l0b3J5LCBhdCBhbnkgZGVwdGguXG4gKi9cbmNvbnN0IE1BUktET1dOX1BBVEhTUEVDID0gJyoubWQnO1xuXG4vKipcbiAqIExpc3RzIHRoZSBtYXJrZG93biBmaWxlcyB0byBoYW5kIHRvIGBsaW5raW5hdG9yYC5cbiAqXG4gKiBgbGlua2luYXRvcmAgdGFrZXMgYSBmaWxlIGxpc3QgcmF0aGVyIHRoYW4gYW4gaWdub3JlIGNvbmZpZ3VyYXRpb24sIHNvIHRoZSBnaXRpZ25vcmVkIGZpbGVzIGhhdmUgdG8gYmVcbiAqIGRyb3BwZWQgYmVmb3JlIGl0IGlzIGludm9rZWQuIEdpdCBpdHNlbGYgYW5zd2VycyB0aGF0IChuZXN0ZWQgaWdub3JlIGZpbGVzLCBgIWAgbmVnYXRpb25zIGFuZCBhbGwpOyB0aGVcbiAqIGhhbmQtbWFpbnRhaW5lZCBnbG9iIGV4Y2x1c2lvbnMgYmVsb3cgYXJlIG9ubHkgdGhlIGZhbGxiYWNrIGZvciBhIGNoZWNrb3V0IHdpdGhvdXQgZ2l0LCBhbmQgdGhleSBhcmUgdGhlXG4gKiB2ZXJ5IGxpc3RzIHRoaXMgaW5kaXJlY3Rpb24gZXhpc3RzIHRvIHN0b3AgZnJvbSBkcmlmdGluZy5cbiAqXG4gKiBUaGUgYG5vZGVfbW9kdWxlc2AgZmlsdGVyIGlzIGFwcGxpZWQgdG8gdGhlIGdpdC1kZXJpdmVkIGxpc3QgdG9vLCBhbmQgZGVsaWJlcmF0ZWx5IHNvOiBnaXQgb25seSBza2lwc1xuICogd2hhdCB0aGUgcmVwb3NpdG9yeSBhc2tlZCBpdCB0byBza2lwLCBhbmQgYSByZXBvc2l0b3J5IGNhbiBkZWxpYmVyYXRlbHkgVFJBQ0sgYSB2ZW5kb3JlZCBgbm9kZV9tb2R1bGVzYFxuICogdHJlZS4gVGhhdCBpcyB0aGUgb25lIGV4Y2x1c2lvbiBgLmdpdGlnbm9yZWAgY2Fubm90IGFuc3dlciBcdTIwMTQgc2VlIGBtYXJrZG93bmxpbnQtaWdub3Jlcy50c2AuIEFwcGx5aW5nIGl0XG4gKiBoZXJlIGtlZXBzIGBsaW5raW5hdG9yYCBpbiBzdGVwIHdpdGggdGhlIG1hcmtkb3dubGludCBoYWxmLCB3aGljaCBpZ25vcmVzIHRoZSBzYW1lIHBhdGhzIGJ5IGdsb2IuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBtYXJrZG93biBmaWxlIHBhdGhzLCByZWxhdGl2ZSB0byB0aGUgcm9vdCBmb2xkZXIuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldE1hcmtkb3duRmlsZXMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCBub25JZ25vcmVkRmlsZXMgPSBhd2FpdCBnZXROb25JZ25vcmVkRmlsZXMoeyBwYXR0ZXJuczogW01BUktET1dOX1BBVEhTUEVDXSB9KTtcbiAgaWYgKG5vbklnbm9yZWRGaWxlcykge1xuICAgIHJldHVybiBub25JZ25vcmVkRmlsZXMuZmlsdGVyKChwYXRoKSA9PiAhY2hlY2tJc0luTm9kZU1vZHVsZXMocGF0aCkpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHRvQXJyYXkoZ2xvYihbJyoqLyoubWQnXSwge1xuICAgIGV4Y2x1ZGU6IFtcbiAgICAgICcuZ2l0LyoqJyxcbiAgICAgICdkaXN0LyoqJyxcbiAgICAgIE5PREVfTU9EVUxFU19JR05PUkVfR0xPQlxuICAgIF1cbiAgfSkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFzQkEs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
@@ -158,6 +158,8 @@ __export(nano_staged_config_exports, {
158
158
  module.exports = __toCommonJS(nano_staged_config_exports);
159
159
  var import_node_process = __toESM(__extractDefault(require('node:process')), 1);
160
160
  var import_env_toggle = require('./env-toggle.cjs');
161
+ var import_package_manager = require('./package-manager.cjs');
162
+ const PACKAGE_MANAGER_RUN_COMMAND = (0, import_package_manager.getPackageManagerRunCommand)().join(" ");
161
163
  const obsidianDevUtilsConfig = {
162
164
  /*
163
165
  * Lint everything except the `templates/` consumer templates: ESLint globally ignores them, and
@@ -166,16 +168,16 @@ const obsidianDevUtilsConfig = {
166
168
  * `templates`. Formatting and spellchecking still cover `templates/` via the entries above and below.
167
169
  */
168
170
  "!(templates)*.{ts,tsx,mts}": [
169
- "npm run lint:fix --"
171
+ `${PACKAGE_MANAGER_RUN_COMMAND} lint:fix --`
170
172
  ],
171
173
  "*": [
172
- "npm run spellcheck --"
174
+ `${PACKAGE_MANAGER_RUN_COMMAND} spellcheck --`
173
175
  ],
174
176
  "*.{ts,tsx,mts}": [
175
- "npm run format --"
177
+ `${PACKAGE_MANAGER_RUN_COMMAND} format --`
176
178
  ],
177
179
  "*.md": [
178
- "npm run lint:md:fix --"
180
+ `${PACKAGE_MANAGER_RUN_COMMAND} lint:md:fix --`
179
181
  ]
180
182
  };
181
183
  const NANO_STAGED_ENV_VARIABLE = "NANO_STAGED";
@@ -193,4 +195,4 @@ function getNanoStagedConfig() {
193
195
  getNanoStagedConfig,
194
196
  obsidianDevUtilsConfig
195
197
  });
196
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9uYW5vLXN0YWdlZC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiBmb3IgcHJlLWNvbW1pdCBob29rcy5cbiAqL1xuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQge1xuICBpc0VudlZhcmlhYmxlT2ZmLFxuICBsb2FkRW52RmlsZUlmRXhpc3RzXG59IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5cbi8qKlxuICogTmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiB0aGF0IHJ1bnMgZmlsZS1iYXNlZCBsaW50LCBmb3JtYXQsIGFuZCBzcGVsbGNoZWNrIG9uIHN0YWdlZCBmaWxlcy5cbiAqXG4gKiBPbmx5IGluY2x1ZGVzIHRvb2xzIHRoYXQgY2FuIG9wZXJhdGUgb24gaW5kaXZpZHVhbCBmaWxlcy4gV2hvbGUtcHJvamVjdCBjaGVja3NcbiAqIChUeXBlU2NyaXB0IGNvbXBpbGF0aW9uLCB1bml0IHRlc3RzKSBhcmUgbGVmdCB0byBDSS5cbiAqXG4gKiBDb21tYW5kcyB1c2UgYG5wbSBydW4gLi4uIC0tYCBzbyBuYW5vLXN0YWdlZCBmaWxlIHBhdGhzIGFyZSBmb3J3YXJkZWQgYXMgQ0xJIGFyZ3VtZW50cy5cbiAqL1xuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNDb25maWc6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHtcbiAgLypcbiAgICogTGludCBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgYHRlbXBsYXRlcy9gIGNvbnN1bWVyIHRlbXBsYXRlczogRVNMaW50IGdsb2JhbGx5IGlnbm9yZXMgdGhlbSwgYW5kXG4gICAqIHRoZXkgc2hpcCB0aGVpciBvd24gY29uc3VtZXItZmFjaW5nIGNvbmZpZy9zY3JpcHRzIHRoYXQgY2Fubm90IHJlc29sdmUgaW4tcmVwbywgc28gcGFzc2luZyBvbmVcbiAgICogYnkgZXhwbGljaXQgcGF0aCBlcnJvcnMgb3V0LiBUaGUgYCEodGVtcGxhdGVzKWAgbmVnYXRpb24gZHJvcHMgYW55IHBhdGggdGhhdCBiZWdpbnMgd2l0aFxuICAgKiBgdGVtcGxhdGVzYC4gRm9ybWF0dGluZyBhbmQgc3BlbGxjaGVja2luZyBzdGlsbCBjb3ZlciBgdGVtcGxhdGVzL2AgdmlhIHRoZSBlbnRyaWVzIGFib3ZlIGFuZCBiZWxvdy5cbiAgICovXG4gICchKHRlbXBsYXRlcykqLnt0cyx0c3gsbXRzfSc6IFtcbiAgICAnbnBtIHJ1biBsaW50OmZpeCAtLSdcbiAgXSxcbiAgJyonOiBbXG4gICAgJ25wbSBydW4gc3BlbGxjaGVjayAtLSdcbiAgXSxcbiAgJyoue3RzLHRzeCxtdHN9JzogW1xuICAgICducG0gcnVuIGZvcm1hdCAtLSdcbiAgXSxcbiAgJyoubWQnOiBbXG4gICAgJ25wbSBydW4gbGludDptZDpmaXggLS0nXG4gIF1cbn07XG5cbmNvbnN0IE5BTk9fU1RBR0VEX0VOVl9WQVJJQUJMRSA9ICdOQU5PX1NUQUdFRCc7XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIG5hbm8tc3RhZ2VkIGNvbmZpZ3VyYXRpb24gdG8gdXNlLCBob25vcmluZyBhIHBlci1kZXZlbG9wZXIgb3B0LW91dC5cbiAqXG4gKiBMb2FkcyBhIGdpdGlnbm9yZWQgYC5lbnZgIGlmIHByZXNlbnQsIHRoZW4gXHUyMDE0IHdoZW4gYE5BTk9fU1RBR0VEYCBpcyBzZXQgdG8gYW4gb2ZmIHZhbHVlIChgMGAsIGBmYWxzZWAsXG4gKiBgb2ZmYCwgb3IgYG5vYCkgXHUyMDE0IHByaW50cyBhIG5vdGljZSBhbmQgZXhpdHMgdGhlIHByb2Nlc3Mgc3VjY2Vzc2Z1bGx5IHNvIHRoZSBwcmUtY29tbWl0IGNoZWNrcyBhcmVcbiAqIHNraXBwZWQuIFRoaXMgbWlycm9ycyBodXNreSdzIG93biBgSFVTS1k9MGAgc3dpdGNoLCBidXQgc2NvcGVkIHRvIHRoZSBuYW5vLXN0YWdlZCBzdGVwIChzbyB0aGVcbiAqIGNvbW1pdC1tc2cgaG9vayBzdGlsbCBydW5zKS4gT3RoZXJ3aXNlIGl0IHJldHVybnMge0BsaW5rIG9ic2lkaWFuRGV2VXRpbHNDb25maWd9LlxuICpcbiAqIGBOQU5PX1NUQUdFRGAgaXMgbm90IGFuIG5wbSBzY3JpcHQsIHNvIGl0IGNhcnJpZXMgaXRzIG93biBzd2l0Y2ggcmF0aGVyIHRoYW4gdGhlIHNjcmlwdC1uYW1lLWRlcml2ZWQgb25lXG4gKiBldmVyeSBucG0gc2NyaXB0IGdldHMgXHUyMDE0IGJ1dCBib3RoIHNoYXJlIHRoZSBzYW1lIG5vdGlvbiBvZiBhbiBvZmYgdmFsdWUsIHZpYSB7QGxpbmsgaXNFbnZWYXJpYWJsZU9mZn0uXG4gKlxuICogVGhpcyBpcyBhIGZ1bmN0aW9uIHJhdGhlciB0aGFuIG1vZHVsZS1sZXZlbCBjb2RlIHNvIGltcG9ydGluZyB0aGUgcGFja2FnZSBiYXJyZWwgbmV2ZXIgdHJpZ2dlcnMgdGhlXG4gKiBgLmVudmAgcmVhZCBvciB0aGUgcHJvY2VzcyBleGl0OyBjYWxsIGl0IGZyb20gdGhlIHRoaW4gYHNjcmlwdHMvbmFuby1zdGFnZWQtY29uZmlnLnRzYCBlbnRyeS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbmFuby1zdGFnZWQgdGFzayBjb25maWd1cmF0aW9uLiBEb2VzIG5vdCByZXR1cm4gd2hlbiB0aGUgb3B0LW91dCBpcyBhY3RpdmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROYW5vU3RhZ2VkQ29uZmlnKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB7XG4gIGxvYWRFbnZGaWxlSWZFeGlzdHMoKTtcblxuICBpZiAoaXNFbnZWYXJpYWJsZU9mZihOQU5PX1NUQUdFRF9FTlZfVkFSSUFCTEUpKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYG5hbm8tc3RhZ2VkOiBza2lwcGVkICgke05BTk9fU1RBR0VEX0VOVl9WQVJJQUJMRX0gaXMgb2ZmKS5cXG5gKTtcbiAgICBwcm9jZXNzLmV4aXQoMCk7XG4gIH1cblxuICByZXR1cm4gb2JzaWRpYW5EZXZVdGlsc0NvbmZpZztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsMEJBQW9CO0FBRXBCLHdCQUdPO0FBVUEsTUFBTSx5QkFBbUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU85RCw4QkFBOEI7QUFBQSxJQUM1QjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLEtBQUs7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUFBLEVBQ0Esa0JBQWtCO0FBQUEsSUFDaEI7QUFBQSxFQUNGO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLE1BQU0sMkJBQTJCO0FBa0IxQixTQUFTLHNCQUFnRDtBQUM5RCw2Q0FBb0I7QUFFcEIsVUFBSSxvQ0FBaUIsd0JBQXdCLEdBQUc7QUFDOUMsd0JBQUFBLFFBQVEsT0FBTyxNQUFNLHlCQUF5Qix3QkFBd0I7QUFBQSxDQUFhO0FBQ25GLHdCQUFBQSxRQUFRLEtBQUssQ0FBQztBQUFBLEVBQ2hCO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIl0KfQo=
198
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9uYW5vLXN0YWdlZC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiBmb3IgcHJlLWNvbW1pdCBob29rcy5cbiAqL1xuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQge1xuICBpc0VudlZhcmlhYmxlT2ZmLFxuICBsb2FkRW52RmlsZUlmRXhpc3RzXG59IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5pbXBvcnQgeyBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQgfSBmcm9tICcuL3BhY2thZ2UtbWFuYWdlci50cyc7XG5cbi8qKlxuICogVGhlIGA8bWFuYWdlcj4gcnVuYCBwcmVmaXggZXZlcnkgdGFzayBiZWxvdyBpcyBidWlsdCBvbiwgcmVzb2x2ZWQgb25jZSBmb3IgdGhlIHByb2Nlc3MuXG4gKlxuICogRGV0ZWN0aW9uIHByb2JlcyBmb3IgYSBsb2NrZmlsZSBiZXNpZGUgYHBhY2thZ2UuanNvbmAsIHNvIGl0IGlzIGEgaGFuZGZ1bCBvZiBgZXhpc3RzU3luY2AgY2FsbHMgYW5kXG4gKiBub3RoaW5nIG1vcmUgXHUyMDE0IG5vIGAuZW52YCByZWFkIGFuZCBubyBgcHJvY2Vzcy5leGl0YCwgd2hpY2ggaXMgd2hhdCBsZXRzIGl0IHNpdCBhdCBtb2R1bGUgc2NvcGUuXG4gKi9cbmNvbnN0IFBBQ0tBR0VfTUFOQUdFUl9SVU5fQ09NTUFORCA9IGdldFBhY2thZ2VNYW5hZ2VyUnVuQ29tbWFuZCgpLmpvaW4oJyAnKTtcblxuLyoqXG4gKiBOYW5vLXN0YWdlZCBjb25maWd1cmF0aW9uIHRoYXQgcnVucyBmaWxlLWJhc2VkIGxpbnQsIGZvcm1hdCwgYW5kIHNwZWxsY2hlY2sgb24gc3RhZ2VkIGZpbGVzLlxuICpcbiAqIE9ubHkgaW5jbHVkZXMgdG9vbHMgdGhhdCBjYW4gb3BlcmF0ZSBvbiBpbmRpdmlkdWFsIGZpbGVzLiBXaG9sZS1wcm9qZWN0IGNoZWNrc1xuICogKFR5cGVTY3JpcHQgY29tcGlsYXRpb24sIHVuaXQgdGVzdHMpIGFyZSBsZWZ0IHRvIENJLlxuICpcbiAqIENvbW1hbmRzIHJ1biB0aHJvdWdoIHRoZSBwYWNrYWdlIG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0cmVlIFx1MjAxNCBgbnBtIHJ1biAuLi4gLS1gLCBgYnVuIHJ1biAuLi4gLS1gLCBhbmRcbiAqIHNvIG9uIFx1MjAxNCBzbyBuYW5vLXN0YWdlZCBmaWxlIHBhdGhzIGFyZSBmb3J3YXJkZWQgYXMgQ0xJIGFyZ3VtZW50cy5cbiAqL1xuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNDb25maWc6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHtcbiAgLypcbiAgICogTGludCBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgYHRlbXBsYXRlcy9gIGNvbnN1bWVyIHRlbXBsYXRlczogRVNMaW50IGdsb2JhbGx5IGlnbm9yZXMgdGhlbSwgYW5kXG4gICAqIHRoZXkgc2hpcCB0aGVpciBvd24gY29uc3VtZXItZmFjaW5nIGNvbmZpZy9zY3JpcHRzIHRoYXQgY2Fubm90IHJlc29sdmUgaW4tcmVwbywgc28gcGFzc2luZyBvbmVcbiAgICogYnkgZXhwbGljaXQgcGF0aCBlcnJvcnMgb3V0LiBUaGUgYCEodGVtcGxhdGVzKWAgbmVnYXRpb24gZHJvcHMgYW55IHBhdGggdGhhdCBiZWdpbnMgd2l0aFxuICAgKiBgdGVtcGxhdGVzYC4gRm9ybWF0dGluZyBhbmQgc3BlbGxjaGVja2luZyBzdGlsbCBjb3ZlciBgdGVtcGxhdGVzL2AgdmlhIHRoZSBlbnRyaWVzIGFib3ZlIGFuZCBiZWxvdy5cbiAgICovXG4gICchKHRlbXBsYXRlcykqLnt0cyx0c3gsbXRzfSc6IFtcbiAgICBgJHtQQUNLQUdFX01BTkFHRVJfUlVOX0NPTU1BTkR9IGxpbnQ6Zml4IC0tYFxuICBdLFxuICAnKic6IFtcbiAgICBgJHtQQUNLQUdFX01BTkFHRVJfUlVOX0NPTU1BTkR9IHNwZWxsY2hlY2sgLS1gXG4gIF0sXG4gICcqLnt0cyx0c3gsbXRzfSc6IFtcbiAgICBgJHtQQUNLQUdFX01BTkFHRVJfUlVOX0NPTU1BTkR9IGZvcm1hdCAtLWBcbiAgXSxcbiAgJyoubWQnOiBbXG4gICAgYCR7UEFDS0FHRV9NQU5BR0VSX1JVTl9DT01NQU5EfSBsaW50Om1kOmZpeCAtLWBcbiAgXVxufTtcblxuY29uc3QgTkFOT19TVEFHRURfRU5WX1ZBUklBQkxFID0gJ05BTk9fU1RBR0VEJztcblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiB0byB1c2UsIGhvbm9yaW5nIGEgcGVyLWRldmVsb3BlciBvcHQtb3V0LlxuICpcbiAqIExvYWRzIGEgZ2l0aWdub3JlZCBgLmVudmAgaWYgcHJlc2VudCwgdGhlbiBcdTIwMTQgd2hlbiBgTkFOT19TVEFHRURgIGlzIHNldCB0byBhbiBvZmYgdmFsdWUgKGAwYCwgYGZhbHNlYCxcbiAqIGBvZmZgLCBvciBgbm9gKSBcdTIwMTQgcHJpbnRzIGEgbm90aWNlIGFuZCBleGl0cyB0aGUgcHJvY2VzcyBzdWNjZXNzZnVsbHkgc28gdGhlIHByZS1jb21taXQgY2hlY2tzIGFyZVxuICogc2tpcHBlZC4gVGhpcyBtaXJyb3JzIGh1c2t5J3Mgb3duIGBIVVNLWT0wYCBzd2l0Y2gsIGJ1dCBzY29wZWQgdG8gdGhlIG5hbm8tc3RhZ2VkIHN0ZXAgKHNvIHRoZVxuICogY29tbWl0LW1zZyBob29rIHN0aWxsIHJ1bnMpLiBPdGhlcndpc2UgaXQgcmV0dXJucyB7QGxpbmsgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZ30uXG4gKlxuICogYE5BTk9fU1RBR0VEYCBpcyBub3QgYW4gbnBtIHNjcmlwdCwgc28gaXQgY2FycmllcyBpdHMgb3duIHN3aXRjaCByYXRoZXIgdGhhbiB0aGUgc2NyaXB0LW5hbWUtZGVyaXZlZCBvbmVcbiAqIGV2ZXJ5IG5wbSBzY3JpcHQgZ2V0cyBcdTIwMTQgYnV0IGJvdGggc2hhcmUgdGhlIHNhbWUgbm90aW9uIG9mIGFuIG9mZiB2YWx1ZSwgdmlhIHtAbGluayBpc0VudlZhcmlhYmxlT2ZmfS5cbiAqXG4gKiBUaGlzIGlzIGEgZnVuY3Rpb24gcmF0aGVyIHRoYW4gbW9kdWxlLWxldmVsIGNvZGUgc28gaW1wb3J0aW5nIHRoZSBwYWNrYWdlIGJhcnJlbCBuZXZlciB0cmlnZ2VycyB0aGVcbiAqIGAuZW52YCByZWFkIG9yIHRoZSBwcm9jZXNzIGV4aXQ7IGNhbGwgaXQgZnJvbSB0aGUgdGhpbiBgc2NyaXB0cy9uYW5vLXN0YWdlZC1jb25maWcudHNgIGVudHJ5LiBSZXNvbHZpbmcgdGhlXG4gKiBwYWNrYWdlIG1hbmFnZXIgaXMgdGhlIG9uZSB0aGluZyB0aGF0IGRvZXMgcnVuIGF0IG1vZHVsZSBzY29wZSwgYW5kIGl0IGRvZXMgbmVpdGhlciBvZiB0aG9zZSB0d29cbiAqIHRoaW5ncyBcdTIwMTQgaXQgb25seSBwcm9iZXMgZm9yIGEgbG9ja2ZpbGUuXG4gKlxuICogQHJldHVybnMgVGhlIG5hbm8tc3RhZ2VkIHRhc2sgY29uZmlndXJhdGlvbi4gRG9lcyBub3QgcmV0dXJuIHdoZW4gdGhlIG9wdC1vdXQgaXMgYWN0aXZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFub1N0YWdlZENvbmZpZygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuICBsb2FkRW52RmlsZUlmRXhpc3RzKCk7XG5cbiAgaWYgKGlzRW52VmFyaWFibGVPZmYoTkFOT19TVEFHRURfRU5WX1ZBUklBQkxFKSkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBuYW5vLXN0YWdlZDogc2tpcHBlZCAoJHtOQU5PX1NUQUdFRF9FTlZfVkFSSUFCTEV9IGlzIG9mZikuXFxuYCk7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9XG5cbiAgcmV0dXJuIG9ic2lkaWFuRGV2VXRpbHNDb25maWc7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLDBCQUFvQjtBQUVwQix3QkFHTztBQUNQLDZCQUE0QztBQVE1QyxNQUFNLGtDQUE4QixvREFBNEIsRUFBRSxLQUFLLEdBQUc7QUFXbkUsTUFBTSx5QkFBbUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU85RCw4QkFBOEI7QUFBQSxJQUM1QixHQUFHLDJCQUEyQjtBQUFBLEVBQ2hDO0FBQUEsRUFDQSxLQUFLO0FBQUEsSUFDSCxHQUFHLDJCQUEyQjtBQUFBLEVBQ2hDO0FBQUEsRUFDQSxrQkFBa0I7QUFBQSxJQUNoQixHQUFHLDJCQUEyQjtBQUFBLEVBQ2hDO0FBQUEsRUFDQSxRQUFRO0FBQUEsSUFDTixHQUFHLDJCQUEyQjtBQUFBLEVBQ2hDO0FBQ0Y7QUFFQSxNQUFNLDJCQUEyQjtBQW9CMUIsU0FBUyxzQkFBZ0Q7QUFDOUQsNkNBQW9CO0FBRXBCLFVBQUksb0NBQWlCLHdCQUF3QixHQUFHO0FBQzlDLHdCQUFBQSxRQUFRLE9BQU8sTUFBTSx5QkFBeUIsd0JBQXdCO0FBQUEsQ0FBYTtBQUNuRix3QkFBQUEsUUFBUSxLQUFLLENBQUM7QUFBQSxFQUNoQjtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFsicHJvY2VzcyJdCn0K
@@ -10,7 +10,8 @@
10
10
  * Only includes tools that can operate on individual files. Whole-project checks
11
11
  * (TypeScript compilation, unit tests) are left to CI.
12
12
  *
13
- * Commands use `npm run ... --` so nano-staged file paths are forwarded as CLI arguments.
13
+ * Commands run through the package manager that owns the tree — `npm run ... --`, `bun run ... --`, and
14
+ * so on — so nano-staged file paths are forwarded as CLI arguments.
14
15
  */
15
16
  export declare const obsidianDevUtilsConfig: Record<string, string[]>;
16
17
  /**
@@ -25,7 +26,9 @@ export declare const obsidianDevUtilsConfig: Record<string, string[]>;
25
26
  * every npm script gets — but both share the same notion of an off value, via {@link isEnvVariableOff}.
26
27
  *
27
28
  * This is a function rather than module-level code so importing the package barrel never triggers the
28
- * `.env` read or the process exit; call it from the thin `scripts/nano-staged-config.ts` entry.
29
+ * `.env` read or the process exit; call it from the thin `scripts/nano-staged-config.ts` entry. Resolving the
30
+ * package manager is the one thing that does run at module scope, and it does neither of those two
31
+ * things — it only probes for a lockfile.
29
32
  *
30
33
  * @returns The nano-staged task configuration. Does not return when the opt-out is active.
31
34
  */