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
@@ -19,13 +19,15 @@ if you want to view the source, please visit the github repository of this plugi
19
19
  globalThis.process = browserProcess;
20
20
  })();
21
21
 
22
- import { noUsedUnderscoreParams } from "./no-used-underscore-params.mjs";
22
+ import { noAsyncCallbackToUnsafeReturn } from "./no-async-callback-to-unsafe-return.mjs";
23
+ import { noUsedUnderscoreVariables } from "./no-used-underscore-variables.mjs";
23
24
  const obsidianDevUtilsPlugin = {
24
25
  rules: {
25
- "no-used-underscore-params": noUsedUnderscoreParams
26
+ "no-async-callback-to-unsafe-return": noAsyncCallbackToUnsafeReturn,
27
+ "no-used-underscore-variables": noUsedUnderscoreVariables
26
28
  }
27
29
  };
28
30
  export {
29
31
  obsidianDevUtilsPlugin
30
32
  };
31
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBwbHVnaW4gZm9yIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcy5cbiAqL1xuaW1wb3J0IHR5cGUgeyBFU0xpbnQgfSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQgeyBub1VzZWRVbmRlcnNjb3JlUGFyYW1zIH0gZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zLnRzJztcblxuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNQbHVnaW46IEVTTGludC5QbHVnaW4gPSB7XG4gIHJ1bGVzOiB7XG4gICAgJ25vLXVzZWQtdW5kZXJzY29yZS1wYXJhbXMnOiBub1VzZWRVbmRlcnNjb3JlUGFyYW1zXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxTQUFTLDhCQUE4QjtBQUVoQyxNQUFNLHlCQUF3QztBQUFBLEVBQ25ELE9BQU87QUFBQSxJQUNMLDZCQUE2QjtBQUFBLEVBQy9CO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
33
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBwbHVnaW4gZm9yIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcy5cbiAqL1xuaW1wb3J0IHR5cGUgeyBFU0xpbnQgfSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQgeyBub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybiB9IGZyb20gJy4vbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybi50cyc7XG5pbXBvcnQgeyBub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzIH0gZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzJztcblxuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNQbHVnaW46IEVTTGludC5QbHVnaW4gPSB7XG4gIHJ1bGVzOiB7XG4gICAgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nOiBub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybixcbiAgICAnbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyc6IG5vVXNlZFVuZGVyc2NvcmVWYXJpYWJsZXNcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLFNBQVMscUNBQXFDO0FBQzlDLFNBQVMsaUNBQWlDO0FBRW5DLE1BQU0seUJBQXdDO0FBQUEsRUFDbkQsT0FBTztBQUFBLElBQ0wsc0NBQXNDO0FBQUEsSUFDdEMsZ0NBQWdDO0FBQUEsRUFDbEM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -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];
@@ -0,0 +1,29 @@
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 initEsm() {
7
+ if (globalThis.process) {
8
+ return;
9
+ }
10
+
11
+ const browserProcess = {
12
+ browser: true,
13
+ cwd() {
14
+ return '/';
15
+ },
16
+ env: {},
17
+ platform: 'android'
18
+ };
19
+ globalThis.process = browserProcess;
20
+ })();
21
+
22
+ function toRuleTesterModule(rule) {
23
+ const bridged = rule;
24
+ return bridged;
25
+ }
26
+ export {
27
+ toRuleTesterModule
28
+ };
29
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9ydWxlLXRlc3Rlci1oZWxwZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogSGVscGVyIGZvciBicmlkZ2luZyBFU0xpbnQgdjEwIHJ1bGUgdHlwZXMgd2l0aCBgQHR5cGVzY3JpcHQtZXNsaW50L3J1bGUtdGVzdGVyYC5cbiAqL1xuaW1wb3J0IHR5cGUgeyBSdWxlVGVzdGVyIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3J1bGUtdGVzdGVyJztcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5cbi8qKlxuICogQ2FzdHMgYW4gRVNMaW50IHYxMCBgUnVsZS5SdWxlTW9kdWxlYCB0byB0aGUgdHlwZSBleHBlY3RlZCBieVxuICogYEB0eXBlc2NyaXB0LWVzbGludC9ydWxlLXRlc3RlcmAuIFRoZSB0eXBlcyBhcmUgaW5jb21wYXRpYmxlIGF0IHRoZSB0eXBlXG4gKiBsZXZlbCBiZWNhdXNlIHR5cGVzY3JpcHQtZXNsaW50IGhhc24ndCB1cGRhdGVkIGZvciBFU0xpbnQgdjEwIHlldCwgYnV0XG4gKiB0aGV5IGFyZSBjb21wYXRpYmxlIGF0IHJ1bnRpbWUuXG4gKlxuICogQHBhcmFtIHJ1bGUgLSBUaGUgRVNMaW50IHJ1bGUgbW9kdWxlLlxuICogQHJldHVybnMgVGhlIHNhbWUgcnVsZSwgdHlwZWQgZm9yIHRoZSBydWxlIHRlc3Rlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUnVsZVRlc3Rlck1vZHVsZShydWxlOiBSdWxlLlJ1bGVNb2R1bGUpOiBQYXJhbWV0ZXJzPFJ1bGVUZXN0ZXJbJ3J1biddPlsxXSB7XG4gIC8vIEJyaWRnZSBFU0xpbnQgdjEwIFJ1bGUuUnVsZU1vZHVsZSB0byBAdHlwZXNjcmlwdC1lc2xpbnQvcnVsZS10ZXN0ZXIncyBSdWxlTW9kdWxlLlxuICAvLyBTdHJ1Y3R1cmFsbHkgY29tcGF0aWJsZSBidXQgbm9taW5hbGx5IGluY29tcGF0aWJsZSB1bnRpbCB0eXBlc2NyaXB0LWVzbGludCB1cGRhdGVzLlxuICBjb25zdCBicmlkZ2VkOiB1bmtub3duID0gcnVsZTtcblxuICByZXR1cm4gYnJpZGdlZCBhcyBQYXJhbWV0ZXJzPFJ1bGVUZXN0ZXJbJ3J1biddPlsxXTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCTyxTQUFTLG1CQUFtQixNQUF5RDtBQUcxRixRQUFNLFVBQW1CO0FBRXpCLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-dev-utils",
3
- "version": "52.1.1",
3
+ "version": "52.3.0",
4
4
  "description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
5
5
  "keywords": [
6
6
  "obsidian"
@@ -639,8 +639,10 @@
639
639
  },
640
640
  "overrides": {
641
641
  "@antfu/utils": "9.2.0",
642
+ "@eslint/js": "latest",
642
643
  "dompurify": "3.0.1",
643
- "esbuild": "$esbuild",
644
+ "esbuild": "latest",
645
+ "eslint": "latest",
644
646
  "eslint-plugin-import": "npm:eslint-plugin-import-x@latest"
645
647
  },
646
648
  "dependencies": {
@@ -720,6 +722,7 @@
720
722
  "@commitlint/config-conventional": "latest",
721
723
  "@commitlint/types": "latest",
722
724
  "@types/markdown-it": "latest",
725
+ "@typescript-eslint/rule-tester": "latest",
723
726
  "@vitest/coverage-v8": "latest",
724
727
  "@vitest/runner": "4.1.0",
725
728
  "commitizen": "latest",
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../../dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs",
3
+ "module": "../../../../dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs",
4
+ "type": "module",
5
+ "types": "../../../../dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../../dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs",
3
+ "module": "../../../../dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs",
4
+ "type": "module",
5
+ "types": "../../../../dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts"
6
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
- "main": "../../../../dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.cjs",
3
- "module": "../../../../dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.mjs",
2
+ "main": "../../../../dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs",
3
+ "module": "../../../../dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs",
4
4
  "type": "module",
5
- "types": "../../../../dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.d.cts"
5
+ "types": "../../../../dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.d.cts"
6
6
  }
@@ -1,174 +0,0 @@
1
- /*
2
- THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
- if you want to view the source, please visit the github repository of this plugin
4
- */
5
-
6
- (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_params_exports = {};
123
- __export(no_used_underscore_params_exports, {
124
- noUsedUnderscoreParams: () => noUsedUnderscoreParams
125
- });
126
- module.exports = __toCommonJS(no_used_underscore_params_exports);
127
- const noUsedUnderscoreParams = {
128
- create(context) {
129
- return {
130
- ":function"(node) {
131
- const scope = context.sourceCode.getScope(node);
132
- for (const variable of scope.variables) {
133
- if (!variable.name.startsWith("_")) {
134
- continue;
135
- }
136
- const defNode = variable.defs[0];
137
- if (defNode?.type !== "Parameter") {
138
- continue;
139
- }
140
- const funcBody = node.body;
141
- const bodyRange = funcBody?.range;
142
- const hasBodyReferences = variable.references.some((ref) => {
143
- if (!ref.isRead()) {
144
- return false;
145
- }
146
- if (bodyRange && ref.identifier.range) {
147
- return ref.identifier.range[0] >= bodyRange[0] && ref.identifier.range[1] <= bodyRange[1];
148
- }
149
- return true;
150
- });
151
- if (hasBodyReferences) {
152
- context.report({
153
- data: { name: variable.name },
154
- message: 'Parameter "{{ name }}" has a `_` prefix but is used. Remove the `_` prefix since the parameter is not unused (G10e).',
155
- node: defNode.name
156
- });
157
- }
158
- }
159
- }
160
- };
161
- },
162
- meta: {
163
- docs: {
164
- description: "Disallow `_`-prefixed parameters that are actually used in the function body"
165
- },
166
- schema: [],
167
- type: "problem"
168
- }
169
- };
170
- // Annotate the CommonJS export names for ESM import in node:
171
- 0 && (module.exports = {
172
- noUsedUnderscoreParams
173
- });
174
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBydWxlOiBuby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGEgcGFyYW1ldGVyIHdpdGggYSBgX2AgcHJlZml4IGlzIGFjdHVhbGx5XG4gKiByZWZlcmVuY2VkIGluIHRoZSBmdW5jdGlvbiBib2R5LiBUaGUgYF9gIHByZWZpeCBjb252ZW50aW9uIHNpZ25hbHNcbiAqIFwidGhpcyBwYXJhbWV0ZXIgaXMgaW50ZW50aW9uYWxseSB1bnVzZWRcIiBcdTIwMTQgaWYgaXQgSVMgdXNlZCwgdGhlXG4gKiBwcmVmaXggaXMgbWlzbGVhZGluZyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuXG4gKi9cbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBFU0xpbnQgcnVsZSBtb2R1bGU7IGNvcnJlY3RuZXNzIGlzIHZlcmlmaWVkIGJ5IHJ1bm5pbmcgRVNMaW50LCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuZXhwb3J0IGNvbnN0IG5vVXNlZFVuZGVyc2NvcmVQYXJhbXM6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJzpmdW5jdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5zb3VyY2VDb2RlLmdldFNjb3BlKG5vZGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2Ygc2NvcGUudmFyaWFibGVzKSB7XG4gICAgICAgICAgaWYgKCF2YXJpYWJsZS5uYW1lLnN0YXJ0c1dpdGgoJ18nKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gTXVzdCBiZSBhIHBhcmFtZXRlciAobm90IGEgbG9jYWwgdmFyaWFibGUpXG4gICAgICAgICAgY29uc3QgZGVmTm9kZSA9IHZhcmlhYmxlLmRlZnNbMF07XG4gICAgICAgICAgaWYgKGRlZk5vZGU/LnR5cGUgIT09ICdQYXJhbWV0ZXInKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgcGFyYW1ldGVyIGhhcyByZWZlcmVuY2VzIGluIHRoZSBmdW5jdGlvbiBib2R5IChub3QganVzdFxuICAgICAgICAgIC8vIEluIHRoZSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLCBlLmcuLCB0eXBlIHByZWRpY2F0ZXMgbGlrZSBgYXNzZXJ0cyBfb2JqIGlzIFRgKS5cbiAgICAgICAgICBjb25zdCBmdW5jQm9keSA9IChub2RlIGFzIHsgYm9keT86IFJ1bGUuTm9kZSB9KS5ib2R5O1xuICAgICAgICAgIGNvbnN0IGJvZHlSYW5nZSA9IGZ1bmNCb2R5Py5yYW5nZTtcbiAgICAgICAgICBjb25zdCBoYXNCb2R5UmVmZXJlbmNlcyA9IHZhcmlhYmxlLnJlZmVyZW5jZXMuc29tZSgocmVmKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlZi5pc1JlYWQoKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB3ZSBjYW4gZGV0ZXJtaW5lIHRoZSBib2R5IHJhbmdlLCBvbmx5IGNvdW50IHJlZnMgaW5zaWRlIGl0XG4gICAgICAgICAgICBpZiAoYm9keVJhbmdlICYmIHJlZi5pZGVudGlmaWVyLnJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZWYuaWRlbnRpZmllci5yYW5nZVswXSA+PSBib2R5UmFuZ2VbMF1cbiAgICAgICAgICAgICAgICAmJiByZWYuaWRlbnRpZmllci5yYW5nZVsxXSA8PSBib2R5UmFuZ2VbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGYWxsYmFjazogY291bnQgYWxsIHJlYWRzXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaGFzQm9keVJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgZGF0YTogeyBuYW1lOiB2YXJpYWJsZS5uYW1lIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdQYXJhbWV0ZXIgXCJ7eyBuYW1lIH19XCIgaGFzIGEgYF9gIHByZWZpeCBidXQgaXMgdXNlZC4gUmVtb3ZlIHRoZSBgX2AgcHJlZml4IHNpbmNlIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHVudXNlZCAoRzEwZSkuJyxcbiAgICAgICAgICAgICAgbm9kZTogZGVmTm9kZS5uYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdEaXNhbGxvdyBgX2AtcHJlZml4ZWQgcGFyYW1ldGVycyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkIGluIHRoZSBmdW5jdGlvbiBib2R5J1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAncHJvYmxlbSdcbiAgfVxufTtcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY08sTUFBTSx5QkFBMEM7QUFBQSxFQUNyRCxPQUFPLFNBQVM7QUFDZCxXQUFPO0FBQUEsTUFDTCxZQUFZLE1BQXVCO0FBQ2pDLGNBQU0sUUFBUSxRQUFRLFdBQVcsU0FBUyxJQUFJO0FBRTlDLG1CQUFXLFlBQVksTUFBTSxXQUFXO0FBQ3RDLGNBQUksQ0FBQyxTQUFTLEtBQUssV0FBVyxHQUFHLEdBQUc7QUFDbEM7QUFBQSxVQUNGO0FBR0EsZ0JBQU0sVUFBVSxTQUFTLEtBQUssQ0FBQztBQUMvQixjQUFJLFNBQVMsU0FBUyxhQUFhO0FBQ2pDO0FBQUEsVUFDRjtBQUlBLGdCQUFNLFdBQVksS0FBOEI7QUFDaEQsZ0JBQU0sWUFBWSxVQUFVO0FBQzVCLGdCQUFNLG9CQUFvQixTQUFTLFdBQVcsS0FBSyxDQUFDLFFBQVE7QUFDMUQsZ0JBQUksQ0FBQyxJQUFJLE9BQU8sR0FBRztBQUNqQixxQkFBTztBQUFBLFlBQ1Q7QUFFQSxnQkFBSSxhQUFhLElBQUksV0FBVyxPQUFPO0FBQ3JDLHFCQUFPLElBQUksV0FBVyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQUMsS0FDeEMsSUFBSSxXQUFXLE1BQU0sQ0FBQyxLQUFLLFVBQVUsQ0FBQztBQUFBLFlBQzdDO0FBRUEsbUJBQU87QUFBQSxVQUNULENBQUM7QUFDRCxjQUFJLG1CQUFtQjtBQUNyQixvQkFBUSxPQUFPO0FBQUEsY0FDYixNQUFNLEVBQUUsTUFBTSxTQUFTLEtBQUs7QUFBQSxjQUM1QixTQUFTO0FBQUEsY0FDVCxNQUFNLFFBQVE7QUFBQSxZQUNoQixDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxRQUFRLENBQUM7QUFBQSxJQUNULE1BQU07QUFBQSxFQUNSO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,12 +0,0 @@
1
- /**
2
- * @packageDocumentation
3
- *
4
- * ESLint rule: no-used-underscore-params
5
- *
6
- * Reports an error when a parameter with a `_` prefix is actually
7
- * referenced in the function body. The `_` prefix convention signals
8
- * "this parameter is intentionally unused" — if it IS used, the
9
- * prefix is misleading and should be removed.
10
- */
11
- import type { Rule } from 'eslint';
12
- export declare const noUsedUnderscoreParams: Rule.RuleModule;
@@ -1,12 +0,0 @@
1
- /**
2
- * @packageDocumentation
3
- *
4
- * ESLint rule: no-used-underscore-params
5
- *
6
- * Reports an error when a parameter with a `_` prefix is actually
7
- * referenced in the function body. The `_` prefix convention signals
8
- * "this parameter is intentionally unused" — if it IS used, the
9
- * prefix is misleading and should be removed.
10
- */
11
- import type { Rule } from 'eslint';
12
- export declare const noUsedUnderscoreParams: Rule.RuleModule;
@@ -1,68 +0,0 @@
1
- /*
2
- THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
- if you want to view the source, please visit the github repository of this plugin
4
- */
5
-
6
- (function initEsm() {
7
- if (globalThis.process) {
8
- return;
9
- }
10
-
11
- const browserProcess = {
12
- browser: true,
13
- cwd() {
14
- return '/';
15
- },
16
- env: {},
17
- platform: 'android'
18
- };
19
- globalThis.process = browserProcess;
20
- })();
21
-
22
- const noUsedUnderscoreParams = {
23
- create(context) {
24
- return {
25
- ":function"(node) {
26
- const scope = context.sourceCode.getScope(node);
27
- for (const variable of scope.variables) {
28
- if (!variable.name.startsWith("_")) {
29
- continue;
30
- }
31
- const defNode = variable.defs[0];
32
- if (defNode?.type !== "Parameter") {
33
- continue;
34
- }
35
- const funcBody = node.body;
36
- const bodyRange = funcBody?.range;
37
- const hasBodyReferences = variable.references.some((ref) => {
38
- if (!ref.isRead()) {
39
- return false;
40
- }
41
- if (bodyRange && ref.identifier.range) {
42
- return ref.identifier.range[0] >= bodyRange[0] && ref.identifier.range[1] <= bodyRange[1];
43
- }
44
- return true;
45
- });
46
- if (hasBodyReferences) {
47
- context.report({
48
- data: { name: variable.name },
49
- message: 'Parameter "{{ name }}" has a `_` prefix but is used. Remove the `_` prefix since the parameter is not unused (G10e).',
50
- node: defNode.name
51
- });
52
- }
53
- }
54
- }
55
- };
56
- },
57
- meta: {
58
- docs: {
59
- description: "Disallow `_`-prefixed parameters that are actually used in the function body"
60
- },
61
- schema: [],
62
- type: "problem"
63
- }
64
- };
65
- export {
66
- noUsedUnderscoreParams
67
- };
68
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBydWxlOiBuby11c2VkLXVuZGVyc2NvcmUtcGFyYW1zXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGEgcGFyYW1ldGVyIHdpdGggYSBgX2AgcHJlZml4IGlzIGFjdHVhbGx5XG4gKiByZWZlcmVuY2VkIGluIHRoZSBmdW5jdGlvbiBib2R5LiBUaGUgYF9gIHByZWZpeCBjb252ZW50aW9uIHNpZ25hbHNcbiAqIFwidGhpcyBwYXJhbWV0ZXIgaXMgaW50ZW50aW9uYWxseSB1bnVzZWRcIiBcdTIwMTQgaWYgaXQgSVMgdXNlZCwgdGhlXG4gKiBwcmVmaXggaXMgbWlzbGVhZGluZyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuXG4gKi9cbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBFU0xpbnQgcnVsZSBtb2R1bGU7IGNvcnJlY3RuZXNzIGlzIHZlcmlmaWVkIGJ5IHJ1bm5pbmcgRVNMaW50LCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuZXhwb3J0IGNvbnN0IG5vVXNlZFVuZGVyc2NvcmVQYXJhbXM6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJzpmdW5jdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5zb3VyY2VDb2RlLmdldFNjb3BlKG5vZGUpO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2Ygc2NvcGUudmFyaWFibGVzKSB7XG4gICAgICAgICAgaWYgKCF2YXJpYWJsZS5uYW1lLnN0YXJ0c1dpdGgoJ18nKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gTXVzdCBiZSBhIHBhcmFtZXRlciAobm90IGEgbG9jYWwgdmFyaWFibGUpXG4gICAgICAgICAgY29uc3QgZGVmTm9kZSA9IHZhcmlhYmxlLmRlZnNbMF07XG4gICAgICAgICAgaWYgKGRlZk5vZGU/LnR5cGUgIT09ICdQYXJhbWV0ZXInKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgcGFyYW1ldGVyIGhhcyByZWZlcmVuY2VzIGluIHRoZSBmdW5jdGlvbiBib2R5IChub3QganVzdFxuICAgICAgICAgIC8vIEluIHRoZSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLCBlLmcuLCB0eXBlIHByZWRpY2F0ZXMgbGlrZSBgYXNzZXJ0cyBfb2JqIGlzIFRgKS5cbiAgICAgICAgICBjb25zdCBmdW5jQm9keSA9IChub2RlIGFzIHsgYm9keT86IFJ1bGUuTm9kZSB9KS5ib2R5O1xuICAgICAgICAgIGNvbnN0IGJvZHlSYW5nZSA9IGZ1bmNCb2R5Py5yYW5nZTtcbiAgICAgICAgICBjb25zdCBoYXNCb2R5UmVmZXJlbmNlcyA9IHZhcmlhYmxlLnJlZmVyZW5jZXMuc29tZSgocmVmKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlZi5pc1JlYWQoKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB3ZSBjYW4gZGV0ZXJtaW5lIHRoZSBib2R5IHJhbmdlLCBvbmx5IGNvdW50IHJlZnMgaW5zaWRlIGl0XG4gICAgICAgICAgICBpZiAoYm9keVJhbmdlICYmIHJlZi5pZGVudGlmaWVyLnJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZWYuaWRlbnRpZmllci5yYW5nZVswXSA+PSBib2R5UmFuZ2VbMF1cbiAgICAgICAgICAgICAgICAmJiByZWYuaWRlbnRpZmllci5yYW5nZVsxXSA8PSBib2R5UmFuZ2VbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGYWxsYmFjazogY291bnQgYWxsIHJlYWRzXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaGFzQm9keVJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgZGF0YTogeyBuYW1lOiB2YXJpYWJsZS5uYW1lIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdQYXJhbWV0ZXIgXCJ7eyBuYW1lIH19XCIgaGFzIGEgYF9gIHByZWZpeCBidXQgaXMgdXNlZC4gUmVtb3ZlIHRoZSBgX2AgcHJlZml4IHNpbmNlIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHVudXNlZCAoRzEwZSkuJyxcbiAgICAgICAgICAgICAgbm9kZTogZGVmTm9kZS5uYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdEaXNhbGxvdyBgX2AtcHJlZml4ZWQgcGFyYW1ldGVycyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkIGluIHRoZSBmdW5jdGlvbiBib2R5J1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAncHJvYmxlbSdcbiAgfVxufTtcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNPLE1BQU0seUJBQTBDO0FBQUEsRUFDckQsT0FBTyxTQUFTO0FBQ2QsV0FBTztBQUFBLE1BQ0wsWUFBWSxNQUF1QjtBQUNqQyxjQUFNLFFBQVEsUUFBUSxXQUFXLFNBQVMsSUFBSTtBQUU5QyxtQkFBVyxZQUFZLE1BQU0sV0FBVztBQUN0QyxjQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsR0FBRyxHQUFHO0FBQ2xDO0FBQUEsVUFDRjtBQUdBLGdCQUFNLFVBQVUsU0FBUyxLQUFLLENBQUM7QUFDL0IsY0FBSSxTQUFTLFNBQVMsYUFBYTtBQUNqQztBQUFBLFVBQ0Y7QUFJQSxnQkFBTSxXQUFZLEtBQThCO0FBQ2hELGdCQUFNLFlBQVksVUFBVTtBQUM1QixnQkFBTSxvQkFBb0IsU0FBUyxXQUFXLEtBQUssQ0FBQyxRQUFRO0FBQzFELGdCQUFJLENBQUMsSUFBSSxPQUFPLEdBQUc7QUFDakIscUJBQU87QUFBQSxZQUNUO0FBRUEsZ0JBQUksYUFBYSxJQUFJLFdBQVcsT0FBTztBQUNyQyxxQkFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDLEtBQ3hDLElBQUksV0FBVyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQUM7QUFBQSxZQUM3QztBQUVBLG1CQUFPO0FBQUEsVUFDVCxDQUFDO0FBQ0QsY0FBSSxtQkFBbUI7QUFDckIsb0JBQVEsT0FBTztBQUFBLGNBQ2IsTUFBTSxFQUFFLE1BQU0sU0FBUyxLQUFLO0FBQUEsY0FDNUIsU0FBUztBQUFBLGNBQ1QsTUFBTSxRQUFRO0FBQUEsWUFDaEIsQ0FBQztBQUFBLFVBQ0g7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsUUFBUSxDQUFDO0FBQUEsSUFDVCxNQUFNO0FBQUEsRUFDUjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=