├── .env.example ├── .gitignore ├── .idea ├── .gitignore ├── chatgpt-io-api.iml ├── jsLibraryMappings.xml ├── modules.xml └── vcs.xml ├── LICENSE ├── README.md ├── index.js ├── package-lock.json └── package.json /.env.example: -------------------------------------------------------------------------------- 1 | CHATGPT_SESSION_TOKEN= 2 | CHATGPT_SESSION_PORT=3000 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### VisualStudioCode template 2 | .vscode/* 3 | !.vscode/settings.json 4 | !.vscode/tasks.json 5 | !.vscode/launch.json 6 | !.vscode/extensions.json 7 | *.code-workspace 8 | 9 | # Local History for Visual Studio Code 10 | .history/ 11 | 12 | ### JetBrains template 13 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 14 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 15 | 16 | # User-specific stuff 17 | .idea/**/workspace.xml 18 | .idea/**/tasks.xml 19 | .idea/**/usage.statistics.xml 20 | .idea/**/dictionaries 21 | .idea/**/shelf 22 | 23 | # Generated files 24 | .idea/**/contentModel.xml 25 | 26 | # Sensitive or high-churn files 27 | .idea/**/dataSources/ 28 | .idea/**/dataSources.ids 29 | .idea/**/dataSources.local.xml 30 | .idea/**/sqlDataSources.xml 31 | .idea/**/dynamic.xml 32 | .idea/**/uiDesigner.xml 33 | .idea/**/dbnavigator.xml 34 | 35 | # Gradle 36 | .idea/**/gradle.xml 37 | .idea/**/libraries 38 | 39 | # Gradle and Maven with auto-import 40 | # When using Gradle or Maven with auto-import, you should exclude module files, 41 | # since they will be recreated, and may cause churn. Uncomment if using 42 | # auto-import. 43 | # .idea/artifacts 44 | # .idea/compiler.xml 45 | # .idea/jarRepositories.xml 46 | # .idea/modules.xml 47 | # .idea/*.iml 48 | # .idea/modules 49 | # *.iml 50 | # *.ipr 51 | 52 | # CMake 53 | cmake-build-*/ 54 | 55 | # Mongo Explorer plugin 56 | .idea/**/mongoSettings.xml 57 | 58 | # File-based project format 59 | *.iws 60 | 61 | # IntelliJ 62 | out/ 63 | 64 | # mpeltonen/sbt-idea plugin 65 | .idea_modules/ 66 | 67 | # JIRA plugin 68 | atlassian-ide-plugin.xml 69 | 70 | # Cursive Clojure plugin 71 | .idea/replstate.xml 72 | 73 | # Crashlytics plugin (for Android Studio and IntelliJ) 74 | com_crashlytics_export_strings.xml 75 | crashlytics.properties 76 | crashlytics-build.properties 77 | fabric.properties 78 | 79 | # Editor-based Rest Client 80 | .idea/httpRequests 81 | 82 | # Android studio 3.1+ serialized cache file 83 | .idea/caches/build_file_checksums.ser 84 | 85 | ### Node template 86 | # Logs 87 | logs 88 | *.log 89 | npm-debug.log* 90 | yarn-debug.log* 91 | yarn-error.log* 92 | lerna-debug.log* 93 | 94 | # Diagnostic reports (https://nodejs.org/api/report.html) 95 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 96 | 97 | # Runtime data 98 | pids 99 | *.pid 100 | *.seed 101 | *.pid.lock 102 | 103 | # Directory for instrumented libs generated by jscoverage/JSCover 104 | lib-cov 105 | 106 | # Coverage directory used by tools like istanbul 107 | coverage 108 | *.lcov 109 | 110 | # nyc test coverage 111 | .nyc_output 112 | 113 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 114 | .grunt 115 | 116 | # Bower dependency directory (https://bower.io/) 117 | bower_components 118 | 119 | # node-waf configuration 120 | .lock-wscript 121 | 122 | # Compiled binary addons (https://nodejs.org/api/addons.html) 123 | build/Release 124 | 125 | # Dependency directories 126 | node_modules/ 127 | jspm_packages/ 128 | 129 | # Snowpack dependency directory (https://snowpack.dev/) 130 | web_modules/ 131 | 132 | # TypeScript cache 133 | *.tsbuildinfo 134 | 135 | # Optional npm cache directory 136 | .npm 137 | 138 | # Optional eslint cache 139 | .eslintcache 140 | 141 | # Microbundle cache 142 | .rpt2_cache/ 143 | .rts2_cache_cjs/ 144 | .rts2_cache_es/ 145 | .rts2_cache_umd/ 146 | 147 | # Optional REPL history 148 | .node_repl_history 149 | 150 | # Output of 'npm pack' 151 | *.tgz 152 | 153 | # Yarn Integrity file 154 | .yarn-integrity 155 | 156 | # dotenv environment variables file 157 | .env 158 | .env.test 159 | 160 | # parcel-bundler cache (https://parceljs.org/) 161 | .cache 162 | .parcel-cache 163 | 164 | # Next.js build output 165 | .next 166 | out 167 | 168 | # Nuxt.js build / generate output 169 | .nuxt 170 | dist 171 | 172 | # Gatsby files 173 | .cache/ 174 | # Comment in the public line in if your project uses Gatsby and not Next.js 175 | # https://nextjs.org/blog/next-9-1#public-directory-support 176 | # public 177 | 178 | # vuepress build output 179 | .vuepress/dist 180 | 181 | # Serverless directories 182 | .serverless/ 183 | 184 | # FuseBox cache 185 | .fusebox/ 186 | 187 | # DynamoDB Local files 188 | .dynamodb/ 189 | 190 | # TernJS port file 191 | .tern-port 192 | 193 | # Stores VSCode versions used for testing VSCode extensions 194 | .vscode-test 195 | 196 | # yarn v2 197 | .yarn/cache 198 | .yarn/unplugged 199 | .yarn/build-state.yml 200 | .yarn/install-state.gz 201 | .pnp.* 202 | 203 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | -------------------------------------------------------------------------------- /.idea/chatgpt-io-api.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 waylaidwanderer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## ChatGPT API 2 | 3 | This repository contains an API layer for [ChatGPT](https://chat.openai.com), powered by [chatgpt-io](https://github.com/PawanOsman/chatgpt-io). It allows users to send questions to a chatbot and receive responses in real-time. 4 | 5 | To use this API, you will need to have a session token from ChatGPT. Set this token in the `CHATGPT_SESSION_TOKEN` environment variable. You can do this by creating a `.env` file in the root of the project and adding the line `CHATGPT_SESSION_TOKEN=YOUR_TOKEN_HERE`. 6 | 7 | To start the API, run the following command: 8 | 9 | ```bash 10 | npm start 11 | ``` 12 | 13 | The API will be listening on the `CHATGPT_PORT` environment variable (defaults to 3000). You can send a POST request to `/ask` with a `message` and optional `conversation_id` in the request body to ask the chatbot a question. The response will contain a `response` field with the chatbot's response. 14 | 15 | Example request: 16 | 17 | ```bash 18 | POST /ask 19 | Content-Type: application/json 20 | 21 | { 22 | "message": "What is your name?", 23 | "conversation_id": "abc123" 24 | } 25 | ``` 26 | 27 | Example response: 28 | 29 | ```bash 30 | Status: 200 OK 31 | Content-Type: application/json 32 | 33 | { 34 | "response": "My name is ChatGPT." 35 | } 36 | ``` 37 | 38 | If the chatbot is not yet ready, the API will return a 503 status code and an `error` field with the message "Chatbot is not ready yet". 39 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import fastify from 'fastify'; 2 | import chatGPT from 'chatgpt-io'; 3 | import * as dotenv from 'dotenv'; 4 | 5 | dotenv.config(); 6 | 7 | const app = fastify(); 8 | 9 | // Initialize chatbot with a session token 10 | const bot = new chatGPT(process.env.CHATGPT_SESSION_TOKEN); 11 | 12 | // Wait for chatbot to be ready 13 | bot.waitForReady().then(() => { 14 | console.log("Chatbot is ready!"); 15 | }); 16 | 17 | // API route for asking the chatbot a question 18 | app.post("/ask", async (req, res) => { 19 | // Get question and conversation_id from body parameters 20 | const { message, conversation_id } = req.body; 21 | 22 | // Return an error if the chatbot is not yet ready 23 | if (!bot.ready) { 24 | res.status(503).send({ 25 | error: "Chatbot is not ready yet" 26 | }); 27 | return; 28 | } 29 | 30 | // Use conversation_id if provided, otherwise use default conversation 31 | let response; 32 | if (conversation_id) { 33 | response = await bot.ask(message, conversation_id); 34 | } else { 35 | response = await bot.ask(message); 36 | } 37 | 38 | // Send response as JSON 39 | res.send({ 40 | response, 41 | }); 42 | }); 43 | 44 | const port = process.env.CHATGPT_PORT || 3000; 45 | app.listen({port}, (err) => { 46 | if (err) { 47 | console.error(err); 48 | process.exit(1); 49 | } 50 | console.log(`API listening on port ${port}`); 51 | }); 52 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chatgpt-io-api", 3 | "version": "1.0.1", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "chatgpt-io-api", 9 | "version": "1.0.1", 10 | "license": "MIT", 11 | "dependencies": { 12 | "chatgpt-io": "^1.0.4", 13 | "dotenv": "^16.0.3", 14 | "fastify": "^4.11.0" 15 | } 16 | }, 17 | "node_modules/@fastify/ajv-compiler": { 18 | "version": "3.5.0", 19 | "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", 20 | "integrity": "sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==", 21 | "dependencies": { 22 | "ajv": "^8.11.0", 23 | "ajv-formats": "^2.1.1", 24 | "fast-uri": "^2.0.0" 25 | } 26 | }, 27 | "node_modules/@fastify/deepmerge": { 28 | "version": "1.3.0", 29 | "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-1.3.0.tgz", 30 | "integrity": "sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==" 31 | }, 32 | "node_modules/@fastify/error": { 33 | "version": "3.2.0", 34 | "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.2.0.tgz", 35 | "integrity": "sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ==" 36 | }, 37 | "node_modules/@fastify/fast-json-stringify-compiler": { 38 | "version": "4.2.0", 39 | "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.2.0.tgz", 40 | "integrity": "sha512-ypZynRvXA3dibfPykQN3RB5wBdEUgSGgny8Qc6k163wYPLD4mEGEDkACp+00YmqkGvIm8D/xYoHajwyEdWD/eg==", 41 | "dependencies": { 42 | "fast-json-stringify": "^5.0.0" 43 | } 44 | }, 45 | "node_modules/@socket.io/component-emitter": { 46 | "version": "3.1.0", 47 | "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", 48 | "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" 49 | }, 50 | "node_modules/abort-controller": { 51 | "version": "3.0.0", 52 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 53 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 54 | "dependencies": { 55 | "event-target-shim": "^5.0.0" 56 | }, 57 | "engines": { 58 | "node": ">=6.5" 59 | } 60 | }, 61 | "node_modules/abstract-logging": { 62 | "version": "2.0.1", 63 | "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", 64 | "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" 65 | }, 66 | "node_modules/ajv": { 67 | "version": "8.12.0", 68 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", 69 | "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", 70 | "dependencies": { 71 | "fast-deep-equal": "^3.1.1", 72 | "json-schema-traverse": "^1.0.0", 73 | "require-from-string": "^2.0.2", 74 | "uri-js": "^4.2.2" 75 | }, 76 | "funding": { 77 | "type": "github", 78 | "url": "https://github.com/sponsors/epoberezkin" 79 | } 80 | }, 81 | "node_modules/ajv-formats": { 82 | "version": "2.1.1", 83 | "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", 84 | "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", 85 | "dependencies": { 86 | "ajv": "^8.0.0" 87 | }, 88 | "peerDependencies": { 89 | "ajv": "^8.0.0" 90 | }, 91 | "peerDependenciesMeta": { 92 | "ajv": { 93 | "optional": true 94 | } 95 | } 96 | }, 97 | "node_modules/archy": { 98 | "version": "1.0.0", 99 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", 100 | "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" 101 | }, 102 | "node_modules/atomic-sleep": { 103 | "version": "1.0.0", 104 | "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", 105 | "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", 106 | "engines": { 107 | "node": ">=8.0.0" 108 | } 109 | }, 110 | "node_modules/avvio": { 111 | "version": "8.2.0", 112 | "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.2.0.tgz", 113 | "integrity": "sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg==", 114 | "dependencies": { 115 | "archy": "^1.0.0", 116 | "debug": "^4.0.0", 117 | "fastq": "^1.6.1" 118 | } 119 | }, 120 | "node_modules/base64-js": { 121 | "version": "1.5.1", 122 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 123 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 124 | "funding": [ 125 | { 126 | "type": "github", 127 | "url": "https://github.com/sponsors/feross" 128 | }, 129 | { 130 | "type": "patreon", 131 | "url": "https://www.patreon.com/feross" 132 | }, 133 | { 134 | "type": "consulting", 135 | "url": "https://feross.org/support" 136 | } 137 | ] 138 | }, 139 | "node_modules/buffer": { 140 | "version": "6.0.3", 141 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 142 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 143 | "funding": [ 144 | { 145 | "type": "github", 146 | "url": "https://github.com/sponsors/feross" 147 | }, 148 | { 149 | "type": "patreon", 150 | "url": "https://www.patreon.com/feross" 151 | }, 152 | { 153 | "type": "consulting", 154 | "url": "https://feross.org/support" 155 | } 156 | ], 157 | "dependencies": { 158 | "base64-js": "^1.3.1", 159 | "ieee754": "^1.2.1" 160 | } 161 | }, 162 | "node_modules/chatgpt-io": { 163 | "version": "1.0.6", 164 | "resolved": "https://registry.npmjs.org/chatgpt-io/-/chatgpt-io-1.0.6.tgz", 165 | "integrity": "sha512-OXoNAtx/fg788JoowCOANVD+O0lgXAjT+ze609WG3lSsfVqFlZjZUTCEtPb+G1z4OdfsPsazahsAbC0bHNAqZQ==", 166 | "dependencies": { 167 | "socket.io-client": "^4.5.4" 168 | } 169 | }, 170 | "node_modules/content-type": { 171 | "version": "1.0.4", 172 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 173 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 174 | "engines": { 175 | "node": ">= 0.6" 176 | } 177 | }, 178 | "node_modules/cookie": { 179 | "version": "0.5.0", 180 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 181 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 182 | "engines": { 183 | "node": ">= 0.6" 184 | } 185 | }, 186 | "node_modules/debug": { 187 | "version": "4.3.4", 188 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 189 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 190 | "dependencies": { 191 | "ms": "2.1.2" 192 | }, 193 | "engines": { 194 | "node": ">=6.0" 195 | }, 196 | "peerDependenciesMeta": { 197 | "supports-color": { 198 | "optional": true 199 | } 200 | } 201 | }, 202 | "node_modules/dotenv": { 203 | "version": "16.0.3", 204 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", 205 | "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", 206 | "engines": { 207 | "node": ">=12" 208 | } 209 | }, 210 | "node_modules/engine.io-client": { 211 | "version": "6.2.3", 212 | "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz", 213 | "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==", 214 | "dependencies": { 215 | "@socket.io/component-emitter": "~3.1.0", 216 | "debug": "~4.3.1", 217 | "engine.io-parser": "~5.0.3", 218 | "ws": "~8.2.3", 219 | "xmlhttprequest-ssl": "~2.0.0" 220 | } 221 | }, 222 | "node_modules/engine.io-parser": { 223 | "version": "5.0.5", 224 | "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.5.tgz", 225 | "integrity": "sha512-mjEyaa4zhuuRhaSLOdjEb57X0XPP9JEsnXI4E+ivhwT0GgzUogARx4MqoY1jQyB+4Bkz3BUOmzL7t9RMKmlG3g==", 226 | "engines": { 227 | "node": ">=10.0.0" 228 | } 229 | }, 230 | "node_modules/event-target-shim": { 231 | "version": "5.0.1", 232 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 233 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 234 | "engines": { 235 | "node": ">=6" 236 | } 237 | }, 238 | "node_modules/events": { 239 | "version": "3.3.0", 240 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", 241 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", 242 | "engines": { 243 | "node": ">=0.8.x" 244 | } 245 | }, 246 | "node_modules/fast-decode-uri-component": { 247 | "version": "1.0.1", 248 | "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", 249 | "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" 250 | }, 251 | "node_modules/fast-deep-equal": { 252 | "version": "3.1.3", 253 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 254 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 255 | }, 256 | "node_modules/fast-json-stringify": { 257 | "version": "5.5.0", 258 | "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.5.0.tgz", 259 | "integrity": "sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA==", 260 | "dependencies": { 261 | "@fastify/deepmerge": "^1.0.0", 262 | "ajv": "^8.10.0", 263 | "ajv-formats": "^2.1.1", 264 | "fast-deep-equal": "^3.1.3", 265 | "fast-uri": "^2.1.0", 266 | "rfdc": "^1.2.0" 267 | } 268 | }, 269 | "node_modules/fast-querystring": { 270 | "version": "1.1.0", 271 | "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.0.tgz", 272 | "integrity": "sha512-LWkjBCZlxjnSanuPpZ6mHswjy8hQv3VcPJsQB3ltUF2zjvrycr0leP3TSTEEfvQ1WEMSRl5YNsGqaft9bjLqEw==", 273 | "dependencies": { 274 | "fast-decode-uri-component": "^1.0.1" 275 | } 276 | }, 277 | "node_modules/fast-redact": { 278 | "version": "3.1.2", 279 | "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", 280 | "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", 281 | "engines": { 282 | "node": ">=6" 283 | } 284 | }, 285 | "node_modules/fast-uri": { 286 | "version": "2.2.0", 287 | "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.2.0.tgz", 288 | "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==" 289 | }, 290 | "node_modules/fastify": { 291 | "version": "4.11.0", 292 | "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.11.0.tgz", 293 | "integrity": "sha512-JteZ8pjEqd+6n+azQnQfSJV8MUMxAmxbvC2Dx/Mybj039Lf/u3kda9Kq84uy/huCpqCzZoyHIZS5JFGF3wLztw==", 294 | "dependencies": { 295 | "@fastify/ajv-compiler": "^3.3.1", 296 | "@fastify/error": "^3.0.0", 297 | "@fastify/fast-json-stringify-compiler": "^4.1.0", 298 | "abstract-logging": "^2.0.1", 299 | "avvio": "^8.2.0", 300 | "content-type": "^1.0.4", 301 | "find-my-way": "^7.3.0", 302 | "light-my-request": "^5.6.1", 303 | "pino": "^8.5.0", 304 | "process-warning": "^2.0.0", 305 | "proxy-addr": "^2.0.7", 306 | "rfdc": "^1.3.0", 307 | "secure-json-parse": "^2.5.0", 308 | "semver": "^7.3.7", 309 | "tiny-lru": "^10.0.0" 310 | } 311 | }, 312 | "node_modules/fastq": { 313 | "version": "1.15.0", 314 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", 315 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 316 | "dependencies": { 317 | "reusify": "^1.0.4" 318 | } 319 | }, 320 | "node_modules/find-my-way": { 321 | "version": "7.4.0", 322 | "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.4.0.tgz", 323 | "integrity": "sha512-JFT7eURLU5FumlZ3VBGnveId82cZz7UR7OUu+THQJOwdQXxmS/g8v0KLoFhv97HreycOrmAbqjXD/4VG2j0uMQ==", 324 | "dependencies": { 325 | "fast-deep-equal": "^3.1.3", 326 | "fast-querystring": "^1.0.0", 327 | "safe-regex2": "^2.0.0" 328 | }, 329 | "engines": { 330 | "node": ">=14" 331 | } 332 | }, 333 | "node_modules/forwarded": { 334 | "version": "0.2.0", 335 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 336 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 337 | "engines": { 338 | "node": ">= 0.6" 339 | } 340 | }, 341 | "node_modules/ieee754": { 342 | "version": "1.2.1", 343 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 344 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 345 | "funding": [ 346 | { 347 | "type": "github", 348 | "url": "https://github.com/sponsors/feross" 349 | }, 350 | { 351 | "type": "patreon", 352 | "url": "https://www.patreon.com/feross" 353 | }, 354 | { 355 | "type": "consulting", 356 | "url": "https://feross.org/support" 357 | } 358 | ] 359 | }, 360 | "node_modules/ipaddr.js": { 361 | "version": "1.9.1", 362 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 363 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 364 | "engines": { 365 | "node": ">= 0.10" 366 | } 367 | }, 368 | "node_modules/json-schema-traverse": { 369 | "version": "1.0.0", 370 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 371 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 372 | }, 373 | "node_modules/light-my-request": { 374 | "version": "5.8.0", 375 | "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.8.0.tgz", 376 | "integrity": "sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg==", 377 | "dependencies": { 378 | "cookie": "^0.5.0", 379 | "process-warning": "^2.0.0", 380 | "set-cookie-parser": "^2.4.1" 381 | } 382 | }, 383 | "node_modules/lru-cache": { 384 | "version": "6.0.0", 385 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 386 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 387 | "dependencies": { 388 | "yallist": "^4.0.0" 389 | }, 390 | "engines": { 391 | "node": ">=10" 392 | } 393 | }, 394 | "node_modules/ms": { 395 | "version": "2.1.2", 396 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 397 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 398 | }, 399 | "node_modules/on-exit-leak-free": { 400 | "version": "2.1.0", 401 | "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", 402 | "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" 403 | }, 404 | "node_modules/pino": { 405 | "version": "8.8.0", 406 | "resolved": "https://registry.npmjs.org/pino/-/pino-8.8.0.tgz", 407 | "integrity": "sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ==", 408 | "dependencies": { 409 | "atomic-sleep": "^1.0.0", 410 | "fast-redact": "^3.1.1", 411 | "on-exit-leak-free": "^2.1.0", 412 | "pino-abstract-transport": "v1.0.0", 413 | "pino-std-serializers": "^6.0.0", 414 | "process-warning": "^2.0.0", 415 | "quick-format-unescaped": "^4.0.3", 416 | "real-require": "^0.2.0", 417 | "safe-stable-stringify": "^2.3.1", 418 | "sonic-boom": "^3.1.0", 419 | "thread-stream": "^2.0.0" 420 | }, 421 | "bin": { 422 | "pino": "bin.js" 423 | } 424 | }, 425 | "node_modules/pino-abstract-transport": { 426 | "version": "1.0.0", 427 | "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", 428 | "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", 429 | "dependencies": { 430 | "readable-stream": "^4.0.0", 431 | "split2": "^4.0.0" 432 | } 433 | }, 434 | "node_modules/pino-std-serializers": { 435 | "version": "6.1.0", 436 | "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz", 437 | "integrity": "sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==" 438 | }, 439 | "node_modules/process": { 440 | "version": "0.11.10", 441 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 442 | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", 443 | "engines": { 444 | "node": ">= 0.6.0" 445 | } 446 | }, 447 | "node_modules/process-warning": { 448 | "version": "2.1.0", 449 | "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.1.0.tgz", 450 | "integrity": "sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==" 451 | }, 452 | "node_modules/proxy-addr": { 453 | "version": "2.0.7", 454 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 455 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 456 | "dependencies": { 457 | "forwarded": "0.2.0", 458 | "ipaddr.js": "1.9.1" 459 | }, 460 | "engines": { 461 | "node": ">= 0.10" 462 | } 463 | }, 464 | "node_modules/punycode": { 465 | "version": "2.2.0", 466 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", 467 | "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", 468 | "engines": { 469 | "node": ">=6" 470 | } 471 | }, 472 | "node_modules/quick-format-unescaped": { 473 | "version": "4.0.4", 474 | "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", 475 | "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" 476 | }, 477 | "node_modules/readable-stream": { 478 | "version": "4.3.0", 479 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.3.0.tgz", 480 | "integrity": "sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==", 481 | "dependencies": { 482 | "abort-controller": "^3.0.0", 483 | "buffer": "^6.0.3", 484 | "events": "^3.3.0", 485 | "process": "^0.11.10" 486 | }, 487 | "engines": { 488 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 489 | } 490 | }, 491 | "node_modules/real-require": { 492 | "version": "0.2.0", 493 | "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", 494 | "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", 495 | "engines": { 496 | "node": ">= 12.13.0" 497 | } 498 | }, 499 | "node_modules/require-from-string": { 500 | "version": "2.0.2", 501 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 502 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 503 | "engines": { 504 | "node": ">=0.10.0" 505 | } 506 | }, 507 | "node_modules/ret": { 508 | "version": "0.2.2", 509 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", 510 | "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", 511 | "engines": { 512 | "node": ">=4" 513 | } 514 | }, 515 | "node_modules/reusify": { 516 | "version": "1.0.4", 517 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 518 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 519 | "engines": { 520 | "iojs": ">=1.0.0", 521 | "node": ">=0.10.0" 522 | } 523 | }, 524 | "node_modules/rfdc": { 525 | "version": "1.3.0", 526 | "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", 527 | "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" 528 | }, 529 | "node_modules/safe-regex2": { 530 | "version": "2.0.0", 531 | "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", 532 | "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", 533 | "dependencies": { 534 | "ret": "~0.2.0" 535 | } 536 | }, 537 | "node_modules/safe-stable-stringify": { 538 | "version": "2.4.2", 539 | "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", 540 | "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==", 541 | "engines": { 542 | "node": ">=10" 543 | } 544 | }, 545 | "node_modules/secure-json-parse": { 546 | "version": "2.7.0", 547 | "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", 548 | "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" 549 | }, 550 | "node_modules/semver": { 551 | "version": "7.3.8", 552 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", 553 | "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", 554 | "dependencies": { 555 | "lru-cache": "^6.0.0" 556 | }, 557 | "bin": { 558 | "semver": "bin/semver.js" 559 | }, 560 | "engines": { 561 | "node": ">=10" 562 | } 563 | }, 564 | "node_modules/set-cookie-parser": { 565 | "version": "2.5.1", 566 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", 567 | "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==" 568 | }, 569 | "node_modules/socket.io-client": { 570 | "version": "4.5.4", 571 | "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz", 572 | "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==", 573 | "dependencies": { 574 | "@socket.io/component-emitter": "~3.1.0", 575 | "debug": "~4.3.2", 576 | "engine.io-client": "~6.2.3", 577 | "socket.io-parser": "~4.2.1" 578 | }, 579 | "engines": { 580 | "node": ">=10.0.0" 581 | } 582 | }, 583 | "node_modules/socket.io-parser": { 584 | "version": "4.2.1", 585 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", 586 | "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", 587 | "dependencies": { 588 | "@socket.io/component-emitter": "~3.1.0", 589 | "debug": "~4.3.1" 590 | }, 591 | "engines": { 592 | "node": ">=10.0.0" 593 | } 594 | }, 595 | "node_modules/sonic-boom": { 596 | "version": "3.2.1", 597 | "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.1.tgz", 598 | "integrity": "sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==", 599 | "dependencies": { 600 | "atomic-sleep": "^1.0.0" 601 | } 602 | }, 603 | "node_modules/split2": { 604 | "version": "4.1.0", 605 | "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", 606 | "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", 607 | "engines": { 608 | "node": ">= 10.x" 609 | } 610 | }, 611 | "node_modules/thread-stream": { 612 | "version": "2.3.0", 613 | "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", 614 | "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", 615 | "dependencies": { 616 | "real-require": "^0.2.0" 617 | } 618 | }, 619 | "node_modules/tiny-lru": { 620 | "version": "10.0.1", 621 | "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-10.0.1.tgz", 622 | "integrity": "sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA==", 623 | "engines": { 624 | "node": ">=6" 625 | } 626 | }, 627 | "node_modules/uri-js": { 628 | "version": "4.4.1", 629 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 630 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 631 | "dependencies": { 632 | "punycode": "^2.1.0" 633 | } 634 | }, 635 | "node_modules/ws": { 636 | "version": "8.2.3", 637 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", 638 | "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", 639 | "engines": { 640 | "node": ">=10.0.0" 641 | }, 642 | "peerDependencies": { 643 | "bufferutil": "^4.0.1", 644 | "utf-8-validate": "^5.0.2" 645 | }, 646 | "peerDependenciesMeta": { 647 | "bufferutil": { 648 | "optional": true 649 | }, 650 | "utf-8-validate": { 651 | "optional": true 652 | } 653 | } 654 | }, 655 | "node_modules/xmlhttprequest-ssl": { 656 | "version": "2.0.0", 657 | "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", 658 | "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", 659 | "engines": { 660 | "node": ">=0.4.0" 661 | } 662 | }, 663 | "node_modules/yallist": { 664 | "version": "4.0.0", 665 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 666 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 667 | } 668 | }, 669 | "dependencies": { 670 | "@fastify/ajv-compiler": { 671 | "version": "3.5.0", 672 | "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz", 673 | "integrity": "sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==", 674 | "requires": { 675 | "ajv": "^8.11.0", 676 | "ajv-formats": "^2.1.1", 677 | "fast-uri": "^2.0.0" 678 | } 679 | }, 680 | "@fastify/deepmerge": { 681 | "version": "1.3.0", 682 | "resolved": "https://registry.npmjs.org/@fastify/deepmerge/-/deepmerge-1.3.0.tgz", 683 | "integrity": "sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==" 684 | }, 685 | "@fastify/error": { 686 | "version": "3.2.0", 687 | "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.2.0.tgz", 688 | "integrity": "sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ==" 689 | }, 690 | "@fastify/fast-json-stringify-compiler": { 691 | "version": "4.2.0", 692 | "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.2.0.tgz", 693 | "integrity": "sha512-ypZynRvXA3dibfPykQN3RB5wBdEUgSGgny8Qc6k163wYPLD4mEGEDkACp+00YmqkGvIm8D/xYoHajwyEdWD/eg==", 694 | "requires": { 695 | "fast-json-stringify": "^5.0.0" 696 | } 697 | }, 698 | "@socket.io/component-emitter": { 699 | "version": "3.1.0", 700 | "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", 701 | "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" 702 | }, 703 | "abort-controller": { 704 | "version": "3.0.0", 705 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 706 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 707 | "requires": { 708 | "event-target-shim": "^5.0.0" 709 | } 710 | }, 711 | "abstract-logging": { 712 | "version": "2.0.1", 713 | "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", 714 | "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" 715 | }, 716 | "ajv": { 717 | "version": "8.12.0", 718 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", 719 | "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", 720 | "requires": { 721 | "fast-deep-equal": "^3.1.1", 722 | "json-schema-traverse": "^1.0.0", 723 | "require-from-string": "^2.0.2", 724 | "uri-js": "^4.2.2" 725 | } 726 | }, 727 | "ajv-formats": { 728 | "version": "2.1.1", 729 | "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", 730 | "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", 731 | "requires": { 732 | "ajv": "^8.0.0" 733 | } 734 | }, 735 | "archy": { 736 | "version": "1.0.0", 737 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", 738 | "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==" 739 | }, 740 | "atomic-sleep": { 741 | "version": "1.0.0", 742 | "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", 743 | "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" 744 | }, 745 | "avvio": { 746 | "version": "8.2.0", 747 | "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.2.0.tgz", 748 | "integrity": "sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg==", 749 | "requires": { 750 | "archy": "^1.0.0", 751 | "debug": "^4.0.0", 752 | "fastq": "^1.6.1" 753 | } 754 | }, 755 | "base64-js": { 756 | "version": "1.5.1", 757 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 758 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 759 | }, 760 | "buffer": { 761 | "version": "6.0.3", 762 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 763 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 764 | "requires": { 765 | "base64-js": "^1.3.1", 766 | "ieee754": "^1.2.1" 767 | } 768 | }, 769 | "chatgpt-io": { 770 | "version": "1.0.6", 771 | "resolved": "https://registry.npmjs.org/chatgpt-io/-/chatgpt-io-1.0.6.tgz", 772 | "integrity": "sha512-OXoNAtx/fg788JoowCOANVD+O0lgXAjT+ze609WG3lSsfVqFlZjZUTCEtPb+G1z4OdfsPsazahsAbC0bHNAqZQ==", 773 | "requires": { 774 | "socket.io-client": "^4.5.4" 775 | } 776 | }, 777 | "content-type": { 778 | "version": "1.0.4", 779 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 780 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 781 | }, 782 | "cookie": { 783 | "version": "0.5.0", 784 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 785 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" 786 | }, 787 | "debug": { 788 | "version": "4.3.4", 789 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 790 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 791 | "requires": { 792 | "ms": "2.1.2" 793 | } 794 | }, 795 | "dotenv": { 796 | "version": "16.0.3", 797 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", 798 | "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" 799 | }, 800 | "engine.io-client": { 801 | "version": "6.2.3", 802 | "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz", 803 | "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==", 804 | "requires": { 805 | "@socket.io/component-emitter": "~3.1.0", 806 | "debug": "~4.3.1", 807 | "engine.io-parser": "~5.0.3", 808 | "ws": "~8.2.3", 809 | "xmlhttprequest-ssl": "~2.0.0" 810 | } 811 | }, 812 | "engine.io-parser": { 813 | "version": "5.0.5", 814 | "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.5.tgz", 815 | "integrity": "sha512-mjEyaa4zhuuRhaSLOdjEb57X0XPP9JEsnXI4E+ivhwT0GgzUogARx4MqoY1jQyB+4Bkz3BUOmzL7t9RMKmlG3g==" 816 | }, 817 | "event-target-shim": { 818 | "version": "5.0.1", 819 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 820 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 821 | }, 822 | "events": { 823 | "version": "3.3.0", 824 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", 825 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" 826 | }, 827 | "fast-decode-uri-component": { 828 | "version": "1.0.1", 829 | "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", 830 | "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" 831 | }, 832 | "fast-deep-equal": { 833 | "version": "3.1.3", 834 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 835 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 836 | }, 837 | "fast-json-stringify": { 838 | "version": "5.5.0", 839 | "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.5.0.tgz", 840 | "integrity": "sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA==", 841 | "requires": { 842 | "@fastify/deepmerge": "^1.0.0", 843 | "ajv": "^8.10.0", 844 | "ajv-formats": "^2.1.1", 845 | "fast-deep-equal": "^3.1.3", 846 | "fast-uri": "^2.1.0", 847 | "rfdc": "^1.2.0" 848 | } 849 | }, 850 | "fast-querystring": { 851 | "version": "1.1.0", 852 | "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.0.tgz", 853 | "integrity": "sha512-LWkjBCZlxjnSanuPpZ6mHswjy8hQv3VcPJsQB3ltUF2zjvrycr0leP3TSTEEfvQ1WEMSRl5YNsGqaft9bjLqEw==", 854 | "requires": { 855 | "fast-decode-uri-component": "^1.0.1" 856 | } 857 | }, 858 | "fast-redact": { 859 | "version": "3.1.2", 860 | "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", 861 | "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==" 862 | }, 863 | "fast-uri": { 864 | "version": "2.2.0", 865 | "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.2.0.tgz", 866 | "integrity": "sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==" 867 | }, 868 | "fastify": { 869 | "version": "4.11.0", 870 | "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.11.0.tgz", 871 | "integrity": "sha512-JteZ8pjEqd+6n+azQnQfSJV8MUMxAmxbvC2Dx/Mybj039Lf/u3kda9Kq84uy/huCpqCzZoyHIZS5JFGF3wLztw==", 872 | "requires": { 873 | "@fastify/ajv-compiler": "^3.3.1", 874 | "@fastify/error": "^3.0.0", 875 | "@fastify/fast-json-stringify-compiler": "^4.1.0", 876 | "abstract-logging": "^2.0.1", 877 | "avvio": "^8.2.0", 878 | "content-type": "^1.0.4", 879 | "find-my-way": "^7.3.0", 880 | "light-my-request": "^5.6.1", 881 | "pino": "^8.5.0", 882 | "process-warning": "^2.0.0", 883 | "proxy-addr": "^2.0.7", 884 | "rfdc": "^1.3.0", 885 | "secure-json-parse": "^2.5.0", 886 | "semver": "^7.3.7", 887 | "tiny-lru": "^10.0.0" 888 | } 889 | }, 890 | "fastq": { 891 | "version": "1.15.0", 892 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", 893 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 894 | "requires": { 895 | "reusify": "^1.0.4" 896 | } 897 | }, 898 | "find-my-way": { 899 | "version": "7.4.0", 900 | "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.4.0.tgz", 901 | "integrity": "sha512-JFT7eURLU5FumlZ3VBGnveId82cZz7UR7OUu+THQJOwdQXxmS/g8v0KLoFhv97HreycOrmAbqjXD/4VG2j0uMQ==", 902 | "requires": { 903 | "fast-deep-equal": "^3.1.3", 904 | "fast-querystring": "^1.0.0", 905 | "safe-regex2": "^2.0.0" 906 | } 907 | }, 908 | "forwarded": { 909 | "version": "0.2.0", 910 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 911 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 912 | }, 913 | "ieee754": { 914 | "version": "1.2.1", 915 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 916 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 917 | }, 918 | "ipaddr.js": { 919 | "version": "1.9.1", 920 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 921 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 922 | }, 923 | "json-schema-traverse": { 924 | "version": "1.0.0", 925 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 926 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 927 | }, 928 | "light-my-request": { 929 | "version": "5.8.0", 930 | "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.8.0.tgz", 931 | "integrity": "sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg==", 932 | "requires": { 933 | "cookie": "^0.5.0", 934 | "process-warning": "^2.0.0", 935 | "set-cookie-parser": "^2.4.1" 936 | } 937 | }, 938 | "lru-cache": { 939 | "version": "6.0.0", 940 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 941 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 942 | "requires": { 943 | "yallist": "^4.0.0" 944 | } 945 | }, 946 | "ms": { 947 | "version": "2.1.2", 948 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 949 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 950 | }, 951 | "on-exit-leak-free": { 952 | "version": "2.1.0", 953 | "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", 954 | "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" 955 | }, 956 | "pino": { 957 | "version": "8.8.0", 958 | "resolved": "https://registry.npmjs.org/pino/-/pino-8.8.0.tgz", 959 | "integrity": "sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ==", 960 | "requires": { 961 | "atomic-sleep": "^1.0.0", 962 | "fast-redact": "^3.1.1", 963 | "on-exit-leak-free": "^2.1.0", 964 | "pino-abstract-transport": "v1.0.0", 965 | "pino-std-serializers": "^6.0.0", 966 | "process-warning": "^2.0.0", 967 | "quick-format-unescaped": "^4.0.3", 968 | "real-require": "^0.2.0", 969 | "safe-stable-stringify": "^2.3.1", 970 | "sonic-boom": "^3.1.0", 971 | "thread-stream": "^2.0.0" 972 | } 973 | }, 974 | "pino-abstract-transport": { 975 | "version": "1.0.0", 976 | "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", 977 | "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", 978 | "requires": { 979 | "readable-stream": "^4.0.0", 980 | "split2": "^4.0.0" 981 | } 982 | }, 983 | "pino-std-serializers": { 984 | "version": "6.1.0", 985 | "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz", 986 | "integrity": "sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==" 987 | }, 988 | "process": { 989 | "version": "0.11.10", 990 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 991 | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" 992 | }, 993 | "process-warning": { 994 | "version": "2.1.0", 995 | "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.1.0.tgz", 996 | "integrity": "sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==" 997 | }, 998 | "proxy-addr": { 999 | "version": "2.0.7", 1000 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1001 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1002 | "requires": { 1003 | "forwarded": "0.2.0", 1004 | "ipaddr.js": "1.9.1" 1005 | } 1006 | }, 1007 | "punycode": { 1008 | "version": "2.2.0", 1009 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", 1010 | "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==" 1011 | }, 1012 | "quick-format-unescaped": { 1013 | "version": "4.0.4", 1014 | "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", 1015 | "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" 1016 | }, 1017 | "readable-stream": { 1018 | "version": "4.3.0", 1019 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.3.0.tgz", 1020 | "integrity": "sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==", 1021 | "requires": { 1022 | "abort-controller": "^3.0.0", 1023 | "buffer": "^6.0.3", 1024 | "events": "^3.3.0", 1025 | "process": "^0.11.10" 1026 | } 1027 | }, 1028 | "real-require": { 1029 | "version": "0.2.0", 1030 | "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", 1031 | "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" 1032 | }, 1033 | "require-from-string": { 1034 | "version": "2.0.2", 1035 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 1036 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" 1037 | }, 1038 | "ret": { 1039 | "version": "0.2.2", 1040 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", 1041 | "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" 1042 | }, 1043 | "reusify": { 1044 | "version": "1.0.4", 1045 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1046 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 1047 | }, 1048 | "rfdc": { 1049 | "version": "1.3.0", 1050 | "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", 1051 | "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" 1052 | }, 1053 | "safe-regex2": { 1054 | "version": "2.0.0", 1055 | "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", 1056 | "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", 1057 | "requires": { 1058 | "ret": "~0.2.0" 1059 | } 1060 | }, 1061 | "safe-stable-stringify": { 1062 | "version": "2.4.2", 1063 | "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", 1064 | "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==" 1065 | }, 1066 | "secure-json-parse": { 1067 | "version": "2.7.0", 1068 | "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", 1069 | "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" 1070 | }, 1071 | "semver": { 1072 | "version": "7.3.8", 1073 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", 1074 | "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", 1075 | "requires": { 1076 | "lru-cache": "^6.0.0" 1077 | } 1078 | }, 1079 | "set-cookie-parser": { 1080 | "version": "2.5.1", 1081 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", 1082 | "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==" 1083 | }, 1084 | "socket.io-client": { 1085 | "version": "4.5.4", 1086 | "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz", 1087 | "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==", 1088 | "requires": { 1089 | "@socket.io/component-emitter": "~3.1.0", 1090 | "debug": "~4.3.2", 1091 | "engine.io-client": "~6.2.3", 1092 | "socket.io-parser": "~4.2.1" 1093 | } 1094 | }, 1095 | "socket.io-parser": { 1096 | "version": "4.2.1", 1097 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", 1098 | "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", 1099 | "requires": { 1100 | "@socket.io/component-emitter": "~3.1.0", 1101 | "debug": "~4.3.1" 1102 | } 1103 | }, 1104 | "sonic-boom": { 1105 | "version": "3.2.1", 1106 | "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.1.tgz", 1107 | "integrity": "sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==", 1108 | "requires": { 1109 | "atomic-sleep": "^1.0.0" 1110 | } 1111 | }, 1112 | "split2": { 1113 | "version": "4.1.0", 1114 | "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", 1115 | "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" 1116 | }, 1117 | "thread-stream": { 1118 | "version": "2.3.0", 1119 | "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.3.0.tgz", 1120 | "integrity": "sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==", 1121 | "requires": { 1122 | "real-require": "^0.2.0" 1123 | } 1124 | }, 1125 | "tiny-lru": { 1126 | "version": "10.0.1", 1127 | "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-10.0.1.tgz", 1128 | "integrity": "sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA==" 1129 | }, 1130 | "uri-js": { 1131 | "version": "4.4.1", 1132 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 1133 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1134 | "requires": { 1135 | "punycode": "^2.1.0" 1136 | } 1137 | }, 1138 | "ws": { 1139 | "version": "8.2.3", 1140 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", 1141 | "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", 1142 | "requires": {} 1143 | }, 1144 | "xmlhttprequest-ssl": { 1145 | "version": "2.0.0", 1146 | "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", 1147 | "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" 1148 | }, 1149 | "yallist": { 1150 | "version": "4.0.0", 1151 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1152 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1153 | } 1154 | } 1155 | } 1156 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chatgpt-io-api", 3 | "version": "1.0.1", 4 | "description": "An API layer for ChatGPT, powered by chatgpt-io.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/waylaidwanderer/chatgpt-io-api.git" 13 | }, 14 | "keywords": [ 15 | "chatgpt", 16 | "openai", 17 | "gpt3", 18 | "chatgpt-io", 19 | "api" 20 | ], 21 | "author": "waylaidwanderer", 22 | "license": "MIT", 23 | "bugs": { 24 | "url": "https://github.com/waylaidwanderer/chatgpt-io-api/issues" 25 | }, 26 | "homepage": "https://github.com/waylaidwanderer/chatgpt-io-api#readme", 27 | "dependencies": { 28 | "chatgpt-io": "^1.0.4", 29 | "dotenv": "^16.0.3", 30 | "fastify": "^4.11.0" 31 | }, 32 | "type": "module" 33 | } 34 | --------------------------------------------------------------------------------