plsgivemeachane commited on
Commit
511a346
·
1 Parent(s): b4dde36

First commit

Browse files
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ /app/node_modules
2
+ /app/.env
Dockerfile ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # A simple nodejs server
2
+ FROM node:latest
3
+ RUN useradd -m -u 2728 user
4
+ # RUN wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel --claim-token nrBSmIKM6z6gzDXP2HBnqGyZX7N_TZzRhV0jBB_CY2B9Jc_Nj4b2u1zdOoX0ds6HhVm8uleBrtzO_ogx_iQ2O5J3Srl-HrJT2gXA21WMhegYCl50pW2OA_-KXtBfUYsFzaYKT8M --claim-rooms 4c36f195-7d92-41b8-852a-784f1d96aecd --claim-url https://app.netdata.cloud
5
+ RUN npm install -g pm2
6
+ USER user
7
+ ENV HOME=/home/user \
8
+ PATH=/home/user/.local/bin:$PATH
9
+
10
+ WORKDIR $HOME/src
11
+ COPY --chown=user . $HOME/src
12
+ RUN chmod 777 $HOME/src/app/temp_files
13
+ RUN chmod 777 $HOME
14
+ WORKDIR $HOME/src/app
15
+ RUN npm install
16
+ ENV PM2_PUBLIC_KEY ixl9kl8zg99lboo
17
+ ENV PM2_SECRET_KEY ux7actst44hk0y5
18
+ # CMD ["pm2-runtime", "app.js"]
19
+ EXPOSE 7860
20
+ CMD ["pm2-runtime", "index.js", "-i", "4", "--trace"]
app/.gitignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ node_modules
2
+ # Keep environment variables out of version control
3
+ .env
app/index.ts ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Module import
2
+ import express from "express";
3
+ import cors from "cors";
4
+ import fs from "fs";
5
+ import { PrismaClient } from "@prisma/client";
6
+ import FormData from 'form-data';
7
+ import axios, {isCancel, AxiosError} from 'axios';
8
+ const app = express();
9
+ const prisma = new PrismaClient();
10
+ // const FormData = require('form-data');
11
+
12
+ app.use(cors({
13
+ origin: "*",
14
+ }));
15
+
16
+ function getUUID() {
17
+ return 'xxxxxxxxx'.replace(/[x, y]/g, function(c) {
18
+ var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
19
+ return v.toString(16);
20
+ });
21
+ }
22
+
23
+ async function writeUserData(name: string, arg2: string, cids: any = [], API_KEY: string) {
24
+ console.log(name, arg2, cids)
25
+ const user = await prisma.storage.create({
26
+ data: {
27
+ file_name: name,
28
+ file_cids: (cids.length != 0) ? cids : [arg2],
29
+ API_KEY: API_KEY
30
+ }
31
+ })
32
+ }
33
+
34
+
35
+ const uploadFilepls = (buffer: Buffer) => {
36
+ return new Promise(async (resolve, reject) => {
37
+ const res = await fetch(
38
+ "https://studid-how-i-didnt-know-that.vercel.app/server"
39
+ );
40
+ const json = await res.json();
41
+ // console.log(json)
42
+ if (json == false) {
43
+ reject(new Error("No servers available"));
44
+ }
45
+
46
+ let username = json[0];
47
+ let password = json[1];
48
+
49
+ // console.log(username, password);
50
+ const form = new FormData();
51
+ form.append('file', buffer, {
52
+ contentType: 'application/octet-stream'
53
+ })
54
+ const response = await axios.post('https://rpc.particle.network/ipfs/upload', form, {
55
+ headers: {
56
+ 'Authorization': 'Basic ' + btoa(username + ":" + password)
57
+ // No need to set 'Content-Type' manually
58
+ }
59
+ });
60
+
61
+ resolve(response.data);
62
+ });
63
+ };
64
+
65
+ async function uploadChunk(chunk: ArrayBuffer, filename: string) {
66
+ // const uploadFormData = new FormData();
67
+ const buffer = Buffer.from(chunk);
68
+ // const file = new File([buffer], filename);
69
+ // uploadFormData.append("file", file);
70
+ return (await uploadFilepls(buffer)) as any;
71
+ }
72
+
73
+ const uploadFile = async (file: Buffer, name: string, API_KEY: string) => {
74
+ return new Promise(async (resolve, reject) => {
75
+ if (!file) {
76
+ reject(new Error("No file provided"));
77
+ }
78
+
79
+ console.log("Uploading file: " + name);
80
+
81
+ // console.log(file.text);
82
+ // convert buffer to arrayBuffer
83
+ // console.log(typeof file);
84
+ const fileArrayBuffer : ArrayBuffer = file.buffer;
85
+
86
+ const CHUNK_SIZE = 80 * 1024 * 1024;
87
+ let start = 0;
88
+ let end = CHUNK_SIZE;
89
+ let cids: any = [];
90
+ // let prog = 0;
91
+ let part = 0;
92
+
93
+
94
+ // var promises = []
95
+ let id = 0;
96
+ part = fileArrayBuffer.byteLength / CHUNK_SIZE;
97
+
98
+ while (start < fileArrayBuffer.byteLength) {
99
+ try {
100
+ const chunk = fileArrayBuffer.slice(start, end);
101
+ // console.log(chunk.byteLength)
102
+ console.log("Uploading part " + id + " of " + Math.min(part, 1));
103
+ const cid = (await uploadChunk(chunk, name)).cid;
104
+ cids.push(cid);
105
+ id += 1;
106
+ start = end;
107
+ end += CHUNK_SIZE;
108
+ } catch (e) {
109
+ console.log(e);
110
+ reject(e);
111
+ }
112
+ }
113
+ // console.log(cids);
114
+
115
+ if (cids.length == 1) {
116
+ await writeUserData(
117
+ name,
118
+ `https://ipfs.particle.network/${cids[0]}`,
119
+ [],
120
+ API_KEY
121
+ );
122
+ } else {
123
+ await writeUserData(
124
+ name,
125
+ `https://ipfs.particle.network/${cids[0]}`,
126
+ cids,
127
+ API_KEY
128
+ );
129
+ }
130
+
131
+ console.log("File uploaded: " + name);
132
+ resolve("OK");
133
+ });
134
+ };
135
+
136
+ // Build a server that upload file to the server
137
+ app.post("/upload", async (req: any, res: any) => {
138
+
139
+ if (!req.query.auth) {
140
+ return res.status(403).json({ error: 'No credentials sent!' });
141
+ }
142
+
143
+ const token = req.query.auth;
144
+ console.log(token);
145
+
146
+ // Get the token in the database
147
+ const record = await prisma.aPIList.findUnique({
148
+ where: {
149
+ API_KEY: token
150
+ }
151
+ })
152
+
153
+ if (!record) {
154
+ return res.status(403).json({ error: 'Invalid credentials!' });
155
+ }
156
+
157
+
158
+ const fileData: Buffer[] = []; // Array of Buffers
159
+ console.log(req.headers); // Inspect all headers
160
+ console.log(req.query); // Log query parameters
161
+
162
+ req.on('data', (chunk: Buffer) => {
163
+ fileData.push(chunk);
164
+ })
165
+
166
+ req.on('end', () => {
167
+ console.log("recive file");
168
+ const file = Buffer.concat(fileData);
169
+ console.log('Final file size:', file.length);
170
+ // console.log(fileData.length);
171
+ const filename = req.query.filename;
172
+ uploadFile(file, filename, token).then((data) => {
173
+ res.send(data);
174
+ }).catch((e) => {
175
+ console.log(e);
176
+ res.status(500).send(e);
177
+ });
178
+ })
179
+ });
180
+
181
+ app.listen(7860, () => {
182
+ console.log("Listening on port 7860");
183
+ });
app/package-lock.json ADDED
@@ -0,0 +1,1528 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "app",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "app",
9
+ "version": "1.0.0",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "@prisma/client": "^5.11.0",
13
+ "axios": "^1.6.8",
14
+ "cors": "^2.8.5",
15
+ "express": "^4.18.3",
16
+ "form-data": "^4.0.0",
17
+ "request": "^2.88.2"
18
+ },
19
+ "devDependencies": {
20
+ "@types/cors": "^2.8.17",
21
+ "@types/express": "^4.17.21",
22
+ "@types/node": "^20.11.28",
23
+ "prisma": "^5.11.0",
24
+ "ts-node": "^10.9.2",
25
+ "typescript": "^5.4.2"
26
+ }
27
+ },
28
+ "node_modules/@cspotcode/source-map-support": {
29
+ "version": "0.8.1",
30
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
31
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
32
+ "dev": true,
33
+ "dependencies": {
34
+ "@jridgewell/trace-mapping": "0.3.9"
35
+ },
36
+ "engines": {
37
+ "node": ">=12"
38
+ }
39
+ },
40
+ "node_modules/@jridgewell/resolve-uri": {
41
+ "version": "3.1.2",
42
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
43
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
44
+ "dev": true,
45
+ "engines": {
46
+ "node": ">=6.0.0"
47
+ }
48
+ },
49
+ "node_modules/@jridgewell/sourcemap-codec": {
50
+ "version": "1.4.15",
51
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
52
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
53
+ "dev": true
54
+ },
55
+ "node_modules/@jridgewell/trace-mapping": {
56
+ "version": "0.3.9",
57
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
58
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
59
+ "dev": true,
60
+ "dependencies": {
61
+ "@jridgewell/resolve-uri": "^3.0.3",
62
+ "@jridgewell/sourcemap-codec": "^1.4.10"
63
+ }
64
+ },
65
+ "node_modules/@prisma/client": {
66
+ "version": "5.11.0",
67
+ "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.11.0.tgz",
68
+ "integrity": "sha512-SWshvS5FDXvgJKM/a0y9nDC1rqd7KG0Q6ZVzd+U7ZXK5soe73DJxJJgbNBt2GNXOa+ysWB4suTpdK5zfFPhwiw==",
69
+ "hasInstallScript": true,
70
+ "engines": {
71
+ "node": ">=16.13"
72
+ },
73
+ "peerDependencies": {
74
+ "prisma": "*"
75
+ },
76
+ "peerDependenciesMeta": {
77
+ "prisma": {
78
+ "optional": true
79
+ }
80
+ }
81
+ },
82
+ "node_modules/@prisma/debug": {
83
+ "version": "5.11.0",
84
+ "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.11.0.tgz",
85
+ "integrity": "sha512-N6yYr3AbQqaiUg+OgjkdPp3KPW1vMTAgtKX6+BiB/qB2i1TjLYCrweKcUjzOoRM5BriA4idrkTej9A9QqTfl3A==",
86
+ "devOptional": true
87
+ },
88
+ "node_modules/@prisma/engines": {
89
+ "version": "5.11.0",
90
+ "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.11.0.tgz",
91
+ "integrity": "sha512-gbrpQoBTYWXDRqD+iTYMirDlF9MMlQdxskQXbhARhG6A/uFQjB7DZMYocMQLoiZXO/IskfDOZpPoZE8TBQKtEw==",
92
+ "devOptional": true,
93
+ "hasInstallScript": true,
94
+ "dependencies": {
95
+ "@prisma/debug": "5.11.0",
96
+ "@prisma/engines-version": "5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102",
97
+ "@prisma/fetch-engine": "5.11.0",
98
+ "@prisma/get-platform": "5.11.0"
99
+ }
100
+ },
101
+ "node_modules/@prisma/engines-version": {
102
+ "version": "5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102",
103
+ "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102.tgz",
104
+ "integrity": "sha512-WXCuyoymvrS4zLz4wQagSsc3/nE6CHy8znyiMv8RKazKymOMd5o9FP5RGwGHAtgoxd+aB/BWqxuP/Ckfu7/3MA==",
105
+ "devOptional": true
106
+ },
107
+ "node_modules/@prisma/fetch-engine": {
108
+ "version": "5.11.0",
109
+ "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.11.0.tgz",
110
+ "integrity": "sha512-994viazmHTJ1ymzvWugXod7dZ42T2ROeFuH6zHPcUfp/69+6cl5r9u3NFb6bW8lLdNjwLYEVPeu3hWzxpZeC0w==",
111
+ "devOptional": true,
112
+ "dependencies": {
113
+ "@prisma/debug": "5.11.0",
114
+ "@prisma/engines-version": "5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102",
115
+ "@prisma/get-platform": "5.11.0"
116
+ }
117
+ },
118
+ "node_modules/@prisma/get-platform": {
119
+ "version": "5.11.0",
120
+ "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.11.0.tgz",
121
+ "integrity": "sha512-rxtHpMLxNTHxqWuGOLzR2QOyQi79rK1u1XYAVLZxDGTLz/A+uoDnjz9veBFlicrpWjwuieM4N6jcnjj/DDoidw==",
122
+ "devOptional": true,
123
+ "dependencies": {
124
+ "@prisma/debug": "5.11.0"
125
+ }
126
+ },
127
+ "node_modules/@tsconfig/node10": {
128
+ "version": "1.0.9",
129
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
130
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
131
+ "dev": true
132
+ },
133
+ "node_modules/@tsconfig/node12": {
134
+ "version": "1.0.11",
135
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
136
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
137
+ "dev": true
138
+ },
139
+ "node_modules/@tsconfig/node14": {
140
+ "version": "1.0.3",
141
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
142
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
143
+ "dev": true
144
+ },
145
+ "node_modules/@tsconfig/node16": {
146
+ "version": "1.0.4",
147
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
148
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
149
+ "dev": true
150
+ },
151
+ "node_modules/@types/body-parser": {
152
+ "version": "1.19.5",
153
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
154
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
155
+ "dev": true,
156
+ "dependencies": {
157
+ "@types/connect": "*",
158
+ "@types/node": "*"
159
+ }
160
+ },
161
+ "node_modules/@types/connect": {
162
+ "version": "3.4.38",
163
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
164
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
165
+ "dev": true,
166
+ "dependencies": {
167
+ "@types/node": "*"
168
+ }
169
+ },
170
+ "node_modules/@types/cors": {
171
+ "version": "2.8.17",
172
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz",
173
+ "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==",
174
+ "dev": true,
175
+ "dependencies": {
176
+ "@types/node": "*"
177
+ }
178
+ },
179
+ "node_modules/@types/express": {
180
+ "version": "4.17.21",
181
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
182
+ "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
183
+ "dev": true,
184
+ "dependencies": {
185
+ "@types/body-parser": "*",
186
+ "@types/express-serve-static-core": "^4.17.33",
187
+ "@types/qs": "*",
188
+ "@types/serve-static": "*"
189
+ }
190
+ },
191
+ "node_modules/@types/express-serve-static-core": {
192
+ "version": "4.17.43",
193
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz",
194
+ "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==",
195
+ "dev": true,
196
+ "dependencies": {
197
+ "@types/node": "*",
198
+ "@types/qs": "*",
199
+ "@types/range-parser": "*",
200
+ "@types/send": "*"
201
+ }
202
+ },
203
+ "node_modules/@types/http-errors": {
204
+ "version": "2.0.4",
205
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
206
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
207
+ "dev": true
208
+ },
209
+ "node_modules/@types/mime": {
210
+ "version": "1.3.5",
211
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
212
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
213
+ "dev": true
214
+ },
215
+ "node_modules/@types/node": {
216
+ "version": "20.11.28",
217
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz",
218
+ "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==",
219
+ "dev": true,
220
+ "dependencies": {
221
+ "undici-types": "~5.26.4"
222
+ }
223
+ },
224
+ "node_modules/@types/qs": {
225
+ "version": "6.9.12",
226
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz",
227
+ "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==",
228
+ "dev": true
229
+ },
230
+ "node_modules/@types/range-parser": {
231
+ "version": "1.2.7",
232
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
233
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
234
+ "dev": true
235
+ },
236
+ "node_modules/@types/send": {
237
+ "version": "0.17.4",
238
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
239
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
240
+ "dev": true,
241
+ "dependencies": {
242
+ "@types/mime": "^1",
243
+ "@types/node": "*"
244
+ }
245
+ },
246
+ "node_modules/@types/serve-static": {
247
+ "version": "1.15.5",
248
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz",
249
+ "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==",
250
+ "dev": true,
251
+ "dependencies": {
252
+ "@types/http-errors": "*",
253
+ "@types/mime": "*",
254
+ "@types/node": "*"
255
+ }
256
+ },
257
+ "node_modules/accepts": {
258
+ "version": "1.3.8",
259
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
260
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
261
+ "dependencies": {
262
+ "mime-types": "~2.1.34",
263
+ "negotiator": "0.6.3"
264
+ },
265
+ "engines": {
266
+ "node": ">= 0.6"
267
+ }
268
+ },
269
+ "node_modules/acorn": {
270
+ "version": "8.11.3",
271
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
272
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
273
+ "dev": true,
274
+ "bin": {
275
+ "acorn": "bin/acorn"
276
+ },
277
+ "engines": {
278
+ "node": ">=0.4.0"
279
+ }
280
+ },
281
+ "node_modules/acorn-walk": {
282
+ "version": "8.3.2",
283
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
284
+ "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
285
+ "dev": true,
286
+ "engines": {
287
+ "node": ">=0.4.0"
288
+ }
289
+ },
290
+ "node_modules/ajv": {
291
+ "version": "6.12.6",
292
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
293
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
294
+ "dependencies": {
295
+ "fast-deep-equal": "^3.1.1",
296
+ "fast-json-stable-stringify": "^2.0.0",
297
+ "json-schema-traverse": "^0.4.1",
298
+ "uri-js": "^4.2.2"
299
+ },
300
+ "funding": {
301
+ "type": "github",
302
+ "url": "https://github.com/sponsors/epoberezkin"
303
+ }
304
+ },
305
+ "node_modules/arg": {
306
+ "version": "4.1.3",
307
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
308
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
309
+ "dev": true
310
+ },
311
+ "node_modules/array-flatten": {
312
+ "version": "1.1.1",
313
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
314
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
315
+ },
316
+ "node_modules/asn1": {
317
+ "version": "0.2.6",
318
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
319
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
320
+ "dependencies": {
321
+ "safer-buffer": "~2.1.0"
322
+ }
323
+ },
324
+ "node_modules/assert-plus": {
325
+ "version": "1.0.0",
326
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
327
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
328
+ "engines": {
329
+ "node": ">=0.8"
330
+ }
331
+ },
332
+ "node_modules/asynckit": {
333
+ "version": "0.4.0",
334
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
335
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
336
+ },
337
+ "node_modules/aws-sign2": {
338
+ "version": "0.7.0",
339
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
340
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
341
+ "engines": {
342
+ "node": "*"
343
+ }
344
+ },
345
+ "node_modules/aws4": {
346
+ "version": "1.12.0",
347
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
348
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
349
+ },
350
+ "node_modules/axios": {
351
+ "version": "1.6.8",
352
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
353
+ "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
354
+ "dependencies": {
355
+ "follow-redirects": "^1.15.6",
356
+ "form-data": "^4.0.0",
357
+ "proxy-from-env": "^1.1.0"
358
+ }
359
+ },
360
+ "node_modules/bcrypt-pbkdf": {
361
+ "version": "1.0.2",
362
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
363
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
364
+ "dependencies": {
365
+ "tweetnacl": "^0.14.3"
366
+ }
367
+ },
368
+ "node_modules/body-parser": {
369
+ "version": "1.20.2",
370
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
371
+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
372
+ "dependencies": {
373
+ "bytes": "3.1.2",
374
+ "content-type": "~1.0.5",
375
+ "debug": "2.6.9",
376
+ "depd": "2.0.0",
377
+ "destroy": "1.2.0",
378
+ "http-errors": "2.0.0",
379
+ "iconv-lite": "0.4.24",
380
+ "on-finished": "2.4.1",
381
+ "qs": "6.11.0",
382
+ "raw-body": "2.5.2",
383
+ "type-is": "~1.6.18",
384
+ "unpipe": "1.0.0"
385
+ },
386
+ "engines": {
387
+ "node": ">= 0.8",
388
+ "npm": "1.2.8000 || >= 1.4.16"
389
+ }
390
+ },
391
+ "node_modules/bytes": {
392
+ "version": "3.1.2",
393
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
394
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
395
+ "engines": {
396
+ "node": ">= 0.8"
397
+ }
398
+ },
399
+ "node_modules/call-bind": {
400
+ "version": "1.0.7",
401
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
402
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
403
+ "dependencies": {
404
+ "es-define-property": "^1.0.0",
405
+ "es-errors": "^1.3.0",
406
+ "function-bind": "^1.1.2",
407
+ "get-intrinsic": "^1.2.4",
408
+ "set-function-length": "^1.2.1"
409
+ },
410
+ "engines": {
411
+ "node": ">= 0.4"
412
+ },
413
+ "funding": {
414
+ "url": "https://github.com/sponsors/ljharb"
415
+ }
416
+ },
417
+ "node_modules/caseless": {
418
+ "version": "0.12.0",
419
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
420
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
421
+ },
422
+ "node_modules/combined-stream": {
423
+ "version": "1.0.8",
424
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
425
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
426
+ "dependencies": {
427
+ "delayed-stream": "~1.0.0"
428
+ },
429
+ "engines": {
430
+ "node": ">= 0.8"
431
+ }
432
+ },
433
+ "node_modules/content-disposition": {
434
+ "version": "0.5.4",
435
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
436
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
437
+ "dependencies": {
438
+ "safe-buffer": "5.2.1"
439
+ },
440
+ "engines": {
441
+ "node": ">= 0.6"
442
+ }
443
+ },
444
+ "node_modules/content-type": {
445
+ "version": "1.0.5",
446
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
447
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
448
+ "engines": {
449
+ "node": ">= 0.6"
450
+ }
451
+ },
452
+ "node_modules/cookie": {
453
+ "version": "0.5.0",
454
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
455
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
456
+ "engines": {
457
+ "node": ">= 0.6"
458
+ }
459
+ },
460
+ "node_modules/cookie-signature": {
461
+ "version": "1.0.6",
462
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
463
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
464
+ },
465
+ "node_modules/core-util-is": {
466
+ "version": "1.0.2",
467
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
468
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
469
+ },
470
+ "node_modules/cors": {
471
+ "version": "2.8.5",
472
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
473
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
474
+ "dependencies": {
475
+ "object-assign": "^4",
476
+ "vary": "^1"
477
+ },
478
+ "engines": {
479
+ "node": ">= 0.10"
480
+ }
481
+ },
482
+ "node_modules/create-require": {
483
+ "version": "1.1.1",
484
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
485
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
486
+ "dev": true
487
+ },
488
+ "node_modules/dashdash": {
489
+ "version": "1.14.1",
490
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
491
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
492
+ "dependencies": {
493
+ "assert-plus": "^1.0.0"
494
+ },
495
+ "engines": {
496
+ "node": ">=0.10"
497
+ }
498
+ },
499
+ "node_modules/debug": {
500
+ "version": "2.6.9",
501
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
502
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
503
+ "dependencies": {
504
+ "ms": "2.0.0"
505
+ }
506
+ },
507
+ "node_modules/define-data-property": {
508
+ "version": "1.1.4",
509
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
510
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
511
+ "dependencies": {
512
+ "es-define-property": "^1.0.0",
513
+ "es-errors": "^1.3.0",
514
+ "gopd": "^1.0.1"
515
+ },
516
+ "engines": {
517
+ "node": ">= 0.4"
518
+ },
519
+ "funding": {
520
+ "url": "https://github.com/sponsors/ljharb"
521
+ }
522
+ },
523
+ "node_modules/delayed-stream": {
524
+ "version": "1.0.0",
525
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
526
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
527
+ "engines": {
528
+ "node": ">=0.4.0"
529
+ }
530
+ },
531
+ "node_modules/depd": {
532
+ "version": "2.0.0",
533
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
534
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
535
+ "engines": {
536
+ "node": ">= 0.8"
537
+ }
538
+ },
539
+ "node_modules/destroy": {
540
+ "version": "1.2.0",
541
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
542
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
543
+ "engines": {
544
+ "node": ">= 0.8",
545
+ "npm": "1.2.8000 || >= 1.4.16"
546
+ }
547
+ },
548
+ "node_modules/diff": {
549
+ "version": "4.0.2",
550
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
551
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
552
+ "dev": true,
553
+ "engines": {
554
+ "node": ">=0.3.1"
555
+ }
556
+ },
557
+ "node_modules/ecc-jsbn": {
558
+ "version": "0.1.2",
559
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
560
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
561
+ "dependencies": {
562
+ "jsbn": "~0.1.0",
563
+ "safer-buffer": "^2.1.0"
564
+ }
565
+ },
566
+ "node_modules/ee-first": {
567
+ "version": "1.1.1",
568
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
569
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
570
+ },
571
+ "node_modules/encodeurl": {
572
+ "version": "1.0.2",
573
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
574
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
575
+ "engines": {
576
+ "node": ">= 0.8"
577
+ }
578
+ },
579
+ "node_modules/es-define-property": {
580
+ "version": "1.0.0",
581
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
582
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
583
+ "dependencies": {
584
+ "get-intrinsic": "^1.2.4"
585
+ },
586
+ "engines": {
587
+ "node": ">= 0.4"
588
+ }
589
+ },
590
+ "node_modules/es-errors": {
591
+ "version": "1.3.0",
592
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
593
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
594
+ "engines": {
595
+ "node": ">= 0.4"
596
+ }
597
+ },
598
+ "node_modules/escape-html": {
599
+ "version": "1.0.3",
600
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
601
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
602
+ },
603
+ "node_modules/etag": {
604
+ "version": "1.8.1",
605
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
606
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
607
+ "engines": {
608
+ "node": ">= 0.6"
609
+ }
610
+ },
611
+ "node_modules/express": {
612
+ "version": "4.18.3",
613
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz",
614
+ "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==",
615
+ "dependencies": {
616
+ "accepts": "~1.3.8",
617
+ "array-flatten": "1.1.1",
618
+ "body-parser": "1.20.2",
619
+ "content-disposition": "0.5.4",
620
+ "content-type": "~1.0.4",
621
+ "cookie": "0.5.0",
622
+ "cookie-signature": "1.0.6",
623
+ "debug": "2.6.9",
624
+ "depd": "2.0.0",
625
+ "encodeurl": "~1.0.2",
626
+ "escape-html": "~1.0.3",
627
+ "etag": "~1.8.1",
628
+ "finalhandler": "1.2.0",
629
+ "fresh": "0.5.2",
630
+ "http-errors": "2.0.0",
631
+ "merge-descriptors": "1.0.1",
632
+ "methods": "~1.1.2",
633
+ "on-finished": "2.4.1",
634
+ "parseurl": "~1.3.3",
635
+ "path-to-regexp": "0.1.7",
636
+ "proxy-addr": "~2.0.7",
637
+ "qs": "6.11.0",
638
+ "range-parser": "~1.2.1",
639
+ "safe-buffer": "5.2.1",
640
+ "send": "0.18.0",
641
+ "serve-static": "1.15.0",
642
+ "setprototypeof": "1.2.0",
643
+ "statuses": "2.0.1",
644
+ "type-is": "~1.6.18",
645
+ "utils-merge": "1.0.1",
646
+ "vary": "~1.1.2"
647
+ },
648
+ "engines": {
649
+ "node": ">= 0.10.0"
650
+ }
651
+ },
652
+ "node_modules/extend": {
653
+ "version": "3.0.2",
654
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
655
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
656
+ },
657
+ "node_modules/extsprintf": {
658
+ "version": "1.3.0",
659
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
660
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
661
+ "engines": [
662
+ "node >=0.6.0"
663
+ ]
664
+ },
665
+ "node_modules/fast-deep-equal": {
666
+ "version": "3.1.3",
667
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
668
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
669
+ },
670
+ "node_modules/fast-json-stable-stringify": {
671
+ "version": "2.1.0",
672
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
673
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
674
+ },
675
+ "node_modules/finalhandler": {
676
+ "version": "1.2.0",
677
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
678
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
679
+ "dependencies": {
680
+ "debug": "2.6.9",
681
+ "encodeurl": "~1.0.2",
682
+ "escape-html": "~1.0.3",
683
+ "on-finished": "2.4.1",
684
+ "parseurl": "~1.3.3",
685
+ "statuses": "2.0.1",
686
+ "unpipe": "~1.0.0"
687
+ },
688
+ "engines": {
689
+ "node": ">= 0.8"
690
+ }
691
+ },
692
+ "node_modules/follow-redirects": {
693
+ "version": "1.15.6",
694
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
695
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
696
+ "funding": [
697
+ {
698
+ "type": "individual",
699
+ "url": "https://github.com/sponsors/RubenVerborgh"
700
+ }
701
+ ],
702
+ "engines": {
703
+ "node": ">=4.0"
704
+ },
705
+ "peerDependenciesMeta": {
706
+ "debug": {
707
+ "optional": true
708
+ }
709
+ }
710
+ },
711
+ "node_modules/forever-agent": {
712
+ "version": "0.6.1",
713
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
714
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
715
+ "engines": {
716
+ "node": "*"
717
+ }
718
+ },
719
+ "node_modules/form-data": {
720
+ "version": "4.0.0",
721
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
722
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
723
+ "dependencies": {
724
+ "asynckit": "^0.4.0",
725
+ "combined-stream": "^1.0.8",
726
+ "mime-types": "^2.1.12"
727
+ },
728
+ "engines": {
729
+ "node": ">= 6"
730
+ }
731
+ },
732
+ "node_modules/forwarded": {
733
+ "version": "0.2.0",
734
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
735
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
736
+ "engines": {
737
+ "node": ">= 0.6"
738
+ }
739
+ },
740
+ "node_modules/fresh": {
741
+ "version": "0.5.2",
742
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
743
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
744
+ "engines": {
745
+ "node": ">= 0.6"
746
+ }
747
+ },
748
+ "node_modules/function-bind": {
749
+ "version": "1.1.2",
750
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
751
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
752
+ "funding": {
753
+ "url": "https://github.com/sponsors/ljharb"
754
+ }
755
+ },
756
+ "node_modules/get-intrinsic": {
757
+ "version": "1.2.4",
758
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
759
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
760
+ "dependencies": {
761
+ "es-errors": "^1.3.0",
762
+ "function-bind": "^1.1.2",
763
+ "has-proto": "^1.0.1",
764
+ "has-symbols": "^1.0.3",
765
+ "hasown": "^2.0.0"
766
+ },
767
+ "engines": {
768
+ "node": ">= 0.4"
769
+ },
770
+ "funding": {
771
+ "url": "https://github.com/sponsors/ljharb"
772
+ }
773
+ },
774
+ "node_modules/getpass": {
775
+ "version": "0.1.7",
776
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
777
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
778
+ "dependencies": {
779
+ "assert-plus": "^1.0.0"
780
+ }
781
+ },
782
+ "node_modules/gopd": {
783
+ "version": "1.0.1",
784
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
785
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
786
+ "dependencies": {
787
+ "get-intrinsic": "^1.1.3"
788
+ },
789
+ "funding": {
790
+ "url": "https://github.com/sponsors/ljharb"
791
+ }
792
+ },
793
+ "node_modules/har-schema": {
794
+ "version": "2.0.0",
795
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
796
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
797
+ "engines": {
798
+ "node": ">=4"
799
+ }
800
+ },
801
+ "node_modules/har-validator": {
802
+ "version": "5.1.5",
803
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
804
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
805
+ "deprecated": "this library is no longer supported",
806
+ "dependencies": {
807
+ "ajv": "^6.12.3",
808
+ "har-schema": "^2.0.0"
809
+ },
810
+ "engines": {
811
+ "node": ">=6"
812
+ }
813
+ },
814
+ "node_modules/has-property-descriptors": {
815
+ "version": "1.0.2",
816
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
817
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
818
+ "dependencies": {
819
+ "es-define-property": "^1.0.0"
820
+ },
821
+ "funding": {
822
+ "url": "https://github.com/sponsors/ljharb"
823
+ }
824
+ },
825
+ "node_modules/has-proto": {
826
+ "version": "1.0.3",
827
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
828
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
829
+ "engines": {
830
+ "node": ">= 0.4"
831
+ },
832
+ "funding": {
833
+ "url": "https://github.com/sponsors/ljharb"
834
+ }
835
+ },
836
+ "node_modules/has-symbols": {
837
+ "version": "1.0.3",
838
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
839
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
840
+ "engines": {
841
+ "node": ">= 0.4"
842
+ },
843
+ "funding": {
844
+ "url": "https://github.com/sponsors/ljharb"
845
+ }
846
+ },
847
+ "node_modules/hasown": {
848
+ "version": "2.0.2",
849
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
850
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
851
+ "dependencies": {
852
+ "function-bind": "^1.1.2"
853
+ },
854
+ "engines": {
855
+ "node": ">= 0.4"
856
+ }
857
+ },
858
+ "node_modules/http-errors": {
859
+ "version": "2.0.0",
860
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
861
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
862
+ "dependencies": {
863
+ "depd": "2.0.0",
864
+ "inherits": "2.0.4",
865
+ "setprototypeof": "1.2.0",
866
+ "statuses": "2.0.1",
867
+ "toidentifier": "1.0.1"
868
+ },
869
+ "engines": {
870
+ "node": ">= 0.8"
871
+ }
872
+ },
873
+ "node_modules/http-signature": {
874
+ "version": "1.2.0",
875
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
876
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
877
+ "dependencies": {
878
+ "assert-plus": "^1.0.0",
879
+ "jsprim": "^1.2.2",
880
+ "sshpk": "^1.7.0"
881
+ },
882
+ "engines": {
883
+ "node": ">=0.8",
884
+ "npm": ">=1.3.7"
885
+ }
886
+ },
887
+ "node_modules/iconv-lite": {
888
+ "version": "0.4.24",
889
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
890
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
891
+ "dependencies": {
892
+ "safer-buffer": ">= 2.1.2 < 3"
893
+ },
894
+ "engines": {
895
+ "node": ">=0.10.0"
896
+ }
897
+ },
898
+ "node_modules/inherits": {
899
+ "version": "2.0.4",
900
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
901
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
902
+ },
903
+ "node_modules/ipaddr.js": {
904
+ "version": "1.9.1",
905
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
906
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
907
+ "engines": {
908
+ "node": ">= 0.10"
909
+ }
910
+ },
911
+ "node_modules/is-typedarray": {
912
+ "version": "1.0.0",
913
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
914
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
915
+ },
916
+ "node_modules/isstream": {
917
+ "version": "0.1.2",
918
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
919
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
920
+ },
921
+ "node_modules/jsbn": {
922
+ "version": "0.1.1",
923
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
924
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
925
+ },
926
+ "node_modules/json-schema": {
927
+ "version": "0.4.0",
928
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
929
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
930
+ },
931
+ "node_modules/json-schema-traverse": {
932
+ "version": "0.4.1",
933
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
934
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
935
+ },
936
+ "node_modules/json-stringify-safe": {
937
+ "version": "5.0.1",
938
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
939
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
940
+ },
941
+ "node_modules/jsprim": {
942
+ "version": "1.4.2",
943
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
944
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
945
+ "dependencies": {
946
+ "assert-plus": "1.0.0",
947
+ "extsprintf": "1.3.0",
948
+ "json-schema": "0.4.0",
949
+ "verror": "1.10.0"
950
+ },
951
+ "engines": {
952
+ "node": ">=0.6.0"
953
+ }
954
+ },
955
+ "node_modules/make-error": {
956
+ "version": "1.3.6",
957
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
958
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
959
+ "dev": true
960
+ },
961
+ "node_modules/media-typer": {
962
+ "version": "0.3.0",
963
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
964
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
965
+ "engines": {
966
+ "node": ">= 0.6"
967
+ }
968
+ },
969
+ "node_modules/merge-descriptors": {
970
+ "version": "1.0.1",
971
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
972
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
973
+ },
974
+ "node_modules/methods": {
975
+ "version": "1.1.2",
976
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
977
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
978
+ "engines": {
979
+ "node": ">= 0.6"
980
+ }
981
+ },
982
+ "node_modules/mime": {
983
+ "version": "1.6.0",
984
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
985
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
986
+ "bin": {
987
+ "mime": "cli.js"
988
+ },
989
+ "engines": {
990
+ "node": ">=4"
991
+ }
992
+ },
993
+ "node_modules/mime-db": {
994
+ "version": "1.52.0",
995
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
996
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
997
+ "engines": {
998
+ "node": ">= 0.6"
999
+ }
1000
+ },
1001
+ "node_modules/mime-types": {
1002
+ "version": "2.1.35",
1003
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1004
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1005
+ "dependencies": {
1006
+ "mime-db": "1.52.0"
1007
+ },
1008
+ "engines": {
1009
+ "node": ">= 0.6"
1010
+ }
1011
+ },
1012
+ "node_modules/ms": {
1013
+ "version": "2.0.0",
1014
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1015
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1016
+ },
1017
+ "node_modules/negotiator": {
1018
+ "version": "0.6.3",
1019
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1020
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1021
+ "engines": {
1022
+ "node": ">= 0.6"
1023
+ }
1024
+ },
1025
+ "node_modules/oauth-sign": {
1026
+ "version": "0.9.0",
1027
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1028
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
1029
+ "engines": {
1030
+ "node": "*"
1031
+ }
1032
+ },
1033
+ "node_modules/object-assign": {
1034
+ "version": "4.1.1",
1035
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1036
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1037
+ "engines": {
1038
+ "node": ">=0.10.0"
1039
+ }
1040
+ },
1041
+ "node_modules/object-inspect": {
1042
+ "version": "1.13.1",
1043
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
1044
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
1045
+ "funding": {
1046
+ "url": "https://github.com/sponsors/ljharb"
1047
+ }
1048
+ },
1049
+ "node_modules/on-finished": {
1050
+ "version": "2.4.1",
1051
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1052
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1053
+ "dependencies": {
1054
+ "ee-first": "1.1.1"
1055
+ },
1056
+ "engines": {
1057
+ "node": ">= 0.8"
1058
+ }
1059
+ },
1060
+ "node_modules/parseurl": {
1061
+ "version": "1.3.3",
1062
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1063
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1064
+ "engines": {
1065
+ "node": ">= 0.8"
1066
+ }
1067
+ },
1068
+ "node_modules/path-to-regexp": {
1069
+ "version": "0.1.7",
1070
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1071
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
1072
+ },
1073
+ "node_modules/performance-now": {
1074
+ "version": "2.1.0",
1075
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1076
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
1077
+ },
1078
+ "node_modules/prisma": {
1079
+ "version": "5.11.0",
1080
+ "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.11.0.tgz",
1081
+ "integrity": "sha512-KCLiug2cs0Je7kGkQBN9jDWoZ90ogE/kvZTUTgz2h94FEo8pczCkPH7fPNXkD1sGU7Yh65risGGD1HQ5DF3r3g==",
1082
+ "devOptional": true,
1083
+ "hasInstallScript": true,
1084
+ "dependencies": {
1085
+ "@prisma/engines": "5.11.0"
1086
+ },
1087
+ "bin": {
1088
+ "prisma": "build/index.js"
1089
+ },
1090
+ "engines": {
1091
+ "node": ">=16.13"
1092
+ }
1093
+ },
1094
+ "node_modules/proxy-addr": {
1095
+ "version": "2.0.7",
1096
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1097
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1098
+ "dependencies": {
1099
+ "forwarded": "0.2.0",
1100
+ "ipaddr.js": "1.9.1"
1101
+ },
1102
+ "engines": {
1103
+ "node": ">= 0.10"
1104
+ }
1105
+ },
1106
+ "node_modules/proxy-from-env": {
1107
+ "version": "1.1.0",
1108
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
1109
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
1110
+ },
1111
+ "node_modules/psl": {
1112
+ "version": "1.9.0",
1113
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
1114
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
1115
+ },
1116
+ "node_modules/punycode": {
1117
+ "version": "2.3.1",
1118
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
1119
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
1120
+ "engines": {
1121
+ "node": ">=6"
1122
+ }
1123
+ },
1124
+ "node_modules/qs": {
1125
+ "version": "6.11.0",
1126
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
1127
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
1128
+ "dependencies": {
1129
+ "side-channel": "^1.0.4"
1130
+ },
1131
+ "engines": {
1132
+ "node": ">=0.6"
1133
+ },
1134
+ "funding": {
1135
+ "url": "https://github.com/sponsors/ljharb"
1136
+ }
1137
+ },
1138
+ "node_modules/range-parser": {
1139
+ "version": "1.2.1",
1140
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1141
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1142
+ "engines": {
1143
+ "node": ">= 0.6"
1144
+ }
1145
+ },
1146
+ "node_modules/raw-body": {
1147
+ "version": "2.5.2",
1148
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
1149
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
1150
+ "dependencies": {
1151
+ "bytes": "3.1.2",
1152
+ "http-errors": "2.0.0",
1153
+ "iconv-lite": "0.4.24",
1154
+ "unpipe": "1.0.0"
1155
+ },
1156
+ "engines": {
1157
+ "node": ">= 0.8"
1158
+ }
1159
+ },
1160
+ "node_modules/request": {
1161
+ "version": "2.88.2",
1162
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
1163
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1164
+ "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
1165
+ "dependencies": {
1166
+ "aws-sign2": "~0.7.0",
1167
+ "aws4": "^1.8.0",
1168
+ "caseless": "~0.12.0",
1169
+ "combined-stream": "~1.0.6",
1170
+ "extend": "~3.0.2",
1171
+ "forever-agent": "~0.6.1",
1172
+ "form-data": "~2.3.2",
1173
+ "har-validator": "~5.1.3",
1174
+ "http-signature": "~1.2.0",
1175
+ "is-typedarray": "~1.0.0",
1176
+ "isstream": "~0.1.2",
1177
+ "json-stringify-safe": "~5.0.1",
1178
+ "mime-types": "~2.1.19",
1179
+ "oauth-sign": "~0.9.0",
1180
+ "performance-now": "^2.1.0",
1181
+ "qs": "~6.5.2",
1182
+ "safe-buffer": "^5.1.2",
1183
+ "tough-cookie": "~2.5.0",
1184
+ "tunnel-agent": "^0.6.0",
1185
+ "uuid": "^3.3.2"
1186
+ },
1187
+ "engines": {
1188
+ "node": ">= 6"
1189
+ }
1190
+ },
1191
+ "node_modules/request/node_modules/form-data": {
1192
+ "version": "2.3.3",
1193
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
1194
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
1195
+ "dependencies": {
1196
+ "asynckit": "^0.4.0",
1197
+ "combined-stream": "^1.0.6",
1198
+ "mime-types": "^2.1.12"
1199
+ },
1200
+ "engines": {
1201
+ "node": ">= 0.12"
1202
+ }
1203
+ },
1204
+ "node_modules/request/node_modules/qs": {
1205
+ "version": "6.5.3",
1206
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
1207
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
1208
+ "engines": {
1209
+ "node": ">=0.6"
1210
+ }
1211
+ },
1212
+ "node_modules/safe-buffer": {
1213
+ "version": "5.2.1",
1214
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1215
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1216
+ "funding": [
1217
+ {
1218
+ "type": "github",
1219
+ "url": "https://github.com/sponsors/feross"
1220
+ },
1221
+ {
1222
+ "type": "patreon",
1223
+ "url": "https://www.patreon.com/feross"
1224
+ },
1225
+ {
1226
+ "type": "consulting",
1227
+ "url": "https://feross.org/support"
1228
+ }
1229
+ ]
1230
+ },
1231
+ "node_modules/safer-buffer": {
1232
+ "version": "2.1.2",
1233
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1234
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1235
+ },
1236
+ "node_modules/send": {
1237
+ "version": "0.18.0",
1238
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
1239
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1240
+ "dependencies": {
1241
+ "debug": "2.6.9",
1242
+ "depd": "2.0.0",
1243
+ "destroy": "1.2.0",
1244
+ "encodeurl": "~1.0.2",
1245
+ "escape-html": "~1.0.3",
1246
+ "etag": "~1.8.1",
1247
+ "fresh": "0.5.2",
1248
+ "http-errors": "2.0.0",
1249
+ "mime": "1.6.0",
1250
+ "ms": "2.1.3",
1251
+ "on-finished": "2.4.1",
1252
+ "range-parser": "~1.2.1",
1253
+ "statuses": "2.0.1"
1254
+ },
1255
+ "engines": {
1256
+ "node": ">= 0.8.0"
1257
+ }
1258
+ },
1259
+ "node_modules/send/node_modules/ms": {
1260
+ "version": "2.1.3",
1261
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1262
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1263
+ },
1264
+ "node_modules/serve-static": {
1265
+ "version": "1.15.0",
1266
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1267
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1268
+ "dependencies": {
1269
+ "encodeurl": "~1.0.2",
1270
+ "escape-html": "~1.0.3",
1271
+ "parseurl": "~1.3.3",
1272
+ "send": "0.18.0"
1273
+ },
1274
+ "engines": {
1275
+ "node": ">= 0.8.0"
1276
+ }
1277
+ },
1278
+ "node_modules/set-function-length": {
1279
+ "version": "1.2.2",
1280
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
1281
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
1282
+ "dependencies": {
1283
+ "define-data-property": "^1.1.4",
1284
+ "es-errors": "^1.3.0",
1285
+ "function-bind": "^1.1.2",
1286
+ "get-intrinsic": "^1.2.4",
1287
+ "gopd": "^1.0.1",
1288
+ "has-property-descriptors": "^1.0.2"
1289
+ },
1290
+ "engines": {
1291
+ "node": ">= 0.4"
1292
+ }
1293
+ },
1294
+ "node_modules/setprototypeof": {
1295
+ "version": "1.2.0",
1296
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1297
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1298
+ },
1299
+ "node_modules/side-channel": {
1300
+ "version": "1.0.6",
1301
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
1302
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
1303
+ "dependencies": {
1304
+ "call-bind": "^1.0.7",
1305
+ "es-errors": "^1.3.0",
1306
+ "get-intrinsic": "^1.2.4",
1307
+ "object-inspect": "^1.13.1"
1308
+ },
1309
+ "engines": {
1310
+ "node": ">= 0.4"
1311
+ },
1312
+ "funding": {
1313
+ "url": "https://github.com/sponsors/ljharb"
1314
+ }
1315
+ },
1316
+ "node_modules/sshpk": {
1317
+ "version": "1.18.0",
1318
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
1319
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
1320
+ "dependencies": {
1321
+ "asn1": "~0.2.3",
1322
+ "assert-plus": "^1.0.0",
1323
+ "bcrypt-pbkdf": "^1.0.0",
1324
+ "dashdash": "^1.12.0",
1325
+ "ecc-jsbn": "~0.1.1",
1326
+ "getpass": "^0.1.1",
1327
+ "jsbn": "~0.1.0",
1328
+ "safer-buffer": "^2.0.2",
1329
+ "tweetnacl": "~0.14.0"
1330
+ },
1331
+ "bin": {
1332
+ "sshpk-conv": "bin/sshpk-conv",
1333
+ "sshpk-sign": "bin/sshpk-sign",
1334
+ "sshpk-verify": "bin/sshpk-verify"
1335
+ },
1336
+ "engines": {
1337
+ "node": ">=0.10.0"
1338
+ }
1339
+ },
1340
+ "node_modules/statuses": {
1341
+ "version": "2.0.1",
1342
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1343
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
1344
+ "engines": {
1345
+ "node": ">= 0.8"
1346
+ }
1347
+ },
1348
+ "node_modules/toidentifier": {
1349
+ "version": "1.0.1",
1350
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1351
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1352
+ "engines": {
1353
+ "node": ">=0.6"
1354
+ }
1355
+ },
1356
+ "node_modules/tough-cookie": {
1357
+ "version": "2.5.0",
1358
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1359
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1360
+ "dependencies": {
1361
+ "psl": "^1.1.28",
1362
+ "punycode": "^2.1.1"
1363
+ },
1364
+ "engines": {
1365
+ "node": ">=0.8"
1366
+ }
1367
+ },
1368
+ "node_modules/ts-node": {
1369
+ "version": "10.9.2",
1370
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
1371
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
1372
+ "dev": true,
1373
+ "dependencies": {
1374
+ "@cspotcode/source-map-support": "^0.8.0",
1375
+ "@tsconfig/node10": "^1.0.7",
1376
+ "@tsconfig/node12": "^1.0.7",
1377
+ "@tsconfig/node14": "^1.0.0",
1378
+ "@tsconfig/node16": "^1.0.2",
1379
+ "acorn": "^8.4.1",
1380
+ "acorn-walk": "^8.1.1",
1381
+ "arg": "^4.1.0",
1382
+ "create-require": "^1.1.0",
1383
+ "diff": "^4.0.1",
1384
+ "make-error": "^1.1.1",
1385
+ "v8-compile-cache-lib": "^3.0.1",
1386
+ "yn": "3.1.1"
1387
+ },
1388
+ "bin": {
1389
+ "ts-node": "dist/bin.js",
1390
+ "ts-node-cwd": "dist/bin-cwd.js",
1391
+ "ts-node-esm": "dist/bin-esm.js",
1392
+ "ts-node-script": "dist/bin-script.js",
1393
+ "ts-node-transpile-only": "dist/bin-transpile.js",
1394
+ "ts-script": "dist/bin-script-deprecated.js"
1395
+ },
1396
+ "peerDependencies": {
1397
+ "@swc/core": ">=1.2.50",
1398
+ "@swc/wasm": ">=1.2.50",
1399
+ "@types/node": "*",
1400
+ "typescript": ">=2.7"
1401
+ },
1402
+ "peerDependenciesMeta": {
1403
+ "@swc/core": {
1404
+ "optional": true
1405
+ },
1406
+ "@swc/wasm": {
1407
+ "optional": true
1408
+ }
1409
+ }
1410
+ },
1411
+ "node_modules/tunnel-agent": {
1412
+ "version": "0.6.0",
1413
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1414
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
1415
+ "dependencies": {
1416
+ "safe-buffer": "^5.0.1"
1417
+ },
1418
+ "engines": {
1419
+ "node": "*"
1420
+ }
1421
+ },
1422
+ "node_modules/tweetnacl": {
1423
+ "version": "0.14.5",
1424
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1425
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
1426
+ },
1427
+ "node_modules/type-is": {
1428
+ "version": "1.6.18",
1429
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1430
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1431
+ "dependencies": {
1432
+ "media-typer": "0.3.0",
1433
+ "mime-types": "~2.1.24"
1434
+ },
1435
+ "engines": {
1436
+ "node": ">= 0.6"
1437
+ }
1438
+ },
1439
+ "node_modules/typescript": {
1440
+ "version": "5.4.2",
1441
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz",
1442
+ "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==",
1443
+ "dev": true,
1444
+ "bin": {
1445
+ "tsc": "bin/tsc",
1446
+ "tsserver": "bin/tsserver"
1447
+ },
1448
+ "engines": {
1449
+ "node": ">=14.17"
1450
+ }
1451
+ },
1452
+ "node_modules/undici-types": {
1453
+ "version": "5.26.5",
1454
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
1455
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
1456
+ "dev": true
1457
+ },
1458
+ "node_modules/unpipe": {
1459
+ "version": "1.0.0",
1460
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1461
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
1462
+ "engines": {
1463
+ "node": ">= 0.8"
1464
+ }
1465
+ },
1466
+ "node_modules/uri-js": {
1467
+ "version": "4.4.1",
1468
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1469
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1470
+ "dependencies": {
1471
+ "punycode": "^2.1.0"
1472
+ }
1473
+ },
1474
+ "node_modules/utils-merge": {
1475
+ "version": "1.0.1",
1476
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1477
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
1478
+ "engines": {
1479
+ "node": ">= 0.4.0"
1480
+ }
1481
+ },
1482
+ "node_modules/uuid": {
1483
+ "version": "3.4.0",
1484
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1485
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
1486
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
1487
+ "bin": {
1488
+ "uuid": "bin/uuid"
1489
+ }
1490
+ },
1491
+ "node_modules/v8-compile-cache-lib": {
1492
+ "version": "3.0.1",
1493
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
1494
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
1495
+ "dev": true
1496
+ },
1497
+ "node_modules/vary": {
1498
+ "version": "1.1.2",
1499
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1500
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
1501
+ "engines": {
1502
+ "node": ">= 0.8"
1503
+ }
1504
+ },
1505
+ "node_modules/verror": {
1506
+ "version": "1.10.0",
1507
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1508
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
1509
+ "engines": [
1510
+ "node >=0.6.0"
1511
+ ],
1512
+ "dependencies": {
1513
+ "assert-plus": "^1.0.0",
1514
+ "core-util-is": "1.0.2",
1515
+ "extsprintf": "^1.2.0"
1516
+ }
1517
+ },
1518
+ "node_modules/yn": {
1519
+ "version": "3.1.1",
1520
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
1521
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
1522
+ "dev": true,
1523
+ "engines": {
1524
+ "node": ">=6"
1525
+ }
1526
+ }
1527
+ }
1528
+ }
app/package.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "app",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "start": "ts-node index.ts",
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "keywords": [],
11
+ "author": "",
12
+ "license": "ISC",
13
+ "dependencies": {
14
+ "@prisma/client": "^5.11.0",
15
+ "axios": "^1.6.8",
16
+ "cors": "^2.8.5",
17
+ "express": "^4.18.3",
18
+ "form-data": "^4.0.0",
19
+ "request": "^2.88.2"
20
+ },
21
+ "devDependencies": {
22
+ "@types/cors": "^2.8.17",
23
+ "@types/express": "^4.17.21",
24
+ "@types/node": "^20.11.28",
25
+ "prisma": "^5.11.0",
26
+ "ts-node": "^10.9.2",
27
+ "typescript": "^5.4.2"
28
+ }
29
+ }
app/prisma/schema.prisma ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ generator client {
2
+ provider = "prisma-client-js"
3
+ }
4
+
5
+ datasource db {
6
+ provider = "postgresql"
7
+ url = env("POSGRESSDB")
8
+ }
9
+
10
+ /// This model contains row level security and requires additional setup for migrations. Visit https://pris.ly/d/row-level-security for more info.
11
+ model APIList {
12
+ id BigInt @id @default(autoincrement())
13
+ created_at DateTime @default(now()) @db.Timestamptz(6)
14
+ API_KEY String @unique
15
+ USER String
16
+ Storage Storage[]
17
+ }
18
+
19
+ /// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
20
+ /// This model contains row level security and requires additional setup for migrations. Visit https://pris.ly/d/row-level-security for more info.
21
+ model Storage {
22
+ id BigInt @id @default(autoincrement())
23
+ created_at DateTime @default(now()) @db.Timestamptz(6)
24
+ file_name String
25
+ file_cids String[]
26
+ API_KEY String
27
+ APIList APIList @relation(fields: [API_KEY], references: [API_KEY], onDelete: Cascade, map: "public_Storage_API_KEY_fkey")
28
+ }
app/test.png ADDED
app/tsconfig.json ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ /* Visit https://aka.ms/tsconfig to read more about this file */
4
+
5
+ /* Projects */
6
+ // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
7
+ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
8
+ // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
9
+ // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
10
+ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
11
+ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12
+
13
+ /* Language and Environment */
14
+ "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
15
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16
+ // "jsx": "preserve", /* Specify what JSX code is generated. */
17
+ // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
18
+ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
19
+ // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
20
+ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
21
+ // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
22
+ // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
23
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
24
+ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
25
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
26
+
27
+ /* Modules */
28
+ "module": "commonjs", /* Specify what module code is generated. */
29
+ // "rootDir": "./", /* Specify the root folder within your source files. */
30
+ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
31
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
32
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
33
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
34
+ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
35
+ // "types": [], /* Specify type package names to be included without being referenced in a source file. */
36
+ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
37
+ // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
38
+ // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
39
+ // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
40
+ // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
41
+ // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
42
+ // "resolveJsonModule": true, /* Enable importing .json files. */
43
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
44
+ // "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
45
+
46
+ /* JavaScript Support */
47
+ // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
48
+ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
49
+ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
50
+
51
+ /* Emit */
52
+ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
53
+ // "declarationMap": true, /* Create sourcemaps for d.ts files. */
54
+ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
55
+ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
56
+ // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
57
+ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
58
+ // "outDir": "./", /* Specify an output folder for all emitted files. */
59
+ // "removeComments": true, /* Disable emitting comments. */
60
+ // "noEmit": true, /* Disable emitting files from a compilation. */
61
+ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
62
+ // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
63
+ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
64
+ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
65
+ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
66
+ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
67
+ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
68
+ // "newLine": "crlf", /* Set the newline character for emitting files. */
69
+ // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
70
+ // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
71
+ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
72
+ // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
73
+ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
74
+ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
75
+
76
+ /* Interop Constraints */
77
+ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
78
+ // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
79
+ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
80
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
81
+ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
82
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
83
+
84
+ /* Type Checking */
85
+ "strict": true, /* Enable all strict type-checking options. */
86
+ // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
87
+ // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
88
+ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
89
+ // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
90
+ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
91
+ // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
92
+ // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
93
+ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
94
+ // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
95
+ // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
96
+ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
97
+ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
98
+ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
99
+ // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
100
+ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
101
+ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
102
+ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
103
+ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
104
+
105
+ /* Completeness */
106
+ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
107
+ "skipLibCheck": true /* Skip type checking all .d.ts files. */
108
+ }
109
+ }
package-lock.json ADDED
@@ -0,0 +1,1029 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "UFSUploadFile",
3
+ "lockfileVersion": 3,
4
+ "requires": true,
5
+ "packages": {
6
+ "": {
7
+ "dependencies": {
8
+ "request": "^2.88.2"
9
+ },
10
+ "devDependencies": {
11
+ "nodemon": "^3.1.0",
12
+ "ts-node": "^10.9.2"
13
+ }
14
+ },
15
+ "node_modules/@cspotcode/source-map-support": {
16
+ "version": "0.8.1",
17
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
18
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
19
+ "dev": true,
20
+ "dependencies": {
21
+ "@jridgewell/trace-mapping": "0.3.9"
22
+ },
23
+ "engines": {
24
+ "node": ">=12"
25
+ }
26
+ },
27
+ "node_modules/@jridgewell/resolve-uri": {
28
+ "version": "3.1.2",
29
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
30
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
31
+ "dev": true,
32
+ "engines": {
33
+ "node": ">=6.0.0"
34
+ }
35
+ },
36
+ "node_modules/@jridgewell/sourcemap-codec": {
37
+ "version": "1.4.15",
38
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
39
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
40
+ "dev": true
41
+ },
42
+ "node_modules/@jridgewell/trace-mapping": {
43
+ "version": "0.3.9",
44
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
45
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
46
+ "dev": true,
47
+ "dependencies": {
48
+ "@jridgewell/resolve-uri": "^3.0.3",
49
+ "@jridgewell/sourcemap-codec": "^1.4.10"
50
+ }
51
+ },
52
+ "node_modules/@tsconfig/node10": {
53
+ "version": "1.0.9",
54
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
55
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
56
+ "dev": true
57
+ },
58
+ "node_modules/@tsconfig/node12": {
59
+ "version": "1.0.11",
60
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
61
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
62
+ "dev": true
63
+ },
64
+ "node_modules/@tsconfig/node14": {
65
+ "version": "1.0.3",
66
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
67
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
68
+ "dev": true
69
+ },
70
+ "node_modules/@tsconfig/node16": {
71
+ "version": "1.0.4",
72
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
73
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
74
+ "dev": true
75
+ },
76
+ "node_modules/@types/node": {
77
+ "version": "20.11.28",
78
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz",
79
+ "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==",
80
+ "dev": true,
81
+ "peer": true,
82
+ "dependencies": {
83
+ "undici-types": "~5.26.4"
84
+ }
85
+ },
86
+ "node_modules/abbrev": {
87
+ "version": "1.1.1",
88
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
89
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
90
+ "dev": true
91
+ },
92
+ "node_modules/acorn": {
93
+ "version": "8.11.3",
94
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
95
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
96
+ "dev": true,
97
+ "bin": {
98
+ "acorn": "bin/acorn"
99
+ },
100
+ "engines": {
101
+ "node": ">=0.4.0"
102
+ }
103
+ },
104
+ "node_modules/acorn-walk": {
105
+ "version": "8.3.2",
106
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
107
+ "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
108
+ "dev": true,
109
+ "engines": {
110
+ "node": ">=0.4.0"
111
+ }
112
+ },
113
+ "node_modules/ajv": {
114
+ "version": "6.12.6",
115
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
116
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
117
+ "dependencies": {
118
+ "fast-deep-equal": "^3.1.1",
119
+ "fast-json-stable-stringify": "^2.0.0",
120
+ "json-schema-traverse": "^0.4.1",
121
+ "uri-js": "^4.2.2"
122
+ },
123
+ "funding": {
124
+ "type": "github",
125
+ "url": "https://github.com/sponsors/epoberezkin"
126
+ }
127
+ },
128
+ "node_modules/anymatch": {
129
+ "version": "3.1.3",
130
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
131
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
132
+ "dev": true,
133
+ "dependencies": {
134
+ "normalize-path": "^3.0.0",
135
+ "picomatch": "^2.0.4"
136
+ },
137
+ "engines": {
138
+ "node": ">= 8"
139
+ }
140
+ },
141
+ "node_modules/arg": {
142
+ "version": "4.1.3",
143
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
144
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
145
+ "dev": true
146
+ },
147
+ "node_modules/asn1": {
148
+ "version": "0.2.6",
149
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
150
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
151
+ "dependencies": {
152
+ "safer-buffer": "~2.1.0"
153
+ }
154
+ },
155
+ "node_modules/assert-plus": {
156
+ "version": "1.0.0",
157
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
158
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
159
+ "engines": {
160
+ "node": ">=0.8"
161
+ }
162
+ },
163
+ "node_modules/asynckit": {
164
+ "version": "0.4.0",
165
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
166
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
167
+ },
168
+ "node_modules/aws-sign2": {
169
+ "version": "0.7.0",
170
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
171
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
172
+ "engines": {
173
+ "node": "*"
174
+ }
175
+ },
176
+ "node_modules/aws4": {
177
+ "version": "1.12.0",
178
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
179
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
180
+ },
181
+ "node_modules/balanced-match": {
182
+ "version": "1.0.2",
183
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
184
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
185
+ "dev": true
186
+ },
187
+ "node_modules/bcrypt-pbkdf": {
188
+ "version": "1.0.2",
189
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
190
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
191
+ "dependencies": {
192
+ "tweetnacl": "^0.14.3"
193
+ }
194
+ },
195
+ "node_modules/binary-extensions": {
196
+ "version": "2.3.0",
197
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
198
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
199
+ "dev": true,
200
+ "engines": {
201
+ "node": ">=8"
202
+ },
203
+ "funding": {
204
+ "url": "https://github.com/sponsors/sindresorhus"
205
+ }
206
+ },
207
+ "node_modules/brace-expansion": {
208
+ "version": "1.1.11",
209
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
210
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
211
+ "dev": true,
212
+ "dependencies": {
213
+ "balanced-match": "^1.0.0",
214
+ "concat-map": "0.0.1"
215
+ }
216
+ },
217
+ "node_modules/braces": {
218
+ "version": "3.0.2",
219
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
220
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
221
+ "dev": true,
222
+ "dependencies": {
223
+ "fill-range": "^7.0.1"
224
+ },
225
+ "engines": {
226
+ "node": ">=8"
227
+ }
228
+ },
229
+ "node_modules/caseless": {
230
+ "version": "0.12.0",
231
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
232
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
233
+ },
234
+ "node_modules/chokidar": {
235
+ "version": "3.6.0",
236
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
237
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
238
+ "dev": true,
239
+ "dependencies": {
240
+ "anymatch": "~3.1.2",
241
+ "braces": "~3.0.2",
242
+ "glob-parent": "~5.1.2",
243
+ "is-binary-path": "~2.1.0",
244
+ "is-glob": "~4.0.1",
245
+ "normalize-path": "~3.0.0",
246
+ "readdirp": "~3.6.0"
247
+ },
248
+ "engines": {
249
+ "node": ">= 8.10.0"
250
+ },
251
+ "funding": {
252
+ "url": "https://paulmillr.com/funding/"
253
+ },
254
+ "optionalDependencies": {
255
+ "fsevents": "~2.3.2"
256
+ }
257
+ },
258
+ "node_modules/combined-stream": {
259
+ "version": "1.0.8",
260
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
261
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
262
+ "dependencies": {
263
+ "delayed-stream": "~1.0.0"
264
+ },
265
+ "engines": {
266
+ "node": ">= 0.8"
267
+ }
268
+ },
269
+ "node_modules/concat-map": {
270
+ "version": "0.0.1",
271
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
272
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
273
+ "dev": true
274
+ },
275
+ "node_modules/core-util-is": {
276
+ "version": "1.0.2",
277
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
278
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
279
+ },
280
+ "node_modules/create-require": {
281
+ "version": "1.1.1",
282
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
283
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
284
+ "dev": true
285
+ },
286
+ "node_modules/dashdash": {
287
+ "version": "1.14.1",
288
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
289
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
290
+ "dependencies": {
291
+ "assert-plus": "^1.0.0"
292
+ },
293
+ "engines": {
294
+ "node": ">=0.10"
295
+ }
296
+ },
297
+ "node_modules/debug": {
298
+ "version": "4.3.4",
299
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
300
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
301
+ "dev": true,
302
+ "dependencies": {
303
+ "ms": "2.1.2"
304
+ },
305
+ "engines": {
306
+ "node": ">=6.0"
307
+ },
308
+ "peerDependenciesMeta": {
309
+ "supports-color": {
310
+ "optional": true
311
+ }
312
+ }
313
+ },
314
+ "node_modules/delayed-stream": {
315
+ "version": "1.0.0",
316
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
317
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
318
+ "engines": {
319
+ "node": ">=0.4.0"
320
+ }
321
+ },
322
+ "node_modules/diff": {
323
+ "version": "4.0.2",
324
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
325
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
326
+ "dev": true,
327
+ "engines": {
328
+ "node": ">=0.3.1"
329
+ }
330
+ },
331
+ "node_modules/ecc-jsbn": {
332
+ "version": "0.1.2",
333
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
334
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
335
+ "dependencies": {
336
+ "jsbn": "~0.1.0",
337
+ "safer-buffer": "^2.1.0"
338
+ }
339
+ },
340
+ "node_modules/extend": {
341
+ "version": "3.0.2",
342
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
343
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
344
+ },
345
+ "node_modules/extsprintf": {
346
+ "version": "1.3.0",
347
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
348
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
349
+ "engines": [
350
+ "node >=0.6.0"
351
+ ]
352
+ },
353
+ "node_modules/fast-deep-equal": {
354
+ "version": "3.1.3",
355
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
356
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
357
+ },
358
+ "node_modules/fast-json-stable-stringify": {
359
+ "version": "2.1.0",
360
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
361
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
362
+ },
363
+ "node_modules/fill-range": {
364
+ "version": "7.0.1",
365
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
366
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
367
+ "dev": true,
368
+ "dependencies": {
369
+ "to-regex-range": "^5.0.1"
370
+ },
371
+ "engines": {
372
+ "node": ">=8"
373
+ }
374
+ },
375
+ "node_modules/forever-agent": {
376
+ "version": "0.6.1",
377
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
378
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
379
+ "engines": {
380
+ "node": "*"
381
+ }
382
+ },
383
+ "node_modules/form-data": {
384
+ "version": "2.3.3",
385
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
386
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
387
+ "dependencies": {
388
+ "asynckit": "^0.4.0",
389
+ "combined-stream": "^1.0.6",
390
+ "mime-types": "^2.1.12"
391
+ },
392
+ "engines": {
393
+ "node": ">= 0.12"
394
+ }
395
+ },
396
+ "node_modules/fsevents": {
397
+ "version": "2.3.3",
398
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
399
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
400
+ "dev": true,
401
+ "hasInstallScript": true,
402
+ "optional": true,
403
+ "os": [
404
+ "darwin"
405
+ ],
406
+ "engines": {
407
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
408
+ }
409
+ },
410
+ "node_modules/getpass": {
411
+ "version": "0.1.7",
412
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
413
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
414
+ "dependencies": {
415
+ "assert-plus": "^1.0.0"
416
+ }
417
+ },
418
+ "node_modules/glob-parent": {
419
+ "version": "5.1.2",
420
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
421
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
422
+ "dev": true,
423
+ "dependencies": {
424
+ "is-glob": "^4.0.1"
425
+ },
426
+ "engines": {
427
+ "node": ">= 6"
428
+ }
429
+ },
430
+ "node_modules/har-schema": {
431
+ "version": "2.0.0",
432
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
433
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
434
+ "engines": {
435
+ "node": ">=4"
436
+ }
437
+ },
438
+ "node_modules/har-validator": {
439
+ "version": "5.1.5",
440
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
441
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
442
+ "deprecated": "this library is no longer supported",
443
+ "dependencies": {
444
+ "ajv": "^6.12.3",
445
+ "har-schema": "^2.0.0"
446
+ },
447
+ "engines": {
448
+ "node": ">=6"
449
+ }
450
+ },
451
+ "node_modules/has-flag": {
452
+ "version": "3.0.0",
453
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
454
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
455
+ "dev": true,
456
+ "engines": {
457
+ "node": ">=4"
458
+ }
459
+ },
460
+ "node_modules/http-signature": {
461
+ "version": "1.2.0",
462
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
463
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
464
+ "dependencies": {
465
+ "assert-plus": "^1.0.0",
466
+ "jsprim": "^1.2.2",
467
+ "sshpk": "^1.7.0"
468
+ },
469
+ "engines": {
470
+ "node": ">=0.8",
471
+ "npm": ">=1.3.7"
472
+ }
473
+ },
474
+ "node_modules/ignore-by-default": {
475
+ "version": "1.0.1",
476
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
477
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
478
+ "dev": true
479
+ },
480
+ "node_modules/is-binary-path": {
481
+ "version": "2.1.0",
482
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
483
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
484
+ "dev": true,
485
+ "dependencies": {
486
+ "binary-extensions": "^2.0.0"
487
+ },
488
+ "engines": {
489
+ "node": ">=8"
490
+ }
491
+ },
492
+ "node_modules/is-extglob": {
493
+ "version": "2.1.1",
494
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
495
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
496
+ "dev": true,
497
+ "engines": {
498
+ "node": ">=0.10.0"
499
+ }
500
+ },
501
+ "node_modules/is-glob": {
502
+ "version": "4.0.3",
503
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
504
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
505
+ "dev": true,
506
+ "dependencies": {
507
+ "is-extglob": "^2.1.1"
508
+ },
509
+ "engines": {
510
+ "node": ">=0.10.0"
511
+ }
512
+ },
513
+ "node_modules/is-number": {
514
+ "version": "7.0.0",
515
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
516
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
517
+ "dev": true,
518
+ "engines": {
519
+ "node": ">=0.12.0"
520
+ }
521
+ },
522
+ "node_modules/is-typedarray": {
523
+ "version": "1.0.0",
524
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
525
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
526
+ },
527
+ "node_modules/isstream": {
528
+ "version": "0.1.2",
529
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
530
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
531
+ },
532
+ "node_modules/jsbn": {
533
+ "version": "0.1.1",
534
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
535
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
536
+ },
537
+ "node_modules/json-schema": {
538
+ "version": "0.4.0",
539
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
540
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
541
+ },
542
+ "node_modules/json-schema-traverse": {
543
+ "version": "0.4.1",
544
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
545
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
546
+ },
547
+ "node_modules/json-stringify-safe": {
548
+ "version": "5.0.1",
549
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
550
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
551
+ },
552
+ "node_modules/jsprim": {
553
+ "version": "1.4.2",
554
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
555
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
556
+ "dependencies": {
557
+ "assert-plus": "1.0.0",
558
+ "extsprintf": "1.3.0",
559
+ "json-schema": "0.4.0",
560
+ "verror": "1.10.0"
561
+ },
562
+ "engines": {
563
+ "node": ">=0.6.0"
564
+ }
565
+ },
566
+ "node_modules/lru-cache": {
567
+ "version": "6.0.0",
568
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
569
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
570
+ "dev": true,
571
+ "dependencies": {
572
+ "yallist": "^4.0.0"
573
+ },
574
+ "engines": {
575
+ "node": ">=10"
576
+ }
577
+ },
578
+ "node_modules/make-error": {
579
+ "version": "1.3.6",
580
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
581
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
582
+ "dev": true
583
+ },
584
+ "node_modules/mime-db": {
585
+ "version": "1.52.0",
586
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
587
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
588
+ "engines": {
589
+ "node": ">= 0.6"
590
+ }
591
+ },
592
+ "node_modules/mime-types": {
593
+ "version": "2.1.35",
594
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
595
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
596
+ "dependencies": {
597
+ "mime-db": "1.52.0"
598
+ },
599
+ "engines": {
600
+ "node": ">= 0.6"
601
+ }
602
+ },
603
+ "node_modules/minimatch": {
604
+ "version": "3.1.2",
605
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
606
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
607
+ "dev": true,
608
+ "dependencies": {
609
+ "brace-expansion": "^1.1.7"
610
+ },
611
+ "engines": {
612
+ "node": "*"
613
+ }
614
+ },
615
+ "node_modules/ms": {
616
+ "version": "2.1.2",
617
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
618
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
619
+ "dev": true
620
+ },
621
+ "node_modules/nodemon": {
622
+ "version": "3.1.0",
623
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz",
624
+ "integrity": "sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==",
625
+ "dev": true,
626
+ "dependencies": {
627
+ "chokidar": "^3.5.2",
628
+ "debug": "^4",
629
+ "ignore-by-default": "^1.0.1",
630
+ "minimatch": "^3.1.2",
631
+ "pstree.remy": "^1.1.8",
632
+ "semver": "^7.5.3",
633
+ "simple-update-notifier": "^2.0.0",
634
+ "supports-color": "^5.5.0",
635
+ "touch": "^3.1.0",
636
+ "undefsafe": "^2.0.5"
637
+ },
638
+ "bin": {
639
+ "nodemon": "bin/nodemon.js"
640
+ },
641
+ "engines": {
642
+ "node": ">=10"
643
+ },
644
+ "funding": {
645
+ "type": "opencollective",
646
+ "url": "https://opencollective.com/nodemon"
647
+ }
648
+ },
649
+ "node_modules/nopt": {
650
+ "version": "1.0.10",
651
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
652
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
653
+ "dev": true,
654
+ "dependencies": {
655
+ "abbrev": "1"
656
+ },
657
+ "bin": {
658
+ "nopt": "bin/nopt.js"
659
+ },
660
+ "engines": {
661
+ "node": "*"
662
+ }
663
+ },
664
+ "node_modules/normalize-path": {
665
+ "version": "3.0.0",
666
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
667
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
668
+ "dev": true,
669
+ "engines": {
670
+ "node": ">=0.10.0"
671
+ }
672
+ },
673
+ "node_modules/oauth-sign": {
674
+ "version": "0.9.0",
675
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
676
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
677
+ "engines": {
678
+ "node": "*"
679
+ }
680
+ },
681
+ "node_modules/performance-now": {
682
+ "version": "2.1.0",
683
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
684
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
685
+ },
686
+ "node_modules/picomatch": {
687
+ "version": "2.3.1",
688
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
689
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
690
+ "dev": true,
691
+ "engines": {
692
+ "node": ">=8.6"
693
+ },
694
+ "funding": {
695
+ "url": "https://github.com/sponsors/jonschlinkert"
696
+ }
697
+ },
698
+ "node_modules/psl": {
699
+ "version": "1.9.0",
700
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
701
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
702
+ },
703
+ "node_modules/pstree.remy": {
704
+ "version": "1.1.8",
705
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
706
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
707
+ "dev": true
708
+ },
709
+ "node_modules/punycode": {
710
+ "version": "2.3.1",
711
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
712
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
713
+ "engines": {
714
+ "node": ">=6"
715
+ }
716
+ },
717
+ "node_modules/qs": {
718
+ "version": "6.5.3",
719
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
720
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
721
+ "engines": {
722
+ "node": ">=0.6"
723
+ }
724
+ },
725
+ "node_modules/readdirp": {
726
+ "version": "3.6.0",
727
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
728
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
729
+ "dev": true,
730
+ "dependencies": {
731
+ "picomatch": "^2.2.1"
732
+ },
733
+ "engines": {
734
+ "node": ">=8.10.0"
735
+ }
736
+ },
737
+ "node_modules/request": {
738
+ "version": "2.88.2",
739
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
740
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
741
+ "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
742
+ "dependencies": {
743
+ "aws-sign2": "~0.7.0",
744
+ "aws4": "^1.8.0",
745
+ "caseless": "~0.12.0",
746
+ "combined-stream": "~1.0.6",
747
+ "extend": "~3.0.2",
748
+ "forever-agent": "~0.6.1",
749
+ "form-data": "~2.3.2",
750
+ "har-validator": "~5.1.3",
751
+ "http-signature": "~1.2.0",
752
+ "is-typedarray": "~1.0.0",
753
+ "isstream": "~0.1.2",
754
+ "json-stringify-safe": "~5.0.1",
755
+ "mime-types": "~2.1.19",
756
+ "oauth-sign": "~0.9.0",
757
+ "performance-now": "^2.1.0",
758
+ "qs": "~6.5.2",
759
+ "safe-buffer": "^5.1.2",
760
+ "tough-cookie": "~2.5.0",
761
+ "tunnel-agent": "^0.6.0",
762
+ "uuid": "^3.3.2"
763
+ },
764
+ "engines": {
765
+ "node": ">= 6"
766
+ }
767
+ },
768
+ "node_modules/safe-buffer": {
769
+ "version": "5.2.1",
770
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
771
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
772
+ "funding": [
773
+ {
774
+ "type": "github",
775
+ "url": "https://github.com/sponsors/feross"
776
+ },
777
+ {
778
+ "type": "patreon",
779
+ "url": "https://www.patreon.com/feross"
780
+ },
781
+ {
782
+ "type": "consulting",
783
+ "url": "https://feross.org/support"
784
+ }
785
+ ]
786
+ },
787
+ "node_modules/safer-buffer": {
788
+ "version": "2.1.2",
789
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
790
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
791
+ },
792
+ "node_modules/semver": {
793
+ "version": "7.6.0",
794
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
795
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
796
+ "dev": true,
797
+ "dependencies": {
798
+ "lru-cache": "^6.0.0"
799
+ },
800
+ "bin": {
801
+ "semver": "bin/semver.js"
802
+ },
803
+ "engines": {
804
+ "node": ">=10"
805
+ }
806
+ },
807
+ "node_modules/simple-update-notifier": {
808
+ "version": "2.0.0",
809
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
810
+ "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
811
+ "dev": true,
812
+ "dependencies": {
813
+ "semver": "^7.5.3"
814
+ },
815
+ "engines": {
816
+ "node": ">=10"
817
+ }
818
+ },
819
+ "node_modules/sshpk": {
820
+ "version": "1.18.0",
821
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
822
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
823
+ "dependencies": {
824
+ "asn1": "~0.2.3",
825
+ "assert-plus": "^1.0.0",
826
+ "bcrypt-pbkdf": "^1.0.0",
827
+ "dashdash": "^1.12.0",
828
+ "ecc-jsbn": "~0.1.1",
829
+ "getpass": "^0.1.1",
830
+ "jsbn": "~0.1.0",
831
+ "safer-buffer": "^2.0.2",
832
+ "tweetnacl": "~0.14.0"
833
+ },
834
+ "bin": {
835
+ "sshpk-conv": "bin/sshpk-conv",
836
+ "sshpk-sign": "bin/sshpk-sign",
837
+ "sshpk-verify": "bin/sshpk-verify"
838
+ },
839
+ "engines": {
840
+ "node": ">=0.10.0"
841
+ }
842
+ },
843
+ "node_modules/supports-color": {
844
+ "version": "5.5.0",
845
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
846
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
847
+ "dev": true,
848
+ "dependencies": {
849
+ "has-flag": "^3.0.0"
850
+ },
851
+ "engines": {
852
+ "node": ">=4"
853
+ }
854
+ },
855
+ "node_modules/to-regex-range": {
856
+ "version": "5.0.1",
857
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
858
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
859
+ "dev": true,
860
+ "dependencies": {
861
+ "is-number": "^7.0.0"
862
+ },
863
+ "engines": {
864
+ "node": ">=8.0"
865
+ }
866
+ },
867
+ "node_modules/touch": {
868
+ "version": "3.1.0",
869
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
870
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
871
+ "dev": true,
872
+ "dependencies": {
873
+ "nopt": "~1.0.10"
874
+ },
875
+ "bin": {
876
+ "nodetouch": "bin/nodetouch.js"
877
+ }
878
+ },
879
+ "node_modules/tough-cookie": {
880
+ "version": "2.5.0",
881
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
882
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
883
+ "dependencies": {
884
+ "psl": "^1.1.28",
885
+ "punycode": "^2.1.1"
886
+ },
887
+ "engines": {
888
+ "node": ">=0.8"
889
+ }
890
+ },
891
+ "node_modules/ts-node": {
892
+ "version": "10.9.2",
893
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
894
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
895
+ "dev": true,
896
+ "dependencies": {
897
+ "@cspotcode/source-map-support": "^0.8.0",
898
+ "@tsconfig/node10": "^1.0.7",
899
+ "@tsconfig/node12": "^1.0.7",
900
+ "@tsconfig/node14": "^1.0.0",
901
+ "@tsconfig/node16": "^1.0.2",
902
+ "acorn": "^8.4.1",
903
+ "acorn-walk": "^8.1.1",
904
+ "arg": "^4.1.0",
905
+ "create-require": "^1.1.0",
906
+ "diff": "^4.0.1",
907
+ "make-error": "^1.1.1",
908
+ "v8-compile-cache-lib": "^3.0.1",
909
+ "yn": "3.1.1"
910
+ },
911
+ "bin": {
912
+ "ts-node": "dist/bin.js",
913
+ "ts-node-cwd": "dist/bin-cwd.js",
914
+ "ts-node-esm": "dist/bin-esm.js",
915
+ "ts-node-script": "dist/bin-script.js",
916
+ "ts-node-transpile-only": "dist/bin-transpile.js",
917
+ "ts-script": "dist/bin-script-deprecated.js"
918
+ },
919
+ "peerDependencies": {
920
+ "@swc/core": ">=1.2.50",
921
+ "@swc/wasm": ">=1.2.50",
922
+ "@types/node": "*",
923
+ "typescript": ">=2.7"
924
+ },
925
+ "peerDependenciesMeta": {
926
+ "@swc/core": {
927
+ "optional": true
928
+ },
929
+ "@swc/wasm": {
930
+ "optional": true
931
+ }
932
+ }
933
+ },
934
+ "node_modules/tunnel-agent": {
935
+ "version": "0.6.0",
936
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
937
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
938
+ "dependencies": {
939
+ "safe-buffer": "^5.0.1"
940
+ },
941
+ "engines": {
942
+ "node": "*"
943
+ }
944
+ },
945
+ "node_modules/tweetnacl": {
946
+ "version": "0.14.5",
947
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
948
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
949
+ },
950
+ "node_modules/typescript": {
951
+ "version": "5.4.2",
952
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz",
953
+ "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==",
954
+ "dev": true,
955
+ "peer": true,
956
+ "bin": {
957
+ "tsc": "bin/tsc",
958
+ "tsserver": "bin/tsserver"
959
+ },
960
+ "engines": {
961
+ "node": ">=14.17"
962
+ }
963
+ },
964
+ "node_modules/undefsafe": {
965
+ "version": "2.0.5",
966
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
967
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
968
+ "dev": true
969
+ },
970
+ "node_modules/undici-types": {
971
+ "version": "5.26.5",
972
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
973
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
974
+ "dev": true,
975
+ "peer": true
976
+ },
977
+ "node_modules/uri-js": {
978
+ "version": "4.4.1",
979
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
980
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
981
+ "dependencies": {
982
+ "punycode": "^2.1.0"
983
+ }
984
+ },
985
+ "node_modules/uuid": {
986
+ "version": "3.4.0",
987
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
988
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
989
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
990
+ "bin": {
991
+ "uuid": "bin/uuid"
992
+ }
993
+ },
994
+ "node_modules/v8-compile-cache-lib": {
995
+ "version": "3.0.1",
996
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
997
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
998
+ "dev": true
999
+ },
1000
+ "node_modules/verror": {
1001
+ "version": "1.10.0",
1002
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
1003
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
1004
+ "engines": [
1005
+ "node >=0.6.0"
1006
+ ],
1007
+ "dependencies": {
1008
+ "assert-plus": "^1.0.0",
1009
+ "core-util-is": "1.0.2",
1010
+ "extsprintf": "^1.2.0"
1011
+ }
1012
+ },
1013
+ "node_modules/yallist": {
1014
+ "version": "4.0.0",
1015
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1016
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1017
+ "dev": true
1018
+ },
1019
+ "node_modules/yn": {
1020
+ "version": "3.1.1",
1021
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
1022
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
1023
+ "dev": true,
1024
+ "engines": {
1025
+ "node": ">=6"
1026
+ }
1027
+ }
1028
+ }
1029
+ }
package.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "devDependencies": {
3
+ "nodemon": "^3.1.0",
4
+ "ts-node": "^10.9.2"
5
+ },
6
+ "dependencies": {
7
+ "request": "^2.88.2"
8
+ }
9
+ }