From 6c24833a91ddf5ab0bc0786b614f1bb1cda1b1fc Mon Sep 17 00:00:00 2001 From: Felicio Mununga Date: Thu, 10 Aug 2023 13:47:14 +0200 Subject: [PATCH] remove url signatures (#461) * rm sigs * Create sharp-mangos-divide.md * fix apps/web lint * rm URLParams --- .changeset/sharp-mangos-divide.md | 5 + apps/web/.eslintrc | 5 +- apps/web/package.json | 4 +- packages/status-js/src/index.ts | 1 - .../status-js/src/protos/communities.proto | 2 - .../status-js/src/protos/communities_pb.ts | 13 - .../src/protos/push-notifications.proto | 1 - .../src/protos/push-notifications_pb.ts | 7 - packages/status-js/src/protos/url.proto | 6 - packages/status-js/src/protos/url_pb.ts | 67 ---- .../status-js/src/utils/create-url.test.ts | 24 +- packages/status-js/src/utils/create-url.ts | 29 +- .../status-js/src/utils/sign-url-data.test.ts | 55 ---- packages/status-js/src/utils/sign-url-data.ts | 30 -- yarn.lock | 293 +++++++++++++++++- 15 files changed, 315 insertions(+), 227 deletions(-) create mode 100644 .changeset/sharp-mangos-divide.md delete mode 100644 packages/status-js/src/utils/sign-url-data.test.ts delete mode 100644 packages/status-js/src/utils/sign-url-data.ts diff --git a/.changeset/sharp-mangos-divide.md b/.changeset/sharp-mangos-divide.md new file mode 100644 index 00000000..5923f7b0 --- /dev/null +++ b/.changeset/sharp-mangos-divide.md @@ -0,0 +1,5 @@ +--- +"@status-im/js": patch +--- + +remove url signatures diff --git a/apps/web/.eslintrc b/apps/web/.eslintrc index 51442486..7f433948 100644 --- a/apps/web/.eslintrc +++ b/apps/web/.eslintrc @@ -5,5 +5,8 @@ "plugin:tailwindcss/recommended", "next", "next/core-web-vitals" - ] + ], + "rules": { + "@next/next/no-html-link-for-pages": "off" + } } diff --git a/apps/web/package.json b/apps/web/package.json index 7074ed43..45241e90 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -20,11 +20,13 @@ "use-resize-observer": "^9.1.0" }, "devDependencies": { + "@status-im/eslint-config": "*", "@tamagui/vite-plugin": "1.36.4", "@types/react": "^18.0.33", "@types/react-dom": "^18.0.11", "@vitejs/plugin-react-swc": "^3.2.0", - "@status-im/eslint-config": "*", + "next": "^13.4.12", + "tailwindcss": "^3.3.3", "typescript": "^5.0.3", "vite": "^4.2.1" }, diff --git a/packages/status-js/src/index.ts b/packages/status-js/src/index.ts index c8679441..48e289a0 100644 --- a/packages/status-js/src/index.ts +++ b/packages/status-js/src/index.ts @@ -22,4 +22,3 @@ export { createRequestClient } from './request-client/request-client' export { deserializePublicKey } from './utils/deserialize-public-key' export { publicKeyToColorHash } from './utils/public-key-to-color-hash' export { publicKeyToEmojiHash } from './utils/public-key-to-emoji-hash' -export { recoverPublicKeyFromEncodedURLData } from './utils/sign-url-data' diff --git a/packages/status-js/src/protos/communities.proto b/packages/status-js/src/protos/communities.proto index b9d30c12..0f7ecebe 100644 --- a/packages/status-js/src/protos/communities.proto +++ b/packages/status-js/src/protos/communities.proto @@ -48,7 +48,6 @@ message CommunityDescription { string outro_message = 12; bool encrypted = 13; repeated string tags = 14; - URLParams url_params = 15; } message CommunityAdminSettings { @@ -61,7 +60,6 @@ message CommunityChat { ChatIdentity identity = 3; string category_id = 4; int32 position = 5; - URLParams url_params = 6; } message CommunityCategory { diff --git a/packages/status-js/src/protos/communities_pb.ts b/packages/status-js/src/protos/communities_pb.ts index 48f29ce3..28c685cd 100644 --- a/packages/status-js/src/protos/communities_pb.ts +++ b/packages/status-js/src/protos/communities_pb.ts @@ -13,7 +13,6 @@ import type { } from '@bufbuild/protobuf' import { Message, proto3, protoInt64 } from '@bufbuild/protobuf' import { ChatIdentity } from './chat-identity_pb.js' -import { URLParams } from './url_pb.js' /** * @generated from message Grant @@ -347,11 +346,6 @@ export class CommunityDescription extends Message { */ tags: string[] = [] - /** - * @generated from field: URLParams url_params = 15; - */ - urlParams?: URLParams - constructor(data?: PartialMessage) { super() proto3.util.initPartial(data, this) @@ -423,7 +417,6 @@ export class CommunityDescription extends Message { T: 9 /* ScalarType.STRING */, repeated: true, }, - { no: 15, name: 'url_params', kind: 'message', T: URLParams }, ]) static fromBinary( @@ -541,11 +534,6 @@ export class CommunityChat extends Message { */ position = 0 - /** - * @generated from field: URLParams url_params = 6; - */ - urlParams?: URLParams - constructor(data?: PartialMessage) { super() proto3.util.initPartial(data, this) @@ -570,7 +558,6 @@ export class CommunityChat extends Message { T: 9 /* ScalarType.STRING */, }, { no: 5, name: 'position', kind: 'scalar', T: 5 /* ScalarType.INT32 */ }, - { no: 6, name: 'url_params', kind: 'message', T: URLParams }, ]) static fromBinary( diff --git a/packages/status-js/src/protos/push-notifications.proto b/packages/status-js/src/protos/push-notifications.proto index 24ed7e01..fd713a0c 100644 --- a/packages/status-js/src/protos/push-notifications.proto +++ b/packages/status-js/src/protos/push-notifications.proto @@ -42,7 +42,6 @@ message PushNotificationRegistrationResponse { message ContactCodeAdvertisement { repeated PushNotificationQueryInfo push_notification_info = 1; ChatIdentity chat_identity = 2; - URLParams url_params = 3; } message PushNotificationQuery { diff --git a/packages/status-js/src/protos/push-notifications_pb.ts b/packages/status-js/src/protos/push-notifications_pb.ts index 649778f1..63700b1f 100644 --- a/packages/status-js/src/protos/push-notifications_pb.ts +++ b/packages/status-js/src/protos/push-notifications_pb.ts @@ -13,7 +13,6 @@ import type { } from '@bufbuild/protobuf' import { Message, proto3, protoInt64 } from '@bufbuild/protobuf' import { ChatIdentity } from './chat-identity_pb.js' -import { URLParams } from './url_pb.js' /** * @generated from message PushNotificationRegistration @@ -363,11 +362,6 @@ export class ContactCodeAdvertisement extends Message */ chatIdentity?: ChatIdentity - /** - * @generated from field: URLParams url_params = 3; - */ - urlParams?: URLParams - constructor(data?: PartialMessage) { super() proto3.util.initPartial(data, this) @@ -384,7 +378,6 @@ export class ContactCodeAdvertisement extends Message repeated: true, }, { no: 2, name: 'chat_identity', kind: 'message', T: ChatIdentity }, - { no: 3, name: 'url_params', kind: 'message', T: URLParams }, ]) static fromBinary( diff --git a/packages/status-js/src/protos/url.proto b/packages/status-js/src/protos/url.proto index a8a1c697..6266c6ba 100644 --- a/packages/status-js/src/protos/url.proto +++ b/packages/status-js/src/protos/url.proto @@ -27,9 +27,3 @@ message URLData { // Community, Channel, or User bytes content = 1; } - -message URLParams { - string encoded_url_data = 1; - // Signature of encoded URL data - string encoded_signature = 2; -} diff --git a/packages/status-js/src/protos/url_pb.ts b/packages/status-js/src/protos/url_pb.ts index b582b83a..a4ec16ab 100644 --- a/packages/status-js/src/protos/url_pb.ts +++ b/packages/status-js/src/protos/url_pb.ts @@ -317,70 +317,3 @@ export class URLData extends Message { return proto3.util.equals(URLData, a, b) } } - -/** - * @generated from message URLParams - */ -export class URLParams extends Message { - /** - * @generated from field: string encoded_url_data = 1; - */ - encodedUrlData = '' - - /** - * Signature of encoded URL data - * - * @generated from field: string encoded_signature = 2; - */ - encodedSignature = '' - - constructor(data?: PartialMessage) { - super() - proto3.util.initPartial(data, this) - } - - static readonly runtime = proto3 - static readonly typeName = 'URLParams' - static readonly fields: FieldList = proto3.util.newFieldList(() => [ - { - no: 1, - name: 'encoded_url_data', - kind: 'scalar', - T: 9 /* ScalarType.STRING */, - }, - { - no: 2, - name: 'encoded_signature', - kind: 'scalar', - T: 9 /* ScalarType.STRING */, - }, - ]) - - static fromBinary( - bytes: Uint8Array, - options?: Partial - ): URLParams { - return new URLParams().fromBinary(bytes, options) - } - - static fromJson( - jsonValue: JsonValue, - options?: Partial - ): URLParams { - return new URLParams().fromJson(jsonValue, options) - } - - static fromJsonString( - jsonString: string, - options?: Partial - ): URLParams { - return new URLParams().fromJsonString(jsonString, options) - } - - static equals( - a: URLParams | PlainMessage | undefined, - b: URLParams | PlainMessage | undefined - ): boolean { - return proto3.util.equals(URLParams, a, b) - } -} diff --git a/packages/status-js/src/utils/create-url.test.ts b/packages/status-js/src/utils/create-url.test.ts index b35d8555..df4bd6f7 100644 --- a/packages/status-js/src/utils/create-url.test.ts +++ b/packages/status-js/src/utils/create-url.test.ts @@ -30,11 +30,7 @@ type Mutable = { describe('Create URLs', () => { test('should create community URL', async () => { - const community = vi.fn() as unknown as Mutable< - Community & { privateKey: string } - > - community.privateKey = - '87734578951189d843c7acd05b133a0e0d02c4110ea961df812f7ea15648e0d8' + const community = vi.fn() as unknown as Mutable community.chatKey = 'zQ3shYSHp7GoiXaauJMnDcjwU2yNjdzpXLosAWapPS4CFxc11' community.description = { members: { @@ -62,18 +58,16 @@ describe('Create URLs', () => { membersCount: 446_744, tagIndices: [1, 33, 51], }, - community.privateKey + community.chatKey ) ).toString() ).toBe( - 'https://status.app/c/iyKACkQKB0Rvb2RsZXMSJ0NvbG9yaW5nIHRoZSB3b3JsZCB3aXRoIGpveSDigKIg4bSXIOKAohiYohsiByMxMzFEMkYqAwEhMwM=#QnO2hw5tVAE-MD5i8Mq4s_oGWd0rRFmlObgRUNQXtUNwP1ixFw914Y4-BQpF08KOqpaULCh7UCtlWR-O0YP8MwA=' + 'https://status.app/c/iyKACkQKB0Rvb2RsZXMSJ0NvbG9yaW5nIHRoZSB3b3JsZCB3aXRoIGpveSDigKIg4bSXIOKAohiYohsiByMxMzFEMkYqAwEhMwM=#zQ3shYSHp7GoiXaauJMnDcjwU2yNjdzpXLosAWapPS4CFxc11' ) }) test('should create channel URL', async () => { - const community = vi.fn() as unknown as Community & { privateKey: string } - community.privateKey = - '87734578951189d843c7acd05b133a0e0d02c4110ea961df812f7ea15648e0d8' + const community = vi.fn() as unknown as Community community.chatKey = 'zQ3shYSHp7GoiXaauJMnDcjwU2yNjdzpXLosAWapPS4CFxc11' community.description = { members: { @@ -118,19 +112,17 @@ describe('Create URLs', () => { displayName: community.description.identity!.displayName, }, } as unknown as PlainMessage, - community.privateKey + community.chatKey ) ).toString() ).toBe( - 'https://status.app/cc/G54AAKwObLdpiGjXnckYzRcOSq0QQAS_CURGfqVU42ceGHCObstUIknTTZDOKF3E8y2MSicncpO7fTskXnoACiPKeejvjtLTGWNxUhlT7fyQS7Jrr33UVHluxv_PLjV2ePGw5GQ33innzeK34pInIgUGs5RjdQifMVmURalxxQKwiuoY5zwIjixWWRHqjHM=#7aeB-M6pIbvpSVGM4TeJkKWPya4YRAHbq4amL0cHlSBpRKn7_lyR4kxEDo2hC4koqPWYe_ak2R9cSVKSiV_nNAA=' + 'https://status.app/cc/G54AAKwObLdpiGjXnckYzRcOSq0QQAS_CURGfqVU42ceGHCObstUIknTTZDOKF3E8y2MSicncpO7fTskXnoACiPKeejvjtLTGWNxUhlT7fyQS7Jrr33UVHluxv_PLjV2ePGw5GQ33innzeK34pInIgUGs5RjdQifMVmURalxxQKwiuoY5zwIjixWWRHqjHM=#zQ3shYSHp7GoiXaauJMnDcjwU2yNjdzpXLosAWapPS4CFxc11' ) }) test('should create user URL', async () => { const account = vi.fn() as unknown as Mutable account.ensName = 'testing.stateofus.eth' - account.privateKey = - 'e922443102af10422970269a8bc575cbdfd70487e4d9051f4b091edd8def5254' account.chatKey = 'zQ3shwQPhRuDJSjVGVBnTjCdgXy5i9WQaeVPdGJD6yTarJQSj' account.description = { chatIdentity: { @@ -155,11 +147,11 @@ describe('Create URLs', () => { displayName: account.description.chatIdentity!.displayName, color: account.description.chatIdentity!.color, }, - account.privateKey + account.chatKey ) ).toString() ).toBe( - 'https://status.app/u/G10A4B0JdgwyRww90WXtnP1oNH1ZLQNM0yX0Ja9YyAMjrqSZIYINOHCbFhrnKRAcPGStPxCMJDSZlGCKzmZrJcimHY8BbcXlORrElv_BbQEegnMDPx1g9C5VVNl0fE4y#LbQUdJDHCKoi8DzoYyX89bpKrTjVV3ShqH3E64bDifJB2GkedtLBfVKA02RbUfX074pb9i3owGwRdS6x_ntxrQA=' + 'https://status.app/u/G10A4B0JdgwyRww90WXtnP1oNH1ZLQNM0yX0Ja9YyAMjrqSZIYINOHCbFhrnKRAcPGStPxCMJDSZlGCKzmZrJcimHY8BbcXlORrElv_BbQEegnMDPx1g9C5VVNl0fE4y#zQ3shwQPhRuDJSjVGVBnTjCdgXy5i9WQaeVPdGJD6yTarJQSj' ) }) }) diff --git a/packages/status-js/src/utils/create-url.ts b/packages/status-js/src/utils/create-url.ts index 024191f0..fdc848d6 100644 --- a/packages/status-js/src/utils/create-url.ts +++ b/packages/status-js/src/utils/create-url.ts @@ -3,28 +3,23 @@ import { encodeCommunityURLData, encodeUserURLData, } from './encode-url-data' -import { signEncodedURLData } from './sign-url-data' import type { Channel, Community, User } from '../protos/url_pb' import type { PlainMessage } from '@bufbuild/protobuf' const BASE_URL = 'https://status.app' -export function createCommunityURLWithChatKey(chatKey: string): URL { - return new URL(`${BASE_URL}/c#${chatKey}`) +export function createCommunityURLWithChatKey(communityChatKey: string): URL { + return new URL(`${BASE_URL}/c#${communityChatKey}`) } export async function createCommunityURLWithData( communityData: PlainMessage, - communityPrivateKey: Uint8Array | string + communityChatKey: string ): Promise { const encodedURLData = encodeCommunityURLData(communityData) - const encodedSignature = await signEncodedURLData( - encodedURLData, - communityPrivateKey - ) - return new URL(`${BASE_URL}/c/${encodedURLData}#${encodedSignature}`) + return new URL(`${BASE_URL}/c/${encodedURLData}#${communityChatKey}`) } export function createChannelURLWithChatKey( @@ -36,15 +31,11 @@ export function createChannelURLWithChatKey( export async function createChannelURLWithData( channelData: PlainMessage, - communityPrivateKey: Uint8Array | string + communityChatKey: string ): Promise { const encodedURLData = encodeChannelURLData(channelData) - const encodedSignature = await signEncodedURLData( - encodedURLData, - communityPrivateKey - ) - return new URL(`${BASE_URL}/cc/${encodedURLData}#${encodedSignature}`) + return new URL(`${BASE_URL}/cc/${encodedURLData}#${communityChatKey}`) } export function createUserURLWithENS(ensName: string): URL { @@ -57,13 +48,9 @@ export function createUserURLWithChatKey(chatKey: string): URL { export async function createUserURLWithData( userData: PlainMessage, - userPrivateKey: Uint8Array | string + userChatKey: string ): Promise { const encodedURLData = encodeUserURLData(userData) - const encodedSignature = await signEncodedURLData( - encodedURLData, - userPrivateKey - ) - return new URL(`${BASE_URL}/u/${encodedURLData}#${encodedSignature}`) + return new URL(`${BASE_URL}/u/${encodedURLData}#${userChatKey}`) } diff --git a/packages/status-js/src/utils/sign-url-data.test.ts b/packages/status-js/src/utils/sign-url-data.test.ts deleted file mode 100644 index c6c15585..00000000 --- a/packages/status-js/src/utils/sign-url-data.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { expect, test } from 'vitest' - -import { - recoverPublicKeyFromEncodedURLData, - signEncodedURLData, -} from './sign-url-data' - -import type { EncodedURLData } from './encode-url-data' - -const privateKey = new Uint8Array([ - 233, 34, 68, 49, 2, 175, 16, 66, 41, 112, 38, 154, 139, 197, 117, 203, 223, - 215, 4, 135, 228, 217, 5, 31, 75, 9, 30, 221, 141, 239, 82, 84, -]) -const publicKey = - '0x04f9134866f2bd8f45f2bc7893c95a6b989378c370088c9a1a5a53eda2ebb8a1e8386921592b6bd56fc3573f03c46df3396cc42e2993cdc001855c858865d768a7' -const encodedURLData = - 'G74AgK0ObFNmYT-WC_Jcc9KfSjHXAQo9THKEEbgPaJoItceMES-bUxr2Tj9efv447rRefBIUg9CEsSFyjBOFTRdZ9PH2wUOW8hVNYqIje3BC96mZ8uFogqM6k7gCCJnMHy4ulsmsgHTdeh5dAzTNNuG8m9XB8oVeildTCKlRhINnTZh4kAl5sP8SzBB4V2_I41a8PKl3mcS0z_eF5gA=' as EncodedURLData -const encodedSignature = - 'k-n7d-9Pcx6ht87F4riP5xAw1v7S-e1HGMRaeaO068Q3IF1Jo8xOyeMT9Yr3Wv349Z2CdBzylw8M83CgQhcMogA=' - -test('should sign URL data', async () => { - expect(await signEncodedURLData(encodedURLData, privateKey)).toBe( - encodedSignature - ) -}) - -test('should recover original public key from URL data', async () => { - expect( - await recoverPublicKeyFromEncodedURLData(encodedURLData, encodedSignature) - ).toBe(publicKey) -}) - -test('should not recover original public key from same URL data but changed signature', async () => { - const changedEncodedSignature = - 'OyOgY6Zta8S7U4l5Bv_9E_7snALhixwvjxORVAVJ-YJk-tMSGgstOy5XEEQx25TQJIAtpWf8eHnEmV8V-GmouQA=' - - expect( - await recoverPublicKeyFromEncodedURLData( - encodedURLData, - changedEncodedSignature - ) - ).not.toBe(publicKey) -}) - -test('should not recover original public key from same signature but changed URL data', async () => { - const changedEncodedURLData = - 'CyeACk0KHkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBlZ2VzdGFzLhIYV2UgZG8gbm90IHN1cHBvcnQgQWxpY2UuGMCEPSIHIzQzNjBERioEAQIDBAM=' as EncodedURLData - - expect( - await recoverPublicKeyFromEncodedURLData( - changedEncodedURLData, - encodedSignature - ) - ).not.toBe(publicKey) -}) diff --git a/packages/status-js/src/utils/sign-url-data.ts b/packages/status-js/src/utils/sign-url-data.ts deleted file mode 100644 index 7b06dfdd..00000000 --- a/packages/status-js/src/utils/sign-url-data.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { base64url } from '@scure/base' -import { toHex, utf8ToBytes as toBytes } from 'ethereum-cryptography/utils' - -import { recoverPublicKey } from './recover-public-key' -import { signData } from './sign-data' - -import type { EncodedURLData } from './encode-url-data' - -export async function signEncodedURLData( - encodedURLData: EncodedURLData, - privateKey: Uint8Array | string -): Promise { - const signature = await signData(encodedURLData, privateKey) - const encodedSignature = base64url.encode(signature) - - return encodedSignature -} - -export function recoverPublicKeyFromEncodedURLData( - encodedURLData: string, - encodedSignature: string -): string { - const decodedSignature = base64url.decode(encodedSignature) - const recoveredPublicKey = recoverPublicKey( - decodedSignature, - toBytes(encodedURLData) - ) - - return `0x${toHex(recoveredPublicKey)}` -} diff --git a/yarn.lock b/yarn.lock index 94572bd8..a6c342b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,6 +45,11 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.0.tgz#223572538f6bea336750039bb43a4016dcc8182d" integrity sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ== +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + "@ampproject/remapping@^2.1.0", "@ampproject/remapping@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" @@ -4208,6 +4213,11 @@ pump "^3.0.0" tar-fs "^2.1.1" +"@next/env@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.12.tgz#0b88115ab817f178bf9dc0c5e7b367277595b58d" + integrity sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ== + "@next/eslint-plugin-next@13.3.0": version "13.3.0" resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.3.0.tgz#3a4742b0817575cc0dd4d152cb10363584c215ac" @@ -4215,6 +4225,51 @@ dependencies: glob "7.1.7" +"@next/swc-darwin-arm64@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.12.tgz#326c830b111de8a1a51ac0cbc3bcb157c4c4f92c" + integrity sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg== + +"@next/swc-darwin-x64@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.12.tgz#dd5c49fc092a8ffe4f30b7aa9bf6c5d2e40bbfa1" + integrity sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ== + +"@next/swc-linux-arm64-gnu@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.12.tgz#816cbe9d26ce4670ea99d95b66041e483ed122d6" + integrity sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig== + +"@next/swc-linux-arm64-musl@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.12.tgz#670c8aee221628f65e5b299ee84db746e6c778b0" + integrity sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g== + +"@next/swc-linux-x64-gnu@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.12.tgz#54c64e689f007ae463698dddc1c6637491c99cb4" + integrity sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg== + +"@next/swc-linux-x64-musl@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.12.tgz#9cbddf4e542ef3d32284e0c36ce102facc015f8b" + integrity sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ== + +"@next/swc-win32-arm64-msvc@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.12.tgz#3467a4b25429ccf49fd416388c9d19c80a4f6465" + integrity sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA== + +"@next/swc-win32-ia32-msvc@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.12.tgz#73494cd167191946833c680b28d6a42435d383a8" + integrity sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww== + +"@next/swc-win32-x64-msvc@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.12.tgz#4a497edc4e8c5ee3c3eb27cf0eb39dfadff70874" + integrity sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA== + "@noble/ed25519@^1.6.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.0.tgz#583ac38340a479314b9e348d4572101ed9492f9d" @@ -6297,6 +6352,13 @@ "@swc/core-win32-ia32-msvc" "1.3.40" "@swc/core-win32-x64-msvc" "1.3.40" +"@swc/helpers@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" + "@tamagui/adapt@1.36.4": version "1.36.4" resolved "https://registry.yarnpkg.com/@tamagui/adapt/-/adapt-1.36.4.tgz#bbdca3db1ad277f56ea25c27d8637f2e2795969c" @@ -7570,7 +7632,7 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@18.0.11", "@types/react-dom@^18.0.11": +"@types/react-dom@^18.0.11": version "18.0.11" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== @@ -7584,7 +7646,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@18.0.33", "@types/react@>=16", "@types/react@^18.0.33": +"@types/react@*", "@types/react@>=16", "@types/react@^18.0.33": version "18.0.33" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.33.tgz#a1575160cb4376787c2f5fe0312302f824baa61e" integrity sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA== @@ -8117,6 +8179,11 @@ arg@4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -8748,6 +8815,13 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== +busboy@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + byte-access@^1.0.0, byte-access@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/byte-access/-/byte-access-1.0.1.tgz#84badd99be3671c03f0dd6a039a9c963983724af" @@ -8864,6 +8938,11 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -8888,6 +8967,11 @@ caniuse-lite@^1.0.30001400: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz#5f459215192a024c99e3e3a53aac310fc7cf24e6" integrity sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg== +caniuse-lite@^1.0.30001406: + version "1.0.30001517" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz#90fabae294215c3495807eb24fc809e11dc2f0a8" + integrity sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA== + chai@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" @@ -9042,6 +9126,11 @@ cli-truncate@^3.1.0: slice-ansi "^5.0.0" string-width "^5.0.0" +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -9501,6 +9590,11 @@ css.escape@^1.5.1: resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + csso@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" @@ -9842,6 +9936,11 @@ detect-port@^1.3.0: address "^1.0.1" debug "4" +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" @@ -9854,6 +9953,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + dns-over-http-resolver@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-2.1.0.tgz#e3f13182b46b60e0be2473f3fbfc4ec5bbfb9539" @@ -11072,6 +11176,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.5: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.12: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -13096,6 +13211,11 @@ jimp-compact@0.16.1: resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== +jiti@^1.18.2: + version "1.19.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1" + integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== + joi@^17.2.1: version "17.9.2" resolved "https://registry.yarnpkg.com/joi/-/joi-17.9.2.tgz#8b2e4724188369f55451aebd1d0b1d9482470690" @@ -13501,7 +13621,7 @@ libp2p@0.38.0: wherearewe "^2.0.0" xsalsa20 "^1.1.0" -lilconfig@2.1.0: +lilconfig@2.1.0, lilconfig@^2.0.5, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== @@ -14565,6 +14685,30 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== +next@^13.4.12: + version "13.4.12" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.12.tgz#809b21ea0aabbe88ced53252c88c4a5bd5af95df" + integrity sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw== + dependencies: + "@next/env" "13.4.12" + "@swc/helpers" "0.5.1" + busboy "1.6.0" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + watchpack "2.4.0" + zod "3.21.4" + optionalDependencies: + "@next/swc-darwin-arm64" "13.4.12" + "@next/swc-darwin-x64" "13.4.12" + "@next/swc-linux-arm64-gnu" "13.4.12" + "@next/swc-linux-arm64-musl" "13.4.12" + "@next/swc-linux-x64-gnu" "13.4.12" + "@next/swc-linux-x64-musl" "13.4.12" + "@next/swc-win32-arm64-msvc" "13.4.12" + "@next/swc-win32-ia32-msvc" "13.4.12" + "@next/swc-win32-x64-msvc" "13.4.12" + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -14715,6 +14859,11 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.12.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" @@ -15288,6 +15437,11 @@ pidtree@^0.6.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -15372,11 +15526,59 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== -postcss-value-parser@^4.2.0: +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + dependencies: + lilconfig "^2.0.5" + yaml "^2.1.1" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-selector-parser@^6.0.11: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^8.4.21: version "8.4.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" @@ -15386,6 +15588,15 @@ postcss@^8.4.21: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.23: + version "8.4.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" + integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^8.4.4: version "8.4.24" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" @@ -15982,6 +16193,13 @@ react@18.2.0, react@^18.2.0: dependencies: loose-envify "^1.1.0" +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -16296,7 +16514,7 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.13.1: +resolve@^1.1.7, resolve@^1.13.1, resolve@^1.22.2: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -17037,6 +17255,11 @@ stream-transform@^2.1.3: dependencies: mixme "^0.5.1" +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -17206,6 +17429,13 @@ structured-headers@^0.4.1: resolved "https://registry.yarnpkg.com/structured-headers/-/structured-headers-0.4.1.tgz#77abd9410622c6926261c09b9d16cf10592694d1" integrity sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg== +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + styleq@^0.1.2, styleq@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/styleq/-/styleq-0.1.3.tgz#8efb2892debd51ce7b31dc09c227ad920decab71" @@ -17224,6 +17454,19 @@ sucrase@^3.20.0: pirates "^4.0.1" ts-interface-checker "^0.1.9" +sucrase@^3.32.0: + version "3.34.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" + integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + sudo-prompt@9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.1.1.tgz#73853d729770392caec029e2470db9c221754db0" @@ -17330,6 +17573,34 @@ tabbable@^6.0.1: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.0.1.tgz#427a09b13c83ae41eed3e88abb76a4af28bde1a6" integrity sha512-SYJSIgeyXW7EuX1ytdneO5e8jip42oHWg9xl/o3oTYhmXusZVgiA+VlPvjIN+kHii9v90AmzTZEBcsEvuAY+TA== +tailwindcss@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.3.tgz#90da807393a2859189e48e9e7000e6880a736daf" + integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.12" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.18.2" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + tamagui@1.36.4: version "1.36.4" resolved "https://registry.yarnpkg.com/tamagui/-/tamagui-1.36.4.tgz#682b96806f945356abd34f7ea0a0ce1254edaeca" @@ -18357,7 +18628,7 @@ warn-once@^0.1.0: resolved "https://registry.yarnpkg.com/warn-once/-/warn-once-0.1.1.tgz#952088f4fb56896e73fd4e6a3767272a3fccce43" integrity sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q== -watchpack@^2.2.0: +watchpack@2.4.0, watchpack@^2.2.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== @@ -18671,6 +18942,11 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" + integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + yaml@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" @@ -18755,6 +19031,11 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +zod@3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== + zustand@^4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.3.6.tgz#ce7804eb75361af0461a2d0536b65461ec5de86f"