Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,6 @@
"uuid": "^9.0.1",
"vite-plugin-node-polyfills": "^0.21.0",
"voice-activity-detection": "^0.0.5",
"warp-wasm": "^1.7.1"
"warp-wasm": "^1.8.0"
}
}
2 changes: 1 addition & 1 deletion src/lib/components/messaging/AttachmentRenderer.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
export let contextBuilder: (attachments: Attachment) => ContextItem[]

async function download_attachment(message: string, attachment: Attachment) {
await RaygunStoreInstance.downloadAttachment(chatID, message, attachment.name, attachment.size)
await RaygunStoreInstance.downloadAttachment(chatID, message, attachment.name)
}
const dispatch = createEventDispatcher()
const dispatcher = (event: string, detail: string) => {
Expand Down
2 changes: 1 addition & 1 deletion src/lib/components/messaging/PinnedMessages.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
export let top: number | string = "var(--padding)"

async function download_attachment(message: string, attachment: Attachment) {
await RaygunStoreInstance.downloadAttachment(chatID, message, attachment.name, attachment.size)
await RaygunStoreInstance.downloadAttachment(chatID, message, attachment.name)
}

async function unpin(message: string) {
Expand Down
4 changes: 4 additions & 0 deletions src/lib/utils/Functions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,10 @@ export async function shareFile(fileName: string, combinedArray: Buffer) {
export async function downloadFileFromWeb(data: any[], size: number, name: string) {
let options: { size?: number; type?: string } = { size }
let blob = new File([new Uint8Array(data)], name, { type: options?.type })
downloadBlobFromWeb(blob, name)
}

export async function downloadBlobFromWeb(blob: Blob, name: string) {
const elem = window.document.createElement("a")
elem.href = window.URL.createObjectURL(blob)
elem.download = name
Expand Down
22 changes: 3 additions & 19 deletions src/lib/wasm/ConstellationStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -288,28 +288,12 @@ class ConstellationStore {
return regex.test(path)
}

async downloadFile(fileName: string): Promise<Result<WarpError, Buffer>> {
async downloadFile(fileName: string): Promise<Result<WarpError, Response>> {
const constellation = get(this.constellationWritable)
if (constellation) {
try {
let get_stream_async_iterator = await constellation.get_stream(fileName)
let get_stream = {
[Symbol.asyncIterator]() {
return get_stream_async_iterator
},
}

const chunks = []
try {
for await (const value of get_stream) {
if (value.Ok != null) {
chunks.push(Buffer.from(value.Ok))
}
}
} finally {
const combinedArray = Buffer.concat(chunks)
return success(combinedArray)
}
let get_stream = await constellation.get_stream(fileName)
return success(new Response(get_stream))
} catch (error) {
return failure(handleErrors(error))
}
Expand Down
46 changes: 23 additions & 23 deletions src/lib/wasm/MultipassStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,20 +54,20 @@ class MultipassStore {
log.info("Listening to multipass events!")
for await (const value of listener) {
let event = value as wasm.MultiPassEventKind
log.info(`Handling multipass events: ${wasm.MultiPassEventKindEnum[event.kind]} with did ${event.did}`)
log.info("Handling multipass events: ", event)
switch (event.kind) {
case wasm.MultiPassEventKindEnum.FriendRequestSent:
case wasm.MultiPassEventKindEnum.OutgoingFriendRequestClosed:
case wasm.MultiPassEventKindEnum.OutgoingFriendRequestRejected: {
case "friend_request_sent":
case "outgoing_friend_request_closed":
case "outgoing_friend_request_rejected": {
await this.listOutgoingFriendRequests()
break
}
case wasm.MultiPassEventKindEnum.FriendRequestReceived: {
case "friend_request_received": {
if (get(SettingsStore.state).notifications.friends) {
let incoming = await this.identity_from_did(event.did)
let incoming = await this.identity_from_did(event.values.from)
let count = 0
while (incoming === undefined && count < MAX_RETRY_COUNT) {
incoming = await this.identity_from_did(event.did)
incoming = await this.identity_from_did(event.values.from)
count++
await new Promise(resolve => setTimeout(resolve, RETRY_DELAY))
}
Expand All @@ -93,39 +93,39 @@ class MultipassStore {
await this.listIncomingFriendRequests()
break
}
case wasm.MultiPassEventKindEnum.IncomingFriendRequestClosed:
case wasm.MultiPassEventKindEnum.IncomingFriendRequestRejected: {
case "incoming_friend_request_closed":
case "incoming_friend_request_rejected": {
await this.listIncomingFriendRequests()
break
}
case wasm.MultiPassEventKindEnum.FriendAdded: {
case "friend_added": {
await this.listOutgoingFriendRequests()
await this.listIncomingFriendRequests()
await this.listFriends()
break
}
case wasm.MultiPassEventKindEnum.FriendRemoved: {
case "friend_removed": {
await this.listFriends()
break
}
case wasm.MultiPassEventKindEnum.Blocked:
case wasm.MultiPassEventKindEnum.BlockedBy:
case wasm.MultiPassEventKindEnum.Unblocked:
case wasm.MultiPassEventKindEnum.UnblockedBy: {
case "blocked":
case "blocked_by":
case "unblocked":
case "unblocked_by": {
await this.listBlockedFriends()
break
}
case wasm.MultiPassEventKindEnum.IdentityOnline:
case wasm.MultiPassEventKindEnum.IdentityOffline:
case wasm.MultiPassEventKindEnum.IdentityUpdate: {
let user = await this.identity_from_did(event.did)
case "identity_online":
case "identity_offline":
case "identity_update": {
let user = await this.identity_from_did(event.values.did)
if (user) {
Store.updateUser(user)
}
break
}
default: {
log.error(`Unhandled message event: ${wasm.MultiPassEventKindEnum[event.kind]}`)
log.error(`Unhandled message event: ${(event as any).kind}`)
break
}
}
Expand Down Expand Up @@ -554,7 +554,7 @@ class MultipassStore {
const multipass = get(this.multipassWritable)

if (multipass) {
await multipass.update_identity({ RemoveMetadataKey: key })
await multipass.update_identity({ RemoveMetadataKey: { key } })
await this._updateIdentity()
}
}
Expand Down Expand Up @@ -722,7 +722,7 @@ class MultipassStore {
if (multipass) {
try {
let identityProfilePicture = await multipass.identity_picture(did)
profilePicture = identityProfilePicture && identityProfilePicture.data ? (identityProfilePicture.data().length > 2 ? this.to_base64(identityProfilePicture.data()) : "") : ""
profilePicture = identityProfilePicture && identityProfilePicture.data ? (identityProfilePicture.data.length > 2 ? this.to_base64(identityProfilePicture.data) : "") : ""
} catch (error) {
// log.error(`Couldn't fetch profile picture for ${did}: ${error}`)
}
Expand All @@ -736,7 +736,7 @@ class MultipassStore {
if (multipass) {
try {
let identityBannerPicture = await multipass.identity_banner(did)
bannerPicture = identityBannerPicture && identityBannerPicture.data ? (identityBannerPicture.data().length > 2 ? this.to_base64(identityBannerPicture.data()) : "") : ""
bannerPicture = identityBannerPicture && identityBannerPicture.data ? (identityBannerPicture.data.length > 2 ? this.to_base64(identityBannerPicture.data) : "") : ""
} catch (error) {
// log.error(`Couldn't fetch banner picture for ${did}: ${error}`)
}
Expand Down
Loading
Loading