From 3aa9ce1b5985397d7f568887ec6f881df13c1034 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 11 Feb 2026 17:09:39 -0800 Subject: fix ts errors --- src/app.d.ts | 26 ++++++++ src/components/Account.svelte | 22 +++---- src/components/Amount.svelte | 8 +-- src/components/AmountField.svelte | 11 ++-- src/components/AppForm.svelte | 4 +- src/components/AppHeader.svelte | 10 ++-- src/components/Avatar.svelte | 5 +- src/components/Balance.svelte | 2 +- src/components/Event.svelte | 4 +- src/components/InvoiceData.svelte | 3 +- src/components/ItemForm.svelte | 20 +++---- src/components/LandingHeader.svelte | 2 +- src/components/Lnurlw.svelte | 7 +-- src/components/LocaleSelector.svelte | 2 +- src/components/LocationsMap.svelte | 58 +++++++++--------- src/components/Nostr.svelte | 20 +++---- src/components/Numpad.svelte | 40 ++++++------- src/components/Password.svelte | 2 +- src/components/Payments.svelte | 2 +- src/components/Qr.svelte | 2 +- src/components/SetAmount.svelte | 3 +- src/components/SetType.svelte | 3 +- src/components/Success.svelte | 12 ++-- src/components/WalletPass.svelte | 4 +- src/lib/locales.ts | 38 ++++++------ src/lib/nip07.ts | 25 ++++---- src/lib/nip17.ts | 69 +++++++++++----------- src/lib/nip51.ts | 17 +++--- src/lib/nostr.ts | 30 ++++------ .../(app)/[username]/(profile)/+layout.svelte | 2 +- src/routes/(app)/[username]/receive/+page.svelte | 7 +-- src/routes/(app)/account/[id]/+page.svelte | 6 +- src/routes/(app)/account/ark/+page.svelte | 12 ++-- src/routes/(app)/account/pass/+page.svelte | 16 ++--- src/routes/(app)/dm/+page.svelte | 58 +++++++++--------- src/routes/(app)/firehose/+page.svelte | 4 +- src/routes/(app)/fund/[id]/+page.svelte | 4 +- src/routes/(app)/fund/[id]/access/+page.svelte | 2 +- src/routes/(app)/invoice/[id]/+page.svelte | 5 +- src/routes/(app)/invoice/[id]/tip/+page.svelte | 28 ++++----- src/routes/(app)/messages/+page.svelte | 18 +++--- src/routes/(app)/messages/[recipient]/+page.svelte | 28 ++++----- src/routes/(app)/payment/[id]/+page.svelte | 2 +- src/routes/(app)/pos/+page.svelte | 30 +++++----- src/routes/(app)/send/[...text]/+page.svelte | 4 +- .../[address]/[amount]/[...feeRate]/+page.svelte | 2 +- .../[address]/[amount]/[...feeRate]/+page.svelte | 28 ++++----- src/routes/(app)/send/invoice/[id]/+page.svelte | 12 ++-- .../lightning/[payreq]/[...memo]/+page.server.ts | 2 +- .../send/lightning/[payreq]/[...memo]/+page.svelte | 16 ++--- .../(app)/send/zap/[id]/[...amount]/+page.svelte | 30 ++++++---- src/routes/(app)/settings/+layout.svelte | 40 ++++++------- src/routes/(app)/settings/account/+page.svelte | 15 ++--- src/routes/(app)/settings/nostr/+page.svelte | 18 +++--- src/routes/(app)/settings/profile/+page.svelte | 19 +++--- src/routes/(app)/settings/security/+page.svelte | 34 +++++------ src/routes/(static)/bounties/+page.svelte | 2 +- src/routes/(static)/login/+page.svelte | 32 +++++----- src/routes/(static)/register/+page.svelte | 66 ++++++++++----------- src/routes/(static)/support/+page.svelte | 5 +- 60 files changed, 513 insertions(+), 485 deletions(-) create mode 100644 src/app.d.ts (limited to 'src') diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 00000000..3673ad85 --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,26 @@ +/// + +declare const grecaptcha: { + ready(callback: () => void): void; + execute(siteKey: string, options: { action: string }): Promise; +}; + +declare class NDEFReader { + constructor(); + scan(): Promise; + write(data: any): Promise; + addEventListener(type: string, listener: (event: any) => void): void; + removeEventListener(type: string, listener: (event: any) => void): void; +} + +interface Window { + nostr?: { + getPublicKey(): Promise; + signEvent(event: any): Promise; + nip04?: { + encrypt(pubkey: string, plaintext: string): Promise; + decrypt(pubkey: string, ciphertext: string): Promise; + }; + }; + maplibregl?: any; +} diff --git a/src/components/Account.svelte b/src/components/Account.svelte index 0eaf6dfb..d05addbe 100644 --- a/src/components/Account.svelte +++ b/src/components/Account.svelte @@ -13,7 +13,7 @@ forgetWalletPassword, } from "$lib/passwordCache"; - let { user, rate, account } = $props(); + let { user, rate, account }: any = $props(); let { name, seed, @@ -27,8 +27,8 @@ let arkBalance = $state(0); let arkLoading = $state(false); let passwordPrompt = $state(false); - let password = $state(); - let pendingUrl = $state(); + let password: string | undefined = $state(); + let pendingUrl: string | undefined = $state(); let cancel = $state(() => { passwordPrompt = false; pendingUrl = undefined; @@ -41,7 +41,7 @@ const { decrypt } = await import("nostr-tools/nip49"); if (seed) { // Legacy: per-account seed is raw hex key - $arkkey = hex.encode(decrypt(seed, cached)); + $arkkey = hex.encode(decrypt(seed, cached) as Uint8Array); } else if (user.seed) { // Master seed: derive m/86'/0'/0'/0/0 const [ @@ -58,7 +58,7 @@ let s = await mnemonicToSeed(mnemonic, cached); let master = HDKey.fromMasterSeed(s, versions); let arkChild = master.derive("m/86'/0'/0'/0/0"); - $arkkey = bytesToHex(arkChild.privateKey); + $arkkey = bytesToHex(arkChild.privateKey!); } else { return false; } @@ -76,9 +76,9 @@ if (isArk) { pendingUrl = url; if ($arkkey) { - goto(pendingUrl); + goto(pendingUrl!); } else if (await tryUnlockArk()) { - goto(pendingUrl); + goto(pendingUrl!); } else { passwordPrompt = true; } @@ -91,7 +91,7 @@ let submitPassword = async () => { const { decrypt } = await import("nostr-tools/nip49"); if (seed) { - $arkkey = hex.encode(decrypt(seed, password)); + $arkkey = hex.encode(decrypt(seed, password!) as Uint8Array); } else if (user.seed) { const [ { HDKey }, @@ -102,12 +102,12 @@ import("@scure/bip39"), import("@scure/bip39/wordlists/english.js"), ]); - let entropy = await decrypt(user.seed, password); + let entropy = await decrypt(user.seed, password!); let mnemonic = entropyToMnemonic(entropy, wordlist); - let s = await mnemonicToSeed(mnemonic, password); + let s = await mnemonicToSeed(mnemonic, password!); let master = HDKey.fromMasterSeed(s, versions); let arkChild = master.derive("m/86'/0'/0'/0/0"); - $arkkey = bytesToHex(arkChild.privateKey); + $arkkey = bytesToHex(arkChild.privateKey!); } passwordPrompt = false; if (pendingUrl) { diff --git a/src/components/Amount.svelte b/src/components/Amount.svelte index 4c7c487a..2587520a 100644 --- a/src/components/Amount.svelte +++ b/src/components/Amount.svelte @@ -2,14 +2,14 @@ import { copy, s, f, toFiat } from "$lib/utils"; import { fiat } from "$lib/store"; const { - align, + align = "", amount, - locale, - tip, + locale = undefined, + tip = undefined, rate, currency, locked = false, - } = $props(); + }: any = $props(); const icon = $derived(locked ? "ph:lock-fill" : "ph:lightning-fill"); const canShowFiat = $derived($fiat && rate && currency); diff --git a/src/components/AmountField.svelte b/src/components/AmountField.svelte index 36e7d4a6..21c36631 100644 --- a/src/components/AmountField.svelte +++ b/src/components/AmountField.svelte @@ -6,12 +6,15 @@ let { amount = $bindable(), none = $t("accounts.none"), - desc, + desc = "", currency, rate, - label, - name, - } = $props(); + label = "", + name = "", + locale = undefined, + submit = undefined, + element = undefined, + }: any = $props(); let setting = $state(); let set = () => { diff --git a/src/components/AppForm.svelte b/src/components/AppForm.svelte index ec33390a..026e4aba 100644 --- a/src/components/AppForm.svelte +++ b/src/components/AppForm.svelte @@ -42,7 +42,7 @@ let lud16 = $derived(`${user.username}@${$page.url.host}`); - let el = $state(); + let el: HTMLFormElement | undefined = $state(); let submit = async (e) => { e.preventDefault(); let body = new FormData(el); @@ -65,7 +65,7 @@ try { await post(`/post/apps/delete`, { pubkey }); goto("/settings/nostr"); - } catch (e) { + } catch (e: any) { fail(e.message); } }; diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte index 0ab48706..f45f4d0c 100644 --- a/src/components/AppHeader.svelte +++ b/src/components/AppHeader.svelte @@ -8,12 +8,12 @@ let { user, subject = $bindable() } = $props(); - let w = $state(); + let w: number | undefined = $state(); $effect(() => (subject = subject || user)); let bg = $derived( - $banner?.id && $banner.id === subject?.id - ? `url(${$banner.src})` + ($banner as any)?.id && ($banner as any).id === subject?.id + ? `url(${($banner as any).src})` : subject?.banner ? subject.banner.includes(":") ? `url(${subject.banner})` @@ -71,10 +71,10 @@ >