diff --git a/Dockerfile b/Dockerfile index 18b7e25ad..926f587eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ WORKDIR /app/web ARG VITE_TLDRAW_LICENSE_KEY ENV VITE_TLDRAW_LICENSE_KEY=${VITE_TLDRAW_LICENSE_KEY} COPY web/package.json web/bun.lock ./ -RUN --mount=type=cache,target=/root/.bun/install/cache bun install --cache-dir=/root/.bun/install/cache +RUN --mount=type=cache,target=/root/.bun/install/cache bun install --frozen-lockfile --cache-dir=/root/.bun/install/cache COPY VERSION /app/VERSION COPY CHANGELOG.md /app/CHANGELOG.md COPY web ./ diff --git a/web/bun.lock b/web/bun.lock index 399d604b3..e3f9f5b08 100644 --- a/web/bun.lock +++ b/web/bun.lock @@ -18,6 +18,7 @@ "@streamdown/code": "^1.1.1", "@tanstack/react-query": "^5.101.2", "@tanstack/react-virtual": "^3.14.8", + "@tiptap/core": "3.28.0", "@tiptap/extension-character-count": "^3.28.0", "@tiptap/extension-color": "^3.28.0", "@tiptap/extension-highlight": "^3.28.0", @@ -65,6 +66,7 @@ "@types/node": "^20.19.43", "@types/react": "19.2.17", "@types/react-dom": "19.2.3", + "@types/three": "0.185.4", "@vitejs/plugin-react": "^6.0.3", "prettier": "^3.9.5", "typescript": "^7.0.2", @@ -947,7 +949,7 @@ "@types/stats.js": ["@types/stats.js@0.17.4", "", {}, "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA=="], - "@types/three": ["@types/three@0.185.1", "", { "dependencies": { "@dimforge/rapier3d-compat": "~0.12.0", "@tweenjs/tween.js": "~23.1.3", "@types/stats.js": "*", "@types/webxr": ">=0.5.17", "fflate": "~0.8.2", "meshoptimizer": "~1.1.1" } }, "sha512-db1xTb+EgYF2didW+eudSvVPtn75zo+fGsY8ShQrJY/B5ZBmC2Fiaykv3aImHAlCNEGuMPkPGXBJGLwzu5mC7A=="], + "@types/three": ["@types/three@0.185.4", "", { "dependencies": { "@dimforge/rapier3d-compat": "~0.12.0", "@tweenjs/tween.js": "~23.1.3", "@types/stats.js": "*", "@types/webxr": ">=0.5.17", "fflate": "~0.8.2", "meshoptimizer": "~1.1.1" } }, "sha512-gAsBIC07NIFrxjbf7tH2t71c38uulFfk/RFoC7FNBSjMRAQ8J1x/RBvusX0N5PJouaYFJawXQqfCQ0RKUx/1nA=="], "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], @@ -3271,6 +3273,8 @@ "split-string/extend-shallow": ["extend-shallow@3.0.2", "", { "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" } }, "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q=="], + "stats-gl/@types/three": ["@types/three@0.185.1", "", { "dependencies": { "@dimforge/rapier3d-compat": "~0.12.0", "@tweenjs/tween.js": "~23.1.3", "@types/stats.js": "*", "@types/webxr": ">=0.5.17", "fflate": "~0.8.2", "meshoptimizer": "~1.1.1" } }, "sha512-db1xTb+EgYF2didW+eudSvVPtn75zo+fGsY8ShQrJY/B5ZBmC2Fiaykv3aImHAlCNEGuMPkPGXBJGLwzu5mC7A=="], + "stats-gl/three": ["three@0.170.0", "", {}, "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ=="], "three-stdlib/fflate": ["fflate@0.6.10", "", {}, "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="], diff --git a/web/package.json b/web/package.json index 26f3a2e12..c2e821cf6 100644 --- a/web/package.json +++ b/web/package.json @@ -26,7 +26,7 @@ "@streamdown/code": "^1.1.1", "@tanstack/react-query": "^5.101.2", "@tanstack/react-virtual": "^3.14.8", - "@tiptap/core": "3.30.1", + "@tiptap/core": "3.28.0", "@tiptap/extension-character-count": "^3.28.0", "@tiptap/extension-color": "^3.28.0", "@tiptap/extension-highlight": "^3.28.0", diff --git a/web/src/pages/canvas/index.tsx b/web/src/pages/canvas/index.tsx index 4a19218db..b08a1ea1a 100644 --- a/web/src/pages/canvas/index.tsx +++ b/web/src/pages/canvas/index.tsx @@ -39,7 +39,7 @@ export default function CanvasPage() { const updateProject = useCanvasStore((state) => state.updateProject); const [associationOpen, setAssociationOpen] = useState(false); const [associationProjectId, setAssociationProjectId] = useState(""); - const projectQuery = useQuery({ queryKey: ["projects"], queryFn: listProjects }); + const projectQuery = useQuery({ queryKey: ["projects"], queryFn: () => listProjects() }); const mode = searchParams.get("mode"); const agentMode = mode === "new" || mode === "recent" || mode === "choose"; diff --git a/web/src/pages/home/index.tsx b/web/src/pages/home/index.tsx index 54253724b..8cd3f6302 100644 --- a/web/src/pages/home/index.tsx +++ b/web/src/pages/home/index.tsx @@ -28,7 +28,7 @@ export default function IndexPage() { const user = useUserStore((state) => state.user); const userHydrated = useUserStore((state) => state.hydrated); const shortDramaEnabled = useUserStore((state) => state.features.shortDramaEnabled); - const domainProjectsQuery = useQuery({ queryKey: ["projects"], queryFn: listProjects, enabled: Boolean(user && shortDramaEnabled) }); + const domainProjectsQuery = useQuery({ queryKey: ["projects"], queryFn: () => listProjects(), enabled: Boolean(user && shortDramaEnabled) }); const domainProjects = useMemo( () => [...(domainProjectsQuery.data?.projects || [])].sort((left, right) => right.project.updatedAt.localeCompare(left.project.updatedAt)), [domainProjectsQuery.data],