diff --git a/examples/actor-actions/src/frontend/App.tsx b/examples/actor-actions/frontend/App.tsx similarity index 98% rename from examples/actor-actions/src/frontend/App.tsx rename to examples/actor-actions/frontend/App.tsx index 98ca216895..4323f3468c 100644 --- a/examples/actor-actions/src/frontend/App.tsx +++ b/examples/actor-actions/frontend/App.tsx @@ -4,9 +4,9 @@ import type { CompanyProfile, EmployeeProfile, registry, -} from "../backend/registry"; +} from "../src/registry"; -const client = createClient("http://localhost:6420"); +const client = createClient(`${window.location.origin}/api/rivet`); export function App() { const [companyEin, setCompanyEin] = useState("12-3456789"); diff --git a/examples/actor-actions/src/frontend/index.html b/examples/actor-actions/frontend/index.html similarity index 100% rename from examples/actor-actions/src/frontend/index.html rename to examples/actor-actions/frontend/index.html diff --git a/examples/actor-actions/src/frontend/main.tsx b/examples/actor-actions/frontend/main.tsx similarity index 100% rename from examples/actor-actions/src/frontend/main.tsx rename to examples/actor-actions/frontend/main.tsx diff --git a/examples/actor-actions/package.json b/examples/actor-actions/package.json index 00ddbe6026..f2b9857b52 100644 --- a/examples/actor-actions/package.json +++ b/examples/actor-actions/package.json @@ -4,11 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -16,16 +20,18 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", - "vitest": "^3.1.1", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "vitest": "^3.1.1" }, "dependencies": { - "rivetkit": "workspace:*" + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "template": { "technologies": [ diff --git a/examples/actor-actions/src/backend/registry.ts b/examples/actor-actions/src/registry.ts similarity index 100% rename from examples/actor-actions/src/backend/registry.ts rename to examples/actor-actions/src/registry.ts diff --git a/examples/actor-actions/src/backend/server.ts b/examples/actor-actions/src/server.ts similarity index 54% rename from examples/actor-actions/src/backend/server.ts rename to examples/actor-actions/src/server.ts index aa0ee6ed61..508b28a999 100644 --- a/examples/actor-actions/src/backend/server.ts +++ b/examples/actor-actions/src/server.ts @@ -1,3 +1,3 @@ import { registry } from "./registry"; -registry.start(); +export default registry.serve(); diff --git a/examples/actor-actions/tests/actions.test.ts b/examples/actor-actions/tests/actions.test.ts index 9f80399a83..74f1b122b9 100644 --- a/examples/actor-actions/tests/actions.test.ts +++ b/examples/actor-actions/tests/actions.test.ts @@ -1,6 +1,6 @@ import { setupTest } from "rivetkit/test"; import { describe, expect, test } from "vitest"; -import { registry } from "../src/backend/registry"; +import { registry } from "../src/registry"; describe("company and employee actors", () => { test("create company actor with input and get profile", async (ctx) => { diff --git a/examples/actor-actions/tsconfig.build.json b/examples/actor-actions/tsconfig.build.json new file mode 100644 index 0000000000..78a4a178db --- /dev/null +++ b/examples/actor-actions/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*"] +} diff --git a/examples/actor-actions/tsup.config.ts b/examples/actor-actions/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/actor-actions/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/actor-actions/vite.config.ts b/examples/actor-actions/vite.config.ts index 19155bde35..ef2f55a297 100644 --- a/examples/actor-actions/vite.config.ts +++ b/examples/actor-actions/vite.config.ts @@ -3,9 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/ai-agent/src/frontend/App.tsx b/examples/ai-agent/frontend/App.tsx similarity index 91% rename from examples/ai-agent/src/frontend/App.tsx rename to examples/ai-agent/frontend/App.tsx index 3633f38f22..a109941a10 100644 --- a/examples/ai-agent/src/frontend/App.tsx +++ b/examples/ai-agent/frontend/App.tsx @@ -1,9 +1,9 @@ import { createRivetKit } from "@rivetkit/react"; import { useEffect, useState } from "react"; -import { registry } from "../backend/registry"; -import type { Message } from "../backend/types"; +import { registry } from "../src/registry"; +import type { Message } from "../src/types"; -const { useActor } = createRivetKit("http://localhost:8080"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); export function App() { const aiAgent = useActor({ diff --git a/examples/ai-agent/src/frontend/index.html b/examples/ai-agent/frontend/index.html similarity index 100% rename from examples/ai-agent/src/frontend/index.html rename to examples/ai-agent/frontend/index.html diff --git a/examples/ai-agent/src/frontend/main.tsx b/examples/ai-agent/frontend/main.tsx similarity index 100% rename from examples/ai-agent/src/frontend/main.tsx rename to examples/ai-agent/frontend/main.tsx diff --git a/examples/ai-agent/package.json b/examples/ai-agent/package.json index 2dd200df13..5119cf05a2 100644 --- a/examples/ai-agent/package.json +++ b/examples/ai-agent/package.json @@ -4,12 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", - "build": "vite build", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -17,7 +20,8 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", - "rivetkit": "workspace:*", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", @@ -25,10 +29,11 @@ }, "dependencies": { "@ai-sdk/openai": "^0.0.66", - "@rivetkit/react": "workspace:*", + "@rivetkit/react": "*", "ai": "^4.0.38", "react": "^18.2.0", "react-dom": "^18.2.0", + "rivetkit": "*", "zod": "^3.25.69" }, "stableVersion": "0.8.0", @@ -41,7 +46,7 @@ "real-time" ], "priority": 100, - "frontendPort": 3000 + "frontendPort": 5173 }, "license": "MIT" } diff --git a/examples/ai-agent/src/backend/my-tools.ts b/examples/ai-agent/src/my-tools.ts similarity index 100% rename from examples/ai-agent/src/backend/my-tools.ts rename to examples/ai-agent/src/my-tools.ts diff --git a/examples/ai-agent/src/backend/registry.ts b/examples/ai-agent/src/registry.ts similarity index 100% rename from examples/ai-agent/src/backend/registry.ts rename to examples/ai-agent/src/registry.ts diff --git a/examples/cursors-raw-websocket/src/backend/server.ts b/examples/ai-agent/src/server.ts similarity index 54% rename from examples/cursors-raw-websocket/src/backend/server.ts rename to examples/ai-agent/src/server.ts index aa0ee6ed61..508b28a999 100644 --- a/examples/cursors-raw-websocket/src/backend/server.ts +++ b/examples/ai-agent/src/server.ts @@ -1,3 +1,3 @@ import { registry } from "./registry"; -registry.start(); +export default registry.serve(); diff --git a/examples/ai-agent/src/backend/types.ts b/examples/ai-agent/src/types.ts similarity index 100% rename from examples/ai-agent/src/backend/types.ts rename to examples/ai-agent/src/types.ts diff --git a/examples/ai-agent/tsup.config.ts b/examples/ai-agent/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/ai-agent/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/ai-agent/vite.config.ts b/examples/ai-agent/vite.config.ts index 67a99069f4..ef2f55a297 100644 --- a/examples/ai-agent/vite.config.ts +++ b/examples/ai-agent/vite.config.ts @@ -3,9 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", - port: 3000, + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/ai-and-user-generated-actors-freestyle/src/frontend/App.css b/examples/ai-and-user-generated-actors-freestyle/frontend/App.css similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/src/frontend/App.css rename to examples/ai-and-user-generated-actors-freestyle/frontend/App.css diff --git a/examples/ai-and-user-generated-actors-freestyle/src/frontend/App.tsx b/examples/ai-and-user-generated-actors-freestyle/frontend/App.tsx similarity index 97% rename from examples/ai-and-user-generated-actors-freestyle/src/frontend/App.tsx rename to examples/ai-and-user-generated-actors-freestyle/frontend/App.tsx index 8c73808fc3..ad06e25663 100644 --- a/examples/ai-and-user-generated-actors-freestyle/src/frontend/App.tsx +++ b/examples/ai-and-user-generated-actors-freestyle/frontend/App.tsx @@ -1,9 +1,9 @@ import { useState } from "react"; import Editor, { type OnMount } from "@monaco-editor/react"; import "./App.css"; -import DEFAULT_REGISTRY from "../../template/src/backend/registry.ts?raw"; -import DEFAULT_APP from "../../template/src/frontend/App.tsx?raw"; -import { DeployRequest } from "../backend/utils"; +import DEFAULT_REGISTRY from "../template/src/registry.ts?raw"; +import DEFAULT_APP from "../template/frontend/App.tsx?raw"; +import { DeployRequest } from "../src/utils"; type DeploymentTarget = "cloud" | "selfHosted"; diff --git a/examples/ai-and-user-generated-actors-freestyle/src/frontend/index.html b/examples/ai-and-user-generated-actors-freestyle/frontend/index.html similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/src/frontend/index.html rename to examples/ai-and-user-generated-actors-freestyle/frontend/index.html diff --git a/examples/ai-and-user-generated-actors-freestyle/src/frontend/main.tsx b/examples/ai-and-user-generated-actors-freestyle/frontend/main.tsx similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/src/frontend/main.tsx rename to examples/ai-and-user-generated-actors-freestyle/frontend/main.tsx diff --git a/examples/ai-and-user-generated-actors-freestyle/package.json b/examples/ai-and-user-generated-actors-freestyle/package.json index aab38d1760..50d390fca1 100644 --- a/examples/ai-and-user-generated-actors-freestyle/package.json +++ b/examples/ai-and-user-generated-actors-freestyle/package.json @@ -5,10 +5,12 @@ "type": "module", "scripts": { "dev": "concurrently \"pnpm run dev:backend\" \"pnpm run dev:frontend\"", - "dev:backend": "tsx src/backend/index.ts", + "dev:backend": "tsx src/index.ts", "dev:frontend": "vite", - "build": "tsc && vite build", + "build:frontend": "vite build", + "build:backend": "tsup", "preview": "vite preview", + "build": "npm run build:backend && npm run build:frontend", "check-types": "tsc --noEmit", "test": "vitest", "test:run": "vitest run" diff --git a/examples/ai-and-user-generated-actors-freestyle/src/backend/deploy-with-rivet-cloud.ts b/examples/ai-and-user-generated-actors-freestyle/src/deploy-with-rivet-cloud.ts similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/src/backend/deploy-with-rivet-cloud.ts rename to examples/ai-and-user-generated-actors-freestyle/src/deploy-with-rivet-cloud.ts diff --git a/examples/ai-and-user-generated-actors-freestyle/src/backend/deploy-with-rivet-self-hosted.ts b/examples/ai-and-user-generated-actors-freestyle/src/deploy-with-rivet-self-hosted.ts similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/src/backend/deploy-with-rivet-self-hosted.ts rename to examples/ai-and-user-generated-actors-freestyle/src/deploy-with-rivet-self-hosted.ts diff --git a/examples/ai-and-user-generated-actors-freestyle/src/backend/index.ts b/examples/ai-and-user-generated-actors-freestyle/src/index.ts similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/src/backend/index.ts rename to examples/ai-and-user-generated-actors-freestyle/src/index.ts diff --git a/examples/ai-and-user-generated-actors-freestyle/src/backend/utils.ts b/examples/ai-and-user-generated-actors-freestyle/src/utils.ts similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/src/backend/utils.ts rename to examples/ai-and-user-generated-actors-freestyle/src/utils.ts diff --git a/examples/ai-and-user-generated-actors-freestyle/template/src/frontend/App.tsx b/examples/ai-and-user-generated-actors-freestyle/template/frontend/App.tsx similarity index 97% rename from examples/ai-and-user-generated-actors-freestyle/template/src/frontend/App.tsx rename to examples/ai-and-user-generated-actors-freestyle/template/frontend/App.tsx index 446cfeb559..d2ae558d2c 100644 --- a/examples/ai-and-user-generated-actors-freestyle/template/src/frontend/App.tsx +++ b/examples/ai-and-user-generated-actors-freestyle/template/frontend/App.tsx @@ -1,6 +1,6 @@ import { createRivetKit } from "@rivetkit/react"; import { useEffect, useState } from "react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; console.log("Environment variables:", { VITE_RIVET_ENDPOINT: import.meta.env.VITE_RIVET_ENDPOINT, diff --git a/examples/ai-and-user-generated-actors-freestyle/template/src/frontend/index.html b/examples/ai-and-user-generated-actors-freestyle/template/frontend/index.html similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/template/src/frontend/index.html rename to examples/ai-and-user-generated-actors-freestyle/template/frontend/index.html diff --git a/examples/ai-and-user-generated-actors-freestyle/template/src/frontend/main.tsx b/examples/ai-and-user-generated-actors-freestyle/template/frontend/main.tsx similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/template/src/frontend/main.tsx rename to examples/ai-and-user-generated-actors-freestyle/template/frontend/main.tsx diff --git a/examples/ai-and-user-generated-actors-freestyle/template/src/backend/server.ts b/examples/ai-and-user-generated-actors-freestyle/template/src/backend/server.ts deleted file mode 100644 index 3f7712b695..0000000000 --- a/examples/ai-and-user-generated-actors-freestyle/template/src/backend/server.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Hono } from "hono"; -import { serveStatic, upgradeWebSocket } from "hono/deno"; -import { registry } from "./registry.ts"; - -globalThis.addEventListener("unhandledrejection", (event) => { - console.error("Unhandled promise rejection:", event.reason); - event.preventDefault(); -}); - -const serverOutput = registry.start({ - inspector: { - enabled: true, - }, - runnerKind: "serverless", - disableDefaultServer: true, - noWelcome: true, - runEngine: false, - autoConfigureServerless: false, - basePath: "/api/rivet", - getUpgradeWebSocket: () => upgradeWebSocket, -}); - -const app = new Hono(); - -app.use("/api/rivet/*", async (c) => { - return await serverOutput.fetch(c.req.raw); -}); - -app.use("*", serveStatic({ root: "./public" })); - -// @ts-expect-error -Deno.serve(app.fetch); diff --git a/examples/ai-and-user-generated-actors-freestyle/template/src/backend/registry.ts b/examples/ai-and-user-generated-actors-freestyle/template/src/registry.ts similarity index 100% rename from examples/ai-and-user-generated-actors-freestyle/template/src/backend/registry.ts rename to examples/ai-and-user-generated-actors-freestyle/template/src/registry.ts diff --git a/examples/ai-and-user-generated-actors-freestyle/template/src/server.ts b/examples/ai-and-user-generated-actors-freestyle/template/src/server.ts new file mode 100644 index 0000000000..aae713ea36 --- /dev/null +++ b/examples/ai-and-user-generated-actors-freestyle/template/src/server.ts @@ -0,0 +1,19 @@ +import { Hono } from "hono"; +import { serveStatic } from "hono/deno"; +import { registry } from "./registry"; + +globalThis.addEventListener("unhandledrejection", (event) => { + console.error("Unhandled promise rejection:", event.reason); + event.preventDefault(); +}); + +const app = new Hono(); + +app.use("/api/rivet/*", async (c) => { + return await registry.fetch(c.req.raw); +}); + +app.use("*", serveStatic({ root: "./public" })); + +// @ts-expect-error +Deno.serve(app.fetch); diff --git a/examples/ai-and-user-generated-actors-freestyle/template/vite.config.ts b/examples/ai-and-user-generated-actors-freestyle/template/vite.config.ts index ac1e033460..17770cce32 100644 --- a/examples/ai-and-user-generated-actors-freestyle/template/vite.config.ts +++ b/examples/ai-and-user-generated-actors-freestyle/template/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", build: { outDir: "../../public", }, diff --git a/examples/ai-and-user-generated-actors-freestyle/tests/deploy.test.ts b/examples/ai-and-user-generated-actors-freestyle/tests/deploy.test.ts index 39093f2705..263a4680a7 100644 --- a/examples/ai-and-user-generated-actors-freestyle/tests/deploy.test.ts +++ b/examples/ai-and-user-generated-actors-freestyle/tests/deploy.test.ts @@ -1,9 +1,9 @@ import { readFileSync } from "node:fs"; import { join } from "node:path"; import { beforeAll, describe, expect, it } from "vitest"; -import { deployWithRivetCloud } from "../src/backend/deploy-with-rivet-cloud"; -import { deployWithRivetSelfHosted } from "../src/backend/deploy-with-rivet-self-hosted"; -import type { DeployRequest, LogCallback } from "../src/backend/utils"; +import { deployWithRivetCloud } from "../src/deploy-with-rivet-cloud"; +import { deployWithRivetSelfHosted } from "../src/deploy-with-rivet-self-hosted"; +import type { DeployRequest, LogCallback } from "../src/utils"; // Simple log callback for tests const testLog: LogCallback = async (message: string) => { diff --git a/examples/ai-and-user-generated-actors-freestyle/tsup.config.ts b/examples/ai-and-user-generated-actors-freestyle/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/ai-and-user-generated-actors-freestyle/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/ai-and-user-generated-actors-freestyle/vite.config.ts b/examples/ai-and-user-generated-actors-freestyle/vite.config.ts index 75cbbebbaa..de60758d9a 100644 --- a/examples/ai-and-user-generated-actors-freestyle/vite.config.ts +++ b/examples/ai-and-user-generated-actors-freestyle/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", build: { emptyOutDir: true, }, @@ -11,10 +11,7 @@ export default defineConfig({ host: "0.0.0.0", port: 5173, proxy: { - "/api": { - target: "http://localhost:3001", - changeOrigin: true, - }, + "/api/": "http://localhost:3001", }, }, }); diff --git a/examples/chat-room-next-js/package.json b/examples/chat-room-next-js/package.json index 76ca972214..bd23c27071 100644 --- a/examples/chat-room-next-js/package.json +++ b/examples/chat-room-next-js/package.json @@ -13,8 +13,8 @@ "react": "19.1.0", "react-dom": "19.1.0", "next": "16.1.1", - "@rivetkit/next-js": "workspace:*", - "rivetkit": "workspace:*" + "@rivetkit/next-js": "*", + "rivetkit": "*" }, "devDependencies": { "typescript": "^5", diff --git a/examples/chat-room/frontend/App.tsx b/examples/chat-room/frontend/App.tsx index 53313c7e06..2e2f2d3c6e 100644 --- a/examples/chat-room/frontend/App.tsx +++ b/examples/chat-room/frontend/App.tsx @@ -1,6 +1,6 @@ import { createRivetKit } from "@rivetkit/react"; import { useEffect, useState } from "react"; -import type { Message, registry } from "../src/server"; +import type { Message, registry } from "../src/actors"; const { useActor } = createRivetKit("http://localhost:5173/api/rivet"); diff --git a/examples/chat-room/package.json b/examples/chat-room/package.json index e99c200f48..cbfbcc55a3 100644 --- a/examples/chat-room/package.json +++ b/examples/chat-room/package.json @@ -4,15 +4,18 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "npx srvx --import tsx src/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", "dev:cli": "tsx src/scripts/cli.ts", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend", + "start": "srvx --static=dist dist/server.js" }, "devDependencies": { - "@rivetkit/react": "workspace:*", "@types/node": "^22.13.9", "@types/prompts": "^2", "@types/react": "^18.2.0", @@ -20,16 +23,19 @@ "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", "prompts": "^2.4.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", "vitest": "^3.1.1" }, "dependencies": { + "@rivetkit/react": "*", "hono": "^4.11.3", - "rivetkit": "workspace:*" + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "stableVersion": "0.8.0", "template": { diff --git a/examples/chat-room/src/server.ts b/examples/chat-room/src/server.ts index 32f31803ca..6690c51a3f 100644 --- a/examples/chat-room/src/server.ts +++ b/examples/chat-room/src/server.ts @@ -1,15 +1,4 @@ import { registry } from "./actors"; -// OPTION A: export default registry.serve(); -// // OPTION B: -// import { Hono } from "hono"; -// -// const app = new Hono(); -// -// app.get("/api/foo", (c) => c.text("bar")); -// -// app.all("/api/rivet/*", (c) => registry.handler(c.req.raw)); -// -// export default app; diff --git a/examples/chat-room/test-e2e.ts b/examples/chat-room/test-e2e.ts deleted file mode 100644 index e9d04c77be..0000000000 --- a/examples/chat-room/test-e2e.ts +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env tsx - -import { createClient } from "rivetkit/client"; -import type { registry } from "./src/actors"; - -async function main() { - console.log("=== Chat Room E2E Test ===\n"); - - // Create client pointing to serverless handler - const client = createClient("http://localhost:3000/api/rivet"); - - // Get or create a test room - console.log("1. Getting/creating chat room 'test-e2e-room'..."); - const chatRoom = client.chatRoom.getOrCreate(["test-e2e-room"]); - - // Fetch initial history - console.log("2. Fetching message history..."); - const initialHistory = await chatRoom.getHistory(); - console.log(` Initial history has ${initialHistory.length} messages`); - - // Send a message - console.log("3. Sending message..."); - const message1 = await chatRoom.sendMessage("TestUser", "Hello from e2e test!"); - console.log(` Sent: [${message1.sender}] ${message1.text} (ts: ${message1.timestamp})`); - - // Send another message - console.log("4. Sending second message..."); - const message2 = await chatRoom.sendMessage("TestUser2", "Reply from test!"); - console.log(` Sent: [${message2.sender}] ${message2.text} (ts: ${message2.timestamp})`); - - // Get updated history - console.log("5. Fetching updated history..."); - const updatedHistory = await chatRoom.getHistory(); - console.log(` Updated history has ${updatedHistory.length} messages:`); - for (const msg of updatedHistory) { - console.log(` - [${msg.sender}] ${msg.text}`); - } - - console.log("\nāœ… E2E test completed successfully!"); -} - -main().catch((err) => { - console.error("āŒ E2E test failed:", err); - process.exit(1); -}); diff --git a/examples/chat-room/tsconfig.json b/examples/chat-room/tsconfig.json index d4efe57114..ebf8f3a6e1 100644 --- a/examples/chat-room/tsconfig.json +++ b/examples/chat-room/tsconfig.json @@ -39,5 +39,5 @@ /* Skip type checking all .d.ts files. */ "skipLibCheck": true }, - "include": ["src/**/*", "actors/**/*", "tests/**/*"] + "include": ["src/**/*", "tests/**/*"] } diff --git a/examples/chat-room/tsup.config.ts b/examples/chat-room/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/chat-room/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/chat-room/vite.config.ts b/examples/chat-room/vite.config.ts index 7f083fddf8..dd96ac2cdf 100644 --- a/examples/chat-room/vite.config.ts +++ b/examples/chat-room/vite.config.ts @@ -8,7 +8,7 @@ export default defineConfig({ host: "0.0.0.0", port: 5173, proxy: { - "/api": "http://localhost:3000", + "/api/rivet/": "http://localhost:3000", }, }, }); diff --git a/examples/cloudflare-workers-hono/package.json b/examples/cloudflare-workers-hono/package.json index eb3379765d..71e3c275b4 100644 --- a/examples/cloudflare-workers-hono/package.json +++ b/examples/cloudflare-workers-hono/package.json @@ -7,18 +7,19 @@ "dev": "wrangler dev", "deploy": "wrangler deploy", "check-types": "tsc --noEmit", - "client": "tsx scripts/client.ts" + "client": "tsx scripts/client.ts", + "build": "tsc" }, "devDependencies": { "@cloudflare/workers-types": "^4.20250129.0", - "rivetkit": "workspace:*", + "rivetkit": "*", "@types/node": "^22.13.9", "tsx": "^3.12.7", "typescript": "^5.5.2", "wrangler": "^4.22.0" }, "dependencies": { - "@rivetkit/cloudflare-workers": "workspace:*", + "@rivetkit/cloudflare-workers": "*", "hono": "^4.8.0" }, "stableVersion": "0.8.0", diff --git a/examples/cloudflare-workers-inline-client/package.json b/examples/cloudflare-workers-inline-client/package.json index 43b52b24be..6bec8cd467 100644 --- a/examples/cloudflare-workers-inline-client/package.json +++ b/examples/cloudflare-workers-inline-client/package.json @@ -8,7 +8,8 @@ "deploy": "wrangler deploy", "check-types": "tsc --noEmit", "client-http": "tsx scripts/client-http.ts", - "client-rivetkit": "tsx scripts/client-rivetkit.ts" + "client-rivetkit": "tsx scripts/client-rivetkit.ts", + "build": "tsc" }, "devDependencies": { "@cloudflare/workers-types": "^4.20250129.0", @@ -18,8 +19,8 @@ "wrangler": "^4.22.0" }, "dependencies": { - "rivetkit": "workspace:*", - "@rivetkit/cloudflare-workers": "workspace:*" + "rivetkit": "*", + "@rivetkit/cloudflare-workers": "*" }, "stableVersion": "0.8.0", "template": { diff --git a/examples/cloudflare-workers/package.json b/examples/cloudflare-workers/package.json index a6f3749b04..dee066e6ca 100644 --- a/examples/cloudflare-workers/package.json +++ b/examples/cloudflare-workers/package.json @@ -7,7 +7,8 @@ "dev": "wrangler dev", "deploy": "wrangler deploy", "check-types": "tsc --noEmit", - "client": "tsx scripts/client.ts" + "client": "tsx scripts/client.ts", + "build": "tsc" }, "devDependencies": { "@cloudflare/workers-types": "^4.20250129.0", @@ -17,8 +18,8 @@ "wrangler": "^4.22.0" }, "dependencies": { - "rivetkit": "workspace:*", - "@rivetkit/cloudflare-workers": "workspace:*" + "rivetkit": "*", + "@rivetkit/cloudflare-workers": "*" }, "stableVersion": "0.8.0", "template": { diff --git a/examples/cross-actor-actions/src/frontend/App.tsx b/examples/cross-actor-actions/frontend/App.tsx similarity index 97% rename from examples/cross-actor-actions/src/frontend/App.tsx rename to examples/cross-actor-actions/frontend/App.tsx index 64a643addf..0e85bd01dd 100644 --- a/examples/cross-actor-actions/src/frontend/App.tsx +++ b/examples/cross-actor-actions/frontend/App.tsx @@ -1,8 +1,8 @@ import { createClient } from "rivetkit/client"; import { useEffect, useState } from "react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; -const client = createClient("http://localhost:6420"); +const client = createClient(`${window.location.origin}/api/rivet`); interface ItemStock { itemName: string; diff --git a/examples/cross-actor-actions/src/frontend/index.html b/examples/cross-actor-actions/frontend/index.html similarity index 100% rename from examples/cross-actor-actions/src/frontend/index.html rename to examples/cross-actor-actions/frontend/index.html diff --git a/examples/cross-actor-actions/src/frontend/main.tsx b/examples/cross-actor-actions/frontend/main.tsx similarity index 100% rename from examples/cross-actor-actions/src/frontend/main.tsx rename to examples/cross-actor-actions/frontend/main.tsx diff --git a/examples/cross-actor-actions/package.json b/examples/cross-actor-actions/package.json index 1eaea1dc1c..1ab7072b09 100644 --- a/examples/cross-actor-actions/package.json +++ b/examples/cross-actor-actions/package.json @@ -4,11 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -16,16 +20,18 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", - "vitest": "^3.1.1", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "vitest": "^3.1.1" }, "dependencies": { - "rivetkit": "workspace:*" + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "template": { "technologies": [ diff --git a/examples/cross-actor-actions/src/backend/registry.ts b/examples/cross-actor-actions/src/registry.ts similarity index 100% rename from examples/cross-actor-actions/src/backend/registry.ts rename to examples/cross-actor-actions/src/registry.ts diff --git a/examples/ai-agent/src/backend/server.ts b/examples/cross-actor-actions/src/server.ts similarity index 54% rename from examples/ai-agent/src/backend/server.ts rename to examples/cross-actor-actions/src/server.ts index aa0ee6ed61..508b28a999 100644 --- a/examples/ai-agent/src/backend/server.ts +++ b/examples/cross-actor-actions/src/server.ts @@ -1,3 +1,3 @@ import { registry } from "./registry"; -registry.start(); +export default registry.serve(); diff --git a/examples/cross-actor-actions/tsup.config.ts b/examples/cross-actor-actions/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/cross-actor-actions/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/cross-actor-actions/vite.config.ts b/examples/cross-actor-actions/vite.config.ts index 19155bde35..ef2f55a297 100644 --- a/examples/cross-actor-actions/vite.config.ts +++ b/examples/cross-actor-actions/vite.config.ts @@ -3,9 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/cursors-raw-websocket/src/frontend/App.tsx b/examples/cursors-raw-websocket/frontend/App.tsx similarity index 99% rename from examples/cursors-raw-websocket/src/frontend/App.tsx rename to examples/cursors-raw-websocket/frontend/App.tsx index c79fbb3573..923fc77d22 100644 --- a/examples/cursors-raw-websocket/src/frontend/App.tsx +++ b/examples/cursors-raw-websocket/frontend/App.tsx @@ -4,7 +4,7 @@ import type { CursorPosition, TextLabel, registry, -} from "../backend/registry"; +} from "../src/registry"; const rivetUrl = "http://localhost:6420"; @@ -89,6 +89,7 @@ export function App() { const actorId = await client.cursorRoom.getOrCreate(roomId).resolve(); console.log("found actor", actorId); + // FIXME: derive ws url from rivet url, should use metadata and `clientEndpoint` const wsOrigin = rivetUrl.replace(/^http/, "ws"); const wsUrl = `${wsOrigin}/gateway/${actorId}/websocket?sessionId=${encodeURIComponent(sessionId)}`; diff --git a/examples/cursors-raw-websocket/src/frontend/index.html b/examples/cursors-raw-websocket/frontend/index.html similarity index 100% rename from examples/cursors-raw-websocket/src/frontend/index.html rename to examples/cursors-raw-websocket/frontend/index.html diff --git a/examples/cursors-raw-websocket/src/frontend/main.tsx b/examples/cursors-raw-websocket/frontend/main.tsx similarity index 100% rename from examples/cursors-raw-websocket/src/frontend/main.tsx rename to examples/cursors-raw-websocket/frontend/main.tsx diff --git a/examples/cursors-raw-websocket/package.json b/examples/cursors-raw-websocket/package.json index 30c53409b3..37228630a4 100644 --- a/examples/cursors-raw-websocket/package.json +++ b/examples/cursors-raw-websocket/package.json @@ -4,11 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -18,16 +22,18 @@ "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", "prompts": "^2.4.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", - "vitest": "^3.1.1", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "vitest": "^3.1.1" }, "dependencies": { - "rivetkit": "workspace:*" + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "stableVersion": "0.8.0", "template": { diff --git a/examples/cursors-raw-websocket/src/backend/registry.ts b/examples/cursors-raw-websocket/src/registry.ts similarity index 100% rename from examples/cursors-raw-websocket/src/backend/registry.ts rename to examples/cursors-raw-websocket/src/registry.ts diff --git a/examples/cross-actor-actions/src/backend/server.ts b/examples/cursors-raw-websocket/src/server.ts similarity index 54% rename from examples/cross-actor-actions/src/backend/server.ts rename to examples/cursors-raw-websocket/src/server.ts index aa0ee6ed61..508b28a999 100644 --- a/examples/cross-actor-actions/src/backend/server.ts +++ b/examples/cursors-raw-websocket/src/server.ts @@ -1,3 +1,3 @@ import { registry } from "./registry"; -registry.start(); +export default registry.serve(); diff --git a/examples/cursors-raw-websocket/tsup.config.ts b/examples/cursors-raw-websocket/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/cursors-raw-websocket/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/cursors-raw-websocket/vite.config.ts b/examples/cursors-raw-websocket/vite.config.ts index 19155bde35..3fcb847cde 100644 --- a/examples/cursors-raw-websocket/vite.config.ts +++ b/examples/cursors-raw-websocket/vite.config.ts @@ -3,9 +3,22 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", port: 5173, + proxy: { + "/api/rivet/gateway/": { + target: "http://localhost:3000", + rewriteWsOrigin: true, + ws: true, + }, + "/api/rivet/": "http://localhost:3000", + + }, }, }); diff --git a/examples/cursors/src/frontend/App.tsx b/examples/cursors/frontend/App.tsx similarity index 98% rename from examples/cursors/src/frontend/App.tsx rename to examples/cursors/frontend/App.tsx index fc7d5eb72a..6285f42ed4 100644 --- a/examples/cursors/src/frontend/App.tsx +++ b/examples/cursors/frontend/App.tsx @@ -4,9 +4,9 @@ import type { CursorPosition, TextLabel, registry, -} from "../backend/registry"; +} from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:6420"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); // Generate a random user ID const generateUserId = () => diff --git a/examples/cursors/src/frontend/index.html b/examples/cursors/frontend/index.html similarity index 100% rename from examples/cursors/src/frontend/index.html rename to examples/cursors/frontend/index.html diff --git a/examples/cursors/src/frontend/main.tsx b/examples/cursors/frontend/main.tsx similarity index 100% rename from examples/cursors/src/frontend/main.tsx rename to examples/cursors/frontend/main.tsx diff --git a/examples/cursors/package.json b/examples/cursors/package.json index d61b8b4ac3..d2ed4db8fd 100644 --- a/examples/cursors/package.json +++ b/examples/cursors/package.json @@ -4,11 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -18,16 +22,18 @@ "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", "prompts": "^2.4.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", - "vitest": "^3.1.1", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "vitest": "^3.1.1" }, "dependencies": { - "rivetkit": "workspace:*" + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "stableVersion": "0.8.0", "template": { diff --git a/examples/cursors/src/backend/server.ts b/examples/cursors/src/backend/server.ts deleted file mode 100644 index 4fc37cf4bc..0000000000 --- a/examples/cursors/src/backend/server.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { registry } from "./registry"; - -registry.start(); - diff --git a/examples/cursors/src/backend/registry.ts b/examples/cursors/src/registry.ts similarity index 100% rename from examples/cursors/src/backend/registry.ts rename to examples/cursors/src/registry.ts diff --git a/examples/cursors/src/server.ts b/examples/cursors/src/server.ts new file mode 100644 index 0000000000..508b28a999 --- /dev/null +++ b/examples/cursors/src/server.ts @@ -0,0 +1,3 @@ +import { registry } from "./registry"; + +export default registry.serve(); diff --git a/examples/cursors/tsup.config.ts b/examples/cursors/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/cursors/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/cursors/vite.config.ts b/examples/cursors/vite.config.ts index 19155bde35..ef2f55a297 100644 --- a/examples/cursors/vite.config.ts +++ b/examples/cursors/vite.config.ts @@ -3,9 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/custom-serverless/package.json b/examples/custom-serverless/package.json index b6d96e0b27..97587513a9 100644 --- a/examples/custom-serverless/package.json +++ b/examples/custom-serverless/package.json @@ -4,18 +4,23 @@ "private": true, "type": "module", "scripts": { - "dev": "tsx src/server.ts", + "dev": "srvx --import tsx src/server.ts", "check-types": "tsc --noEmit", "connect": "tsx scripts/connect.ts", - "test": "vitest run" + "test": "vitest run", + "build": "tsup", + "start": "srvx dist/server.js" }, "devDependencies": { - "rivetkit": "workspace:*", "@types/node": "^22.13.9", + "srvx": "^0.10.0", "tsx": "^3.12.7", "typescript": "^5.7.3", "vitest": "^3.1.1" }, + "dependencies": { + "rivetkit": "*" + }, "stableVersion": "0.8.0", "template": { "technologies": [ diff --git a/examples/custom-serverless/scripts/connect.ts b/examples/custom-serverless/scripts/connect.ts index 5137d6f759..2d19e1699a 100644 --- a/examples/custom-serverless/scripts/connect.ts +++ b/examples/custom-serverless/scripts/connect.ts @@ -2,7 +2,7 @@ import { createClient } from "rivetkit/client"; import type { Registry } from "../src/registry"; async function main() { - const client = createClient("http://localhost:6420"); + const client = createClient("http://localhost:3000/api/rivet"); const counter = client.counter.getOrCreate(); diff --git a/examples/custom-serverless/src/server.ts b/examples/custom-serverless/src/server.ts index 9dc17c0304..508b28a999 100644 --- a/examples/custom-serverless/src/server.ts +++ b/examples/custom-serverless/src/server.ts @@ -1,6 +1,3 @@ import { registry } from "./registry"; -registry.start({ - runnerKind: "serverless", - autoConfigureServerless: { url: "http://localhost:8080" }, -}); +export default registry.serve(); diff --git a/examples/custom-serverless/tsup.config.ts b/examples/custom-serverless/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/custom-serverless/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/deno/package.json b/examples/deno/package.json index d324e9c6d0..365eed1aee 100644 --- a/examples/deno/package.json +++ b/examples/deno/package.json @@ -7,7 +7,8 @@ "scripts": { "dev": "deno run --allow-all src/server.ts", "check-types": "command -v deno >/dev/null 2>&1 && deno task check-types || echo 'Skipping deno check-types (deno not installed)'", - "connect": "deno run --allow-all scripts/connect.ts" + "connect": "deno run --allow-all scripts/connect.ts", + "build": "tsc" }, "devDependencies": { "@types/deno": "^2.3.0", @@ -16,7 +17,7 @@ "stableVersion": "0.8.0", "dependencies": { "hono": "4.9.8", - "rivetkit": "workspace:*" + "rivetkit": "*" }, "template": { "technologies": [ diff --git a/examples/deno/src/server.ts b/examples/deno/src/server.ts index 40f8a5440c..5f15f80492 100644 --- a/examples/deno/src/server.ts +++ b/examples/deno/src/server.ts @@ -1,13 +1,3 @@ -import { upgradeWebSocket } from "hono/deno"; import { registry } from "./registry.ts"; -const { fetch } = registry.start({ - // Deno requires using Deno.serve - disableDefaultServer: true, - overrideServerAddress: "http://localhost:8080", - // Specify Deno-specific upgradeWebSocket - getUpgradeWebSocket: () => upgradeWebSocket, -}); - -// Start server -Deno.serve({ port: 8080 }, fetch); +export default registry.serve(); diff --git a/examples/drizzle/package.json b/examples/drizzle/package.json index 15baec4417..85b560980a 100644 --- a/examples/drizzle/package.json +++ b/examples/drizzle/package.json @@ -5,16 +5,17 @@ "type": "module", "scripts": { "dev": "tsx --watch src/server.ts", - "check-types": "tsc --noEmit" + "check-types": "tsc --noEmit", + "build": "tsc" }, "devDependencies": { "@types/node": "^22.13.9", - "rivetkit": "workspace:*", + "rivetkit": "*", "tsx": "^3.12.7", "typescript": "^5.5.2" }, "dependencies": { - "@rivetkit/db": "workspace:*", + "@rivetkit/db": "*", "drizzle-kit": "^0.31.2", "drizzle-orm": "^0.44.2" }, diff --git a/examples/elysia/package.json b/examples/elysia/package.json index 71158c3aa2..2f71528e90 100644 --- a/examples/elysia/package.json +++ b/examples/elysia/package.json @@ -5,15 +5,17 @@ "type": "module", "scripts": { "dev": "bun --watch src/server.ts", - "check-types": "tsc --noEmit" + "start": "bun src/server.ts", + "check-types": "tsc --noEmit", + "build": "tsc" }, "devDependencies": { "@types/node": "^22.13.9", - "rivetkit": "workspace:*", + "rivetkit": "*", "typescript": "^5.5.2" }, "dependencies": { - "@rivetkit/react": "workspace:*", + "@rivetkit/react": "*", "@sinclair/typebox": "^0.34.15", "elysia": "^1.3.5", "react": "^18.2.0", diff --git a/examples/elysia/src/server.ts b/examples/elysia/src/server.ts index a8a48b60d8..e11d1fb1b4 100644 --- a/examples/elysia/src/server.ts +++ b/examples/elysia/src/server.ts @@ -1,7 +1,9 @@ import { Elysia } from "elysia"; +import { createClient } from "rivetkit/client"; import { registry } from "./registry"; -const { client } = registry.start(); +registry.startRunner(); +const client = createClient(); // Setup router new Elysia() diff --git a/examples/experimental-durable-streams-ai-agent/src/frontend/App.css b/examples/experimental-durable-streams-ai-agent/frontend/App.css similarity index 100% rename from examples/experimental-durable-streams-ai-agent/src/frontend/App.css rename to examples/experimental-durable-streams-ai-agent/frontend/App.css diff --git a/examples/experimental-durable-streams-ai-agent/src/frontend/App.tsx b/examples/experimental-durable-streams-ai-agent/frontend/App.tsx similarity index 98% rename from examples/experimental-durable-streams-ai-agent/src/frontend/App.tsx rename to examples/experimental-durable-streams-ai-agent/frontend/App.tsx index 8f95389faf..8c0f3e2c94 100644 --- a/examples/experimental-durable-streams-ai-agent/src/frontend/App.tsx +++ b/examples/experimental-durable-streams-ai-agent/frontend/App.tsx @@ -1,11 +1,11 @@ import { createRivetKit } from "@rivetkit/react"; import { useEffect, useState, useRef, useCallback } from "react"; -import { registry } from "../backend/registry"; -import { type PromptMessage, type ResponseChunk } from "../shared/types"; -import { getStreams, getStreamPaths } from "../shared/streams"; +import { registry } from "../src/registry"; +import { type PromptMessage, type ResponseChunk } from "../src/shared/types"; +import { getStreams, getStreamPaths } from "../src/shared/streams"; import "./App.css"; -const { useActor } = createRivetKit("http://localhost:6420"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); interface Message { id: string; diff --git a/examples/experimental-durable-streams-ai-agent/src/frontend/index.html b/examples/experimental-durable-streams-ai-agent/frontend/index.html similarity index 100% rename from examples/experimental-durable-streams-ai-agent/src/frontend/index.html rename to examples/experimental-durable-streams-ai-agent/frontend/index.html diff --git a/examples/experimental-durable-streams-ai-agent/src/frontend/main.tsx b/examples/experimental-durable-streams-ai-agent/frontend/main.tsx similarity index 100% rename from examples/experimental-durable-streams-ai-agent/src/frontend/main.tsx rename to examples/experimental-durable-streams-ai-agent/frontend/main.tsx diff --git a/examples/experimental-durable-streams-ai-agent/package.json b/examples/experimental-durable-streams-ai-agent/package.json index 3c32a48880..e5f16b415f 100644 --- a/examples/experimental-durable-streams-ai-agent/package.json +++ b/examples/experimental-durable-streams-ai-agent/package.json @@ -4,13 +4,16 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:streams\" \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:streams": "tsx --watch src/streams-server/server.ts", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", - "build": "vite build", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "dev:streams": "tsx --watch src/streams-server/server.ts", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -18,7 +21,8 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", - "rivetkit": "workspace:*", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", @@ -29,10 +33,11 @@ "@durable-streams/client": "https://pkg.pr.new/rivet-dev/durable-streams/@durable-streams/client@0323b8b", "@durable-streams/server": "https://pkg.pr.new/rivet-dev/durable-streams/@durable-streams/server@0323b8b", "@durable-streams/writer": "https://pkg.pr.new/rivet-dev/durable-streams/@durable-streams/writer@0323b8b", - "@rivetkit/react": "workspace:*", + "@rivetkit/react": "*", "ai": "^4.0.38", "react": "^18.2.0", "react-dom": "^18.2.0", + "rivetkit": "*", "zod": "^4.1.0" }, "template": { diff --git a/examples/experimental-durable-streams-ai-agent/src/backend/registry.ts b/examples/experimental-durable-streams-ai-agent/src/registry.ts similarity index 97% rename from examples/experimental-durable-streams-ai-agent/src/backend/registry.ts rename to examples/experimental-durable-streams-ai-agent/src/registry.ts index 62e36838f8..7c5936878a 100644 --- a/examples/experimental-durable-streams-ai-agent/src/backend/registry.ts +++ b/examples/experimental-durable-streams-ai-agent/src/registry.ts @@ -2,8 +2,8 @@ import { anthropic } from "@ai-sdk/anthropic"; import type { DurableStream } from "@durable-streams/client"; import { streamText } from "ai"; import { type ActorContextOf, actor, setup } from "rivetkit"; -import { getStreams } from "../shared/streams"; -import type { PromptMessage, ResponseChunk } from "../shared/types"; +import { getStreams } from "./shared/streams"; +import type { PromptMessage, ResponseChunk } from "./shared/types"; export const aiAgent = actor({ createState: (_c, input: { conversationId: string }) => ({ diff --git a/examples/experimental-durable-streams-ai-agent/src/backend/server.ts b/examples/experimental-durable-streams-ai-agent/src/server.ts similarity index 82% rename from examples/experimental-durable-streams-ai-agent/src/backend/server.ts rename to examples/experimental-durable-streams-ai-agent/src/server.ts index bedbb22ec2..19d3331f77 100644 --- a/examples/experimental-durable-streams-ai-agent/src/backend/server.ts +++ b/examples/experimental-durable-streams-ai-agent/src/server.ts @@ -4,4 +4,4 @@ if (!process.env.ANTHROPIC_API_KEY) { throw new Error("ANTHROPIC_API_KEY environment variable is required"); } -registry.start(); +export default registry.serve(); diff --git a/examples/experimental-durable-streams-ai-agent/tsup.config.ts b/examples/experimental-durable-streams-ai-agent/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/experimental-durable-streams-ai-agent/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/experimental-durable-streams-ai-agent/vite.config.ts b/examples/experimental-durable-streams-ai-agent/vite.config.ts index 97081aa8f2..ef2f55a297 100644 --- a/examples/experimental-durable-streams-ai-agent/vite.config.ts +++ b/examples/experimental-durable-streams-ai-agent/vite.config.ts @@ -3,8 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/express/package.json b/examples/express/package.json index e99a61756a..213dec7e1b 100644 --- a/examples/express/package.json +++ b/examples/express/package.json @@ -6,17 +6,18 @@ "scripts": { "build": "tsc", "dev": "tsx --watch src/server.ts", + "start": "tsx src/server.ts", "check-types": "tsc --noEmit" }, "devDependencies": { "@types/express": "^4.17.21", "@types/node": "^22.13.9", - "rivetkit": "workspace:*", + "rivetkit": "*", "tsx": "^3.12.7", "typescript": "^5.5.2" }, "dependencies": { - "@rivetkit/react": "workspace:*", + "@rivetkit/react": "*", "express": "^5.1.0", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/examples/express/src/server.ts b/examples/express/src/server.ts index a53eccbefb..481442cee7 100644 --- a/examples/express/src/server.ts +++ b/examples/express/src/server.ts @@ -1,8 +1,10 @@ import express from "express"; +import { createClient } from "rivetkit/client"; import { registry } from "./registry"; // Start RivetKit -const { client } = registry.start(); +registry.startRunner(); +const client = createClient(); // Setup router const app = express(); diff --git a/examples/hono-react/src/frontend/App.tsx b/examples/hono-bun/frontend/App.tsx similarity index 83% rename from examples/hono-react/src/frontend/App.tsx rename to examples/hono-bun/frontend/App.tsx index 0fbc28b278..5deaf0d08c 100644 --- a/examples/hono-react/src/frontend/App.tsx +++ b/examples/hono-bun/frontend/App.tsx @@ -1,8 +1,8 @@ import { createRivetKit } from "@rivetkit/react"; import { useState } from "react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:8080"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); function App() { const [count, setCount] = useState(0); diff --git a/examples/hono-bun/src/frontend/index.html b/examples/hono-bun/frontend/index.html similarity index 100% rename from examples/hono-bun/src/frontend/index.html rename to examples/hono-bun/frontend/index.html diff --git a/examples/hono-bun/src/frontend/main.tsx b/examples/hono-bun/frontend/main.tsx similarity index 100% rename from examples/hono-bun/src/frontend/main.tsx rename to examples/hono-bun/frontend/main.tsx diff --git a/examples/hono-bun/package.json b/examples/hono-bun/package.json index 9ade9d1eb7..5497bc3950 100644 --- a/examples/hono-bun/package.json +++ b/examples/hono-bun/package.json @@ -4,12 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "bun --watch src/backend/server.ts", + "dev:backend": "bun --watch src/server.ts", "dev:frontend": "vite", - "build": "vite build", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "connect": "tsx scripts/connect.ts" + "connect": "tsx scripts/connect.ts", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/bun": "^1.1.15", @@ -17,16 +20,18 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", - "rivetkit": "workspace:*", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0" }, "dependencies": { - "@rivetkit/react": "workspace:*", + "@rivetkit/react": "*", "hono": "^4.7.0", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "rivetkit": "*" }, "keywords": [ "rivetkit", @@ -46,7 +51,8 @@ "tags": [ "starter" ], - "noFrontend": true + "noFrontend": false, + "frontendPort": 5173 }, "license": "MIT" } diff --git a/examples/hono-bun/scripts/connect.ts b/examples/hono-bun/scripts/connect.ts index 8ce6b7516f..fa43fac613 100644 --- a/examples/hono-bun/scripts/connect.ts +++ b/examples/hono-bun/scripts/connect.ts @@ -1,8 +1,10 @@ import { createClient } from "rivetkit/client"; -import type { Registry } from "../src/registry"; +import type { registry } from "../src/registry"; async function main() { - const client = createClient("http://localhost:8080/rivet"); + const client = createClient( + "http://localhost:8080/api/rivet", + ); const counter = client.counter.getOrCreate().connect(); diff --git a/examples/hono-bun/src/backend/server.ts b/examples/hono-bun/src/backend/server.ts deleted file mode 100644 index 959a9f89b5..0000000000 --- a/examples/hono-bun/src/backend/server.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Hono } from "hono"; -import { upgradeWebSocket, websocket } from "hono/bun"; -import { cors } from "hono/cors"; -import { registry } from "./registry"; - -const { client, fetch } = registry.start({ - basePath: "/rivet", - // Hono requires using Hono.serve - disableDefaultServer: true, - // Override endpoint - overrideServerAddress: "http://localhost:8080/rivet", - // Specify Hono-specific upgradeWebSocket - getUpgradeWebSocket: () => upgradeWebSocket, -}); - -// Setup router -const app = new Hono(); - -app.use( - "*", - cors({ - origin: "http://localhost:5173", - credentials: true, - }), -); - -app.use("/rivet/*", async (c) => { - return await fetch(c.req.raw, c.env); -}); - -// Example HTTP endpoint -app.post("/increment/:name", async (c) => { - const name = c.req.param("name"); - - const counter = client.counter.getOrCreate(name); - const newCount = await counter.increment(1); - - return c.text(`New Count: ${newCount}`); -}); - -Bun.serve({ - port: 8080, - fetch: app.fetch, - websocket, -}); - -console.log("Listening at http://localhost:8080"); diff --git a/examples/hono-bun/src/backend/registry.ts b/examples/hono-bun/src/registry.ts similarity index 100% rename from examples/hono-bun/src/backend/registry.ts rename to examples/hono-bun/src/registry.ts diff --git a/examples/hono-bun/src/server.ts b/examples/hono-bun/src/server.ts new file mode 100644 index 0000000000..680f2f517d --- /dev/null +++ b/examples/hono-bun/src/server.ts @@ -0,0 +1,33 @@ +import { Hono } from "hono"; +import { cors } from "hono/cors"; +import { createClient } from "rivetkit/client"; +import { registry } from "./registry"; + +const client = createClient(); + +// Setup router +const app = new Hono(); + +app.use( + "*", + cors({ + origin: "http://localhost:5173", + credentials: true, + }), +); + +app.all("/api/rivet/*", (c) => registry.handler(c.req.raw)); + +// Example HTTP endpoint +app.post("/increment/:name", async (c) => { + const name = c.req.param("name"); + + const counter = client.counter.getOrCreate(name); + const newCount = await counter.increment(1); + + return c.text(`New Count: ${newCount}`); +}); + +export default app; + +console.log("Listening at http://localhost:6420"); diff --git a/examples/hono-bun/tsup.config.ts b/examples/hono-bun/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/hono-bun/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/hono-bun/vite.config.ts b/examples/hono-bun/vite.config.ts index 2abc7c6f82..ef2f55a297 100644 --- a/examples/hono-bun/vite.config.ts +++ b/examples/hono-bun/vite.config.ts @@ -3,11 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", build: { - outDir: "../../dist", + outDir: "dist", + emptyOutDir: true, }, server: { host: "0.0.0.0", + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/react/src/frontend/App.tsx b/examples/hono-react/frontend/App.tsx similarity index 83% rename from examples/react/src/frontend/App.tsx rename to examples/hono-react/frontend/App.tsx index 0fbc28b278..5deaf0d08c 100644 --- a/examples/react/src/frontend/App.tsx +++ b/examples/hono-react/frontend/App.tsx @@ -1,8 +1,8 @@ import { createRivetKit } from "@rivetkit/react"; import { useState } from "react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:8080"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); function App() { const [count, setCount] = useState(0); diff --git a/examples/hono-react/src/frontend/index.html b/examples/hono-react/frontend/index.html similarity index 100% rename from examples/hono-react/src/frontend/index.html rename to examples/hono-react/frontend/index.html diff --git a/examples/hono-react/src/frontend/main.tsx b/examples/hono-react/frontend/main.tsx similarity index 100% rename from examples/hono-react/src/frontend/main.tsx rename to examples/hono-react/frontend/main.tsx diff --git a/examples/hono-react/package.json b/examples/hono-react/package.json index 6cfdbb4b6e..f6c5577c9d 100644 --- a/examples/hono-react/package.json +++ b/examples/hono-react/package.json @@ -4,12 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", - "build": "vite build", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -17,7 +20,8 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", - "rivetkit": "workspace:*", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", @@ -25,10 +29,11 @@ }, "dependencies": { "@hono/node-server": "^1.14.0", - "@rivetkit/react": "workspace:*", + "@rivetkit/react": "*", "hono": "^4.7.0", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "rivetkit": "*" }, "stableVersion": "0.8.0", "template": { diff --git a/examples/hono-react/src/backend/registry.ts b/examples/hono-react/src/registry.ts similarity index 100% rename from examples/hono-react/src/backend/registry.ts rename to examples/hono-react/src/registry.ts diff --git a/examples/hono-react/src/backend/server.ts b/examples/hono-react/src/server.ts similarity index 57% rename from examples/hono-react/src/backend/server.ts rename to examples/hono-react/src/server.ts index b41bff93e1..4652dccc8c 100644 --- a/examples/hono-react/src/backend/server.ts +++ b/examples/hono-react/src/server.ts @@ -1,8 +1,9 @@ -import { serve } from "@hono/node-server"; import { Hono } from "hono"; +import { createClient } from "rivetkit/client"; import { registry } from "./registry"; -const { client } = registry.start(); +registry.startRunner(); +const client = createClient(); // Setup router const app = new Hono(); @@ -14,8 +15,9 @@ app.post("/increment/:name", async (c) => { const counter = client.counter.getOrCreate(name); const newCount = await counter.increment(1); - return c.text(`New Count: ${newCount}`); + return c.text(String(newCount)); }); -serve({ fetch: app.fetch, port: 8080 }); -console.log("Listening on port 8080"); +app.all("/api/rivet/*", (c) => registry.handler(c.req.raw)); + +export default app; diff --git a/examples/hono-react/tsup.config.ts b/examples/hono-react/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/hono-react/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/hono-react/vite.config.ts b/examples/hono-react/vite.config.ts index 2abc7c6f82..ef2f55a297 100644 --- a/examples/hono-react/vite.config.ts +++ b/examples/hono-react/vite.config.ts @@ -3,11 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", build: { - outDir: "../../dist", + outDir: "dist", + emptyOutDir: true, }, server: { host: "0.0.0.0", + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/hono/package.json b/examples/hono/package.json index 33208085c4..308ea24742 100644 --- a/examples/hono/package.json +++ b/examples/hono/package.json @@ -5,13 +5,15 @@ "type": "module", "scripts": { "dev": "tsx --watch src/server.ts", + "start": "tsx src/server.ts", "check-types": "tsc --noEmit", - "client": "tsx scripts/client.ts" + "client": "tsx scripts/client.ts", + "build": "tsc" }, "devDependencies": { "@hono/node-server": "^1.19.1", "@types/node": "^22.13.9", - "rivetkit": "workspace:*", + "rivetkit": "*", "tsx": "^3.12.7", "typescript": "^5.5.2" }, diff --git a/examples/hono/src/server.ts b/examples/hono/src/server.ts index b33527431f..1a01b91538 100644 --- a/examples/hono/src/server.ts +++ b/examples/hono/src/server.ts @@ -1,9 +1,11 @@ import { serve } from "@hono/node-server"; import { Hono } from "hono"; +import { createClient } from "rivetkit/client"; import { registry } from "./registry"; // Start RivetKit -const { client } = registry.start(); +registry.startRunner(); +const client = createClient(); // Setup router const app = new Hono(); diff --git a/examples/kitchen-sink/src/frontend/App.tsx b/examples/kitchen-sink/frontend/App.tsx similarity index 96% rename from examples/kitchen-sink/src/frontend/App.tsx rename to examples/kitchen-sink/frontend/App.tsx index df59ac96c2..cb0a25ee2e 100644 --- a/examples/kitchen-sink/src/frontend/App.tsx +++ b/examples/kitchen-sink/frontend/App.tsx @@ -1,6 +1,6 @@ import { createClient } from "@rivetkit/react"; import { useState, useMemo, useEffect } from "react"; -import type { Registry } from "../backend/registry"; +import type { Registry } from "../src/registry"; import ConnectionScreen from "./components/ConnectionScreen"; import InteractionScreen from "./components/InteractionScreen"; @@ -42,7 +42,7 @@ function App() { if (!state) return null; return createClient({ - endpoint: "http://localhost:6420", + endpoint: `${window.location.origin}/api/rivet`, encoding: state.encoding, }); }, [state?.encoding]); diff --git a/examples/kitchen-sink/src/frontend/components/ConnectionScreen.tsx b/examples/kitchen-sink/frontend/components/ConnectionScreen.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/ConnectionScreen.tsx rename to examples/kitchen-sink/frontend/components/ConnectionScreen.tsx diff --git a/examples/kitchen-sink/src/frontend/components/InteractionScreen.tsx b/examples/kitchen-sink/frontend/components/InteractionScreen.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/InteractionScreen.tsx rename to examples/kitchen-sink/frontend/components/InteractionScreen.tsx diff --git a/examples/kitchen-sink/src/frontend/components/tabs/ActionsTab.tsx b/examples/kitchen-sink/frontend/components/tabs/ActionsTab.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/tabs/ActionsTab.tsx rename to examples/kitchen-sink/frontend/components/tabs/ActionsTab.tsx diff --git a/examples/kitchen-sink/src/frontend/components/tabs/ConnectionsTab.tsx b/examples/kitchen-sink/frontend/components/tabs/ConnectionsTab.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/tabs/ConnectionsTab.tsx rename to examples/kitchen-sink/frontend/components/tabs/ConnectionsTab.tsx diff --git a/examples/kitchen-sink/src/frontend/components/tabs/EventsTab.tsx b/examples/kitchen-sink/frontend/components/tabs/EventsTab.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/tabs/EventsTab.tsx rename to examples/kitchen-sink/frontend/components/tabs/EventsTab.tsx diff --git a/examples/kitchen-sink/src/frontend/components/tabs/MetadataTab.tsx b/examples/kitchen-sink/frontend/components/tabs/MetadataTab.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/tabs/MetadataTab.tsx rename to examples/kitchen-sink/frontend/components/tabs/MetadataTab.tsx diff --git a/examples/kitchen-sink/src/frontend/components/tabs/RawHttpTab.tsx b/examples/kitchen-sink/frontend/components/tabs/RawHttpTab.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/tabs/RawHttpTab.tsx rename to examples/kitchen-sink/frontend/components/tabs/RawHttpTab.tsx diff --git a/examples/kitchen-sink/src/frontend/components/tabs/RawWebSocketTab.tsx b/examples/kitchen-sink/frontend/components/tabs/RawWebSocketTab.tsx similarity index 99% rename from examples/kitchen-sink/src/frontend/components/tabs/RawWebSocketTab.tsx rename to examples/kitchen-sink/frontend/components/tabs/RawWebSocketTab.tsx index fb7a7bdce6..db6e3fd211 100644 --- a/examples/kitchen-sink/src/frontend/components/tabs/RawWebSocketTab.tsx +++ b/examples/kitchen-sink/frontend/components/tabs/RawWebSocketTab.tsx @@ -32,6 +32,7 @@ export default function RawWebSocketTab({ state }: TabProps) { const actorPath = state.actorKey ? `/actors/${state.actorName}/${encodeURIComponent(state.actorKey)}/ws` : `/actors/${state.actorName}/ws`; + // FIXME: use clientEndpoint from metadata return `${wsProtocol}//localhost:8080${actorPath}`; }; diff --git a/examples/kitchen-sink/src/frontend/components/tabs/ScheduleTab.tsx b/examples/kitchen-sink/frontend/components/tabs/ScheduleTab.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/tabs/ScheduleTab.tsx rename to examples/kitchen-sink/frontend/components/tabs/ScheduleTab.tsx diff --git a/examples/kitchen-sink/src/frontend/components/tabs/SleepTab.tsx b/examples/kitchen-sink/frontend/components/tabs/SleepTab.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/components/tabs/SleepTab.tsx rename to examples/kitchen-sink/frontend/components/tabs/SleepTab.tsx diff --git a/examples/kitchen-sink/src/frontend/index.css b/examples/kitchen-sink/frontend/index.css similarity index 100% rename from examples/kitchen-sink/src/frontend/index.css rename to examples/kitchen-sink/frontend/index.css diff --git a/examples/kitchen-sink/index.html b/examples/kitchen-sink/frontend/index.html similarity index 82% rename from examples/kitchen-sink/index.html rename to examples/kitchen-sink/frontend/index.html index 04d64ac542..d85e56fc34 100644 --- a/examples/kitchen-sink/index.html +++ b/examples/kitchen-sink/frontend/index.html @@ -8,6 +8,6 @@
- + \ No newline at end of file diff --git a/examples/kitchen-sink/src/frontend/main.tsx b/examples/kitchen-sink/frontend/main.tsx similarity index 100% rename from examples/kitchen-sink/src/frontend/main.tsx rename to examples/kitchen-sink/frontend/main.tsx diff --git a/examples/kitchen-sink/package.json b/examples/kitchen-sink/package.json index 0eb7e8969c..e193b1c42b 100644 --- a/examples/kitchen-sink/package.json +++ b/examples/kitchen-sink/package.json @@ -4,24 +4,29 @@ "version": "2.0.21", "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", - "build": "tsc && vite build", - "preview": "vite preview", - "check-types": "tsc --noEmit" + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=dist dist/server.js", + "check-types": "tsc --noEmit", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "dependencies": { - "@rivetkit/react": "workspace:*", - "rivetkit": "workspace:*", + "@rivetkit/react": "*", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "rivetkit": "*" }, "devDependencies": { "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "@vitejs/plugin-react": "^4.2.1", + "@types/node": "^22.13.9", "concurrently": "^8.2.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^4.7.1", "typescript": "^5.2.2", "vite": "^5.2.0" diff --git a/examples/kitchen-sink/src/backend/actors/demo.ts b/examples/kitchen-sink/src/actors/demo.ts similarity index 100% rename from examples/kitchen-sink/src/backend/actors/demo.ts rename to examples/kitchen-sink/src/actors/demo.ts diff --git a/examples/kitchen-sink/src/backend/actors/http.ts b/examples/kitchen-sink/src/actors/http.ts similarity index 100% rename from examples/kitchen-sink/src/backend/actors/http.ts rename to examples/kitchen-sink/src/actors/http.ts diff --git a/examples/kitchen-sink/src/backend/actors/websocket.ts b/examples/kitchen-sink/src/actors/websocket.ts similarity index 100% rename from examples/kitchen-sink/src/backend/actors/websocket.ts rename to examples/kitchen-sink/src/actors/websocket.ts diff --git a/examples/kitchen-sink/src/backend/server.ts b/examples/kitchen-sink/src/backend/server.ts deleted file mode 100644 index aa0ee6ed61..0000000000 --- a/examples/kitchen-sink/src/backend/server.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { registry } from "./registry"; - -registry.start(); diff --git a/examples/kitchen-sink/src/backend/registry.ts b/examples/kitchen-sink/src/registry.ts similarity index 100% rename from examples/kitchen-sink/src/backend/registry.ts rename to examples/kitchen-sink/src/registry.ts diff --git a/examples/kitchen-sink/src/server.ts b/examples/kitchen-sink/src/server.ts new file mode 100644 index 0000000000..508b28a999 --- /dev/null +++ b/examples/kitchen-sink/src/server.ts @@ -0,0 +1,3 @@ +import { registry } from "./registry"; + +export default registry.serve(); diff --git a/examples/kitchen-sink/tsup.config.ts b/examples/kitchen-sink/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/kitchen-sink/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/kitchen-sink/vite.config.ts b/examples/kitchen-sink/vite.config.ts index d1fef97172..ef2f55a297 100644 --- a/examples/kitchen-sink/vite.config.ts +++ b/examples/kitchen-sink/vite.config.ts @@ -3,8 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/multi-region/src/frontend/App.tsx b/examples/multi-region/frontend/App.tsx similarity index 97% rename from examples/multi-region/src/frontend/App.tsx rename to examples/multi-region/frontend/App.tsx index 3ad874459f..079126621d 100644 --- a/examples/multi-region/src/frontend/App.tsx +++ b/examples/multi-region/frontend/App.tsx @@ -1,8 +1,8 @@ import { createRivetKit } from "@rivetkit/react"; import { useEffect, useState } from "react"; -import type { Player, registry } from "../backend/registry"; +import type { Player, registry } from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:8080"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); export function App() { const [region, setRegion] = useState("us-east"); diff --git a/examples/multi-region/src/frontend/index.html b/examples/multi-region/frontend/index.html similarity index 100% rename from examples/multi-region/src/frontend/index.html rename to examples/multi-region/frontend/index.html diff --git a/examples/multi-region/src/frontend/main.tsx b/examples/multi-region/frontend/main.tsx similarity index 100% rename from examples/multi-region/src/frontend/main.tsx rename to examples/multi-region/frontend/main.tsx diff --git a/examples/multi-region/package.json b/examples/multi-region/package.json index 01d9aaf56d..ed00f659d3 100644 --- a/examples/multi-region/package.json +++ b/examples/multi-region/package.json @@ -4,11 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -16,16 +20,18 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", - "vitest": "^3.1.1", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "vitest": "^3.1.1" }, "dependencies": { - "rivetkit": "workspace:*" + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "template": { "technologies": [ @@ -33,7 +39,7 @@ ], "tags": [], "priority": 1000, - "frontendPort": 3000 + "frontendPort": 5173 }, "license": "MIT" } diff --git a/examples/multi-region/src/backend/server.ts b/examples/multi-region/src/backend/server.ts deleted file mode 100644 index aa0ee6ed61..0000000000 --- a/examples/multi-region/src/backend/server.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { registry } from "./registry"; - -registry.start(); diff --git a/examples/multi-region/src/backend/registry.ts b/examples/multi-region/src/registry.ts similarity index 100% rename from examples/multi-region/src/backend/registry.ts rename to examples/multi-region/src/registry.ts diff --git a/examples/multi-region/src/server.ts b/examples/multi-region/src/server.ts new file mode 100644 index 0000000000..508b28a999 --- /dev/null +++ b/examples/multi-region/src/server.ts @@ -0,0 +1,3 @@ +import { registry } from "./registry"; + +export default registry.serve(); diff --git a/examples/multi-region/src/backend/types.ts b/examples/multi-region/src/types.ts similarity index 100% rename from examples/multi-region/src/backend/types.ts rename to examples/multi-region/src/types.ts diff --git a/examples/multi-region/tsup.config.ts b/examples/multi-region/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/multi-region/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/multi-region/vite.config.ts b/examples/multi-region/vite.config.ts index 5a22891184..ef2f55a297 100644 --- a/examples/multi-region/vite.config.ts +++ b/examples/multi-region/vite.config.ts @@ -3,13 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", - server: { - host: "0.0.0.0", - port: 3000, - }, + root: "frontend", build: { - outDir: "../../dist", + outDir: "dist", emptyOutDir: true, }, + server: { + host: "0.0.0.0", + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, + }, }); diff --git a/examples/native-websockets/src/frontend/App.tsx b/examples/native-websockets/frontend/App.tsx similarity index 97% rename from examples/native-websockets/src/frontend/App.tsx rename to examples/native-websockets/frontend/App.tsx index 3190adc17b..492aeccdbd 100644 --- a/examples/native-websockets/src/frontend/App.tsx +++ b/examples/native-websockets/frontend/App.tsx @@ -1,8 +1,9 @@ import { createClient } from "@rivetkit/react"; import { useEffect, useState } from "react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; -const rivetUrl = "http://localhost:6420"; +// FIXME: use metadata's clientEndpoint +const rivetUrl = `${window.location.origin}/api/rivet`; const client = createClient(rivetUrl); diff --git a/examples/native-websockets/src/frontend/index.html b/examples/native-websockets/frontend/index.html similarity index 100% rename from examples/native-websockets/src/frontend/index.html rename to examples/native-websockets/frontend/index.html diff --git a/examples/native-websockets/src/frontend/main.tsx b/examples/native-websockets/frontend/main.tsx similarity index 100% rename from examples/native-websockets/src/frontend/main.tsx rename to examples/native-websockets/frontend/main.tsx diff --git a/examples/native-websockets/package.json b/examples/native-websockets/package.json index 9c8088a444..accc6e8aae 100644 --- a/examples/native-websockets/package.json +++ b/examples/native-websockets/package.json @@ -4,11 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -17,17 +21,19 @@ "@types/ws": "^8.5.10", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", "vitest": "^3.1.1", - "ws": "^8.16.0", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "ws": "^8.16.0" }, "dependencies": { - "rivetkit": "workspace:*" + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "template": { "technologies": [ diff --git a/examples/native-websockets/src/backend/server.ts b/examples/native-websockets/src/backend/server.ts deleted file mode 100644 index aa0ee6ed61..0000000000 --- a/examples/native-websockets/src/backend/server.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { registry } from "./registry"; - -registry.start(); diff --git a/examples/native-websockets/src/backend/registry.ts b/examples/native-websockets/src/registry.ts similarity index 100% rename from examples/native-websockets/src/backend/registry.ts rename to examples/native-websockets/src/registry.ts diff --git a/examples/native-websockets/src/server.ts b/examples/native-websockets/src/server.ts new file mode 100644 index 0000000000..508b28a999 --- /dev/null +++ b/examples/native-websockets/src/server.ts @@ -0,0 +1,3 @@ +import { registry } from "./registry"; + +export default registry.serve(); diff --git a/examples/native-websockets/tsup.config.ts b/examples/native-websockets/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/native-websockets/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/native-websockets/vite.config.ts b/examples/native-websockets/vite.config.ts index 19155bde35..ef2f55a297 100644 --- a/examples/native-websockets/vite.config.ts +++ b/examples/native-websockets/vite.config.ts @@ -3,9 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/next-js/package.json b/examples/next-js/package.json index b9991e873d..241afe77e0 100644 --- a/examples/next-js/package.json +++ b/examples/next-js/package.json @@ -14,8 +14,8 @@ "react": "19.1.0", "react-dom": "19.1.0", "next": "16.1.1", - "@rivetkit/next-js": "workspace:*", - "rivetkit": "workspace:*" + "@rivetkit/next-js": "*", + "rivetkit": "*" }, "devDependencies": { "typescript": "^5", diff --git a/examples/node/package.json b/examples/node/package.json index 321f5183f3..b2e191b75c 100644 --- a/examples/node/package.json +++ b/examples/node/package.json @@ -4,18 +4,20 @@ "private": true, "type": "module", "scripts": { - "dev": "tsx --watch src/server.ts", + "dev": "npx srvx --import tsx src/server.ts", + "start": "npx srvx --import tsx src/server.ts", "check-types": "tsc --noEmit", - "build": "tsc", + "build": "tsup", "client": "tsx scripts/client.ts" }, "devDependencies": { "@types/node": "^22.13.9", + "srvx": "^0.10.0", "tsx": "^3.12.7", "typescript": "^5.5.2" }, "dependencies": { - "rivetkit": "workspace:*" + "rivetkit": "*" }, "stableVersion": "0.8.0", "template": { diff --git a/examples/node/src/server.ts b/examples/node/src/server.ts index 4fc37cf4bc..508b28a999 100644 --- a/examples/node/src/server.ts +++ b/examples/node/src/server.ts @@ -1,4 +1,3 @@ import { registry } from "./registry"; -registry.start(); - +export default registry.serve(); diff --git a/examples/node/tsup.config.ts b/examples/node/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/node/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/raw-fetch-handler/src/frontend/App.tsx b/examples/raw-fetch-handler/frontend/App.tsx similarity index 93% rename from examples/raw-fetch-handler/src/frontend/App.tsx rename to examples/raw-fetch-handler/frontend/App.tsx index fef7c1bcd4..cff918e2c1 100644 --- a/examples/raw-fetch-handler/src/frontend/App.tsx +++ b/examples/raw-fetch-handler/frontend/App.tsx @@ -1,9 +1,9 @@ import { useState, useEffect } from "react"; import { createClient } from "@rivetkit/react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; // Create a client that connects to the running server -const client = createClient("http://localhost:8080"); +const client = createClient(`${window.location.origin}/api/rivet`); function Counter({ name }: { name: string }) { const [count, setCount] = useState(null); @@ -33,6 +33,7 @@ function Counter({ name }: { name: string }) { setLoading(true); try { // Method 2: Using the forward endpoint + // FIXME: Use metadata's clientEndpoint const response = await fetch(`http://localhost:8080/forward/${name}/increment`, { method: "POST", }); diff --git a/examples/raw-fetch-handler/src/frontend/index.html b/examples/raw-fetch-handler/frontend/index.html similarity index 100% rename from examples/raw-fetch-handler/src/frontend/index.html rename to examples/raw-fetch-handler/frontend/index.html diff --git a/examples/raw-fetch-handler/src/frontend/main.tsx b/examples/raw-fetch-handler/frontend/main.tsx similarity index 100% rename from examples/raw-fetch-handler/src/frontend/main.tsx rename to examples/raw-fetch-handler/frontend/main.tsx diff --git a/examples/raw-fetch-handler/package.json b/examples/raw-fetch-handler/package.json index b5020d127a..8209f5f79a 100644 --- a/examples/raw-fetch-handler/package.json +++ b/examples/raw-fetch-handler/package.json @@ -4,21 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"tsx --watch src/backend/server.ts\" \"vite\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", - "build": "vite build", - "preview": "vite preview", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest" - }, - "dependencies": { - "@hono/node-server": "^1.14.0", - "rivetkit": "workspace:*", - "@rivetkit/react": "workspace:*", - "hono": "^4.6.18", - "react": "^18.3.1", - "react-dom": "^18.3.1" + "test": "vitest", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.10.6", @@ -26,11 +20,21 @@ "@types/react-dom": "^18.3.5", "@vitejs/plugin-react": "^4.3.4", "concurrently": "^9.1.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^4.20.0", "typescript": "^5.7.3", "vite": "^5.4.19", "vitest": "^3.1.1" }, + "dependencies": { + "@hono/node-server": "^1.14.0", + "@rivetkit/react": "*", + "hono": "^4.6.18", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rivetkit": "*" + }, "template": { "technologies": [ "typescript" diff --git a/examples/raw-fetch-handler/src/backend/registry.ts b/examples/raw-fetch-handler/src/registry.ts similarity index 100% rename from examples/raw-fetch-handler/src/backend/registry.ts rename to examples/raw-fetch-handler/src/registry.ts diff --git a/examples/raw-fetch-handler/src/backend/server.ts b/examples/raw-fetch-handler/src/server.ts similarity index 84% rename from examples/raw-fetch-handler/src/backend/server.ts rename to examples/raw-fetch-handler/src/server.ts index d0a02cf664..78004a3cbf 100644 --- a/examples/raw-fetch-handler/src/backend/server.ts +++ b/examples/raw-fetch-handler/src/server.ts @@ -1,10 +1,11 @@ -import { serve } from "@hono/node-server"; import { Hono } from "hono"; import { cors } from "hono/cors"; +import { createClient } from "rivetkit/client"; import { registry } from "./registry"; // Start RivetKit -const { client } = registry.start(); +registry.startRunner(); +const client = createClient(); // Setup router const app = new Hono(); @@ -36,7 +37,6 @@ app.all("/forward/:name/*", async (c) => { return response; }); -serve({ fetch: app.fetch, port: 8080 }); -console.log("Listening on port 8080"); +export default app; export { client }; diff --git a/examples/raw-fetch-handler/tsup.config.ts b/examples/raw-fetch-handler/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/raw-fetch-handler/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/raw-fetch-handler/vite.config.ts b/examples/raw-fetch-handler/vite.config.ts index 2abc7c6f82..ef2f55a297 100644 --- a/examples/raw-fetch-handler/vite.config.ts +++ b/examples/raw-fetch-handler/vite.config.ts @@ -3,11 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", build: { - outDir: "../../dist", + outDir: "dist", + emptyOutDir: true, }, server: { host: "0.0.0.0", + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/raw-websocket-handler-proxy/src/frontend/App.tsx b/examples/raw-websocket-handler-proxy/frontend/App.tsx similarity index 95% rename from examples/raw-websocket-handler-proxy/src/frontend/App.tsx rename to examples/raw-websocket-handler-proxy/frontend/App.tsx index ba25e4d295..01431a546e 100644 --- a/examples/raw-websocket-handler-proxy/src/frontend/App.tsx +++ b/examples/raw-websocket-handler-proxy/frontend/App.tsx @@ -16,7 +16,8 @@ export default function App() { `conn_params.${encodeURIComponent(JSON.stringify({ apiKey: "your-api-key" }))}` ]; - const ws = new WebSocket("ws://localhost:8080/registry/actors/chatRoom/ws/", protocols); + // FIXME: Use metadata's clientEndpoint + const ws = new WebSocket("ws://localhost:6420/api/rivet/actors/chatRoom/ws/", protocols); ws.onopen = () => { setIsConnected(true); diff --git a/examples/raw-websocket-handler-proxy/src/frontend/index.html b/examples/raw-websocket-handler-proxy/frontend/index.html similarity index 100% rename from examples/raw-websocket-handler-proxy/src/frontend/index.html rename to examples/raw-websocket-handler-proxy/frontend/index.html diff --git a/examples/raw-websocket-handler-proxy/src/frontend/main.tsx b/examples/raw-websocket-handler-proxy/frontend/main.tsx similarity index 100% rename from examples/raw-websocket-handler-proxy/src/frontend/main.tsx rename to examples/raw-websocket-handler-proxy/frontend/main.tsx diff --git a/examples/raw-websocket-handler-proxy/package.json b/examples/raw-websocket-handler-proxy/package.json index f8c6b836f7..c26286c977 100644 --- a/examples/raw-websocket-handler-proxy/package.json +++ b/examples/raw-websocket-handler-proxy/package.json @@ -11,20 +11,15 @@ "realtime" ], "scripts": { - "dev": "concurrently \"npm:dev:*\"", - "dev:backend": "tsx watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" - }, - "dependencies": { - "@hono/node-server": "^1.14.0", - "@hono/node-ws": "^1.1.1", - "rivetkit": "workspace:*", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "hono": "^4.7.0", - "ws": "^8.18.0" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.10.2", @@ -33,11 +28,23 @@ "@types/ws": "^8.5.10", "@vitejs/plugin-react": "^4.3.4", "concurrently": "^9.1.0", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^4.19.2", "typescript": "^5.7.2", "vite": "^6.0.5", "vitest": "^3.1.1" }, + "dependencies": { + "@hono/node-server": "^1.14.0", + "@hono/node-ws": "^1.1.1", + "@rivetkit/react": "*", + "hono": "^4.7.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rivetkit": "*", + "ws": "^8.18.0" + }, "template": { "technologies": [ "websocket", diff --git a/examples/raw-websocket-handler-proxy/src/backend/registry.ts b/examples/raw-websocket-handler-proxy/src/registry.ts similarity index 100% rename from examples/raw-websocket-handler-proxy/src/backend/registry.ts rename to examples/raw-websocket-handler-proxy/src/registry.ts diff --git a/examples/raw-websocket-handler-proxy/src/backend/server.ts b/examples/raw-websocket-handler-proxy/src/server.ts similarity index 77% rename from examples/raw-websocket-handler-proxy/src/backend/server.ts rename to examples/raw-websocket-handler-proxy/src/server.ts index da7038e1b8..31bccf710f 100644 --- a/examples/raw-websocket-handler-proxy/src/backend/server.ts +++ b/examples/raw-websocket-handler-proxy/src/server.ts @@ -1,14 +1,15 @@ -import { serve } from "@hono/node-server"; import { createNodeWebSocket } from "@hono/node-ws"; import type { Context } from "hono"; import { Hono } from "hono"; import type { WSContext } from "hono/ws"; -import { registry } from "./registry.js"; +import { createClient } from "rivetkit/client"; +import { registry } from "./registry"; -const { client } = registry.start(); +registry.startRunner(); +const client = createClient(); const app = new Hono(); -const { injectWebSocket, upgradeWebSocket } = createNodeWebSocket({ app }); +const { upgradeWebSocket } = createNodeWebSocket({ app }); // Forward WebSocket connections to actor's WebSocket handler app.get( @@ -47,6 +48,4 @@ app.get( }), ); -const server = serve({ fetch: app.fetch, port: 8080 }); -injectWebSocket(server); -console.log("Listening on port 8080"); +export default app; diff --git a/examples/raw-websocket-handler-proxy/tsup.config.ts b/examples/raw-websocket-handler-proxy/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/raw-websocket-handler-proxy/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/raw-websocket-handler-proxy/vite.config.ts b/examples/raw-websocket-handler-proxy/vite.config.ts index 2abc7c6f82..ef2f55a297 100644 --- a/examples/raw-websocket-handler-proxy/vite.config.ts +++ b/examples/raw-websocket-handler-proxy/vite.config.ts @@ -3,11 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", build: { - outDir: "../../dist", + outDir: "dist", + emptyOutDir: true, }, server: { host: "0.0.0.0", + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/raw-websocket-handler/src/frontend/App.tsx b/examples/raw-websocket-handler/frontend/App.tsx similarity index 95% rename from examples/raw-websocket-handler/src/frontend/App.tsx rename to examples/raw-websocket-handler/frontend/App.tsx index 167bef54ef..f5ee8446a5 100644 --- a/examples/raw-websocket-handler/src/frontend/App.tsx +++ b/examples/raw-websocket-handler/frontend/App.tsx @@ -1,8 +1,8 @@ import React, { useState, useEffect, useRef } from "react"; import { createRivetKit } from "@rivetkit/react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:8080"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); export default function App() { const [messages, setMessages] = useState>([]); diff --git a/examples/raw-websocket-handler/src/frontend/index.html b/examples/raw-websocket-handler/frontend/index.html similarity index 100% rename from examples/raw-websocket-handler/src/frontend/index.html rename to examples/raw-websocket-handler/frontend/index.html diff --git a/examples/raw-websocket-handler/src/frontend/main.tsx b/examples/raw-websocket-handler/frontend/main.tsx similarity index 100% rename from examples/raw-websocket-handler/src/frontend/main.tsx rename to examples/raw-websocket-handler/frontend/main.tsx diff --git a/examples/raw-websocket-handler/package.json b/examples/raw-websocket-handler/package.json index 7970002ff2..40c8d1e89a 100644 --- a/examples/raw-websocket-handler/package.json +++ b/examples/raw-websocket-handler/package.json @@ -12,18 +12,15 @@ "realtime" ], "scripts": { - "dev": "concurrently \"npm:dev:*\"", - "dev:backend": "tsx watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" - }, - "dependencies": { - "rivetkit": "workspace:*", - "@rivetkit/react": "workspace:*", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "hono": "^4.7.0" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.10.2", @@ -31,11 +28,20 @@ "@types/react-dom": "^18.3.5", "@vitejs/plugin-react": "^4.3.4", "concurrently": "^9.1.0", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^4.19.2", "typescript": "^5.7.2", "vite": "^6.0.5", "vitest": "^3.1.1" }, + "dependencies": { + "@rivetkit/react": "*", + "hono": "^4.7.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "rivetkit": "*" + }, "template": { "technologies": [ "websocket", diff --git a/examples/raw-websocket-handler/src/backend/registry.ts b/examples/raw-websocket-handler/src/registry.ts similarity index 100% rename from examples/raw-websocket-handler/src/backend/registry.ts rename to examples/raw-websocket-handler/src/registry.ts diff --git a/examples/raw-websocket-handler/src/backend/server.ts b/examples/raw-websocket-handler/src/server.ts similarity index 56% rename from examples/raw-websocket-handler/src/backend/server.ts rename to examples/raw-websocket-handler/src/server.ts index 3bf4bc4128..fdfed9e29c 100644 --- a/examples/raw-websocket-handler/src/backend/server.ts +++ b/examples/raw-websocket-handler/src/server.ts @@ -1,3 +1,3 @@ import { registry } from "./registry.js"; -registry.start(); +export default registry.serve(); diff --git a/examples/raw-websocket-handler/tsup.config.ts b/examples/raw-websocket-handler/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/raw-websocket-handler/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/raw-websocket-handler/vite.config.ts b/examples/raw-websocket-handler/vite.config.ts index 2abc7c6f82..ef2f55a297 100644 --- a/examples/raw-websocket-handler/vite.config.ts +++ b/examples/raw-websocket-handler/vite.config.ts @@ -3,11 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", build: { - outDir: "../../dist", + outDir: "dist", + emptyOutDir: true, }, server: { host: "0.0.0.0", + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/hono-bun/src/frontend/App.tsx b/examples/react/frontend/App.tsx similarity index 83% rename from examples/hono-bun/src/frontend/App.tsx rename to examples/react/frontend/App.tsx index d53ca6a0e3..5deaf0d08c 100644 --- a/examples/hono-bun/src/frontend/App.tsx +++ b/examples/react/frontend/App.tsx @@ -1,8 +1,8 @@ import { createRivetKit } from "@rivetkit/react"; import { useState } from "react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:8080/rivet"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); function App() { const [count, setCount] = useState(0); diff --git a/examples/react/src/frontend/index.html b/examples/react/frontend/index.html similarity index 100% rename from examples/react/src/frontend/index.html rename to examples/react/frontend/index.html diff --git a/examples/react/src/frontend/main.tsx b/examples/react/frontend/main.tsx similarity index 100% rename from examples/react/src/frontend/main.tsx rename to examples/react/frontend/main.tsx diff --git a/examples/react/package.json b/examples/react/package.json index 6062169efb..ef2c1c37c7 100644 --- a/examples/react/package.json +++ b/examples/react/package.json @@ -4,12 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", - "build": "vite build", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -17,16 +20,18 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", - "rivetkit": "workspace:*", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", "vitest": "^3.1.1" }, "dependencies": { - "@rivetkit/react": "workspace:*", + "@rivetkit/react": "*", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "rivetkit": "*" }, "stableVersion": "0.8.0", "template": { diff --git a/examples/react/src/backend/server.ts b/examples/react/src/backend/server.ts deleted file mode 100644 index aa0ee6ed61..0000000000 --- a/examples/react/src/backend/server.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { registry } from "./registry"; - -registry.start(); diff --git a/examples/react/src/backend/registry.ts b/examples/react/src/registry.ts similarity index 100% rename from examples/react/src/backend/registry.ts rename to examples/react/src/registry.ts diff --git a/examples/react/src/server.ts b/examples/react/src/server.ts new file mode 100644 index 0000000000..508b28a999 --- /dev/null +++ b/examples/react/src/server.ts @@ -0,0 +1,3 @@ +import { registry } from "./registry"; + +export default registry.serve(); diff --git a/examples/react/tsup.config.ts b/examples/react/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/react/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/react/vite.config.ts b/examples/react/vite.config.ts index 2abc7c6f82..ef2f55a297 100644 --- a/examples/react/vite.config.ts +++ b/examples/react/vite.config.ts @@ -3,11 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", build: { - outDir: "../../dist", + outDir: "dist", + emptyOutDir: true, }, server: { host: "0.0.0.0", + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/scheduling/src/frontend/App.tsx b/examples/scheduling/frontend/App.tsx similarity index 98% rename from examples/scheduling/src/frontend/App.tsx rename to examples/scheduling/frontend/App.tsx index 431f818cfd..8b4c36bbf7 100644 --- a/examples/scheduling/src/frontend/App.tsx +++ b/examples/scheduling/frontend/App.tsx @@ -1,8 +1,8 @@ import { createRivetKit } from "@rivetkit/react"; import { useEffect, useState } from "react"; -import type { Reminder, Registry } from "../backend/registry"; +import type { Reminder, Registry } from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:6420"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); export function App() { const [reminders, setReminders] = useState([]); diff --git a/examples/scheduling/src/frontend/index.html b/examples/scheduling/frontend/index.html similarity index 100% rename from examples/scheduling/src/frontend/index.html rename to examples/scheduling/frontend/index.html diff --git a/examples/scheduling/src/frontend/main.tsx b/examples/scheduling/frontend/main.tsx similarity index 100% rename from examples/scheduling/src/frontend/main.tsx rename to examples/scheduling/frontend/main.tsx diff --git a/examples/scheduling/package.json b/examples/scheduling/package.json index 2e7145579a..a30dbbc481 100644 --- a/examples/scheduling/package.json +++ b/examples/scheduling/package.json @@ -4,11 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -16,16 +20,18 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", - "vitest": "^3.1.1", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "vitest": "^3.1.1" }, "dependencies": { - "rivetkit": "workspace:*" + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "template": { "technologies": [ diff --git a/examples/scheduling/src/backend/server.ts b/examples/scheduling/src/backend/server.ts deleted file mode 100644 index aa0ee6ed61..0000000000 --- a/examples/scheduling/src/backend/server.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { registry } from "./registry"; - -registry.start(); diff --git a/examples/scheduling/src/backend/registry.ts b/examples/scheduling/src/registry.ts similarity index 100% rename from examples/scheduling/src/backend/registry.ts rename to examples/scheduling/src/registry.ts diff --git a/examples/scheduling/src/server.ts b/examples/scheduling/src/server.ts new file mode 100644 index 0000000000..508b28a999 --- /dev/null +++ b/examples/scheduling/src/server.ts @@ -0,0 +1,3 @@ +import { registry } from "./registry"; + +export default registry.serve(); diff --git a/examples/scheduling/tsup.config.ts b/examples/scheduling/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/scheduling/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/scheduling/vite.config.ts b/examples/scheduling/vite.config.ts index 19155bde35..ef2f55a297 100644 --- a/examples/scheduling/vite.config.ts +++ b/examples/scheduling/vite.config.ts @@ -3,9 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/state/src/frontend/App.tsx b/examples/state/frontend/App.tsx similarity index 95% rename from examples/state/src/frontend/App.tsx rename to examples/state/frontend/App.tsx index b11ebb8e24..7e29c8e0c6 100644 --- a/examples/state/src/frontend/App.tsx +++ b/examples/state/frontend/App.tsx @@ -1,8 +1,8 @@ import { createRivetKit } from "@rivetkit/react"; import { useEffect, useRef, useState } from "react"; -import type { Message, registry } from "../backend/registry"; +import type { Message, registry } from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:6420"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); export function App() { const [username, setUsername] = useState("User"); diff --git a/examples/state/src/frontend/index.html b/examples/state/frontend/index.html similarity index 100% rename from examples/state/src/frontend/index.html rename to examples/state/frontend/index.html diff --git a/examples/state/src/frontend/main.tsx b/examples/state/frontend/main.tsx similarity index 100% rename from examples/state/src/frontend/main.tsx rename to examples/state/frontend/main.tsx diff --git a/examples/state/package.json b/examples/state/package.json index f2fa018540..2b17bdb773 100644 --- a/examples/state/package.json +++ b/examples/state/package.json @@ -4,11 +4,15 @@ "private": true, "type": "module", "scripts": { - "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", - "dev:backend": "tsx --watch src/backend/server.ts", + "dev:backend": "srvx --import tsx src/server.ts", "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest run" + "test": "vitest run", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^22.13.9", @@ -16,16 +20,18 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.2.0", "concurrently": "^8.2.2", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^3.12.7", "typescript": "^5.5.2", "vite": "^5.0.0", - "vitest": "^3.1.1", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "vitest": "^3.1.1" }, "dependencies": { - "rivetkit": "workspace:*" + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" }, "template": { "technologies": [ diff --git a/examples/state/src/backend/server.ts b/examples/state/src/backend/server.ts deleted file mode 100644 index aa0ee6ed61..0000000000 --- a/examples/state/src/backend/server.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { registry } from "./registry"; - -registry.start(); diff --git a/examples/state/src/backend/registry.ts b/examples/state/src/registry.ts similarity index 100% rename from examples/state/src/backend/registry.ts rename to examples/state/src/registry.ts diff --git a/examples/state/src/server.ts b/examples/state/src/server.ts new file mode 100644 index 0000000000..508b28a999 --- /dev/null +++ b/examples/state/src/server.ts @@ -0,0 +1,3 @@ +import { registry } from "./registry"; + +export default registry.serve(); diff --git a/examples/state/tsup.config.ts b/examples/state/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/state/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/state/vite.config.ts b/examples/state/vite.config.ts index 19155bde35..ef2f55a297 100644 --- a/examples/state/vite.config.ts +++ b/examples/state/vite.config.ts @@ -3,9 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", + build: { + outDir: "dist", + emptyOutDir: true, + }, server: { host: "0.0.0.0", port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, }); diff --git a/examples/stream/src/frontend/App.tsx b/examples/stream/frontend/App.tsx similarity index 97% rename from examples/stream/src/frontend/App.tsx rename to examples/stream/frontend/App.tsx index 7dc73e6ea6..3abfe51ff7 100644 --- a/examples/stream/src/frontend/App.tsx +++ b/examples/stream/frontend/App.tsx @@ -1,8 +1,8 @@ import { createRivetKit } from "@rivetkit/react"; import { useEffect, useState } from "react"; -import type { registry } from "../backend/registry"; +import type { registry } from "../src/registry"; -const { useActor } = createRivetKit("http://localhost:8080"); +const { useActor } = createRivetKit(`${window.location.origin}/api/rivet`); export function App() { const [topValues, setTopValues] = useState([]); diff --git a/examples/stream/src/frontend/index.html b/examples/stream/frontend/index.html similarity index 100% rename from examples/stream/src/frontend/index.html rename to examples/stream/frontend/index.html diff --git a/examples/stream/src/frontend/main.tsx b/examples/stream/frontend/main.tsx similarity index 100% rename from examples/stream/src/frontend/main.tsx rename to examples/stream/frontend/main.tsx diff --git a/examples/stream/package.json b/examples/stream/package.json index 6c73363271..7c97d230fd 100644 --- a/examples/stream/package.json +++ b/examples/stream/package.json @@ -3,17 +3,15 @@ "version": "2.0.21", "type": "module", "scripts": { - "dev": "concurrently \"tsx --watch src/backend/server.ts\" \"vite\"", - "build": "vite build", - "preview": "vite preview", + "dev:backend": "srvx --import tsx src/server.ts", + "dev:frontend": "vite", + "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"", + "start": "srvx --static=../frontend/dist dist/server.js", "check-types": "tsc --noEmit", - "test": "vitest" - }, - "dependencies": { - "rivetkit": "workspace:*", - "@rivetkit/react": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "test": "vitest", + "build:frontend": "vite build", + "build:backend": "tsup", + "build": "npm run build:backend && npm run build:frontend" }, "devDependencies": { "@types/node": "^20.0.0", @@ -21,11 +19,19 @@ "@types/react-dom": "^18.2.0", "@vitejs/plugin-react": "^4.0.0", "concurrently": "^8.2.0", + "srvx": "^0.10.0", + "tsup": "^8.5.1", "tsx": "^4.0.0", "typescript": "^5.0.0", "vite": "^5.0.0", "vitest": "^3.1.1" }, + "dependencies": { + "@rivetkit/react": "*", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rivetkit": "*" + }, "template": { "technologies": [ "typescript" @@ -33,7 +39,7 @@ "tags": [ "real-time" ], - "frontendPort": 3000 + "frontendPort": 5173 }, "license": "MIT" } diff --git a/examples/stream/src/backend/server.ts b/examples/stream/src/backend/server.ts deleted file mode 100644 index aa0ee6ed61..0000000000 --- a/examples/stream/src/backend/server.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { registry } from "./registry"; - -registry.start(); diff --git a/examples/stream/src/backend/registry.ts b/examples/stream/src/registry.ts similarity index 100% rename from examples/stream/src/backend/registry.ts rename to examples/stream/src/registry.ts diff --git a/examples/stream/src/server.ts b/examples/stream/src/server.ts new file mode 100644 index 0000000000..508b28a999 --- /dev/null +++ b/examples/stream/src/server.ts @@ -0,0 +1,3 @@ +import { registry } from "./registry"; + +export default registry.serve(); diff --git a/examples/stream/tsup.config.ts b/examples/stream/tsup.config.ts new file mode 100644 index 0000000000..18240b4aa0 --- /dev/null +++ b/examples/stream/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + server: "src/server.ts", + }, + format: ["esm"], + outDir: "dist", + bundle: true, + splitting: false, + shims: true, +}); diff --git a/examples/stream/vite.config.ts b/examples/stream/vite.config.ts index 5a22891184..dfade40735 100644 --- a/examples/stream/vite.config.ts +++ b/examples/stream/vite.config.ts @@ -3,13 +3,16 @@ import { defineConfig } from "vite"; export default defineConfig({ plugins: [react()], - root: "src/frontend", + root: "frontend", server: { host: "0.0.0.0", - port: 3000, + port: 5173, + proxy: { + "/api/rivet/": "http://localhost:3000", + }, }, build: { - outDir: "../../dist", + outDir: "dist", emptyOutDir: true, }, }); diff --git a/examples/trpc/package.json b/examples/trpc/package.json index 321fcefbe5..d5e26d956f 100644 --- a/examples/trpc/package.json +++ b/examples/trpc/package.json @@ -5,11 +5,13 @@ "type": "module", "scripts": { "dev": "tsx --watch src/server.ts", + "start": "tsx src/server.ts", "client": "tsx scripts/client.ts", - "check-types": "tsc --noEmit" + "check-types": "tsc --noEmit", + "build": "tsc" }, "devDependencies": { - "rivetkit": "workspace:*", + "rivetkit": "*", "@types/node": "^22.13.9", "tsx": "^3.12.7", "typescript": "^5.5.2" diff --git a/examples/trpc/src/server.ts b/examples/trpc/src/server.ts index 412be282a1..e191e84c4f 100644 --- a/examples/trpc/src/server.ts +++ b/examples/trpc/src/server.ts @@ -1,10 +1,12 @@ import { initTRPC } from "@trpc/server"; import { createHTTPServer } from "@trpc/server/adapters/standalone"; +import { createClient } from "rivetkit/client"; import { z } from "zod"; import { registry } from "./registry.js"; // Start RivetKit -const { client } = registry.start(); +registry.startRunner(); +const client = createClient(); // Initialize tRPC const t = initTRPC.create(); diff --git a/package.json b/package.json index d3fcfe53ff..65c1ad9cfe 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,11 @@ }, "resolutions": { "rivetkit": "workspace:*", + "@rivetkit/react": "workspace:*", + "@rivetkit/cloudflare-workers": "workspace:*", + "@rivetkit/next-js": "workspace:*", + "@rivetkit/db": "workspace:*", + "@rivetkit/engine-api-full": "workspace:*", "@types/react": "^19", "@types/react-dom": "^19", "@clerk/shared": "3.27.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 02e239c83c..7a8fe13fdc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,11 @@ settings: overrides: rivetkit: workspace:* + '@rivetkit/react': workspace:* + '@rivetkit/cloudflare-workers': workspace:* + '@rivetkit/next-js': workspace:* + '@rivetkit/db': workspace:* + '@rivetkit/engine-api-full': workspace:* '@types/react': ^19 '@types/react-dom': ^19 '@clerk/shared': 3.27.1 @@ -247,13 +252,19 @@ importers: examples/actor-actions: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.19.1 @@ -269,12 +280,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -305,6 +316,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) + rivetkit: + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/rivetkit zod: specifier: ^3.25.69 version: 3.25.76 @@ -324,9 +338,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - rivetkit: - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/rivetkit + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -352,8 +369,8 @@ importers: specifier: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@715f221 version: https://pkg.pr.new/rivet-dev/cloud/@rivet-gg/cloud@715f221 '@rivetkit/engine-api-full': - specifier: latest - version: 2.0.33 + specifier: workspace:* + version: link:../../engine/sdks/typescript/api-full dotenv: specifier: ^17.2.2 version: 17.2.3 @@ -362,7 +379,7 @@ importers: version: 9.6.1 freestyle-sandboxes: specifier: ^0.0.95 - version: 0.0.95(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(ws@8.19.0) + version: 0.0.95(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(ws@8.19.0) hono: specifier: ^4.6.0 version: 4.9.8 @@ -403,16 +420,22 @@ importers: examples/chat-room: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react hono: specifier: ^4.11.3 version: 4.11.3 + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.18.1 @@ -434,12 +457,12 @@ importers: prompts: specifier: ^2.4.2 version: 2.4.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -564,13 +587,19 @@ importers: examples/cross-actor-actions: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.19.1 @@ -586,12 +615,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -607,13 +636,19 @@ importers: examples/cursors: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.18.1 @@ -635,12 +670,12 @@ importers: prompts: specifier: ^2.4.2 version: 2.4.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -656,13 +691,19 @@ importers: examples/cursors-raw-websocket: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.18.1 @@ -684,12 +725,12 @@ importers: prompts: specifier: ^2.4.2 version: 2.4.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -704,13 +745,17 @@ importers: version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.1)(@vitest/ui@3.1.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) examples/custom-serverless: + dependencies: + rivetkit: + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: '@types/node': specifier: ^22.13.9 version: 22.19.1 - rivetkit: - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/rivetkit + srvx: + specifier: ^0.10.0 + version: 0.10.0 tsx: specifier: ^3.12.7 version: 3.14.0 @@ -816,6 +861,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) + rivetkit: + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/rivetkit zod: specifier: ^4.1.0 version: 4.1.13 @@ -835,9 +883,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - rivetkit: - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/rivetkit + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -918,6 +969,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) + rivetkit: + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: '@types/bun': specifier: ^1.1.15 @@ -934,9 +988,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - rivetkit: - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/rivetkit + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@25.0.3))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -964,6 +1021,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) + rivetkit: + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: '@types/node': specifier: ^22.13.9 @@ -980,9 +1040,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - rivetkit: - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/rivetkit + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -1011,6 +1074,9 @@ importers: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: + '@types/node': + specifier: ^22.13.9 + version: 22.19.3 '@types/react': specifier: ^19 version: 19.2.2 @@ -1019,10 +1085,16 @@ importers: version: 19.2.2(@types/react@19.2.2) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.7.0(vite@5.4.20(@types/node@25.0.3)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)) + version: 4.7.0(vite@5.4.20(@types/node@22.19.3)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)) concurrently: specifier: ^8.2.2 version: 8.2.2 + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.3))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^4.7.1 version: 4.20.5 @@ -1031,17 +1103,23 @@ importers: version: 5.9.2 vite: specifier: ^5.2.0 - version: 5.4.20(@types/node@25.0.3)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) + version: 5.4.20(@types/node@22.19.3)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) examples/multi-region: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.19.1 @@ -1057,12 +1135,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -1078,13 +1156,19 @@ importers: examples/native-websockets: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.19.1 @@ -1103,12 +1187,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -1168,6 +1252,9 @@ importers: '@types/node': specifier: ^22.13.9 version: 22.19.1 + srvx: + specifier: ^0.10.0 + version: 0.10.0 tsx: specifier: ^3.12.7 version: 3.14.0 @@ -1211,6 +1298,12 @@ importers: concurrently: specifier: ^9.1.2 version: 9.2.1 + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^4.20.0 version: 4.20.5 @@ -1257,6 +1350,12 @@ importers: concurrently: specifier: ^9.1.0 version: 9.2.1 + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^4.19.2 version: 4.20.5 @@ -1278,6 +1377,9 @@ importers: '@hono/node-ws': specifier: ^1.1.1 version: 1.2.0(@hono/node-server@1.19.1(hono@4.9.8))(hono@4.9.8) + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react hono: specifier: ^4.7.0 version: 4.9.8 @@ -1312,6 +1414,12 @@ importers: concurrently: specifier: ^9.1.0 version: 9.2.1 + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^4.19.2 version: 4.20.5 @@ -1336,6 +1444,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) + rivetkit: + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: '@types/node': specifier: ^22.13.9 @@ -1352,9 +1463,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - rivetkit: - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/rivetkit + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -1370,13 +1484,19 @@ importers: examples/scheduling: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.19.1 @@ -1392,12 +1512,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -1413,13 +1533,19 @@ importers: examples/state: dependencies: + '@rivetkit/react': + specifier: workspace:* + version: link:../../rivetkit-typescript/packages/react + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) rivetkit: specifier: workspace:* version: link:../../rivetkit-typescript/packages/rivetkit devDependencies: - '@rivetkit/react': - specifier: workspace:* - version: link:../../rivetkit-typescript/packages/react '@types/node': specifier: ^22.13.9 version: 22.19.1 @@ -1435,12 +1561,12 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^3.12.7 version: 3.14.0 @@ -1484,6 +1610,12 @@ importers: concurrently: specifier: ^8.2.0 version: 8.2.2 + srvx: + specifier: ^0.10.0 + version: 0.10.0 + tsup: + specifier: ^8.5.1 + version: 8.5.1(@microsoft/api-extractor@7.53.2(@types/node@20.19.13))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.2) tsx: specifier: ^4.0.0 version: 4.20.5 @@ -1703,7 +1835,7 @@ importers: version: 1.131.36(@tanstack/react-router@1.131.36(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.131.36)(csstype@3.1.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(solid-js@1.9.9)(tiny-invariant@1.3.3) '@tanstack/router-plugin': specifier: ^1.131.36 - version: 1.131.36(@tanstack/react-router@1.131.36(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))(webpack@5.101.3(esbuild@0.25.12)) + version: 1.131.36(@tanstack/react-router@1.131.36(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))(webpack@5.101.3(esbuild@0.27.2)) '@tanstack/store': specifier: ^0.7.5 version: 0.7.5 @@ -1790,7 +1922,7 @@ importers: version: 3.1.1 favigo: specifier: ^1.1.0 - version: 1.1.0(esbuild@0.25.12)(rollup@4.53.3)(vite@5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))(webpack@5.101.3(esbuild@0.25.12)) + version: 1.1.0(esbuild@0.27.2)(rollup@4.53.3)(vite@5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))(webpack@5.101.3(esbuild@0.27.2)) file-saver: specifier: ^2.0.5 version: 2.0.5 @@ -1985,7 +2117,7 @@ importers: version: 3.13.12(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@uiw/codemirror-extensions-basic-setup': specifier: ^4.25.1 - version: 4.25.1(@codemirror/autocomplete@6.19.0)(@codemirror/commands@6.8.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2) + version: 4.25.1(@codemirror/autocomplete@6.19.0)(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2) '@uiw/codemirror-theme-github': specifier: ^4.25.1 version: 4.25.1(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2) @@ -2386,7 +2518,7 @@ importers: version: 5.9.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.2)(vite@5.4.20(@types/node@22.18.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)) + version: 5.1.4(typescript@5.9.2)(vite@7.2.2(@types/node@22.18.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.2)) vitest: specifier: ^3.1.1 version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.1)(@vitest/ui@3.1.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) @@ -3762,6 +3894,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.27.2': + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.18.20': resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -3798,6 +3936,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.27.2': + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.18.20': resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} @@ -3834,6 +3978,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.27.2': + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.18.20': resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} @@ -3870,6 +4020,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.27.2': + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.18.20': resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} @@ -3906,6 +4062,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.27.2': + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.18.20': resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} @@ -3942,6 +4104,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.27.2': + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.18.20': resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} @@ -3978,6 +4146,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.27.2': + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.18.20': resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} @@ -4014,6 +4188,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.27.2': + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.18.20': resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} @@ -4050,6 +4230,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.27.2': + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.18.20': resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} @@ -4086,6 +4272,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.27.2': + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.18.20': resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} @@ -4122,6 +4314,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.27.2': + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.18.20': resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -4158,6 +4356,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.27.2': + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.18.20': resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} @@ -4194,6 +4398,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.27.2': + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.18.20': resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} @@ -4230,6 +4440,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.27.2': + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.18.20': resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} @@ -4266,6 +4482,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.27.2': + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.18.20': resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} @@ -4302,6 +4524,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.27.2': + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.18.20': resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} @@ -4338,6 +4566,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.27.2': + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.12': resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} engines: {node: '>=18'} @@ -4356,6 +4590,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.27.2': + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.18.20': resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} @@ -4392,6 +4632,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.27.2': + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.12': resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} engines: {node: '>=18'} @@ -4410,6 +4656,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.27.2': + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.18.20': resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} @@ -4446,6 +4698,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.27.2': + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openharmony-arm64@0.25.12': resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} engines: {node: '>=18'} @@ -4458,6 +4716,12 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.27.2': + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.18.20': resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} @@ -4494,6 +4758,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.27.2': + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.18.20': resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} @@ -4530,6 +4800,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.27.2': + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.18.20': resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} @@ -4566,6 +4842,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.27.2': + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.18.20': resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} @@ -4602,6 +4884,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.27.2': + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6584,9 +6872,6 @@ packages: resolution: {integrity: sha512-3qndQUQXLdwafMEqfhz24hUtDPcsf1Bu3q52Kb8MqeH8JUh3h6R4HYW3ZJXiQsLcyYyFM68PuIwlLRlg1xDEpg==} engines: {node: ^14.18.0 || >=16.0.0} - '@rivetkit/engine-api-full@2.0.33': - resolution: {integrity: sha512-6dGtXPmpgaPZO+uJ0Qq3O6F1/xunU6yrQ5HVFijWtVyPfg1JaYZrZyhFlEthckTXaI7iJvaQszcVCh8gc5RRXw==} - '@rivetkit/fast-json-patch@3.1.2': resolution: {integrity: sha512-CtA50xgsSSzICQduF/NDShPRzvucnNvsW/lQO0WgMTT1XAj9Lfae4pm7r3llFwilgG+9iq76Hv1LUqNy72v6yw==} @@ -9398,6 +9683,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.27.2: + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -9659,12 +9949,6 @@ packages: expo: '*' react-native: '*' - expo-constants@18.0.10: - resolution: {integrity: sha512-Rhtv+X974k0Cahmvx6p7ER5+pNhBC0XbP1lRviL2J1Xl4sT2FBaIuIxF/0I0CbhOsySf0ksqc5caFweAy9Ewiw==} - peerDependencies: - expo: '*' - react-native: '*' - expo-constants@18.0.13: resolution: {integrity: sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==} peerDependencies: @@ -13248,6 +13532,11 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + srvx@0.10.0: + resolution: {integrity: sha512-NqIsR+wQCfkvvwczBh8J8uM4wTZx41K2lLSEp/3oMp917ODVVMtW5Me4epCmQ3gH8D+0b+/t4xxkUKutyhimTA==} + engines: {node: '>=20.16.0'} + hasBin: true + stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} @@ -13717,6 +14006,25 @@ packages: typescript: optional: true + tsup@8.5.1: + resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} + 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 + tsx@3.14.0: resolution: {integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==} hasBin: true @@ -14943,29 +15251,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.4)': + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.4)': + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.3 @@ -15021,9 +15329,9 @@ snapshots: '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.4)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 '@babel/traverse': 7.28.5 @@ -15039,6 +15347,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: '@babel/traverse': 7.28.4 @@ -15082,73 +15399,73 @@ snapshots: dependencies: '@babel/types': 7.28.5 - '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-export-default-from@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-export-default-from@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': @@ -15156,157 +15473,167 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.4)': + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)': @@ -15317,77 +15644,85 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.4)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -15396,61 +15731,71 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)': @@ -15464,32 +15809,32 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.4)': + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.4) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-react@7.28.5(@babel/core@7.28.4)': + '@babel/preset-react@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -15504,14 +15849,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.28.5(@babel/core@7.28.4)': + '@babel/preset-typescript@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.4) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -16057,6 +16402,9 @@ snapshots: '@esbuild/aix-ppc64@0.25.9': optional: true + '@esbuild/aix-ppc64@0.27.2': + optional: true + '@esbuild/android-arm64@0.18.20': optional: true @@ -16075,6 +16423,9 @@ snapshots: '@esbuild/android-arm64@0.25.9': optional: true + '@esbuild/android-arm64@0.27.2': + optional: true + '@esbuild/android-arm@0.18.20': optional: true @@ -16093,6 +16444,9 @@ snapshots: '@esbuild/android-arm@0.25.9': optional: true + '@esbuild/android-arm@0.27.2': + optional: true + '@esbuild/android-x64@0.18.20': optional: true @@ -16111,6 +16465,9 @@ snapshots: '@esbuild/android-x64@0.25.9': optional: true + '@esbuild/android-x64@0.27.2': + optional: true + '@esbuild/darwin-arm64@0.18.20': optional: true @@ -16129,6 +16486,9 @@ snapshots: '@esbuild/darwin-arm64@0.25.9': optional: true + '@esbuild/darwin-arm64@0.27.2': + optional: true + '@esbuild/darwin-x64@0.18.20': optional: true @@ -16147,6 +16507,9 @@ snapshots: '@esbuild/darwin-x64@0.25.9': optional: true + '@esbuild/darwin-x64@0.27.2': + optional: true + '@esbuild/freebsd-arm64@0.18.20': optional: true @@ -16165,6 +16528,9 @@ snapshots: '@esbuild/freebsd-arm64@0.25.9': optional: true + '@esbuild/freebsd-arm64@0.27.2': + optional: true + '@esbuild/freebsd-x64@0.18.20': optional: true @@ -16183,6 +16549,9 @@ snapshots: '@esbuild/freebsd-x64@0.25.9': optional: true + '@esbuild/freebsd-x64@0.27.2': + optional: true + '@esbuild/linux-arm64@0.18.20': optional: true @@ -16201,6 +16570,9 @@ snapshots: '@esbuild/linux-arm64@0.25.9': optional: true + '@esbuild/linux-arm64@0.27.2': + optional: true + '@esbuild/linux-arm@0.18.20': optional: true @@ -16219,6 +16591,9 @@ snapshots: '@esbuild/linux-arm@0.25.9': optional: true + '@esbuild/linux-arm@0.27.2': + optional: true + '@esbuild/linux-ia32@0.18.20': optional: true @@ -16237,6 +16612,9 @@ snapshots: '@esbuild/linux-ia32@0.25.9': optional: true + '@esbuild/linux-ia32@0.27.2': + optional: true + '@esbuild/linux-loong64@0.18.20': optional: true @@ -16255,6 +16633,9 @@ snapshots: '@esbuild/linux-loong64@0.25.9': optional: true + '@esbuild/linux-loong64@0.27.2': + optional: true + '@esbuild/linux-mips64el@0.18.20': optional: true @@ -16273,6 +16654,9 @@ snapshots: '@esbuild/linux-mips64el@0.25.9': optional: true + '@esbuild/linux-mips64el@0.27.2': + optional: true + '@esbuild/linux-ppc64@0.18.20': optional: true @@ -16291,6 +16675,9 @@ snapshots: '@esbuild/linux-ppc64@0.25.9': optional: true + '@esbuild/linux-ppc64@0.27.2': + optional: true + '@esbuild/linux-riscv64@0.18.20': optional: true @@ -16309,6 +16696,9 @@ snapshots: '@esbuild/linux-riscv64@0.25.9': optional: true + '@esbuild/linux-riscv64@0.27.2': + optional: true + '@esbuild/linux-s390x@0.18.20': optional: true @@ -16327,6 +16717,9 @@ snapshots: '@esbuild/linux-s390x@0.25.9': optional: true + '@esbuild/linux-s390x@0.27.2': + optional: true + '@esbuild/linux-x64@0.18.20': optional: true @@ -16345,6 +16738,9 @@ snapshots: '@esbuild/linux-x64@0.25.9': optional: true + '@esbuild/linux-x64@0.27.2': + optional: true + '@esbuild/netbsd-arm64@0.25.12': optional: true @@ -16354,6 +16750,9 @@ snapshots: '@esbuild/netbsd-arm64@0.25.9': optional: true + '@esbuild/netbsd-arm64@0.27.2': + optional: true + '@esbuild/netbsd-x64@0.18.20': optional: true @@ -16372,6 +16771,9 @@ snapshots: '@esbuild/netbsd-x64@0.25.9': optional: true + '@esbuild/netbsd-x64@0.27.2': + optional: true + '@esbuild/openbsd-arm64@0.25.12': optional: true @@ -16381,6 +16783,9 @@ snapshots: '@esbuild/openbsd-arm64@0.25.9': optional: true + '@esbuild/openbsd-arm64@0.27.2': + optional: true + '@esbuild/openbsd-x64@0.18.20': optional: true @@ -16399,12 +16804,18 @@ snapshots: '@esbuild/openbsd-x64@0.25.9': optional: true + '@esbuild/openbsd-x64@0.27.2': + optional: true + '@esbuild/openharmony-arm64@0.25.12': optional: true '@esbuild/openharmony-arm64@0.25.9': optional: true + '@esbuild/openharmony-arm64@0.27.2': + optional: true + '@esbuild/sunos-x64@0.18.20': optional: true @@ -16423,6 +16834,9 @@ snapshots: '@esbuild/sunos-x64@0.25.9': optional: true + '@esbuild/sunos-x64@0.27.2': + optional: true + '@esbuild/win32-arm64@0.18.20': optional: true @@ -16441,6 +16855,9 @@ snapshots: '@esbuild/win32-arm64@0.25.9': optional: true + '@esbuild/win32-arm64@0.27.2': + optional: true + '@esbuild/win32-ia32@0.18.20': optional: true @@ -16459,6 +16876,9 @@ snapshots: '@esbuild/win32-ia32@0.25.9': optional: true + '@esbuild/win32-ia32@0.27.2': + optional: true + '@esbuild/win32-x64@0.18.20': optional: true @@ -16477,6 +16897,9 @@ snapshots: '@esbuild/win32-x64@0.25.9': optional: true + '@esbuild/win32-x64@0.27.2': + optional: true + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@1.21.7))': dependencies: eslint: 9.39.1(jiti@1.21.7) @@ -16523,7 +16946,7 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@expo/cli@54.0.13(expo-router@4.0.21)(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))': + '@expo/cli@54.0.13(expo-router@4.0.21)(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))': dependencies: '@0no-co/graphql.web': 1.2.0 '@expo/code-signing-certificates': 0.0.5 @@ -16558,7 +16981,7 @@ snapshots: connect: 3.7.0 debug: 4.4.3 env-editor: 0.4.2 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) expo-server: 1.0.5 freeport-async: 2.0.0 getenv: 2.0.0 @@ -16591,8 +17014,8 @@ snapshots: wrap-ansi: 7.0.0 ws: 8.19.0 optionalDependencies: - expo-router: 4.0.21(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + expo-router: 4.0.21(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) transitivePeerDependencies: - '@modelcontextprotocol/sdk' - bufferutil @@ -16690,12 +17113,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devtools@0.1.7(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': + '@expo/devtools@0.1.7(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': dependencies: chalk: 4.1.2 optionalDependencies: react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) '@expo/env@0.4.2': dependencies: @@ -16781,7 +17204,7 @@ snapshots: '@expo/json-file': 10.0.8 '@expo/metro': 54.1.0 '@expo/spawn-async': 1.7.2 - browserslist: 4.28.0 + browserslist: 4.28.1 chalk: 4.1.2 debug: 4.4.3 dotenv: 16.4.7 @@ -16795,15 +17218,15 @@ snapshots: postcss: 8.4.49 resolve-from: 5.0.0 optionalDependencies: - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))': + '@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))': dependencies: - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) '@expo/metro@54.1.0': dependencies: @@ -16859,7 +17282,7 @@ snapshots: '@expo/json-file': 10.0.8 '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) resolve-from: 5.0.0 semver: 7.7.3 xml2js: 0.6.0 @@ -16885,11 +17308,11 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': + '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': dependencies: - expo-font: 14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo-font: 14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) '@expo/ws-tunnel@1.0.6': {} @@ -17427,7 +17850,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/yargs': 15.0.19 chalk: 4.1.2 @@ -17613,6 +18036,15 @@ snapshots: - '@types/node' optional: true + '@microsoft/api-extractor-model@7.31.2(@types/node@22.19.3)': + dependencies: + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.17.1(@types/node@22.19.3) + transitivePeerDependencies: + - '@types/node' + optional: true + '@microsoft/api-extractor-model@7.31.2(@types/node@24.7.1)': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -17706,6 +18138,25 @@ snapshots: - '@types/node' optional: true + '@microsoft/api-extractor@7.53.2(@types/node@22.19.3)': + dependencies: + '@microsoft/api-extractor-model': 7.31.2(@types/node@22.19.3) + '@microsoft/tsdoc': 0.15.1 + '@microsoft/tsdoc-config': 0.17.1 + '@rushstack/node-core-library': 5.17.1(@types/node@22.19.3) + '@rushstack/rig-package': 0.6.0 + '@rushstack/terminal': 0.19.2(@types/node@22.19.3) + '@rushstack/ts-command-line': 5.1.2(@types/node@22.19.3) + lodash: 4.17.21 + minimatch: 10.0.3 + resolve: 1.22.11 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.8.2 + transitivePeerDependencies: + - '@types/node' + optional: true + '@microsoft/api-extractor@7.53.2(@types/node@24.7.1)': dependencies: '@microsoft/api-extractor-model': 7.31.2(@types/node@24.7.1) @@ -18655,67 +19106,67 @@ snapshots: '@react-native/assets-registry@0.82.1': {} - '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.28.4)': + '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.28.5)': dependencies: '@babel/traverse': 7.28.5 - '@react-native/codegen': 0.81.5(@babel/core@7.28.4) + '@react-native/codegen': 0.81.5(@babel/core@7.28.5) transitivePeerDependencies: - '@babel/core' - supports-color - '@react-native/babel-preset@0.81.5(@babel/core@7.28.4)': + '@react-native/babel-preset@0.81.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-export-default-from': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) '@babel/template': 7.27.2 - '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.28.4) + '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.28.5) babel-plugin-syntax-hermes-parser: 0.29.1 - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.4) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) react-refresh: 0.14.2 transitivePeerDependencies: - supports-color - '@react-native/codegen@0.81.5(@babel/core@7.28.4)': + '@react-native/codegen@0.81.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/parser': 7.28.5 glob: 7.2.3 hermes-parser: 0.29.1 @@ -18723,9 +19174,9 @@ snapshots: nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/codegen@0.82.1(@babel/core@7.28.4)': + '@react-native/codegen@0.82.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/parser': 7.28.5 glob: 7.2.3 hermes-parser: 0.32.0 @@ -18801,37 +19252,37 @@ snapshots: '@react-native/normalize-colors@0.82.1': {} - '@react-native/virtualized-lists@0.82.1(@types/react@19.2.2)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': + '@react-native/virtualized-lists@0.82.1(@types/react@19.2.2)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) optionalDependencies: '@types/react': 19.2.2 - '@react-navigation/bottom-tabs@7.4.9(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': + '@react-navigation/bottom-tabs@7.4.9(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-navigation/elements': 2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/elements': 2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) color: 4.2.3 react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) - react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) + react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@react-native-masked-view/masked-view' optional: true - '@react-navigation/bottom-tabs@7.4.9(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0)': + '@react-navigation/bottom-tabs@7.4.9(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0)': dependencies: - '@react-navigation/elements': 2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) - '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/elements': 2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) + '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) color: 4.2.3 react: 19.2.0 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) - react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) + react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -18846,60 +19297,60 @@ snapshots: use-latest-callback: 0.2.6(react@19.2.0) use-sync-external-store: 1.6.0(react@19.2.0) - '@react-navigation/elements@2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': + '@react-navigation/elements@2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) color: 4.2.3 react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) - react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) + react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) use-latest-callback: 0.2.6(react@18.3.1) use-sync-external-store: 1.6.0(react@18.3.1) optional: true - '@react-navigation/elements@2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0)': + '@react-navigation/elements@2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0)': dependencies: - '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) color: 4.2.3 react: 19.2.0 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) - react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) + react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) use-latest-callback: 0.2.6(react@19.2.0) use-sync-external-store: 1.6.0(react@19.2.0) - '@react-navigation/native-stack@7.3.28(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': + '@react-navigation/native-stack@7.3.28(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-navigation/elements': 2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/elements': 2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) - react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) + react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' optional: true - '@react-navigation/native-stack@7.3.28(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0)': + '@react-navigation/native-stack@7.3.28(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0)': dependencies: - '@react-navigation/elements': 2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) - '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/elements': 2.6.5(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) + '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) react: 19.2.0 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) - react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) + react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': + '@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)': dependencies: '@react-navigation/core': 7.12.4(react@19.2.0) escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) use-latest-callback: 0.2.6(react@19.2.0) '@react-navigation/routers@7.5.1': @@ -18971,17 +19422,6 @@ snapshots: '@rivetkit/bare-ts@0.6.2': {} - '@rivetkit/engine-api-full@2.0.33': - dependencies: - form-data: 4.0.5 - js-base64: 3.7.8 - node-fetch: 2.7.0 - qs: 6.14.0 - readable-stream: 4.7.0 - url-join: 5.0.0 - transitivePeerDependencies: - - encoding - '@rivetkit/fast-json-patch@3.1.2': {} '@rivetkit/on-change@6.0.2-rc.1': {} @@ -19180,6 +19620,20 @@ snapshots: '@types/node': 22.19.1 optional: true + '@rushstack/node-core-library@5.17.1(@types/node@22.19.3)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 11.3.3 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.11 + semver: 7.5.4 + optionalDependencies: + '@types/node': 22.19.3 + optional: true + '@rushstack/node-core-library@5.17.1(@types/node@24.7.1)': dependencies: ajv: 8.13.0 @@ -19223,6 +19677,11 @@ snapshots: '@types/node': 22.19.1 optional: true + '@rushstack/problem-matcher@0.1.1(@types/node@22.19.3)': + optionalDependencies: + '@types/node': 22.19.3 + optional: true + '@rushstack/problem-matcher@0.1.1(@types/node@24.7.1)': optionalDependencies: '@types/node': 24.7.1 @@ -19278,6 +19737,15 @@ snapshots: '@types/node': 22.19.1 optional: true + '@rushstack/terminal@0.19.2(@types/node@22.19.3)': + dependencies: + '@rushstack/node-core-library': 5.17.1(@types/node@22.19.3) + '@rushstack/problem-matcher': 0.1.1(@types/node@22.19.3) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 22.19.3 + optional: true + '@rushstack/terminal@0.19.2(@types/node@24.7.1)': dependencies: '@rushstack/node-core-library': 5.17.1(@types/node@24.7.1) @@ -19335,6 +19803,16 @@ snapshots: - '@types/node' optional: true + '@rushstack/ts-command-line@5.1.2(@types/node@22.19.3)': + dependencies: + '@rushstack/terminal': 0.19.2(@types/node@22.19.3) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + optional: true + '@rushstack/ts-command-line@5.1.2(@types/node@24.7.1)': dependencies: '@rushstack/terminal': 0.19.2(@types/node@24.7.1) @@ -19740,7 +20218,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.131.36(@tanstack/react-router@1.131.36(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))(webpack@5.101.3(esbuild@0.25.12))': + '@tanstack/router-plugin@1.131.36(@tanstack/react-router@1.131.36(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))(webpack@5.101.3(esbuild@0.27.2))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) @@ -19759,7 +20237,7 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.131.36(react-dom@19.1.1(react@19.1.1))(react@19.1.1) vite: 5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) - webpack: 5.101.3(esbuild@0.25.12) + webpack: 5.101.3(esbuild@0.27.2) transitivePeerDependencies: - supports-color @@ -19840,12 +20318,12 @@ snapshots: '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/bun@1.3.0(@types/react@19.2.2)': dependencies: @@ -19862,11 +20340,11 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/cors@2.8.19': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/d3-array@3.2.1': {} @@ -19922,7 +20400,7 @@ snapshots: '@types/express-serve-static-core@4.19.7': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/qs': 6.9.8 '@types/range-parser': 1.2.7 '@types/send': 1.2.0 @@ -20025,6 +20503,7 @@ snapshots: '@types/node@25.0.3': dependencies: undici-types: 7.16.0 + optional: true '@types/parse-json@4.0.2': {} @@ -20064,16 +20543,16 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/send@1.2.0': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/serve-static@1.15.9': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/send': 0.17.5 '@types/stack-utils@2.0.3': {} @@ -20102,7 +20581,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.3 optional: true '@typescript-eslint/eslint-plugin@8.47.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)': @@ -20218,6 +20697,16 @@ snapshots: '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.2 + '@uiw/codemirror-extensions-basic-setup@4.25.1(@codemirror/autocomplete@6.19.0)(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)': + dependencies: + '@codemirror/autocomplete': 6.19.0 + '@codemirror/commands': 6.9.0 + '@codemirror/language': 6.11.3 + '@codemirror/lint': 6.9.0 + '@codemirror/search': 6.5.11 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.38.2 + '@uiw/codemirror-theme-github@4.25.1(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2)': dependencies: '@uiw/codemirror-themes': 4.25.1(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.2) @@ -20375,6 +20864,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitejs/plugin-react@4.7.0(vite@5.4.20(@types/node@22.19.3)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))': + dependencies: + '@babel/core': 7.28.4 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 5.4.20(@types/node@22.19.3)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) + transitivePeerDependencies: + - supports-color + '@vitejs/plugin-react@4.7.0(vite@5.4.20(@types/node@25.0.3)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))': dependencies: '@babel/core': 7.28.4 @@ -21027,13 +21528,13 @@ snapshots: transitivePeerDependencies: - supports-color - babel-jest@29.7.0(@babel/core@7.28.4): + babel-jest@29.7.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.28.4) + babel-preset-jest: 29.6.3(@babel/core@7.28.5) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -21063,27 +21564,27 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.11 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.4): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): dependencies: '@babel/compat-data': 7.28.5 - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.4): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) core-js-compat: 3.47.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.4): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -21101,68 +21602,68 @@ snapshots: dependencies: hermes-parser: 0.32.0 - babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.28.4): + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.28.5): dependencies: - '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - '@babel/core' - babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4): + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) - - babel-preset-expo@54.0.9(@babel/core@7.28.4)(@babel/runtime@7.28.4)(expo@54.0.18)(react-refresh@0.14.2): + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) + + babel-preset-expo@54.0.9(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.18)(react-refresh@0.14.2): dependencies: '@babel/helper-module-imports': 7.27.1 - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-export-default-from': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.4) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.4) - '@babel/preset-react': 7.28.5(@babel/core@7.28.4) - '@babel/preset-typescript': 7.28.5(@babel/core@7.28.4) - '@react-native/babel-preset': 0.81.5(@babel/core@7.28.4) + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) + '@babel/preset-react': 7.28.5(@babel/core@7.28.5) + '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) + '@react-native/babel-preset': 0.81.5(@babel/core@7.28.5) babel-plugin-react-compiler: 1.0.0 babel-plugin-react-native-web: 0.21.2 babel-plugin-syntax-hermes-parser: 0.29.1 - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.4) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) debug: 4.4.3 react-refresh: 0.14.2 resolve-from: 5.0.0 optionalDependencies: '@babel/runtime': 7.28.4 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@babel/core' - supports-color - babel-preset-jest@29.6.3(@babel/core@7.28.4): + babel-preset-jest@29.6.3(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) bail@2.0.2: {} @@ -21330,7 +21831,7 @@ snapshots: bun-types@1.3.0(@types/react@19.2.2): dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.3 '@types/react': 19.2.2 bundle-require@5.1.0(esbuild@0.25.9): @@ -21338,6 +21839,11 @@ snapshots: esbuild: 0.25.9 load-tsconfig: 0.2.5 + bundle-require@5.1.0(esbuild@0.27.2): + dependencies: + esbuild: 0.27.2 + load-tsconfig: 0.2.5 + bytes@3.1.2: {} cac@6.7.14: {} @@ -21712,7 +22218,7 @@ snapshots: core-js-compat@3.47.0: dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 core-js@3.41.0: {} @@ -21973,7 +22479,7 @@ snapshots: dotenv-expand@11.0.7: dependencies: - dotenv: 16.4.7 + dotenv: 16.6.1 dotenv@16.4.7: {} @@ -22059,7 +22565,7 @@ snapshots: engine.io@6.6.4: dependencies: '@types/cors': 2.8.19 - '@types/node': 22.19.1 + '@types/node': 22.19.3 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -22387,6 +22893,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.9 '@esbuild/win32-x64': 0.25.9 + esbuild@0.27.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.2 + '@esbuild/android-arm': 0.27.2 + '@esbuild/android-arm64': 0.27.2 + '@esbuild/android-x64': 0.27.2 + '@esbuild/darwin-arm64': 0.27.2 + '@esbuild/darwin-x64': 0.27.2 + '@esbuild/freebsd-arm64': 0.27.2 + '@esbuild/freebsd-x64': 0.27.2 + '@esbuild/linux-arm': 0.27.2 + '@esbuild/linux-arm64': 0.27.2 + '@esbuild/linux-ia32': 0.27.2 + '@esbuild/linux-loong64': 0.27.2 + '@esbuild/linux-mips64el': 0.27.2 + '@esbuild/linux-ppc64': 0.27.2 + '@esbuild/linux-riscv64': 0.27.2 + '@esbuild/linux-s390x': 0.27.2 + '@esbuild/linux-x64': 0.27.2 + '@esbuild/netbsd-arm64': 0.27.2 + '@esbuild/netbsd-x64': 0.27.2 + '@esbuild/openbsd-arm64': 0.27.2 + '@esbuild/openbsd-x64': 0.27.2 + '@esbuild/openharmony-arm64': 0.27.2 + '@esbuild/sunos-x64': 0.27.2 + '@esbuild/win32-arm64': 0.27.2 + '@esbuild/win32-ia32': 0.27.2 + '@esbuild/win32-x64': 0.27.2 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -22412,8 +22947,8 @@ snapshots: '@next/eslint-plugin-next': 16.0.3 eslint: 9.39.1(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@1.21.7)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.1(jiti@1.21.7)) eslint-plugin-react: 7.37.5(eslint@9.39.1(jiti@1.21.7)) eslint-plugin-react-hooks: 7.0.1(eslint@9.39.1(jiti@1.21.7)) @@ -22435,7 +22970,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@1.21.7)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 @@ -22446,22 +22981,22 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3) eslint: 9.39.1(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@1.21.7)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -22472,7 +23007,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.1(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -22722,66 +23257,57 @@ snapshots: expect-type@1.2.2: {} - expo-asset@12.0.12(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + expo-asset@12.0.12(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: '@expo/image-utils': 0.8.8 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - expo-constants: 18.0.13(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo-constants: 18.0.13(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) transitivePeerDependencies: - supports-color - expo-constants@17.0.8(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)): + expo-constants@17.0.8(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)): dependencies: '@expo/config': 10.0.11 '@expo/env': 0.4.2 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) - transitivePeerDependencies: - - supports-color - - expo-constants@18.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)): - dependencies: - '@expo/config': 12.0.13 - '@expo/env': 2.0.8 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) transitivePeerDependencies: - supports-color - expo-constants@18.0.13(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)): + expo-constants@18.0.13(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)): dependencies: '@expo/config': 12.0.13 '@expo/env': 2.0.8 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) transitivePeerDependencies: - supports-color - expo-file-system@19.0.21(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)): + expo-file-system@19.0.21(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)): dependencies: - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) - expo-font@14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + expo-font@14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) fontfaceobserver: 2.3.0 react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) expo-keep-awake@15.0.8(expo@54.0.18)(react@18.3.1): dependencies: - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) react: 18.3.1 - expo-linking@7.0.5(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + expo-linking@7.0.5(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: - expo-constants: 17.0.8(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) + expo-constants: 17.0.8(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) invariant: 2.2.4 react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) transitivePeerDependencies: - expo - supports-color @@ -22795,29 +23321,29 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@3.0.22(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + expo-modules-core@3.0.22(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: invariant: 2.2.4 react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) - expo-router@4.0.21(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + expo-router@4.0.21(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: - '@expo/metro-runtime': 4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) + '@expo/metro-runtime': 4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) '@expo/server': 0.5.3 '@radix-ui/react-slot': 1.0.1(react@18.3.1) - '@react-navigation/bottom-tabs': 7.4.9(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - '@react-navigation/native-stack': 7.3.28(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/bottom-tabs': 7.4.9(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/native-stack': 7.3.28(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) client-only: 0.0.1 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - expo-constants: 18.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) - expo-linking: 7.0.5(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo-constants: 18.0.13(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) + expo-linking: 7.0.5(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-native-helmet-async: 2.0.4(react@18.3.1) - react-native-is-edge-to-edge: 1.2.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-is-edge-to-edge: 1.2.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) schema-utils: 4.3.3 semver: 7.6.3 server-only: 0.0.1 @@ -22829,23 +23355,23 @@ snapshots: - supports-color optional: true - expo-router@4.0.21(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0): + expo-router@4.0.21(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0): dependencies: - '@expo/metro-runtime': 4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) + '@expo/metro-runtime': 4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) '@expo/server': 0.5.3 '@radix-ui/react-slot': 1.0.1(react@19.2.0) - '@react-navigation/bottom-tabs': 7.4.9(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) - '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - '@react-navigation/native-stack': 7.3.28(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) + '@react-navigation/bottom-tabs': 7.4.9(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) + '@react-navigation/native': 7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-navigation/native-stack': 7.3.28(@react-navigation/native@7.1.18(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) client-only: 0.0.1 - expo: 54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - expo-constants: 18.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) - expo-linking: 7.0.5(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo: 54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo-constants: 18.0.13(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) + expo-linking: 7.0.5(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@19.2.0) react-native-helmet-async: 2.0.4(react@19.2.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) - react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-is-edge-to-edge: 1.2.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) + react-native-safe-area-context: 5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + react-native-screens: 4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) schema-utils: 4.3.3 semver: 7.6.3 server-only: 0.0.1 @@ -22858,33 +23384,33 @@ snapshots: expo-server@1.0.5: {} - expo@54.0.18(@babel/core@7.28.4)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + expo@54.0.18(@babel/core@7.28.5)(@expo/metro-runtime@4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)))(expo-router@4.0.21)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.4 - '@expo/cli': 54.0.13(expo-router@4.0.21)(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) + '@expo/cli': 54.0.13(expo-router@4.0.21)(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) '@expo/config': 12.0.13 '@expo/config-plugins': 54.0.4 - '@expo/devtools': 0.1.7(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@expo/devtools': 0.1.7(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) '@expo/fingerprint': 0.15.2 '@expo/metro': 54.1.0 '@expo/metro-config': 54.0.7(expo@54.0.18) - '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) '@ungap/structured-clone': 1.3.0 - babel-preset-expo: 54.0.9(@babel/core@7.28.4)(@babel/runtime@7.28.4)(expo@54.0.18)(react-refresh@0.14.2) - expo-asset: 12.0.12(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) - expo-constants: 18.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) - expo-file-system: 19.0.21(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) - expo-font: 14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + babel-preset-expo: 54.0.9(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.18)(react-refresh@0.14.2) + expo-asset: 12.0.12(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo-constants: 18.0.13(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) + expo-file-system: 19.0.21(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) + expo-font: 14.0.10(expo@54.0.18)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) expo-keep-awake: 15.0.8(expo@54.0.18)(react@18.3.1) expo-modules-autolinking: 3.0.18 - expo-modules-core: 3.0.22(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + expo-modules-core: 3.0.22(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) pretty-format: 29.7.0 react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 4.0.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) + '@expo/metro-runtime': 4.0.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1)) transitivePeerDependencies: - '@babel/core' - '@modelcontextprotocol/sdk' @@ -22996,16 +23522,16 @@ snapshots: sharp: 0.33.5 xml2js: 0.6.2 - favigo@1.1.0(esbuild@0.25.12)(rollup@4.53.3)(vite@5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))(webpack@5.101.3(esbuild@0.25.12)): + favigo@1.1.0(esbuild@0.27.2)(rollup@4.53.3)(vite@5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1))(webpack@5.101.3(esbuild@0.27.2)): dependencies: favicons: 7.2.0 sharp: 0.33.5 unplugin: 1.16.1 optionalDependencies: - esbuild: 0.25.12 + esbuild: 0.27.2 rollup: 4.53.3 vite: 5.4.20(@types/node@20.19.13)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) - webpack: 5.101.3(esbuild@0.25.12) + webpack: 5.101.3(esbuild@0.27.2) fb-dotslash@0.5.8: {} @@ -23178,11 +23704,11 @@ snapshots: freeport-async@2.0.0: {} - freestyle-sandboxes@0.0.66(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(ws@8.19.0): + freestyle-sandboxes@0.0.66(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(ws@8.19.0): dependencies: '@hey-api/client-fetch': 0.5.7 '@tanstack/react-query': 5.87.1(react@19.2.0) - expo-router: 4.0.21(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) + expo-router: 4.0.21(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) glob: 11.0.3 hono: 4.9.8 openai: 4.104.0(ws@8.19.0)(zod@3.25.76) @@ -23205,13 +23731,13 @@ snapshots: - supports-color - ws - freestyle-sandboxes@0.0.95(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(ws@8.19.0): + freestyle-sandboxes@0.0.95(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(ws@8.19.0): dependencies: '@hey-api/client-fetch': 0.5.7 '@tanstack/react-query': 5.87.1(react@19.2.0) '@types/react': 19.2.2 - expo-router: 4.0.21(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) - freestyle-sandboxes: 0.0.66(expo-constants@18.0.10)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(ws@8.19.0) + expo-router: 4.0.21(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0) + freestyle-sandboxes: 0.0.66(expo-constants@18.0.13)(expo-linking@7.0.5)(expo@54.0.18)(react-dom@18.3.1(react@18.3.1))(react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1))(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(ws@8.19.0) glob: 11.0.3 hono: 4.9.8 openai: 4.104.0(ws@8.19.0)(zod@3.25.76) @@ -24054,7 +24580,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 25.0.3 + '@types/node': 22.19.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -26036,6 +26562,15 @@ snapshots: optionalDependencies: postcss: 8.5.6 + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(yaml@2.8.2): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 1.21.7 + postcss: 8.5.6 + tsx: 3.14.0 + yaml: 2.8.2 + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(yaml@2.8.2): dependencies: lilconfig: 3.1.3 @@ -26450,43 +26985,43 @@ snapshots: react-fast-compare: 3.2.2 shallowequal: 1.1.0 - react-native-is-edge-to-edge@1.2.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + react-native-is-edge-to-edge@1.2.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) optional: true - react-native-is-edge-to-edge@1.2.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0): + react-native-is-edge-to-edge@1.2.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@19.2.0): dependencies: react: 19.2.0 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) - react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + react-native-safe-area-context@5.6.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) - react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): + react-native-screens@4.17.1(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-freeze: 1.0.4(react@18.3.1) - react-native: 0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1) + react-native: 0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1) warn-once: 0.1.1 - react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1): + react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.82.1 - '@react-native/codegen': 0.82.1(@babel/core@7.28.4) + '@react-native/codegen': 0.82.1(@babel/core@7.28.5) '@react-native/community-cli-plugin': 0.82.1 '@react-native/gradle-plugin': 0.82.1 '@react-native/js-polyfills': 0.82.1 '@react-native/normalize-colors': 0.82.1 - '@react-native/virtualized-lists': 0.82.1(@types/react@19.2.2)(react-native@0.82.1(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) + '@react-native/virtualized-lists': 0.82.1(@types/react@19.2.2)(react-native@0.82.1(@babel/core@7.28.5)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 - babel-jest: 29.7.0(@babel/core@7.28.4) + babel-jest: 29.7.0(@babel/core@7.28.5) babel-plugin-syntax-hermes-parser: 0.32.0 base64-js: 1.5.1 commander: 12.1.0 @@ -27400,6 +27935,8 @@ snapshots: sprintf-js@1.0.3: {} + srvx@0.10.0: {} + stable-hash@0.0.5: {} stack-utils@2.0.6: @@ -27782,28 +28319,28 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.16(esbuild@0.25.12)(webpack@5.101.3(esbuild@0.25.12)): + terser-webpack-plugin@5.3.16(esbuild@0.25.9)(webpack@5.101.3(esbuild@0.25.9)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.44.1 - webpack: 5.101.3(esbuild@0.25.12) + webpack: 5.101.3(esbuild@0.25.9) optionalDependencies: - esbuild: 0.25.12 - optional: true + esbuild: 0.25.9 - terser-webpack-plugin@5.3.16(esbuild@0.25.9)(webpack@5.101.3(esbuild@0.25.9)): + terser-webpack-plugin@5.3.16(esbuild@0.27.2)(webpack@5.101.3(esbuild@0.27.2)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.44.1 - webpack: 5.101.3(esbuild@0.25.9) + webpack: 5.101.3(esbuild@0.27.2) optionalDependencies: - esbuild: 0.25.9 + esbuild: 0.27.2 + optional: true terser@5.44.1: dependencies: @@ -28108,6 +28645,180 @@ snapshots: - tsx - yaml + tsup@8.5.1(@microsoft/api-extractor@7.53.2(@types/node@20.19.13))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.2): + dependencies: + bundle-require: 5.1.0(esbuild@0.27.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.27.2 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(yaml@2.8.2) + resolve-from: 5.0.0 + rollup: 4.53.3 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + optionalDependencies: + '@microsoft/api-extractor': 7.53.2(@types/node@20.19.13) + postcss: 8.5.6 + typescript: 5.9.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + tsup@8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2): + dependencies: + bundle-require: 5.1.0(esbuild@0.27.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.27.2 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(yaml@2.8.2) + resolve-from: 5.0.0 + rollup: 4.53.3 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + optionalDependencies: + '@microsoft/api-extractor': 7.53.2(@types/node@22.18.1) + postcss: 8.5.6 + typescript: 5.9.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + tsup@8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.18.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.2): + dependencies: + bundle-require: 5.1.0(esbuild@0.27.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.27.2 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(yaml@2.8.2) + resolve-from: 5.0.0 + rollup: 4.53.3 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + optionalDependencies: + '@microsoft/api-extractor': 7.53.2(@types/node@22.18.1) + postcss: 8.5.6 + typescript: 5.9.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + tsup@8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.1))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.3)(yaml@2.8.2): + dependencies: + bundle-require: 5.1.0(esbuild@0.27.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.27.2 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(yaml@2.8.2) + resolve-from: 5.0.0 + rollup: 4.53.3 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + optionalDependencies: + '@microsoft/api-extractor': 7.53.2(@types/node@22.19.1) + postcss: 8.5.6 + typescript: 5.9.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + tsup@8.5.1(@microsoft/api-extractor@7.53.2(@types/node@22.19.3))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.2): + dependencies: + bundle-require: 5.1.0(esbuild@0.27.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.27.2 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.5)(yaml@2.8.2) + resolve-from: 5.0.0 + rollup: 4.53.3 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + optionalDependencies: + '@microsoft/api-extractor': 7.53.2(@types/node@22.19.3) + postcss: 8.5.6 + typescript: 5.9.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + tsup@8.5.1(@microsoft/api-extractor@7.53.2(@types/node@25.0.3))(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(typescript@5.9.2)(yaml@2.8.2): + dependencies: + bundle-require: 5.1.0(esbuild@0.27.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.27.2 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@3.14.0)(yaml@2.8.2) + resolve-from: 5.0.0 + rollup: 4.53.3 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + optionalDependencies: + '@microsoft/api-extractor': 7.53.2(@types/node@25.0.3) + postcss: 8.5.6 + typescript: 5.9.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tsx@3.14.0: dependencies: esbuild: 0.18.20 @@ -28303,7 +29014,8 @@ snapshots: undici-types@7.14.0: {} - undici-types@7.16.0: {} + undici-types@7.16.0: + optional: true undici@6.22.0: {} @@ -28777,13 +29489,13 @@ snapshots: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@5.4.20(@types/node@22.18.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.2.2(@types/node@22.18.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.2)): dependencies: debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.2) optionalDependencies: - vite: 5.4.20(@types/node@22.18.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) + vite: 7.2.2(@types/node@22.18.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.2) transitivePeerDependencies: - supports-color - typescript @@ -28830,6 +29542,20 @@ snapshots: stylus: 0.62.0 terser: 5.44.1 + vite@5.4.20(@types/node@22.19.3)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.50.1 + optionalDependencies: + '@types/node': 22.19.3 + fsevents: 2.3.3 + less: 4.4.1 + lightningcss: 1.30.2 + sass: 1.93.2 + stylus: 0.62.0 + terser: 5.44.1 + vite@5.4.20(@types/node@24.7.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1): dependencies: esbuild: 0.21.5 @@ -28878,6 +29604,27 @@ snapshots: tsx: 4.20.5 yaml: 2.8.2 + vite@7.2.2(@types/node@22.18.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.2): + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.53.3 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 22.18.1 + fsevents: 2.3.3 + jiti: 1.21.7 + less: 4.4.1 + lightningcss: 1.30.2 + sass: 1.93.2 + stylus: 0.62.0 + terser: 5.44.1 + tsx: 4.20.5 + yaml: 2.8.2 + optional: true + vite@7.2.2(@types/node@25.0.3)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.12 @@ -29175,7 +29922,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.101.3(esbuild@0.25.12): + webpack@5.101.3(esbuild@0.25.9): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -29199,16 +29946,15 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(esbuild@0.25.12)(webpack@5.101.3(esbuild@0.25.12)) + terser-webpack-plugin: 5.3.16(esbuild@0.25.9)(webpack@5.101.3(esbuild@0.25.9)) watchpack: 2.5.0 webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - optional: true - webpack@5.101.3(esbuild@0.25.9): + webpack@5.101.3(esbuild@0.27.2): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -29232,13 +29978,14 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(esbuild@0.25.9)(webpack@5.101.3(esbuild@0.25.9)) + terser-webpack-plugin: 5.3.16(esbuild@0.27.2)(webpack@5.101.3(esbuild@0.27.2)) watchpack: 2.5.0 webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js + optional: true whatwg-fetch@3.6.20: {} diff --git a/rivetkit-typescript/packages/rivetkit/src/registry/config/index.ts b/rivetkit-typescript/packages/rivetkit/src/registry/config/index.ts index 8bd9bff61e..abb9e737d7 100644 --- a/rivetkit-typescript/packages/rivetkit/src/registry/config/index.ts +++ b/rivetkit-typescript/packages/rivetkit/src/registry/config/index.ts @@ -1,22 +1,17 @@ +import invariant from "invariant"; import { z } from "zod"; -import { - getRivetEndpoint, - getRivetToken, - getRivetNamespace, - isDev, -} from "@/utils/env-vars"; -import { Logger, LogLevelSchema } from "@/common/log"; -import { InspectorConfigSchema } from "@/inspector/config"; import type { ActorDefinition, AnyActorDefinition } from "@/actor/definition"; -import { DriverConfigSchema, type DriverConfig } from "./driver"; -import invariant from "invariant"; -import { RunnerConfigSchema } from "./runner"; -import { ServerlessConfigSchema } from "./serverless"; +import { resolveEndpoint } from "@/client/config"; +import { type Logger, LogLevelSchema } from "@/common/log"; +import { InspectorConfigSchema } from "@/inspector/config"; import { EndpointSchema, zodCheckDuplicateCredentials, } from "@/utils/endpoint-parser"; -import { resolveEndpoint } from "@/client/config"; +import { getRivetNamespace, getRivetToken, isDev } from "@/utils/env-vars"; +import { type DriverConfig, DriverConfigSchema } from "./driver"; +import { RunnerConfigSchema } from "./runner"; +import { ServerlessConfigSchema } from "./serverless"; export { DriverConfigSchema, type DriverConfig }; diff --git a/rivetkit-typescript/packages/rivetkit/src/registry/index.ts b/rivetkit-typescript/packages/rivetkit/src/registry/index.ts index 30db038dac..820c8af507 100644 --- a/rivetkit-typescript/packages/rivetkit/src/registry/index.ts +++ b/rivetkit-typescript/packages/rivetkit/src/registry/index.ts @@ -1,5 +1,7 @@ import invariant from "invariant"; +import type { Client } from "@/client/client"; import { createClientWithDriver } from "@/client/client"; +import { createClient } from "@/client/mod"; import { configureBaseLogger, configureDefaultLogger } from "@/common/log"; import { chooseDefaultDriver } from "@/drivers/default"; import { ENGINE_ENDPOINT, ensureEngineProcess } from "@/engine-process/mod"; @@ -8,27 +10,26 @@ import { getInspectorUrl, isInspectorEnabled, } from "@/inspector/utils"; +import { buildManagerRouter } from "@/manager/router"; +import { configureServerlessRunner } from "@/serverless/configure"; +import { buildServerlessRouter } from "@/serverless/router"; +import type { GetUpgradeWebSocket } from "@/utils"; +import { isDev } from "@/utils/env-vars"; import pkg from "../../package.json" with { type: "json" }; import { + type DriverConfig, type RegistryActors, + type RegistryConfig, type RegistryConfigInput, - type DriverConfig, + RegistryConfigSchema, } from "./config"; -import { type RegistryConfig, RegistryConfigSchema } from "./config"; import { type LegacyRunnerConfig, type LegacyRunnerConfigInput, LegacyRunnerConfigSchema, } from "./config/legacy-runner"; import { logger } from "./log"; -import { buildServerlessRouter } from "@/serverless/router"; -import { buildManagerRouter } from "@/manager/router"; import { crossPlatformServe, findFreePort } from "./serve"; -import { GetUpgradeWebSocket } from "@/utils"; -import { configureServerlessRunner } from "@/serverless/configure"; -import type { Client } from "@/client/client"; -import { createClient } from "@/client/mod"; -import { isDev } from "@/utils/env-vars"; export type FetchHandler = ( request: Request, diff --git a/scripts/vercel/generate-deploy-url.ts b/scripts/vercel/generate-deploy-url.ts new file mode 100755 index 0000000000..1adab3adc2 --- /dev/null +++ b/scripts/vercel/generate-deploy-url.ts @@ -0,0 +1,104 @@ +#!/usr/bin/env -S npx tsx + +/** + * Generates a Vercel deploy button URL for a given example. + * + * Usage: + * npx tsx scripts/vercel/generate-deploy-url.ts + * + * Example: + * npx tsx scripts/vercel/generate-deploy-url.ts chat-room + */ + +const REPO_OWNER = "rivet-dev"; +const REPO_NAME = "rivet"; +const BRANCH = "update-examples"; + +interface DeployUrlOptions { + example: string; + projectName?: string; + env?: string[]; + envDescription?: string; + envLink?: string; + demoTitle?: string; + demoDescription?: string; + demoUrl?: string; +} + +function generateDeployUrl(options: DeployUrlOptions): string { + const { example, projectName, env, envDescription, envLink, demoTitle, demoDescription, demoUrl } = options; + + const baseUrl = "https://vercel.com/new/clone"; + + // Build the repository URL with branch + const repoUrl = `https://github.com/${REPO_OWNER}/${REPO_NAME}/tree/${BRANCH}/examples/${example}`; + + const params = new URLSearchParams(); + + // Repository configuration + params.set("repository-url", repoUrl); + + // Project name defaults to example name + params.set("project-name", projectName ?? example); + + // Environment variables + if (env && env.length > 0) { + params.set("env", env.join(",")); + } + if (envDescription) { + params.set("envDescription", envDescription); + } + if (envLink) { + params.set("envLink", envLink); + } + + // Demo card + if (demoTitle) { + params.set("demo-title", demoTitle); + } + if (demoDescription) { + params.set("demo-description", demoDescription); + } + if (demoUrl) { + params.set("demo-url", demoUrl); + } + + return `${baseUrl}?${params.toString()}`; +} + +function generateMarkdownButton(url: string): string { + return `[![Deploy with Vercel](https://vercel.com/button)](${url})`; +} + +function generateHtmlButton(url: string): string { + return `Deploy with Vercel`; +} + +function main() { + const args = process.argv.slice(2); + + if (args.length === 0) { + console.error("Usage: npx tsx scripts/vercel/generate-deploy-url.ts "); + console.error(""); + console.error("Example:"); + console.error(" npx tsx scripts/vercel/generate-deploy-url.ts chat-room"); + process.exit(1); + } + + const example = args[0]; + + const url = generateDeployUrl({ + example, + }); + + console.log("Deploy URL:"); + console.log(url); + console.log(""); + console.log("Markdown:"); + console.log(generateMarkdownButton(url)); + console.log(""); + console.log("HTML:"); + console.log(generateHtmlButton(url)); +} + +main();