diff --git a/apps/events/package.json b/apps/events/package.json index 7b3a956c..bb50c5cd 100644 --- a/apps/events/package.json +++ b/apps/events/package.json @@ -14,34 +14,26 @@ "dependencies": { "@automerge/automerge": "^2.2.8", "@automerge/automerge-repo-react-hooks": "^1.2.1", - "effect": "^3.10.12", "@noble/hashes": "^1.5.0", "@privy-io/react-auth": "^1.88.4", "@radix-ui/react-avatar": "^1.1.1", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-slot": "^1.1.0", "@tanstack/react-router": "^1.62.1", - "@types/libsodium-wrappers": "^0.7.14", "@xmtp/react-sdk": "^9.0.0", "@xmtp/xmtp-js": "^13.0.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", + "effect": "^3.10.12", "ethers": "^6.13.3", "graph-framework": "workspace:*", - "libsodium-wrappers": "^0.7.15", "lucide-react": "^0.441.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-yjs": "^2.0.0", - "secsync": "^0.5.0", - "secsync-react-devtool": "^0.5.0", - "secsync-react-yjs": "^0.5.0", "tailwind-merge": "^2.5.3", "tailwindcss-animate": "^1.0.7", - "tinybase": "^5.3.0", "uuid": "^10.0.0", - "vite-plugin-node-polyfills": "^0.22.0", - "yjs": "^13.6.19" + "vite-plugin-node-polyfills": "^0.22.0" }, "devDependencies": { "@eslint/js": "^9.12.0", diff --git a/apps/events/src/Boot.tsx b/apps/events/src/Boot.tsx index b3515649..8ea78b06 100644 --- a/apps/events/src/Boot.tsx +++ b/apps/events/src/Boot.tsx @@ -1,7 +1,5 @@ import { PrivyProvider } from "@privy-io/react-auth"; import { RouterProvider, createRouter } from "@tanstack/react-router"; -import { ready } from "libsodium-wrappers"; -import { useEffect, useState } from "react"; import { routeTree } from "./routeTree.gen"; @@ -16,15 +14,7 @@ declare module "@tanstack/react-router" { } export function Boot() { - // only return the App component when the libsodium-wrappers is ready - const [isReady, setIsReady] = useState(false); - useEffect(() => { - ready.then(() => { - setIsReady(true); - }); - }, []); - - return isReady ? ( + return ( - ) : null; + ); } diff --git a/apps/events/src/components/events-page.tsx b/apps/events/src/components/events-page.tsx deleted file mode 100644 index 26232cfe..00000000 --- a/apps/events/src/components/events-page.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import { CalendarDays, MapPin } from "lucide-react"; - -import { Button } from "@/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@/components/ui/card"; -import { counter } from "@/lib/counter"; -import { useAddRowCallback, useStore, useTable } from "tinybase/ui-react"; -import * as Yjs from "yjs"; - -type Props = { - yDoc: Yjs.Doc; - spaceId: string; -}; - -export function EventsPage({ spaceId }: Props) { - const addEvent = useAddRowCallback("events", () => ({ - name: "New Event " + counter(), - date: "2023-12-31", - location: "New York, NY", - description: "A new event", - })); - - const store = useStore(); - const events = useTable("events"); - - return ( - - - - - Space {spaceId.substring(0, 1).toUpperCase()} Upcoming Events - - { - addEvent(); - }} - className="mb-8" - > - Add Event - - - {Object.entries(events).map(([id, event]) => ( - - - {event.name} - - - - { - // @ts-expect-error tinybase types issue - new Date(event.date).toLocaleDateString() - } - - - - {event.location} - - - - - {event.description} - - - Register Now - { - store?.delRow("events", id); - }} - > - Delete - - - - ))} - - - - - ); -} diff --git a/apps/events/src/routeTree.gen.ts b/apps/events/src/routeTree.gen.ts index 019c5c44..8eb6ef37 100644 --- a/apps/events/src/routeTree.gen.ts +++ b/apps/events/src/routeTree.gen.ts @@ -17,7 +17,6 @@ import { Route as Schema2Import } from './routes/schema2' import { Route as PlaygroundImport } from './routes/playground' import { Route as IndexImport } from './routes/index' import { Route as SpaceSpaceIdImport } from './routes/space/$spaceId' -import { Route as SpaceOldSpaceIdImport } from './routes/space-old/$spaceId' // Create Virtual Routes @@ -62,12 +61,6 @@ const SpaceSpaceIdRoute = SpaceSpaceIdImport.update({ getParentRoute: () => rootRoute, } as any) -const SpaceOldSpaceIdRoute = SpaceOldSpaceIdImport.update({ - id: '/space-old/$spaceId', - path: '/space-old/$spaceId', - getParentRoute: () => rootRoute, -} as any) - // Populate the FileRoutesByPath interface declare module '@tanstack/react-router' { @@ -107,13 +100,6 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof Login2LazyImport parentRoute: typeof rootRoute } - '/space-old/$spaceId': { - id: '/space-old/$spaceId' - path: '/space-old/$spaceId' - fullPath: '/space-old/$spaceId' - preLoaderRoute: typeof SpaceOldSpaceIdImport - parentRoute: typeof rootRoute - } '/space/$spaceId': { id: '/space/$spaceId' path: '/space/$spaceId' @@ -132,7 +118,6 @@ export interface FileRoutesByFullPath { '/schema2': typeof Schema2Route '/login': typeof LoginLazyRoute '/login2': typeof Login2LazyRoute - '/space-old/$spaceId': typeof SpaceOldSpaceIdRoute '/space/$spaceId': typeof SpaceSpaceIdRoute } @@ -142,7 +127,6 @@ export interface FileRoutesByTo { '/schema2': typeof Schema2Route '/login': typeof LoginLazyRoute '/login2': typeof Login2LazyRoute - '/space-old/$spaceId': typeof SpaceOldSpaceIdRoute '/space/$spaceId': typeof SpaceSpaceIdRoute } @@ -153,7 +137,6 @@ export interface FileRoutesById { '/schema2': typeof Schema2Route '/login': typeof LoginLazyRoute '/login2': typeof Login2LazyRoute - '/space-old/$spaceId': typeof SpaceOldSpaceIdRoute '/space/$spaceId': typeof SpaceSpaceIdRoute } @@ -165,7 +148,6 @@ export interface FileRouteTypes { | '/schema2' | '/login' | '/login2' - | '/space-old/$spaceId' | '/space/$spaceId' fileRoutesByTo: FileRoutesByTo to: @@ -174,7 +156,6 @@ export interface FileRouteTypes { | '/schema2' | '/login' | '/login2' - | '/space-old/$spaceId' | '/space/$spaceId' id: | '__root__' @@ -183,7 +164,6 @@ export interface FileRouteTypes { | '/schema2' | '/login' | '/login2' - | '/space-old/$spaceId' | '/space/$spaceId' fileRoutesById: FileRoutesById } @@ -194,7 +174,6 @@ export interface RootRouteChildren { Schema2Route: typeof Schema2Route LoginLazyRoute: typeof LoginLazyRoute Login2LazyRoute: typeof Login2LazyRoute - SpaceOldSpaceIdRoute: typeof SpaceOldSpaceIdRoute SpaceSpaceIdRoute: typeof SpaceSpaceIdRoute } @@ -204,7 +183,6 @@ const rootRouteChildren: RootRouteChildren = { Schema2Route: Schema2Route, LoginLazyRoute: LoginLazyRoute, Login2LazyRoute: Login2LazyRoute, - SpaceOldSpaceIdRoute: SpaceOldSpaceIdRoute, SpaceSpaceIdRoute: SpaceSpaceIdRoute, } @@ -223,7 +201,6 @@ export const routeTree = rootRoute "/schema2", "/login", "/login2", - "/space-old/$spaceId", "/space/$spaceId" ] }, @@ -242,9 +219,6 @@ export const routeTree = rootRoute "/login2": { "filePath": "login2.lazy.tsx" }, - "/space-old/$spaceId": { - "filePath": "space-old/$spaceId.tsx" - }, "/space/$spaceId": { "filePath": "space/$spaceId.tsx" } diff --git a/apps/events/src/routes/space-old/$spaceId.tsx b/apps/events/src/routes/space-old/$spaceId.tsx deleted file mode 100644 index 05d0a419..00000000 --- a/apps/events/src/routes/space-old/$spaceId.tsx +++ /dev/null @@ -1,156 +0,0 @@ -import { deserialize } from "@/lib/deserialize"; -import { isAuthenticated } from "@/lib/isAuthenticated"; -import { serialize } from "@/lib/serialize"; -import { createFileRoute, redirect } from "@tanstack/react-router"; -import sodium, { KeyPair } from "libsodium-wrappers"; -import { useEffect, useState } from "react"; -import { useYjsSync } from "secsync-react-yjs"; -import { createStore } from "tinybase"; -import { createYjsPersister } from "tinybase/persisters/persister-yjs"; -import { - Provider, - useCreatePersister, - useCreateStore, -} from "tinybase/ui-react"; -import { Inspector } from "tinybase/ui-react-inspector"; -import * as Yjs from "yjs"; -import { EventsPage } from "../../components/events-page"; - -const websocketEndpoint = "ws://localhost:3030"; - -export const Route = createFileRoute("/space-old/$spaceId")({ - component: SpaceWithKey, - beforeLoad: () => { - if (!isAuthenticated()) { - throw redirect({ - to: "/login", - search: { - // Use the current location to power a redirect after login - // (Do not use `router.state.resolvedLocation` as it can - // potentially lag behind the actual current location) - redirect: location.href, - }, - }); - } - }, -}); - -function SpaceWithKey() { - const { spaceId } = Route.useParams(); - // ensuring the Space component is unmounted and remounted when the spaceId changes - // this is needed since secsync and possibly tinybase don't handle the spaceId change well - return ; -} - -export function Space() { - const { spaceId } = Route.useParams(); - const spaceKey = sodium.from_base64( - "Wzrx2kLy6kd3FBqcNOOwaYQ2S1My9zofdX49CL-k_ko" - ); - - const store = useCreateStore(() => { - // Create the TinyBase Store and initialize the Store's data - return createStore().setTablesSchema({ - events: { - name: { type: "string" }, - date: { type: "string" }, - location: { type: "string" }, - description: { type: "string" }, - }, - }); - }); - - const [{ yDoc, pendingChanges }] = useState(() => { - console.log("create new yDoc"); - const yDoc = new Yjs.Doc(); - - // load full document - const serializedDoc = localStorage.getItem(`space:state:${spaceId}`); - if (serializedDoc) { - console.log("load serializedDoc", serializedDoc); - Yjs.applyUpdateV2(yDoc, deserialize(serializedDoc)); - } - - // loads the pendingChanges from localStorage - const pendingChanges = localStorage.getItem(`space:pending:${spaceId}`); - - return { - yDoc, - pendingChanges: pendingChanges ? deserialize(pendingChanges) : [], - }; - }); - - // update the document in localStorage after every change (could be debounced) - useEffect(() => { - const onUpdate = () => { - console.log("persist to localstorage"); - const fullYDoc = Yjs.encodeStateAsUpdateV2(yDoc); - localStorage.setItem(`space:state:${spaceId}`, serialize(fullYDoc)); - }; - yDoc.on("updateV2", onUpdate); - - return () => { - yDoc.off("updateV2", onUpdate); - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - useCreatePersister( - store, - (store) => - createYjsPersister(store, yDoc, "space", (error) => { - console.log("YjsPersister Error:", error); - }), - [], - async (persister) => { - // must be called before startAutoLoad to avoid a loading error in case the document is empty - await persister.startAutoLoad(); - await persister.startAutoSave(); - } - ); - - const [authorKeyPair] = useState(() => { - return sodium.crypto_sign_keypair(); - }); - - useYjsSync({ - yDoc, - pendingChanges, - // callback to store the pending changes in - onPendingChangesUpdated: (allChanges) => { - localStorage.setItem(`space:pending:${spaceId}`, serialize(allChanges)); - }, - documentId: spaceId, - signatureKeyPair: authorKeyPair, - websocketEndpoint, - websocketSessionKey: "your-secret-session-key", - getNewSnapshotData: async () => { - return { - data: Yjs.encodeStateAsUpdateV2(yDoc), - key: spaceKey, - publicData: {}, - }; - }, - getSnapshotKey: async () => { - return spaceKey; - }, - shouldSendSnapshot: ({ snapshotUpdatesCount }) => { - // create a new snapshot if the active snapshot has more than 100 updates - return snapshotUpdatesCount > 100; - }, - isValidClient: async () => { - return true; - }, - sodium, - logging: "debug", - }); - - return ( - - <> - - > - - - ); -} diff --git a/apps/server/package.json b/apps/server/package.json index ffb203c8..f8222feb 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -14,19 +14,12 @@ }, "dependencies": { "@prisma/client": "5.22.0", - "@trpc/server": "11.0.0-rc.417", - "@types/libsodium-wrappers": "^0.7.14", "cors": "^2.8.5", "dotenv": "^16.4.5", "effect": "^3.10.12", "express": "^5.0.1", "graph-framework-space-events": "workspace:*", - "isomorphic-ws": "^5.0.0", - "libsodium-wrappers": "^0.7.15", - "secsync": "^0.5.0", - "secsync-server": "^0.5.0", - "ws": "^8.17.1", - "zod": "^3.23.8" + "ws": "^8.17.1" }, "devDependencies": { "@types/cors": "^2.8.17", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 309e7f4f..904ee4ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,9 +38,6 @@ importers: '@tanstack/react-router': specifier: ^1.62.1 version: 1.79.0(@tanstack/router-generator@1.79.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/libsodium-wrappers': - specifier: ^0.7.14 - version: 0.7.14 '@xmtp/react-sdk': specifier: ^9.0.0 version: 9.0.0(@types/react@18.3.12)(@xmtp/content-type-primitives@1.0.1)(@xmtp/content-type-reaction@1.1.9)(@xmtp/content-type-remote-attachment@1.1.9(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))(@xmtp/content-type-reply@1.1.11)(@xmtp/xmtp-js@13.0.3(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10)(zod@3.23.8))(react@18.3.1) @@ -62,48 +59,27 @@ importers: graph-framework: specifier: workspace:* version: link:../../packages/graph-framework - libsodium-wrappers: - specifier: ^0.7.15 - version: 0.7.15 lucide-react: specifier: ^0.441.0 - version: 0.454.0(react@18.3.1) + version: 0.441.0(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) - react-yjs: - specifier: ^2.0.0 - version: 2.0.1(react@18.3.1)(yjs@13.6.20) - secsync: - specifier: ^0.5.0 - version: 0.5.0 - secsync-react-devtool: - specifier: ^0.5.0 - version: 0.5.0(react@18.3.1)(secsync@0.5.0)(yjs@13.6.20) - secsync-react-yjs: - specifier: ^0.5.0 - version: 0.5.0(@types/react@18.3.12)(react@18.3.1)(secsync@0.5.0)(xstate@5.18.1)(yjs@13.6.20) tailwind-merge: specifier: ^2.5.3 version: 2.5.4 tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.9.0)(typescript@5.6.3))) - tinybase: - specifier: ^5.3.0 - version: 5.3.8(@automerge/automerge-repo@1.2.1(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.9.0)(typescript@5.6.3))(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(yjs@13.6.20) uuid: specifier: ^10.0.0 - version: 11.0.2 + version: 10.0.0 vite-plugin-node-polyfills: specifier: ^0.22.0 version: 0.22.0(rollup@4.21.3)(vite@5.4.10(@types/node@22.9.0)) - yjs: - specifier: ^13.6.19 - version: 13.6.20 devDependencies: '@eslint/js': specifier: ^9.12.0 @@ -174,12 +150,6 @@ importers: '@prisma/client': specifier: 5.22.0 version: 5.22.0(prisma@5.22.0) - '@trpc/server': - specifier: 11.0.0-rc.417 - version: 11.0.0-rc.417 - '@types/libsodium-wrappers': - specifier: ^0.7.14 - version: 0.7.14 cors: specifier: ^2.8.5 version: 2.8.5 @@ -195,24 +165,9 @@ importers: graph-framework-space-events: specifier: workspace:* version: link:../../packages/graph-framework-space-events - isomorphic-ws: - specifier: ^5.0.0 - version: 5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - libsodium-wrappers: - specifier: ^0.7.15 - version: 0.7.15 - secsync: - specifier: ^0.5.0 - version: 0.5.0 - secsync-server: - specifier: ^0.5.0 - version: 0.5.0(secsync@0.5.0) ws: specifier: ^8.17.1 version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - zod: - specifier: ^3.23.8 - version: 3.23.8 devDependencies: '@types/cors': specifier: ^2.8.17 @@ -301,7 +256,7 @@ importers: version: link:../graph-framework-utils uuid: specifier: ^10.0.0 - version: 11.0.2 + version: 10.0.0 devDependencies: effect: specifier: ^3.10.12 @@ -369,7 +324,7 @@ importers: version: link:../graph-framework-utils uuid: specifier: ^10.0.0 - version: 11.0.2 + version: 10.0.0 devDependencies: effect: specifier: ^3.10.12 @@ -385,7 +340,7 @@ importers: dependencies: uuid: specifier: ^10.0.0 - version: 11.0.2 + version: 10.0.0 devDependencies: '@types/react': specifier: ^18.3.7 @@ -1900,9 +1855,6 @@ packages: '@types/react-dom': optional: true - '@trpc/server@11.0.0-rc.417': - resolution: {integrity: sha512-7zbL/ynMC66fqrrOE3/WTSaXJhijPgJ0ZN/Y0SPIx0ylk/DNsZVhGbR80IOKDvj2HJCeXE+eueGp03ziZHM8xw==} - '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -1963,9 +1915,6 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/libsodium-wrappers@0.7.14': - resolution: {integrity: sha512-5Kv68fXuXK0iDuUir1WPGw2R9fOZUlYlSAa0ztMcL0s0BfIDTqg9GXz8K30VJpPP3sxWhbolnQma2x+/TfkzDQ==} - '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} @@ -2264,15 +2213,6 @@ packages: resolution: {integrity: sha512-p8yCTW31y1lb6g+ZMHqRLnko6NolPX0+2rrFc6zJUB9XMH/D0qSzS3eIUnCt+9S1tIOXUyI7Shs5OxqCT7KhjA==} engines: {node: '>=20'} - '@xstate/react@4.1.2': - resolution: {integrity: sha512-orAidFrKCrU0ZwN5l/ABPlBfW2ziRDT2RrYoktRlZ0WRoLvA2E/uAC1JpZt43mCLtc8jrdwYCgJiqx1V8NvGTw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - xstate: ^5.18.1 - peerDependenciesMeta: - xstate: - optional: true - JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -2574,9 +2514,6 @@ packages: caniuse-lite@1.0.30001678: resolution: {integrity: sha512-RR+4U/05gNtps58PEBDZcPWTgEO2MBeoPZ96aQcjmfkBWRIDfN451fW2qyDA9/+HohLLIL5GqiMwA+IB1pWarw==} - canonicalize@2.0.0: - resolution: {integrity: sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==} - cbor-extract@2.2.0: resolution: {integrity: sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==} hasBin: true @@ -3556,14 +3493,6 @@ packages: peerDependencies: ws: '*' - isomorphic-ws@5.0.0: - resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} - peerDependencies: - ws: '*' - - isomorphic.js@0.2.5: - resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} - isows@1.0.3: resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==} peerDependencies: @@ -3661,25 +3590,9 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lib0@0.2.97: - resolution: {integrity: sha512-Q4d1ekgvufi9FiHkkL46AhecfNjznSL9MRNoJRQ76gBHS9OqU2ArfQK0FvBpuxgWeJeNI0LVgAYMIpsGeX4gYg==} - engines: {node: '>=16'} - hasBin: true - - lib0@0.2.98: - resolution: {integrity: sha512-XteTiNO0qEXqqweWx+b21p/fBnNHUA1NwAtJNJek1oPrewEZs2uiT4gWivHKr9GqCjDPAhchz0UQO8NwU3bBNA==} - engines: {node: '>=16'} - hasBin: true - libphonenumber-js@1.11.13: resolution: {integrity: sha512-LIJmXxgs7o1njVZPcX5fkbtcFgDnXXPvJQQBH5Ho/8+r6BFlJaEbJ+bAiaUGaChWUhFtvawwdmXIOz4wZBANCg==} - libsodium-wrappers@0.7.15: - resolution: {integrity: sha512-E4anqJQwcfiC6+Yrl01C1m8p99wEhLmJSs0VQqST66SbQXXBoaJY0pF4BNjRYa/sOQAxx6lXAaAFIlx+15tXJQ==} - - libsodium@0.7.15: - resolution: {integrity: sha512-sZwRknt/tUpE2AwzHq3jEyUU5uvIZHtSssktXq7owd++3CSgn8RGrv6UZJJBpP7+iBghBqe7Z06/2M31rI2NKw==} - lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -3740,8 +3653,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.454.0: - resolution: {integrity: sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==} + lucide-react@0.441.0: + resolution: {integrity: sha512-0vfExYtvSDhkC2lqg0zYVW1Uu9GsI4knuV9GP9by5z0Xhc4Zi5RejTxfz9LsjRmCyWVzHCJvxGKZWcRyvQCWVg==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc @@ -4355,12 +4268,6 @@ packages: peerDependencies: react: '>16.0.0' - react-yjs@2.0.1: - resolution: {integrity: sha512-x9XiGHnsuFZWHkw2upjmbjMQOirwvnrcbTsWt3rhPhh0Mb8MjtAP0eveyjS6s0EB0vVSs6BHItw1d6eVLH04Vg==} - peerDependencies: - react: ^18 || ^19 - yjs: ^13.6.16 - react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -4463,28 +4370,6 @@ packages: scrypt-js@3.0.1: resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - secsync-react-devtool@0.5.0: - resolution: {integrity: sha512-PDpL23bnm9zjXD/DfL7gfzWzZqoyDjvkUCnJ1yE3i4JfSaanqiCPJiy4GxTc/UFr/wyoSJvw8oC48/oV9MfjSw==} - peerDependencies: - react: '*' - secsync: '*' - yjs: ^13.6.14 - - secsync-react-yjs@0.5.0: - resolution: {integrity: sha512-UTTGIf3o50RCfsgVjASFYlqYp4j+OCfbDhAejFTipkyPqP868kheafKQpIA2bZU1gFPtmlKRoXW0DsYSPXK1yg==} - peerDependencies: - react: '*' - secsync: '*' - yjs: ^13.6.14 - - secsync-server@0.5.0: - resolution: {integrity: sha512-NkjfS5AVAF5qk6AFKJg6bRsDPUGvd/dYBavGSPDppJ8hv9DTg+6GhJc8bCDZ9Jr8uWnpLPyOcTMk6/oe4EIrAw==} - peerDependencies: - secsync: '*' - - secsync@0.5.0: - resolution: {integrity: sha512-OdIP660UH2FVFBMnPzruW2LIEKbRc2L7rdqcnI/LWu2M7p+dTA+OzCZd87a09MxL0xIDx/7tUYkmwJZknlwo0w==} - secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} @@ -4726,66 +4611,6 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - tinybase@5.3.8: - resolution: {integrity: sha512-GWcOgFFOpWbOQo1+0wvx7s+CPJK+RFdveeoqFUMSWeumYa0pN7OdbI6C8dTC8BRvGPsnUyY5GuUCZSYd6mRRIw==} - hasBin: true - peerDependencies: - '@automerge/automerge-repo': ^1.2.0 - '@electric-sql/pglite': ^0.2.12 - '@libsql/client': ^0.14.0 - '@powersync/common': ^1.20.1 - '@sqlite.org/sqlite-wasm': ^3.47.0-build1 - '@vlcn.io/crsqlite-wasm': ^0.16.0 - electric-sql: ^0.12.1 - expo: ^51.0.0 - expo-sqlite: ^14.0.5 - partykit: ^0.0.111 - partysocket: ^1.0.2 - postgres: ^3.4.5 - prettier: ^3.3.2 - react: ^18.2.0 - react-dom: ^18.2.0 - sqlite3: ^5.1.7 - ws: ^8.17.0 - yjs: ^13.6.20 - peerDependenciesMeta: - '@automerge/automerge-repo': - optional: true - '@electric-sql/pglite': - optional: true - '@libsql/client': - optional: true - '@powersync/common': - optional: true - '@sqlite.org/sqlite-wasm': - optional: true - '@vlcn.io/crsqlite-wasm': - optional: true - electric-sql: - optional: true - expo: - optional: true - expo-sqlite: - optional: true - partykit: - optional: true - partysocket: - optional: true - postgres: - optional: true - prettier: - optional: true - react: - optional: true - react-dom: - optional: true - sqlite3: - optional: true - ws: - optional: true - yjs: - optional: true - tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -5031,15 +4856,6 @@ packages: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} - use-isomorphic-layout-effect@1.1.2: - resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - use-sync-external-store@1.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: @@ -5071,10 +4887,6 @@ packages: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true - uuid@11.0.2: - resolution: {integrity: sha512-14FfcOJmqdjbBPdDjFQyk/SdT4NySW4eM0zcG+HqbHP5jzuH56xO3J1DGhgs/cEMCfwYi3HQI1gnTO62iaG+tQ==} - hasBin: true - uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -5399,12 +5211,6 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - y-protocols@1.0.6: - resolution: {integrity: sha512-vHRF2L6iT3rwj1jub/K5tYcTT/mEYDUppgNPXwp8fmLpui9f7Yeq3OEtTLVF012j39QnV+KEQpNqoN7CWU7Y9Q==} - engines: {node: '>=16.0.0', npm: '>=8.0.0'} - peerDependencies: - yjs: ^13.0.0 - y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -5428,10 +5234,6 @@ packages: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} - yjs@13.6.20: - resolution: {integrity: sha512-Z2YZI+SYqK7XdWlloI3lhMiKnCdFCVC4PchpdO+mCYwtiTwncjUbnRK9R1JmkNfdmHyDXuWN3ibJAt0wsqTbLQ==} - engines: {node: '>=16.0.0', npm: '>=8.0.0'} - yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -7162,8 +6964,6 @@ snapshots: '@types/react': 18.3.12 '@types/react-dom': 18.3.1 - '@trpc/server@11.0.0-rc.417': {} - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -7238,8 +7038,6 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/libsodium-wrappers@0.7.14': {} - '@types/mime@1.3.5': {} '@types/ms@0.7.34': {} @@ -7881,16 +7679,6 @@ snapshots: - utf-8-validate - zod - '@xstate/react@4.1.2(@types/react@18.3.12)(react@18.3.1)(xstate@5.18.1)': - dependencies: - react: 18.3.1 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.12)(react@18.3.1) - use-sync-external-store: 1.2.2(react@18.3.1) - optionalDependencies: - xstate: 5.18.1 - transitivePeerDependencies: - - '@types/react' - JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -8215,8 +8003,6 @@ snapshots: caniuse-lite@1.0.30001678: {} - canonicalize@2.0.0: {} - cbor-extract@2.2.0: dependencies: node-gyp-build-optional-packages: 5.1.1 @@ -9310,12 +9096,6 @@ snapshots: dependencies: ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - isomorphic-ws@5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): - dependencies: - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - - isomorphic.js@0.2.5: {} - isows@1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -9425,22 +9205,8 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lib0@0.2.97: - dependencies: - isomorphic.js: 0.2.5 - - lib0@0.2.98: - dependencies: - isomorphic.js: 0.2.5 - libphonenumber-js@1.11.13: {} - libsodium-wrappers@0.7.15: - dependencies: - libsodium: 0.7.15 - - libsodium@0.7.15: {} - lilconfig@2.1.0: {} lilconfig@3.1.2: {} @@ -9516,7 +9282,7 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.454.0(react@18.3.1): + lucide-react@0.441.0(react@18.3.1): dependencies: react: 18.3.1 @@ -10135,12 +9901,6 @@ snapshots: dependencies: react: 18.3.1 - react-yjs@2.0.1(react@18.3.1)(yjs@13.6.20): - dependencies: - lib0: 0.2.97 - react: 18.3.1 - yjs: 13.6.20 - react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -10280,37 +10040,6 @@ snapshots: scrypt-js@3.0.1: {} - secsync-react-devtool@0.5.0(react@18.3.1)(secsync@0.5.0)(yjs@13.6.20): - dependencies: - react: 18.3.1 - secsync: 0.5.0 - yjs: 13.6.20 - - secsync-react-yjs@0.5.0(@types/react@18.3.12)(react@18.3.1)(secsync@0.5.0)(xstate@5.18.1)(yjs@13.6.20): - dependencies: - '@xstate/react': 4.1.2(@types/react@18.3.12)(react@18.3.1)(xstate@5.18.1) - lib0: 0.2.97 - react: 18.3.1 - secsync: 0.5.0 - y-protocols: 1.0.6(yjs@13.6.20) - yjs: 13.6.20 - transitivePeerDependencies: - - '@types/react' - - xstate - - secsync-server@0.5.0(secsync@0.5.0): - dependencies: - canonicalize: 2.0.0 - libsodium-wrappers: 0.7.15 - secsync: 0.5.0 - - secsync@0.5.0: - dependencies: - canonicalize: 2.0.0 - libsodium-wrappers: 0.7.15 - xstate: 5.18.1 - zod: 3.23.8 - secure-json-parse@2.7.0: {} secure-password-utilities@0.2.1: {} @@ -10575,15 +10304,6 @@ snapshots: tiny-warning@1.0.3: {} - tinybase@5.3.8(@automerge/automerge-repo@1.2.1(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.9.0)(typescript@5.6.3))(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(yjs@13.6.20): - optionalDependencies: - '@automerge/automerge-repo': 1.2.1(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.9.0)(typescript@5.6.3) - prettier: 3.3.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - yjs: 13.6.20 - tinybench@2.9.0: {} tinycolor2@1.6.0: {} @@ -10782,12 +10502,6 @@ snapshots: punycode: 1.4.1 qs: 6.13.0 - use-isomorphic-layout-effect@1.1.2(@types/react@18.3.12)(react@18.3.1): - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.12 - use-sync-external-store@1.2.0(react@18.3.1): dependencies: react: 18.3.1 @@ -10816,8 +10530,6 @@ snapshots: uuid@10.0.0: {} - uuid@11.0.2: {} - uuid@8.3.2: {} uuid@9.0.1: {} @@ -11176,11 +10888,6 @@ snapshots: xtend@4.0.2: {} - y-protocols@1.0.6(yjs@13.6.20): - dependencies: - lib0: 0.2.97 - yjs: 13.6.20 - y18n@4.0.3: {} yaeti@0.0.6: {} @@ -11208,10 +10915,6 @@ snapshots: y18n: 4.0.3 yargs-parser: 18.1.3 - yjs@13.6.20: - dependencies: - lib0: 0.2.98 - yn@3.1.1: {} yocto-queue@0.1.0: {}
{event.description}