diff --git a/package-lock.json b/package-lock.json index fcb56daa..a124fcbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,13 +31,13 @@ "@types/throttle-debounce": "^5.0.2", "@vite-pwa/assets-generator": "^0.2.6", "@vite-pwa/sveltekit": "^0.6.6", - "@welshman/app": "~0.0.30", + "@welshman/app": "~0.0.31", "@welshman/content": "~0.0.12", "@welshman/dvm": "~0.0.10", "@welshman/feeds": "~0.0.26", - "@welshman/lib": "~0.0.27", + "@welshman/lib": "~0.0.28", "@welshman/net": "~0.0.39", - "@welshman/signer": "~0.0.15", + "@welshman/signer": "~0.0.16", "@welshman/store": "~0.0.12", "@welshman/util": "~0.0.46", "daisyui": "^4.12.10", @@ -4664,16 +4664,16 @@ } }, "node_modules/@welshman/app": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@welshman/app/-/app-0.0.30.tgz", - "integrity": "sha512-rD/tZCNR9cdK2Vq4/t5px3mNncBOxrpIWFkv1JLKRiuktAzfpWGWihBlDYT33ts6qQAupU/fF/42+NpMkgxWoQ==", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@welshman/app/-/app-0.0.31.tgz", + "integrity": "sha512-Z6h14hbaJ8OFtmxtD4R+bmVDUFUQnctbBWUWxA3ZpRLeGN8xn8zRXXIp5cfKBbRtoAHiPwvDYRrbArsal6md1w==", "license": "MIT", "dependencies": { "@welshman/dvm": "~0.0.10", "@welshman/feeds": "~0.0.26", - "@welshman/lib": "~0.0.27", + "@welshman/lib": "~0.0.28", "@welshman/net": "~0.0.39", - "@welshman/signer": "~0.0.15", + "@welshman/signer": "~0.0.16", "@welshman/store": "~0.0.12", "@welshman/util": "~0.0.46", "fuse.js": "^7.0.0", @@ -4713,9 +4713,9 @@ } }, "node_modules/@welshman/lib": { - "version": "0.0.27", - "resolved": "https://registry.npmjs.org/@welshman/lib/-/lib-0.0.27.tgz", - "integrity": "sha512-VVU4kpEFxvr1XWwkEauOp16CgTYyPg42D1mJiuiqo0I847ZjHIjKYXC+ZY1YePJTPvg1VSiAVG/bSheYexRR7w==", + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/@welshman/lib/-/lib-0.0.28.tgz", + "integrity": "sha512-9BJm7j2NtPveUtlyiJ/b/LhW93ShR/7csmWl0nUXTbra6be3/7vz8RpN4xl+tBmnvgkOSFjYw5y+srKMZ5f2YA==", "license": "MIT", "dependencies": { "@scure/base": "^1.1.6", @@ -4738,12 +4738,12 @@ } }, "node_modules/@welshman/signer": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@welshman/signer/-/signer-0.0.15.tgz", - "integrity": "sha512-OBBx4FP73Jcto2wM/R0rseFtZiY9T1qP0NkJ1uttxLnmGIVhBA7yG1UnV1amK3gcMW/gZ7snXNJC76Vg2/NbnQ==", + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@welshman/signer/-/signer-0.0.16.tgz", + "integrity": "sha512-mztQBZotetvDbRGMbkdGJcciw7cPlY2n1YFEvd8hcUqnzD7cysXnuNPZgli1EbpUhtmlDwiGIcBFBVuzYdlTIA==", "license": "MIT", "dependencies": { - "@welshman/lib": "~0.0.27", + "@welshman/lib": "~0.0.28", "@welshman/net": "~0.0.39", "@welshman/util": "~0.0.46", "nostr-tools": "^2.7.2" diff --git a/package.json b/package.json index 4cdf241c..29e60bbe 100644 --- a/package.json +++ b/package.json @@ -59,13 +59,13 @@ "@types/throttle-debounce": "^5.0.2", "@vite-pwa/assets-generator": "^0.2.6", "@vite-pwa/sveltekit": "^0.6.6", - "@welshman/app": "~0.0.30", + "@welshman/app": "~0.0.31", "@welshman/content": "~0.0.12", "@welshman/dvm": "~0.0.10", "@welshman/feeds": "~0.0.26", - "@welshman/lib": "~0.0.27", + "@welshman/lib": "~0.0.28", "@welshman/net": "~0.0.39", - "@welshman/signer": "~0.0.15", + "@welshman/signer": "~0.0.16", "@welshman/store": "~0.0.12", "@welshman/util": "~0.0.46", "daisyui": "^4.12.10", diff --git a/src/app/commands.ts b/src/app/commands.ts index 504a461f..09bb8042 100644 --- a/src/app/commands.ts +++ b/src/app/commands.ts @@ -24,7 +24,6 @@ import type {TrustedEvent, EventTemplate, List} from "@welshman/util" import type {SubscribeRequestWithHandlers, Subscription} from "@welshman/net" import {PublishStatus, AuthStatus, SocketStatus, SubscriptionEvent} from "@welshman/net" import {Nip59, makeSecret, stamp, Nip46Broker} from "@welshman/signer" -import type {Nip46Handler} from "@welshman/signer" import { pubkey, signer, @@ -120,18 +119,30 @@ export const subscribePersistent = (request: SubscribeRequestWithHandlers) => { // Log in -export const loginWithNip46 = async (token: string, handler: Nip46Handler) => { - const secret = makeSecret() - const broker = Nip46Broker.get({secret, handler}) - const result = await broker.connect(token, NIP46_PERMS) +export const loginWithNip46 = async ({ + relays, + signerPubkey, + clientSecret = makeSecret(), + connectSecret = "", +}: { + relays: string[] + signerPubkey: string + clientSecret?: string + connectSecret?: string +}) => { + const broker = Nip46Broker.get({relays, clientSecret, signerPubkey}) + const result = await broker.connect("", connectSecret, NIP46_PERMS) - if (!result) return false + // TODO: remove ack result + if (!["ack", connectSecret].includes(result)) return false const pubkey = await broker.getPublicKey() if (!pubkey) return false - addSession({method: "nip46", pubkey, secret, handler}) + const handler = {relays, pubkey: signerPubkey} + + addSession({method: "nip46", pubkey, secret: clientSecret, handler}) return true } diff --git a/src/app/components/LogInBunker.svelte b/src/app/components/LogInBunker.svelte index d50bbea3..b1a98d87 100644 --- a/src/app/components/LogInBunker.svelte +++ b/src/app/components/LogInBunker.svelte @@ -1,7 +1,7 @@