diff --git a/apps/browser-extension/manifest.json b/apps/browser-extension/manifest.json
index 8be7a33..dab6b5d 100644
--- a/apps/browser-extension/manifest.json
+++ b/apps/browser-extension/manifest.json
@@ -2,7 +2,7 @@
"$schema": "https://json.schemastore.org/chrome-manifest",
"manifest_version": 3,
- "version": "0.2.2",
+ "version": "0.3.0",
"author": "Apteryx Software",
"name": "Evaluate - Run Code Anytime, Anywhere",
"short_name": "Evaluate",
diff --git a/apps/browser-extension/package.json b/apps/browser-extension/package.json
index e467db6..a5bb26d 100644
--- a/apps/browser-extension/package.json
+++ b/apps/browser-extension/package.json
@@ -1,7 +1,7 @@
{
"name": "browser-extension",
"description": "Run any code snippet you come across on the web with the Evaluate browser extension!",
- "version": "0.2.2",
+ "version": "0.3.0",
"type": "module",
"scripts": {
"check": "tsc --noEmit",
@@ -19,30 +19,30 @@
"@evaluate/runtimes": "workspace:^",
"@evaluate/style": "workspace:^",
"@t3-oss/env-core": "^0.13.8",
- "lucide-react": "^0.525.0",
- "posthog-js": "^1.257.0",
- "react": "^19.1.0",
- "react-dom": "^19.1.0",
- "sonner": "^2.0.6",
+ "lucide-react": "^0.546.0",
+ "posthog-js": "^1.276.0",
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0",
+ "sonner": "^2.0.7",
"tailwind-merge": "^3.3.1",
"webext-bridge": "^6.0.1",
"webextension-polyfill": "^0.12.0",
- "zod": "4.0.5"
+ "zod": "4.1.12"
},
"devDependencies": {
- "@babel/generator": "^7.28.0",
- "@babel/parser": "^7.28.0",
- "@babel/traverse": "^7.28.0",
- "@babel/types": "^7.28.1",
+ "@babel/generator": "^7.28.3",
+ "@babel/parser": "^7.28.4",
+ "@babel/traverse": "^7.28.4",
+ "@babel/types": "^7.28.4",
"@crxjs/vite-plugin": "2.0.0-beta.30",
"@tailwindcss/vite": "^4.1.11",
"@types/babel__generator": "^7.27.0",
- "@types/babel__traverse": "^7.20.7",
- "@types/react": "^19.1.8",
- "@types/react-dom": "^19.1.6",
- "@types/webextension-polyfill": "^0.12.3",
- "@vitejs/plugin-react": "^4.6.0",
- "tailwindcss": "^4.1.11",
+ "@types/babel__traverse": "^7.28.0",
+ "@types/react": "^19.2.2",
+ "@types/react-dom": "^19.2.2",
+ "@types/webextension-polyfill": "^0.12.4",
+ "@vitejs/plugin-react": "^4.7.0",
+ "tailwindcss": "^4.1.14",
"vite": "3.2.11",
"vite-plugin-zip-pack": "^1.2.4",
"vite-tsconfig-paths": "^5.1.4"
diff --git a/apps/browser-extension/src/background/index.ts b/apps/browser-extension/src/background/index.ts
index a89837d..9379a48 100644
--- a/apps/browser-extension/src/background/index.ts
+++ b/apps/browser-extension/src/background/index.ts
@@ -83,6 +83,7 @@ browser.contextMenus.onClicked.addListener(async (info, tab) => {
throw error;
});
promises.push(initialPromise);
+ await new Promise((r) => setTimeout(r, 250));
}
const results = await Promise.all(promises);
diff --git a/apps/discord-bot/package.json b/apps/discord-bot/package.json
index f366e06..6c9f409 100644
--- a/apps/discord-bot/package.json
+++ b/apps/discord-bot/package.json
@@ -19,7 +19,7 @@
"build": "pnpm tsup"
},
"dependencies": {
- "@buape/carbon": "^0.12.0",
+ "@buape/carbon": "^0.13.0",
"@evaluate/execute": "workspace:^",
"@evaluate/logger": "workspace:^",
"@evaluate/runtimes": "workspace:^",
@@ -27,10 +27,10 @@
"@sayable/react": "0.0.0-alpha.6",
"@t3-oss/env-core": "^0.13.8",
"date-fns": "^4.1.0",
- "es-toolkit": "^1.39.7",
+ "es-toolkit": "^1.40.0",
"posthog-node": "^5.5.1",
"sayable": "0.0.0-alpha.6",
- "zod": "^4.0.5"
+ "zod": "^4.1.12"
},
"devDependencies": {
"@sayable/config": "0.0.0",
diff --git a/apps/website/next-env.d.ts b/apps/website/next-env.d.ts
index 1b3be08..830fb59 100644
--- a/apps/website/next-env.d.ts
+++ b/apps/website/next-env.d.ts
@@ -1,5 +1,6 @@
///
///
+///
// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/apps/website/package.json b/apps/website/package.json
index c568e51..c7a9c37 100644
--- a/apps/website/package.json
+++ b/apps/website/package.json
@@ -12,64 +12,64 @@
"dev": "use-env -p NEXT -- next dev --turbo"
},
"dependencies": {
- "@codemirror/commands": "^6.8.1",
- "@codemirror/view": "^6.38.1",
+ "@codemirror/commands": "^6.9.0",
+ "@codemirror/view": "^6.38.6",
"@evaluate/components": "workspace:^",
"@evaluate/execute": "workspace:^",
"@evaluate/hooks": "workspace:^",
"@evaluate/logger": "workspace:^",
"@evaluate/runtimes": "workspace:^",
"@evaluate/style": "workspace:^",
- "@hookform/resolvers": "^5.1.1",
+ "@hookform/resolvers": "^5.2.2",
"@sayable/react": "0.0.0-alpha.8",
"@t3-oss/env-nextjs": "^0.13.8",
- "@tanstack/react-query": "^5.83.0",
- "@tanstack/react-query-devtools": "^5.83.0",
- "@uiw/codemirror-extensions-langs": "^4.24.1",
- "@uiw/codemirror-theme-vscode": "^4.24.1",
- "@uiw/react-codemirror": "^4.24.1",
+ "@tanstack/react-query": "^5.90.5",
+ "@tanstack/react-query-devtools": "^5.90.2",
+ "@uiw/codemirror-extensions-langs": "^4.25.2",
+ "@uiw/codemirror-theme-vscode": "^4.25.2",
+ "@uiw/react-codemirror": "^4.25.2",
"@vercel/speed-insights": "^1.2.0",
"date-fns": "^4.1.0",
"discord-bot": "workspace:^",
- "dompurify": "^3.2.6",
+ "dompurify": "^3.3.0",
"embla-carousel-autoplay": "^8.6.0",
- "es-toolkit": "^1.39.7",
+ "es-toolkit": "^1.40.0",
"file-saver": "^2.0.5",
"fuse.js": "^7.1.0",
"is-mobile": "^5.0.0",
"jszip": "^3.10.1",
- "lucide-react": "^0.525.0",
- "material-icon-theme": "^5.24.0",
- "next": "15.3.5",
+ "lucide-react": "^0.546.0",
+ "material-icon-theme": "^5.27.0",
+ "next": "15.5.6",
"next-themes": "npm:@wits/next-themes@^0.2.16",
- "posthog-js": "^1.257.0",
- "react": "^19.1.0",
+ "posthog-js": "^1.276.0",
+ "react": "^19.2.0",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
- "react-dom": "^19.1.0",
- "react-hook-form": "^7.60.0",
- "react-hotkeys-hook": "^5.1.0",
+ "react-dom": "^19.2.0",
+ "react-hook-form": "^7.65.0",
+ "react-hotkeys-hook": "^5.2.1",
"sayable": "0.0.0-alpha.6",
"server-only": "^0.0.1",
- "sharp": "^0.34.3",
+ "sharp": "^0.34.4",
"tailwind-merge": "^3.3.1",
- "type-fest": "^4.41.0",
+ "type-fest": "^5.1.0",
"virtual-file-explorer-backend": "^0.0.4",
"vscode-icons-js": "^11.6.1",
- "zod": "4.0.5"
+ "zod": "4.1.12"
},
"devDependencies": {
"@million/lint": "^1.0.14",
- "@next/bundle-analyzer": "15.3.5",
+ "@next/bundle-analyzer": "15.5.6",
"@sayable/config": "0.0.0-alpha.4",
"@sayable/factory": "0.0.0-alpha.6",
"@sayable/format-po": "0.0.0-alpha.4",
"@sayable/swc-plugin": "0.0.0-alpha.5",
- "@tailwindcss/postcss": "^4.1.11",
+ "@tailwindcss/postcss": "^4.1.14",
"@types/file-saver": "^2.0.7",
- "@types/react": "^19.1.8",
+ "@types/react": "^19.2.2",
"autoprefixer": "^10.4.21",
"next-sitemap": "^4.2.3",
- "tailwindcss": "^4.1.11"
+ "tailwindcss": "^4.1.14"
}
}
diff --git a/apps/website/src/app/[locale]/(editor)/playgrounds/[playground]/page.tsx b/apps/website/src/app/[locale]/(editor)/playgrounds/[playground]/page.tsx
index c5e842e..695b3c8 100644
--- a/apps/website/src/app/[locale]/(editor)/playgrounds/[playground]/page.tsx
+++ b/apps/website/src/app/[locale]/(editor)/playgrounds/[playground]/page.tsx
@@ -8,7 +8,6 @@ import { ExplorerProvider } from '~/components/explorer/use';
import { Terminal } from '~/components/terminal';
import { TerminalProvider } from '~/components/terminal/use';
import say from '~/i18n';
-import type { PageProps } from '~/types';
import { EditorWrapper } from './wrapper';
export async function generateStaticParams() {
@@ -16,10 +15,10 @@ export async function generateStaticParams() {
return runtimes.map((r) => ({ playground: r.id }));
}
-export async function generateMetadata(
- props: PageProps<['[locale]', '[playground]']>,
-) {
- const { locale, playground } = await props.params;
+export async function generateMetadata({
+ params,
+}: PageProps<'/[locale]/playgrounds/[playground]'>) {
+ const { locale, playground } = await params;
const runtime = await fetchRuntimeById(decodeURIComponent(playground));
if (!runtime) notFound();
@@ -36,8 +35,10 @@ export async function generateMetadata(
);
}
-export default async function EditorPage(props: PageProps<['[playground]']>) {
- const { playground } = await props.params;
+export default async function EditorPage({
+ params,
+}: PageProps<'/[locale]/playgrounds/[playground]'>) {
+ const { playground } = await params;
const runtime = await fetchRuntimeById(decodeURIComponent(playground));
if (!runtime) notFound();
diff --git a/apps/website/src/app/[locale]/(playgrounds)/playgrounds/page.tsx b/apps/website/src/app/[locale]/(playgrounds)/playgrounds/page.tsx
index 47206c8..7d563c2 100644
--- a/apps/website/src/app/[locale]/(playgrounds)/playgrounds/page.tsx
+++ b/apps/website/src/app/[locale]/(playgrounds)/playgrounds/page.tsx
@@ -1,12 +1,13 @@
import { fetchAllRuntimes } from '@evaluate/runtimes';
import { Say } from '@sayable/react';
import say from '~/i18n';
-import type { PageProps } from '~/types';
import { generateBaseMetadata } from '../../metadata';
import { PlaygroundCardList } from './playground-card-list';
-export async function generateMetadata(props: PageProps<['[locale]']>) {
- const { locale } = await props.params;
+export async function generateMetadata({
+ params,
+}: PageProps<'/[locale]/playgrounds'>) {
+ const { locale } = await params;
return generateBaseMetadata(say.activate(locale), '/playgrounds');
}
diff --git a/apps/website/src/app/[locale]/layout.tsx b/apps/website/src/app/[locale]/layout.tsx
index d17e85f..73b20fd 100644
--- a/apps/website/src/app/[locale]/layout.tsx
+++ b/apps/website/src/app/[locale]/layout.tsx
@@ -5,7 +5,6 @@ import { Footer } from '~/components/footer';
import { Header } from '~/components/header';
import { BodyProviders, HtmlProviders } from '~/components/providers';
import say from '~/i18n';
-import type { LayoutProps } from '~/types';
import '../../style.css';
const inter = Inter({ subsets: ['latin'] });
@@ -14,8 +13,11 @@ export function generateStaticParams() {
return say.locales.map((l) => ({ locale: l }));
}
-export default async function RootLayout(p: LayoutProps<['[locale]']>) {
- const { locale = 'en' } = await p.params;
+export default async function RootLayout({
+ params,
+ children,
+}: LayoutProps<'/[locale]'>) {
+ const { locale = 'en' } = await params;
try {
await say.load(String(locale));
say.activate(String(locale));
@@ -53,7 +55,7 @@ export default async function RootLayout(p: LayoutProps<['[locale]']>) {
>
- {p.children}
+ {children}