Compare commits
10
Commits
9165188100
...
3975bbed73
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3975bbed73 | ||
|
|
1e478c2eaa | ||
|
|
349760b60c | ||
|
|
af3fcbea96 | ||
|
|
127f491167 | ||
|
|
ad6387e49e | ||
|
|
c1c7eb006b | ||
|
|
5dd00c310f | ||
|
|
1f51c330dd | ||
|
|
bd99fc8e81 |
@@ -0,0 +1,15 @@
|
||||
# 服务器配置
|
||||
PORT=3501
|
||||
NODE_ENV=development
|
||||
|
||||
# JWT 密钥(生产环境必须修改)
|
||||
JWT_SECRET=your-secret-key-here
|
||||
|
||||
# 数据库路径
|
||||
DB_PATH=./accountbook.db
|
||||
|
||||
# 日志级别
|
||||
LOG_LEVEL=info
|
||||
|
||||
# 生产环境允许的域名(逗号分隔)
|
||||
ALLOWED_ORIGINS=https://yourdomain.com,https://www.yourdomain.com
|
||||
@@ -0,0 +1,7 @@
|
||||
node_modules/
|
||||
frontend/node_modules/
|
||||
frontend/.next/
|
||||
logs/
|
||||
*.log
|
||||
accountbook.db
|
||||
.worktrees/
|
||||
@@ -0,0 +1,42 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
node: true,
|
||||
es2021: true,
|
||||
jest: true,
|
||||
browser: true,
|
||||
},
|
||||
extends: [
|
||||
'eslint:recommended',
|
||||
'plugin:react/recommended',
|
||||
'plugin:react-hooks/recommended',
|
||||
],
|
||||
parserOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
sourceType: 'module',
|
||||
ecmaFeatures: {
|
||||
jsx: true,
|
||||
},
|
||||
},
|
||||
settings: {
|
||||
react: {
|
||||
version: 'detect',
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
'no-console': 'off',
|
||||
'no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
||||
'prefer-const': 'error',
|
||||
'no-var': 'error',
|
||||
'react/react-in-jsx-scope': 'off',
|
||||
'react/prop-types': 'off',
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['**/*.js'],
|
||||
rules: {
|
||||
'react/no-unknown-property': ['error', { ignore: ['class'] }],
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
@@ -15,6 +15,7 @@ node_modules/
|
||||
# Build output
|
||||
dist/
|
||||
build/
|
||||
frontend/.next/
|
||||
|
||||
# IDE
|
||||
.idea/
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"semi": true,
|
||||
"singleQuote": true,
|
||||
"tabWidth": 2,
|
||||
"trailingComma": "es5",
|
||||
"printWidth": 100,
|
||||
"bracketSpacing": true,
|
||||
"arrowParens": "always"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
# 更新日志
|
||||
|
||||
## [1.1.0] - 2026-03-18
|
||||
|
||||
### 新增
|
||||
- 后端模块化重构,拆分单体 server.js
|
||||
- 数据库迁移系统
|
||||
- 统一错误处理机制
|
||||
- 数据库索引优化
|
||||
- SWR 数据获取和缓存
|
||||
- 乐观更新支持
|
||||
- 错误边界组件
|
||||
- ESLint + Prettier 配置
|
||||
- Jest 测试框架
|
||||
|
||||
### 优化
|
||||
- API 错误响应格式统一
|
||||
- 前端数据获取性能优化
|
||||
- 代码质量和一致性检查
|
||||
|
||||
### 开发体验
|
||||
- 新增 `npm run dev` 同时启动前后端
|
||||
- 新增 `npm run migrate` 数据库迁移
|
||||
- 新增 `npm run lint` 代码检查
|
||||
- 新增 `npm test` 运行测试
|
||||
@@ -203,3 +203,43 @@ npm run dev
|
||||
```
|
||||
|
||||
访问 http://你的IP:3500
|
||||
|
||||
## 9. 项目结构
|
||||
|
||||
### 后端目录结构
|
||||
```
|
||||
server/
|
||||
├── index.js # 入口文件
|
||||
├── config/
|
||||
│ └── database.js # 数据库配置
|
||||
├── middleware/
|
||||
│ ├── auth.js # 认证中间件
|
||||
│ └── errorHandler.js # 错误处理
|
||||
├── routes/
|
||||
│ ├── auth.js # 认证路由
|
||||
│ ├── records.js # 账目路由
|
||||
│ ├── stats.js # 统计路由
|
||||
│ ├── recurring.js # 周期性账单
|
||||
│ ├── categories.js # 分类路由
|
||||
│ ├── export.js # 导入导出
|
||||
│ └── search.js # 搜索路由
|
||||
├── utils/
|
||||
│ └── validators.js # 验证函数
|
||||
└── db/
|
||||
├── migrations/ # 数据库迁移
|
||||
└── migrate.js # 迁移脚本
|
||||
```
|
||||
|
||||
### 前端优化
|
||||
- 使用 SWR 进行数据获取和缓存
|
||||
- 乐观更新支持
|
||||
- 错误边界组件
|
||||
- 统一加载状态
|
||||
|
||||
### 新增功能
|
||||
- 数据库迁移系统 (`npm run migrate`)
|
||||
- 结构化日志
|
||||
- 统一错误处理
|
||||
- API 请求验证
|
||||
- 数据库索引优化
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
qLhTs8_S85rjOOeVUp07g
|
||||
@@ -1,72 +0,0 @@
|
||||
{
|
||||
"polyfillFiles": [
|
||||
"static/chunks/polyfills-42372ed130431b0a.js"
|
||||
],
|
||||
"devFiles": [],
|
||||
"ampDevFiles": [],
|
||||
"lowPriorityFiles": [
|
||||
"static/qLhTs8_S85rjOOeVUp07g/_buildManifest.js",
|
||||
"static/qLhTs8_S85rjOOeVUp07g/_ssgManifest.js"
|
||||
],
|
||||
"rootMainFiles": [],
|
||||
"pages": {
|
||||
"/": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/chunks/pages/index-9134a1c15f8e7e73.js"
|
||||
],
|
||||
"/_app": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/css/a115fcea0d441c48.css",
|
||||
"static/chunks/pages/_app-be10d8e0e3953b07.js"
|
||||
],
|
||||
"/_error": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/chunks/pages/_error-7a92967bea80186d.js"
|
||||
],
|
||||
"/categories": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/chunks/pages/categories-53ccc6325e13ffd1.js"
|
||||
],
|
||||
"/login": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/chunks/pages/login-f50164aa2a6805b4.js"
|
||||
],
|
||||
"/recurring": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/chunks/pages/recurring-560011bee3956d16.js"
|
||||
],
|
||||
"/search": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/chunks/pages/search-3f7f0eb3485675fc.js"
|
||||
],
|
||||
"/settings": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/chunks/pages/settings-bb02e29d5162e9fa.js"
|
||||
],
|
||||
"/stats": [
|
||||
"static/chunks/webpack-8fa1640cc84ba8fe.js",
|
||||
"static/chunks/framework-64ad27b21261a9ce.js",
|
||||
"static/chunks/main-aefbcb23b1606112.js",
|
||||
"static/chunks/ee8b1517-5dfbbb6838544537.js",
|
||||
"static/chunks/925-ca8bea7fb2a62185.js",
|
||||
"static/chunks/pages/stats-656db72deae83243.js"
|
||||
]
|
||||
},
|
||||
"ampFirstPages": []
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
{"version":1,"hasExportPathMap":false,"exportTrailingSlash":false,"isNextImageImported":false}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":1,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false,"sizes":[640,750,828,1080,1200,1920,2048,3840,16,32,48,64,96,128,256,384]}}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":1,"files":["../node_modules/styled-jsx/index.js","../node_modules/styled-jsx/package.json","../node_modules/styled-jsx/dist/index/index.js","../node_modules/react/package.json","../node_modules/react/index.js","../node_modules/client-only/package.json","../node_modules/react/cjs/react.production.min.js","../node_modules/client-only/index.js","../node_modules/styled-jsx/style.js","../node_modules/next/dist/compiled/next-server/server.runtime.prod.js","../node_modules/next/package.json","../node_modules/next/dist/server/body-streams.js","../node_modules/next/dist/lib/constants.js","../node_modules/next/dist/lib/picocolors.js","../node_modules/next/dist/shared/lib/constants.js","../node_modules/next/dist/server/web/utils.js","../node_modules/next/dist/client/components/app-router-headers.js","../node_modules/next/dist/server/lib/trace/tracer.js","../node_modules/next/dist/server/lib/trace/constants.js","../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../node_modules/next/dist/compiled/ws/package.json","../node_modules/next/dist/compiled/node-html-parser/package.json","../node_modules/next/dist/compiled/lru-cache/package.json","../node_modules/next/dist/shared/lib/runtime-config.external.js","../node_modules/@swc/helpers/_/_interop_require_default/package.json","../node_modules/next/dist/compiled/ws/index.js","../node_modules/next/dist/compiled/node-html-parser/index.js","../node_modules/next/dist/compiled/lru-cache/index.js","../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../node_modules/@swc/helpers/package.json","../node_modules/next/dist/compiled/jsonwebtoken/package.json","../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../node_modules/next/dist/compiled/jsonwebtoken/index.js","../node_modules/next/dist/client/components/async-local-storage.js","../node_modules/next/dist/shared/lib/error-source.js","../node_modules/next/dist/compiled/debug/package.json","../node_modules/next/dist/lib/semver-noop.js","../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../node_modules/next/dist/compiled/debug/index.js","../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/amp-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/head-manager-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/html-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/image-config-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","../node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/app-router-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/hooks-client-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/image-config-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context.js","../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/server-inserted-html.js","../node_modules/next/dist/server/future/route-modules/pages/module.compiled.js"]}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"type": "commonjs"}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":4,"routes":{},"dynamicRoutes":{},"preview":{"previewModeId":"48b81c455a5b7cce3d806d7026b56964","previewModeSigningKey":"66b57b635f1afb73fff9bf508ff8dbef304766f3a4e41b31e0ffec2f72860915","previewModeEncryptionKey":"38fba3ca573e476136b9b934594a1c12dd88e6e11b789ed305cffe9a0b2c6111"},"notFoundRoutes":[]}
|
||||
@@ -1 +0,0 @@
|
||||
{}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":1,"config":{"env":{},"webpack":null,"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":".next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.js","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"analyticsId":"","images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false},"devIndicators":{"buildActivity":true,"buildActivityPosition":"bottom-right"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"httpAgentOptions":{"keepAlive":true},"outputFileTracing":true,"staticPageGenerationTimeout":60,"swcMinify":true,"modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"experimental":{"multiZoneDraftMode":false,"prerenderEarlyExit":false,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"outputFileTracingRoot":"/opt/accountbook/frontend","swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"adjustFontFallbacks":false,"adjustFontFallbacksWithSizeAdjust":false,"typedRoutes":false,"instrumentationHook":false,"bundlePagesExternals":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"missingSuspenseWithCSRBailout":true,"optimizeServerReact":true,"useEarlyImport":false,"staleTimes":{"dynamic":30,"static":300},"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"configFileName":"next.config.js","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/api/:path*","destination":"http://localhost:3501/api/:path*"}],"fallback":[]}},"appDir":"/opt/accountbook/frontend","relativeAppDir":"","files":[".next/routes-manifest.json",".next/server/pages-manifest.json",".next/build-manifest.json",".next/prerender-manifest.json",".next/server/middleware-manifest.json",".next/server/middleware-build-manifest.js",".next/server/middleware-react-loadable-manifest.js",".next/react-loadable-manifest.json",".next/server/font-manifest.json",".next/BUILD_ID",".next/server/next-font-manifest.js",".next/server/next-font-manifest.json"],"ignore":["node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*"]}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[],"staticRoutes":[{"page":"/","regex":"^/(?:/)?$","routeKeys":{},"namedRegex":"^/(?:/)?$"},{"page":"/categories","regex":"^/categories(?:/)?$","routeKeys":{},"namedRegex":"^/categories(?:/)?$"},{"page":"/login","regex":"^/login(?:/)?$","routeKeys":{},"namedRegex":"^/login(?:/)?$"},{"page":"/recurring","regex":"^/recurring(?:/)?$","routeKeys":{},"namedRegex":"^/recurring(?:/)?$"},{"page":"/search","regex":"^/search(?:/)?$","routeKeys":{},"namedRegex":"^/search(?:/)?$"},{"page":"/settings","regex":"^/settings(?:/)?$","routeKeys":{},"namedRegex":"^/settings(?:/)?$"},{"page":"/stats","regex":"^/stats(?:/)?$","routeKeys":{},"namedRegex":"^/stats(?:/)?$"}],"dataRoutes":[],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch","prefetchHeader":"Next-Router-Prefetch","didPostponeHeader":"x-nextjs-postponed","contentTypeHeader":"text/x-component","suffix":".rsc","prefetchSuffix":".prefetch.rsc"},"rewrites":[{"source":"/api/:path*","destination":"http://localhost:3501/api/:path*","regex":"^/api(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
[]
|
||||
@@ -1 +0,0 @@
|
||||
[]
|
||||
@@ -1 +0,0 @@
|
||||
{"version":1,"functions":{}}
|
||||
@@ -1 +0,0 @@
|
||||
self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]";
|
||||
@@ -1 +0,0 @@
|
||||
self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:[],pages:{"/":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/chunks/pages/index-9134a1c15f8e7e73.js"],"/_app":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/css/a115fcea0d441c48.css","static/chunks/pages/_app-be10d8e0e3953b07.js"],"/_error":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/chunks/pages/_error-7a92967bea80186d.js"],"/categories":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/chunks/pages/categories-53ccc6325e13ffd1.js"],"/login":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/chunks/pages/login-f50164aa2a6805b4.js"],"/recurring":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/chunks/pages/recurring-560011bee3956d16.js"],"/search":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/chunks/pages/search-3f7f0eb3485675fc.js"],"/settings":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/chunks/pages/settings-bb02e29d5162e9fa.js"],"/stats":["static/chunks/webpack-8fa1640cc84ba8fe.js","static/chunks/framework-64ad27b21261a9ce.js","static/chunks/main-aefbcb23b1606112.js","static/chunks/ee8b1517-5dfbbb6838544537.js","static/chunks/925-ca8bea7fb2a62185.js","static/chunks/pages/stats-656db72deae83243.js"]},ampFirstPages:[]},self.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"middleware": {},
|
||||
"functions": {},
|
||||
"sortedMiddleware": []
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
self.__REACT_LOADABLE_MANIFEST="{}";
|
||||
@@ -1 +0,0 @@
|
||||
self.__NEXT_FONT_MANIFEST='{"pages":{},"app":{},"appUsingSizeAdjust":false,"pagesUsingSizeAdjust":false}';
|
||||
@@ -1 +0,0 @@
|
||||
{"pages":{},"app":{},"appUsingSizeAdjust":false,"pagesUsingSizeAdjust":false}
|
||||
@@ -1 +0,0 @@
|
||||
{"/_app":"pages/_app.js","/_error":"pages/_error.js","/categories":"pages/categories.html","/":"pages/index.html","/login":"pages/login.html","/recurring":"pages/recurring.html","/search":"pages/search.html","/settings":"pages/settings.html","/stats":"pages/stats.html","/_document":"pages/_document.js","/404":"pages/404.html"}
|
||||
@@ -1 +0,0 @@
|
||||
<!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>
|
||||
@@ -1 +0,0 @@
|
||||
<!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
@@ -1 +0,0 @@
|
||||
{"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"]}
|
||||
@@ -1 +0,0 @@
|
||||
"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})();
|
||||
@@ -1 +0,0 @@
|
||||
{"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
@@ -1 +0,0 @@
|
||||
{"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"]}
|
||||
@@ -1 +0,0 @@
|
||||
<!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>
|
||||
@@ -1 +0,0 @@
|
||||
{"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
@@ -1 +0,0 @@
|
||||
{"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"]}
|
||||
@@ -1 +0,0 @@
|
||||
<!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>
|
||||
@@ -1 +0,0 @@
|
||||
{"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
@@ -1 +0,0 @@
|
||||
{"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
@@ -1 +0,0 @@
|
||||
{"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
@@ -1 +0,0 @@
|
||||
{"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
@@ -1 +0,0 @@
|
||||
{"version":1,"files":["../webpack-runtime.js","../chunks/899.js","../chunks/342.js","../chunks/261.js","../../../package.json"]}
|
||||
@@ -1 +0,0 @@
|
||||
(()=>{"use strict";var e={},r={};function o(t){var a=r[t];if(void 0!==a)return a.exports;var n=r[t]={exports:{}},u=!0;try{e[t](n,n.exports,o),u=!1}finally{u&&delete r[t]}return n.exports}o.m=e,(()=>{var e="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",r="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",t="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",a=e=>{e&&e.d<1&&(e.d=1,e.forEach(e=>e.r--),e.forEach(e=>e.r--?e.r++:e()))},n=o=>o.map(o=>{if(null!==o&&"object"==typeof o){if(o[e])return o;if(o.then){var n=[];n.d=0,o.then(e=>{u[r]=e,a(n)},e=>{u[t]=e,a(n)});var u={};return u[e]=e=>e(n),u}}var p={};return p[e]=e=>{},p[r]=o,p});o.a=(o,u,p)=>{p&&((f=[]).d=-1);var f,i,l,d,s=new Set,c=o.exports,b=new Promise((e,r)=>{d=r,l=e});b[r]=c,b[e]=e=>(f&&e(f),s.forEach(e),b.catch(e=>{})),o.exports=b,u(o=>{i=n(o);var a,u=()=>i.map(e=>{if(e[t])throw e[t];return e[r]}),p=new Promise(r=>{(a=()=>r(u)).r=0;var o=e=>e!==f&&!s.has(e)&&(s.add(e),e&&!e.d&&(a.r++,e.push(a)));i.map(r=>r[e](o))});return a.r?p:u()},e=>(e?d(b[t]=e):l(c),a(f))),f&&f.d<0&&(f.d=0)}})(),o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((r,t)=>(o.f[t](e,r),r),[])),o.u=e=>""+e+".js",o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.X=(e,r,t)=>{var a=r;t||(r=e,t=()=>o(o.s=a)),r.map(o.e,o);var n=t();return void 0===n?e:n},(()=>{var e={658:1},r=r=>{var t=r.modules,a=r.ids,n=r.runtime;for(var u in t)o.o(t,u)&&(o.m[u]=t[u]);n&&n(o);for(var p=0;p<a.length;p++)e[a[p]]=1};o.f.require=(t,a)=>{e[t]||(658!=t?r(require("./chunks/"+o.u(t))):e[t]=1)},module.exports=o,o.C=r})()})();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user