refactor: flatten monorepo to single web package (#12)

Flatten the pnpm monorepo (apps/web + packages/*) into a single web package at the repo root.

- Move app/lib/components/scripts/public to root; drop apps/web and packages/* wrappers
- Rewrite tsconfig paths (@infiplot/*) to ./lib/*; turbopack.root = __dirname
- Update Vercel (no root-directory) and Cloudflare (pnpm build:cf at root) deploy paths
- Regenerate pnpm-lock.yaml to drop stale workspace importers
- Bump engines.node to >=22 to match wrangler

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Zonghao Yuan
2026-06-03 00:55:45 +08:00
committed by GitHub
parent 9543c3dba1
commit dc5ecd60f6
221 changed files with 241 additions and 379 deletions
+6 -6
View File
@@ -41,9 +41,9 @@ Free to play, no setup required: [infiplot.com](https://infiplot.com)
InfiPlot deploys to both Vercel and Cloudflare Workers. Cloudflare deployment requires the Workers Paid Plan because the scene pipeline needs longer CPU time; for personal use, the one-click Vercel deploy is recommended. InfiPlot deploys to both Vercel and Cloudflare Workers. Cloudflare deployment requires the Workers Paid Plan because the scene pipeline needs longer CPU time; for personal use, the one-click Vercel deploy is recommended.
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&root-directory=apps/web&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%20uses%20MiMo%27s%20own%20protocol.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/README.en.md%23configuration-guide) &nbsp; [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot/tree/main/apps/web) [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%20uses%20MiMo%27s%20own%20protocol.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/README.en.md%23configuration-guide) &nbsp; [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot)
After deploy, fill in the environment variables — see the [Configuration guide](#configuration-guide) below. Both platforms need `apps/web` as the project root (Vercel's button passes this automatically; on Cloudflare, set the build root to `apps/web` and the build command to `pnpm --filter @infiplot/web build:cf`). After deploy, fill in the environment variables — see the [Configuration guide](#configuration-guide) below. The repo root is the app itself: Vercel needs no special root directory; on Cloudflare, just set the build command to `pnpm build:cf`.
--- ---
@@ -118,7 +118,7 @@ Get in touch: hi@infiplot.com
Scan to join our **beta community on QQ** (group ID `575404333`) to share feedback and help shape the project: Scan to join our **beta community on QQ** (group ID `575404333`) to share feedback and help shape the project:
<img src="apps/web/public/qq-group.webp" alt="InfiPlot beta community QQ group QR code" width="200" /> <img src="public/qq-group.webp" alt="InfiPlot beta community QQ group QR code" width="200" />
--- ---
@@ -143,11 +143,11 @@ Nine variables are required; TTS is optional (leave blank to run silently). Ther
|---|---| |---|---|
| `MOCK_IMAGE=true` | Skip image generation; the renderer returns a static placeholder. Story, voice, and choices still run normally. Great for iterating on TTS without burning Runware credits. | | `MOCK_IMAGE=true` | Skip image generation; the renderer returns a static placeholder. Story, voice, and choices still run normally. Great for iterating on TTS without burning Runware credits. |
Where to set them (see `apps/web/.env.example` for the exact shape): Where to set them (see `.env.example` for the exact shape):
- **Local dev** — `apps/web/.env.local` - **Local dev** — `.env.local`
- **Vercel** — Project Settings → Environment Variables - **Vercel** — Project Settings → Environment Variables
- **Cloudflare Workers** — from `apps/web/`, run `wrangler secret put <NAME>` for each variable, or set them in the dashboard (Workers → infiplot → Settings → Variables and Secrets). For a private staging instance, gate the Worker behind [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/applications/) — zero-code email-whitelist auth in front of the Worker. - **Cloudflare Workers** — from the repo root, run `wrangler secret put <NAME>` for each variable, or set them in the dashboard (Workers → infiplot → Settings → Variables and Secrets). For a private staging instance, gate the Worker behind [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/applications/) — zero-code email-whitelist auth in front of the Worker.
**3. Mind the cost** **3. Mind the cost**
+6 -6
View File
@@ -41,9 +41,9 @@ InfiPlot は、AI がコンテンツをリアルタイムに生成するイン
InfiPlot は Vercel と Cloudflare Workers の両方にデプロイできます。Cloudflare へのデプロイはシーンパイプラインがより長い CPU 時間を必要とするため、Workers Paid Plan が必要です。個人利用には Vercel のワンクリックデプロイをおすすめします。 InfiPlot は Vercel と Cloudflare Workers の両方にデプロイできます。Cloudflare へのデプロイはシーンパイプラインがより長い CPU 時間を必要とするため、Workers Paid Plan が必要です。個人利用には Vercel のワンクリックデプロイをおすすめします。
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&root-directory=apps/web&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%20uses%20MiMo%27s%20own%20protocol.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/README.ja.md%23%E8%A8%AD%E5%AE%9A%E3%82%AC%E3%82%A4%E3%83%89) &nbsp; [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot/tree/main/apps/web) [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%20uses%20MiMo%27s%20own%20protocol.&envLink=https://github.com/zonghaoyuan/infiplot/blob/main/README.ja.md%23%E8%A8%AD%E5%AE%9A%E3%82%AC%E3%82%A4%E3%83%89) &nbsp; [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot)
デプロイ後、環境変数を設定してください —— 下記の[設定ガイド](#設定ガイド)を参照。両方のプラットフォームで、プロジェクトのルートを `apps/web` に設定する必要があります(Vercel のデプロイボタンが自動で渡します。Cloudflare では build root を `apps/web`、ビルドコマンドを `pnpm --filter @infiplot/web build:cf` に設定してください) デプロイ後、環境変数を設定してください —— 下記の[設定ガイド](#設定ガイド)を参照。リポジトリのルートがアプリ本体です:Vercel では特別なルート設定は不要です。Cloudflare ではビルドコマンドを `pnpm build:cf` に設定するだけで済みます
--- ---
@@ -117,7 +117,7 @@ flowchart TD
**InfiPlot ベータ交流グループ**QQ グループ番号 `575404333`)—— QR コードを読み取って参加し、フィードバックや共同開発にご参加ください: **InfiPlot ベータ交流グループ**QQ グループ番号 `575404333`)—— QR コードを読み取って参加し、フィードバックや共同開発にご参加ください:
<img src="apps/web/public/qq-group.webp" alt="InfiPlot ベータ交流グループ QQ QRコード" width="200" /> <img src="public/qq-group.webp" alt="InfiPlot ベータ交流グループ QQ QRコード" width="200" />
--- ---
@@ -142,11 +142,11 @@ InfiPlot は 4 種類のモデルプロバイダと通信します。**テキス
|---|---| |---|---|
| `MOCK_IMAGE=true` | 画像生成をスキップし、レンダラが静的なプレースホルダを返します。ストーリー・音声・選択肢は通常どおり動作します。Runware のクレジットを消費せずに TTS を調整するのに最適です。 | | `MOCK_IMAGE=true` | 画像生成をスキップし、レンダラが静的なプレースホルダを返します。ストーリー・音声・選択肢は通常どおり動作します。Runware のクレジットを消費せずに TTS を調整するのに最適です。 |
設定場所(正確なフォーマットは `apps/web/.env.example` を参照): 設定場所(正確なフォーマットは `.env.example` を参照):
- **ローカル開発** —— `apps/web/.env.local` - **ローカル開発** —— `.env.local`
- **Vercel** —— Project Settings → Environment Variables - **Vercel** —— Project Settings → Environment Variables
- **Cloudflare Workers** —— `apps/web/` から各変数について `wrangler secret put <NAME>` を実行するか、ダッシュボード(Workers → infiplot → Settings → Variables and Secrets)で設定します。ステージング環境にアクセス制限を掛けたい場合は、Worker の前に [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/applications/) を挟むと、ゼロコードでメール許可リスト方式の認証が利用できます。 - **Cloudflare Workers** —— リポジトリのルートから各変数について `wrangler secret put <NAME>` を実行するか、ダッシュボード(Workers → infiplot → Settings → Variables and Secrets)で設定します。ステージング環境にアクセス制限を掛けたい場合は、Worker の前に [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/applications/) を挟むと、ゼロコードでメール許可リスト方式の認証が利用できます。
**3. コストに注意** **3. コストに注意**
+6 -6
View File
@@ -41,9 +41,9 @@ InfiPlot是一款AI实时生成内容的互动剧情游戏,这里没有预设
InfiPlot 同时支持部署到 Vercel 与 Cloudflare Workers。Cloudflare 部署因场景流水线需要更长 CPU 时间,需要 Workers Paid Plan;个人使用推荐用 Vercel 一键部署。 InfiPlot 同时支持部署到 Vercel 与 Cloudflare Workers。Cloudflare 部署因场景流水线需要更长 CPU 时间,需要 Workers Paid Plan;个人使用推荐用 Vercel 一键部署。
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&root-directory=apps/web&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%20uses%20MiMo%27s%20own%20protocol.&envLink=https://github.com/zonghaoyuan/infiplot%23%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B) &nbsp; [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot/tree/main/apps/web) [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/zonghaoyuan/infiplot&env=TEXT_BASE_URL,TEXT_API_KEY,TEXT_MODEL,IMAGE_BASE_URL,IMAGE_API_KEY,IMAGE_MODEL,VISION_BASE_URL,VISION_API_KEY,VISION_MODEL,TTS_BASE_URL,TTS_API_KEY,TTS_SPEECH_MODEL,MOCK_IMAGE&envDescription=Three%20required%20providers%20%2B%20optional%20TTS.%20Any%20OpenAI-compatible%20endpoint%20works%20for%20text%2Fvision.%20TTS%20uses%20MiMo%27s%20own%20protocol.&envLink=https://github.com/zonghaoyuan/infiplot%23%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B) &nbsp; [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/zonghaoyuan/infiplot)
部署完成后,填好环境变量 —— 详见下方的[配置教程](#配置教程)。两个平台都需要把项目根目录设为 `apps/web`(Vercel 一键部署按钮会自动带上;在 Cloudflare 上请把 build root 设为 `apps/web`,构建命令设为 `pnpm --filter @infiplot/web build:cf` 部署完成后,填好环境变量 —— 详见下方的[配置教程](#配置教程)。仓库根目录就是应用本身:Vercel 无需额外设置 root directory;在 Cloudflare 上把构建命令设为 `pnpm build:cf` 即可
--- ---
@@ -117,7 +117,7 @@ flowchart TD
欢迎扫码加入 **InfiPlot 内测交流群**QQ 群号 `575404333`),一起反馈体验、参与共建: 欢迎扫码加入 **InfiPlot 内测交流群**QQ 群号 `575404333`),一起反馈体验、参与共建:
<img src="apps/web/public/qq-group.webp" alt="InfiPlot 内测交流群 QQ 二维码" width="200" /> <img src="public/qq-group.webp" alt="InfiPlot 内测交流群 QQ 二维码" width="200" />
--- ---
@@ -142,11 +142,11 @@ InfiPlot 会与四类模型供应商通信。**文本(Text)和视觉(Visio
|---|---| |---|---|
| `MOCK_IMAGE=true` | 跳过图像生成,渲染器返回一张静态占位图。剧情、语音、选项照常运行。非常适合在不消耗 Runware 额度的情况下调试 TTS。 | | `MOCK_IMAGE=true` | 跳过图像生成,渲染器返回一张静态占位图。剧情、语音、选项照常运行。非常适合在不消耗 Runware 额度的情况下调试 TTS。 |
在哪里设置(确切字段见 `apps/web/.env.example`): 在哪里设置(确切字段见 `.env.example`):
- **本地开发** —— `apps/web/.env.local` - **本地开发** —— `.env.local`
- **Vercel** —— Project Settings → Environment Variables - **Vercel** —— Project Settings → Environment Variables
- **Cloudflare Workers** —— 在 `apps/web/` 目录下逐个执行 `wrangler secret put <NAME>`,或在 dashboard 里设置(Workers → infiplot → Settings → Variables and Secrets)。如果要给 staging 加访问限制,可以在 Worker 前面挂一个 [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/applications/)(零代码,邮箱白名单)。 - **Cloudflare Workers** —— 在仓库根目录下逐个执行 `wrangler secret put <NAME>`,或在 dashboard 里设置(Workers → infiplot → Settings → Variables and Secrets)。如果要给 staging 加访问限制,可以在 Worker 前面挂一个 [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/applications/)(零代码,邮箱白名单)。
**3. 注意成本** **3. 注意成本**
-18
View File
@@ -1,18 +0,0 @@
import path from "node:path";
import type { NextConfig } from "next";
const config: NextConfig = {
reactStrictMode: true,
typedRoutes: false,
transpilePackages: [
"@infiplot/engine",
"@infiplot/ai-client",
"@infiplot/types",
"@infiplot/tts-client",
],
turbopack: {
root: path.join(__dirname, "..", ".."),
},
};
export default config;
-36
View File
@@ -1,36 +0,0 @@
{
"name": "@infiplot/web",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"typecheck": "tsc --noEmit",
"build:cf": "opennextjs-cloudflare build",
"preview:cf": "opennextjs-cloudflare preview",
"deploy:cf": "opennextjs-cloudflare deploy"
},
"dependencies": {
"@infiplot/ai-client": "workspace:*",
"@infiplot/engine": "workspace:*",
"@infiplot/types": "workspace:*",
"next": "^16.0.0",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
"@opennextjs/cloudflare": "^1.19.11",
"sharp": "^0.33.5",
"@types/node": "^22.9.0",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"autoprefixer": "^10.4.20",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.15",
"typescript": "^5.6.3",
"wrangler": "^4.96.0"
}
}
-13
View File
@@ -1,13 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"noEmit": true,
"incremental": true,
"plugins": [{ "name": "next" }],
"paths": {
"@/*": ["./*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
+1 -1
View File
@@ -1,6 +1,6 @@
/// <reference types="next" /> /// <reference types="next" />
/// <reference types="next/image-types/global" /> /// <reference types="next/image-types/global" />
import "./.next/dev/types/routes.d.ts"; import "./.next/types/routes.d.ts";
// NOTE: This file should not be edited // NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
+11
View File
@@ -0,0 +1,11 @@
import type { NextConfig } from "next";
const config: NextConfig = {
reactStrictMode: true,
typedRoutes: false,
turbopack: {
root: __dirname,
},
};
export default config;
+26 -7
View File
@@ -2,20 +2,39 @@
"name": "infiplot", "name": "infiplot",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"type": "module",
"description": "AI 实时交互剧情游戏", "description": "AI 实时交互剧情游戏",
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",
"packageManager": "pnpm@9.12.0", "packageManager": "pnpm@9.12.0",
"engines": { "engines": {
"node": ">=20" "node": ">=22"
}, },
"scripts": { "scripts": {
"dev": "pnpm --filter @infiplot/web dev", "dev": "next dev",
"build": "pnpm --filter @infiplot/web build", "build": "next build",
"start": "pnpm --filter @infiplot/web start", "start": "next start",
"lint": "pnpm -r lint", "lint": "next lint",
"typecheck": "pnpm -r typecheck" "typecheck": "tsc --noEmit",
"build:cf": "opennextjs-cloudflare build",
"preview:cf": "opennextjs-cloudflare preview",
"deploy:cf": "opennextjs-cloudflare deploy"
},
"dependencies": {
"jsonrepair": "^3.14.0",
"next": "^16.0.0",
"react": "^19.0.0",
"react-dom": "^19.0.0"
}, },
"devDependencies": { "devDependencies": {
"typescript": "^5.6.3" "@opennextjs/cloudflare": "^1.19.11",
"@types/node": "^22.9.0",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"autoprefixer": "^10.4.20",
"postcss": "^8.4.49",
"sharp": "^0.33.5",
"tailwindcss": "^3.4.15",
"typescript": "^5.6.3",
"wrangler": "^4.96.0"
} }
} }
-17
View File
@@ -1,17 +0,0 @@
{
"name": "@infiplot/ai-client",
"version": "0.1.0",
"private": true,
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts"
},
"scripts": {
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@infiplot/types": "workspace:*"
}
}
-7
View File
@@ -1,7 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"noEmit": true
},
"include": ["src/**/*"]
}
-20
View File
@@ -1,20 +0,0 @@
{
"name": "@infiplot/engine",
"version": "0.1.0",
"private": true,
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts"
},
"scripts": {
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@infiplot/ai-client": "workspace:*",
"@infiplot/tts-client": "workspace:*",
"@infiplot/types": "workspace:*",
"jsonrepair": "^3.14.0"
}
}
-7
View File
@@ -1,7 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"noEmit": true
},
"include": ["src/**/*"]
}
-17
View File
@@ -1,17 +0,0 @@
{
"name": "@infiplot/tts-client",
"version": "0.1.0",
"private": true,
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts"
},
"scripts": {
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@infiplot/types": "workspace:*"
}
}
-7
View File
@@ -1,7 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"noEmit": true
},
"include": ["src/**/*"]
}
-14
View File
@@ -1,14 +0,0 @@
{
"name": "@infiplot/types",
"version": "0.1.0",
"private": true,
"type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {
".": "./src/index.ts"
},
"scripts": {
"typecheck": "tsc --noEmit"
}
}
-7
View File
@@ -1,7 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"noEmit": true
},
"include": ["src/**/*"]
}
+117 -158
View File
@@ -7,44 +7,32 @@ settings:
importers: importers:
.: .:
devDependencies:
typescript:
specifier: ^5.6.3
version: 5.9.3
apps/web:
dependencies: dependencies:
'@infiplot/ai-client': jsonrepair:
specifier: workspace:* specifier: ^3.14.0
version: link:../../packages/ai-client version: 3.14.0
'@infiplot/engine':
specifier: workspace:*
version: link:../../packages/engine
'@infiplot/types':
specifier: workspace:*
version: link:../../packages/types
next: next:
specifier: ^16.0.0 specifier: ^16.0.0
version: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) version: 16.2.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
react: react:
specifier: ^19.0.0 specifier: ^19.0.0
version: 19.2.6 version: 19.2.7
react-dom: react-dom:
specifier: ^19.0.0 specifier: ^19.0.0
version: 19.2.6(react@19.2.6) version: 19.2.7(react@19.2.7)
devDependencies: devDependencies:
'@opennextjs/cloudflare': '@opennextjs/cloudflare':
specifier: ^1.19.11 specifier: ^1.19.11
version: 1.19.11(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(wrangler@4.96.0) version: 1.19.11(next@16.2.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(wrangler@4.97.0)
'@types/node': '@types/node':
specifier: ^22.9.0 specifier: ^22.9.0
version: 22.19.19 version: 22.19.19
'@types/react': '@types/react':
specifier: ^19.0.0 specifier: ^19.0.0
version: 19.2.15 version: 19.2.16
'@types/react-dom': '@types/react-dom':
specifier: ^19.0.0 specifier: ^19.0.0
version: 19.2.3(@types/react@19.2.15) version: 19.2.3(@types/react@19.2.16)
autoprefixer: autoprefixer:
specifier: ^10.4.20 specifier: ^10.4.20
version: 10.5.0(postcss@8.5.15) version: 10.5.0(postcss@8.5.15)
@@ -62,36 +50,7 @@ importers:
version: 5.9.3 version: 5.9.3
wrangler: wrangler:
specifier: ^4.96.0 specifier: ^4.96.0
version: 4.96.0 version: 4.97.0
packages/ai-client:
dependencies:
'@infiplot/types':
specifier: workspace:*
version: link:../types
packages/engine:
dependencies:
'@infiplot/ai-client':
specifier: workspace:*
version: link:../ai-client
'@infiplot/tts-client':
specifier: workspace:*
version: link:../tts-client
'@infiplot/types':
specifier: workspace:*
version: link:../types
jsonrepair:
specifier: ^3.14.0
version: 3.14.0
packages/tts-client:
dependencies:
'@infiplot/types':
specifier: workspace:*
version: link:../types
packages/types: {}
packages: packages:
@@ -356,32 +315,32 @@ packages:
workerd: workerd:
optional: true optional: true
'@cloudflare/workerd-darwin-64@1.20260529.1': '@cloudflare/workerd-darwin-64@1.20260601.1':
resolution: {integrity: sha512-gxh5sXw0CsBxNCNj8uJnrAxqFM7+R8SZI9WIqYMKz6uaPxgg+eTcBDTxjKczMs6bS21FkTEF6ohIzB5+UvxwKw==} resolution: {integrity: sha512-iXZBVuRbvuVqQ/63wul01hHCv/3R8G5S8zbkjfoHvyPZFynmlKTV59Hk+H8whyGwFAZuB71UJGLr+G5mJKfjWA==}
engines: {node: '>=16'} engines: {node: '>=16'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@cloudflare/workerd-darwin-arm64@1.20260529.1': '@cloudflare/workerd-darwin-arm64@1.20260601.1':
resolution: {integrity: sha512-B8xOwqd8ok8oaWBPhrpmNVSYou6AejFrYf3VzsJF6pg6TEA2tYbdThAGXgtLPQ8d1RD7GXYjVth2dSMg9napDA==} resolution: {integrity: sha512-veGpZQGBw07Twt+Y4z3oyo+/obKHt0iWUwvDV5GOiDAYjC/zW+YGstgVzg4SHq+k1sLH3ElqL2TXx20I5WBv3Q==}
engines: {node: '>=16'} engines: {node: '>=16'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@cloudflare/workerd-linux-64@1.20260529.1': '@cloudflare/workerd-linux-64@1.20260601.1':
resolution: {integrity: sha512-M1EKzsfoKmmno7MNPkuIc8iOdHLhFnE7ltEYaGGEoOj1MTJfMBK/JkIrhdkzc/06wpyPZPiBfBBmUppbeaMqUg==} resolution: {integrity: sha512-n/9hDz7fPGpYF0J684+Xr5zgjcS2jdmY2Of5m6e+eQ/M9+RfR+UaU8Ee/tkA1dDC0LYQB13hfPafZG66Ff1CsA==}
engines: {node: '>=16'} engines: {node: '>=16'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@cloudflare/workerd-linux-arm64@1.20260529.1': '@cloudflare/workerd-linux-arm64@1.20260601.1':
resolution: {integrity: sha512-Mn/Qpl1FAHDLtPthw6ti5gsHRj582jJdtK4OMUlW1CN0v+pmmxaav3KSqq7CS6a+5W0o2e8o9fKnjVilBxVVmQ==} resolution: {integrity: sha512-VHRZZbexATS+n+1j3x/CZaYbIJEye0J3iIHgG0Wp+l+NrZCKQ8qi8Lq1uTV0dLJQ67FuZtJtWdQ95mm9F7Fc+A==}
engines: {node: '>=16'} engines: {node: '>=16'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@cloudflare/workerd-windows-64@1.20260529.1': '@cloudflare/workerd-windows-64@1.20260601.1':
resolution: {integrity: sha512-78xgJJeXxkKYumWdKGH1pybUsEjTreSvbJqirW9cth7ZGonqdv5pzAVt+WWcbu0OFcSHrtQFX6zWioPNFp0/xQ==} resolution: {integrity: sha512-ye0C7MFLkeH16iTo8Tcjv2KiFmp23+sZGvUzSQa4xhP0QMe6EoJ+H/4SqqvnZ5nfN54slqKvx2VnXceENWe2CQ==}
engines: {node: '>=16'} engines: {node: '>=16'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@@ -974,53 +933,53 @@ packages:
'@jridgewell/trace-mapping@0.3.9': '@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
'@next/env@16.2.6': '@next/env@16.2.7':
resolution: {integrity: sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw==} resolution: {integrity: sha512-tMJizPlj6ZYpBMMdK8S0LJufrP4QTdR6pcv9KQ/bVETPAmg0j1mlHE9G2c38UyGHxoBapgwuj7XjbGJ2RcDFOg==}
'@next/swc-darwin-arm64@16.2.6': '@next/swc-darwin-arm64@16.2.7':
resolution: {integrity: sha512-ZJGkkcNfYgrrMkqOdZ7zoLa1TOy0qpcMfk/z4Mh/FKUz40gVO+HNQWqmLxf67Z5WB64DRp0dhEbyHfel+6sJUg==} resolution: {integrity: sha512-vm1EDI/pVaBNNiychmxk3fft+OhQPVD9cIM/tReLZIQ3TfQ4kqI9DwKk00dzuS1ulC7icbrzCFrmRRlk9PfNdw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@next/swc-darwin-x64@16.2.6': '@next/swc-darwin-x64@16.2.7':
resolution: {integrity: sha512-v/YLBHIY132Ced3puBJ7YJKw1lqsCrgcNo2aRJlCEyQrrCeRJlvGlnmxhPxNQI3KE3N1DN5r9TPNPvka3nq5RQ==} resolution: {integrity: sha512-O3IRSv1ZBL1zs0WrIgefTEcTKFVn+ryxBNe54erJ6KsD+2f/Mmt7g2jOYh8PSBdUwPtKQJuCsTMlZ7tIu2AcsQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@next/swc-linux-arm64-gnu@16.2.6': '@next/swc-linux-arm64-gnu@16.2.7':
resolution: {integrity: sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w==} resolution: {integrity: sha512-Re6PZtjBDd0aMU+VcZcC/PrIvj4WhrjDYtMhhCVQamWN4L90EVP0pcEOBQD25prSlw7OzNw5QpHLWMilRLsRNw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@next/swc-linux-arm64-musl@16.2.6': '@next/swc-linux-arm64-musl@16.2.7':
resolution: {integrity: sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==} resolution: {integrity: sha512-qyogG9QtBzWxgJfeGBvOEHI3851gTfCF3wLZ5RDLTBJGAmE9p1qDwKCOdrBrvBzRvYDT+gUDp72pzlSEfAXgNA==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@next/swc-linux-x64-gnu@16.2.6': '@next/swc-linux-x64-gnu@16.2.7':
resolution: {integrity: sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==} resolution: {integrity: sha512-Vhe4ZDuBpmMogrGi5D4R2Kq4JAQlj6+wvgaFYy31zfES0zPmt6TLA+cuYpM/OLrPZjo2MYQTHVqNUSCR6+fDZQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@next/swc-linux-x64-musl@16.2.6': '@next/swc-linux-x64-musl@16.2.7':
resolution: {integrity: sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==} resolution: {integrity: sha512-srvian89JahFLw1YLBEuhvPJ0DO5lpUeJQMXy4xYo7g628ZlNgXdNkqoxSAv9OYrBfByh6vxISMwW/mRbzCY+g==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@next/swc-win32-arm64-msvc@16.2.6': '@next/swc-win32-arm64-msvc@16.2.7':
resolution: {integrity: sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==} resolution: {integrity: sha512-GX3wvLpULFuRFJzwHaKfm7QZJ18F4ZSuxlPJ96BoBglCzBmdSjyeBKF+ZhWhvL/ckxNfLnNa7bsObO2ipYpszw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@next/swc-win32-x64-msvc@16.2.6': '@next/swc-win32-x64-msvc@16.2.7':
resolution: {integrity: sha512-F0+4i0h9J6C4eE3EAPWsoCk7UW/dbzOjyzxY0qnDUOYFu6FFmdZ6l97/XdV3/Nz3VYyO7UWjyEJUXkGqcoXfMA==} resolution: {integrity: sha512-J4WlM72NMk076Qsg0jTdK3SNXatlSdnjW7L7oNGLst1tAGjHrJh/FYi+pw9wyIjEtGRKDNzD0zuiY16oWYWVaw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@@ -1265,8 +1224,8 @@ packages:
peerDependencies: peerDependencies:
'@types/react': ^19.2.0 '@types/react': ^19.2.0
'@types/react@19.2.15': '@types/react@19.2.16':
resolution: {integrity: sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==} resolution: {integrity: sha512-esJiCAnl0kfpNdE69f3So4WJUXy95dLZydX0KwK46riIHDzHM7O9Vtf9xCHW0PXIqvgqNrswl522kA/5yx+F4w==}
abort-controller@3.0.0: abort-controller@3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
@@ -1527,8 +1486,8 @@ packages:
ee-first@1.1.1: ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
electron-to-chromium@1.5.364: electron-to-chromium@1.5.365:
resolution: {integrity: sha512-G/dYE3+AYhyHwzTwg8UbnXf7zqMERYh7l2jJ3QujhFsH8agSYwtnGAR2aZ7f0AakIKJXd5En/Hre4igIUrdlYw==} resolution: {integrity: sha512-xfip4u1QF1s+URFqpA6N+OeFpDGpN7VJz1f3MO3bVL0QYBjpGiZ5/Of7kugvM+o8TTqmanUlviHN3c8M9vYWCw==}
emoji-regex@10.6.0: emoji-regex@10.6.0:
resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
@@ -1860,8 +1819,8 @@ packages:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'} engines: {node: '>=6'}
miniflare@4.20260529.0: miniflare@4.20260601.0:
resolution: {integrity: sha512-4pj7WZQR/uYqVMa0cpAmmPBKEb0JegSocuystaXCubY455iqWdPUqgVD9R6N28oneWyPiUyAu5N8QpLbK+MU/Q==} resolution: {integrity: sha512-56TFiulSEQu43cYxdXgCiA3U3i+Ls0NoXwJXd6DmpNsx8yl/1Il2T3DQ4CMXjR6yfE7CSvC5MuXaqcSAMREjgw==}
engines: {node: '>=22.0.0'} engines: {node: '>=22.0.0'}
hasBin: true hasBin: true
@@ -1904,8 +1863,8 @@ packages:
resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
engines: {node: '>= 0.6'} engines: {node: '>= 0.6'}
next@16.2.6: next@16.2.7:
resolution: {integrity: sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==} resolution: {integrity: sha512-eMJxgjRzBaj3olkP4cBamHDXL79A8FC6u1GcsO1D1Tsx8bw/LLXUJCaoajVxtnhD3A1IJqIT8IcRJjgBIPJq4w==}
engines: {node: '>=20.9.0'} engines: {node: '>=20.9.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@@ -1939,8 +1898,8 @@ packages:
encoding: encoding:
optional: true optional: true
node-releases@2.0.46: node-releases@2.0.47:
resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==}
engines: {node: '>=18'} engines: {node: '>=18'}
normalize-path@3.0.0: normalize-path@3.0.0:
@@ -2105,13 +2064,13 @@ packages:
resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==}
engines: {node: '>= 0.10'} engines: {node: '>= 0.10'}
react-dom@19.2.6: react-dom@19.2.7:
resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==} resolution: {integrity: sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==}
peerDependencies: peerDependencies:
react: ^19.2.6 react: ^19.2.7
react@19.2.6: react@19.2.7:
resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} resolution: {integrity: sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
read-cache@1.0.0: read-cache@1.0.0:
@@ -2364,17 +2323,17 @@ packages:
engines: {node: ^16.13.0 || >=18.0.0} engines: {node: ^16.13.0 || >=18.0.0}
hasBin: true hasBin: true
workerd@1.20260529.1: workerd@1.20260601.1:
resolution: {integrity: sha512-G1rurOKEdzCtFE0yUPR9J9mUnPzMU8NdsD7NKM1/oMyCr1j3VEtWJzc5VbhgFQHNBVWrHzCL0JgVPuBirRW31g==} resolution: {integrity: sha512-Bg4+HF3B8TW0urAv8chiz25HSQ/aJxMBjgheUzu/nB1NQa+CaKGrUPv+Z3bf0np/WxLHYW1kcseVEtzZVPbX4g==}
engines: {node: '>=16'} engines: {node: '>=16'}
hasBin: true hasBin: true
wrangler@4.96.0: wrangler@4.97.0:
resolution: {integrity: sha512-8WuiMutalyfBB74wwRyy4VKKJEHjQuEnwcvdUav1M5AfQ8VaTYY5ZQnzvVZPOVXap40k5Mntz1LY3SPWpPukTg==} resolution: {integrity: sha512-jzW/aNvjerV+4TmwbvwGY6lpcuBk7EFUTonMDNfci45wSmMTj2/OJN+83cc/CeepKdb+6ZjGJw9NRjmcQoxqRg==}
engines: {node: '>=22.0.0'} engines: {node: '>=22.0.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
'@cloudflare/workers-types': ^4.20260529.1 '@cloudflare/workers-types': ^4.20260601.1
peerDependenciesMeta: peerDependenciesMeta:
'@cloudflare/workers-types': '@cloudflare/workers-types':
optional: true optional: true
@@ -3028,25 +2987,25 @@ snapshots:
'@cloudflare/kv-asset-handler@0.5.0': {} '@cloudflare/kv-asset-handler@0.5.0': {}
'@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260529.1)': '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260601.1)':
dependencies: dependencies:
unenv: 2.0.0-rc.24 unenv: 2.0.0-rc.24
optionalDependencies: optionalDependencies:
workerd: 1.20260529.1 workerd: 1.20260601.1
'@cloudflare/workerd-darwin-64@1.20260529.1': '@cloudflare/workerd-darwin-64@1.20260601.1':
optional: true optional: true
'@cloudflare/workerd-darwin-arm64@1.20260529.1': '@cloudflare/workerd-darwin-arm64@1.20260601.1':
optional: true optional: true
'@cloudflare/workerd-linux-64@1.20260529.1': '@cloudflare/workerd-linux-64@1.20260601.1':
optional: true optional: true
'@cloudflare/workerd-linux-arm64@1.20260529.1': '@cloudflare/workerd-linux-arm64@1.20260601.1':
optional: true optional: true
'@cloudflare/workerd-windows-64@1.20260529.1': '@cloudflare/workerd-windows-64@1.20260601.1':
optional: true optional: true
'@cspotcode/source-map-support@0.8.1': '@cspotcode/source-map-support@0.8.1':
@@ -3424,30 +3383,30 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2 '@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5
'@next/env@16.2.6': {} '@next/env@16.2.7': {}
'@next/swc-darwin-arm64@16.2.6': '@next/swc-darwin-arm64@16.2.7':
optional: true optional: true
'@next/swc-darwin-x64@16.2.6': '@next/swc-darwin-x64@16.2.7':
optional: true optional: true
'@next/swc-linux-arm64-gnu@16.2.6': '@next/swc-linux-arm64-gnu@16.2.7':
optional: true optional: true
'@next/swc-linux-arm64-musl@16.2.6': '@next/swc-linux-arm64-musl@16.2.7':
optional: true optional: true
'@next/swc-linux-x64-gnu@16.2.6': '@next/swc-linux-x64-gnu@16.2.7':
optional: true optional: true
'@next/swc-linux-x64-musl@16.2.6': '@next/swc-linux-x64-musl@16.2.7':
optional: true optional: true
'@next/swc-win32-arm64-msvc@16.2.6': '@next/swc-win32-arm64-msvc@16.2.7':
optional: true optional: true
'@next/swc-win32-x64-msvc@16.2.6': '@next/swc-win32-x64-msvc@16.2.7':
optional: true optional: true
'@noble/ciphers@1.3.0': {} '@noble/ciphers@1.3.0': {}
@@ -3487,7 +3446,7 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5 '@nodelib/fs.scandir': 2.1.5
fastq: 1.20.1 fastq: 1.20.1
'@opennextjs/aws@4.0.2(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))': '@opennextjs/aws@4.0.2(next@16.2.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7))':
dependencies: dependencies:
'@ast-grep/napi': 0.40.5 '@ast-grep/napi': 0.40.5
'@aws-sdk/client-cloudfront': 3.984.0 '@aws-sdk/client-cloudfront': 3.984.0
@@ -3503,26 +3462,26 @@ snapshots:
cookie: 1.1.1 cookie: 1.1.1
esbuild: 0.25.4 esbuild: 0.25.4
express: 5.2.1 express: 5.2.1
next: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) next: 16.2.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
path-to-regexp: 6.3.0 path-to-regexp: 6.3.0
urlpattern-polyfill: 10.1.0 urlpattern-polyfill: 10.1.0
yaml: 2.9.0 yaml: 2.9.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@opennextjs/cloudflare@1.19.11(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(wrangler@4.96.0)': '@opennextjs/cloudflare@1.19.11(next@16.2.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(wrangler@4.97.0)':
dependencies: dependencies:
'@ast-grep/napi': 0.40.5 '@ast-grep/napi': 0.40.5
'@dotenvx/dotenvx': 1.31.0 '@dotenvx/dotenvx': 1.31.0
'@opennextjs/aws': 4.0.2(next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)) '@opennextjs/aws': 4.0.2(next@16.2.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7))
ci-info: 4.4.0 ci-info: 4.4.0
cloudflare: 4.5.0 cloudflare: 4.5.0
comment-json: 4.6.2 comment-json: 4.6.2
enquirer: 2.4.1 enquirer: 2.4.1
glob: 12.0.0 glob: 12.0.0
next: 16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) next: 16.2.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
ts-tqdm: 0.8.6 ts-tqdm: 0.8.6
wrangler: 4.96.0 wrangler: 4.97.0
yargs: 18.0.0 yargs: 18.0.0
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@@ -3757,11 +3716,11 @@ snapshots:
dependencies: dependencies:
undici-types: 6.21.0 undici-types: 6.21.0
'@types/react-dom@19.2.3(@types/react@19.2.15)': '@types/react-dom@19.2.3(@types/react@19.2.16)':
dependencies: dependencies:
'@types/react': 19.2.15 '@types/react': 19.2.16
'@types/react@19.2.15': '@types/react@19.2.16':
dependencies: dependencies:
csstype: 3.2.3 csstype: 3.2.3
@@ -3854,8 +3813,8 @@ snapshots:
dependencies: dependencies:
baseline-browser-mapping: 2.10.33 baseline-browser-mapping: 2.10.33
caniuse-lite: 1.0.30001793 caniuse-lite: 1.0.30001793
electron-to-chromium: 1.5.364 electron-to-chromium: 1.5.365
node-releases: 2.0.46 node-releases: 2.0.47
update-browserslist-db: 1.2.3(browserslist@4.28.2) update-browserslist-db: 1.2.3(browserslist@4.28.2)
buffer-from@1.1.2: {} buffer-from@1.1.2: {}
@@ -3998,7 +3957,7 @@ snapshots:
ee-first@1.1.1: {} ee-first@1.1.1: {}
electron-to-chromium@1.5.364: {} electron-to-chromium@1.5.365: {}
emoji-regex@10.6.0: {} emoji-regex@10.6.0: {}
@@ -4375,12 +4334,12 @@ snapshots:
mimic-fn@2.1.0: {} mimic-fn@2.1.0: {}
miniflare@4.20260529.0: miniflare@4.20260601.0:
dependencies: dependencies:
'@cspotcode/source-map-support': 0.8.1 '@cspotcode/source-map-support': 0.8.1
sharp: 0.34.5 sharp: 0.34.5
undici: 7.24.8 undici: 7.24.8
workerd: 1.20260529.1 workerd: 1.20260601.1
ws: 8.20.1 ws: 8.20.1
youch: 4.1.0-beta.10 youch: 4.1.0-beta.10
transitivePeerDependencies: transitivePeerDependencies:
@@ -4417,25 +4376,25 @@ snapshots:
negotiator@1.0.0: {} negotiator@1.0.0: {}
next@16.2.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6): next@16.2.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies: dependencies:
'@next/env': 16.2.6 '@next/env': 16.2.7
'@swc/helpers': 0.5.15 '@swc/helpers': 0.5.15
baseline-browser-mapping: 2.10.33 baseline-browser-mapping: 2.10.33
caniuse-lite: 1.0.30001793 caniuse-lite: 1.0.30001793
postcss: 8.4.31 postcss: 8.4.31
react: 19.2.6 react: 19.2.7
react-dom: 19.2.6(react@19.2.6) react-dom: 19.2.7(react@19.2.7)
styled-jsx: 5.1.6(react@19.2.6) styled-jsx: 5.1.6(react@19.2.7)
optionalDependencies: optionalDependencies:
'@next/swc-darwin-arm64': 16.2.6 '@next/swc-darwin-arm64': 16.2.7
'@next/swc-darwin-x64': 16.2.6 '@next/swc-darwin-x64': 16.2.7
'@next/swc-linux-arm64-gnu': 16.2.6 '@next/swc-linux-arm64-gnu': 16.2.7
'@next/swc-linux-arm64-musl': 16.2.6 '@next/swc-linux-arm64-musl': 16.2.7
'@next/swc-linux-x64-gnu': 16.2.6 '@next/swc-linux-x64-gnu': 16.2.7
'@next/swc-linux-x64-musl': 16.2.6 '@next/swc-linux-x64-musl': 16.2.7
'@next/swc-win32-arm64-msvc': 16.2.6 '@next/swc-win32-arm64-msvc': 16.2.7
'@next/swc-win32-x64-msvc': 16.2.6 '@next/swc-win32-x64-msvc': 16.2.7
sharp: 0.34.5 sharp: 0.34.5
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'
@@ -4447,7 +4406,7 @@ snapshots:
dependencies: dependencies:
whatwg-url: 5.0.0 whatwg-url: 5.0.0
node-releases@2.0.46: {} node-releases@2.0.47: {}
normalize-path@3.0.0: {} normalize-path@3.0.0: {}
@@ -4577,12 +4536,12 @@ snapshots:
iconv-lite: 0.7.2 iconv-lite: 0.7.2
unpipe: 1.0.0 unpipe: 1.0.0
react-dom@19.2.6(react@19.2.6): react-dom@19.2.7(react@19.2.7):
dependencies: dependencies:
react: 19.2.6 react: 19.2.7
scheduler: 0.27.0 scheduler: 0.27.0
react@19.2.6: {} react@19.2.7: {}
read-cache@1.0.0: read-cache@1.0.0:
dependencies: dependencies:
@@ -4776,10 +4735,10 @@ snapshots:
strnum@2.3.0: {} strnum@2.3.0: {}
styled-jsx@5.1.6(react@19.2.6): styled-jsx@5.1.6(react@19.2.7):
dependencies: dependencies:
client-only: 0.0.1 client-only: 0.0.1
react: 19.2.6 react: 19.2.7
sucrase@3.35.1: sucrase@3.35.1:
dependencies: dependencies:
@@ -4906,24 +4865,24 @@ snapshots:
dependencies: dependencies:
isexe: 3.1.5 isexe: 3.1.5
workerd@1.20260529.1: workerd@1.20260601.1:
optionalDependencies: optionalDependencies:
'@cloudflare/workerd-darwin-64': 1.20260529.1 '@cloudflare/workerd-darwin-64': 1.20260601.1
'@cloudflare/workerd-darwin-arm64': 1.20260529.1 '@cloudflare/workerd-darwin-arm64': 1.20260601.1
'@cloudflare/workerd-linux-64': 1.20260529.1 '@cloudflare/workerd-linux-64': 1.20260601.1
'@cloudflare/workerd-linux-arm64': 1.20260529.1 '@cloudflare/workerd-linux-arm64': 1.20260601.1
'@cloudflare/workerd-windows-64': 1.20260529.1 '@cloudflare/workerd-windows-64': 1.20260601.1
wrangler@4.96.0: wrangler@4.97.0:
dependencies: dependencies:
'@cloudflare/kv-asset-handler': 0.5.0 '@cloudflare/kv-asset-handler': 0.5.0
'@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260529.1) '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260601.1)
blake3-wasm: 2.1.5 blake3-wasm: 2.1.5
esbuild: 0.27.3 esbuild: 0.27.3
miniflare: 4.20260529.0 miniflare: 4.20260601.0
path-to-regexp: 6.3.0 path-to-regexp: 6.3.0
unenv: 2.0.0-rc.24 unenv: 2.0.0-rc.24
workerd: 1.20260529.1 workerd: 1.20260601.1
optionalDependencies: optionalDependencies:
fsevents: 2.3.3 fsevents: 2.3.3
transitivePeerDependencies: transitivePeerDependencies:
-3
View File
@@ -1,3 +0,0 @@
packages:
- "apps/*"
- "packages/*"

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Some files were not shown because too many files have changed in this diff Show More