Switch to pnpm, use new welshman stuff

This commit is contained in:
Jon Staab
2025-04-09 15:32:18 -07:00
parent 33902dbefe
commit 489707b9b2
29 changed files with 9413 additions and 15744 deletions
+6 -2
View File
@@ -2,14 +2,15 @@
import type {Snippet} from "svelte"
import {onMount} from "svelte"
import {int, nthNe, MINUTE, sortBy, remove} from "@welshman/lib"
import {load} from "@welshman/net"
import type {TrustedEvent, EventContent} from "@welshman/util"
import {createEvent, DIRECT_MESSAGE, INBOX_RELAYS} from "@welshman/util"
import {
pubkey,
Router,
tagPubkey,
formatTimestampAsDate,
inboxRelaySelectionsByPubkey,
load,
} from "@welshman/app"
import Icon from "@lib/components/Icon.svelte"
import Link from "@lib/components/Link.svelte"
@@ -106,7 +107,10 @@
onMount(() => {
// Don't use loadInboxRelaySelection because we want to force reload
load({filters: [{kinds: [INBOX_RELAYS], authors: others}]})
load({
relays: Router.get().FromPubkeys(others).getUrls(),
filters: [{kinds: [INBOX_RELAYS], authors: others}],
})
const observer = new ResizeObserver(() => {
dynamicPadding!.style.minHeight = `${chatCompose!.offsetHeight}px`
+4 -7
View File
@@ -1,8 +1,8 @@
<script lang="ts">
import {nip19} from "nostr-tools"
import * as nip19 from "nostr-tools/nip19"
import {goto} from "$app/navigation"
import {ctx, nthEq} from "@welshman/lib"
import {tracker, repository} from "@welshman/app"
import {nthEq} from "@welshman/lib"
import {Router, tracker, repository} from "@welshman/app"
import {Address, DIRECT_MESSAGE, MESSAGE, THREAD, EVENT_TIME} from "@welshman/util"
import {scrollToEvent} from "@lib/html"
import Button from "@lib/components/Button.svelte"
@@ -16,10 +16,7 @@
const {id, identifier, kind, pubkey, relays: relayHints = []} = value
const idOrAddress = id || new Address(kind, pubkey, identifier).toString()
const mergedRelays = [
...relays,
...ctx.app.router.Quote(event, idOrAddress, relayHints).getUrls(),
]
const mergedRelays = [...relays, ...Router.get().Quote(event, idOrAddress, relayHints).getUrls()]
const quote = deriveEvent(idOrAddress, mergedRelays)
const entity = id
? nip19.neventEncode({id, relays: mergedRelays})
+2 -1
View File
@@ -2,9 +2,10 @@
import {onMount} from "svelte"
import {max} from "@welshman/lib"
import {COMMENT} from "@welshman/util"
import {load} from "@welshman/net"
import {deriveEvents} from "@welshman/store"
import type {TrustedEvent} from "@welshman/util"
import {formatTimestampRelative, repository, load} from "@welshman/app"
import {formatTimestampRelative, repository} from "@welshman/app"
import {notifications} from "@app/notifications"
import Icon from "@lib/components/Icon.svelte"
+3 -3
View File
@@ -1,6 +1,6 @@
<script lang="ts">
import {nip19} from "nostr-tools"
import {ctx} from "@welshman/lib"
import * as nip19 from "nostr-tools/nip19"
import {Router} from "@welshman/app"
import type {TrustedEvent} from "@welshman/util"
import Icon from "@lib/components/Icon.svelte"
import FieldInline from "@lib/components/FieldInline.svelte"
@@ -15,7 +15,7 @@
const {url, event}: Props = $props()
const relays = url ? [url] : ctx.app.router.Event(event).getUrls()
const relays = url ? [url] : Router.get().Event(event).getUrls()
const nevent1 = nip19.neventEncode({...event, relays})
const npub1 = nip19.npubEncode(event.pubkey)
const json = JSON.stringify(event, null, 2)
+1 -1
View File
@@ -24,7 +24,7 @@
const signUp = () => pushModal(SignUp)
const onSuccess = async (session: Session, relays: string[] = []) => {
await loadUserData(session.pubkey, {relays})
await loadUserData(session.pubkey, relays)
addSession(session)
pushToast({message: "Successfully logged in!"})
+3 -4
View File
@@ -1,11 +1,10 @@
<script lang="ts">
import cx from "classnames"
import type {Snippet} from "svelte"
import {nip19} from "nostr-tools"
import {ctx} from "@welshman/lib"
import * as nip19 from "nostr-tools/nip19"
import {getListTags, getPubkeyTagValues} from "@welshman/util"
import type {TrustedEvent} from "@welshman/util"
import {formatTimestamp, userMutes} from "@welshman/app"
import {formatTimestamp, Router, userMutes} from "@welshman/app"
import Link from "@lib/components/Link.svelte"
import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte"
@@ -27,7 +26,7 @@
class?: string
} = $props()
const relays = ctx.app.router.Event(event).getUrls()
const relays = Router.get().Event(event).getUrls()
const nevent = nip19.neventEncode({id: event.id, relays})
const ignoreMute = () => {
+3 -3
View File
@@ -1,9 +1,9 @@
<script lang="ts">
import {onMount} from "svelte"
import {ctx} from "@welshman/lib"
import type {Filter} from "@welshman/util"
import {deriveEvents} from "@welshman/store"
import {repository, load, loadRelaySelections, formatTimestampRelative} from "@welshman/app"
import {load} from "@welshman/net"
import {Router, repository, loadRelaySelections, formatTimestampRelative} from "@welshman/app"
import Icon from "@lib/components/Icon.svelte"
import Link from "@lib/components/Link.svelte"
import Profile from "@app/components/Profile.svelte"
@@ -22,7 +22,7 @@
// Load at least one note, regardless of time frame
load({
filters: [{authors: [pubkey], limit: 1}],
relays: ctx.app.router.FromPubkeys([pubkey]).getUrls(),
relays: Router.get().FromPubkeys([pubkey]).getUrls(),
})
})
</script>
+2 -3
View File
@@ -1,5 +1,4 @@
<script lang="ts">
import {ctx} from "@welshman/lib"
import type {Profile} from "@welshman/util"
import {
createEvent,
@@ -8,7 +7,7 @@
createProfile,
isPublishedProfile,
} from "@welshman/util"
import {pubkey, profilesByPubkey, publishThunk} from "@welshman/app"
import {Router, pubkey, profilesByPubkey, publishThunk} from "@welshman/app"
import Button from "@lib/components/Button.svelte"
import ProfileEditForm from "@app/components/ProfileEditForm.svelte"
import {clearModals} from "@app/modal"
@@ -19,7 +18,7 @@
const back = () => history.back()
const onsubmit = (profile: Profile) => {
const relays = ctx.app.router.FromUser().getUrls()
const relays = Router.get().FromUser().getUrls()
const template = isPublishedProfile(profile) ? editProfile(profile) : createProfile(profile)
const event = createEvent(template.kind, template)
+16 -4
View File
@@ -5,7 +5,9 @@
import {REACTION, getTag, REPORT, DELETE} from "@welshman/util"
import type {TrustedEvent} from "@welshman/util"
import {deriveEvents} from "@welshman/store"
import {pubkey, repository, load, displayProfileByPubkey} from "@welshman/app"
import type {MultiRequest} from "@welshman/net"
import {load, request, RequestEvent} from "@welshman/net"
import {pubkey, repository, displayProfileByPubkey} from "@welshman/app"
import {displayList} from "@lib/util"
import {isMobile, preventDefault, stopPropagation} from "@lib/html"
import Icon from "@lib/components/Icon.svelte"
@@ -51,17 +53,27 @@
)
onMount(() => {
let req: MultiRequest
if (url) {
load({
req = request({
relays: [url],
filters: [{kinds: [REACTION, REPORT, DELETE], "#e": [event.id]}],
onEvent: batch(300, (events: TrustedEvent[]) => {
})
req.on(
RequestEvent.Event,
batch(300, (events: TrustedEvent[]) => {
load({
relays: [url],
filters: [{kinds: [DELETE], "#e": events.map(e => e.id)}],
})
}),
})
)
}
return () => {
req?.close()
}
})
</script>
+3 -2
View File
@@ -1,6 +1,7 @@
<script lang="ts">
import {onMount} from "svelte"
import {ctx, sleep} from "@welshman/lib"
import {sleep} from "@welshman/lib"
import {Pool, AuthStatus} from "@welshman/net"
import {displayRelayUrl} from "@welshman/util"
import {preventDefault} from "@lib/html"
import Icon from "@lib/components/Icon.svelte"
@@ -17,7 +18,7 @@
const back = () => history.back()
const next = () => {
if (!error && ctx.net.pool.get(url).stats.lastAuth === 0) {
if (!error && Pool.getSingleton().get(url).auth.status === AuthStatus.None) {
pushModal(SpaceVisitConfirm, {url}, {replaceState: true})
} else {
confirmSpaceVisit(url)
+1 -1
View File
@@ -1,7 +1,7 @@
<script lang="ts">
import {onMount} from "svelte"
import {sleep, identity, nthEq} from "@welshman/lib"
import {load} from "@welshman/app"
import {load} from "@welshman/net"
import {displayRelayUrl, AUTH_INVITE} from "@welshman/util"
import {slide} from "@lib/transition"
import Spinner from "@lib/components/Spinner.svelte"
+4 -3
View File
@@ -1,6 +1,7 @@
<script lang="ts">
import {ctx, tryCatch} from "@welshman/lib"
import {tryCatch} from "@welshman/lib"
import {isRelayUrl, normalizeRelayUrl} from "@welshman/util"
import {Pool, AuthStatus} from "@welshman/net"
import {preventDefault} from "@lib/html"
import Spinner from "@lib/components/Spinner.svelte"
import Button from "@lib/components/Button.svelte"
@@ -25,9 +26,9 @@
return pushToast({theme: "error", message: error})
}
const connection = ctx.net.pool.get(url)
const socket = Pool.getSingleton().get(url)
if (connection.stats.lastAuth === 0) {
if (socket.auth.status === AuthStatus.None) {
pushModal(SpaceJoinConfirm, {url}, {replaceState: true})
} else {
await confirmSpaceJoin(url)