Initial commit: accountbook project
- Node.js backend server - Frontend application - Backup script - Project specification Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/a115fcea0d441c48.css" as="style"/><link rel="stylesheet" href="/_next/static/css/a115fcea0d441c48.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8fa1640cc84ba8fe.js" defer=""></script><script src="/_next/static/chunks/framework-64ad27b21261a9ce.js" defer=""></script><script src="/_next/static/chunks/main-aefbcb23b1606112.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be10d8e0e3953b07.js" defer=""></script><script src="/_next/static/chunks/pages/_error-7a92967bea80186d.js" defer=""></script><script src="/_next/static/qLhTs8_S85rjOOeVUp07g/_buildManifest.js" defer=""></script><script src="/_next/static/qLhTs8_S85rjOOeVUp07g/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div><div class="toast-stack" aria-live="polite" aria-atomic="true"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"qLhTs8_S85rjOOeVUp07g","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/a115fcea0d441c48.css" as="style"/><link rel="stylesheet" href="/_next/static/css/a115fcea0d441c48.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8fa1640cc84ba8fe.js" defer=""></script><script src="/_next/static/chunks/framework-64ad27b21261a9ce.js" defer=""></script><script src="/_next/static/chunks/main-aefbcb23b1606112.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be10d8e0e3953b07.js" defer=""></script><script src="/_next/static/chunks/pages/_error-7a92967bea80186d.js" defer=""></script><script src="/_next/static/qLhTs8_S85rjOOeVUp07g/_buildManifest.js" defer=""></script><script src="/_next/static/qLhTs8_S85rjOOeVUp07g/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div><div class="toast-stack" aria-live="polite" aria-atomic="true"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"qLhTs8_S85rjOOeVUp07g","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../package.json","../../../pages/_app.js","../../package.json","../webpack-runtime.js"]}
|
||||
@@ -0,0 +1 @@
|
||||
"use strict";(()=>{var e={};e.id=660,e.ids=[660],e.modules={2785:e=>{e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},6689:e=>{e.exports=require("react")},997:e=>{e.exports=require("react/jsx-runtime")},5315:e=>{e.exports=require("path")}};var r=require("../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[899],()=>s(2899));module.exports=t})();
|
||||
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/compiled/node-html-parser/index.js","../../../node_modules/next/dist/compiled/node-html-parser/package.json","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/pages/_document.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../../package.json","../../package.json","../chunks/899.js","../webpack-runtime.js"]}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/compiled/node-html-parser/index.js","../../../node_modules/next/dist/compiled/node-html-parser/package.json","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../package.json","../chunks/899.js","../webpack-runtime.js"]}
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/a115fcea0d441c48.css" as="style"/><link rel="stylesheet" href="/_next/static/css/a115fcea0d441c48.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8fa1640cc84ba8fe.js" defer=""></script><script src="/_next/static/chunks/framework-64ad27b21261a9ce.js" defer=""></script><script src="/_next/static/chunks/main-aefbcb23b1606112.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be10d8e0e3953b07.js" defer=""></script><script src="/_next/static/chunks/pages/categories-53ccc6325e13ffd1.js" defer=""></script><script src="/_next/static/qLhTs8_S85rjOOeVUp07g/_buildManifest.js" defer=""></script><script src="/_next/static/qLhTs8_S85rjOOeVUp07g/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="app-shell"><header class="app-header app-header--compact app-header--with-content app-header--with-actions"><div class="app-shell__container app-header__inner"><div class="app-header__main"><div class="app-header__text"><h1>分类</h1><p>整理常用分类与图标</p></div></div><div class="app-header__actions"><button type="button" class="icon-button" aria-label="设置"><svg viewBox="0 0 24 24" width="18" height="18" class="" aria-hidden="true" role="presentation" fill="none"><path d="M12 8.5A3.5 3.5 0 1 0 12 15.5A3.5 3.5 0 1 0 12 8.5Z" fill="none" stroke="currentColor" stroke-width="1.8"></path><path d="M19.4 15a1 1 0 0 0 .2 1.1l.1.1a2 2 0 0 1-2.8 2.8l-.1-.1a1 1 0 0 0-1.1-.2 1 1 0 0 0-.6.9V20a2 2 0 0 1-4 0v-.2a1 1 0 0 0-.6-.9 1 1 0 0 0-1.1.2l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1 1 0 0 0 .2-1.1 1 1 0 0 0-.9-.6H4a2 2 0 0 1 0-4h.2a1 1 0 0 0 .9-.6 1 1 0 0 0-.2-1.1l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1 1 0 0 0 1.1.2 1 1 0 0 0 .6-.9V4a2 2 0 0 1 4 0v.2a1 1 0 0 0 .6.9 1 1 0 0 0 1.1-.2l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1 1 0 0 0-.2 1.1 1 1 0 0 0 .9.6H20a2 2 0 0 1 0 4h-.2a1 1 0 0 0-.4 1Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div></div></header><main class="app-content"><div class="app-shell__container app-content__inner"><div class="card loading-state">加载中...</div></div></main><nav class="bottom-nav" aria-label="主导航"><div class="app-shell__container bottom-nav__inner"><button type="button" class="bottom-nav__item"><svg viewBox="0 0 24 24" width="20" height="20" class="" aria-hidden="true" role="presentation" fill="none"><path d="M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5.5v-6h-5v6H4a1 1 0 0 1-1-1v-9.5Z" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path></svg><span>首页</span></button><button type="button" class="bottom-nav__item"><svg viewBox="0 0 24 24" width="20" height="20" class="" aria-hidden="true" role="presentation" fill="none"><path d="M4 20h16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path><path d="M7 16v-4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path><path d="M12 16V8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path><path d="M17 16v-7" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg><span>统计</span></button><button type="button" class="bottom-nav__item"><svg viewBox="0 0 24 24" width="20" height="20" class="" aria-hidden="true" role="presentation" fill="none"><path d="M17 3l4 4-4 4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3 7h18" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path><path d="M7 21l-4-4 4-4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M21 17H3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg><span>周期</span></button><button type="button" class="bottom-nav__item is-active" aria-current="page"><svg viewBox="0 0 24 24" width="20" height="20" class="" aria-hidden="true" role="presentation" fill="none"><path d="M11 4H5a2 2 0 0 0-2 2v6l8.5 8.5a2.1 2.1 0 0 0 3 0l6-6a2.1 2.1 0 0 0 0-3L12 4Z" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linejoin="round"></path><circle cx="7.5" cy="8.5" r="1.2" fill="currentColor"></circle></svg><span>分类</span></button></div></nav></div><div class="toast-stack" aria-live="polite" aria-atomic="true"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/categories","query":{},"buildId":"qLhTs8_S85rjOOeVUp07g","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../webpack-runtime.js","../chunks/899.js","../chunks/342.js","../chunks/261.js","../../../package.json"]}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/compiled/node-html-parser/index.js","../../../node_modules/next/dist/compiled/node-html-parser/package.json","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../node_modules/react-dom/index.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/scheduler/cjs/scheduler.development.js","../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/scheduler/index.js","../../../node_modules/scheduler/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../../package.json","../../package.json","../chunks/261.js","../chunks/342.js","../chunks/899.js","../webpack-runtime.js"]}
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/a115fcea0d441c48.css" as="style"/><link rel="stylesheet" href="/_next/static/css/a115fcea0d441c48.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8fa1640cc84ba8fe.js" defer=""></script><script src="/_next/static/chunks/framework-64ad27b21261a9ce.js" defer=""></script><script src="/_next/static/chunks/main-aefbcb23b1606112.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be10d8e0e3953b07.js" defer=""></script><script src="/_next/static/chunks/pages/login-f50164aa2a6805b4.js" defer=""></script><script src="/_next/static/qLhTs8_S85rjOOeVUp07g/_buildManifest.js" defer=""></script><script src="/_next/static/qLhTs8_S85rjOOeVUp07g/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="app-shell app-shell--standalone"><header class="app-header app-header--compact app-header--with-content"><div class="app-shell__container app-header__inner"><div class="app-header__main"><div class="app-header__text"><h1>记账本</h1><p>随时记录每一笔收支</p></div></div></div></header><main class="app-content auth-layout"><div class="app-shell__container app-content__inner"><div class="auth-page"><div class="auth-card auth-card--refresh"><div class="auth-logo auth-logo--refresh"><div class="auth-logo__mark" aria-hidden="true"><svg viewBox="0 0 24 24" width="24" height="24" class="" aria-hidden="true" role="presentation" fill="none"><path d="M4 20h16" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path><path d="M7 16v-4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path><path d="M12 16V8" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path><path d="M17 16v-7" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"></path></svg></div><h1>欢迎回来</h1><p>登录后继续记录每一笔收支</p></div><div class="auth-switch" role="tablist" aria-label="登录或注册"><button type="button" class="is-active">登录</button><button type="button" class="">注册</button></div><form class="auth-form"><div class="form-group"><label for="username">用户名</label><input id="username" type="text" placeholder="3-20个字符" required="" value=""/></div><div class="form-group"><label for="password">密码</label><input id="password" type="password" placeholder="6-20个字符" required="" value=""/></div><button type="submit" class="btn btn-primary">登录</button></form></div></div></div></main></div><div class="toast-stack" aria-live="polite" aria-atomic="true"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/login","query":{},"buildId":"qLhTs8_S85rjOOeVUp07g","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../webpack-runtime.js","../chunks/899.js","../chunks/342.js","../chunks/261.js","../../../package.json"]}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../webpack-runtime.js","../chunks/899.js","../chunks/342.js","../chunks/261.js","../../../package.json"]}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../webpack-runtime.js","../chunks/899.js","../chunks/342.js","../chunks/261.js","../../../package.json"]}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../webpack-runtime.js","../chunks/899.js","../chunks/342.js","../chunks/261.js","../../../package.json"]}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"version":1,"files":["../webpack-runtime.js","../chunks/899.js","../chunks/342.js","../chunks/261.js","../../../package.json"]}
|
||||
Reference in New Issue
Block a user