From 5ee39275e14324ae81eca19ebba227a444cee9e6 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Mar 2026 21:00:25 +0000 Subject: [PATCH 01/42] Update module-replacements dependency to 3.0.0-beta.0 --- package.json | 2 +- pnpm-lock.yaml | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 0da01a9a4..5af6dcd02 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "gray-matter": "4.0.3", "ipaddr.js": "2.3.0", "marked": "17.0.3", - "module-replacements": "2.11.0", + "module-replacements": "3.0.0-beta.0", "nuxt": "4.3.1", "nuxt-og-image": "5.1.13", "ofetch": "1.5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ee4f8f65..540eda662 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,8 +170,8 @@ importers: specifier: 17.0.3 version: 17.0.3 module-replacements: - specifier: 2.11.0 - version: 2.11.0 + specifier: 3.0.0-beta.0 + version: 3.0.0-beta.0 nuxt: specifier: 4.3.1 version: 4.3.1(@parcel/watcher@2.5.4)(@types/node@24.11.0)(@upstash/redis@1.36.3)(@vue/compiler-sfc@3.5.30)(better-sqlite3@12.6.2)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.6.2))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(magicast@0.5.1)(optionator@0.9.4)(oxlint@1.51.0(oxlint-tsgolint@0.15.0))(rolldown@1.0.0-rc.5)(rollup@4.56.0)(terser@5.46.0)(tsx@4.21.0)(typescript@5.9.3)(vite@8.0.0-beta.10(@types/node@24.11.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.5(typescript@5.9.3))(yaml@2.8.2) @@ -8302,6 +8302,9 @@ packages: module-replacements@2.11.0: resolution: {integrity: sha512-j5sNQm3VCpQQ7nTqGeOZtoJtV3uKERgCBm9QRhmGRiXiqkf7iRFOkfxdJRZWLkqYY8PNf4cDQF/WfXUYLENrRA==} + module-replacements@3.0.0-beta.0: + resolution: {integrity: sha512-T/REIieQTHKscHccdxRd5A2mYIPPIVuKq652gyAZK1D2hmRCWUi7whDskKiA87knsoCWDDMzjcJHqsCXNWr0Qw==} + motion-dom@12.34.3: resolution: {integrity: sha512-sYgFe+pR9aIM7o4fhs2aXtOI+oqlUd33N9Yoxcgo1Fv7M20sRkHtCmzE/VRNIcq7uNJ+qio+Xubt1FXH3pQ+eQ==} @@ -20060,6 +20063,8 @@ snapshots: module-replacements@2.11.0: {} + module-replacements@3.0.0-beta.0: {} + motion-dom@12.34.3: dependencies: motion-utils: 12.29.2 From 49dd770b8b8f87600aab39ff2ea08b2b7f7a73e8 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Mar 2026 21:18:01 +0000 Subject: [PATCH 02/42] Update [...pkg].get.ts --- server/api/replacements/[...pkg].get.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/api/replacements/[...pkg].get.ts b/server/api/replacements/[...pkg].get.ts index c2531fd64..d7270b7cc 100644 --- a/server/api/replacements/[...pkg].get.ts +++ b/server/api/replacements/[...pkg].get.ts @@ -1,11 +1,11 @@ import { all, type ModuleReplacement } from 'module-replacements' -const replacementMap = new Map( - all.moduleReplacements.map(r => [r.moduleName, r]), -) - -export default defineEventHandler((event): ModuleReplacement | null => { +export default defineEventHandler((event): ModuleReplacement[] | null => { const pkg = getRouterParam(event, 'pkg') if (!pkg) return null - return replacementMap.get(pkg) ?? null + const mapping = all.mappings[pkg] + if (!mapping) return null + const replacements = mapping.replacements.map(r => all.replacements[r]!) + if (!replacements.length) return null + return replacements }) From f276037597dc0ce4a3acddfbee82009b7dabd604 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Mar 2026 21:24:31 +0000 Subject: [PATCH 03/42] wip --- app/components/Package/Replacement.vue | 44 ++++++++++++------------ app/composables/useModuleReplacement.ts | 5 --- app/composables/useModuleReplacements.ts | 5 +++ app/pages/package/[[org]]/[name].vue | 4 +-- 4 files changed, 29 insertions(+), 29 deletions(-) delete mode 100644 app/composables/useModuleReplacement.ts create mode 100644 app/composables/useModuleReplacements.ts diff --git a/app/components/Package/Replacement.vue b/app/components/Package/Replacement.vue index f54eb17b2..8e1ad3ce6 100644 --- a/app/components/Package/Replacement.vue +++ b/app/components/Package/Replacement.vue @@ -2,17 +2,17 @@ import type { ModuleReplacement } from 'module-replacements' const props = defineProps<{ - replacement: ModuleReplacement + replacements: ModuleReplacement }>() const mdnUrl = computed(() => { - if (props.replacement.type !== 'native' || !props.replacement.mdnPath) return null - return `https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/${props.replacement.mdnPath}` + if (props.replacements.type !== 'native' || !props.replacements.mdnPath) return null + return `https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/${props.replacements.mdnPath}` }) const docPath = computed(() => { - if (props.replacement.type !== 'documented' || !props.replacement.docPath) return null - return `https://e18e.dev/docs/replacements/${props.replacement.docPath}.html` + if (props.replacements.type !== 'documented' || !props.replacements.docPath) return null + return `https://e18e.dev/docs/replacements/${props.replacements.docPath}.html` }) @@ -22,24 +22,24 @@ const docPath = computed(() => { >

-