From 68ebb6990f9d3a0b0f82fa89e25d6c05d9893463 Mon Sep 17 00:00:00 2001 From: Trang Doan Date: Sat, 22 Aug 2026 14:40:37 -0400 Subject: [PATCH] ENG-1832 Add Obsidian eslint to the project Add eslint-plugin-obsidianmd as a dedicated store-compliance gate that reports only the rules which can get the plugin pulled from the Obsidian community store, and fix the 15 violations it found. The gate cannot be built on @repo/eslint-config: that config loads eslint-plugin-only-warn, which patches ESLint globally on import and forces every rule to "warn", erasing the error/warn distinction the gate depends on. It therefore lives in its own config and runs in its own process. Co-Authored-By: Claude Opus 5 --- .github/workflows/ci.yaml | 25 + apps/obsidian/AGENTS.md | 18 + apps/obsidian/eslint.config.store.mjs | 19 + apps/obsidian/package.json | 2 + .../src/components/ModifyNodeModal.tsx | 6 +- .../components/canvas/DiscourseToolPanel.tsx | 27 +- .../components/canvas/utils/relationUtils.tsx | 6 +- packages/eslint-config/obsidian-store.js | 43 + packages/eslint-config/package.json | 4 +- pnpm-lock.yaml | 751 +++++++++++++++--- 10 files changed, 769 insertions(+), 132 deletions(-) create mode 100644 apps/obsidian/eslint.config.store.mjs create mode 100644 packages/eslint-config/obsidian-store.js diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bf68f193d..6a5ba68d1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -40,6 +40,31 @@ jobs: - name: Run Package Unit Tests run: npx turbo run test:unit --ui stream + obsidian-store-compliance: + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v6 + + - uses: pnpm/action-setup@v6 + name: Install pnpm + with: + version: 10.15.1 + run_install: false + + - name: Setup Node.js environment + uses: actions/setup-node@v6 + with: + node-version: "22" + cache: "pnpm" + + - name: Install Dependencies + run: pnpm install --frozen-lockfile + + # Blocking on purpose: every rule in this gate can get the plugin pulled from the Obsidian store. + - name: Check Obsidian plugin store compliance + run: pnpm --dir apps/obsidian lint:store + lint-changed-files: if: github.event_name == 'pull_request' runs-on: ubuntu-latest diff --git a/apps/obsidian/AGENTS.md b/apps/obsidian/AGENTS.md index cc297c415..c6ddc9103 100644 --- a/apps/obsidian/AGENTS.md +++ b/apps/obsidian/AGENTS.md @@ -35,6 +35,24 @@ Example: ( ![[lucide-cog.svg#icon]] ) ## Plugin Store Guidelines +Run the store compliance gate before opening a PR: + +``` +pnpm --dir apps/obsidian lint:store +``` + +This runs `eslint-plugin-obsidianmd` with only its error-level rules — the ones +that can get the plugin rejected from, or pulled off, the community store. It is +a blocking CI job, so a failure here must be fixed rather than suppressed. + +It is deliberately separate from `pnpm lint`. The shared repo config loads +`eslint-plugin-only-warn`, which forces every rule to "warn", so store blockers +are indistinguishable from style advice in a normal lint run. `lint:store` runs +in its own process with its own config to keep the error signal intact. +`scripts/` is exempt — build tooling never ships in the plugin bundle. + +The rules below are what that gate enforces, plus guidance it cannot check. + These rules must be followed for the plugin to be accepted into the Obsidian community plugin store. ### Security diff --git a/apps/obsidian/eslint.config.store.mjs b/apps/obsidian/eslint.config.store.mjs new file mode 100644 index 000000000..6269979bf --- /dev/null +++ b/apps/obsidian/eslint.config.store.mjs @@ -0,0 +1,19 @@ +import { config } from "@repo/eslint-config/obsidian-store"; + +export default [ + ...config, + { + // Build and test-data tooling never ships in the plugin bundle, so Obsidian never reviews it. + ignores: ["scripts/**"], + }, + { + files: ["**/*.{ts,tsx}"], + languageOptions: { + parserOptions: { + tsconfigRootDir: import.meta.dirname, + project: true, + ecmaFeatures: { jsx: true }, + }, + }, + }, +]; diff --git a/apps/obsidian/package.json b/apps/obsidian/package.json index d7b167bc9..587225bc9 100644 --- a/apps/obsidian/package.json +++ b/apps/obsidian/package.json @@ -9,6 +9,7 @@ "build": "tsx scripts/build.ts", "lint": "eslint .", "lint:fix": "eslint . --fix", + "lint:store": "eslint . --config eslint.config.store.mjs --no-config-lookup", "publish": "tsx scripts/publish.ts", "check-types": "tsc --noEmit --skipLibCheck" }, @@ -28,6 +29,7 @@ "dotenv": "^16.4.5", "esbuild": "0.17.3", "eslint": "catalog:", + "eslint-plugin-obsidianmd": "0.4.1", "obsidian": "^1.7.2", "postcss": "^8.5.3", "tailwindcss": "^3.4.17", diff --git a/apps/obsidian/src/components/ModifyNodeModal.tsx b/apps/obsidian/src/components/ModifyNodeModal.tsx index c58400cc1..686753494 100644 --- a/apps/obsidian/src/components/ModifyNodeModal.tsx +++ b/apps/obsidian/src/components/ModifyNodeModal.tsx @@ -167,7 +167,6 @@ export const ModifyNodeForm = ({ if (isOpen && titleInputRef.current && popoverRef.current) { const inputRect = titleInputRef.current.getBoundingClientRect(); const popover = popoverRef.current; - popover.style.position = "fixed"; popover.style.top = `${inputRect.bottom + 4}px`; popover.style.left = `${inputRect.left}px`; popover.style.width = `${inputRect.width}px`; @@ -201,8 +200,9 @@ export const ModifyNodeForm = ({ useEffect(() => { const el = titleInputRef.current; if (!el) return; - el.style.height = "auto"; - el.style.height = `${el.scrollHeight}px`; + // Two steps, not one: collapsing to auto first is what makes scrollHeight report the shrunk size. + el.setCssProps({ height: "auto" }); + el.setCssProps({ height: `${el.scrollHeight}px` }); }, [query]); // Determine available relationships based on current file and selected node type diff --git a/apps/obsidian/src/components/canvas/DiscourseToolPanel.tsx b/apps/obsidian/src/components/canvas/DiscourseToolPanel.tsx index db7ca1258..004b8a8c7 100644 --- a/apps/obsidian/src/components/canvas/DiscourseToolPanel.tsx +++ b/apps/obsidian/src/components/canvas/DiscourseToolPanel.tsx @@ -19,6 +19,12 @@ import { } from "./DiscourseRelationTool"; import { TOOL_ARROW_ICON_SVG } from "~/icons"; +const DRAG_GHOST_HIDDEN_CLASSES = "hidden"; +const DRAG_GHOST_VISIBLE_CLASSES = + "pointer-events-none fixed left-0 top-0 flex h-[50px] w-[50px] items-center"; +// Centres the 50px ghost on the cursor. +const DRAG_GHOST_CURSOR_OFFSET = 25; + const TOOL_ARROW_ICON_DATA_URL = `data:image/svg+xml;base64,${btoa(TOOL_ARROW_ICON_SVG)}`; export const DiscourseToolPanel = ({ @@ -161,7 +167,7 @@ export const DiscourseToolPanel = ({ switch (current.name) { case "idle": case "pointing_item": { - imageRef.setAttribute("style", "display: none"); + imageRef.className = DRAG_GHOST_HIDDEN_CLASSES; break; } case "dragging": { @@ -175,18 +181,12 @@ export const DiscourseToolPanel = ({ const viewportScreenBounds = editor.getViewportScreenBounds(); const isInside = Box.ContainsPoint(box, current.currentPosition); if (isInside) { - imageRef.style.display = "none"; + imageRef.className = DRAG_GHOST_HIDDEN_CLASSES; } else { - imageRef.style.display = "block"; - imageRef.style.position = "fixed"; - imageRef.style.pointerEvents = "none"; - imageRef.style.left = "0px"; - imageRef.style.top = "0px"; - imageRef.style.transform = `translate(${current.currentPosition.x - viewportScreenBounds.x - 25}px, ${current.currentPosition.y - viewportScreenBounds.y - 25}px)`; - imageRef.style.width = "50px"; - imageRef.style.height = "50px"; - imageRef.style.display = "flex"; - imageRef.style.alignItems = "center"; + imageRef.className = DRAG_GHOST_VISIBLE_CLASSES; + imageRef.setCssProps({ + transform: `translate(${current.currentPosition.x - viewportScreenBounds.x - DRAG_GHOST_CURSOR_OFFSET}px, ${current.currentPosition.y - viewportScreenBounds.y - DRAG_GHOST_CURSOR_OFFSET}px)`, + }); } } } @@ -295,7 +295,8 @@ export const DiscourseToolPanel = ({ /> ))} -
+ {/* className must stay constant: the drag reactor writes it imperatively, and React only clobbers props whose rendered value changed. */} +
{state.name === "dragging" ? (getNodeTypeById(plugin, state.nodeTypeId)?.name ?? "") : null} diff --git a/apps/obsidian/src/components/canvas/utils/relationUtils.tsx b/apps/obsidian/src/components/canvas/utils/relationUtils.tsx index a4ddf3f09..a88ae6648 100644 --- a/apps/obsidian/src/components/canvas/utils/relationUtils.tsx +++ b/apps/obsidian/src/components/canvas/utils/relationUtils.tsx @@ -1463,11 +1463,11 @@ function PatternFillDefForCanvas() { if (htmlLayer) { // Wait for `patternContext` to be picked up editor.timers.requestAnimationFrame(() => { - htmlLayer.style.display = "none"; + htmlLayer.classList.add("hidden"); - // Wait for 'display = "none"' to take effect + // Wait for the hidden class to take effect editor.timers.requestAnimationFrame(() => { - htmlLayer.style.display = ""; + htmlLayer.classList.remove("hidden"); }); }); } diff --git a/packages/eslint-config/obsidian-store.js b/packages/eslint-config/obsidian-store.js new file mode 100644 index 000000000..035519225 --- /dev/null +++ b/packages/eslint-config/obsidian-store.js @@ -0,0 +1,43 @@ +import obsidianmd from "eslint-plugin-obsidianmd"; +import preferArrows from "eslint-plugin-prefer-arrow-functions"; +import pluginReactHooks from "eslint-plugin-react-hooks"; +import turboPlugin from "eslint-plugin-turbo"; + +// Obsidian community plugin store compliance gate: everything it reports can get the plugin pulled from the store. +// Deliberately not built on ./base.js — that loads eslint-plugin-only-warn, which patches ESLint on import and forces every rule to "warn". +// Must run in its own process (see `lint:store`) so a normal lint run's only-warn patch cannot leak in. + +const severityOf = (value) => (Array.isArray(value) ? value[0] : value); +const isError = (value) => + severityOf(value) === "error" || severityOf(value) === 2; + +// obsidianmd's recommended set mixes store blockers (error) with style advice (warn); keep only its own error-level rules. +const storeRules = {}; +for (const block of obsidianmd.configs.recommended) { + if (!block.rules) continue; + for (const [rule, value] of Object.entries(block.rules)) { + if (rule.startsWith("obsidianmd/") && isError(value)) { + storeRules[rule] = value; + } + } +} + +/** @type {import("eslint").Linter.Config[]} */ +export const config = [ + { ignores: ["dist/**", "node_modules/**", "*.config.*"] }, + // Language/plugin setup from the recommended set, without its rule severities. + ...obsidianmd.configs.recommended.filter((block) => !block.rules), + { + // Registered only so existing `eslint-disable` comments naming these rules don't error as "Definition for rule not found". + plugins: { preferArrows, "react-hooks": pluginReactHooks, turboPlugin }, + }, + { + files: ["**/*.{ts,tsx}"], + linterOptions: { reportUnusedDisableDirectives: "off" }, + rules: { + ...storeRules, + // The recommended set's globals don't know about the JSX runtime, and type-aware linting already covers this. + "no-undef": "off", + }, + }, +]; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index d663a3b3d..fd8d8181f 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -7,13 +7,15 @@ "exports": { "./base": "./base.js", "./next-js": "./next.js", - "./react-internal": "./react-internal.js" + "./react-internal": "./react-internal.js", + "./obsidian-store": "./obsidian-store.js" }, "devDependencies": { "@eslint/js": "^9.29.0", "@next/eslint-plugin-next": "~15.0.3", "eslint": "catalog:", "eslint-config-prettier": "^10.1.5", + "eslint-plugin-obsidianmd": "^0.4.1", "eslint-plugin-only-warn": "^1.1.0", "eslint-plugin-prefer-arrow-functions": "3.4.2", "eslint-plugin-react": "^7.37.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d2a748ce..a97421e7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -194,6 +194,9 @@ importers: eslint: specifier: 'catalog:' version: 9.39.5(jiti@1.21.7) + eslint-plugin-obsidianmd: + specifier: 0.4.1 + version: 0.4.1(@eslint/js@9.39.5)(@eslint/json@0.14.0)(eslint@9.39.5(jiti@1.21.7))(obsidian@1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.38.8))(typescript-eslint@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4)) obsidian: specifier: ^1.7.2 version: 1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) @@ -352,7 +355,7 @@ importers: version: 3.5.2(react@18.2.0) roamjs-components: specifier: 0.88.3 - version: 0.88.3(323501797697e57d5f8d07d52746f463) + version: 0.88.3(3c8392fa5d45274567f4bde943ec1631) tldraw: specifier: 2.4.6 version: 2.4.6(patch_hash=56e196052862c9a58a11b43e5e121384cd1d6548416afa0f16e9fbfbf0e4080d)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -410,13 +413,13 @@ importers: version: 1.61.1 tailwindcss: specifier: ^3.4.17 - version: 3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)) + version: 3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)) tsx: specifier: ^4.19.2 version: 4.20.5 vitest: specifier: 'catalog:' - version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(jsdom@20.0.3)(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.3))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2)) + version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(jsdom@20.0.3)(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2)) apps/tldraw-sync-worker: dependencies: @@ -660,6 +663,9 @@ importers: eslint-config-prettier: specifier: ^10.1.5 version: 10.1.8(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-obsidianmd: + specifier: ^0.4.1 + version: 0.4.1(@eslint/js@9.34.0)(@eslint/json@0.14.0)(@typescript-eslint/parser@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4))(eslint@9.39.5(jiti@1.21.7))(obsidian@1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.38.8))(typescript-eslint@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4)) eslint-plugin-only-warn: specifier: ^1.1.0 version: 1.1.0 @@ -692,10 +698,10 @@ importers: version: link:../typescript-config tailwindcss: specifier: ^3.4.1 - version: 3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)) + version: 3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3))) + version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4))) packages/types: {} @@ -2054,6 +2060,12 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.7.2': + resolution: {integrity: sha512-LF03qURSwEWm2dz5wtdDCzNk+7Opl0X7q6I3undsaIuNsEiNvRV3BCtqu14Q/6Pzg1tBj44LcxpW2EpSLZStZw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + '@eslint-community/eslint-utils@4.10.1': resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2098,6 +2110,10 @@ packages: resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/json@0.14.0': + resolution: {integrity: sha512-rvR/EZtvUG3p9uqrSmcDJPYSH7atmWr0RnFWN6m917MAPx82+zQgPUmDu0whPFG6XTyM0vB/hR6c1Q63OaYtCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.7': resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2163,6 +2179,10 @@ packages: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} + '@humanwhocodes/momoa@3.3.12': + resolution: {integrity: sha512-xS9xl4ieqTqhSZfKV3YXj/htwJCUxbgvkTVaK1fkESgrOzvoVSOTRQeQ8tTLOZUS0Csi2xqtJQXgVTRH5OEbHQ==} + engines: {node: '>=18'} + '@humanwhocodes/retry@0.4.3': resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} @@ -2517,6 +2537,12 @@ packages: '@mermaid-js/parser@1.0.1': resolution: {integrity: sha512-opmV19kN1JsK0T6HhhokHpcVkqKpF+x2pPDKKM2ThHtZAB5F4PROopk0amuVYK5qMrIA4erzpNm8gmPNJgMDxQ==} + '@microsoft/eslint-plugin-sdl@1.1.0': + resolution: {integrity: sha512-dxdNHOemLnBhfY3eByrujX9KyLigcNtW8sU+axzWv5nLGcsSBeKW2YYyTpfPo1hV8YPOmIGnfA4fZHyKVtWqBQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + eslint: ^9 + '@modelcontextprotocol/sdk@1.17.5': resolution: {integrity: sha512-QakrKIGniGuRVfWBdMsDea/dx1PNE739QJ7gCM41s9q+qaCYTHCdsIBXQVVXry3mfWAiaM9kT22Hyz53Uw8mfg==} engines: {node: '>=18'} @@ -2989,6 +3015,10 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.1.2': + resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@playwright/test@1.29.0': resolution: {integrity: sha512-gp5PVBenxTJsm2bATWDNc2CCnrL5OaA/MXQdJwwkGQtqTjmY+ZOqAdLqo49O9MLTDh2vYh+tHWDnmFsILnWaeA==} engines: {node: '>=14'} @@ -4247,6 +4277,9 @@ packages: cpu: [x64] os: [win32] + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@samepage/scripts@0.74.5': resolution: {integrity: sha512-0hy5IOG2+PXqetIQPuheTKYPnKxDHw4x0s9qjytlEgZC2faiYyMkAqK3MUumuocbz1OWX43+yPs7ujRAZqVl9g==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -5029,6 +5062,9 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/katex@0.16.8': resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==} @@ -5081,6 +5117,9 @@ packages: '@types/node@20.11.0': resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==} + '@types/node@20.12.12': + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} + '@types/node@22.20.0': resolution: {integrity: sha512-QWlFW2wf3nTjC13/DqRnBpR4ZO36VJH/JVBkA/vcnmbTBNQIlnObqyqZE1tUR7+Ni23Lda8R1BxMfbXRpCUx5g==} @@ -5586,6 +5625,10 @@ packages: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} + engines: {node: '>= 0.4'} + array.prototype.flat@1.3.3: resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} @@ -6433,6 +6476,14 @@ packages: dayjs@1.11.20: resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -6639,6 +6690,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + empathic@2.0.1: + resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} + engines: {node: '>=14'} + encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} @@ -6649,6 +6704,10 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + enhanced-resolve@5.24.5: + resolution: {integrity: sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -6763,12 +6822,89 @@ packages: engines: {node: '>=6.0'} hasBin: true + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + eslint-config-prettier@10.1.8: resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' + eslint-import-resolver-node@0.3.10: + resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} + + eslint-module-utils@2.14.0: + resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-depend@1.3.1: + resolution: {integrity: sha512-1uo2rFAr9vzNrCYdp7IBZRB54LiyVxfaIso0R6/QV3t6Dax6DTbW/EV2Hktf0f4UtmGHK8UyzJWI382pwW04jw==} + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-json-schema-validator@5.1.0: + resolution: {integrity: sha512-ZmVyxRIjm58oqe2kTuy90PpmZPrrKvOjRPXKzq8WCgRgAkidCgm5X8domL2KSfadZ3QFAmifMgGTcVNhZ5ez2g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-n@17.10.3: + resolution: {integrity: sha512-ySZBfKe49nQZWR1yFaA0v/GsH6Fgp8ah6XV0WDz6CN8WO0ek4McMzb7A2xnf4DCYV43frjCygvb9f/wx7UUxRw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-no-unsanitized@4.1.5: + resolution: {integrity: sha512-MSB4hXPVFQrI8weqzs6gzl7reP2k/qSjtCoL2vUMSDejIIq9YL1ZKvq5/ORBXab/PvfBBrWO2jWviYpL+4Ghfg==} + peerDependencies: + eslint: ^9 || ^10 + + eslint-plugin-obsidianmd@0.4.1: + resolution: {integrity: sha512-Nv3593kVsFOS8kir/HWaJ5CR3xcyiPWEPyXst5Pib8mxRYYuLYPpJS2ALMoZXHulHyiGwoYW8AaxvLRc4rhrRg==} + engines: {node: '>= 18'} + hasBin: true + peerDependencies: + '@eslint/js': ^9.30.1 + '@eslint/json': 0.14.0 + eslint: '>=9.19.0' + obsidian: 1.8.7 + typescript-eslint: ^8.35.1 + eslint-plugin-only-warn@1.1.0: resolution: {integrity: sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==} engines: {node: '>=6'} @@ -6785,12 +6921,24 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + eslint-plugin-react@7.37.3: + resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + eslint-plugin-react@7.37.5: resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + eslint-plugin-security@1.4.0: + resolution: {integrity: sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA==} + + eslint-plugin-security@2.1.1: + resolution: {integrity: sha512-7cspIGj7WTfR3EhaILzAPcfCo5R9FbeWvbgsPYWivSurTBKW88VQxtP3c4aWMG9Hz/GfJlJVdXEJ3c8LqS+u2w==} + eslint-plugin-turbo@2.5.6: resolution: {integrity: sha512-KUDE23aP2JV8zbfZ4TeM1HpAXzMM/AYG/bJam7P4AalUxas8Pd/lS/6R3p4uX91qJcH1LwL4h0ED48nDe8KorQ==} peerDependencies: @@ -6831,6 +6979,10 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -7271,6 +7423,10 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + globals@16.2.0: resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} engines: {node: '>=18'} @@ -7348,6 +7504,10 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + hast-util-from-dom@5.0.1: resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} @@ -7660,6 +7820,10 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + engines: {node: '>= 0.4'} + is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} @@ -7949,6 +8113,9 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema-migrate@2.0.0: + resolution: {integrity: sha512-r38SVTtojDRp4eD6WsCqiE0eNDt4v1WalBXb9cyZYw9ai5cGtBwzRNWjHzJl38w6TxFkXAIA7h+fyX3tnrAFhQ==} + json-schema-to-ts@1.6.4: resolution: {integrity: sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==} @@ -7964,11 +8131,19 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + jsonc-eslint-parser@2.4.2: + resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + jsonfile@6.2.0: resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} @@ -8500,6 +8675,10 @@ packages: resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} engines: {node: '>=10'} + minimatch@8.0.7: + resolution: {integrity: sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==} + engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -8543,6 +8722,9 @@ packages: mlly@1.8.1: resolution: {integrity: sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==} + module-replacements@2.11.0: + resolution: {integrity: sha512-j5sNQm3VCpQQ7nTqGeOZtoJtV3uKERgCBm9QRhmGRiXiqkf7iRFOkfxdJRZWLkqYY8PNf4cDQF/WfXUYLENrRA==} + moment@2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} @@ -8674,6 +8856,10 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead + node-exports-info@1.6.2: + resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} + engines: {node: '>= 0.4'} + node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} @@ -8791,6 +8977,10 @@ packages: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} @@ -9739,6 +9929,11 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} + engines: {node: '>= 0.4'} + hasBin: true + restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -9751,6 +9946,10 @@ packages: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + retext-latin@4.0.0: resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} @@ -9885,6 +10084,12 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + + safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -10349,6 +10554,10 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.9.3: + resolution: {integrity: sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==} + engines: {node: ^14.18.0 || >=16.0.0} + system-architecture@0.1.0: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} @@ -10373,6 +10582,10 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -10493,6 +10706,10 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + toml-eslint-parser@0.9.3: + resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + toposort@2.0.2: resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} @@ -10577,6 +10794,9 @@ packages: ts-toolbelt@9.6.0: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -10611,6 +10831,9 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + turbo-darwin-64@2.5.6: resolution: {integrity: sha512-3C1xEdo4aFwMJAPvtlPqz1Sw/+cddWIOmsalHFMrsqqydcptwBfu26WW2cDm3u93bUzMbBJ8k3zNKFqxJ9ei2A==} cpu: [x64] @@ -10706,6 +10929,11 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} @@ -11229,6 +11457,10 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml-eslint-parser@1.3.2: + resolution: {integrity: sha512-odxVsHAkZYYglR30aPYRY4nUGJnoJ2y1ww2HDvZALo0BDETv9kWbi16J52eHs+PWRNmF4ub6nZqfVOeesOvntg==} + engines: {node: ^14.17.0 || >=16.0.0} + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -12714,6 +12946,12 @@ snapshots: '@esbuild/win32-x64@0.27.0': optional: true + '@eslint-community/eslint-plugin-eslint-comments@4.7.2(eslint@9.39.5(jiti@1.21.7))': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.39.5(jiti@1.21.7) + ignore: 7.0.6 + '@eslint-community/eslint-utils@4.10.1(eslint@9.39.5(jiti@1.21.7))': dependencies: eslint: 9.39.5(jiti@1.21.7) @@ -12762,6 +13000,13 @@ snapshots: '@eslint/js@9.39.5': {} + '@eslint/json@0.14.0': + dependencies: + '@eslint/core': 0.17.0 + '@eslint/plugin-kit': 0.4.1 + '@humanwhocodes/momoa': 3.3.12 + natural-compare: 1.4.0 + '@eslint/object-schema@2.1.7': {} '@eslint/plugin-kit@0.4.1': @@ -12834,6 +13079,8 @@ snapshots: '@humanwhocodes/module-importer@1.0.1': {} + '@humanwhocodes/momoa@3.3.12': {} + '@humanwhocodes/retry@0.4.3': {} '@hypnosphi/create-react-context@0.3.1(prop-types@15.8.1)(react@18.2.0)': @@ -13149,6 +13396,13 @@ snapshots: dependencies: langium: 4.2.1 + '@microsoft/eslint-plugin-sdl@1.1.0(eslint@9.39.5(jiti@1.21.7))': + dependencies: + eslint: 9.39.5(jiti@1.21.7) + eslint-plugin-n: 17.10.3(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-react: 7.37.3(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-security: 1.4.0 + '@modelcontextprotocol/sdk@1.17.5': dependencies: ajv: 6.12.6 @@ -13563,6 +13817,8 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@pkgr/core@0.1.2': {} + '@playwright/test@1.29.0': dependencies: '@types/node': 22.20.0 @@ -15451,22 +15707,24 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.60.3': optional: true - '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.882.0)(@aws-sdk/client-s3@3.882.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.27.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3))(zod@3.25.76)': + '@rtsao/scc@1.1.0': {} + + '@samepage/scripts@0.74.5(@aws-sdk/client-lambda@3.882.0)(@aws-sdk/client-s3@3.882.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)))(archiver@5.3.2)(axios@0.27.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)))(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4))(zod@3.25.76)': dependencies: '@aws-sdk/client-lambda': 3.882.0 '@aws-sdk/client-s3': 3.882.0 - '@samepage/testing': 0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)) + '@samepage/testing': 0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)) archiver: 5.3.2 axios: 0.27.2(debug@4.4.3) debug: 4.4.3 dotenv: 16.6.1 esbuild: 0.17.14 patch-package: 6.5.1 - tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)) - ts-node: 10.9.2(@types/node@22.20.0)(typescript@5.9.3) + tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)) + ts-node: 10.9.2(@types/node@22.20.0)(typescript@5.5.4) zod: 3.25.76 - '@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3))': + '@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4))': dependencies: '@playwright/test': 1.29.0 '@testing-library/react': 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -15476,7 +15734,7 @@ snapshots: debug: 4.4.3 dotenv: 16.6.1 jsdom: 20.0.3 - ts-node: 10.9.2(@types/node@22.20.0)(typescript@5.9.3) + ts-node: 10.9.2(@types/node@22.20.0)(typescript@5.5.4) '@selderee/plugin-htmlparser2@0.11.0': dependencies: @@ -16567,6 +16825,8 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/json5@0.0.29': {} + '@types/katex@0.16.8': {} '@types/linkify-it@5.0.0': {} @@ -16621,6 +16881,10 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@20.12.12': + dependencies: + undici-types: 5.26.5 + '@types/node@22.20.0': dependencies: undici-types: 6.21.0 @@ -16712,6 +16976,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.67.0(typescript@5.4.5)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@5.4.5) + '@typescript-eslint/types': 8.67.0 + debug: 4.4.3 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/project-service@8.67.0(typescript@5.5.4)': dependencies: '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@5.5.4) @@ -16726,6 +16999,10 @@ snapshots: '@typescript-eslint/types': 8.67.0 '@typescript-eslint/visitor-keys': 8.67.0 + '@typescript-eslint/tsconfig-utils@8.67.0(typescript@5.4.5)': + dependencies: + typescript: 5.4.5 + '@typescript-eslint/tsconfig-utils@8.67.0(typescript@5.5.4)': dependencies: typescript: 5.5.4 @@ -16744,6 +17021,21 @@ snapshots: '@typescript-eslint/types@8.67.0': {} + '@typescript-eslint/typescript-estree@8.67.0(typescript@5.4.5)': + dependencies: + '@typescript-eslint/project-service': 8.67.0(typescript@5.4.5) + '@typescript-eslint/tsconfig-utils': 8.67.0(typescript@5.4.5) + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/visitor-keys': 8.67.0 + debug: 4.4.3 + minimatch: 10.2.6 + semver: 7.7.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/typescript-estree@8.67.0(typescript@5.5.4)': dependencies: '@typescript-eslint/project-service': 8.67.0(typescript@5.5.4) @@ -16759,6 +17051,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.4.5)': + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@1.21.7)) + '@typescript-eslint/scope-manager': 8.67.0 + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/typescript-estree': 8.67.0(typescript@5.4.5) + eslint: 9.39.5(jiti@1.21.7) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@1.21.7)) @@ -17120,32 +17423,32 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.11.1(@types/node@22.20.0)(typescript@5.5.4) - vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2) - '@vitest/mocker@4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.2))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2))': + '@vitest/mocker@4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.11.1(@types/node@22.20.0)(typescript@5.9.2) - vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2) + msw: 2.11.1(@types/node@22.20.0)(typescript@5.5.4) + vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.3))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2))': + '@vitest/mocker@4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.2))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.11.1(@types/node@22.20.0)(typescript@5.9.3) - vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2) + msw: 2.11.1(@types/node@22.20.0)(typescript@5.9.2) + vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2) '@vitest/pretty-format@4.1.6': dependencies: @@ -17399,6 +17702,16 @@ snapshots: es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 + array.prototype.findlastindex@1.2.6: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 @@ -18283,6 +18596,10 @@ snapshots: dayjs@1.11.20: {} + debug@3.2.7: + dependencies: + ms: 2.1.3 + debug@4.3.4: dependencies: ms: 2.1.2 @@ -18474,6 +18791,8 @@ snapshots: emoji-regex@9.2.2: {} + empathic@2.0.1: {} + encodeurl@2.0.0: {} end-of-stream@1.1.0: @@ -18484,6 +18803,11 @@ snapshots: dependencies: once: 1.4.0 + enhanced-resolve@5.24.5: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + entities@4.5.0: {} entities@6.0.1: {} @@ -18770,10 +19094,164 @@ snapshots: optionalDependencies: source-map: 0.6.1 + eslint-compat-utils@0.5.1(eslint@9.39.5(jiti@1.21.7)): + dependencies: + eslint: 9.39.5(jiti@1.21.7) + semver: 7.7.4 + eslint-config-prettier@10.1.8(eslint@9.39.5(jiti@1.21.7)): dependencies: eslint: 9.39.5(jiti@1.21.7) + eslint-import-resolver-node@0.3.10: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.2 + resolve: 2.0.0-next.7 + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.14.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4))(eslint-import-resolver-node@0.3.10)(eslint@9.39.5(jiti@1.21.7)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4) + eslint: 9.39.5(jiti@1.21.7) + eslint-import-resolver-node: 0.3.10 + transitivePeerDependencies: + - supports-color + + eslint-plugin-depend@1.3.1: + dependencies: + empathic: 2.0.1 + module-replacements: 2.11.0 + semver: 7.7.4 + + eslint-plugin-es-x@7.8.0(eslint@9.39.5(jiti@1.21.7)): + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@1.21.7)) + '@eslint-community/regexpp': 4.12.2 + eslint: 9.39.5(jiti@1.21.7) + eslint-compat-utils: 0.5.1(eslint@9.39.5(jiti@1.21.7)) + + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4))(eslint@9.39.5(jiti@1.21.7)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.39.5(jiti@1.21.7) + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4))(eslint-import-resolver-node@0.3.10)(eslint@9.39.5(jiti@1.21.7)) + hasown: 2.0.4 + is-core-module: 2.16.2 + is-glob: 4.0.3 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-json-schema-validator@5.1.0(eslint@9.39.5(jiti@1.21.7)): + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@1.21.7)) + ajv: 8.17.1 + debug: 4.4.3 + eslint: 9.39.5(jiti@1.21.7) + eslint-compat-utils: 0.5.1(eslint@9.39.5(jiti@1.21.7)) + json-schema-migrate: 2.0.0 + jsonc-eslint-parser: 2.4.2 + minimatch: 8.0.7 + synckit: 0.9.3 + toml-eslint-parser: 0.9.3 + tunnel-agent: 0.6.0 + yaml-eslint-parser: 1.3.2 + transitivePeerDependencies: + - supports-color + + eslint-plugin-n@17.10.3(eslint@9.39.5(jiti@1.21.7)): + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@1.21.7)) + enhanced-resolve: 5.24.5 + eslint: 9.39.5(jiti@1.21.7) + eslint-plugin-es-x: 7.8.0(eslint@9.39.5(jiti@1.21.7)) + get-tsconfig: 4.10.1 + globals: 15.15.0 + ignore: 5.3.2 + minimatch: 9.0.5 + semver: 7.7.4 + + eslint-plugin-no-unsanitized@4.1.5(eslint@9.39.5(jiti@1.21.7)): + dependencies: + eslint: 9.39.5(jiti@1.21.7) + + eslint-plugin-obsidianmd@0.4.1(@eslint/js@9.34.0)(@eslint/json@0.14.0)(@typescript-eslint/parser@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4))(eslint@9.39.5(jiti@1.21.7))(obsidian@1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.38.8))(typescript-eslint@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4)): + dependencies: + '@eslint-community/eslint-plugin-eslint-comments': 4.7.2(eslint@9.39.5(jiti@1.21.7)) + '@eslint/config-helpers': 0.4.2 + '@eslint/js': 9.34.0 + '@eslint/json': 0.14.0 + '@microsoft/eslint-plugin-sdl': 1.1.0(eslint@9.39.5(jiti@1.21.7)) + '@types/eslint': 9.6.1 + '@types/node': 20.12.12 + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/utils': 8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.4.5) + eslint: 9.39.5(jiti@1.21.7) + eslint-plugin-depend: 1.3.1 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4))(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-json-schema-validator: 5.1.0(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-no-unsanitized: 4.1.5(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-security: 2.1.1 + globals: 14.0.0 + obsidian: 1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + semver: 7.7.4 + typescript: 5.4.5 + typescript-eslint: 8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-obsidianmd@0.4.1(@eslint/js@9.39.5)(@eslint/json@0.14.0)(eslint@9.39.5(jiti@1.21.7))(obsidian@1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.38.8))(typescript-eslint@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4)): + dependencies: + '@eslint-community/eslint-plugin-eslint-comments': 4.7.2(eslint@9.39.5(jiti@1.21.7)) + '@eslint/config-helpers': 0.4.2 + '@eslint/js': 9.39.5 + '@eslint/json': 0.14.0 + '@microsoft/eslint-plugin-sdl': 1.1.0(eslint@9.39.5(jiti@1.21.7)) + '@types/eslint': 9.6.1 + '@types/node': 20.12.12 + '@typescript-eslint/types': 8.67.0 + '@typescript-eslint/utils': 8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.4.5) + eslint: 9.39.5(jiti@1.21.7) + eslint-plugin-depend: 1.3.1 + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4))(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-json-schema-validator: 5.1.0(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-no-unsanitized: 4.1.5(eslint@9.39.5(jiti@1.21.7)) + eslint-plugin-security: 2.1.1 + globals: 14.0.0 + obsidian: 1.8.7(@codemirror/state@6.5.2)(@codemirror/view@6.38.8) + semver: 7.7.4 + typescript: 5.4.5 + typescript-eslint: 8.67.0(eslint@9.39.5(jiti@1.21.7))(typescript@5.5.4) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + eslint-plugin-only-warn@1.1.0: {} eslint-plugin-prefer-arrow-functions@3.4.2(eslint@9.39.5(jiti@1.21.7)): @@ -18784,6 +19262,28 @@ snapshots: dependencies: eslint: 9.39.5(jiti@1.21.7) + eslint-plugin-react@7.37.3(eslint@9.39.5(jiti@1.21.7)): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 9.39.5(jiti@1.21.7) + estraverse: 5.3.0 + hasown: 2.0.4 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.5 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.7 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + eslint-plugin-react@7.37.5(eslint@9.39.5(jiti@1.21.7)): dependencies: array-includes: 3.1.9 @@ -18806,6 +19306,14 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 + eslint-plugin-security@1.4.0: + dependencies: + safe-regex: 1.1.0 + + eslint-plugin-security@2.1.1: + dependencies: + safe-regex: 2.1.1 + eslint-plugin-turbo@2.5.6(eslint@9.39.5(jiti@1.21.7))(turbo@2.5.6): dependencies: dotenv: 16.0.3 @@ -18872,6 +19380,12 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 + espree@9.6.1: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} esquery@1.6.0: @@ -19412,6 +19926,8 @@ snapshots: globals@14.0.0: {} + globals@15.15.0: {} + globals@16.2.0: {} globalthis@1.0.4: @@ -19489,6 +20005,10 @@ snapshots: dependencies: function-bind: 1.1.2 + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + hast-util-from-dom@5.0.1: dependencies: '@types/hast': 3.0.4 @@ -19947,6 +20467,10 @@ snapshots: dependencies: hasown: 2.0.2 + is-core-module@2.16.2: + dependencies: + hasown: 2.0.4 + is-data-view@1.0.2: dependencies: call-bound: 1.0.4 @@ -20224,6 +20748,10 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-schema-migrate@2.0.0: + dependencies: + ajv: 8.17.1 + json-schema-to-ts@1.6.4: dependencies: '@types/json-schema': 7.0.15 @@ -20237,8 +20765,19 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json5@1.0.2: + dependencies: + minimist: 1.2.8 + json5@2.2.3: {} + jsonc-eslint-parser@2.4.2: + dependencies: + acorn: 8.16.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.7.4 + jsonfile@6.2.0: dependencies: universalify: 2.0.1 @@ -21070,6 +21609,10 @@ snapshots: dependencies: brace-expansion: 2.0.2 + minimatch@8.0.7: + dependencies: + brace-expansion: 2.0.2 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.2 @@ -21103,6 +21646,8 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.3 + module-replacements@2.11.0: {} + moment@2.29.4: {} mri@1.2.0: {} @@ -21164,32 +21709,6 @@ snapshots: - '@types/node' optional: true - msw@2.11.1(@types/node@22.20.0)(typescript@5.9.3): - dependencies: - '@bundled-es-modules/cookie': 2.0.1 - '@bundled-es-modules/statuses': 1.0.1 - '@inquirer/confirm': 5.1.16(@types/node@22.20.0) - '@mswjs/interceptors': 0.39.6 - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.6 - graphql: 16.11.0 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.3 - path-to-regexp: 6.3.0 - picocolors: 1.1.1 - strict-event-emitter: 0.5.1 - tough-cookie: 6.0.0 - type-fest: 4.41.0 - yargs: 17.7.2 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - '@types/node' - optional: true - mustache@4.2.0: {} mute-stream@0.0.8: {} @@ -21331,6 +21850,13 @@ snapshots: node-domexception@1.0.0: {} + node-exports-info@1.6.2: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + node-fetch@2.6.7: dependencies: whatwg-url: 5.0.0 @@ -21437,6 +21963,12 @@ snapshots: es-abstract: 1.24.0 es-object-atoms: 1.1.1 + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + object.values@1.2.1: dependencies: call-bind: 1.0.8 @@ -21836,14 +22368,6 @@ snapshots: postcss: 8.5.6 ts-node: 10.9.2(@types/node@22.20.0)(typescript@5.5.4) - postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)): - dependencies: - lilconfig: 3.1.3 - yaml: 2.8.1 - optionalDependencies: - postcss: 8.5.6 - ts-node: 10.9.2(@types/node@22.20.0)(typescript@5.9.3) - postcss-nested@6.2.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -22703,6 +23227,15 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@2.0.0-next.7: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + node-exports-info: 1.6.2 + object-keys: 1.1.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -22718,6 +23251,8 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 + ret@0.1.15: {} + retext-latin@4.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -22757,12 +23292,12 @@ snapshots: dependencies: glob: 7.2.3 - roamjs-components@0.88.3(323501797697e57d5f8d07d52746f463): + roamjs-components@0.88.3(3c8392fa5d45274567f4bde943ec1631): dependencies: '@blueprintjs/core': 3.50.4(patch_hash=51c5847e0a73a1be0cc263036ff64d8fada46f3b65831ed938dbca5eecf3edc0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@blueprintjs/datetime': 3.23.14(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@blueprintjs/select': 3.19.1(patch_hash=5b2821b0bf7274e9b64d7824648c596b9e73c61f421d699a6d4c494f12f62355)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.882.0)(@aws-sdk/client-s3@3.882.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)))(archiver@5.3.2)(axios@0.27.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)))(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3))(zod@3.25.76) + '@samepage/scripts': 0.74.5(@aws-sdk/client-lambda@3.882.0)(@aws-sdk/client-s3@3.882.0)(@samepage/testing@0.74.5(@playwright/test@1.29.0)(@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.2.17)(@types/react@18.2.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1))(@types/jsdom@20.0.1)(c8@7.14.0)(debug@4.4.3)(dotenv@16.6.1)(jsdom@20.0.3)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)))(archiver@5.3.2)(axios@0.27.2(debug@4.4.3))(debug@4.4.3)(dotenv@16.6.1)(esbuild@0.17.14)(patch-package@6.5.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)))(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4))(zod@3.25.76) '@types/crypto-js': 4.1.1 '@types/cytoscape': 3.21.9 '@types/file-saver': 2.0.5 @@ -22932,6 +23467,14 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safe-regex@1.1.0: + dependencies: + ret: 0.1.15 + + safe-regex@2.1.1: + dependencies: + regexp-tree: 0.1.27 + safer-buffer@2.1.2: {} sandbox@2.5.6: @@ -23517,6 +24060,11 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.9.3: + dependencies: + '@pkgr/core': 0.1.2 + tslib: 2.8.1 + system-architecture@0.1.0: {} tabbable@6.4.0: {} @@ -23529,10 +24077,6 @@ snapshots: dependencies: tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)) - tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3))): - dependencies: - tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)) - tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.5.4)): dependencies: '@alloc/quick-lru': 5.2.0 @@ -23560,32 +24104,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)): - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.6 - postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.0.1(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3)) - postcss-nested: 6.2.0(postcss@8.5.6) - postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node + tapable@2.3.3: {} tar-stream@2.2.0: dependencies: @@ -23752,6 +24271,10 @@ snapshots: toidentifier@1.0.1: {} + toml-eslint-parser@0.9.3: + dependencies: + eslint-visitor-keys: 3.4.3 + toposort@2.0.2: {} tough-cookie@4.1.4: @@ -23777,6 +24300,10 @@ snapshots: trough@2.2.0: {} + ts-api-utils@2.5.0(typescript@5.4.5): + dependencies: + typescript: 5.4.5 + ts-api-utils@2.5.0(typescript@5.5.4): dependencies: typescript: 5.5.4 @@ -23836,28 +24363,17 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@22.20.0)(typescript@5.9.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.20.0 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.9.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - ts-toolbelt@6.15.5: {} ts-toolbelt@9.6.0: {} + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -23895,6 +24411,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + turbo-darwin-64@2.5.6: optional: true @@ -24000,6 +24520,8 @@ snapshots: transitivePeerDependencies: - supports-color + typescript@5.4.5: {} + typescript@5.5.4: {} typescript@5.9.2: {} @@ -24335,10 +24857,10 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 - vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(jsdom@20.0.3)(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(jsdom@20.0.3)(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -24355,7 +24877,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 @@ -24365,10 +24887,10 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(jsdom@20.0.3)(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.2))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(jsdom@20.0.3)(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.2))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2)) + '@vitest/mocker': 4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.5.4))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -24385,7 +24907,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2) + vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 @@ -24395,10 +24917,10 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(jsdom@20.0.3)(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.3))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(jsdom@20.0.3)(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.2))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.3))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2)) + '@vitest/mocker': 4.1.6(msw@2.11.1(@types/node@22.20.0)(typescript@5.9.2))(vite@7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -24415,7 +24937,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.5)(yaml@2.8.2) + vite: 7.3.3(@types/node@22.20.0)(jiti@1.21.7)(tsx@4.20.6)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 @@ -24639,6 +25161,11 @@ snapshots: yallist@5.0.0: {} + yaml-eslint-parser@1.3.2: + dependencies: + eslint-visitor-keys: 3.4.3 + yaml: 2.8.2 + yaml@1.10.2: {} yaml@2.8.1: {}