From 5a8a72c0bced6fb9a668b698d246ec583a630ab2 Mon Sep 17 00:00:00 2001 From: Chentao Yang Date: Tue, 23 Jun 2026 23:00:06 +0200 Subject: [PATCH] bump to 1.6.5 --- eslint.config.mjs | 9 ++-- manifest.json | 4 +- package-lock.json | 95 ++++++++++++++++++++---------------------- package.json | 22 +++++----- src/nodeUtils.ts | 16 +++----- src/sqlite.ts | 24 ++++++++--- src/textUtils.ts | 18 +++++--- versions.json | 5 ++- yarn.lock | 102 +++++++++++++++++++++++----------------------- 9 files changed, 152 insertions(+), 143 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 574c29e..f5b2d17 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -8,7 +8,8 @@ export default tseslint.config( "main.js", "rollup.config.js", "node_modules/**", - "dist/**" + "dist/**", + "test/**" ], }, @@ -20,12 +21,12 @@ export default tseslint.config( ], languageOptions: { parserOptions: { - projectService: true, + project: "./tsconfig.json", tsconfigRootDir: import.meta.dirname, }, }, rules: { - "@typescript-eslint/no-explicit-any": "warn" + "@typescript-eslint/no-explicit-any": "warn", }, } -); +); \ No newline at end of file diff --git a/manifest.json b/manifest.json index 23cece5..024f91d 100644 --- a/manifest.json +++ b/manifest.json @@ -2,9 +2,9 @@ "id": "things-toolkit", "name": "Things Toolkit", "description": "Sync Things3 completions into daily notes with review stats and privacy-aware macOS access.", - "version": "1.6.4", + "version": "1.6.5", "author": "yangcht", "authorUrl": "https://github.com/yangcht", "isDesktopOnly": false, "minAppVersion": "1.13.1" -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 38c136e..4cbf016 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,34 +1,34 @@ { "name": "obsidian-things-toolkit-plugin", - "version": "1.6.4", + "version": "1.6.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "obsidian-things-toolkit-plugin", - "version": "1.6.4", + "version": "1.6.5", "license": "MIT", "dependencies": { + "@obsidian-typings/obsidian-public-latest": "6.16.0", + "obsidian": "1.13.1", "obsidian-daily-notes-interface": "0.9.2", "papaparse": "5.3.1", "tslib": "2.2.0" }, "devDependencies": { - "@eslint/js": "^10.0.1", - "@obsidian-typings/obsidian-public-latest": "^6.16.0", + "@eslint/js": "10.0.1", "@rollup/plugin-commonjs": "^29.0.3", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-typescript": "^12.3.0", - "@types/node": "latest", + "@types/node": "24.10.1", "@types/papaparse": "5.3.1", - "@typescript-eslint/eslint-plugin": "latest", - "@typescript-eslint/parser": "latest", - "eslint": "latest", - "obsidian": "1.13.1", + "@typescript-eslint/eslint-plugin": "8.61.0", + "@typescript-eslint/parser": "8.61.0", + "eslint": "10.0.0", "rollup": "^4.62.0", "tsx": "4.22.4", - "typescript": "latest", - "typescript-eslint": "^8.61.0" + "typescript": "5.9.3", + "typescript-eslint": "8.61.0" } }, "node_modules/@codemirror/state": { @@ -541,9 +541,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", - "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz", + "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -598,13 +598,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", - "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz", + "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^1.2.1", + "@eslint/core": "^1.1.1", "levn": "^0.4.1" }, "engines": { @@ -695,20 +695,18 @@ "version": "6.20.0", "resolved": "https://registry.npmjs.org/@obsidian-typings/obsidian-public-1.12.7/-/obsidian-public-1.12.7-6.20.0.tgz", "integrity": "sha512-z5b7n7niCfkcg65+9D4MM333U1pgiVmJTbtU0jU3V62hcTHTSEqscyvOV6iISpdl4ecuOcssUGWljsBCBEzX9g==", - "dev": true, "license": "MIT", "peerDependencies": { "@types/node": ">=16.0.0" } }, "node_modules/@obsidian-typings/obsidian-public-latest": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@obsidian-typings/obsidian-public-latest/-/obsidian-public-latest-6.18.0.tgz", - "integrity": "sha512-Vjvw1V5VccZQHurz5KlyrKNsQ5akOZZUSVKj1u1k7gt5+qhNBH/Zo5TPOr2Vv7KrqGgY9ckHG0SAOarhLMUMjg==", - "dev": true, + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@obsidian-typings/obsidian-public-latest/-/obsidian-public-latest-6.16.0.tgz", + "integrity": "sha512-Rd59GYcj1DejcdAu2OI6zT94Sb4eImVZiV5Mms1nfarpjB9b2GQ7eWAsuyGQ0WsiWUVL+7qhii/r9+mzSJCAZQ==", "license": "MIT", "dependencies": { - "@obsidian-typings/obsidian-public-1.12.7": "^6.20.0" + "@obsidian-typings/obsidian-public-1.12.7": "^6.18.0" } }, "node_modules/@rollup/plugin-commonjs": { @@ -1193,13 +1191,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.9.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz", - "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==", - "dev": true, + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", "license": "MIT", "dependencies": { - "undici-types": ">=7.24.0 <7.24.7" + "undici-types": "~7.16.0" } }, "node_modules/@types/papaparse": { @@ -1654,32 +1651,29 @@ } }, "node_modules/eslint": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz", - "integrity": "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.0.tgz", + "integrity": "sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==", "dev": true, "license": "MIT", - "workspaces": [ - "packages/*" - ], "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", - "@eslint/config-array": "^0.23.5", - "@eslint/config-helpers": "^0.6.0", - "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.2", + "@eslint/config-array": "^0.23.0", + "@eslint/config-helpers": "^0.5.2", + "@eslint/core": "^1.1.0", + "@eslint/plugin-kit": "^0.6.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.14.0", + "ajv": "^6.12.4", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^9.1.2", - "eslint-visitor-keys": "^5.0.1", - "espree": "^11.2.0", + "eslint-scope": "^9.1.0", + "eslint-visitor-keys": "^5.0.0", + "espree": "^11.1.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1690,7 +1684,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.2.4", + "minimatch": "^10.1.1", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -2526,9 +2520,9 @@ } }, "node_modules/typescript": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -2564,10 +2558,9 @@ } }, "node_modules/undici-types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", - "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", - "dev": true, + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "license": "MIT" }, "node_modules/uri-js": { diff --git a/package.json b/package.json index ba60596..14968bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-things-toolkit-plugin", - "version": "1.6.4", + "version": "1.6.5", "type": "module", "description": "Sync Things3 completions into Obsidian daily notes with review stats", "author": "yangcht", @@ -15,28 +15,28 @@ "build:nolint": "rollup -c", "release:create": "npm run build && VERSION=$(node -p \"require('./manifest.json').version\") && gh release create \"$VERSION\" main.js manifest.json styles.css --title \"$VERSION\" --notes \"Release $VERSION\"", "release:upload": "npm run build && VERSION=$(node -p \"require('./manifest.json').version\") && (gh release delete-asset \"$VERSION\" versions.json -y >/dev/null 2>&1 || true) && gh release upload \"$VERSION\" main.js manifest.json styles.css --clobber", - "test:watch": "yarn test -- --watch" + "test:watch": "npm test -- --watch" }, "dependencies": { + "@obsidian-typings/obsidian-public-latest": "6.16.0", + "obsidian": "1.13.1", "obsidian-daily-notes-interface": "0.9.2", "papaparse": "5.3.1", "tslib": "2.2.0" }, "devDependencies": { - "@eslint/js": "^10.0.1", - "@obsidian-typings/obsidian-public-latest": "^6.16.0", + "@eslint/js": "10.0.1", "@rollup/plugin-commonjs": "^29.0.3", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-typescript": "^12.3.0", - "@types/node": "latest", + "@types/node": "24.10.1", "@types/papaparse": "5.3.1", - "@typescript-eslint/eslint-plugin": "latest", - "@typescript-eslint/parser": "latest", - "eslint": "latest", - "obsidian": "1.13.1", + "@typescript-eslint/eslint-plugin": "8.61.0", + "@typescript-eslint/parser": "8.61.0", + "eslint": "10.0.0", "rollup": "^4.62.0", "tsx": "4.22.4", - "typescript": "latest", - "typescript-eslint": "^8.61.0" + "typescript": "5.9.3", + "typescript-eslint": "8.61.0" } } \ No newline at end of file diff --git a/src/nodeUtils.ts b/src/nodeUtils.ts index 658092e..0da85dc 100644 --- a/src/nodeUtils.ts +++ b/src/nodeUtils.ts @@ -1,14 +1,10 @@ -import { Platform } from "obsidian"; - interface DesktopWindow extends Window { require?: (moduleName: string) => unknown; } type ModuleRequire = (moduleName: string) => unknown; -declare const require: - | ModuleRequire - | undefined; +declare const require: ModuleRequire | undefined; export interface ChildProcessLike { on(event: "close" | "exit", listener: (code: number | null) => void): void; @@ -43,21 +39,19 @@ interface StreamLike { } function requireDesktopModule(moduleName: string): T { - if (!Platform.isDesktopApp) { - throw new Error(`${moduleName} is only available in Obsidian desktop`); - } - const requireFns: ModuleRequire[] = []; + if (typeof require === "function") { requireFns.push(require); } + const windowRequire = (window as DesktopWindow).require; if (typeof windowRequire === "function") { requireFns.push(windowRequire.bind(window)); } if (requireFns.length === 0) { - throw new Error("Obsidian desktop require API is unavailable"); + throw new Error(`${moduleName} is only available in Obsidian desktop`); } let lastError: unknown; @@ -87,4 +81,4 @@ export function getOsModule(): OsModuleLike { export function getPathModule(): PathModuleLike { return requireDesktopModule("path"); -} +} \ No newline at end of file diff --git a/src/sqlite.ts b/src/sqlite.ts index d027d6c..cdd48c3 100644 --- a/src/sqlite.ts +++ b/src/sqlite.ts @@ -1,4 +1,4 @@ -import Papa from "papaparse"; +import { parse } from "papaparse"; import { getChildProcessModule } from "./nodeUtils"; @@ -16,11 +16,13 @@ function chunkToString(chunk: unknown): string { function parseCSV(csv: string[]): T[] { const lines = csv.join(""); - return Papa.parse(lines, { + const result = parse(lines, { dynamicTyping: false, header: true, skipEmptyLines: true, - }).data; + }); + + return result.data; } async function handleSqliteQuery( @@ -31,6 +33,7 @@ async function handleSqliteQuery( const stdOut: string[] = []; const stdErr: string[] = []; let settled = false; + const finish = (result: ISpawnResults) => { if (!settled) { settled = true; @@ -48,6 +51,7 @@ async function handleSqliteQuery( spawned.stdout.on("data", (chunk: unknown) => { stdOut.push(chunkToString(chunk)); }); + spawned.stderr.on("data", (chunk: unknown) => { stdErr.push(chunkToString(chunk)); }); @@ -55,8 +59,14 @@ async function handleSqliteQuery( spawned.on("error", (err: Error) => { stdErr.push(err.stack ?? err.message); }); - spawned.on("close", (code: number | null) => finish({ stdErr, stdOut, code })); - spawned.on("exit", (code: number | null) => finish({ stdErr, stdOut, code })); + + spawned.on("close", (code: number | null) => + finish({ stdErr, stdOut, code }) + ); + + spawned.on("exit", (code: number | null) => + finish({ stdErr, stdOut, code }) + ); }); } @@ -65,9 +75,11 @@ export async function querySqliteDB( query: string ): Promise { const { stdOut, stdErr, code } = await handleSqliteQuery(dbPath, query); + if (stdErr.length || code !== 0) { const error = stdErr.join("") || `sqlite3 exited with code ${String(code)}`; throw new Error(error); } + return parseCSV(stdOut); -} +} \ No newline at end of file diff --git a/src/textUtils.ts b/src/textUtils.ts index 285d2dd..7d0dc95 100644 --- a/src/textUtils.ts +++ b/src/textUtils.ts @@ -1,5 +1,5 @@ import type { App, TFile } from "obsidian"; -import { Platform } from "obsidian"; + import { getEditorForFile } from "./fileUtils"; export function getHeadingLevel(line = ""): number | null { @@ -7,7 +7,11 @@ export function getHeadingLevel(line = ""): number | null { return heading ? heading[1].length : null; } -export function toHeading(title: string, level: number, addEmptyLine: boolean): string { +export function toHeading( + title: string, + level: number, + addEmptyLine: boolean +): string { const emptyLine = addEmptyLine ? "\n" : ""; const hash = "".padStart(level, "#"); return `${emptyLine}${hash} ${title}`; @@ -33,7 +37,7 @@ export function groupBy( } export function isMacOS(): boolean { - return Platform.isMacOS; + return /Mac|iPhone|iPad|iPod/.test(navigator.platform); } export async function updateSection( @@ -76,6 +80,7 @@ export async function updateSection( ) .join("\n") .trimEnd(); + if (currentSection === sectionContents.trimEnd()) { return false; } @@ -85,6 +90,7 @@ export async function updateSection( nextSectionLineNum !== -1 ? { line: nextSectionLineNum, ch: 0 } : { line: fileLines.length, ch: 0 }; + editor.replaceRange(`${sectionContents}\n`, from, to); return true; } @@ -110,7 +116,9 @@ export async function updateSection( return false; } - await vault.process(file, () => [...prefix, sectionContents, ...suffix].join("\n")); + await vault.process(file, () => + [...prefix, sectionContents, ...suffix].join("\n") + ); return true; } @@ -163,4 +171,4 @@ export function countThingsTasksInSection( .split("\n") .filter((line) => /^- \[[ xXcC]\] .*things:\/\/\/show\?id=/.test(line)) .length; -} +} \ No newline at end of file diff --git a/versions.json b/versions.json index 5614125..1adabf3 100644 --- a/versions.json +++ b/versions.json @@ -9,5 +9,6 @@ "1.6.1": "1.13.1", "1.6.2": "1.13.1", "1.6.3": "1.13.1", - "1.6.4": "1.13.1" -} + "1.6.4": "1.13.1", + "1.6.5": "1.13.1" +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 132a4ed..aa15ca1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -36,7 +36,7 @@ resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz" integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== -"@eslint/config-array@^0.23.5": +"@eslint/config-array@^0.23.0": version "0.23.5" resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz" integrity sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA== @@ -45,21 +45,21 @@ debug "^4.3.1" minimatch "^10.2.4" -"@eslint/config-helpers@^0.6.0": - version "0.6.0" - resolved "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz" - integrity sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA== +"@eslint/config-helpers@^0.5.2": + version "0.5.5" + resolved "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz" + integrity sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w== dependencies: "@eslint/core" "^1.2.1" -"@eslint/core@^1.2.1": +"@eslint/core@^1.1.0", "@eslint/core@^1.1.1", "@eslint/core@^1.2.1": version "1.2.1" resolved "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz" integrity sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ== dependencies: "@types/json-schema" "^7.0.15" -"@eslint/js@^10.0.1": +"@eslint/js@10.0.1": version "10.0.1" resolved "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz" integrity sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA== @@ -69,12 +69,12 @@ resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz" integrity sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw== -"@eslint/plugin-kit@^0.7.2": - version "0.7.2" - resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz" - integrity sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A== +"@eslint/plugin-kit@^0.6.0": + version "0.6.1" + resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz" + integrity sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ== dependencies: - "@eslint/core" "^1.2.1" + "@eslint/core" "^1.1.1" levn "^0.4.1" "@humanfs/core@^0.19.2": @@ -118,17 +118,17 @@ resolved "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz" integrity sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g== -"@obsidian-typings/obsidian-public-1.12.7@^6.20.0": +"@obsidian-typings/obsidian-public-1.12.7@^6.18.0": version "6.20.0" resolved "https://registry.npmjs.org/@obsidian-typings/obsidian-public-1.12.7/-/obsidian-public-1.12.7-6.20.0.tgz" integrity sha512-z5b7n7niCfkcg65+9D4MM333U1pgiVmJTbtU0jU3V62hcTHTSEqscyvOV6iISpdl4ecuOcssUGWljsBCBEzX9g== -"@obsidian-typings/obsidian-public-latest@^6.16.0": - version "6.18.0" - resolved "https://registry.npmjs.org/@obsidian-typings/obsidian-public-latest/-/obsidian-public-latest-6.18.0.tgz" - integrity sha512-Vjvw1V5VccZQHurz5KlyrKNsQ5akOZZUSVKj1u1k7gt5+qhNBH/Zo5TPOr2Vv7KrqGgY9ckHG0SAOarhLMUMjg== +"@obsidian-typings/obsidian-public-latest@6.16.0": + version "6.16.0" + resolved "https://registry.npmjs.org/@obsidian-typings/obsidian-public-latest/-/obsidian-public-latest-6.16.0.tgz" + integrity sha512-Rd59GYcj1DejcdAu2OI6zT94Sb4eImVZiV5Mms1nfarpjB9b2GQ7eWAsuyGQ0WsiWUVL+7qhii/r9+mzSJCAZQ== dependencies: - "@obsidian-typings/obsidian-public-1.12.7" "^6.20.0" + "@obsidian-typings/obsidian-public-1.12.7" "^6.18.0" "@rollup/plugin-commonjs@^29.0.3": version "29.0.3" @@ -198,12 +198,12 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/node@*", "@types/node@>=16.0.0", "@types/node@latest": - version "25.9.3" - resolved "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz" - integrity sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg== +"@types/node@*", "@types/node@>=16.0.0", "@types/node@24.10.1": + version "24.10.1" + resolved "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz" + integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== dependencies: - undici-types ">=7.24.0 <7.24.7" + undici-types "~7.16.0" "@types/papaparse@5.3.1": version "5.3.1" @@ -224,7 +224,7 @@ dependencies: "@types/estree" "*" -"@typescript-eslint/eslint-plugin@8.61.0", "@typescript-eslint/eslint-plugin@latest": +"@typescript-eslint/eslint-plugin@8.61.0": version "8.61.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.0.tgz" integrity sha512-bFNvl9ZczlVb+wR2Akszf3gHfKVj/8WanXaGJ3UstTA7brNKg0cNdk6X1Psu5V7MZ2oQtzZKOEzIUehaoxbDGw== @@ -238,7 +238,7 @@ natural-compare "^1.4.0" ts-api-utils "^2.5.0" -"@typescript-eslint/parser@^8.61.0", "@typescript-eslint/parser@8.61.0", "@typescript-eslint/parser@latest": +"@typescript-eslint/parser@^8.61.0", "@typescript-eslint/parser@8.61.0": version "8.61.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.0.tgz" integrity sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w== @@ -330,7 +330,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz" integrity sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg== -ajv@^6.14.0: +ajv@^6.12.4: version "6.15.0" resolved "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz" integrity sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== @@ -430,7 +430,7 @@ escape-string-regexp@^4.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-scope@^9.1.2: +eslint-scope@^9.1.0: version "9.1.2" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz" integrity sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ== @@ -455,28 +455,28 @@ eslint-visitor-keys@^5.0.1: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== -eslint@^10.0.0, "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^8.57.0 || ^9.0.0 || ^10.0.0", eslint@latest: - version "10.5.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz" - integrity sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ== +eslint@^10.0.0, "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^8.57.0 || ^9.0.0 || ^10.0.0", eslint@10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-10.0.0.tgz" + integrity sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.2" - "@eslint/config-array" "^0.23.5" - "@eslint/config-helpers" "^0.6.0" - "@eslint/core" "^1.2.1" - "@eslint/plugin-kit" "^0.7.2" + "@eslint/config-array" "^0.23.0" + "@eslint/config-helpers" "^0.5.2" + "@eslint/core" "^1.1.0" + "@eslint/plugin-kit" "^0.6.0" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.4.2" "@types/estree" "^1.0.6" - ajv "^6.14.0" + ajv "^6.12.4" cross-spawn "^7.0.6" debug "^4.3.2" escape-string-regexp "^4.0.0" - eslint-scope "^9.1.2" - eslint-visitor-keys "^5.0.1" - espree "^11.2.0" + eslint-scope "^9.1.0" + eslint-visitor-keys "^5.0.0" + espree "^11.1.0" esquery "^1.7.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -487,11 +487,11 @@ eslint@^10.0.0, "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^8.57.0 || ^9.0.0 imurmurhash "^0.1.4" is-glob "^4.0.0" json-stable-stringify-without-jsonify "^1.0.1" - minimatch "^10.2.4" + minimatch "^10.1.1" natural-compare "^1.4.0" optionator "^0.9.3" -espree@^11.2.0: +espree@^11.1.0: version "11.2.0" resolved "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz" integrity sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw== @@ -691,7 +691,7 @@ magic-string@^0.30.3: dependencies: "@jridgewell/sourcemap-codec" "^1.5.5" -minimatch@^10.2.2, minimatch@^10.2.4: +minimatch@^10.1.1, minimatch@^10.2.2, minimatch@^10.2.4: version "10.2.5" resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz" integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== @@ -900,7 +900,7 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -typescript-eslint@^8.61.0: +typescript-eslint@8.61.0: 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== @@ -910,15 +910,15 @@ typescript-eslint@^8.61.0: "@typescript-eslint/typescript-estree" "8.61.0" "@typescript-eslint/utils" "8.61.0" -typescript@>=3.7.0, typescript@>=4.8.4, "typescript@>=4.8.4 <6.1.0", typescript@latest: - version "6.0.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz" - integrity sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw== +typescript@>=3.7.0, typescript@>=4.8.4, "typescript@>=4.8.4 <6.1.0", typescript@5.9.3: + version "5.9.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== -"undici-types@>=7.24.0 <7.24.7": - version "7.24.6" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz" - integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== uri-js@^4.2.2: version "4.4.1"