From edee7bf973d149c8b7f86b293b9032bcfe9cba2f Mon Sep 17 00:00:00 2001 From: Michael Naumov Date: Fri, 26 Jun 2026 14:17:01 -0600 Subject: [PATCH] chore: update libs --- package-lock.json | 58 ++++++++++++++++----------------- package.json | 2 +- src/plugin-settings-tab.test.ts | 10 +++--- src/plugin-settings-tab.ts | 18 ++++++---- 4 files changed, 47 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index e0d5516..3b1bfa4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "jsdom": "^29.1.1", "nano-staged": "^1.0.2", "obsidian": "^1.13.1", - "obsidian-dev-utils": "^80.0.1", + "obsidian-dev-utils": "^81.0.0", "obsidian-integration-testing": "^4.4.0", "obsidian-test-mocks": "^3.3.0", "vitest": "^4.1.9" @@ -7164,9 +7164,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.0.tgz", - "integrity": "sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==", + "version": "5.24.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.1.tgz", + "integrity": "sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw==", "dev": true, "license": "MIT", "dependencies": { @@ -7905,9 +7905,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "63.0.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.7.tgz", - "integrity": "sha512-pxrqGO733F7xmVYB5vQOiciiT9uddxqehawnbPjZmW2YaJR6fT5cP3UQd2BNoE85ATspCMtNL8w/a5WDGX3Qwg==", + "version": "63.0.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.9.tgz", + "integrity": "sha512-SJskF1zzPPRVfsmJyr/PqUXcpjA7o5Y0YnEoLBMDQlQWhELbYMRvK/8Fzlvh5XwEwJW8glAtKGKucaL0WGPMkw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9726,9 +9726,9 @@ } }, "node_modules/i18next": { - "version": "26.3.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.1.tgz", - "integrity": "sha512-txQqd5EULsqEh9OJqRH15aCaOuy/nLJyhw5EHCSKLKJE1aBbb3Zve2+uQIxgWhPm1QqUQoWyQBm2kfmmIrzkcQ==", + "version": "26.3.3", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.3.tgz", + "integrity": "sha512-aYVegyBdXSO93CMMihvr47jI7GHSOcIahMpJX+qzUXDzW4xDJf2uenIA+45vDU+YhiVdcfsql70AC9RVdMNrHg==", "dev": true, "funding": [ { @@ -13009,9 +13009,9 @@ } }, "node_modules/obsidian-dev-utils": { - "version": "80.0.1", - "resolved": "https://registry.npmjs.org/obsidian-dev-utils/-/obsidian-dev-utils-80.0.1.tgz", - "integrity": "sha512-um7s/p2MhaL5zKg9ZDDUCyKHI/0VAsL/DCon1coCPTKhUMloY+XtJlT26VzppRRTj/erJKOt5b6QQXzOIPAKjA==", + "version": "81.0.0", + "resolved": "https://registry.npmjs.org/obsidian-dev-utils/-/obsidian-dev-utils-81.0.0.tgz", + "integrity": "sha512-fID/pwe7Uomy6ifiK9IAX8mCwpasg/a5WTXRlGKne/ImAPQd+jJwO9McN/OPVPGYKhA3XeI9ntO0JWc6o7BySQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13029,7 +13029,7 @@ "@types/doctrine": "^0.0.9", "@types/eslint": "^9.6.1", "@types/luxon": "^3.7.2", - "@types/node": "^26.0.0", + "@types/node": "^26.0.1", "@types/parsimmon": "^1.10.9", "@types/path-browserify": "^1.0.3", "@types/picomatch": "^4.0.3", @@ -13044,20 +13044,20 @@ "cspell": "^10.0.1", "debug": "^4.4.3", "dprint": "^0.54.0", - "enhanced-resolve": "^5.24.0", + "enhanced-resolve": "^5.24.1", "esbuild": "^0.28.1", "esbuild-sass-plugin": "^3.7.0", "esbuild-svelte": "^0.9.5", "eslint": "^10.5.0", "eslint-import-resolver-typescript": "^4.4.5", "eslint-plugin-import-x": "^4.17.0", - "eslint-plugin-jsdoc": "^63.0.7", + "eslint-plugin-jsdoc": "^63.0.9", "eslint-plugin-no-unsanitized": "^4.1.5", "eslint-plugin-obsidianmd": "^0.3.0", "eslint-plugin-perfectionist": "^5.9.1", "eslint-plugin-tsdoc": "^0.5.2", "globals": "^17.7.0", - "i18next": "^26.3.1", + "i18next": "^26.3.3", "jiti": "^2.7.0", "linkinator": "^7.6.1", "localforage": "^1.10.0", @@ -13070,15 +13070,15 @@ "path-browserify": "^1.0.1", "postcss": "^8.5.15", "postcss-modules": "^6.0.1", - "preact": "^10.29.2", + "preact": "^10.29.3", "react": "^19.2.7", "remark": "^15.0.1", "remark-parse": "^11.0.0", "remark-wiki-link": "^2.0.1", "sass": "^1.101.0", "semver": "^7.8.5", - "shell-quote": "^1.8.4", - "svelte-check": "^4.7.0", + "shell-quote": "^1.9.0", + "svelte-check": "^4.7.1", "svelte-preprocess": "^6.0.5", "type-fest": "^5.7.0", "typescript": "^6.0.3", @@ -13714,9 +13714,9 @@ "license": "MIT" }, "node_modules/preact": { - "version": "10.29.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.2.tgz", - "integrity": "sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==", + "version": "10.29.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.3.tgz", + "integrity": "sha512-D9NL1GAnJZhc3RndVs4gDdxEeU9TcHgywMrhhOsnpdlvFjdbx0gAsLUnH6JEhlJH5giL7Tx5biWPUSEXE/HPzw==", "dev": true, "license": "MIT", "funding": { @@ -14910,9 +14910,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", - "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.9.0.tgz", + "integrity": "sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==", "dev": true, "license": "MIT", "engines": { @@ -15501,9 +15501,9 @@ } }, "node_modules/svelte-check": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.7.0.tgz", - "integrity": "sha512-XChCqdDg29UWOWai2I1s2Ss003piZ9mae2y2KXwoOX01W75mg7/fwLLnx9Yruk9asHkxHPDdSfEfsJh5tr9JvQ==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.7.1.tgz", + "integrity": "sha512-FGUOmAqxXdN/H9Zm8slrqO7SLtFisXRB7rfOsHNJ3MLTD2po/+Stg8XyErkpumPHbuUiYTcqrEIzxpVWKTLqtg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index e719f2b..9775b69 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "jsdom": "^29.1.1", "nano-staged": "^1.0.2", "obsidian": "^1.13.1", - "obsidian-dev-utils": "^80.0.1", + "obsidian-dev-utils": "^81.0.0", "obsidian-integration-testing": "^4.4.0", "obsidian-test-mocks": "^3.3.0", "vitest": "^4.1.9" diff --git a/src/plugin-settings-tab.test.ts b/src/plugin-settings-tab.test.ts index d940de3..0abbe8d 100644 --- a/src/plugin-settings-tab.test.ts +++ b/src/plugin-settings-tab.test.ts @@ -54,17 +54,17 @@ function createSettingsTab(): PluginSettingsTab { } function findBind(key: keyof PluginSettings): BindCapture { - const call = ensureNonNullable(bindSpy.mock.calls.find((bindCall) => bindCall[1] === key)); + const call = ensureNonNullable(bindSpy.mock.calls.find((bindCall) => bindCall[0].propertyName === key)); return { - component: castTo(call[0]), - options: castTo(call[2]) + component: castTo(call[0].valueComponent), + options: castTo(call[0]) }; } describe('PluginSettingsTab', () => { beforeEach(() => { app = App.createConfigured__().asOriginalType__(); - bindSpy = vi.spyOn(PluginSettingsTab.prototype, 'bind').mockImplementation((valueComponent) => valueComponent); + bindSpy = vi.spyOn(PluginSettingsTab.prototype, 'bind').mockImplementation((params) => params.valueComponent); }); afterEach(() => { @@ -89,7 +89,7 @@ describe('PluginSettingsTab', () => { tab.displayLegacy(); - expect(bindSpy.mock.calls.map((bindCall) => bindCall[1])).toEqual([ + expect(bindSpy.mock.calls.map((bindCall) => bindCall[0].propertyName)).toEqual([ 'attachmentLinksPrefix', 'attachmentLinksDelimiter', 'attachmentLinksSuffix' diff --git a/src/plugin-settings-tab.ts b/src/plugin-settings-tab.ts index 0f07926..919a1fd 100644 --- a/src/plugin-settings-tab.ts +++ b/src/plugin-settings-tab.ts @@ -18,9 +18,11 @@ export class PluginSettingsTab extends PluginSettingsTabBase { .setName('Attachment links prefix') .setDesc('The text to insert before attachment links.') .addText((text) => { - this.bind(text, 'attachmentLinksPrefix', { + this.bind({ componentToPluginSettingsValueConverter: restoreWhitespaceCharacters, - pluginSettingsToComponentValueConverter: showWhitespaceCharacters + pluginSettingsToComponentValueConverter: showWhitespaceCharacters, + propertyName: 'attachmentLinksPrefix', + valueComponent: text }); handleWhitespace(text); @@ -30,10 +32,12 @@ export class PluginSettingsTab extends PluginSettingsTabBase { .setName('Attachment links delimiter') .setDesc('The delimiter to insert between attachment links.') .addText((text) => { - this.bind(text, 'attachmentLinksDelimiter', { + this.bind({ componentToPluginSettingsValueConverter: restoreWhitespaceCharacters, pluginSettingsToComponentValueConverter: showWhitespaceCharacters, - shouldShowPlaceholderForDefaultValues: false + propertyName: 'attachmentLinksDelimiter', + shouldShowPlaceholderForDefaultValues: false, + valueComponent: text }); handleWhitespace(text); @@ -43,9 +47,11 @@ export class PluginSettingsTab extends PluginSettingsTabBase { .setName('Attachment links suffix') .setDesc('The text to insert after attachment links.') .addText((text) => { - this.bind(text, 'attachmentLinksSuffix', { + this.bind({ componentToPluginSettingsValueConverter: restoreWhitespaceCharacters, - pluginSettingsToComponentValueConverter: showWhitespaceCharacters + pluginSettingsToComponentValueConverter: showWhitespaceCharacters, + propertyName: 'attachmentLinksSuffix', + valueComponent: text }); handleWhitespace(text);