From 68684395a080a834d823b39e2e9641372bbafbfd Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 2 Mar 2026 23:37:57 -0800 Subject: dependency audit --- package-lock.json | 115 --------------------- package.json | 8 -- src/components/Menu.svelte | 82 ++++++++------- src/components/Payments.svelte | 12 +-- src/components/Qr.svelte | 13 +-- src/lib/locales.ts | 41 -------- src/lib/random.ts | 28 ++--- src/lib/socket.ts | 5 +- src/lib/utils.ts | 34 +++--- src/routes/(app)/[username]/(profile)/+page.ts | 4 +- .../[username]/accepted/[text]/raw/+server.ts | 10 +- src/routes/(app)/fund/[id]/+page.svelte | 1 - src/routes/(app)/payment/[id]/+page.svelte | 7 +- src/routes/(app)/payment/[id]/plain/+page.svelte | 5 +- src/routes/(app)/payments/[...page]/+page.svelte | 14 ++- src/routes/(app)/qr/[text]/raw/+server.ts | 10 +- src/routes/+layout.ts | 10 +- 17 files changed, 105 insertions(+), 294 deletions(-) delete mode 100644 src/lib/locales.ts diff --git a/package-lock.json b/package-lock.json index b745ce26..f65a409a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,38 +33,30 @@ "@sveltejs/vite-plugin-svelte": "^6.2.4", "@types/uuid": "^11.0.0", "@zerodevx/svelte-toast": "^0.9.6", - "barcode-detector": "^3.0.8", "bech32": "^2.0.0", "bip21": "^3.0.0", "bitcoin-address-validation": "^3.0.0", "buffer": "^6.0.3", "daisyui": "^5.5.17", - "date-fns": "^4.1.0", "esptool-js": "^0.5.7", "husky": "^9.1.7", - "js-cookie": "^3.0.5", "lint-staged": "^16.2.7", "nostr-tools": "^2.23.0", "oxfmt": "^0.35.0", "oxlint": "^1.35.0", "playwright": "^1.58.2", "qr-scanner": "^1.4.2", - "qrcode-base64": "^1.0.1", "rollup": "^4.57.1", "rollup-plugin-visualizer": "^6.0.5", - "screenfull": "^6.0.2", "svelte": "^5.49.1", "svelte-adapter-bun": "^1.0.1", "svelte-confetti": "^2.3.2", - "svelte-dnd-action": "^0.9.69", - "svelte-outclick": "^4.2.0", "svelte-preprocess": "^6.0.3", "sveltekit-i18n": "^2.4.2", "tailwind-scrollbar": "^4.0.2", "tailwindcss": "^4.1.18", "typescript": "^5.9.3", "uint8array-extras": "^1.5.0", - "unique-names-generator": "^4.7.1", "unplugin-icons": "^23.0.1", "uuid": "^13.0.0", "vite": "^7.3.1", @@ -2451,11 +2443,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/emscripten": { - "version": "1.41.5", - "dev": true, - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.8", "license": "MIT" @@ -2698,14 +2685,6 @@ "dev": true, "license": "MIT" }, - "node_modules/barcode-detector": { - "version": "3.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "zxing-wasm": "2.2.4" - } - }, "node_modules/bare-events": { "version": "2.6.1", "dev": true, @@ -3596,15 +3575,6 @@ "node": ">=8" } }, - "node_modules/date-fns": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, "node_modules/dateformat": { "version": "3.0.3", "dev": true, @@ -4884,14 +4854,6 @@ "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/js-cookie": { - "version": "3.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "dev": true, @@ -6547,11 +6509,6 @@ "node": ">=10.13.0" } }, - "node_modules/qrcode-base64": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/qrcode/node_modules/yargs": { "version": "15.4.1", "license": "MIT", @@ -7162,17 +7119,6 @@ "dev": true, "license": "ISC" }, - "node_modules/screenfull": { - "version": "6.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semver": { "version": "7.7.2", "license": "ISC", @@ -7643,22 +7589,6 @@ "svelte": ">=5.0.0" } }, - "node_modules/svelte-dnd-action": { - "version": "0.9.69", - "dev": true, - "license": "MIT", - "peerDependencies": { - "svelte": ">=3.23.0 || ^5.0.0-next.0" - } - }, - "node_modules/svelte-outclick": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "svelte": ">= 5" - } - }, "node_modules/svelte-preprocess": { "version": "6.0.3", "dev": true, @@ -7728,17 +7658,6 @@ "svelte": ">=3.49.0" } }, - "node_modules/tagged-tag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/tailwind-scrollbar": { "version": "4.0.2", "dev": true, @@ -8035,20 +7954,6 @@ "node": "*" } }, - "node_modules/type-fest": { - "version": "5.4.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "dependencies": { - "tagged-tag": "^1.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { "version": "5.9.3", "dev": true, @@ -8096,14 +8001,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/unique-names-generator": { - "version": "4.7.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/unique-string": { "version": "2.0.0", "dev": true, @@ -8556,18 +8453,6 @@ "version": "1.1.4", "dev": true, "license": "MIT" - }, - "node_modules/zxing-wasm": { - "version": "2.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/emscripten": "^1.41.5", - "type-fest": "^5.2.0" - }, - "peerDependencies": { - "@types/emscripten": ">=1.39.6" - } } } } diff --git a/package.json b/package.json index 8fb3476c..62801cc9 100644 --- a/package.json +++ b/package.json @@ -45,38 +45,30 @@ "@sveltejs/vite-plugin-svelte": "^6.2.4", "@types/uuid": "^11.0.0", "@zerodevx/svelte-toast": "^0.9.6", - "barcode-detector": "^3.0.8", "bech32": "^2.0.0", "bip21": "^3.0.0", "bitcoin-address-validation": "^3.0.0", "buffer": "^6.0.3", "daisyui": "^5.5.17", - "date-fns": "^4.1.0", "esptool-js": "^0.5.7", "husky": "^9.1.7", - "js-cookie": "^3.0.5", "lint-staged": "^16.2.7", "nostr-tools": "^2.23.0", "oxfmt": "^0.35.0", "oxlint": "^1.35.0", "playwright": "^1.58.2", "qr-scanner": "^1.4.2", - "qrcode-base64": "^1.0.1", "rollup": "^4.57.1", "rollup-plugin-visualizer": "^6.0.5", - "screenfull": "^6.0.2", "svelte": "^5.49.1", "svelte-adapter-bun": "^1.0.1", "svelte-confetti": "^2.3.2", - "svelte-dnd-action": "^0.9.69", - "svelte-outclick": "^4.2.0", "svelte-preprocess": "^6.0.3", "sveltekit-i18n": "^2.4.2", "tailwind-scrollbar": "^4.0.2", "tailwindcss": "^4.1.18", "typescript": "^5.9.3", "uint8array-extras": "^1.5.0", - "unique-names-generator": "^4.7.1", "unplugin-icons": "^23.0.1", "uuid": "^13.0.0", "vite": "^7.3.1", diff --git a/src/components/Menu.svelte b/src/components/Menu.svelte index 94fc7c3a..ca64a289 100644 --- a/src/components/Menu.svelte +++ b/src/components/Menu.svelte @@ -9,7 +9,6 @@ import CoinosLogo from "virtual:icons/coinos/logo"; import { theme } from "$lib/store"; import DarkToggle from "$comp/DarkToggle.svelte"; - import { OutClick } from "svelte-outclick"; let { t, user, w, opacity } = $props(); let dark = () => ($theme = $theme === "dark" ? "light" : "dark"); @@ -26,47 +25,50 @@ let hideMenu = () => (showMenu = false); let toggleMenu = () => (showMenu = !showMenu); + + const clickOutside = (node, callback) => { + const handler = (e) => { if (!node.contains(e.target)) callback(); }; + document.addEventListener("click", handler, true); + return { destroy: () => document.removeEventListener("click", handler, true) }; + }; -
- - +
+ -
-
- + + {t(key)} + + + {/if} + + {/each} + +
+ + + +
- diff --git a/src/components/Payments.svelte b/src/components/Payments.svelte index 881da11d..2ebe9794 100644 --- a/src/components/Payments.svelte +++ b/src/components/Payments.svelte @@ -3,10 +3,8 @@ import LogosBitcoin from "virtual:icons/logos/bitcoin"; import { goto } from "$app/navigation"; import Avatar from "$comp/Avatar.svelte"; - import { get, f, s, si, sat, loc, sats, types } from "$lib/utils"; - import { format } from "date-fns"; + import { get, f, s, si, sat, loc, sats, types, formatDate } from "$lib/utils"; import { t } from "$lib/translations"; - import locales from "$lib/locales"; import { fiat } from "$lib/store"; const { fund = undefined, locale, user, payments }: any = $props(); const language = $derived(user?.language || "en"); @@ -102,14 +100,10 @@
- {format(new Date(p.created), "MMM d, yy", { - locale: locales[language], - })} + {formatDate(new Date(p.created), language, { month: "short", day: "numeric", year: "2-digit" })}
- {format(new Date(p.created), "h:mm aaa", { - locale: locales[language], - })} + {formatDate(new Date(p.created), language, { hour: "numeric", minute: "2-digit" })}
diff --git a/src/components/Qr.svelte b/src/components/Qr.svelte index d5dbfc41..692f665e 100644 --- a/src/components/Qr.svelte +++ b/src/components/Qr.svelte @@ -1,14 +1,9 @@