From bb7168f5229626098d6b9db2e92e98eb1b514e3f Mon Sep 17 00:00:00 2001 From: orosmatthew Date: Sun, 15 Oct 2023 14:17:45 -0400 Subject: [PATCH] [web] Update docker stuff --- web/.dockerignore | 1 + web/.env.example | 4 +- web/.gitignore | 1 + web/Dockerfile | 4 +- web/docker-compose.yml | 11 -- web/docker/docker-compose.example.yml | 25 +++ web/docker/entry.sh | 4 + web/package-lock.json | 216 +++++++++++++------------- web/package.json | 28 ++-- web/src/hooks.server.ts | 8 +- 10 files changed, 166 insertions(+), 136 deletions(-) delete mode 100644 web/docker-compose.yml create mode 100644 web/docker/docker-compose.example.yml create mode 100644 web/docker/entry.sh diff --git a/web/.dockerignore b/web/.dockerignore index 3e7f63f..51ced86 100644 --- a/web/.dockerignore +++ b/web/.dockerignore @@ -9,3 +9,4 @@ node_modules vite.config.js.timestamp-* vite.config.ts.timestamp-* temp +db diff --git a/web/.env.example b/web/.env.example index 2ecfaf3..1f793f8 100644 --- a/web/.env.example +++ b/web/.env.example @@ -1 +1,3 @@ -DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public" \ No newline at end of file +DATABASE_PASSWORD="password" +DATABASE_USER="user" +DATABASE_DB="contest" \ No newline at end of file diff --git a/web/.gitignore b/web/.gitignore index 3e7f63f..51ced86 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -9,3 +9,4 @@ node_modules vite.config.js.timestamp-* vite.config.ts.timestamp-* temp +db diff --git a/web/Dockerfile b/web/Dockerfile index f940c55..bd410b0 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -34,4 +34,6 @@ EXPOSE 7006 RUN npm run build -CMD ["node", "build"] \ No newline at end of file +RUN chmod +x ./docker/entry.sh + +CMD ["./docker/entry.sh"] \ No newline at end of file diff --git a/web/docker-compose.yml b/web/docker-compose.yml deleted file mode 100644 index b42997a..0000000 --- a/web/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: '3' -services: - web: - build: . - environment: - - DATABASE_URL=${DATABASE_URL} - - GIT_PORT=${GIT_PORT} - - ORIGIN=http://localhost:${PORT} - volumes: - - ./repo:/app/repo - network_mode: 'host' diff --git a/web/docker/docker-compose.example.yml b/web/docker/docker-compose.example.yml new file mode 100644 index 0000000..ba3249a --- /dev/null +++ b/web/docker/docker-compose.example.yml @@ -0,0 +1,25 @@ +version: '3' +services: + db: + image: postgres:latest + volumes: + - ./db:/var/lib/postgresql/data + environment: + - POSTGRES_PASSWORD=${DATABASE_PASSWORD} + - POSTGRES_USER=${DATABASE_USER} + - POSTGRES_DB=${DATABASE_DB} + restart: always + web: + build: . + ports: + - 3000:3000 + - 7006:7006 + environment: + - DATABASE_URL=postgresql://${DATABASE_USER}:${DATABASE_PASSWORD}@db:5432/${DATABASE_DB} + - GIT_PORT=7006 + - ORIGIN=http://127.0.0.1:3000 + volumes: + - ./repo:/app/repo + depends_on: + - db + restart: always diff --git a/web/docker/entry.sh b/web/docker/entry.sh new file mode 100644 index 0000000..06a092b --- /dev/null +++ b/web/docker/entry.sh @@ -0,0 +1,4 @@ +#!/bin/bash +npx prisma db push --accept-data-loss +npx prisma generate +INIT=true node build \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json index 6f58b09..15cf0c2 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -8,44 +8,44 @@ "name": "bw-hspc-contest-web", "version": "0.0.1", "dependencies": { - "@prisma/client": "^5.3.1", + "@prisma/client": "^5.4.2", "@sveltejs/adapter-node": "^1.3.1", "@types/fs-extra": "^11.0.2", "bcrypt": "^5.1.1", "bootstrap": "^5.3.2", "bootstrap-icons": "^1.11.1", "diff": "^5.1.0", - "diff2html": "^3.4.44", - "eslint-plugin-svelte": "^2.33.2", + "diff2html": "^3.4.45", + "eslint-plugin-svelte": "^2.34.0", "fs-extra": "^11.1.1", "js-cookie": "^3.0.5", "node-git-server": "^1.0.0", - "prisma": "^5.3.1", + "prisma": "^5.4.2", "simple-git": "^3.20.0", "uuid": "^9.0.1", - "zod": "^3.22.2" + "zod": "^3.22.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^2.1.0", - "@sveltejs/kit": "^1.25.1", + "@sveltejs/kit": "^1.25.2", "@types/bcrypt": "^5.0.0", "@types/bootstrap": "^5.2.7", - "@types/diff": "^5.0.5", + "@types/diff": "^5.0.6", "@types/js-cookie": "^3.0.4", - "@types/node": "^20.8.0", - "@types/uuid": "^9.0.4", - "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", - "eslint": "^8.50.0", + "@types/node": "^20.8.6", + "@types/uuid": "^9.0.5", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", + "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "prettier": "^3.0.3", "prettier-plugin-svelte": "^3.0.3", - "sass": "^1.68.0", + "sass": "^1.69.3", "svelte": "^4.2.1", "svelte-check": "^3.5.2", "tslib": "^2.6.2", "typescript": "^5.2.2", - "vite": "^4.4.9" + "vite": "^4.4.11" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -443,9 +443,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -629,12 +629,12 @@ } }, "node_modules/@prisma/client": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.3.1.tgz", - "integrity": "sha512-ArOKjHwdFZIe1cGU56oIfy7wRuTn0FfZjGuU/AjgEBOQh+4rDkB6nF+AGHP8KaVpkBIiHGPQh3IpwQ3xDMdO0Q==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.4.2.tgz", + "integrity": "sha512-2xsPaz4EaMKj1WS9iW6MlPhmbqtBsXAOeVttSePp8vTFTtvzh2hZbDgswwBdSCgPzmmwF+tLB259QzggvCmJqA==", "hasInstallScript": true, "dependencies": { - "@prisma/engines-version": "5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59" + "@prisma/engines-version": "5.4.1-2.ac9d7041ed77bcc8a8dbd2ab6616b39013829574" }, "engines": { "node": ">=16.13" @@ -649,15 +649,15 @@ } }, "node_modules/@prisma/engines": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.3.1.tgz", - "integrity": "sha512-6QkILNyfeeN67BNEPEtkgh3Xo2tm6D7V+UhrkBbRHqKw9CTaz/vvTP/ROwYSP/3JT2MtIutZm/EnhxUiuOPVDA==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.4.2.tgz", + "integrity": "sha512-fqeucJ3LH0e1eyFdT0zRx+oETLancu5+n4lhiYECyEz6H2RDskPJHJYHkVc0LhkU4Uv7fuEnppKU3nVKNzMh8g==", "hasInstallScript": true }, "node_modules/@prisma/engines-version": { - "version": "5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59.tgz", - "integrity": "sha512-y5qbUi3ql2Xg7XraqcXEdMHh0MocBfnBzDn5GbV1xk23S3Mq8MGs+VjacTNiBh3dtEdUERCrUUG7Z3QaJ+h79w==" + "version": "5.4.1-2.ac9d7041ed77bcc8a8dbd2ab6616b39013829574", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.4.1-2.ac9d7041ed77bcc8a8dbd2ab6616b39013829574.tgz", + "integrity": "sha512-wvupDL4AA1vf4TQNANg7kR7y98ITqPsk6aacfBxZKtrJKRIsWjURHkZCGcQliHdqCiW/hGreO6d6ZuSv9MhdAA==" }, "node_modules/@rollup/plugin-commonjs": { "version": "25.0.4", @@ -822,9 +822,9 @@ } }, "node_modules/@sveltejs/kit": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.25.1.tgz", - "integrity": "sha512-pD8XsvNJNgTNkFngNlM60my/X8dXWPKVzN5RghEQr0NjGZmuCjy49AfFu2cGbZjNf5pBcqd2RCNMW912P5fkhA==", + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.25.2.tgz", + "integrity": "sha512-USuuSpdAPFDiLi58N2Pwd/TG9bcUSPAlzE5iaAXaLyCTWa3l36HDKH6nV5NqBybwfeux1ZwgtIeITLZJDJ6HDg==", "hasInstallScript": true, "dependencies": { "@sveltejs/vite-plugin-svelte": "^2.4.1", @@ -913,9 +913,9 @@ "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==" }, "node_modules/@types/diff": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@types/diff/-/diff-5.0.5.tgz", - "integrity": "sha512-rt7WqM1bWwKJMRxlB5Rhke56UN21Bqwp1ILER31bafTivcapYdfhtPd5xRWfhf08yjPxoDcfjVkkECdRwFe7EA==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/diff/-/diff-5.0.6.tgz", + "integrity": "sha512-OxYeXtiT2eAkK5Js6V6wY+Jb9uKdeSQIXxEZcRBqrE/VBJPMnrmsArARjGjiIulpu13vnpvGf+LLTNyZaJNPuw==", "dev": true }, "node_modules/@types/estree": { @@ -953,9 +953,12 @@ } }, "node_modules/@types/node": { - "version": "20.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.0.tgz", - "integrity": "sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ==" + "version": "20.8.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", + "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "dependencies": { + "undici-types": "~5.25.1" + } }, "node_modules/@types/pug": { "version": "2.0.6", @@ -975,22 +978,22 @@ "dev": true }, "node_modules/@types/uuid": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", - "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.5.tgz", + "integrity": "sha512-xfHdwa1FMJ082prjSJpoEI57GZITiQz10r3vEJCHa2khEFQjKy91aWKz6+zybzssCvXUwE1LQWgWVwZ4nYUvHQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz", - "integrity": "sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", + "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.4", - "@typescript-eslint/type-utils": "6.7.4", - "@typescript-eslint/utils": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/type-utils": "6.7.5", + "@typescript-eslint/utils": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1016,15 +1019,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz", - "integrity": "sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", + "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.7.4", - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/typescript-estree": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4" }, "engines": { @@ -1044,13 +1047,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", - "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", + "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4" + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1061,13 +1064,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz", - "integrity": "sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", + "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.4", - "@typescript-eslint/utils": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/utils": "6.7.5", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1088,9 +1091,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", - "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", + "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1101,13 +1104,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", - "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", + "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1128,17 +1131,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", - "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", + "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.4", - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", "semver": "^7.5.4" }, "engines": { @@ -1153,12 +1156,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", - "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", + "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/types": "6.7.5", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1648,9 +1651,9 @@ } }, "node_modules/diff2html": { - "version": "3.4.44", - "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.44.tgz", - "integrity": "sha512-h6Ev+OJfTNUxDTUvo+DsH6DNmcFNjNtcaZ2g/WLP5nBnIev7O+JgPFmIc2iFcazqyN/WNOkSR91UZlEl2DPe7w==", + "version": "3.4.45", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.45.tgz", + "integrity": "sha512-1SxsjYZYbxX0GGMYJJM7gM0SpMSHqzvvG0UJVROCDpz4tylH2T+EGiinm2boDmTrMlLueVxGfKNxGNLZ9zDlkQ==", "dependencies": { "diff": "5.1.0", "hogan.js": "3.0.2" @@ -1744,14 +1747,14 @@ } }, "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", + "@eslint/js": "8.51.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -1809,9 +1812,9 @@ } }, "node_modules/eslint-plugin-svelte": { - "version": "2.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.33.2.tgz", - "integrity": "sha512-knWmauax+E/jvQ9CmuX5dAhQKP9P4eGQZxWa5RMutEJVCcy0wFmiUvOeDND2jR4vUkbDlX4khKjaceY7QzbkYw==", + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.34.0.tgz", + "integrity": "sha512-4RYUgNai7wr0v+T/kljMiYSjC/oqwgq5i+cPppawryAayj4C7WK1ixFlWCGmNmBppnoKCl4iA4ZPzPtlHcb4CA==", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@jridgewell/sourcemap-codec": "^1.4.14", @@ -3077,12 +3080,12 @@ } }, "node_modules/prisma": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.3.1.tgz", - "integrity": "sha512-Wp2msQIlMPHe+5k5Od6xnsI/WNG7UJGgFUJgqv/ygc7kOECZapcSz/iU4NIEzISs3H1W9sFLjAPbg/gOqqtB7A==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.4.2.tgz", + "integrity": "sha512-GDMZwZy7mysB2oXU+angQqJ90iaPFdD0rHaZNkn+dio5NRkGLmMqmXs31//tg/qXT3iB0cTQwnGGQNuirhSTZg==", "hasInstallScript": true, "dependencies": { - "@prisma/engines": "5.3.1" + "@prisma/engines": "5.4.2" }, "bin": { "prisma": "build/index.js" @@ -3282,9 +3285,9 @@ } }, "node_modules/sass": { - "version": "1.68.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.68.0.tgz", - "integrity": "sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA==", + "version": "1.69.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.3.tgz", + "integrity": "sha512-X99+a2iGdXkdWn1akFPs0ZmelUzyAQfvqYc2P/MPTrJRuIRoTffGzT9W9nFqG00S+c8hXzVmgxhUuHFdrwxkhQ==", "devOptional": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -3789,6 +3792,11 @@ "node": ">=14.0" } }, + "node_modules/undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -3823,9 +3831,9 @@ } }, "node_modules/vite": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", - "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", + "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", @@ -3955,9 +3963,9 @@ } }, "node_modules/zod": { - "version": "3.22.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.2.tgz", - "integrity": "sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==", + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/web/package.json b/web/package.json index f99ce14..5503b9b 100644 --- a/web/package.json +++ b/web/package.json @@ -13,43 +13,43 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^2.1.0", - "@sveltejs/kit": "^1.25.1", + "@sveltejs/kit": "^1.25.2", "@types/bcrypt": "^5.0.0", "@types/bootstrap": "^5.2.7", - "@types/diff": "^5.0.5", + "@types/diff": "^5.0.6", "@types/js-cookie": "^3.0.4", - "@types/node": "^20.8.0", - "@types/uuid": "^9.0.4", - "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", - "eslint": "^8.50.0", + "@types/node": "^20.8.6", + "@types/uuid": "^9.0.5", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", + "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "prettier": "^3.0.3", "prettier-plugin-svelte": "^3.0.3", - "sass": "^1.68.0", + "sass": "^1.69.3", "svelte": "^4.2.1", "svelte-check": "^3.5.2", "tslib": "^2.6.2", "typescript": "^5.2.2", - "vite": "^4.4.9" + "vite": "^4.4.11" }, "type": "module", "dependencies": { - "@prisma/client": "^5.3.1", + "@prisma/client": "^5.4.2", "@sveltejs/adapter-node": "^1.3.1", "@types/fs-extra": "^11.0.2", "bcrypt": "^5.1.1", "bootstrap": "^5.3.2", "bootstrap-icons": "^1.11.1", "diff": "^5.1.0", - "diff2html": "^3.4.44", - "eslint-plugin-svelte": "^2.33.2", + "diff2html": "^3.4.45", + "eslint-plugin-svelte": "^2.34.0", "fs-extra": "^11.1.1", "js-cookie": "^3.0.5", "node-git-server": "^1.0.0", - "prisma": "^5.3.1", + "prisma": "^5.4.2", "simple-git": "^3.20.0", "uuid": "^9.0.1", - "zod": "^3.22.2" + "zod": "^3.22.4" } } diff --git a/web/src/hooks.server.ts b/web/src/hooks.server.ts index 1e05a9e..8c49d65 100644 --- a/web/src/hooks.server.ts +++ b/web/src/hooks.server.ts @@ -14,15 +14,13 @@ async function createDefaultAccount(db: PrismaClient) { }); } -try { +if (process.env.INIT !== undefined && process.env.INIT === 'true') { + console.log('Runtime initialization...'); const db = new PrismaClient(); createDefaultAccount(db); -} catch (error) { - console.log('Initialization in hooks failed (Normal on build)'); + startGitServer(); } -startGitServer(); - export const handle = (async ({ event, resolve }) => { const theme = event.cookies.get('theme') as 'light' | 'dark' | undefined; event.locals.theme = theme ?? 'dark';