diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 5119246..0000000 --- a/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -.DS_Store -dist -dist-ssr -coverage -*.local - -/cypress/videos/ -/cypress/screenshots/ - -# Editor directories and files -.vscode/* -!.vscode/settings.json -!.vscode/extensions.json -.idea -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/service/package.json b/service/package.json index c4f367c..ebc0323 100644 --- a/service/package.json +++ b/service/package.json @@ -24,6 +24,8 @@ }, "dependencies": { "chatgpt": "^4.3.2", + "dotenv": "^16.0.3", + "esno": "^0.16.3", "express": "^4.18.2", "isomorphic-fetch": "^3.0.0" }, @@ -31,9 +33,7 @@ "@antfu/eslint-config": "^0.35.2", "@types/express": "^4.17.17", "@types/node": "^18.13.0", - "dotenv": "^16.0.3", "eslint": "^8.34.0", - "esno": "^0.16.3", "rimraf": "^4.1.2", "tsup": "^6.6.2", "typescript": "^4.9.5" diff --git a/service/pnpm-lock.yaml b/service/pnpm-lock.yaml index 80994a2..36cd6d0 100644 --- a/service/pnpm-lock.yaml +++ b/service/pnpm-lock.yaml @@ -16,6 +16,8 @@ specifiers: dependencies: chatgpt: 4.4.0 + dotenv: 16.0.3 + esno: 0.16.3 express: 4.18.2 isomorphic-fetch: 3.0.0 @@ -23,9 +25,7 @@ devDependencies: '@antfu/eslint-config': 0.35.2_7kw3g6rralp5ps6mg3uyzz6azm '@types/express': 4.17.17 '@types/node': 18.13.0 - dotenv: 16.0.3 eslint: 8.34.0 - esno: 0.16.3 rimraf: 4.1.2 tsup: 6.6.3_typescript@4.9.5 typescript: 4.9.5 @@ -154,21 +154,21 @@ packages: dependencies: '@esbuild-kit/core-utils': 3.1.0 get-tsconfig: 4.4.0 - dev: true + dev: false /@esbuild-kit/core-utils/3.1.0: resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} dependencies: esbuild: 0.17.8 source-map-support: 0.5.21 - dev: true + dev: false /@esbuild-kit/esm-loader/2.5.5: resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} dependencies: '@esbuild-kit/core-utils': 3.1.0 get-tsconfig: 4.4.0 - dev: true + dev: false /@esbuild/android-arm/0.17.8: resolution: {integrity: sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==} @@ -176,7 +176,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-arm64/0.17.8: @@ -185,7 +184,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-x64/0.17.8: @@ -194,7 +192,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/darwin-arm64/0.17.8: @@ -203,7 +200,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/darwin-x64/0.17.8: @@ -212,7 +208,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-arm64/0.17.8: @@ -221,7 +216,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-x64/0.17.8: @@ -230,7 +224,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm/0.17.8: @@ -239,7 +232,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm64/0.17.8: @@ -248,7 +240,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ia32/0.17.8: @@ -257,7 +248,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64/0.17.8: @@ -266,7 +256,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-mips64el/0.17.8: @@ -275,7 +264,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ppc64/0.17.8: @@ -284,7 +272,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-riscv64/0.17.8: @@ -293,7 +280,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-s390x/0.17.8: @@ -302,7 +288,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-x64/0.17.8: @@ -311,7 +296,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/netbsd-x64/0.17.8: @@ -320,7 +304,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /@esbuild/openbsd-x64/0.17.8: @@ -329,7 +312,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /@esbuild/sunos-x64/0.17.8: @@ -338,7 +320,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /@esbuild/win32-arm64/0.17.8: @@ -347,7 +328,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-ia32/0.17.8: @@ -356,7 +336,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-x64/0.17.8: @@ -365,7 +344,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@eslint-community/eslint-utils/4.1.2_eslint@8.34.0: @@ -805,7 +783,7 @@ packages: /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true + dev: false /builtin-modules/3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -1090,7 +1068,7 @@ packages: /dotenv/16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} - dev: true + dev: false /ee-first/1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -1203,7 +1181,6 @@ packages: '@esbuild/win32-arm64': 0.17.8 '@esbuild/win32-ia32': 0.17.8 '@esbuild/win32-x64': 0.17.8 - dev: true /escape-html/1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -1584,7 +1561,7 @@ packages: hasBin: true dependencies: tsx: 3.12.3 - dev: true + dev: false /espree/9.4.1: resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} @@ -1799,7 +1776,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind/1.1.1: @@ -1841,7 +1817,7 @@ packages: /get-tsconfig/4.4.0: resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} - dev: true + dev: false /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -2977,12 +2953,12 @@ packages: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: true + dev: false /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - dev: true + dev: false /source-map/0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} @@ -3211,7 +3187,7 @@ packages: '@esbuild-kit/esm-loader': 2.5.5 optionalDependencies: fsevents: 2.3.2 - dev: true + dev: false /type-check/0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} diff --git a/service/src/index.ts b/service/src/index.ts index ad2bfa3..c723db6 100644 --- a/service/src/index.ts +++ b/service/src/index.ts @@ -3,7 +3,9 @@ import type { ChatContext } from './chatgpt' import { chatReply } from './chatgpt' const app = express() +const router = express.Router() +app.use(express.static('public')) app.use(express.json()) app.all('*', (_, res, next) => { @@ -13,7 +15,7 @@ app.all('*', (_, res, next) => { next() }) -app.post('/chat', async (req, res) => { +router.post('/chat', async (req, res) => { try { const { prompt, options = {} } = req.body as { prompt: string; options?: ChatContext } const response = await chatReply(prompt, options) @@ -24,4 +26,7 @@ app.post('/chat', async (req, res) => { } }) +app.use('', router) +app.use('/api', router) + app.listen(3002, () => globalThis.console.log('Server is running on port 3002'))