@mnaoumov/obsidian-dev-toolkit 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/demo-vault-helper/main.js +499 -17
- package/dist/integration-test-plugin/main.js +11251 -2472
- package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +9 -22
- package/dist/lib/cjs/bundlers/esbuild-impl/dependency.cjs +9 -22
- package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +9 -22
- package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +9 -22
- package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +9 -22
- package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +9 -22
- package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.cjs +9 -22
- package/dist/lib/cjs/bundlers/esbuild.cjs +9 -22
- package/dist/lib/cjs/bundlers/index.cjs +9 -22
- package/dist/lib/cjs/demo-vault-app-json.cjs +9 -22
- package/dist/lib/cjs/demo-vault-buttons.cjs +9 -22
- package/dist/lib/cjs/demo-vault-buttons.d.cts +7 -7
- package/dist/lib/cjs/demo-vault-coverage.cjs +11 -23
- package/dist/lib/cjs/demo-vault.cjs +9 -22
- package/dist/lib/cjs/formatters/dprint.cjs +9 -22
- package/dist/lib/cjs/formatters/index.cjs +9 -22
- package/dist/lib/cjs/index.cjs +9 -22
- package/dist/lib/cjs/integration-test-setup.cjs +9 -22
- package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +9 -22
- package/dist/lib/cjs/jest-setup.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-config.cjs +60 -22
- package/dist/lib/cjs/linters/eslint-rules/index.cjs +23 -24
- package/dist/lib/cjs/linters/eslint-rules/index.d.cts +4 -0
- package/dist/lib/cjs/linters/eslint-rules/manifest-description.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-rules/manifest-id.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-rules/manifest-name.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-rules/manifest-schema.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.cjs +259 -0
- package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.d.cts +10 -0
- package/dist/lib/cjs/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +18 -23
- package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.cjs +263 -0
- package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.d.cts +30 -0
- package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code.cjs +215 -0
- package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code.d.cts +29 -0
- package/dist/lib/cjs/linters/eslint-rules/require-component-suffix.cjs +9 -22
- package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.cjs +306 -0
- package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.d.cts +10 -0
- package/dist/lib/cjs/linters/eslint.cjs +9 -22
- package/dist/lib/cjs/linters/index.cjs +20 -24
- package/dist/lib/cjs/linters/index.d.cts +3 -0
- package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +171 -0
- package/dist/lib/cjs/linters/markdownlint-cli2-config.d.cts +12 -0
- package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +164 -0
- package/dist/lib/cjs/linters/markdownlint-rules/index.d.cts +2 -0
- package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.cjs +246 -0
- package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.d.cts +32 -0
- package/dist/lib/cjs/linters/markdownlint.cjs +9 -22
- package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.cjs +9 -22
- package/dist/lib/cjs/linters/plugin-names.cjs +249 -0
- package/dist/lib/cjs/linters/plugin-names.d.cts +81 -0
- package/dist/lib/cjs/obsidian-plugin-repo-paths.cjs +9 -22
- package/dist/lib/cjs/setup.cjs +9 -22
- package/dist/lib/cjs/templates.cjs +9 -22
- package/dist/lib/cjs/test-runners/index.cjs +9 -22
- package/dist/lib/cjs/test-runners/integration-test-plugin.cjs +9 -22
- package/dist/lib/cjs/test-runners/performance-eval-cap.cjs +9 -22
- package/dist/lib/cjs/test-runners/stale-build-global-setup.cjs +9 -22
- package/dist/lib/cjs/test-runners/vitest-config.cjs +9 -22
- package/dist/lib/cjs/version.cjs +9 -22
- package/dist/lib/cjs/vitest-setup.cjs +9 -22
- package/dist/lib/esm/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +6 -14
- package/dist/lib/esm/bundlers/esbuild-impl/dependency.mjs +6 -14
- package/dist/lib/esm/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +6 -14
- package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +6 -14
- package/dist/lib/esm/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +6 -14
- package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +6 -14
- package/dist/lib/esm/bundlers/esbuild-impl/rename-css-plugin.mjs +6 -14
- package/dist/lib/esm/bundlers/esbuild.mjs +6 -14
- package/dist/lib/esm/bundlers/index.mjs +6 -14
- package/dist/lib/esm/demo-vault-app-json.mjs +6 -14
- package/dist/lib/esm/demo-vault-buttons.d.mts +7 -7
- package/dist/lib/esm/demo-vault-buttons.mjs +6 -14
- package/dist/lib/esm/demo-vault-coverage.mjs +8 -15
- package/dist/lib/esm/demo-vault.mjs +6 -14
- package/dist/lib/esm/formatters/dprint.mjs +6 -14
- package/dist/lib/esm/formatters/index.mjs +6 -14
- package/dist/lib/esm/index.mjs +6 -14
- package/dist/lib/esm/integration-test-setup.mjs +6 -14
- package/dist/lib/esm/integration-test-vitest-global-setup.mjs +6 -14
- package/dist/lib/esm/jest-setup.mjs +6 -14
- package/dist/lib/esm/linters/eslint-config.mjs +57 -14
- package/dist/lib/esm/linters/eslint-rules/index.d.mts +4 -0
- package/dist/lib/esm/linters/eslint-rules/index.mjs +15 -15
- package/dist/lib/esm/linters/eslint-rules/manifest-description.mjs +6 -14
- package/dist/lib/esm/linters/eslint-rules/manifest-helpers.mjs +6 -14
- package/dist/lib/esm/linters/eslint-rules/manifest-id.mjs +6 -14
- package/dist/lib/esm/linters/eslint-rules/manifest-name.mjs +6 -14
- package/dist/lib/esm/linters/eslint-rules/manifest-schema.mjs +6 -14
- package/dist/lib/esm/linters/eslint-rules/no-local-obsidian-internals.d.mts +10 -0
- package/dist/lib/esm/linters/eslint-rules/no-local-obsidian-internals.mjs +150 -0
- package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.mjs +6 -14
- package/dist/lib/esm/linters/eslint-rules/no-untrusted-input-events.mjs +6 -14
- package/dist/lib/esm/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +15 -15
- package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code-in-ui.d.mts +30 -0
- package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code-in-ui.mjs +157 -0
- package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code.d.mts +29 -0
- package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code.mjs +108 -0
- package/dist/lib/esm/linters/eslint-rules/require-component-suffix.mjs +6 -14
- package/dist/lib/esm/linters/eslint-rules/require-plugin-api-contract-schemas.d.mts +10 -0
- package/dist/lib/esm/linters/eslint-rules/require-plugin-api-contract-schemas.mjs +197 -0
- package/dist/lib/esm/linters/eslint.mjs +6 -14
- package/dist/lib/esm/linters/index.d.mts +3 -0
- package/dist/lib/esm/linters/index.mjs +13 -15
- package/dist/lib/esm/linters/markdownlint-cli2-config.d.mts +12 -0
- package/dist/lib/esm/linters/markdownlint-cli2-config.mjs +66 -0
- package/dist/lib/esm/linters/markdownlint-rules/index.d.mts +2 -0
- package/dist/lib/esm/linters/markdownlint-rules/index.mjs +46 -0
- package/dist/lib/esm/linters/markdownlint-rules/plugin-name-as-code.d.mts +32 -0
- package/dist/lib/esm/linters/markdownlint-rules/plugin-name-as-code.mjs +130 -0
- package/dist/lib/esm/linters/markdownlint.mjs +6 -14
- package/dist/lib/esm/linters/obsidianmd-rule-custom-message.mjs +6 -14
- package/dist/lib/esm/linters/plugin-names.d.mts +81 -0
- package/dist/lib/esm/linters/plugin-names.mjs +141 -0
- package/dist/lib/esm/obsidian-plugin-repo-paths.mjs +6 -14
- package/dist/lib/esm/setup.mjs +6 -14
- package/dist/lib/esm/templates.mjs +6 -14
- package/dist/lib/esm/test-runners/index.mjs +6 -14
- package/dist/lib/esm/test-runners/integration-test-plugin.mjs +6 -14
- package/dist/lib/esm/test-runners/performance-eval-cap.mjs +6 -14
- package/dist/lib/esm/test-runners/stale-build-global-setup.mjs +6 -14
- package/dist/lib/esm/test-runners/vitest-config.mjs +6 -14
- package/dist/lib/esm/version.mjs +6 -14
- package/dist/lib/esm/vitest-setup.mjs +6 -14
- package/dist/templates/scripts/markdownlint-cli2-config.ts +2 -2
- package/linters/eslint-rules/no-local-obsidian-internals/package.json +6 -0
- package/linters/eslint-rules/plugin-name-as-code/package.json +6 -0
- package/linters/eslint-rules/plugin-name-as-code-in-ui/package.json +6 -0
- package/linters/eslint-rules/require-plugin-api-contract-schemas/package.json +6 -0
- package/linters/markdownlint-cli2-config/package.json +6 -0
- package/linters/markdownlint-rules/index/package.json +6 -0
- package/linters/markdownlint-rules/package.json +6 -0
- package/linters/markdownlint-rules/plugin-name-as-code/package.json +6 -0
- package/linters/plugin-names/package.json +6 -0
- package/package.json +84 -23
|
@@ -0,0 +1,306 @@
|
|
|
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 ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function ensureBrowserProcess() {
|
|
13
|
+
const browserProcess = {
|
|
14
|
+
browser: true,
|
|
15
|
+
cwd() {
|
|
16
|
+
return "/";
|
|
17
|
+
},
|
|
18
|
+
env: {},
|
|
19
|
+
platform: "android"
|
|
20
|
+
};
|
|
21
|
+
const existingProcess = globalThis.process;
|
|
22
|
+
if (!existingProcess) {
|
|
23
|
+
globalThis.process = browserProcess;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (existingProcess.versions?.node) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const existingProcessRecord = existingProcess;
|
|
30
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
31
|
+
existingProcessRecord[key] ??= value;
|
|
32
|
+
}
|
|
33
|
+
existingProcessRecord["browser"] = true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function keepName($unknown) {
|
|
37
|
+
return $unknown;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
(function initCjs() {
|
|
41
|
+
const globalThisRecord = globalThis;
|
|
42
|
+
ensureDisposeSymbols();
|
|
43
|
+
globalThisRecord["__name"] ??= keepName;
|
|
44
|
+
globalThisRecord["__extractDefault"] ??= extractDefault;
|
|
45
|
+
ensureBrowserProcess();
|
|
46
|
+
function extractDefault(module) {
|
|
47
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
48
|
+
}
|
|
49
|
+
})();
|
|
50
|
+
})();
|
|
51
|
+
(function patchObsidianRequire() {
|
|
52
|
+
const originalRequire = require;
|
|
53
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
require = Object.assign(
|
|
58
|
+
(id) => requirePatched(id),
|
|
59
|
+
originalRequire,
|
|
60
|
+
{
|
|
61
|
+
__isPatched: true
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
function extractDefault(module) {
|
|
66
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
70
|
+
'@codemirror/autocomplete',
|
|
71
|
+
'@codemirror/collab',
|
|
72
|
+
'@codemirror/commands',
|
|
73
|
+
'@codemirror/language',
|
|
74
|
+
'@codemirror/lint',
|
|
75
|
+
'@codemirror/search',
|
|
76
|
+
'@codemirror/state',
|
|
77
|
+
'@codemirror/text',
|
|
78
|
+
'@codemirror/view',
|
|
79
|
+
'@lezer/common',
|
|
80
|
+
'@lezer/highlight',
|
|
81
|
+
'@lezer/lr',
|
|
82
|
+
'obsidian']
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
86
|
+
'@codemirror/closebrackets',
|
|
87
|
+
'@codemirror/comment',
|
|
88
|
+
'@codemirror/fold',
|
|
89
|
+
'@codemirror/gutter',
|
|
90
|
+
'@codemirror/highlight',
|
|
91
|
+
'@codemirror/history',
|
|
92
|
+
'@codemirror/matchbrackets',
|
|
93
|
+
'@codemirror/panel',
|
|
94
|
+
'@codemirror/rangeset',
|
|
95
|
+
'@codemirror/rectangular-selection',
|
|
96
|
+
'@codemirror/stream-parser',
|
|
97
|
+
'@codemirror/tooltip']
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
function requirePatched(id) {
|
|
101
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
102
|
+
return originalRequire?.(id);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
106
|
+
if (globalThis.app.isMobile) {
|
|
107
|
+
if (id === 'process' || id === 'node:process') {
|
|
108
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
109
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
110
|
+
|
|
111
|
+
return process;
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
const module = originalRequire?.(id);
|
|
115
|
+
if (module) {
|
|
116
|
+
return extractDefault(module);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
121
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
122
|
+
return {};
|
|
123
|
+
}
|
|
124
|
+
})();
|
|
125
|
+
|
|
126
|
+
"use strict";
|
|
127
|
+
var __defProp = Object.defineProperty;
|
|
128
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
129
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
130
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
131
|
+
var __export = (target, all) => {
|
|
132
|
+
for (var name in all)
|
|
133
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
134
|
+
};
|
|
135
|
+
var __copyProps = (to, from, except, desc) => {
|
|
136
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
137
|
+
for (let key of __getOwnPropNames(from))
|
|
138
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
139
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
140
|
+
}
|
|
141
|
+
return to;
|
|
142
|
+
};
|
|
143
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
144
|
+
var require_plugin_api_contract_schemas_exports = {};
|
|
145
|
+
__export(require_plugin_api_contract_schemas_exports, {
|
|
146
|
+
MESSAGE_ID: () => MESSAGE_ID,
|
|
147
|
+
requirePluginApiContractSchemas: () => requirePluginApiContractSchemas
|
|
148
|
+
});
|
|
149
|
+
module.exports = __toCommonJS(require_plugin_api_contract_schemas_exports);
|
|
150
|
+
var import_ts_estree_node = require('@mnaoumov/typescript-dev-toolkit/linters/eslint-rules/ts-estree-node');
|
|
151
|
+
var import_utils = require('@typescript-eslint/utils');
|
|
152
|
+
const MESSAGE_ID = "requirePluginApiContractSchemas";
|
|
153
|
+
const CONTRACT_TYPE_NAMES = /* @__PURE__ */ new Set(["PluginApiContract", "TypedPluginApiContract"]);
|
|
154
|
+
const CONTRACT_VARIABLE_NAME_PATTERN = /_API_CONTRACT(?:_V\d+)?$/;
|
|
155
|
+
const CONTRACT_PROPERTY_NAME = "contract";
|
|
156
|
+
const REQUIRED_SCHEMA_NAMES = ["input", "output"];
|
|
157
|
+
const requirePluginApiContractSchemas = {
|
|
158
|
+
create(context) {
|
|
159
|
+
const checkedContracts = /* @__PURE__ */ new Set();
|
|
160
|
+
return {
|
|
161
|
+
"Property"(node) {
|
|
162
|
+
const propertyNode = (0, import_ts_estree_node.toTSESTreeNode)(node);
|
|
163
|
+
if (propertyNode.parent.type === import_utils.AST_NODE_TYPES.ObjectExpression && !propertyNode.computed && readKeyName(propertyNode.key) === CONTRACT_PROPERTY_NAME) {
|
|
164
|
+
reportContractEntries(propertyNode.value);
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"TSAsExpression, TSSatisfiesExpression"(node) {
|
|
168
|
+
const expressionNode = (0, import_ts_estree_node.toTSESTreeNode)(node);
|
|
169
|
+
if (isContractType(expressionNode.typeAnnotation)) {
|
|
170
|
+
reportContractEntries(expressionNode.expression);
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"VariableDeclarator"(node) {
|
|
174
|
+
const declaratorNode = (0, import_ts_estree_node.toTSESTreeNode)(node);
|
|
175
|
+
if (declaratorNode.id.type !== import_utils.AST_NODE_TYPES.Identifier || !declaratorNode.init) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const typeNode = declaratorNode.id.typeAnnotation?.typeAnnotation;
|
|
179
|
+
if (CONTRACT_VARIABLE_NAME_PATTERN.test(declaratorNode.id.name) || typeNode !== void 0 && isContractType(typeNode)) {
|
|
180
|
+
reportContractEntries(declaratorNode.init);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
function reportContractEntries(node) {
|
|
185
|
+
const contractNode = resolveObjectLiteral(node, context);
|
|
186
|
+
if (!contractNode || checkedContracts.has(contractNode)) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
checkedContracts.add(contractNode);
|
|
190
|
+
for (const entry of contractNode.properties) {
|
|
191
|
+
if (entry.type !== import_utils.AST_NODE_TYPES.Property) {
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
const missingSchemaNames = readMissingSchemaNames(entry.value, context);
|
|
195
|
+
if (missingSchemaNames.length === 0) {
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
context.report({
|
|
199
|
+
data: {
|
|
200
|
+
method: (entry.computed ? null : readKeyName(entry.key)) ?? "[computed]",
|
|
201
|
+
missing: missingSchemaNames.map((name) => `\`${name}\``).join(" and ")
|
|
202
|
+
},
|
|
203
|
+
loc: entry.key.loc,
|
|
204
|
+
messageId: MESSAGE_ID
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
meta: {
|
|
210
|
+
docs: {
|
|
211
|
+
description: "Require an `input` and an `output` schema on every method entry of a plugin API contract"
|
|
212
|
+
},
|
|
213
|
+
messages: {
|
|
214
|
+
[MESSAGE_ID]: "The plugin API contract entry `{{ method }}` declares no {{ missing }} schema. Give every method entry both an `input` schema over its argument list and an `output` schema over its awaited return value."
|
|
215
|
+
},
|
|
216
|
+
schema: [],
|
|
217
|
+
type: "problem"
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
function findVariable(scope, name) {
|
|
221
|
+
let currentScope = scope;
|
|
222
|
+
while (currentScope) {
|
|
223
|
+
const variable = currentScope.set.get(name);
|
|
224
|
+
if (variable) {
|
|
225
|
+
return variable;
|
|
226
|
+
}
|
|
227
|
+
currentScope = currentScope.upper;
|
|
228
|
+
}
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
function isContractType(typeNode) {
|
|
232
|
+
if (typeNode.type !== import_utils.AST_NODE_TYPES.TSTypeReference) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
const typeName = typeNode.typeName;
|
|
236
|
+
return typeName.type === import_utils.AST_NODE_TYPES.Identifier ? CONTRACT_TYPE_NAMES.has(typeName.name) : typeName.type === import_utils.AST_NODE_TYPES.TSQualifiedName && CONTRACT_TYPE_NAMES.has(typeName.right.name);
|
|
237
|
+
}
|
|
238
|
+
function readKeyName(key) {
|
|
239
|
+
if (key.type === import_utils.AST_NODE_TYPES.Identifier) {
|
|
240
|
+
return key.name;
|
|
241
|
+
}
|
|
242
|
+
return key.type === import_utils.AST_NODE_TYPES.Literal && typeof key.value === "string" ? key.value : null;
|
|
243
|
+
}
|
|
244
|
+
function readMissingSchemaNames(node, context) {
|
|
245
|
+
const entryNode = resolveObjectLiteral(node, context);
|
|
246
|
+
if (!entryNode) {
|
|
247
|
+
return [];
|
|
248
|
+
}
|
|
249
|
+
const keyNames = /* @__PURE__ */ new Set();
|
|
250
|
+
for (const member of entryNode.properties) {
|
|
251
|
+
if (member.type !== import_utils.AST_NODE_TYPES.Property) {
|
|
252
|
+
return [];
|
|
253
|
+
}
|
|
254
|
+
const keyName = member.computed ? null : readKeyName(member.key);
|
|
255
|
+
if (keyName !== null) {
|
|
256
|
+
keyNames.add(keyName);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return REQUIRED_SCHEMA_NAMES.filter((name) => !keyNames.has(name));
|
|
260
|
+
}
|
|
261
|
+
function resolveConstInit(node, context) {
|
|
262
|
+
const variable = findVariable(context.sourceCode.getScope(node), node.name);
|
|
263
|
+
const definition = variable?.defs.length === 1 ? variable.defs[0] : void 0;
|
|
264
|
+
if (definition?.type !== "Variable") {
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
const declaratorNode = (0, import_ts_estree_node.toTSESTreeNode)(definition.node);
|
|
268
|
+
const declarationNode = declaratorNode.parent;
|
|
269
|
+
return declarationNode.kind === "const" ? declaratorNode.init : null;
|
|
270
|
+
}
|
|
271
|
+
function resolveObjectLiteral(node, context) {
|
|
272
|
+
const visitedNodes = /* @__PURE__ */ new Set();
|
|
273
|
+
let currentNode = node;
|
|
274
|
+
while (!visitedNodes.has(currentNode)) {
|
|
275
|
+
visitedNodes.add(currentNode);
|
|
276
|
+
switch (currentNode.type) {
|
|
277
|
+
case import_utils.AST_NODE_TYPES.Identifier: {
|
|
278
|
+
const initNode = resolveConstInit(currentNode, context);
|
|
279
|
+
if (!initNode) {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
currentNode = initNode;
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
case import_utils.AST_NODE_TYPES.ObjectExpression: {
|
|
286
|
+
return currentNode;
|
|
287
|
+
}
|
|
288
|
+
case import_utils.AST_NODE_TYPES.TSAsExpression:
|
|
289
|
+
case import_utils.AST_NODE_TYPES.TSNonNullExpression:
|
|
290
|
+
case import_utils.AST_NODE_TYPES.TSSatisfiesExpression: {
|
|
291
|
+
currentNode = currentNode.expression;
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
default: {
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return null;
|
|
300
|
+
}
|
|
301
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
302
|
+
0 && (module.exports = {
|
|
303
|
+
MESSAGE_ID,
|
|
304
|
+
requirePluginApiContractSchemas
|
|
305
|
+
});
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LXJ1bGVzL3JlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHJ1bGU6IHJlcXVpcmUtcGx1Z2luLWFwaS1jb250cmFjdC1zY2hlbWFzXG4gKlxuICogUmVwb3J0cyBhIG1ldGhvZCBlbnRyeSBvZiBhIHBsdWdpbiBBUEkgY29udHJhY3QgdGhhdCBsYWNrcyBhbiBgaW5wdXRgIG9yIGFuIGBvdXRwdXRgIHNjaGVtYS5cbiAqXG4gKiBBIHR5cGVkIGBQbHVnaW5BcGlDb250cmFjdDxNeUFwaT5gIGFscmVhZHkgcmVmdXNlcyBzdWNoIGFuIGVudHJ5IGF0IGNvbXBpbGUgdGltZS4gVGhlIHVudHlwZWQgZGVmYXVsdCwgdGhlXG4gKiBzdHJ1Y3R1cmFsbHkgdHlwZWQgY29udHJhY3RzIGEgcHJvdmlkZXIgc2hpcHMgYmVzaWRlIGl0cyBgYXBpLmQudHNgLCBhbmQgZXZlcnkgcmVwb3NpdG9yeSBzdGlsbCBvblxuICogYG9ic2lkaWFuLWRldi11dGlsc2AgZ2V0IG5vIHN1Y2ggY2hlY2ssIHNvIGEgYHt9YCBlbnRyeSB0aGVyZSBjb21waWxlcywgZGVjbGFyZXMgb25seSB0aGF0IHRoZSBtZXRob2QgZXhpc3RzLCBhbmRcbiAqIHZhbGlkYXRlcyBub3RoaW5nLiBUaGlzIHJ1bGUgY2xvc2VzIHRoYXQgZ2FwIGZvciBldmVyeSBjb250cmFjdCBpdCBjYW4gcmVjb2duaXplLlxuICpcbiAqIEFuIG9iamVjdCBsaXRlcmFsIGlzIHJlYWQgYXMgYSBjb250cmFjdCB3aGVuIGl0IGlzOlxuICpcbiAqIC0gdGhlIGluaXRpYWxpemVyIG9mIGEgdmFyaWFibGUgdHlwZWQgYFBsdWdpbkFwaUNvbnRyYWN0YCAob3IgYFR5cGVkUGx1Z2luQXBpQ29udHJhY3RgKTtcbiAqIC0gdGhlIG9wZXJhbmQgb2YgYHNhdGlzZmllcyBQbHVnaW5BcGlDb250cmFjdGAgb3IgYGFzIFBsdWdpbkFwaUNvbnRyYWN0YDtcbiAqIC0gdGhlIHZhbHVlIG9mIGEgYGNvbnRyYWN0YCBwcm9wZXJ0eSBvZiBhbiBvYmplY3QgbGl0ZXJhbCwgYXMgcGFzc2VkIHRvIGBwdWJsaXNoUGx1Z2luQXBpYCwgYHdhdGNoUGx1Z2luQXBpYCBvclxuICogICBgZmluZFBsdWdpbkFwaWA7XG4gKiAtIHRoZSBpbml0aWFsaXplciBvZiBhIHZhcmlhYmxlIG5hbWVkIGAqX0FQSV9DT05UUkFDVGAsIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgYSBgX1Y8bj5gIHZlcnNpb24gc3VmZml4LlxuICpcbiAqIEVhY2ggb2YgaXRzIGVudHJpZXMgaXMgYSBtZXRob2QgZW50cnkuIEFuIGVudHJ5LCBvciBhIGNvbnRyYWN0LCB3cml0dGVuIGFzIHRoZSBuYW1lIG9mIGEgYGNvbnN0YCBpcyBmb2xsb3dlZCB0b1xuICogdGhhdCBjb25zdGFudCdzIG9iamVjdCBsaXRlcmFsLCBzbyBhIG1ldGhvZCBjb250cmFjdCBzaGFyZWQgYnkgc2V2ZXJhbCBlbnRyaWVzIGlzIGNoZWNrZWQgb25jZSBwZXIgZW50cnkuXG4gKlxuICogTm90IGF0dGVtcHRlZDogYW4gZW50cnkgYnVpbHQgYnkgYSBjYWxsLCByZWFkIGZyb20gYW5vdGhlciBtb2R1bGUsIG9yIGNhcnJ5aW5nIGEgc3ByZWFkIGNhbm5vdCBiZSByZWFkXG4gKiBzdGF0aWNhbGx5LCBzbyBpdCBpcyBza2lwcGVkLiBUaGUgcnVsZSB1bmRlci1yZXBvcnRzIHJhdGhlciB0aGFuIGd1ZXNzaW5nLlxuICovXG5pbXBvcnQgdHlwZSB7IFRTRVNUcmVlIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJztcbmltcG9ydCB0eXBlIHtcbiAgUnVsZSxcbiAgU2NvcGVcbn0gZnJvbSAnZXNsaW50JztcblxuaW1wb3J0IHsgdG9UU0VTVHJlZU5vZGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL2VzbGludC1ydWxlcy90cy1lc3RyZWUtbm9kZSc7XG5pbXBvcnQgeyBBU1RfTk9ERV9UWVBFUyB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5cbi8qKlxuICogTWVzc2FnZSBJRCByZXBvcnRlZCBmb3IgYSBtZXRob2QgZW50cnkgdGhhdCBsYWNrcyBhIHNjaGVtYS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAncmVxdWlyZVBsdWdpbkFwaUNvbnRyYWN0U2NoZW1hcyc7XG5cbi8qKlxuICogVGhlIHR5cGUgbmFtZXMgdGhhdCBtYXJrIGFuIG9iamVjdCBsaXRlcmFsIGFzIGEgcGx1Z2luIEFQSSBjb250cmFjdC5cbiAqL1xuY29uc3QgQ09OVFJBQ1RfVFlQRV9OQU1FUyA9IG5ldyBTZXQoWydQbHVnaW5BcGlDb250cmFjdCcsICdUeXBlZFBsdWdpbkFwaUNvbnRyYWN0J10pO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIGEgdmFyaWFibGUgaG9sZGluZyBhIHBsdWdpbiBBUEkgY29udHJhY3QsIHN1Y2ggYXMgYE1ZX0FQSV9DT05UUkFDVGAgb3IgYE1ZX0FQSV9DT05UUkFDVF9WMmAuXG4gKi9cbmNvbnN0IENPTlRSQUNUX1ZBUklBQkxFX05BTUVfUEFUVEVSTiA9IC9fQVBJX0NPTlRSQUNUKD86X1ZcXGQrKT8kLztcblxuLyoqXG4gKiBUaGUgcHJvcGVydHkgYSBjb250cmFjdCBpcyBwYXNzZWQgdW5kZXIuXG4gKi9cbmNvbnN0IENPTlRSQUNUX1BST1BFUlRZX05BTUUgPSAnY29udHJhY3QnO1xuXG4vKipcbiAqIFRoZSBzY2hlbWFzIGV2ZXJ5IG1ldGhvZCBlbnRyeSBtdXN0IGRlY2xhcmUuXG4gKi9cbmNvbnN0IFJFUVVJUkVEX1NDSEVNQV9OQU1FUyA9IFsnaW5wdXQnLCAnb3V0cHV0J10gYXMgY29uc3Q7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcmVxdWlyaW5nIGJvdGggYW4gYGlucHV0YCBhbmQgYW4gYG91dHB1dGAgc2NoZW1hIG9uIGV2ZXJ5IG1ldGhvZCBlbnRyeSBvZiBhIHBsdWdpbiBBUEkgY29udHJhY3QuXG4gKi9cbmV4cG9ydCBjb25zdCByZXF1aXJlUGx1Z2luQXBpQ29udHJhY3RTY2hlbWFzOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgY2hlY2tlZENvbnRyYWN0cyA9IG5ldyBTZXQ8VFNFU1RyZWUuT2JqZWN0RXhwcmVzc2lvbj4oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAnUHJvcGVydHknKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eU5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5Qcm9wZXJ0eTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHByb3BlcnR5Tm9kZS5wYXJlbnQudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuT2JqZWN0RXhwcmVzc2lvbiAmJiAhcHJvcGVydHlOb2RlLmNvbXB1dGVkXG4gICAgICAgICAgJiYgcmVhZEtleU5hbWUocHJvcGVydHlOb2RlLmtleSkgPT09IENPTlRSQUNUX1BST1BFUlRZX05BTUVcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmVwb3J0Q29udHJhY3RFbnRyaWVzKHByb3BlcnR5Tm9kZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAnVFNBc0V4cHJlc3Npb24sIFRTU2F0aXNmaWVzRXhwcmVzc2lvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb25Ob2RlID0gdG9UU0VTVHJlZU5vZGUobm9kZSkgYXMgVFNFU1RyZWUuVFNBc0V4cHJlc3Npb24gfCBUU0VTVHJlZS5UU1NhdGlzZmllc0V4cHJlc3Npb247XG4gICAgICAgIGlmIChpc0NvbnRyYWN0VHlwZShleHByZXNzaW9uTm9kZS50eXBlQW5ub3RhdGlvbikpIHtcbiAgICAgICAgICByZXBvcnRDb250cmFjdEVudHJpZXMoZXhwcmVzc2lvbk5vZGUuZXhwcmVzc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAnVmFyaWFibGVEZWNsYXJhdG9yJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGVjbGFyYXRvck5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5WYXJpYWJsZURlY2xhcmF0b3I7XG4gICAgICAgIGlmIChkZWNsYXJhdG9yTm9kZS5pZC50eXBlICE9PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyIHx8ICFkZWNsYXJhdG9yTm9kZS5pbml0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBkZWNsYXJhdG9yTm9kZS5pZC50eXBlQW5ub3RhdGlvbj8udHlwZUFubm90YXRpb247XG4gICAgICAgIGlmIChDT05UUkFDVF9WQVJJQUJMRV9OQU1FX1BBVFRFUk4udGVzdChkZWNsYXJhdG9yTm9kZS5pZC5uYW1lKSB8fCAodHlwZU5vZGUgIT09IHVuZGVmaW5lZCAmJiBpc0NvbnRyYWN0VHlwZSh0eXBlTm9kZSkpKSB7XG4gICAgICAgICAgcmVwb3J0Q29udHJhY3RFbnRyaWVzKGRlY2xhcmF0b3JOb2RlLmluaXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHJlcG9ydENvbnRyYWN0RW50cmllcyhub2RlOiBUU0VTVHJlZS5Ob2RlKTogdm9pZCB7XG4gICAgICBjb25zdCBjb250cmFjdE5vZGUgPSByZXNvbHZlT2JqZWN0TGl0ZXJhbChub2RlLCBjb250ZXh0KTtcbiAgICAgIGlmICghY29udHJhY3ROb2RlIHx8IGNoZWNrZWRDb250cmFjdHMuaGFzKGNvbnRyYWN0Tm9kZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjaGVja2VkQ29udHJhY3RzLmFkZChjb250cmFjdE5vZGUpO1xuXG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGNvbnRyYWN0Tm9kZS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmIChlbnRyeS50eXBlICE9PSBBU1RfTk9ERV9UWVBFUy5Qcm9wZXJ0eSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWlzc2luZ1NjaGVtYU5hbWVzID0gcmVhZE1pc3NpbmdTY2hlbWFOYW1lcyhlbnRyeS52YWx1ZSwgY29udGV4dCk7XG4gICAgICAgIGlmIChtaXNzaW5nU2NoZW1hTmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgbWV0aG9kOiAoZW50cnkuY29tcHV0ZWQgPyBudWxsIDogcmVhZEtleU5hbWUoZW50cnkua2V5KSkgPz8gJ1tjb21wdXRlZF0nLFxuICAgICAgICAgICAgbWlzc2luZzogbWlzc2luZ1NjaGVtYU5hbWVzLm1hcCgobmFtZSkgPT4gYFxcYCR7bmFtZX1cXGBgKS5qb2luKCcgYW5kICcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2M6IGVudHJ5LmtleS5sb2MsXG4gICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUmVxdWlyZSBhbiBgaW5wdXRgIGFuZCBhbiBgb3V0cHV0YCBzY2hlbWEgb24gZXZlcnkgbWV0aG9kIGVudHJ5IG9mIGEgcGx1Z2luIEFQSSBjb250cmFjdCdcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBbTUVTU0FHRV9JRF06ICdUaGUgcGx1Z2luIEFQSSBjb250cmFjdCBlbnRyeSBge3sgbWV0aG9kIH19YCBkZWNsYXJlcyBubyB7eyBtaXNzaW5nIH19IHNjaGVtYS4gR2l2ZSBldmVyeSBtZXRob2QgZW50cnkgYm90aCBhbiBgaW5wdXRgIHNjaGVtYSBvdmVyIGl0cyBhcmd1bWVudCBsaXN0IGFuZCBhbiBgb3V0cHV0YCBzY2hlbWEgb3ZlciBpdHMgYXdhaXRlZCByZXR1cm4gdmFsdWUuJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAncHJvYmxlbSdcbiAgfVxufTtcblxuLyoqXG4gKiBGaW5kcyBhIHZhcmlhYmxlIGJ5IG5hbWUsIHdhbGtpbmcgb3V0d2FyZHMgZnJvbSB0aGUgZ2l2ZW4gc2NvcGUuXG4gKlxuICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIHRvIHN0YXJ0IGZyb20uXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSB2YXJpYWJsZSdzIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgdmFyaWFibGUsIG9yIGBudWxsYCB3aGVuIG5vdGhpbmcgaW4gc2NvcGUgZGVjbGFyZXMgdGhhdCBuYW1lLlxuICovXG5mdW5jdGlvbiBmaW5kVmFyaWFibGUoc2NvcGU6IFNjb3BlLlNjb3BlLCBuYW1lOiBzdHJpbmcpOiBudWxsIHwgU2NvcGUuVmFyaWFibGUge1xuICBsZXQgY3VycmVudFNjb3BlOiBudWxsIHwgU2NvcGUuU2NvcGUgPSBzY29wZTtcblxuICB3aGlsZSAoY3VycmVudFNjb3BlKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSBjdXJyZW50U2NvcGUuc2V0LmdldChuYW1lKTtcbiAgICBpZiAodmFyaWFibGUpIHtcbiAgICAgIHJldHVybiB2YXJpYWJsZTtcbiAgICB9XG4gICAgY3VycmVudFNjb3BlID0gY3VycmVudFNjb3BlLnVwcGVyO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB0eXBlIG5hbWVzIGEgcGx1Z2luIEFQSSBjb250cmFjdCwgZGlyZWN0bHkgb3IgdGhyb3VnaCBhIG5hbWVzcGFjZS5cbiAqXG4gKiBAcGFyYW0gdHlwZU5vZGUgLSBUaGUgdHlwZS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSB0eXBlIGlzIGEgY29udHJhY3QgdHlwZS5cbiAqL1xuZnVuY3Rpb24gaXNDb250cmFjdFR5cGUodHlwZU5vZGU6IFRTRVNUcmVlLlR5cGVOb2RlKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlTm9kZS50eXBlICE9PSBBU1RfTk9ERV9UWVBFUy5UU1R5cGVSZWZlcmVuY2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOb2RlLnR5cGVOYW1lO1xuICByZXR1cm4gdHlwZU5hbWUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllciA/IENPTlRSQUNUX1RZUEVfTkFNRVMuaGFzKHR5cGVOYW1lLm5hbWUpIDogdHlwZU5hbWUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuVFNRdWFsaWZpZWROYW1lICYmIENPTlRSQUNUX1RZUEVfTkFNRVMuaGFzKHR5cGVOYW1lLnJpZ2h0Lm5hbWUpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkga2V5IHdyaXR0ZW4gYXMgYW4gaWRlbnRpZmllciBvciBhIHN0cmluZyBsaXRlcmFsLlxuICpcbiAqIEBwYXJhbSBrZXkgLSBUaGUgcHJvcGVydHkga2V5LlxuICogQHJldHVybnMgVGhlIG5hbWUsIG9yIGBudWxsYCBmb3IgYW55IG90aGVyIGtleS5cbiAqL1xuZnVuY3Rpb24gcmVhZEtleU5hbWUoa2V5OiBUU0VTVHJlZS5Ob2RlKTogbnVsbCB8IHN0cmluZyB7XG4gIGlmIChrZXkudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllcikge1xuICAgIHJldHVybiBrZXkubmFtZTtcbiAgfVxuXG4gIHJldHVybiBrZXkudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTGl0ZXJhbCAmJiB0eXBlb2Yga2V5LnZhbHVlID09PSAnc3RyaW5nJyA/IGtleS52YWx1ZSA6IG51bGw7XG59XG5cbi8qKlxuICogUmVhZHMgd2hpY2ggcmVxdWlyZWQgc2NoZW1hcyBhIG1ldGhvZCBlbnRyeSBsYWNrcy5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBlbnRyeSdzIHZhbHVlLlxuICogQHBhcmFtIGNvbnRleHQgLSBUaGUgcnVsZSBjb250ZXh0LCB1c2VkIHRvIGZvbGxvdyBhIGNvbnN0YW50LlxuICogQHJldHVybnMgVGhlIG1pc3Npbmcgc2NoZW1hIG5hbWVzLCBlbXB0eSB3aGVuIG5vbmUgaXMgbWlzc2luZyBvciB0aGUgZW50cnkgY2Fubm90IGJlIHJlYWQgc3RhdGljYWxseS5cbiAqL1xuZnVuY3Rpb24gcmVhZE1pc3NpbmdTY2hlbWFOYW1lcyhub2RlOiBUU0VTVHJlZS5Ob2RlLCBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogc3RyaW5nW10ge1xuICBjb25zdCBlbnRyeU5vZGUgPSByZXNvbHZlT2JqZWN0TGl0ZXJhbChub2RlLCBjb250ZXh0KTtcbiAgaWYgKCFlbnRyeU5vZGUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBrZXlOYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IG1lbWJlciBvZiBlbnRyeU5vZGUucHJvcGVydGllcykge1xuICAgIGlmIChtZW1iZXIudHlwZSAhPT0gQVNUX05PREVfVFlQRVMuUHJvcGVydHkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlOYW1lID0gbWVtYmVyLmNvbXB1dGVkID8gbnVsbCA6IHJlYWRLZXlOYW1lKG1lbWJlci5rZXkpO1xuICAgIGlmIChrZXlOYW1lICE9PSBudWxsKSB7XG4gICAgICBrZXlOYW1lcy5hZGQoa2V5TmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFJFUVVJUkVEX1NDSEVNQV9OQU1FUy5maWx0ZXIoKG5hbWUpID0+ICFrZXlOYW1lcy5oYXMobmFtZSkpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGFuIGlkZW50aWZpZXIgdG8gdGhlIGluaXRpYWxpemVyIG9mIHRoZSBgY29uc3RgIGl0IG5hbWVzLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gY29udGV4dCAtIFRoZSBydWxlIGNvbnRleHQsIHVzZWQgdG8gcmVzb2x2ZSB0aGUgaWRlbnRpZmllciB0aHJvdWdoIHNjb3BlLlxuICogQHJldHVybnMgVGhlIGluaXRpYWxpemVyLCBvciBgbnVsbGAgd2hlbiB0aGUgaWRlbnRpZmllciBuYW1lcyBhbnl0aGluZyBlbHNlLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQ29uc3RJbml0KG5vZGU6IFRTRVNUcmVlLklkZW50aWZpZXIsIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBudWxsIHwgVFNFU1RyZWUuRXhwcmVzc2lvbiB7XG4gIGNvbnN0IHZhcmlhYmxlID0gZmluZFZhcmlhYmxlKGNvbnRleHQuc291cmNlQ29kZS5nZXRTY29wZShub2RlKSwgbm9kZS5uYW1lKTtcbiAgY29uc3QgZGVmaW5pdGlvbiA9IHZhcmlhYmxlPy5kZWZzLmxlbmd0aCA9PT0gMSA/IHZhcmlhYmxlLmRlZnNbMF0gOiB1bmRlZmluZWQ7XG4gIGlmIChkZWZpbml0aW9uPy50eXBlICE9PSAnVmFyaWFibGUnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBkZWNsYXJhdG9yTm9kZSA9IHRvVFNFU1RyZWVOb2RlKGRlZmluaXRpb24ubm9kZSkgYXMgVFNFU1RyZWUuVmFyaWFibGVEZWNsYXJhdG9yO1xuICBjb25zdCBkZWNsYXJhdGlvbk5vZGUgPSBkZWNsYXJhdG9yTm9kZS5wYXJlbnQ7XG4gIHJldHVybiBkZWNsYXJhdGlvbk5vZGUua2luZCA9PT0gJ2NvbnN0JyA/IGRlY2xhcmF0b3JOb2RlLmluaXQgOiBudWxsO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGFuIGV4cHJlc3Npb24gdG8gdGhlIG9iamVjdCBsaXRlcmFsIGl0IGlzLCBzdGVwcGluZyB0aHJvdWdoIGBhc2AgLyBgc2F0aXNmaWVzYCAvIGAhYCBhbmQgZm9sbG93aW5nIGFcbiAqIGBjb25zdGAgaXQgbmFtZXMuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgZXhwcmVzc2lvbi5cbiAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIHJ1bGUgY29udGV4dCwgdXNlZCB0byByZXNvbHZlIGFuIGlkZW50aWZpZXIgdGhyb3VnaCBzY29wZS5cbiAqIEByZXR1cm5zIFRoZSBvYmplY3QgbGl0ZXJhbCwgb3IgYG51bGxgIHdoZW4gdGhlIGV4cHJlc3Npb24gaXMgbm90IG9uZSBzdGF0aWNhbGx5LlxuICovXG5mdW5jdGlvbiByZXNvbHZlT2JqZWN0TGl0ZXJhbChub2RlOiBUU0VTVHJlZS5Ob2RlLCBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogbnVsbCB8IFRTRVNUcmVlLk9iamVjdEV4cHJlc3Npb24ge1xuICBjb25zdCB2aXNpdGVkTm9kZXMgPSBuZXcgU2V0PFRTRVNUcmVlLk5vZGU+KCk7XG4gIGxldCBjdXJyZW50Tm9kZTogVFNFU1RyZWUuTm9kZSA9IG5vZGU7XG5cbiAgd2hpbGUgKCF2aXNpdGVkTm9kZXMuaGFzKGN1cnJlbnROb2RlKSkge1xuICAgIHZpc2l0ZWROb2Rlcy5hZGQoY3VycmVudE5vZGUpO1xuXG4gICAgc3dpdGNoIChjdXJyZW50Tm9kZS50eXBlKSB7XG4gICAgICBjYXNlIEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXI6IHtcbiAgICAgICAgY29uc3QgaW5pdE5vZGUgPSByZXNvbHZlQ29uc3RJbml0KGN1cnJlbnROb2RlLCBjb250ZXh0KTtcbiAgICAgICAgaWYgKCFpbml0Tm9kZSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnROb2RlID0gaW5pdE5vZGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBBU1RfTk9ERV9UWVBFUy5PYmplY3RFeHByZXNzaW9uOiB7XG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICAgIH1cbiAgICAgIGNhc2UgQVNUX05PREVfVFlQRVMuVFNBc0V4cHJlc3Npb246XG4gICAgICBjYXNlIEFTVF9OT0RFX1RZUEVTLlRTTm9uTnVsbEV4cHJlc3Npb246XG4gICAgICBjYXNlIEFTVF9OT0RFX1RZUEVTLlRTU2F0aXNmaWVzRXhwcmVzc2lvbjoge1xuICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLmV4cHJlc3Npb247XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0NBLDRCQUErQjtBQUMvQixtQkFBK0I7QUFLeEIsTUFBTSxhQUFhO0FBSzFCLE1BQU0sc0JBQXNCLG9CQUFJLElBQUksQ0FBQyxxQkFBcUIsd0JBQXdCLENBQUM7QUFLbkYsTUFBTSxpQ0FBaUM7QUFLdkMsTUFBTSx5QkFBeUI7QUFLL0IsTUFBTSx3QkFBd0IsQ0FBQyxTQUFTLFFBQVE7QUFLekMsTUFBTSxrQ0FBbUQ7QUFBQSxFQUM5RCxPQUFPLFNBQVM7QUFDZCxVQUFNLG1CQUFtQixvQkFBSSxJQUErQjtBQUU1RCxXQUFPO0FBQUEsTUFDTCxXQUFXLE1BQXVCO0FBQ2hDLGNBQU0sbUJBQWUsc0NBQWUsSUFBSTtBQUN4QyxZQUNFLGFBQWEsT0FBTyxTQUFTLDRCQUFlLG9CQUFvQixDQUFDLGFBQWEsWUFDM0UsWUFBWSxhQUFhLEdBQUcsTUFBTSx3QkFDckM7QUFDQSxnQ0FBc0IsYUFBYSxLQUFLO0FBQUEsUUFDMUM7QUFBQSxNQUNGO0FBQUEsTUFDQSx3Q0FBd0MsTUFBdUI7QUFDN0QsY0FBTSxxQkFBaUIsc0NBQWUsSUFBSTtBQUMxQyxZQUFJLGVBQWUs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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference path="../../index.d.cts" />
|
|
2
|
+
import type { Rule } from 'eslint' with { 'resolution-mode': 'import' };
|
|
3
|
+
/**
|
|
4
|
+
* Message ID reported for a method entry that lacks a schema.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MESSAGE_ID = "requirePluginApiContractSchemas";
|
|
7
|
+
/**
|
|
8
|
+
* ESLint rule requiring both an `input` and an `output` schema on every method entry of a plugin API contract.
|
|
9
|
+
*/
|
|
10
|
+
export declare const requirePluginApiContractSchemas: Rule.RuleModule;
|
|
@@ -5,40 +5,32 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
5
5
|
|
|
6
6
|
(function () {
|
|
7
7
|
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for(
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for(
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
function ensureBrowserProcess() {
|
|
13
13
|
const browserProcess = {
|
|
14
14
|
browser: true,
|
|
15
15
|
cwd() {
|
|
16
|
-
return
|
|
16
|
+
return "/";
|
|
17
17
|
},
|
|
18
18
|
env: {},
|
|
19
|
-
platform:
|
|
19
|
+
platform: "android"
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
// 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.
|
|
23
21
|
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
22
|
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
23
|
globalThis.process = browserProcess;
|
|
28
24
|
return;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (existingProcess.versions?.node) {
|
|
32
27
|
return;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
30
|
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
31
|
existingProcessRecord[key] ??= value;
|
|
39
32
|
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
33
|
+
existingProcessRecord["browser"] = true;
|
|
42
34
|
}
|
|
43
35
|
|
|
44
36
|
function keepName($unknown) {
|
|
@@ -46,17 +38,13 @@ function keepName($unknown) {
|
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
41
|
const globalThisRecord = globalThis;
|
|
51
42
|
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord[
|
|
53
|
-
globalThisRecord[
|
|
54
|
-
|
|
43
|
+
globalThisRecord["__name"] ??= keepName;
|
|
44
|
+
globalThisRecord["__extractDefault"] ??= extractDefault;
|
|
55
45
|
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
46
|
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule &&
|
|
47
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
60
48
|
}
|
|
61
49
|
})();
|
|
62
50
|
})();
|
|
@@ -66,7 +54,6 @@ function keepName($unknown) {
|
|
|
66
54
|
return;
|
|
67
55
|
}
|
|
68
56
|
|
|
69
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
70
57
|
require = Object.assign(
|
|
71
58
|
(id) => requirePatched(id),
|
|
72
59
|
originalRequire,
|
|
@@ -170,4 +157,4 @@ async function lint(options) {
|
|
|
170
157
|
0 && (module.exports = {
|
|
171
158
|
lint
|
|
172
159
|
});
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludHMgYW4gT2JzaWRpYW4gcGx1Z2luIHdpdGggRVNMaW50OiB0aGUgZ2VuZXJpYyBydW5uZXIgZnJvbSBgQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXRgLCB3aGljaCBjb3BpZXNcbiAqIHRoaXMgcGFja2FnZSdzIGBlc2xpbnQuY29uZmlnLm10c2AgdGVtcGxhdGUgaW50byBhIHByb2plY3QgdGhhdCBoYXMgbm8gY29uZmlndXJhdGlvbiB5ZXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBMaW50T3B0aW9ucyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvZXNsaW50JztcblxuaW1wb3J0IHsgbGludCBhcyBsaW50R2VuZXJpYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvZXNsaW50JztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L3JlcG8tcGF0aHMnO1xuXG5pbXBvcnQgeyBnZXRUZW1wbGF0ZUZpbGVQYXRoIH0gZnJvbSAnLi4vdGVtcGxhdGVzLnRzJztcblxuLyoqXG4gKiBMaW50cyB0aGUgcHJvamVjdCB3aXRoIEVTTGludC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvZXNsaW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludHMgYW4gT2JzaWRpYW4gcGx1Z2luIHdpdGggRVNMaW50OiB0aGUgZ2VuZXJpYyBydW5uZXIgZnJvbSBgQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXRgLCB3aGljaCBjb3BpZXNcbiAqIHRoaXMgcGFja2FnZSdzIGBlc2xpbnQuY29uZmlnLm10c2AgdGVtcGxhdGUgaW50byBhIHByb2plY3QgdGhhdCBoYXMgbm8gY29uZmlndXJhdGlvbiB5ZXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBMaW50T3B0aW9ucyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvZXNsaW50JztcblxuaW1wb3J0IHsgbGludCBhcyBsaW50R2VuZXJpYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvZXNsaW50JztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L3JlcG8tcGF0aHMnO1xuXG5pbXBvcnQgeyBnZXRUZW1wbGF0ZUZpbGVQYXRoIH0gZnJvbSAnLi4vdGVtcGxhdGVzLnRzJztcblxuLyoqXG4gKiBMaW50cyB0aGUgcHJvamVjdCB3aXRoIEVTTGludC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbGludEdlbmVyaWMoeyBkZWZhdWx0Q29uZmlnRmlsZVBhdGg6IGdldFRlbXBsYXRlRmlsZVBhdGgoUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyksIC4uLm9wdGlvbnMgfSk7XG59XG5leHBvcnQgeyB0eXBlIExpbnRPcHRpb25zIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvbGludGVycy9lc2xpbnQnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0Esb0JBQW9DO0FBQ3BDLHdCQUEwQjtBQUUxQix1QkFBb0M7QUFVcEMsSUFBQUEsaUJBQWlDO0FBSGpDLGVBQXNCLEtBQUssU0FBc0M7QUFDL0QsWUFBTSxjQUFBQyxNQUFZLEVBQUUsMkJBQXVCLHNDQUFvQiw0QkFBVSxlQUFlLEdBQUcsR0FBRyxRQUFRLENBQUM7QUFDekc7IiwKICAibmFtZXMiOiBbImltcG9ydF9lc2xpbnQiLCAibGludEdlbmVyaWMiXQp9Cg==
|
|
@@ -5,40 +5,32 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
5
5
|
|
|
6
6
|
(function () {
|
|
7
7
|
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for(
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for(
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
function ensureBrowserProcess() {
|
|
13
13
|
const browserProcess = {
|
|
14
14
|
browser: true,
|
|
15
15
|
cwd() {
|
|
16
|
-
return
|
|
16
|
+
return "/";
|
|
17
17
|
},
|
|
18
18
|
env: {},
|
|
19
|
-
platform:
|
|
19
|
+
platform: "android"
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
// 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.
|
|
23
21
|
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
22
|
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
23
|
globalThis.process = browserProcess;
|
|
28
24
|
return;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (existingProcess.versions?.node) {
|
|
32
27
|
return;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
30
|
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
31
|
existingProcessRecord[key] ??= value;
|
|
39
32
|
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
33
|
+
existingProcessRecord["browser"] = true;
|
|
42
34
|
}
|
|
43
35
|
|
|
44
36
|
function keepName($unknown) {
|
|
@@ -46,17 +38,13 @@ function keepName($unknown) {
|
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
41
|
const globalThisRecord = globalThis;
|
|
51
42
|
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord[
|
|
53
|
-
globalThisRecord[
|
|
54
|
-
|
|
43
|
+
globalThisRecord["__name"] ??= keepName;
|
|
44
|
+
globalThisRecord["__extractDefault"] ??= extractDefault;
|
|
55
45
|
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
46
|
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule &&
|
|
47
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
60
48
|
}
|
|
61
49
|
})();
|
|
62
50
|
})();
|
|
@@ -66,7 +54,6 @@ function keepName($unknown) {
|
|
|
66
54
|
return;
|
|
67
55
|
}
|
|
68
56
|
|
|
69
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
70
57
|
require = Object.assign(
|
|
71
58
|
(id) => requirePatched(id),
|
|
72
59
|
originalRequire,
|
|
@@ -170,20 +157,29 @@ __export(linters_exports, {
|
|
|
170
157
|
"eslint-config": () => eslint_config,
|
|
171
158
|
"eslint-rules": () => eslint_rules,
|
|
172
159
|
markdownlint: () => markdownlint,
|
|
173
|
-
"
|
|
160
|
+
"markdownlint-cli2-config": () => markdownlint_cli2_config,
|
|
161
|
+
"markdownlint-rules": () => markdownlint_rules,
|
|
162
|
+
"obsidianmd-rule-custom-message": () => obsidianmd_rule_custom_message,
|
|
163
|
+
"plugin-names": () => plugin_names
|
|
174
164
|
});
|
|
175
165
|
module.exports = __toCommonJS(linters_exports);
|
|
176
166
|
var eslint_config = __toESM(__extractDefault(require('./eslint-config.cjs')), 1);
|
|
177
167
|
var eslint_rules = __toESM(__extractDefault(require('./eslint-rules/index.cjs')), 1);
|
|
178
168
|
var eslint = __toESM(__extractDefault(require('./eslint.cjs')), 1);
|
|
169
|
+
var markdownlint_cli2_config = __toESM(__extractDefault(require('./markdownlint-cli2-config.cjs')), 1);
|
|
170
|
+
var markdownlint_rules = __toESM(__extractDefault(require('./markdownlint-rules/index.cjs')), 1);
|
|
179
171
|
var markdownlint = __toESM(__extractDefault(require('./markdownlint.cjs')), 1);
|
|
180
172
|
var obsidianmd_rule_custom_message = __toESM(__extractDefault(require('./obsidianmd-rule-custom-message.cjs')), 1);
|
|
173
|
+
var plugin_names = __toESM(__extractDefault(require('./plugin-names.cjs')), 1);
|
|
181
174
|
// Annotate the CommonJS export names for ESM import in node:
|
|
182
175
|
0 && (module.exports = {
|
|
183
176
|
eslint,
|
|
184
177
|
"eslint-config": null,
|
|
185
178
|
"eslint-rules": null,
|
|
186
179
|
markdownlint,
|
|
187
|
-
"
|
|
180
|
+
"markdownlint-cli2-config": null,
|
|
181
|
+
"markdownlint-rules": null,
|
|
182
|
+
"obsidianmd-rule-custom-message": null,
|
|
183
|
+
"plugin-names": null
|
|
188
184
|
});
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnZXNsaW50LWNvbmZpZycgZnJvbSAnLi9lc2xpbnQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQtcnVsZXMnIGZyb20gJy4vZXNsaW50LXJ1bGVzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQnIGZyb20gJy4vZXNsaW50LnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bmxpbnQtY2xpMi1jb25maWcnIGZyb20gJy4vbWFya2Rvd25saW50LWNsaTItY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bmxpbnQtcnVsZXMnIGZyb20gJy4vbWFya2Rvd25saW50LXJ1bGVzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bmxpbnQnIGZyb20gJy4vbWFya2Rvd25saW50LnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbm1kLXJ1bGUtY3VzdG9tLW1lc3NhZ2UnIGZyb20gJy4vb2JzaWRpYW5tZC1ydWxlLWN1c3RvbS1tZXNzYWdlLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tbmFtZXMnIGZyb20gJy4vcGx1Z2luLW5hbWVzLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUFBQTtBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQTtBQUFBLG9DQUFBQztBQUFBLEVBQUEsNEJBQUFDO0FBQUEsRUFBQSx3Q0FBQUM7QUFBQSxFQUFBLHNCQUFBQztBQUFBO0FBQUE7QUFFQSxJQUFBTCxnQkFBaUM7QUFDakMsSUFBQUMsZUFBZ0M7QUFDaEMsYUFBMEI7QUFDMUIsSUFBQUMsMkJBQTRDO0FBQzVDLElBQUFDLHFCQUFzQztBQUN0QyxtQkFBZ0M7QUFDaEMsSUFBQUMsaUNBQWtEO0FBQ2xELElBQUFDLGVBQWdDOyIsCiAgIm5hbWVzIjogWyJlc2xpbnQtY29uZmlnIiwgImVzbGludC1ydWxlcyIsICJtYXJrZG93bmxpbnQtY2xpMi1jb25maWciLCAibWFya2Rvd25saW50LXJ1bGVzIiwgIm9ic2lkaWFubWQtcnVsZS1jdXN0b20tbWVzc2FnZSIsICJwbHVnaW4tbmFtZXMiXQp9Cg==
|
|
@@ -2,5 +2,8 @@
|
|
|
2
2
|
export * as 'eslint-config' from './eslint-config.cjs';
|
|
3
3
|
export * as 'eslint-rules' from './eslint-rules/index.cjs';
|
|
4
4
|
export * as 'eslint' from './eslint.cjs';
|
|
5
|
+
export * as 'markdownlint-cli2-config' from './markdownlint-cli2-config.cjs';
|
|
6
|
+
export * as 'markdownlint-rules' from './markdownlint-rules/index.cjs';
|
|
5
7
|
export * as 'markdownlint' from './markdownlint.cjs';
|
|
6
8
|
export * as 'obsidianmd-rule-custom-message' from './obsidianmd-rule-custom-message.cjs';
|
|
9
|
+
export * as 'plugin-names' from './plugin-names.cjs';
|