diff --git a/.env.example b/.env.example index a9f2351..2372008 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,5 @@ -DATABASE_URL=postgresql://postgres:123456qaz@localhost:6666/postgres \ No newline at end of file +DATABASE_URL=postgresql://postgres:123456qaz@localhost:6666/postgres +REDIS_URL=redis://127.0.0.1:6379 +SESSION_TTL_SECONDS=604800 +AUTH_DEBUG_LOG_TOKENS=false +COOKIE_DOMAIN= diff --git a/bun.lock b/bun.lock index 59b0b5a..4676474 100644 --- a/bun.lock +++ b/bun.lock @@ -5,10 +5,12 @@ "": { "name": "person-panel", "dependencies": { + "bcryptjs": "^3.0.3", "dotenv": "17.4.1", "drizzle-orm": "^0.45.2", "drizzle-pkg": "workspace:*", "drizzle-seed": "0.3.1", + "ioredis": "^5.10.1", "log4js": "^6.9.1", "logger": "workspace:*", "nuxt": "4.4.2", @@ -17,6 +19,7 @@ "vue-router": "5.0.4", }, "devDependencies": { + "@types/bcryptjs": "^3.0.0", "@types/pg": "^8.20.0", "drizzle-kit": "0.31.10", "tsx": "4.21.0", @@ -483,6 +486,8 @@ "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + "@types/bcryptjs": ["@types/bcryptjs@3.0.0", "", { "dependencies": { "bcryptjs": "*" } }, "sha512-WRZOuCuaz8UcZZE4R5HXTco2goQSI2XxjGY3hbM/xDvwmqFWd4ivooImsMx65OKM6CtNKbnZ5YL+YwAwK7c1dg=="], + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], "@types/node": ["@types/node@25.6.0", "", { "dependencies": { "undici-types": "~7.19.0" } }, "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ=="], @@ -589,6 +594,8 @@ "baseline-browser-mapping": ["baseline-browser-mapping@2.10.17", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-HdrkN8eVG2CXxeifv/VdJ4A4RSra1DTW8dc/hdxzhGHN8QePs6gKaWM9pHPcpCoxYZJuOZ8drHmbdpLHjCYjLA=="], + "bcryptjs": ["bcryptjs@3.0.3", "", { "bin": { "bcrypt": "bin/bcrypt" } }, "sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g=="], + "bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="], "birpc": ["birpc@4.0.0", "", {}, "sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw=="], diff --git a/package.json b/package.json index 1082266..cca62d5 100644 --- a/package.json +++ b/package.json @@ -16,13 +16,17 @@ "db:seed": "bun --elide-lines=0 --filter drizzle-pkg seed", "generate": "nuxt generate", "preview": "nuxt preview", + "test": "bun test test/unit", + "test:integration": "bun test test/integration", "postinstall": "nuxt prepare" }, "dependencies": { + "bcryptjs": "^3.0.3", "dotenv": "17.4.1", "drizzle-orm": "^0.45.2", "drizzle-pkg": "workspace:*", "drizzle-seed": "0.3.1", + "ioredis": "^5.10.1", "log4js": "^6.9.1", "logger": "workspace:*", "nuxt": "4.4.2", @@ -31,6 +35,7 @@ "vue-router": "5.0.4" }, "devDependencies": { + "@types/bcryptjs": "^3.0.0", "@types/pg": "^8.20.0", "drizzle-kit": "0.31.10", "tsx": "4.21.0",