@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
|
@@ -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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvbWFya2Rvd25saW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludHMgYW4gT2JzaWRpYW4gcGx1Z2luJ3MgbWFya2Rvd246IHRoZSBnZW5lcmljIHJ1bm5lciBmcm9tIGBAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdGAsIHdoaWNoIGNvcGllc1xuICogdGhpcyBwYWNrYWdlJ3MgYC5tYXJrZG93bmxpbnQtY2xpMi5tanNgIHRlbXBsYXRlIGludG8gYSBwcm9qZWN0IHRoYXQgaGFzIG5vIGNvbmZpZ3VyYXRpb24geWV0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgTGludE9wdGlvbnMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL21hcmtkb3dubGludCc7XG5cbmltcG9ydCB7IGxpbnQgYXMgbGludEdlbmVyaWMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL21hcmtkb3dubGludCc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZXBvLXBhdGhzJztcblxuaW1wb3J0IHsgZ2V0VGVtcGxhdGVGaWxlUGF0aCB9IGZyb20gJy4uL3RlbXBsYXRlcy50cyc7XG5cbi8qKlxuICogTGludHMgdGhlIHByb2plY3QncyBtYXJrZG93biB3aXRoIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvbWFya2Rvd25saW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludHMgYW4gT2JzaWRpYW4gcGx1Z2luJ3MgbWFya2Rvd246IHRoZSBnZW5lcmljIHJ1bm5lciBmcm9tIGBAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdGAsIHdoaWNoIGNvcGllc1xuICogdGhpcyBwYWNrYWdlJ3MgYC5tYXJrZG93bmxpbnQtY2xpMi5tanNgIHRlbXBsYXRlIGludG8gYSBwcm9qZWN0IHRoYXQgaGFzIG5vIGNvbmZpZ3VyYXRpb24geWV0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgTGludE9wdGlvbnMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL21hcmtkb3dubGludCc7XG5cbmltcG9ydCB7IGxpbnQgYXMgbGludEdlbmVyaWMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9saW50ZXJzL21hcmtkb3dubGludCc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9yZXBvLXBhdGhzJztcblxuaW1wb3J0IHsgZ2V0VGVtcGxhdGVGaWxlUGF0aCB9IGZyb20gJy4uL3RlbXBsYXRlcy50cyc7XG5cbi8qKlxuICogTGludHMgdGhlIHByb2plY3QncyBtYXJrZG93biB3aXRoIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbGludEdlbmVyaWMoeyBkZWZhdWx0Q29uZmlnRmlsZVBhdGg6IGdldFRlbXBsYXRlRmlsZVBhdGgoUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdNanMpLCAuLi5vcHRpb25zIH0pO1xufVxuZXhwb3J0IHsgdHlwZSBMaW50T3B0aW9ucyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWRldi10b29sa2l0L2xpbnRlcnMvbWFya2Rvd25saW50JztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBLDBCQUFvQztBQUNwQyx3QkFBMEI7QUFFMUIsdUJBQW9DO0FBVXBDLElBQUFBLHVCQUFpQztBQUhqQyxlQUFzQixLQUFLLFNBQXNDO0FBQy9ELFlBQU0sb0JBQUFDLE1BQVksRUFBRSwyQkFBdUIsc0NBQW9CLDRCQUFVLHlCQUF5QixHQUFHLEdBQUcsUUFBUSxDQUFDO0FBQ25IOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfbWFya2Rvd25saW50IiwgImxpbnRHZW5lcmljIl0KfQo=
|
|
@@ -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,
|
|
@@ -186,4 +173,4 @@ function stripOwnedRuleCustomMessageEntries(params) {
|
|
|
186
173
|
RULE_CUSTOM_MESSAGE_RULE_NAME,
|
|
187
174
|
stripOwnedRuleCustomMessageEntries
|
|
188
175
|
});
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvb2JzaWRpYW5tZC1ydWxlLWN1c3RvbS1tZXNzYWdlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogS2VlcHMgYG9ic2lkaWFubWQvcnVsZS1jdXN0b20tbWVzc2FnZWAgZnJvbSByZS1ydW5uaW5nIGEgYnVpbHRpbiBydWxlIHRoaXMgbGlicmFyeSdzIG93biBjb25maWcgYWxyZWFkeSBzZXRzLlxuICpcbiAqIGBlc2xpbnQtcGx1Z2luLW9ic2lkaWFubWRgJ3MgcmVjb21tZW5kZWQgY29uZmlnIHR1cm5zIGBuby1jb25zb2xlYCBhbmQgYG5vLW5ldy1mdW5jYCBvZmYgYW5kIHJlLXJ1bnMgZWFjaCB0aHJvdWdoXG4gKiBgb2JzaWRpYW5tZC9ydWxlLWN1c3RvbS1tZXNzYWdlYCwgd2hpY2ggZmV0Y2hlcyB0aGUgYnVpbHRpbiBydWxlIGFuZCByZXBvcnRzIGl0cyBmaW5kaW5ncyB1bmRlciBpdHMgT1dOIHJ1bGUgaWQuIFNvXG4gKiB0aGUgc2V2ZXJpdHkgYSBjb25zdW1lciB3cml0ZXMgb24gYG5vLWNvbnNvbGVgIGlzIG5ldmVyIGNvbnN1bHRlZDogYCduby1jb25zb2xlJzogJ29mZidgIGlzIGluZXJ0LCBhbmQgdGhlIGVycm9yXG4gKiB0aGF0IHJlbWFpbnMgbmFtZXMgYSBydWxlIHRoZSBjb25zdW1lciBuZXZlciBjb25maWd1cmVkLiBUaGlzIGxpYnJhcnkgc2V0cyBib3RoIGJ1aWx0aW5zIGl0c2VsZiwgc3RyaWN0ZXIsIHNvIGluXG4gKiBldmVyeSBjb25zdW1lciB0aGUgd3JhcHBlciBhZGRlZCBub3RoaW5nIGJ1dCBhIHNlY29uZCByZXBvcnQgb2YgdGhlIHNhbWUgbGluZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gJ2VzbGludCc7XG5cbi8qKlxuICogVGhlIHJ1bGUgaWQgb2YgdGhlIHdyYXBwZXIgdGhhdCByZS1yZXBvcnRzIGJ1aWx0aW4gcnVsZXMgdW5kZXIgaXRzIG93biBuYW1lLlxuICovXG5leHBvcnQgY29uc3QgUlVMRV9DVVNUT01fTUVTU0FHRV9SVUxFX05BTUUgPSAnb2JzaWRpYW5tZC9ydWxlLWN1c3RvbS1tZXNzYWdlJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc3RyaXBPd25lZFJ1bGVDdXN0b21NZXNzYWdlRW50cmllc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaXBPd25lZFJ1bGVDdXN0b21NZXNzYWdlRW50cmllc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlnIHdob3NlIGBvYnNpZGlhbm1kL3J1bGUtY3VzdG9tLW1lc3NhZ2VgIGVudHJ5IGlzIG5hcnJvd2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlnOiBMaW50ZXIuQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgYnVpbHRpbiBydWxlIG5hbWVzIHRoaXMgbGlicmFyeSdzIG93biBjb25maWcgc2V0cywgd2hpY2ggdGhlIHdyYXBwZXIgbXVzdCBubyBsb25nZXIgcmUtcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgb3duZWRSdWxlTmFtZXM6IFJlYWRvbmx5U2V0PHN0cmluZz47XG59XG5cbi8qKlxuICogUmVtb3ZlcyBmcm9tIGEgY29uZmlnJ3MgYG9ic2lkaWFubWQvcnVsZS1jdXN0b20tbWVzc2FnZWAgb3B0aW9ucyBldmVyeSB3cmFwcGVkIHJ1bGUgbmFtZWQgaW4gYG93bmVkUnVsZU5hbWVzYC5cbiAqXG4gKiBBbiBlbnRyeSBmb3IgYSBydWxlIE5PVCBpbiB0aGUgc2V0IGtlZXBzIHJ1bm5pbmcgdGhyb3VnaCB0aGUgd3JhcHBlciwgc28gYW4gZW50cnkgdXBzdHJlYW0gYWRkcyBsYXRlciBpcyBub3RcbiAqIHNpbGVudGx5IGRyb3BwZWQuIFdoZW4gbm90aGluZyBpcyBsZWZ0IHRoZSB3cmFwcGVyIGlzIHR1cm5lZCBgb2ZmYCByYXRoZXIgdGhhbiBydW4gd2l0aCBhbiBlbXB0eSBtYXAuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIGNvbmZpZywgdW5jaGFuZ2VkIHdoZW4gaXQgY2FycmllcyBubyBuYXJyb3dhYmxlIHdyYXBwZXIgZW50cnksIG90aGVyd2lzZSBhIG5hcnJvd2VkIGNvcHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcE93bmVkUnVsZUN1c3RvbU1lc3NhZ2VFbnRyaWVzKHBhcmFtczogU3RyaXBPd25lZFJ1bGVDdXN0b21NZXNzYWdlRW50cmllc1BhcmFtcyk6IExpbnRlci5Db25maWcge1xuICBjb25zdCB7IGNvbmZpZywgb3duZWRSdWxlTmFtZXMgfSA9IHBhcmFtcztcbiAgY29uc3QgcnVsZUVudHJ5ID0gY29uZmlnLnJ1bGVzPy5bUlVMRV9DVVNUT01fTUVTU0FHRV9SVUxFX05BTUVdO1xuICBpZiAoIUFycmF5LmlzQXJyYXkocnVsZUVudHJ5KSkge1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBjb25zdCBbc2V2ZXJpdHksIHdyYXBwZWRSdWxlcywgLi4ucmVzdE9wdGlvbnNdID0gcnVsZUVudHJ5IGFzIHVua25vd25bXTtcbiAgaWYgKHR5cGVvZiB3cmFwcGVkUnVsZXMgIT09ICdvYmplY3QnIHx8IHdyYXBwZWRSdWxlcyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBjb25zdCBrZXB0RW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHdyYXBwZWRSdWxlcykuZmlsdGVyKChbcnVsZU5hbWVdKSA9PiAhb3duZWRSdWxlTmFtZXMuaGFzKHJ1bGVOYW1lKSk7XG4gIGNvbnN0IG5hcnJvd2VkUnVsZUVudHJ5OiBMaW50ZXIuUnVsZUVudHJ5ID0ga2VwdEVudHJpZXMubGVuZ3RoID09PSAwXG4gICAgPyAnb2ZmJ1xuICAgIDogW3NldmVyaXR5IGFzIExpbnRlci5SdWxlU2V2ZXJpdHksIE9iamVjdC5mcm9tRW50cmllcyhrZXB0RW50cmllcyksIC4uLnJlc3RPcHRpb25zXTtcblxuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICBydWxlczoge1xuICAgICAgLi4uY29uZmlnLnJ1bGVzLFxuICAgICAgW1JVTEVfQ1VTVE9NX01FU1NBR0VfUlVMRV9OQU1FXTogbmFycm93ZWRSdWxlRW50cnlcbiAgICB9XG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlCTyxNQUFNLGdDQUFnQztBQTBCdEMsU0FBUyxtQ0FBbUMsUUFBaUU7QUFDbEgsUUFBTSxFQUFFLFFBQVEsZUFBZSxJQUFJO0FBQ25DLFFBQU0sWUFBWSxPQUFPLFFBQVEsNkJBQTZCO0FBQzlELE1BQUksQ0FBQyxNQUFNLFFBQVEsU0FBUyxHQUFHO0FBQzdCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxDQUFDLFVBQVUsY0FBYyxHQUFHLFdBQVcsSUFBSTtBQUNqRCxNQUFJLE9BQU8saUJBQWlCLFlBQVksaUJBQWlCLE1BQU07QUFDN0QsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGNBQWMsT0FBTyxRQUFRLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLE1BQU0sQ0FBQyxlQUFlLElBQUksUUFBUSxDQUFDO0FBQ3JHLFFBQU0sb0JBQXNDLFlBQVksV0FBVyxJQUMvRCxRQUNBLENBQUMsVUFBaUMsT0FBTyxZQUFZLFdBQVcsR0FBRyxHQUFHLFdBQVc7QUFFckYsU0FBTztBQUFBLElBQ0wsR0FBRztBQUFBLElBQ0gsT0FBTztBQUFBLE1BQ0wsR0FBRyxPQUFPO0FBQUEsTUFDVixDQUFDLDZCQUE2QixHQUFHO0FBQUEsSUFDbkM7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,249 @@
|
|
|
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 plugin_names_exports = {};
|
|
145
|
+
__export(plugin_names_exports, {
|
|
146
|
+
MNAOUMOV_PLUGIN_NAMES: () => MNAOUMOV_PLUGIN_NAMES,
|
|
147
|
+
THIRD_PARTY_PLUGIN_NAMES: () => THIRD_PARTY_PLUGIN_NAMES,
|
|
148
|
+
findPluginNameMatches: () => findPluginNameMatches,
|
|
149
|
+
getPluginNames: () => getPluginNames
|
|
150
|
+
});
|
|
151
|
+
module.exports = __toCommonJS(plugin_names_exports);
|
|
152
|
+
var import_node_fs = require('node:fs');
|
|
153
|
+
var import_node_path = require('node:path');
|
|
154
|
+
const MNAOUMOV_PLUGIN_NAMES = [
|
|
155
|
+
"Advanced Debug Mode",
|
|
156
|
+
"Advanced Exclude",
|
|
157
|
+
"Advanced Markdown Export",
|
|
158
|
+
"Advanced Metadata Cache",
|
|
159
|
+
"Advanced Note Composer",
|
|
160
|
+
"Advanced Rename and Delete Handler",
|
|
161
|
+
"Alias Quick Switcher",
|
|
162
|
+
"App Update Notifier",
|
|
163
|
+
"Backlink Cache",
|
|
164
|
+
"Backlink Full Path",
|
|
165
|
+
"Better Markdown Links",
|
|
166
|
+
"CodeScript Toolkit",
|
|
167
|
+
"Consistent Attachments and Links",
|
|
168
|
+
"Custom Attachment Location",
|
|
169
|
+
"Edit Link Alias",
|
|
170
|
+
"Email to Vault",
|
|
171
|
+
"Embed HTML",
|
|
172
|
+
"External Rename Handler",
|
|
173
|
+
"File Bundles",
|
|
174
|
+
"File Explorer Reload",
|
|
175
|
+
"Fix Tab Size",
|
|
176
|
+
"Frontmatter Markdown Links",
|
|
177
|
+
"Insert Multiple Attachments",
|
|
178
|
+
"Link Picker",
|
|
179
|
+
"More Events",
|
|
180
|
+
"Nested Properties",
|
|
181
|
+
"New Note Fixer",
|
|
182
|
+
"Preserve Frontmatter Formatting",
|
|
183
|
+
"Refresh Any View",
|
|
184
|
+
"Root Folder Context Menu",
|
|
185
|
+
"Sample Plugin Extended",
|
|
186
|
+
"Smart Rename"
|
|
187
|
+
];
|
|
188
|
+
const THIRD_PARTY_PLUGIN_NAMES = [
|
|
189
|
+
"Advanced Tables",
|
|
190
|
+
"Advanced URI",
|
|
191
|
+
"Dataview",
|
|
192
|
+
"Excalidraw",
|
|
193
|
+
"Folder Notes",
|
|
194
|
+
"Hover Editor",
|
|
195
|
+
"Kanban",
|
|
196
|
+
"Make.md",
|
|
197
|
+
"Natural Language Dates",
|
|
198
|
+
"Obsidian Git",
|
|
199
|
+
"Omnisearch",
|
|
200
|
+
"Periodic Notes",
|
|
201
|
+
"QuickAdd",
|
|
202
|
+
"Smart Connections",
|
|
203
|
+
"Style Settings",
|
|
204
|
+
"Templater",
|
|
205
|
+
"Text Generator"
|
|
206
|
+
];
|
|
207
|
+
const LEADING_BOUNDARY = String.raw`(?<![\w\`./\\-])`;
|
|
208
|
+
const TRAILING_BOUNDARY = String.raw`(?![\w\`-]|[./\\]\w)`;
|
|
209
|
+
function findPluginNameMatches(text, pluginNames, excludedPatterns = []) {
|
|
210
|
+
if (pluginNames.length === 0) {
|
|
211
|
+
return [];
|
|
212
|
+
}
|
|
213
|
+
const excludedRanges = excludedPatterns.flatMap((pattern) => Array.from(text.matchAll(pattern), (match) => [match.index, match.index + match[0].length]));
|
|
214
|
+
const alternatives = [...pluginNames].sort((a, b) => b.length - a.length).map((name) => escapeRegExp(name)).join("|");
|
|
215
|
+
const nameRegExp = new RegExp(`${LEADING_BOUNDARY}(?:${alternatives})${TRAILING_BOUNDARY}`, "g");
|
|
216
|
+
return Array.from(text.matchAll(nameRegExp), (match) => ({ index: match.index, name: match[0] })).filter((match) => excludedRanges.every(([start, end]) => match.index >= end || match.index + match.name.length <= start));
|
|
217
|
+
}
|
|
218
|
+
function getPluginNames(params) {
|
|
219
|
+
const names = /* @__PURE__ */ new Set([...MNAOUMOV_PLUGIN_NAMES, ...THIRD_PARTY_PLUGIN_NAMES, ...params.additionalPluginNames ?? []]);
|
|
220
|
+
const ownName = readManifestName(params.cwd);
|
|
221
|
+
if (ownName) {
|
|
222
|
+
names.add(ownName);
|
|
223
|
+
}
|
|
224
|
+
return [...names];
|
|
225
|
+
}
|
|
226
|
+
function escapeRegExp(text) {
|
|
227
|
+
return text.replaceAll(/[$()*+.?[\\\]^{|}]/g, String.raw`\$&`);
|
|
228
|
+
}
|
|
229
|
+
function readManifestName(cwd) {
|
|
230
|
+
const manifestPath = (0, import_node_path.join)(cwd, "manifest.json");
|
|
231
|
+
if (!(0, import_node_fs.existsSync)(manifestPath)) {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const manifest = JSON.parse((0, import_node_fs.readFileSync)(manifestPath, "utf-8"));
|
|
236
|
+
const name = manifest?.["name"];
|
|
237
|
+
return typeof name === "string" && name !== "" ? name : null;
|
|
238
|
+
} catch {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
243
|
+
0 && (module.exports = {
|
|
244
|
+
MNAOUMOV_PLUGIN_NAMES,
|
|
245
|
+
THIRD_PARTY_PLUGIN_NAMES,
|
|
246
|
+
findPluginNameMatches,
|
|
247
|
+
getPluginNames
|
|
248
|
+
});
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvcGx1Z2luLW5hbWVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIHBsdWdpbiBuYW1lcyB0aGUgcGx1Z2luLW5hbWUgbGludCBydWxlcyBsb29rIGZvciwgYW5kIHRoZSBtYXRjaGVyIHRoZXkgc2hhcmUuXG4gKlxuICogV2hlbmV2ZXIgdGV4dCBtZW50aW9ucyBhbiBPYnNpZGlhbiBwbHVnaW4gYnkgbmFtZSwgdGhlIG5hbWUgaXMgbWFya2VkIGFzIGNvZGU6IGJhY2t0aWNrcyBpbiBtYXJrZG93biBhbmQgaW4gY29kZVxuICogY29tbWVudHMsIGEgYDxjb2RlPmAgZWxlbWVudCBpbiBVSS4gVGhlIEVTTGludCBydWxlcyBgcGx1Z2luLW5hbWUtYXMtY29kZWAgLyBgcGx1Z2luLW5hbWUtYXMtY29kZS1pbi11aWAgYW5kIHRoZVxuICogbWFya2Rvd25saW50IHJ1bGUgYHBsdWdpbi1uYW1lLWFzLWNvZGVgIGFsbCByZWFkIHRoZSBvbmUgbGlzdCBoZXJlLCBzbyBhIG5hbWUgYWRkZWQgdG8gaXQgaXMgY2hlY2tlZCBldmVyeXdoZXJlIGF0XG4gKiBvbmNlLlxuICpcbiAqIFRoZSBsaXN0IGlzIHRoZSBkaXNwbGF5IG5hbWUgKGBtYW5pZmVzdC5qc29uYCBgbmFtZWApIG9mIGV2ZXJ5IGBtbmFvdW1vdi9vYnNpZGlhbi0qYCBwbHVnaW4sIHBsdXMgdGhlIHRoaXJkLXBhcnR5XG4gKiBwbHVnaW5zIHRob3NlIHJlcG9zaXRvcmllcyBtZW50aW9uLiBBIGZldyB0aGlyZC1wYXJ0eSBuYW1lcyAoYExpbnRlcmAsIGBQcm9qZWN0c2AsIGBDb3BpbG90YCkgYXJlIGxlZnQgb3V0IG9uXG4gKiBwdXJwb3NlOiB0aGV5IGFyZSBvcmRpbmFyeSB3b3Jkcywgc28gbWF0Y2hpbmcgdGhlbSBiYXJlIHJlcG9ydHMgcHJvc2UgcmF0aGVyIHRoYW4gcGx1Z2luIG5hbWVzLiBBIHByb2plY3QgYWRkcyBpdHNcbiAqIG93biBgbWFuaWZlc3QuanNvbmAgYG5hbWVgIGF1dG9tYXRpY2FsbHksIGFuZCBjYW4gZXh0ZW5kIHRoZSBsaXN0IHRocm91Z2ggZWFjaCBydWxlJ3MgYGFkZGl0aW9uYWxQbHVnaW5OYW1lc2BcbiAqIG9wdGlvbi5cbiAqL1xuXG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICByZWFkRmlsZVN5bmNcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcblxuLyoqXG4gKiBUaGUgZGlzcGxheSBuYW1lcyBvZiB0aGUgYG1uYW91bW92L29ic2lkaWFuLSpgIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBNTkFPVU1PVl9QTFVHSU5fTkFNRVM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW1xuICAnQWR2YW5jZWQgRGVidWcgTW9kZScsXG4gICdBZHZhbmNlZCBFeGNsdWRlJyxcbiAgJ0FkdmFuY2VkIE1hcmtkb3duIEV4cG9ydCcsXG4gICdBZHZhbmNlZCBNZXRhZGF0YSBDYWNoZScsXG4gICdBZHZhbmNlZCBOb3RlIENvbXBvc2VyJyxcbiAgJ0FkdmFuY2VkIFJlbmFtZSBhbmQgRGVsZXRlIEhhbmRsZXInLFxuICAnQWxpYXMgUXVpY2sgU3dpdGNoZXInLFxuICAnQXBwIFVwZGF0ZSBOb3RpZmllcicsXG4gICdCYWNrbGluayBDYWNoZScsXG4gICdCYWNrbGluayBGdWxsIFBhdGgnLFxuICAnQmV0dGVyIE1hcmtkb3duIExpbmtzJyxcbiAgJ0NvZGVTY3JpcHQgVG9vbGtpdCcsXG4gICdDb25zaXN0ZW50IEF0dGFjaG1lbnRzIGFuZCBMaW5rcycsXG4gICdDdXN0b20gQXR0YWNobWVudCBMb2NhdGlvbicsXG4gICdFZGl0IExpbmsgQWxpYXMnLFxuICAnRW1haWwgdG8gVmF1bHQnLFxuICAnRW1iZWQgSFRNTCcsXG4gICdFeHRlcm5hbCBSZW5hbWUgSGFuZGxlcicsXG4gICdGaWxlIEJ1bmRsZXMnLFxuICAnRmlsZSBFeHBsb3JlciBSZWxvYWQnLFxuICAnRml4IFRhYiBTaXplJyxcbiAgJ0Zyb250bWF0dGVyIE1hcmtkb3duIExpbmtzJyxcbiAgJ0luc2VydCBNdWx0aXBsZSBBdHRhY2htZW50cycsXG4gICdMaW5rIFBpY2tlcicsXG4gICdNb3JlIEV2ZW50cycsXG4gICdOZXN0ZWQgUHJvcGVydGllcycsXG4gICdOZXcgTm90ZSBGaXhlcicsXG4gICdQcmVzZXJ2ZSBGcm9udG1hdHRlciBGb3JtYXR0aW5nJyxcbiAgJ1JlZnJlc2ggQW55IFZpZXcnLFxuICAnUm9vdCBGb2xkZXIgQ29udGV4dCBNZW51JyxcbiAgJ1NhbXBsZSBQbHVnaW4gRXh0ZW5kZWQnLFxuICAnU21hcnQgUmVuYW1lJ1xuXTtcblxuLyoqXG4gKiBUaGUgZGlzcGxheSBuYW1lcyBvZiB0aGUgdGhpcmQtcGFydHkgcGx1Z2lucyB0aGUgYG1uYW91bW92L29ic2lkaWFuLSpgIHJlcG9zaXRvcmllcyBtZW50aW9uLlxuICovXG5leHBvcnQgY29uc3QgVEhJUkRfUEFSVFlfUExVR0lOX05BTUVTOiByZWFkb25seSBzdHJpbmdbXSA9IFtcbiAgJ0FkdmFuY2VkIFRhYmxlcycsXG4gICdBZHZhbmNlZCBVUkknLFxuICAnRGF0YXZpZXcnLFxuICAnRXhjYWxpZHJhdycsXG4gICdGb2xkZXIgTm90ZXMnLFxuICAnSG92ZXIgRWRpdG9yJyxcbiAgJ0thbmJhbicsXG4gICdNYWtlLm1kJyxcbiAgJ05hdHVyYWwgTGFuZ3VhZ2UgRGF0ZXMnLFxuICAnT2JzaWRpYW4gR2l0JyxcbiAgJ09tbmlzZWFyY2gnLFxuICAnUGVyaW9kaWMgTm90ZXMnLFxuICAnUXVpY2tBZGQnLFxuICAnU21hcnQgQ29ubmVjdGlvbnMnLFxuICAnU3R5bGUgU2V0dGluZ3MnLFxuICAnVGVtcGxhdGVyJyxcbiAgJ1RleHQgR2VuZXJhdG9yJ1xuXTtcblxuLyoqXG4gKiBQYXJhbXMgZm9yIHtAbGluayBnZXRQbHVnaW5OYW1lc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0UGx1Z2luTmFtZXNQYXJhbXMge1xuICAvKipcbiAgICogTmFtZXMgdG8gY2hlY2sgb24gdG9wIG9mIHRoZSBzaGFyZWQgbGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxQbHVnaW5OYW1lcz86IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdCByb290LCB3aG9zZSBgbWFuaWZlc3QuanNvbmAgYG5hbWVgIGlzIGFkZGVkIHRvIHRoZSBsaXN0IHdoZW4gaXQgaGFzIG9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcGx1Z2luIG5hbWUgZm91bmQgaW4gYSB0ZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbk5hbWVNYXRjaCB7XG4gIC8qKlxuICAgKiBUaGUgb2Zmc2V0IG9mIHRoZSBuYW1lIGluIHRoZSB0ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgZm91bmQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBvZiBhIHJ1bGUgdGhhdCBjaGVja3MgcGx1Z2luIG5hbWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbk5hbWVSdWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lcyB0byBjaGVjayBvbiB0b3Agb2YgdGhlIHNoYXJlZCBsaXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbFBsdWdpbk5hbWVzPzogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbi8qKlxuICogQ2hhcmFjdGVycyB0aGF0LCByaWdodCBiZWZvcmUgYSBuYW1lLCBtYWtlIGl0IHBhcnQgb2YgYSBsb25nZXIgdG9rZW46IGEgd29yZCwgYSBjb2RlIHNwYW4sIGEga2ViYWItY2FzZVxuICogaWRlbnRpZmllciwgYSBwYXRoIG9yIGEgbWVtYmVyIGFjY2Vzcy5cbiAqL1xuY29uc3QgTEVBRElOR19CT1VOREFSWSA9IFN0cmluZy5yYXdgKD88IVtcXHdcXGAuL1xcXFwtXSlgO1xuXG4vKipcbiAqIENoYXJhY3RlcnMgdGhhdCwgcmlnaHQgYWZ0ZXIgYSBuYW1lLCBtYWtlIGl0IHBhcnQgb2YgYSBsb25nZXIgdG9rZW4uIEEgYC5gIG9yIGAvYCBpcyBhIGJvdW5kYXJ5IG9ubHkgd2hlbiBhIHdvcmRcbiAqIGZvbGxvd3MgaXQsIHNvIGEgbmFtZSBlbmRpbmcgYSBzZW50ZW5jZSBzdGlsbCBtYXRjaGVzLlxuICovXG5jb25zdCBUUkFJTElOR19CT1VOREFSWSA9IFN0cmluZy5yYXdgKD8hW1xcd1xcYC1dfFsuL1xcXFxdXFx3KWA7XG5cbi8qKlxuICogRmluZHMgZXZlcnkgd2hvbGUtd29yZCBvY2N1cnJlbmNlIG9mIGEgcGx1Z2luIG5hbWUgaW4gYSB0ZXh0LCBza2lwcGluZyB0aG9zZSBpbnNpZGUgYSByYW5nZSBhbiBleGNsdWRlZCBwYXR0ZXJuXG4gKiBtYXRjaGVzLlxuICpcbiAqIE1hdGNoaW5nIGlzIGNhc2Utc2Vuc2l0aXZlLCBzbyB0aGUgbG93ZXJjYXNlIGBkYXRhdmlld2Agb2YgYW4gaWRlbnRpZmllciBvciBhIHBhY2thZ2UgbmFtZSBpcyBub3QgYSBwbHVnaW4gbmFtZS4gQVxuICogbG9uZ2VyIG5hbWUgd2lucyBvdmVyIGEgc2hvcnRlciBvbmUgaXQgY29udGFpbnMuXG4gKlxuICogQHBhcmFtIHRleHQgLSBUaGUgdGV4dCB0byBzZWFyY2guXG4gKiBAcGFyYW0gcGx1Z2luTmFtZXMgLSBUaGUgbmFtZXMgdG8gbG9vayBmb3IuXG4gKiBAcGFyYW0gZXhjbHVkZWRQYXR0ZXJucyAtIEdsb2JhbCBwYXR0ZXJucyB3aG9zZSBtYXRjaGVzIGhpZGUgdGhlIG5hbWVzIGluc2lkZSB0aGVtOiBhIGNvZGUgc3BhbiwgYSBsaW5rLCBhIFVSTC5cbiAqIEByZXR1cm5zIFRoZSBuYW1lcyBmb3VuZCwgaW4gdGV4dCBvcmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQbHVnaW5OYW1lTWF0Y2hlcyh0ZXh0OiBzdHJpbmcsIHBsdWdpbk5hbWVzOiByZWFkb25seSBzdHJpbmdbXSwgZXhjbHVkZWRQYXR0ZXJuczogcmVhZG9ubHkgUmVnRXhwW10gPSBbXSk6IFBsdWdpbk5hbWVNYXRjaFtdIHtcbiAgaWYgKHBsdWdpbk5hbWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGV4Y2x1ZGVkUmFuZ2VzID0gZXhjbHVkZWRQYXR0ZXJucy5mbGF0TWFwKChwYXR0ZXJuKSA9PiBBcnJheS5mcm9tKHRleHQubWF0Y2hBbGwocGF0dGVybiksIChtYXRjaCkgPT4gW21hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aF0gYXMgY29uc3QpKTtcbiAgY29uc3QgYWx0ZXJuYXRpdmVzID0gWy4uLnBsdWdpbk5hbWVzXS5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKS5tYXAoKG5hbWUpID0+IGVzY2FwZVJlZ0V4cChuYW1lKSkuam9pbignfCcpO1xuICBjb25zdCBuYW1lUmVnRXhwID0gbmV3IFJlZ0V4cChgJHtMRUFESU5HX0JPVU5EQVJZfSg/OiR7YWx0ZXJuYXRpdmVzfSkke1RSQUlMSU5HX0JPVU5EQVJZfWAsICdnJyk7XG5cbiAgcmV0dXJuIEFycmF5LmZyb20odGV4dC5tYXRjaEFsbChuYW1lUmVnRXhwKSwgKG1hdGNoKSA9PiAoeyBpbmRleDogbWF0Y2guaW5kZXgsIG5hbWU6IG1hdGNoWzBdIH0pKVxuICAgIC5maWx0ZXIoKG1hdGNoKSA9PiBleGNsdWRlZFJhbmdlcy5ldmVyeSgoW3N0YXJ0LCBlbmRdKSA9PiBtYXRjaC5pbmRleCA+PSBlbmQgfHwgbWF0Y2guaW5kZXggKyBtYXRjaC5uYW1lLmxlbmd0aCA8PSBzdGFydCkpO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgbGlzdCBvZiBwbHVnaW4gbmFtZXMgYSBwcm9qZWN0IGNoZWNrczogdGhlIHNoYXJlZCBsaXN0LCB0aGUgcHJvamVjdCdzIG93biBgbWFuaWZlc3QuanNvbmAgYG5hbWVgLCBhbmRcbiAqIGFueSBuYW1lcyB0aGUgcHJvamVjdCBhZGRzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEdldFBsdWdpbk5hbWVzUGFyYW1zfS5cbiAqIEByZXR1cm5zIFRoZSBuYW1lcywgd2l0aG91dCBkdXBsaWNhdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1Z2luTmFtZXMocGFyYW1zOiBHZXRQbHVnaW5OYW1lc1BhcmFtcyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbmFtZXMgPSBuZXcgU2V0KFsuLi5NTkFPVU1PVl9QTFVHSU5fTkFNRVMsIC4uLlRISVJEX1BBUlRZX1BMVUdJTl9OQU1FUywgLi4ucGFyYW1zLmFkZGl0aW9uYWxQbHVnaW5OYW1lcyA/PyBbXV0pO1xuICBjb25zdCBvd25OYW1lID0gcmVhZE1hbmlmZXN0TmFtZShwYXJhbXMuY3dkKTtcbiAgaWYgKG93bk5hbWUpIHtcbiAgICBuYW1lcy5hZGQob3duTmFtZSk7XG4gIH1cbiAgcmV0dXJuIFsuLi5uYW1lc107XG59XG5cbi8qKlxuICogRXNjYXBlcyBhIHN0cmluZyBmb3IgdXNlIGFzIGEgbGl0ZXJhbCBpbnNpZGUgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIHRleHQgLSBUaGUgdGV4dCB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCB0ZXh0LlxuICovXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgvWyQoKSorLj9bXFxcXFxcXV57fH1dL2csIFN0cmluZy5yYXdgXFwkJmApO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBgbmFtZWAgb2YgdGhlIHByb2plY3QncyBgbWFuaWZlc3QuanNvbmAuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBwcm9qZWN0IHJvb3QuXG4gKiBAcmV0dXJucyBUaGUgbmFtZSwgb3IgYG51bGxgIHdoZW4gdGhlcmUgaXMgbm8gbWFuaWZlc3QsIGl0IGRvZXMgbm90IHBhcnNlLCBvciBpdHMgYG5hbWVgIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHJlYWRNYW5pZmVzdE5hbWUoY3dkOiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gam9pbihjd2QsICdtYW5pZmVzdC5qc29uJyk7XG4gIGlmICghZXhpc3RzU3luYyhtYW5pZmVzdFBhdGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IG1hbmlmZXN0OiB1bmtub3duID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMobWFuaWZlc3RQYXRoLCAndXRmLTgnKSk7XG4gICAgY29uc3QgbmFtZSA9IChtYW5pZmVzdCBhcyBudWxsIHwgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4pPy5bJ25hbWUnXTtcbiAgICByZXR1cm4gdHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnICYmIG5hbWUgIT09ICcnID8gbmFtZSA6IG51bGw7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkEscUJBR087QUFDUCx1QkFBcUI7QUFLZCxNQUFNLHdCQUEyQztBQUFBLEVBQ3REO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFD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
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/// <reference path="../index.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* The plugin names the plugin-name lint rules look for, and the matcher they share.
|
|
6
|
+
*
|
|
7
|
+
* Whenever text mentions an Obsidian plugin by name, the name is marked as code: backticks in markdown and in code
|
|
8
|
+
* comments, a `<code>` element in UI. The ESLint rules `plugin-name-as-code` / `plugin-name-as-code-in-ui` and the
|
|
9
|
+
* markdownlint rule `plugin-name-as-code` all read the one list here, so a name added to it is checked everywhere at
|
|
10
|
+
* once.
|
|
11
|
+
*
|
|
12
|
+
* The list is the display name (`manifest.json` `name`) of every `mnaoumov/obsidian-*` plugin, plus the third-party
|
|
13
|
+
* plugins those repositories mention. A few third-party names (`Linter`, `Projects`, `Copilot`) are left out on
|
|
14
|
+
* purpose: they are ordinary words, so matching them bare reports prose rather than plugin names. A project adds its
|
|
15
|
+
* own `manifest.json` `name` automatically, and can extend the list through each rule's `additionalPluginNames`
|
|
16
|
+
* option.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* The display names of the `mnaoumov/obsidian-*` plugins.
|
|
20
|
+
*/
|
|
21
|
+
export declare const MNAOUMOV_PLUGIN_NAMES: readonly string[];
|
|
22
|
+
/**
|
|
23
|
+
* The display names of the third-party plugins the `mnaoumov/obsidian-*` repositories mention.
|
|
24
|
+
*/
|
|
25
|
+
export declare const THIRD_PARTY_PLUGIN_NAMES: readonly string[];
|
|
26
|
+
/**
|
|
27
|
+
* Params for {@link getPluginNames}.
|
|
28
|
+
*/
|
|
29
|
+
export interface GetPluginNamesParams {
|
|
30
|
+
/**
|
|
31
|
+
* Names to check on top of the shared list.
|
|
32
|
+
*/
|
|
33
|
+
readonly additionalPluginNames?: readonly string[] | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* The project root, whose `manifest.json` `name` is added to the list when it has one.
|
|
36
|
+
*/
|
|
37
|
+
readonly cwd: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A plugin name found in a text.
|
|
41
|
+
*/
|
|
42
|
+
export interface PluginNameMatch {
|
|
43
|
+
/**
|
|
44
|
+
* The offset of the name in the text.
|
|
45
|
+
*/
|
|
46
|
+
readonly index: number;
|
|
47
|
+
/**
|
|
48
|
+
* The name found.
|
|
49
|
+
*/
|
|
50
|
+
readonly name: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Options of a rule that checks plugin names.
|
|
54
|
+
*/
|
|
55
|
+
export interface PluginNameRuleOptions {
|
|
56
|
+
/**
|
|
57
|
+
* Names to check on top of the shared list.
|
|
58
|
+
*/
|
|
59
|
+
readonly additionalPluginNames?: readonly string[];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Finds every whole-word occurrence of a plugin name in a text, skipping those inside a range an excluded pattern
|
|
63
|
+
* matches.
|
|
64
|
+
*
|
|
65
|
+
* Matching is case-sensitive, so the lowercase `dataview` of an identifier or a package name is not a plugin name. A
|
|
66
|
+
* longer name wins over a shorter one it contains.
|
|
67
|
+
*
|
|
68
|
+
* @param text - The text to search.
|
|
69
|
+
* @param pluginNames - The names to look for.
|
|
70
|
+
* @param excludedPatterns - Global patterns whose matches hide the names inside them: a code span, a link, a URL.
|
|
71
|
+
* @returns The names found, in text order.
|
|
72
|
+
*/
|
|
73
|
+
export declare function findPluginNameMatches(text: string, pluginNames: readonly string[], excludedPatterns?: readonly RegExp[]): PluginNameMatch[];
|
|
74
|
+
/**
|
|
75
|
+
* Builds the list of plugin names a project checks: the shared list, the project's own `manifest.json` `name`, and
|
|
76
|
+
* any names the project adds.
|
|
77
|
+
*
|
|
78
|
+
* @param params - The {@link GetPluginNamesParams}.
|
|
79
|
+
* @returns The names, without duplicates.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getPluginNames(params: GetPluginNamesParams): string[];
|