diff --git a/.env b/.env new file mode 100644 index 00000000..5d946ab4 --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ + MERMAID_DOMAIN="mermaid.live" + MERMAID_ANALYTICS_URL="https://p.mermaid.live" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fcdc4c04..87b64abc 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,6 +20,9 @@ jobs: cache: yarn - name: Build & Deploy + env: + MERMAID_DOMAIN: 'mermaid.live' + MERMAID_ANALYTICS_URL: 'https://p.mermaid.live' run: | export DEPLOY=true [ "$GITHUB_EVENT_NAME" != "pull_request" ] && rm -rf docs/_app/ diff --git a/.vscode/settings.json b/.vscode/settings.json index 71acc20d..e1731904 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,10 +9,12 @@ "cssnano", "daisyui", "esserializer", + "gantt", "KROKI", "localstorage", "mermaidchart", "mindmap", + "Pageview", "pako", "Serde", "serdes", diff --git a/Dockerfile b/Dockerfile index c8ab6c84..b400b6a7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,8 @@ FROM mermaid-live-editor-dependencies AS mermaid-live-editor-builder ARG MERMAID_RENDERER_URL ARG MERMAID_KROKI_RENDERER_URL +ARG MERMAID_ANALYTICS_URL +ARG MERMAID_DOMAIN COPY . ./ diff --git a/README.md b/README.md index 5c18f655..a9656501 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,12 @@ Default is `https://mermaid.ink` When building set the MERMAID_KROKI_RENDERER_URL build argument to your Kroki instance. Default is `https://kroki.io` +### To configure Analytics + +When building set the MERMAID_ANALYTICS_URL build argument to your plausible instance, and MERMAID_DOMAIN to your domain. + +Default is empty, disabling analytics. + ### Development ```bash diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 00000000..4b646fa7 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,3 @@ +[build.environment] + MERMAID_ANALYTICS_URL = 'https://p.mermaid.live' + MERMAID_DOMAIN = 'mermaid.live' diff --git a/package.json b/package.json index 809976e8..37592fa9 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@cypress/snapshot": "2.1.7", "@sveltejs/adapter-static": "2.0.3", - "@sveltejs/kit": "1.27.6", + "@sveltejs/kit": "1.28.0", "@testing-library/jest-dom": "5.17.0", "@testing-library/svelte": "3.2.2", "@types/pako": "2.0.3", @@ -39,7 +39,7 @@ "cy-verify-downloads": "0.2.2", "cypress": "12.17.4", "cypress-localstorage-commands": "2.2.5", - "eslint": "8.54.0", + "eslint": "8.55.0", "eslint-config-prettier": "8.10.0", "eslint-plugin-cypress": "2.15.1", "eslint-plugin-es": "4.1.0", @@ -68,14 +68,13 @@ "vitest": "^0.34.0" }, "dependencies": { - "analytics": "0.8.9", - "analytics-plugin-plausible": "0.0.6", "daisyui": "2.52.0", "dayjs": "^1.11.7", "js-base64": "3.7.5", "mermaid": "10.6.1", - "monaco-editor": "0.44.0", + "monaco-editor": "0.45.0", "pako": "2.1.0", + "plausible-tracker": "^0.3.8", "random-word-slugs": "0.1.7", "svg-pan-zoom": "3.6.1", "uuid": "9.0.1" @@ -87,7 +86,7 @@ ] }, "volta": { - "node": "18.18.2", + "node": "18.19.0", "yarn": "1.22.21" }, "engines": { diff --git a/src/env.d.ts b/src/env.d.ts index 3bdd9740..ec4a2ff4 100644 --- a/src/env.d.ts +++ b/src/env.d.ts @@ -3,6 +3,8 @@ interface ImportMetaEnv { readonly MERMAID_RENDERER_URL?: string; readonly MERMAID_KROKI_RENDERER_URL?: string; + readonly MERMAID_ANALYTICS_URL?: string; + readonly MERMAID_DOMAIN?: string; // more env variables... } diff --git a/src/lib/components/Navbar.svelte b/src/lib/components/Navbar.svelte index 2c54e9da..775db8a3 100644 --- a/src/lib/components/Navbar.svelte +++ b/src/lib/components/Navbar.svelte @@ -1,7 +1,7 @@ @@ -51,7 +51,7 @@ let activePromotion = getActivePromotion(); const trackBannerClick = () => { - if (!analytics || !activePromotion) { + if (!plausible || !activePromotion) { return; } logEvent('bannerClick', { diff --git a/src/lib/util/env.ts b/src/lib/util/env.ts index bc500063..d19f1a95 100644 --- a/src/lib/util/env.ts +++ b/src/lib/util/env.ts @@ -1,4 +1,6 @@ export const env = { rendererUrl: import.meta.env.MERMAID_RENDERER_URL ?? 'https://mermaid.ink', - krokiRendererUrl: import.meta.env.MERMAID_KROKI_RENDERER_URL ?? 'https://kroki.io' -}; + krokiRendererUrl: import.meta.env.MERMAID_KROKI_RENDERER_URL ?? 'https://kroki.io', + analyticsUrl: import.meta.env.MERMAID_ANALYTICS_URL ?? '', + domain: import.meta.env.MERMAID_DOMAIN ?? 'mermaid.live' +} as const; diff --git a/src/lib/util/stats.ts b/src/lib/util/stats.ts index 2573ff52..4e70e64c 100644 --- a/src/lib/util/stats.ts +++ b/src/lib/util/stats.ts @@ -1,24 +1,17 @@ import { browser } from '$app/environment'; -import type { AnalyticsInstance } from 'analytics'; -export let analytics: AnalyticsInstance | undefined; +import { env } from './env'; +import type PlausibleInstance from 'plausible-tracker'; +export let plausible: ReturnType | undefined; export const initAnalytics = async (): Promise => { - if (browser && !analytics) { + if (browser && !plausible) { try { - const [{ Analytics }, { default: plausible }] = await Promise.all([ - import('analytics'), - import('analytics-plugin-plausible') - ]); - analytics = Analytics({ - app: 'mermaid-live-editor', - plugins: [ - plausible({ - domain: 'mermaid.live', - hashMode: false, - // All tracked stats are public and available at https://p.mermaid.live/mermaid.live - apiHost: 'https://p.mermaid.live' - }) - ] + const { default: Plausible } = await import('plausible-tracker'); + plausible = Plausible({ + domain: env.domain, + hashMode: false, + // All tracked stats are public and available at https://p.mermaid.live/mermaid.live + apiHost: env.analyticsUrl }); } catch (error) { console.log(error); @@ -100,20 +93,28 @@ const delaysPerEvent = { history: defaultDelay, migration: defaultDelay, themeChange: defaultDelay, - bannerClick: defaultDelay + bannerClick: defaultDelay, + version: defaultDelay }; export type AnalyticsEvent = keyof typeof delaysPerEvent; const timeouts: Map = new Map(); // manual debounce to reduce the number of events sent to analytics -export const logEvent = (name: AnalyticsEvent, data?: unknown): void => { - if (!analytics) { +export const logEvent = ( + name: AnalyticsEvent, + data?: Record +): void => { + if (!plausible) { return; } const key = data ? JSON.stringify({ name, data }) : name; if (timeouts.has(key)) { clearTimeout(timeouts.get(key)); } else { - void analytics.track(name, data); + plausible.trackEvent( + name, + { props: data }, + { url: window.location.origin + window.location.pathname } + ); } timeouts.set( key, diff --git a/src/lib/util/util.ts b/src/lib/util/util.ts index ad8f3719..d082a703 100644 --- a/src/lib/util/util.ts +++ b/src/lib/util/util.ts @@ -1,5 +1,5 @@ import { initURLSubscription, loadState, updateCodeStore } from './state'; -import { analytics, initAnalytics } from './stats'; +import { plausible, initAnalytics } from './stats'; import { loadDataFromUrl } from './fileLoaders/loader'; import { initLoading } from './loading'; import { applyMigrations } from './migrations'; @@ -21,7 +21,7 @@ export const initHandler = async (): Promise => { syncDiagram(); initURLSubscription(); await initAnalytics(); - await analytics?.page(); + plausible?.trackPageview({ url: window.location.origin + window.location.pathname }); }; export const isMac = navigator.platform.toUpperCase().includes('MAC'); diff --git a/yarn.lock b/yarn.lock index e7ce7682..e72ceef7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,91 +17,6 @@ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== -"@analytics/cookie-utils@^0.2.12", "@analytics/cookie-utils@^0.2.9": - version "0.2.12" - resolved "https://registry.yarnpkg.com/@analytics/cookie-utils/-/cookie-utils-0.2.12.tgz#acc38dd76ead968050776fb8e57e571e6d37cbc7" - integrity sha512-2h/yuIu3kmu+ZJlKmlT6GoRvUEY2k1BbQBezEv5kGhnn9KpmzPz715Y3GmM2i+m7Y0QmBdVUoA260dQZkofs2A== - dependencies: - "@analytics/global-storage-utils" "^0.1.7" - -"@analytics/core@^0.10.23": - version "0.10.23" - resolved "https://registry.yarnpkg.com/@analytics/core/-/core-0.10.23.tgz#869218c28bae4948bdecfd76415064e83bb8ca8d" - integrity sha512-crOJ7tNA5xak5YGiiX8IvPyqf4Hy3tMmTH4dTvQiOapO6BiBJcxBUkjtJNPwZlhS4nmsWh0skeTBr4Kv92RzeA== - dependencies: - "@analytics/global-storage-utils" "^0.1.4" - "@analytics/type-utils" "^0.5.4" - analytics-utils "^1.0.9" - -"@analytics/core@^0.12.7": - version "0.12.7" - resolved "https://registry.yarnpkg.com/@analytics/core/-/core-0.12.7.tgz#118b25f1753796a7c73ffabd4b789219d511e050" - integrity sha512-etmIPCoxWLoUZ/o1o2zvIk4cdVHa8I1xUQtTuLA+YXQ4SsFbm75ZoMXJBqWrNSENpqCJgoL6hizl5uTbkNN+1Q== - dependencies: - "@analytics/global-storage-utils" "^0.1.7" - "@analytics/type-utils" "^0.6.2" - analytics-utils "^1.0.12" - -"@analytics/global-storage-utils@^0.1.4", "@analytics/global-storage-utils@^0.1.7": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@analytics/global-storage-utils/-/global-storage-utils-0.1.7.tgz#c6a12eb133a6e44101b7c3529c82e3e89ac9ce46" - integrity sha512-V+spzGLZYm4biZT4uefaylm80SrLXf8WOTv9hCgA46cLcyxx3LD4GCpssp1lj+RcWLl/uXJQBRO4Mnn/o1x6Gw== - dependencies: - "@analytics/type-utils" "^0.6.2" - -"@analytics/localstorage-utils@^0.1.10", "@analytics/localstorage-utils@^0.1.7": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@analytics/localstorage-utils/-/localstorage-utils-0.1.10.tgz#8e9b03604e79a530e9a5ab6748c8ceb96153b95c" - integrity sha512-uJS+Jp1yLG5VFCgA5T82ZODYBS0xuDQx0NtAZrgbqt9j51BX3TcgmOez5LVkrUNu/lpbxjCLq35I4TKj78VmOQ== - dependencies: - "@analytics/global-storage-utils" "^0.1.7" - -"@analytics/session-storage-utils@^0.0.4": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@analytics/session-storage-utils/-/session-storage-utils-0.0.4.tgz#6aefe0eb012038f3722433c411485a2b7f540a15" - integrity sha512-HPVIUMpL9ua8uBj5kLsTOLbxUNP0GVYQowC9AwX1S/T39Eg8RKwbV/GYaDAqeCjEi8BGYOEguqI9kFGqxIt1iA== - dependencies: - "@analytics/global-storage-utils" "^0.1.4" - -"@analytics/session-storage-utils@^0.0.7": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@analytics/session-storage-utils/-/session-storage-utils-0.0.7.tgz#e355c60b14d4fbcf20983e5cfcb7cb838b4c57ab" - integrity sha512-PSv40UxG96HVcjY15e3zOqU2n8IqXnH8XvTkg1X43uXNTKVSebiI2kUjA3Q7ESFbw5DPwcLbJhV7GforpuBLDw== - dependencies: - "@analytics/global-storage-utils" "^0.1.7" - -"@analytics/storage-utils@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@analytics/storage-utils/-/storage-utils-0.3.0.tgz#7a9795af6b73e13194edb03eb27402c4877d9d96" - integrity sha512-uxOz5wdZkuxc7RaWlNsj/7iFr0GkkFqmxyIYY4oFk91E3/hyosny59lb8DEC/MpdUUAoNI+clU+I/PYcv3p1WA== - dependencies: - "@analytics/cookie-utils" "^0.2.9" - "@analytics/global-storage-utils" "^0.1.4" - "@analytics/localstorage-utils" "^0.1.7" - "@analytics/session-storage-utils" "^0.0.4" - "@analytics/type-utils" "^0.5.4" - -"@analytics/storage-utils@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@analytics/storage-utils/-/storage-utils-0.4.2.tgz#222717832a533a1a2516aa3a22d5db80d14a881b" - integrity sha512-AXObwyVQw9h2uJh1t2hUgabtVxzYpW+7uKVbdHQK80vr3Td5rrmCxrCxarh7HUuAgSDZ0bZWqmYxVgmwKceaLg== - dependencies: - "@analytics/cookie-utils" "^0.2.12" - "@analytics/global-storage-utils" "^0.1.7" - "@analytics/localstorage-utils" "^0.1.10" - "@analytics/session-storage-utils" "^0.0.7" - "@analytics/type-utils" "^0.6.2" - -"@analytics/type-utils@^0.5.4": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@analytics/type-utils/-/type-utils-0.5.4.tgz#1fcaa6d1d557c0377d1fbd8615624ac918d1727d" - integrity sha512-2CT5YTsvif3gYPYp5hPIhh66mUo/Cu+k5OiHbX3k5p+YsZ5Bggcp/wLEFnrdKG4tKgGn5SOKkEtL63VYhGXX7g== - -"@analytics/type-utils@^0.6.2": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@analytics/type-utils/-/type-utils-0.6.2.tgz#60d706603a98a95681d4b1e9726c703fdd541a9e" - integrity sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg== - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" @@ -314,10 +229,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -329,10 +244,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.54.0": - version "8.54.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" - integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== +"@eslint/js@8.55.0": + version "8.55.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" + integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== "@fastify/busboy@^2.0.0": version "2.0.0" @@ -465,10 +380,10 @@ resolved "https://registry.yarnpkg.com/@sveltejs/adapter-static/-/adapter-static-2.0.3.tgz#616836c30bdce4d673a2e26c0f5ffbd5c1bc7c67" integrity sha512-VUqTfXsxYGugCpMqQv1U0LIdbR3S5nBkMMDmpjGVJyM6Q2jHVMFtdWJCkeHMySc6mZxJ+0eZK3T7IgmUCDrcUQ== -"@sveltejs/kit@1.27.6": - version "1.27.6" - resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.27.6.tgz#2feea84413205422887e01326d979edd9a982dff" - integrity sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A== +"@sveltejs/kit@1.28.0": + version "1.28.0" + resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.28.0.tgz#fc8a538e9fe9bc27684ebfb063308d3176ec32af" + integrity sha512-T9hoS6XM840W4ZUgf3kKAoBt2dsupumUxBtlxt3ddu2yRLrqsKcC3gledBB/e5NtTC8zEZyR5qWBNFT9WAWmIA== dependencies: "@sveltejs/vite-plugin-svelte" "^2.5.0" "@types/cookie" "^0.5.1" @@ -1003,38 +918,6 @@ am-i-a-dependency@1.1.2: resolved "https://registry.yarnpkg.com/am-i-a-dependency/-/am-i-a-dependency-1.1.2.tgz#f9d3422304d6f642f821e4c407565035f6167f1f" integrity sha512-h9Wm0GBuTJVKbtwDHBzdJr932O9iTR5lAgebGSke1b3V4pqzbwOsa1R3bYhff89Ch3+v3A4EgbX3vem+5Rl6Zg== -analytics-plugin-plausible@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/analytics-plugin-plausible/-/analytics-plugin-plausible-0.0.6.tgz#22595821f1d201cb2e58dde2bb688d78fae78725" - integrity sha512-gXeoJo85JLO91DckbPq23jn/QJW4vg1hA/bRcAbcAo5D6u6JUIg/rG6Ecwkk75sPefnGFIZ6qGHIoz1b2wFK9w== - dependencies: - analytics "^0.7.5" - plausible-tracker "^0.3.1" - -analytics-utils@^1.0.12, analytics-utils@^1.0.9: - version "1.0.12" - resolved "https://registry.yarnpkg.com/analytics-utils/-/analytics-utils-1.0.12.tgz#07bd63471d238e80f42d557fba039365f09c50db" - integrity sha512-WvV2YWgsnXLxaY0QYux0crpBAg/0JA763NmbMVz22jKhMPo7dpTBet8G2IlF7ixTjLDzGlkHk1ZaKqqQmjJ+4w== - dependencies: - "@analytics/type-utils" "^0.6.2" - dlv "^1.1.3" - -analytics@0.8.9: - version "0.8.9" - resolved "https://registry.yarnpkg.com/analytics/-/analytics-0.8.9.tgz#71648ec804fbf01f05abbd0e27bc11049d959786" - integrity sha512-oTbUzQpncMTslakqfK70GgB6bopk5hY+uuekwnadMkDyqNLgcD02KRzteTnO7q5Ko6wDECVtT8xi/6OuAMZykA== - dependencies: - "@analytics/core" "^0.12.7" - "@analytics/storage-utils" "^0.4.2" - -analytics@^0.7.5: - version "0.7.23" - resolved "https://registry.yarnpkg.com/analytics/-/analytics-0.7.23.tgz#cff8d43c67fa851229232bc251e58a27e2f863eb" - integrity sha512-9zujZOUmDnRGRNoKIXwongMlOV1Odi+5ftRpfTPlYYQfX7Kl6ttSaP2caFQhKr5SenSCW2RMIxiLzX+LynE7sw== - dependencies: - "@analytics/core" "^0.10.23" - "@analytics/storage-utils" "^0.3.0" - ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" @@ -2660,15 +2543,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@8.54.0: - version "8.54.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" - integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== +eslint@8.55.0: + version "8.55.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" + integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.54.0" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.55.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -4384,10 +4267,10 @@ mlly@^1.2.0, mlly@^1.4.0: pkg-types "^1.0.3" ufo "^1.3.0" -monaco-editor@0.44.0: - version "0.44.0" - resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.44.0.tgz#3c0fe3655923bbf7dd647057302070b5095b6c59" - integrity sha512-5SmjNStN6bSuSE5WPT2ZV+iYn1/yI9sd4Igtk23ChvqB7kDk9lZbB9F5frsuvpB+2njdIeGGFf2G4gbE6rCC9Q== +monaco-editor@0.45.0: + version "0.45.0" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.45.0.tgz#6939123a6254aea9fea2d647697f846306dd4448" + integrity sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA== mri@^1.1.0: version "1.2.0" @@ -4769,7 +4652,7 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -plausible-tracker@^0.3.1: +plausible-tracker@^0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/plausible-tracker/-/plausible-tracker-0.3.8.tgz#9b8b322cc41e0e1d6473869ef234deea365a5a40" integrity sha512-lmOWYQ7s9KOUJ1R+YTOR3HrjdbxIS2Z4de0P/Jx2dQPteznJl2eX3tXxKClpvbfyGP59B5bbhW8ftN59HbbFSg==