@mnaoumov/obsidian-dev-toolkit 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/demo-vault-helper/main.js +678 -18
- package/dist/integration-test-plugin/main.js +12075 -3087
- package/dist/integration-test-plugin/manifest.json +2 -2
- package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +6 -38
- package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.cts +1 -1
- package/dist/lib/cjs/bundlers/esbuild-impl/dependency.cjs +5 -37
- package/dist/lib/cjs/bundlers/esbuild-impl/dependency.d.cts +1 -1
- package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +5 -37
- package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.d.cts +1 -1
- package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +7 -66
- package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +1 -1
- package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +7 -39
- package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +1 -1
- package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +5 -37
- package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -1
- package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.cjs +5 -37
- package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.d.cts +1 -1
- package/dist/lib/cjs/bundlers/esbuild.cjs +1 -60
- package/dist/lib/cjs/bundlers/esbuild.d.cts +1 -1
- package/dist/lib/cjs/bundlers/index.cjs +3 -62
- package/dist/lib/cjs/bundlers/index.d.cts +1 -1
- package/dist/lib/cjs/demo-vault-app-json.cjs +5 -37
- package/dist/lib/cjs/demo-vault-app-json.d.cts +1 -1
- package/dist/lib/cjs/demo-vault-buttons.cjs +6 -38
- package/dist/lib/cjs/demo-vault-buttons.d.cts +8 -8
- package/dist/lib/cjs/demo-vault-coverage.cjs +7 -38
- package/dist/lib/cjs/demo-vault-coverage.d.cts +1 -1
- package/dist/lib/cjs/demo-vault.cjs +6 -38
- package/dist/lib/cjs/demo-vault.d.cts +1 -1
- package/dist/lib/cjs/formatters/dprint.cjs +5 -37
- package/dist/lib/cjs/formatters/dprint.d.cts +1 -1
- package/dist/lib/cjs/formatters/index.cjs +2 -61
- package/dist/lib/cjs/formatters/index.d.cts +1 -1
- package/dist/lib/cjs/index.cjs +12 -71
- package/dist/lib/cjs/integration-test-setup.cjs +1 -60
- package/dist/lib/cjs/integration-test-setup.d.cts +5 -5
- package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +6 -38
- package/dist/lib/cjs/integration-test-vitest-global-setup.d.cts +7 -7
- package/dist/lib/cjs/jest-setup.cjs +5 -37
- package/dist/lib/cjs/jest-setup.d.cts +1 -1
- package/dist/lib/cjs/library-references.d.cts +2 -0
- package/dist/lib/cjs/linters/eslint-config.cjs +71 -49
- package/dist/lib/cjs/linters/eslint-config.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/index.cjs +26 -73
- package/dist/lib/cjs/linters/eslint-rules/index.d.cts +6 -2
- package/dist/lib/cjs/linters/eslint-rules/manifest-description.cjs +1 -60
- package/dist/lib/cjs/linters/eslint-rules/manifest-description.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.cjs +6 -38
- package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/manifest-id.cjs +1 -60
- package/dist/lib/cjs/linters/eslint-rules/manifest-id.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/manifest-name.cjs +1 -60
- package/dist/lib/cjs/linters/eslint-rules/manifest-name.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/manifest-schema.cjs +1 -60
- package/dist/lib/cjs/linters/eslint-rules/manifest-schema.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.cjs +240 -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 +5 -37
- package/dist/lib/cjs/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.cjs +5 -37
- package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-toolkit-plugin.cjs +136 -0
- package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-toolkit-plugin.d.cts +16 -0
- package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.cjs +217 -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 +169 -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 +5 -37
- package/dist/lib/cjs/linters/eslint-rules/require-component-suffix.d.cts +1 -1
- package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.cjs +287 -0
- package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.d.cts +10 -0
- package/dist/lib/cjs/linters/eslint.cjs +5 -37
- package/dist/lib/cjs/linters/eslint.d.cts +1 -1
- package/dist/lib/cjs/linters/index.cjs +17 -67
- package/dist/lib/cjs/linters/index.d.cts +4 -1
- package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +152 -0
- package/dist/lib/cjs/linters/markdownlint-cli2-config.d.cts +12 -0
- package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +118 -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 +200 -0
- package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.d.cts +32 -0
- package/dist/lib/cjs/linters/markdownlint.cjs +5 -37
- package/dist/lib/cjs/linters/markdownlint.d.cts +1 -1
- package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.cjs +1 -60
- package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.d.cts +1 -1
- package/dist/lib/cjs/linters/plugin-names.cjs +203 -0
- package/dist/lib/cjs/linters/plugin-names.d.cts +81 -0
- package/dist/lib/cjs/obsidian-plugin-repo-paths.cjs +1 -60
- package/dist/lib/cjs/obsidian-plugin-repo-paths.d.cts +1 -1
- package/dist/lib/cjs/setup.cjs +5 -37
- package/dist/lib/cjs/setup.d.cts +1 -1
- package/dist/lib/cjs/templates.cjs +5 -37
- package/dist/lib/cjs/templates.d.cts +1 -1
- package/dist/lib/cjs/test-runners/index.cjs +4 -63
- package/dist/lib/cjs/test-runners/index.d.cts +1 -1
- package/dist/lib/cjs/test-runners/integration-test-plugin.cjs +12 -44
- package/dist/lib/cjs/test-runners/integration-test-plugin.d.cts +5 -5
- package/dist/lib/cjs/test-runners/performance-eval-cap.cjs +1 -60
- package/dist/lib/cjs/test-runners/performance-eval-cap.d.cts +1 -1
- package/dist/lib/cjs/test-runners/stale-build-global-setup.cjs +5 -37
- package/dist/lib/cjs/test-runners/stale-build-global-setup.d.cts +1 -1
- package/dist/lib/cjs/test-runners/vitest-config.cjs +9 -41
- package/dist/lib/cjs/test-runners/vitest-config.d.cts +2 -3
- package/dist/lib/cjs/version.cjs +5 -37
- package/dist/lib/cjs/version.d.cts +1 -1
- package/dist/lib/cjs/vitest-setup.cjs +5 -37
- package/dist/lib/cjs/vitest-setup.d.cts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +5 -22
- package/dist/lib/esm/bundlers/esbuild-impl/dependency.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/dependency.mjs +5 -22
- package/dist/lib/esm/bundlers/esbuild-impl/fix-source-maps-plugin.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +5 -22
- package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +1 -45
- package/dist/lib/esm/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +5 -22
- package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +5 -22
- package/dist/lib/esm/bundlers/esbuild-impl/rename-css-plugin.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/rename-css-plugin.mjs +5 -22
- package/dist/lib/esm/bundlers/esbuild.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild.mjs +1 -45
- package/dist/lib/esm/bundlers/index.d.mts +1 -1
- package/dist/lib/esm/bundlers/index.mjs +1 -45
- package/dist/lib/esm/demo-vault-app-json.d.mts +1 -1
- package/dist/lib/esm/demo-vault-app-json.mjs +5 -22
- package/dist/lib/esm/demo-vault-buttons.d.mts +8 -8
- package/dist/lib/esm/demo-vault-buttons.mjs +5 -22
- package/dist/lib/esm/demo-vault-coverage.d.mts +1 -1
- package/dist/lib/esm/demo-vault-coverage.mjs +7 -23
- package/dist/lib/esm/demo-vault.d.mts +1 -1
- package/dist/lib/esm/demo-vault.mjs +6 -23
- package/dist/lib/esm/formatters/dprint.d.mts +1 -1
- package/dist/lib/esm/formatters/dprint.mjs +5 -22
- package/dist/lib/esm/formatters/index.d.mts +1 -1
- package/dist/lib/esm/formatters/index.mjs +1 -45
- package/dist/lib/esm/index.mjs +1 -45
- package/dist/lib/esm/integration-test-setup.d.mts +5 -5
- package/dist/lib/esm/integration-test-setup.mjs +1 -45
- package/dist/lib/esm/integration-test-vitest-global-setup.d.mts +7 -7
- package/dist/lib/esm/integration-test-vitest-global-setup.mjs +7 -24
- package/dist/lib/esm/jest-setup.d.mts +1 -1
- package/dist/lib/esm/jest-setup.mjs +5 -22
- package/dist/lib/esm/library-references.d.mts +2 -0
- package/dist/lib/esm/linters/eslint-config.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-config.mjs +70 -33
- package/dist/lib/esm/linters/eslint-rules/index.d.mts +6 -2
- package/dist/lib/esm/linters/eslint-rules/index.mjs +12 -48
- package/dist/lib/esm/linters/eslint-rules/manifest-description.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-rules/manifest-description.mjs +1 -45
- package/dist/lib/esm/linters/eslint-rules/manifest-helpers.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-rules/manifest-helpers.mjs +5 -22
- package/dist/lib/esm/linters/eslint-rules/manifest-id.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-rules/manifest-id.mjs +1 -45
- package/dist/lib/esm/linters/eslint-rules/manifest-name.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-rules/manifest-name.mjs +1 -45
- package/dist/lib/esm/linters/eslint-rules/manifest-schema.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-rules/manifest-schema.mjs +1 -45
- 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 +141 -0
- package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.mjs +5 -22
- package/dist/lib/esm/linters/eslint-rules/no-untrusted-input-events.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-rules/no-untrusted-input-events.mjs +5 -22
- package/dist/lib/esm/linters/eslint-rules/obsidian-dev-toolkit-plugin.d.mts +16 -0
- package/dist/lib/esm/linters/eslint-rules/obsidian-dev-toolkit-plugin.mjs +37 -0
- 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 +121 -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 +72 -0
- package/dist/lib/esm/linters/eslint-rules/require-component-suffix.d.mts +1 -1
- package/dist/lib/esm/linters/eslint-rules/require-component-suffix.mjs +5 -22
- 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 +188 -0
- package/dist/lib/esm/linters/eslint.d.mts +1 -1
- package/dist/lib/esm/linters/eslint.mjs +5 -22
- package/dist/lib/esm/linters/index.d.mts +4 -1
- package/dist/lib/esm/linters/index.mjs +8 -46
- package/dist/lib/esm/linters/markdownlint-cli2-config.d.mts +12 -0
- package/dist/lib/esm/linters/markdownlint-cli2-config.mjs +57 -0
- package/dist/lib/esm/linters/markdownlint-rules/index.d.mts +2 -0
- package/dist/lib/esm/linters/markdownlint-rules/index.mjs +10 -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 +94 -0
- package/dist/lib/esm/linters/markdownlint.d.mts +1 -1
- package/dist/lib/esm/linters/markdownlint.mjs +5 -22
- package/dist/lib/esm/linters/obsidianmd-rule-custom-message.d.mts +1 -1
- package/dist/lib/esm/linters/obsidianmd-rule-custom-message.mjs +1 -45
- package/dist/lib/esm/linters/plugin-names.d.mts +81 -0
- package/dist/lib/esm/linters/plugin-names.mjs +105 -0
- package/dist/lib/esm/obsidian-plugin-repo-paths.d.mts +1 -1
- package/dist/lib/esm/obsidian-plugin-repo-paths.mjs +1 -45
- package/dist/lib/esm/setup.d.mts +1 -1
- package/dist/lib/esm/setup.mjs +5 -22
- package/dist/lib/esm/templates.d.mts +1 -1
- package/dist/lib/esm/templates.mjs +5 -22
- package/dist/lib/esm/test-runners/index.d.mts +1 -1
- package/dist/lib/esm/test-runners/index.mjs +1 -45
- package/dist/lib/esm/test-runners/integration-test-plugin.d.mts +5 -5
- package/dist/lib/esm/test-runners/integration-test-plugin.mjs +11 -28
- package/dist/lib/esm/test-runners/performance-eval-cap.d.mts +1 -1
- package/dist/lib/esm/test-runners/performance-eval-cap.mjs +1 -45
- package/dist/lib/esm/test-runners/stale-build-global-setup.d.mts +1 -1
- package/dist/lib/esm/test-runners/stale-build-global-setup.mjs +5 -22
- package/dist/lib/esm/test-runners/vitest-config.d.mts +2 -3
- package/dist/lib/esm/test-runners/vitest-config.mjs +8 -25
- package/dist/lib/esm/version.d.mts +1 -1
- package/dist/lib/esm/version.mjs +5 -22
- package/dist/lib/esm/vitest-setup.d.mts +1 -1
- package/dist/lib/esm/vitest-setup.mjs +5 -22
- 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/{obsidian-dev-utils-plugin → obsidian-dev-toolkit-plugin}/package.json +3 -3
- 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 +86 -25
- package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +0 -186
- package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts +0 -13
- package/dist/lib/esm/linters/eslint-rules/obsidian-dev-utils-plugin.d.mts +0 -13
- package/dist/lib/esm/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +0 -73
|
@@ -0,0 +1,152 @@
|
|
|
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
|
+
(function () {
|
|
6
|
+
function ensureBrowserProcess() {
|
|
7
|
+
const browserProcess = {
|
|
8
|
+
browser: true,
|
|
9
|
+
cwd() {
|
|
10
|
+
return "/";
|
|
11
|
+
},
|
|
12
|
+
env: {},
|
|
13
|
+
platform: "android"
|
|
14
|
+
};
|
|
15
|
+
const existingProcess = globalThis.process;
|
|
16
|
+
if (!existingProcess) {
|
|
17
|
+
globalThis.process = browserProcess;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (existingProcess.versions?.node) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const existingProcessRecord = existingProcess;
|
|
24
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
25
|
+
existingProcessRecord[key] ??= value;
|
|
26
|
+
}
|
|
27
|
+
existingProcessRecord["browser"] = true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ensureBrowserProcess();
|
|
31
|
+
})();
|
|
32
|
+
(function patchObsidianRequire() {
|
|
33
|
+
const originalRequire = require;
|
|
34
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
require = Object.assign(
|
|
39
|
+
(id) => requirePatched(id),
|
|
40
|
+
originalRequire,
|
|
41
|
+
{
|
|
42
|
+
__isPatched: true
|
|
43
|
+
}
|
|
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 = new Set([
|
|
51
|
+
'@codemirror/autocomplete',
|
|
52
|
+
'@codemirror/collab',
|
|
53
|
+
'@codemirror/commands',
|
|
54
|
+
'@codemirror/language',
|
|
55
|
+
'@codemirror/lint',
|
|
56
|
+
'@codemirror/search',
|
|
57
|
+
'@codemirror/state',
|
|
58
|
+
'@codemirror/text',
|
|
59
|
+
'@codemirror/view',
|
|
60
|
+
'@lezer/common',
|
|
61
|
+
'@lezer/highlight',
|
|
62
|
+
'@lezer/lr',
|
|
63
|
+
'obsidian']
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
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.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
83
|
+
return originalRequire?.(id);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
87
|
+
if (globalThis.app.isMobile) {
|
|
88
|
+
if (id === 'process' || id === 'node:process') {
|
|
89
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
90
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
91
|
+
|
|
92
|
+
return process;
|
|
93
|
+
}
|
|
94
|
+
} else {
|
|
95
|
+
const module = originalRequire?.(id);
|
|
96
|
+
if (module) {
|
|
97
|
+
return extractDefault(module);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
102
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
103
|
+
return {};
|
|
104
|
+
}
|
|
105
|
+
})();
|
|
106
|
+
|
|
107
|
+
"use strict";
|
|
108
|
+
var __defProp = Object.defineProperty;
|
|
109
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
110
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
111
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
112
|
+
var __export = (target, all) => {
|
|
113
|
+
for (var name in all)
|
|
114
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
115
|
+
};
|
|
116
|
+
var __copyProps = (to, from, except, desc) => {
|
|
117
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
118
|
+
for (let key of __getOwnPropNames(from))
|
|
119
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
120
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
121
|
+
}
|
|
122
|
+
return to;
|
|
123
|
+
};
|
|
124
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
125
|
+
var markdownlint_cli2_config_exports = {};
|
|
126
|
+
__export(markdownlint_cli2_config_exports, {
|
|
127
|
+
obsidianMarkdownlintCli2Config: () => obsidianMarkdownlintCli2Config
|
|
128
|
+
});
|
|
129
|
+
module.exports = __toCommonJS(markdownlint_cli2_config_exports);
|
|
130
|
+
var import_markdownlint_cli2_config = require('@mnaoumov/typescript-dev-toolkit/linters/markdownlint-cli2-config');
|
|
131
|
+
var import_plugin_name_as_code = require('./markdownlint-rules/plugin-name-as-code.cjs');
|
|
132
|
+
const obsidianMarkdownlintCli2Config = {
|
|
133
|
+
...import_markdownlint_cli2_config.obsidianDevUtilsConfig,
|
|
134
|
+
config: {
|
|
135
|
+
...import_markdownlint_cli2_config.obsidianDevUtilsConfig.config,
|
|
136
|
+
// Registered but OFF by default: markdownlint enables an unlisted custom rule, so landing it silent has to be
|
|
137
|
+
// said out loud. Repositories still carry plain plugin names from before the rule existed; each one fixes them
|
|
138
|
+
// (`npm run lint:md:fix` does it) and turns the rule on by overriding this one key in its own
|
|
139
|
+
// `scripts/markdownlint-cli2-config.ts`. The rule takes `{ additionalPluginNames: [...] }` for names the shared
|
|
140
|
+
// list lacks.
|
|
141
|
+
[import_plugin_name_as_code.PLUGIN_NAME_AS_CODE_RULE_NAME]: false
|
|
142
|
+
},
|
|
143
|
+
customRules: [
|
|
144
|
+
...import_markdownlint_cli2_config.obsidianDevUtilsConfig.customRules ?? [],
|
|
145
|
+
import_plugin_name_as_code.pluginNameAsCodeRule
|
|
146
|
+
]
|
|
147
|
+
};
|
|
148
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
149
|
+
0 && (module.exports = {
|
|
150
|
+
obsidianMarkdownlintCli2Config
|
|
151
|
+
});
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIG1hcmtkb3dubGludC1jbGkyIGNvbmZpZ3VyYXRpb24gb2YgYW4gT2JzaWRpYW4gcGx1Z2luOiB0aGUgZ2VuZXJpYyBvbmUgZnJvbSBgQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXRgLFxuICogcGx1cyB0aGUgT2JzaWRpYW4gcnVsZXMgb2YgdGhpcyBwYWNrYWdlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWFya2Rvd25saW50Q2xpMkNvbmZpZ3VyYXRpb25TY2hlbWEgYXMgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hJztcblxuaW1wb3J0IHsgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvbWFya2Rvd25saW50LWNsaTItY29uZmlnJztcblxuaW1wb3J0IHtcbiAgUExVR0lOX05BTUVfQVNfQ09ERV9SVUxFX05BTUUsXG4gIHBsdWdpbk5hbWVBc0NvZGVSdWxlXG59IGZyb20gJy4vbWFya2Rvd25saW50LXJ1bGVzL3BsdWdpbi1uYW1lLWFzLWNvZGUudHMnO1xuXG4vKipcbiAqIFRoZSBtYXJrZG93bmxpbnQtY2xpMiBjb25maWd1cmF0aW9uIG9mIGFuIE9ic2lkaWFuIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGNvbnN0IG9ic2lkaWFuTWFya2Rvd25saW50Q2xpMkNvbmZpZzogTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYSA9IHtcbiAgLi4ub2JzaWRpYW5EZXZVdGlsc0NvbmZpZyxcbiAgY29uZmlnOiB7XG4gICAgLi4ub2JzaWRpYW5EZXZVdGlsc0NvbmZpZy5jb25maWcsXG4gICAgLy8gUmVnaXN0ZXJlZCBidXQgT0ZGIGJ5IGRlZmF1bHQ6IG1hcmtkb3dubGludCBlbmFibGVzIGFuIHVubGlzdGVkIGN1c3RvbSBydWxlLCBzbyBsYW5kaW5nIGl0IHNpbGVudCBoYXMgdG8gYmVcbiAgICAvLyBzYWlkIG91dCBsb3VkLiBSZXBvc2l0b3JpZXMgc3RpbGwgY2FycnkgcGxhaW4gcGx1Z2luIG5hbWVzIGZyb20gYmVmb3JlIHRoZSBydWxlIGV4aXN0ZWQ7IGVhY2ggb25lIGZpeGVzIHRoZW1cbiAgICAvLyAoYG5wbSBydW4gbGludDptZDpmaXhgIGRvZXMgaXQpIGFuZCB0dXJucyB0aGUgcnVsZSBvbiBieSBvdmVycmlkaW5nIHRoaXMgb25lIGtleSBpbiBpdHMgb3duXG4gICAgLy8gYHNjcmlwdHMvbWFya2Rvd25saW50LWNsaTItY29uZmlnLnRzYC4gVGhlIHJ1bGUgdGFrZXMgYHsgYWRkaXRpb25hbFBsdWdpbk5hbWVzOiBbLi4uXSB9YCBmb3IgbmFtZXMgdGhlIHNoYXJlZFxuICAgIC8vIGxpc3QgbGFja3MuXG4gICAgW1BMVUdJTl9OQU1FX0FTX0NPREVfUlVMRV9OQU1FXTogZmFsc2VcbiAgfSxcbiAgY3VzdG9tUnVsZXM6IFtcbiAgICAuLi5vYnNpZGlhbkRldlV0aWxzQ29uZmlnLmN1c3RvbVJ1bGVzID8/IFtdLFxuICAgIHBsdWdpbk5hbWVBc0NvZGVSdWxlXG4gIF1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0Esc0NBQXVDO0FBRXZDLGlDQUdPO0FBS0EsTUFBTSxpQ0FBK0Q7QUFBQSxFQUMxRSxHQUFHO0FBQUEsRUFDSCxRQUFRO0FBQUEsSUFDTixHQUFHLHVEQUF1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQU0xQixDQUFDLHdEQUE2QixHQUFHO0FBQUEsRUFDbkM7QUFBQSxFQUNBLGFBQWE7QUFBQSxJQUNYLEdBQUcsdURBQXVCLGVBQWUsQ0FBQztBQUFBLElBQzFDO0FBQUEsRUFDRjtBQUNGOyIsIm5hbWVzIjpbXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference path="../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* The markdownlint-cli2 configuration of an Obsidian plugin: the generic one from `@mnaoumov/typescript-dev-toolkit`,
|
|
6
|
+
* plus the Obsidian rules of this package.
|
|
7
|
+
*/
|
|
8
|
+
import type { MarkdownlintCli2ConfigurationSchema as MarkdownlintCli2ConfigSchema } from '@mnaoumov/typescript-dev-toolkit/linters/markdownlint-types/@types/markdownlint-cli2-config-schema' with { 'resolution-mode': 'import' };
|
|
9
|
+
/**
|
|
10
|
+
* The markdownlint-cli2 configuration of an Obsidian plugin.
|
|
11
|
+
*/
|
|
12
|
+
export declare const obsidianMarkdownlintCli2Config: MarkdownlintCli2ConfigSchema;
|
|
@@ -0,0 +1,118 @@
|
|
|
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
|
+
(function patchObsidianRequire() {
|
|
6
|
+
const originalRequire = require;
|
|
7
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
require = Object.assign(
|
|
12
|
+
(id) => requirePatched(id),
|
|
13
|
+
originalRequire,
|
|
14
|
+
{
|
|
15
|
+
__isPatched: true
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
function extractDefault(module) {
|
|
20
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
24
|
+
'@codemirror/autocomplete',
|
|
25
|
+
'@codemirror/collab',
|
|
26
|
+
'@codemirror/commands',
|
|
27
|
+
'@codemirror/language',
|
|
28
|
+
'@codemirror/lint',
|
|
29
|
+
'@codemirror/search',
|
|
30
|
+
'@codemirror/state',
|
|
31
|
+
'@codemirror/text',
|
|
32
|
+
'@codemirror/view',
|
|
33
|
+
'@lezer/common',
|
|
34
|
+
'@lezer/highlight',
|
|
35
|
+
'@lezer/lr',
|
|
36
|
+
'obsidian']
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
40
|
+
'@codemirror/closebrackets',
|
|
41
|
+
'@codemirror/comment',
|
|
42
|
+
'@codemirror/fold',
|
|
43
|
+
'@codemirror/gutter',
|
|
44
|
+
'@codemirror/highlight',
|
|
45
|
+
'@codemirror/history',
|
|
46
|
+
'@codemirror/matchbrackets',
|
|
47
|
+
'@codemirror/panel',
|
|
48
|
+
'@codemirror/rangeset',
|
|
49
|
+
'@codemirror/rectangular-selection',
|
|
50
|
+
'@codemirror/stream-parser',
|
|
51
|
+
'@codemirror/tooltip']
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
function requirePatched(id) {
|
|
55
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
56
|
+
return originalRequire?.(id);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
60
|
+
if (globalThis.app.isMobile) {
|
|
61
|
+
if (id === 'process' || id === 'node:process') {
|
|
62
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
63
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
64
|
+
|
|
65
|
+
return process;
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
const module = originalRequire?.(id);
|
|
69
|
+
if (module) {
|
|
70
|
+
return extractDefault(module);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
75
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
76
|
+
return {};
|
|
77
|
+
}
|
|
78
|
+
})();
|
|
79
|
+
|
|
80
|
+
"use strict";
|
|
81
|
+
var __create = Object.create;
|
|
82
|
+
var __defProp = Object.defineProperty;
|
|
83
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
84
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
85
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
86
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
87
|
+
var __export = (target, all) => {
|
|
88
|
+
for (var name in all)
|
|
89
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
90
|
+
};
|
|
91
|
+
var __copyProps = (to, from, except, desc) => {
|
|
92
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
93
|
+
for (let key of __getOwnPropNames(from))
|
|
94
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
95
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
96
|
+
}
|
|
97
|
+
return to;
|
|
98
|
+
};
|
|
99
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
100
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
101
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
102
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
103
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
104
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
105
|
+
mod
|
|
106
|
+
));
|
|
107
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
108
|
+
var markdownlint_rules_exports = {};
|
|
109
|
+
__export(markdownlint_rules_exports, {
|
|
110
|
+
"plugin-name-as-code": () => plugin_name_as_code
|
|
111
|
+
});
|
|
112
|
+
module.exports = __toCommonJS(markdownlint_rules_exports);
|
|
113
|
+
var plugin_name_as_code = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./plugin-name-as-code.cjs')), 1);
|
|
114
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
115
|
+
0 && (module.exports = {
|
|
116
|
+
"plugin-name-as-code": null
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC1ydWxlcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ3BsdWdpbi1uYW1lLWFzLWNvZGUnIGZyb20gJy4vcGx1Z2luLW5hbWUtYXMtY29kZS50cyc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLCtCQUFBQTtBQUFBO0FBQUE7QUFFQSxJQUFBQSxzQkFBdUM7IiwibmFtZXMiOlsicGx1Z2luLW5hbWUtYXMtY29kZSJdfQ==
|
|
@@ -0,0 +1,200 @@
|
|
|
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
|
+
(function patchObsidianRequire() {
|
|
6
|
+
const originalRequire = require;
|
|
7
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
require = Object.assign(
|
|
12
|
+
(id) => requirePatched(id),
|
|
13
|
+
originalRequire,
|
|
14
|
+
{
|
|
15
|
+
__isPatched: true
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
function extractDefault(module) {
|
|
20
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
24
|
+
'@codemirror/autocomplete',
|
|
25
|
+
'@codemirror/collab',
|
|
26
|
+
'@codemirror/commands',
|
|
27
|
+
'@codemirror/language',
|
|
28
|
+
'@codemirror/lint',
|
|
29
|
+
'@codemirror/search',
|
|
30
|
+
'@codemirror/state',
|
|
31
|
+
'@codemirror/text',
|
|
32
|
+
'@codemirror/view',
|
|
33
|
+
'@lezer/common',
|
|
34
|
+
'@lezer/highlight',
|
|
35
|
+
'@lezer/lr',
|
|
36
|
+
'obsidian']
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
40
|
+
'@codemirror/closebrackets',
|
|
41
|
+
'@codemirror/comment',
|
|
42
|
+
'@codemirror/fold',
|
|
43
|
+
'@codemirror/gutter',
|
|
44
|
+
'@codemirror/highlight',
|
|
45
|
+
'@codemirror/history',
|
|
46
|
+
'@codemirror/matchbrackets',
|
|
47
|
+
'@codemirror/panel',
|
|
48
|
+
'@codemirror/rangeset',
|
|
49
|
+
'@codemirror/rectangular-selection',
|
|
50
|
+
'@codemirror/stream-parser',
|
|
51
|
+
'@codemirror/tooltip']
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
function requirePatched(id) {
|
|
55
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
56
|
+
return originalRequire?.(id);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
60
|
+
if (globalThis.app.isMobile) {
|
|
61
|
+
if (id === 'process' || id === 'node:process') {
|
|
62
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
63
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
64
|
+
|
|
65
|
+
return process;
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
const module = originalRequire?.(id);
|
|
69
|
+
if (module) {
|
|
70
|
+
return extractDefault(module);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
75
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
76
|
+
return {};
|
|
77
|
+
}
|
|
78
|
+
})();
|
|
79
|
+
|
|
80
|
+
"use strict";
|
|
81
|
+
var __create = Object.create;
|
|
82
|
+
var __defProp = Object.defineProperty;
|
|
83
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
84
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
85
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
86
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
87
|
+
var __export = (target, all) => {
|
|
88
|
+
for (var name in all)
|
|
89
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
90
|
+
};
|
|
91
|
+
var __copyProps = (to, from, except, desc) => {
|
|
92
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
93
|
+
for (let key of __getOwnPropNames(from))
|
|
94
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
95
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
96
|
+
}
|
|
97
|
+
return to;
|
|
98
|
+
};
|
|
99
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
100
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
101
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
102
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
103
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
104
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
105
|
+
mod
|
|
106
|
+
));
|
|
107
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
108
|
+
var plugin_name_as_code_exports = {};
|
|
109
|
+
__export(plugin_name_as_code_exports, {
|
|
110
|
+
PLUGIN_NAME_AS_CODE_RULE_NAME: () => PLUGIN_NAME_AS_CODE_RULE_NAME,
|
|
111
|
+
pluginNameAsCodeRule: () => pluginNameAsCodeRule
|
|
112
|
+
});
|
|
113
|
+
module.exports = __toCommonJS(plugin_name_as_code_exports);
|
|
114
|
+
var import_node_process = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('node:process')), 1);
|
|
115
|
+
var import_plugin_names = require('../plugin-names.cjs');
|
|
116
|
+
const PLUGIN_NAME_AS_CODE_RULE_NAME = "plugin-name-as-code";
|
|
117
|
+
const EXCLUDED_TOKEN_TYPES = /* @__PURE__ */ new Set([
|
|
118
|
+
"atxHeading",
|
|
119
|
+
"blockQuote",
|
|
120
|
+
"definition",
|
|
121
|
+
"htmlFlow",
|
|
122
|
+
"image",
|
|
123
|
+
"link",
|
|
124
|
+
"setextHeading"
|
|
125
|
+
]);
|
|
126
|
+
const UNDEFINED_REFERENCE_TOKEN_TYPE_PREFIX = "undefinedReference";
|
|
127
|
+
const EXCLUDED_LINE_PATTERNS = [
|
|
128
|
+
/\[\[[^\]]*\]\]/g,
|
|
129
|
+
/<code\b[^>]*>[\s\S]*?<\/code>/gi,
|
|
130
|
+
/\b[a-z][\w+.-]*:\/\/\S+/gi
|
|
131
|
+
];
|
|
132
|
+
const pluginNameAsCodeRule = {
|
|
133
|
+
description: "Plugin name is not marked as code (wrap it in backticks)",
|
|
134
|
+
function: (params, onError) => {
|
|
135
|
+
const options = params.config;
|
|
136
|
+
const pluginNames = (0, import_plugin_names.getPluginNames)({ additionalPluginNames: options.additionalPluginNames, cwd: import_node_process.default.cwd() });
|
|
137
|
+
const proseRangesByLine = /* @__PURE__ */ new Map();
|
|
138
|
+
collectProseRanges(params.parsers.micromark.tokens, proseRangesByLine);
|
|
139
|
+
for (const [index, line] of params.lines.entries()) {
|
|
140
|
+
const lineNumber = index + 1;
|
|
141
|
+
const ranges = proseRangesByLine.get(lineNumber);
|
|
142
|
+
if (!ranges) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
const mergedRanges = mergeRanges(ranges);
|
|
146
|
+
for (const match of (0, import_plugin_names.findPluginNameMatches)(line, pluginNames, EXCLUDED_LINE_PATTERNS)) {
|
|
147
|
+
const column = match.index + 1;
|
|
148
|
+
const isInProse = mergedRanges.some((range) => range.start <= column && column + match.name.length <= range.end);
|
|
149
|
+
if (!isInProse) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
onError({
|
|
153
|
+
detail: `Wrap \`${match.name}\` in backticks`,
|
|
154
|
+
fixInfo: {
|
|
155
|
+
deleteCount: match.name.length,
|
|
156
|
+
editColumn: column,
|
|
157
|
+
insertText: `\`${match.name}\``
|
|
158
|
+
},
|
|
159
|
+
lineNumber,
|
|
160
|
+
range: [column, match.name.length]
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
names: [PLUGIN_NAME_AS_CODE_RULE_NAME],
|
|
166
|
+
parser: "micromark",
|
|
167
|
+
tags: ["code"]
|
|
168
|
+
};
|
|
169
|
+
function collectProseRanges(tokens, proseRangesByLine) {
|
|
170
|
+
for (const token of tokens) {
|
|
171
|
+
if (EXCLUDED_TOKEN_TYPES.has(token.type) || token.type.startsWith(UNDEFINED_REFERENCE_TOKEN_TYPE_PREFIX)) {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
if (token.type === "data") {
|
|
175
|
+
const ranges = proseRangesByLine.get(token.startLine) ?? [];
|
|
176
|
+
ranges.push({ end: token.endColumn, start: token.startColumn });
|
|
177
|
+
proseRangesByLine.set(token.startLine, ranges);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
collectProseRanges(token.children, proseRangesByLine);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function mergeRanges(ranges) {
|
|
184
|
+
const merged = [];
|
|
185
|
+
for (const range of [...ranges].sort((a, b) => a.start - b.start)) {
|
|
186
|
+
const last = merged.at(-1);
|
|
187
|
+
if (last && range.start <= last.end) {
|
|
188
|
+
merged[merged.length - 1] = { end: Math.max(last.end, range.end), start: last.start };
|
|
189
|
+
} else {
|
|
190
|
+
merged.push(range);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return merged;
|
|
194
|
+
}
|
|
195
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
196
|
+
0 && (module.exports = {
|
|
197
|
+
PLUGIN_NAME_AS_CODE_RULE_NAME,
|
|
198
|
+
pluginNameAsCodeRule
|
|
199
|
+
});
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC1ydWxlcy9wbHVnaW4tbmFtZS1hcy1jb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBtYXJrZG93bmxpbnQgcnVsZTogYHBsdWdpbi1uYW1lLWFzLWNvZGVgLlxuICpcbiAqIFJlcG9ydHMgYW4gT2JzaWRpYW4gcGx1Z2luJ3MgZGlzcGxheSBuYW1lIHdyaXR0ZW4gYXMgcGxhaW4gdGV4dCBpbiBtYXJrZG93biwgYW5kIGZpeGVzIGl0IGJ5IHdyYXBwaW5nIHRoZSBuYW1lIGluXG4gKiBiYWNrdGlja3MuIFRoZSBuYW1lcyBjb21lIGZyb20gYHBsdWdpbi1uYW1lcy50c2A6IHRoZSBzaGFyZWQgbGlzdCwgdGhlIHByb2plY3QncyBvd24gYG1hbmlmZXN0Lmpzb25gIGBuYW1lYCwgYW5kXG4gKiB0aGUgcnVsZSdzIGBhZGRpdGlvbmFsUGx1Z2luTmFtZXNgIG9wdGlvbi5cbiAqXG4gKiBPbmx5IHByb3NlIGlzIHJlYWQ6IHRoZSBgZGF0YWAgdG9rZW5zIG1pY3JvbWFyayBsZWF2ZXMgaW4gcGFyYWdyYXBocywgbGlzdHMsIHRhYmxlcyBhbmQgZW1waGFzaXMuIEV2ZXJ5dGhpbmcgZWxzZSBpc1xuICogbGVmdCBhbG9uZSBiZWNhdXNlIGEgY29kZSBzcGFuIHRoZXJlIHdvdWxkIGJlIHdyb25nIG9yIHdvdWxkIGNoYW5nZSBzb21ldGhpbmc6XG4gKlxuICogLSBjb2RlIHNwYW5zLCBmZW5jZWQgYW5kIGluZGVudGVkIGNvZGUgYW5kIG1hdGggYXJlIG5vdCBgZGF0YWAgdG9rZW5zLCBzbyB0aGV5IGFyZSBuZXZlciByZWFjaGVkO1xuICogLSBhbiBIVE1MIGJsb2NrLCB3aG9zZSBjb250ZW50IG1hcmtkb3dubGludCBwYXJzZXMgYWdhaW4gYXMgbWFya2Rvd247XG4gKiAtIGEgbGluayBvciBpbWFnZSBsYWJlbCBhbmQgdGFyZ2V0LCBhIHJlZmVyZW5jZSBkZWZpbml0aW9uIGFuZCBhbiBhdXRvbGluazogYSBjb2RlIHNwYW4gaW5zaWRlIGEgbGluayBsYWJlbFxuICogICByZW5kZXJzIGluY29uc2lzdGVudGx5IGFjcm9zcyBHaXRIdWIsIE9ic2lkaWFuIGFuZCB0ZXJtaW5hbHM7XG4gKiAtIGEgaGVhZGluZywgd2hvc2UgYW5jaG9yIHdvdWxkIGNoYW5nZTtcbiAqIC0gYSBibG9jayBxdW90ZSwgd2hpY2ggcXVvdGVzIHNvbWVib2R5IGVsc2UncyB3b3JkcztcbiAqIC0gYW4gT2JzaWRpYW4gYFtbd2lraWxpbmtdXWAgYW5kIGFuIGlubGluZSBgPGNvZGU+YCBlbGVtZW50LCB3aGljaCBtaWNyb21hcmsgcmVhZHMgYXMgcGxhaW4gdGV4dCwgYW5kIGEgYmFyZSBVUkwuXG4gKlxuICogTm90IGF0dGVtcHRlZDogYSBtdWx0aS13b3JkIG5hbWUgYnJva2VuIGFjcm9zcyB0d28gbGluZXMgb2Ygb25lIHBhcmFncmFwaC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIE1pY3JvbWFya1Rva2VuLFxuICBSdWxlXG59IGZyb20gJ21hcmtkb3dubGludCc7XG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luTmFtZVJ1bGVPcHRpb25zIH0gZnJvbSAnLi4vcGx1Z2luLW5hbWVzLnRzJztcblxuaW1wb3J0IHtcbiAgZmluZFBsdWdpbk5hbWVNYXRjaGVzLFxuICBnZXRQbHVnaW5OYW1lc1xufSBmcm9tICcuLi9wbHVnaW4tbmFtZXMudHMnO1xuXG4vKipcbiAqIFRoZSBydWxlJ3MgbmFtZSwgYXMgaXQgaXMgc3BlbGxlZCBpbiBhIGBtYXJrZG93bmxpbnQtY2xpMmAgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9OQU1FX0FTX0NPREVfUlVMRV9OQU1FID0gJ3BsdWdpbi1uYW1lLWFzLWNvZGUnO1xuXG4vKipcbiAqIFRoZSB0b2tlbiB0eXBlcyB3aG9zZSB3aG9sZSBzdWJ0cmVlIGlzIHNraXBwZWQuXG4gKi9cbmNvbnN0IEVYQ0xVREVEX1RPS0VOX1RZUEVTID0gbmV3IFNldChbXG4gICdhdHhIZWFkaW5nJyxcbiAgJ2Jsb2NrUXVvdGUnLFxuICAnZGVmaW5pdGlvbicsXG4gICdodG1sRmxvdycsXG4gICdpbWFnZScsXG4gICdsaW5rJyxcbiAgJ3NldGV4dEhlYWRpbmcnXG5dKTtcblxuLyoqXG4gKiBUaGUgcHJlZml4IG9mIHRoZSB0b2tlbiB0eXBlcyBtYXJrZG93bmxpbnQgYXBwZW5kcyBmb3IgYSBzaG9ydGN1dCwgY29sbGFwc2VkIG9yIGZ1bGwgcmVmZXJlbmNlIHdpdGggbm8gZGVmaW5pdGlvbi5cbiAqIFRoZXkgcmVwZWF0IHRleHQgdGhlIHRyZWUgYWxyZWFkeSBob2xkcywgc28gcmVhZGluZyB0aGVtIHdvdWxkIHJlcG9ydCBhIG5hbWUgdHdpY2UuXG4gKi9cbmNvbnN0IFVOREVGSU5FRF9SRUZFUkVOQ0VfVE9LRU5fVFlQRV9QUkVGSVggPSAndW5kZWZpbmVkUmVmZXJlbmNlJztcblxuLyoqXG4gKiBUaGUgbGluZSBzcGFucyBtaWNyb21hcmsgcmVhZHMgYXMgcGxhaW4gdGV4dCB3aG9zZSBwbHVnaW4gbmFtZXMgYXJlIG5vdCBwcm9zZTogYW4gT2JzaWRpYW4gd2lraWxpbmssIGFuIGlubGluZVxuICogYDxjb2RlPmAgZWxlbWVudCwgYSBVUkwuXG4gKi9cbmNvbnN0IEVYQ0xVREVEX0xJTkVfUEFUVEVSTlM6IHJlYWRvbmx5IFJlZ0V4cFtdID0gW1xuICAvXFxbXFxbW15cXF1dKlxcXVxcXS9nLFxuICAvPGNvZGVcXGJbXj5dKj5bXFxzXFxTXSo/PFxcL2NvZGU+L2dpLFxuICAvXFxiW2Etel1bXFx3Ky4tXSo6XFwvXFwvXFxTKy9naVxuXTtcblxuLyoqXG4gKiBBIGNvbHVtbiByYW5nZSBvZiBvbmUgbGluZSwgMS1iYXNlZCwgZW5kIGV4Y2x1c2l2ZS5cbiAqL1xuaW50ZXJmYWNlIENvbHVtblJhbmdlIHtcbiAgcmVhZG9ubHkgZW5kOiBudW1iZXI7XG4gIHJlYWRvbmx5IHN0YXJ0OiBudW1iZXI7XG59XG5cbi8qKlxuICogQSBtYXJrZG93bmxpbnQgcnVsZSByZXF1aXJpbmcgYSBwbHVnaW4gbmFtZSBpbiBtYXJrZG93biB0byBiZSBtYXJrZWQgYXMgY29kZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbk5hbWVBc0NvZGVSdWxlOiBSdWxlID0ge1xuICBkZXNjcmlwdGlvbjogJ1BsdWdpbiBuYW1lIGlzIG5vdCBtYXJrZWQgYXMgY29kZSAod3JhcCBpdCBpbiBiYWNrdGlja3MpJyxcbiAgZnVuY3Rpb246IChwYXJhbXMsIG9uRXJyb3IpID0+IHtcbiAgICAvLyBUaGUgbWFya2Rvd25saW50IGVuZ2luZSBoYW5kcyBhbiBlbmFibGVkIHJ1bGUgaXRzIGNvbmZpZ3VyYXRpb24gb2JqZWN0LCBvciBhbiBlbXB0eSBvbmUgd2hlbiB0aGUgcnVsZSBpcyBtZXJlbHkgYHRydWVgLlxuICAgIGNvbnN0IG9wdGlvbnMgPSBwYXJhbXMuY29uZmlnIGFzIFBsdWdpbk5hbWVSdWxlT3B0aW9ucztcbiAgICBjb25zdCBwbHVnaW5OYW1lcyA9IGdldFBsdWdpbk5hbWVzKHsgYWRkaXRpb25hbFBsdWdpbk5hbWVzOiBvcHRpb25zLmFkZGl0aW9uYWxQbHVnaW5OYW1lcywgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pO1xuICAgIGNvbnN0IHByb3NlUmFuZ2VzQnlMaW5lID0gbmV3IE1hcDxudW1iZXIsIENvbHVtblJhbmdlW10+KCk7XG4gICAgY29sbGVjdFByb3NlUmFuZ2VzKHBhcmFtcy5wYXJzZXJzLm1pY3JvbWFyay50b2tlbnMsIHByb3NlUmFuZ2VzQnlMaW5lKTtcblxuICAgIGZvciAoY29uc3QgW2luZGV4LCBsaW5lXSBvZiBwYXJhbXMubGluZXMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCBsaW5lTnVtYmVyID0gaW5kZXggKyAxO1xuICAgICAgY29uc3QgcmFuZ2VzID0gcHJvc2VSYW5nZXNCeUxpbmUuZ2V0KGxpbmVOdW1iZXIpO1xuICAgICAgaWYgKCFyYW5nZXMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1lcmdlZFJhbmdlcyA9IG1lcmdlUmFuZ2VzKHJhbmdlcyk7XG4gICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIGZpbmRQbHVnaW5OYW1lTWF0Y2hlcyhsaW5lLCBwbHVnaW5OYW1lcywgRVhDTFVERURfTElORV9QQVRURVJOUykpIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gbWF0Y2guaW5kZXggKyAxO1xuICAgICAgICBjb25zdCBpc0luUHJvc2UgPSBtZXJnZWRSYW5nZXMuc29tZSgocmFuZ2UpID0+IHJhbmdlLnN0YXJ0IDw9IGNvbHVtbiAmJiBjb2x1bW4gKyBtYXRjaC5uYW1lLmxlbmd0aCA8PSByYW5nZS5lbmQpO1xuICAgICAgICBpZiAoIWlzSW5Qcm9zZSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgb25FcnJvcih7XG4gICAgICAgICAgZGV0YWlsOiBgV3JhcCBcXGAke21hdGNoLm5hbWV9XFxgIGluIGJhY2t0aWNrc2AsXG4gICAgICAgICAgZml4SW5mbzoge1xuICAgICAgICAgICAgZGVsZXRlQ291bnQ6IG1hdGNoLm5hbWUubGVuZ3RoLFxuICAgICAgICAgICAgZWRpdENvbHVtbjogY29sdW1uLFxuICAgICAgICAgICAgaW5zZXJ0VGV4dDogYFxcYCR7bWF0Y2gubmFtZX1cXGBgXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW5lTnVtYmVyLFxuICAgICAgICAgIHJhbmdlOiBbY29sdW1uLCBtYXRjaC5uYW1lLmxlbmd0aF1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBuYW1lczogW1BMVUdJTl9OQU1FX0FTX0NPREVfUlVMRV9OQU1FXSxcbiAgcGFyc2VyOiAnbWljcm9tYXJrJyxcbiAgdGFnczogWydjb2RlJ11cbn07XG5cbi8qKlxuICogQ29sbGVjdHMgdGhlIGNvbHVtbiByYW5nZXMgb2YgdGhlIHByb3NlIGBkYXRhYCB0b2tlbnMsIGxpbmUgYnkgbGluZSwgc2tpcHBpbmcgdGhlIGV4Y2x1ZGVkIHN1YnRyZWVzLlxuICpcbiAqIEBwYXJhbSB0b2tlbnMgLSBUaGUgdG9rZW5zIHRvIHdhbGsuXG4gKiBAcGFyYW0gcHJvc2VSYW5nZXNCeUxpbmUgLSBUaGUgcmFuZ2VzIGNvbGxlY3RlZCBzbyBmYXIsIGtleWVkIGJ5IGxpbmUgbnVtYmVyLlxuICovXG5mdW5jdGlvbiBjb2xsZWN0UHJvc2VSYW5nZXModG9rZW5zOiByZWFkb25seSBNaWNyb21hcmtUb2tlbltdLCBwcm9zZVJhbmdlc0J5TGluZTogTWFwPG51bWJlciwgQ29sdW1uUmFuZ2VbXT4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICBpZiAoRVhDTFVERURfVE9LRU5fVFlQRVMuaGFzKHRva2VuLnR5cGUpIHx8IHRva2VuLnR5cGUuc3RhcnRzV2l0aChVTkRFRklORURfUkVGRVJFTkNFX1RPS0VOX1RZUEVfUFJFRklYKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuLnR5cGUgPT09ICdkYXRhJykge1xuICAgICAgY29uc3QgcmFuZ2VzID0gcHJvc2VSYW5nZXNCeUxpbmUuZ2V0KHRva2VuLnN0YXJ0TGluZSkgPz8gW107XG4gICAgICByYW5nZXMucHVzaCh7IGVuZDogdG9rZW4uZW5kQ29sdW1uLCBzdGFydDogdG9rZW4uc3RhcnRDb2x1bW4gfSk7XG4gICAgICBwcm9zZVJhbmdlc0J5TGluZS5zZXQodG9rZW4uc3RhcnRMaW5lLCByYW5nZXMpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29sbGVjdFByb3NlUmFuZ2VzKHRva2VuLmNoaWxkcmVuLCBwcm9zZVJhbmdlc0J5TGluZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBNZXJnZXMgcmFuZ2VzIHRoYXQgdG91Y2ggb3Igb3ZlcmxhcCwgc28gYSBuYW1lIG1pY3JvbWFyayBzcGxpdHMgYWNyb3NzIGFkamFjZW50IGBkYXRhYCB0b2tlbnMgaXMgc3RpbGwgaW5zaWRlIG9uZS5cbiAqXG4gKiBAcGFyYW0gcmFuZ2VzIC0gVGhlIHJhbmdlcyBvZiBvbmUgbGluZS5cbiAqIEByZXR1cm5zIFRoZSBtZXJnZWQgcmFuZ2VzLlxuICovXG5mdW5jdGlvbiBtZXJnZVJhbmdlcyhyYW5nZXM6IHJlYWRvbmx5IENvbHVtblJhbmdlW10pOiBDb2x1bW5SYW5nZVtdIHtcbiAgY29uc3QgbWVyZ2VkOiBDb2x1bW5SYW5nZVtdID0gW107XG4gIGZvciAoY29uc3QgcmFuZ2Ugb2YgWy4uLnJhbmdlc10uc29ydCgoYSwgYikgPT4gYS5zdGFydCAtIGIuc3RhcnQpKSB7XG4gICAgY29uc3QgbGFzdCA9IG1lcmdlZC5hdCgtMSk7XG4gICAgaWYgKGxhc3QgJiYgcmFuZ2Uuc3RhcnQgPD0gbGFzdC5lbmQpIHtcbiAgICAgIG1lcmdlZFttZXJnZWQubGVuZ3RoIC0gMV0gPSB7IGVuZDogTWF0aC5tYXgobGFzdC5lbmQsIHJhbmdlLmVuZCksIHN0YXJ0OiBsYXN0LnN0YXJ0IH07XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlZC5wdXNoKHJhbmdlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1lcmdlZDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0QkEsMEJBQW9CO0FBSXBCLDBCQUdPO0FBS0EsTUFBTSxnQ0FBZ0M7QUFLN0MsTUFBTSx1QkFBdUIsb0JBQUksSUFBSTtBQUFBLEVBQ25DO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsQ0FBQztBQU1ELE1BQU0sd0NBQXdDO0FBTTlDLE1BQU0seUJBQTRDO0FBQUEsRUFDaEQ7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBYU8sTUFBTSx1QkFBNkI7QUFBQSxFQUN4QyxhQUFhO0FBQUEsRUFDYixVQUFVLENBQUMsUUFBUSxZQUFZO0FBRTdCLFVBQU0sVUFBVSxPQUFPO0FBQ3ZCLFVBQU0sa0JBQWMsb0NBQWUsRUFBRSx1QkFBdUIsUUFBUSx1QkFBdUIsS0FBSyxvQkFBQUEsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvRyxVQUFNLG9CQUFvQixvQkFBSSxJQUEyQjtBQUN6RCx1QkFBbUIsT0FBTyxRQUFRLFVBQVUsUUFBUSxpQkFBaUI7QUFFckUsZUFBVyxDQUFDLE9BQU8sSUFBSSxLQUFLLE9BQU8sTUFBTSxRQUFRLEdBQUc7QUFDbEQsWUFBTSxhQUFhLFFBQVE7QUFDM0IsWUFBTSxTQUFTLGtCQUFrQixJQUFJLFVBQVU7QUFDL0MsVUFBSSxDQUFDLFFBQVE7QUFDWDtBQUFBLE1BQ0Y7QUFFQSxZQUFNLGVBQWUsWUFBWSxNQUFNO0FBQ3ZDLGlCQUFXLGFBQVMsMkNBQXNCLE1BQU0sYUFBYSxzQkFBc0IsR0FBRztBQUNwRixjQUFNLFNBQVMsTUFBTSxRQUFRO0FBQzdCLGNBQU0sWUFBWSxhQUFhLEtBQUssQ0FBQyxVQUFVLE1BQU0sU0FBUyxVQUFVLFNBQVMsTUFBTSxLQUFLLFVBQVUsTUFBTSxHQUFHO0FBQy9HLFlBQUksQ0FBQyxXQUFXO0FBQ2Q7QUFBQSxRQUNGO0FBRUEsZ0JBQVE7QUFBQSxVQUNOLFFBQVEsVUFBVSxNQUFNLElBQUk7QUFBQSxVQUM1QixTQUFTO0FBQUEsWUFDUCxhQUFhLE1BQU0sS0FBSztBQUFBLFlBQ3hCLFlBQVk7QUFBQSxZQUNaLFlBQVksS0FBSyxNQUFNLElBQUk7QUFBQSxVQUM3QjtBQUFBLFVBQ0E7QUFBQSxVQUNBLE9BQU8sQ0FBQyxRQUFRLE1BQU0sS0FBSyxNQUFNO0FBQUEsUUFDbkMsQ0FBQztBQUFBLE1BQ0g7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsT0FBTyxDQUFDLDZCQUE2QjtBQUFBLEVBQ3JDLFFBQVE7QUFBQSxFQUNSLE1BQU0sQ0FBQyxNQUFNO0FBQ2Y7QUFRQSxTQUFTLG1CQUFtQixRQUFtQyxtQkFBcUQ7QUFDbEgsYUFBVyxTQUFTLFFBQVE7QUFDMUIsUUFBSSxxQkFBcUIsSUFBSSxNQUFNLElBQUksS0FBSyxNQUFNLEtBQUssV0FBVyxxQ0FBcUMsR0FBRztBQUN4RztBQUFBLElBQ0Y7QUFFQSxRQUFJLE1BQU0sU0FBUyxRQUFRO0FBQ3pCLFlBQU0sU0FBUyxrQkFBa0IsSUFBSSxNQUFNLFNBQVMsS0FBSyxDQUFDO0FBQzFELGFBQU8sS0FBSyxFQUFFLEtBQUssTUFBTSxXQUFXLE9BQU8sTUFBTSxZQUFZLENBQUM7QUFDOUQsd0JBQWtCLElBQUksTUFBTSxXQUFXLE1BQU07QUFDN0M7QUFBQSxJQUNGO0FBRUEsdUJBQW1CLE1BQU0sVUFBVSxpQkFBaUI7QUFBQSxFQUN0RDtBQUNGO0FBUUEsU0FBUyxZQUFZLFFBQStDO0FBQ2xFLFFBQU0sU0FBd0IsQ0FBQztBQUMvQixhQUFXLFNBQVMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssR0FBRztBQUNqRSxVQUFNLE9BQU8sT0FBTyxHQUFHLEVBQUU7QUFDekIsUUFBSSxRQUFRLE1BQU0sU0FBUyxLQUFLLEtBQUs7QUFDbkMsYUFBTyxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLElBQUksS0FBSyxLQUFLLE1BQU0sR0FBRyxHQUFHLE9BQU8sS0FBSyxNQUFNO0FBQUEsSUFDdEYsT0FBTztBQUNMLGFBQU8sS0FBSyxLQUFLO0FBQUEsSUFDbkI7QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUNUOyIsIm5hbWVzIjpbInByb2Nlc3MiXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference path="../../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* markdownlint rule: `plugin-name-as-code`.
|
|
6
|
+
*
|
|
7
|
+
* Reports an Obsidian plugin's display name written as plain text in markdown, and fixes it by wrapping the name in
|
|
8
|
+
* backticks. The names come from `plugin-names.ts`: the shared list, the project's own `manifest.json` `name`, and
|
|
9
|
+
* the rule's `additionalPluginNames` option.
|
|
10
|
+
*
|
|
11
|
+
* Only prose is read: the `data` tokens micromark leaves in paragraphs, lists, tables and emphasis. Everything else is
|
|
12
|
+
* left alone because a code span there would be wrong or would change something:
|
|
13
|
+
*
|
|
14
|
+
* - code spans, fenced and indented code and math are not `data` tokens, so they are never reached;
|
|
15
|
+
* - an HTML block, whose content markdownlint parses again as markdown;
|
|
16
|
+
* - a link or image label and target, a reference definition and an autolink: a code span inside a link label
|
|
17
|
+
* renders inconsistently across GitHub, Obsidian and terminals;
|
|
18
|
+
* - a heading, whose anchor would change;
|
|
19
|
+
* - a block quote, which quotes somebody else's words;
|
|
20
|
+
* - an Obsidian `[[wikilink]]` and an inline `<code>` element, which micromark reads as plain text, and a bare URL.
|
|
21
|
+
*
|
|
22
|
+
* Not attempted: a multi-word name broken across two lines of one paragraph.
|
|
23
|
+
*/
|
|
24
|
+
import type { Rule } from 'markdownlint' with { 'resolution-mode': 'import' };
|
|
25
|
+
/**
|
|
26
|
+
* The rule's name, as it is spelled in a `markdownlint-cli2` configuration.
|
|
27
|
+
*/
|
|
28
|
+
export declare const PLUGIN_NAME_AS_CODE_RULE_NAME = "plugin-name-as-code";
|
|
29
|
+
/**
|
|
30
|
+
* A markdownlint rule requiring a plugin name in markdown to be marked as code.
|
|
31
|
+
*/
|
|
32
|
+
export declare const pluginNameAsCodeRule: Rule;
|
|
@@ -2,63 +2,32 @@
|
|
|
2
2
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
5
|
(function () {
|
|
7
|
-
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
-
}
|
|
11
|
-
|
|
12
6
|
function ensureBrowserProcess() {
|
|
13
7
|
const browserProcess = {
|
|
14
8
|
browser: true,
|
|
15
9
|
cwd() {
|
|
16
|
-
return
|
|
10
|
+
return "/";
|
|
17
11
|
},
|
|
18
12
|
env: {},
|
|
19
|
-
platform:
|
|
13
|
+
platform: "android"
|
|
20
14
|
};
|
|
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
15
|
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
16
|
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
17
|
globalThis.process = browserProcess;
|
|
28
18
|
return;
|
|
29
19
|
}
|
|
30
|
-
|
|
31
20
|
if (existingProcess.versions?.node) {
|
|
32
21
|
return;
|
|
33
22
|
}
|
|
34
|
-
|
|
35
23
|
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
24
|
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
25
|
existingProcessRecord[key] ??= value;
|
|
39
26
|
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
27
|
+
existingProcessRecord["browser"] = true;
|
|
42
28
|
}
|
|
43
29
|
|
|
44
|
-
|
|
45
|
-
return $unknown;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
|
-
const globalThisRecord = globalThis;
|
|
51
|
-
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord['__name'] ??= keepName;
|
|
53
|
-
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
54
|
-
|
|
55
|
-
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
|
-
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
60
|
-
}
|
|
61
|
-
})();
|
|
30
|
+
ensureBrowserProcess();
|
|
62
31
|
})();
|
|
63
32
|
(function patchObsidianRequire() {
|
|
64
33
|
const originalRequire = require;
|
|
@@ -66,7 +35,6 @@ function keepName($unknown) {
|
|
|
66
35
|
return;
|
|
67
36
|
}
|
|
68
37
|
|
|
69
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
70
38
|
require = Object.assign(
|
|
71
39
|
(id) => requirePatched(id),
|
|
72
40
|
originalRequire,
|
|
@@ -170,4 +138,4 @@ async function lint(options) {
|
|
|
170
138
|
0 && (module.exports = {
|
|
171
139
|
lint
|
|
172
140
|
});
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludHMgYW4gT2JzaWRpYW4gcGx1Z2luJ3MgbWFya2Rvd246IHRoZSBnZW5lcmljIHJ1bm5lciBmcm9tIGBAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdGAsIHdoaWNoIGNvcGllc1xuICogdGhpcyBwYWNrYWdlJ3MgYC5tYXJrZG93bmxpbnQtY2xpMi5tanNgIHRlbXBsYXRlIGludG8gYSBwcm9qZWN0IHRoYXQgaGFzIG5vIGNvbmZpZ3VyYXRpb24geWV0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgTGludE9wdGlvbnMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL21hcmtkb3dubGludCc7XG5cbmltcG9ydCB7IGxpbnQgYXMgbGludEdlbmVyaWMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL21hcmtkb3dubGludCc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZXBvLXBhdGhzJztcblxuaW1wb3J0IHsgZ2V0VGVtcGxhdGVGaWxlUGF0aCB9IGZyb20gJy4uL3RlbXBsYXRlcy50cyc7XG5cbi8qKlxuICogTGludHMgdGhlIHByb2plY3QncyBtYXJrZG93biB3aXRoIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbGludEdlbmVyaWMoeyBkZWZhdWx0Q29uZmlnRmlsZVBhdGg6IGdldFRlbXBsYXRlRmlsZVBhdGgoUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdNanMpLCAuLi5vcHRpb25zIH0pO1xufVxuZXhwb3J0IHsgdHlwZSBMaW50T3B0aW9ucyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvbWFya2Rvd25saW50JztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQSwwQkFBb0M7QUFDcEMsd0JBQTBCO0FBRTFCLHVCQUFvQztBQVVwQyxJQUFBQSx1QkFBaUM7QUFIakMsZUFBc0IsS0FBSyxTQUFzQztBQUMvRCxZQUFNLG9CQUFBQyxNQUFZLEVBQUUsMkJBQXVCLHNDQUFvQiw0QkFBVSx5QkFBeUIsR0FBRyxHQUFHLFFBQVEsQ0FBQztBQUNuSDsiLCJuYW1lcyI6WyJpbXBvcnRfbWFya2Rvd25saW50IiwibGludEdlbmVyaWMiXX0=
|