0.2 在线版本打通
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema.json",
|
||||
"style": "new-york",
|
||||
"rsc": true,
|
||||
"tsx": true,
|
||||
"tailwind": {
|
||||
"config": "",
|
||||
"css": "src/app/globals.css",
|
||||
"baseColor": "neutral",
|
||||
"cssVariables": true,
|
||||
"prefix": ""
|
||||
},
|
||||
"iconLibrary": "lucide",
|
||||
"aliases": {
|
||||
"components": "@/components",
|
||||
"utils": "@/lib/utils",
|
||||
"ui": "@/components/ui",
|
||||
"lib": "@/lib",
|
||||
"hooks": "@/hooks"
|
||||
},
|
||||
"registries": {}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\node_modules__pnpm_ecee5139._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: Route "/documents/[id]" used `params.id`. `params` is a Promise and must be unwrapped with `await` or `React.use()` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
|
||||
at DocumentPage (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__d0423852._.js:120:150)
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\2536e_@blocknote_react_dist_blocknote-react_65a5c21f.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\node_modules\.pnpm\next@16.0.3_@babel+core@7.2_a6e7fe7b2107bfd5c9e45031e322c5c3\node_modules\next\dist\compiled\next-server\app-page-turbo.runtime.dev.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__c5e4d87b._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
⨯ ReferenceError: window is not defined
|
||||
at <unknown> (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\2536e_@blocknote_react_dist_blocknote-react_65a5c21f.js:421:9)
|
||||
at Se (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\2536e_@blocknote_react_dist_blocknote-react_65a5c21f.js:419:354)
|
||||
at BlockNoteEditor (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__c5e4d87b._.js:87:315) {
|
||||
digest: '2629247923'
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
|
||||
> wolai-frontend@0.1.0 dev F:\SOFT\MNOTE\wolai-frontend
|
||||
> next dev "--port" "3001"
|
||||
|
||||
▲ Next.js 16.0.3 (Turbopack)
|
||||
- Local: http://localhost:3001
|
||||
- Network: http://192.168.121.1:3001
|
||||
- Environments: .env.local
|
||||
|
||||
✓ Starting...
|
||||
✓ Ready in 729ms
|
||||
GET /login 200 in 2.3s (compile: 2.1s, render: 265ms)
|
||||
GET / 200 in 613ms (compile: 365ms, render: 248ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 200 in 3.4s (compile: 2.9s, render: 473ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 200 in 442ms (compile: 26ms, render: 415ms)
|
||||
GET /documents/1f256e20-0ef4-4090-9bec-954fcd799a4c 200 in 245ms (compile: 25ms, render: 220ms)
|
||||
POST /api/documents/create 200 in 424ms (compile: 311ms, render: 113ms)
|
||||
GET /documents/880f0a7a-e894-465b-a64d-bea1afa3da48 200 in 62ms (compile: 27ms, render: 34ms)
|
||||
GET /documents/1f256e20-0ef4-4090-9bec-954fcd799a4c 200 in 68ms (compile: 22ms, render: 47ms)
|
||||
GET /documents/e8b15472-3665-425e-b945-0de6bc9a15fb 200 in 56ms (compile: 22ms, render: 35ms)
|
||||
GET /documents/880f0a7a-e894-465b-a64d-bea1afa3da48 200 in 56ms (compile: 22ms, render: 34ms)
|
||||
GET / 307 in 297ms (compile: 2ms, render: 295ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 200 in 222ms (compile: 23ms, render: 199ms)
|
||||
GET / 307 in 102ms (compile: 3ms, render: 99ms)
|
||||
GET /login 200 in 53ms (compile: 3ms, render: 49ms)
|
||||
GET / 200 in 20ms (compile: 3ms, render: 17ms)
|
||||
GET /login 200 in 35ms (compile: 4ms, render: 31ms)
|
||||
GET /login 200 in 18ms (compile: 2ms, render: 15ms)
|
||||
GET / 200 in 20ms (compile: 3ms, render: 17ms)
|
||||
GET /login 200 in 34ms (compile: 3ms, render: 31ms)
|
||||
GET /login 200 in 18ms (compile: 2ms, render: 16ms)
|
||||
GET / 307 in 108ms (compile: 3ms, render: 105ms)
|
||||
GET /login 200 in 57ms (compile: 5ms, render: 52ms)
|
||||
GET / 307 in 193ms (compile: 3ms, render: 190ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 200 in 125ms (compile: 23ms, render: 102ms)
|
||||
GET / 200 in 27ms (compile: 4ms, render: 23ms)
|
||||
GET /login 200 in 34ms (compile: 3ms, render: 31ms)
|
||||
GET /login 200 in 19ms (compile: 3ms, render: 16ms)
|
||||
GET / 200 in 19ms (compile: 3ms, render: 16ms)
|
||||
GET /login 200 in 39ms (compile: 3ms, render: 36ms)
|
||||
GET /login 200 in 19ms (compile: 3ms, render: 16ms)
|
||||
GET / 200 in 20ms (compile: 3ms, render: 18ms)
|
||||
GET /login 200 in 40ms (compile: 9ms, render: 31ms)
|
||||
GET /login 200 in 19ms (compile: 2ms, render: 17ms)
|
||||
GET / 200 in 27ms (compile: 5ms, render: 22ms)
|
||||
GET /login 200 in 41ms (compile: 3ms, render: 37ms)
|
||||
GET /login 200 in 21ms (compile: 2ms, render: 18ms)
|
||||
GET / 200 in 23ms (compile: 3ms, render: 20ms)
|
||||
GET /login 200 in 40ms (compile: 3ms, render: 37ms)
|
||||
GET /login 200 in 22ms (compile: 3ms, render: 19ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 307 in 181ms (compile: 29ms, render: 152ms)
|
||||
GET /login 200 in 60ms (compile: 3ms, render: 57ms)
|
||||
✓ Compiled in 90ms
|
||||
GET /login 200 in 235ms (compile: 93ms, render: 142ms)
|
||||
GET /login 200 in 42ms (compile: 3ms, render: 39ms)
|
||||
GET / 200 in 175ms (compile: 93ms, render: 82ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 200 in 313ms (compile: 125ms, render: 188ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 200 in 67ms (compile: 4ms, render: 64ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 200 in 235ms (compile: 118ms, render: 117ms)
|
||||
GET /documents/2b01d6b7-dc39-49b9-97bb-0be59956e6fb 200 in 611ms (compile: 24ms, render: 587ms)
|
||||
@@ -0,0 +1,18 @@
|
||||
import { defineConfig, globalIgnores } from "eslint/config";
|
||||
import nextVitals from "eslint-config-next/core-web-vitals";
|
||||
import nextTs from "eslint-config-next/typescript";
|
||||
|
||||
const eslintConfig = defineConfig([
|
||||
...nextVitals,
|
||||
...nextTs,
|
||||
// Override default ignores of eslint-config-next.
|
||||
globalIgnores([
|
||||
// Default ignores of eslint-config-next:
|
||||
".next/**",
|
||||
"out/**",
|
||||
"build/**",
|
||||
"next-env.d.ts",
|
||||
]),
|
||||
]);
|
||||
|
||||
export default eslintConfig;
|
||||
@@ -0,0 +1 @@
|
||||
^C
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
> wolai-frontend@0.1.0 dev F:\SOFT\MNOTE\wolai-frontend
|
||||
> next dev "--port" "3001"
|
||||
|
||||
▲ Next.js 16.0.3 (Turbopack)
|
||||
- Local: http://localhost:3001
|
||||
- Network: http://192.168.121.1:3001
|
||||
- Environments: .env.local
|
||||
|
||||
✓ Starting...
|
||||
✓ Ready in 876ms
|
||||
@@ -0,0 +1,12 @@
|
||||
⨯ Failed to start server
|
||||
F:\SOFT\MNOTE\wolai-frontend\node_modules\.pnpm\next@16.0.3_@babel+core@7.2_a6e7fe7b2107bfd5c9e45031e322c5c3\node_modules\next\dist\server\lib\start-server.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\node_modules\.pnpm\next@16.0.3_@babel+core@7.2_a6e7fe7b2107bfd5c9e45031e322c5c3\node_modules\next\dist\trace\trace.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error: listen EADDRINUSE: address already in use :::3000
|
||||
at <unknown> (Error: listen EADDRINUSE: address already in use :::3000)
|
||||
at new Promise (<anonymous>) {
|
||||
code: 'EADDRINUSE',
|
||||
errno: -4091,
|
||||
syscall: 'listen',
|
||||
address: '::',
|
||||
port: 3000
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
> wolai-frontend@0.1.0 dev F:\SOFT\MNOTE\wolai-frontend
|
||||
> next dev "--port" "3000"
|
||||
|
||||
[?25h
|
||||
ELIFECYCLE Command failed with exit code 1.
|
||||
@@ -0,0 +1,103 @@
|
||||
⚠ Warning: Next.js inferred your workspace root, but it may not be correct.
|
||||
We detected multiple lockfiles and selected the directory of F:\SOFT\MNOTE\pnpm-lock.yaml as the root directory.
|
||||
To silence this warning, set `turbopack.root` in your Next.js config, or consider removing one of the lockfiles if it's not needed.
|
||||
See https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack#root-directory for more information.
|
||||
Detected additional lockfiles:
|
||||
* F:\SOFT\MNOTE\wolai-frontend\pnpm-lock.yaml
|
||||
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error [AuthApiError]: Invalid Refresh Token: Refresh Token Not Found
|
||||
at handleError (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8492:11)
|
||||
at async _handleRequest (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8542:9)
|
||||
at async _request (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8522:18)
|
||||
at async (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:12357:24)
|
||||
at async (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8251:36) {
|
||||
__isAuthError: true,
|
||||
status: 400,
|
||||
code: 'refresh_token_not_found'
|
||||
}
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error [AuthApiError]: Invalid Refresh Token: Refresh Token Not Found
|
||||
at handleError (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8492:11)
|
||||
at async _handleRequest (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8542:9)
|
||||
at async _request (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8522:18)
|
||||
at async (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:12357:24)
|
||||
at async (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8251:36) {
|
||||
__isAuthError: true,
|
||||
status: 400,
|
||||
code: 'refresh_token_not_found'
|
||||
}
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error [AuthApiError]: Invalid Refresh Token: Refresh Token Not Found
|
||||
at handleError (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8492:11)
|
||||
at async _handleRequest (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8542:9)
|
||||
at async _request (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8522:18)
|
||||
at async (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:12357:24)
|
||||
at async (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8251:36) {
|
||||
__isAuthError: true,
|
||||
status: 400,
|
||||
code: 'refresh_token_not_found'
|
||||
}
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
Error [AuthApiError]: Invalid Refresh Token: Refresh Token Not Found
|
||||
at handleError (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8492:11)
|
||||
at async _handleRequest (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8542:9)
|
||||
at async _request (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8522:18)
|
||||
at async (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:12357:24)
|
||||
at async (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\012f5__pnpm_791fff69._.js:8251:36) {
|
||||
__isAuthError: true,
|
||||
status: 400,
|
||||
code: 'refresh_token_not_found'
|
||||
}
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\wolai-frontend_9f844c81._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__97b7743c._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
⨯ Error: 创建默认工作空间失败:new row violates row-level security policy for table "workspaces"
|
||||
at ensureDefaultWorkspace (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\wolai-frontend_9f844c81._.js:172:15)
|
||||
at async Home (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__97b7743c._.js:126:5) {
|
||||
digest: '2664484505'
|
||||
}
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\wolai-frontend_9f844c81._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__97b7743c._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed
|
||||
⨯ Error: 创建默认工作空间失败:new row violates row-level security policy for table "workspaces"
|
||||
at ensureDefaultWorkspace (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\wolai-frontend_9f844c81._.js:172:15)
|
||||
at async Home (F:\SOFT\MNOTE\wolai-frontend\.next\dev\server\chunks\ssr\[root-of-the-server]__97b7743c._.js:126:5) {
|
||||
digest: '2664484505'
|
||||
}
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.
|
||||
|
||||
<--- Last few GCs --->
|
||||
|
||||
[30704:000001C2AAECC000] 3154411 ms: Mark-Compact 31843.8 (32807.5) -> 31742.3 (32803.9) MB, pooled: 0 MB, 10826.74 / 19.88 ms (average mu = 0.281, current mu = 0.289) task; scavenge might not succeed
|
||||
[30704:000001C2AAECC000] 3167016 ms: Mark-Compact 31812.8 (32808.6) -> 31722.8 (32794.1) MB, pooled: 8 MB, 11662.27 / 4.09 ms (average mu = 0.187, current mu = 0.075) task; scavenge might not succeed
|
||||
|
||||
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
|
||||
----- Native stack trace -----
|
||||
|
||||
1: 00007FF6DC3D7F8F node::OnFatalError+1343
|
||||
2: 00007FF6DD01B1E7 v8::Function::NewInstance+423
|
||||
3: 00007FF6DCE1BA97 v8::base::AddressSpaceReservation::AddressSpaceReservation+322071
|
||||
4: 00007FF6DCE1F7A4 v8::base::AddressSpaceReservation::AddressSpaceReservation+337700
|
||||
5: 00007FF6DCE2E73C v8::internal::StrongRootAllocatorBase::deallocate_impl+16604
|
||||
6: 00007FF6DCE2DF7B v8::internal::StrongRootAllocatorBase::deallocate_impl+14619
|
||||
7: 00007FF6DE295D2D v8::base::UnsignedDivisionByConstant<unsigned __int64>+2791341
|
||||
8: 00007FF6DCE19560 v8::base::AddressSpaceReservation::AddressSpaceReservation+312544
|
||||
9: 00007FF6DCDC9F12 EVP_PKEY_asn1_set_get_priv_key+86258
|
||||
10: 00007FF6DC32A48A node::GetNodeReport+98346
|
||||
11: 00007FF6DC328C70 node::GetNodeReport+92176
|
||||
12: 00007FF6DD082BCB uv_run+1867
|
||||
13: 00007FF6DD08273F uv_run+703
|
||||
14: 00007FF6DC4E4E3F node::DecodeWrite+367
|
||||
15: 00007FF6DC3659B2 node::MultiIsolatePlatform::DisposeIsolate+240642
|
||||
16: 00007FF6DC430F4C node::Start+1052
|
||||
17: 00007FF6DD449A82 AES_cbc_encrypt+2546
|
||||
18: 00007FF6DE29F434 v8::base::UnsignedDivisionByConstant<unsigned __int64>+2830004
|
||||
19: 00007FFEDDDAE8D7 BaseThreadInitThunk+23
|
||||
20: 00007FFEDFAAC53C RtlUserThreadStart+44
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
> wolai-frontend@0.1.0 dev F:\SOFT\MNOTE\wolai-frontend
|
||||
> next dev
|
||||
|
||||
▲ Next.js 16.0.3 (Turbopack)
|
||||
- Local: http://localhost:3000
|
||||
- Network: http://192.168.121.1:3000
|
||||
- Environments: .env.local
|
||||
|
||||
✓ Starting...
|
||||
✓ Ready in 983ms
|
||||
○ Compiling /documents/[id] ...
|
||||
GET /login 200 in 2.4s (compile: 1432ms, render: 975ms)
|
||||
POST /api/auth/callback 200 in 460ms (compile: 439ms, render: 21ms)
|
||||
GET /login 200 in 632ms (compile: 31ms, render: 601ms)
|
||||
GET /documents/fe527e35-08c8-45db-8cc5-4e040b40973e 307 in 6.2s (compile: 5.1s, render: 1160ms)
|
||||
POST /api/auth/callback 200 in 42ms (compile: 29ms, render: 13ms)
|
||||
GET /login 200 in 639ms (compile: 35ms, render: 603ms)
|
||||
POST /api/auth/callback 200 in 48ms (compile: 22ms, render: 26ms)
|
||||
POST /api/auth/callback 200 in 146ms (compile: 45ms, render: 101ms)
|
||||
POST /api/auth/callback 200 in 200ms (compile: 49ms, render: 151ms)
|
||||
GET / 200 in 1154ms (compile: 432ms, render: 723ms)
|
||||
GET /login 200 in 699ms (compile: 29ms, render: 670ms)
|
||||
POST /api/auth/callback 200 in 55ms (compile: 44ms, render: 12ms)
|
||||
POST /api/auth/callback 200 in 98ms (compile: 47ms, render: 50ms)
|
||||
POST /api/auth/callback 200 in 132ms (compile: 36ms, render: 96ms)
|
||||
POST /api/auth/callback 200 in 133ms (compile: 40ms, render: 93ms)
|
||||
POST /api/auth/callback 200 in 141ms (compile: 39ms, render: 102ms)
|
||||
POST /api/auth/callback 200 in 188ms (compile: 44ms, render: 144ms)
|
||||
GET / 200 in 788ms (compile: 52ms, render: 736ms)
|
||||
GET /login 200 in 711ms (compile: 20ms, render: 691ms)
|
||||
POST /api/auth/callback 200 in 57ms (compile: 37ms, render: 21ms)
|
||||
POST /api/auth/callback 200 in 59ms (compile: 41ms, render: 18ms)
|
||||
POST /api/auth/callback 200 in 130ms (compile: 22ms, render: 108ms)
|
||||
POST /api/auth/callback 200 in 132ms (compile: 33ms, render: 99ms)
|
||||
POST /api/auth/callback 200 in 136ms (compile: 34ms, render: 102ms)
|
||||
POST /api/auth/callback 200 in 171ms (compile: 37ms, render: 134ms)
|
||||
GET / 200 in 900ms (compile: 44ms, render: 856ms)
|
||||
GET /documents/6fd575a8-1ca5-41f8-9366-2d8c400efd02 200 in 1754ms (compile: 65ms, render: 1689ms)
|
||||
GET /documents/6fd575a8-1ca5-41f8-9366-2d8c400efd02 200 in 1323ms (compile: 61ms, render: 1262ms)
|
||||
GET /api/references/backlinks?workspaceId=637d70cb-fbe1-4dc3-9f2c-ff8e099b1225&pageId=6fd575a8-1ca5-41f8-9366-2d8c400efd02 200 in 252ms (compile: 156ms, render: 96ms)
|
||||
POST /api/documents/save 200 in 174ms (compile: 134ms, render: 40ms)
|
||||
POST /api/documents/stats 200 in 192ms (compile: 156ms, render: 37ms)
|
||||
[?25h
|
||||
ELIFECYCLE Command failed with exit code 134.
|
||||
@@ -0,0 +1 @@
|
||||
27684
|
||||
@@ -0,0 +1,27 @@
|
||||
import type { NextConfig } from "next";
|
||||
|
||||
const nextConfig: NextConfig = {
|
||||
// 供桌面端打包使用(Electron 内置 Next server.js + 最小依赖)。
|
||||
// 说明:`pnpm run build:desktop:next` 会依赖该产物。
|
||||
output: "standalone",
|
||||
turbopack: {
|
||||
// 避免 monorepo/多 lockfile 场景下 root 误判,减少构建与热更新的不确定性
|
||||
root: __dirname,
|
||||
},
|
||||
async headers() {
|
||||
// 说明:ONLYOFFICE 文档服务器会在其 iframe 内跨域拉取插件 manifest/js/html。
|
||||
// 这里对插件资源放开 CORS,避免 pluginsData 加载失败。
|
||||
return [
|
||||
{
|
||||
source: "/onlyoffice/plugins/:path*",
|
||||
headers: [
|
||||
{ key: "Access-Control-Allow-Origin", value: "*" },
|
||||
{ key: "Access-Control-Allow-Methods", value: "GET,OPTIONS" },
|
||||
{ key: "Access-Control-Allow-Headers", value: "*" },
|
||||
],
|
||||
},
|
||||
];
|
||||
},
|
||||
};
|
||||
|
||||
export default nextConfig;
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"name": "wolai-frontend",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "eslint",
|
||||
"test": "vitest"
|
||||
},
|
||||
"dependencies": {
|
||||
"@blocknote/core": "^0.42.0",
|
||||
"@blocknote/mantine": "0.42.0",
|
||||
"@blocknote/react": "^0.42.0",
|
||||
"@dnd-kit/core": "^6.3.1",
|
||||
"@dnd-kit/sortable": "^10.0.0",
|
||||
"@dnd-kit/utilities": "^3.2.2",
|
||||
"@hello-pangea/dnd": "^18.0.1",
|
||||
"@hocuspocus/provider": "^2.15.3",
|
||||
"@radix-ui/react-avatar": "^1.1.11",
|
||||
"@radix-ui/react-dialog": "^1.1.15",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||
"@radix-ui/react-hover-card": "^1.1.15",
|
||||
"@radix-ui/react-label": "^2.1.8",
|
||||
"@radix-ui/react-popover": "^1.1.15",
|
||||
"@radix-ui/react-scroll-area": "^1.2.10",
|
||||
"@radix-ui/react-separator": "^1.1.8",
|
||||
"@radix-ui/react-slot": "^1.2.4",
|
||||
"@radix-ui/react-tabs": "^1.1.13",
|
||||
"@radix-ui/react-toggle": "^1.1.10",
|
||||
"@supabase/auth-helpers-nextjs": "^0.10.0",
|
||||
"@supabase/auth-helpers-react": "^0.5.0",
|
||||
"@supabase/supabase-js": "^2.81.1",
|
||||
"@tanstack/react-query": "^5.90.10",
|
||||
"@tanstack/react-query-devtools": "^5.90.2",
|
||||
"@tanstack/react-virtual": "^3.11.0",
|
||||
"@xyflow/react": "^12.9.3",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "^1.1.1",
|
||||
"lucide-react": "^0.554.0",
|
||||
"next": "16.0.3",
|
||||
"react": "19.2.0",
|
||||
"react-dom": "19.2.0",
|
||||
"react-dropzone": "^14.3.8",
|
||||
"react-icons": "5.5.0",
|
||||
"simple-mind-map": "0.14.0-fix.1",
|
||||
"simple-mind-map-plugin-themes": "^1.0.1",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.4.0",
|
||||
"uuid": "^13.0.0",
|
||||
"vaul": "^1.1.2",
|
||||
"y-protocols": "^1.0.6",
|
||||
"yjs": "^13.6.27",
|
||||
"zustand": "^5.0.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/next-on-pages": "^1.13.16",
|
||||
"@tailwindcss/postcss": "^4",
|
||||
"@types/node": "^20",
|
||||
"@types/react": "^19",
|
||||
"@types/react-dom": "^19",
|
||||
"eslint": "^9",
|
||||
"eslint-config-next": "16.0.3",
|
||||
"jsdom": "^27.2.0",
|
||||
"tailwindcss": "^4",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "^5",
|
||||
"vitest": "^4.0.13"
|
||||
}
|
||||
}
|
||||
+10984
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
const config = {
|
||||
plugins: {
|
||||
"@tailwindcss/postcss": {},
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "682195dd-7fd2-4802-aeff-13f370327c0e",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "67d55b2f-be05-44f9-a260-e7c2dc52f0ad",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"data": {
|
||||
"uid": "caa9e147-4604-4de7-85ce-deedc099272a",
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"imgMap": {},
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"uid": "4650cb13-2df7-4c13-8543-bde7ec1f2cb1",
|
||||
"text": "<p>二级节点</p>",
|
||||
"expand": true,
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"uid": "04559ee8-e909-4e12-893c-1c1a9121dd48",
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"imgMap": {},
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"uid": "b7a2331e-1e35-4ea0-abb5-2d1b7e5f5312",
|
||||
"text": "<p>二级节点</p>",
|
||||
"expand": true,
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"uid": "4bdb25be-1ebd-43f3-b989-b4854b0126aa",
|
||||
"text": "<p>EXTERNAL_PASTE_20260109-070102</p>",
|
||||
"expand": true,
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "eff9612b-f445-4095-b9fd-2cf023bbab5d",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>全屏编辑-20260110-111609</p>",
|
||||
"expand": true,
|
||||
"uid": "969a1a4a-47b4-4af6-b2f3-8d7513f62ae3",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"layout": "logicalStructure",
|
||||
"root": {
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "a60c5991-cea1-4291-8e65-cc37554268e3",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
},
|
||||
"theme": {
|
||||
"template": "default",
|
||||
"config": {}
|
||||
},
|
||||
"view": {
|
||||
"transform": {
|
||||
"scaleX": 1,
|
||||
"scaleY": 1,
|
||||
"shear": 0,
|
||||
"rotate": 0,
|
||||
"translateX": -47.500057220458984,
|
||||
"translateY": -14.999987602233887,
|
||||
"originX": 0,
|
||||
"originY": 0,
|
||||
"a": 1,
|
||||
"b": 0,
|
||||
"c": 0,
|
||||
"d": 1,
|
||||
"e": -47.500057220458984,
|
||||
"f": -14.999987602233887
|
||||
},
|
||||
"state": {
|
||||
"scale": 1,
|
||||
"x": -47.500057220458984,
|
||||
"y": -14.999987602233887,
|
||||
"sx": 0,
|
||||
"sy": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+56
File diff suppressed because one or more lines are too long
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "f476cade-710b-4daa-9ccb-dd422687267f",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "92bfc510-faf5-44d1-bfeb-307efca4da89",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>全屏编辑-20260110-112842</p>",
|
||||
"expand": true,
|
||||
"uid": "a9683f19-8729-41ad-bbdf-10d7fe90c273",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "45e538e8-caa2-44d1-8146-d15f95f67e61",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "be42e77f-7f90-4267-81ad-e63028ff84ed",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+56
File diff suppressed because one or more lines are too long
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "903f2b46-1579-4c68-b8ea-5cada53ee67f",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "ef6d1094-3b99-43a9-a4b6-5acda237548f",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"data": {
|
||||
"uid": "28935621-7dd7-43d1-b244-a1264c4b723b",
|
||||
"text": "<p>目录</p>",
|
||||
"expand": true,
|
||||
"imgMap": {},
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"uid": "f2e318fe-adf0-4382-84ca-67671332efd2",
|
||||
"refs": [
|
||||
{
|
||||
"kind": "pdf",
|
||||
"page": 8,
|
||||
"title": "二、不同类型氢的反应活性与自由基稳定性"
|
||||
}
|
||||
],
|
||||
"text": "<p>二、不同类型氢的反应活性与自由基稳定性</p>",
|
||||
"expand": true,
|
||||
"isActive": false,
|
||||
"richText": true,
|
||||
"hyperlink": "/api/mindmap-ai/test-pdf?name=%E5%8D%A4%E5%8C%96%E5%8F%8D%E5%BA%94%E5%8E%9F%E7%90%86_1-9.pdf#page=8"
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"uid": "7d390cd2-3540-48f7-9255-f31cd010959b",
|
||||
"refs": [
|
||||
{
|
||||
"kind": "pdf",
|
||||
"page": 9,
|
||||
"title": "三、其他影响因素"
|
||||
}
|
||||
],
|
||||
"text": "<p>三、其他影响因素</p>",
|
||||
"expand": true,
|
||||
"isActive": false,
|
||||
"richText": true,
|
||||
"hyperlink": "/api/mindmap-ai/test-pdf?name=%E5%8D%A4%E5%8C%96%E5%8F%8D%E5%BA%94%E5%8E%9F%E7%90%86_1-9.pdf#page=9"
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "3670b555-0d46-43cd-a39e-c5841f15b318",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "e8be096f-0f48-4421-b000-22f6d04f9721",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "1fcb006e-5693-494f-a3c8-1a429525d4aa",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "b0c5d61d-2353-4482-b193-b1f28aca3cf2",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"uid": "999e4c3c-44a8-41d5-9284-27723f4103d9",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"uid": "8df1d7c9-b424-41c5-94f0-7162ccc4c409"
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"data": {
|
||||
"uid": "c5244920-17c7-4b52-bbe4-a3c2081930c6",
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"imgMap": {},
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"uid": "99063c88-45ae-4098-8a3d-15727bc3296b",
|
||||
"text": "<p>二级节点</p>",
|
||||
"expand": true,
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"uid": "c24f2a7b-6935-4d80-83b8-03cbf66dc2bd",
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"imgMap": {},
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"uid": "fdc23551-530c-4dd6-9ac2-072df4131f93",
|
||||
"text": "<p>二级节点</p>",
|
||||
"expand": true,
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"uid": "6c80d1f9-5c1a-40dc-8f3b-fd2c6da1adde",
|
||||
"text": "<p>EXTERNAL_PASTE_20260110-102047</p>",
|
||||
"expand": true,
|
||||
"isActive": false,
|
||||
"richText": true
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"layout": "logicalStructure",
|
||||
"root": {
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "1bac6891-868f-4f0f-bf1a-1ed65a582ad1",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"uid": "bccd39e6-5666-48f0-9914-03a045f7671d",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"uid": "39610ca9-c40e-42d3-8c29-778e76d28f0c"
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
},
|
||||
"theme": {
|
||||
"template": "default",
|
||||
"config": {}
|
||||
},
|
||||
"view": {
|
||||
"transform": {
|
||||
"scaleX": 1,
|
||||
"scaleY": 1,
|
||||
"shear": 0,
|
||||
"rotate": 0,
|
||||
"translateX": -47.5,
|
||||
"translateY": -15,
|
||||
"originX": 0,
|
||||
"originY": 0,
|
||||
"a": 1,
|
||||
"b": 0,
|
||||
"c": 0,
|
||||
"d": 1,
|
||||
"e": -47.5,
|
||||
"f": -15
|
||||
},
|
||||
"state": {
|
||||
"scale": 1,
|
||||
"x": -47.5,
|
||||
"y": -15,
|
||||
"sx": -56.5,
|
||||
"sy": -15
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "76e55938-ecde-4ef9-b776-457bf5615d3b",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+56
File diff suppressed because one or more lines are too long
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "8a66be77-37a1-49e5-b421-85523faf172c",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "0364614c-1e94-46e8-b699-f0c0561e7c06",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"layout": "logicalStructure",
|
||||
"root": {
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "0880ece2-721d-4b8b-95b2-9b9e35660b6a",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"uid": "b3854ba4-5f8a-41fc-9443-a060775a3b97",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"uid": "76aac634-f8fc-40e9-bac6-ae6c3647b114"
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
},
|
||||
"theme": {
|
||||
"template": "default",
|
||||
"config": {}
|
||||
},
|
||||
"view": {
|
||||
"transform": {
|
||||
"scaleX": 1,
|
||||
"scaleY": 1,
|
||||
"shear": 0,
|
||||
"rotate": 0,
|
||||
"translateX": -47.5,
|
||||
"translateY": -15,
|
||||
"originX": 0,
|
||||
"originY": 0,
|
||||
"a": 1,
|
||||
"b": 0,
|
||||
"c": 0,
|
||||
"d": 1,
|
||||
"e": -47.5,
|
||||
"f": -15
|
||||
},
|
||||
"state": {
|
||||
"scale": 1,
|
||||
"x": -47.5,
|
||||
"y": -15,
|
||||
"sx": -56.5,
|
||||
"sy": -15
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "d3767873-b0c9-407c-b334-62b31bd8cd5d",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "566c8bb6-637a-4708-94f8-fb4e2ea909b3",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"uid": "b0871a5e-cb0f-418e-8f0a-95fbfa00c170",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"layout": "logicalStructure",
|
||||
"root": {
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "83813437-fcc2-44d2-952d-20729781a41d",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"uid": "0e51b04f-faa3-4b4f-854e-74a620683266",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"uid": "977878bb-2591-445f-8fd1-8d14c5e8223a"
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
},
|
||||
"theme": {
|
||||
"template": "default",
|
||||
"config": {}
|
||||
},
|
||||
"view": {
|
||||
"transform": {
|
||||
"scaleX": 1,
|
||||
"scaleY": 1,
|
||||
"shear": 0,
|
||||
"rotate": 0,
|
||||
"translateX": -47.5,
|
||||
"translateY": -15,
|
||||
"originX": 0,
|
||||
"originY": 0,
|
||||
"a": 1,
|
||||
"b": 0,
|
||||
"c": 0,
|
||||
"d": 1,
|
||||
"e": -47.5,
|
||||
"f": -15
|
||||
},
|
||||
"state": {
|
||||
"scale": 1,
|
||||
"x": -47.5,
|
||||
"y": -15,
|
||||
"sx": -56.5,
|
||||
"sy": -15
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "9d23273e-8edf-475e-b703-7106ae0afc7a",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "46092d86-4ba6-4d38-b106-a2886a0f2ed8",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "2a742d9c-9067-4177-8f58-d2781ec0680b",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "5b153200-9cda-4950-90ee-16acc02dad3d",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "a2767a8b-7caa-4c5e-9878-e9bdf40f09db",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题去去去</p>",
|
||||
"expand": true,
|
||||
"uid": "b0377b59-5a2f-4e92-b087-c92a12b728f6",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>二级节点</p>",
|
||||
"uid": "807b6c39-31cd-484d-9f89-8437461681c3",
|
||||
"expand": true,
|
||||
"richText": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [],
|
||||
"inserting": false
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "dc8a7778-2823-4520-975e-7498e2538b59",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+295
@@ -0,0 +1,295 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>摩尔生物产品线</span></p>",
|
||||
"expand": true,
|
||||
"uid": "d820b33f-181c-49b1-828b-fa3f2187eb9e",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>CDMO</span></p>",
|
||||
"uid": "95095b86-9a21-4b26-970c-96120ce8b249",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>当前主要内容</span></p>",
|
||||
"uid": "76818f57-4ae1-4b2e-9b3e-a805a66baf6f",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>药品杂质的定制合成</span></p>",
|
||||
"uid": "60024039-ee34-4d2c-b798-430f3b0c8bba",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>未来拓展内容</span></p>",
|
||||
"uid": "1a051340-4e54-41d9-80ca-bd5057f0a8cf",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>高级中间体的定制合成</span></p>",
|
||||
"uid": "0c0b4071-92a0-4ca6-8700-896367779db3",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>同行公司</span></p>",
|
||||
"uid": "3431d0f8-3909-431d-a8eb-03e618ac7a15",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>爱斯特</span></p>",
|
||||
"uid": "21a96a51-e423-453d-869c-15d2a5fe84d7",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>伊诺达博</span></p>",
|
||||
"uid": "b7ebacfb-9dbe-4bcc-8248-392c5466bb4a",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>药明康德</span></p>",
|
||||
"uid": "66810f9a-bbd2-4445-b1af-36a059855c87",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>API</span></p>",
|
||||
"uid": "21f8e0b5-8954-4115-8773-71681de103c2",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>当前主要内容</span></p>",
|
||||
"uid": "6b491785-6289-423a-9bb4-da1d0b062419",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>满足工厂立项项目</span></p>",
|
||||
"uid": "4cda097d-b37e-4090-8ad8-00d0625f2d4f",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>未来拓展内容</span></p>",
|
||||
"uid": "fdad1eb5-a23f-40ff-bd13-f5d6f547f72c",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>CMC定制服务</span></p>",
|
||||
"uid": "b3f574d3-2918-49cd-8d6e-2b460144fd20",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>新技术</span></p>",
|
||||
"uid": "981ad4c2-6c11-4589-bf5b-f21ea29fb6fb",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>可拓展内容</span></p>",
|
||||
"uid": "1d6cb9cc-fe1f-44de-9336-a93573dfe20d",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>为降低成本的生产新工艺的开发</span></p>",
|
||||
"uid": "28cd0699-bb07-4578-9f5d-e630d339cb52",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>连续流工艺技术的开发</span></p>",
|
||||
"uid": "5e249c0a-4da6-4d2c-a609-2065deac9a0c",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>硝化/磺化反应</span></p>",
|
||||
"uid": "0b4d39a1-00d9-410d-84b4-7e9d75b4a5f5",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>小型CDMO生产</span></p>",
|
||||
"uid": "3647413d-907e-457f-805d-beaecca8be72",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>绿色安全工艺路线的开发</span></p>",
|
||||
"uid": "9084c3a4-c46b-413f-bac9-fa149e01c936",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>固定床氢化</span></p>",
|
||||
"uid": "97bb2184-9052-4fc4-8525-0c8e70a90742",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>回路反应器氢化</span></p>",
|
||||
"uid": "451aba7b-de73-44ee-aaa6-6a99a34dafaa",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>同行公司</span></p>",
|
||||
"uid": "af21f93b-b084-4094-adaf-87b0768bdd62",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>爱斯特</span></p>",
|
||||
"uid": "78a01c4c-ca67-4aa9-a67b-c18a3e544bb8",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>康宁</span></p>",
|
||||
"uid": "90b0cb45-edbb-4bed-a1a3-ca545aed46e1",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text": "<p><span>重庆斯普瑞</span></p>",
|
||||
"uid": "d9301a32-0a35-4e71-85ab-281be9f90400",
|
||||
"richText": true,
|
||||
"expand": true,
|
||||
"isActive": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+1
@@ -0,0 +1 @@
|
||||
# 无标题
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "e4616cda-8ded-4667-bb19-8ae9cbca57f7",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "<p>中心主题</p>",
|
||||
"expand": true,
|
||||
"uid": "f68ea467-e859-4734-9689-871f96b5b992",
|
||||
"richText": true,
|
||||
"isActive": false,
|
||||
"imgMap": {}
|
||||
},
|
||||
"children": [],
|
||||
"smmVersion": "0.14.0-fix.1"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user