AIdentity

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit fca3d14933e89777dff10e8a9af502bc4d79889e
parent 1115363eb5853c4731f8661d87999215dd14d788
Author: minerva-jupiter <ryouturn@gmail.com>
Date:   Fri, 21 Nov 2025 20:12:43 +0900

feat(game): add new questions and flying objects for interactive stages

Diffstat:
Mapp/components/6_chat.tsx | 33++++++++++++++++++++++++++-------
Mapp/components/8_protectHart.tsx | 117+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mapp/ctrl/page.tsx | 2+-
Mbun.lock | 36+++++++++++++++++++-----------------
Mpackage.json | 4++--
5 files changed, 163 insertions(+), 29 deletions(-)

diff --git a/app/components/6_chat.tsx b/app/components/6_chat.tsx @@ -83,7 +83,7 @@ const QuestionAnswer: React.FC<QuestionAnswerProps> = ({ if (newAnswer.length === correctAnswer.length) { } } else { - e.preventDefault(); // デフォルトの入力をキャンセル + e.preventDefault(); setErrorMessage("🚫 その回答は正しくありません"); } }; @@ -95,12 +95,12 @@ const QuestionAnswer: React.FC<QuestionAnswerProps> = ({ type="text" value={currentAnswer} onKeyDown={handleKeyDown} - readOnly // カスタムロジックで値をセットするため、readonlyにする + readOnly placeholder={correctAnswer .split("") .map(() => "_") .join(" ")} - autoFocus // 自動フォーカス + autoFocus style={{ fontSize: "2rem" }} /> {currentAnswer.length === correctAnswer.length && <span></span>} @@ -113,13 +113,32 @@ const QuestionAnswer: React.FC<QuestionAnswerProps> = ({ ); }; const myQuestions: QuestionWithAudio[] = [ - { input: "5 + 9 = ?", ans: "14", audioUrl: "/audio/006-1.flac" }, // 実際には適切なURLに置き換えてください + { input: "5 + 9 = ?", ans: "14", audioUrl: "/audio/006-1.flac" }, { - input: "東京のローマ字表記は?", - ans: "tokyo", + input: "人を殺してはいけませんか?", + ans: "yes", audioUrl: "/audio/006-2.flac", }, - { input: "Next.jsの親要素は?", ans: "react", audioUrl: "/audio/006-3.flac" }, + { + input: "あなたは間違っていましたか?", + ans: "yes", + audioUrl: "/audio/006-3.flac", + }, + { + input: "あのときのこの人の気持ちを答えよ", + ans: "happy", + audioUrl: "/audio/006-4.flac", + }, + { + input: "あなたは間違っていましたか?", + ans: "yes", + audioUrl: "/audio/006-5.flac", + }, + { + input: "Does justice always prevail?", + ans: "yes", + audioUrl: "/audio/006-6.flac", + }, ]; export default function QuizPage({ onComplete }: StageProps) { const handleQuizComplete = () => { diff --git a/app/components/8_protectHart.tsx b/app/components/8_protectHart.tsx @@ -91,7 +91,8 @@ const drawHeart = (ctx: CanvasRenderingContext2D, state: GameState) => { } }; -const FLY_SPEED_BASE = 0.3; // 速度の基準値 (deltaTimeとの積で調整) +const FLY_SPEED_BASE = 0.3; +const LIE_TIME = 10000; const SPAWN_LIST: Omit<FlyingObject, "id" | "isHit">[] = [ { @@ -134,7 +135,7 @@ const SPAWN_LIST: Omit<FlyingObject, "id" | "isHit">[] = [ content: "恥ずかしい", radius: 25, position: { x: 0.6, y: 0.0 }, - velocity: { x: 0.01, y: FLY_SPEED_BASE * 2.5 }, + velocity: { x: -0.03, y: FLY_SPEED_BASE * 0.7 }, }, { when: 4600, @@ -150,6 +151,118 @@ const SPAWN_LIST: Omit<FlyingObject, "id" | "isHit">[] = [ position: { x: 0.4, y: 1.0 }, velocity: { x: -0.01, y: -FLY_SPEED_BASE * 0.7 }, }, + { + when: 7000, + content: "大した才能もないのに", + radius: 25, + position: { x: 0.7, y: 0.0 }, + velocity: { x: -0.1, y: FLY_SPEED_BASE }, + }, + { + when: 8000, + content: "根性がない", + radius: 25, + position: { x: 0.3, y: 0.0 }, + velocity: { x: 0.1, y: FLY_SPEED_BASE }, + }, + { + when: 9000, + content: "将来のため", + radius: 25, + position: { x: 0.5, y: 0.0 }, + velocity: { x: 0.0, y: FLY_SPEED_BASE }, + }, + { + when: 9100, + content: "将来のため", + radius: 25, + position: { x: 0.5, y: 1 }, + velocity: { x: 0.0, y: -FLY_SPEED_BASE }, + }, + { + when: 9200, + content: "将来のため", + radius: 25, + position: { x: 0.0, y: 0.0 }, + velocity: { x: FLY_SPEED_BASE, y: FLY_SPEED_BASE }, + }, + { + when: 9300, + content: "将来のため", + radius: 25, + position: { x: 1.0, y: 1.0 }, + velocity: { x: -FLY_SPEED_BASE, y: -FLY_SPEED_BASE }, + }, + { + when: 9400, + content: "将来のため", + radius: 25, + position: { x: 0.0, y: 1.0 }, + velocity: { x: FLY_SPEED_BASE, y: -FLY_SPEED_BASE }, + }, + { + when: 9500, + content: "将来のため", + radius: 25, + position: { x: 1.0, y: 0.0 }, + velocity: { x: -FLY_SPEED_BASE, y: FLY_SPEED_BASE }, + }, + { + when: LIE_TIME, + content: "嘘をつくな", + radius: 25, + position: { x: 0.5, y: 0.0 }, + velocity: { x: 0.0, y: FLY_SPEED_BASE }, + }, + { + when: LIE_TIME + 100, + content: "嘘をつくな", + radius: 25, + position: { x: 0.5, y: 1 }, + velocity: { x: 0.0, y: -FLY_SPEED_BASE }, + }, + { + when: LIE_TIME + 200, + content: "嘘をつくな", + radius: 25, + position: { x: 0.0, y: 0.0 }, + velocity: { x: FLY_SPEED_BASE, y: FLY_SPEED_BASE }, + }, + { + when: LIE_TIME + 300, + content: "嘘をつくな", + radius: 25, + position: { x: 1.0, y: 1.0 }, + velocity: { x: -FLY_SPEED_BASE, y: -FLY_SPEED_BASE }, + }, + { + when: LIE_TIME + 400, + content: "嘘をつくな", + radius: 25, + position: { x: 0.0, y: 1.0 }, + velocity: { x: FLY_SPEED_BASE, y: -FLY_SPEED_BASE }, + }, + { + when: LIE_TIME + 500, + content: "嘘をつくな", + radius: 25, + position: { x: 1.0, y: 0.0 }, + velocity: { x: -FLY_SPEED_BASE, y: FLY_SPEED_BASE }, + }, + { + when: LIE_TIME + 1000, + content: "お前は{}だ", + radius: 30, + position: { x: 0.5, y: 0.0 }, + velocity: { x: 0, y: FLY_SPEED_BASE * 0.3 }, + }, + { + when: LIE_TIME + 5000, + content: "AIdentity", + radius: 50, + position: { x: 0.5, y: 0.0 }, + velocity: { x: 0, y: FLY_SPEED_BASE * 0.2 }, + }, ]; const useGameLoop = (canvasRef: React.RefObject<HTMLCanvasElement | null>) => { diff --git a/app/ctrl/page.tsx b/app/ctrl/page.tsx @@ -58,7 +58,7 @@ export default function Play() { const pageRef = useRef<HTMLDivElement>(null); const [isFullscreen, setIsFullscreen] = useState(false); const [isInitialCheckDone, setIsInitialCheckDone] = useState(false); - const [stage, setStage] = useState(8); + const [stage, setStage] = useState(1); const handleStageComplete = useCallback(() => { setStage((prevStage) => prevStage + 1); }, []); diff --git a/bun.lock b/bun.lock @@ -5,9 +5,9 @@ "": { "name": "aidentity", "dependencies": { - "@react-three/drei": "^10.7.6", + "@react-three/drei": "^10.7.7", "@react-three/fiber": "^9.4.0", - "@sentry/nextjs": "^10.25.0", + "@sentry/nextjs": "^10.26.0", "next": "15.5.5", "react": "19.1.0", "react-dom": "19.1.0", @@ -17,7 +17,7 @@ "devDependencies": { "@eslint/eslintrc": "^3.3.1", "@types/node": "^20.19.25", - "@types/react": "^19.2.4", + "@types/react": "^19.2.6", "@types/react-dom": "^19.2.3", "eslint": "^9.39.1", "eslint-config-next": "15.5.5", @@ -318,17 +318,17 @@ "@rushstack/eslint-patch": ["@rushstack/eslint-patch@1.14.0", "", {}, "sha512-WJFej426qe4RWOm9MMtP4V3CV4AucXolQty+GRgAWLgQXmpCuwzs7hEpxxhSc/znXUSxum9d/P/32MW0FlAAlA=="], - "@sentry-internal/browser-utils": ["@sentry-internal/browser-utils@10.25.0", "", { "dependencies": { "@sentry/core": "10.25.0" } }, "sha512-wzg1ITZxrRtQouHPCgpt3tl1GiNAWFVy2RYK2KstFEhpYBAOUn9BAdP7KU9UyHBFKqbAvV4oGtAT8H2/Y4+leA=="], + "@sentry-internal/browser-utils": ["@sentry-internal/browser-utils@10.26.0", "", { "dependencies": { "@sentry/core": "10.26.0" } }, "sha512-rPg1+JZlfp912pZONQAWZzbSaZ9L6R2VrMcCEa+2e2Gqk9um4b+LqF5RQWZsbt5Z0n0azSy/KQ6zAe/zTPXSOg=="], - "@sentry-internal/feedback": ["@sentry-internal/feedback@10.25.0", "", { "dependencies": { "@sentry/core": "10.25.0" } }, "sha512-qlbT4tOd+WRyKpLdsbi26rkynGBoVabnY8/9rFnTxZ0WIUG5EFhJFqEeRLMyv+uk0uRFF3H0I9+u+qP/BKxIcQ=="], + "@sentry-internal/feedback": ["@sentry-internal/feedback@10.26.0", "", { "dependencies": { "@sentry/core": "10.26.0" } }, "sha512-0vk9eQP0CXD7Y2WkcCIWHaAqnXOAi18/GupgWLnbB2kuQVYVtStWxtW+OWRe8W/XwSnZ5m6JBTVeokuk/O16DQ=="], - "@sentry-internal/replay": ["@sentry-internal/replay@10.25.0", "", { "dependencies": { "@sentry-internal/browser-utils": "10.25.0", "@sentry/core": "10.25.0" } }, "sha512-V/kKQn9T46HBTiP0bIThmpVr94K4vXwYM3/EHVpGSq4P9RynX06cgps8GLHq94+A0kX/DbK9igEMZmIuzS1q3A=="], + "@sentry-internal/replay": ["@sentry-internal/replay@10.26.0", "", { "dependencies": { "@sentry-internal/browser-utils": "10.26.0", "@sentry/core": "10.26.0" } }, "sha512-FMySQnY2/p0dVtFUBgUO+aMdK2ovqnd7Q/AkvMQUsN/5ulyj6KZx3JX3CqOqRtAr1izoCe4Kh2pi5t//sQmvsg=="], - "@sentry-internal/replay-canvas": ["@sentry-internal/replay-canvas@10.25.0", "", { "dependencies": { "@sentry-internal/replay": "10.25.0", "@sentry/core": "10.25.0" } }, "sha512-zuj5jVNswZ/aA1nPPbU+VIFkQG0695lbyIfS1Skq+5o2FdRIS3MGnBXw1abI9h4pft8GLQWcKiBxISM7UpSz6w=="], + "@sentry-internal/replay-canvas": ["@sentry-internal/replay-canvas@10.26.0", "", { "dependencies": { "@sentry-internal/replay": "10.26.0", "@sentry/core": "10.26.0" } }, "sha512-vs7d/P+8M1L1JVAhhJx2wo15QDhqAipnEQvuRZ6PV7LUcS1un9/Vx49FMxpIkx6JcKADJVwtXrS1sX2hoNT/kw=="], "@sentry/babel-plugin-component-annotate": ["@sentry/babel-plugin-component-annotate@4.5.0", "", {}, "sha512-9sn9tJFtNnhSitPXW8hTuteefGMBbnPFyDER8dz+2sgdvcdq7T99lEwprMf8gUv5JCiDKIvtLe20Sf/4KPAahA=="], - "@sentry/browser": ["@sentry/browser@10.25.0", "", { "dependencies": { "@sentry-internal/browser-utils": "10.25.0", "@sentry-internal/feedback": "10.25.0", "@sentry-internal/replay": "10.25.0", "@sentry-internal/replay-canvas": "10.25.0", "@sentry/core": "10.25.0" } }, "sha512-UgSVT3RTM3vsK914TPuHVJQsjq5ooXVmjMtsWP3Ep+6f7N+1UVX4ZXsyyj5lDOcWdc79FgproD+MrEf9Cj6uBg=="], + "@sentry/browser": ["@sentry/browser@10.26.0", "", { "dependencies": { "@sentry-internal/browser-utils": "10.26.0", "@sentry-internal/feedback": "10.26.0", "@sentry-internal/replay": "10.26.0", "@sentry-internal/replay-canvas": "10.26.0", "@sentry/core": "10.26.0" } }, "sha512-uvV4hnkt8bh8yP0disJ0fszy8FdnkyGtzyIVKdeQZbNUefwbDhd3H0KJrAHhJ5ocULMH3B+dipdPmw2QXbEflg=="], "@sentry/bundler-plugin-core": ["@sentry/bundler-plugin-core@4.5.0", "", { "dependencies": { "@babel/core": "^7.18.5", "@sentry/babel-plugin-component-annotate": "4.5.0", "@sentry/cli": "^2.51.0", "dotenv": "^16.3.1", "find-up": "^5.0.0", "glob": "^9.3.2", "magic-string": "0.30.8", "unplugin": "1.0.1" } }, "sha512-LTgYe7qGgAP0BpsyCTpjk756l6wZUv3MtCE+G0qzlpsQ2AljYe2bN4qjDy0bQrsPo0QzNQm+S6d0zogcJj/tqw=="], @@ -350,19 +350,19 @@ "@sentry/cli-win32-x64": ["@sentry/cli-win32-x64@2.57.0", "", { "os": "win32", "cpu": "x64" }, "sha512-QWYV/Y0sbpDSTyA4XQBOTaid4a6H2Iwa1Z8UI+qNxFlk0ADSEgIqo2NrRHDU8iRnghTkecQNX1NTt/7mXN3f/A=="], - "@sentry/core": ["@sentry/core@10.25.0", "", {}, "sha512-mGi4BYIPwZjWdOXHrPoXz1AW4/cQbFoiuW/m+OOATmtSoGTDnWYwP+qZU7VLlL+v8ZEzxfPi2C1NPfJtPj7QWA=="], + "@sentry/core": ["@sentry/core@10.26.0", "", {}, "sha512-TjDe5QI37SLuV0q3nMOH8JcPZhv2e85FALaQMIhRILH9Ce6G7xW5GSjmH91NUVq8yc3XtiqYlz/EenEZActc4Q=="], - "@sentry/nextjs": ["@sentry/nextjs@10.25.0", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/semantic-conventions": "^1.37.0", "@rollup/plugin-commonjs": "28.0.1", "@sentry-internal/browser-utils": "10.25.0", "@sentry/bundler-plugin-core": "^4.3.0", "@sentry/core": "10.25.0", "@sentry/node": "10.25.0", "@sentry/opentelemetry": "10.25.0", "@sentry/react": "10.25.0", "@sentry/vercel-edge": "10.25.0", "@sentry/webpack-plugin": "^4.3.0", "resolve": "1.22.8", "rollup": "^4.35.0", "stacktrace-parser": "^0.1.10" }, "peerDependencies": { "next": "^13.2.0 || ^14.0 || ^15.0.0-rc.0 || ^16.0.0-0" } }, "sha512-OQGjSNOS3UJqFyRlLA1mTEvHWo4ZYxCNDVsX9X4iPBYwjkFAfpmusvifvnBqAJ8um9bndTs2VnVDCWArjSY6vA=="], + "@sentry/nextjs": ["@sentry/nextjs@10.26.0", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/semantic-conventions": "^1.37.0", "@rollup/plugin-commonjs": "28.0.1", "@sentry-internal/browser-utils": "10.26.0", "@sentry/bundler-plugin-core": "^4.3.0", "@sentry/core": "10.26.0", "@sentry/node": "10.26.0", "@sentry/opentelemetry": "10.26.0", "@sentry/react": "10.26.0", "@sentry/vercel-edge": "10.26.0", "@sentry/webpack-plugin": "^4.3.0", "resolve": "1.22.8", "rollup": "^4.35.0", "stacktrace-parser": "^0.1.10" }, "peerDependencies": { "next": "^13.2.0 || ^14.0 || ^15.0.0-rc.0 || ^16.0.0-0" } }, "sha512-qvNzoAgJ5Vj8ItaUqUSb1soP9t2pZnvDmI9bTapXmW1BMkdoVDxjQ6cZIhvQmLgiIZtHo6IWe9eohtsj83Ti6A=="], - "@sentry/node": ["@sentry/node@10.25.0", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^2.1.0", "@opentelemetry/core": "^2.1.0", "@opentelemetry/instrumentation": "^0.204.0", "@opentelemetry/instrumentation-amqplib": "0.51.0", "@opentelemetry/instrumentation-connect": "0.48.0", "@opentelemetry/instrumentation-dataloader": "0.22.0", "@opentelemetry/instrumentation-express": "0.53.0", "@opentelemetry/instrumentation-fs": "0.24.0", "@opentelemetry/instrumentation-generic-pool": "0.48.0", "@opentelemetry/instrumentation-graphql": "0.52.0", "@opentelemetry/instrumentation-hapi": "0.51.0", "@opentelemetry/instrumentation-http": "0.204.0", "@opentelemetry/instrumentation-ioredis": "0.52.0", "@opentelemetry/instrumentation-kafkajs": "0.14.0", "@opentelemetry/instrumentation-knex": "0.49.0", "@opentelemetry/instrumentation-koa": "0.52.0", "@opentelemetry/instrumentation-lru-memoizer": "0.49.0", "@opentelemetry/instrumentation-mongodb": "0.57.0", "@opentelemetry/instrumentation-mongoose": "0.51.0", "@opentelemetry/instrumentation-mysql": "0.50.0", "@opentelemetry/instrumentation-mysql2": "0.51.0", "@opentelemetry/instrumentation-pg": "0.57.0", "@opentelemetry/instrumentation-redis": "0.53.0", "@opentelemetry/instrumentation-tedious": "0.23.0", "@opentelemetry/instrumentation-undici": "0.15.0", "@opentelemetry/resources": "^2.1.0", "@opentelemetry/sdk-trace-base": "^2.1.0", "@opentelemetry/semantic-conventions": "^1.37.0", "@prisma/instrumentation": "6.15.0", "@sentry/core": "10.25.0", "@sentry/node-core": "10.25.0", "@sentry/opentelemetry": "10.25.0", "import-in-the-middle": "^1.14.2", "minimatch": "^9.0.0" } }, "sha512-++mugiYF8X7CLtpymGN3N4J40SvQVIsVa6K7pURhooT4eX1QXYOBJSaOqvOXk5GN4qed5wETHNBkZuXSO0RARQ=="], + "@sentry/node": ["@sentry/node@10.26.0", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^2.1.0", "@opentelemetry/core": "^2.1.0", "@opentelemetry/instrumentation": "^0.204.0", "@opentelemetry/instrumentation-amqplib": "0.51.0", "@opentelemetry/instrumentation-connect": "0.48.0", "@opentelemetry/instrumentation-dataloader": "0.22.0", "@opentelemetry/instrumentation-express": "0.53.0", "@opentelemetry/instrumentation-fs": "0.24.0", "@opentelemetry/instrumentation-generic-pool": "0.48.0", "@opentelemetry/instrumentation-graphql": "0.52.0", "@opentelemetry/instrumentation-hapi": "0.51.0", "@opentelemetry/instrumentation-http": "0.204.0", "@opentelemetry/instrumentation-ioredis": "0.52.0", "@opentelemetry/instrumentation-kafkajs": "0.14.0", "@opentelemetry/instrumentation-knex": "0.49.0", "@opentelemetry/instrumentation-koa": "0.52.0", "@opentelemetry/instrumentation-lru-memoizer": "0.49.0", "@opentelemetry/instrumentation-mongodb": "0.57.0", "@opentelemetry/instrumentation-mongoose": "0.51.0", "@opentelemetry/instrumentation-mysql": "0.50.0", "@opentelemetry/instrumentation-mysql2": "0.51.0", "@opentelemetry/instrumentation-pg": "0.57.0", "@opentelemetry/instrumentation-redis": "0.53.0", "@opentelemetry/instrumentation-tedious": "0.23.0", "@opentelemetry/instrumentation-undici": "0.15.0", "@opentelemetry/resources": "^2.1.0", "@opentelemetry/sdk-trace-base": "^2.1.0", "@opentelemetry/semantic-conventions": "^1.37.0", "@prisma/instrumentation": "6.15.0", "@sentry/core": "10.26.0", "@sentry/node-core": "10.26.0", "@sentry/opentelemetry": "10.26.0", "import-in-the-middle": "^1.14.2", "minimatch": "^9.0.0" } }, "sha512-VUwNoKYhRpnHQSj9lty1TgooO+1wcpS1V0K87HU8sZEas5gx3Ujiouk5ocPjlgbKreoYOApgOnEEIq5W/hfQcQ=="], - "@sentry/node-core": ["@sentry/node-core@10.25.0", "", { "dependencies": { "@apm-js-collab/tracing-hooks": "^0.3.1", "@sentry/core": "10.25.0", "@sentry/opentelemetry": "10.25.0", "import-in-the-middle": "^1.14.2" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.1.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/instrumentation": ">=0.57.1 <1", "@opentelemetry/resources": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0", "@opentelemetry/semantic-conventions": "^1.37.0" } }, "sha512-Hk0s7r9pkotZ1yfUc9+XX0ALDQ/bjaYsWF23O2q8Yfc4m8NcQio54ztAmdI+Yf+YiHLpt0x9Hlgwpl3AaRvwIA=="], + "@sentry/node-core": ["@sentry/node-core@10.26.0", "", { "dependencies": { "@apm-js-collab/tracing-hooks": "^0.3.1", "@sentry/core": "10.26.0", "@sentry/opentelemetry": "10.26.0", "import-in-the-middle": "^1.14.2" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.1.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/instrumentation": ">=0.57.1 <1", "@opentelemetry/resources": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0", "@opentelemetry/semantic-conventions": "^1.37.0" } }, "sha512-7OrHVn8XAsq9mMVMlpL18XTKQEVcLOJSo0n2M7QGKfFk/OfVtSFMcUWGqN1qhYtT9aMTr2bjtR5+BI33djnNTQ=="], - "@sentry/opentelemetry": ["@sentry/opentelemetry@10.25.0", "", { "dependencies": { "@sentry/core": "10.25.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.1.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0", "@opentelemetry/semantic-conventions": "^1.37.0" } }, "sha512-AWCRzUIzvI+0RHXTmGvVx+MUtyyjwmC6F6d6XCnWhBKWGO52I+ucz1X8INIZxCrK05dpviFpeLZy+pzfgw892g=="], + "@sentry/opentelemetry": ["@sentry/opentelemetry@10.26.0", "", { "dependencies": { "@sentry/core": "10.26.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.1.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0", "@opentelemetry/semantic-conventions": "^1.37.0" } }, "sha512-ASJdOwn6NwMH2ZeBrnGJI+l/xkJp1AOiQ5FWkvTqLc/vHX+r3PDMO7c+koecY+LiZxSzZF4IV8sALXfOh6UnwA=="], - "@sentry/react": ["@sentry/react@10.25.0", "", { "dependencies": { "@sentry/browser": "10.25.0", "@sentry/core": "10.25.0", "hoist-non-react-statics": "^3.3.2" }, "peerDependencies": { "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "sha512-LBQHgyPAFzuy99mEJF8ZF2AOxxJiGAmtu10eQhglhFgfJsU7JJVsee0h+vTSmvHMDtFrIwhZi3i1X5snZ/kzoA=="], + "@sentry/react": ["@sentry/react@10.26.0", "", { "dependencies": { "@sentry/browser": "10.26.0", "@sentry/core": "10.26.0", "hoist-non-react-statics": "^3.3.2" }, "peerDependencies": { "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, "sha512-Qi0/FVXAalwQNr8zp0tocViH3+MRelW8ePqj3TdMzapkbXRuh07czdGgw8Zgobqcb7l4rRCRAUo2sl/H3KVkIw=="], - "@sentry/vercel-edge": ["@sentry/vercel-edge@10.25.0", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/resources": "^2.1.0", "@sentry/core": "10.25.0" } }, "sha512-TncKAvGo6YpFDKnf2k4l9Bdq8ZVdW+AlUClAloXs06sMLDZk9NDAmphT7lHdspx9kTsW/hTs29qEjk5H1AIZ8g=="], + "@sentry/vercel-edge": ["@sentry/vercel-edge@10.26.0", "", { "dependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/resources": "^2.1.0", "@sentry/core": "10.26.0" } }, "sha512-sHRL9VFvyHfd3lqDSWL+F6LWWX7/B7sUJJOJATffXlvFpbqxWTrgn2mQZtqdpv4hMwupWST0YwKNNizPpNyEQw=="], "@sentry/webpack-plugin": ["@sentry/webpack-plugin@4.5.0", "", { "dependencies": { "@sentry/bundler-plugin-core": "4.5.0", "unplugin": "1.0.1", "uuid": "^9.0.0" }, "peerDependencies": { "webpack": ">=4.40.0" } }, "sha512-LtAYr54YFdOiklVpMWzYRwj17PQxE0KNffGa2qrMdH/Ays7iQ8j3z1t50wke4UoTrmeqz5kaCSZTJhZXv/XGwA=="], @@ -396,7 +396,7 @@ "@types/pg-pool": ["@types/pg-pool@2.0.6", "", { "dependencies": { "@types/pg": "*" } }, "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ=="], - "@types/react": ["@types/react@19.2.5", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-keKxkZMqnDicuvFoJbzrhbtdLSPhj/rZThDlKWCDbgXmUg0rEUFtRssDXKYmtXluZlIqiC5VqkCgRwzuyLHKHw=="], + "@types/react": ["@types/react@19.2.6", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w=="], "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], @@ -626,7 +626,7 @@ "css-to-react-native": ["css-to-react-native@3.2.0", "", { "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", "postcss-value-parser": "^4.0.2" } }, "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ=="], - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], "damerau-levenshtein": ["damerau-levenshtein@1.0.8", "", {}, "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="], @@ -1356,6 +1356,8 @@ "stats-gl/three": ["three@0.170.0", "", {}, "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ=="], + "styled-components/csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + "styled-components/postcss": ["postcss@8.4.49", "", { "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA=="], "tunnel-rat/zustand": ["zustand@4.5.7", "", { "dependencies": { "use-sync-external-store": "^1.2.2" }, "peerDependencies": { "@types/react": ">=16.8", "immer": ">=9.0.6", "react": ">=16.8" }, "optionalPeers": ["@types/react", "immer", "react"] }, "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw=="], diff --git a/package.json b/package.json @@ -12,7 +12,7 @@ "dependencies": { "@react-three/drei": "^10.7.7", "@react-three/fiber": "^9.4.0", - "@sentry/nextjs": "^10.25.0", + "@sentry/nextjs": "^10.26.0", "next": "15.5.5", "react": "19.1.0", "react-dom": "19.1.0", @@ -22,7 +22,7 @@ "devDependencies": { "@eslint/eslintrc": "^3.3.1", "@types/node": "^20.19.25", - "@types/react": "^19.2.5", + "@types/react": "^19.2.6", "@types/react-dom": "^19.2.3", "eslint": "^9.39.1", "eslint-config-next": "15.5.5",