From 116985280aa4cf35b68b11b0760f08afed3ddd0e Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Tue, 16 Jun 2026 22:12:40 -0600 Subject: [PATCH] chore: new template --- package-lock.json | 206 ++++++++++++++++++-------------- package.json | 4 +- src/plugin-settings-tab.test.ts | 26 ++-- src/plugin-settings-tab.ts | 8 +- src/plugin.ts | 2 +- 5 files changed, 140 insertions(+), 106 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7da0100..7c62cf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "jsdom": "^29.1.1", "nano-staged": "^1.0.2", "obsidian": "^1.13.1", - "obsidian-dev-utils": "^70.4.0", + "obsidian-dev-utils": "^71.0.1", "obsidian-integration-testing": "^4.2.4", "obsidian-test-mocks": "^3.1.1", "type-fest": "^5.7.0", @@ -3792,17 +3792,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.0.tgz", - "integrity": "sha512-bFNvl9ZczlVb+wR2Akszf3gHfKVj/8WanXaGJ3UstTA7brNKg0cNdk6X1Psu5V7MZ2oQtzZKOEzIUehaoxbDGw==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz", + "integrity": "sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.61.0", - "@typescript-eslint/type-utils": "8.61.0", - "@typescript-eslint/utils": "8.61.0", - "@typescript-eslint/visitor-keys": "8.61.0", + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/type-utils": "8.61.1", + "@typescript-eslint/utils": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -3815,7 +3815,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.61.0", + "@typescript-eslint/parser": "^8.61.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } @@ -3831,16 +3831,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.0.tgz", - "integrity": "sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.1.tgz", + "integrity": "sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.61.0", - "@typescript-eslint/types": "8.61.0", - "@typescript-eslint/typescript-estree": "8.61.0", - "@typescript-eslint/visitor-keys": "8.61.0", + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3" }, "engines": { @@ -3856,14 +3856,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.0.tgz", - "integrity": "sha512-DV42F7MLJO6Rax7SK1yg43tcnEfGUrurSpSxKuVX+a3RCTzBlH3fuxprrOJXKCJGAaw82xXocikJ0uQaqwXgGA==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.1.tgz", + "integrity": "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.61.0", - "@typescript-eslint/types": "^8.61.0", + "@typescript-eslint/tsconfig-utils": "^8.61.1", + "@typescript-eslint/types": "^8.61.1", "debug": "^4.4.3" }, "engines": { @@ -3878,14 +3878,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.0.tgz", - "integrity": "sha512-IWdXFHFSb6mlC3HPc7QsLDm5zYEbUla6trDEHf32D3/dnuUyXd87plScSNXSbm0/RxMvObpI17sv/EDTGrGZkA==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz", + "integrity": "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.61.0", - "@typescript-eslint/visitor-keys": "8.61.0" + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3896,9 +3896,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.0.tgz", - "integrity": "sha512-O5Amvdv9ztMpxpf+vmFULGG78IE6Qwdr3bCGvqwG4nwc9H2qXkOYJJnRbRHyMkQTjv1d03olqwwwzHLMqpFePQ==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz", + "integrity": "sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==", "dev": true, "license": "MIT", "engines": { @@ -3913,15 +3913,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.0.tgz", - "integrity": "sha512-TuBiQYIkd97yBfInHCTKVYMbX4kvEmpOEuixIuzCU9p8BGT1SfyyO0d0IfDMbPIHcjn/hWnusUX5e8v5Xg+X8A==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz", + "integrity": "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.61.0", - "@typescript-eslint/typescript-estree": "8.61.0", - "@typescript-eslint/utils": "8.61.0", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/utils": "8.61.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -3938,9 +3938,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.0.tgz", - "integrity": "sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.1.tgz", + "integrity": "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==", "dev": true, "license": "MIT", "engines": { @@ -3952,16 +3952,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.0.tgz", - "integrity": "sha512-42zatd5qSvvcV1JdDBCLxYRznvP4eIHpPoZXdkPFnAmanA4FuZ5dibSnCBggY8hQnqajPpoGjXFdZ7fIJKQnlA==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz", + "integrity": "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.61.0", - "@typescript-eslint/tsconfig-utils": "8.61.0", - "@typescript-eslint/types": "8.61.0", - "@typescript-eslint/visitor-keys": "8.61.0", + "@typescript-eslint/project-service": "8.61.1", + "@typescript-eslint/tsconfig-utils": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -3980,16 +3980,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.0.tgz", - "integrity": "sha512-3bzFt7ImFMW/jVYwJamDoe/dMOdFLSC6pom6rRjdh4SZJEYupyMzem8e7vKZLclLfpHjlwSAXOUxtKxGXUiLqA==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.1.tgz", + "integrity": "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.61.0", - "@typescript-eslint/types": "8.61.0", - "@typescript-eslint/typescript-estree": "8.61.0" + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4004,13 +4004,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.0.tgz", - "integrity": "sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz", + "integrity": "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/types": "8.61.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -7861,9 +7861,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "63.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.2.tgz", - "integrity": "sha512-0TchoK1uS4VxHSo3P4CyWQ31Lm+6zsT+xkHMC5KbFKwgOf8YrXPf1Bl8EP7kpgw1wfe/Ui5jz5mSX7ou8WAVuw==", + "version": "63.0.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.5.tgz", + "integrity": "sha512-AzI9bgKhV9li049/mIblX0c41DeWMMfH9qNsRasc+fAxwURRKChIp03Pk57M7UTf+Y6hifTJ89kQyCOoOLtEDw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -8159,13 +8159,13 @@ "license": "MIT" }, "node_modules/eslint-plugin-perfectionist": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-5.9.0.tgz", - "integrity": "sha512-8TWzg02zmnBdZwCkWLi8jhzqXI+fE7Z/RwV8SL6xD45tJ8Bp3wGuYL2XtQgfe/Wd0eBqOUX+s6ey73IyszvKTA==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-5.9.1.tgz", + "integrity": "sha512-30mHLNfEhzwaq5cquyWgnzrNXvT8AzwIwyeH5aj4U5ajhHSF2uiO6i09xpMDLv7koaZVTjLsvYF4m3gK/15tyA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.58.2", + "@typescript-eslint/utils": "^8.61.0", "natural-orderby": "^5.0.0" }, "engines": { @@ -10411,10 +10411,20 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -11102,10 +11112,20 @@ "license": "MIT" }, "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.1.tgz", + "integrity": "sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], "license": "MIT", "dependencies": { "uc.micro": "^2.0.0" @@ -11355,15 +11375,25 @@ } }, "node_modules/markdown-it": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", - "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.2.0.tgz", + "integrity": "sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", - "linkify-it": "^5.0.0", + "linkify-it": "^5.0.1", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" @@ -12780,9 +12810,9 @@ } }, "node_modules/obsidian-dev-utils": { - "version": "70.4.0", - "resolved": "https://registry.npmjs.org/obsidian-dev-utils/-/obsidian-dev-utils-70.4.0.tgz", - "integrity": "sha512-QRz6iN94Bkv3GSUKaRsmq63VWKOOlQa513BEAqib7p0D64agjYB3F1OhCMNCx0FBfctQq7NG2V9bw6hkjg5zcw==", + "version": "71.0.1", + "resolved": "https://registry.npmjs.org/obsidian-dev-utils/-/obsidian-dev-utils-71.0.1.tgz", + "integrity": "sha512-LlUJbyezLFGfHlMXOZ4Vu+rDxKdi6sZS9UrNTiXYT2fpQvKLpx50tBStnraQpiDTh3WkdNqTeqCDiLXP8hLjnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12808,8 +12838,8 @@ "@types/react": "^19.2.17", "@types/semver": "^7.7.1", "@types/shell-quote": "^1.7.5", - "@typescript-eslint/eslint-plugin": "^8.61.0", - "@typescript-eslint/parser": "^8.61.0", + "@typescript-eslint/eslint-plugin": "^8.61.1", + "@typescript-eslint/parser": "^8.61.1", "commander": "^15.0.0", "compare-versions": "^6.1.1", "cspell": "^10.0.1", @@ -12822,17 +12852,19 @@ "eslint": "^10.5.0", "eslint-import-resolver-typescript": "^4.4.5", "eslint-plugin-import-x": "^4.16.2", - "eslint-plugin-jsdoc": "^63.0.2", + "eslint-plugin-jsdoc": "^63.0.5", "eslint-plugin-no-unsanitized": "^4.1.5", "eslint-plugin-obsidianmd": "^0.3.0", - "eslint-plugin-perfectionist": "^5.9.0", + "eslint-plugin-perfectionist": "^5.9.1", "eslint-plugin-tsdoc": "^0.5.2", "globals": "^17.6.0", "i18next": "^26.3.1", "jiti": "^2.7.0", + "js-yaml": "^4.2.0", "linkinator": "^7.6.1", "localforage": "^1.10.0", "lru-cache": "^11.5.1", + "markdown-it": "^14.2.0", "markdownlint": "^0.41.0", "markdownlint-cli2": "^0.22.1", "markdownlint-rule-relative-links": "^5.1.0", @@ -12853,7 +12885,7 @@ "svelte-preprocess": "^6.0.5", "type-fest": "^5.7.0", "typescript": "^6.0.3", - "typescript-eslint": "^8.61.0", + "typescript-eslint": "^8.61.1", "unist-util-visit": "^5.1.0" }, "engines": { @@ -15879,16 +15911,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.61.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.0.tgz", - "integrity": "sha512-8y31Rd0eGTrDKqhy6vT0HtzhN+YLjQizwX3aA3hPXP/ynSfnrBXcQY5IzsP9/DM7+klX4IUncZZjkchP0z+rUw==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.1.tgz", + "integrity": "sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.61.0", - "@typescript-eslint/parser": "8.61.0", - "@typescript-eslint/typescript-estree": "8.61.0", - "@typescript-eslint/utils": "8.61.0" + "@typescript-eslint/eslint-plugin": "8.61.1", + "@typescript-eslint/parser": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/utils": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index fdde76f..66aa795 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,8 @@ "overrides": { "@vitest/coverage-v8": "$@vitest/coverage-v8", "eslint": "$eslint", + "js-yaml": "^4.2.0", + "markdown-it": "^14.2.0", "type-fest": "$type-fest", "typescript": "$typescript" }, @@ -58,7 +60,7 @@ "jsdom": "^29.1.1", "nano-staged": "^1.0.2", "obsidian": "^1.13.1", - "obsidian-dev-utils": "^70.4.0", + "obsidian-dev-utils": "^71.0.1", "obsidian-integration-testing": "^4.2.4", "obsidian-test-mocks": "^3.1.1", "type-fest": "^5.7.0", diff --git a/src/plugin-settings-tab.test.ts b/src/plugin-settings-tab.test.ts index f48cb24..e1bbea9 100644 --- a/src/plugin-settings-tab.test.ts +++ b/src/plugin-settings-tab.test.ts @@ -125,13 +125,13 @@ describe('PluginSettingsTab', () => { it('should render settings without errors', () => { const { tab } = createPluginSettingsTab(); expect(() => { - tab.display(); + tab.displayLegacy(); }).not.toThrow(); }); it('should create setting elements in containerEl', () => { const { tab } = createPluginSettingsTab(); - tab.display(); + tab.displayLegacy(); // Settings mock creates divs inside containerEl expect(tab.containerEl.children.length).toBeGreaterThan(0); @@ -141,8 +141,8 @@ describe('PluginSettingsTab', () => { const { tab } = createPluginSettingsTab(); expect(() => { - tab.display(); - tab.display(); + tab.displayLegacy(); + tab.displayLegacy(); }).not.toThrow(); }); @@ -160,7 +160,7 @@ describe('PluginSettingsTab', () => { ); const { pluginSettingsComponent, tab } = createPluginSettingsTab(); - tab.display(); + tab.displayLegacy(); addToggleSpy.mockRestore(); @@ -168,7 +168,7 @@ describe('PluginSettingsTab', () => { vi.spyOn(pluginSettingsComponent, 'setProperty').mockResolvedValue(''); // Spy on display to detect re-display, replace with noop to prevent cascade - const displaySpy = vi.spyOn(tab, 'display').mockImplementation(() => { + const displaySpy = vi.spyOn(tab, 'displayLegacy').mockImplementation(() => { // No-op to prevent cascading re-display }); @@ -200,13 +200,13 @@ describe('PluginSettingsTab', () => { ); const { pluginSettingsComponent, tab } = createPluginSettingsTab(); - tab.display(); + tab.displayLegacy(); addToggleSpy.mockRestore(); vi.spyOn(pluginSettingsComponent, 'setProperty').mockResolvedValue(''); - const displaySpy = vi.spyOn(tab, 'display').mockImplementation(() => { + const displaySpy = vi.spyOn(tab, 'displayLegacy').mockImplementation(() => { // No-op to prevent cascading re-display }); @@ -244,7 +244,7 @@ describe('PluginSettingsTab', () => { const { tab } = createPluginSettingsTab({ debugModeOverrides: debugModeMock }); - tab.display(); + tab.displayLegacy(); addToggleSpy.mockRestore(); // Toggle index 0 is "Obsidian debug mode" @@ -276,7 +276,7 @@ describe('PluginSettingsTab', () => { const { tab } = createPluginSettingsTab({ emulateMobileModeOverrides: emulateMobileMock }); - tab.display(); + tab.displayLegacy(); addToggleSpy.mockRestore(); // Toggle index 1 is "Desktop: Emulate mobile mode" @@ -313,7 +313,7 @@ describe('PluginSettingsTab', () => { const { tab } = createPluginSettingsTab({ debugControllerOverrides: debugControllerMock }); - tab.display(); + tab.displayLegacy(); addTextAreaSpy.mockRestore(); const textArea = capturedTextAreas[0]; @@ -348,12 +348,12 @@ describe('PluginSettingsTab', () => { const { tab } = createPluginSettingsTab({ debugControllerOverrides: debugControllerMock }); - tab.display(); + tab.displayLegacy(); addToggleSpy.mockRestore(); // Mock display to prevent infinite recursion - vi.spyOn(tab, 'display').mockImplementation(() => { + vi.spyOn(tab, 'displayLegacy').mockImplementation(() => { // No-op }); diff --git a/src/plugin-settings-tab.ts b/src/plugin-settings-tab.ts index 84e577f..f69fda5 100644 --- a/src/plugin-settings-tab.ts +++ b/src/plugin-settings-tab.ts @@ -32,7 +32,7 @@ export class PluginSettingsTab extends PluginSettingsTabBase { this.emulateMobileMode = params.emulateMobileMode; } - protected override displayLegacy(): void { + public override displayLegacy(): void { super.displayLegacy(); new Setting(this.containerEl) @@ -109,7 +109,7 @@ export class PluginSettingsTab extends PluginSettingsTabBase { .addToggle((toggle) => { this.bind(toggle, 'shouldIncludeLongStackTraces', { onChanged: () => { - this.display(); + this.displayLegacy(); } }); }); @@ -172,7 +172,7 @@ export class PluginSettingsTab extends PluginSettingsTabBase { this .bind(toggle, 'shouldTimeoutLongRunningTasks', { onChanged: () => { - this.display(); + this.displayLegacy(); } }) .setDisabled(Platform.isMobile); @@ -228,7 +228,7 @@ export class PluginSettingsTab extends PluginSettingsTabBase { } else { this.debugController.enable(NAMESPACE); } - this.display(); + this.displayLegacy(); }); }); } diff --git a/src/plugin.ts b/src/plugin.ts index 3fdd58c..4c81667 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -73,7 +73,7 @@ export class Plugin extends PluginBase { this.addChild( new LongStackTracesComponent({ - app, + app: this.app, pluginId: this.manifest.id, pluginSettingsComponent })