obsidian-dev-utils 52.1.1 → 52.3.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 (33) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/lib/cjs/library.cjs +1 -1
  3. package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.cjs +2 -2
  4. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +13 -4
  5. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +12 -6
  6. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +3 -1
  7. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +217 -0
  8. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +3 -0
  9. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +180 -0
  10. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +13 -0
  11. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +5 -3
  12. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +135 -0
  13. package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.d.cts +17 -0
  14. package/dist/lib/esm/library.mjs +1 -1
  15. package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.mjs +2 -2
  16. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +13 -4
  17. package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +3 -1
  18. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +8 -4
  19. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +3 -0
  20. package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +117 -0
  21. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +13 -0
  22. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +73 -0
  23. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +5 -3
  24. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.d.mts +17 -0
  25. package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +29 -0
  26. package/package.json +5 -2
  27. package/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return/package.json +6 -0
  28. package/script-utils/linters/eslint-rules/no-used-underscore-variables/package.json +6 -0
  29. package/script-utils/linters/eslint-rules/{no-used-underscore-params → rule-tester-helper}/package.json +3 -3
  30. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.cjs +0 -174
  31. package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.d.cts +0 -12
  32. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.d.mts +0 -12
  33. package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.mjs +0 -68
@@ -0,0 +1,217 @@
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 initCjs() {
7
+ const globalThisRecord = globalThis;
8
+ globalThisRecord['__name'] ??= name;
9
+ const originalRequire = require;
10
+ if (originalRequire && !originalRequire.__isPatched) {
11
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
12
+ require = Object.assign(
13
+ (id) => requirePatched(id),
14
+ originalRequire,
15
+ {
16
+ __isPatched: true
17
+ }
18
+ );
19
+ }
20
+
21
+ const newFuncs = {
22
+ __extractDefault() {
23
+ return extractDefault;
24
+ },
25
+ process() {
26
+ const browserProcess = {
27
+ browser: true,
28
+ cwd() {
29
+ return '/';
30
+ },
31
+ env: {},
32
+ platform: 'android'
33
+ };
34
+ return browserProcess;
35
+ }
36
+ };
37
+
38
+ for (const key of Object.keys(newFuncs)) {
39
+ globalThisRecord[key] ??= newFuncs[key]?.();
40
+ }
41
+
42
+ function name(obj) {
43
+ return obj;
44
+ }
45
+
46
+ function extractDefault(module) {
47
+ return module && module.__esModule && 'default' in module ? module.default : module;
48
+ }
49
+
50
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
51
+ 'obsidian',
52
+ '@codemirror/autocomplete',
53
+ '@codemirror/collab',
54
+ '@codemirror/commands',
55
+ '@codemirror/language',
56
+ '@codemirror/lint',
57
+ '@codemirror/search',
58
+ '@codemirror/state',
59
+ '@codemirror/text',
60
+ '@codemirror/view',
61
+ '@lezer/common',
62
+ '@lezer/lr',
63
+ '@lezer/highlight'];
64
+
65
+
66
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
67
+ '@codemirror/closebrackets',
68
+ '@codemirror/comment',
69
+ '@codemirror/fold',
70
+ '@codemirror/gutter',
71
+ '@codemirror/highlight',
72
+ '@codemirror/history',
73
+ '@codemirror/matchbrackets',
74
+ '@codemirror/panel',
75
+ '@codemirror/rangeset',
76
+ '@codemirror/rectangular-selection',
77
+ '@codemirror/stream-parser',
78
+ '@codemirror/tooltip'];
79
+
80
+
81
+ function requirePatched(id) {
82
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
83
+ return originalRequire?.(id);
84
+ }
85
+
86
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
87
+ if (globalThis?.app?.isMobile) {
88
+ if (id === 'process' || id === 'node:process') {
89
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
90
+ return globalThis.process;
91
+ }
92
+ } else {
93
+ const module = originalRequire?.(id);
94
+ if (module) {
95
+ return extractDefault(module);
96
+ }
97
+ }
98
+
99
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
+ return {};
101
+ }
102
+ })();
103
+
104
+ "use strict";
105
+ var __defProp = Object.defineProperty;
106
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
+ var __getOwnPropNames = Object.getOwnPropertyNames;
108
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
109
+ var __export = (target, all) => {
110
+ for (var name in all)
111
+ __defProp(target, name, { get: all[name], enumerable: true });
112
+ };
113
+ var __copyProps = (to, from, except, desc) => {
114
+ if (from && typeof from === "object" || typeof from === "function") {
115
+ for (let key of __getOwnPropNames(from))
116
+ if (!__hasOwnProp.call(to, key) && key !== except)
117
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
+ }
119
+ return to;
120
+ };
121
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
+ var no_async_callback_to_unsafe_return_exports = {};
123
+ __export(no_async_callback_to_unsafe_return_exports, {
124
+ MESSAGE_ID: () => MESSAGE_ID,
125
+ noAsyncCallbackToUnsafeReturn: () => noAsyncCallbackToUnsafeReturn
126
+ });
127
+ module.exports = __toCommonJS(no_async_callback_to_unsafe_return_exports);
128
+ var import_typescript = require('typescript');
129
+ var import_type_guards = require('../../../type-guards.cjs');
130
+ const MESSAGE_ID = "noAsyncCallbackToUnsafeReturn";
131
+ function hasUnsafeReturnCallSignature(checker, type) {
132
+ return type.getCallSignatures().some((sig) => isUnsafeReturnSignature(checker, sig));
133
+ }
134
+ function isAsyncFunctionNode(node) {
135
+ return (node.type === "ArrowFunctionExpression" || node.type === "FunctionExpression") && node.async;
136
+ }
137
+ const UNSAFE_RETURN_FLAGS = import_typescript.TypeFlags.Any | import_typescript.TypeFlags.Unknown;
138
+ const PROMISE_TYPE_NAMES = /* @__PURE__ */ new Set(["Promise", "PromiseLike"]);
139
+ function containsPromiseReference(checker, node) {
140
+ if ((0, import_typescript.isUnionTypeNode)(node)) {
141
+ return node.types.some((member) => containsPromiseReference(checker, member));
142
+ }
143
+ if ((0, import_typescript.isTypeReferenceNode)(node)) {
144
+ const name = (0, import_typescript.isIdentifier)(node.typeName) ? node.typeName.text : "";
145
+ if (PROMISE_TYPE_NAMES.has(name)) {
146
+ return true;
147
+ }
148
+ let symbol = checker.getSymbolAtLocation(node.typeName);
149
+ if (symbol && symbol.flags & import_typescript.SymbolFlags.Alias) {
150
+ symbol = checker.getAliasedSymbol(symbol);
151
+ }
152
+ const decl = symbol?.declarations?.[0];
153
+ if (decl && (0, import_typescript.isTypeAliasDeclaration)(decl)) {
154
+ return containsPromiseReference(checker, decl.type);
155
+ }
156
+ }
157
+ return false;
158
+ }
159
+ function isUnsafeReturnSignature(checker, sig) {
160
+ const returnType = checker.getReturnTypeOfSignature(sig);
161
+ if (!(returnType.flags & UNSAFE_RETURN_FLAGS)) {
162
+ return false;
163
+ }
164
+ const decl = sig.getDeclaration();
165
+ const returnTypeNode = decl.type;
166
+ (0, import_type_guards.assertNonNullable)(returnTypeNode, "Signature declarations with any/unknown return always have a return type annotation");
167
+ return !containsPromiseReference(checker, returnTypeNode);
168
+ }
169
+ const noAsyncCallbackToUnsafeReturn = {
170
+ create(context) {
171
+ const services = context.sourceCode.parserServices;
172
+ const checker = services.program.getTypeChecker();
173
+ return {
174
+ CallExpression(node) {
175
+ const callNode = node;
176
+ for (let i = 0; i < callNode.arguments.length; i++) {
177
+ const arg = callNode.arguments[i];
178
+ if (!arg || !isAsyncFunctionNode(arg)) {
179
+ continue;
180
+ }
181
+ const tsCalleeNode = services.esTreeNodeToTSNodeMap.get(callNode.callee);
182
+ const calleeType = checker.getTypeAtLocation(tsCalleeNode);
183
+ for (const sig of calleeType.getCallSignatures()) {
184
+ const param = sig.getParameters()[i];
185
+ if (!param) {
186
+ continue;
187
+ }
188
+ const paramType = checker.getTypeOfSymbol(param);
189
+ if (hasUnsafeReturnCallSignature(checker, paramType)) {
190
+ context.report({
191
+ messageId: MESSAGE_ID,
192
+ node: arg
193
+ });
194
+ break;
195
+ }
196
+ }
197
+ }
198
+ }
199
+ };
200
+ },
201
+ meta: {
202
+ docs: {
203
+ description: "Disallow passing async functions as callbacks to parameters with `any` or `unknown` return type"
204
+ },
205
+ messages: {
206
+ [MESSAGE_ID]: "Async function passed as callback to a parameter with `any`/`unknown` return type. This may cause unhandled promise rejections. Wrap the call: `(...args) => { yourAsyncFn(...args); }`."
207
+ },
208
+ schema: [],
209
+ type: "problem"
210
+ }
211
+ };
212
+ // Annotate the CommonJS export names for ESM import in node:
213
+ 0 && (module.exports = {
214
+ MESSAGE_ID,
215
+ noAsyncCallbackToUnsafeReturn
216
+ });
217
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBydWxlOiBuby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGFuIGFzeW5jIGZ1bmN0aW9uIGlzIHBhc3NlZCBhcyBhIGNhbGxiYWNrIGFyZ3VtZW50XG4gKiB0byBhIGZ1bmN0aW9uIHBhcmFtZXRlciB3aG9zZSByZXR1cm4gdHlwZSBpcyBgYW55YCBvciBgdW5rbm93bmAuIEJlY2F1c2VcbiAqIHRoZXNlIHR5cGVzIHNpbGVudGx5IGFjY2VwdCBgUHJvbWlzZTxUPmAsIHRoZSBjYWxsZXIgd29uJ3QgYXdhaXQgdGhlXG4gKiByZXN1bHQsIGxlYWRpbmcgdG8gdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9ucyBhdCBydW50aW1lLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBvbkNsaWNrKGZuOiAoZXZ0OiBNb3VzZUV2ZW50KSA9PiBhbnkpXG4gKiBidXR0b24ub25DbGljayhhc3luYyAoKSA9PiB7XG4gKiAgIGF3YWl0IHNvbWVGbigpOyAvLyBVbmhhbmRsZWQgcmVqZWN0aW9uIGlmIHNvbWVGbiB0aHJvd3NcbiAqIH0pO1xuICogYGBgXG4gKlxuICogYEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzYCBvbmx5IGNhdGNoZXMgYD0+IHZvaWRgIGNhbGxiYWNrcy5cbiAqIFRoaXMgcnVsZSBjbG9zZXMgdGhlIGdhcCBmb3IgYD0+IGFueWAgYW5kIGA9PiB1bmtub3duYCBjYWxsYmFja3MuXG4gKi9cbmltcG9ydCB0eXBlIHtcbiAgUGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uLFxuICBUU0VTVHJlZVxufSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcbmltcG9ydCB0eXBlIHtcbiAgU2lnbmF0dXJlLFxuICBUeXBlLFxuICBUeXBlQ2hlY2tlcixcbiAgVHlwZU5vZGVcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7XG4gIGlzSWRlbnRpZmllcixcbiAgaXNUeXBlQWxpYXNEZWNsYXJhdGlvbixcbiAgaXNUeXBlUmVmZXJlbmNlTm9kZSxcbiAgaXNVbmlvblR5cGVOb2RlLFxuICBTeW1ib2xGbGFncyxcbiAgVHlwZUZsYWdzXG59IGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAnbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm4nO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBUeXBlU2NyaXB0IHR5cGUgaXMgYSBmdW5jdGlvbiB0eXBlIHdpdGggYW4gdW5zYWZlXG4gKiByZXR1cm4gdHlwZSBmb3IgYXN5bmMgY2FsbGJhY2tzLlxuICpcbiAqIEBwYXJhbSBjaGVja2VyIC0gVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHR5cGUgaGFzIGF0IGxlYXN0IG9uZSBjYWxsIHNpZ25hdHVyZSB3aXRoIGFuIHVuc2FmZSByZXR1cm4uXG4gKi9cbmZ1bmN0aW9uIGhhc1Vuc2FmZVJldHVybkNhbGxTaWduYXR1cmUoY2hlY2tlcjogVHlwZUNoZWNrZXIsIHR5cGU6IFR5cGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGUuZ2V0Q2FsbFNpZ25hdHVyZXMoKS5zb21lKChzaWcpID0+IGlzVW5zYWZlUmV0dXJuU2lnbmF0dXJlKGNoZWNrZXIsIHNpZykpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbm9kZSBpcyBhbiBhc3luYyBmdW5jdGlvbiBleHByZXNzaW9uIChhcnJvdyBvciByZWd1bGFyKS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIEFTVCBub2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGFuIGFzeW5jIGFycm93IG9yIGZ1bmN0aW9uIGV4cHJlc3Npb24uXG4gKi9cbmZ1bmN0aW9uIGlzQXN5bmNGdW5jdGlvbk5vZGUobm9kZTogVFNFU1RyZWUuTm9kZSk6IG5vZGUgaXMgVFNFU1RyZWUuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24gfCBUU0VTVHJlZS5GdW5jdGlvbkV4cHJlc3Npb24ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLlxuICByZXR1cm4gKG5vZGUudHlwZSA9PT0gJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyB8fCBub2RlLnR5cGUgPT09ICdGdW5jdGlvbkV4cHJlc3Npb24nKSAmJiBub2RlLmFzeW5jO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBCaXR3aXNlIGZsYWcgbWFzayBpcyBpZGlvbWF0aWMgZm9yIFR5cGVTY3JpcHQgY29tcGlsZXIgQVBJLlxuY29uc3QgVU5TQUZFX1JFVFVSTl9GTEFHUyA9IFR5cGVGbGFncy5BbnkgfCBUeXBlRmxhZ3MuVW5rbm93bjtcblxuY29uc3QgUFJPTUlTRV9UWVBFX05BTUVTID0gbmV3IFNldChbJ1Byb21pc2UnLCAnUHJvbWlzZUxpa2UnXSk7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB0eXBlIG5vZGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gYFByb21pc2VgIG9yIGBQcm9taXNlTGlrZWAsXG4gKiBlaXRoZXIgZGlyZWN0bHkgb3IgdGhyb3VnaCBhIHR5cGUgYWxpYXMuIFRoaXMgaW5kaWNhdGVzIHRoZSBjYWxsZXIgZXhwbGljaXRseVxuICogYWNjb3VudHMgZm9yIHByb21pc2UgcmV0dXJucy5cbiAqXG4gKiBAcGFyYW0gY2hlY2tlciAtIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHBhcmFtIG5vZGUgLSBUaGUgdHlwZSBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgcmVmZXJlbmNlcyBgUHJvbWlzZWAgb3IgYFByb21pc2VMaWtlYC5cbiAqL1xuZnVuY3Rpb24gY29udGFpbnNQcm9taXNlUmVmZXJlbmNlKGNoZWNrZXI6IFR5cGVDaGVja2VyLCBub2RlOiBUeXBlTm9kZSk6IGJvb2xlYW4ge1xuICBpZiAoaXNVbmlvblR5cGVOb2RlKG5vZGUpKSB7XG4gICAgcmV0dXJuIG5vZGUudHlwZXMuc29tZSgobWVtYmVyKSA9PiBjb250YWluc1Byb21pc2VSZWZlcmVuY2UoY2hlY2tlciwgbWVtYmVyKSk7XG4gIH1cblxuICBpZiAoaXNUeXBlUmVmZXJlbmNlTm9kZShub2RlKSkge1xuICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBRdWFsaWZpZWQgbmFtZXMgKGUuZy4sIG5zLlByb21pc2UpIGFuZCBpbXBvcnQgYWxpYXNlcyByZXF1aXJlIG11bHRpLWZpbGUgc2V0dXAgbm90IGF2YWlsYWJsZSBpbiBSdWxlVGVzdGVyLiAqL1xuICAgIGNvbnN0IG5hbWUgPSBpc0lkZW50aWZpZXIobm9kZS50eXBlTmFtZSkgPyBub2RlLnR5cGVOYW1lLnRleHQgOiAnJztcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIGlmIChQUk9NSVNFX1RZUEVfTkFNRVMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIHR5cGUgYWxpYXMgKGZvbGxvd2luZyBpbXBvcnRzKSBhbmQgY2hlY2sgaXRzIGRlZmluaXRpb24gYm9keVxuICAgIGxldCBzeW1ib2wgPSBjaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24obm9kZS50eXBlTmFtZSk7XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEltcG9ydCBhbGlhc2VzIHJlcXVpcmUgbXVsdGktZmlsZSBzZXR1cCBub3QgYXZhaWxhYmxlIGluIFJ1bGVUZXN0ZXIuICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2UgLS0gQml0d2lzZSBmbGFnIGNoZWNrIGlzIGlkaW9tYXRpYyBmb3IgVHlwZVNjcmlwdCBjb21waWxlciBBUEkuXG4gICAgaWYgKHN5bWJvbCAmJiBzeW1ib2wuZmxhZ3MgJiBTeW1ib2xGbGFncy5BbGlhcykge1xuICAgICAgc3ltYm9sID0gY2hlY2tlci5nZXRBbGlhc2VkU3ltYm9sKHN5bWJvbCk7XG4gICAgfVxuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY29uc3QgZGVjbCA9IHN5bWJvbD8uZGVjbGFyYXRpb25zPy5bMF07XG4gICAgaWYgKGRlY2wgJiYgaXNUeXBlQWxpYXNEZWNsYXJhdGlvbihkZWNsKSkge1xuICAgICAgcmV0dXJuIGNvbnRhaW5zUHJvbWlzZVJlZmVyZW5jZShjaGVja2VyLCBkZWNsLnR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgc2lnbmF0dXJlIGhhcyBhbiB1bnNhZmUgcmV0dXJuIHR5cGUgKGBhbnlgIG9yIGB1bmtub3duYClcbiAqIHdpdGhvdXQgZXhwbGljaXRseSBhY2NvdW50aW5nIGZvciBwcm9taXNlcy5cbiAqXG4gKiBGbGFncyBiYXJlIGBhbnlgLCBgdW5rbm93bmAsIGFuZCB1bmlvbnMgbGlrZSBgYW55IHwgc3RyaW5nYCB0aGF0IHJlc29sdmUgdG9cbiAqIGBhbnlgL2B1bmtub3duYCB3aXRob3V0IGluY2x1ZGluZyBgUHJvbWlzZWAvYFByb21pc2VMaWtlYC4gRG9lcyBOT1QgZmxhZyB0eXBlXG4gKiBhbGlhc2VzIGxpa2UgYEF3YWl0YWJsZTxUPmAgb3IgdW5pb25zIGxpa2UgYGFueSB8IFByb21pc2U8YW55PmAgdGhhdCBleHBsaWNpdGx5XG4gKiBoYW5kbGUgcHJvbWlzZSByZXR1cm5zLlxuICpcbiAqIEBwYXJhbSBjaGVja2VyIC0gVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gc2lnIC0gVGhlIGNhbGwgc2lnbmF0dXJlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHJldHVybiB0eXBlIGlzIHVuc2FmZSBmb3IgYXN5bmMgY2FsbGJhY2tzLlxuICovXG5mdW5jdGlvbiBpc1Vuc2FmZVJldHVyblNpZ25hdHVyZShjaGVja2VyOiBUeXBlQ2hlY2tlciwgc2lnOiBTaWduYXR1cmUpOiBib29sZWFuIHtcbiAgY29uc3QgcmV0dXJuVHlwZSA9IGNoZWNrZXIuZ2V0UmV0dXJuVHlwZU9mU2lnbmF0dXJlKHNpZyk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2UgLS0gQml0d2lzZSBmbGFnIGNoZWNrIGlzIGlkaW9tYXRpYyBmb3IgVHlwZVNjcmlwdCBjb21waWxlciBBUEkuXG4gIGlmICghKHJldHVyblR5cGUuZmxhZ3MgJiBVTlNBRkVfUkVUVVJOX0ZMQUdTKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENoZWNrIHRoZSBzeW50YWN0aWMgcmV0dXJuIHR5cGUgYW5ub3RhdGlvbi4gSWYgaXQgY29udGFpbnMgYSByZWZlcmVuY2UgdG9cbiAgLy8gUHJvbWlzZS9Qcm9taXNlTGlrZSAoZGlyZWN0bHkgb3IgdmlhIGEgdHlwZSBhbGlhcyksIHRoZSBjYWxsZXIgZXhwbGljaXRseVxuICAvLyBIYW5kbGVzIGFzeW5jIHJldHVybnMgYW5kIHNob3VsZCBub3QgYmUgZmxhZ2dlZC5cbiAgY29uc3QgZGVjbCA9IHNpZy5nZXREZWNsYXJhdGlvbigpO1xuICBjb25zdCByZXR1cm5UeXBlTm9kZSA9IGRlY2wudHlwZTtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUocmV0dXJuVHlwZU5vZGUsICdTaWduYXR1cmUgZGVjbGFyYXRpb25zIHdpdGggYW55L3Vua25vd24gcmV0dXJuIGFsd2F5cyBoYXZlIGEgcmV0dXJuIHR5cGUgYW5ub3RhdGlvbicpO1xuXG4gIHJldHVybiAhY29udGFpbnNQcm9taXNlUmVmZXJlbmNlKGNoZWNrZXIsIHJldHVyblR5cGVOb2RlKTtcbn1cblxuZXhwb3J0IGNvbnN0IG5vQXN5bmNDYWxsYmFja1RvVW5zYWZlUmV0dXJuOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBjb250ZXh0LnNvdXJjZUNvZGUucGFyc2VyU2VydmljZXMgYXMgUGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uO1xuICAgIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbGxOb2RlID0gbm9kZSBhcyBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbGxOb2RlLmFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGFyZyA9IGNhbGxOb2RlLmFyZ3VtZW50c1tpXTtcbiAgICAgICAgICBpZiAoIWFyZyB8fCAhaXNBc3luY0Z1bmN0aW9uTm9kZShhcmcpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB0c0NhbGxlZU5vZGUgPSBzZXJ2aWNlcy5lc1RyZWVOb2RlVG9UU05vZGVNYXAuZ2V0KGNhbGxOb2RlLmNhbGxlZSk7XG4gICAgICAgICAgY29uc3QgY2FsbGVlVHlwZSA9IGNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24odHNDYWxsZWVOb2RlKTtcblxuICAgICAgICAgIGZvciAoY29uc3Qgc2lnIG9mIGNhbGxlZVR5cGUuZ2V0Q2FsbFNpZ25hdHVyZXMoKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyYW0gPSBzaWcuZ2V0UGFyYW1ldGVycygpW2ldO1xuICAgICAgICAgICAgaWYgKCFwYXJhbSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcGFyYW1UeXBlID0gY2hlY2tlci5nZXRUeXBlT2ZTeW1ib2wocGFyYW0pO1xuXG4gICAgICAgICAgICBpZiAoaGFzVW5zYWZlUmV0dXJuQ2FsbFNpZ25hdHVyZShjaGVja2VyLCBwYXJhbVR5cGUpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSUQsXG4gICAgICAgICAgICAgICAgbm9kZTogYXJnIGFzIFJ1bGUuTm9kZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGlzYWxsb3cgcGFzc2luZyBhc3luYyBmdW5jdGlvbnMgYXMgY2FsbGJhY2tzIHRvIHBhcmFtZXRlcnMgd2l0aCBgYW55YCBvciBgdW5rbm93bmAgcmV0dXJuIHR5cGUnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOlxuICAgICAgICAnQXN5bmMgZnVuY3Rpb24gcGFzc2VkIGFzIGNhbGxiYWNrIHRvIGEgcGFyYW1ldGVyIHdpdGggYGFueWAvYHVua25vd25gIHJldHVybiB0eXBlLiBUaGlzIG1heSBjYXVzZSB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25zLiBXcmFwIHRoZSBjYWxsOiBgKC4uLmFyZ3MpID0+IHsgeW91ckFzeW5jRm4oLi4uYXJncyk7IH1gLidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBaUNBLHdCQU9PO0FBRVAseUJBQWtDO0FBRTNCLE1BQU0sYUFBYTtBQVUxQixTQUFTLDZCQUE2QixTQUFzQixNQUFxQjtBQUMvRSxTQUFPLEtBQUssa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFFBQVEsd0JBQXdCLFNBQVMsR0FBRyxDQUFDO0FBQ3JGO0FBUUEsU0FBUyxvQkFBb0IsTUFBNkY7QUFFeEgsVUFBUSxLQUFLLFNBQVMsNkJBQTZCLEtBQUssU0FBUyx5QkFBeUIsS0FBSztBQUNqRztBQUdBLE1BQU0sc0JBQXNCLDRCQUFVLE1BQU0sNEJBQVU7QUFFdEQsTUFBTSxxQkFBcUIsb0JBQUksSUFBSSxDQUFDLFdBQVcsYUFBYSxDQUFDO0FBVzdELFNBQVMseUJBQXlCLFNBQXNCLE1BQXlCO0FBQy9FLFVBQUksbUNBQWdCLElBQUksR0FBRztBQUN6QixXQUFPLEtBQUssTUFBTSxLQUFLLENBQUMsV0FBVyx5QkFBeUIsU0FBUyxNQUFNLENBQUM7QUFBQSxFQUM5RTtBQUVBLFVBQUksdUNBQW9CLElBQUksR0FBRztBQUU3QixVQUFNLFdBQU8sZ0NBQWEsS0FBSyxRQUFRLElBQUksS0FBSyxTQUFTLE9BQU87QUFFaEUsUUFBSSxtQkFBbUIsSUFBSSxJQUFJLEdBQUc7QUFDaEMsYUFBTztBQUFBLElBQ1Q7QUFHQSxRQUFJLFNBQVMsUUFBUSxvQkFBb0IsS0FBSyxRQUFRO0FBR3RELFFBQUksVUFBVSxPQUFPLFFBQVEsOEJBQVksT0FBTztBQUM5QyxlQUFTLFFBQVEsaUJBQWlCLE1BQU07QUFBQSxJQUMxQztBQUVBLFVBQU0sT0FBTyxRQUFRLGVBQWUsQ0FBQztBQUNyQyxRQUFJLFlBQVEsMENBQXVCLElBQUksR0FBRztBQUN4QyxhQUFPLHlCQUF5QixTQUFTLEtBQUssSUFBSTtBQUFBLElBQ3BEO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDtBQWVBLFNBQVMsd0JBQXdCLFNBQXNCLEtBQXlCO0FBQzlFLFFBQU0sYUFBYSxRQUFRLHlCQUF5QixHQUFHO0FBR3ZELE1BQUksRUFBRSxXQUFXLFFBQVEsc0JBQXNCO0FBQzdDLFdBQU87QUFBQSxFQUNUO0FBS0EsUUFBTSxPQUFPLElBQUksZUFBZTtBQUNoQyxRQUFNLGlCQUFpQixLQUFLO0FBQzVCLDRDQUFrQixnQkFBZ0IscUZBQXFGO0FBRXZILFNBQU8sQ0FBQyx5QkFBeUIsU0FBUyxjQUFjO0FBQzFEO0FBRU8sTUFBTSxnQ0FBaUQ7QUFBQSxFQUM1RCxPQUFPLFNBQVM7QUFDZCxVQUFNLFdBQVcsUUFBUSxXQUFXO0FBQ3BDLFVBQU0sVUFBVSxTQUFTLFFBQVEsZUFBZTtBQUVoRCxXQUFPO0FBQUEsTUFDTCxlQUFlLE1BQXVCO0FBQ3BDLGNBQU0sV0FBVztBQUVqQixpQkFBUyxJQUFJLEdBQUcsSUFBSSxTQUFTLFVBQVUsUUFBUSxLQUFLO0FBQ2xELGdCQUFNLE1BQU0sU0FBUyxVQUFVLENBQUM7QUFDaEMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxHQUFHO0FBQ3JDO0FBQUEsVUFDRjtBQUVBLGdCQUFNLGVBQWUsU0FBUyxzQkFBc0IsSUFBSSxTQUFTLE1BQU07QUFDdkUsZ0JBQU0sYUFBYSxRQUFRLGtCQUFrQixZQUFZO0FBRXpELHFCQUFXLE9BQU8sV0FBVyxrQkFBa0IsR0FBRztBQUNoRCxrQkFBTSxRQUFRLElBQUksY0FBYyxFQUFFLENBQUM7QUFDbkMsZ0JBQUksQ0FBQyxPQUFPO0FBQ1Y7QUFBQSxZQUNGO0FBRUEsa0JBQU0sWUFBWSxRQUFRLGdCQUFnQixLQUFLO0FBRS9DLGdCQUFJLDZCQUE2QixTQUFTLFNBQVMsR0FBRztBQUNwRCxzQkFBUSxPQUFPO0FBQUEsZ0JBQ2IsV0FBVztBQUFBLGdCQUNYLE1BQU07QUFBQSxjQUNSLENBQUM7QUFDRDtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLENBQUMsVUFBVSxHQUNUO0FBQUEsSUFDSjtBQUFBLElBQ0EsUUFBUSxDQUFDO0FBQUEsSUFDVCxNQUFNO0FBQUEsRUFDUjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,3 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const MESSAGE_ID = "noAsyncCallbackToUnsafeReturn";
3
+ export declare const noAsyncCallbackToUnsafeReturn: Rule.RuleModule;
@@ -0,0 +1,180 @@
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 initCjs() {
7
+ const globalThisRecord = globalThis;
8
+ globalThisRecord['__name'] ??= name;
9
+ const originalRequire = require;
10
+ if (originalRequire && !originalRequire.__isPatched) {
11
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
12
+ require = Object.assign(
13
+ (id) => requirePatched(id),
14
+ originalRequire,
15
+ {
16
+ __isPatched: true
17
+ }
18
+ );
19
+ }
20
+
21
+ const newFuncs = {
22
+ __extractDefault() {
23
+ return extractDefault;
24
+ },
25
+ process() {
26
+ const browserProcess = {
27
+ browser: true,
28
+ cwd() {
29
+ return '/';
30
+ },
31
+ env: {},
32
+ platform: 'android'
33
+ };
34
+ return browserProcess;
35
+ }
36
+ };
37
+
38
+ for (const key of Object.keys(newFuncs)) {
39
+ globalThisRecord[key] ??= newFuncs[key]?.();
40
+ }
41
+
42
+ function name(obj) {
43
+ return obj;
44
+ }
45
+
46
+ function extractDefault(module) {
47
+ return module && module.__esModule && 'default' in module ? module.default : module;
48
+ }
49
+
50
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
51
+ 'obsidian',
52
+ '@codemirror/autocomplete',
53
+ '@codemirror/collab',
54
+ '@codemirror/commands',
55
+ '@codemirror/language',
56
+ '@codemirror/lint',
57
+ '@codemirror/search',
58
+ '@codemirror/state',
59
+ '@codemirror/text',
60
+ '@codemirror/view',
61
+ '@lezer/common',
62
+ '@lezer/lr',
63
+ '@lezer/highlight'];
64
+
65
+
66
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
67
+ '@codemirror/closebrackets',
68
+ '@codemirror/comment',
69
+ '@codemirror/fold',
70
+ '@codemirror/gutter',
71
+ '@codemirror/highlight',
72
+ '@codemirror/history',
73
+ '@codemirror/matchbrackets',
74
+ '@codemirror/panel',
75
+ '@codemirror/rangeset',
76
+ '@codemirror/rectangular-selection',
77
+ '@codemirror/stream-parser',
78
+ '@codemirror/tooltip'];
79
+
80
+
81
+ function requirePatched(id) {
82
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
83
+ return originalRequire?.(id);
84
+ }
85
+
86
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
87
+ if (globalThis?.app?.isMobile) {
88
+ if (id === 'process' || id === 'node:process') {
89
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
90
+ return globalThis.process;
91
+ }
92
+ } else {
93
+ const module = originalRequire?.(id);
94
+ if (module) {
95
+ return extractDefault(module);
96
+ }
97
+ }
98
+
99
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
+ return {};
101
+ }
102
+ })();
103
+
104
+ "use strict";
105
+ var __defProp = Object.defineProperty;
106
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
+ var __getOwnPropNames = Object.getOwnPropertyNames;
108
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
109
+ var __export = (target, all) => {
110
+ for (var name in all)
111
+ __defProp(target, name, { get: all[name], enumerable: true });
112
+ };
113
+ var __copyProps = (to, from, except, desc) => {
114
+ if (from && typeof from === "object" || typeof from === "function") {
115
+ for (let key of __getOwnPropNames(from))
116
+ if (!__hasOwnProp.call(to, key) && key !== except)
117
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
+ }
119
+ return to;
120
+ };
121
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
+ var no_used_underscore_variables_exports = {};
123
+ __export(no_used_underscore_variables_exports, {
124
+ MESSAGE_ID: () => MESSAGE_ID,
125
+ noUsedUnderscoreVariables: () => noUsedUnderscoreVariables
126
+ });
127
+ module.exports = __toCommonJS(no_used_underscore_variables_exports);
128
+ var import_type_guards = require('../../../type-guards.cjs');
129
+ const MESSAGE_ID = "noUsedUnderscoreVariables";
130
+ const noUsedUnderscoreVariables = {
131
+ create(context) {
132
+ return {
133
+ ":function"(node) {
134
+ const scope = context.sourceCode.getScope(node);
135
+ for (const variable of scope.variables) {
136
+ if (!variable.name.startsWith("_")) {
137
+ continue;
138
+ }
139
+ const defNode = variable.defs[0];
140
+ (0, import_type_guards.assertNonNullable)(defNode, "User-declared _-prefixed variables always have at least one definition");
141
+ const funcBody = node.body;
142
+ const bodyRange = funcBody?.range;
143
+ const isParam = defNode.type === "Parameter";
144
+ const hasBodyReferences = variable.references.some((ref) => {
145
+ if (!ref.isRead()) {
146
+ return false;
147
+ }
148
+ if (isParam && bodyRange && ref.identifier.range) {
149
+ return ref.identifier.range[0] >= bodyRange[0] && ref.identifier.range[1] <= bodyRange[1];
150
+ }
151
+ return true;
152
+ });
153
+ if (hasBodyReferences) {
154
+ context.report({
155
+ data: { name: variable.name },
156
+ messageId: MESSAGE_ID,
157
+ node: defNode.name
158
+ });
159
+ }
160
+ }
161
+ }
162
+ };
163
+ },
164
+ meta: {
165
+ docs: {
166
+ description: "Disallow `_`-prefixed parameters and local variables that are actually used"
167
+ },
168
+ messages: {
169
+ [MESSAGE_ID]: '"{{ name }}" has a `_` prefix but is used. Remove the `_` prefix since it is not unused (G10e).'
170
+ },
171
+ schema: [],
172
+ type: "problem"
173
+ }
174
+ };
175
+ // Annotate the CommonJS export names for ESM import in node:
176
+ 0 && (module.exports = {
177
+ MESSAGE_ID,
178
+ noUsedUnderscoreVariables
179
+ });
180
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBydWxlOiBuby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGEgcGFyYW1ldGVyIG9yIGxvY2FsIHZhcmlhYmxlIHdpdGggYSBgX2AgcHJlZml4IGlzXG4gKiBhY3R1YWxseSByZWZlcmVuY2VkIGluIHRoZSBmdW5jdGlvbiBib2R5LiBUaGUgYF9gIHByZWZpeCBjb252ZW50aW9uIHNpZ25hbHNcbiAqIFwidGhpcyBpZGVudGlmaWVyIGlzIGludGVudGlvbmFsbHkgdW51c2VkXCIgXHUyMDE0IGlmIGl0IElTIHVzZWQsIHRoZSBwcmVmaXggaXNcbiAqIG1pc2xlYWRpbmcgYW5kIHNob3VsZCBiZSByZW1vdmVkLlxuICovXG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAnbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlcyc7XG5cbmV4cG9ydCBjb25zdCBub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICc6ZnVuY3Rpb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuc291cmNlQ29kZS5nZXRTY29wZShub2RlKTtcblxuICAgICAgICBmb3IgKGNvbnN0IHZhcmlhYmxlIG9mIHNjb3BlLnZhcmlhYmxlcykge1xuICAgICAgICAgIGlmICghdmFyaWFibGUubmFtZS5zdGFydHNXaXRoKCdfJykpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRlZk5vZGUgPSB2YXJpYWJsZS5kZWZzWzBdO1xuICAgICAgICAgIGFzc2VydE5vbk51bGxhYmxlKGRlZk5vZGUsICdVc2VyLWRlY2xhcmVkIF8tcHJlZml4ZWQgdmFyaWFibGVzIGFsd2F5cyBoYXZlIGF0IGxlYXN0IG9uZSBkZWZpbml0aW9uJyk7XG5cbiAgICAgICAgICAvLyBGb3IgcGFyYW1ldGVycywgb25seSBjb3VudCByZWZlcmVuY2VzIGluc2lkZSB0aGUgZnVuY3Rpb24gYm9keVxuICAgICAgICAgIC8vIChub3QgaW4gdHlwZSBhbm5vdGF0aW9ucyBsaWtlIGBhc3NlcnRzIF9vYmogaXMgVGApLlxuICAgICAgICAgIC8vIEZvciBsb2NhbCB2YXJpYWJsZXMsIGFueSByZWFkIHJlZmVyZW5jZSBjb3VudHMuXG4gICAgICAgICAgY29uc3QgZnVuY0JvZHkgPSAobm9kZSBhcyB7IGJvZHk/OiBSdWxlLk5vZGUgfSkuYm9keTtcbiAgICAgICAgICBjb25zdCBib2R5UmFuZ2UgPSBmdW5jQm9keT8ucmFuZ2U7XG4gICAgICAgICAgY29uc3QgaXNQYXJhbSA9IGRlZk5vZGUudHlwZSA9PT0gJ1BhcmFtZXRlcic7XG4gICAgICAgICAgY29uc3QgaGFzQm9keVJlZmVyZW5jZXMgPSB2YXJpYWJsZS5yZWZlcmVuY2VzLnNvbWUoKHJlZikgPT4ge1xuICAgICAgICAgICAgaWYgKCFyZWYuaXNSZWFkKCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzUGFyYW0gJiYgYm9keVJhbmdlICYmIHJlZi5pZGVudGlmaWVyLnJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZWYuaWRlbnRpZmllci5yYW5nZVswXSA+PSBib2R5UmFuZ2VbMF1cbiAgICAgICAgICAgICAgICAmJiByZWYuaWRlbnRpZmllci5yYW5nZVsxXSA8PSBib2R5UmFuZ2VbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBMb2NhbCB2YXJpYWJsZXMgb3IgZmFsbGJhY2s6IGNvdW50IGFsbCByZWFkc1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGhhc0JvZHlSZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIGRhdGE6IHsgbmFtZTogdmFyaWFibGUubmFtZSB9LFxuICAgICAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSUQsXG4gICAgICAgICAgICAgIG5vZGU6IGRlZk5vZGUubmFtZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGlzYWxsb3cgYF9gLXByZWZpeGVkIHBhcmFtZXRlcnMgYW5kIGxvY2FsIHZhcmlhYmxlcyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEXTogJ1wie3sgbmFtZSB9fVwiIGhhcyBhIGBfYCBwcmVmaXggYnV0IGlzIHVzZWQuIFJlbW92ZSB0aGUgYF9gIHByZWZpeCBzaW5jZSBpdCBpcyBub3QgdW51c2VkIChHMTBlKS4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6ICdwcm9ibGVtJ1xuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLHlCQUFrQztBQUUzQixNQUFNLGFBQWE7QUFFbkIsTUFBTSw0QkFBNkM7QUFBQSxFQUN4RCxPQUFPLFNBQVM7QUFDZCxXQUFPO0FBQUEsTUFDTCxZQUFZLE1BQXVCO0FBQ2pDLGNBQU0sUUFBUSxRQUFRLFdBQVcsU0FBUyxJQUFJO0FBRTlDLG1CQUFXLFlBQVksTUFBTSxXQUFXO0FBQ3RDLGNBQUksQ0FBQyxTQUFTLEtBQUssV0FBVyxHQUFHLEdBQUc7QUFDbEM7QUFBQSxVQUNGO0FBRUEsZ0JBQU0sVUFBVSxTQUFTLEtBQUssQ0FBQztBQUMvQixvREFBa0IsU0FBUyx3RUFBd0U7QUFLbkcsZ0JBQU0sV0FBWSxLQUE4QjtBQUNoRCxnQkFBTSxZQUFZLFVBQVU7QUFDNUIsZ0JBQU0sVUFBVSxRQUFRLFNBQVM7QUFDakMsZ0JBQU0sb0JBQW9CLFNBQVMsV0FBVyxLQUFLLENBQUMsUUFBUTtBQUMxRCxnQkFBSSxDQUFDLElBQUksT0FBTyxHQUFHO0FBQ2pCLHFCQUFPO0FBQUEsWUFDVDtBQUNBLGdCQUFJLFdBQVcsYUFBYSxJQUFJLFdBQVcsT0FBTztBQUNoRCxxQkFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQ3hDLElBQUksV0FBVyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQUM7QUFBQSxZQUM3QztBQUVBLG1CQUFPO0FBQUEsVUFDVCxDQUFDO0FBQ0QsY0FBSSxtQkFBbUI7QUFDckIsb0JBQVEsT0FBTztBQUFBLGNBQ2IsTUFBTSxFQUFFLE1BQU0sU0FBUyxLQUFLO0FBQUEsY0FDNUIsV0FBVztBQUFBLGNBQ1gsTUFBTSxRQUFRO0FBQUEsWUFDaEIsQ0FBQztBQUFBLFVBQ0g7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxVQUFVLEdBQUc7QUFBQSxJQUNoQjtBQUFBLElBQ0EsUUFBUSxDQUFDO0FBQUEsSUFDVCxNQUFNO0FBQUEsRUFDUjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * ESLint rule: no-used-underscore-variables
5
+ *
6
+ * Reports an error when a parameter or local variable with a `_` prefix is
7
+ * actually referenced in the function body. The `_` prefix convention signals
8
+ * "this identifier is intentionally unused" — if it IS used, the prefix is
9
+ * misleading and should be removed.
10
+ */
11
+ import type { Rule } from 'eslint';
12
+ export declare const MESSAGE_ID = "noUsedUnderscoreVariables";
13
+ export declare const noUsedUnderscoreVariables: Rule.RuleModule;
@@ -124,14 +124,16 @@ __export(obsidian_dev_utils_plugin_exports, {
124
124
  obsidianDevUtilsPlugin: () => obsidianDevUtilsPlugin
125
125
  });
126
126
  module.exports = __toCommonJS(obsidian_dev_utils_plugin_exports);
127
- var import_no_used_underscore_params = require('./no-used-underscore-params.cjs');
127
+ var import_no_async_callback_to_unsafe_return = require('./no-async-callback-to-unsafe-return.cjs');
128
+ var import_no_used_underscore_variables = require('./no-used-underscore-variables.cjs');
128
129
  const obsidianDevUtilsPlugin = {
129
130
  rules: {
130
- "no-used-underscore-params": import_no_used_underscore_params.noUsedUnderscoreParams
131
+ "no-async-callback-to-unsafe-return": import_no_async_callback_to_unsafe_return.noAsyncCallbackToUnsafeReturn,
132
+ "no-used-underscore-variables": import_no_used_underscore_variables.noUsedUnderscoreVariables
131
133
  }
132
134
  };
133
135
  // Annotate the CommonJS export names for ESM import in node:
134
136
  0 && (module.exports = {
135
137
  obsidianDevUtilsPlugin
136
138
  });
137
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBwbHVnaW4gZm9yIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcy5cbiAqL1xuaW1wb3J0IHR5cGUgeyBFU0xpbnQgfSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQgeyBub1VzZWRVbmRlcnNjb3JlUGFyYW1zIH0gZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zLnRzJztcblxuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNQbHVnaW46IEVTTGludC5QbHVnaW4gPSB7XG4gIHJ1bGVzOiB7XG4gICAgJ25vLXVzZWQtdW5kZXJzY29yZS1wYXJhbXMnOiBub1VzZWRVbmRlcnNjb3JlUGFyYW1zXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BLHVDQUF1QztBQUVoQyxNQUFNLHlCQUF3QztBQUFBLEVBQ25ELE9BQU87QUFBQSxJQUNMLDZCQUE2QjtBQUFBLEVBQy9CO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
139
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBwbHVnaW4gZm9yIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcy5cbiAqL1xuaW1wb3J0IHR5cGUgeyBFU0xpbnQgfSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQgeyBub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybiB9IGZyb20gJy4vbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybi50cyc7XG5pbXBvcnQgeyBub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzIH0gZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzJztcblxuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNQbHVnaW46IEVTTGludC5QbHVnaW4gPSB7XG4gIHJ1bGVzOiB7XG4gICAgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nOiBub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybixcbiAgICAnbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyc6IG5vVXNlZFVuZGVyc2NvcmVWYXJpYWJsZXNcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsZ0RBQThDO0FBQzlDLDBDQUEwQztBQUVuQyxNQUFNLHlCQUF3QztBQUFBLEVBQ25ELE9BQU87QUFBQSxJQUNMLHNDQUFzQztBQUFBLElBQ3RDLGdDQUFnQztBQUFBLEVBQ2xDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,135 @@
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 initCjs() {
7
+ const globalThisRecord = globalThis;
8
+ globalThisRecord['__name'] ??= name;
9
+ const originalRequire = require;
10
+ if (originalRequire && !originalRequire.__isPatched) {
11
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
12
+ require = Object.assign(
13
+ (id) => requirePatched(id),
14
+ originalRequire,
15
+ {
16
+ __isPatched: true
17
+ }
18
+ );
19
+ }
20
+
21
+ const newFuncs = {
22
+ __extractDefault() {
23
+ return extractDefault;
24
+ },
25
+ process() {
26
+ const browserProcess = {
27
+ browser: true,
28
+ cwd() {
29
+ return '/';
30
+ },
31
+ env: {},
32
+ platform: 'android'
33
+ };
34
+ return browserProcess;
35
+ }
36
+ };
37
+
38
+ for (const key of Object.keys(newFuncs)) {
39
+ globalThisRecord[key] ??= newFuncs[key]?.();
40
+ }
41
+
42
+ function name(obj) {
43
+ return obj;
44
+ }
45
+
46
+ function extractDefault(module) {
47
+ return module && module.__esModule && 'default' in module ? module.default : module;
48
+ }
49
+
50
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
51
+ 'obsidian',
52
+ '@codemirror/autocomplete',
53
+ '@codemirror/collab',
54
+ '@codemirror/commands',
55
+ '@codemirror/language',
56
+ '@codemirror/lint',
57
+ '@codemirror/search',
58
+ '@codemirror/state',
59
+ '@codemirror/text',
60
+ '@codemirror/view',
61
+ '@lezer/common',
62
+ '@lezer/lr',
63
+ '@lezer/highlight'];
64
+
65
+
66
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
67
+ '@codemirror/closebrackets',
68
+ '@codemirror/comment',
69
+ '@codemirror/fold',
70
+ '@codemirror/gutter',
71
+ '@codemirror/highlight',
72
+ '@codemirror/history',
73
+ '@codemirror/matchbrackets',
74
+ '@codemirror/panel',
75
+ '@codemirror/rangeset',
76
+ '@codemirror/rectangular-selection',
77
+ '@codemirror/stream-parser',
78
+ '@codemirror/tooltip'];
79
+
80
+
81
+ function requirePatched(id) {
82
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
83
+ return originalRequire?.(id);
84
+ }
85
+
86
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
87
+ if (globalThis?.app?.isMobile) {
88
+ if (id === 'process' || id === 'node:process') {
89
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
90
+ return globalThis.process;
91
+ }
92
+ } else {
93
+ const module = originalRequire?.(id);
94
+ if (module) {
95
+ return extractDefault(module);
96
+ }
97
+ }
98
+
99
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
+ return {};
101
+ }
102
+ })();
103
+
104
+ "use strict";
105
+ var __defProp = Object.defineProperty;
106
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
+ var __getOwnPropNames = Object.getOwnPropertyNames;
108
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
109
+ var __export = (target, all) => {
110
+ for (var name in all)
111
+ __defProp(target, name, { get: all[name], enumerable: true });
112
+ };
113
+ var __copyProps = (to, from, except, desc) => {
114
+ if (from && typeof from === "object" || typeof from === "function") {
115
+ for (let key of __getOwnPropNames(from))
116
+ if (!__hasOwnProp.call(to, key) && key !== except)
117
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
+ }
119
+ return to;
120
+ };
121
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
+ var rule_tester_helper_exports = {};
123
+ __export(rule_tester_helper_exports, {
124
+ toRuleTesterModule: () => toRuleTesterModule
125
+ });
126
+ module.exports = __toCommonJS(rule_tester_helper_exports);
127
+ function toRuleTesterModule(rule) {
128
+ const bridged = rule;
129
+ return bridged;
130
+ }
131
+ // Annotate the CommonJS export names for ESM import in node:
132
+ 0 && (module.exports = {
133
+ toRuleTesterModule
134
+ });
135
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9ydWxlLXRlc3Rlci1oZWxwZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogSGVscGVyIGZvciBicmlkZ2luZyBFU0xpbnQgdjEwIHJ1bGUgdHlwZXMgd2l0aCBgQHR5cGVzY3JpcHQtZXNsaW50L3J1bGUtdGVzdGVyYC5cbiAqL1xuaW1wb3J0IHR5cGUgeyBSdWxlVGVzdGVyIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3J1bGUtdGVzdGVyJztcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5cbi8qKlxuICogQ2FzdHMgYW4gRVNMaW50IHYxMCBgUnVsZS5SdWxlTW9kdWxlYCB0byB0aGUgdHlwZSBleHBlY3RlZCBieVxuICogYEB0eXBlc2NyaXB0LWVzbGludC9ydWxlLXRlc3RlcmAuIFRoZSB0eXBlcyBhcmUgaW5jb21wYXRpYmxlIGF0IHRoZSB0eXBlXG4gKiBsZXZlbCBiZWNhdXNlIHR5cGVzY3JpcHQtZXNsaW50IGhhc24ndCB1cGRhdGVkIGZvciBFU0xpbnQgdjEwIHlldCwgYnV0XG4gKiB0aGV5IGFyZSBjb21wYXRpYmxlIGF0IHJ1bnRpbWUuXG4gKlxuICogQHBhcmFtIHJ1bGUgLSBUaGUgRVNMaW50IHJ1bGUgbW9kdWxlLlxuICogQHJldHVybnMgVGhlIHNhbWUgcnVsZSwgdHlwZWQgZm9yIHRoZSBydWxlIHRlc3Rlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUnVsZVRlc3Rlck1vZHVsZShydWxlOiBSdWxlLlJ1bGVNb2R1bGUpOiBQYXJhbWV0ZXJzPFJ1bGVUZXN0ZXJbJ3J1biddPlsxXSB7XG4gIC8vIEJyaWRnZSBFU0xpbnQgdjEwIFJ1bGUuUnVsZU1vZHVsZSB0byBAdHlwZXNjcmlwdC1lc2xpbnQvcnVsZS10ZXN0ZXIncyBSdWxlTW9kdWxlLlxuICAvLyBTdHJ1Y3R1cmFsbHkgY29tcGF0aWJsZSBidXQgbm9taW5hbGx5IGluY29tcGF0aWJsZSB1bnRpbCB0eXBlc2NyaXB0LWVzbGludCB1cGRhdGVzLlxuICBjb25zdCBicmlkZ2VkOiB1bmtub3duID0gcnVsZTtcblxuICByZXR1cm4gYnJpZGdlZCBhcyBQYXJhbWV0ZXJzPFJ1bGVUZXN0ZXJbJ3J1biddPlsxXTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBaUJPLFNBQVMsbUJBQW1CLE1BQXlEO0FBRzFGLFFBQU0sVUFBbUI7QUFFekIsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @packageDocumentation
3
+ *
4
+ * Helper for bridging ESLint v10 rule types with `@typescript-eslint/rule-tester`.
5
+ */
6
+ import type { RuleTester } from '@typescript-eslint/rule-tester';
7
+ import type { Rule } from 'eslint';
8
+ /**
9
+ * Casts an ESLint v10 `Rule.RuleModule` to the type expected by
10
+ * `@typescript-eslint/rule-tester`. The types are incompatible at the type
11
+ * level because typescript-eslint hasn't updated for ESLint v10 yet, but
12
+ * they are compatible at runtime.
13
+ *
14
+ * @param rule - The ESLint rule module.
15
+ * @returns The same rule, typed for the rule tester.
16
+ */
17
+ export declare function toRuleTesterModule(rule: Rule.RuleModule): Parameters<RuleTester['run']>[1];