From 1691c4fcf7808bc2ea85bd6c81f38c9005ac86a9 Mon Sep 17 00:00:00 2001 From: manimejia Date: Tue, 4 Jun 2024 10:37:35 -0500 Subject: [PATCH 01/21] rename nip04.ts to encryption.ts --- ndk/src/events/{nip04.ts => encryption.ts} | 1 + ndk/src/events/index.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) rename ndk/src/events/{nip04.ts => encryption.ts} (99%) diff --git a/ndk/src/events/nip04.ts b/ndk/src/events/encryption.ts similarity index 99% rename from ndk/src/events/nip04.ts rename to ndk/src/events/encryption.ts index 849f7c97..fe699716 100644 --- a/ndk/src/events/nip04.ts +++ b/ndk/src/events/encryption.ts @@ -39,3 +39,4 @@ export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSign this.content = (await signer?.decrypt(sender, this.content)) as string; } + diff --git a/ndk/src/events/index.ts b/ndk/src/events/index.ts index eb2f61ae..984bcffe 100644 --- a/ndk/src/events/index.ts +++ b/ndk/src/events/index.ts @@ -10,7 +10,7 @@ import { type NDKUser } from "../user/index.js"; import { type ContentTag, generateContentTags, mergeTags } from "./content-tagger.js"; import { isEphemeral, isParamReplaceable, isReplaceable } from "./kind.js"; import { NDKKind } from "./kinds/index.js"; -import { decrypt, encrypt } from "./nip04.js"; +import { decrypt, encrypt } from "./encryption.js"; import { encode } from "./nip19.js"; import { repost } from "./repost.js"; import { fetchReplyEvent, fetchRootEvent, fetchTaggedEvent } from "./fetch-tagged-event.js"; From 0647703c7656571d81bb9ab60ccbd97bd6e93c88 Mon Sep 17 00:00:00 2001 From: manimejia Date: Tue, 4 Jun 2024 10:47:46 -0500 Subject: [PATCH 02/21] implement nip44 as optional encryption nip for signers --- ndk/src/events/encryption.ts | 57 ++++++++++++++++++++++++++++++++---- ndk/src/signers/index.ts | 22 +++++++++++--- 2 files changed, 70 insertions(+), 9 deletions(-) diff --git a/ndk/src/events/encryption.ts b/ndk/src/events/encryption.ts index fe699716..5bc9ef0d 100644 --- a/ndk/src/events/encryption.ts +++ b/ndk/src/events/encryption.ts @@ -1,12 +1,28 @@ +/** + * Encryption and giftwrapping of events + * Implemnents Nip04, Nip44, (TODO) Nip59 + */ import type { NDKSigner } from "../signers"; import type { NDKUser } from "../user"; import type { NDKEvent } from "./index.js"; +export type EncryptionNip = 'nip04' | 'nip44'; + +// some clients may wish to set a default for message encryption... +// TODO how should replies to 'nip04' encrypted messages be handled? +let defaultEncryption : EncryptionNip | undefined = undefined; +export function useEncryption(nip : EncryptionNip){ + defaultEncryption = nip; +} + + export async function encrypt( this: NDKEvent, recipient?: NDKUser, - signer?: NDKSigner + signer?: NDKSigner, + nip : EncryptionNip | undefined = defaultEncryption ): Promise { + let encrypted : string; if (!this.ndk) throw new Error("No NDK instance found!"); if (!signer) { await this.ndk.assertSigner(); @@ -24,10 +40,21 @@ export async function encrypt( recipient = this.ndk.getUser({ pubkey: pTags[0][1] }); } - this.content = (await signer?.encrypt(recipient, this.content)) as string; -} + // support for encrypting events via legacy `nip04`. adapted from Coracle + if ((!nip || nip == 'nip04') && isNip04Enabled(signer)) { + try{ + encrypted = (await signer?.encrypt(recipient, this.content, 'nip04')) as string; + }catch{} + } + if ((!encrypted || nip == "nip44") && isNip44Enabled(signer)) { + encrypted = (await signer?.encrypt(recipient, this.content, 'nip44')) as string; + } + if(!encrypted) throw new Error('Failed to encrypt event.') + this.content = encrypted + } -export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSigner): Promise { +export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSigner, nip: EncryptionNip | undefined = defaultEncryption): Promise { + let decrypted : string; if (!this.ndk) throw new Error("No NDK instance found!"); if (!signer) { await this.ndk.assertSigner(); @@ -36,7 +63,27 @@ export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSign if (!sender) { sender = this.author; } + // simple check for legacy `nip04` encrypted events. adapted from Coracle + if ((!nip || nip=='nip04') && isNip04Enabled(signer) && this.content.search("?iv=")) { + try{ + decrypted = (await signer?.decrypt(sender, this.content, 'nip04')) as string; + }catch{} + } + if (!decrypted && isNip44Enabled(signer)) { + decrypted = (await signer?.decrypt(sender, this.content, 'nip44')) as string; + } + if(!decrypted) throw new Error('Failed to decrypt event.') + this.content = decrypted +} - this.content = (await signer?.decrypt(sender, this.content)) as string; +async function isNip04Enabled(signer : NDKSigner){ + let enabled = await signer.encryptionEnabled(); + if(enabled.indexOf('nip04') != -1) return true; + return false; } +async function isNip44Enabled(signer : NDKSigner){ + let enabled = await signer.encryptionEnabled(); + if(enabled.indexOf('nip44') != -1) return true; + return false; +} \ No newline at end of file diff --git a/ndk/src/signers/index.ts b/ndk/src/signers/index.ts index 9e2e52aa..f3d9de37 100644 --- a/ndk/src/signers/index.ts +++ b/ndk/src/signers/index.ts @@ -1,7 +1,9 @@ +import { EncryptionNip } from "../events/encryption.js"; import type { NostrEvent } from "../events/index.js"; import { NDKRelay } from "../relay/index.js"; import type { NDKUser } from "../user"; + /** * Interface for NDK signers. */ @@ -31,16 +33,28 @@ export interface NDKSigner { */ relays?(): Promise; + /** + * Determine the types of encryption (by nip) that this signer can perform. + * Implementing classes SHOULD return a value even for legacy (only nip04) third party signers. + * @return A promised list of any (or none) of these strings ['nip04', 'nip44'] + */ + encryptionEnabled?(): Promise + /** * Encrypts the given Nostr event for the given recipient. + * Implementing classes SHOULD equate legacy (only nip04) to nip == `nip04` || undefined + * @param recipient - The recipient (pubkey or conversationKey) of the encrypted value. * @param value - The value to be encrypted. - * @param recipient - The recipient of the encrypted value. + * @param nip - which NIP is being implemented ('nip04', 'nip44') */ - encrypt(recipient: NDKUser, value: string): Promise; + encrypt(recipient: NDKUser, value: string, nip?:EncryptionNip): Promise; /** * Decrypts the given value. - * @param value + * Implementing classes SHOULD equate legacy (only nip04) to nip == `nip04` || undefined + * @param sender - The sender (pubkey or conversationKey) of the encrypted value + * @param value - The value to be decrypted + * @param nip - which NIP is being implemented ('nip04', 'nip44', 'nip49') */ - decrypt(sender: NDKUser, value: string): Promise; + decrypt(sender: NDKUser, value: string, nip?:EncryptionNip): Promise; } From 4bc3457e3f09700842c719a36d2a77971ea240b9 Mon Sep 17 00:00:00 2001 From: manimejia Date: Tue, 4 Jun 2024 10:49:16 -0500 Subject: [PATCH 03/21] UNTESTED implement nip44 as optional encryption for NDKPrivateSigner UNTESTED with a test written --- ndk/src/signers/private-key/index.test.ts | 25 ++++++++++++++++++++++- ndk/src/signers/private-key/index.ts | 25 ++++++++++++++++++----- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/ndk/src/signers/private-key/index.test.ts b/ndk/src/signers/private-key/index.test.ts index a9f0822f..e4ec10d3 100644 --- a/ndk/src/signers/private-key/index.test.ts +++ b/ndk/src/signers/private-key/index.test.ts @@ -1,5 +1,5 @@ import { generateSecretKey } from "nostr-tools"; -import type { NostrEvent } from "../../index.js"; +import NDK, { NDKEvent, type NostrEvent } from "../../index.js"; import { NDKPrivateKeySigner } from "./index"; import { bytesToHex, hexToBytes } from "@noble/hashes/utils"; import { nip19 } from "nostr-tools"; @@ -60,4 +60,27 @@ describe("NDKPrivateKeySigner", () => { expect(signature).toBeDefined(); expect(signature.length).toBe(128); }); + + it("encrypts and decrypts an NDKEvent using Nip44", async () => { + const senderSigner = new NDKPrivateKeySigner("0277cc53c89ca9c8a441987265276fafa55bf5bed8a55b16fd640e0d6a0c21e2"); + const senderUser = await senderSigner.user(); + const recipientSigner = new NDKPrivateKeySigner("f04855b5887e20132a70c129ab67587d08733232307d337d82028ba6c81a9b0f"); + const recipientUser = await recipientSigner.user(); + + const sendEvent: NDKEvent = new NDKEvent (new NDK(), { + pubkey: senderUser.pubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [], + content: "Test content", + kind: 1, + }); + + const original = sendEvent.content + await sendEvent.encrypt(recipientUser, senderSigner,'nip44'); + const recieveEvent = new NDKEvent(new NDK(), sendEvent.rawEvent()) + await recieveEvent.decrypt(senderUser, recipientSigner,'nip44'); + const decrypted = recieveEvent.content + + expect(decrypted).toBe(original); + }); }); diff --git a/ndk/src/signers/private-key/index.ts b/ndk/src/signers/private-key/index.ts index 61428705..ac5cf506 100644 --- a/ndk/src/signers/private-key/index.ts +++ b/ndk/src/signers/private-key/index.ts @@ -1,12 +1,13 @@ import type { UnsignedEvent } from "nostr-tools"; -import { generateSecretKey, getPublicKey, finalizeEvent, nip04 } from "nostr-tools"; +import { generateSecretKey, getPublicKey, finalizeEvent, nip04, nip44 } from "nostr-tools"; import type { NostrEvent } from "../../events/index.js"; import { NDKUser } from "../../user"; -import type { NDKSigner } from "../index.js"; +import type { EncryptionNip, NDKSigner } from "../index.js"; import { bytesToHex, hexToBytes } from "@noble/hashes/utils"; import { nip19 } from "nostr-tools"; + export class NDKPrivateKeySigner implements NDKSigner { private _user: NDKUser | undefined; _privateKey?: Uint8Array; @@ -37,7 +38,6 @@ export class NDKPrivateKeySigner implements NDKSigner { } } } - get privateKey(): string | undefined { if (!this._privateKey) return undefined; return bytesToHex(this._privateKey); @@ -68,21 +68,36 @@ export class NDKPrivateKeySigner implements NDKSigner { return finalizeEvent(event as UnsignedEvent, this._privateKey).sig; } - public async encrypt(recipient: NDKUser, value: string): Promise { + public async encryptionEnabled(): Promise{ + let enabled : EncryptionNip[] = ['nip04', 'nip44'] + return enabled; + } + + public async encrypt(recipient: NDKUser, value: string, nip?: EncryptionNip): Promise { if (!this._privateKey) { throw Error("Attempted to encrypt without a private key"); } const recipientHexPubKey = recipient.pubkey; + if(nip == 'nip44'){ + // TODO Deriving shared secret is an expensive computation, should be cached. + let conversationKey = nip44.v2.utils.getConversationKey(this._privateKey, recipientHexPubKey); + return await nip44.v2.encrypt(value, conversationKey); + } return await nip04.encrypt(this._privateKey, recipientHexPubKey, value); } - public async decrypt(sender: NDKUser, value: string): Promise { + public async decrypt(sender: NDKUser, value: string, nip?: EncryptionNip): Promise { if (!this._privateKey) { throw Error("Attempted to decrypt without a private key"); } const senderHexPubKey = sender.pubkey; + if(nip == 'nip44'){ + // TODO Deriving shared secret is an expensive computation, should be cached. + let conversationKey = nip44.v2.utils.getConversationKey(this._privateKey, senderHexPubKey); + return await nip44.v2.decrypt(value, conversationKey); + } return await nip04.decrypt(this._privateKey, senderHexPubKey, value); } } From 8bbf1cdd4efd10b7a8fca817088a43e4ca05601b Mon Sep 17 00:00:00 2001 From: manimejia Date: Tue, 4 Jun 2024 11:35:04 -0500 Subject: [PATCH 04/21] BUGFIX wrong import and wrong privateKey params --- ndk/src/signers/private-key/index.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ndk/src/signers/private-key/index.ts b/ndk/src/signers/private-key/index.ts index ac5cf506..ab37127c 100644 --- a/ndk/src/signers/private-key/index.ts +++ b/ndk/src/signers/private-key/index.ts @@ -3,9 +3,10 @@ import { generateSecretKey, getPublicKey, finalizeEvent, nip04, nip44 } from "no import type { NostrEvent } from "../../events/index.js"; import { NDKUser } from "../../user"; -import type { EncryptionNip, NDKSigner } from "../index.js"; +import type { NDKSigner } from "../index.js"; import { bytesToHex, hexToBytes } from "@noble/hashes/utils"; import { nip19 } from "nostr-tools"; +import { EncryptionNip } from "../../events/encryption.js"; export class NDKPrivateKeySigner implements NDKSigner { @@ -74,28 +75,28 @@ export class NDKPrivateKeySigner implements NDKSigner { } public async encrypt(recipient: NDKUser, value: string, nip?: EncryptionNip): Promise { - if (!this._privateKey) { + if (!this._privateKey || !this.privateKey) { throw Error("Attempted to encrypt without a private key"); } const recipientHexPubKey = recipient.pubkey; if(nip == 'nip44'){ // TODO Deriving shared secret is an expensive computation, should be cached. - let conversationKey = nip44.v2.utils.getConversationKey(this._privateKey, recipientHexPubKey); + let conversationKey = nip44.v2.utils.getConversationKey(this.privateKey, recipientHexPubKey); return await nip44.v2.encrypt(value, conversationKey); } return await nip04.encrypt(this._privateKey, recipientHexPubKey, value); } public async decrypt(sender: NDKUser, value: string, nip?: EncryptionNip): Promise { - if (!this._privateKey) { + if (!this._privateKey || !this.privateKey) { throw Error("Attempted to decrypt without a private key"); } const senderHexPubKey = sender.pubkey; if(nip == 'nip44'){ // TODO Deriving shared secret is an expensive computation, should be cached. - let conversationKey = nip44.v2.utils.getConversationKey(this._privateKey, senderHexPubKey); + let conversationKey = nip44.v2.utils.getConversationKey(this.privateKey, senderHexPubKey); return await nip44.v2.decrypt(value, conversationKey); } return await nip04.decrypt(this._privateKey, senderHexPubKey, value); From e23795acc630b141ca8ee8485f83594e4f2c33ef Mon Sep 17 00:00:00 2001 From: manimejia Date: Wed, 5 Jun 2024 09:40:46 -0500 Subject: [PATCH 05/21] ADDED Nip44 support for NDKNip07Signer also some buigfiixes for encryptionEnabled() UNTESTED : this commit has not been tested yet. --- ndk/src/events/encryption.ts | 29 +++++------ ndk/src/signers/index.ts | 3 +- ndk/src/signers/nip07/index.ts | 74 ++++++++++++++++------------ ndk/src/signers/private-key/index.ts | 6 ++- 4 files changed, 61 insertions(+), 51 deletions(-) diff --git a/ndk/src/events/encryption.ts b/ndk/src/events/encryption.ts index 5bc9ef0d..01ade652 100644 --- a/ndk/src/events/encryption.ts +++ b/ndk/src/events/encryption.ts @@ -7,6 +7,7 @@ import type { NDKUser } from "../user"; import type { NDKEvent } from "./index.js"; export type EncryptionNip = 'nip04' | 'nip44'; +export type EncryptionMethod = 'encrypt' | 'decrypt' // some clients may wish to set a default for message encryption... // TODO how should replies to 'nip04' encrypted messages be handled? @@ -22,12 +23,13 @@ export async function encrypt( signer?: NDKSigner, nip : EncryptionNip | undefined = defaultEncryption ): Promise { - let encrypted : string; + let encrypted : string | undefined; if (!this.ndk) throw new Error("No NDK instance found!"); if (!signer) { await this.ndk.assertSigner(); signer = this.ndk.signer; } + if(!signer) throw new Error('no NDK signer'); if (!recipient) { const pTags = this.getMatchingTags("p"); @@ -41,12 +43,12 @@ export async function encrypt( } // support for encrypting events via legacy `nip04`. adapted from Coracle - if ((!nip || nip == 'nip04') && isNip04Enabled(signer)) { + if ((!nip || nip == 'nip04') && await isEncryptionEnabled(signer, 'nip04')) { try{ encrypted = (await signer?.encrypt(recipient, this.content, 'nip04')) as string; }catch{} } - if ((!encrypted || nip == "nip44") && isNip44Enabled(signer)) { + if ((!encrypted || nip == "nip44") && await isEncryptionEnabled(signer, 'nip44')) { encrypted = (await signer?.encrypt(recipient, this.content, 'nip44')) as string; } if(!encrypted) throw new Error('Failed to encrypt event.') @@ -54,36 +56,31 @@ export async function encrypt( } export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSigner, nip: EncryptionNip | undefined = defaultEncryption): Promise { - let decrypted : string; + let decrypted : string | undefined; if (!this.ndk) throw new Error("No NDK instance found!"); if (!signer) { await this.ndk.assertSigner(); signer = this.ndk.signer; } + if(!signer) throw new Error('no NDK signer'); if (!sender) { sender = this.author; } // simple check for legacy `nip04` encrypted events. adapted from Coracle - if ((!nip || nip=='nip04') && isNip04Enabled(signer) && this.content.search("?iv=")) { + if ((!nip || nip=='nip04') && await isEncryptionEnabled(signer, 'nip04') && this.content.search("?iv=")) { try{ decrypted = (await signer?.decrypt(sender, this.content, 'nip04')) as string; }catch{} } - if (!decrypted && isNip44Enabled(signer)) { + if (!decrypted && await isEncryptionEnabled(signer, 'nip44')) { decrypted = (await signer?.decrypt(sender, this.content, 'nip44')) as string; } if(!decrypted) throw new Error('Failed to decrypt event.') this.content = decrypted } -async function isNip04Enabled(signer : NDKSigner){ - let enabled = await signer.encryptionEnabled(); - if(enabled.indexOf('nip04') != -1) return true; - return false; +async function isEncryptionEnabled(signer : NDKSigner, nip? : EncryptionNip){ + if(!signer.encryptionEnabled) return false; + if(!nip) return true; + return Boolean(await signer.encryptionEnabled(nip)); } - -async function isNip44Enabled(signer : NDKSigner){ - let enabled = await signer.encryptionEnabled(); - if(enabled.indexOf('nip44') != -1) return true; - return false; -} \ No newline at end of file diff --git a/ndk/src/signers/index.ts b/ndk/src/signers/index.ts index f3d9de37..fda7971e 100644 --- a/ndk/src/signers/index.ts +++ b/ndk/src/signers/index.ts @@ -36,9 +36,10 @@ export interface NDKSigner { /** * Determine the types of encryption (by nip) that this signer can perform. * Implementing classes SHOULD return a value even for legacy (only nip04) third party signers. + * @nip Optionally returns an array with single supported nip or empty, to check for truthy or falsy. * @return A promised list of any (or none) of these strings ['nip04', 'nip44'] */ - encryptionEnabled?(): Promise + encryptionEnabled?(nip?:EncryptionNip): Promise /** * Encrypts the given Nostr event for the given recipient. diff --git a/ndk/src/signers/nip07/index.ts b/ndk/src/signers/nip07/index.ts index 0a6500f6..8d36f359 100644 --- a/ndk/src/signers/nip07/index.ts +++ b/ndk/src/signers/nip07/index.ts @@ -4,9 +4,11 @@ import type { NostrEvent } from "../../events/index.js"; import { NDKUser } from "../../user/index.js"; import type { NDKSigner } from "../index.js"; import { NDKRelay } from "../../relay/index.js"; +import { EncryptionMethod, EncryptionNip } from "../../events/encryption.js"; -type Nip04QueueItem = { - type: "encrypt" | "decrypt"; +type EncryptionQueueItem = { + nip : EncryptionNip; + method: EncryptionMethod; counterpartyHexpubkey: string; value: string; resolve: (value: string) => void; @@ -26,8 +28,8 @@ type Nip07RelayMap = { */ export class NDKNip07Signer implements NDKSigner { private _userPromise: Promise | undefined; - public nip04Queue: Nip04QueueItem[] = []; - private nip04Processing = false; + public encryptionQueue: EncryptionQueueItem[] = []; + private encryptionProcessing = false; private debug: debug.Debugger; private waitTimeout: number; @@ -92,65 +94,69 @@ export class NDKNip07Signer implements NDKSigner { return activeRelays.map((url) => new NDKRelay(url)); } - public async encrypt(recipient: NDKUser, value: string): Promise { + public async encryptionEnabled(nip?:EncryptionNip): Promise{ + let enabled : EncryptionNip[] = [] + if((!nip || nip == 'nip04') && Boolean((window as any).nostr!.nip04)) enabled.push('nip04') + if((!nip || nip == 'nip44') && Boolean((window as any).nostr!.nip44)) enabled.push('nip44') + return enabled; + } + + public async encrypt(recipient: NDKUser, value: string, nip:EncryptionNip = 'nip04'): Promise { + if( !(await this.encryptionEnabled(nip)) ) throw new Error(nip + 'encryption is not available from your browser extension') await this.waitForExtension(); const recipientHexPubKey = recipient.pubkey; - return this.queueNip04("encrypt", recipientHexPubKey, value); + return this.queueEncryption(nip, "encrypt", recipientHexPubKey, value); } - public async decrypt(sender: NDKUser, value: string): Promise { + public async decrypt(sender: NDKUser, value: string, nip:EncryptionNip = 'nip04'): Promise { + if( !(await this.encryptionEnabled(nip)) ) throw new Error(nip + 'encryption is not available from your browser extension') await this.waitForExtension(); const senderHexPubKey = sender.pubkey; - return this.queueNip04("decrypt", senderHexPubKey, value); + return this.queueEncryption(nip, "decrypt", senderHexPubKey, value); } - private async queueNip04( - type: "encrypt" | "decrypt", + private async queueEncryption( + nip : EncryptionNip, + method: EncryptionMethod, counterpartyHexpubkey: string, value: string ): Promise { return new Promise((resolve, reject) => { - this.nip04Queue.push({ - type, + this.encryptionQueue.push({ + nip, + method, counterpartyHexpubkey, value, resolve, reject, }); - if (!this.nip04Processing) { - this.processNip04Queue(); + if (!this.encryptionProcessing) { + this.processEncryptionQueue(); } }); } - private async processNip04Queue(item?: Nip04QueueItem, retries = 0): Promise { - if (!item && this.nip04Queue.length === 0) { - this.nip04Processing = false; + private async processEncryptionQueue(item?: EncryptionQueueItem, retries = 0): Promise { + if (!item && this.encryptionQueue.length === 0) { + this.encryptionProcessing = false; return; } - this.nip04Processing = true; - const { type, counterpartyHexpubkey, value, resolve, reject } = - item || this.nip04Queue.shift()!; + this.encryptionProcessing = true; + const {nip, method, counterpartyHexpubkey, value, resolve, reject } = + item || this.encryptionQueue.shift()!; this.debug("Processing encryption queue item", { - type, + method, counterpartyHexpubkey, value, }); try { - let result; - - if (type === "encrypt") { - result = await window.nostr!.nip04!.encrypt(counterpartyHexpubkey, value); - } else { - result = await window.nostr!.nip04!.decrypt(counterpartyHexpubkey, value); - } - + let result = await window.nostr![nip]![method](counterpartyHexpubkey, value) resolve(result); // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { @@ -158,13 +164,13 @@ export class NDKNip07Signer implements NDKSigner { if (error.message && error.message.includes("call already executing")) { if (retries < 5) { this.debug("Retrying encryption queue item", { - type, + method, counterpartyHexpubkey, value, retries, }); setTimeout(() => { - this.processNip04Queue(item, retries + 1); + this.processEncryptionQueue(item, retries + 1); }, 50 * retries); return; @@ -173,7 +179,7 @@ export class NDKNip07Signer implements NDKSigner { reject(error); } - this.processNip04Queue(); + this.processEncryptionQueue(); } private waitForExtension(): Promise { @@ -213,6 +219,10 @@ declare global { encrypt(recipientHexPubKey: string, value: string): Promise; decrypt(senderHexPubKey: string, value: string): Promise; }; + nip44?: { + encrypt(recipientHexPubKey: string, value: string): Promise; + decrypt(senderHexPubKey: string, value: string): Promise; + }; }; } } diff --git a/ndk/src/signers/private-key/index.ts b/ndk/src/signers/private-key/index.ts index ab37127c..d5b2e559 100644 --- a/ndk/src/signers/private-key/index.ts +++ b/ndk/src/signers/private-key/index.ts @@ -69,8 +69,10 @@ export class NDKPrivateKeySigner implements NDKSigner { return finalizeEvent(event as UnsignedEvent, this._privateKey).sig; } - public async encryptionEnabled(): Promise{ - let enabled : EncryptionNip[] = ['nip04', 'nip44'] + public async encryptionEnabled(nip?:EncryptionNip): Promise{ + let enabled : EncryptionNip[] = [] + if((!nip || nip == 'nip04')) enabled.push('nip04') + if((!nip || nip == 'nip44')) enabled.push('nip44') return enabled; } From 1e7c9017e9c6c1fd926b8f517e4e50b81be3ecac Mon Sep 17 00:00:00 2001 From: manimejia Date: Sat, 8 Jun 2024 16:15:56 -0500 Subject: [PATCH 06/21] UNTESTED adds Nip59 giftWrap and giftUnwrap for NDKEvents --- ndk/src/events/encryption.ts | 123 +++++++++++++++++++++++++++++++++-- ndk/src/events/index.ts | 4 +- 2 files changed, 122 insertions(+), 5 deletions(-) diff --git a/ndk/src/events/encryption.ts b/ndk/src/events/encryption.ts index 01ade652..19f5059a 100644 --- a/ndk/src/events/encryption.ts +++ b/ndk/src/events/encryption.ts @@ -1,10 +1,15 @@ /** * Encryption and giftwrapping of events - * Implemnents Nip04, Nip44, (TODO) Nip59 + * Implemnents Nip04, Nip44, Nip59 */ import type { NDKSigner } from "../signers"; -import type { NDKUser } from "../user"; -import type { NDKEvent } from "./index.js"; +import { NDKUser } from "../user"; +import { NDKEvent, NostrEvent } from "./index.js"; +import { NDKPrivateKeySigner } from "../signers/private-key"; +import { VerifiedEvent, getEventHash, verifiedSymbol } from "nostr-tools"; + + +// NIP04 && NIP44 export type EncryptionNip = 'nip04' | 'nip44'; export type EncryptionMethod = 'encrypt' | 'decrypt' @@ -16,7 +21,6 @@ export function useEncryption(nip : EncryptionNip){ defaultEncryption = nip; } - export async function encrypt( this: NDKEvent, recipient?: NDKUser, @@ -84,3 +88,114 @@ async function isEncryptionEnabled(signer : NDKSigner, nip? : EncryptionNip){ if(!nip) return true; return Boolean(await signer.encryptionEnabled(nip)); } + + +// NIP 59 - adapted from Coracle + +export type GiftWrapParams = { + encryptionNip?: EncryptionNip + rumorKind?: number; + wrapKind?: 1059 | 1060 + wrapTags?: string[][] +} + +/** + * Instantiate a new (Nip59 gift wrapped) NDKEvent from any NDKevent + * @param this + * @param recipient + * @param signer + * @param params + * @returns + */ +export async function giftWrap(this:NDKEvent, recipient: NDKUser, signer?:NDKSigner, params:GiftWrapParams = {}) : Promise{ + params.encryptionNip = params.encryptionNip || 'nip44'; + if(!signer){ + if(!this.ndk) + throw new Error('no signer available for giftWrap') + signer = this.ndk.signer; + } + if(!signer) + throw new Error('no signer') + if(!signer.encryptionEnabled || !signer.encryptionEnabled(params.encryptionNip)) + throw new Error('signer is not able to giftWrap') + const rumor = getRumorEvent(this, params?.rumorKind) + const seal = await getSealEvent(rumor, recipient, signer, params.encryptionNip); + const wrap = await getWrapEvent(seal, recipient, params); + return new NDKEvent(this.ndk, wrap); +} + +/** + * Instantiate a new (Nip59 un-wrapped rumor) NDKEvent from any gift wrapped NDKevent + * @param this + */ +export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSigner, nip:EncryptionNip = 'nip44') : Promise{ + sender = sender || new NDKUser({pubkey:this.pubkey}) + if(!signer){ + if(!this.ndk) + throw new Error('no signer available for giftUnwrap') + signer = this.ndk.signer; + } + if(!signer) + throw new Error('no signer') + try { + + const seal = JSON.parse(await signer.decrypt(sender, this.content, nip)); + if (!seal) throw new Error("Failed to decrypt wrapper") + + const rumor = JSON.parse(await signer.decrypt(sender, seal.content, nip)) + if (!rumor) throw new Error("Failed to decrypt seal") + + if (seal.pubkey === rumor.pubkey) { + return new NDKEvent(this.ndk, rumor as NostrEvent) + } + } catch (e) { + console.log(e) + } + return null + } + + + +function getRumorEvent(event:NDKEvent, kind?:number):NDKEvent{ + let rumor = event.rawEvent(); + rumor.kind = kind || rumor.kind || 1; + rumor.sig = undefined; + rumor.id = getEventHash(rumor as any); + return new NDKEvent(event.ndk, rumor) +} + +async function getSealEvent(rumor : NDKEvent, recipient : NDKUser, signer:NDKSigner, nip:EncryptionNip = 'nip44') : Promise{ + const content = await signer.encrypt(recipient, JSON.stringify(rumor), nip); + let seal : any = { + kind: 13, + created_at: aproximateNow(5), + tags: [], + content , + pubkey : rumor.pubkey + } + seal.id = getEventHash(seal), + seal.sig = await signer.sign(seal); + seal[verifiedSymbol] = true + return seal; +} + +async function getWrapEvent(sealed:VerifiedEvent, recipient:NDKUser, params? : GiftWrapParams) : Promise{ + const signer = NDKPrivateKeySigner.generate(); + const content = await signer.encrypt(recipient, JSON.stringify(sealed), params?.encryptionNip || 'nip44') + const pubkey = (await signer.user()).pubkey + let wrap : any = { + kind : params?.wrapKind || 1059, + created_at: aproximateNow(5), + tags: (params?.wrapTags || []).concat([["p", recipient.pubkey]]), + content, + pubkey, + } + wrap.id = getEventHash(wrap); + wrap.sig = await signer.sign(wrap); + wrap[verifiedSymbol] = true + return wrap; +} + +function aproximateNow(drift = 0){ + return Math.round(Date.now() / 1000 - Math.random() * Math.pow(10, drift)) +} diff --git a/ndk/src/events/index.ts b/ndk/src/events/index.ts index 984bcffe..c4e7e8de 100644 --- a/ndk/src/events/index.ts +++ b/ndk/src/events/index.ts @@ -10,7 +10,7 @@ import { type NDKUser } from "../user/index.js"; import { type ContentTag, generateContentTags, mergeTags } from "./content-tagger.js"; import { isEphemeral, isParamReplaceable, isReplaceable } from "./kind.js"; import { NDKKind } from "./kinds/index.js"; -import { decrypt, encrypt } from "./encryption.js"; +import { decrypt, encrypt, giftUnwrap, giftWrap } from "./encryption.js"; import { encode } from "./nip19.js"; import { repost } from "./repost.js"; import { fetchReplyEvent, fetchRootEvent, fetchTaggedEvent } from "./fetch-tagged-event.js"; @@ -231,6 +231,8 @@ export class NDKEvent extends EventEmitter { public encode = encode.bind(this); public encrypt = encrypt.bind(this); public decrypt = decrypt.bind(this); + public giftWrap = giftWrap.bind(this); + public giftUnwrap = giftUnwrap.bind(this); /** * Get all tags with the given name From 0a776a280a70c7a9bede4956fa961334b2eee578 Mon Sep 17 00:00:00 2001 From: manimejia Date: Wed, 12 Jun 2024 10:06:53 -0500 Subject: [PATCH 07/21] ADDED tests to encryption.test.ts coppied Nip44 test for encrypt and decrypt new Nip59 test for gift wrap and unwrap --- ndk/src/events/encryption.test.ts | 56 +++++++++++++++++++++++ ndk/src/signers/private-key/index.test.ts | 23 ---------- 2 files changed, 56 insertions(+), 23 deletions(-) create mode 100644 ndk/src/events/encryption.test.ts diff --git a/ndk/src/events/encryption.test.ts b/ndk/src/events/encryption.test.ts new file mode 100644 index 00000000..297089bf --- /dev/null +++ b/ndk/src/events/encryption.test.ts @@ -0,0 +1,56 @@ +import { NDKEvent } from "."; +import { NDK } from "../ndk"; +import { NDKPrivateKeySigner } from "../signers/private-key"; + +const PRIVATE_KEY_1_FOR_TESTING = '1fbc12b81e0b21f10fb219e88dd76fc80c7aa5369779e44e762fec6f460d6a89'; +const PRIVATE_KEY_2_FOR_TESTING = "d30b946562050e6ced827113da15208730879c46547061b404434edff63236fa"; + + +describe("NDKEvent encryption (Nip44 & Nip59)", ()=>{ + + it("encrypts and decrypts an NDKEvent using Nip44", async () => { + const senderSigner = new NDKPrivateKeySigner(PRIVATE_KEY_1_FOR_TESTING); + const senderUser = await senderSigner.user(); + const recipientSigner = new NDKPrivateKeySigner(PRIVATE_KEY_2_FOR_TESTING); + const recipientUser = await recipientSigner.user(); + + const sendEvent: NDKEvent = new NDKEvent (new NDK(), { + pubkey: senderUser.pubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [], + content: "Test content", + kind: 1, + }); + + const original = sendEvent.content + await sendEvent.encrypt(recipientUser, senderSigner,'nip44'); + const recieveEvent = new NDKEvent(new NDK(), sendEvent.rawEvent()) + await recieveEvent.decrypt(senderUser, recipientSigner,'nip44'); + const decrypted = recieveEvent.content + + expect(decrypted).toBe(original); + }); + + it("gift wraps and unwraps an NDKEvent using Nip59", async () => { + const sendsigner = new NDKPrivateKeySigner(PRIVATE_KEY_1_FOR_TESTING) + const senduser = await sendsigner.user(); + const recievesigner = new NDKPrivateKeySigner(PRIVATE_KEY_2_FOR_TESTING) + const recieveuser = await recievesigner.user(); + + let message = new NDKEvent(new NDK(),{ + kind : 1, + pubkey : senduser.pubkey, + content : "hello world", + created_at : new Date().valueOf(), + tags : [] + }) + + // console.log('MESSAGE EVENT : '+ JSON.stringify(message.rawEvent())) + const wrapped = await message.giftWrap(recieveuser,sendsigner); + // console.log('MESSAGE EVENT WRAPPED : '+ JSON.stringify(wrapped.rawEvent())) + const unwrapped = await wrapped.giftUnwrap(senduser,recievesigner) + // console.log('MESSAGE EVENT UNWRAPPED : '+ JSON.stringify(unwrapped?.rawEvent())) + expect(unwrapped).toBe(message) + }); + +}) diff --git a/ndk/src/signers/private-key/index.test.ts b/ndk/src/signers/private-key/index.test.ts index e4ec10d3..d4778212 100644 --- a/ndk/src/signers/private-key/index.test.ts +++ b/ndk/src/signers/private-key/index.test.ts @@ -60,27 +60,4 @@ describe("NDKPrivateKeySigner", () => { expect(signature).toBeDefined(); expect(signature.length).toBe(128); }); - - it("encrypts and decrypts an NDKEvent using Nip44", async () => { - const senderSigner = new NDKPrivateKeySigner("0277cc53c89ca9c8a441987265276fafa55bf5bed8a55b16fd640e0d6a0c21e2"); - const senderUser = await senderSigner.user(); - const recipientSigner = new NDKPrivateKeySigner("f04855b5887e20132a70c129ab67587d08733232307d337d82028ba6c81a9b0f"); - const recipientUser = await recipientSigner.user(); - - const sendEvent: NDKEvent = new NDKEvent (new NDK(), { - pubkey: senderUser.pubkey, - created_at: Math.floor(Date.now() / 1000), - tags: [], - content: "Test content", - kind: 1, - }); - - const original = sendEvent.content - await sendEvent.encrypt(recipientUser, senderSigner,'nip44'); - const recieveEvent = new NDKEvent(new NDK(), sendEvent.rawEvent()) - await recieveEvent.decrypt(senderUser, recipientSigner,'nip44'); - const decrypted = recieveEvent.content - - expect(decrypted).toBe(original); - }); }); From a02e181f5e1a95ec176aebded04eb335297d2bdd Mon Sep 17 00:00:00 2001 From: manimejia Date: Mon, 17 Jun 2024 11:26:54 -0500 Subject: [PATCH 08/21] UPDATE add encryoption kinds to NDKKind enum --- ndk/src/events/kinds/index.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ndk/src/events/kinds/index.ts b/ndk/src/events/kinds/index.ts index 9c80eee4..95674280 100644 --- a/ndk/src/events/kinds/index.ts +++ b/ndk/src/events/kinds/index.ts @@ -14,6 +14,12 @@ export enum NDKKind { GroupNote = 11, GroupReply = 12, + // Nip 59 : Gift Wrap + GiftWrap = 1059, + GiftWrapSeal = 13, + // Gift Wrapped Rumors + PrivateDirectMessage = 14, + GenericRepost = 16, ChannelCreation = 40, ChannelMetadata = 41, From c0c8c58f086de605cb446b884a66e1f761158ff9 Mon Sep 17 00:00:00 2001 From: rodant Date: Sun, 3 Nov 2024 12:42:57 +0100 Subject: [PATCH 09/21] Fix compile errors matching current master of upstream ndk repo. --- ndk/src/events/index.test.ts | 6 +++--- ndk/src/relay/auth-policies.test.ts | 28 +--------------------------- ndk/src/user/index.test.ts | 24 ++++++++++++------------ 3 files changed, 16 insertions(+), 42 deletions(-) diff --git a/ndk/src/events/index.test.ts b/ndk/src/events/index.test.ts index 97292595..cf44694d 100644 --- a/ndk/src/events/index.test.ts +++ b/ndk/src/events/index.test.ts @@ -157,9 +157,9 @@ describe("NDKEvent", () => { const sub = new NDKSubscription(ndk, filter, opts); setTimeout(() => { - sub.emit("event", event1); - sub.emit("event", event2); - sub.emit("eose"); + sub.emit("event", event1, undefined, sub); + sub.emit("event", event2, undefined, sub); + sub.emit("eose", sub); }, 100); return sub; diff --git a/ndk/src/relay/auth-policies.test.ts b/ndk/src/relay/auth-policies.test.ts index 1031f92d..630eacbf 100644 --- a/ndk/src/relay/auth-policies.test.ts +++ b/ndk/src/relay/auth-policies.test.ts @@ -18,30 +18,4 @@ describe("disconnect policy", () => { // it should have been removed from the pool expect(pool.relays.size).toBe(0); }); -}); - -describe("sign in policy", () => { - it("signs in to the relay", async () => { - const signer = NDKPrivateKeySigner.generate(); - const policy = NDKRelayAuthPolicies.signIn({ signer }); - ndk.relayAuthDefaultPolicy = policy; - - const relayAuth = jest - .spyOn(relay, "auth") - .mockImplementation(async (event: NDKEvent): Promise => { - return "abc"; - }); - - await relay.emit("auth", "1234-challenge"); - await new Promise((resolve) => { - setTimeout(resolve, 100); - }); - - expect(relayAuth).toHaveBeenCalled(); - - // evaluate the event that was published - const event = relayAuth.mock.calls[0][0]; - expect(event.tagValue("relay")).toBe(relay.url); - expect(event.tagValue("challenge")).toBe("1234-challenge"); - }); -}); +}); \ No newline at end of file diff --git a/ndk/src/user/index.test.ts b/ndk/src/user/index.test.ts index ad8dc4b8..0d2ebdfd 100644 --- a/ndk/src/user/index.test.ts +++ b/ndk/src/user/index.test.ts @@ -126,9 +126,9 @@ describe("NDKUser", () => { const sub = new NDKSubscription(ndk, filter, opts); setTimeout(() => { - sub.emit("event", newEvent); - sub.emit("event", oldEvent); - sub.emit("eose"); + sub.emit("event", newEvent, undefined, sub); + sub.emit("event", oldEvent, undefined, sub); + sub.emit("eose", sub); }, 100); return sub; @@ -174,9 +174,9 @@ describe("NDKUser", () => { const sub = new NDKSubscription(ndk, filter, opts); setTimeout(() => { - sub.emit("event", newEvent); - sub.emit("event", oldEvent); - sub.emit("eose"); + sub.emit("event", newEvent, undefined, sub); + sub.emit("event", oldEvent, undefined, sub); + sub.emit("eose", sub); }, 100); return sub; @@ -212,9 +212,9 @@ describe("NDKUser", () => { const sub = new NDKSubscription(ndk, filter, opts); setTimeout(() => { - sub.emit("event", newEvent); - sub.emit("event", oldEvent); - sub.emit("eose"); + sub.emit("event", newEvent, undefined, sub); + sub.emit("event", oldEvent, undefined, sub); + sub.emit("eose", sub); }, 100); return sub; @@ -249,9 +249,9 @@ describe("NDKUser", () => { const sub = new NDKSubscription(ndk, filter, opts); setTimeout(() => { - sub.emit("event", newEvent); - sub.emit("event", oldEvent); - sub.emit("eose"); + sub.emit("event", newEvent, undefined, sub); + sub.emit("event", oldEvent, undefined, sub); + sub.emit("eose", sub); }, 100); return sub; From 9b2ea4d467854dc118564bda5ab47d355f505529 Mon Sep 17 00:00:00 2001 From: rodant Date: Mon, 4 Nov 2024 12:56:46 +0100 Subject: [PATCH 10/21] Fix compile errors. --- ndk/src/signers/index.ts | 2 +- ndk/src/signers/nip07/index.ts | 3 +- ndk/src/signers/private-key/index.ts | 7 +- package.json | 16 +- pnpm-lock.yaml | 2634 ++++++++++++++------------ 5 files changed, 1423 insertions(+), 1239 deletions(-) diff --git a/ndk/src/signers/index.ts b/ndk/src/signers/index.ts index c506c76c..db2e53f6 100644 --- a/ndk/src/signers/index.ts +++ b/ndk/src/signers/index.ts @@ -32,7 +32,7 @@ export interface NDKSigner { * Getter for the preferred relays. * @returns A promise containing a simple map of preferred relays and their read/write policies. */ - relays?(): Promise; + relays?(ndk?: NDK): Promise; /** * Determine the types of encryption (by nip) that this signer can perform. diff --git a/ndk/src/signers/nip07/index.ts b/ndk/src/signers/nip07/index.ts index 7ba8bd72..39aa4712 100644 --- a/ndk/src/signers/nip07/index.ts +++ b/ndk/src/signers/nip07/index.ts @@ -1,8 +1,9 @@ import debug from "debug"; +import { NDK } from "../../ndk/index.js"; import type { NostrEvent } from "../../events/index.js"; import { NDKUser } from "../../user/index.js"; -import { DEFAULT_ENCRYPTION_SCHEME, ENCRYPTION_SCHEMES, type NDKSigner } from "../index.js"; +import { type NDKSigner } from "../index.js"; import { NDKRelay } from "../../relay/index.js"; import { EncryptionMethod, EncryptionNip } from "../../events/encryption.js"; diff --git a/ndk/src/signers/private-key/index.ts b/ndk/src/signers/private-key/index.ts index 6ac64b05..2dc04a8a 100644 --- a/ndk/src/signers/private-key/index.ts +++ b/ndk/src/signers/private-key/index.ts @@ -1,10 +1,9 @@ import type { UnsignedEvent } from "nostr-tools"; import { generateSecretKey, getPublicKey, finalizeEvent, nip04, nip44 } from "nostr-tools"; -import { generateSecretKey, getPublicKey, finalizeEvent, nip04, nip44 } from "nostr-tools"; import type { NostrEvent } from "../../events/index.js"; import { NDKUser } from "../../user"; -import { DEFAULT_ENCRYPTION_SCHEME, ENCRYPTION_SCHEMES, type NDKSigner } from "../index.js"; +import { type NDKSigner } from "../index.js"; import { bytesToHex, hexToBytes } from "@noble/hashes/utils"; import { nip19 } from "nostr-tools"; import { EncryptionNip } from "../../events/encryption.js"; @@ -85,7 +84,7 @@ export class NDKPrivateKeySigner implements NDKSigner { const recipientHexPubKey = recipient.pubkey; if(nip == 'nip44'){ // TODO Deriving shared secret is an expensive computation, should be cached. - let conversationKey = nip44.v2.utils.getConversationKey(this.privateKey, recipientHexPubKey); + let conversationKey = nip44.v2.utils.getConversationKey(this._privateKey, recipientHexPubKey); return await nip44.v2.encrypt(value, conversationKey); } return await nip04.encrypt(this._privateKey, recipientHexPubKey, value); @@ -99,7 +98,7 @@ export class NDKPrivateKeySigner implements NDKSigner { const senderHexPubKey = sender.pubkey; if(nip == 'nip44'){ // TODO Deriving shared secret is an expensive computation, should be cached. - let conversationKey = nip44.v2.utils.getConversationKey(this.privateKey, senderHexPubKey); + let conversationKey = nip44.v2.utils.getConversationKey(this._privateKey, senderHexPubKey); return await nip44.v2.decrypt(value, conversationKey); } return await nip04.decrypt(this._privateKey, senderHexPubKey, value); diff --git a/package.json b/package.json index 6739577a..39875ff8 100755 --- a/package.json +++ b/package.json @@ -15,16 +15,16 @@ }, "devDependencies": { "@braintree/sanitize-url": "^7.1.0", - "@changesets/cli": "^2.22.0", + "@changesets/cli": "^2.27.9", "@nostr-dev-kit/eslint-config-custom": "workspace:*", "@nostr-dev-kit/tsconfig": "workspace:*", - "eslint": "^9.13.0", - "mermaid": "^10.9.1", - "prettier": "^3.0.3", - "turbo": "^1.10.14", - "typescript": "^5.5.4", - "vitepress": "^1.2.3", - "vitepress-plugin-mermaid": "^2.0.16" + "eslint": "^9.14.0", + "mermaid": "^10.9.3", + "prettier": "^3.3.3", + "turbo": "^1.13.4", + "typescript": "^5.6.3", + "vitepress": "^1.4.5", + "vitepress-plugin-mermaid": "^2.0.17" }, "packageManager": "pnpm@8.15.6", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d5615da7..2216bbc1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^7.1.0 version: 7.1.0 '@changesets/cli': - specifier: ^2.22.0 - version: 2.26.2 + specifier: ^2.27.9 + version: 2.27.9 '@nostr-dev-kit/eslint-config-custom': specifier: workspace:* version: link:packages/eslint-config-custom @@ -21,26 +21,26 @@ importers: specifier: workspace:* version: link:packages/tsconfig eslint: - specifier: ^9.13.0 - version: 9.13.0(jiti@1.21.6) + specifier: ^9.14.0 + version: 9.14.0(jiti@1.21.6) mermaid: - specifier: ^10.9.1 - version: 10.9.1 + specifier: ^10.9.3 + version: 10.9.3 prettier: - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^3.3.3 + version: 3.3.3 turbo: - specifier: ^1.10.14 - version: 1.10.14 + specifier: ^1.13.4 + version: 1.13.4 typescript: - specifier: ^5.5.4 - version: 5.5.4 + specifier: ^5.6.3 + version: 5.6.3 vitepress: - specifier: ^1.2.3 - version: 1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4) + specifier: ^1.4.5 + version: 1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3) vitepress-plugin-mermaid: - specifier: ^2.0.16 - version: 2.0.16(mermaid@10.9.1)(vitepress@1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4)) + specifier: ^2.0.17 + version: 2.0.17(mermaid@10.9.3)(vitepress@1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3)) demos: dependencies: @@ -137,16 +137,16 @@ importers: version: 1.1.9 debug: specifier: ^4.3.6 - version: 4.3.6 + version: 4.3.7 light-bolt11-decoder: specifier: ^3.2.0 version: 3.2.0 nostr-tools: specifier: ^2.7.1 - version: 2.7.1(typescript@5.5.4) + version: 2.10.1(typescript@5.6.3) tseep: specifier: ^1.2.2 - version: 1.2.2 + version: 1.3.1 typescript-lru-cache: specifier: ^2.0.0 version: 2.0.0 @@ -168,10 +168,10 @@ importers: version: 4.1.12 '@types/jest': specifier: ^29.5.5 - version: 29.5.5 + version: 29.5.14 '@types/node': specifier: ^22.6.1 - version: 22.6.1 + version: 22.8.7 esbuild: specifier: ^0.24.0 version: 0.24.0 @@ -183,28 +183,28 @@ importers: version: 1.0.6 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + version: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) jest-fetch-mock: specifier: ^3.0.3 version: 3.0.3 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(typescript@5.6.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.6.1)(typescript@5.5.4) + version: 10.9.2(@types/node@22.8.7)(typescript@5.6.3) tsd: specifier: ^0.31.2 version: 0.31.2 tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.5.4)(yaml@2.5.1) + version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(typescript@5.6.3)(yaml@2.6.0) typedoc: specifier: ^0.26.7 - version: 0.26.7(typescript@5.5.4) + version: 0.26.11(typescript@5.6.3) typedoc-plugin-rename-defaults: specifier: ^0.6.6 - version: 0.6.6(typedoc@0.26.7(typescript@5.5.4)) + version: 0.6.7(typedoc@0.26.11(typescript@5.6.3)) ndk-cache-dexie: dependencies: @@ -219,7 +219,7 @@ importers: version: 4.0.8 nostr-tools: specifier: ^2.4.0 - version: 2.4.0(typescript@5.5.4) + version: 2.4.0(typescript@5.6.3) typescript-lru-cache: specifier: ^2.0.0 version: 2.0.0 @@ -250,16 +250,16 @@ importers: version: 3.3.3 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@22.6.1))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.1)(jest@29.7.0(@types/node@22.6.1))(typescript@5.6.3) tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.5.4)(yaml@2.5.1) + version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.6.3)(yaml@2.6.0) typedoc: specifier: ^0.26.7 - version: 0.26.7(typescript@5.5.4) + version: 0.26.7(typescript@5.6.3) typedoc-plugin-markdown: specifier: ^4.2.8 - version: 4.2.9(typedoc@0.26.7(typescript@5.5.4)) + version: 4.2.9(typedoc@0.26.7(typescript@5.6.3)) ndk-cache-nostr: dependencies: @@ -367,7 +367,7 @@ importers: version: link:../packages/tsconfig tsup: specifier: ^7.2.0 - version: 7.2.0(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4))(typescript@5.5.4) + version: 7.2.0(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))(typescript@5.6.3) ndk-svelte-components: dependencies: @@ -376,7 +376,7 @@ importers: version: link:../ndk '@sveltejs/vite-plugin-svelte': specifier: ^3.1.2 - version: 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) classnames: specifier: ^2.5.1 version: 2.5.1 @@ -397,7 +397,7 @@ importers: version: 1.1.9(marked@14.1.2) nostr-tools: specifier: ^2.7.2 - version: 2.7.2(typescript@5.5.4) + version: 2.7.2(typescript@5.6.3) ramda: specifier: ^0.29.1 version: 0.29.1 @@ -415,7 +415,7 @@ importers: version: 0.4.1(svelte@4.2.19) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4) + version: 5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3) svelte-time: specifier: ^0.9.0 version: 0.9.0 @@ -461,7 +461,7 @@ importers: version: 7.6.20(svelte@4.2.19) '@storybook/sveltekit': specifier: ^7.6.20 - version: 7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1)) + version: 7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -470,13 +470,13 @@ importers: version: 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sveltejs/adapter-auto': specifier: ^2.1.1 - version: 2.1.1(@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))) + version: 2.1.1(@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))) '@sveltejs/kit': specifier: ^2.6.4 - version: 2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + version: 2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) '@sveltejs/package': specifier: ^2.3.5 - version: 2.3.5(svelte@4.2.19)(typescript@5.5.4) + version: 2.3.5(svelte@4.2.19)(typescript@5.6.3) '@types/ramda': specifier: ^0.29.12 version: 0.29.12 @@ -485,16 +485,16 @@ importers: version: 2.13.0 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.5.4))(eslint@8.4.1)(typescript@5.5.4) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.6.3))(eslint@8.4.1)(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^6.21.0 - version: 6.21.0(eslint@8.4.1)(typescript@5.5.4) + version: 6.21.0(eslint@8.4.1)(typescript@5.6.3) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) eslint-plugin-storybook: specifier: 0.6.14 - version: 0.6.14(eslint@8.4.1)(typescript@5.5.4) + version: 0.6.14(eslint@8.4.1)(typescript@5.6.3) mdsvex: specifier: ^0.12.3 version: 0.12.3(svelte@4.2.19) @@ -524,16 +524,16 @@ importers: version: 4.2.19 svelte-check: specifier: ^4.0.4 - version: 4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.5.4) + version: 4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.6.3) tailwindcss: specifier: ^3.4.12 - version: 3.4.13(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + version: 3.4.13(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) tslib: specifier: ^2.7.0 version: 2.7.0 vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@22.6.1) + version: 5.4.8(@types/node@22.8.7) ndk-wallet: dependencies: @@ -597,19 +597,19 @@ importers: dependencies: '@typescript-eslint/eslint-plugin': specifier: ^6.7.2 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2))(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2))(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) '@typescript-eslint/parser': specifier: ^6.7.2 - version: 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) + version: 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) eslint-config-prettier: specifier: ^9.0.0 - version: 9.0.0(eslint@9.13.0(jiti@1.21.6)) + version: 9.0.0(eslint@9.14.0(jiti@1.21.6)) eslint-config-turbo: specifier: latest - version: 2.2.3(eslint@9.13.0(jiti@1.21.6)) + version: 2.2.3(eslint@9.14.0(jiti@1.21.6)) eslint-plugin-svelte: specifier: ^2.33.2 - version: 2.33.2(eslint@9.13.0(jiti@1.21.6))(svelte@4.2.19)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2)) + version: 2.33.2(eslint@9.14.0(jiti@1.21.6))(svelte@4.2.19)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2)) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -618,13 +618,13 @@ importers: devDependencies: '@tailwindcss/typography': specifier: ^0.5.9 - version: 0.5.10(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4))) + version: 0.5.10(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))) daisyui: specifier: ^3.7.3 - version: 3.7.7(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + version: 3.7.7(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) tailwindcss: specifier: ^3.3.3 - version: 3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + version: 3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) packages/tsconfig: {} @@ -638,8 +638,14 @@ packages: peerDependencies: search-insights: '>= 1 < 3' - '@algolia/autocomplete-preset-algolia@1.9.3': - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + '@algolia/autocomplete-preset-algolia@1.17.6': + resolution: {integrity: sha512-Cvg5JENdSCMuClwhJ1ON1/jSuojaYMiUW2KePm18IkdCzPJj/NXojaOxw58RFtQFpJgfVW8h2E8mEoDtLlMdeA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.17.6': + resolution: {integrity: sha512-aq/3V9E00Tw2GC/PqgyPGXtqJUlVc17v4cn1EUhSc+O/4zd04Uwb3UmPm8KDaYQQOrkt1lwvCj2vG2wRE5IKhw==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' @@ -650,68 +656,57 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/cache-browser-local-storage@4.23.3': - resolution: {integrity: sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==} - - '@algolia/cache-common@4.23.3': - resolution: {integrity: sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==} - - '@algolia/cache-common@4.24.0': - resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} - - '@algolia/cache-in-memory@4.23.3': - resolution: {integrity: sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==} - - '@algolia/client-account@4.23.3': - resolution: {integrity: sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==} + '@algolia/client-abtesting@5.12.0': + resolution: {integrity: sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==} + engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@4.23.3': - resolution: {integrity: sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==} + '@algolia/client-analytics@5.12.0': + resolution: {integrity: sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==} + engines: {node: '>= 14.0.0'} - '@algolia/client-common@4.23.3': - resolution: {integrity: sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==} + '@algolia/client-common@5.12.0': + resolution: {integrity: sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==} + engines: {node: '>= 14.0.0'} - '@algolia/client-common@4.24.0': - resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} + '@algolia/client-insights@5.12.0': + resolution: {integrity: sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==} + engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@4.23.3': - resolution: {integrity: sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==} + '@algolia/client-personalization@5.12.0': + resolution: {integrity: sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==} + engines: {node: '>= 14.0.0'} - '@algolia/client-search@4.23.3': - resolution: {integrity: sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==} + '@algolia/client-query-suggestions@5.12.0': + resolution: {integrity: sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==} + engines: {node: '>= 14.0.0'} - '@algolia/client-search@4.24.0': - resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} + '@algolia/client-search@5.12.0': + resolution: {integrity: sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==} + engines: {node: '>= 14.0.0'} - '@algolia/logger-common@4.23.3': - resolution: {integrity: sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==} + '@algolia/ingestion@1.12.0': + resolution: {integrity: sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==} + engines: {node: '>= 14.0.0'} - '@algolia/logger-common@4.24.0': - resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} + '@algolia/monitoring@1.12.0': + resolution: {integrity: sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==} + engines: {node: '>= 14.0.0'} - '@algolia/logger-console@4.23.3': - resolution: {integrity: sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==} + '@algolia/recommend@5.12.0': + resolution: {integrity: sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==} + engines: {node: '>= 14.0.0'} - '@algolia/recommend@4.23.3': - resolution: {integrity: sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==} + '@algolia/requester-browser-xhr@5.12.0': + resolution: {integrity: sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==} + engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@4.23.3': - resolution: {integrity: sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==} + '@algolia/requester-fetch@5.12.0': + resolution: {integrity: sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==} + engines: {node: '>= 14.0.0'} - '@algolia/requester-common@4.23.3': - resolution: {integrity: sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==} - - '@algolia/requester-common@4.24.0': - resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} - - '@algolia/requester-node-http@4.23.3': - resolution: {integrity: sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==} - - '@algolia/transporter@4.23.3': - resolution: {integrity: sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==} - - '@algolia/transporter@4.24.0': - resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} + '@algolia/requester-node-http@5.12.0': + resolution: {integrity: sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==} + engines: {node: '>= 14.0.0'} '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} @@ -878,10 +873,18 @@ packages: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.24.8': resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} @@ -903,8 +906,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -1435,6 +1438,10 @@ packages: resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.0': resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} @@ -1455,6 +1462,10 @@ packages: resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1470,57 +1481,60 @@ packages: '@cashu/crypto@0.2.7': resolution: {integrity: sha512-1aaDfUjiHNXoJqg8nW+341TLWV9W28DsVNXJUKcHL0yAmwLs5+56SSnb8LLDJzPamLVoYL0U0bda91klAzptig==} - '@changesets/apply-release-plan@6.1.4': - resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} + '@changesets/apply-release-plan@7.0.5': + resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} - '@changesets/assemble-release-plan@5.2.4': - resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} + '@changesets/assemble-release-plan@6.0.4': + resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} - '@changesets/changelog-git@0.1.14': - resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + '@changesets/changelog-git@0.2.0': + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - '@changesets/cli@2.26.2': - resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} + '@changesets/cli@2.27.9': + resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} hasBin: true - '@changesets/config@2.3.1': - resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} + '@changesets/config@3.0.3': + resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} - '@changesets/errors@0.1.4': - resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@1.3.6': - resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} + '@changesets/get-dependents-graph@2.1.2': + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} - '@changesets/get-release-plan@3.0.17': - resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} + '@changesets/get-release-plan@4.0.4': + resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} - '@changesets/get-version-range-type@0.3.2': - resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - '@changesets/git@2.0.0': - resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + '@changesets/git@3.0.1': + resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} - '@changesets/logger@0.0.5': - resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - '@changesets/parse@0.3.16': - resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + '@changesets/parse@0.4.0': + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} - '@changesets/pre@1.0.14': - resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + '@changesets/pre@2.0.1': + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} - '@changesets/read@0.5.9': - resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + '@changesets/read@0.6.1': + resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} + + '@changesets/should-skip-package@0.1.1': + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} '@changesets/types@4.1.0': resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - '@changesets/types@5.2.1': - resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} + '@changesets/types@6.0.0': + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} - '@changesets/write@0.2.3': - resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + '@changesets/write@0.3.2': + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -1534,14 +1548,14 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - '@docsearch/css@3.6.0': - resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} + '@docsearch/css@3.6.3': + resolution: {integrity: sha512-3uvbg8E7rhqE1C4oBAK3tGlS2qfhi9zpfZgH/yjDPF73vd9B41urVIKujF4rczcF4E3qs34SedhehiDJ4UdNBA==} - '@docsearch/js@3.6.0': - resolution: {integrity: sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==} + '@docsearch/js@3.6.3': + resolution: {integrity: sha512-2mBFomaN6VijyQQGwieERDu9GeE0hlv9TQRZBTOYsPQW7/vqtd4hnHEkbBbaBRiS4PYcy+UhikbMuDExJs63UA==} - '@docsearch/react@3.6.0': - resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} + '@docsearch/react@3.6.3': + resolution: {integrity: sha512-2munr4uBuZq1PG+Ge+F+ldIdxb3Wi8OmEIv2tQQb4RvEvvph+xtQkxwHzVIEnt5s+HecwucuXwB+3JhcZboFLg==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -2288,16 +2302,16 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.13.0': - resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} + '@eslint/js@9.14.0': + resolution: {integrity: sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.1': - resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} + '@eslint/plugin-kit@0.2.2': + resolution: {integrity: sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fal-works/esbuild-plugin-global-externals@2.1.2': @@ -2347,6 +2361,10 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} + '@humanwhocodes/retry@0.4.0': + resolution: {integrity: sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==} + engines: {node: '>=18.18'} + '@ioredis/commands@1.2.0': resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} @@ -2850,6 +2868,11 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.24.4': + resolution: {integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.22.4': resolution: {integrity: sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==} cpu: [arm64] @@ -2860,6 +2883,11 @@ packages: cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.24.4': + resolution: {integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.22.4': resolution: {integrity: sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==} cpu: [arm64] @@ -2870,6 +2898,11 @@ packages: cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.24.4': + resolution: {integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.22.4': resolution: {integrity: sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==} cpu: [x64] @@ -2880,6 +2913,21 @@ packages: cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.24.4': + resolution: {integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.24.4': + resolution: {integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.24.4': + resolution: {integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.22.4': resolution: {integrity: sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==} cpu: [arm] @@ -2890,6 +2938,11 @@ packages: cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.24.4': + resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.22.4': resolution: {integrity: sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==} cpu: [arm] @@ -2900,6 +2953,11 @@ packages: cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.24.4': + resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.22.4': resolution: {integrity: sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==} cpu: [arm64] @@ -2910,6 +2968,11 @@ packages: cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.24.4': + resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.22.4': resolution: {integrity: sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==} cpu: [arm64] @@ -2920,6 +2983,11 @@ packages: cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.24.4': + resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': resolution: {integrity: sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==} cpu: [ppc64] @@ -2930,6 +2998,11 @@ packages: cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': + resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.22.4': resolution: {integrity: sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==} cpu: [riscv64] @@ -2940,6 +3013,11 @@ packages: cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.24.4': + resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.22.4': resolution: {integrity: sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==} cpu: [s390x] @@ -2950,6 +3028,11 @@ packages: cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.24.4': + resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.22.4': resolution: {integrity: sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==} cpu: [x64] @@ -2960,6 +3043,11 @@ packages: cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.24.4': + resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.22.4': resolution: {integrity: sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==} cpu: [x64] @@ -2970,6 +3058,11 @@ packages: cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.24.4': + resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.22.4': resolution: {integrity: sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==} cpu: [arm64] @@ -2980,6 +3073,11 @@ packages: cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.24.4': + resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.22.4': resolution: {integrity: sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==} cpu: [ia32] @@ -2990,6 +3088,11 @@ packages: cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.24.4': + resolution: {integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.22.4': resolution: {integrity: sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==} cpu: [x64] @@ -3000,6 +3103,11 @@ packages: cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.24.4': + resolution: {integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==} + cpu: [x64] + os: [win32] + '@scure/base@1.1.1': resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} @@ -3021,30 +3129,39 @@ packages: '@scure/bip39@1.4.0': resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} - '@shikijs/core@1.10.0': - resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==} - '@shikijs/core@1.18.0': resolution: {integrity: sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ==} - '@shikijs/core@1.7.0': - resolution: {integrity: sha512-O6j27b7dGmJbR3mjwh/aHH8Ld+GQvA0OQsNO43wKWnqbAae3AYXrhFyScHGX8hXZD6vX2ngjzDFkZY5srtIJbQ==} + '@shikijs/core@1.22.2': + resolution: {integrity: sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==} '@shikijs/engine-javascript@1.18.0': resolution: {integrity: sha512-qoP/aO/ATNwYAUw1YMdaip/YVEstMZEgrwhePm83Ll9OeQPuxDZd48szZR8oSQNQBT8m8UlWxZv8EA3lFuyI5A==} + '@shikijs/engine-javascript@1.22.2': + resolution: {integrity: sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==} + '@shikijs/engine-oniguruma@1.18.0': resolution: {integrity: sha512-B9u0ZKI/cud+TcmF8Chyh+R4V5qQVvyDOqXC2l2a4x73PBSBc6sZ0JRAX3eqyJswqir6ktwApUUGBYePdKnMJg==} - '@shikijs/transformers@1.7.0': - resolution: {integrity: sha512-QX3TP+CS4yYLt4X4Dk7wT0MsC7yweTYHMAAKY+ay+uuR9yRdFae/h+hivny2O+YixJHfZl57xtiZfWSrHdyVhQ==} + '@shikijs/engine-oniguruma@1.22.2': + resolution: {integrity: sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==} + + '@shikijs/transformers@1.22.2': + resolution: {integrity: sha512-8f78OiBa6pZDoZ53lYTmuvpFPlWtevn23bzG+azpPVvZg7ITax57o/K3TC91eYL3OMJOO0onPbgnQyZjRos8XQ==} '@shikijs/types@1.18.0': resolution: {integrity: sha512-O9N36UEaGGrxv1yUrN2nye7gDLG5Uq0/c1LyfmxsvzNPqlHzWo9DI0A4+fhW2y3bGKuQu/fwS7EPdKJJCowcVA==} + '@shikijs/types@1.22.2': + resolution: {integrity: sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==} + '@shikijs/vscode-textmate@9.2.2': resolution: {integrity: sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==} + '@shikijs/vscode-textmate@9.3.0': + resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -3424,9 +3541,6 @@ packages: '@types/http-errors@2.0.2': resolution: {integrity: sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==} - '@types/is-ci@3.0.0': - resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} - '@types/istanbul-lib-coverage@2.0.4': resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -3439,6 +3553,9 @@ packages: '@types/jest@29.5.13': resolution: {integrity: sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==} + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + '@types/jest@29.5.5': resolution: {integrity: sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==} @@ -3451,8 +3568,8 @@ packages: '@types/lodash@4.14.199': resolution: {integrity: sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==} - '@types/markdown-it@14.1.1': - resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==} + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} '@types/marked@5.0.2': resolution: {integrity: sha512-OucS4KMHhFzhz27KxmWg7J+kIYqyqoW5kdIEI319hqARQQUTqhao3M/F+uFnDXD0Rg72iDDZxZNxq5gvctmLlg==} @@ -3460,6 +3577,9 @@ packages: '@types/mdast@3.0.12': resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==} + '@types/mdast@3.0.15': + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -3478,9 +3598,6 @@ packages: '@types/mime@3.0.1': resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} - '@types/minimist@1.2.2': - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} @@ -3502,12 +3619,15 @@ packages: '@types/node@18.17.19': resolution: {integrity: sha512-+pMhShR3Or5GR0/sp4Da7FnhVmTalWm81M6MkEldbwjETSaPalw138Z4KdpQaistvqQxLB7Cy4xwYdxpbSOs9Q==} - '@types/node@18.19.50': - resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} + '@types/node@18.19.64': + resolution: {integrity: sha512-955mDqvO2vFf/oL7V3WiUtiz+BugyX8uVbaT2H8oj3+8dRyH2FLiNdowe7eNqRM7IOIZvzDH76EoAT+gwm6aIQ==} '@types/node@22.6.1': resolution: {integrity: sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==} + '@types/node@22.8.7': + resolution: {integrity: sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3553,9 +3673,6 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - '@types/unist@2.0.8': - resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} - '@types/unist@3.0.0': resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} @@ -3665,71 +3782,69 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitejs/plugin-vue@5.0.5': - resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} + '@vitejs/plugin-vue@5.1.4': + resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 - '@vue/compiler-core@3.4.27': - resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} + '@vue/compiler-core@3.5.12': + resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} - '@vue/compiler-dom@3.4.27': - resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} + '@vue/compiler-dom@3.5.12': + resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} - '@vue/compiler-sfc@3.4.27': - resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} + '@vue/compiler-sfc@3.5.12': + resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} - '@vue/compiler-ssr@3.4.27': - resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} + '@vue/compiler-ssr@3.5.12': + resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} - '@vue/devtools-api@7.2.1': - resolution: {integrity: sha512-6oNCtyFOrNdqm6GUkFujsCgFlpbsHLnZqq7edeM/+cxAbMyCWvsaCsIMUaz7AiluKLccCGEM8fhOsjaKgBvb7g==} + '@vue/devtools-api@7.6.2': + resolution: {integrity: sha512-NCT0ujqlwAhoFvCsAG7G5qS8w/A/dhvFSt2BhmNxyqgpYDrf9CG1zYyWLQkE3dsZ+5lCT6ULUic2VKNaE07Vzg==} - '@vue/devtools-kit@7.2.1': - resolution: {integrity: sha512-Wak/fin1X0Q8LLIfCAHBrdaaB+R6IdpSXsDByPHbQ3BmkCP0/cIo/oEGp9i0U2+gEqD4L3V9RDjNf1S34DTzQQ==} - peerDependencies: - vue: ^3.0.0 + '@vue/devtools-kit@7.6.2': + resolution: {integrity: sha512-k61BxHRmcTtIQZFouF9QWt9nCCNtSdw12lhg8VNtHq5/XOBGD+ewiK27a40UJ8UPYoCJvi80hbvbYr5E/Zeu1g==} - '@vue/devtools-shared@7.2.1': - resolution: {integrity: sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA==} + '@vue/devtools-shared@7.6.2': + resolution: {integrity: sha512-lcjyJ7hCC0W0kNwnCGMLVTMvDLoZgjcq9BvboPgS+6jQyDul7fpzRSKTGtGhCHoxrDox7qBAKGbAl2Rcf7GE1A==} - '@vue/reactivity@3.4.27': - resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==} + '@vue/reactivity@3.5.12': + resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} - '@vue/runtime-core@3.4.27': - resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==} + '@vue/runtime-core@3.5.12': + resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} - '@vue/runtime-dom@3.4.27': - resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==} + '@vue/runtime-dom@3.5.12': + resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} - '@vue/server-renderer@3.4.27': - resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} + '@vue/server-renderer@3.5.12': + resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} peerDependencies: - vue: 3.4.27 + vue: 3.5.12 - '@vue/shared@3.4.27': - resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + '@vue/shared@3.5.12': + resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} - '@vueuse/core@10.11.0': - resolution: {integrity: sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==} + '@vueuse/core@11.2.0': + resolution: {integrity: sha512-JIUwRcOqOWzcdu1dGlfW04kaJhW3EXnnjJJfLTtddJanymTL7lF1C0+dVVZ/siLfc73mWn+cGP1PE1PKPruRSA==} - '@vueuse/integrations@10.11.0': - resolution: {integrity: sha512-Pp6MtWEIr+NDOccWd8j59Kpjy5YDXogXI61Kb1JxvSfVBO8NzFQkmrKmSZz47i+ZqHnIzxaT38L358yDHTncZg==} + '@vueuse/integrations@11.2.0': + resolution: {integrity: sha512-zGXz3dsxNHKwiD9jPMvR3DAxQEOV6VWIEYTGVSB9PNpk4pTWR+pXrHz9gvXWcP2sTk3W2oqqS6KwWDdntUvNVA==} peerDependencies: async-validator: ^4 axios: ^1 - change-case: ^4 - drauu: ^0.3 + change-case: ^5 + drauu: ^0.4 focus-trap: ^7 - fuse.js: ^6 + fuse.js: ^7 idb-keyval: ^6 - jwt-decode: ^3 + jwt-decode: ^4 nprogress: ^0.2 qrcode: ^1.5 sortablejs: ^1 - universal-cookie: ^6 + universal-cookie: ^7 peerDependenciesMeta: async-validator: optional: true @@ -3756,11 +3871,11 @@ packages: universal-cookie: optional: true - '@vueuse/metadata@10.11.0': - resolution: {integrity: sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==} + '@vueuse/metadata@11.2.0': + resolution: {integrity: sha512-L0ZmtRmNx+ZW95DmrgD6vn484gSpVeRbgpWevFKXwqqQxW9hnSi2Ppuh2BzMjnbv4aJRiIw8tQatXT9uOB23dQ==} - '@vueuse/shared@10.11.0': - resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==} + '@vueuse/shared@11.2.0': + resolution: {integrity: sha512-VxFjie0EanOudYSgMErxXfq6fo8vhr5ICI+BuE3I9FnX7ePllEsVrRQ7O6Q1TLgApeLuPKcHQxAXpP+KnlrJsg==} '@webbtc/webln-types@3.0.0': resolution: {integrity: sha512-aXfTHLKz5lysd+6xTeWl+qHNh/p3qVYbeLo+yDN5cUDmhie2ZoGvkppfWxzbGkcFBzb6dJyQ2/i2cbmDHas+zQ==} @@ -3826,8 +3941,9 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - algoliasearch@4.23.3: - resolution: {integrity: sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==} + algoliasearch@5.12.0: + resolution: {integrity: sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==} + engines: {node: '>= 14.0.0'} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -3903,10 +4019,6 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.2: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} @@ -4015,6 +4127,9 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + birpc@0.2.19: + resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -4040,9 +4155,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - breakword@1.0.6: - resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} - browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} @@ -4185,8 +4297,8 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} cjs-module-lexer@1.2.3: @@ -4211,9 +4323,6 @@ packages: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} engines: {node: 10.* || >= 12.*} - cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -4329,6 +4438,10 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + core-js-compat@3.38.1: resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} @@ -4386,19 +4499,6 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - csv-generate@3.4.3: - resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} - - csv-parse@4.16.3: - resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} - - csv-stringify@5.6.5: - resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} - - csv@5.5.3: - resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} - engines: {node: '>= 0.1.90'} - cytoscape-cose-bilkent@4.1.0: resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} peerDependencies: @@ -4409,8 +4509,8 @@ packages: peerDependencies: cytoscape: ^3.2.0 - cytoscape@3.30.1: - resolution: {integrity: sha512-TRJc3HbBPkHd50u9YfJh2FxD1lDLZ+JXnJoyBn5LkncoeuT7fapO/Hq/Ed8TdFclaKshzInge2i30bg7VKeoPQ==} + cytoscape@3.30.3: + resolution: {integrity: sha512-HncJ9gGJbVtw7YXtIs3+6YAFSSiKsom0amWc33Z7QbylbY2JGMrA0yz4EwrdTScZxnwclXeEZHzO5pxoy0ZE4g==} engines: {node: '>=0.10'} d3-array@2.12.1: @@ -4562,9 +4662,6 @@ packages: resolution: {integrity: sha512-2/nFdW/6R9MMnR8tTm07jPVyPaZwpUSkVsFAADb7Oq8N2Ynbls57laDdNqxTCUmn0QvcZi01TKl8zQbAwRfw1w==} engines: {node: '>=16.9.0'} - dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} - dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} @@ -4594,15 +4691,6 @@ packages: supports-color: optional: true - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -4732,8 +4820,8 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} dir-glob@3.0.1: @@ -4870,9 +4958,6 @@ packages: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -4993,8 +5078,8 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.1.0: - resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-utils@3.0.0: @@ -5011,8 +5096,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.1.0: - resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@8.4.1: @@ -5021,8 +5106,8 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true - eslint@9.13.0: - resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} + eslint@9.14.0: + resolution: {integrity: sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -5040,8 +5125,8 @@ packages: esm-loader-typescript@1.0.6: resolution: {integrity: sha512-t+NqYYMAiZa+Ys/QDGzCv0vnKFPYZ8N6JIdqJNeWpNItEYFwZB6itVYzf3SzDMgqPxX5ZmPoOU9vv2CZg2JccA==} - espree@10.2.0: - resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.2.0: @@ -5172,6 +5257,14 @@ packages: picomatch: optional: true + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-retry@5.0.6: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} @@ -5221,9 +5314,6 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5239,8 +5329,8 @@ packages: resolution: {integrity: sha512-hEa5n0dta1RcaDwJDWbnyelw07PK7+Vx0f9kDht28JOt2hXgKdKGaT3wM45euWV2DxOXtzDSTaUgGSD/FPvC2Q==} engines: {node: '>=0.4.0'} - focus-trap@7.5.4: - resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + focus-trap@7.6.0: + resolution: {integrity: sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==} for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -5249,6 +5339,10 @@ packages: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -5271,6 +5365,10 @@ packages: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -5417,9 +5515,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -5639,10 +5734,6 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} @@ -5782,6 +5873,10 @@ packages: is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -6113,10 +6208,6 @@ packages: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} @@ -6214,6 +6305,9 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -6348,10 +6442,6 @@ packages: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} - meow@6.1.1: - resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} - engines: {node: '>=8'} - meow@9.0.0: resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} engines: {node: '>=10'} @@ -6366,8 +6456,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@10.9.1: - resolution: {integrity: sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA==} + mermaid@10.9.3: + resolution: {integrity: sha512-V80X1isSEvAewIL3xhmz/rVmc27CVljcsbWxkxlWJWY/1kQa4XOABqpDl2qQLGKzpKm6WbTfUEKImBlUfFYArw==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -6544,8 +6634,8 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minisearch@6.3.0: - resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} + minisearch@7.1.0: + resolution: {integrity: sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==} minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -6554,10 +6644,6 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mixme@0.5.9: - resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} - engines: {node: '>= 8.0.0'} - mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -6666,24 +6752,24 @@ packages: typescript: optional: true - nostr-tools@2.4.0: - resolution: {integrity: sha512-xQC7XdGeh0gLyprcKhvx5lwr7OQ+ZOiQ9C6GpzlVAj+EBv+AiN8kySb57t3uJoG1HK15oT9jf++MmQLwhp1xNQ==} + nostr-tools@2.10.1: + resolution: {integrity: sha512-fnAxLi92UgyMAEw4fMEhDKzH53uBJ0WkkVPTNfX0b3bspeWWn0n5tDZtKRJbvW0wAGOPmU6LYWi/IKPOsq3p2Q==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: typescript: optional: true - nostr-tools@2.5.2: - resolution: {integrity: sha512-Ls2FKh694eudBye6q89yJ5JhXjQle1MWp1yD2sBZ5j9M3IOBEW8ia9IED5W6daSAjlT/Z/pV77yTkdF45c1Rbg==} + nostr-tools@2.4.0: + resolution: {integrity: sha512-xQC7XdGeh0gLyprcKhvx5lwr7OQ+ZOiQ9C6GpzlVAj+EBv+AiN8kySb57t3uJoG1HK15oT9jf++MmQLwhp1xNQ==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: typescript: optional: true - nostr-tools@2.7.1: - resolution: {integrity: sha512-4qAvlHSqBAA8lQMwRWE6dalSNdQT77Xut9lPiJZgEcb9RAlR69wR2+KVBAgnZVaabVYH7FJ7gOQXLw/jQBAYBg==} + nostr-tools@2.5.2: + resolution: {integrity: sha512-Ls2FKh694eudBye6q89yJ5JhXjQle1MWp1yD2sBZ5j9M3IOBEW8ia9IED5W6daSAjlT/Z/pV77yTkdF45c1Rbg==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: @@ -6819,8 +6905,11 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.2: + resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -6913,6 +7002,9 @@ packages: picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -7049,12 +7141,8 @@ packages: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} - preact@10.22.0: - resolution: {integrity: sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==} - - preferred-pm@3.1.2: - resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} - engines: {node: '>=10'} + preact@10.24.3: + resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -7071,11 +7159,6 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} - engines: {node: '>=14'} - hasBin: true - prettier@3.3.3: resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} @@ -7300,11 +7383,14 @@ packages: regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regex@4.3.2: - resolution: {integrity: sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==} + regex@4.4.0: + resolution: {integrity: sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==} regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} @@ -7341,9 +7427,6 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - requireindex@1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} engines: {node: '>=0.10.5'} @@ -7376,8 +7459,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} @@ -7417,6 +7500,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.24.4: + resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -7481,9 +7569,6 @@ packages: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-cookie-parser@2.7.0: resolution: {integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==} @@ -7517,14 +7602,11 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - shiki@1.10.0: - resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==} - shiki@1.18.0: resolution: {integrity: sha512-8jo7tOXr96h9PBQmOHVrltnETn1honZZY76YA79MHheGQg55jBvbm9dtU+MI5pjC5NJCFuA6rvVTLVeSW5cE4A==} - shiki@1.7.0: - resolution: {integrity: sha512-H5pMn4JA7ayx8H0qOz1k2qANq6mZVCMl1gKLK6kWIrv1s2Ial4EmD4s4jE8QB5Dw03d/oCQUxc24sotuyR5byA==} + shiki@1.22.2: + resolution: {integrity: sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==} side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -7547,11 +7629,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - smartwrap@2.0.2: - resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} - engines: {node: '>=6'} - hasBin: true - sorcery@0.11.0: resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} hasBin: true @@ -7560,10 +7637,6 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -7594,14 +7667,14 @@ packages: spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.15: - resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} @@ -7635,9 +7708,6 @@ packages: stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - stream-transform@2.1.3: - resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} - string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -7701,8 +7771,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - stylis@4.3.2: - resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} + stylis@4.3.4: + resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} sucrase@3.34.0: resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} @@ -7714,6 +7784,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -7891,6 +7965,13 @@ packages: tiny-invariant@1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinyglobby@0.2.6: resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} engines: {node: '>=12.0.0'} @@ -8067,8 +8148,8 @@ packages: tseep@1.1.1: resolution: {integrity: sha512-w2MjaqNWGDeliT5/W+/lhhnR0URiVwXXsXbkAZjQVywrOpdKhQAOL1ycyHfNOV1QBjouC7FawNmJePet1sGesw==} - tseep@1.2.2: - resolution: {integrity: sha512-GgPFuNx+08UaYBYmJQmuI86ykYa2PUUtfXAYb4MLRHGunSCp8k9N+dbsR4PK1yk4/zV9q4e4PrNg8ymXqGYaYA==} + tseep@1.3.1: + resolution: {integrity: sha512-ZPtfk1tQnZVyr7BPtbJ93qaAh2lZuIOpTMjhrYa4XctT8xe7t4SAW9LIxrySDuYMsfNNayE51E/WNGrNVgVicQ==} tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -8130,49 +8211,63 @@ packages: typescript: optional: true + tsup@8.3.5: + resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tty-table@4.2.1: - resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} - engines: {node: '>=8.0.0'} - hasBin: true - - turbo-darwin-64@1.10.14: - resolution: {integrity: sha512-I8RtFk1b9UILAExPdG/XRgGQz95nmXPE7OiGb6ytjtNIR5/UZBS/xVX/7HYpCdmfriKdVwBKhalCoV4oDvAGEg==} + turbo-darwin-64@1.13.4: + resolution: {integrity: sha512-A0eKd73R7CGnRinTiS7txkMElg+R5rKFp9HV7baDiEL4xTG1FIg/56Vm7A5RVgg8UNgG2qNnrfatJtb+dRmNdw==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@1.10.14: - resolution: {integrity: sha512-KAdUWryJi/XX7OD0alOuOa0aJ5TLyd4DNIYkHPHYcM6/d7YAovYvxRNwmx9iv6Vx6IkzTnLeTiUB8zy69QkG9Q==} + turbo-darwin-arm64@1.13.4: + resolution: {integrity: sha512-eG769Q0NF6/Vyjsr3mKCnkG/eW6dKMBZk6dxWOdrHfrg6QgfkBUk0WUUujzdtVPiUIvsh4l46vQrNVd9EOtbyA==} cpu: [arm64] os: [darwin] - turbo-linux-64@1.10.14: - resolution: {integrity: sha512-BOBzoREC2u4Vgpap/WDxM6wETVqVMRcM8OZw4hWzqCj2bqbQ6L0wxs1LCLWVrghQf93JBQtIGAdFFLyCSBXjWQ==} + turbo-linux-64@1.13.4: + resolution: {integrity: sha512-Bq0JphDeNw3XEi+Xb/e4xoKhs1DHN7OoLVUbTIQz+gazYjigVZvtwCvgrZI7eW9Xo1eOXM2zw2u1DGLLUfmGkQ==} cpu: [x64] os: [linux] - turbo-linux-arm64@1.10.14: - resolution: {integrity: sha512-D8T6XxoTdN5D4V5qE2VZG+/lbZX/89BkAEHzXcsSUTRjrwfMepT3d2z8aT6hxv4yu8EDdooZq/2Bn/vjMI32xw==} + turbo-linux-arm64@1.13.4: + resolution: {integrity: sha512-BJcXw1DDiHO/okYbaNdcWN6szjXyHWx9d460v6fCHY65G8CyqGU3y2uUTPK89o8lq/b2C8NK0yZD+Vp0f9VoIg==} cpu: [arm64] os: [linux] - turbo-windows-64@1.10.14: - resolution: {integrity: sha512-zKNS3c1w4i6432N0cexZ20r/aIhV62g69opUn82FLVs/zk3Ie0GVkSB6h0rqIvMalCp7enIR87LkPSDGz9K4UA==} + turbo-windows-64@1.13.4: + resolution: {integrity: sha512-OFFhXHOFLN7A78vD/dlVuuSSVEB3s9ZBj18Tm1hk3aW1HTWTuAw0ReN6ZNlVObZUHvGy8d57OAGGxf2bT3etQw==} cpu: [x64] os: [win32] - turbo-windows-arm64@1.10.14: - resolution: {integrity: sha512-rkBwrTPTxNSOUF7of8eVvvM+BkfkhA2OvpHM94if8tVsU+khrjglilp8MTVPHlyS9byfemPAmFN90oRIPB05BA==} + turbo-windows-arm64@1.13.4: + resolution: {integrity: sha512-u5A+VOKHswJJmJ8o8rcilBfU5U3Y1TTAfP9wX8bFh8teYF1ghP0EhtMRLjhtp6RPa+XCxHHVA2CiC3gbh5eg5g==} cpu: [arm64] os: [win32] - turbo@1.10.14: - resolution: {integrity: sha512-hr9wDNYcsee+vLkCDIm8qTtwhJ6+UAMJc3nIY6+PNgUTtXcQgHxCq8BGoL7gbABvNWv76CNbK5qL4Lp9G3ZYRA==} + turbo@1.13.4: + resolution: {integrity: sha512-1q7+9UJABuBAHrcC4Sxp5lOqYS5mvxRrwa33wpIyM18hlOCpRD/fTJNxZ0vhbMcJmz15o9kkVm743mPn7p6jpQ==} hasBin: true type-check@0.4.0: @@ -8183,10 +8278,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} @@ -8252,11 +8343,18 @@ packages: peerDependencies: typedoc: 0.26.x - typedoc-plugin-rename-defaults@0.6.6: - resolution: {integrity: sha512-8TCDrxMG8cR0IRhMZbxMCXlmQrEwFFH0she4eHsaUGd1TPfrkk8GLO4n2qlSISd66OtT28e17ysiVZPbQnLGMg==} + typedoc-plugin-rename-defaults@0.6.7: + resolution: {integrity: sha512-b+j0qQCdE69IUP6ZJgS6zonG59AcaKM8B8zdNlj1jnv6XefDLkIWdFxXfS3KhFOpVzW22pNCfdOCCym9ryS3wA==} peerDependencies: typedoc: 0.22.x || 0.23.x || 0.24.x || 0.25.x + typedoc@0.26.11: + resolution: {integrity: sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==} + engines: {node: '>= 18'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x + typedoc@0.26.7: resolution: {integrity: sha512-gUeI/Wk99vjXXMi8kanwzyhmeFEGv1LTdTQsiyIsmSYsBebvFxhbcyAx7Zjo4cMbpLGxM4Uz3jVIjksu/I2v6Q==} engines: {node: '>= 18'} @@ -8295,8 +8393,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -8498,6 +8596,37 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite@5.4.10: + resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vite@5.4.8: resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -8537,14 +8666,14 @@ packages: vite: optional: true - vitepress-plugin-mermaid@2.0.16: - resolution: {integrity: sha512-sW0Eu4+1EzRdwZBMGjzwKDsbQiuJIxCy8BlMw7Ur88p9fXalrFYKqZ3wYWLxsFTBipeooFIeanef/xw1P+v7vQ==} + vitepress-plugin-mermaid@2.0.17: + resolution: {integrity: sha512-IUzYpwf61GC6k0XzfmAmNrLvMi9TRrVRMsUyCA8KNXhg/mQ1VqWnO0/tBVPiX5UoKF1mDUwqn5QV4qAJl6JnUg==} peerDependencies: - mermaid: '10' + mermaid: 10 || 11 vitepress: ^1.0.0 || ^1.0.0-alpha - vitepress@1.2.3: - resolution: {integrity: sha512-GvEsrEeNLiDE1+fuwDAYJCYLNZDAna+EtnXlPajhv/MYeTjbNK6Bvyg6NoTdO1sbwuQJ0vuJR99bOlH53bo6lg==} + vitepress@1.4.5: + resolution: {integrity: sha512-9K0k8kvdEbeowVCpKF/x0AySSq0Pr9pM8xufLgQcKMjsifwxtDjXJjcFhZv4LYw2dcpdYiBq2j7PnWi0tCaMCg==} hasBin: true peerDependencies: markdown-it-mathjax3: ^4 @@ -8555,8 +8684,8 @@ packages: postcss: optional: true - vue-demi@0.14.8: - resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} engines: {node: '>=12'} hasBin: true peerDependencies: @@ -8566,8 +8695,8 @@ packages: '@vue/composition-api': optional: true - vue@3.4.27: - resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==} + vue@3.5.12: + resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -8622,13 +8751,6 @@ packages: which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} - which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - - which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - which-typed-array@1.1.11: resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} @@ -8649,10 +8771,6 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -8698,9 +8816,6 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -8731,9 +8846,10 @@ packages: engines: {node: '>= 14'} hasBin: true - yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + engines: {node: '>= 14'} + hasBin: true yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} @@ -8743,10 +8859,6 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -8767,132 +8879,115 @@ packages: snapshots: - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)(search-insights@2.15.0)': + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.15.0)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)(search-insights@2.15.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.15.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)(search-insights@2.15.0)': + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.15.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) search-insights: 2.15.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)': + '@algolia/autocomplete-preset-algolia@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3) - '@algolia/client-search': 4.24.0 - algoliasearch: 4.23.3 + '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@algolia/client-search': 5.12.0 + algoliasearch: 5.12.0 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)': + '@algolia/autocomplete-shared@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': dependencies: - '@algolia/client-search': 4.24.0 - algoliasearch: 4.23.3 - - '@algolia/cache-browser-local-storage@4.23.3': - dependencies: - '@algolia/cache-common': 4.23.3 - - '@algolia/cache-common@4.23.3': {} - - '@algolia/cache-common@4.24.0': {} + '@algolia/client-search': 5.12.0 + algoliasearch: 5.12.0 - '@algolia/cache-in-memory@4.23.3': + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': dependencies: - '@algolia/cache-common': 4.23.3 + '@algolia/client-search': 5.12.0 + algoliasearch: 5.12.0 - '@algolia/client-account@4.23.3': + '@algolia/client-abtesting@5.12.0': dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-analytics@4.23.3': + '@algolia/client-analytics@5.12.0': dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-common@4.23.3': - dependencies: - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common@5.12.0': {} - '@algolia/client-common@4.24.0': + '@algolia/client-insights@5.12.0': dependencies: - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-personalization@4.23.3': + '@algolia/client-personalization@5.12.0': dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-search@4.23.3': + '@algolia/client-query-suggestions@5.12.0': dependencies: - '@algolia/client-common': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/client-search@4.24.0': + '@algolia/client-search@5.12.0': dependencies: - '@algolia/client-common': 4.24.0 - '@algolia/requester-common': 4.24.0 - '@algolia/transporter': 4.24.0 - - '@algolia/logger-common@4.23.3': {} + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/logger-common@4.24.0': {} - - '@algolia/logger-console@4.23.3': + '@algolia/ingestion@1.12.0': dependencies: - '@algolia/logger-common': 4.23.3 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/recommend@4.23.3': + '@algolia/monitoring@1.12.0': dependencies: - '@algolia/cache-browser-local-storage': 4.23.3 - '@algolia/cache-common': 4.23.3 - '@algolia/cache-in-memory': 4.23.3 - '@algolia/client-common': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/logger-console': 4.23.3 - '@algolia/requester-browser-xhr': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/requester-node-http': 4.23.3 - '@algolia/transporter': 4.23.3 + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/requester-browser-xhr@4.23.3': + '@algolia/recommend@5.12.0': dependencies: - '@algolia/requester-common': 4.23.3 - - '@algolia/requester-common@4.23.3': {} + '@algolia/client-common': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 - '@algolia/requester-common@4.24.0': {} - - '@algolia/requester-node-http@4.23.3': + '@algolia/requester-browser-xhr@5.12.0': dependencies: - '@algolia/requester-common': 4.23.3 + '@algolia/client-common': 5.12.0 - '@algolia/transporter@4.23.3': + '@algolia/requester-fetch@5.12.0': dependencies: - '@algolia/cache-common': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/requester-common': 4.23.3 + '@algolia/client-common': 5.12.0 - '@algolia/transporter@4.24.0': + '@algolia/requester-node-http@5.12.0': dependencies: - '@algolia/cache-common': 4.24.0 - '@algolia/logger-common': 4.24.0 - '@algolia/requester-common': 4.24.0 + '@algolia/client-common': 5.12.0 '@alloc/quick-lru@5.2.0': {} @@ -8908,7 +9003,7 @@ snapshots: '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.1.0 + picocolors: 1.1.1 '@babel/compat-data@7.25.2': {} @@ -9127,8 +9222,12 @@ snapshots: '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-option@7.24.8': {} '@babel/helper-wrap-function@7.25.0': @@ -9149,15 +9248,15 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.1.0 + picocolors: 1.1.1 '@babel/parser@7.25.0': dependencies: '@babel/types': 7.25.2 - '@babel/parser@7.25.6': + '@babel/parser@7.26.2': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.26.0 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': dependencies: @@ -9812,6 +9911,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.0 + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 @@ -9834,7 +9937,7 @@ snapshots: dependencies: '@babel/code-frame': 7.24.7 '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 + '@babel/parser': 7.26.2 '@babel/template': 7.25.0 '@babel/types': 7.25.6 debug: 4.3.7 @@ -9854,6 +9957,11 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@bcoe/v8-coverage@0.2.3': {} '@braintree/sanitize-url@6.0.4': {} @@ -9877,13 +9985,13 @@ snapshots: '@scure/bip39': 1.4.0 buffer: 6.0.3 - '@changesets/apply-release-plan@6.1.4': + '@changesets/apply-release-plan@7.0.5': dependencies: - '@babel/runtime': 7.22.15 - '@changesets/config': 2.3.1 - '@changesets/get-version-range-type': 0.3.2 - '@changesets/git': 2.0.0 - '@changesets/types': 5.2.1 + '@changesets/config': 3.0.3 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.1 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 fs-extra: 7.0.1 @@ -9891,137 +9999,130 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.5.4 + semver: 7.6.3 - '@changesets/assemble-release-plan@5.2.4': + '@changesets/assemble-release-plan@6.0.4': dependencies: - '@babel/runtime': 7.22.15 - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/types': 5.2.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - semver: 7.5.4 - - '@changesets/changelog-git@0.1.14': - dependencies: - '@changesets/types': 5.2.1 + semver: 7.6.3 - '@changesets/cli@2.26.2': - dependencies: - '@babel/runtime': 7.22.15 - '@changesets/apply-release-plan': 6.1.4 - '@changesets/assemble-release-plan': 5.2.4 - '@changesets/changelog-git': 0.1.14 - '@changesets/config': 2.3.1 - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/get-release-plan': 3.0.17 - '@changesets/git': 2.0.0 - '@changesets/logger': 0.0.5 - '@changesets/pre': 1.0.14 - '@changesets/read': 0.5.9 - '@changesets/types': 5.2.1 - '@changesets/write': 0.2.3 + '@changesets/changelog-git@0.2.0': + dependencies: + '@changesets/types': 6.0.0 + + '@changesets/cli@2.27.9': + dependencies: + '@changesets/apply-release-plan': 7.0.5 + '@changesets/assemble-release-plan': 6.0.4 + '@changesets/changelog-git': 0.2.0 + '@changesets/config': 3.0.3 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/get-release-plan': 4.0.4 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@changesets/write': 0.3.2 '@manypkg/get-packages': 1.1.3 - '@types/is-ci': 3.0.0 - '@types/semver': 7.5.2 ansi-colors: 4.1.3 - chalk: 2.4.2 + ci-info: 3.9.0 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 - human-id: 1.0.2 - is-ci: 3.0.1 - meow: 6.1.1 - outdent: 0.5.0 + mri: 1.2.0 p-limit: 2.3.0 - preferred-pm: 3.1.2 + package-manager-detector: 0.2.2 + picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.5.4 + semver: 7.6.3 spawndamnit: 2.0.0 term-size: 2.2.1 - tty-table: 4.2.1 - '@changesets/config@2.3.1': + '@changesets/config@3.0.3': dependencies: - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/logger': 0.0.5 - '@changesets/types': 5.2.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - micromatch: 4.0.5 + micromatch: 4.0.8 - '@changesets/errors@0.1.4': + '@changesets/errors@0.2.0': dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@1.3.6': + '@changesets/get-dependents-graph@2.1.2': dependencies: - '@changesets/types': 5.2.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - chalk: 2.4.2 - fs-extra: 7.0.1 - semver: 7.5.4 + picocolors: 1.1.1 + semver: 7.6.3 - '@changesets/get-release-plan@3.0.17': + '@changesets/get-release-plan@4.0.4': dependencies: - '@babel/runtime': 7.22.15 - '@changesets/assemble-release-plan': 5.2.4 - '@changesets/config': 2.3.1 - '@changesets/pre': 1.0.14 - '@changesets/read': 0.5.9 - '@changesets/types': 5.2.1 + '@changesets/assemble-release-plan': 6.0.4 + '@changesets/config': 3.0.3 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - '@changesets/get-version-range-type@0.3.2': {} + '@changesets/get-version-range-type@0.4.0': {} - '@changesets/git@2.0.0': + '@changesets/git@3.0.1': dependencies: - '@babel/runtime': 7.22.15 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.1 + '@changesets/errors': 0.2.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 - micromatch: 4.0.5 + micromatch: 4.0.8 spawndamnit: 2.0.0 - '@changesets/logger@0.0.5': + '@changesets/logger@0.1.1': dependencies: - chalk: 2.4.2 + picocolors: 1.1.1 - '@changesets/parse@0.3.16': + '@changesets/parse@0.4.0': dependencies: - '@changesets/types': 5.2.1 + '@changesets/types': 6.0.0 js-yaml: 3.14.1 - '@changesets/pre@1.0.14': + '@changesets/pre@2.0.1': dependencies: - '@babel/runtime': 7.22.15 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.1 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.5.9': + '@changesets/read@0.6.1': dependencies: - '@babel/runtime': 7.22.15 - '@changesets/git': 2.0.0 - '@changesets/logger': 0.0.5 - '@changesets/parse': 0.3.16 - '@changesets/types': 5.2.1 - chalk: 2.4.2 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.0 + '@changesets/types': 6.0.0 fs-extra: 7.0.1 p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.1': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 '@changesets/types@4.1.0': {} - '@changesets/types@5.2.1': {} + '@changesets/types@6.0.0': {} - '@changesets/write@0.2.3': + '@changesets/write@0.3.2': dependencies: - '@babel/runtime': 7.22.15 - '@changesets/types': 5.2.1 + '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 @@ -10035,12 +10136,12 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@docsearch/css@3.6.0': {} + '@docsearch/css@3.6.3': {} - '@docsearch/js@3.6.0(@algolia/client-search@4.24.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)': + '@docsearch/js@3.6.3(@algolia/client-search@5.12.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)': dependencies: - '@docsearch/react': 3.6.0(@algolia/client-search@4.24.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0) - preact: 10.22.0 + '@docsearch/react': 3.6.3(@algolia/client-search@5.12.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0) + preact: 10.24.3 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -10048,12 +10149,12 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.6.0(@algolia/client-search@4.24.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)': + '@docsearch/react@3.6.3(@algolia/client-search@5.12.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)(search-insights@2.15.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3) - '@docsearch/css': 3.6.0 - algoliasearch: 4.23.3 + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.15.0) + '@algolia/autocomplete-preset-algolia': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@docsearch/css': 3.6.3 + algoliasearch: 5.12.0 optionalDependencies: '@types/react': 18.2.22 react: 18.3.1 @@ -10411,9 +10512,9 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0(jiti@1.21.6))': dependencies: - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/eslint-utils@4.4.1(eslint@8.4.1)': @@ -10421,9 +10522,9 @@ snapshots: eslint: 8.4.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.1(eslint@9.13.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.14.0(jiti@1.21.6))': dependencies: - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} @@ -10458,7 +10559,7 @@ snapshots: dependencies: ajv: 6.12.6 debug: 4.3.7 - espree: 10.2.0 + espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 @@ -10468,11 +10569,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.13.0': {} + '@eslint/js@9.14.0': {} '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.1': + '@eslint/plugin-kit@0.2.2': dependencies: levn: 0.4.1 @@ -10523,6 +10624,8 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} + '@humanwhocodes/retry@0.4.0': {} + '@ioredis/commands@1.2.0': {} '@isaacs/cliui@8.0.2': @@ -10547,7 +10650,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -10560,14 +10663,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.6.1) + jest-config: 29.7.0(@types/node@22.8.7) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10595,14 +10698,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)) + jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10630,14 +10733,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)) + jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10665,14 +10768,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10700,14 +10803,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)) + jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10728,21 +10831,21 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10767,7 +10870,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -10785,7 +10888,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.6.1 + '@types/node': 22.8.7 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -10807,7 +10910,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.6.1 + '@types/node': 22.8.7 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -10876,7 +10979,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/yargs': 16.0.5 chalk: 4.1.2 @@ -10885,7 +10988,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -10917,14 +11020,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -10940,9 +11043,9 @@ snapshots: '@mermaid-js/mermaid-mindmap@9.3.0': dependencies: '@braintree/sanitize-url': 6.0.4 - cytoscape: 3.30.1 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.1) - cytoscape-fcose: 2.2.0(cytoscape@3.30.1) + cytoscape: 3.30.3 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.3) + cytoscape-fcose: 2.2.0(cytoscape@3.30.3) d3: 7.9.0 khroma: 2.1.0 non-layered-tidy-tree-layout: 2.0.2 @@ -11001,15 +11104,15 @@ snapshots: '@radix-ui/number@1.0.1': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/primitive@1.0.1': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-arrow@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11018,7 +11121,7 @@ snapshots: '@radix-ui/react-collection@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -11030,28 +11133,28 @@ snapshots: '@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-context@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-direction@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-dismissable-layer@1.0.4(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -11064,14 +11167,14 @@ snapshots: '@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-focus-scope@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11082,7 +11185,7 @@ snapshots: '@radix-ui/react-id@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11090,7 +11193,7 @@ snapshots: '@radix-ui/react-popper@1.1.2(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@floating-ui/react-dom': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-arrow': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11108,7 +11211,7 @@ snapshots: '@radix-ui/react-portal@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11117,7 +11220,7 @@ snapshots: '@radix-ui/react-primitive@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-slot': 1.0.2(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11126,7 +11229,7 @@ snapshots: '@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11143,7 +11246,7 @@ snapshots: '@radix-ui/react-select@1.2.2(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -11172,7 +11275,7 @@ snapshots: '@radix-ui/react-separator@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11181,7 +11284,7 @@ snapshots: '@radix-ui/react-slot@1.0.2(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11189,7 +11292,7 @@ snapshots: '@radix-ui/react-toggle-group@1.0.4(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11204,7 +11307,7 @@ snapshots: '@radix-ui/react-toggle@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11215,7 +11318,7 @@ snapshots: '@radix-ui/react-toolbar@1.0.4(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11230,14 +11333,14 @@ snapshots: '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11245,7 +11348,7 @@ snapshots: '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11253,21 +11356,21 @@ snapshots: '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-use-previous@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-use-rect@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/rect': 1.0.1 react: 18.3.1 optionalDependencies: @@ -11275,7 +11378,7 @@ snapshots: '@radix-ui/react-use-size@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11283,7 +11386,7 @@ snapshots: '@radix-ui/react-visually-hidden@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11292,7 +11395,7 @@ snapshots: '@radix-ui/rect@1.0.1': dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 '@rollup/rollup-android-arm-eabi@4.22.4': optional: true @@ -11300,96 +11403,150 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.24.0': optional: true + '@rollup/rollup-android-arm-eabi@4.24.4': + optional: true + '@rollup/rollup-android-arm64@4.22.4': optional: true '@rollup/rollup-android-arm64@4.24.0': optional: true + '@rollup/rollup-android-arm64@4.24.4': + optional: true + '@rollup/rollup-darwin-arm64@4.22.4': optional: true '@rollup/rollup-darwin-arm64@4.24.0': optional: true + '@rollup/rollup-darwin-arm64@4.24.4': + optional: true + '@rollup/rollup-darwin-x64@4.22.4': optional: true '@rollup/rollup-darwin-x64@4.24.0': optional: true + '@rollup/rollup-darwin-x64@4.24.4': + optional: true + + '@rollup/rollup-freebsd-arm64@4.24.4': + optional: true + + '@rollup/rollup-freebsd-x64@4.24.4': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.22.4': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.24.4': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.22.4': optional: true '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.24.4': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.22.4': optional: true '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.24.4': + optional: true + '@rollup/rollup-linux-arm64-musl@4.22.4': optional: true '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.24.4': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.22.4': optional: true '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.24.4': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.22.4': optional: true '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.24.4': + optional: true + '@rollup/rollup-linux-x64-gnu@4.22.4': optional: true '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.24.4': + optional: true + '@rollup/rollup-linux-x64-musl@4.22.4': optional: true '@rollup/rollup-linux-x64-musl@4.24.0': optional: true + '@rollup/rollup-linux-x64-musl@4.24.4': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.22.4': optional: true '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.24.4': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.22.4': optional: true '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.24.4': + optional: true + '@rollup/rollup-win32-x64-msvc@4.22.4': optional: true '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true + '@rollup/rollup-win32-x64-msvc@4.24.4': + optional: true + '@scure/base@1.1.1': {} '@scure/base@1.1.3': {} @@ -11418,8 +11575,6 @@ snapshots: '@noble/hashes': 1.5.0 '@scure/base': 1.1.9 - '@shikijs/core@1.10.0': {} - '@shikijs/core@1.18.0': dependencies: '@shikijs/engine-javascript': 1.18.0 @@ -11429,7 +11584,14 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.3 - '@shikijs/core@1.7.0': {} + '@shikijs/core@1.22.2': + dependencies: + '@shikijs/engine-javascript': 1.22.2 + '@shikijs/engine-oniguruma': 1.22.2 + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 '@shikijs/engine-javascript@1.18.0': dependencies: @@ -11437,22 +11599,40 @@ snapshots: '@shikijs/vscode-textmate': 9.2.2 oniguruma-to-js: 0.4.3 + '@shikijs/engine-javascript@1.22.2': + dependencies: + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + oniguruma-to-js: 0.4.3 + '@shikijs/engine-oniguruma@1.18.0': dependencies: '@shikijs/types': 1.18.0 '@shikijs/vscode-textmate': 9.2.2 - '@shikijs/transformers@1.7.0': + '@shikijs/engine-oniguruma@1.22.2': dependencies: - shiki: 1.7.0 + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + + '@shikijs/transformers@1.22.2': + dependencies: + shiki: 1.22.2 '@shikijs/types@1.18.0': dependencies: '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 + '@shikijs/types@1.22.2': + dependencies: + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@9.2.2': {} + '@shikijs/vscode-textmate@9.3.0': {} + '@sinclair/typebox@0.27.8': {} '@sinonjs/commons@3.0.0': @@ -11508,7 +11688,7 @@ snapshots: '@storybook/react-dom-shim': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/types': 7.6.20 - fs-extra: 11.1.1 + fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) remark-external-links: 8.0.0 @@ -11643,7 +11823,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1))': + '@storybook/builder-vite@7.6.20(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -11658,12 +11838,12 @@ snapshots: es-module-lexer: 0.9.3 express: 4.18.2 find-cache-dir: 3.3.2 - fs-extra: 11.1.1 + fs-extra: 11.2.0 magic-string: 0.30.11 rollup: 3.29.4 - vite: 5.4.8(@types/node@22.6.1) + vite: 5.4.8(@types/node@22.8.7) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - encoding - supports-color @@ -11777,7 +11957,7 @@ snapshots: '@storybook/node-logger': 7.6.20 '@storybook/types': 7.6.20 '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.50 + '@types/node': 18.19.64 '@types/node-fetch': 2.6.6 '@types/pretty-hrtime': 1.0.1 chalk: 4.1.2 @@ -11786,7 +11966,7 @@ snapshots: file-system-cache: 2.3.0 find-cache-dir: 3.3.2 find-up: 5.0.0 - fs-extra: 11.1.1 + fs-extra: 11.2.0 glob: 10.3.6 handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 @@ -11822,7 +12002,7 @@ snapshots: '@storybook/telemetry': 7.6.20 '@storybook/types': 7.6.20 '@types/detect-port': 1.3.3 - '@types/node': 18.19.50 + '@types/node': 18.19.64 '@types/pretty-hrtime': 1.0.1 '@types/semver': 7.5.2 better-opn: 3.0.2 @@ -11956,18 +12136,18 @@ snapshots: memoizerific: 1.11.3 qs: 6.11.2 - '@storybook/svelte-vite@7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1))': + '@storybook/svelte-vite@7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7))': dependencies: - '@storybook/builder-vite': 7.6.20(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1)) + '@storybook/builder-vite': 7.6.20(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7)) '@storybook/node-logger': 7.6.20 '@storybook/svelte': 7.6.20(svelte@4.2.19) - '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) magic-string: 0.30.11 svelte: 4.2.19 - svelte-preprocess: 5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4) + svelte-preprocess: 5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3) sveltedoc-parser: 4.2.1 ts-dedent: 2.2.0 - vite: 5.4.8(@types/node@22.6.1) + vite: 5.4.8(@types/node@22.8.7) transitivePeerDependencies: - '@babel/core' - '@preact/preset-vite' @@ -12001,14 +12181,14 @@ snapshots: - encoding - supports-color - '@storybook/sveltekit@7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1))': + '@storybook/sveltekit@7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7))': dependencies: '@storybook/addon-actions': 7.6.20 - '@storybook/builder-vite': 7.6.20(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1)) + '@storybook/builder-vite': 7.6.20(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7)) '@storybook/svelte': 7.6.20(svelte@4.2.19) - '@storybook/svelte-vite': 7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1)) + '@storybook/svelte-vite': 7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7)) svelte: 4.2.19 - vite: 5.4.8(@types/node@22.6.1) + vite: 5.4.8(@types/node@22.8.7) transitivePeerDependencies: - '@babel/core' - '@preact/preset-vite' @@ -12061,14 +12241,14 @@ snapshots: '@types/express': 4.17.18 file-system-cache: 2.3.0 - '@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))': + '@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))': dependencies: - '@sveltejs/kit': 2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + '@sveltejs/kit': 2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': + '@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -12082,72 +12262,72 @@ snapshots: sirv: 2.0.4 svelte: 4.2.19 tiny-glob: 0.2.9 - vite: 5.4.8(@types/node@22.6.1) + vite: 5.4.8(@types/node@22.8.7) - '@sveltejs/package@2.3.5(svelte@4.2.19)(typescript@5.5.4)': + '@sveltejs/package@2.3.5(svelte@4.2.19)(typescript@5.6.3)': dependencies: chokidar: 4.0.1 kleur: 4.1.5 sade: 1.8.1 semver: 7.5.4 svelte: 4.2.19 - svelte2tsx: 0.7.19(svelte@4.2.19)(typescript@5.5.4) + svelte2tsx: 0.7.19(svelte@4.2.19)(typescript@5.6.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) debug: 4.3.7 svelte: 4.2.19 - vite: 5.4.8(@types/node@22.6.1) + vite: 5.4.8(@types/node@22.8.7) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) debug: 4.3.7 svelte: 4.2.19 - vite: 5.4.8(@types/node@22.6.1) + vite: 5.4.8(@types/node@22.8.7) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': + '@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.15.3(svelte@4.2.19) - vite: 5.4.8(@types/node@22.6.1) - vitefu: 0.2.5(vite@5.4.8(@types/node@22.6.1)) + vite: 5.4.8(@types/node@22.8.7) + vitefu: 0.2.5(vite@5.4.8(@types/node@22.8.7)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.8(@types/node@22.6.1) - vitefu: 0.2.5(vite@5.4.8(@types/node@22.6.1)) + vite: 5.4.8(@types/node@22.8.7) + vitefu: 0.2.5(vite@5.4.8(@types/node@22.8.7)) transitivePeerDependencies: - supports-color - '@tailwindcss/typography@0.5.10(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))': + '@tailwindcss/typography@0.5.10(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + tailwindcss: 3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) '@testing-library/dom@9.3.3': dependencies: @@ -12202,7 +12382,7 @@ snapshots: '@types/body-parser@1.19.3': dependencies: '@types/connect': 3.4.36 - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/chrome@0.0.74': dependencies: @@ -12210,13 +12390,13 @@ snapshots: '@types/connect@3.4.36': dependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.3': dependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/d3-scale-chromatic@3.0.3': {} @@ -12253,7 +12433,7 @@ snapshots: '@types/express-serve-static-core@4.17.37': dependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/qs': 6.9.8 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -12275,7 +12455,7 @@ snapshots: '@types/graceful-fs@4.1.7': dependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/hast@3.0.1': dependencies: @@ -12287,10 +12467,6 @@ snapshots: '@types/http-errors@2.0.2': {} - '@types/is-ci@3.0.0': - dependencies: - ci-info: 3.8.0 - '@types/istanbul-lib-coverage@2.0.4': {} '@types/istanbul-lib-report@3.0.0': @@ -12306,6 +12482,11 @@ snapshots: expect: 29.7.0 pretty-format: 29.7.0 + '@types/jest@29.5.14': + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + '@types/jest@29.5.5': dependencies: expect: 29.7.0 @@ -12317,7 +12498,7 @@ snapshots: '@types/lodash@4.14.199': {} - '@types/markdown-it@14.1.1': + '@types/markdown-it@14.1.2': dependencies: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 @@ -12326,7 +12507,11 @@ snapshots: '@types/mdast@3.0.12': dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 + + '@types/mdast@3.0.15': + dependencies: + '@types/unist': 2.0.11 '@types/mdast@4.0.4': dependencies: @@ -12342,8 +12527,6 @@ snapshots: '@types/mime@3.0.1': {} - '@types/minimist@1.2.2': {} - '@types/minimist@1.2.5': {} '@types/ms@0.7.31': {} @@ -12352,7 +12535,7 @@ snapshots: '@types/node-fetch@2.6.6': dependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 form-data: 4.0.0 '@types/node@12.20.55': {} @@ -12361,7 +12544,7 @@ snapshots: '@types/node@18.17.19': {} - '@types/node@18.19.50': + '@types/node@18.19.64': dependencies: undici-types: 5.26.5 @@ -12369,6 +12552,10 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/node@22.8.7': + dependencies: + undici-types: 6.19.8 + '@types/normalize-package-data@2.4.4': {} '@types/pretty-hrtime@1.0.1': {} @@ -12402,20 +12589,18 @@ snapshots: '@types/send@0.17.1': dependencies: '@types/mime': 1.3.2 - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/serve-static@1.15.2': dependencies: '@types/http-errors': 2.0.2 '@types/mime': 3.0.1 - '@types/node': 22.6.1 + '@types/node': 22.8.7 '@types/stack-utils@2.0.1': {} '@types/unist@2.0.11': {} - '@types/unist@2.0.8': {} - '@types/unist@3.0.0': {} '@types/unist@3.0.3': {} @@ -12434,13 +12619,13 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.0 - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.5.4))(eslint@8.4.1)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.6.3))(eslint@8.4.1)(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.4.1)(typescript@5.5.4) + '@typescript-eslint/parser': 6.21.0(eslint@8.4.1)(typescript@5.6.3) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.4.1)(typescript@5.5.4) - '@typescript-eslint/utils': 6.21.0(eslint@8.4.1)(typescript@5.5.4) + '@typescript-eslint/type-utils': 6.21.0(eslint@8.4.1)(typescript@5.6.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.4.1)(typescript@5.6.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 eslint: 8.4.1 @@ -12448,22 +12633,22 @@ snapshots: ignore: 5.3.1 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.5.4) + ts-api-utils: 1.0.3(typescript@5.6.3) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2))(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2))(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) + '@typescript-eslint/parser': 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) - '@typescript-eslint/utils': 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) + '@typescript-eslint/type-utils': 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) + '@typescript-eslint/utils': 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -12474,27 +12659,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.5.4)': + '@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 eslint: 8.4.1 optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2)': + '@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) optionalDependencies: typescript: 5.2.2 transitivePeerDependencies: @@ -12510,24 +12695,24 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/type-utils@6.21.0(eslint@8.4.1)(typescript@5.5.4)': + '@typescript-eslint/type-utils@6.21.0(eslint@8.4.1)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) - '@typescript-eslint/utils': 6.21.0(eslint@8.4.1)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.4.1)(typescript@5.6.3) debug: 4.3.7 eslint: 8.4.1 - ts-api-utils: 1.0.3(typescript@5.5.4) + ts-api-utils: 1.0.3(typescript@5.6.3) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2)': + '@typescript-eslint/type-utils@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2)': dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) + '@typescript-eslint/utils': 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) debug: 4.3.7 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) ts-api-utils: 1.0.3(typescript@5.2.2) optionalDependencies: typescript: 5.2.2 @@ -12538,17 +12723,17 @@ snapshots: '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 - tsutils: 3.21.0(typescript@5.5.4) + semver: 7.6.3 + tsutils: 3.21.0(typescript@5.6.3) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -12560,14 +12745,14 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 + semver: 7.6.3 ts-api-utils: 1.0.3(typescript@5.2.2) optionalDependencies: typescript: 5.2.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -12575,51 +12760,51 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.5.4) + semver: 7.6.3 + ts-api-utils: 1.0.3(typescript@5.6.3) optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.4.1)(typescript@5.5.4)': + '@typescript-eslint/utils@5.62.0(eslint@8.4.1)(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.4.1) '@types/json-schema': 7.0.15 '@types/semver': 7.5.2 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) eslint: 8.4.1 eslint-scope: 5.1.1 - semver: 7.5.4 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.21.0(eslint@8.4.1)(typescript@5.5.4)': + '@typescript-eslint/utils@6.21.0(eslint@8.4.1)(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.4.1) '@types/json-schema': 7.0.15 '@types/semver': 7.5.2 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) eslint: 8.4.1 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2)': + '@typescript-eslint/utils@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@1.21.6)) '@types/json-schema': 7.0.15 '@types/semver': 7.5.2 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -12637,109 +12822,109 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.0.5(vite@5.4.8(@types/node@22.6.1))(vue@3.4.27(typescript@5.5.4))': + '@vitejs/plugin-vue@5.1.4(vite@5.4.10(@types/node@22.8.7))(vue@3.5.12(typescript@5.6.3))': dependencies: - vite: 5.4.8(@types/node@22.6.1) - vue: 3.4.27(typescript@5.5.4) + vite: 5.4.10(@types/node@22.8.7) + vue: 3.5.12(typescript@5.6.3) - '@vue/compiler-core@3.4.27': + '@vue/compiler-core@3.5.12': dependencies: - '@babel/parser': 7.25.0 - '@vue/shared': 3.4.27 + '@babel/parser': 7.26.2 + '@vue/shared': 3.5.12 entities: 4.5.0 estree-walker: 2.0.2 - source-map-js: 1.2.0 + source-map-js: 1.2.1 - '@vue/compiler-dom@3.4.27': + '@vue/compiler-dom@3.5.12': dependencies: - '@vue/compiler-core': 3.4.27 - '@vue/shared': 3.4.27 + '@vue/compiler-core': 3.5.12 + '@vue/shared': 3.5.12 - '@vue/compiler-sfc@3.4.27': + '@vue/compiler-sfc@3.5.12': dependencies: - '@babel/parser': 7.25.0 - '@vue/compiler-core': 3.4.27 - '@vue/compiler-dom': 3.4.27 - '@vue/compiler-ssr': 3.4.27 - '@vue/shared': 3.4.27 + '@babel/parser': 7.26.2 + '@vue/compiler-core': 3.5.12 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 estree-walker: 2.0.2 - magic-string: 0.30.11 + magic-string: 0.30.12 postcss: 8.4.47 - source-map-js: 1.2.0 + source-map-js: 1.2.1 - '@vue/compiler-ssr@3.4.27': + '@vue/compiler-ssr@3.5.12': dependencies: - '@vue/compiler-dom': 3.4.27 - '@vue/shared': 3.4.27 + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 - '@vue/devtools-api@7.2.1(vue@3.4.27(typescript@5.5.4))': + '@vue/devtools-api@7.6.2': dependencies: - '@vue/devtools-kit': 7.2.1(vue@3.4.27(typescript@5.5.4)) - transitivePeerDependencies: - - vue + '@vue/devtools-kit': 7.6.2 - '@vue/devtools-kit@7.2.1(vue@3.4.27(typescript@5.5.4))': + '@vue/devtools-kit@7.6.2': dependencies: - '@vue/devtools-shared': 7.2.1 + '@vue/devtools-shared': 7.6.2 + birpc: 0.2.19 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - vue: 3.4.27(typescript@5.5.4) + superjson: 2.2.1 - '@vue/devtools-shared@7.2.1': + '@vue/devtools-shared@7.6.2': dependencies: - rfdc: 1.3.1 + rfdc: 1.4.1 - '@vue/reactivity@3.4.27': + '@vue/reactivity@3.5.12': dependencies: - '@vue/shared': 3.4.27 + '@vue/shared': 3.5.12 - '@vue/runtime-core@3.4.27': + '@vue/runtime-core@3.5.12': dependencies: - '@vue/reactivity': 3.4.27 - '@vue/shared': 3.4.27 + '@vue/reactivity': 3.5.12 + '@vue/shared': 3.5.12 - '@vue/runtime-dom@3.4.27': + '@vue/runtime-dom@3.5.12': dependencies: - '@vue/runtime-core': 3.4.27 - '@vue/shared': 3.4.27 + '@vue/reactivity': 3.5.12 + '@vue/runtime-core': 3.5.12 + '@vue/shared': 3.5.12 csstype: 3.1.3 - '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.5.4))': + '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.6.3))': dependencies: - '@vue/compiler-ssr': 3.4.27 - '@vue/shared': 3.4.27 - vue: 3.4.27(typescript@5.5.4) + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + vue: 3.5.12(typescript@5.6.3) - '@vue/shared@3.4.27': {} + '@vue/shared@3.5.12': {} - '@vueuse/core@10.11.0(vue@3.4.27(typescript@5.5.4))': + '@vueuse/core@11.2.0(vue@3.5.12(typescript@5.6.3))': dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.11.0 - '@vueuse/shared': 10.11.0(vue@3.4.27(typescript@5.5.4)) - vue-demi: 0.14.8(vue@3.4.27(typescript@5.5.4)) + '@vueuse/metadata': 11.2.0 + '@vueuse/shared': 11.2.0(vue@3.5.12(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/integrations@10.11.0(focus-trap@7.5.4)(vue@3.4.27(typescript@5.5.4))': + '@vueuse/integrations@11.2.0(focus-trap@7.6.0)(vue@3.5.12(typescript@5.6.3))': dependencies: - '@vueuse/core': 10.11.0(vue@3.4.27(typescript@5.5.4)) - '@vueuse/shared': 10.11.0(vue@3.4.27(typescript@5.5.4)) - vue-demi: 0.14.8(vue@3.4.27(typescript@5.5.4)) + '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) + '@vueuse/shared': 11.2.0(vue@3.5.12(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) optionalDependencies: - focus-trap: 7.5.4 + focus-trap: 7.6.0 transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/metadata@10.11.0': {} + '@vueuse/metadata@11.2.0': {} - '@vueuse/shared@10.11.0(vue@3.4.27(typescript@5.5.4))': + '@vueuse/shared@11.2.0(vue@3.5.12(typescript@5.6.3))': dependencies: - vue-demi: 0.14.8(vue@3.4.27(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -12766,10 +12951,6 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -12804,23 +12985,21 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - algoliasearch@4.23.3: - dependencies: - '@algolia/cache-browser-local-storage': 4.23.3 - '@algolia/cache-common': 4.23.3 - '@algolia/cache-in-memory': 4.23.3 - '@algolia/client-account': 4.23.3 - '@algolia/client-analytics': 4.23.3 - '@algolia/client-common': 4.23.3 - '@algolia/client-personalization': 4.23.3 - '@algolia/client-search': 4.23.3 - '@algolia/logger-common': 4.23.3 - '@algolia/logger-console': 4.23.3 - '@algolia/recommend': 4.23.3 - '@algolia/requester-browser-xhr': 4.23.3 - '@algolia/requester-common': 4.23.3 - '@algolia/requester-node-http': 4.23.3 - '@algolia/transporter': 4.23.3 + algoliasearch@5.12.0: + dependencies: + '@algolia/client-abtesting': 5.12.0 + '@algolia/client-analytics': 5.12.0 + '@algolia/client-common': 5.12.0 + '@algolia/client-insights': 5.12.0 + '@algolia/client-personalization': 5.12.0 + '@algolia/client-query-suggestions': 5.12.0 + '@algolia/client-search': 5.12.0 + '@algolia/ingestion': 1.12.0 + '@algolia/monitoring': 1.12.0 + '@algolia/recommend': 5.12.0 + '@algolia/requester-browser-xhr': 5.12.0 + '@algolia/requester-fetch': 5.12.0 + '@algolia/requester-node-http': 5.12.0 ansi-colors@4.1.3: {} @@ -12884,13 +13063,6 @@ snapshots: array-union@2.1.0: {} - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 - arraybuffer.prototype.slice@1.0.2: dependencies: array-buffer-byte-length: 1.0.0 @@ -12967,7 +13139,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + '@babel/types': 7.26.0 '@types/babel__core': 7.20.2 '@types/babel__traverse': 7.20.2 @@ -13035,6 +13207,8 @@ snapshots: binary-extensions@2.2.0: {} + birpc@0.2.19: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -13079,10 +13253,6 @@ snapshots: dependencies: fill-range: 7.1.1 - breakword@1.0.6: - dependencies: - wcwidth: 1.0.1 - browser-assert@1.2.1: {} browserify-zlib@0.1.4: @@ -13144,6 +13314,11 @@ snapshots: esbuild: 0.23.1 load-tsconfig: 0.2.5 + bundle-require@5.0.0(esbuild@0.24.0): + dependencies: + esbuild: 0.24.0 + load-tsconfig: 0.2.5 + bytes@3.0.0: {} bytes@3.1.2: {} @@ -13230,7 +13405,7 @@ snapshots: chownr@2.0.0: {} - ci-info@3.8.0: {} + ci-info@3.9.0: {} cjs-module-lexer@1.2.3: {} @@ -13250,12 +13425,6 @@ snapshots: optionalDependencies: '@colors/colors': 1.5.0 - cliui@6.0.0: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -13359,6 +13528,10 @@ snapshots: cookie@0.6.0: {} + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + core-js-compat@3.38.1: dependencies: browserslist: 4.23.3 @@ -13376,7 +13549,7 @@ snapshots: create-esm-loader@0.2.5: dependencies: - semver: 7.5.4 + semver: 7.6.3 create-jest@29.7.0(@types/node@14.18.63)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)): dependencies: @@ -13453,13 +13626,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): + create-jest@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -13512,31 +13685,18 @@ snapshots: csstype@3.1.3: {} - csv-generate@3.4.3: {} - - csv-parse@4.16.3: {} - - csv-stringify@5.6.5: {} - - csv@5.5.3: - dependencies: - csv-generate: 3.4.3 - csv-parse: 4.16.3 - csv-stringify: 5.6.5 - stream-transform: 2.1.3 - - cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.1): + cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.3): dependencies: cose-base: 1.0.3 - cytoscape: 3.30.1 + cytoscape: 3.30.3 - cytoscape-fcose@2.2.0(cytoscape@3.30.1): + cytoscape-fcose@2.2.0(cytoscape@3.30.3): dependencies: cose-base: 2.2.0 - cytoscape: 3.30.1 + cytoscape: 3.30.3 optional: true - cytoscape@3.30.1: {} + cytoscape@3.30.3: {} d3-array@2.12.1: dependencies: @@ -13715,18 +13875,16 @@ snapshots: d3: 7.9.0 lodash-es: 4.17.21 - daisyui@3.7.7(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): + daisyui@3.7.7(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): dependencies: colord: 2.9.3 css-selector-tokenizer: 0.8.0 postcss: 8.4.47 postcss-js: 4.0.1(postcss@8.4.47) - tailwindcss: 3.4.13(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + tailwindcss: 3.4.13(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) transitivePeerDependencies: - ts-node - dayjs@1.11.10: {} - dayjs@1.11.13: {} debug@2.6.9: @@ -13741,10 +13899,6 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.6: - dependencies: - ms: 2.1.2 - debug@4.3.7: dependencies: ms: 2.1.3 @@ -13870,7 +14024,7 @@ snapshots: diff@4.0.2: {} - diff@5.1.0: {} + diff@5.2.0: {} dir-glob@3.0.1: dependencies: @@ -14044,10 +14198,6 @@ snapshots: has: 1.0.3 has-tostringtag: 1.0.0 - es-shim-unscopables@1.0.0: - dependencies: - has: 1.0.3 - es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 @@ -14224,14 +14374,14 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-prettier@9.0.0(eslint@9.13.0(jiti@1.21.6)): + eslint-config-prettier@9.0.0(eslint@9.14.0(jiti@1.21.6)): dependencies: - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) - eslint-config-turbo@2.2.3(eslint@9.13.0(jiti@1.21.6)): + eslint-config-turbo@2.2.3(eslint@9.14.0(jiti@1.21.6)): dependencies: - eslint: 9.13.0(jiti@1.21.6) - eslint-plugin-turbo: 2.2.3(eslint@9.13.0(jiti@1.21.6)) + eslint: 9.14.0(jiti@1.21.6) + eslint-plugin-turbo: 2.2.3(eslint@9.14.0(jiti@1.21.6)) eslint-formatter-pretty@4.1.0: dependencies: @@ -14244,10 +14394,10 @@ snapshots: string-width: 4.2.3 supports-hyperlinks: 2.3.0 - eslint-plugin-storybook@0.6.14(eslint@8.4.1)(typescript@5.5.4): + eslint-plugin-storybook@0.6.14(eslint@8.4.1)(typescript@5.6.3): dependencies: '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.4.1)(typescript@5.5.4) + '@typescript-eslint/utils': 5.62.0(eslint@8.4.1)(typescript@5.6.3) eslint: 8.4.1 requireindex: 1.2.0 ts-dedent: 2.2.0 @@ -14255,16 +14405,16 @@ snapshots: - supports-color - typescript - eslint-plugin-svelte@2.33.2(eslint@9.13.0(jiti@1.21.6))(svelte@4.2.19)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2)): + eslint-plugin-svelte@2.33.2(eslint@9.14.0(jiti@1.21.6))(svelte@4.2.19)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.6)) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.7 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) esutils: 2.0.3 known-css-properties: 0.28.0 postcss: 8.4.47 - postcss-load-config: 3.1.4(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2)) + postcss-load-config: 3.1.4(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2)) postcss-safe-parser: 6.0.0(postcss@8.4.47) postcss-selector-parser: 6.0.13 semver: 7.5.4 @@ -14275,10 +14425,10 @@ snapshots: - supports-color - ts-node - eslint-plugin-turbo@2.2.3(eslint@9.13.0(jiti@1.21.6)): + eslint-plugin-turbo@2.2.3(eslint@9.14.0(jiti@1.21.6)): dependencies: dotenv: 16.0.3 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) eslint-rule-docs@1.1.235: {} @@ -14292,7 +14442,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-scope@8.1.0: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -14306,7 +14456,7 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.1.0: {} + eslint-visitor-keys@4.2.0: {} eslint@8.4.1: dependencies: @@ -14343,7 +14493,7 @@ snapshots: optionator: 0.9.4 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.5.4 + semver: 7.6.3 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 @@ -14351,18 +14501,18 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.13.0(jiti@1.21.6): + eslint@9.14.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.13.0 - '@eslint/plugin-kit': 0.2.1 + '@eslint/js': 9.14.0 + '@eslint/plugin-kit': 0.2.2 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.0 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -14370,9 +14520,9 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -14406,14 +14556,14 @@ snapshots: dependencies: create-esm-loader: 0.2.5 npm-run-all: 4.1.5 - semver: 7.5.4 - typescript: 5.5.4 + semver: 7.6.3 + typescript: 5.6.3 - espree@10.2.0: + espree@10.3.0: dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.1.0 + eslint-visitor-keys: 4.2.0 espree@9.2.0: dependencies: @@ -14423,8 +14573,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -14580,6 +14730,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fetch-retry@5.0.6: {} file-entry-cache@6.0.1: @@ -14645,11 +14799,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-yarn-workspace-root2@1.2.16: - dependencies: - micromatch: 4.0.5 - pkg-dir: 4.2.0 - flat-cache@3.2.0: dependencies: flatted: 3.3.1 @@ -14665,7 +14814,7 @@ snapshots: flow-parser@0.217.0: {} - focus-trap@7.5.4: + focus-trap@7.6.0: dependencies: tabbable: 6.2.0 @@ -14678,6 +14827,11 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + form-data@4.0.0: dependencies: asynckit: 0.4.0 @@ -14698,6 +14852,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.0 + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -14796,11 +14956,11 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.1.1 + foreground-child: 3.3.0 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 glob@7.1.6: @@ -14860,8 +15020,6 @@ snapshots: graceful-fs@4.2.11: {} - grapheme-splitter@1.0.4: {} - graphemer@1.4.0: {} gunzip-maybe@1.4.2: @@ -15099,10 +15257,6 @@ snapshots: is-callable@1.2.7: {} - is-ci@3.0.1: - dependencies: - ci-info: 3.8.0 - is-core-module@2.13.0: dependencies: has: 1.0.3 @@ -15214,6 +15368,8 @@ snapshots: call-bind: 1.0.2 get-intrinsic: 1.2.1 + is-what@4.1.16: {} + is-windows@1.0.2: {} is-wsl@2.2.0: @@ -15233,7 +15389,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.25.0 + '@babel/parser': 7.26.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -15243,10 +15399,10 @@ snapshots: istanbul-lib-instrument@6.0.0: dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.25.0 + '@babel/parser': 7.26.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 7.5.4 + semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -15258,7 +15414,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.6 + debug: 4.3.7 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -15300,7 +15456,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -15415,16 +15571,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): + jest-cli@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + create-jest: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -15441,7 +15597,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15472,7 +15628,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15503,7 +15659,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15534,7 +15690,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15565,7 +15721,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15588,14 +15744,14 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)): + jest-config@29.7.0(@types/node@22.8.7): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15613,20 +15769,50 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)): + dependencies: + '@babel/core': 7.25.2 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.25.2) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.8.7 ts-node: 10.9.1(@types/node@14.18.63)(typescript@5.3.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)): + jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15644,20 +15830,20 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 ts-node: 10.9.2(@types/node@18.17.19)(typescript@5.4.4) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.5)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15675,20 +15861,20 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 ts-node: 10.9.2(@types/node@18.17.19)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)): + jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15706,20 +15892,20 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 ts-node: 10.9.2(@types/node@18.17.19)(typescript@5.5.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): + jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15737,8 +15923,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.6.1 - ts-node: 10.9.2(@types/node@22.6.1)(typescript@5.5.4) + '@types/node': 22.8.7 + ts-node: 10.9.2(@types/node@22.8.7)(typescript@5.6.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -15767,7 +15953,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -15784,7 +15970,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.7 - '@types/node': 22.6.1 + '@types/node': 22.8.7 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -15815,7 +16001,7 @@ snapshots: '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.8 pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -15823,12 +16009,12 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.6.1 + '@types/node': 22.8.7 jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -15863,7 +16049,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -15891,7 +16077,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -15930,16 +16116,16 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.5.4 + semver: 7.6.3 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 @@ -15956,7 +16142,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.6.1 + '@types/node': 22.8.7 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -15965,7 +16151,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -16030,12 +16216,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): + jest@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + jest-cli: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -16075,7 +16261,7 @@ snapshots: chalk: 4.1.2 flow-parser: 0.217.0 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.8 neo-async: 2.6.2 node-dir: 0.1.17 recast: 0.23.4 @@ -16175,13 +16361,6 @@ snapshots: load-tsconfig@0.2.5: {} - load-yaml-file@0.2.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - locate-character@3.0.0: {} locate-path@3.0.0: @@ -16267,6 +16446,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -16339,8 +16522,8 @@ snapshots: mdast-util-from-markdown@1.3.1: dependencies: - '@types/mdast': 3.0.12 - '@types/unist': 2.0.8 + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 decode-named-character-reference: 1.0.2 mdast-util-to-string: 3.2.0 micromark: 3.2.0 @@ -16418,7 +16601,7 @@ snapshots: mdast-util-to-markdown@1.5.0: dependencies: '@types/mdast': 3.0.12 - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 longest-streak: 3.1.0 mdast-util-phrasing: 3.0.1 mdast-util-to-string: 3.2.0 @@ -16430,7 +16613,7 @@ snapshots: mdast-util-to-string@3.2.0: dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 mdn-data@2.0.30: {} @@ -16452,20 +16635,6 @@ snapshots: memorystream@0.3.1: {} - meow@6.1.1: - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 2.5.0 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.13.1 - yargs-parser: 18.1.3 - meow@9.0.0: dependencies: '@types/minimist': 1.2.5 @@ -16487,17 +16656,17 @@ snapshots: merge2@1.4.1: {} - mermaid@10.9.1: + mermaid@10.9.3: dependencies: '@braintree/sanitize-url': 6.0.4 '@types/d3-scale': 4.0.8 '@types/d3-scale-chromatic': 3.0.3 - cytoscape: 3.30.1 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.1) + cytoscape: 3.30.3 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.3) d3: 7.9.0 d3-sankey: 0.12.3 dagre-d3-es: 7.0.10 - dayjs: 1.11.10 + dayjs: 1.11.13 dompurify: 3.1.6 elkjs: 0.9.3 katex: 0.16.11 @@ -16505,7 +16674,7 @@ snapshots: lodash-es: 4.17.21 mdast-util-from-markdown: 1.3.1 non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.3.2 + stylis: 4.3.4 ts-dedent: 2.2.0 uuid: 9.0.1 web-worker: 1.3.0 @@ -16780,7 +16949,7 @@ snapshots: minipass@7.1.2: {} - minisearch@6.3.0: {} + minisearch@7.1.0: {} minizlib@2.1.2: dependencies: @@ -16789,8 +16958,6 @@ snapshots: mitt@3.0.1: {} - mixme@0.5.9: {} - mkdirp-classic@0.5.3: {} mkdirp@0.5.6: @@ -16879,9 +17046,9 @@ snapshots: optionalDependencies: typescript: 5.5.3 - nostr-tools@2.4.0(typescript@5.4.4): + nostr-tools@2.10.1(typescript@5.6.3): dependencies: - '@noble/ciphers': 0.5.2 + '@noble/ciphers': 0.5.3 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.1 '@scure/base': 1.1.1 @@ -16889,9 +17056,9 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.4.4 + typescript: 5.6.3 - nostr-tools@2.4.0(typescript@5.5.4): + nostr-tools@2.4.0(typescript@5.4.4): dependencies: '@noble/ciphers': 0.5.2 '@noble/curves': 1.2.0 @@ -16901,11 +17068,11 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.5.4 + typescript: 5.4.4 - nostr-tools@2.5.2(typescript@5.3.3): + nostr-tools@2.4.0(typescript@5.6.3): dependencies: - '@noble/ciphers': 0.5.3 + '@noble/ciphers': 0.5.2 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.1 '@scure/base': 1.1.1 @@ -16913,9 +17080,9 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.3.3 + typescript: 5.6.3 - nostr-tools@2.7.1(typescript@5.5.4): + nostr-tools@2.5.2(typescript@5.3.3): dependencies: '@noble/ciphers': 0.5.3 '@noble/curves': 1.2.0 @@ -16925,9 +17092,9 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.5.4 + typescript: 5.3.3 - nostr-tools@2.7.2(typescript@5.5.4): + nostr-tools@2.7.2(typescript@5.6.3): dependencies: '@noble/ciphers': 0.5.3 '@noble/curves': 1.2.0 @@ -16937,7 +17104,7 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.5.4 + typescript: 5.6.3 nostr-wasm@0.1.0: optional: true @@ -17007,7 +17174,7 @@ snapshots: oniguruma-to-js@0.4.3: dependencies: - regex: 4.3.2 + regex: 4.4.0 open@8.4.2: dependencies: @@ -17072,7 +17239,9 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.0: {} + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.2: {} pako@0.2.9: {} @@ -17155,6 +17324,8 @@ snapshots: picocolors@1.1.0: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} picomatch@4.0.2: {} @@ -17209,13 +17380,13 @@ snapshots: postcss: 8.4.47 ts-node: 10.9.1(@types/node@14.18.63)(typescript@5.3.3) - postcss-load-config@3.1.4(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2)): + postcss-load-config@3.1.4(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2)): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: postcss: 8.4.47 - ts-node: 10.9.2(@types/node@22.6.1)(typescript@5.2.2) + ts-node: 10.9.2(@types/node@22.8.7)(typescript@5.2.2) postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)): dependencies: @@ -17241,21 +17412,21 @@ snapshots: postcss: 8.4.47 ts-node: 10.9.2(@types/node@18.17.19)(typescript@5.5.3) - postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): + postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): dependencies: lilconfig: 2.1.0 yaml: 2.3.2 optionalDependencies: postcss: 8.4.47 - ts-node: 10.9.2(@types/node@22.6.1)(typescript@5.5.4) + ts-node: 10.9.2(@types/node@22.8.7)(typescript@5.6.3) - postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.5.1): + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.6.0): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 1.21.6 postcss: 8.4.47 - yaml: 2.5.1 + yaml: 2.6.0 postcss-nested@6.0.1(postcss@8.4.47): dependencies: @@ -17288,14 +17459,7 @@ snapshots: picocolors: 1.1.0 source-map-js: 1.2.1 - preact@10.22.0: {} - - preferred-pm@3.1.2: - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.0.0 + preact@10.24.3: {} prelude-ls@1.2.1: {} @@ -17306,8 +17470,6 @@ snapshots: prettier@2.8.8: {} - prettier@3.0.3: {} - prettier@3.3.3: {} pretty-format@27.5.1: @@ -17548,11 +17710,13 @@ snapshots: regenerator-runtime@0.14.0: {} + regenerator-runtime@0.14.1: {} + regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.22.15 + '@babel/runtime': 7.26.0 - regex@4.3.2: {} + regex@4.4.0: {} regexp.prototype.flags@1.5.1: dependencies: @@ -17617,8 +17781,6 @@ snapshots: require-directory@2.1.1: {} - require-main-filename@2.0.0: {} - requireindex@1.2.0: {} resolve-cwd@3.0.0: @@ -17644,7 +17806,7 @@ snapshots: reusify@1.0.4: {} - rfdc@1.3.1: {} + rfdc@1.4.1: {} rimraf@2.6.3: dependencies: @@ -17712,6 +17874,30 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 + rollup@4.24.4: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.4 + '@rollup/rollup-android-arm64': 4.24.4 + '@rollup/rollup-darwin-arm64': 4.24.4 + '@rollup/rollup-darwin-x64': 4.24.4 + '@rollup/rollup-freebsd-arm64': 4.24.4 + '@rollup/rollup-freebsd-x64': 4.24.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.4 + '@rollup/rollup-linux-arm-musleabihf': 4.24.4 + '@rollup/rollup-linux-arm64-gnu': 4.24.4 + '@rollup/rollup-linux-arm64-musl': 4.24.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.4 + '@rollup/rollup-linux-riscv64-gnu': 4.24.4 + '@rollup/rollup-linux-s390x-gnu': 4.24.4 + '@rollup/rollup-linux-x64-gnu': 4.24.4 + '@rollup/rollup-linux-x64-musl': 4.24.4 + '@rollup/rollup-win32-arm64-msvc': 4.24.4 + '@rollup/rollup-win32-ia32-msvc': 4.24.4 + '@rollup/rollup-win32-x64-msvc': 4.24.4 + fsevents: 2.3.3 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -17800,8 +17986,6 @@ snapshots: transitivePeerDependencies: - supports-color - set-blocking@2.0.0: {} - set-cookie-parser@2.7.0: {} set-function-name@2.0.1: @@ -17830,10 +18014,6 @@ snapshots: shell-quote@1.8.1: {} - shiki@1.10.0: - dependencies: - '@shikijs/core': 1.10.0 - shiki@1.18.0: dependencies: '@shikijs/core': 1.18.0 @@ -17843,9 +18023,14 @@ snapshots: '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 - shiki@1.7.0: + shiki@1.22.2: dependencies: - '@shikijs/core': 1.7.0 + '@shikijs/core': 1.22.2 + '@shikijs/engine-javascript': 1.22.2 + '@shikijs/engine-oniguruma': 1.22.2 + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 side-channel@1.0.4: dependencies: @@ -17867,15 +18052,6 @@ snapshots: slash@3.0.0: {} - smartwrap@2.0.2: - dependencies: - array.prototype.flat: 1.3.2 - breakword: 1.0.6 - grapheme-splitter: 1.0.4 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - yargs: 15.4.1 - sorcery@0.11.0: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -17885,8 +18061,6 @@ snapshots: source-map-js@1.0.2: {} - source-map-js@1.2.0: {} - source-map-js@1.2.1: {} source-map-support@0.5.13: @@ -17917,16 +18091,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.15 + spdx-license-ids: 3.0.20 - spdx-exceptions@2.3.0: {} + spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.15 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.15: {} + spdx-license-ids@3.0.20: {} speakingurl@14.0.1: {} @@ -17957,10 +18131,6 @@ snapshots: stream-shift@1.0.1: {} - stream-transform@2.1.3: - dependencies: - mixme: 0.5.9 - string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -18035,7 +18205,7 @@ snapshots: strip-json-comments@3.1.1: {} - stylis@4.3.2: {} + stylis@4.3.4: {} sucrase@3.34.0: dependencies: @@ -18057,6 +18227,10 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 + superjson@2.2.1: + dependencies: + copy-anything: 3.0.5 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -18076,7 +18250,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.5.4): + svelte-check@4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.6.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 @@ -18084,7 +18258,7 @@ snapshots: picocolors: 1.1.0 sade: 1.8.1 svelte: 4.2.19 - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - picomatch @@ -18112,7 +18286,7 @@ snapshots: marked: 5.1.2 svelte: 4.2.19 - svelte-preprocess@5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4): + svelte-preprocess@5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3): dependencies: '@types/pug': 2.0.7 detect-indent: 6.1.0 @@ -18123,19 +18297,19 @@ snapshots: optionalDependencies: '@babel/core': 7.25.2 postcss: 8.4.47 - postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) - typescript: 5.5.4 + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + typescript: 5.6.3 svelte-time@0.9.0: dependencies: dayjs: 1.11.13 - svelte2tsx@0.7.19(svelte@4.2.19)(typescript@5.5.4): + svelte2tsx@0.7.19(svelte@4.2.19)(typescript@5.6.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 svelte: 4.2.19 - typescript: 5.5.4 + typescript: 5.6.3 svelte@4.2.19: dependencies: @@ -18166,7 +18340,7 @@ snapshots: tabbable@6.2.0: {} - tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): + tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -18185,7 +18359,7 @@ snapshots: postcss: 8.4.47 postcss-import: 15.1.0(postcss@8.4.47) postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) postcss-nested: 6.0.1(postcss@8.4.47) postcss-selector-parser: 6.0.13 resolve: 1.22.6 @@ -18193,7 +18367,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.13(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): + tailwindcss@3.4.13(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -18212,7 +18386,7 @@ snapshots: postcss: 8.4.47 postcss-import: 15.1.0(postcss@8.4.47) postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) postcss-nested: 6.0.1(postcss@8.4.47) postcss-selector-parser: 6.0.13 resolve: 1.22.6 @@ -18292,6 +18466,13 @@ snapshots: tiny-invariant@1.3.1: {} + tinyexec@0.3.1: {} + + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tinyglobby@0.2.6: dependencies: fdir: 6.3.0(picomatch@4.0.2) @@ -18333,9 +18514,9 @@ snapshots: dependencies: typescript: 5.2.2 - ts-api-utils@1.0.3(typescript@5.5.4): + ts-api-utils@1.0.3(typescript@5.6.3): dependencies: - typescript: 5.5.4 + typescript: 5.6.3 ts-dedent@2.2.0: {} @@ -18397,57 +18578,58 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.25.2) esbuild: 0.17.19 - ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(typescript@5.5.4): + ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.1)(jest@29.7.0(@types/node@22.6.1))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + jest: 29.7.0(@types/node@22.6.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.5.4 + typescript: 5.6.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.25.2 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) - esbuild: 0.24.0 + esbuild: 0.23.1 - ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@18.17.19)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)))(typescript@5.5.3): + ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@18.17.19)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)) + jest: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.5.3 + typescript: 5.6.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.25.2 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) + esbuild: 0.24.0 - ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@22.6.1))(typescript@5.5.4): + ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@18.17.19)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)))(typescript@5.5.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.6.1) + jest: 29.7.0(@types/node@18.17.19)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.5.4 + typescript: 5.5.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.25.2 @@ -18527,14 +18709,14 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2): + ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.6.1 + '@types/node': 22.8.7 acorn: 8.11.3 acorn-walk: 8.2.0 arg: 4.1.3 @@ -18546,21 +18728,21 @@ snapshots: yn: 3.1.1 optional: true - ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4): + ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.6.1 + '@types/node': 22.8.7 acorn: 8.11.3 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 5.6.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -18588,7 +18770,7 @@ snapshots: tseep@1.1.1: {} - tseep@1.2.2: {} + tseep@1.3.1: {} tslib@1.14.1: {} @@ -18601,7 +18783,7 @@ snapshots: bundle-require: 4.0.1(esbuild@0.17.19) cac: 6.7.14 chokidar: 3.5.3 - debug: 4.3.6 + debug: 4.3.4 esbuild: 0.17.19 execa: 5.1.1 globby: 11.1.0 @@ -18688,7 +18870,7 @@ snapshots: - supports-color - ts-node - tsup@7.2.0(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4))(typescript@5.5.4): + tsup@7.2.0(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))(typescript@5.6.3): dependencies: bundle-require: 4.0.1(esbuild@0.18.20) cac: 6.7.14 @@ -18698,7 +18880,7 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) resolve-from: 5.0.0 rollup: 3.29.3 source-map: 0.8.0-beta.0 @@ -18706,23 +18888,23 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.47 - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - ts-node - tsup@8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.5.4)(yaml@2.5.1): + tsup@8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.6.3)(yaml@2.6.0): dependencies: bundle-require: 5.0.0(esbuild@0.23.1) cac: 6.7.14 chokidar: 3.6.0 consola: 3.2.3 - debug: 4.3.6 + debug: 4.3.7 esbuild: 0.23.1 execa: 5.1.1 joycon: 3.1.1 picocolors: 1.0.1 - postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.5.1) + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.6.0) resolve-from: 5.0.0 rollup: 4.22.4 source-map: 0.8.0-beta.0 @@ -18731,54 +18913,71 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.47 - typescript: 5.5.4 + typescript: 5.6.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - tsutils@3.21.0(typescript@5.5.4): + tsup@8.3.5(jiti@1.21.6)(postcss@8.4.47)(typescript@5.6.3)(yaml@2.6.0): dependencies: - tslib: 1.14.1 - typescript: 5.5.4 + bundle-require: 5.0.0(esbuild@0.24.0) + cac: 6.7.14 + chokidar: 4.0.1 + consola: 3.2.3 + debug: 4.3.7 + esbuild: 0.24.0 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.6.0) + resolve-from: 5.0.0 + rollup: 4.24.4 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.1 + tinyglobby: 0.2.10 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.4.47 + typescript: 5.6.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml - tty-table@4.2.1: + tsutils@3.21.0(typescript@5.6.3): dependencies: - chalk: 4.1.2 - csv: 5.5.3 - kleur: 4.1.5 - smartwrap: 2.0.2 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - yargs: 17.7.2 + tslib: 1.14.1 + typescript: 5.6.3 - turbo-darwin-64@1.10.14: + turbo-darwin-64@1.13.4: optional: true - turbo-darwin-arm64@1.10.14: + turbo-darwin-arm64@1.13.4: optional: true - turbo-linux-64@1.10.14: + turbo-linux-64@1.13.4: optional: true - turbo-linux-arm64@1.10.14: + turbo-linux-arm64@1.13.4: optional: true - turbo-windows-64@1.10.14: + turbo-windows-64@1.13.4: optional: true - turbo-windows-arm64@1.10.14: + turbo-windows-arm64@1.13.4: optional: true - turbo@1.10.14: + turbo@1.13.4: optionalDependencies: - turbo-darwin-64: 1.10.14 - turbo-darwin-arm64: 1.10.14 - turbo-linux-64: 1.10.14 - turbo-linux-arm64: 1.10.14 - turbo-windows-64: 1.10.14 - turbo-windows-arm64: 1.10.14 + turbo-darwin-64: 1.13.4 + turbo-darwin-arm64: 1.13.4 + turbo-linux-64: 1.13.4 + turbo-linux-arm64: 1.13.4 + turbo-windows-64: 1.13.4 + turbo-windows-arm64: 1.13.4 type-check@0.4.0: dependencies: @@ -18786,8 +18985,6 @@ snapshots: type-detect@4.0.8: {} - type-fest@0.13.1: {} - type-fest@0.16.0: {} type-fest@0.18.1: {} @@ -18844,21 +19041,30 @@ snapshots: typedarray@0.0.6: {} - typedoc-plugin-markdown@4.2.9(typedoc@0.26.7(typescript@5.5.4)): + typedoc-plugin-markdown@4.2.9(typedoc@0.26.7(typescript@5.6.3)): dependencies: - typedoc: 0.26.7(typescript@5.5.4) + typedoc: 0.26.7(typescript@5.6.3) - typedoc-plugin-rename-defaults@0.6.6(typedoc@0.26.7(typescript@5.5.4)): + typedoc-plugin-rename-defaults@0.6.7(typedoc@0.26.11(typescript@5.6.3)): dependencies: - typedoc: 0.26.7(typescript@5.5.4) + typedoc: 0.26.11(typescript@5.6.3) + + typedoc@0.26.11(typescript@5.6.3): + dependencies: + lunr: 2.3.9 + markdown-it: 14.1.0 + minimatch: 9.0.5 + shiki: 1.22.2 + typescript: 5.6.3 + yaml: 2.6.0 - typedoc@0.26.7(typescript@5.5.4): + typedoc@0.26.7(typescript@5.6.3): dependencies: lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 shiki: 1.18.0 - typescript: 5.5.4 + typescript: 5.6.3 yaml: 2.5.1 types-ramda@0.29.10: @@ -18877,7 +19083,7 @@ snapshots: typescript@5.5.3: {} - typescript@5.5.4: {} + typescript@5.6.3: {} uc.micro@2.1.0: {} @@ -18908,7 +19114,7 @@ snapshots: unified@10.1.2: dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 bail: 2.0.2 extend: 3.0.2 is-buffer: 2.0.5 @@ -18950,15 +19156,15 @@ snapshots: unist-util-stringify-position@3.0.3: dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 3.0.3 + '@types/unist': 3.0.0 unist-util-visit-parents@3.1.1: dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 unist-util-is: 4.1.0 unist-util-visit-parents@5.1.3: @@ -18973,13 +19179,13 @@ snapshots: unist-util-visit@2.0.3: dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 unist-util-is: 4.1.0 unist-util-visit-parents: 3.1.1 unist-util-visit@4.1.2: dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 @@ -18998,7 +19204,7 @@ snapshots: unplugin@1.5.0: dependencies: acorn: 8.14.0 - chokidar: 3.5.3 + chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 @@ -19064,7 +19270,7 @@ snapshots: uvu@0.5.6: dependencies: dequal: 2.0.3 - diff: 5.1.0 + diff: 5.2.0 kleur: 4.1.5 sade: 1.8.1 @@ -19092,17 +19298,17 @@ snapshots: vfile-message@3.1.4: dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 unist-util-stringify-position: 3.0.3 vfile-message@4.0.2: dependencies: - '@types/unist': 3.0.3 + '@types/unist': 3.0.0 unist-util-stringify-position: 4.0.0 vfile@5.3.7: dependencies: - '@types/unist': 2.0.8 + '@types/unist': 2.0.11 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 @@ -19118,44 +19324,54 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@5.4.8(@types/node@22.6.1): + vite@5.4.10(@types/node@22.8.7): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.24.4 + optionalDependencies: + '@types/node': 22.8.7 + fsevents: 2.3.3 + + vite@5.4.8(@types/node@22.8.7): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.24.0 optionalDependencies: - '@types/node': 22.6.1 + '@types/node': 22.8.7 fsevents: 2.3.3 - vitefu@0.2.5(vite@5.4.8(@types/node@22.6.1)): + vitefu@0.2.5(vite@5.4.8(@types/node@22.8.7)): optionalDependencies: - vite: 5.4.8(@types/node@22.6.1) + vite: 5.4.8(@types/node@22.8.7) - vitepress-plugin-mermaid@2.0.16(mermaid@10.9.1)(vitepress@1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4)): + vitepress-plugin-mermaid@2.0.17(mermaid@10.9.3)(vitepress@1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3)): dependencies: - mermaid: 10.9.1 - vitepress: 1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4) + mermaid: 10.9.3 + vitepress: 1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3) optionalDependencies: '@mermaid-js/mermaid-mindmap': 9.3.0 - vitepress@1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4): - dependencies: - '@docsearch/css': 3.6.0 - '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0) - '@shikijs/core': 1.10.0 - '@shikijs/transformers': 1.7.0 - '@types/markdown-it': 14.1.1 - '@vitejs/plugin-vue': 5.0.5(vite@5.4.8(@types/node@22.6.1))(vue@3.4.27(typescript@5.5.4)) - '@vue/devtools-api': 7.2.1(vue@3.4.27(typescript@5.5.4)) - '@vue/shared': 3.4.27 - '@vueuse/core': 10.11.0(vue@3.4.27(typescript@5.5.4)) - '@vueuse/integrations': 10.11.0(focus-trap@7.5.4)(vue@3.4.27(typescript@5.5.4)) - focus-trap: 7.5.4 + vitepress@1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3): + dependencies: + '@docsearch/css': 3.6.3 + '@docsearch/js': 3.6.3(@algolia/client-search@5.12.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0) + '@shikijs/core': 1.22.2 + '@shikijs/transformers': 1.22.2 + '@shikijs/types': 1.22.2 + '@types/markdown-it': 14.1.2 + '@vitejs/plugin-vue': 5.1.4(vite@5.4.10(@types/node@22.8.7))(vue@3.5.12(typescript@5.6.3)) + '@vue/devtools-api': 7.6.2 + '@vue/shared': 3.5.12 + '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) + '@vueuse/integrations': 11.2.0(focus-trap@7.6.0)(vue@3.5.12(typescript@5.6.3)) + focus-trap: 7.6.0 mark.js: 8.11.1 - minisearch: 6.3.0 - shiki: 1.10.0 - vite: 5.4.8(@types/node@22.6.1) - vue: 3.4.27(typescript@5.5.4) + minisearch: 7.1.0 + shiki: 1.22.2 + vite: 5.4.10(@types/node@22.8.7) + vue: 3.5.12(typescript@5.6.3) optionalDependencies: postcss: 8.4.47 transitivePeerDependencies: @@ -19186,19 +19402,19 @@ snapshots: - typescript - universal-cookie - vue-demi@0.14.8(vue@3.4.27(typescript@5.5.4)): + vue-demi@0.14.10(vue@3.5.12(typescript@5.6.3)): dependencies: - vue: 3.4.27(typescript@5.5.4) + vue: 3.5.12(typescript@5.6.3) - vue@3.4.27(typescript@5.5.4): + vue@3.5.12(typescript@5.6.3): dependencies: - '@vue/compiler-dom': 3.4.27 - '@vue/compiler-sfc': 3.4.27 - '@vue/runtime-dom': 3.4.27 - '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@5.5.4)) - '@vue/shared': 3.4.27 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-sfc': 3.5.12 + '@vue/runtime-dom': 3.5.12 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.6.3)) + '@vue/shared': 3.5.12 optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.3 walker@1.0.8: dependencies: @@ -19271,13 +19487,6 @@ snapshots: is-weakmap: 2.0.1 is-weakset: 2.0.2 - which-module@2.0.1: {} - - which-pm@2.0.0: - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - which-typed-array@1.1.11: dependencies: available-typed-arrays: 1.0.5 @@ -19298,12 +19507,6 @@ snapshots: wordwrap@1.0.0: {} - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -19343,8 +19546,6 @@ snapshots: xtend@4.0.2: {} - y18n@4.0.3: {} - y18n@5.0.8: {} yaeti@0.0.6: {} @@ -19361,29 +19562,12 @@ snapshots: yaml@2.5.1: {} - yargs-parser@18.1.3: - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 + yaml@2.6.0: {} yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} - yargs@15.4.1: - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 18.1.3 - yargs@17.7.2: dependencies: cliui: 8.0.1 From d85d540f8643af8fd04e58ca72633b8c26a938a2 Mon Sep 17 00:00:00 2001 From: rodant Date: Mon, 4 Nov 2024 13:04:34 +0100 Subject: [PATCH 11/21] Revert dev dependency changes. --- package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 39875ff8..6739577a 100755 --- a/package.json +++ b/package.json @@ -15,16 +15,16 @@ }, "devDependencies": { "@braintree/sanitize-url": "^7.1.0", - "@changesets/cli": "^2.27.9", + "@changesets/cli": "^2.22.0", "@nostr-dev-kit/eslint-config-custom": "workspace:*", "@nostr-dev-kit/tsconfig": "workspace:*", - "eslint": "^9.14.0", - "mermaid": "^10.9.3", - "prettier": "^3.3.3", - "turbo": "^1.13.4", - "typescript": "^5.6.3", - "vitepress": "^1.4.5", - "vitepress-plugin-mermaid": "^2.0.17" + "eslint": "^9.13.0", + "mermaid": "^10.9.1", + "prettier": "^3.0.3", + "turbo": "^1.10.14", + "typescript": "^5.5.4", + "vitepress": "^1.2.3", + "vitepress-plugin-mermaid": "^2.0.16" }, "packageManager": "pnpm@8.15.6", "engines": { From e65ec14e3e04a4f9588595f216abad04e7232f95 Mon Sep 17 00:00:00 2001 From: rodant Date: Mon, 4 Nov 2024 13:10:28 +0100 Subject: [PATCH 12/21] Fallback to original pnpm-lock file. --- pnpm-lock.yaml | 2634 ++++++++++++++++++++++-------------------------- 1 file changed, 1225 insertions(+), 1409 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2216bbc1..d5615da7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^7.1.0 version: 7.1.0 '@changesets/cli': - specifier: ^2.27.9 - version: 2.27.9 + specifier: ^2.22.0 + version: 2.26.2 '@nostr-dev-kit/eslint-config-custom': specifier: workspace:* version: link:packages/eslint-config-custom @@ -21,26 +21,26 @@ importers: specifier: workspace:* version: link:packages/tsconfig eslint: - specifier: ^9.14.0 - version: 9.14.0(jiti@1.21.6) + specifier: ^9.13.0 + version: 9.13.0(jiti@1.21.6) mermaid: - specifier: ^10.9.3 - version: 10.9.3 + specifier: ^10.9.1 + version: 10.9.1 prettier: - specifier: ^3.3.3 - version: 3.3.3 + specifier: ^3.0.3 + version: 3.0.3 turbo: - specifier: ^1.13.4 - version: 1.13.4 + specifier: ^1.10.14 + version: 1.10.14 typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.5.4 + version: 5.5.4 vitepress: - specifier: ^1.4.5 - version: 1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3) + specifier: ^1.2.3 + version: 1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4) vitepress-plugin-mermaid: - specifier: ^2.0.17 - version: 2.0.17(mermaid@10.9.3)(vitepress@1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3)) + specifier: ^2.0.16 + version: 2.0.16(mermaid@10.9.1)(vitepress@1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4)) demos: dependencies: @@ -137,16 +137,16 @@ importers: version: 1.1.9 debug: specifier: ^4.3.6 - version: 4.3.7 + version: 4.3.6 light-bolt11-decoder: specifier: ^3.2.0 version: 3.2.0 nostr-tools: specifier: ^2.7.1 - version: 2.10.1(typescript@5.6.3) + version: 2.7.1(typescript@5.5.4) tseep: specifier: ^1.2.2 - version: 1.3.1 + version: 1.2.2 typescript-lru-cache: specifier: ^2.0.0 version: 2.0.0 @@ -168,10 +168,10 @@ importers: version: 4.1.12 '@types/jest': specifier: ^29.5.5 - version: 29.5.14 + version: 29.5.5 '@types/node': specifier: ^22.6.1 - version: 22.8.7 + version: 22.6.1 esbuild: specifier: ^0.24.0 version: 0.24.0 @@ -183,28 +183,28 @@ importers: version: 1.0.6 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + version: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) jest-fetch-mock: specifier: ^3.0.3 version: 3.0.3 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.8.7)(typescript@5.6.3) + version: 10.9.2(@types/node@22.6.1)(typescript@5.5.4) tsd: specifier: ^0.31.2 version: 0.31.2 tsup: specifier: ^8.3.0 - version: 8.3.5(jiti@1.21.6)(postcss@8.4.47)(typescript@5.6.3)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.5.4)(yaml@2.5.1) typedoc: specifier: ^0.26.7 - version: 0.26.11(typescript@5.6.3) + version: 0.26.7(typescript@5.5.4) typedoc-plugin-rename-defaults: specifier: ^0.6.6 - version: 0.6.7(typedoc@0.26.11(typescript@5.6.3)) + version: 0.6.6(typedoc@0.26.7(typescript@5.5.4)) ndk-cache-dexie: dependencies: @@ -219,7 +219,7 @@ importers: version: 4.0.8 nostr-tools: specifier: ^2.4.0 - version: 2.4.0(typescript@5.6.3) + version: 2.4.0(typescript@5.5.4) typescript-lru-cache: specifier: ^2.0.0 version: 2.0.0 @@ -250,16 +250,16 @@ importers: version: 3.3.3 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.1)(jest@29.7.0(@types/node@22.6.1))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@22.6.1))(typescript@5.5.4) tsup: specifier: ^8.3.0 - version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.6.3)(yaml@2.6.0) + version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.5.4)(yaml@2.5.1) typedoc: specifier: ^0.26.7 - version: 0.26.7(typescript@5.6.3) + version: 0.26.7(typescript@5.5.4) typedoc-plugin-markdown: specifier: ^4.2.8 - version: 4.2.9(typedoc@0.26.7(typescript@5.6.3)) + version: 4.2.9(typedoc@0.26.7(typescript@5.5.4)) ndk-cache-nostr: dependencies: @@ -367,7 +367,7 @@ importers: version: link:../packages/tsconfig tsup: specifier: ^7.2.0 - version: 7.2.0(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))(typescript@5.6.3) + version: 7.2.0(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4))(typescript@5.5.4) ndk-svelte-components: dependencies: @@ -376,7 +376,7 @@ importers: version: link:../ndk '@sveltejs/vite-plugin-svelte': specifier: ^3.1.2 - version: 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) classnames: specifier: ^2.5.1 version: 2.5.1 @@ -397,7 +397,7 @@ importers: version: 1.1.9(marked@14.1.2) nostr-tools: specifier: ^2.7.2 - version: 2.7.2(typescript@5.6.3) + version: 2.7.2(typescript@5.5.4) ramda: specifier: ^0.29.1 version: 0.29.1 @@ -415,7 +415,7 @@ importers: version: 0.4.1(svelte@4.2.19) svelte-preprocess: specifier: ^5.1.4 - version: 5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3) + version: 5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4) svelte-time: specifier: ^0.9.0 version: 0.9.0 @@ -461,7 +461,7 @@ importers: version: 7.6.20(svelte@4.2.19) '@storybook/sveltekit': specifier: ^7.6.20 - version: 7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7)) + version: 7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -470,13 +470,13 @@ importers: version: 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sveltejs/adapter-auto': specifier: ^2.1.1 - version: 2.1.1(@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))) + version: 2.1.1(@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))) '@sveltejs/kit': specifier: ^2.6.4 - version: 2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + version: 2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) '@sveltejs/package': specifier: ^2.3.5 - version: 2.3.5(svelte@4.2.19)(typescript@5.6.3) + version: 2.3.5(svelte@4.2.19)(typescript@5.5.4) '@types/ramda': specifier: ^0.29.12 version: 0.29.12 @@ -485,16 +485,16 @@ importers: version: 2.13.0 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.6.3))(eslint@8.4.1)(typescript@5.6.3) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.5.4))(eslint@8.4.1)(typescript@5.5.4) '@typescript-eslint/parser': specifier: ^6.21.0 - version: 6.21.0(eslint@8.4.1)(typescript@5.6.3) + version: 6.21.0(eslint@8.4.1)(typescript@5.5.4) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) eslint-plugin-storybook: specifier: 0.6.14 - version: 0.6.14(eslint@8.4.1)(typescript@5.6.3) + version: 0.6.14(eslint@8.4.1)(typescript@5.5.4) mdsvex: specifier: ^0.12.3 version: 0.12.3(svelte@4.2.19) @@ -524,16 +524,16 @@ importers: version: 4.2.19 svelte-check: specifier: ^4.0.4 - version: 4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.6.3) + version: 4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.5.4) tailwindcss: specifier: ^3.4.12 - version: 3.4.13(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + version: 3.4.13(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) tslib: specifier: ^2.7.0 version: 2.7.0 vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@22.8.7) + version: 5.4.8(@types/node@22.6.1) ndk-wallet: dependencies: @@ -597,19 +597,19 @@ importers: dependencies: '@typescript-eslint/eslint-plugin': specifier: ^6.7.2 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2))(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2))(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) '@typescript-eslint/parser': specifier: ^6.7.2 - version: 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) + version: 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) eslint-config-prettier: specifier: ^9.0.0 - version: 9.0.0(eslint@9.14.0(jiti@1.21.6)) + version: 9.0.0(eslint@9.13.0(jiti@1.21.6)) eslint-config-turbo: specifier: latest - version: 2.2.3(eslint@9.14.0(jiti@1.21.6)) + version: 2.2.3(eslint@9.13.0(jiti@1.21.6)) eslint-plugin-svelte: specifier: ^2.33.2 - version: 2.33.2(eslint@9.14.0(jiti@1.21.6))(svelte@4.2.19)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2)) + version: 2.33.2(eslint@9.13.0(jiti@1.21.6))(svelte@4.2.19)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2)) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -618,13 +618,13 @@ importers: devDependencies: '@tailwindcss/typography': specifier: ^0.5.9 - version: 0.5.10(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))) + version: 0.5.10(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4))) daisyui: specifier: ^3.7.3 - version: 3.7.7(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + version: 3.7.7(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) tailwindcss: specifier: ^3.3.3 - version: 3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + version: 3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) packages/tsconfig: {} @@ -638,14 +638,8 @@ packages: peerDependencies: search-insights: '>= 1 < 3' - '@algolia/autocomplete-preset-algolia@1.17.6': - resolution: {integrity: sha512-Cvg5JENdSCMuClwhJ1ON1/jSuojaYMiUW2KePm18IkdCzPJj/NXojaOxw58RFtQFpJgfVW8h2E8mEoDtLlMdeA==} - peerDependencies: - '@algolia/client-search': '>= 4.9.1 < 6' - algoliasearch: '>= 4.9.1 < 6' - - '@algolia/autocomplete-shared@1.17.6': - resolution: {integrity: sha512-aq/3V9E00Tw2GC/PqgyPGXtqJUlVc17v4cn1EUhSc+O/4zd04Uwb3UmPm8KDaYQQOrkt1lwvCj2vG2wRE5IKhw==} + '@algolia/autocomplete-preset-algolia@1.9.3': + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' @@ -656,57 +650,68 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.12.0': - resolution: {integrity: sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==} - engines: {node: '>= 14.0.0'} + '@algolia/cache-browser-local-storage@4.23.3': + resolution: {integrity: sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==} + + '@algolia/cache-common@4.23.3': + resolution: {integrity: sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==} + + '@algolia/cache-common@4.24.0': + resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==} + + '@algolia/cache-in-memory@4.23.3': + resolution: {integrity: sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==} + + '@algolia/client-account@4.23.3': + resolution: {integrity: sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==} - '@algolia/client-analytics@5.12.0': - resolution: {integrity: sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==} - engines: {node: '>= 14.0.0'} + '@algolia/client-analytics@4.23.3': + resolution: {integrity: sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==} - '@algolia/client-common@5.12.0': - resolution: {integrity: sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==} - engines: {node: '>= 14.0.0'} + '@algolia/client-common@4.23.3': + resolution: {integrity: sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==} - '@algolia/client-insights@5.12.0': - resolution: {integrity: sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==} - engines: {node: '>= 14.0.0'} + '@algolia/client-common@4.24.0': + resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} - '@algolia/client-personalization@5.12.0': - resolution: {integrity: sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==} - engines: {node: '>= 14.0.0'} + '@algolia/client-personalization@4.23.3': + resolution: {integrity: sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==} - '@algolia/client-query-suggestions@5.12.0': - resolution: {integrity: sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==} - engines: {node: '>= 14.0.0'} + '@algolia/client-search@4.23.3': + resolution: {integrity: sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==} - '@algolia/client-search@5.12.0': - resolution: {integrity: sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==} - engines: {node: '>= 14.0.0'} + '@algolia/client-search@4.24.0': + resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} - '@algolia/ingestion@1.12.0': - resolution: {integrity: sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==} - engines: {node: '>= 14.0.0'} + '@algolia/logger-common@4.23.3': + resolution: {integrity: sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==} - '@algolia/monitoring@1.12.0': - resolution: {integrity: sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==} - engines: {node: '>= 14.0.0'} + '@algolia/logger-common@4.24.0': + resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} - '@algolia/recommend@5.12.0': - resolution: {integrity: sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==} - engines: {node: '>= 14.0.0'} + '@algolia/logger-console@4.23.3': + resolution: {integrity: sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==} - '@algolia/requester-browser-xhr@5.12.0': - resolution: {integrity: sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==} - engines: {node: '>= 14.0.0'} + '@algolia/recommend@4.23.3': + resolution: {integrity: sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==} - '@algolia/requester-fetch@5.12.0': - resolution: {integrity: sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==} - engines: {node: '>= 14.0.0'} + '@algolia/requester-browser-xhr@4.23.3': + resolution: {integrity: sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==} - '@algolia/requester-node-http@5.12.0': - resolution: {integrity: sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==} - engines: {node: '>= 14.0.0'} + '@algolia/requester-common@4.23.3': + resolution: {integrity: sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==} + + '@algolia/requester-common@4.24.0': + resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} + + '@algolia/requester-node-http@4.23.3': + resolution: {integrity: sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==} + + '@algolia/transporter@4.23.3': + resolution: {integrity: sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==} + + '@algolia/transporter@4.24.0': + resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} @@ -873,18 +878,10 @@ packages: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} @@ -906,8 +903,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -1438,10 +1435,6 @@ packages: resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.26.0': - resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} - engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} @@ -1462,10 +1455,6 @@ packages: resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} - engines: {node: '>=6.9.0'} - '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1481,60 +1470,57 @@ packages: '@cashu/crypto@0.2.7': resolution: {integrity: sha512-1aaDfUjiHNXoJqg8nW+341TLWV9W28DsVNXJUKcHL0yAmwLs5+56SSnb8LLDJzPamLVoYL0U0bda91klAzptig==} - '@changesets/apply-release-plan@7.0.5': - resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} + '@changesets/apply-release-plan@6.1.4': + resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} - '@changesets/assemble-release-plan@6.0.4': - resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} + '@changesets/assemble-release-plan@5.2.4': + resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} - '@changesets/changelog-git@0.2.0': - resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + '@changesets/changelog-git@0.1.14': + resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} - '@changesets/cli@2.27.9': - resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} + '@changesets/cli@2.26.2': + resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} hasBin: true - '@changesets/config@3.0.3': - resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} + '@changesets/config@2.3.1': + resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + '@changesets/errors@0.1.4': + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} - '@changesets/get-dependents-graph@2.1.2': - resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} + '@changesets/get-dependents-graph@1.3.6': + resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} - '@changesets/get-release-plan@4.0.4': - resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} + '@changesets/get-release-plan@3.0.17': + resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + '@changesets/get-version-range-type@0.3.2': + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} - '@changesets/git@3.0.1': - resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} + '@changesets/git@2.0.0': + resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + '@changesets/logger@0.0.5': + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} - '@changesets/parse@0.4.0': - resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} + '@changesets/parse@0.3.16': + resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} - '@changesets/pre@2.0.1': - resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} + '@changesets/pre@1.0.14': + resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} - '@changesets/read@0.6.1': - resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} - - '@changesets/should-skip-package@0.1.1': - resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} + '@changesets/read@0.5.9': + resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} '@changesets/types@4.1.0': resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - '@changesets/types@6.0.0': - resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + '@changesets/types@5.2.1': + resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} - '@changesets/write@0.3.2': - resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + '@changesets/write@0.2.3': + resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -1548,14 +1534,14 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - '@docsearch/css@3.6.3': - resolution: {integrity: sha512-3uvbg8E7rhqE1C4oBAK3tGlS2qfhi9zpfZgH/yjDPF73vd9B41urVIKujF4rczcF4E3qs34SedhehiDJ4UdNBA==} + '@docsearch/css@3.6.0': + resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} - '@docsearch/js@3.6.3': - resolution: {integrity: sha512-2mBFomaN6VijyQQGwieERDu9GeE0hlv9TQRZBTOYsPQW7/vqtd4hnHEkbBbaBRiS4PYcy+UhikbMuDExJs63UA==} + '@docsearch/js@3.6.0': + resolution: {integrity: sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==} - '@docsearch/react@3.6.3': - resolution: {integrity: sha512-2munr4uBuZq1PG+Ge+F+ldIdxb3Wi8OmEIv2tQQb4RvEvvph+xtQkxwHzVIEnt5s+HecwucuXwB+3JhcZboFLg==} + '@docsearch/react@3.6.0': + resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -2302,16 +2288,16 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.14.0': - resolution: {integrity: sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==} + '@eslint/js@9.13.0': + resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.2': - resolution: {integrity: sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==} + '@eslint/plugin-kit@0.2.1': + resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fal-works/esbuild-plugin-global-externals@2.1.2': @@ -2361,10 +2347,6 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.0': - resolution: {integrity: sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==} - engines: {node: '>=18.18'} - '@ioredis/commands@1.2.0': resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} @@ -2868,11 +2850,6 @@ packages: cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.24.4': - resolution: {integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm64@4.22.4': resolution: {integrity: sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==} cpu: [arm64] @@ -2883,11 +2860,6 @@ packages: cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.24.4': - resolution: {integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==} - cpu: [arm64] - os: [android] - '@rollup/rollup-darwin-arm64@4.22.4': resolution: {integrity: sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==} cpu: [arm64] @@ -2898,11 +2870,6 @@ packages: cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.24.4': - resolution: {integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.22.4': resolution: {integrity: sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==} cpu: [x64] @@ -2913,21 +2880,6 @@ packages: cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.24.4': - resolution: {integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.24.4': - resolution: {integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.24.4': - resolution: {integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.22.4': resolution: {integrity: sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==} cpu: [arm] @@ -2938,11 +2890,6 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.24.4': - resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.22.4': resolution: {integrity: sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==} cpu: [arm] @@ -2953,11 +2900,6 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.4': - resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.22.4': resolution: {integrity: sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==} cpu: [arm64] @@ -2968,11 +2910,6 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.4': - resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.22.4': resolution: {integrity: sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==} cpu: [arm64] @@ -2983,11 +2920,6 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.4': - resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': resolution: {integrity: sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==} cpu: [ppc64] @@ -2998,11 +2930,6 @@ packages: cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': - resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.22.4': resolution: {integrity: sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==} cpu: [riscv64] @@ -3013,11 +2940,6 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.4': - resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.22.4': resolution: {integrity: sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==} cpu: [s390x] @@ -3028,11 +2950,6 @@ packages: cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.4': - resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.22.4': resolution: {integrity: sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==} cpu: [x64] @@ -3043,11 +2960,6 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.4': - resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.22.4': resolution: {integrity: sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==} cpu: [x64] @@ -3058,11 +2970,6 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.4': - resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==} - cpu: [x64] - os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.22.4': resolution: {integrity: sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==} cpu: [arm64] @@ -3073,11 +2980,6 @@ packages: cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.24.4': - resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.22.4': resolution: {integrity: sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==} cpu: [ia32] @@ -3088,11 +2990,6 @@ packages: cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.4': - resolution: {integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.22.4': resolution: {integrity: sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==} cpu: [x64] @@ -3103,11 +3000,6 @@ packages: cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.4': - resolution: {integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==} - cpu: [x64] - os: [win32] - '@scure/base@1.1.1': resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} @@ -3129,39 +3021,30 @@ packages: '@scure/bip39@1.4.0': resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} + '@shikijs/core@1.10.0': + resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==} + '@shikijs/core@1.18.0': resolution: {integrity: sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ==} - '@shikijs/core@1.22.2': - resolution: {integrity: sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==} + '@shikijs/core@1.7.0': + resolution: {integrity: sha512-O6j27b7dGmJbR3mjwh/aHH8Ld+GQvA0OQsNO43wKWnqbAae3AYXrhFyScHGX8hXZD6vX2ngjzDFkZY5srtIJbQ==} '@shikijs/engine-javascript@1.18.0': resolution: {integrity: sha512-qoP/aO/ATNwYAUw1YMdaip/YVEstMZEgrwhePm83Ll9OeQPuxDZd48szZR8oSQNQBT8m8UlWxZv8EA3lFuyI5A==} - '@shikijs/engine-javascript@1.22.2': - resolution: {integrity: sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==} - '@shikijs/engine-oniguruma@1.18.0': resolution: {integrity: sha512-B9u0ZKI/cud+TcmF8Chyh+R4V5qQVvyDOqXC2l2a4x73PBSBc6sZ0JRAX3eqyJswqir6ktwApUUGBYePdKnMJg==} - '@shikijs/engine-oniguruma@1.22.2': - resolution: {integrity: sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==} - - '@shikijs/transformers@1.22.2': - resolution: {integrity: sha512-8f78OiBa6pZDoZ53lYTmuvpFPlWtevn23bzG+azpPVvZg7ITax57o/K3TC91eYL3OMJOO0onPbgnQyZjRos8XQ==} + '@shikijs/transformers@1.7.0': + resolution: {integrity: sha512-QX3TP+CS4yYLt4X4Dk7wT0MsC7yweTYHMAAKY+ay+uuR9yRdFae/h+hivny2O+YixJHfZl57xtiZfWSrHdyVhQ==} '@shikijs/types@1.18.0': resolution: {integrity: sha512-O9N36UEaGGrxv1yUrN2nye7gDLG5Uq0/c1LyfmxsvzNPqlHzWo9DI0A4+fhW2y3bGKuQu/fwS7EPdKJJCowcVA==} - '@shikijs/types@1.22.2': - resolution: {integrity: sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==} - '@shikijs/vscode-textmate@9.2.2': resolution: {integrity: sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==} - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} - '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -3541,6 +3424,9 @@ packages: '@types/http-errors@2.0.2': resolution: {integrity: sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==} + '@types/is-ci@3.0.0': + resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + '@types/istanbul-lib-coverage@2.0.4': resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -3553,9 +3439,6 @@ packages: '@types/jest@29.5.13': resolution: {integrity: sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==} - '@types/jest@29.5.14': - resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} - '@types/jest@29.5.5': resolution: {integrity: sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==} @@ -3568,8 +3451,8 @@ packages: '@types/lodash@4.14.199': resolution: {integrity: sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==} - '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + '@types/markdown-it@14.1.1': + resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==} '@types/marked@5.0.2': resolution: {integrity: sha512-OucS4KMHhFzhz27KxmWg7J+kIYqyqoW5kdIEI319hqARQQUTqhao3M/F+uFnDXD0Rg72iDDZxZNxq5gvctmLlg==} @@ -3577,9 +3460,6 @@ packages: '@types/mdast@3.0.12': resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==} - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -3598,6 +3478,9 @@ packages: '@types/mime@3.0.1': resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + '@types/minimist@1.2.2': + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} @@ -3619,15 +3502,12 @@ packages: '@types/node@18.17.19': resolution: {integrity: sha512-+pMhShR3Or5GR0/sp4Da7FnhVmTalWm81M6MkEldbwjETSaPalw138Z4KdpQaistvqQxLB7Cy4xwYdxpbSOs9Q==} - '@types/node@18.19.64': - resolution: {integrity: sha512-955mDqvO2vFf/oL7V3WiUtiz+BugyX8uVbaT2H8oj3+8dRyH2FLiNdowe7eNqRM7IOIZvzDH76EoAT+gwm6aIQ==} + '@types/node@18.19.50': + resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} '@types/node@22.6.1': resolution: {integrity: sha512-V48tCfcKb/e6cVUigLAaJDAILdMP0fUW6BidkPK4GpGjXcfbnoHasCZDwz3N3yVt5we2RHm4XTQCpv0KJz9zqw==} - '@types/node@22.8.7': - resolution: {integrity: sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==} - '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3673,6 +3553,9 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/unist@2.0.8': + resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} + '@types/unist@3.0.0': resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} @@ -3782,69 +3665,71 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitejs/plugin-vue@5.1.4': - resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==} + '@vitejs/plugin-vue@5.0.5': + resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 - '@vue/compiler-core@3.5.12': - resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} + '@vue/compiler-core@3.4.27': + resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} - '@vue/compiler-dom@3.5.12': - resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} + '@vue/compiler-dom@3.4.27': + resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} - '@vue/compiler-sfc@3.5.12': - resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} + '@vue/compiler-sfc@3.4.27': + resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} - '@vue/compiler-ssr@3.5.12': - resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} + '@vue/compiler-ssr@3.4.27': + resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} - '@vue/devtools-api@7.6.2': - resolution: {integrity: sha512-NCT0ujqlwAhoFvCsAG7G5qS8w/A/dhvFSt2BhmNxyqgpYDrf9CG1zYyWLQkE3dsZ+5lCT6ULUic2VKNaE07Vzg==} + '@vue/devtools-api@7.2.1': + resolution: {integrity: sha512-6oNCtyFOrNdqm6GUkFujsCgFlpbsHLnZqq7edeM/+cxAbMyCWvsaCsIMUaz7AiluKLccCGEM8fhOsjaKgBvb7g==} - '@vue/devtools-kit@7.6.2': - resolution: {integrity: sha512-k61BxHRmcTtIQZFouF9QWt9nCCNtSdw12lhg8VNtHq5/XOBGD+ewiK27a40UJ8UPYoCJvi80hbvbYr5E/Zeu1g==} + '@vue/devtools-kit@7.2.1': + resolution: {integrity: sha512-Wak/fin1X0Q8LLIfCAHBrdaaB+R6IdpSXsDByPHbQ3BmkCP0/cIo/oEGp9i0U2+gEqD4L3V9RDjNf1S34DTzQQ==} + peerDependencies: + vue: ^3.0.0 - '@vue/devtools-shared@7.6.2': - resolution: {integrity: sha512-lcjyJ7hCC0W0kNwnCGMLVTMvDLoZgjcq9BvboPgS+6jQyDul7fpzRSKTGtGhCHoxrDox7qBAKGbAl2Rcf7GE1A==} + '@vue/devtools-shared@7.2.1': + resolution: {integrity: sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA==} - '@vue/reactivity@3.5.12': - resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} + '@vue/reactivity@3.4.27': + resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==} - '@vue/runtime-core@3.5.12': - resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} + '@vue/runtime-core@3.4.27': + resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==} - '@vue/runtime-dom@3.5.12': - resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} + '@vue/runtime-dom@3.4.27': + resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==} - '@vue/server-renderer@3.5.12': - resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} + '@vue/server-renderer@3.4.27': + resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} peerDependencies: - vue: 3.5.12 + vue: 3.4.27 - '@vue/shared@3.5.12': - resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} + '@vue/shared@3.4.27': + resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} - '@vueuse/core@11.2.0': - resolution: {integrity: sha512-JIUwRcOqOWzcdu1dGlfW04kaJhW3EXnnjJJfLTtddJanymTL7lF1C0+dVVZ/siLfc73mWn+cGP1PE1PKPruRSA==} + '@vueuse/core@10.11.0': + resolution: {integrity: sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==} - '@vueuse/integrations@11.2.0': - resolution: {integrity: sha512-zGXz3dsxNHKwiD9jPMvR3DAxQEOV6VWIEYTGVSB9PNpk4pTWR+pXrHz9gvXWcP2sTk3W2oqqS6KwWDdntUvNVA==} + '@vueuse/integrations@10.11.0': + resolution: {integrity: sha512-Pp6MtWEIr+NDOccWd8j59Kpjy5YDXogXI61Kb1JxvSfVBO8NzFQkmrKmSZz47i+ZqHnIzxaT38L358yDHTncZg==} peerDependencies: async-validator: ^4 axios: ^1 - change-case: ^5 - drauu: ^0.4 + change-case: ^4 + drauu: ^0.3 focus-trap: ^7 - fuse.js: ^7 + fuse.js: ^6 idb-keyval: ^6 - jwt-decode: ^4 + jwt-decode: ^3 nprogress: ^0.2 qrcode: ^1.5 sortablejs: ^1 - universal-cookie: ^7 + universal-cookie: ^6 peerDependenciesMeta: async-validator: optional: true @@ -3871,11 +3756,11 @@ packages: universal-cookie: optional: true - '@vueuse/metadata@11.2.0': - resolution: {integrity: sha512-L0ZmtRmNx+ZW95DmrgD6vn484gSpVeRbgpWevFKXwqqQxW9hnSi2Ppuh2BzMjnbv4aJRiIw8tQatXT9uOB23dQ==} + '@vueuse/metadata@10.11.0': + resolution: {integrity: sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==} - '@vueuse/shared@11.2.0': - resolution: {integrity: sha512-VxFjie0EanOudYSgMErxXfq6fo8vhr5ICI+BuE3I9FnX7ePllEsVrRQ7O6Q1TLgApeLuPKcHQxAXpP+KnlrJsg==} + '@vueuse/shared@10.11.0': + resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==} '@webbtc/webln-types@3.0.0': resolution: {integrity: sha512-aXfTHLKz5lysd+6xTeWl+qHNh/p3qVYbeLo+yDN5cUDmhie2ZoGvkppfWxzbGkcFBzb6dJyQ2/i2cbmDHas+zQ==} @@ -3941,9 +3826,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - algoliasearch@5.12.0: - resolution: {integrity: sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==} - engines: {node: '>= 14.0.0'} + algoliasearch@4.23.3: + resolution: {integrity: sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -4019,6 +3903,10 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.2: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} @@ -4127,9 +4015,6 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - birpc@0.2.19: - resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} - bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -4155,6 +4040,9 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + breakword@1.0.6: + resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} + browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} @@ -4297,8 +4185,8 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} cjs-module-lexer@1.2.3: @@ -4323,6 +4211,9 @@ packages: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} engines: {node: 10.* || >= 12.*} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -4438,10 +4329,6 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} - copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} - core-js-compat@3.38.1: resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} @@ -4499,6 +4386,19 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + + csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + + csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + + csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} + cytoscape-cose-bilkent@4.1.0: resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} peerDependencies: @@ -4509,8 +4409,8 @@ packages: peerDependencies: cytoscape: ^3.2.0 - cytoscape@3.30.3: - resolution: {integrity: sha512-HncJ9gGJbVtw7YXtIs3+6YAFSSiKsom0amWc33Z7QbylbY2JGMrA0yz4EwrdTScZxnwclXeEZHzO5pxoy0ZE4g==} + cytoscape@3.30.1: + resolution: {integrity: sha512-TRJc3HbBPkHd50u9YfJh2FxD1lDLZ+JXnJoyBn5LkncoeuT7fapO/Hq/Ed8TdFclaKshzInge2i30bg7VKeoPQ==} engines: {node: '>=0.10'} d3-array@2.12.1: @@ -4662,6 +4562,9 @@ packages: resolution: {integrity: sha512-2/nFdW/6R9MMnR8tTm07jPVyPaZwpUSkVsFAADb7Oq8N2Ynbls57laDdNqxTCUmn0QvcZi01TKl8zQbAwRfw1w==} engines: {node: '>=16.9.0'} + dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} @@ -4691,6 +4594,15 @@ packages: supports-color: optional: true + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -4820,8 +4732,8 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} dir-glob@3.0.1: @@ -4958,6 +4870,9 @@ packages: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} + es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -5078,8 +4993,8 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-utils@3.0.0: @@ -5096,8 +5011,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@8.4.1: @@ -5106,8 +5021,8 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true - eslint@9.14.0: - resolution: {integrity: sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==} + eslint@9.13.0: + resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -5125,8 +5040,8 @@ packages: esm-loader-typescript@1.0.6: resolution: {integrity: sha512-t+NqYYMAiZa+Ys/QDGzCv0vnKFPYZ8N6JIdqJNeWpNItEYFwZB6itVYzf3SzDMgqPxX5ZmPoOU9vv2CZg2JccA==} - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.2.0: @@ -5257,14 +5172,6 @@ packages: picomatch: optional: true - fdir@6.4.2: - resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fetch-retry@5.0.6: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} @@ -5314,6 +5221,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5329,8 +5239,8 @@ packages: resolution: {integrity: sha512-hEa5n0dta1RcaDwJDWbnyelw07PK7+Vx0f9kDht28JOt2hXgKdKGaT3wM45euWV2DxOXtzDSTaUgGSD/FPvC2Q==} engines: {node: '>=0.4.0'} - focus-trap@7.6.0: - resolution: {integrity: sha512-1td0l3pMkWJLFipobUcGaf+5DTY4PLDDrcqoSaKP8ediO/CoWCCYk/fT/Y2A4e6TNB+Sh6clRJCjOPPnKoNHnQ==} + focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -5339,10 +5249,6 @@ packages: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} - form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -5365,10 +5271,6 @@ packages: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -5515,6 +5417,9 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -5734,6 +5639,10 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} @@ -5873,10 +5782,6 @@ packages: is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -6208,6 +6113,10 @@ packages: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} @@ -6305,9 +6214,6 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -6442,6 +6348,10 @@ packages: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} + meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + meow@9.0.0: resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} engines: {node: '>=10'} @@ -6456,8 +6366,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@10.9.3: - resolution: {integrity: sha512-V80X1isSEvAewIL3xhmz/rVmc27CVljcsbWxkxlWJWY/1kQa4XOABqpDl2qQLGKzpKm6WbTfUEKImBlUfFYArw==} + mermaid@10.9.1: + resolution: {integrity: sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -6634,8 +6544,8 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minisearch@7.1.0: - resolution: {integrity: sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==} + minisearch@6.3.0: + resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -6644,6 +6554,10 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mixme@0.5.9: + resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} + engines: {node: '>= 8.0.0'} + mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -6752,24 +6666,24 @@ packages: typescript: optional: true - nostr-tools@2.10.1: - resolution: {integrity: sha512-fnAxLi92UgyMAEw4fMEhDKzH53uBJ0WkkVPTNfX0b3bspeWWn0n5tDZtKRJbvW0wAGOPmU6LYWi/IKPOsq3p2Q==} + nostr-tools@2.4.0: + resolution: {integrity: sha512-xQC7XdGeh0gLyprcKhvx5lwr7OQ+ZOiQ9C6GpzlVAj+EBv+AiN8kySb57t3uJoG1HK15oT9jf++MmQLwhp1xNQ==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: typescript: optional: true - nostr-tools@2.4.0: - resolution: {integrity: sha512-xQC7XdGeh0gLyprcKhvx5lwr7OQ+ZOiQ9C6GpzlVAj+EBv+AiN8kySb57t3uJoG1HK15oT9jf++MmQLwhp1xNQ==} + nostr-tools@2.5.2: + resolution: {integrity: sha512-Ls2FKh694eudBye6q89yJ5JhXjQle1MWp1yD2sBZ5j9M3IOBEW8ia9IED5W6daSAjlT/Z/pV77yTkdF45c1Rbg==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: typescript: optional: true - nostr-tools@2.5.2: - resolution: {integrity: sha512-Ls2FKh694eudBye6q89yJ5JhXjQle1MWp1yD2sBZ5j9M3IOBEW8ia9IED5W6daSAjlT/Z/pV77yTkdF45c1Rbg==} + nostr-tools@2.7.1: + resolution: {integrity: sha512-4qAvlHSqBAA8lQMwRWE6dalSNdQT77Xut9lPiJZgEcb9RAlR69wR2+KVBAgnZVaabVYH7FJ7gOQXLw/jQBAYBg==} peerDependencies: typescript: '>=5.0.0' peerDependenciesMeta: @@ -6905,11 +6819,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - package-manager-detector@0.2.2: - resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -7002,9 +6913,6 @@ packages: picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -7141,8 +7049,12 @@ packages: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} - preact@10.24.3: - resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} + preact@10.22.0: + resolution: {integrity: sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==} + + preferred-pm@3.1.2: + resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} + engines: {node: '>=10'} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -7159,6 +7071,11 @@ packages: engines: {node: '>=10.13.0'} hasBin: true + prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} + hasBin: true + prettier@3.3.3: resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} @@ -7383,14 +7300,11 @@ packages: regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regex@4.4.0: - resolution: {integrity: sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==} + regex@4.3.2: + resolution: {integrity: sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==} regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} @@ -7427,6 +7341,9 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + requireindex@1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} engines: {node: '>=0.10.5'} @@ -7459,8 +7376,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} @@ -7500,11 +7417,6 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.24.4: - resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -7569,6 +7481,9 @@ packages: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-cookie-parser@2.7.0: resolution: {integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==} @@ -7602,11 +7517,14 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shiki@1.10.0: + resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==} + shiki@1.18.0: resolution: {integrity: sha512-8jo7tOXr96h9PBQmOHVrltnETn1honZZY76YA79MHheGQg55jBvbm9dtU+MI5pjC5NJCFuA6rvVTLVeSW5cE4A==} - shiki@1.22.2: - resolution: {integrity: sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==} + shiki@1.7.0: + resolution: {integrity: sha512-H5pMn4JA7ayx8H0qOz1k2qANq6mZVCMl1gKLK6kWIrv1s2Ial4EmD4s4jE8QB5Dw03d/oCQUxc24sotuyR5byA==} side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -7629,6 +7547,11 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} + hasBin: true + sorcery@0.11.0: resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} hasBin: true @@ -7637,6 +7560,10 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -7667,14 +7594,14 @@ packages: spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.20: - resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + spdx-license-ids@3.0.15: + resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} @@ -7708,6 +7635,9 @@ packages: stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} + stream-transform@2.1.3: + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -7771,8 +7701,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - stylis@4.3.4: - resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} + stylis@4.3.2: + resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} sucrase@3.34.0: resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} @@ -7784,10 +7714,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - superjson@2.2.1: - resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} - engines: {node: '>=16'} - supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -7965,13 +7891,6 @@ packages: tiny-invariant@1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} - tinyexec@0.3.1: - resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} - - tinyglobby@0.2.10: - resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.6: resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} engines: {node: '>=12.0.0'} @@ -8148,8 +8067,8 @@ packages: tseep@1.1.1: resolution: {integrity: sha512-w2MjaqNWGDeliT5/W+/lhhnR0URiVwXXsXbkAZjQVywrOpdKhQAOL1ycyHfNOV1QBjouC7FawNmJePet1sGesw==} - tseep@1.3.1: - resolution: {integrity: sha512-ZPtfk1tQnZVyr7BPtbJ93qaAh2lZuIOpTMjhrYa4XctT8xe7t4SAW9LIxrySDuYMsfNNayE51E/WNGrNVgVicQ==} + tseep@1.2.2: + resolution: {integrity: sha512-GgPFuNx+08UaYBYmJQmuI86ykYa2PUUtfXAYb4MLRHGunSCp8k9N+dbsR4PK1yk4/zV9q4e4PrNg8ymXqGYaYA==} tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -8211,63 +8130,49 @@ packages: typescript: optional: true - tsup@8.3.5: - resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - turbo-darwin-64@1.13.4: - resolution: {integrity: sha512-A0eKd73R7CGnRinTiS7txkMElg+R5rKFp9HV7baDiEL4xTG1FIg/56Vm7A5RVgg8UNgG2qNnrfatJtb+dRmNdw==} + tty-table@4.2.1: + resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} + engines: {node: '>=8.0.0'} + hasBin: true + + turbo-darwin-64@1.10.14: + resolution: {integrity: sha512-I8RtFk1b9UILAExPdG/XRgGQz95nmXPE7OiGb6ytjtNIR5/UZBS/xVX/7HYpCdmfriKdVwBKhalCoV4oDvAGEg==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@1.13.4: - resolution: {integrity: sha512-eG769Q0NF6/Vyjsr3mKCnkG/eW6dKMBZk6dxWOdrHfrg6QgfkBUk0WUUujzdtVPiUIvsh4l46vQrNVd9EOtbyA==} + turbo-darwin-arm64@1.10.14: + resolution: {integrity: sha512-KAdUWryJi/XX7OD0alOuOa0aJ5TLyd4DNIYkHPHYcM6/d7YAovYvxRNwmx9iv6Vx6IkzTnLeTiUB8zy69QkG9Q==} cpu: [arm64] os: [darwin] - turbo-linux-64@1.13.4: - resolution: {integrity: sha512-Bq0JphDeNw3XEi+Xb/e4xoKhs1DHN7OoLVUbTIQz+gazYjigVZvtwCvgrZI7eW9Xo1eOXM2zw2u1DGLLUfmGkQ==} + turbo-linux-64@1.10.14: + resolution: {integrity: sha512-BOBzoREC2u4Vgpap/WDxM6wETVqVMRcM8OZw4hWzqCj2bqbQ6L0wxs1LCLWVrghQf93JBQtIGAdFFLyCSBXjWQ==} cpu: [x64] os: [linux] - turbo-linux-arm64@1.13.4: - resolution: {integrity: sha512-BJcXw1DDiHO/okYbaNdcWN6szjXyHWx9d460v6fCHY65G8CyqGU3y2uUTPK89o8lq/b2C8NK0yZD+Vp0f9VoIg==} + turbo-linux-arm64@1.10.14: + resolution: {integrity: sha512-D8T6XxoTdN5D4V5qE2VZG+/lbZX/89BkAEHzXcsSUTRjrwfMepT3d2z8aT6hxv4yu8EDdooZq/2Bn/vjMI32xw==} cpu: [arm64] os: [linux] - turbo-windows-64@1.13.4: - resolution: {integrity: sha512-OFFhXHOFLN7A78vD/dlVuuSSVEB3s9ZBj18Tm1hk3aW1HTWTuAw0ReN6ZNlVObZUHvGy8d57OAGGxf2bT3etQw==} + turbo-windows-64@1.10.14: + resolution: {integrity: sha512-zKNS3c1w4i6432N0cexZ20r/aIhV62g69opUn82FLVs/zk3Ie0GVkSB6h0rqIvMalCp7enIR87LkPSDGz9K4UA==} cpu: [x64] os: [win32] - turbo-windows-arm64@1.13.4: - resolution: {integrity: sha512-u5A+VOKHswJJmJ8o8rcilBfU5U3Y1TTAfP9wX8bFh8teYF1ghP0EhtMRLjhtp6RPa+XCxHHVA2CiC3gbh5eg5g==} + turbo-windows-arm64@1.10.14: + resolution: {integrity: sha512-rkBwrTPTxNSOUF7of8eVvvM+BkfkhA2OvpHM94if8tVsU+khrjglilp8MTVPHlyS9byfemPAmFN90oRIPB05BA==} cpu: [arm64] os: [win32] - turbo@1.13.4: - resolution: {integrity: sha512-1q7+9UJABuBAHrcC4Sxp5lOqYS5mvxRrwa33wpIyM18hlOCpRD/fTJNxZ0vhbMcJmz15o9kkVm743mPn7p6jpQ==} + turbo@1.10.14: + resolution: {integrity: sha512-hr9wDNYcsee+vLkCDIm8qTtwhJ6+UAMJc3nIY6+PNgUTtXcQgHxCq8BGoL7gbABvNWv76CNbK5qL4Lp9G3ZYRA==} hasBin: true type-check@0.4.0: @@ -8278,6 +8183,10 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} @@ -8343,18 +8252,11 @@ packages: peerDependencies: typedoc: 0.26.x - typedoc-plugin-rename-defaults@0.6.7: - resolution: {integrity: sha512-b+j0qQCdE69IUP6ZJgS6zonG59AcaKM8B8zdNlj1jnv6XefDLkIWdFxXfS3KhFOpVzW22pNCfdOCCym9ryS3wA==} + typedoc-plugin-rename-defaults@0.6.6: + resolution: {integrity: sha512-8TCDrxMG8cR0IRhMZbxMCXlmQrEwFFH0she4eHsaUGd1TPfrkk8GLO4n2qlSISd66OtT28e17ysiVZPbQnLGMg==} peerDependencies: typedoc: 0.22.x || 0.23.x || 0.24.x || 0.25.x - typedoc@0.26.11: - resolution: {integrity: sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==} - engines: {node: '>= 18'} - hasBin: true - peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x - typedoc@0.26.7: resolution: {integrity: sha512-gUeI/Wk99vjXXMi8kanwzyhmeFEGv1LTdTQsiyIsmSYsBebvFxhbcyAx7Zjo4cMbpLGxM4Uz3jVIjksu/I2v6Q==} engines: {node: '>= 18'} @@ -8393,8 +8295,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true @@ -8596,37 +8498,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@5.4.10: - resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@5.4.8: resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -8666,14 +8537,14 @@ packages: vite: optional: true - vitepress-plugin-mermaid@2.0.17: - resolution: {integrity: sha512-IUzYpwf61GC6k0XzfmAmNrLvMi9TRrVRMsUyCA8KNXhg/mQ1VqWnO0/tBVPiX5UoKF1mDUwqn5QV4qAJl6JnUg==} + vitepress-plugin-mermaid@2.0.16: + resolution: {integrity: sha512-sW0Eu4+1EzRdwZBMGjzwKDsbQiuJIxCy8BlMw7Ur88p9fXalrFYKqZ3wYWLxsFTBipeooFIeanef/xw1P+v7vQ==} peerDependencies: - mermaid: 10 || 11 + mermaid: '10' vitepress: ^1.0.0 || ^1.0.0-alpha - vitepress@1.4.5: - resolution: {integrity: sha512-9K0k8kvdEbeowVCpKF/x0AySSq0Pr9pM8xufLgQcKMjsifwxtDjXJjcFhZv4LYw2dcpdYiBq2j7PnWi0tCaMCg==} + vitepress@1.2.3: + resolution: {integrity: sha512-GvEsrEeNLiDE1+fuwDAYJCYLNZDAna+EtnXlPajhv/MYeTjbNK6Bvyg6NoTdO1sbwuQJ0vuJR99bOlH53bo6lg==} hasBin: true peerDependencies: markdown-it-mathjax3: ^4 @@ -8684,8 +8555,8 @@ packages: postcss: optional: true - vue-demi@0.14.10: - resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + vue-demi@0.14.8: + resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} engines: {node: '>=12'} hasBin: true peerDependencies: @@ -8695,8 +8566,8 @@ packages: '@vue/composition-api': optional: true - vue@3.5.12: - resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} + vue@3.4.27: + resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -8751,6 +8622,13 @@ packages: which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + which-typed-array@1.1.11: resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} engines: {node: '>= 0.4'} @@ -8771,6 +8649,10 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -8816,6 +8698,9 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -8846,10 +8731,9 @@ packages: engines: {node: '>= 14'} hasBin: true - yaml@2.6.0: - resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} - engines: {node: '>= 14'} - hasBin: true + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} @@ -8859,6 +8743,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -8879,115 +8767,132 @@ packages: snapshots: - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.15.0)': + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)(search-insights@2.15.0)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.15.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)(search-insights@2.15.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.15.0)': + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)(search-insights@2.15.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3) search-insights: 2.15.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) - '@algolia/client-search': 5.12.0 - algoliasearch: 5.12.0 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3) + '@algolia/client-search': 4.24.0 + algoliasearch: 4.23.3 - '@algolia/autocomplete-shared@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)': dependencies: - '@algolia/client-search': 5.12.0 - algoliasearch: 5.12.0 + '@algolia/client-search': 4.24.0 + algoliasearch: 4.23.3 + + '@algolia/cache-browser-local-storage@4.23.3': + dependencies: + '@algolia/cache-common': 4.23.3 + + '@algolia/cache-common@4.23.3': {} + + '@algolia/cache-common@4.24.0': {} - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': + '@algolia/cache-in-memory@4.23.3': dependencies: - '@algolia/client-search': 5.12.0 - algoliasearch: 5.12.0 + '@algolia/cache-common': 4.23.3 - '@algolia/client-abtesting@5.12.0': + '@algolia/client-account@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/transporter': 4.23.3 - '@algolia/client-analytics@5.12.0': + '@algolia/client-analytics@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 - '@algolia/client-common@5.12.0': {} + '@algolia/client-common@4.23.3': + dependencies: + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 - '@algolia/client-insights@5.12.0': + '@algolia/client-common@4.24.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 - '@algolia/client-personalization@5.12.0': + '@algolia/client-personalization@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 - '@algolia/client-query-suggestions@5.12.0': + '@algolia/client-search@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 - '@algolia/client-search@5.12.0': + '@algolia/client-search@4.24.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 4.24.0 + '@algolia/requester-common': 4.24.0 + '@algolia/transporter': 4.24.0 + + '@algolia/logger-common@4.23.3': {} - '@algolia/ingestion@1.12.0': + '@algolia/logger-common@4.24.0': {} + + '@algolia/logger-console@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/logger-common': 4.23.3 - '@algolia/monitoring@1.12.0': + '@algolia/recommend@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/cache-browser-local-storage': 4.23.3 + '@algolia/cache-common': 4.23.3 + '@algolia/cache-in-memory': 4.23.3 + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/logger-console': 4.23.3 + '@algolia/requester-browser-xhr': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/requester-node-http': 4.23.3 + '@algolia/transporter': 4.23.3 - '@algolia/recommend@5.12.0': + '@algolia/requester-browser-xhr@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/requester-common': 4.23.3 + + '@algolia/requester-common@4.23.3': {} - '@algolia/requester-browser-xhr@5.12.0': + '@algolia/requester-common@4.24.0': {} + + '@algolia/requester-node-http@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/requester-common': 4.23.3 - '@algolia/requester-fetch@5.12.0': + '@algolia/transporter@4.23.3': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/cache-common': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/requester-common': 4.23.3 - '@algolia/requester-node-http@5.12.0': + '@algolia/transporter@4.24.0': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/cache-common': 4.24.0 + '@algolia/logger-common': 4.24.0 + '@algolia/requester-common': 4.24.0 '@alloc/quick-lru@5.2.0': {} @@ -9003,7 +8908,7 @@ snapshots: '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.1.1 + picocolors: 1.1.0 '@babel/compat-data@7.25.2': {} @@ -9222,12 +9127,8 @@ snapshots: '@babel/helper-string-parser@7.24.8': {} - '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-option@7.24.8': {} '@babel/helper-wrap-function@7.25.0': @@ -9248,15 +9149,15 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.1.1 + picocolors: 1.1.0 '@babel/parser@7.25.0': dependencies: '@babel/types': 7.25.2 - '@babel/parser@7.26.2': + '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.25.6 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': dependencies: @@ -9911,10 +9812,6 @@ snapshots: dependencies: regenerator-runtime: 0.14.0 - '@babel/runtime@7.26.0': - dependencies: - regenerator-runtime: 0.14.1 - '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 @@ -9937,7 +9834,7 @@ snapshots: dependencies: '@babel/code-frame': 7.24.7 '@babel/generator': 7.25.6 - '@babel/parser': 7.26.2 + '@babel/parser': 7.25.6 '@babel/template': 7.25.0 '@babel/types': 7.25.6 debug: 4.3.7 @@ -9957,11 +9854,6 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - '@babel/types@7.26.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@bcoe/v8-coverage@0.2.3': {} '@braintree/sanitize-url@6.0.4': {} @@ -9985,13 +9877,13 @@ snapshots: '@scure/bip39': 1.4.0 buffer: 6.0.3 - '@changesets/apply-release-plan@7.0.5': + '@changesets/apply-release-plan@6.1.4': dependencies: - '@changesets/config': 3.0.3 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.1 - '@changesets/should-skip-package': 0.1.1 - '@changesets/types': 6.0.0 + '@babel/runtime': 7.22.15 + '@changesets/config': 2.3.1 + '@changesets/get-version-range-type': 0.3.2 + '@changesets/git': 2.0.0 + '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 fs-extra: 7.0.1 @@ -9999,130 +9891,137 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.6.3 + semver: 7.5.4 - '@changesets/assemble-release-plan@6.0.4': + '@changesets/assemble-release-plan@5.2.4': dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/should-skip-package': 0.1.1 - '@changesets/types': 6.0.0 + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 - semver: 7.6.3 + semver: 7.5.4 - '@changesets/changelog-git@0.2.0': - dependencies: - '@changesets/types': 6.0.0 - - '@changesets/cli@2.27.9': - dependencies: - '@changesets/apply-release-plan': 7.0.5 - '@changesets/assemble-release-plan': 6.0.4 - '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.3 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/get-release-plan': 4.0.4 - '@changesets/git': 3.0.1 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.1 - '@changesets/should-skip-package': 0.1.1 - '@changesets/types': 6.0.0 - '@changesets/write': 0.3.2 + '@changesets/changelog-git@0.1.14': + dependencies: + '@changesets/types': 5.2.1 + + '@changesets/cli@2.26.2': + dependencies: + '@babel/runtime': 7.22.15 + '@changesets/apply-release-plan': 6.1.4 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/changelog-git': 0.1.14 + '@changesets/config': 2.3.1 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/get-release-plan': 3.0.17 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@changesets/write': 0.2.3 '@manypkg/get-packages': 1.1.3 + '@types/is-ci': 3.0.0 + '@types/semver': 7.5.2 ansi-colors: 4.1.3 - ci-info: 3.9.0 + chalk: 2.4.2 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 - mri: 1.2.0 + human-id: 1.0.2 + is-ci: 3.0.1 + meow: 6.1.1 + outdent: 0.5.0 p-limit: 2.3.0 - package-manager-detector: 0.2.2 - picocolors: 1.1.1 + preferred-pm: 3.1.2 resolve-from: 5.0.0 - semver: 7.6.3 + semver: 7.5.4 spawndamnit: 2.0.0 term-size: 2.2.1 + tty-table: 4.2.1 - '@changesets/config@3.0.3': + '@changesets/config@2.3.1': dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/logger': 0.1.1 - '@changesets/types': 6.0.0 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/logger': 0.0.5 + '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - micromatch: 4.0.8 + micromatch: 4.0.5 - '@changesets/errors@0.2.0': + '@changesets/errors@0.1.4': dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@2.1.2': + '@changesets/get-dependents-graph@1.3.6': dependencies: - '@changesets/types': 6.0.0 + '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.6.3 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 7.5.4 - '@changesets/get-release-plan@4.0.4': + '@changesets/get-release-plan@3.0.17': dependencies: - '@changesets/assemble-release-plan': 6.0.4 - '@changesets/config': 3.0.3 - '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.1 - '@changesets/types': 6.0.0 + '@babel/runtime': 7.22.15 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/config': 2.3.1 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 - '@changesets/get-version-range-type@0.4.0': {} + '@changesets/get-version-range-type@0.3.2': {} - '@changesets/git@3.0.1': + '@changesets/git@2.0.0': dependencies: - '@changesets/errors': 0.2.0 + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 - micromatch: 4.0.8 + micromatch: 4.0.5 spawndamnit: 2.0.0 - '@changesets/logger@0.1.1': + '@changesets/logger@0.0.5': dependencies: - picocolors: 1.1.1 + chalk: 2.4.2 - '@changesets/parse@0.4.0': + '@changesets/parse@0.3.16': dependencies: - '@changesets/types': 6.0.0 + '@changesets/types': 5.2.1 js-yaml: 3.14.1 - '@changesets/pre@2.0.1': + '@changesets/pre@1.0.14': dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.0.0 + '@babel/runtime': 7.22.15 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.1': + '@changesets/read@0.5.9': dependencies: - '@changesets/git': 3.0.1 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.0 - '@changesets/types': 6.0.0 + '@babel/runtime': 7.22.15 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/parse': 0.3.16 + '@changesets/types': 5.2.1 + chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 - picocolors: 1.1.1 - - '@changesets/should-skip-package@0.1.1': - dependencies: - '@changesets/types': 6.0.0 - '@manypkg/get-packages': 1.1.3 '@changesets/types@4.1.0': {} - '@changesets/types@6.0.0': {} + '@changesets/types@5.2.1': {} - '@changesets/write@0.3.2': + '@changesets/write@0.2.3': dependencies: - '@changesets/types': 6.0.0 + '@babel/runtime': 7.22.15 + '@changesets/types': 5.2.1 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 @@ -10136,12 +10035,12 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@docsearch/css@3.6.3': {} + '@docsearch/css@3.6.0': {} - '@docsearch/js@3.6.3(@algolia/client-search@5.12.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)': + '@docsearch/js@3.6.0(@algolia/client-search@4.24.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)': dependencies: - '@docsearch/react': 3.6.3(@algolia/client-search@5.12.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0) - preact: 10.24.3 + '@docsearch/react': 3.6.0(@algolia/client-search@4.24.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0) + preact: 10.22.0 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -10149,12 +10048,12 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.6.3(@algolia/client-search@5.12.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)': + '@docsearch/react@3.6.0(@algolia/client-search@4.24.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.15.0) - '@algolia/autocomplete-preset-algolia': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) - '@docsearch/css': 3.6.3 - algoliasearch: 5.12.0 + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3)(search-insights@2.15.0) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.23.3) + '@docsearch/css': 3.6.0 + algoliasearch: 4.23.3 optionalDependencies: '@types/react': 18.2.22 react: 18.3.1 @@ -10512,9 +10411,9 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.6))': dependencies: - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/eslint-utils@4.4.1(eslint@8.4.1)': @@ -10522,9 +10421,9 @@ snapshots: eslint: 8.4.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.1(eslint@9.14.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.13.0(jiti@1.21.6))': dependencies: - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} @@ -10559,7 +10458,7 @@ snapshots: dependencies: ajv: 6.12.6 debug: 4.3.7 - espree: 10.3.0 + espree: 10.2.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 @@ -10569,11 +10468,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.14.0': {} + '@eslint/js@9.13.0': {} '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.2': + '@eslint/plugin-kit@0.2.1': dependencies: levn: 0.4.1 @@ -10624,8 +10523,6 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.0': {} - '@ioredis/commands@1.2.0': {} '@isaacs/cliui@8.0.2': @@ -10650,7 +10547,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -10663,14 +10560,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.8.7) + jest-config: 29.7.0(@types/node@22.6.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10698,14 +10595,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10733,14 +10630,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10768,14 +10665,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10803,14 +10700,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10831,21 +10728,21 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10870,7 +10767,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -10888,7 +10785,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.8.7 + '@types/node': 22.6.1 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -10910,7 +10807,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.8.7 + '@types/node': 22.6.1 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -10979,7 +10876,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/yargs': 16.0.5 chalk: 4.1.2 @@ -10988,7 +10885,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -11020,14 +10917,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -11043,9 +10940,9 @@ snapshots: '@mermaid-js/mermaid-mindmap@9.3.0': dependencies: '@braintree/sanitize-url': 6.0.4 - cytoscape: 3.30.3 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.3) - cytoscape-fcose: 2.2.0(cytoscape@3.30.3) + cytoscape: 3.30.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.1) + cytoscape-fcose: 2.2.0(cytoscape@3.30.1) d3: 7.9.0 khroma: 2.1.0 non-layered-tidy-tree-layout: 2.0.2 @@ -11104,15 +11001,15 @@ snapshots: '@radix-ui/number@1.0.1': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/primitive@1.0.1': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-arrow@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11121,7 +11018,7 @@ snapshots: '@radix-ui/react-collection@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -11133,28 +11030,28 @@ snapshots: '@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-context@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-direction@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-dismissable-layer@1.0.4(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -11167,14 +11064,14 @@ snapshots: '@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-focus-scope@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11185,7 +11082,7 @@ snapshots: '@radix-ui/react-id@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11193,7 +11090,7 @@ snapshots: '@radix-ui/react-popper@1.1.2(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@floating-ui/react-dom': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-arrow': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11211,7 +11108,7 @@ snapshots: '@radix-ui/react-portal@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11220,7 +11117,7 @@ snapshots: '@radix-ui/react-primitive@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-slot': 1.0.2(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11229,7 +11126,7 @@ snapshots: '@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11246,7 +11143,7 @@ snapshots: '@radix-ui/react-select@1.2.2(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -11275,7 +11172,7 @@ snapshots: '@radix-ui/react-separator@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11284,7 +11181,7 @@ snapshots: '@radix-ui/react-slot@1.0.2(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11292,7 +11189,7 @@ snapshots: '@radix-ui/react-toggle-group@1.0.4(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11307,7 +11204,7 @@ snapshots: '@radix-ui/react-toggle@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11318,7 +11215,7 @@ snapshots: '@radix-ui/react-toolbar@1.0.4(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.22)(react@18.3.1) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.22)(react@18.3.1) @@ -11333,14 +11230,14 @@ snapshots: '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11348,7 +11245,7 @@ snapshots: '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11356,21 +11253,21 @@ snapshots: '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-use-previous@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 react: 18.3.1 optionalDependencies: '@types/react': 18.2.22 '@radix-ui/react-use-rect@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/rect': 1.0.1 react: 18.3.1 optionalDependencies: @@ -11378,7 +11275,7 @@ snapshots: '@radix-ui/react-use-size@1.0.1(@types/react@18.2.22)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.22)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -11386,7 +11283,7 @@ snapshots: '@radix-ui/react-visually-hidden@1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11395,7 +11292,7 @@ snapshots: '@radix-ui/rect@1.0.1': dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 '@rollup/rollup-android-arm-eabi@4.22.4': optional: true @@ -11403,150 +11300,96 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.24.0': optional: true - '@rollup/rollup-android-arm-eabi@4.24.4': - optional: true - '@rollup/rollup-android-arm64@4.22.4': optional: true '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-android-arm64@4.24.4': - optional: true - '@rollup/rollup-darwin-arm64@4.22.4': optional: true '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.24.4': - optional: true - '@rollup/rollup-darwin-x64@4.22.4': optional: true '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.24.4': - optional: true - - '@rollup/rollup-freebsd-arm64@4.24.4': - optional: true - - '@rollup/rollup-freebsd-x64@4.24.4': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.22.4': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.4': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.22.4': optional: true '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.4': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.22.4': optional: true '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.4': - optional: true - '@rollup/rollup-linux-arm64-musl@4.22.4': optional: true '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.24.4': - optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.22.4': optional: true '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.4': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.22.4': optional: true '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.4': - optional: true - '@rollup/rollup-linux-x64-gnu@4.22.4': optional: true '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.24.4': - optional: true - '@rollup/rollup-linux-x64-musl@4.22.4': optional: true '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.24.4': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.22.4': optional: true '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.4': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.22.4': optional: true '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.4': - optional: true - '@rollup/rollup-win32-x64-msvc@4.22.4': optional: true '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.24.4': - optional: true - '@scure/base@1.1.1': {} '@scure/base@1.1.3': {} @@ -11575,6 +11418,8 @@ snapshots: '@noble/hashes': 1.5.0 '@scure/base': 1.1.9 + '@shikijs/core@1.10.0': {} + '@shikijs/core@1.18.0': dependencies: '@shikijs/engine-javascript': 1.18.0 @@ -11584,14 +11429,7 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.3 - '@shikijs/core@1.22.2': - dependencies: - '@shikijs/engine-javascript': 1.22.2 - '@shikijs/engine-oniguruma': 1.22.2 - '@shikijs/types': 1.22.2 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + '@shikijs/core@1.7.0': {} '@shikijs/engine-javascript@1.18.0': dependencies: @@ -11599,40 +11437,22 @@ snapshots: '@shikijs/vscode-textmate': 9.2.2 oniguruma-to-js: 0.4.3 - '@shikijs/engine-javascript@1.22.2': - dependencies: - '@shikijs/types': 1.22.2 - '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-js: 0.4.3 - '@shikijs/engine-oniguruma@1.18.0': dependencies: '@shikijs/types': 1.18.0 '@shikijs/vscode-textmate': 9.2.2 - '@shikijs/engine-oniguruma@1.22.2': + '@shikijs/transformers@1.7.0': dependencies: - '@shikijs/types': 1.22.2 - '@shikijs/vscode-textmate': 9.3.0 - - '@shikijs/transformers@1.22.2': - dependencies: - shiki: 1.22.2 + shiki: 1.7.0 '@shikijs/types@1.18.0': dependencies: '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 - '@shikijs/types@1.22.2': - dependencies: - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@9.2.2': {} - '@shikijs/vscode-textmate@9.3.0': {} - '@sinclair/typebox@0.27.8': {} '@sinonjs/commons@3.0.0': @@ -11688,7 +11508,7 @@ snapshots: '@storybook/react-dom-shim': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/types': 7.6.20 - fs-extra: 11.2.0 + fs-extra: 11.1.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) remark-external-links: 8.0.0 @@ -11823,7 +11643,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7))': + '@storybook/builder-vite@7.6.20(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -11838,12 +11658,12 @@ snapshots: es-module-lexer: 0.9.3 express: 4.18.2 find-cache-dir: 3.3.2 - fs-extra: 11.2.0 + fs-extra: 11.1.1 magic-string: 0.30.11 rollup: 3.29.4 - vite: 5.4.8(@types/node@22.8.7) + vite: 5.4.8(@types/node@22.6.1) optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - encoding - supports-color @@ -11957,7 +11777,7 @@ snapshots: '@storybook/node-logger': 7.6.20 '@storybook/types': 7.6.20 '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.64 + '@types/node': 18.19.50 '@types/node-fetch': 2.6.6 '@types/pretty-hrtime': 1.0.1 chalk: 4.1.2 @@ -11966,7 +11786,7 @@ snapshots: file-system-cache: 2.3.0 find-cache-dir: 3.3.2 find-up: 5.0.0 - fs-extra: 11.2.0 + fs-extra: 11.1.1 glob: 10.3.6 handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 @@ -12002,7 +11822,7 @@ snapshots: '@storybook/telemetry': 7.6.20 '@storybook/types': 7.6.20 '@types/detect-port': 1.3.3 - '@types/node': 18.19.64 + '@types/node': 18.19.50 '@types/pretty-hrtime': 1.0.1 '@types/semver': 7.5.2 better-opn: 3.0.2 @@ -12136,18 +11956,18 @@ snapshots: memoizerific: 1.11.3 qs: 6.11.2 - '@storybook/svelte-vite@7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7))': + '@storybook/svelte-vite@7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1))': dependencies: - '@storybook/builder-vite': 7.6.20(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7)) + '@storybook/builder-vite': 7.6.20(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1)) '@storybook/node-logger': 7.6.20 '@storybook/svelte': 7.6.20(svelte@4.2.19) - '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) magic-string: 0.30.11 svelte: 4.2.19 - svelte-preprocess: 5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3) + svelte-preprocess: 5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4) sveltedoc-parser: 4.2.1 ts-dedent: 2.2.0 - vite: 5.4.8(@types/node@22.8.7) + vite: 5.4.8(@types/node@22.6.1) transitivePeerDependencies: - '@babel/core' - '@preact/preset-vite' @@ -12181,14 +12001,14 @@ snapshots: - encoding - supports-color - '@storybook/sveltekit@7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7))': + '@storybook/sveltekit@7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1))': dependencies: '@storybook/addon-actions': 7.6.20 - '@storybook/builder-vite': 7.6.20(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7)) + '@storybook/builder-vite': 7.6.20(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1)) '@storybook/svelte': 7.6.20(svelte@4.2.19) - '@storybook/svelte-vite': 7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.8(@types/node@22.8.7)) + '@storybook/svelte-vite': 7.6.20(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4)(vite@5.4.8(@types/node@22.6.1)) svelte: 4.2.19 - vite: 5.4.8(@types/node@22.8.7) + vite: 5.4.8(@types/node@22.6.1) transitivePeerDependencies: - '@babel/core' - '@preact/preset-vite' @@ -12241,14 +12061,14 @@ snapshots: '@types/express': 4.17.18 file-system-cache: 2.3.0 - '@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))': + '@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))': dependencies: - '@sveltejs/kit': 2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + '@sveltejs/kit': 2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) import-meta-resolve: 4.1.0 - '@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': + '@sveltejs/kit@2.6.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -12262,72 +12082,72 @@ snapshots: sirv: 2.0.4 svelte: 4.2.19 tiny-glob: 0.2.9 - vite: 5.4.8(@types/node@22.8.7) + vite: 5.4.8(@types/node@22.6.1) - '@sveltejs/package@2.3.5(svelte@4.2.19)(typescript@5.6.3)': + '@sveltejs/package@2.3.5(svelte@4.2.19)(typescript@5.5.4)': dependencies: chokidar: 4.0.1 kleur: 4.1.5 sade: 1.8.1 semver: 7.5.4 svelte: 4.2.19 - svelte2tsx: 0.7.19(svelte@4.2.19)(typescript@5.6.3) + svelte2tsx: 0.7.19(svelte@4.2.19)(typescript@5.5.4) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': + '@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) debug: 4.3.7 svelte: 4.2.19 - vite: 5.4.8(@types/node@22.8.7) + vite: 5.4.8(@types/node@22.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) debug: 4.3.7 svelte: 4.2.19 - vite: 5.4.8(@types/node@22.8.7) + vite: 5.4.8(@types/node@22.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': + '@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.15.3(svelte@4.2.19) - vite: 5.4.8(@types/node@22.8.7) - vitefu: 0.2.5(vite@5.4.8(@types/node@22.8.7)) + vite: 5.4.8(@types/node@22.6.1) + vitefu: 0.2.5(vite@5.4.8(@types/node@22.6.1)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.8.7)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)))(svelte@4.2.19)(vite@5.4.8(@types/node@22.6.1)) debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.8(@types/node@22.8.7) - vitefu: 0.2.5(vite@5.4.8(@types/node@22.8.7)) + vite: 5.4.8(@types/node@22.6.1) + vitefu: 0.2.5(vite@5.4.8(@types/node@22.6.1)) transitivePeerDependencies: - supports-color - '@tailwindcss/typography@0.5.10(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))': + '@tailwindcss/typography@0.5.10(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + tailwindcss: 3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) '@testing-library/dom@9.3.3': dependencies: @@ -12382,7 +12202,7 @@ snapshots: '@types/body-parser@1.19.3': dependencies: '@types/connect': 3.4.36 - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/chrome@0.0.74': dependencies: @@ -12390,13 +12210,13 @@ snapshots: '@types/connect@3.4.36': dependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.3': dependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/d3-scale-chromatic@3.0.3': {} @@ -12433,7 +12253,7 @@ snapshots: '@types/express-serve-static-core@4.17.37': dependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/qs': 6.9.8 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -12455,7 +12275,7 @@ snapshots: '@types/graceful-fs@4.1.7': dependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/hast@3.0.1': dependencies: @@ -12467,6 +12287,10 @@ snapshots: '@types/http-errors@2.0.2': {} + '@types/is-ci@3.0.0': + dependencies: + ci-info: 3.8.0 + '@types/istanbul-lib-coverage@2.0.4': {} '@types/istanbul-lib-report@3.0.0': @@ -12482,11 +12306,6 @@ snapshots: expect: 29.7.0 pretty-format: 29.7.0 - '@types/jest@29.5.14': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - '@types/jest@29.5.5': dependencies: expect: 29.7.0 @@ -12498,7 +12317,7 @@ snapshots: '@types/lodash@4.14.199': {} - '@types/markdown-it@14.1.2': + '@types/markdown-it@14.1.1': dependencies: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 @@ -12507,11 +12326,7 @@ snapshots: '@types/mdast@3.0.12': dependencies: - '@types/unist': 2.0.11 - - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 '@types/mdast@4.0.4': dependencies: @@ -12527,6 +12342,8 @@ snapshots: '@types/mime@3.0.1': {} + '@types/minimist@1.2.2': {} + '@types/minimist@1.2.5': {} '@types/ms@0.7.31': {} @@ -12535,7 +12352,7 @@ snapshots: '@types/node-fetch@2.6.6': dependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 form-data: 4.0.0 '@types/node@12.20.55': {} @@ -12544,7 +12361,7 @@ snapshots: '@types/node@18.17.19': {} - '@types/node@18.19.64': + '@types/node@18.19.50': dependencies: undici-types: 5.26.5 @@ -12552,10 +12369,6 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.8.7': - dependencies: - undici-types: 6.19.8 - '@types/normalize-package-data@2.4.4': {} '@types/pretty-hrtime@1.0.1': {} @@ -12589,18 +12402,20 @@ snapshots: '@types/send@0.17.1': dependencies: '@types/mime': 1.3.2 - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/serve-static@1.15.2': dependencies: '@types/http-errors': 2.0.2 '@types/mime': 3.0.1 - '@types/node': 22.8.7 + '@types/node': 22.6.1 '@types/stack-utils@2.0.1': {} '@types/unist@2.0.11': {} + '@types/unist@2.0.8': {} + '@types/unist@3.0.0': {} '@types/unist@3.0.3': {} @@ -12619,13 +12434,13 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.0 - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.6.3))(eslint@8.4.1)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.5.4))(eslint@8.4.1)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.4.1)(typescript@5.6.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.4.1)(typescript@5.5.4) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.4.1)(typescript@5.6.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.4.1)(typescript@5.6.3) + '@typescript-eslint/type-utils': 6.21.0(eslint@8.4.1)(typescript@5.5.4) + '@typescript-eslint/utils': 6.21.0(eslint@8.4.1)(typescript@5.5.4) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 eslint: 8.4.1 @@ -12633,22 +12448,22 @@ snapshots: ignore: 5.3.1 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.6.3) + ts-api-utils: 1.0.3(typescript@5.5.4) optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2))(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2))(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) + '@typescript-eslint/parser': 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) - '@typescript-eslint/utils': 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) + '@typescript-eslint/type-utils': 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) + '@typescript-eslint/utils': 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -12659,27 +12474,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.6.3)': + '@typescript-eslint/parser@6.21.0(eslint@8.4.1)(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 eslint: 8.4.1 optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2)': + '@typescript-eslint/parser@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) optionalDependencies: typescript: 5.2.2 transitivePeerDependencies: @@ -12695,24 +12510,24 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/type-utils@6.21.0(eslint@8.4.1)(typescript@5.6.3)': + '@typescript-eslint/type-utils@6.21.0(eslint@8.4.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.4.1)(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) + '@typescript-eslint/utils': 6.21.0(eslint@8.4.1)(typescript@5.5.4) debug: 4.3.7 eslint: 8.4.1 - ts-api-utils: 1.0.3(typescript@5.6.3) + ts-api-utils: 1.0.3(typescript@5.5.4) optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2)': + '@typescript-eslint/type-utils@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2)': dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2) + '@typescript-eslint/utils': 6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2) debug: 4.3.7 - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) ts-api-utils: 1.0.3(typescript@5.2.2) optionalDependencies: typescript: 5.2.2 @@ -12723,17 +12538,17 @@ snapshots: '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.4)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.3 - tsutils: 3.21.0(typescript@5.6.3) + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.5.4) optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color @@ -12745,14 +12560,14 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.3 + semver: 7.5.4 ts-api-utils: 1.0.3(typescript@5.2.2) optionalDependencies: typescript: 5.2.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.4)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -12760,51 +12575,51 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.0.3(typescript@5.6.3) + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.5.4) optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.4.1)(typescript@5.6.3)': + '@typescript-eslint/utils@5.62.0(eslint@8.4.1)(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.4.1) '@types/json-schema': 7.0.15 '@types/semver': 7.5.2 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) eslint: 8.4.1 eslint-scope: 5.1.1 - semver: 7.6.3 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.21.0(eslint@8.4.1)(typescript@5.6.3)': + '@typescript-eslint/utils@6.21.0(eslint@8.4.1)(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.4.1) '@types/json-schema': 7.0.15 '@types/semver': 7.5.2 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) eslint: 8.4.1 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.21.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.2.2)': + '@typescript-eslint/utils@6.21.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.2.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@1.21.6)) '@types/json-schema': 7.0.15 '@types/semver': 7.5.2 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -12822,109 +12637,109 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.1.4(vite@5.4.10(@types/node@22.8.7))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@5.0.5(vite@5.4.8(@types/node@22.6.1))(vue@3.4.27(typescript@5.5.4))': dependencies: - vite: 5.4.10(@types/node@22.8.7) - vue: 3.5.12(typescript@5.6.3) + vite: 5.4.8(@types/node@22.6.1) + vue: 3.4.27(typescript@5.5.4) - '@vue/compiler-core@3.5.12': + '@vue/compiler-core@3.4.27': dependencies: - '@babel/parser': 7.26.2 - '@vue/shared': 3.5.12 + '@babel/parser': 7.25.0 + '@vue/shared': 3.4.27 entities: 4.5.0 estree-walker: 2.0.2 - source-map-js: 1.2.1 + source-map-js: 1.2.0 - '@vue/compiler-dom@3.5.12': + '@vue/compiler-dom@3.4.27': dependencies: - '@vue/compiler-core': 3.5.12 - '@vue/shared': 3.5.12 + '@vue/compiler-core': 3.4.27 + '@vue/shared': 3.4.27 - '@vue/compiler-sfc@3.5.12': + '@vue/compiler-sfc@3.4.27': dependencies: - '@babel/parser': 7.26.2 - '@vue/compiler-core': 3.5.12 - '@vue/compiler-dom': 3.5.12 - '@vue/compiler-ssr': 3.5.12 - '@vue/shared': 3.5.12 + '@babel/parser': 7.25.0 + '@vue/compiler-core': 3.4.27 + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 estree-walker: 2.0.2 - magic-string: 0.30.12 + magic-string: 0.30.11 postcss: 8.4.47 - source-map-js: 1.2.1 + source-map-js: 1.2.0 - '@vue/compiler-ssr@3.5.12': + '@vue/compiler-ssr@3.4.27': dependencies: - '@vue/compiler-dom': 3.5.12 - '@vue/shared': 3.5.12 + '@vue/compiler-dom': 3.4.27 + '@vue/shared': 3.4.27 - '@vue/devtools-api@7.6.2': + '@vue/devtools-api@7.2.1(vue@3.4.27(typescript@5.5.4))': dependencies: - '@vue/devtools-kit': 7.6.2 + '@vue/devtools-kit': 7.2.1(vue@3.4.27(typescript@5.5.4)) + transitivePeerDependencies: + - vue - '@vue/devtools-kit@7.6.2': + '@vue/devtools-kit@7.2.1(vue@3.4.27(typescript@5.5.4))': dependencies: - '@vue/devtools-shared': 7.6.2 - birpc: 0.2.19 + '@vue/devtools-shared': 7.2.1 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - superjson: 2.2.1 + vue: 3.4.27(typescript@5.5.4) - '@vue/devtools-shared@7.6.2': + '@vue/devtools-shared@7.2.1': dependencies: - rfdc: 1.4.1 + rfdc: 1.3.1 - '@vue/reactivity@3.5.12': + '@vue/reactivity@3.4.27': dependencies: - '@vue/shared': 3.5.12 + '@vue/shared': 3.4.27 - '@vue/runtime-core@3.5.12': + '@vue/runtime-core@3.4.27': dependencies: - '@vue/reactivity': 3.5.12 - '@vue/shared': 3.5.12 + '@vue/reactivity': 3.4.27 + '@vue/shared': 3.4.27 - '@vue/runtime-dom@3.5.12': + '@vue/runtime-dom@3.4.27': dependencies: - '@vue/reactivity': 3.5.12 - '@vue/runtime-core': 3.5.12 - '@vue/shared': 3.5.12 + '@vue/runtime-core': 3.4.27 + '@vue/shared': 3.4.27 csstype: 3.1.3 - '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.6.3))': + '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.5.4))': dependencies: - '@vue/compiler-ssr': 3.5.12 - '@vue/shared': 3.5.12 - vue: 3.5.12(typescript@5.6.3) + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + vue: 3.4.27(typescript@5.5.4) - '@vue/shared@3.5.12': {} + '@vue/shared@3.4.27': {} - '@vueuse/core@11.2.0(vue@3.5.12(typescript@5.6.3))': + '@vueuse/core@10.11.0(vue@3.4.27(typescript@5.5.4))': dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 11.2.0 - '@vueuse/shared': 11.2.0(vue@3.5.12(typescript@5.6.3)) - vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) + '@vueuse/metadata': 10.11.0 + '@vueuse/shared': 10.11.0(vue@3.4.27(typescript@5.5.4)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.5.4)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/integrations@11.2.0(focus-trap@7.6.0)(vue@3.5.12(typescript@5.6.3))': + '@vueuse/integrations@10.11.0(focus-trap@7.5.4)(vue@3.4.27(typescript@5.5.4))': dependencies: - '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) - '@vueuse/shared': 11.2.0(vue@3.5.12(typescript@5.6.3)) - vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) + '@vueuse/core': 10.11.0(vue@3.4.27(typescript@5.5.4)) + '@vueuse/shared': 10.11.0(vue@3.4.27(typescript@5.5.4)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.5.4)) optionalDependencies: - focus-trap: 7.6.0 + focus-trap: 7.5.4 transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/metadata@11.2.0': {} + '@vueuse/metadata@10.11.0': {} - '@vueuse/shared@11.2.0(vue@3.5.12(typescript@5.6.3))': + '@vueuse/shared@10.11.0(vue@3.4.27(typescript@5.5.4))': dependencies: - vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.5.4)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -12951,6 +12766,10 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + acorn-jsx@5.3.2(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -12985,21 +12804,23 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - algoliasearch@5.12.0: - dependencies: - '@algolia/client-abtesting': 5.12.0 - '@algolia/client-analytics': 5.12.0 - '@algolia/client-common': 5.12.0 - '@algolia/client-insights': 5.12.0 - '@algolia/client-personalization': 5.12.0 - '@algolia/client-query-suggestions': 5.12.0 - '@algolia/client-search': 5.12.0 - '@algolia/ingestion': 1.12.0 - '@algolia/monitoring': 1.12.0 - '@algolia/recommend': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + algoliasearch@4.23.3: + dependencies: + '@algolia/cache-browser-local-storage': 4.23.3 + '@algolia/cache-common': 4.23.3 + '@algolia/cache-in-memory': 4.23.3 + '@algolia/client-account': 4.23.3 + '@algolia/client-analytics': 4.23.3 + '@algolia/client-common': 4.23.3 + '@algolia/client-personalization': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/logger-console': 4.23.3 + '@algolia/recommend': 4.23.3 + '@algolia/requester-browser-xhr': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/requester-node-http': 4.23.3 + '@algolia/transporter': 4.23.3 ansi-colors@4.1.3: {} @@ -13063,6 +12884,13 @@ snapshots: array-union@2.1.0: {} + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + arraybuffer.prototype.slice@1.0.2: dependencies: array-buffer-byte-length: 1.0.0 @@ -13139,7 +12967,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.25.0 - '@babel/types': 7.26.0 + '@babel/types': 7.25.2 '@types/babel__core': 7.20.2 '@types/babel__traverse': 7.20.2 @@ -13207,8 +13035,6 @@ snapshots: binary-extensions@2.2.0: {} - birpc@0.2.19: {} - bl@4.1.0: dependencies: buffer: 5.7.1 @@ -13253,6 +13079,10 @@ snapshots: dependencies: fill-range: 7.1.1 + breakword@1.0.6: + dependencies: + wcwidth: 1.0.1 + browser-assert@1.2.1: {} browserify-zlib@0.1.4: @@ -13314,11 +13144,6 @@ snapshots: esbuild: 0.23.1 load-tsconfig: 0.2.5 - bundle-require@5.0.0(esbuild@0.24.0): - dependencies: - esbuild: 0.24.0 - load-tsconfig: 0.2.5 - bytes@3.0.0: {} bytes@3.1.2: {} @@ -13405,7 +13230,7 @@ snapshots: chownr@2.0.0: {} - ci-info@3.9.0: {} + ci-info@3.8.0: {} cjs-module-lexer@1.2.3: {} @@ -13425,6 +13250,12 @@ snapshots: optionalDependencies: '@colors/colors': 1.5.0 + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -13528,10 +13359,6 @@ snapshots: cookie@0.6.0: {} - copy-anything@3.0.5: - dependencies: - is-what: 4.1.16 - core-js-compat@3.38.1: dependencies: browserslist: 4.23.3 @@ -13549,7 +13376,7 @@ snapshots: create-esm-loader@0.2.5: dependencies: - semver: 7.6.3 + semver: 7.5.4 create-jest@29.7.0(@types/node@14.18.63)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)): dependencies: @@ -13626,13 +13453,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -13685,18 +13512,31 @@ snapshots: csstype@3.1.3: {} - cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.3): + csv-generate@3.4.3: {} + + csv-parse@4.16.3: {} + + csv-stringify@5.6.5: {} + + csv@5.5.3: + dependencies: + csv-generate: 3.4.3 + csv-parse: 4.16.3 + csv-stringify: 5.6.5 + stream-transform: 2.1.3 + + cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.1): dependencies: cose-base: 1.0.3 - cytoscape: 3.30.3 + cytoscape: 3.30.1 - cytoscape-fcose@2.2.0(cytoscape@3.30.3): + cytoscape-fcose@2.2.0(cytoscape@3.30.1): dependencies: cose-base: 2.2.0 - cytoscape: 3.30.3 + cytoscape: 3.30.1 optional: true - cytoscape@3.30.3: {} + cytoscape@3.30.1: {} d3-array@2.12.1: dependencies: @@ -13875,16 +13715,18 @@ snapshots: d3: 7.9.0 lodash-es: 4.17.21 - daisyui@3.7.7(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): + daisyui@3.7.7(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): dependencies: colord: 2.9.3 css-selector-tokenizer: 0.8.0 postcss: 8.4.47 postcss-js: 4.0.1(postcss@8.4.47) - tailwindcss: 3.4.13(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + tailwindcss: 3.4.13(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) transitivePeerDependencies: - ts-node + dayjs@1.11.10: {} + dayjs@1.11.13: {} debug@2.6.9: @@ -13899,6 +13741,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.6: + dependencies: + ms: 2.1.2 + debug@4.3.7: dependencies: ms: 2.1.3 @@ -14024,7 +13870,7 @@ snapshots: diff@4.0.2: {} - diff@5.2.0: {} + diff@5.1.0: {} dir-glob@3.0.1: dependencies: @@ -14198,6 +14044,10 @@ snapshots: has: 1.0.3 has-tostringtag: 1.0.0 + es-shim-unscopables@1.0.0: + dependencies: + has: 1.0.3 + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 @@ -14374,14 +14224,14 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-prettier@9.0.0(eslint@9.14.0(jiti@1.21.6)): + eslint-config-prettier@9.0.0(eslint@9.13.0(jiti@1.21.6)): dependencies: - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) - eslint-config-turbo@2.2.3(eslint@9.14.0(jiti@1.21.6)): + eslint-config-turbo@2.2.3(eslint@9.13.0(jiti@1.21.6)): dependencies: - eslint: 9.14.0(jiti@1.21.6) - eslint-plugin-turbo: 2.2.3(eslint@9.14.0(jiti@1.21.6)) + eslint: 9.13.0(jiti@1.21.6) + eslint-plugin-turbo: 2.2.3(eslint@9.13.0(jiti@1.21.6)) eslint-formatter-pretty@4.1.0: dependencies: @@ -14394,10 +14244,10 @@ snapshots: string-width: 4.2.3 supports-hyperlinks: 2.3.0 - eslint-plugin-storybook@0.6.14(eslint@8.4.1)(typescript@5.6.3): + eslint-plugin-storybook@0.6.14(eslint@8.4.1)(typescript@5.5.4): dependencies: '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.4.1)(typescript@5.6.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.4.1)(typescript@5.5.4) eslint: 8.4.1 requireindex: 1.2.0 ts-dedent: 2.2.0 @@ -14405,16 +14255,16 @@ snapshots: - supports-color - typescript - eslint-plugin-svelte@2.33.2(eslint@9.14.0(jiti@1.21.6))(svelte@4.2.19)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2)): + eslint-plugin-svelte@2.33.2(eslint@9.13.0(jiti@1.21.6))(svelte@4.2.19)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.7 - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) esutils: 2.0.3 known-css-properties: 0.28.0 postcss: 8.4.47 - postcss-load-config: 3.1.4(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2)) + postcss-load-config: 3.1.4(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2)) postcss-safe-parser: 6.0.0(postcss@8.4.47) postcss-selector-parser: 6.0.13 semver: 7.5.4 @@ -14425,10 +14275,10 @@ snapshots: - supports-color - ts-node - eslint-plugin-turbo@2.2.3(eslint@9.14.0(jiti@1.21.6)): + eslint-plugin-turbo@2.2.3(eslint@9.13.0(jiti@1.21.6)): dependencies: dotenv: 16.0.3 - eslint: 9.14.0(jiti@1.21.6) + eslint: 9.13.0(jiti@1.21.6) eslint-rule-docs@1.1.235: {} @@ -14442,7 +14292,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-scope@8.2.0: + eslint-scope@8.1.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -14456,7 +14306,7 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.1.0: {} eslint@8.4.1: dependencies: @@ -14493,7 +14343,7 @@ snapshots: optionator: 0.9.4 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.6.3 + semver: 7.5.4 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 @@ -14501,18 +14351,18 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.14.0(jiti@1.21.6): + eslint@9.13.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.14.0 - '@eslint/plugin-kit': 0.2.2 + '@eslint/js': 9.13.0 + '@eslint/plugin-kit': 0.2.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.0 + '@humanwhocodes/retry': 0.3.1 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -14520,9 +14370,9 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -14556,14 +14406,14 @@ snapshots: dependencies: create-esm-loader: 0.2.5 npm-run-all: 4.1.5 - semver: 7.6.3 - typescript: 5.6.3 + semver: 7.5.4 + typescript: 5.5.4 - espree@10.3.0: + espree@10.2.0: dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 + eslint-visitor-keys: 4.1.0 espree@9.2.0: dependencies: @@ -14573,8 +14423,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -14730,10 +14580,6 @@ snapshots: optionalDependencies: picomatch: 4.0.2 - fdir@6.4.2(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - fetch-retry@5.0.6: {} file-entry-cache@6.0.1: @@ -14799,6 +14645,11 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + find-yarn-workspace-root2@1.2.16: + dependencies: + micromatch: 4.0.5 + pkg-dir: 4.2.0 + flat-cache@3.2.0: dependencies: flatted: 3.3.1 @@ -14814,7 +14665,7 @@ snapshots: flow-parser@0.217.0: {} - focus-trap@7.6.0: + focus-trap@7.5.4: dependencies: tabbable: 6.2.0 @@ -14827,11 +14678,6 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - form-data@4.0.0: dependencies: asynckit: 0.4.0 @@ -14852,12 +14698,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.0 - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -14956,11 +14796,11 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.0 + foreground-child: 3.1.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.1 + package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@7.1.6: @@ -15020,6 +14860,8 @@ snapshots: graceful-fs@4.2.11: {} + grapheme-splitter@1.0.4: {} + graphemer@1.4.0: {} gunzip-maybe@1.4.2: @@ -15257,6 +15099,10 @@ snapshots: is-callable@1.2.7: {} + is-ci@3.0.1: + dependencies: + ci-info: 3.8.0 + is-core-module@2.13.0: dependencies: has: 1.0.3 @@ -15368,8 +15214,6 @@ snapshots: call-bind: 1.0.2 get-intrinsic: 1.2.1 - is-what@4.1.16: {} - is-windows@1.0.2: {} is-wsl@2.2.0: @@ -15389,7 +15233,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.26.2 + '@babel/parser': 7.25.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -15399,10 +15243,10 @@ snapshots: istanbul-lib-instrument@6.0.0: dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.26.2 + '@babel/parser': 7.25.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 7.6.3 + semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -15414,7 +15258,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.7 + debug: 4.3.6 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -15456,7 +15300,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -15571,16 +15415,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -15597,7 +15441,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15628,7 +15472,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15659,7 +15503,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15690,7 +15534,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15721,7 +15565,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15744,44 +15588,14 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.8.7): - dependencies: - '@babel/core': 7.25.2 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.8.7 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)): + jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.1(@types/node@14.18.63)(typescript@5.3.3)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15799,20 +15613,20 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 ts-node: 10.9.1(@types/node@14.18.63)(typescript@5.3.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)): + jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15830,20 +15644,20 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 ts-node: 10.9.2(@types/node@18.17.19)(typescript@5.4.4) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.5)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15861,20 +15675,20 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 ts-node: 10.9.2(@types/node@18.17.19)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)): + jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15892,20 +15706,20 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 ts-node: 10.9.2(@types/node@18.17.19)(typescript@5.5.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 @@ -15923,8 +15737,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.8.7 - ts-node: 10.9.2(@types/node@22.8.7)(typescript@5.6.3) + '@types/node': 22.6.1 + ts-node: 10.9.2(@types/node@22.6.1)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -15953,7 +15767,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -15970,7 +15784,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.7 - '@types/node': 22.8.7 + '@types/node': 22.6.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -16001,7 +15815,7 @@ snapshots: '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.8 + micromatch: 4.0.5 pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -16009,12 +15823,12 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.8.7 + '@types/node': 22.6.1 jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -16049,7 +15863,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -16077,7 +15891,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -16116,16 +15930,16 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.6.3 + semver: 7.5.4 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 3.8.0 graceful-fs: 4.2.11 picomatch: 2.3.1 @@ -16142,7 +15956,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.8.7 + '@types/node': 22.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -16151,7 +15965,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -16216,12 +16030,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): + jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -16261,7 +16075,7 @@ snapshots: chalk: 4.1.2 flow-parser: 0.217.0 graceful-fs: 4.2.11 - micromatch: 4.0.8 + micromatch: 4.0.5 neo-async: 2.6.2 node-dir: 0.1.17 recast: 0.23.4 @@ -16361,6 +16175,13 @@ snapshots: load-tsconfig@0.2.5: {} + load-yaml-file@0.2.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + locate-character@3.0.0: {} locate-path@3.0.0: @@ -16446,10 +16267,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.12: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -16522,8 +16339,8 @@ snapshots: mdast-util-from-markdown@1.3.1: dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 + '@types/mdast': 3.0.12 + '@types/unist': 2.0.8 decode-named-character-reference: 1.0.2 mdast-util-to-string: 3.2.0 micromark: 3.2.0 @@ -16601,7 +16418,7 @@ snapshots: mdast-util-to-markdown@1.5.0: dependencies: '@types/mdast': 3.0.12 - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 longest-streak: 3.1.0 mdast-util-phrasing: 3.0.1 mdast-util-to-string: 3.2.0 @@ -16613,7 +16430,7 @@ snapshots: mdast-util-to-string@3.2.0: dependencies: - '@types/mdast': 3.0.15 + '@types/mdast': 3.0.12 mdn-data@2.0.30: {} @@ -16635,6 +16452,20 @@ snapshots: memorystream@0.3.1: {} + meow@6.1.1: + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + meow@9.0.0: dependencies: '@types/minimist': 1.2.5 @@ -16656,17 +16487,17 @@ snapshots: merge2@1.4.1: {} - mermaid@10.9.3: + mermaid@10.9.1: dependencies: '@braintree/sanitize-url': 6.0.4 '@types/d3-scale': 4.0.8 '@types/d3-scale-chromatic': 3.0.3 - cytoscape: 3.30.3 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.3) + cytoscape: 3.30.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.30.1) d3: 7.9.0 d3-sankey: 0.12.3 dagre-d3-es: 7.0.10 - dayjs: 1.11.13 + dayjs: 1.11.10 dompurify: 3.1.6 elkjs: 0.9.3 katex: 0.16.11 @@ -16674,7 +16505,7 @@ snapshots: lodash-es: 4.17.21 mdast-util-from-markdown: 1.3.1 non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.3.4 + stylis: 4.3.2 ts-dedent: 2.2.0 uuid: 9.0.1 web-worker: 1.3.0 @@ -16949,7 +16780,7 @@ snapshots: minipass@7.1.2: {} - minisearch@7.1.0: {} + minisearch@6.3.0: {} minizlib@2.1.2: dependencies: @@ -16958,6 +16789,8 @@ snapshots: mitt@3.0.1: {} + mixme@0.5.9: {} + mkdirp-classic@0.5.3: {} mkdirp@0.5.6: @@ -17046,9 +16879,9 @@ snapshots: optionalDependencies: typescript: 5.5.3 - nostr-tools@2.10.1(typescript@5.6.3): + nostr-tools@2.4.0(typescript@5.4.4): dependencies: - '@noble/ciphers': 0.5.3 + '@noble/ciphers': 0.5.2 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.1 '@scure/base': 1.1.1 @@ -17056,9 +16889,9 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.6.3 + typescript: 5.4.4 - nostr-tools@2.4.0(typescript@5.4.4): + nostr-tools@2.4.0(typescript@5.5.4): dependencies: '@noble/ciphers': 0.5.2 '@noble/curves': 1.2.0 @@ -17068,11 +16901,11 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.4.4 + typescript: 5.5.4 - nostr-tools@2.4.0(typescript@5.6.3): + nostr-tools@2.5.2(typescript@5.3.3): dependencies: - '@noble/ciphers': 0.5.2 + '@noble/ciphers': 0.5.3 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.1 '@scure/base': 1.1.1 @@ -17080,9 +16913,9 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.6.3 + typescript: 5.3.3 - nostr-tools@2.5.2(typescript@5.3.3): + nostr-tools@2.7.1(typescript@5.5.4): dependencies: '@noble/ciphers': 0.5.3 '@noble/curves': 1.2.0 @@ -17092,9 +16925,9 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.3.3 + typescript: 5.5.4 - nostr-tools@2.7.2(typescript@5.6.3): + nostr-tools@2.7.2(typescript@5.5.4): dependencies: '@noble/ciphers': 0.5.3 '@noble/curves': 1.2.0 @@ -17104,7 +16937,7 @@ snapshots: '@scure/bip39': 1.2.1 optionalDependencies: nostr-wasm: 0.1.0 - typescript: 5.6.3 + typescript: 5.5.4 nostr-wasm@0.1.0: optional: true @@ -17174,7 +17007,7 @@ snapshots: oniguruma-to-js@0.4.3: dependencies: - regex: 4.4.0 + regex: 4.3.2 open@8.4.2: dependencies: @@ -17239,9 +17072,7 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} - - package-manager-detector@0.2.2: {} + package-json-from-dist@1.0.0: {} pako@0.2.9: {} @@ -17324,8 +17155,6 @@ snapshots: picocolors@1.1.0: {} - picocolors@1.1.1: {} - picomatch@2.3.1: {} picomatch@4.0.2: {} @@ -17380,13 +17209,13 @@ snapshots: postcss: 8.4.47 ts-node: 10.9.1(@types/node@14.18.63)(typescript@5.3.3) - postcss-load-config@3.1.4(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2)): + postcss-load-config@3.1.4(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2)): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: postcss: 8.4.47 - ts-node: 10.9.2(@types/node@22.8.7)(typescript@5.2.2) + ts-node: 10.9.2(@types/node@22.6.1)(typescript@5.2.2) postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.4.4)): dependencies: @@ -17412,21 +17241,21 @@ snapshots: postcss: 8.4.47 ts-node: 10.9.2(@types/node@18.17.19)(typescript@5.5.3) - postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): + postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): dependencies: lilconfig: 2.1.0 yaml: 2.3.2 optionalDependencies: postcss: 8.4.47 - ts-node: 10.9.2(@types/node@22.8.7)(typescript@5.6.3) + ts-node: 10.9.2(@types/node@22.6.1)(typescript@5.5.4) - postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.6.0): + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.5.1): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 1.21.6 postcss: 8.4.47 - yaml: 2.6.0 + yaml: 2.5.1 postcss-nested@6.0.1(postcss@8.4.47): dependencies: @@ -17459,7 +17288,14 @@ snapshots: picocolors: 1.1.0 source-map-js: 1.2.1 - preact@10.24.3: {} + preact@10.22.0: {} + + preferred-pm@3.1.2: + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 prelude-ls@1.2.1: {} @@ -17470,6 +17306,8 @@ snapshots: prettier@2.8.8: {} + prettier@3.0.3: {} + prettier@3.3.3: {} pretty-format@27.5.1: @@ -17710,13 +17548,11 @@ snapshots: regenerator-runtime@0.14.0: {} - regenerator-runtime@0.14.1: {} - regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.22.15 - regex@4.4.0: {} + regex@4.3.2: {} regexp.prototype.flags@1.5.1: dependencies: @@ -17781,6 +17617,8 @@ snapshots: require-directory@2.1.1: {} + require-main-filename@2.0.0: {} + requireindex@1.2.0: {} resolve-cwd@3.0.0: @@ -17806,7 +17644,7 @@ snapshots: reusify@1.0.4: {} - rfdc@1.4.1: {} + rfdc@1.3.1: {} rimraf@2.6.3: dependencies: @@ -17874,30 +17712,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 - rollup@4.24.4: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.4 - '@rollup/rollup-android-arm64': 4.24.4 - '@rollup/rollup-darwin-arm64': 4.24.4 - '@rollup/rollup-darwin-x64': 4.24.4 - '@rollup/rollup-freebsd-arm64': 4.24.4 - '@rollup/rollup-freebsd-x64': 4.24.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.4 - '@rollup/rollup-linux-arm-musleabihf': 4.24.4 - '@rollup/rollup-linux-arm64-gnu': 4.24.4 - '@rollup/rollup-linux-arm64-musl': 4.24.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.4 - '@rollup/rollup-linux-riscv64-gnu': 4.24.4 - '@rollup/rollup-linux-s390x-gnu': 4.24.4 - '@rollup/rollup-linux-x64-gnu': 4.24.4 - '@rollup/rollup-linux-x64-musl': 4.24.4 - '@rollup/rollup-win32-arm64-msvc': 4.24.4 - '@rollup/rollup-win32-ia32-msvc': 4.24.4 - '@rollup/rollup-win32-x64-msvc': 4.24.4 - fsevents: 2.3.3 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -17986,6 +17800,8 @@ snapshots: transitivePeerDependencies: - supports-color + set-blocking@2.0.0: {} + set-cookie-parser@2.7.0: {} set-function-name@2.0.1: @@ -18014,6 +17830,10 @@ snapshots: shell-quote@1.8.1: {} + shiki@1.10.0: + dependencies: + '@shikijs/core': 1.10.0 + shiki@1.18.0: dependencies: '@shikijs/core': 1.18.0 @@ -18023,14 +17843,9 @@ snapshots: '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 - shiki@1.22.2: + shiki@1.7.0: dependencies: - '@shikijs/core': 1.22.2 - '@shikijs/engine-javascript': 1.22.2 - '@shikijs/engine-oniguruma': 1.22.2 - '@shikijs/types': 1.22.2 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 + '@shikijs/core': 1.7.0 side-channel@1.0.4: dependencies: @@ -18052,6 +17867,15 @@ snapshots: slash@3.0.0: {} + smartwrap@2.0.2: + dependencies: + array.prototype.flat: 1.3.2 + breakword: 1.0.6 + grapheme-splitter: 1.0.4 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 15.4.1 + sorcery@0.11.0: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -18061,6 +17885,8 @@ snapshots: source-map-js@1.0.2: {} + source-map-js@1.2.0: {} + source-map-js@1.2.1: {} source-map-support@0.5.13: @@ -18091,16 +17917,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.20 + spdx-license-ids: 3.0.15 - spdx-exceptions@2.5.0: {} + spdx-exceptions@2.3.0: {} spdx-expression-parse@3.0.1: dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.20 + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.15 - spdx-license-ids@3.0.20: {} + spdx-license-ids@3.0.15: {} speakingurl@14.0.1: {} @@ -18131,6 +17957,10 @@ snapshots: stream-shift@1.0.1: {} + stream-transform@2.1.3: + dependencies: + mixme: 0.5.9 + string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -18205,7 +18035,7 @@ snapshots: strip-json-comments@3.1.1: {} - stylis@4.3.4: {} + stylis@4.3.2: {} sucrase@3.34.0: dependencies: @@ -18227,10 +18057,6 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - superjson@2.2.1: - dependencies: - copy-anything: 3.0.5 - supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -18250,7 +18076,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.6.3): + svelte-check@4.0.4(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.5.4): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 @@ -18258,7 +18084,7 @@ snapshots: picocolors: 1.1.0 sade: 1.8.1 svelte: 4.2.19 - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - picomatch @@ -18286,7 +18112,7 @@ snapshots: marked: 5.1.2 svelte: 4.2.19 - svelte-preprocess@5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.6.3): + svelte-preprocess@5.1.4(@babel/core@7.25.2)(postcss-load-config@4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.5.4): dependencies: '@types/pug': 2.0.7 detect-indent: 6.1.0 @@ -18297,19 +18123,19 @@ snapshots: optionalDependencies: '@babel/core': 7.25.2 postcss: 8.4.47 - postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) - typescript: 5.6.3 + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) + typescript: 5.5.4 svelte-time@0.9.0: dependencies: dayjs: 1.11.13 - svelte2tsx@0.7.19(svelte@4.2.19)(typescript@5.6.3): + svelte2tsx@0.7.19(svelte@4.2.19)(typescript@5.5.4): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 svelte: 4.2.19 - typescript: 5.6.3 + typescript: 5.5.4 svelte@4.2.19: dependencies: @@ -18340,7 +18166,7 @@ snapshots: tabbable@6.2.0: {} - tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): + tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -18359,7 +18185,7 @@ snapshots: postcss: 8.4.47 postcss-import: 15.1.0(postcss@8.4.47) postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) postcss-nested: 6.0.1(postcss@8.4.47) postcss-selector-parser: 6.0.13 resolve: 1.22.6 @@ -18367,7 +18193,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.13(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)): + tailwindcss@3.4.13(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -18386,7 +18212,7 @@ snapshots: postcss: 8.4.47 postcss-import: 15.1.0(postcss@8.4.47) postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) postcss-nested: 6.0.1(postcss@8.4.47) postcss-selector-parser: 6.0.13 resolve: 1.22.6 @@ -18466,13 +18292,6 @@ snapshots: tiny-invariant@1.3.1: {} - tinyexec@0.3.1: {} - - tinyglobby@0.2.10: - dependencies: - fdir: 6.4.2(picomatch@4.0.2) - picomatch: 4.0.2 - tinyglobby@0.2.6: dependencies: fdir: 6.3.0(picomatch@4.0.2) @@ -18514,9 +18333,9 @@ snapshots: dependencies: typescript: 5.2.2 - ts-api-utils@1.0.3(typescript@5.6.3): + ts-api-utils@1.0.3(typescript@5.5.4): dependencies: - typescript: 5.6.3 + typescript: 5.5.4 ts-dedent@2.2.0: {} @@ -18578,58 +18397,57 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.25.2) esbuild: 0.17.19 - ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.1)(jest@29.7.0(@types/node@22.6.1))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)))(typescript@5.5.4): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.6.1) + jest: 29.7.0(@types/node@22.6.1)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.6.3 + typescript: 5.5.4 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.25.2 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) - esbuild: 0.23.1 + esbuild: 0.24.0 - ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.24.0)(jest@29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@18.17.19)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)))(typescript@5.5.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.8.7)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + jest: 29.7.0(@types/node@18.17.19)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.6.3 + typescript: 5.5.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.25.2 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) - esbuild: 0.24.0 - ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@18.17.19)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)))(typescript@5.5.3): + ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@22.6.1))(typescript@5.5.4): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@18.17.19)(ts-node@10.9.2(@types/node@18.17.19)(typescript@5.5.3)) + jest: 29.7.0(@types/node@22.6.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.5.3 + typescript: 5.5.4 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.25.2 @@ -18709,14 +18527,14 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@22.8.7)(typescript@5.2.2): + ts-node@10.9.2(@types/node@22.6.1)(typescript@5.2.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.8.7 + '@types/node': 22.6.1 acorn: 8.11.3 acorn-walk: 8.2.0 arg: 4.1.3 @@ -18728,21 +18546,21 @@ snapshots: yn: 3.1.1 optional: true - ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3): + ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.8.7 + '@types/node': 22.6.1 acorn: 8.11.3 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.6.3 + typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -18770,7 +18588,7 @@ snapshots: tseep@1.1.1: {} - tseep@1.3.1: {} + tseep@1.2.2: {} tslib@1.14.1: {} @@ -18783,7 +18601,7 @@ snapshots: bundle-require: 4.0.1(esbuild@0.17.19) cac: 6.7.14 chokidar: 3.5.3 - debug: 4.3.4 + debug: 4.3.6 esbuild: 0.17.19 execa: 5.1.1 globby: 11.1.0 @@ -18870,7 +18688,7 @@ snapshots: - supports-color - ts-node - tsup@7.2.0(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3))(typescript@5.6.3): + tsup@7.2.0(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4))(typescript@5.5.4): dependencies: bundle-require: 4.0.1(esbuild@0.18.20) cac: 6.7.14 @@ -18880,7 +18698,7 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.7)(typescript@5.6.3)) + postcss-load-config: 4.0.1(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.6.1)(typescript@5.5.4)) resolve-from: 5.0.0 rollup: 3.29.3 source-map: 0.8.0-beta.0 @@ -18888,23 +18706,23 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.47 - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - supports-color - ts-node - tsup@8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.6.3)(yaml@2.6.0): + tsup@8.3.0(jiti@1.21.6)(postcss@8.4.47)(typescript@5.5.4)(yaml@2.5.1): dependencies: bundle-require: 5.0.0(esbuild@0.23.1) cac: 6.7.14 chokidar: 3.6.0 consola: 3.2.3 - debug: 4.3.7 + debug: 4.3.6 esbuild: 0.23.1 execa: 5.1.1 joycon: 3.1.1 picocolors: 1.0.1 - postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.6.0) + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.5.1) resolve-from: 5.0.0 rollup: 4.22.4 source-map: 0.8.0-beta.0 @@ -18913,71 +18731,54 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.47 - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - tsup@8.3.5(jiti@1.21.6)(postcss@8.4.47)(typescript@5.6.3)(yaml@2.6.0): + tsutils@3.21.0(typescript@5.5.4): dependencies: - bundle-require: 5.0.0(esbuild@0.24.0) - cac: 6.7.14 - chokidar: 4.0.1 - consola: 3.2.3 - debug: 4.3.7 - esbuild: 0.24.0 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.6.0) - resolve-from: 5.0.0 - rollup: 4.24.4 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tinyexec: 0.3.1 - tinyglobby: 0.2.10 - tree-kill: 1.2.2 - optionalDependencies: - postcss: 8.4.47 - typescript: 5.6.3 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml + tslib: 1.14.1 + typescript: 5.5.4 - tsutils@3.21.0(typescript@5.6.3): + tty-table@4.2.1: dependencies: - tslib: 1.14.1 - typescript: 5.6.3 + chalk: 4.1.2 + csv: 5.5.3 + kleur: 4.1.5 + smartwrap: 2.0.2 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 17.7.2 - turbo-darwin-64@1.13.4: + turbo-darwin-64@1.10.14: optional: true - turbo-darwin-arm64@1.13.4: + turbo-darwin-arm64@1.10.14: optional: true - turbo-linux-64@1.13.4: + turbo-linux-64@1.10.14: optional: true - turbo-linux-arm64@1.13.4: + turbo-linux-arm64@1.10.14: optional: true - turbo-windows-64@1.13.4: + turbo-windows-64@1.10.14: optional: true - turbo-windows-arm64@1.13.4: + turbo-windows-arm64@1.10.14: optional: true - turbo@1.13.4: + turbo@1.10.14: optionalDependencies: - turbo-darwin-64: 1.13.4 - turbo-darwin-arm64: 1.13.4 - turbo-linux-64: 1.13.4 - turbo-linux-arm64: 1.13.4 - turbo-windows-64: 1.13.4 - turbo-windows-arm64: 1.13.4 + turbo-darwin-64: 1.10.14 + turbo-darwin-arm64: 1.10.14 + turbo-linux-64: 1.10.14 + turbo-linux-arm64: 1.10.14 + turbo-windows-64: 1.10.14 + turbo-windows-arm64: 1.10.14 type-check@0.4.0: dependencies: @@ -18985,6 +18786,8 @@ snapshots: type-detect@4.0.8: {} + type-fest@0.13.1: {} + type-fest@0.16.0: {} type-fest@0.18.1: {} @@ -19041,30 +18844,21 @@ snapshots: typedarray@0.0.6: {} - typedoc-plugin-markdown@4.2.9(typedoc@0.26.7(typescript@5.6.3)): + typedoc-plugin-markdown@4.2.9(typedoc@0.26.7(typescript@5.5.4)): dependencies: - typedoc: 0.26.7(typescript@5.6.3) + typedoc: 0.26.7(typescript@5.5.4) - typedoc-plugin-rename-defaults@0.6.7(typedoc@0.26.11(typescript@5.6.3)): + typedoc-plugin-rename-defaults@0.6.6(typedoc@0.26.7(typescript@5.5.4)): dependencies: - typedoc: 0.26.11(typescript@5.6.3) - - typedoc@0.26.11(typescript@5.6.3): - dependencies: - lunr: 2.3.9 - markdown-it: 14.1.0 - minimatch: 9.0.5 - shiki: 1.22.2 - typescript: 5.6.3 - yaml: 2.6.0 + typedoc: 0.26.7(typescript@5.5.4) - typedoc@0.26.7(typescript@5.6.3): + typedoc@0.26.7(typescript@5.5.4): dependencies: lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 shiki: 1.18.0 - typescript: 5.6.3 + typescript: 5.5.4 yaml: 2.5.1 types-ramda@0.29.10: @@ -19083,7 +18877,7 @@ snapshots: typescript@5.5.3: {} - typescript@5.6.3: {} + typescript@5.5.4: {} uc.micro@2.1.0: {} @@ -19114,7 +18908,7 @@ snapshots: unified@10.1.2: dependencies: - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 bail: 2.0.2 extend: 3.0.2 is-buffer: 2.0.5 @@ -19156,15 +18950,15 @@ snapshots: unist-util-stringify-position@3.0.3: dependencies: - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.3 unist-util-visit-parents@3.1.1: dependencies: - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 unist-util-is: 4.1.0 unist-util-visit-parents@5.1.3: @@ -19179,13 +18973,13 @@ snapshots: unist-util-visit@2.0.3: dependencies: - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 unist-util-is: 4.1.0 unist-util-visit-parents: 3.1.1 unist-util-visit@4.1.2: dependencies: - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 @@ -19204,7 +18998,7 @@ snapshots: unplugin@1.5.0: dependencies: acorn: 8.14.0 - chokidar: 3.6.0 + chokidar: 3.5.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 @@ -19270,7 +19064,7 @@ snapshots: uvu@0.5.6: dependencies: dequal: 2.0.3 - diff: 5.2.0 + diff: 5.1.0 kleur: 4.1.5 sade: 1.8.1 @@ -19298,17 +19092,17 @@ snapshots: vfile-message@3.1.4: dependencies: - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 unist-util-stringify-position: 3.0.3 vfile-message@4.0.2: dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 vfile@5.3.7: dependencies: - '@types/unist': 2.0.11 + '@types/unist': 2.0.8 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 @@ -19324,54 +19118,44 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@5.4.10(@types/node@22.8.7): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.4 - optionalDependencies: - '@types/node': 22.8.7 - fsevents: 2.3.3 - - vite@5.4.8(@types/node@22.8.7): + vite@5.4.8(@types/node@22.6.1): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.24.0 optionalDependencies: - '@types/node': 22.8.7 + '@types/node': 22.6.1 fsevents: 2.3.3 - vitefu@0.2.5(vite@5.4.8(@types/node@22.8.7)): + vitefu@0.2.5(vite@5.4.8(@types/node@22.6.1)): optionalDependencies: - vite: 5.4.8(@types/node@22.8.7) + vite: 5.4.8(@types/node@22.6.1) - vitepress-plugin-mermaid@2.0.17(mermaid@10.9.3)(vitepress@1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3)): + vitepress-plugin-mermaid@2.0.16(mermaid@10.9.1)(vitepress@1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4)): dependencies: - mermaid: 10.9.3 - vitepress: 1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3) + mermaid: 10.9.1 + vitepress: 1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4) optionalDependencies: '@mermaid-js/mermaid-mindmap': 9.3.0 - vitepress@1.4.5(@algolia/client-search@5.12.0)(@types/node@22.8.7)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.6.3): - dependencies: - '@docsearch/css': 3.6.3 - '@docsearch/js': 3.6.3(@algolia/client-search@5.12.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0) - '@shikijs/core': 1.22.2 - '@shikijs/transformers': 1.22.2 - '@shikijs/types': 1.22.2 - '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.1.4(vite@5.4.10(@types/node@22.8.7))(vue@3.5.12(typescript@5.6.3)) - '@vue/devtools-api': 7.6.2 - '@vue/shared': 3.5.12 - '@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3)) - '@vueuse/integrations': 11.2.0(focus-trap@7.6.0)(vue@3.5.12(typescript@5.6.3)) - focus-trap: 7.6.0 + vitepress@1.2.3(@algolia/client-search@4.24.0)(@types/node@22.6.1)(@types/react@18.2.22)(postcss@8.4.47)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0)(typescript@5.5.4): + dependencies: + '@docsearch/css': 3.6.0 + '@docsearch/js': 3.6.0(@algolia/client-search@4.24.0)(@types/react@18.2.22)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.15.0) + '@shikijs/core': 1.10.0 + '@shikijs/transformers': 1.7.0 + '@types/markdown-it': 14.1.1 + '@vitejs/plugin-vue': 5.0.5(vite@5.4.8(@types/node@22.6.1))(vue@3.4.27(typescript@5.5.4)) + '@vue/devtools-api': 7.2.1(vue@3.4.27(typescript@5.5.4)) + '@vue/shared': 3.4.27 + '@vueuse/core': 10.11.0(vue@3.4.27(typescript@5.5.4)) + '@vueuse/integrations': 10.11.0(focus-trap@7.5.4)(vue@3.4.27(typescript@5.5.4)) + focus-trap: 7.5.4 mark.js: 8.11.1 - minisearch: 7.1.0 - shiki: 1.22.2 - vite: 5.4.10(@types/node@22.8.7) - vue: 3.5.12(typescript@5.6.3) + minisearch: 6.3.0 + shiki: 1.10.0 + vite: 5.4.8(@types/node@22.6.1) + vue: 3.4.27(typescript@5.5.4) optionalDependencies: postcss: 8.4.47 transitivePeerDependencies: @@ -19402,19 +19186,19 @@ snapshots: - typescript - universal-cookie - vue-demi@0.14.10(vue@3.5.12(typescript@5.6.3)): + vue-demi@0.14.8(vue@3.4.27(typescript@5.5.4)): dependencies: - vue: 3.5.12(typescript@5.6.3) + vue: 3.4.27(typescript@5.5.4) - vue@3.5.12(typescript@5.6.3): + vue@3.4.27(typescript@5.5.4): dependencies: - '@vue/compiler-dom': 3.5.12 - '@vue/compiler-sfc': 3.5.12 - '@vue/runtime-dom': 3.5.12 - '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.6.3)) - '@vue/shared': 3.5.12 + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-sfc': 3.4.27 + '@vue/runtime-dom': 3.4.27 + '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@5.5.4)) + '@vue/shared': 3.4.27 optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 walker@1.0.8: dependencies: @@ -19487,6 +19271,13 @@ snapshots: is-weakmap: 2.0.1 is-weakset: 2.0.2 + which-module@2.0.1: {} + + which-pm@2.0.0: + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + which-typed-array@1.1.11: dependencies: available-typed-arrays: 1.0.5 @@ -19507,6 +19298,12 @@ snapshots: wordwrap@1.0.0: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -19546,6 +19343,8 @@ snapshots: xtend@4.0.2: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yaeti@0.0.6: {} @@ -19562,12 +19361,29 @@ snapshots: yaml@2.5.1: {} - yaml@2.6.0: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@17.7.2: dependencies: cliui: 8.0.1 From d7f52bb4dbc201f7a30b427015096740c33432ca Mon Sep 17 00:00:00 2001 From: rodant Date: Mon, 25 Nov 2024 10:53:04 +0100 Subject: [PATCH 13/21] Extract gift-wrapping from encryption.ts --- ndk/src/events/encryption.ts | 118 +------------------------------- ndk/src/events/gift-wrapping.ts | 116 +++++++++++++++++++++++++++++++ ndk/src/events/index.ts | 3 +- 3 files changed, 120 insertions(+), 117 deletions(-) create mode 100644 ndk/src/events/gift-wrapping.ts diff --git a/ndk/src/events/encryption.ts b/ndk/src/events/encryption.ts index 19f5059a..194c1cc3 100644 --- a/ndk/src/events/encryption.ts +++ b/ndk/src/events/encryption.ts @@ -4,10 +4,7 @@ */ import type { NDKSigner } from "../signers"; import { NDKUser } from "../user"; -import { NDKEvent, NostrEvent } from "./index.js"; -import { NDKPrivateKeySigner } from "../signers/private-key"; -import { VerifiedEvent, getEventHash, verifiedSymbol } from "nostr-tools"; - +import { NDKEvent } from "./index.js"; // NIP04 && NIP44 @@ -87,115 +84,4 @@ async function isEncryptionEnabled(signer : NDKSigner, nip? : EncryptionNip){ if(!signer.encryptionEnabled) return false; if(!nip) return true; return Boolean(await signer.encryptionEnabled(nip)); -} - - -// NIP 59 - adapted from Coracle - -export type GiftWrapParams = { - encryptionNip?: EncryptionNip - rumorKind?: number; - wrapKind?: 1059 | 1060 - wrapTags?: string[][] -} - -/** - * Instantiate a new (Nip59 gift wrapped) NDKEvent from any NDKevent - * @param this - * @param recipient - * @param signer - * @param params - * @returns - */ -export async function giftWrap(this:NDKEvent, recipient: NDKUser, signer?:NDKSigner, params:GiftWrapParams = {}) : Promise{ - params.encryptionNip = params.encryptionNip || 'nip44'; - if(!signer){ - if(!this.ndk) - throw new Error('no signer available for giftWrap') - signer = this.ndk.signer; - } - if(!signer) - throw new Error('no signer') - if(!signer.encryptionEnabled || !signer.encryptionEnabled(params.encryptionNip)) - throw new Error('signer is not able to giftWrap') - const rumor = getRumorEvent(this, params?.rumorKind) - const seal = await getSealEvent(rumor, recipient, signer, params.encryptionNip); - const wrap = await getWrapEvent(seal, recipient, params); - return new NDKEvent(this.ndk, wrap); -} - -/** - * Instantiate a new (Nip59 un-wrapped rumor) NDKEvent from any gift wrapped NDKevent - * @param this - */ -export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSigner, nip:EncryptionNip = 'nip44') : Promise{ - sender = sender || new NDKUser({pubkey:this.pubkey}) - if(!signer){ - if(!this.ndk) - throw new Error('no signer available for giftUnwrap') - signer = this.ndk.signer; - } - if(!signer) - throw new Error('no signer') - try { - - const seal = JSON.parse(await signer.decrypt(sender, this.content, nip)); - if (!seal) throw new Error("Failed to decrypt wrapper") - - const rumor = JSON.parse(await signer.decrypt(sender, seal.content, nip)) - if (!rumor) throw new Error("Failed to decrypt seal") - - if (seal.pubkey === rumor.pubkey) { - return new NDKEvent(this.ndk, rumor as NostrEvent) - } - } catch (e) { - console.log(e) - } - return null - } - - - -function getRumorEvent(event:NDKEvent, kind?:number):NDKEvent{ - let rumor = event.rawEvent(); - rumor.kind = kind || rumor.kind || 1; - rumor.sig = undefined; - rumor.id = getEventHash(rumor as any); - return new NDKEvent(event.ndk, rumor) -} - -async function getSealEvent(rumor : NDKEvent, recipient : NDKUser, signer:NDKSigner, nip:EncryptionNip = 'nip44') : Promise{ - const content = await signer.encrypt(recipient, JSON.stringify(rumor), nip); - let seal : any = { - kind: 13, - created_at: aproximateNow(5), - tags: [], - content , - pubkey : rumor.pubkey - } - seal.id = getEventHash(seal), - seal.sig = await signer.sign(seal); - seal[verifiedSymbol] = true - return seal; -} - -async function getWrapEvent(sealed:VerifiedEvent, recipient:NDKUser, params? : GiftWrapParams) : Promise{ - const signer = NDKPrivateKeySigner.generate(); - const content = await signer.encrypt(recipient, JSON.stringify(sealed), params?.encryptionNip || 'nip44') - const pubkey = (await signer.user()).pubkey - let wrap : any = { - kind : params?.wrapKind || 1059, - created_at: aproximateNow(5), - tags: (params?.wrapTags || []).concat([["p", recipient.pubkey]]), - content, - pubkey, - } - wrap.id = getEventHash(wrap); - wrap.sig = await signer.sign(wrap); - wrap[verifiedSymbol] = true - return wrap; -} - -function aproximateNow(drift = 0){ - return Math.round(Date.now() / 1000 - Math.random() * Math.pow(10, drift)) -} +} \ No newline at end of file diff --git a/ndk/src/events/gift-wrapping.ts b/ndk/src/events/gift-wrapping.ts new file mode 100644 index 00000000..bfb91f6a --- /dev/null +++ b/ndk/src/events/gift-wrapping.ts @@ -0,0 +1,116 @@ +import { NDKEvent, NostrEvent } from "./index.js"; +import { NDKPrivateKeySigner } from "../signers/private-key"; +import { VerifiedEvent, getEventHash, verifiedSymbol } from "nostr-tools"; +import { EncryptionNip } from "./encryption.js"; +import { NDKUser } from "../user/index.js"; +import { NDKSigner } from "../signers/index.js"; + +// NIP 59 - adapted from Coracle + +export type GiftWrapParams = { + encryptionNip?: EncryptionNip + rumorKind?: number; + wrapKind?: 1059 | 1060 + wrapTags?: string[][] +} + +/** + * Instantiate a new (Nip59 gift wrapped) NDKEvent from any NDKevent + * @param this + * @param recipient + * @param signer + * @param params + * @returns + */ +export async function giftWrap(this:NDKEvent, recipient: NDKUser, signer?:NDKSigner, params:GiftWrapParams = {}) : Promise{ + params.encryptionNip = params.encryptionNip || 'nip44'; + if(!signer){ + if(!this.ndk) + throw new Error('no signer available for giftWrap') + signer = this.ndk.signer; + } + if(!signer) + throw new Error('no signer') + if(!signer.encryptionEnabled || !signer.encryptionEnabled(params.encryptionNip)) + throw new Error('signer is not able to giftWrap') + const rumor = getRumorEvent(this, params?.rumorKind) + const seal = await getSealEvent(rumor, recipient, signer, params.encryptionNip); + const wrap = await getWrapEvent(seal, recipient, params); + return new NDKEvent(this.ndk, wrap); +} + +/** + * Instantiate a new (Nip59 un-wrapped rumor) NDKEvent from any gift wrapped NDKevent + * @param this + */ +export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSigner, nip:EncryptionNip = 'nip44') : Promise{ + sender = sender || new NDKUser({pubkey:this.pubkey}) + if(!signer){ + if(!this.ndk) + throw new Error('no signer available for giftUnwrap') + signer = this.ndk.signer; + } + if(!signer) + throw new Error('no signer') + try { + + const seal = JSON.parse(await signer.decrypt(sender, this.content, nip)); + if (!seal) throw new Error("Failed to decrypt wrapper") + + const rumor = JSON.parse(await signer.decrypt(sender, seal.content, nip)) + if (!rumor) throw new Error("Failed to decrypt seal") + + if (seal.pubkey === rumor.pubkey) { + return new NDKEvent(this.ndk, rumor as NostrEvent) + } + } catch (e) { + console.log(e) + } + return null + } + + + +function getRumorEvent(event:NDKEvent, kind?:number):NDKEvent{ + let rumor = event.rawEvent(); + rumor.kind = kind || rumor.kind || 1; + rumor.sig = undefined; + rumor.id = getEventHash(rumor as any); + return new NDKEvent(event.ndk, rumor) +} + +async function getSealEvent(rumor : NDKEvent, recipient : NDKUser, signer:NDKSigner, nip:EncryptionNip = 'nip44') : Promise{ + const content = await signer.encrypt(recipient, JSON.stringify(rumor), nip); + let seal : any = { + kind: 13, + created_at: aproximateNow(5), + tags: [], + content , + pubkey : rumor.pubkey + } + seal.id = getEventHash(seal), + seal.sig = await signer.sign(seal); + seal[verifiedSymbol] = true + return seal; +} + +async function getWrapEvent(sealed:VerifiedEvent, recipient:NDKUser, params? : GiftWrapParams) : Promise{ + const signer = NDKPrivateKeySigner.generate(); + const content = await signer.encrypt(recipient, JSON.stringify(sealed), params?.encryptionNip || 'nip44') + const pubkey = (await signer.user()).pubkey + let wrap : any = { + kind : params?.wrapKind || 1059, + created_at: aproximateNow(5), + tags: (params?.wrapTags || []).concat([["p", recipient.pubkey]]), + content, + pubkey, + } + wrap.id = getEventHash(wrap); + wrap.sig = await signer.sign(wrap); + wrap[verifiedSymbol] = true + return wrap; +} + +function aproximateNow(drift = 0){ + return Math.round(Date.now() / 1000 - Math.random() * Math.pow(10, drift)) +} \ No newline at end of file diff --git a/ndk/src/events/index.ts b/ndk/src/events/index.ts index 7edddd91..d4d6b3cd 100644 --- a/ndk/src/events/index.ts +++ b/ndk/src/events/index.ts @@ -10,7 +10,8 @@ import { type NDKUser } from "../user/index.js"; import { type ContentTag, generateContentTags, mergeTags } from "./content-tagger.js"; import { isEphemeral, isParamReplaceable, isReplaceable } from "./kind.js"; import { NDKKind } from "./kinds/index.js"; -import { decrypt, encrypt, giftUnwrap, giftWrap } from "./encryption.js"; +import { decrypt, encrypt } from "./encryption.js"; +import { giftUnwrap, giftWrap } from "./gift-wrapping.js"; import { encode } from "./nip19.js"; import { repost } from "./repost.js"; import { fetchReplyEvent, fetchRootEvent, fetchTaggedEvent } from "./fetch-tagged-event.js"; From 3ebf52c94b08b97c5f73ce207c9e1ace3037d7a2 Mon Sep 17 00:00:00 2001 From: rodant Date: Mon, 25 Nov 2024 11:05:12 +0100 Subject: [PATCH 14/21] Fix MAC error in encryption test. --- ndk/src/events/encryption.test.ts | 12 +++++++----- ndk/src/events/gift-wrapping.ts | 5 +++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ndk/src/events/encryption.test.ts b/ndk/src/events/encryption.test.ts index 297089bf..3c289c04 100644 --- a/ndk/src/events/encryption.test.ts +++ b/ndk/src/events/encryption.test.ts @@ -1,6 +1,6 @@ +import { NDKPrivateKeySigner } from "../signers/private-key"; import { NDKEvent } from "."; import { NDK } from "../ndk"; -import { NDKPrivateKeySigner } from "../signers/private-key"; const PRIVATE_KEY_1_FOR_TESTING = '1fbc12b81e0b21f10fb219e88dd76fc80c7aa5369779e44e762fec6f460d6a89'; const PRIVATE_KEY_2_FOR_TESTING = "d30b946562050e6ced827113da15208730879c46547061b404434edff63236fa"; @@ -38,19 +38,21 @@ describe("NDKEvent encryption (Nip44 & Nip59)", ()=>{ const recieveuser = await recievesigner.user(); let message = new NDKEvent(new NDK(),{ - kind : 1, + kind : 14, pubkey : senduser.pubkey, content : "hello world", - created_at : new Date().valueOf(), + created_at : Math.floor(Date.now() / 1000), tags : [] }) + message.tags.push(["p", recieveuser.pubkey]); // console.log('MESSAGE EVENT : '+ JSON.stringify(message.rawEvent())) const wrapped = await message.giftWrap(recieveuser,sendsigner); // console.log('MESSAGE EVENT WRAPPED : '+ JSON.stringify(wrapped.rawEvent())) - const unwrapped = await wrapped.giftUnwrap(senduser,recievesigner) + const unwrapped = await wrapped.giftUnwrap(wrapped.author, recievesigner); // console.log('MESSAGE EVENT UNWRAPPED : '+ JSON.stringify(unwrapped?.rawEvent())) - expect(unwrapped).toBe(message) + message.id = unwrapped?.id || ""; + expect(JSON.stringify(unwrapped)).toBe(JSON.stringify(message)); }); }) diff --git a/ndk/src/events/gift-wrapping.ts b/ndk/src/events/gift-wrapping.ts index bfb91f6a..2b53ec48 100644 --- a/ndk/src/events/gift-wrapping.ts +++ b/ndk/src/events/gift-wrapping.ts @@ -54,10 +54,11 @@ export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSign throw new Error('no signer') try { - const seal = JSON.parse(await signer.decrypt(sender, this.content, nip)); + const seal = JSON.parse(await signer.decrypt(sender, this.content, nip)) as NostrEvent; if (!seal) throw new Error("Failed to decrypt wrapper") - const rumor = JSON.parse(await signer.decrypt(sender, seal.content, nip)) + const receiver = new NDKUser({pubkey: seal.pubkey}); + const rumor = JSON.parse(await signer.decrypt(receiver, seal.content, nip)) if (!rumor) throw new Error("Failed to decrypt seal") if (seal.pubkey === rumor.pubkey) { From c4edc719addbda78528949693be660219ef8c598 Mon Sep 17 00:00:00 2001 From: rodant Date: Fri, 29 Nov 2024 20:31:24 +0100 Subject: [PATCH 15/21] Add tests for Nip07 signer and refactorings. --- ndk/src/events/encryption.test.ts | 128 ++++++++++++++++++++++-------- ndk/src/events/gift-wrapping.ts | 4 +- 2 files changed, 97 insertions(+), 35 deletions(-) diff --git a/ndk/src/events/encryption.test.ts b/ndk/src/events/encryption.test.ts index 3c289c04..b013993b 100644 --- a/ndk/src/events/encryption.test.ts +++ b/ndk/src/events/encryption.test.ts @@ -1,21 +1,19 @@ import { NDKPrivateKeySigner } from "../signers/private-key"; -import { NDKEvent } from "."; +import { NDKEvent, NostrEvent } from "."; import { NDK } from "../ndk"; +import { NDKNip07Signer } from "../signers/nip07"; +import { NDKSigner } from "../signers"; +import { NDKUser } from "../user"; const PRIVATE_KEY_1_FOR_TESTING = '1fbc12b81e0b21f10fb219e88dd76fc80c7aa5369779e44e762fec6f460d6a89'; const PRIVATE_KEY_2_FOR_TESTING = "d30b946562050e6ced827113da15208730879c46547061b404434edff63236fa"; -describe("NDKEvent encryption (Nip44 & Nip59)", ()=>{ - +describe("NDKEvent encryption (Nip44 & Nip59)", () => { it("encrypts and decrypts an NDKEvent using Nip44", async () => { - const senderSigner = new NDKPrivateKeySigner(PRIVATE_KEY_1_FOR_TESTING); - const senderUser = await senderSigner.user(); - const recipientSigner = new NDKPrivateKeySigner(PRIVATE_KEY_2_FOR_TESTING); - const recipientUser = await recipientSigner.user(); - + const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); const sendEvent: NDKEvent = new NDKEvent (new NDK(), { - pubkey: senderUser.pubkey, + pubkey: sendUser.pubkey, created_at: Math.floor(Date.now() / 1000), tags: [], content: "Test content", @@ -23,36 +21,100 @@ describe("NDKEvent encryption (Nip44 & Nip59)", ()=>{ }); const original = sendEvent.content - await sendEvent.encrypt(recipientUser, senderSigner,'nip44'); - const recieveEvent = new NDKEvent(new NDK(), sendEvent.rawEvent()) - await recieveEvent.decrypt(senderUser, recipientSigner,'nip44'); - const decrypted = recieveEvent.content + await sendEvent.encrypt(receiveUser, sendSigner,'nip44'); + const receiveEvent = new NDKEvent(new NDK(), sendEvent.rawEvent()) + await receiveEvent.decrypt(sendUser, receiveSigner,'nip44'); + const decrypted = receiveEvent.content expect(decrypted).toBe(original); }); - it("gift wraps and unwraps an NDKEvent using Nip59", async () => { - const sendsigner = new NDKPrivateKeySigner(PRIVATE_KEY_1_FOR_TESTING) - const senduser = await sendsigner.user(); - const recievesigner = new NDKPrivateKeySigner(PRIVATE_KEY_2_FOR_TESTING) - const recieveuser = await recievesigner.user(); - - let message = new NDKEvent(new NDK(),{ - kind : 14, - pubkey : senduser.pubkey, - content : "hello world", - created_at : Math.floor(Date.now() / 1000), - tags : [] - }) - message.tags.push(["p", recieveuser.pubkey]); + it("gift wraps and unwraps an NDKEvent using a private key signer according to Nip59", async () => { + const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); + const message = createDirectMessage(sendUser.pubkey, receiveUser.pubkey); - // console.log('MESSAGE EVENT : '+ JSON.stringify(message.rawEvent())) - const wrapped = await message.giftWrap(recieveuser,sendsigner); - // console.log('MESSAGE EVENT WRAPPED : '+ JSON.stringify(wrapped.rawEvent())) - const unwrapped = await wrapped.giftUnwrap(wrapped.author, recievesigner); - // console.log('MESSAGE EVENT UNWRAPPED : '+ JSON.stringify(unwrapped?.rawEvent())) + const wrapped = await message.giftWrap(receiveUser,sendSigner); + const unwrapped = await wrapped.giftUnwrap(wrapped.author, receiveSigner); + message.id = unwrapped?.id || ""; + expect(JSON.stringify(unwrapped)).toBe(JSON.stringify(message)); + }); + + it("gift wraps and unwraps an NDKEvent using a Nip07 signer for sending according to Nip59", async () => { + const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); + const message = createDirectMessage(sendUser.pubkey, receiveUser.pubkey); + + /** @ts-ignore */ + globalThis.window = { ...globalThis.window, + nostr: { + getPublicKey: () => Promise.resolve(sendUser.pubkey), + signEvent: async (e: NostrEvent) => Promise.resolve({ sig: await sendSigner.sign(e) }), + nip44: createNip44(sendSigner, receiveSigner), + } + }; + + const send07Signer = new NDKNip07Signer(); + const wrapped = await message.giftWrap(receiveUser, send07Signer); + const unwrapped = await wrapped.giftUnwrap(wrapped.author, receiveSigner); message.id = unwrapped?.id || ""; expect(JSON.stringify(unwrapped)).toBe(JSON.stringify(message)); }); -}) + it("gift wraps and unwraps an NDKEvent using a Nip07 signer for receiving according to Nip59", async () => { + const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); + const message = createDirectMessage(sendUser.pubkey, receiveUser.pubkey); + + /** @ts-ignore */ + globalThis.window = { ...globalThis.window, + nostr: { + getPublicKey: () => Promise.resolve(receiveUser.pubkey), + signEvent: async (e: NostrEvent) => Promise.resolve({ sig: await receiveSigner.sign(e) }), + nip44: createNip44(sendSigner, receiveSigner), + } + }; + + const receive07Signer = new NDKNip07Signer(); + const wrapped = await message.giftWrap(receiveUser, sendSigner); + const unwrapped = await wrapped.giftUnwrap(wrapped.author, receive07Signer); + message.id = unwrapped?.id || ""; + expect(JSON.stringify(unwrapped)).toBe(JSON.stringify(message)); + }); +}); + +async function createPKSigners(): Promise<{sendSigner: NDKSigner, sendUser: NDKUser, receiveSigner: NDKSigner, receiveUser: NDKUser}> { + const sendPKSigner = new NDKPrivateKeySigner(PRIVATE_KEY_1_FOR_TESTING); + const sendUser = await sendPKSigner.user(); + const receivePKSigner = new NDKPrivateKeySigner(PRIVATE_KEY_2_FOR_TESTING); + const receiveUser = await receivePKSigner.user(); + return { + sendSigner: sendPKSigner, + sendUser, + receiveSigner: receivePKSigner, + receiveUser + }; +} + +function createDirectMessage(senderPubkey: string, receiverPubkey: string): NDKEvent { + const message = new NDKEvent(new NDK(), { + kind: 14, + pubkey: senderPubkey, + content: "hello world", + created_at: Math.floor(Date.now() / 1000), + tags: [] + }); + message.tags.push(["p", receiverPubkey]); + + return message; +} + +function createNip44(sendSigner: NDKSigner, receiveSigner: NDKSigner) { + return { + encrypt: (_recipientHexPubKey: string, value: string) => { + const receiver = new NDKUser({ pubkey: _recipientHexPubKey }); + return sendSigner.encrypt(receiver, value, 'nip44'); + }, + decrypt: (_senderHexPubKey: string, value: string) => { + const sender = new NDKUser({ pubkey: _senderHexPubKey }); + return receiveSigner.decrypt(sender, value, 'nip44'); + }, + } +} diff --git a/ndk/src/events/gift-wrapping.ts b/ndk/src/events/gift-wrapping.ts index 2b53ec48..7748414b 100644 --- a/ndk/src/events/gift-wrapping.ts +++ b/ndk/src/events/gift-wrapping.ts @@ -57,8 +57,8 @@ export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSign const seal = JSON.parse(await signer.decrypt(sender, this.content, nip)) as NostrEvent; if (!seal) throw new Error("Failed to decrypt wrapper") - const receiver = new NDKUser({pubkey: seal.pubkey}); - const rumor = JSON.parse(await signer.decrypt(receiver, seal.content, nip)) + const rumorSender = new NDKUser({pubkey: seal.pubkey}); + const rumor = JSON.parse(await signer.decrypt(rumorSender, seal.content, nip)) if (!rumor) throw new Error("Failed to decrypt seal") if (seal.pubkey === rumor.pubkey) { From 8efba6b2f38b1e7f8554f371e6730ace1754f89e Mon Sep 17 00:00:00 2001 From: rodant Date: Sat, 30 Nov 2024 12:20:44 +0100 Subject: [PATCH 16/21] Small refactoring. --- ndk/src/events/encryption.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ndk/src/events/encryption.test.ts b/ndk/src/events/encryption.test.ts index b013993b..4f5b522b 100644 --- a/ndk/src/events/encryption.test.ts +++ b/ndk/src/events/encryption.test.ts @@ -108,12 +108,12 @@ function createDirectMessage(senderPubkey: string, receiverPubkey: string): NDKE function createNip44(sendSigner: NDKSigner, receiveSigner: NDKSigner) { return { - encrypt: (_recipientHexPubKey: string, value: string) => { - const receiver = new NDKUser({ pubkey: _recipientHexPubKey }); + encrypt: (receiverHexPubkey: string, value: string) => { + const receiver = new NDKUser({ hexpubkey: receiverHexPubkey }); return sendSigner.encrypt(receiver, value, 'nip44'); }, - decrypt: (_senderHexPubKey: string, value: string) => { - const sender = new NDKUser({ pubkey: _senderHexPubKey }); + decrypt: (senderHexPubKey: string, value: string) => { + const sender = new NDKUser({ hexpubkey: senderHexPubKey }); return receiveSigner.decrypt(sender, value, 'nip44'); }, } From 3036b52ea9b9e4b72977c9b5c5bad3803aeca7d4 Mon Sep 17 00:00:00 2001 From: rodant Date: Tue, 3 Dec 2024 17:19:14 +0100 Subject: [PATCH 17/21] Support for Nip46 signers and unit tests for that. --- ndk/src/events/encryption.test.ts | 27 ++++++++++++++ ndk/src/signers/nip46/index.ts | 62 +++++++------------------------ 2 files changed, 40 insertions(+), 49 deletions(-) diff --git a/ndk/src/events/encryption.test.ts b/ndk/src/events/encryption.test.ts index 4f5b522b..9c4a4e29 100644 --- a/ndk/src/events/encryption.test.ts +++ b/ndk/src/events/encryption.test.ts @@ -1,4 +1,5 @@ import { NDKPrivateKeySigner } from "../signers/private-key"; +import { NDKNip46Signer } from "../signers/nip46"; import { NDKEvent, NostrEvent } from "."; import { NDK } from "../ndk"; import { NDKNip07Signer } from "../signers/nip07"; @@ -78,6 +79,32 @@ describe("NDKEvent encryption (Nip44 & Nip59)", () => { message.id = unwrapped?.id || ""; expect(JSON.stringify(unwrapped)).toBe(JSON.stringify(message)); }); + + it("gift wrapping using a Nip46 signer according to Nip59 for both Nip04 and Nip44 encryption", async () => { + const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); + const message = createDirectMessage(sendUser.pubkey, receiveUser.pubkey); + + const send46Signer = new NDKNip46Signer(new NDK(), `bunker://example.com?pubkey=${sendUser.pubkey}`, sendSigner); + const mockSendRequest = jest.fn().mockImplementation((_remotePubkey, method, _params, _kind, cb) => { + if (method.includes("_encrypt")) { + cb({ result: "encrypted" }); + } if (method.includes("_decrypt")) { + cb({ result: `{ "pubkey": "${sendUser.pubkey}", "content": "Hello" }` }); + } else { + cb({ result: "{\"sig\": \"signature\"}" }); + } + }); + send46Signer.rpc.sendRequest = mockSendRequest; + + const wrapped = await message.giftWrap(receiveUser, send46Signer); + expect(mockSendRequest.mock.calls[0][1]).toBe("nip44_encrypt"); + await message.giftWrap(receiveUser, send46Signer, { encryptionNip: "nip04"}); + expect(mockSendRequest.mock.calls[2][1]).toBe("nip04_encrypt"); + await wrapped.giftUnwrap(wrapped.author, send46Signer); + expect(mockSendRequest.mock.calls[4][1]).toBe("nip44_decrypt"); + await wrapped.giftUnwrap(wrapped.author, send46Signer, "nip04"); + expect(mockSendRequest.mock.calls[6][1]).toBe("nip04_decrypt"); + }); }); async function createPKSigners(): Promise<{sendSigner: NDKSigner, sendUser: NDKUser, receiveSigner: NDKSigner, receiveUser: NDKUser}> { diff --git a/ndk/src/signers/nip46/index.ts b/ndk/src/signers/nip46/index.ts index e7bc5dde..736734e6 100644 --- a/ndk/src/signers/nip46/index.ts +++ b/ndk/src/signers/nip46/index.ts @@ -9,6 +9,8 @@ import type { NDKRpcResponse } from "./rpc.js"; import { NDKNostrRpc } from "./rpc.js"; import { NDKKind } from "../../events/kinds/index.js"; import type { NDKSubscription } from "../../subscription/index.js"; +import { EncryptionMethod, EncryptionNip } from "../../events/encryption.js"; +import { send } from "process"; /** * This NDKSigner implements NIP-46, which allows remote signing of events. @@ -211,34 +213,24 @@ export class NDKNip46Signer extends EventEmitter implements NDKSigner { }); } - public async encrypt(recipient: NDKUser, value: string): Promise { - return this.nip04Encrypt(recipient, value); + public async encryptionEnabled(nip?:EncryptionNip): Promise{ + if (nip) return [nip]; + return Promise.resolve(["nip04", "nip44"]); } - public async decrypt(sender: NDKUser, value: string): Promise { - return this.nip04Decrypt(sender, value); + public async encrypt(recipient: NDKUser, value: string, nip: EncryptionNip = 'nip04'): Promise { + return this.encryption(recipient, value, nip, "encrypt"); } - public async nip04Encrypt(recipient: NDKUser, value: string): Promise { - return this._encrypt(recipient, value, "nip04"); + public async decrypt(sender: NDKUser, value: string, nip: EncryptionNip = 'nip04'): Promise { + return this.encryption(sender, value, nip, "decrypt"); } - public async nip04Decrypt(sender: NDKUser, value: string): Promise { - return this._decrypt(sender, value, "nip04"); - } - - public async nip44Encrypt(recipient: NDKUser, value: string): Promise { - return this._encrypt(recipient, value, "nip44"); - } - - public async nip44Decrypt(sender: NDKUser, value: string): Promise { - return this._decrypt(sender, value, "nip44"); - } - - private async _encrypt( + private async encryption( recipient: NDKUser, value: string, - method: "nip04" | "nip44" + nip: EncryptionNip, + method: EncryptionMethod ): Promise { this.debug("asking for encryption"); @@ -247,7 +239,7 @@ export class NDKNip46Signer extends EventEmitter implements NDKSigner { this.rpc.sendRequest( this.bunkerPubkey, - method + "_encrypt", + `${nip}_${method}`, [recipient.pubkey, value], 24133, (response: NDKRpcResponse) => { @@ -263,34 +255,6 @@ export class NDKNip46Signer extends EventEmitter implements NDKSigner { return promise; } - private async _decrypt( - sender: NDKUser, - value: string, - method: "nip04" | "nip44" - ): Promise { - this.debug("asking for decryption"); - - const promise = new Promise((resolve, reject) => { - if (!this.bunkerPubkey) throw new Error("Bunker pubkey not set"); - - this.rpc.sendRequest( - this.bunkerPubkey, - method + "_decrypt", - [sender.pubkey, value], - 24133, - (response: NDKRpcResponse) => { - if (!response.error) { - resolve(response.result); - } else { - reject(response.error); - } - } - ); - }); - - return promise; - } - public async sign(event: NostrEvent): Promise { this.debug("asking for a signature"); From 4e83ac7e84608c3d2668956f57a03c2fb5127b8a Mon Sep 17 00:00:00 2001 From: rodant Date: Tue, 3 Dec 2024 18:26:17 +0100 Subject: [PATCH 18/21] Test for forced Nip04 encryption and bug fixing. --- ndk/src/events/encryption.test.ts | 20 ++++++++++++++++++++ ndk/src/events/encryption.ts | 7 +++---- ndk/src/signers/private-key/index.ts | 6 ++---- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/ndk/src/events/encryption.test.ts b/ndk/src/events/encryption.test.ts index 9c4a4e29..30e588e2 100644 --- a/ndk/src/events/encryption.test.ts +++ b/ndk/src/events/encryption.test.ts @@ -30,6 +30,26 @@ describe("NDKEvent encryption (Nip44 & Nip59)", () => { expect(decrypted).toBe(original); }); + it("encrypts and decrypts an NDKEvent forcing Nip04 decryption, if the event kind is 4", async () => { + const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); + const sendEvent: NDKEvent = new NDKEvent (new NDK(), { + pubkey: sendUser.pubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [], + content: "Test content", + kind: 4, + }); + + const original = sendEvent.content + await sendEvent.encrypt(receiveUser, sendSigner); + const receiveEvent = new NDKEvent(new NDK(), sendEvent.rawEvent()) + // Despite of specifying Nip44 here, the event kind 4 forces Nip04 encryption + await receiveEvent.decrypt(sendUser, receiveSigner, 'nip44'); + const decrypted = receiveEvent.content + + expect(decrypted).toBe(original); + }); + it("gift wraps and unwraps an NDKEvent using a private key signer according to Nip59", async () => { const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); const message = createDirectMessage(sendUser.pubkey, receiveUser.pubkey); diff --git a/ndk/src/events/encryption.ts b/ndk/src/events/encryption.ts index 194c1cc3..9015b545 100644 --- a/ndk/src/events/encryption.ts +++ b/ndk/src/events/encryption.ts @@ -1,6 +1,6 @@ /** - * Encryption and giftwrapping of events - * Implemnents Nip04, Nip44, Nip59 + * Encryption and gift-wrapping of events + * Implements Nip04, Nip44, Nip59 */ import type { NDKSigner } from "../signers"; import { NDKUser } from "../user"; @@ -12,7 +12,6 @@ export type EncryptionNip = 'nip04' | 'nip44'; export type EncryptionMethod = 'encrypt' | 'decrypt' // some clients may wish to set a default for message encryption... -// TODO how should replies to 'nip04' encrypted messages be handled? let defaultEncryption : EncryptionNip | undefined = undefined; export function useEncryption(nip : EncryptionNip){ defaultEncryption = nip; @@ -68,7 +67,7 @@ export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSign sender = this.author; } // simple check for legacy `nip04` encrypted events. adapted from Coracle - if ((!nip || nip=='nip04') && await isEncryptionEnabled(signer, 'nip04') && this.content.search("?iv=")) { + if ((!nip || nip=='nip04' || this.kind == 4) && await isEncryptionEnabled(signer, 'nip04') && this.content.search("\\?iv=")) { try{ decrypted = (await signer?.decrypt(sender, this.content, 'nip04')) as string; }catch{} diff --git a/ndk/src/signers/private-key/index.ts b/ndk/src/signers/private-key/index.ts index 2dc04a8a..7d59a8c6 100644 --- a/ndk/src/signers/private-key/index.ts +++ b/ndk/src/signers/private-key/index.ts @@ -82,8 +82,7 @@ export class NDKPrivateKeySigner implements NDKSigner { } const recipientHexPubKey = recipient.pubkey; - if(nip == 'nip44'){ - // TODO Deriving shared secret is an expensive computation, should be cached. + if(nip == 'nip44') { let conversationKey = nip44.v2.utils.getConversationKey(this._privateKey, recipientHexPubKey); return await nip44.v2.encrypt(value, conversationKey); } @@ -96,8 +95,7 @@ export class NDKPrivateKeySigner implements NDKSigner { } const senderHexPubKey = sender.pubkey; - if(nip == 'nip44'){ - // TODO Deriving shared secret is an expensive computation, should be cached. + if(nip == 'nip44') { let conversationKey = nip44.v2.utils.getConversationKey(this._privateKey, senderHexPubKey); return await nip44.v2.decrypt(value, conversationKey); } From 20d2dafee3d3dd2cf7a4fa307489881f8291107b Mon Sep 17 00:00:00 2001 From: rodant Date: Sat, 7 Dec 2024 11:09:20 +0100 Subject: [PATCH 19/21] Nip17 encryption methods and more tests. --- ndk/src/events/encryption.test.ts | 62 +++++++++++++++++++++++++++++-- ndk/src/events/encryption.ts | 30 +++++++-------- ndk/src/events/gift-wrapping.ts | 34 ++++++++--------- ndk/src/events/index.ts | 21 +++++++++++ 4 files changed, 110 insertions(+), 37 deletions(-) diff --git a/ndk/src/events/encryption.test.ts b/ndk/src/events/encryption.test.ts index 30e588e2..e94b6d1a 100644 --- a/ndk/src/events/encryption.test.ts +++ b/ndk/src/events/encryption.test.ts @@ -5,6 +5,8 @@ import { NDK } from "../ndk"; import { NDKNip07Signer } from "../signers/nip07"; import { NDKSigner } from "../signers"; import { NDKUser } from "../user"; +import { NDKRelaySet } from "../relay/sets"; +import { NDKKind } from "./kinds"; const PRIVATE_KEY_1_FOR_TESTING = '1fbc12b81e0b21f10fb219e88dd76fc80c7aa5369779e44e762fec6f460d6a89'; const PRIVATE_KEY_2_FOR_TESTING = "d30b946562050e6ced827113da15208730879c46547061b404434edff63236fa"; @@ -50,6 +52,59 @@ describe("NDKEvent encryption (Nip44 & Nip59)", () => { expect(decrypted).toBe(original); }); + it("encrypts and decrypts an NDKEvent using Nip17", async () => { + const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); + const ndk = new NDK({ signer: sendSigner }); + const message: NDKEvent = new NDKEvent (ndk, { + pubkey: sendUser.pubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [], + content: "Hello Nip17!", + }); + message.tags.push(["p", receiveUser.pubkey]); + + const encrypted = await message.encryptNip17(receiveUser, sendSigner); + const decrypted = await encrypted.decryptNip17(receiveSigner); + expect(decrypted.content).toBe(message.content); + expect(decrypted.pubkey).toBe(sendUser.pubkey); + expect(decrypted.kind).toBe(NDKKind.PrivateDirectMessage); + expect(decrypted.tagValue("p")).toBe(receiveUser.pubkey); + expect(encrypted.tagValue("p")).toBe(receiveUser.pubkey); + expect(encrypted.kind).toBe(NDKKind.GiftWrap); + }); + + it("decrypts examples from Nip17 spec", async () => { + const senderPk = "nsec1w8udu59ydjvedgs3yv5qccshcj8k05fh3l60k9x57asjrqdpa00qkmr89m"; + const receiverPk = "nsec12ywtkplvyq5t6twdqwwygavp5lm4fhuang89c943nf2z92eez43szvn4dt"; + const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(senderPk, receiverPk); + const ndk = new NDK({ signer: sendSigner }); + const encryptedForReceiver: NDKEvent = new NDKEvent (ndk, { + "id":"2886780f7349afc1344047524540ee716f7bdc1b64191699855662330bf235d8", + "pubkey":"8f8a7ec43b77d25799281207e1a47f7a654755055788f7482653f9c9661c6d51", + "created_at":1703128320, + "kind":1059, + "tags":[["p", "918e2da906df4ccd12c8ac672d8335add131a4cf9d27ce42b3bb3625755f0788"]], + "content":`AsqzdlMsG304G8h08bE67dhAR1gFTzTckUUyuvndZ8LrGCvwI4pgC3d6hyAK0Wo9gtkLqSr2rT2RyHlE5wRqbCOlQ8WvJEKwqwIJwT5PO3l2RxvGCHDbd1b1o40ZgIVwwLCfOWJ86I5upXe8K5AgpxYTOM1BD+SbgI5jOMA8tgpRoitJedVSvBZsmwAxXM7o7sbOON4MXHzOqOZpALpS2zgBDXSAaYAsTdEM4qqFeik+zTk3+L6NYuftGidqVluicwSGS2viYWr5OiJ1zrj1ERhYSGLpQnPKrqDaDi7R1KrHGFGyLgkJveY/45y0rv9aVIw9IWF11u53cf2CP7akACel2WvZdl1htEwFu/v9cFXD06fNVZjfx3OssKM/uHPE9XvZttQboAvP5UoK6lv9o3d+0GM4/3zP+yO3C0NExz1ZgFmbGFz703YJzM+zpKCOXaZyzPjADXp8qBBeVc5lmJqiCL4solZpxA1865yPigPAZcc9acSUlg23J1dptFK4n3Tl5HfSHP+oZ/QS/SHWbVFCtq7ZMQSRxLgEitfglTNz9P1CnpMwmW/Y4Gm5zdkv0JrdUVrn2UO9ARdHlPsW5ARgDmzaxnJypkfoHXNfxGGXWRk0sKLbz/ipnaQP/eFJv/ibNuSfqL6E4BnN/tHJSHYEaTQ/PdrA2i9laG3vJti3kAl5Ih87ct0w/tzYfp4SRPhEF1zzue9G/16eJEMzwmhQ5Ec7jJVcVGa4RltqnuF8unUu3iSRTQ+/MNNUkK6Mk+YuaJJs6Fjw6tRHuWi57SdKKv7GGkr0zlBUU2Dyo1MwpAqzsCcCTeQSv+8qt4wLf4uhU9Br7F/L0ZY9bFgh6iLDCdB+4iABXyZwT7Ufn762195hrSHcU4Okt0Zns9EeiBOFxnmpXEslYkYBpXw70GmymQfJlFOfoEp93QKCMS2DAEVeI51dJV1e+6t3pCSsQN69Vg6jUCsm1TMxSs2VX4BRbq562+VffchvW2BB4gMjsvHVUSRl8i5/ZSDlfzSPXcSGALLHBRzy+gn0oXXJ/447VHYZJDL3Ig8+QW5oFMgnWYhuwI5QSLEyflUrfSz+Pdwn/5eyjybXKJftePBD9Q+8NQ8zulU5sqvsMeIx/bBUx0fmOXsS3vjqCXW5IjkmSUV7q54GewZqTQBlcx+90xh/LSUxXex7UwZwRnifvyCbZ+zwNTHNb12chYeNjMV7kAIr3cGQv8vlOMM8ajyaZ5KVy7HpSXQjz4PGT2/nXbL5jKt8Lx0erGXsSsazkdoYDG3U`, + "sig":"a3c6ce632b145c0869423c1afaff4a6d764a9b64dedaf15f170b944ead67227518a72e455567ca1c2a0d187832cecbde7ed478395ec4c95dd3e71749ed66c480" + }); + + const decryptedReceiver = await encryptedForReceiver.decryptNip17(receiveSigner); + expect(decryptedReceiver.content).toBe("Hola, que tal?"); + + const encryptedForSender: NDKEvent = new NDKEvent (ndk, { + "id":"162b0611a1911cfcb30f8a5502792b346e535a45658b3a31ae5c178465509721", + "pubkey":"626be2af274b29ea4816ad672ee452b7cf96bbb4836815a55699ae402183f512", + "created_at":1702711587, + "kind":1059, + "tags":[["p", "44900586091b284416a0c001f677f9c49f7639a55c3f1e2ec130a8e1a7998e1b"]], + "content":"AsTClTzr0gzXXji7uye5UB6LYrx3HDjWGdkNaBS6BAX9CpHa+Vvtt5oI2xJrmWLen+Fo2NBOFazvl285Gb3HSM82gVycrzx1HUAaQDUG6HI7XBEGqBhQMUNwNMiN2dnilBMFC3Yc8ehCJT/gkbiNKOpwd2rFibMFRMDKai2mq2lBtPJF18oszKOjA+XlOJV8JRbmcAanTbEK5nA/GnG3eGUiUzhiYBoHomj3vztYYxc0QYHOx0WxiHY8dsC6jPsXC7f6k4P+Hv5ZiyTfzvjkSJOckel1lZuE5SfeZ0nduqTlxREGeBJ8amOykgEIKdH2VZBZB+qtOMc7ez9dz4wffGwBDA7912NFS2dPBr6txHNxBUkDZKFbuD5wijvonZDvfWq43tZspO4NutSokZB99uEiRH8NAUdGTiNb25m9JcDhVfdmABqTg5fIwwTwlem5aXIy8b66lmqqz2LBzJtnJDu36bDwkILph3kmvaKPD8qJXmPQ4yGpxIbYSTCohgt2/I0TKJNmqNvSN+IVoUuC7ZOfUV9lOV8Ri0AMfSr2YsdZ9ofV5o82ClZWlWiSWZwy6ypa7CuT1PEGHzywB4CZ5ucpO60Z7hnBQxHLiAQIO/QhiBp1rmrdQZFN6PUEjFDloykoeHe345Yqy9Ke95HIKUCS9yJurD+nZjjgOxZjoFCsB1hQAwINTIS3FbYOibZnQwv8PXvcSOqVZxC9U0+WuagK7IwxzhGZY3vLRrX01oujiRrevB4xbW7Oxi/Agp7CQGlJXCgmRE8Rhm+Vj2s+wc/4VLNZRHDcwtfejogjrjdi8p6nfUyqoQRRPARzRGUnnCbh+LqhigT6gQf3sVilnydMRScEc0/YYNLWnaw9nbyBa7wFBAiGbJwO40k39wj+xT6HTSbSUgFZzopxroO3f/o4+ubx2+IL3fkev22mEN38+dFmYF3zE+hpE7jVxrJpC3EP9PLoFgFPKCuctMnjXmeHoiGs756N5r1Mm1ffZu4H19MSuALJlxQR7VXE/LzxRXDuaB2u9days/6muP6gbGX1ASxbJd/ou8+viHmSC/ioHzNjItVCPaJjDyc6bv+gs1NPCt0qZ69G+JmgHW/PsMMeL4n5bh74g0fJSHqiI9ewEmOG/8bedSREv2XXtKV39STxPweceIOh0k23s3N6+wvuSUAJE7u1LkDo14cobtZ/MCw/QhimYPd1u5HnEJvRhPxz0nVPz0QqL/YQeOkAYk7uzgeb2yPzJ6DBtnTnGDkglekhVzQBFRJdk740LEj6swkJ", + "sig":"c94e74533b482aa8eeeb54ae72a5303e0b21f62909ca43c8ef06b0357412d6f8a92f96e1a205102753777fd25321a58fba3fb384eee114bd53ce6c06a1c22bab" + }); + + const decryptedSender = await encryptedForSender.decryptNip17(sendSigner); + expect(decryptedSender.content).toBe("Hola, que tal?"); + }); + it("gift wraps and unwraps an NDKEvent using a private key signer according to Nip59", async () => { const { sendSigner, sendUser, receiveSigner, receiveUser } = await createPKSigners(); const message = createDirectMessage(sendUser.pubkey, receiveUser.pubkey); @@ -127,10 +182,11 @@ describe("NDKEvent encryption (Nip44 & Nip59)", () => { }); }); -async function createPKSigners(): Promise<{sendSigner: NDKSigner, sendUser: NDKUser, receiveSigner: NDKSigner, receiveUser: NDKUser}> { - const sendPKSigner = new NDKPrivateKeySigner(PRIVATE_KEY_1_FOR_TESTING); +async function createPKSigners(senderPk: string = PRIVATE_KEY_1_FOR_TESTING, receiverPk: string = PRIVATE_KEY_2_FOR_TESTING) +: Promise<{sendSigner: NDKSigner, sendUser: NDKUser, receiveSigner: NDKSigner, receiveUser: NDKUser}> { + const sendPKSigner = new NDKPrivateKeySigner(senderPk); const sendUser = await sendPKSigner.user(); - const receivePKSigner = new NDKPrivateKeySigner(PRIVATE_KEY_2_FOR_TESTING); + const receivePKSigner = new NDKPrivateKeySigner(receiverPk); const receiveUser = await receivePKSigner.user(); return { sendSigner: sendPKSigner, diff --git a/ndk/src/events/encryption.ts b/ndk/src/events/encryption.ts index 9015b545..365e9560 100644 --- a/ndk/src/events/encryption.ts +++ b/ndk/src/events/encryption.ts @@ -13,7 +13,7 @@ export type EncryptionMethod = 'encrypt' | 'decrypt' // some clients may wish to set a default for message encryption... let defaultEncryption : EncryptionNip | undefined = undefined; -export function useEncryption(nip : EncryptionNip){ +export function useEncryption(nip : EncryptionNip) { defaultEncryption = nip; } @@ -26,7 +26,7 @@ export async function encrypt( let encrypted : string | undefined; if (!this.ndk) throw new Error("No NDK instance found!"); if (!signer) { - await this.ndk.assertSigner(); + this.ndk.assertSigner(); signer = this.ndk.signer; } if(!signer) throw new Error('no NDK signer'); @@ -44,22 +44,20 @@ export async function encrypt( // support for encrypting events via legacy `nip04`. adapted from Coracle if ((!nip || nip == 'nip04') && await isEncryptionEnabled(signer, 'nip04')) { - try{ - encrypted = (await signer?.encrypt(recipient, this.content, 'nip04')) as string; - }catch{} + encrypted = (await signer?.encrypt(recipient, this.content, 'nip04')) as string; } if ((!encrypted || nip == "nip44") && await isEncryptionEnabled(signer, 'nip44')) { - encrypted = (await signer?.encrypt(recipient, this.content, 'nip44')) as string; + encrypted = (await signer?.encrypt(recipient, this.content, 'nip44')) as string; } - if(!encrypted) throw new Error('Failed to encrypt event.') - this.content = encrypted - } + if(!encrypted) throw new Error('Failed to encrypt event.'); + this.content = encrypted; +} export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSigner, nip: EncryptionNip | undefined = defaultEncryption): Promise { let decrypted : string | undefined; if (!this.ndk) throw new Error("No NDK instance found!"); if (!signer) { - await this.ndk.assertSigner(); + this.ndk.assertSigner(); signer = this.ndk.signer; } if(!signer) throw new Error('no NDK signer'); @@ -68,18 +66,16 @@ export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSign } // simple check for legacy `nip04` encrypted events. adapted from Coracle if ((!nip || nip=='nip04' || this.kind == 4) && await isEncryptionEnabled(signer, 'nip04') && this.content.search("\\?iv=")) { - try{ - decrypted = (await signer?.decrypt(sender, this.content, 'nip04')) as string; - }catch{} + decrypted = (await signer?.decrypt(sender, this.content, 'nip04')) as string; } if (!decrypted && await isEncryptionEnabled(signer, 'nip44')) { - decrypted = (await signer?.decrypt(sender, this.content, 'nip44')) as string; + decrypted = (await signer?.decrypt(sender, this.content, 'nip44')) as string; } - if(!decrypted) throw new Error('Failed to decrypt event.') - this.content = decrypted + if(!decrypted) throw new Error('Failed to decrypt event.'); + this.content = decrypted; } -async function isEncryptionEnabled(signer : NDKSigner, nip? : EncryptionNip){ +async function isEncryptionEnabled(signer : NDKSigner, nip?: EncryptionNip): Promise { if(!signer.encryptionEnabled) return false; if(!nip) return true; return Boolean(await signer.encryptionEnabled(nip)); diff --git a/ndk/src/events/gift-wrapping.ts b/ndk/src/events/gift-wrapping.ts index 7748414b..7d25db56 100644 --- a/ndk/src/events/gift-wrapping.ts +++ b/ndk/src/events/gift-wrapping.ts @@ -4,6 +4,7 @@ import { VerifiedEvent, getEventHash, verifiedSymbol } from "nostr-tools"; import { EncryptionNip } from "./encryption.js"; import { NDKUser } from "../user/index.js"; import { NDKSigner } from "../signers/index.js"; +import { NDKKind } from "./kinds/index.js"; // NIP 59 - adapted from Coracle @@ -40,10 +41,10 @@ export async function giftWrap(this:NDKEvent, recipient: NDKUser, signer?:NDKSig } /** - * Instantiate a new (Nip59 un-wrapped rumor) NDKEvent from any gift wrapped NDKevent + * Instantiate a new (Nip59 un-wrapped rumor) NDKEvent from any gift wrapped NDKEvent * @param this */ -export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSigner, nip:EncryptionNip = 'nip44') : Promise{ +export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSigner, nip:EncryptionNip = 'nip44'): Promise { sender = sender || new NDKUser({pubkey:this.pubkey}) if(!signer){ if(!this.ndk) @@ -53,7 +54,6 @@ export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSign if(!signer) throw new Error('no signer') try { - const seal = JSON.parse(await signer.decrypt(sender, this.content, nip)) as NostrEvent; if (!seal) throw new Error("Failed to decrypt wrapper") @@ -63,28 +63,28 @@ export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSign if (seal.pubkey === rumor.pubkey) { return new NDKEvent(this.ndk, rumor as NostrEvent) + } else { + return Promise.reject("Invalid GiftWrap, sender validation failed!"); } } catch (e) { - console.log(e) + console.log(e); + return Promise.reject("Got error unwrapping event! See console log."); } - return null } - - -function getRumorEvent(event:NDKEvent, kind?:number):NDKEvent{ +function getRumorEvent(event:NDKEvent, kind?:number): NostrEvent{ let rumor = event.rawEvent(); - rumor.kind = kind || rumor.kind || 1; + rumor.kind = kind || rumor.kind || NDKKind.PrivateDirectMessage; rumor.sig = undefined; rumor.id = getEventHash(rumor as any); - return new NDKEvent(event.ndk, rumor) + return rumor; } -async function getSealEvent(rumor : NDKEvent, recipient : NDKUser, signer:NDKSigner, nip:EncryptionNip = 'nip44') : Promise{ +async function getSealEvent(rumor : NostrEvent, recipient : NDKUser, signer:NDKSigner, nip:EncryptionNip = 'nip44'): Promise{ const content = await signer.encrypt(recipient, JSON.stringify(rumor), nip); let seal : any = { - kind: 13, - created_at: aproximateNow(5), + kind: NDKKind.GiftWrapSeal, + created_at: approximateNow(5), tags: [], content , pubkey : rumor.pubkey @@ -95,13 +95,13 @@ async function getSealEvent(rumor : NDKEvent, recipient : NDKUser, signer:NDKSig return seal; } -async function getWrapEvent(sealed:VerifiedEvent, recipient:NDKUser, params? : GiftWrapParams) : Promise{ +async function getWrapEvent(sealed:VerifiedEvent, recipient:NDKUser, params? : GiftWrapParams): Promise{ const signer = NDKPrivateKeySigner.generate(); const content = await signer.encrypt(recipient, JSON.stringify(sealed), params?.encryptionNip || 'nip44') const pubkey = (await signer.user()).pubkey let wrap : any = { - kind : params?.wrapKind || 1059, - created_at: aproximateNow(5), + kind : params?.wrapKind || NDKKind.GiftWrap, + created_at: approximateNow(5), tags: (params?.wrapTags || []).concat([["p", recipient.pubkey]]), content, pubkey, @@ -112,6 +112,6 @@ async function getWrapEvent(sealed:VerifiedEvent, recipient:NDKUser, params? : G return wrap; } -function aproximateNow(drift = 0){ +function approximateNow(drift = 0){ return Math.round(Date.now() / 1000 - Math.random() * Math.pow(10, drift)) } \ No newline at end of file diff --git a/ndk/src/events/index.ts b/ndk/src/events/index.ts index d4d6b3cd..f5a1d595 100644 --- a/ndk/src/events/index.ts +++ b/ndk/src/events/index.ts @@ -314,6 +314,27 @@ export class NDKEvent extends EventEmitter { public giftWrap = giftWrap.bind(this); public giftUnwrap = giftUnwrap.bind(this); + /** + * Shorthand method for Nip-17 Private Direct Messages encryption using Nip-44 and Nip-29 gift wraps. + * + * @param recipient user which receives the message + * @param signer optional signer to use for decryption of the events, only needed to overwrite the event's ndk signer + * @returns Promise containing the encrypted event if successful, otherwise an error + */ + public async encryptNip17(recipient: NDKUser, signer?: NDKSigner): Promise { + return this.giftWrap(recipient, signer); + } + + /** + * Shorthand method for Nip-17 Private Direct Messages decryption using Nip-44 and Nip-29 gift wraps. + * + * @param signer optional signer to use for decryption of the events, only needed to overwrite the event's ndk signer + * @returns Promise containing the decrypted event if successful, otherwise an error + */ + public async decryptNip17(signer?: NDKSigner): Promise { + return this.giftUnwrap(this.author, signer); + } + /** * Get all tags with the given name * @param tagName {string} The name of the tag to search for From 40c4b554096b74012ac7ae499f1a97db82775e97 Mon Sep 17 00:00:00 2001 From: rodant Date: Wed, 18 Dec 2024 15:23:36 +0100 Subject: [PATCH 20/21] Fix some of the review comments. --- ndk/src/events/encryption.ts | 9 ++++----- ndk/src/events/gift-wrapping.ts | 7 +++---- ndk/src/events/index.ts | 4 ++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/ndk/src/events/encryption.ts b/ndk/src/events/encryption.ts index 365e9560..a124f4fb 100644 --- a/ndk/src/events/encryption.ts +++ b/ndk/src/events/encryption.ts @@ -13,7 +13,7 @@ export type EncryptionMethod = 'encrypt' | 'decrypt' // some clients may wish to set a default for message encryption... let defaultEncryption : EncryptionNip | undefined = undefined; -export function useEncryption(nip : EncryptionNip) { +export function useEncryption(nip: EncryptionNip) { defaultEncryption = nip; } @@ -21,7 +21,7 @@ export async function encrypt( this: NDKEvent, recipient?: NDKUser, signer?: NDKSigner, - nip : EncryptionNip | undefined = defaultEncryption + nip: EncryptionNip | undefined = defaultEncryption ): Promise { let encrypted : string | undefined; if (!this.ndk) throw new Error("No NDK instance found!"); @@ -29,7 +29,6 @@ export async function encrypt( this.ndk.assertSigner(); signer = this.ndk.signer; } - if(!signer) throw new Error('no NDK signer'); if (!recipient) { const pTags = this.getMatchingTags("p"); @@ -43,10 +42,10 @@ export async function encrypt( } // support for encrypting events via legacy `nip04`. adapted from Coracle - if ((!nip || nip == 'nip04') && await isEncryptionEnabled(signer, 'nip04')) { + if ((!nip || nip == 'nip04') && await isEncryptionEnabled(signer!, 'nip04')) { encrypted = (await signer?.encrypt(recipient, this.content, 'nip04')) as string; } - if ((!encrypted || nip == "nip44") && await isEncryptionEnabled(signer, 'nip44')) { + if ((!encrypted || nip == "nip44") && await isEncryptionEnabled(signer!, 'nip44')) { encrypted = (await signer?.encrypt(recipient, this.content, 'nip44')) as string; } if(!encrypted) throw new Error('Failed to encrypt event.'); diff --git a/ndk/src/events/gift-wrapping.ts b/ndk/src/events/gift-wrapping.ts index 7d25db56..118e867f 100644 --- a/ndk/src/events/gift-wrapping.ts +++ b/ndk/src/events/gift-wrapping.ts @@ -11,7 +11,6 @@ import { NDKKind } from "./kinds/index.js"; export type GiftWrapParams = { encryptionNip?: EncryptionNip rumorKind?: number; - wrapKind?: 1059 | 1060 wrapTags?: string[][] } @@ -23,7 +22,7 @@ export type GiftWrapParams = { * @param params * @returns */ -export async function giftWrap(this:NDKEvent, recipient: NDKUser, signer?:NDKSigner, params:GiftWrapParams = {}) : Promise{ +export async function giftWrap(this: NDKEvent, recipient: NDKUser, signer?: NDKSigner, params: GiftWrapParams = {}): Promise{ params.encryptionNip = params.encryptionNip || 'nip44'; if(!signer){ if(!this.ndk) @@ -95,12 +94,12 @@ async function getSealEvent(rumor : NostrEvent, recipient : NDKUser, signer:NDKS return seal; } -async function getWrapEvent(sealed:VerifiedEvent, recipient:NDKUser, params? : GiftWrapParams): Promise{ +async function getWrapEvent(sealed: VerifiedEvent, recipient: NDKUser, params?: GiftWrapParams): Promise{ const signer = NDKPrivateKeySigner.generate(); const content = await signer.encrypt(recipient, JSON.stringify(sealed), params?.encryptionNip || 'nip44') const pubkey = (await signer.user()).pubkey let wrap : any = { - kind : params?.wrapKind || NDKKind.GiftWrap, + kind : NDKKind.GiftWrap, created_at: approximateNow(5), tags: (params?.wrapTags || []).concat([["p", recipient.pubkey]]), content, diff --git a/ndk/src/events/index.ts b/ndk/src/events/index.ts index ce27a600..bbc51ad1 100644 --- a/ndk/src/events/index.ts +++ b/ndk/src/events/index.ts @@ -315,7 +315,7 @@ export class NDKEvent extends EventEmitter { public giftUnwrap = giftUnwrap.bind(this); /** - * Shorthand method for Nip-17 Private Direct Messages encryption using Nip-44 and Nip-29 gift wraps. + * Shorthand method for Nip-17 Private Direct Messages encryption using Nip-44 and Nip-59 gift wraps. * * @param recipient user which receives the message * @param signer optional signer to use for decryption of the events, only needed to overwrite the event's ndk signer @@ -326,7 +326,7 @@ export class NDKEvent extends EventEmitter { } /** - * Shorthand method for Nip-17 Private Direct Messages decryption using Nip-44 and Nip-29 gift wraps. + * Shorthand method for Nip-17 Private Direct Messages decryption using Nip-44 and Nip-59 gift wraps. * * @param signer optional signer to use for decryption of the events, only needed to overwrite the event's ndk signer * @returns Promise containing the decrypted event if successful, otherwise an error From 3a6db27d232c8070469df61208bd3e0954f98769 Mon Sep 17 00:00:00 2001 From: rodant Date: Fri, 20 Dec 2024 12:49:42 +0100 Subject: [PATCH 21/21] Changes after review from @pablof7z. --- ndk/src/events/encryption.test.ts | 6 +-- ndk/src/events/encryption.ts | 29 +++++------- ndk/src/events/gift-wrapping.ts | 70 +++++++++++++--------------- ndk/src/events/kinds/index.ts | 6 +-- ndk/src/ndk/index.ts | 9 ++++ ndk/src/signers/index.ts | 2 +- ndk/src/signers/nip07/index.ts | 4 +- ndk/src/signers/nip46/index.ts | 11 ++--- ndk/src/signers/private-key/index.ts | 4 +- 9 files changed, 67 insertions(+), 74 deletions(-) diff --git a/ndk/src/events/encryption.test.ts b/ndk/src/events/encryption.test.ts index e94b6d1a..d0d4179a 100644 --- a/ndk/src/events/encryption.test.ts +++ b/ndk/src/events/encryption.test.ts @@ -43,7 +43,7 @@ describe("NDKEvent encryption (Nip44 & Nip59)", () => { }); const original = sendEvent.content - await sendEvent.encrypt(receiveUser, sendSigner); + await sendEvent.encrypt(receiveUser, sendSigner, 'nip04'); const receiveEvent = new NDKEvent(new NDK(), sendEvent.rawEvent()) // Despite of specifying Nip44 here, the event kind 4 forces Nip04 encryption await receiveEvent.decrypt(sendUser, receiveSigner, 'nip44'); @@ -175,10 +175,6 @@ describe("NDKEvent encryption (Nip44 & Nip59)", () => { expect(mockSendRequest.mock.calls[0][1]).toBe("nip44_encrypt"); await message.giftWrap(receiveUser, send46Signer, { encryptionNip: "nip04"}); expect(mockSendRequest.mock.calls[2][1]).toBe("nip04_encrypt"); - await wrapped.giftUnwrap(wrapped.author, send46Signer); - expect(mockSendRequest.mock.calls[4][1]).toBe("nip44_decrypt"); - await wrapped.giftUnwrap(wrapped.author, send46Signer, "nip04"); - expect(mockSendRequest.mock.calls[6][1]).toBe("nip04_decrypt"); }); }); diff --git a/ndk/src/events/encryption.ts b/ndk/src/events/encryption.ts index a124f4fb..b25e6499 100644 --- a/ndk/src/events/encryption.ts +++ b/ndk/src/events/encryption.ts @@ -2,26 +2,18 @@ * Encryption and gift-wrapping of events * Implements Nip04, Nip44, Nip59 */ +import { EncryptionNip } from "../ndk"; import type { NDKSigner } from "../signers"; import { NDKUser } from "../user"; import { NDKEvent } from "./index.js"; -// NIP04 && NIP44 - -export type EncryptionNip = 'nip04' | 'nip44'; export type EncryptionMethod = 'encrypt' | 'decrypt' -// some clients may wish to set a default for message encryption... -let defaultEncryption : EncryptionNip | undefined = undefined; -export function useEncryption(nip: EncryptionNip) { - defaultEncryption = nip; -} - export async function encrypt( this: NDKEvent, recipient?: NDKUser, signer?: NDKSigner, - nip: EncryptionNip | undefined = defaultEncryption + nip?: EncryptionNip ): Promise { let encrypted : string | undefined; if (!this.ndk) throw new Error("No NDK instance found!"); @@ -41,18 +33,19 @@ export async function encrypt( recipient = this.ndk.getUser({ pubkey: pTags[0][1] }); } + nip = !nip ? this.ndk!.defaultEncryption : nip; + if ((nip == "nip44") && await isEncryptionEnabled(signer!, 'nip44')) { + encrypted = (await signer?.encrypt(recipient, this.content, 'nip44')) as string; + } // support for encrypting events via legacy `nip04`. adapted from Coracle - if ((!nip || nip == 'nip04') && await isEncryptionEnabled(signer!, 'nip04')) { + if ((!encrypted || nip == 'nip04') && await isEncryptionEnabled(signer!, 'nip04')) { encrypted = (await signer?.encrypt(recipient, this.content, 'nip04')) as string; } - if ((!encrypted || nip == "nip44") && await isEncryptionEnabled(signer!, 'nip44')) { - encrypted = (await signer?.encrypt(recipient, this.content, 'nip44')) as string; - } if(!encrypted) throw new Error('Failed to encrypt event.'); this.content = encrypted; } -export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSigner, nip: EncryptionNip | undefined = defaultEncryption): Promise { +export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSigner, nip?: EncryptionNip): Promise { let decrypted : string | undefined; if (!this.ndk) throw new Error("No NDK instance found!"); if (!signer) { @@ -63,11 +56,13 @@ export async function decrypt(this: NDKEvent, sender?: NDKUser, signer?: NDKSign if (!sender) { sender = this.author; } + + nip = !nip ? this.ndk!.defaultEncryption : nip; // simple check for legacy `nip04` encrypted events. adapted from Coracle - if ((!nip || nip=='nip04' || this.kind == 4) && await isEncryptionEnabled(signer, 'nip04') && this.content.search("\\?iv=")) { + if ((nip == 'nip04' || this.kind == 4) && await isEncryptionEnabled(signer, 'nip04') && this.content.search("\\?iv=")) { decrypted = (await signer?.decrypt(sender, this.content, 'nip04')) as string; } - if (!decrypted && await isEncryptionEnabled(signer, 'nip44')) { + if (!decrypted && nip == 'nip44' && await isEncryptionEnabled(signer, 'nip44')) { decrypted = (await signer?.decrypt(sender, this.content, 'nip44')) as string; } if(!decrypted) throw new Error('Failed to decrypt event.'); diff --git a/ndk/src/events/gift-wrapping.ts b/ndk/src/events/gift-wrapping.ts index 118e867f..c995090d 100644 --- a/ndk/src/events/gift-wrapping.ts +++ b/ndk/src/events/gift-wrapping.ts @@ -1,7 +1,7 @@ +import { EncryptionNip } from "../ndk"; import { NDKEvent, NostrEvent } from "./index.js"; import { NDKPrivateKeySigner } from "../signers/private-key"; import { VerifiedEvent, getEventHash, verifiedSymbol } from "nostr-tools"; -import { EncryptionNip } from "./encryption.js"; import { NDKUser } from "../user/index.js"; import { NDKSigner } from "../signers/index.js"; import { NDKKind } from "./kinds/index.js"; @@ -15,7 +15,7 @@ export type GiftWrapParams = { } /** - * Instantiate a new (Nip59 gift wrapped) NDKEvent from any NDKevent + * Instantiate a new (Nip59 gift wrapped) NDKEvent from any NDKEvent * @param this * @param recipient * @param signer @@ -43,25 +43,27 @@ export async function giftWrap(this: NDKEvent, recipient: NDKUser, signer?: NDKS * Instantiate a new (Nip59 un-wrapped rumor) NDKEvent from any gift wrapped NDKEvent * @param this */ -export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSigner, nip:EncryptionNip = 'nip44'): Promise { - sender = sender || new NDKUser({pubkey:this.pubkey}) +export async function giftUnwrap(this: NDKEvent, sender?: NDKUser, signer?: NDKSigner, nip: EncryptionNip = 'nip44'): Promise { + sender = sender || new NDKUser({ pubkey: this.pubkey }); if(!signer){ if(!this.ndk) - throw new Error('no signer available for giftUnwrap') + throw new Error('no signer available for giftUnwrap'); signer = this.ndk.signer; } if(!signer) - throw new Error('no signer') + throw new Error('no signer'); try { const seal = JSON.parse(await signer.decrypt(sender, this.content, nip)) as NostrEvent; - if (!seal) throw new Error("Failed to decrypt wrapper") + if (!seal) throw new Error("Failed to decrypt wrapper"); + + if (!new NDKEvent(undefined, seal).verifySignature(false)) throw new Error("GiftSeal signature verification failed!"); - const rumorSender = new NDKUser({pubkey: seal.pubkey}); - const rumor = JSON.parse(await signer.decrypt(rumorSender, seal.content, nip)) - if (!rumor) throw new Error("Failed to decrypt seal") + const rumorSender = new NDKUser({ pubkey: seal.pubkey }); + const rumor = JSON.parse(await signer.decrypt(rumorSender, seal.content, nip)); + if (!rumor) throw new Error("Failed to decrypt seal"); if (seal.pubkey === rumor.pubkey) { - return new NDKEvent(this.ndk, rumor as NostrEvent) + return new NDKEvent(this.ndk, rumor as NostrEvent); } else { return Promise.reject("Invalid GiftWrap, sender validation failed!"); } @@ -71,43 +73,35 @@ export async function giftUnwrap(this:NDKEvent, sender?:NDKUser, signer?:NDKSign } } -function getRumorEvent(event:NDKEvent, kind?:number): NostrEvent{ +function getRumorEvent(event: NDKEvent, kind?: number): NDKEvent { let rumor = event.rawEvent(); rumor.kind = kind || rumor.kind || NDKKind.PrivateDirectMessage; rumor.sig = undefined; rumor.id = getEventHash(rumor as any); - return rumor; + return new NDKEvent(event.ndk, rumor); } -async function getSealEvent(rumor : NostrEvent, recipient : NDKUser, signer:NDKSigner, nip:EncryptionNip = 'nip44'): Promise{ - const content = await signer.encrypt(recipient, JSON.stringify(rumor), nip); - let seal : any = { - kind: NDKKind.GiftWrapSeal, - created_at: approximateNow(5), - tags: [], - content , - pubkey : rumor.pubkey - } - seal.id = getEventHash(seal), - seal.sig = await signer.sign(seal); - seal[verifiedSymbol] = true +async function getSealEvent(rumor: NDKEvent, recipient: NDKUser, signer: NDKSigner, nip: EncryptionNip = 'nip44'): Promise { + const seal = new NDKEvent(rumor.ndk); + seal.kind = NDKKind.GiftWrapSeal; + seal.created_at = approximateNow(5); + seal.content = JSON.stringify(rumor.rawEvent()); + await seal.encrypt(recipient, signer, nip); + await seal.sign(signer); return seal; } -async function getWrapEvent(sealed: VerifiedEvent, recipient: NDKUser, params?: GiftWrapParams): Promise{ +async function getWrapEvent(sealed: NDKEvent, recipient: NDKUser, params?: GiftWrapParams): Promise { const signer = NDKPrivateKeySigner.generate(); - const content = await signer.encrypt(recipient, JSON.stringify(sealed), params?.encryptionNip || 'nip44') - const pubkey = (await signer.user()).pubkey - let wrap : any = { - kind : NDKKind.GiftWrap, - created_at: approximateNow(5), - tags: (params?.wrapTags || []).concat([["p", recipient.pubkey]]), - content, - pubkey, - } - wrap.id = getEventHash(wrap); - wrap.sig = await signer.sign(wrap); - wrap[verifiedSymbol] = true + + const wrap = new NDKEvent(sealed.ndk); + wrap.kind = NDKKind.GiftWrap; + wrap.created_at = approximateNow(5) + if (params?.wrapTags) wrap.tags = params.wrapTags; + wrap.tag(recipient); + wrap.content = JSON.stringify(sealed.rawEvent()); + await wrap.encrypt(recipient, signer); + await wrap.sign(signer); return wrap; } diff --git a/ndk/src/events/kinds/index.ts b/ndk/src/events/kinds/index.ts index b1c2e5d0..68cccf06 100644 --- a/ndk/src/events/kinds/index.ts +++ b/ndk/src/events/kinds/index.ts @@ -13,6 +13,9 @@ export enum NDKKind { GroupChat = 9, GroupNote = 11, GroupReply = 12, + GiftWrapSeal = 13, + // Gift Wrapped Rumors + PrivateDirectMessage = 14, Image = 20, @@ -21,9 +24,6 @@ export enum NDKKind { // Nip 59 : Gift Wrap GiftWrap = 1059, - GiftWrapSeal = 13, - // Gift Wrapped Rumors - PrivateDirectMessage = 14, GenericRepost = 16, ChannelCreation = 40, diff --git a/ndk/src/ndk/index.ts b/ndk/src/ndk/index.ts index a7d1aa6c..57ef07bd 100644 --- a/ndk/src/ndk/index.ts +++ b/ndk/src/ndk/index.ts @@ -187,6 +187,9 @@ export const DEFAULT_BLACKLISTED_RELAYS = [ // "wss://purplepag.es/", // This is a hack, since this is a mostly read-only relay, but not fully. Once we have relay routing this can be removed so it only receives the supported kinds ]; +// NIP04 && NIP44 +export type EncryptionNip = 'nip04' | 'nip44'; + /** * The NDK class is the main entry point to the library. * @@ -287,6 +290,12 @@ export class NDK extends EventEmitter<{ public walletConfig?: NDKWalletInterface; + // some clients may wish to set a default for message encryption... + public defaultEncryption: EncryptionNip = 'nip44'; + public useEncryption(nip: EncryptionNip) { + this.defaultEncryption = nip; + } + public constructor(opts: NDKConstructorParams = {}) { super(); diff --git a/ndk/src/signers/index.ts b/ndk/src/signers/index.ts index db2e53f6..4b488eef 100644 --- a/ndk/src/signers/index.ts +++ b/ndk/src/signers/index.ts @@ -1,4 +1,4 @@ -import { EncryptionNip } from "../events/encryption.js"; +import { EncryptionNip } from "../ndk"; import type { NostrEvent } from "../events/index.js"; import type { NDK } from "../ndk/index.js"; import type { NDKRelay } from "../relay/index.js"; diff --git a/ndk/src/signers/nip07/index.ts b/ndk/src/signers/nip07/index.ts index 70a9bbbf..fdd7692d 100644 --- a/ndk/src/signers/nip07/index.ts +++ b/ndk/src/signers/nip07/index.ts @@ -1,11 +1,11 @@ import debug from "debug"; -import { NDK } from "../../ndk/index.js"; +import { EncryptionNip, NDK } from "../../ndk/index.js"; import type { NostrEvent } from "../../events/index.js"; import { Hexpubkey, NDKUser } from "../../user/index.js"; import { type NDKSigner } from "../index.js"; import { NDKRelay } from "../../relay/index.js"; -import { EncryptionMethod, EncryptionNip } from "../../events/encryption.js"; +import { EncryptionMethod } from "../../events/encryption.js"; type EncryptionQueueItem = { nip : EncryptionNip; diff --git a/ndk/src/signers/nip46/index.ts b/ndk/src/signers/nip46/index.ts index 3c62032b..0d9d9886 100644 --- a/ndk/src/signers/nip46/index.ts +++ b/ndk/src/signers/nip46/index.ts @@ -1,6 +1,6 @@ import { EventEmitter } from "tseep"; import type { NostrEvent } from "../../events/index.js"; -import type { NDK } from "../../ndk/index.js"; +import type { EncryptionNip, NDK } from "../../ndk/index.js"; import type { Hexpubkey } from "../../user/index.js"; import { NDKUser } from "../../user/index.js"; import type { NDKSigner } from "../index.js"; @@ -9,8 +9,7 @@ import type { NDKRpcResponse } from "./rpc.js"; import { NDKNostrRpc } from "./rpc.js"; import { NDKKind } from "../../events/kinds/index.js"; import type { NDKSubscription } from "../../subscription/index.js"; -import { EncryptionMethod, EncryptionNip } from "../../events/encryption.js"; -import { send } from "process"; +import { EncryptionMethod } from "../../events/encryption.js"; /** * This NDKSigner implements NIP-46, which allows remote signing of events. @@ -213,7 +212,7 @@ export class NDKNip46Signer extends EventEmitter implements NDKSigner { }); } - public async encryptionEnabled(nip?:EncryptionNip): Promise{ + public async encryptionEnabled(nip?: EncryptionNip): Promise { if (nip) return [nip]; return Promise.resolve(["nip04", "nip44"]); } @@ -227,7 +226,7 @@ export class NDKNip46Signer extends EventEmitter implements NDKSigner { } private async encryption( - recipient: NDKUser, + peer: NDKUser, value: string, nip: EncryptionNip, method: EncryptionMethod @@ -238,7 +237,7 @@ export class NDKNip46Signer extends EventEmitter implements NDKSigner { this.rpc.sendRequest( this.bunkerPubkey, `${nip}_${method}`, - [recipient.pubkey, value], + [peer.pubkey, value], 24133, (response: NDKRpcResponse) => { if (!response.error) { diff --git a/ndk/src/signers/private-key/index.ts b/ndk/src/signers/private-key/index.ts index 7d59a8c6..33eb7ef7 100644 --- a/ndk/src/signers/private-key/index.ts +++ b/ndk/src/signers/private-key/index.ts @@ -1,3 +1,4 @@ +import { EncryptionNip } from "../../ndk/index.js"; import type { UnsignedEvent } from "nostr-tools"; import { generateSecretKey, getPublicKey, finalizeEvent, nip04, nip44 } from "nostr-tools"; @@ -6,7 +7,6 @@ import { NDKUser } from "../../user"; import { type NDKSigner } from "../index.js"; import { bytesToHex, hexToBytes } from "@noble/hashes/utils"; import { nip19 } from "nostr-tools"; -import { EncryptionNip } from "../../events/encryption.js"; export class NDKPrivateKeySigner implements NDKSigner { @@ -70,7 +70,7 @@ export class NDKPrivateKeySigner implements NDKSigner { } public async encryptionEnabled(nip?:EncryptionNip): Promise{ - let enabled : EncryptionNip[] = [] + let enabled: EncryptionNip[] = [] if((!nip || nip == 'nip04')) enabled.push('nip04') if((!nip || nip == 'nip44')) enabled.push('nip44') return enabled;