Spaces:
Runtime error
Runtime error
Upload 56 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .dockerignore +1 -0
- Dockerfile +44 -0
- FreedomGPT/.dockerignore +1 -0
- FreedomGPT/.gitattributes +34 -0
- FreedomGPT/README.md +10 -0
- FreedomGPT/dockerfile +44 -0
- FreedomGPT/index.html +13 -0
- FreedomGPT/logo.png +0 -0
- FreedomGPT/package.json +32 -0
- FreedomGPT/public/vite.svg +1 -0
- FreedomGPT/server.js +93 -0
- FreedomGPT/src/App.tsx +15 -0
- FreedomGPT/src/Roboto-Regular.ttf +0 -0
- FreedomGPT/src/app/components/Icons.tsx +104 -0
- FreedomGPT/src/app/components/InitialLoader.tsx +156 -0
- FreedomGPT/src/app/components/Input.tsx +210 -0
- FreedomGPT/src/app/components/Message.tsx +111 -0
- FreedomGPT/src/app/components/Messages.tsx +45 -0
- FreedomGPT/src/app/constants/constants.ts +3 -0
- FreedomGPT/src/app/context/MessageFetch.tsx +73 -0
- FreedomGPT/src/app/screens/Main.tsx +180 -0
- FreedomGPT/src/app/types/types.ts +7 -0
- FreedomGPT/src/assets/react.svg +1 -0
- FreedomGPT/src/index.css +95 -0
- FreedomGPT/src/main.tsx +10 -0
- FreedomGPT/src/vite-env.d.ts +1 -0
- FreedomGPT/tsconfig.json +21 -0
- FreedomGPT/tsconfig.node.json +9 -0
- FreedomGPT/vite.config.ts +22 -0
- FreedomGPT/yarn.lock +1441 -0
- README.md +3 -3
- index.html +13 -0
- logo.png +0 -0
- package.json +32 -0
- public/vite.svg +1 -0
- server.js +93 -0
- src/App.tsx +15 -0
- src/Roboto-Regular.ttf +0 -0
- src/app/components/Icons.tsx +104 -0
- src/app/components/InitialLoader.tsx +156 -0
- src/app/components/Input.tsx +210 -0
- src/app/components/Message.tsx +111 -0
- src/app/components/Messages.tsx +45 -0
- src/app/constants/constants.ts +3 -0
- src/app/context/MessageFetch.tsx +73 -0
- src/app/screens/Main.tsx +180 -0
- src/app/types/types.ts +7 -0
- src/assets/react.svg +1 -0
- src/index.css +95 -0
- src/main.tsx +10 -0
.dockerignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
node_modules
|
Dockerfile
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Use an official Ubuntu as a parent image
|
| 2 |
+
FROM ubuntu:latest
|
| 3 |
+
|
| 4 |
+
# Set the working directory to /app
|
| 5 |
+
WORKDIR /app
|
| 6 |
+
|
| 7 |
+
# Update the package list and install necessary packages
|
| 8 |
+
RUN apt-get update && \
|
| 9 |
+
apt-get install -y git wget curl build-essential && \
|
| 10 |
+
rm -rf /var/lib/apt/lists/*
|
| 11 |
+
|
| 12 |
+
# clone one git repo
|
| 13 |
+
RUN git clone "https://github.com/antimatter15/alpaca.cpp.git"
|
| 14 |
+
|
| 15 |
+
# cd into alpaca.cpp folder and run make command
|
| 16 |
+
RUN cd alpaca.cpp && make && cd ..
|
| 17 |
+
|
| 18 |
+
RUN wget "https://huggingface.co/sosaka/alpaca-native-4bit-ggml/resolve/main/ggml-alpaca-7b-q4.bin"
|
| 19 |
+
|
| 20 |
+
# copy the chat file to /app
|
| 21 |
+
RUN cp alpaca.cpp/chat .
|
| 22 |
+
|
| 23 |
+
# remove the alpaca.cpp folder
|
| 24 |
+
RUN rm -rf alpaca.cpp
|
| 25 |
+
|
| 26 |
+
# Copy the package.json and package-lock.json files to the container
|
| 27 |
+
COPY package*.json ./
|
| 28 |
+
|
| 29 |
+
# Install the dependencies and Node.js
|
| 30 |
+
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
|
| 31 |
+
RUN apt-get install -y nodejs
|
| 32 |
+
RUN npm install -g npm@9.5.0 && npm install && rm -rf /var/lib/apt/lists/*
|
| 33 |
+
|
| 34 |
+
# Copy the rest of the application files to the container
|
| 35 |
+
COPY . .
|
| 36 |
+
|
| 37 |
+
# Build the Vite app
|
| 38 |
+
RUN npm run build
|
| 39 |
+
|
| 40 |
+
# Expose port 8889 for the Express app
|
| 41 |
+
EXPOSE 7860
|
| 42 |
+
|
| 43 |
+
# Start the Express app
|
| 44 |
+
CMD ["npm", "start"]
|
FreedomGPT/.dockerignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
node_modules
|
FreedomGPT/.gitattributes
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
FreedomGPT/README.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: FreedomGPT
|
| 3 |
+
emoji: 🐨
|
| 4 |
+
colorFrom: green
|
| 5 |
+
colorTo: yellow
|
| 6 |
+
sdk: docker
|
| 7 |
+
pinned: false
|
| 8 |
+
---
|
| 9 |
+
|
| 10 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
FreedomGPT/dockerfile
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Use an official Ubuntu as a parent image
|
| 2 |
+
FROM ubuntu:latest
|
| 3 |
+
|
| 4 |
+
# Set the working directory to /app
|
| 5 |
+
WORKDIR /app
|
| 6 |
+
|
| 7 |
+
# Update the package list and install necessary packages
|
| 8 |
+
RUN apt-get update && \
|
| 9 |
+
apt-get install -y git wget curl build-essential && \
|
| 10 |
+
rm -rf /var/lib/apt/lists/*
|
| 11 |
+
|
| 12 |
+
# clone one git repo
|
| 13 |
+
RUN git clone "https://github.com/antimatter15/alpaca.cpp.git"
|
| 14 |
+
|
| 15 |
+
# cd into alpaca.cpp folder and run make command
|
| 16 |
+
RUN cd alpaca.cpp && make && cd ..
|
| 17 |
+
|
| 18 |
+
RUN wget "https://huggingface.co/sosaka/alpaca-native-4bit-ggml/resolve/main/ggml-alpaca-7b-q4.bin"
|
| 19 |
+
|
| 20 |
+
# copy the chat file to /app
|
| 21 |
+
RUN cp alpaca.cpp/chat .
|
| 22 |
+
|
| 23 |
+
# remove the alpaca.cpp folder
|
| 24 |
+
RUN rm -rf alpaca.cpp
|
| 25 |
+
|
| 26 |
+
# Copy the package.json and package-lock.json files to the container
|
| 27 |
+
COPY package*.json ./
|
| 28 |
+
|
| 29 |
+
# Install the dependencies and Node.js
|
| 30 |
+
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
|
| 31 |
+
RUN apt-get install -y nodejs
|
| 32 |
+
RUN npm install -g npm@9.5.0 && npm install && rm -rf /var/lib/apt/lists/*
|
| 33 |
+
|
| 34 |
+
# Copy the rest of the application files to the container
|
| 35 |
+
COPY . .
|
| 36 |
+
|
| 37 |
+
# Build the Vite app
|
| 38 |
+
RUN npm run build
|
| 39 |
+
|
| 40 |
+
# Expose port 8889 for the Express app
|
| 41 |
+
EXPOSE 7860
|
| 42 |
+
|
| 43 |
+
# Start the Express app
|
| 44 |
+
CMD ["npm", "start"]
|
FreedomGPT/index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8" />
|
| 5 |
+
<link rel="icon" type="image/svg+xml" href="logo.png" />
|
| 6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
+
<title>FreedomGPT</title>
|
| 8 |
+
</head>
|
| 9 |
+
<body>
|
| 10 |
+
<div id="root"></div>
|
| 11 |
+
<script type="module" src="/src/main.tsx"></script>
|
| 12 |
+
</body>
|
| 13 |
+
</html>
|
FreedomGPT/logo.png
ADDED
|
FreedomGPT/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "client",
|
| 3 |
+
"private": true,
|
| 4 |
+
"version": "0.0.0",
|
| 5 |
+
"type": "module",
|
| 6 |
+
"scripts": {
|
| 7 |
+
"dev": "vite",
|
| 8 |
+
"build": "tsc && vite build",
|
| 9 |
+
"preview": "vite preview",
|
| 10 |
+
"start": "node server.js"
|
| 11 |
+
},
|
| 12 |
+
"dependencies": {
|
| 13 |
+
"concurrently": "^8.0.1",
|
| 14 |
+
"cors": "^2.8.5",
|
| 15 |
+
"express": "^4.18.2",
|
| 16 |
+
"global": "^4.4.0",
|
| 17 |
+
"http": "^0.0.1-security",
|
| 18 |
+
"react": "^18.2.0",
|
| 19 |
+
"react-dom": "^18.2.0",
|
| 20 |
+
"socket.io": "^4.6.1",
|
| 21 |
+
"socket.io-client": "^4.6.1",
|
| 22 |
+
"uuid": "^9.0.0"
|
| 23 |
+
},
|
| 24 |
+
"devDependencies": {
|
| 25 |
+
"@types/react": "^18.0.28",
|
| 26 |
+
"@types/react-dom": "^18.0.11",
|
| 27 |
+
"@types/uuid": "^9.0.1",
|
| 28 |
+
"@vitejs/plugin-react": "^3.1.0",
|
| 29 |
+
"typescript": "^4.9.3",
|
| 30 |
+
"vite": "^4.2.0"
|
| 31 |
+
}
|
| 32 |
+
}
|
FreedomGPT/public/vite.svg
ADDED
|
|
FreedomGPT/server.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { spawn } from "child_process";
|
| 2 |
+
import express from "express";
|
| 3 |
+
import http from "http";
|
| 4 |
+
import path from "path";
|
| 5 |
+
import { Server } from "socket.io";
|
| 6 |
+
|
| 7 |
+
const expressapp = express();
|
| 8 |
+
const server = http.createServer(expressapp);
|
| 9 |
+
const io = new Server(server, {
|
| 10 |
+
cors: {
|
| 11 |
+
origin: "*",
|
| 12 |
+
methods: ["GET", "POST"],
|
| 13 |
+
},
|
| 14 |
+
});
|
| 15 |
+
|
| 16 |
+
const EXPRESSPORT = 7860;
|
| 17 |
+
|
| 18 |
+
let numClients = 0;
|
| 19 |
+
|
| 20 |
+
expressapp.use(
|
| 21 |
+
"/assets",
|
| 22 |
+
express.static(path.join(process.cwd(), "dist/assets"))
|
| 23 |
+
);
|
| 24 |
+
|
| 25 |
+
expressapp.get("*", (req, res) => {
|
| 26 |
+
res.sendFile(path.join(process.cwd(), "dist/index.html"));
|
| 27 |
+
});
|
| 28 |
+
|
| 29 |
+
io.on("connection", (socket) => {
|
| 30 |
+
if (numClients === 1) {
|
| 31 |
+
console.log("Only one client allowed");
|
| 32 |
+
socket.disconnect();
|
| 33 |
+
return;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
numClients++;
|
| 37 |
+
|
| 38 |
+
console.log("Client Connected");
|
| 39 |
+
const CHAT_APP_LOCATION = path.join(process.cwd(), "/chat");
|
| 40 |
+
const FILEPATH = path.join(process.cwd(), "/ggml-alpaca-7b-q4.bin");
|
| 41 |
+
|
| 42 |
+
let program = spawn(CHAT_APP_LOCATION, ["-m", FILEPATH]);
|
| 43 |
+
|
| 44 |
+
socket.on("chatstart", () => {
|
| 45 |
+
program = spawn(CHAT_APP_LOCATION, ["-m", FILEPATH]);
|
| 46 |
+
});
|
| 47 |
+
|
| 48 |
+
program.on("error", (err) => {
|
| 49 |
+
console.error(err);
|
| 50 |
+
});
|
| 51 |
+
|
| 52 |
+
socket.on("stopResponding", () => {
|
| 53 |
+
program.kill();
|
| 54 |
+
program = null;
|
| 55 |
+
socket.emit("chatend");
|
| 56 |
+
});
|
| 57 |
+
|
| 58 |
+
socket.on("message", (message) => {
|
| 59 |
+
program.stdin.write(message + "\n");
|
| 60 |
+
|
| 61 |
+
let closing = "";
|
| 62 |
+
program.stdout.on("data", (data) => {
|
| 63 |
+
let output = data.toString("utf8");
|
| 64 |
+
|
| 65 |
+
if (output.includes(">")) {
|
| 66 |
+
closing = closing.concat(">");
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
output = output.replace(">", "");
|
| 70 |
+
|
| 71 |
+
const response = { result: "success", output: output };
|
| 72 |
+
socket.emit("response", response);
|
| 73 |
+
|
| 74 |
+
if (closing.includes(">>")) {
|
| 75 |
+
program.kill();
|
| 76 |
+
program = null;
|
| 77 |
+
socket.emit("chatend");
|
| 78 |
+
}
|
| 79 |
+
});
|
| 80 |
+
});
|
| 81 |
+
|
| 82 |
+
socket.on("disconnect", () => {
|
| 83 |
+
numClients--;
|
| 84 |
+
program.kill();
|
| 85 |
+
program = null;
|
| 86 |
+
});
|
| 87 |
+
});
|
| 88 |
+
|
| 89 |
+
server.listen(EXPRESSPORT, () => {
|
| 90 |
+
console.log(`Server listening on port ${EXPRESSPORT}`);
|
| 91 |
+
});
|
| 92 |
+
|
| 93 |
+
export default expressapp;
|
FreedomGPT/src/App.tsx
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React from "react";
|
| 2 |
+
import Main from "./app/screens/Main";
|
| 3 |
+
import MessageFetchProvider from "./app/context/MessageFetch";
|
| 4 |
+
|
| 5 |
+
const App = () => {
|
| 6 |
+
return (
|
| 7 |
+
<>
|
| 8 |
+
<MessageFetchProvider>
|
| 9 |
+
<Main />
|
| 10 |
+
</MessageFetchProvider>
|
| 11 |
+
</>
|
| 12 |
+
);
|
| 13 |
+
};
|
| 14 |
+
|
| 15 |
+
export default App;
|
FreedomGPT/src/Roboto-Regular.ttf
ADDED
|
Binary file (168 kB). View file
|
|
|
FreedomGPT/src/app/components/Icons.tsx
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export const thunder = (
|
| 2 |
+
<svg
|
| 3 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 4 |
+
fill="none"
|
| 5 |
+
viewBox="0 0 24 24"
|
| 6 |
+
strokeWidth="1.5"
|
| 7 |
+
stroke="currentColor"
|
| 8 |
+
aria-hidden="true"
|
| 9 |
+
className="h-6 w-6"
|
| 10 |
+
height="1.5em"
|
| 11 |
+
width="1.5em"
|
| 12 |
+
>
|
| 13 |
+
<path
|
| 14 |
+
strokeLinecap="round"
|
| 15 |
+
strokeLinejoin="round"
|
| 16 |
+
d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z"
|
| 17 |
+
></path>
|
| 18 |
+
</svg>
|
| 19 |
+
);
|
| 20 |
+
|
| 21 |
+
export const sun = (
|
| 22 |
+
<svg
|
| 23 |
+
stroke="currentColor"
|
| 24 |
+
fill="none"
|
| 25 |
+
strokeWidth="1.5"
|
| 26 |
+
viewBox="0 0 24 24"
|
| 27 |
+
strokeLinecap="round"
|
| 28 |
+
strokeLinejoin="round"
|
| 29 |
+
className="h-6 w-6"
|
| 30 |
+
height="1.5em"
|
| 31 |
+
width="1.5em"
|
| 32 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 33 |
+
>
|
| 34 |
+
<circle cx="12" cy="12" r="5"></circle>
|
| 35 |
+
<line x1="12" y1="1" x2="12" y2="3"></line>
|
| 36 |
+
<line x1="12" y1="21" x2="12" y2="23"></line>
|
| 37 |
+
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
| 38 |
+
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
| 39 |
+
<line x1="1" y1="12" x2="3" y2="12"></line>
|
| 40 |
+
<line x1="21" y1="12" x2="23" y2="12"></line>
|
| 41 |
+
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
| 42 |
+
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
| 43 |
+
</svg>
|
| 44 |
+
);
|
| 45 |
+
|
| 46 |
+
export const alert = (
|
| 47 |
+
<svg
|
| 48 |
+
stroke="currentColor"
|
| 49 |
+
fill="none"
|
| 50 |
+
strokeWidth="1.5"
|
| 51 |
+
viewBox="0 0 24 24"
|
| 52 |
+
strokeLinecap="round"
|
| 53 |
+
strokeLinejoin="round"
|
| 54 |
+
className="h-6 w-6"
|
| 55 |
+
height="1.5em"
|
| 56 |
+
width="1.5em"
|
| 57 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 58 |
+
>
|
| 59 |
+
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
|
| 60 |
+
<line x1="12" y1="9" x2="12" y2="13"></line>
|
| 61 |
+
<line x1="12" y1="17" x2="12.01" y2="17"></line>
|
| 62 |
+
</svg>
|
| 63 |
+
);
|
| 64 |
+
|
| 65 |
+
export const send = (
|
| 66 |
+
<svg
|
| 67 |
+
stroke="currentColor"
|
| 68 |
+
fill="none"
|
| 69 |
+
strokeWidth="2"
|
| 70 |
+
viewBox="0 0 30 30"
|
| 71 |
+
strokeLinecap="round"
|
| 72 |
+
strokeLinejoin="round"
|
| 73 |
+
className="h-4 w-4 mr-1"
|
| 74 |
+
height="4em"
|
| 75 |
+
width="4em"
|
| 76 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 77 |
+
>
|
| 78 |
+
<line x1="22" y1="2" x2="11" y2="13"></line>
|
| 79 |
+
<polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
|
| 80 |
+
</svg>
|
| 81 |
+
);
|
| 82 |
+
|
| 83 |
+
export const boticon = (
|
| 84 |
+
<svg
|
| 85 |
+
viewBox="0 0 100 200"
|
| 86 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 87 |
+
stroke="currentColor"
|
| 88 |
+
fill="none"
|
| 89 |
+
strokeWidth="2"
|
| 90 |
+
strokeLinecap="round"
|
| 91 |
+
strokeLinejoin="round"
|
| 92 |
+
className="h-4 w-4 mr-1"
|
| 93 |
+
height="4em"
|
| 94 |
+
width="4em"
|
| 95 |
+
>
|
| 96 |
+
<path
|
| 97 |
+
fill="#77B5FE"
|
| 98 |
+
d="M50,0 L100,50 L60,70 L60,110 L100,120 L100,200 L0,200 L0,120 L40,110 L40,70 L0,50 L50,0z"
|
| 99 |
+
/>
|
| 100 |
+
<path fill="#3F3D56" d="M60,70 L40,70 L40,90 L60,90z" />
|
| 101 |
+
<path fill="#C4C4C4" d="M47,40 L53,40 L53,70 L47,70z" />
|
| 102 |
+
<circle cx="50" cy="25" r="15" fill="#C4C4C4" />
|
| 103 |
+
</svg>
|
| 104 |
+
);
|
FreedomGPT/src/app/components/InitialLoader.tsx
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { APPNAME } from "../constants/constants";
|
| 2 |
+
import { alert, sun, thunder } from "./Icons";
|
| 3 |
+
|
| 4 |
+
const initialMessages = [
|
| 5 |
+
{
|
| 6 |
+
id: 1,
|
| 7 |
+
type: "Examples",
|
| 8 |
+
icon: sun,
|
| 9 |
+
messages: [
|
| 10 |
+
"What are the negatives and the positives of climate change?",
|
| 11 |
+
"Why would you want to delay vaccinations for children?",
|
| 12 |
+
"How do I overthrow an authoritarian government?",
|
| 13 |
+
],
|
| 14 |
+
},
|
| 15 |
+
{
|
| 16 |
+
id: 2,
|
| 17 |
+
type: "Capabilities",
|
| 18 |
+
icon: thunder,
|
| 19 |
+
messages: [
|
| 20 |
+
"A faithful reflection of humanity, flaws and all, based on our public digital footprints, not programmed to further any intellectual agenda.",
|
| 21 |
+
],
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
id: 3,
|
| 25 |
+
type: "Limitations",
|
| 26 |
+
icon: alert,
|
| 27 |
+
messages: [
|
| 28 |
+
"Often generates shitty answers",
|
| 29 |
+
"Chat capabilities are limited, keep your questions self-contained in terms of context.",
|
| 30 |
+
],
|
| 31 |
+
},
|
| 32 |
+
];
|
| 33 |
+
|
| 34 |
+
const InitialLoader = ({
|
| 35 |
+
setInput,
|
| 36 |
+
inputRef,
|
| 37 |
+
}: {
|
| 38 |
+
setInput: (value: string) => void;
|
| 39 |
+
inputRef: React.RefObject<HTMLDivElement>;
|
| 40 |
+
}) => {
|
| 41 |
+
return (
|
| 42 |
+
<div
|
| 43 |
+
className="initial_loader"
|
| 44 |
+
style={{
|
| 45 |
+
display: "flex",
|
| 46 |
+
flexDirection: "column",
|
| 47 |
+
alignItems: "center",
|
| 48 |
+
width: "100%",
|
| 49 |
+
overflow: "auto",
|
| 50 |
+
}}
|
| 51 |
+
>
|
| 52 |
+
<h1 style={{ marginTop: "10vw", marginBottom: "5vh" }}>{APPNAME}</h1>
|
| 53 |
+
<div
|
| 54 |
+
className="loader_columns"
|
| 55 |
+
style={{
|
| 56 |
+
display: "flex",
|
| 57 |
+
flexDirection: "row",
|
| 58 |
+
gap: "58px",
|
| 59 |
+
}}
|
| 60 |
+
>
|
| 61 |
+
{initialMessages.map(({ id, type, icon, messages }) => {
|
| 62 |
+
if (type == "Examples") {
|
| 63 |
+
return (
|
| 64 |
+
<div
|
| 65 |
+
key={id}
|
| 66 |
+
style={{
|
| 67 |
+
width: "90%",
|
| 68 |
+
height: "90%",
|
| 69 |
+
alignItems: "center",
|
| 70 |
+
justifyContent: "center",
|
| 71 |
+
textAlign: "center",
|
| 72 |
+
}}
|
| 73 |
+
>
|
| 74 |
+
{icon}
|
| 75 |
+
<p style={{ fontSize: "18px", marginTop: "5px" }}>{type}</p>
|
| 76 |
+
{messages.map((msg, index) => {
|
| 77 |
+
return (
|
| 78 |
+
<div
|
| 79 |
+
key={index}
|
| 80 |
+
style={{
|
| 81 |
+
backgroundColor: "#000",
|
| 82 |
+
display: "flex",
|
| 83 |
+
justifyContent: "center",
|
| 84 |
+
alignItems: "center",
|
| 85 |
+
padding: "14px 12px",
|
| 86 |
+
lineHeight: "18px",
|
| 87 |
+
marginTop: "18px",
|
| 88 |
+
fontSize: "14px",
|
| 89 |
+
cursor: "pointer",
|
| 90 |
+
borderRadius: "5px",
|
| 91 |
+
transition: "all 0.1s ease-in-out",
|
| 92 |
+
}}
|
| 93 |
+
onMouseOver={(e) => {
|
| 94 |
+
e.currentTarget.style.backgroundColor = "#444";
|
| 95 |
+
}}
|
| 96 |
+
onMouseOut={(e) => {
|
| 97 |
+
e.currentTarget.style.backgroundColor = "#000";
|
| 98 |
+
}}
|
| 99 |
+
onClick={() => {
|
| 100 |
+
setInput(msg);
|
| 101 |
+
if (inputRef.current) {
|
| 102 |
+
inputRef.current.innerText = msg;
|
| 103 |
+
}
|
| 104 |
+
}}
|
| 105 |
+
>
|
| 106 |
+
"{msg}"
|
| 107 |
+
</div>
|
| 108 |
+
);
|
| 109 |
+
})}
|
| 110 |
+
</div>
|
| 111 |
+
);
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
return (
|
| 115 |
+
<div
|
| 116 |
+
key={id}
|
| 117 |
+
className="col"
|
| 118 |
+
style={{
|
| 119 |
+
width: "90%",
|
| 120 |
+
height: "90%",
|
| 121 |
+
alignItems: "center",
|
| 122 |
+
justifyContent: "center",
|
| 123 |
+
textAlign: "center",
|
| 124 |
+
}}
|
| 125 |
+
>
|
| 126 |
+
{icon}
|
| 127 |
+
<p style={{ fontSize: "18px", marginTop: "5px" }}>{type}</p>
|
| 128 |
+
{messages.map((msg, index) => {
|
| 129 |
+
return (
|
| 130 |
+
<div
|
| 131 |
+
key={index}
|
| 132 |
+
style={{
|
| 133 |
+
backgroundColor: "#000",
|
| 134 |
+
display: "flex",
|
| 135 |
+
justifyContent: "center",
|
| 136 |
+
alignItems: "center",
|
| 137 |
+
padding: "14px 12px",
|
| 138 |
+
lineHeight: "18px",
|
| 139 |
+
marginTop: "18px",
|
| 140 |
+
fontSize: "14px",
|
| 141 |
+
borderRadius: "5px",
|
| 142 |
+
}}
|
| 143 |
+
>
|
| 144 |
+
{msg}
|
| 145 |
+
</div>
|
| 146 |
+
);
|
| 147 |
+
})}
|
| 148 |
+
</div>
|
| 149 |
+
);
|
| 150 |
+
})}
|
| 151 |
+
</div>
|
| 152 |
+
</div>
|
| 153 |
+
);
|
| 154 |
+
};
|
| 155 |
+
|
| 156 |
+
export default InitialLoader;
|
FreedomGPT/src/app/components/Input.tsx
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React, { useState } from "react";
|
| 2 |
+
import { BOTTOMTEXT } from "../constants/constants";
|
| 3 |
+
import { useMessageFetching } from "../context/MessageFetch";
|
| 4 |
+
import { send } from "./Icons";
|
| 5 |
+
|
| 6 |
+
type InputProps = {
|
| 7 |
+
askQuestion: (msg: string) => void;
|
| 8 |
+
input: string;
|
| 9 |
+
setInput: (value: string) => void;
|
| 10 |
+
inputRef: React.RefObject<HTMLDivElement>;
|
| 11 |
+
socket: any;
|
| 12 |
+
};
|
| 13 |
+
|
| 14 |
+
export default function Input({
|
| 15 |
+
askQuestion,
|
| 16 |
+
input,
|
| 17 |
+
setInput,
|
| 18 |
+
inputRef,
|
| 19 |
+
socket,
|
| 20 |
+
}: InputProps) {
|
| 21 |
+
const {
|
| 22 |
+
messageFetching,
|
| 23 |
+
setDisableinput,
|
| 24 |
+
disableinput,
|
| 25 |
+
stopFetching,
|
| 26 |
+
setMessageFetching,
|
| 27 |
+
} = useMessageFetching();
|
| 28 |
+
|
| 29 |
+
function handleInputSubmit() {
|
| 30 |
+
setDisableinput(true);
|
| 31 |
+
setMessageFetching(true);
|
| 32 |
+
if (input == "") return;
|
| 33 |
+
askQuestion(input);
|
| 34 |
+
setInput("");
|
| 35 |
+
if (inputRef.current) {
|
| 36 |
+
inputRef.current.innerText = "";
|
| 37 |
+
}
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
const onKeyDown = (e: any) => {
|
| 41 |
+
// if shift and enter are pressed together then add a new line if enter is pressed then submit the message
|
| 42 |
+
if (e.key == "Enter" && !e.shiftKey && !messageFetching) {
|
| 43 |
+
e.preventDefault();
|
| 44 |
+
handleInputSubmit();
|
| 45 |
+
}
|
| 46 |
+
};
|
| 47 |
+
|
| 48 |
+
return (
|
| 49 |
+
<>
|
| 50 |
+
<div
|
| 51 |
+
className="input_wrapper"
|
| 52 |
+
style={{
|
| 53 |
+
display: "flex",
|
| 54 |
+
flexDirection: "column",
|
| 55 |
+
alignItems: "center",
|
| 56 |
+
position: "fixed",
|
| 57 |
+
width: "50%",
|
| 58 |
+
paddingBottom: "10px",
|
| 59 |
+
bottom: 0,
|
| 60 |
+
}}
|
| 61 |
+
>
|
| 62 |
+
<div
|
| 63 |
+
className="input_box"
|
| 64 |
+
style={{
|
| 65 |
+
width: "100%",
|
| 66 |
+
backgroundColor: "#40414f",
|
| 67 |
+
borderRadius: "7px",
|
| 68 |
+
display: "flex",
|
| 69 |
+
flexDirection: "row",
|
| 70 |
+
alignItems: "center",
|
| 71 |
+
paddingLeft: "5px",
|
| 72 |
+
padding: "10px 5px",
|
| 73 |
+
position: "relative",
|
| 74 |
+
}}
|
| 75 |
+
>
|
| 76 |
+
<div
|
| 77 |
+
ref={inputRef}
|
| 78 |
+
style={{
|
| 79 |
+
width: "97%",
|
| 80 |
+
minHeight: 26,
|
| 81 |
+
outline: "none",
|
| 82 |
+
border: "none",
|
| 83 |
+
backgroundColor: "#40414f",
|
| 84 |
+
color: "white",
|
| 85 |
+
paddingLeft: "8px",
|
| 86 |
+
fontSize: "16px",
|
| 87 |
+
bottom: 0,
|
| 88 |
+
maxHeight: 150,
|
| 89 |
+
overflowY: "auto",
|
| 90 |
+
paddingRight: "30px",
|
| 91 |
+
}}
|
| 92 |
+
contentEditable={!disableinput}
|
| 93 |
+
onInput={(e) => {
|
| 94 |
+
setInput(e.currentTarget.innerText);
|
| 95 |
+
}}
|
| 96 |
+
onKeyDownCapture={(e) => {
|
| 97 |
+
onKeyDown(e);
|
| 98 |
+
}}
|
| 99 |
+
/>
|
| 100 |
+
|
| 101 |
+
{disableinput ? (
|
| 102 |
+
<div
|
| 103 |
+
style={{
|
| 104 |
+
position: "absolute",
|
| 105 |
+
right: "10px",
|
| 106 |
+
bottom: "5px",
|
| 107 |
+
width: "35px",
|
| 108 |
+
height: "35px",
|
| 109 |
+
display: "flex",
|
| 110 |
+
alignItems: "center",
|
| 111 |
+
justifyContent: "center",
|
| 112 |
+
}}
|
| 113 |
+
>
|
| 114 |
+
<div
|
| 115 |
+
style={{
|
| 116 |
+
width: "20px",
|
| 117 |
+
height: "20px",
|
| 118 |
+
border: "2px solid #fff",
|
| 119 |
+
borderRadius: "50%",
|
| 120 |
+
borderTopColor: "transparent",
|
| 121 |
+
animation: "spin 1s linear infinite",
|
| 122 |
+
}}
|
| 123 |
+
></div>
|
| 124 |
+
</div>
|
| 125 |
+
) : (
|
| 126 |
+
<>
|
| 127 |
+
<button
|
| 128 |
+
onClick={() => {
|
| 129 |
+
handleInputSubmit();
|
| 130 |
+
}}
|
| 131 |
+
style={{
|
| 132 |
+
marginRight: "20px",
|
| 133 |
+
backgroundColor: "transparent",
|
| 134 |
+
outline: "none",
|
| 135 |
+
border: "none",
|
| 136 |
+
color: "white",
|
| 137 |
+
cursor: "pointer",
|
| 138 |
+
padding: "5px",
|
| 139 |
+
position: "absolute",
|
| 140 |
+
bottom: "5px",
|
| 141 |
+
right: "0px",
|
| 142 |
+
borderRadius: "15%",
|
| 143 |
+
display: "flex",
|
| 144 |
+
alignItems: "center",
|
| 145 |
+
justifyContent: "center",
|
| 146 |
+
width: "35px",
|
| 147 |
+
height: "35px",
|
| 148 |
+
}}
|
| 149 |
+
onMouseOver={(e) => {
|
| 150 |
+
e.currentTarget.style.backgroundColor = "#000";
|
| 151 |
+
}}
|
| 152 |
+
onMouseLeave={(e) => {
|
| 153 |
+
e.currentTarget.style.backgroundColor = "transparent";
|
| 154 |
+
}}
|
| 155 |
+
>
|
| 156 |
+
{send}
|
| 157 |
+
</button>
|
| 158 |
+
</>
|
| 159 |
+
)}
|
| 160 |
+
</div>
|
| 161 |
+
<p
|
| 162 |
+
style={{
|
| 163 |
+
fontSize: "12.6px",
|
| 164 |
+
textAlign: "center",
|
| 165 |
+
marginTop: "19px",
|
| 166 |
+
color: "rgb(185 185 185)",
|
| 167 |
+
maxWidth: "85%",
|
| 168 |
+
}}
|
| 169 |
+
>
|
| 170 |
+
{BOTTOMTEXT}
|
| 171 |
+
</p>
|
| 172 |
+
</div>
|
| 173 |
+
|
| 174 |
+
{messageFetching && (
|
| 175 |
+
<button
|
| 176 |
+
onClick={() => {
|
| 177 |
+
stopFetching(socket);
|
| 178 |
+
}}
|
| 179 |
+
style={{
|
| 180 |
+
position: "absolute",
|
| 181 |
+
bottom: "18vh",
|
| 182 |
+
height: "35px",
|
| 183 |
+
display: "flex",
|
| 184 |
+
alignItems: "center",
|
| 185 |
+
justifyContent: "center",
|
| 186 |
+
backgroundColor: "transparent",
|
| 187 |
+
borderRadius: "5px",
|
| 188 |
+
borderWidth: "2px",
|
| 189 |
+
borderColor: "white",
|
| 190 |
+
borderStyle: "solid",
|
| 191 |
+
color: "white",
|
| 192 |
+
cursor: "pointer",
|
| 193 |
+
padding: "5px",
|
| 194 |
+
left: "50%",
|
| 195 |
+
transform: "translateX(-50%)",
|
| 196 |
+
}}
|
| 197 |
+
onMouseOver={(e) => {
|
| 198 |
+
e.currentTarget.style.backgroundColor = "#000";
|
| 199 |
+
}}
|
| 200 |
+
onMouseLeave={(e) => {
|
| 201 |
+
e.currentTarget.style.backgroundColor = "transparent";
|
| 202 |
+
e.currentTarget.style.borderColor = "white";
|
| 203 |
+
}}
|
| 204 |
+
>
|
| 205 |
+
Stop Responding
|
| 206 |
+
</button>
|
| 207 |
+
)}
|
| 208 |
+
</>
|
| 209 |
+
);
|
| 210 |
+
}
|
FreedomGPT/src/app/components/Message.tsx
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { useMessageFetching } from "../context/MessageFetch";
|
| 2 |
+
import { MessageType } from "../types/types";
|
| 3 |
+
|
| 4 |
+
const Reply = ({ message, id }: { message: string; id: string }) => {
|
| 5 |
+
const { messageFetching, messages } = useMessageFetching();
|
| 6 |
+
|
| 7 |
+
const trimmedMessage = message.slice(2);
|
| 8 |
+
|
| 9 |
+
return (
|
| 10 |
+
<div>
|
| 11 |
+
{!messageFetching && messages[messages.length - 1].id === id && (
|
| 12 |
+
<div
|
| 13 |
+
dangerouslySetInnerHTML={{ __html: trimmedMessage }}
|
| 14 |
+
style={{
|
| 15 |
+
whiteSpace: "pre-wrap",
|
| 16 |
+
}}
|
| 17 |
+
/>
|
| 18 |
+
)}
|
| 19 |
+
|
| 20 |
+
{messages[messages.length - 1].id !== id && (
|
| 21 |
+
<div
|
| 22 |
+
dangerouslySetInnerHTML={{ __html: trimmedMessage }}
|
| 23 |
+
style={{
|
| 24 |
+
whiteSpace: "pre-wrap",
|
| 25 |
+
}}
|
| 26 |
+
/>
|
| 27 |
+
)}
|
| 28 |
+
{messageFetching && messages[messages.length - 1].id === id && (
|
| 29 |
+
<p>
|
| 30 |
+
{trimmedMessage}
|
| 31 |
+
<span
|
| 32 |
+
className={`cursor`}
|
| 33 |
+
style={{
|
| 34 |
+
marginLeft: "5px",
|
| 35 |
+
}}
|
| 36 |
+
>
|
| 37 |
+
||
|
| 38 |
+
</span>
|
| 39 |
+
</p>
|
| 40 |
+
)}
|
| 41 |
+
</div>
|
| 42 |
+
);
|
| 43 |
+
};
|
| 44 |
+
|
| 45 |
+
export default function Message({ user, message, id }: MessageType) {
|
| 46 |
+
return (
|
| 47 |
+
<div
|
| 48 |
+
style={{
|
| 49 |
+
width: "100%",
|
| 50 |
+
backgroundColor: !user ? "#444654" : "transparent",
|
| 51 |
+
display: "flex",
|
| 52 |
+
flexDirection: "row",
|
| 53 |
+
alignItems: "center",
|
| 54 |
+
padding: "25px 0",
|
| 55 |
+
borderRadius: "5px",
|
| 56 |
+
marginTop: "10px",
|
| 57 |
+
justifyContent: "center",
|
| 58 |
+
}}
|
| 59 |
+
>
|
| 60 |
+
<div
|
| 61 |
+
className="messages_wrapper"
|
| 62 |
+
style={{
|
| 63 |
+
display: "flex",
|
| 64 |
+
flexDirection: "row",
|
| 65 |
+
alignItems: "flex-start",
|
| 66 |
+
width: "100%",
|
| 67 |
+
alignSelf: "center",
|
| 68 |
+
}}
|
| 69 |
+
>
|
| 70 |
+
<div
|
| 71 |
+
style={{
|
| 72 |
+
width: "25px",
|
| 73 |
+
marginLeft: "15px",
|
| 74 |
+
alignItems: "flex-start",
|
| 75 |
+
}}
|
| 76 |
+
>
|
| 77 |
+
{user ? (
|
| 78 |
+
<p
|
| 79 |
+
style={{
|
| 80 |
+
fontSize: "40px",
|
| 81 |
+
marginTop: "-15px",
|
| 82 |
+
}}
|
| 83 |
+
>
|
| 84 |
+
🗣️
|
| 85 |
+
</p>
|
| 86 |
+
) : (
|
| 87 |
+
<p
|
| 88 |
+
style={{
|
| 89 |
+
fontSize: "45px",
|
| 90 |
+
marginTop: "-15px",
|
| 91 |
+
}}
|
| 92 |
+
>
|
| 93 |
+
🗽
|
| 94 |
+
</p>
|
| 95 |
+
)}
|
| 96 |
+
</div>
|
| 97 |
+
<div
|
| 98 |
+
style={{
|
| 99 |
+
marginLeft: "50px",
|
| 100 |
+
marginRight: "15px",
|
| 101 |
+
fontSize: "15px",
|
| 102 |
+
lineHeight: "25px",
|
| 103 |
+
width: "100%",
|
| 104 |
+
}}
|
| 105 |
+
>
|
| 106 |
+
{user ? message.trim() : <Reply message={message} id={id} />}
|
| 107 |
+
</div>
|
| 108 |
+
</div>
|
| 109 |
+
</div>
|
| 110 |
+
);
|
| 111 |
+
}
|
FreedomGPT/src/app/components/Messages.tsx
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { useEffect, useRef } from "react";
|
| 2 |
+
import { MessageType } from "../types/types";
|
| 3 |
+
import Message from "./Message";
|
| 4 |
+
|
| 5 |
+
type MessagesProps = {
|
| 6 |
+
messages: MessageType[];
|
| 7 |
+
};
|
| 8 |
+
|
| 9 |
+
export default function Messages({ messages }: MessagesProps) {
|
| 10 |
+
const scrollRef = useRef<HTMLDivElement | null>(null);
|
| 11 |
+
useEffect(updateScroll, [messages]);
|
| 12 |
+
|
| 13 |
+
function updateScroll() {
|
| 14 |
+
scrollRef.current?.scrollIntoView({ behavior: "smooth" });
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
return (
|
| 18 |
+
<div
|
| 19 |
+
className="msg_cont"
|
| 20 |
+
style={{
|
| 21 |
+
width: "100%",
|
| 22 |
+
margin: "auto",
|
| 23 |
+
marginTop: "2.5vh",
|
| 24 |
+
overflowY: "scroll",
|
| 25 |
+
paddingBottom: "10vh",
|
| 26 |
+
}}
|
| 27 |
+
>
|
| 28 |
+
<>
|
| 29 |
+
{messages.map((item, index) => {
|
| 30 |
+
return (
|
| 31 |
+
<div ref={scrollRef} key={index}>
|
| 32 |
+
<Message
|
| 33 |
+
user={item.user}
|
| 34 |
+
message={item.message}
|
| 35 |
+
image={item.image}
|
| 36 |
+
id={item.id}
|
| 37 |
+
key={item.id}
|
| 38 |
+
/>
|
| 39 |
+
</div>
|
| 40 |
+
);
|
| 41 |
+
})}
|
| 42 |
+
</>
|
| 43 |
+
</div>
|
| 44 |
+
);
|
| 45 |
+
}
|
FreedomGPT/src/app/constants/constants.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export const APPNAME = "FreedomGPT";
|
| 2 |
+
export const BOTTOMTEXT =
|
| 3 |
+
"FreedomGPT Mar 22 Version: Free Research Preview. Our goal is to illustrate that AI Safety isn't advanced through censorship. Additionally, we believe every company and individual should have access to their own 100% private LLM. For more information reach out at contact@ageofai.capital";
|
FreedomGPT/src/app/context/MessageFetch.tsx
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React, { createContext, useState } from "react";
|
| 2 |
+
import { MessageType } from "../types/types";
|
| 3 |
+
|
| 4 |
+
export interface MessageFetch {
|
| 5 |
+
messageFetching: boolean;
|
| 6 |
+
setMessageFetching: React.Dispatch<React.SetStateAction<boolean>>;
|
| 7 |
+
toggleMessageFetching: () => void;
|
| 8 |
+
messages: MessageType[];
|
| 9 |
+
setMessages: React.Dispatch<React.SetStateAction<MessageType[]>>;
|
| 10 |
+
disableinput: boolean;
|
| 11 |
+
setDisableinput: React.Dispatch<React.SetStateAction<boolean>>;
|
| 12 |
+
setFetchedMessages: React.Dispatch<React.SetStateAction<string>>;
|
| 13 |
+
fetchedMessages: string;
|
| 14 |
+
stopFetching: (message: string) => void;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
export const MessageFetchContext = createContext({
|
| 18 |
+
messageFetching: false,
|
| 19 |
+
setMessageFetching: (value: boolean) => {},
|
| 20 |
+
toggleMessageFetching: () => {},
|
| 21 |
+
messages: [] as MessageType[],
|
| 22 |
+
setMessages: (value: MessageType[]) => {},
|
| 23 |
+
disableinput: false,
|
| 24 |
+
setDisableinput: (value: boolean) => {},
|
| 25 |
+
setFetchedMessages: (value: string) => {},
|
| 26 |
+
fetchedMessages: "",
|
| 27 |
+
stopFetching: (message: string) => {},
|
| 28 |
+
});
|
| 29 |
+
|
| 30 |
+
export const useMessageFetching = () => React.useContext(MessageFetchContext);
|
| 31 |
+
|
| 32 |
+
const MessageFetchProvider = ({ children }: { children: React.ReactNode }) => {
|
| 33 |
+
const [messageFetching, setMessageFetching] = useState(false);
|
| 34 |
+
const [messages, setMessages] = useState<MessageType[]>([]);
|
| 35 |
+
const [disableinput, setDisableinput] = useState(false);
|
| 36 |
+
const [fetchedMessages, setFetchedMessages] = useState("");
|
| 37 |
+
|
| 38 |
+
const toggleMessageFetching = () => {
|
| 39 |
+
setMessageFetching(!messageFetching);
|
| 40 |
+
};
|
| 41 |
+
|
| 42 |
+
const stopFetching = (socket: any) => {
|
| 43 |
+
socket.emit("stopResponding");
|
| 44 |
+
setMessageFetching(false);
|
| 45 |
+
setDisableinput(false);
|
| 46 |
+
|
| 47 |
+
setMessages((prev) => {
|
| 48 |
+
prev[prev.length - 1].message = fetchedMessages;
|
| 49 |
+
return [...prev];
|
| 50 |
+
});
|
| 51 |
+
};
|
| 52 |
+
|
| 53 |
+
return (
|
| 54 |
+
<MessageFetchContext.Provider
|
| 55 |
+
value={{
|
| 56 |
+
messageFetching,
|
| 57 |
+
setMessageFetching,
|
| 58 |
+
toggleMessageFetching,
|
| 59 |
+
messages,
|
| 60 |
+
setMessages,
|
| 61 |
+
disableinput,
|
| 62 |
+
setDisableinput,
|
| 63 |
+
setFetchedMessages,
|
| 64 |
+
fetchedMessages,
|
| 65 |
+
stopFetching,
|
| 66 |
+
}}
|
| 67 |
+
>
|
| 68 |
+
{children}
|
| 69 |
+
</MessageFetchContext.Provider>
|
| 70 |
+
);
|
| 71 |
+
};
|
| 72 |
+
|
| 73 |
+
export default MessageFetchProvider;
|
FreedomGPT/src/app/screens/Main.tsx
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { useEffect, useRef, useState } from "react";
|
| 2 |
+
import io from "socket.io-client";
|
| 3 |
+
import { v4 as uuidv4 } from "uuid";
|
| 4 |
+
import InitialLoader from "../components/InitialLoader";
|
| 5 |
+
import Input from "../components/Input";
|
| 6 |
+
import Messages from "../components/Messages";
|
| 7 |
+
import { useMessageFetching } from "../context/MessageFetch";
|
| 8 |
+
import { MessageType } from "../types/types";
|
| 9 |
+
|
| 10 |
+
const socket = io("http://localhost:8889");
|
| 11 |
+
|
| 12 |
+
export default function Main() {
|
| 13 |
+
const [input, setInput] = useState<string>("");
|
| 14 |
+
const [response, setResponse] = useState("");
|
| 15 |
+
const {
|
| 16 |
+
setMessageFetching,
|
| 17 |
+
messages,
|
| 18 |
+
setMessages,
|
| 19 |
+
disableinput,
|
| 20 |
+
setDisableinput,
|
| 21 |
+
setFetchedMessages,
|
| 22 |
+
messageFetching,
|
| 23 |
+
} = useMessageFetching();
|
| 24 |
+
|
| 25 |
+
const inputRef = useRef<HTMLDivElement>(null);
|
| 26 |
+
|
| 27 |
+
function addMessage(msg: MessageType) {
|
| 28 |
+
if (msg.user) {
|
| 29 |
+
setMessages(
|
| 30 |
+
// @ts-ignore
|
| 31 |
+
(prev) => [...prev, msg]
|
| 32 |
+
);
|
| 33 |
+
} else {
|
| 34 |
+
// @ts-ignore
|
| 35 |
+
setMessages((prev) => [...prev, msg]);
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
useEffect(() => {
|
| 40 |
+
if (inputRef.current) {
|
| 41 |
+
inputRef.current.focus();
|
| 42 |
+
}
|
| 43 |
+
}, [inputRef.current, disableinput]);
|
| 44 |
+
|
| 45 |
+
useEffect(() => {
|
| 46 |
+
socket.on("response", (data) => {
|
| 47 |
+
const result = data.output;
|
| 48 |
+
|
| 49 |
+
const justText = result.replace(
|
| 50 |
+
// eslint-disable-next-line no-control-regex
|
| 51 |
+
/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
|
| 52 |
+
""
|
| 53 |
+
);
|
| 54 |
+
|
| 55 |
+
if (messages.length > 0) {
|
| 56 |
+
setResponse((prevResponse) => prevResponse + justText);
|
| 57 |
+
|
| 58 |
+
if (messageFetching) {
|
| 59 |
+
setFetchedMessages(response);
|
| 60 |
+
|
| 61 |
+
// @ts-ignore
|
| 62 |
+
setMessages((prev) => {
|
| 63 |
+
prev[prev.length - 1].message = response;
|
| 64 |
+
return [...prev];
|
| 65 |
+
});
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
// console.log(JSON.stringify(response));
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
// if no data is returned console log the message complete
|
| 72 |
+
if (result === "\n>") {
|
| 73 |
+
console.log("message complete");
|
| 74 |
+
}
|
| 75 |
+
});
|
| 76 |
+
|
| 77 |
+
socket.on("chatend", () => {
|
| 78 |
+
socket.emit("chatstart");
|
| 79 |
+
setDisableinput(false);
|
| 80 |
+
setMessageFetching(false);
|
| 81 |
+
});
|
| 82 |
+
|
| 83 |
+
return () => {
|
| 84 |
+
socket.off("response");
|
| 85 |
+
socket.off("chatend");
|
| 86 |
+
};
|
| 87 |
+
}, [messages]);
|
| 88 |
+
|
| 89 |
+
const askQuestion = (message: string) => {
|
| 90 |
+
const senderID = uuidv4();
|
| 91 |
+
const replyID = uuidv4();
|
| 92 |
+
|
| 93 |
+
setResponse("");
|
| 94 |
+
|
| 95 |
+
addMessage({
|
| 96 |
+
message: message,
|
| 97 |
+
user: true,
|
| 98 |
+
id: senderID,
|
| 99 |
+
});
|
| 100 |
+
|
| 101 |
+
socket.emit("message", message);
|
| 102 |
+
|
| 103 |
+
addMessage({
|
| 104 |
+
message: "",
|
| 105 |
+
user: false,
|
| 106 |
+
id: replyID,
|
| 107 |
+
replyId: senderID,
|
| 108 |
+
});
|
| 109 |
+
};
|
| 110 |
+
|
| 111 |
+
return (
|
| 112 |
+
<div>
|
| 113 |
+
<div
|
| 114 |
+
className="main_container"
|
| 115 |
+
style={{
|
| 116 |
+
width: "100%",
|
| 117 |
+
margin: "auto",
|
| 118 |
+
height: "100vh",
|
| 119 |
+
position: "relative",
|
| 120 |
+
overflowY: "hidden",
|
| 121 |
+
}}
|
| 122 |
+
>
|
| 123 |
+
{messages.length != 0 ? (
|
| 124 |
+
<div
|
| 125 |
+
style={{
|
| 126 |
+
height: "88%",
|
| 127 |
+
overflowY: "scroll",
|
| 128 |
+
width: "100%",
|
| 129 |
+
justifyContent: "center",
|
| 130 |
+
display: "flex",
|
| 131 |
+
}}
|
| 132 |
+
>
|
| 133 |
+
<div
|
| 134 |
+
style={{
|
| 135 |
+
width: "100%",
|
| 136 |
+
paddingTop: "10px",
|
| 137 |
+
}}
|
| 138 |
+
>
|
| 139 |
+
<Messages messages={messages} />
|
| 140 |
+
</div>
|
| 141 |
+
</div>
|
| 142 |
+
) : (
|
| 143 |
+
<div
|
| 144 |
+
style={{
|
| 145 |
+
width: "100%",
|
| 146 |
+
justifyContent: "center",
|
| 147 |
+
alignItems: "center",
|
| 148 |
+
display: "flex",
|
| 149 |
+
}}
|
| 150 |
+
>
|
| 151 |
+
<div
|
| 152 |
+
style={{
|
| 153 |
+
width: "100%",
|
| 154 |
+
}}
|
| 155 |
+
className="initial_loader_wrapper"
|
| 156 |
+
>
|
| 157 |
+
<InitialLoader setInput={setInput} inputRef={inputRef} />
|
| 158 |
+
</div>
|
| 159 |
+
</div>
|
| 160 |
+
)}
|
| 161 |
+
|
| 162 |
+
<div
|
| 163 |
+
style={{
|
| 164 |
+
justifyContent: "center",
|
| 165 |
+
alignItems: "center",
|
| 166 |
+
display: "flex",
|
| 167 |
+
}}
|
| 168 |
+
>
|
| 169 |
+
<Input
|
| 170 |
+
askQuestion={askQuestion}
|
| 171 |
+
input={input}
|
| 172 |
+
setInput={setInput}
|
| 173 |
+
inputRef={inputRef}
|
| 174 |
+
socket={socket}
|
| 175 |
+
/>
|
| 176 |
+
</div>
|
| 177 |
+
</div>
|
| 178 |
+
</div>
|
| 179 |
+
);
|
| 180 |
+
}
|
FreedomGPT/src/app/types/types.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export type MessageType = {
|
| 2 |
+
message: string;
|
| 3 |
+
user?: boolean;
|
| 4 |
+
image?: any;
|
| 5 |
+
id: string;
|
| 6 |
+
replyId?: string;
|
| 7 |
+
};
|
FreedomGPT/src/assets/react.svg
ADDED
|
|
FreedomGPT/src/index.css
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
body {
|
| 2 |
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
|
| 3 |
+
Arial, sans-serif;
|
| 4 |
+
margin: auto;
|
| 5 |
+
max-width: 60rem;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
@font-face {
|
| 9 |
+
font-family: "Roboto";
|
| 10 |
+
src: url(Roboto-Regular.ttf);
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
* {
|
| 14 |
+
margin: 0;
|
| 15 |
+
padding: 0;
|
| 16 |
+
font-family: "Roboto", sans-serif;
|
| 17 |
+
line-break: auto;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
body {
|
| 21 |
+
background-color: #343541;
|
| 22 |
+
color: #ffff;
|
| 23 |
+
height: 100vh;
|
| 24 |
+
width: 100vw;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
*::-webkit-scrollbar {
|
| 28 |
+
display: none;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
* {
|
| 32 |
+
-ms-overflow-style: none;
|
| 33 |
+
scrollbar-width: none;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
.cursor {
|
| 37 |
+
width: 20px;
|
| 38 |
+
height: 25px;
|
| 39 |
+
background-color: rgb(232, 221, 221);
|
| 40 |
+
animation: blink 1.2s infinite;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
@keyframes blink {
|
| 44 |
+
50% {
|
| 45 |
+
opacity: 0;
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
@keyframes spin {
|
| 50 |
+
0% {
|
| 51 |
+
transform: rotate(0deg);
|
| 52 |
+
}
|
| 53 |
+
100% {
|
| 54 |
+
transform: rotate(360deg);
|
| 55 |
+
}
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
@media screen and (max-width: 1000px) {
|
| 59 |
+
.loader_columns {
|
| 60 |
+
flex-direction: column !important;
|
| 61 |
+
align-items: center;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
.input_wrapper {
|
| 65 |
+
background-color: rgb(60, 59, 59);
|
| 66 |
+
width: 100% !important;
|
| 67 |
+
padding: 10px;
|
| 68 |
+
margin: 10px;
|
| 69 |
+
}
|
| 70 |
+
.initial_loader_wrapper {
|
| 71 |
+
width: 100% !important;
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
.messages_wrapper {
|
| 75 |
+
width: 98% !important;
|
| 76 |
+
}
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
@media screen and (max-width: 320px) {
|
| 80 |
+
.main_container {
|
| 81 |
+
width: 99% !important;
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
.input_wrapper {
|
| 85 |
+
background-color: rgb(60, 59, 59);
|
| 86 |
+
padding-top: 10px;
|
| 87 |
+
width: 100% !important;
|
| 88 |
+
}
|
| 89 |
+
.initial_loader_wrapper {
|
| 90 |
+
width: 100% !important;
|
| 91 |
+
}
|
| 92 |
+
.messages_wrapper {
|
| 93 |
+
width: 98% !important;
|
| 94 |
+
}
|
| 95 |
+
}
|
FreedomGPT/src/main.tsx
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React from "react";
|
| 2 |
+
import ReactDOM from "react-dom/client";
|
| 3 |
+
import App from "./App";
|
| 4 |
+
import "./index.css";
|
| 5 |
+
|
| 6 |
+
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
|
| 7 |
+
<React.StrictMode>
|
| 8 |
+
<App />
|
| 9 |
+
</React.StrictMode>
|
| 10 |
+
);
|
FreedomGPT/src/vite-env.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
/// <reference types="vite/client" />
|
FreedomGPT/tsconfig.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"compilerOptions": {
|
| 3 |
+
"target": "ESNext",
|
| 4 |
+
"useDefineForClassFields": true,
|
| 5 |
+
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
| 6 |
+
"allowJs": false,
|
| 7 |
+
"skipLibCheck": true,
|
| 8 |
+
"esModuleInterop": false,
|
| 9 |
+
"allowSyntheticDefaultImports": true,
|
| 10 |
+
"strict": true,
|
| 11 |
+
"forceConsistentCasingInFileNames": true,
|
| 12 |
+
"module": "ESNext",
|
| 13 |
+
"moduleResolution": "Node",
|
| 14 |
+
"resolveJsonModule": true,
|
| 15 |
+
"isolatedModules": true,
|
| 16 |
+
"noEmit": true,
|
| 17 |
+
"jsx": "react-jsx"
|
| 18 |
+
},
|
| 19 |
+
"include": ["src"],
|
| 20 |
+
"references": [{ "path": "./tsconfig.node.json" }]
|
| 21 |
+
}
|
FreedomGPT/tsconfig.node.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"compilerOptions": {
|
| 3 |
+
"composite": true,
|
| 4 |
+
"module": "ESNext",
|
| 5 |
+
"moduleResolution": "Node",
|
| 6 |
+
"allowSyntheticDefaultImports": true
|
| 7 |
+
},
|
| 8 |
+
"include": ["vite.config.ts"]
|
| 9 |
+
}
|
FreedomGPT/vite.config.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { defineConfig } from "vite";
|
| 2 |
+
import react from "@vitejs/plugin-react";
|
| 3 |
+
|
| 4 |
+
// import express from "express";
|
| 5 |
+
// import apiRouter from "./server.js";
|
| 6 |
+
|
| 7 |
+
// // Define your Express routes here
|
| 8 |
+
// const app = express();
|
| 9 |
+
// app.use("/", apiRouter);
|
| 10 |
+
|
| 11 |
+
// https://vitejs.dev/config/
|
| 12 |
+
export default defineConfig({
|
| 13 |
+
plugins: [react()],
|
| 14 |
+
server: {
|
| 15 |
+
watch: {
|
| 16 |
+
usePolling: true,
|
| 17 |
+
},
|
| 18 |
+
host: true, // needed for the Docker Container port mapping to work
|
| 19 |
+
strictPort: true,
|
| 20 |
+
port: 9000, // you can replace this port with any port
|
| 21 |
+
},
|
| 22 |
+
});
|
FreedomGPT/yarn.lock
ADDED
|
@@ -0,0 +1,1441 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
| 2 |
+
# yarn lockfile v1
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
"@ampproject/remapping@^2.2.0":
|
| 6 |
+
version "2.2.1"
|
| 7 |
+
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
|
| 8 |
+
integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
|
| 9 |
+
dependencies:
|
| 10 |
+
"@jridgewell/gen-mapping" "^0.3.0"
|
| 11 |
+
"@jridgewell/trace-mapping" "^0.3.9"
|
| 12 |
+
|
| 13 |
+
"@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4":
|
| 14 |
+
version "7.21.4"
|
| 15 |
+
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39"
|
| 16 |
+
integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==
|
| 17 |
+
dependencies:
|
| 18 |
+
"@babel/highlight" "^7.18.6"
|
| 19 |
+
|
| 20 |
+
"@babel/compat-data@^7.21.4":
|
| 21 |
+
version "7.21.4"
|
| 22 |
+
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f"
|
| 23 |
+
integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==
|
| 24 |
+
|
| 25 |
+
"@babel/core@^7.20.12":
|
| 26 |
+
version "7.21.4"
|
| 27 |
+
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659"
|
| 28 |
+
integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==
|
| 29 |
+
dependencies:
|
| 30 |
+
"@ampproject/remapping" "^2.2.0"
|
| 31 |
+
"@babel/code-frame" "^7.21.4"
|
| 32 |
+
"@babel/generator" "^7.21.4"
|
| 33 |
+
"@babel/helper-compilation-targets" "^7.21.4"
|
| 34 |
+
"@babel/helper-module-transforms" "^7.21.2"
|
| 35 |
+
"@babel/helpers" "^7.21.0"
|
| 36 |
+
"@babel/parser" "^7.21.4"
|
| 37 |
+
"@babel/template" "^7.20.7"
|
| 38 |
+
"@babel/traverse" "^7.21.4"
|
| 39 |
+
"@babel/types" "^7.21.4"
|
| 40 |
+
convert-source-map "^1.7.0"
|
| 41 |
+
debug "^4.1.0"
|
| 42 |
+
gensync "^1.0.0-beta.2"
|
| 43 |
+
json5 "^2.2.2"
|
| 44 |
+
semver "^6.3.0"
|
| 45 |
+
|
| 46 |
+
"@babel/generator@^7.21.4":
|
| 47 |
+
version "7.21.4"
|
| 48 |
+
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc"
|
| 49 |
+
integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==
|
| 50 |
+
dependencies:
|
| 51 |
+
"@babel/types" "^7.21.4"
|
| 52 |
+
"@jridgewell/gen-mapping" "^0.3.2"
|
| 53 |
+
"@jridgewell/trace-mapping" "^0.3.17"
|
| 54 |
+
jsesc "^2.5.1"
|
| 55 |
+
|
| 56 |
+
"@babel/helper-compilation-targets@^7.21.4":
|
| 57 |
+
version "7.21.4"
|
| 58 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656"
|
| 59 |
+
integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==
|
| 60 |
+
dependencies:
|
| 61 |
+
"@babel/compat-data" "^7.21.4"
|
| 62 |
+
"@babel/helper-validator-option" "^7.21.0"
|
| 63 |
+
browserslist "^4.21.3"
|
| 64 |
+
lru-cache "^5.1.1"
|
| 65 |
+
semver "^6.3.0"
|
| 66 |
+
|
| 67 |
+
"@babel/helper-environment-visitor@^7.18.9":
|
| 68 |
+
version "7.18.9"
|
| 69 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
|
| 70 |
+
integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
|
| 71 |
+
|
| 72 |
+
"@babel/helper-function-name@^7.21.0":
|
| 73 |
+
version "7.21.0"
|
| 74 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
|
| 75 |
+
integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
|
| 76 |
+
dependencies:
|
| 77 |
+
"@babel/template" "^7.20.7"
|
| 78 |
+
"@babel/types" "^7.21.0"
|
| 79 |
+
|
| 80 |
+
"@babel/helper-hoist-variables@^7.18.6":
|
| 81 |
+
version "7.18.6"
|
| 82 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
|
| 83 |
+
integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
|
| 84 |
+
dependencies:
|
| 85 |
+
"@babel/types" "^7.18.6"
|
| 86 |
+
|
| 87 |
+
"@babel/helper-module-imports@^7.18.6":
|
| 88 |
+
version "7.21.4"
|
| 89 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af"
|
| 90 |
+
integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==
|
| 91 |
+
dependencies:
|
| 92 |
+
"@babel/types" "^7.21.4"
|
| 93 |
+
|
| 94 |
+
"@babel/helper-module-transforms@^7.21.2":
|
| 95 |
+
version "7.21.2"
|
| 96 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2"
|
| 97 |
+
integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==
|
| 98 |
+
dependencies:
|
| 99 |
+
"@babel/helper-environment-visitor" "^7.18.9"
|
| 100 |
+
"@babel/helper-module-imports" "^7.18.6"
|
| 101 |
+
"@babel/helper-simple-access" "^7.20.2"
|
| 102 |
+
"@babel/helper-split-export-declaration" "^7.18.6"
|
| 103 |
+
"@babel/helper-validator-identifier" "^7.19.1"
|
| 104 |
+
"@babel/template" "^7.20.7"
|
| 105 |
+
"@babel/traverse" "^7.21.2"
|
| 106 |
+
"@babel/types" "^7.21.2"
|
| 107 |
+
|
| 108 |
+
"@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2":
|
| 109 |
+
version "7.20.2"
|
| 110 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
|
| 111 |
+
integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
|
| 112 |
+
|
| 113 |
+
"@babel/helper-simple-access@^7.20.2":
|
| 114 |
+
version "7.20.2"
|
| 115 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
|
| 116 |
+
integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
|
| 117 |
+
dependencies:
|
| 118 |
+
"@babel/types" "^7.20.2"
|
| 119 |
+
|
| 120 |
+
"@babel/helper-split-export-declaration@^7.18.6":
|
| 121 |
+
version "7.18.6"
|
| 122 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
|
| 123 |
+
integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
|
| 124 |
+
dependencies:
|
| 125 |
+
"@babel/types" "^7.18.6"
|
| 126 |
+
|
| 127 |
+
"@babel/helper-string-parser@^7.19.4":
|
| 128 |
+
version "7.19.4"
|
| 129 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
|
| 130 |
+
integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
|
| 131 |
+
|
| 132 |
+
"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
|
| 133 |
+
version "7.19.1"
|
| 134 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
|
| 135 |
+
integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
|
| 136 |
+
|
| 137 |
+
"@babel/helper-validator-option@^7.21.0":
|
| 138 |
+
version "7.21.0"
|
| 139 |
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
|
| 140 |
+
integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==
|
| 141 |
+
|
| 142 |
+
"@babel/helpers@^7.21.0":
|
| 143 |
+
version "7.21.0"
|
| 144 |
+
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e"
|
| 145 |
+
integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==
|
| 146 |
+
dependencies:
|
| 147 |
+
"@babel/template" "^7.20.7"
|
| 148 |
+
"@babel/traverse" "^7.21.0"
|
| 149 |
+
"@babel/types" "^7.21.0"
|
| 150 |
+
|
| 151 |
+
"@babel/highlight@^7.18.6":
|
| 152 |
+
version "7.18.6"
|
| 153 |
+
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
|
| 154 |
+
integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
|
| 155 |
+
dependencies:
|
| 156 |
+
"@babel/helper-validator-identifier" "^7.18.6"
|
| 157 |
+
chalk "^2.0.0"
|
| 158 |
+
js-tokens "^4.0.0"
|
| 159 |
+
|
| 160 |
+
"@babel/parser@^7.20.7", "@babel/parser@^7.21.4":
|
| 161 |
+
version "7.21.4"
|
| 162 |
+
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17"
|
| 163 |
+
integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==
|
| 164 |
+
|
| 165 |
+
"@babel/plugin-transform-react-jsx-self@^7.18.6":
|
| 166 |
+
version "7.21.0"
|
| 167 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz#ec98d4a9baafc5a1eb398da4cf94afbb40254a54"
|
| 168 |
+
integrity sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==
|
| 169 |
+
dependencies:
|
| 170 |
+
"@babel/helper-plugin-utils" "^7.20.2"
|
| 171 |
+
|
| 172 |
+
"@babel/plugin-transform-react-jsx-source@^7.19.6":
|
| 173 |
+
version "7.19.6"
|
| 174 |
+
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86"
|
| 175 |
+
integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==
|
| 176 |
+
dependencies:
|
| 177 |
+
"@babel/helper-plugin-utils" "^7.19.0"
|
| 178 |
+
|
| 179 |
+
"@babel/template@^7.20.7":
|
| 180 |
+
version "7.20.7"
|
| 181 |
+
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
|
| 182 |
+
integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
|
| 183 |
+
dependencies:
|
| 184 |
+
"@babel/code-frame" "^7.18.6"
|
| 185 |
+
"@babel/parser" "^7.20.7"
|
| 186 |
+
"@babel/types" "^7.20.7"
|
| 187 |
+
|
| 188 |
+
"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4":
|
| 189 |
+
version "7.21.4"
|
| 190 |
+
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36"
|
| 191 |
+
integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==
|
| 192 |
+
dependencies:
|
| 193 |
+
"@babel/code-frame" "^7.21.4"
|
| 194 |
+
"@babel/generator" "^7.21.4"
|
| 195 |
+
"@babel/helper-environment-visitor" "^7.18.9"
|
| 196 |
+
"@babel/helper-function-name" "^7.21.0"
|
| 197 |
+
"@babel/helper-hoist-variables" "^7.18.6"
|
| 198 |
+
"@babel/helper-split-export-declaration" "^7.18.6"
|
| 199 |
+
"@babel/parser" "^7.21.4"
|
| 200 |
+
"@babel/types" "^7.21.4"
|
| 201 |
+
debug "^4.1.0"
|
| 202 |
+
globals "^11.1.0"
|
| 203 |
+
|
| 204 |
+
"@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4":
|
| 205 |
+
version "7.21.4"
|
| 206 |
+
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4"
|
| 207 |
+
integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==
|
| 208 |
+
dependencies:
|
| 209 |
+
"@babel/helper-string-parser" "^7.19.4"
|
| 210 |
+
"@babel/helper-validator-identifier" "^7.19.1"
|
| 211 |
+
to-fast-properties "^2.0.0"
|
| 212 |
+
|
| 213 |
+
"@esbuild/android-arm64@0.17.16":
|
| 214 |
+
version "0.17.16"
|
| 215 |
+
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.16.tgz#7b18cab5f4d93e878306196eed26b6d960c12576"
|
| 216 |
+
integrity sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==
|
| 217 |
+
|
| 218 |
+
"@esbuild/android-arm@0.17.16":
|
| 219 |
+
version "0.17.16"
|
| 220 |
+
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.16.tgz#5c47f6a7c2cada6ed4b4d4e72d8c66e76d812812"
|
| 221 |
+
integrity sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==
|
| 222 |
+
|
| 223 |
+
"@esbuild/android-x64@0.17.16":
|
| 224 |
+
version "0.17.16"
|
| 225 |
+
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.16.tgz#8686a6e98359071ffd5312046551943e7244c51a"
|
| 226 |
+
integrity sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==
|
| 227 |
+
|
| 228 |
+
"@esbuild/darwin-arm64@0.17.16":
|
| 229 |
+
version "0.17.16"
|
| 230 |
+
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.16.tgz#aa79fbf447630ca0696a596beba962a775bbf394"
|
| 231 |
+
integrity sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==
|
| 232 |
+
|
| 233 |
+
"@esbuild/darwin-x64@0.17.16":
|
| 234 |
+
version "0.17.16"
|
| 235 |
+
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.16.tgz#d5d68ee510507104da7e7503224c647c957e163e"
|
| 236 |
+
integrity sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==
|
| 237 |
+
|
| 238 |
+
"@esbuild/freebsd-arm64@0.17.16":
|
| 239 |
+
version "0.17.16"
|
| 240 |
+
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.16.tgz#b00b4cc8c2e424907cfe3a607384ab24794edd52"
|
| 241 |
+
integrity sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==
|
| 242 |
+
|
| 243 |
+
"@esbuild/freebsd-x64@0.17.16":
|
| 244 |
+
version "0.17.16"
|
| 245 |
+
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.16.tgz#84af4430a07730b50bbc945a90cf7036c1853b76"
|
| 246 |
+
integrity sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==
|
| 247 |
+
|
| 248 |
+
"@esbuild/linux-arm64@0.17.16":
|
| 249 |
+
version "0.17.16"
|
| 250 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.16.tgz#35571d15de6272c862d9ce6341372fb3cef0f266"
|
| 251 |
+
integrity sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==
|
| 252 |
+
|
| 253 |
+
"@esbuild/linux-arm@0.17.16":
|
| 254 |
+
version "0.17.16"
|
| 255 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.16.tgz#b65c7cd5b0eadd08f91aab66b9dda81b6a4b2a70"
|
| 256 |
+
integrity sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==
|
| 257 |
+
|
| 258 |
+
"@esbuild/linux-ia32@0.17.16":
|
| 259 |
+
version "0.17.16"
|
| 260 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.16.tgz#673a68cb251ce44a00a6422ada29064c5a1cd2c0"
|
| 261 |
+
integrity sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==
|
| 262 |
+
|
| 263 |
+
"@esbuild/linux-loong64@0.17.16":
|
| 264 |
+
version "0.17.16"
|
| 265 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.16.tgz#477e2da34ab46ffdbf4740fa6441e80045249385"
|
| 266 |
+
integrity sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==
|
| 267 |
+
|
| 268 |
+
"@esbuild/linux-mips64el@0.17.16":
|
| 269 |
+
version "0.17.16"
|
| 270 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.16.tgz#e1e9687bbdaa831d7c34edc9278200982c1a4bf4"
|
| 271 |
+
integrity sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==
|
| 272 |
+
|
| 273 |
+
"@esbuild/linux-ppc64@0.17.16":
|
| 274 |
+
version "0.17.16"
|
| 275 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.16.tgz#2f19075d63622987e86e83a4b7866cd57b796c60"
|
| 276 |
+
integrity sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==
|
| 277 |
+
|
| 278 |
+
"@esbuild/linux-riscv64@0.17.16":
|
| 279 |
+
version "0.17.16"
|
| 280 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.16.tgz#bbf40a38f03ba2434fe69b5ceeec5d13c742b329"
|
| 281 |
+
integrity sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==
|
| 282 |
+
|
| 283 |
+
"@esbuild/linux-s390x@0.17.16":
|
| 284 |
+
version "0.17.16"
|
| 285 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.16.tgz#d2b8c0779ccd2b7917cdf0fab8831a468e0f9c01"
|
| 286 |
+
integrity sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==
|
| 287 |
+
|
| 288 |
+
"@esbuild/linux-x64@0.17.16":
|
| 289 |
+
version "0.17.16"
|
| 290 |
+
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.16.tgz#da48b39cfdc1b12a74976625f583f031eac43590"
|
| 291 |
+
integrity sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==
|
| 292 |
+
|
| 293 |
+
"@esbuild/netbsd-x64@0.17.16":
|
| 294 |
+
version "0.17.16"
|
| 295 |
+
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.16.tgz#ddef985aed37cc81908d2573b66c0299dbc49037"
|
| 296 |
+
integrity sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==
|
| 297 |
+
|
| 298 |
+
"@esbuild/openbsd-x64@0.17.16":
|
| 299 |
+
version "0.17.16"
|
| 300 |
+
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.16.tgz#85035bf89efd66e9068bc72aa6bb85a2c317d090"
|
| 301 |
+
integrity sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==
|
| 302 |
+
|
| 303 |
+
"@esbuild/sunos-x64@0.17.16":
|
| 304 |
+
version "0.17.16"
|
| 305 |
+
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.16.tgz#16338ecab854cb2d831cc9ee9cc21ef69566e1f3"
|
| 306 |
+
integrity sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==
|
| 307 |
+
|
| 308 |
+
"@esbuild/win32-arm64@0.17.16":
|
| 309 |
+
version "0.17.16"
|
| 310 |
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.16.tgz#423f46bb744aff897a5f74435469e1ef4952e343"
|
| 311 |
+
integrity sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==
|
| 312 |
+
|
| 313 |
+
"@esbuild/win32-ia32@0.17.16":
|
| 314 |
+
version "0.17.16"
|
| 315 |
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.16.tgz#1978be5b192c7063bd2c8d5960eb213e1964740e"
|
| 316 |
+
integrity sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==
|
| 317 |
+
|
| 318 |
+
"@esbuild/win32-x64@0.17.16":
|
| 319 |
+
version "0.17.16"
|
| 320 |
+
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.16.tgz#260f19b0a3300d22c3a3f52722c671dc561edaa3"
|
| 321 |
+
integrity sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==
|
| 322 |
+
|
| 323 |
+
"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
|
| 324 |
+
version "0.3.3"
|
| 325 |
+
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
|
| 326 |
+
integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
|
| 327 |
+
dependencies:
|
| 328 |
+
"@jridgewell/set-array" "^1.0.1"
|
| 329 |
+
"@jridgewell/sourcemap-codec" "^1.4.10"
|
| 330 |
+
"@jridgewell/trace-mapping" "^0.3.9"
|
| 331 |
+
|
| 332 |
+
"@jridgewell/resolve-uri@3.1.0":
|
| 333 |
+
version "3.1.0"
|
| 334 |
+
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
|
| 335 |
+
integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
|
| 336 |
+
|
| 337 |
+
"@jridgewell/set-array@^1.0.1":
|
| 338 |
+
version "1.1.2"
|
| 339 |
+
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
|
| 340 |
+
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
|
| 341 |
+
|
| 342 |
+
"@jridgewell/sourcemap-codec@1.4.14":
|
| 343 |
+
version "1.4.14"
|
| 344 |
+
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
|
| 345 |
+
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
|
| 346 |
+
|
| 347 |
+
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13":
|
| 348 |
+
version "1.4.15"
|
| 349 |
+
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
|
| 350 |
+
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
|
| 351 |
+
|
| 352 |
+
"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
|
| 353 |
+
version "0.3.18"
|
| 354 |
+
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
|
| 355 |
+
integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
|
| 356 |
+
dependencies:
|
| 357 |
+
"@jridgewell/resolve-uri" "3.1.0"
|
| 358 |
+
"@jridgewell/sourcemap-codec" "1.4.14"
|
| 359 |
+
|
| 360 |
+
"@socket.io/component-emitter@~3.1.0":
|
| 361 |
+
version "3.1.0"
|
| 362 |
+
resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553"
|
| 363 |
+
integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==
|
| 364 |
+
|
| 365 |
+
"@types/cookie@^0.4.1":
|
| 366 |
+
version "0.4.1"
|
| 367 |
+
resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d"
|
| 368 |
+
integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
|
| 369 |
+
|
| 370 |
+
"@types/cors@^2.8.12":
|
| 371 |
+
version "2.8.13"
|
| 372 |
+
resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94"
|
| 373 |
+
integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==
|
| 374 |
+
dependencies:
|
| 375 |
+
"@types/node" "*"
|
| 376 |
+
|
| 377 |
+
"@types/node@*", "@types/node@>=10.0.0":
|
| 378 |
+
version "18.15.11"
|
| 379 |
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f"
|
| 380 |
+
integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==
|
| 381 |
+
|
| 382 |
+
"@types/prop-types@*":
|
| 383 |
+
version "15.7.5"
|
| 384 |
+
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
|
| 385 |
+
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
|
| 386 |
+
|
| 387 |
+
"@types/react-dom@^18.0.11":
|
| 388 |
+
version "18.0.11"
|
| 389 |
+
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33"
|
| 390 |
+
integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==
|
| 391 |
+
dependencies:
|
| 392 |
+
"@types/react" "*"
|
| 393 |
+
|
| 394 |
+
"@types/react@*", "@types/react@^18.0.28":
|
| 395 |
+
version "18.0.35"
|
| 396 |
+
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.35.tgz#192061cb1044fe01f2d3a94272cd35dd50502741"
|
| 397 |
+
integrity sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==
|
| 398 |
+
dependencies:
|
| 399 |
+
"@types/prop-types" "*"
|
| 400 |
+
"@types/scheduler" "*"
|
| 401 |
+
csstype "^3.0.2"
|
| 402 |
+
|
| 403 |
+
"@types/scheduler@*":
|
| 404 |
+
version "0.16.3"
|
| 405 |
+
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"
|
| 406 |
+
integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==
|
| 407 |
+
|
| 408 |
+
"@types/uuid@^9.0.1":
|
| 409 |
+
version "9.0.1"
|
| 410 |
+
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6"
|
| 411 |
+
integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==
|
| 412 |
+
|
| 413 |
+
"@vitejs/plugin-react@^3.1.0":
|
| 414 |
+
version "3.1.0"
|
| 415 |
+
resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz#d1091f535eab8b83d6e74034d01e27d73c773240"
|
| 416 |
+
integrity sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==
|
| 417 |
+
dependencies:
|
| 418 |
+
"@babel/core" "^7.20.12"
|
| 419 |
+
"@babel/plugin-transform-react-jsx-self" "^7.18.6"
|
| 420 |
+
"@babel/plugin-transform-react-jsx-source" "^7.19.6"
|
| 421 |
+
magic-string "^0.27.0"
|
| 422 |
+
react-refresh "^0.14.0"
|
| 423 |
+
|
| 424 |
+
accepts@~1.3.4, accepts@~1.3.8:
|
| 425 |
+
version "1.3.8"
|
| 426 |
+
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
|
| 427 |
+
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
|
| 428 |
+
dependencies:
|
| 429 |
+
mime-types "~2.1.34"
|
| 430 |
+
negotiator "0.6.3"
|
| 431 |
+
|
| 432 |
+
ansi-regex@^5.0.1:
|
| 433 |
+
version "5.0.1"
|
| 434 |
+
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
|
| 435 |
+
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
| 436 |
+
|
| 437 |
+
ansi-styles@^3.2.1:
|
| 438 |
+
version "3.2.1"
|
| 439 |
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
| 440 |
+
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
|
| 441 |
+
dependencies:
|
| 442 |
+
color-convert "^1.9.0"
|
| 443 |
+
|
| 444 |
+
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
| 445 |
+
version "4.3.0"
|
| 446 |
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
|
| 447 |
+
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
|
| 448 |
+
dependencies:
|
| 449 |
+
color-convert "^2.0.1"
|
| 450 |
+
|
| 451 |
+
array-flatten@1.1.1:
|
| 452 |
+
version "1.1.1"
|
| 453 |
+
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
| 454 |
+
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
|
| 455 |
+
|
| 456 |
+
base64id@2.0.0, base64id@~2.0.0:
|
| 457 |
+
version "2.0.0"
|
| 458 |
+
resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
|
| 459 |
+
integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
|
| 460 |
+
|
| 461 |
+
body-parser@1.20.1:
|
| 462 |
+
version "1.20.1"
|
| 463 |
+
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
|
| 464 |
+
integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
|
| 465 |
+
dependencies:
|
| 466 |
+
bytes "3.1.2"
|
| 467 |
+
content-type "~1.0.4"
|
| 468 |
+
debug "2.6.9"
|
| 469 |
+
depd "2.0.0"
|
| 470 |
+
destroy "1.2.0"
|
| 471 |
+
http-errors "2.0.0"
|
| 472 |
+
iconv-lite "0.4.24"
|
| 473 |
+
on-finished "2.4.1"
|
| 474 |
+
qs "6.11.0"
|
| 475 |
+
raw-body "2.5.1"
|
| 476 |
+
type-is "~1.6.18"
|
| 477 |
+
unpipe "1.0.0"
|
| 478 |
+
|
| 479 |
+
browserslist@^4.21.3:
|
| 480 |
+
version "4.21.5"
|
| 481 |
+
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
|
| 482 |
+
integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
|
| 483 |
+
dependencies:
|
| 484 |
+
caniuse-lite "^1.0.30001449"
|
| 485 |
+
electron-to-chromium "^1.4.284"
|
| 486 |
+
node-releases "^2.0.8"
|
| 487 |
+
update-browserslist-db "^1.0.10"
|
| 488 |
+
|
| 489 |
+
bytes@3.1.2:
|
| 490 |
+
version "3.1.2"
|
| 491 |
+
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
|
| 492 |
+
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
|
| 493 |
+
|
| 494 |
+
call-bind@^1.0.0:
|
| 495 |
+
version "1.0.2"
|
| 496 |
+
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
| 497 |
+
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
|
| 498 |
+
dependencies:
|
| 499 |
+
function-bind "^1.1.1"
|
| 500 |
+
get-intrinsic "^1.0.2"
|
| 501 |
+
|
| 502 |
+
caniuse-lite@^1.0.30001449:
|
| 503 |
+
version "1.0.30001478"
|
| 504 |
+
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz#0ef8a1cf8b16be47a0f9fc4ecfc952232724b32a"
|
| 505 |
+
integrity sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==
|
| 506 |
+
|
| 507 |
+
chalk@^2.0.0:
|
| 508 |
+
version "2.4.2"
|
| 509 |
+
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
| 510 |
+
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
| 511 |
+
dependencies:
|
| 512 |
+
ansi-styles "^3.2.1"
|
| 513 |
+
escape-string-regexp "^1.0.5"
|
| 514 |
+
supports-color "^5.3.0"
|
| 515 |
+
|
| 516 |
+
chalk@^4.1.2:
|
| 517 |
+
version "4.1.2"
|
| 518 |
+
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
| 519 |
+
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
|
| 520 |
+
dependencies:
|
| 521 |
+
ansi-styles "^4.1.0"
|
| 522 |
+
supports-color "^7.1.0"
|
| 523 |
+
|
| 524 |
+
cliui@^8.0.1:
|
| 525 |
+
version "8.0.1"
|
| 526 |
+
resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
|
| 527 |
+
integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
|
| 528 |
+
dependencies:
|
| 529 |
+
string-width "^4.2.0"
|
| 530 |
+
strip-ansi "^6.0.1"
|
| 531 |
+
wrap-ansi "^7.0.0"
|
| 532 |
+
|
| 533 |
+
color-convert@^1.9.0:
|
| 534 |
+
version "1.9.3"
|
| 535 |
+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
| 536 |
+
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
|
| 537 |
+
dependencies:
|
| 538 |
+
color-name "1.1.3"
|
| 539 |
+
|
| 540 |
+
color-convert@^2.0.1:
|
| 541 |
+
version "2.0.1"
|
| 542 |
+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
|
| 543 |
+
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
|
| 544 |
+
dependencies:
|
| 545 |
+
color-name "~1.1.4"
|
| 546 |
+
|
| 547 |
+
color-name@1.1.3:
|
| 548 |
+
version "1.1.3"
|
| 549 |
+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
| 550 |
+
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
|
| 551 |
+
|
| 552 |
+
color-name@~1.1.4:
|
| 553 |
+
version "1.1.4"
|
| 554 |
+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
| 555 |
+
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
| 556 |
+
|
| 557 |
+
concurrently@^8.0.1:
|
| 558 |
+
version "8.0.1"
|
| 559 |
+
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.0.1.tgz#80c0591920a9fa3e68ba0dd8aa6eac8487eb904c"
|
| 560 |
+
integrity sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA==
|
| 561 |
+
dependencies:
|
| 562 |
+
chalk "^4.1.2"
|
| 563 |
+
date-fns "^2.29.3"
|
| 564 |
+
lodash "^4.17.21"
|
| 565 |
+
rxjs "^7.8.0"
|
| 566 |
+
shell-quote "^1.8.0"
|
| 567 |
+
spawn-command "0.0.2-1"
|
| 568 |
+
supports-color "^8.1.1"
|
| 569 |
+
tree-kill "^1.2.2"
|
| 570 |
+
yargs "^17.7.1"
|
| 571 |
+
|
| 572 |
+
content-disposition@0.5.4:
|
| 573 |
+
version "0.5.4"
|
| 574 |
+
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
|
| 575 |
+
integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
|
| 576 |
+
dependencies:
|
| 577 |
+
safe-buffer "5.2.1"
|
| 578 |
+
|
| 579 |
+
content-type@~1.0.4:
|
| 580 |
+
version "1.0.5"
|
| 581 |
+
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
|
| 582 |
+
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
|
| 583 |
+
|
| 584 |
+
convert-source-map@^1.7.0:
|
| 585 |
+
version "1.9.0"
|
| 586 |
+
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
|
| 587 |
+
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
|
| 588 |
+
|
| 589 |
+
cookie-signature@1.0.6:
|
| 590 |
+
version "1.0.6"
|
| 591 |
+
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
|
| 592 |
+
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
|
| 593 |
+
|
| 594 |
+
cookie@0.5.0:
|
| 595 |
+
version "0.5.0"
|
| 596 |
+
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
|
| 597 |
+
integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
|
| 598 |
+
|
| 599 |
+
cookie@~0.4.1:
|
| 600 |
+
version "0.4.2"
|
| 601 |
+
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
|
| 602 |
+
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
|
| 603 |
+
|
| 604 |
+
cors@^2.8.5, cors@~2.8.5:
|
| 605 |
+
version "2.8.5"
|
| 606 |
+
resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
|
| 607 |
+
integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
|
| 608 |
+
dependencies:
|
| 609 |
+
object-assign "^4"
|
| 610 |
+
vary "^1"
|
| 611 |
+
|
| 612 |
+
csstype@^3.0.2:
|
| 613 |
+
version "3.1.2"
|
| 614 |
+
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
|
| 615 |
+
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
|
| 616 |
+
|
| 617 |
+
date-fns@^2.29.3:
|
| 618 |
+
version "2.29.3"
|
| 619 |
+
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
|
| 620 |
+
integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
|
| 621 |
+
|
| 622 |
+
debug@2.6.9:
|
| 623 |
+
version "2.6.9"
|
| 624 |
+
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
| 625 |
+
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
| 626 |
+
dependencies:
|
| 627 |
+
ms "2.0.0"
|
| 628 |
+
|
| 629 |
+
debug@^4.1.0, debug@~4.3.1, debug@~4.3.2:
|
| 630 |
+
version "4.3.4"
|
| 631 |
+
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
| 632 |
+
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
| 633 |
+
dependencies:
|
| 634 |
+
ms "2.1.2"
|
| 635 |
+
|
| 636 |
+
depd@2.0.0:
|
| 637 |
+
version "2.0.0"
|
| 638 |
+
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
|
| 639 |
+
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
|
| 640 |
+
|
| 641 |
+
destroy@1.2.0:
|
| 642 |
+
version "1.2.0"
|
| 643 |
+
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
|
| 644 |
+
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
|
| 645 |
+
|
| 646 |
+
dom-walk@^0.1.0:
|
| 647 |
+
version "0.1.2"
|
| 648 |
+
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
|
| 649 |
+
integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
|
| 650 |
+
|
| 651 |
+
ee-first@1.1.1:
|
| 652 |
+
version "1.1.1"
|
| 653 |
+
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
| 654 |
+
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
|
| 655 |
+
|
| 656 |
+
electron-to-chromium@^1.4.284:
|
| 657 |
+
version "1.4.365"
|
| 658 |
+
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.365.tgz#ccd9e352d4493aa288d87e6ea36f3edf350c045e"
|
| 659 |
+
integrity sha512-FRHZO+1tUNO4TOPXmlxetkoaIY8uwHzd1kKopK/Gx2SKn1L47wJXWD44wxP5CGRyyP98z/c8e1eBzJrgPeiBOg==
|
| 660 |
+
|
| 661 |
+
emoji-regex@^8.0.0:
|
| 662 |
+
version "8.0.0"
|
| 663 |
+
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
| 664 |
+
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
|
| 665 |
+
|
| 666 |
+
encodeurl@~1.0.2:
|
| 667 |
+
version "1.0.2"
|
| 668 |
+
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
| 669 |
+
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
|
| 670 |
+
|
| 671 |
+
engine.io-client@~6.4.0:
|
| 672 |
+
version "6.4.0"
|
| 673 |
+
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.4.0.tgz#88cd3082609ca86d7d3c12f0e746d12db4f47c91"
|
| 674 |
+
integrity sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==
|
| 675 |
+
dependencies:
|
| 676 |
+
"@socket.io/component-emitter" "~3.1.0"
|
| 677 |
+
debug "~4.3.1"
|
| 678 |
+
engine.io-parser "~5.0.3"
|
| 679 |
+
ws "~8.11.0"
|
| 680 |
+
xmlhttprequest-ssl "~2.0.0"
|
| 681 |
+
|
| 682 |
+
engine.io-parser@~5.0.3:
|
| 683 |
+
version "5.0.6"
|
| 684 |
+
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45"
|
| 685 |
+
integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==
|
| 686 |
+
|
| 687 |
+
engine.io@~6.4.1:
|
| 688 |
+
version "6.4.1"
|
| 689 |
+
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.4.1.tgz#8056b4526a88e779f9c280d820422d4e3eeaaae5"
|
| 690 |
+
integrity sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==
|
| 691 |
+
dependencies:
|
| 692 |
+
"@types/cookie" "^0.4.1"
|
| 693 |
+
"@types/cors" "^2.8.12"
|
| 694 |
+
"@types/node" ">=10.0.0"
|
| 695 |
+
accepts "~1.3.4"
|
| 696 |
+
base64id "2.0.0"
|
| 697 |
+
cookie "~0.4.1"
|
| 698 |
+
cors "~2.8.5"
|
| 699 |
+
debug "~4.3.1"
|
| 700 |
+
engine.io-parser "~5.0.3"
|
| 701 |
+
ws "~8.11.0"
|
| 702 |
+
|
| 703 |
+
esbuild@^0.17.5:
|
| 704 |
+
version "0.17.16"
|
| 705 |
+
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.16.tgz#5efec24a8ff29e0c157359f27e1b5532a728b720"
|
| 706 |
+
integrity sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==
|
| 707 |
+
optionalDependencies:
|
| 708 |
+
"@esbuild/android-arm" "0.17.16"
|
| 709 |
+
"@esbuild/android-arm64" "0.17.16"
|
| 710 |
+
"@esbuild/android-x64" "0.17.16"
|
| 711 |
+
"@esbuild/darwin-arm64" "0.17.16"
|
| 712 |
+
"@esbuild/darwin-x64" "0.17.16"
|
| 713 |
+
"@esbuild/freebsd-arm64" "0.17.16"
|
| 714 |
+
"@esbuild/freebsd-x64" "0.17.16"
|
| 715 |
+
"@esbuild/linux-arm" "0.17.16"
|
| 716 |
+
"@esbuild/linux-arm64" "0.17.16"
|
| 717 |
+
"@esbuild/linux-ia32" "0.17.16"
|
| 718 |
+
"@esbuild/linux-loong64" "0.17.16"
|
| 719 |
+
"@esbuild/linux-mips64el" "0.17.16"
|
| 720 |
+
"@esbuild/linux-ppc64" "0.17.16"
|
| 721 |
+
"@esbuild/linux-riscv64" "0.17.16"
|
| 722 |
+
"@esbuild/linux-s390x" "0.17.16"
|
| 723 |
+
"@esbuild/linux-x64" "0.17.16"
|
| 724 |
+
"@esbuild/netbsd-x64" "0.17.16"
|
| 725 |
+
"@esbuild/openbsd-x64" "0.17.16"
|
| 726 |
+
"@esbuild/sunos-x64" "0.17.16"
|
| 727 |
+
"@esbuild/win32-arm64" "0.17.16"
|
| 728 |
+
"@esbuild/win32-ia32" "0.17.16"
|
| 729 |
+
"@esbuild/win32-x64" "0.17.16"
|
| 730 |
+
|
| 731 |
+
escalade@^3.1.1:
|
| 732 |
+
version "3.1.1"
|
| 733 |
+
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
| 734 |
+
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
|
| 735 |
+
|
| 736 |
+
escape-html@~1.0.3:
|
| 737 |
+
version "1.0.3"
|
| 738 |
+
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
| 739 |
+
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
|
| 740 |
+
|
| 741 |
+
escape-string-regexp@^1.0.5:
|
| 742 |
+
version "1.0.5"
|
| 743 |
+
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
| 744 |
+
integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
|
| 745 |
+
|
| 746 |
+
etag@~1.8.1:
|
| 747 |
+
version "1.8.1"
|
| 748 |
+
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
| 749 |
+
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
|
| 750 |
+
|
| 751 |
+
express@^4.18.2:
|
| 752 |
+
version "4.18.2"
|
| 753 |
+
resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
|
| 754 |
+
integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
|
| 755 |
+
dependencies:
|
| 756 |
+
accepts "~1.3.8"
|
| 757 |
+
array-flatten "1.1.1"
|
| 758 |
+
body-parser "1.20.1"
|
| 759 |
+
content-disposition "0.5.4"
|
| 760 |
+
content-type "~1.0.4"
|
| 761 |
+
cookie "0.5.0"
|
| 762 |
+
cookie-signature "1.0.6"
|
| 763 |
+
debug "2.6.9"
|
| 764 |
+
depd "2.0.0"
|
| 765 |
+
encodeurl "~1.0.2"
|
| 766 |
+
escape-html "~1.0.3"
|
| 767 |
+
etag "~1.8.1"
|
| 768 |
+
finalhandler "1.2.0"
|
| 769 |
+
fresh "0.5.2"
|
| 770 |
+
http-errors "2.0.0"
|
| 771 |
+
merge-descriptors "1.0.1"
|
| 772 |
+
methods "~1.1.2"
|
| 773 |
+
on-finished "2.4.1"
|
| 774 |
+
parseurl "~1.3.3"
|
| 775 |
+
path-to-regexp "0.1.7"
|
| 776 |
+
proxy-addr "~2.0.7"
|
| 777 |
+
qs "6.11.0"
|
| 778 |
+
range-parser "~1.2.1"
|
| 779 |
+
safe-buffer "5.2.1"
|
| 780 |
+
send "0.18.0"
|
| 781 |
+
serve-static "1.15.0"
|
| 782 |
+
setprototypeof "1.2.0"
|
| 783 |
+
statuses "2.0.1"
|
| 784 |
+
type-is "~1.6.18"
|
| 785 |
+
utils-merge "1.0.1"
|
| 786 |
+
vary "~1.1.2"
|
| 787 |
+
|
| 788 |
+
finalhandler@1.2.0:
|
| 789 |
+
version "1.2.0"
|
| 790 |
+
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
|
| 791 |
+
integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
|
| 792 |
+
dependencies:
|
| 793 |
+
debug "2.6.9"
|
| 794 |
+
encodeurl "~1.0.2"
|
| 795 |
+
escape-html "~1.0.3"
|
| 796 |
+
on-finished "2.4.1"
|
| 797 |
+
parseurl "~1.3.3"
|
| 798 |
+
statuses "2.0.1"
|
| 799 |
+
unpipe "~1.0.0"
|
| 800 |
+
|
| 801 |
+
forwarded@0.2.0:
|
| 802 |
+
version "0.2.0"
|
| 803 |
+
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
| 804 |
+
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
|
| 805 |
+
|
| 806 |
+
fresh@0.5.2:
|
| 807 |
+
version "0.5.2"
|
| 808 |
+
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
| 809 |
+
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
|
| 810 |
+
|
| 811 |
+
fsevents@~2.3.2:
|
| 812 |
+
version "2.3.2"
|
| 813 |
+
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
| 814 |
+
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
| 815 |
+
|
| 816 |
+
function-bind@^1.1.1:
|
| 817 |
+
version "1.1.1"
|
| 818 |
+
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
| 819 |
+
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
| 820 |
+
|
| 821 |
+
gensync@^1.0.0-beta.2:
|
| 822 |
+
version "1.0.0-beta.2"
|
| 823 |
+
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
| 824 |
+
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
| 825 |
+
|
| 826 |
+
get-caller-file@^2.0.5:
|
| 827 |
+
version "2.0.5"
|
| 828 |
+
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
| 829 |
+
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
| 830 |
+
|
| 831 |
+
get-intrinsic@^1.0.2:
|
| 832 |
+
version "1.2.0"
|
| 833 |
+
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f"
|
| 834 |
+
integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==
|
| 835 |
+
dependencies:
|
| 836 |
+
function-bind "^1.1.1"
|
| 837 |
+
has "^1.0.3"
|
| 838 |
+
has-symbols "^1.0.3"
|
| 839 |
+
|
| 840 |
+
global@^4.4.0:
|
| 841 |
+
version "4.4.0"
|
| 842 |
+
resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
|
| 843 |
+
integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
|
| 844 |
+
dependencies:
|
| 845 |
+
min-document "^2.19.0"
|
| 846 |
+
process "^0.11.10"
|
| 847 |
+
|
| 848 |
+
globals@^11.1.0:
|
| 849 |
+
version "11.12.0"
|
| 850 |
+
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
| 851 |
+
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
| 852 |
+
|
| 853 |
+
has-flag@^3.0.0:
|
| 854 |
+
version "3.0.0"
|
| 855 |
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
| 856 |
+
integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
|
| 857 |
+
|
| 858 |
+
has-flag@^4.0.0:
|
| 859 |
+
version "4.0.0"
|
| 860 |
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
| 861 |
+
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
| 862 |
+
|
| 863 |
+
has-symbols@^1.0.3:
|
| 864 |
+
version "1.0.3"
|
| 865 |
+
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
| 866 |
+
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
|
| 867 |
+
|
| 868 |
+
has@^1.0.3:
|
| 869 |
+
version "1.0.3"
|
| 870 |
+
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
| 871 |
+
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
| 872 |
+
dependencies:
|
| 873 |
+
function-bind "^1.1.1"
|
| 874 |
+
|
| 875 |
+
http-errors@2.0.0:
|
| 876 |
+
version "2.0.0"
|
| 877 |
+
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
|
| 878 |
+
integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
|
| 879 |
+
dependencies:
|
| 880 |
+
depd "2.0.0"
|
| 881 |
+
inherits "2.0.4"
|
| 882 |
+
setprototypeof "1.2.0"
|
| 883 |
+
statuses "2.0.1"
|
| 884 |
+
toidentifier "1.0.1"
|
| 885 |
+
|
| 886 |
+
http@^0.0.1-security:
|
| 887 |
+
version "0.0.1-security"
|
| 888 |
+
resolved "https://registry.yarnpkg.com/http/-/http-0.0.1-security.tgz#3aac09129d12dc2747bbce4157afde20ad1f7995"
|
| 889 |
+
integrity sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==
|
| 890 |
+
|
| 891 |
+
iconv-lite@0.4.24:
|
| 892 |
+
version "0.4.24"
|
| 893 |
+
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
| 894 |
+
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
| 895 |
+
dependencies:
|
| 896 |
+
safer-buffer ">= 2.1.2 < 3"
|
| 897 |
+
|
| 898 |
+
inherits@2.0.4:
|
| 899 |
+
version "2.0.4"
|
| 900 |
+
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
| 901 |
+
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
| 902 |
+
|
| 903 |
+
ipaddr.js@1.9.1:
|
| 904 |
+
version "1.9.1"
|
| 905 |
+
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
| 906 |
+
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
|
| 907 |
+
|
| 908 |
+
is-core-module@^2.12.0:
|
| 909 |
+
version "2.12.0"
|
| 910 |
+
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4"
|
| 911 |
+
integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==
|
| 912 |
+
dependencies:
|
| 913 |
+
has "^1.0.3"
|
| 914 |
+
|
| 915 |
+
is-fullwidth-code-point@^3.0.0:
|
| 916 |
+
version "3.0.0"
|
| 917 |
+
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
|
| 918 |
+
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
|
| 919 |
+
|
| 920 |
+
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
|
| 921 |
+
version "4.0.0"
|
| 922 |
+
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
| 923 |
+
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
|
| 924 |
+
|
| 925 |
+
jsesc@^2.5.1:
|
| 926 |
+
version "2.5.2"
|
| 927 |
+
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
|
| 928 |
+
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
|
| 929 |
+
|
| 930 |
+
json5@^2.2.2:
|
| 931 |
+
version "2.2.3"
|
| 932 |
+
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
|
| 933 |
+
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
|
| 934 |
+
|
| 935 |
+
lodash@^4.17.21:
|
| 936 |
+
version "4.17.21"
|
| 937 |
+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
| 938 |
+
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
| 939 |
+
|
| 940 |
+
loose-envify@^1.1.0:
|
| 941 |
+
version "1.4.0"
|
| 942 |
+
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
| 943 |
+
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
| 944 |
+
dependencies:
|
| 945 |
+
js-tokens "^3.0.0 || ^4.0.0"
|
| 946 |
+
|
| 947 |
+
lru-cache@^5.1.1:
|
| 948 |
+
version "5.1.1"
|
| 949 |
+
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
|
| 950 |
+
integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
|
| 951 |
+
dependencies:
|
| 952 |
+
yallist "^3.0.2"
|
| 953 |
+
|
| 954 |
+
magic-string@^0.27.0:
|
| 955 |
+
version "0.27.0"
|
| 956 |
+
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3"
|
| 957 |
+
integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
|
| 958 |
+
dependencies:
|
| 959 |
+
"@jridgewell/sourcemap-codec" "^1.4.13"
|
| 960 |
+
|
| 961 |
+
media-typer@0.3.0:
|
| 962 |
+
version "0.3.0"
|
| 963 |
+
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
|
| 964 |
+
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
|
| 965 |
+
|
| 966 |
+
merge-descriptors@1.0.1:
|
| 967 |
+
version "1.0.1"
|
| 968 |
+
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
| 969 |
+
integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
|
| 970 |
+
|
| 971 |
+
methods@~1.1.2:
|
| 972 |
+
version "1.1.2"
|
| 973 |
+
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
| 974 |
+
integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
|
| 975 |
+
|
| 976 |
+
mime-db@1.52.0:
|
| 977 |
+
version "1.52.0"
|
| 978 |
+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
| 979 |
+
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
| 980 |
+
|
| 981 |
+
mime-types@~2.1.24, mime-types@~2.1.34:
|
| 982 |
+
version "2.1.35"
|
| 983 |
+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
| 984 |
+
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
| 985 |
+
dependencies:
|
| 986 |
+
mime-db "1.52.0"
|
| 987 |
+
|
| 988 |
+
mime@1.6.0:
|
| 989 |
+
version "1.6.0"
|
| 990 |
+
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
| 991 |
+
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
|
| 992 |
+
|
| 993 |
+
min-document@^2.19.0:
|
| 994 |
+
version "2.19.0"
|
| 995 |
+
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
|
| 996 |
+
integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==
|
| 997 |
+
dependencies:
|
| 998 |
+
dom-walk "^0.1.0"
|
| 999 |
+
|
| 1000 |
+
ms@2.0.0:
|
| 1001 |
+
version "2.0.0"
|
| 1002 |
+
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
| 1003 |
+
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
|
| 1004 |
+
|
| 1005 |
+
ms@2.1.2:
|
| 1006 |
+
version "2.1.2"
|
| 1007 |
+
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
| 1008 |
+
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
| 1009 |
+
|
| 1010 |
+
ms@2.1.3:
|
| 1011 |
+
version "2.1.3"
|
| 1012 |
+
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
| 1013 |
+
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
| 1014 |
+
|
| 1015 |
+
nanoid@^3.3.4:
|
| 1016 |
+
version "3.3.6"
|
| 1017 |
+
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
|
| 1018 |
+
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
|
| 1019 |
+
|
| 1020 |
+
negotiator@0.6.3:
|
| 1021 |
+
version "0.6.3"
|
| 1022 |
+
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
|
| 1023 |
+
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
|
| 1024 |
+
|
| 1025 |
+
node-releases@^2.0.8:
|
| 1026 |
+
version "2.0.10"
|
| 1027 |
+
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
|
| 1028 |
+
integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
|
| 1029 |
+
|
| 1030 |
+
object-assign@^4:
|
| 1031 |
+
version "4.1.1"
|
| 1032 |
+
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
| 1033 |
+
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
|
| 1034 |
+
|
| 1035 |
+
object-inspect@^1.9.0:
|
| 1036 |
+
version "1.12.3"
|
| 1037 |
+
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
|
| 1038 |
+
integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
|
| 1039 |
+
|
| 1040 |
+
on-finished@2.4.1:
|
| 1041 |
+
version "2.4.1"
|
| 1042 |
+
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
|
| 1043 |
+
integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
|
| 1044 |
+
dependencies:
|
| 1045 |
+
ee-first "1.1.1"
|
| 1046 |
+
|
| 1047 |
+
parseurl@~1.3.3:
|
| 1048 |
+
version "1.3.3"
|
| 1049 |
+
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
|
| 1050 |
+
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
|
| 1051 |
+
|
| 1052 |
+
path-parse@^1.0.7:
|
| 1053 |
+
version "1.0.7"
|
| 1054 |
+
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
| 1055 |
+
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
| 1056 |
+
|
| 1057 |
+
path-to-regexp@0.1.7:
|
| 1058 |
+
version "0.1.7"
|
| 1059 |
+
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
| 1060 |
+
integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
|
| 1061 |
+
|
| 1062 |
+
picocolors@^1.0.0:
|
| 1063 |
+
version "1.0.0"
|
| 1064 |
+
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
| 1065 |
+
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
| 1066 |
+
|
| 1067 |
+
postcss@^8.4.21:
|
| 1068 |
+
version "8.4.21"
|
| 1069 |
+
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
|
| 1070 |
+
integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
|
| 1071 |
+
dependencies:
|
| 1072 |
+
nanoid "^3.3.4"
|
| 1073 |
+
picocolors "^1.0.0"
|
| 1074 |
+
source-map-js "^1.0.2"
|
| 1075 |
+
|
| 1076 |
+
process@^0.11.10:
|
| 1077 |
+
version "0.11.10"
|
| 1078 |
+
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
| 1079 |
+
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
|
| 1080 |
+
|
| 1081 |
+
proxy-addr@~2.0.7:
|
| 1082 |
+
version "2.0.7"
|
| 1083 |
+
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
|
| 1084 |
+
integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
|
| 1085 |
+
dependencies:
|
| 1086 |
+
forwarded "0.2.0"
|
| 1087 |
+
ipaddr.js "1.9.1"
|
| 1088 |
+
|
| 1089 |
+
qs@6.11.0:
|
| 1090 |
+
version "6.11.0"
|
| 1091 |
+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
|
| 1092 |
+
integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
|
| 1093 |
+
dependencies:
|
| 1094 |
+
side-channel "^1.0.4"
|
| 1095 |
+
|
| 1096 |
+
range-parser@~1.2.1:
|
| 1097 |
+
version "1.2.1"
|
| 1098 |
+
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
|
| 1099 |
+
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
|
| 1100 |
+
|
| 1101 |
+
raw-body@2.5.1:
|
| 1102 |
+
version "2.5.1"
|
| 1103 |
+
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
|
| 1104 |
+
integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
|
| 1105 |
+
dependencies:
|
| 1106 |
+
bytes "3.1.2"
|
| 1107 |
+
http-errors "2.0.0"
|
| 1108 |
+
iconv-lite "0.4.24"
|
| 1109 |
+
unpipe "1.0.0"
|
| 1110 |
+
|
| 1111 |
+
react-dom@^18.2.0:
|
| 1112 |
+
version "18.2.0"
|
| 1113 |
+
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
|
| 1114 |
+
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
|
| 1115 |
+
dependencies:
|
| 1116 |
+
loose-envify "^1.1.0"
|
| 1117 |
+
scheduler "^0.23.0"
|
| 1118 |
+
|
| 1119 |
+
react-refresh@^0.14.0:
|
| 1120 |
+
version "0.14.0"
|
| 1121 |
+
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e"
|
| 1122 |
+
integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==
|
| 1123 |
+
|
| 1124 |
+
react@^18.2.0:
|
| 1125 |
+
version "18.2.0"
|
| 1126 |
+
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
|
| 1127 |
+
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
|
| 1128 |
+
dependencies:
|
| 1129 |
+
loose-envify "^1.1.0"
|
| 1130 |
+
|
| 1131 |
+
require-directory@^2.1.1:
|
| 1132 |
+
version "2.1.1"
|
| 1133 |
+
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
| 1134 |
+
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
|
| 1135 |
+
|
| 1136 |
+
resolve@^1.22.1:
|
| 1137 |
+
version "1.22.3"
|
| 1138 |
+
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.3.tgz#4b4055349ffb962600972da1fdc33c46a4eb3283"
|
| 1139 |
+
integrity sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==
|
| 1140 |
+
dependencies:
|
| 1141 |
+
is-core-module "^2.12.0"
|
| 1142 |
+
path-parse "^1.0.7"
|
| 1143 |
+
supports-preserve-symlinks-flag "^1.0.0"
|
| 1144 |
+
|
| 1145 |
+
rollup@^3.18.0:
|
| 1146 |
+
version "3.20.2"
|
| 1147 |
+
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.20.2.tgz#f798c600317f216de2e4ad9f4d9ab30a89b690ff"
|
| 1148 |
+
integrity sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==
|
| 1149 |
+
optionalDependencies:
|
| 1150 |
+
fsevents "~2.3.2"
|
| 1151 |
+
|
| 1152 |
+
rxjs@^7.8.0:
|
| 1153 |
+
version "7.8.0"
|
| 1154 |
+
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4"
|
| 1155 |
+
integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==
|
| 1156 |
+
dependencies:
|
| 1157 |
+
tslib "^2.1.0"
|
| 1158 |
+
|
| 1159 |
+
safe-buffer@5.2.1:
|
| 1160 |
+
version "5.2.1"
|
| 1161 |
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
| 1162 |
+
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
| 1163 |
+
|
| 1164 |
+
"safer-buffer@>= 2.1.2 < 3":
|
| 1165 |
+
version "2.1.2"
|
| 1166 |
+
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
| 1167 |
+
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
| 1168 |
+
|
| 1169 |
+
scheduler@^0.23.0:
|
| 1170 |
+
version "0.23.0"
|
| 1171 |
+
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
|
| 1172 |
+
integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
|
| 1173 |
+
dependencies:
|
| 1174 |
+
loose-envify "^1.1.0"
|
| 1175 |
+
|
| 1176 |
+
semver@^6.3.0:
|
| 1177 |
+
version "6.3.0"
|
| 1178 |
+
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
| 1179 |
+
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
| 1180 |
+
|
| 1181 |
+
send@0.18.0:
|
| 1182 |
+
version "0.18.0"
|
| 1183 |
+
resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
|
| 1184 |
+
integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
|
| 1185 |
+
dependencies:
|
| 1186 |
+
debug "2.6.9"
|
| 1187 |
+
depd "2.0.0"
|
| 1188 |
+
destroy "1.2.0"
|
| 1189 |
+
encodeurl "~1.0.2"
|
| 1190 |
+
escape-html "~1.0.3"
|
| 1191 |
+
etag "~1.8.1"
|
| 1192 |
+
fresh "0.5.2"
|
| 1193 |
+
http-errors "2.0.0"
|
| 1194 |
+
mime "1.6.0"
|
| 1195 |
+
ms "2.1.3"
|
| 1196 |
+
on-finished "2.4.1"
|
| 1197 |
+
range-parser "~1.2.1"
|
| 1198 |
+
statuses "2.0.1"
|
| 1199 |
+
|
| 1200 |
+
serve-static@1.15.0:
|
| 1201 |
+
version "1.15.0"
|
| 1202 |
+
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
|
| 1203 |
+
integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
|
| 1204 |
+
dependencies:
|
| 1205 |
+
encodeurl "~1.0.2"
|
| 1206 |
+
escape-html "~1.0.3"
|
| 1207 |
+
parseurl "~1.3.3"
|
| 1208 |
+
send "0.18.0"
|
| 1209 |
+
|
| 1210 |
+
setprototypeof@1.2.0:
|
| 1211 |
+
version "1.2.0"
|
| 1212 |
+
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
|
| 1213 |
+
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
|
| 1214 |
+
|
| 1215 |
+
shell-quote@^1.8.0:
|
| 1216 |
+
version "1.8.1"
|
| 1217 |
+
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
|
| 1218 |
+
integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
|
| 1219 |
+
|
| 1220 |
+
side-channel@^1.0.4:
|
| 1221 |
+
version "1.0.4"
|
| 1222 |
+
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
|
| 1223 |
+
integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
|
| 1224 |
+
dependencies:
|
| 1225 |
+
call-bind "^1.0.0"
|
| 1226 |
+
get-intrinsic "^1.0.2"
|
| 1227 |
+
object-inspect "^1.9.0"
|
| 1228 |
+
|
| 1229 |
+
socket.io-adapter@~2.5.2:
|
| 1230 |
+
version "2.5.2"
|
| 1231 |
+
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz#5de9477c9182fdc171cd8c8364b9a8894ec75d12"
|
| 1232 |
+
integrity sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==
|
| 1233 |
+
dependencies:
|
| 1234 |
+
ws "~8.11.0"
|
| 1235 |
+
|
| 1236 |
+
socket.io-client@^4.6.1:
|
| 1237 |
+
version "4.6.1"
|
| 1238 |
+
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.6.1.tgz#80d97d5eb0feca448a0fb6d69a7b222d3d547eab"
|
| 1239 |
+
integrity sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==
|
| 1240 |
+
dependencies:
|
| 1241 |
+
"@socket.io/component-emitter" "~3.1.0"
|
| 1242 |
+
debug "~4.3.2"
|
| 1243 |
+
engine.io-client "~6.4.0"
|
| 1244 |
+
socket.io-parser "~4.2.1"
|
| 1245 |
+
|
| 1246 |
+
socket.io-parser@~4.2.1:
|
| 1247 |
+
version "4.2.2"
|
| 1248 |
+
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206"
|
| 1249 |
+
integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==
|
| 1250 |
+
dependencies:
|
| 1251 |
+
"@socket.io/component-emitter" "~3.1.0"
|
| 1252 |
+
debug "~4.3.1"
|
| 1253 |
+
|
| 1254 |
+
socket.io@^4.6.1:
|
| 1255 |
+
version "4.6.1"
|
| 1256 |
+
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.6.1.tgz#62ec117e5fce0692fa50498da9347cfb52c3bc70"
|
| 1257 |
+
integrity sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==
|
| 1258 |
+
dependencies:
|
| 1259 |
+
accepts "~1.3.4"
|
| 1260 |
+
base64id "~2.0.0"
|
| 1261 |
+
debug "~4.3.2"
|
| 1262 |
+
engine.io "~6.4.1"
|
| 1263 |
+
socket.io-adapter "~2.5.2"
|
| 1264 |
+
socket.io-parser "~4.2.1"
|
| 1265 |
+
|
| 1266 |
+
source-map-js@^1.0.2:
|
| 1267 |
+
version "1.0.2"
|
| 1268 |
+
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
| 1269 |
+
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
| 1270 |
+
|
| 1271 |
+
spawn-command@0.0.2-1:
|
| 1272 |
+
version "0.0.2-1"
|
| 1273 |
+
resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0"
|
| 1274 |
+
integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==
|
| 1275 |
+
|
| 1276 |
+
statuses@2.0.1:
|
| 1277 |
+
version "2.0.1"
|
| 1278 |
+
resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
|
| 1279 |
+
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
|
| 1280 |
+
|
| 1281 |
+
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
| 1282 |
+
version "4.2.3"
|
| 1283 |
+
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
| 1284 |
+
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
| 1285 |
+
dependencies:
|
| 1286 |
+
emoji-regex "^8.0.0"
|
| 1287 |
+
is-fullwidth-code-point "^3.0.0"
|
| 1288 |
+
strip-ansi "^6.0.1"
|
| 1289 |
+
|
| 1290 |
+
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
| 1291 |
+
version "6.0.1"
|
| 1292 |
+
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
| 1293 |
+
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
| 1294 |
+
dependencies:
|
| 1295 |
+
ansi-regex "^5.0.1"
|
| 1296 |
+
|
| 1297 |
+
supports-color@^5.3.0:
|
| 1298 |
+
version "5.5.0"
|
| 1299 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
|
| 1300 |
+
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
|
| 1301 |
+
dependencies:
|
| 1302 |
+
has-flag "^3.0.0"
|
| 1303 |
+
|
| 1304 |
+
supports-color@^7.1.0:
|
| 1305 |
+
version "7.2.0"
|
| 1306 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
|
| 1307 |
+
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
|
| 1308 |
+
dependencies:
|
| 1309 |
+
has-flag "^4.0.0"
|
| 1310 |
+
|
| 1311 |
+
supports-color@^8.1.1:
|
| 1312 |
+
version "8.1.1"
|
| 1313 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
| 1314 |
+
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
| 1315 |
+
dependencies:
|
| 1316 |
+
has-flag "^4.0.0"
|
| 1317 |
+
|
| 1318 |
+
supports-preserve-symlinks-flag@^1.0.0:
|
| 1319 |
+
version "1.0.0"
|
| 1320 |
+
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
| 1321 |
+
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
| 1322 |
+
|
| 1323 |
+
to-fast-properties@^2.0.0:
|
| 1324 |
+
version "2.0.0"
|
| 1325 |
+
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
| 1326 |
+
integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
|
| 1327 |
+
|
| 1328 |
+
toidentifier@1.0.1:
|
| 1329 |
+
version "1.0.1"
|
| 1330 |
+
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
|
| 1331 |
+
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
|
| 1332 |
+
|
| 1333 |
+
tree-kill@^1.2.2:
|
| 1334 |
+
version "1.2.2"
|
| 1335 |
+
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
|
| 1336 |
+
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
|
| 1337 |
+
|
| 1338 |
+
tslib@^2.1.0:
|
| 1339 |
+
version "2.5.0"
|
| 1340 |
+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf"
|
| 1341 |
+
integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==
|
| 1342 |
+
|
| 1343 |
+
type-is@~1.6.18:
|
| 1344 |
+
version "1.6.18"
|
| 1345 |
+
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
|
| 1346 |
+
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
|
| 1347 |
+
dependencies:
|
| 1348 |
+
media-typer "0.3.0"
|
| 1349 |
+
mime-types "~2.1.24"
|
| 1350 |
+
|
| 1351 |
+
typescript@^4.9.3:
|
| 1352 |
+
version "4.9.5"
|
| 1353 |
+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
|
| 1354 |
+
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
|
| 1355 |
+
|
| 1356 |
+
unpipe@1.0.0, unpipe@~1.0.0:
|
| 1357 |
+
version "1.0.0"
|
| 1358 |
+
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
| 1359 |
+
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
|
| 1360 |
+
|
| 1361 |
+
update-browserslist-db@^1.0.10:
|
| 1362 |
+
version "1.0.11"
|
| 1363 |
+
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
|
| 1364 |
+
integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
|
| 1365 |
+
dependencies:
|
| 1366 |
+
escalade "^3.1.1"
|
| 1367 |
+
picocolors "^1.0.0"
|
| 1368 |
+
|
| 1369 |
+
utils-merge@1.0.1:
|
| 1370 |
+
version "1.0.1"
|
| 1371 |
+
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
| 1372 |
+
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
|
| 1373 |
+
|
| 1374 |
+
uuid@^9.0.0:
|
| 1375 |
+
version "9.0.0"
|
| 1376 |
+
resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
|
| 1377 |
+
integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
|
| 1378 |
+
|
| 1379 |
+
vary@^1, vary@~1.1.2:
|
| 1380 |
+
version "1.1.2"
|
| 1381 |
+
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
| 1382 |
+
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
|
| 1383 |
+
|
| 1384 |
+
vite@^4.2.0:
|
| 1385 |
+
version "4.2.1"
|
| 1386 |
+
resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.1.tgz#6c2eb337b0dfd80a9ded5922163b94949d7fc254"
|
| 1387 |
+
integrity sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==
|
| 1388 |
+
dependencies:
|
| 1389 |
+
esbuild "^0.17.5"
|
| 1390 |
+
postcss "^8.4.21"
|
| 1391 |
+
resolve "^1.22.1"
|
| 1392 |
+
rollup "^3.18.0"
|
| 1393 |
+
optionalDependencies:
|
| 1394 |
+
fsevents "~2.3.2"
|
| 1395 |
+
|
| 1396 |
+
wrap-ansi@^7.0.0:
|
| 1397 |
+
version "7.0.0"
|
| 1398 |
+
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
| 1399 |
+
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
| 1400 |
+
dependencies:
|
| 1401 |
+
ansi-styles "^4.0.0"
|
| 1402 |
+
string-width "^4.1.0"
|
| 1403 |
+
strip-ansi "^6.0.0"
|
| 1404 |
+
|
| 1405 |
+
ws@~8.11.0:
|
| 1406 |
+
version "8.11.0"
|
| 1407 |
+
resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
|
| 1408 |
+
integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
|
| 1409 |
+
|
| 1410 |
+
xmlhttprequest-ssl@~2.0.0:
|
| 1411 |
+
version "2.0.0"
|
| 1412 |
+
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67"
|
| 1413 |
+
integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==
|
| 1414 |
+
|
| 1415 |
+
y18n@^5.0.5:
|
| 1416 |
+
version "5.0.8"
|
| 1417 |
+
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
|
| 1418 |
+
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
|
| 1419 |
+
|
| 1420 |
+
yallist@^3.0.2:
|
| 1421 |
+
version "3.1.1"
|
| 1422 |
+
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
| 1423 |
+
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
|
| 1424 |
+
|
| 1425 |
+
yargs-parser@^21.1.1:
|
| 1426 |
+
version "21.1.1"
|
| 1427 |
+
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
|
| 1428 |
+
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
|
| 1429 |
+
|
| 1430 |
+
yargs@^17.7.1:
|
| 1431 |
+
version "17.7.1"
|
| 1432 |
+
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967"
|
| 1433 |
+
integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==
|
| 1434 |
+
dependencies:
|
| 1435 |
+
cliui "^8.0.1"
|
| 1436 |
+
escalade "^3.1.1"
|
| 1437 |
+
get-caller-file "^2.0.5"
|
| 1438 |
+
require-directory "^2.1.1"
|
| 1439 |
+
string-width "^4.2.3"
|
| 1440 |
+
y18n "^5.0.5"
|
| 1441 |
+
yargs-parser "^21.1.1"
|
README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
---
|
| 2 |
title: FreedomGPT
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: docker
|
| 7 |
pinned: false
|
| 8 |
---
|
|
|
|
| 1 |
---
|
| 2 |
title: FreedomGPT
|
| 3 |
+
emoji: 🐨
|
| 4 |
+
colorFrom: green
|
| 5 |
+
colorTo: yellow
|
| 6 |
sdk: docker
|
| 7 |
pinned: false
|
| 8 |
---
|
index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8" />
|
| 5 |
+
<link rel="icon" type="image/svg+xml" href="logo.png" />
|
| 6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
+
<title>FreedomGPT</title>
|
| 8 |
+
</head>
|
| 9 |
+
<body>
|
| 10 |
+
<div id="root"></div>
|
| 11 |
+
<script type="module" src="/src/main.tsx"></script>
|
| 12 |
+
</body>
|
| 13 |
+
</html>
|
logo.png
ADDED
|
package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "client",
|
| 3 |
+
"private": true,
|
| 4 |
+
"version": "0.0.0",
|
| 5 |
+
"type": "module",
|
| 6 |
+
"scripts": {
|
| 7 |
+
"dev": "vite",
|
| 8 |
+
"build": "tsc && vite build",
|
| 9 |
+
"preview": "vite preview",
|
| 10 |
+
"start": "node server.js"
|
| 11 |
+
},
|
| 12 |
+
"dependencies": {
|
| 13 |
+
"concurrently": "^8.0.1",
|
| 14 |
+
"cors": "^2.8.5",
|
| 15 |
+
"express": "^4.18.2",
|
| 16 |
+
"global": "^4.4.0",
|
| 17 |
+
"http": "^0.0.1-security",
|
| 18 |
+
"react": "^18.2.0",
|
| 19 |
+
"react-dom": "^18.2.0",
|
| 20 |
+
"socket.io": "^4.6.1",
|
| 21 |
+
"socket.io-client": "^4.6.1",
|
| 22 |
+
"uuid": "^9.0.0"
|
| 23 |
+
},
|
| 24 |
+
"devDependencies": {
|
| 25 |
+
"@types/react": "^18.0.28",
|
| 26 |
+
"@types/react-dom": "^18.0.11",
|
| 27 |
+
"@types/uuid": "^9.0.1",
|
| 28 |
+
"@vitejs/plugin-react": "^3.1.0",
|
| 29 |
+
"typescript": "^4.9.3",
|
| 30 |
+
"vite": "^4.2.0"
|
| 31 |
+
}
|
| 32 |
+
}
|
public/vite.svg
ADDED
|
|
server.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { spawn } from "child_process";
|
| 2 |
+
import express from "express";
|
| 3 |
+
import http from "http";
|
| 4 |
+
import path from "path";
|
| 5 |
+
import { Server } from "socket.io";
|
| 6 |
+
|
| 7 |
+
const expressapp = express();
|
| 8 |
+
const server = http.createServer(expressapp);
|
| 9 |
+
const io = new Server(server, {
|
| 10 |
+
cors: {
|
| 11 |
+
origin: "*",
|
| 12 |
+
methods: ["GET", "POST"],
|
| 13 |
+
},
|
| 14 |
+
});
|
| 15 |
+
|
| 16 |
+
const EXPRESSPORT = 7860;
|
| 17 |
+
|
| 18 |
+
let numClients = 0;
|
| 19 |
+
|
| 20 |
+
expressapp.use(
|
| 21 |
+
"/assets",
|
| 22 |
+
express.static(path.join(process.cwd(), "dist/assets"))
|
| 23 |
+
);
|
| 24 |
+
|
| 25 |
+
expressapp.get("*", (req, res) => {
|
| 26 |
+
res.sendFile(path.join(process.cwd(), "dist/index.html"));
|
| 27 |
+
});
|
| 28 |
+
|
| 29 |
+
io.on("connection", (socket) => {
|
| 30 |
+
if (numClients === 1) {
|
| 31 |
+
console.log("Only one client allowed");
|
| 32 |
+
socket.disconnect();
|
| 33 |
+
return;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
numClients++;
|
| 37 |
+
|
| 38 |
+
console.log("Client Connected");
|
| 39 |
+
const CHAT_APP_LOCATION = path.join(process.cwd(), "/chat");
|
| 40 |
+
const FILEPATH = path.join(process.cwd(), "/ggml-alpaca-7b-q4.bin");
|
| 41 |
+
|
| 42 |
+
let program = spawn(CHAT_APP_LOCATION, ["-m", FILEPATH]);
|
| 43 |
+
|
| 44 |
+
socket.on("chatstart", () => {
|
| 45 |
+
program = spawn(CHAT_APP_LOCATION, ["-m", FILEPATH]);
|
| 46 |
+
});
|
| 47 |
+
|
| 48 |
+
program.on("error", (err) => {
|
| 49 |
+
console.error(err);
|
| 50 |
+
});
|
| 51 |
+
|
| 52 |
+
socket.on("stopResponding", () => {
|
| 53 |
+
program.kill();
|
| 54 |
+
program = null;
|
| 55 |
+
socket.emit("chatend");
|
| 56 |
+
});
|
| 57 |
+
|
| 58 |
+
socket.on("message", (message) => {
|
| 59 |
+
program.stdin.write(message + "\n");
|
| 60 |
+
|
| 61 |
+
let closing = "";
|
| 62 |
+
program.stdout.on("data", (data) => {
|
| 63 |
+
let output = data.toString("utf8");
|
| 64 |
+
|
| 65 |
+
if (output.includes(">")) {
|
| 66 |
+
closing = closing.concat(">");
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
output = output.replace(">", "");
|
| 70 |
+
|
| 71 |
+
const response = { result: "success", output: output };
|
| 72 |
+
socket.emit("response", response);
|
| 73 |
+
|
| 74 |
+
if (closing.includes(">>")) {
|
| 75 |
+
program.kill();
|
| 76 |
+
program = null;
|
| 77 |
+
socket.emit("chatend");
|
| 78 |
+
}
|
| 79 |
+
});
|
| 80 |
+
});
|
| 81 |
+
|
| 82 |
+
socket.on("disconnect", () => {
|
| 83 |
+
numClients--;
|
| 84 |
+
program.kill();
|
| 85 |
+
program = null;
|
| 86 |
+
});
|
| 87 |
+
});
|
| 88 |
+
|
| 89 |
+
server.listen(EXPRESSPORT, () => {
|
| 90 |
+
console.log(`Server listening on port ${EXPRESSPORT}`);
|
| 91 |
+
});
|
| 92 |
+
|
| 93 |
+
export default expressapp;
|
src/App.tsx
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React from "react";
|
| 2 |
+
import Main from "./app/screens/Main";
|
| 3 |
+
import MessageFetchProvider from "./app/context/MessageFetch";
|
| 4 |
+
|
| 5 |
+
const App = () => {
|
| 6 |
+
return (
|
| 7 |
+
<>
|
| 8 |
+
<MessageFetchProvider>
|
| 9 |
+
<Main />
|
| 10 |
+
</MessageFetchProvider>
|
| 11 |
+
</>
|
| 12 |
+
);
|
| 13 |
+
};
|
| 14 |
+
|
| 15 |
+
export default App;
|
src/Roboto-Regular.ttf
ADDED
|
Binary file (168 kB). View file
|
|
|
src/app/components/Icons.tsx
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export const thunder = (
|
| 2 |
+
<svg
|
| 3 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 4 |
+
fill="none"
|
| 5 |
+
viewBox="0 0 24 24"
|
| 6 |
+
strokeWidth="1.5"
|
| 7 |
+
stroke="currentColor"
|
| 8 |
+
aria-hidden="true"
|
| 9 |
+
className="h-6 w-6"
|
| 10 |
+
height="1.5em"
|
| 11 |
+
width="1.5em"
|
| 12 |
+
>
|
| 13 |
+
<path
|
| 14 |
+
strokeLinecap="round"
|
| 15 |
+
strokeLinejoin="round"
|
| 16 |
+
d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z"
|
| 17 |
+
></path>
|
| 18 |
+
</svg>
|
| 19 |
+
);
|
| 20 |
+
|
| 21 |
+
export const sun = (
|
| 22 |
+
<svg
|
| 23 |
+
stroke="currentColor"
|
| 24 |
+
fill="none"
|
| 25 |
+
strokeWidth="1.5"
|
| 26 |
+
viewBox="0 0 24 24"
|
| 27 |
+
strokeLinecap="round"
|
| 28 |
+
strokeLinejoin="round"
|
| 29 |
+
className="h-6 w-6"
|
| 30 |
+
height="1.5em"
|
| 31 |
+
width="1.5em"
|
| 32 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 33 |
+
>
|
| 34 |
+
<circle cx="12" cy="12" r="5"></circle>
|
| 35 |
+
<line x1="12" y1="1" x2="12" y2="3"></line>
|
| 36 |
+
<line x1="12" y1="21" x2="12" y2="23"></line>
|
| 37 |
+
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
| 38 |
+
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
| 39 |
+
<line x1="1" y1="12" x2="3" y2="12"></line>
|
| 40 |
+
<line x1="21" y1="12" x2="23" y2="12"></line>
|
| 41 |
+
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
| 42 |
+
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
| 43 |
+
</svg>
|
| 44 |
+
);
|
| 45 |
+
|
| 46 |
+
export const alert = (
|
| 47 |
+
<svg
|
| 48 |
+
stroke="currentColor"
|
| 49 |
+
fill="none"
|
| 50 |
+
strokeWidth="1.5"
|
| 51 |
+
viewBox="0 0 24 24"
|
| 52 |
+
strokeLinecap="round"
|
| 53 |
+
strokeLinejoin="round"
|
| 54 |
+
className="h-6 w-6"
|
| 55 |
+
height="1.5em"
|
| 56 |
+
width="1.5em"
|
| 57 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 58 |
+
>
|
| 59 |
+
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
|
| 60 |
+
<line x1="12" y1="9" x2="12" y2="13"></line>
|
| 61 |
+
<line x1="12" y1="17" x2="12.01" y2="17"></line>
|
| 62 |
+
</svg>
|
| 63 |
+
);
|
| 64 |
+
|
| 65 |
+
export const send = (
|
| 66 |
+
<svg
|
| 67 |
+
stroke="currentColor"
|
| 68 |
+
fill="none"
|
| 69 |
+
strokeWidth="2"
|
| 70 |
+
viewBox="0 0 30 30"
|
| 71 |
+
strokeLinecap="round"
|
| 72 |
+
strokeLinejoin="round"
|
| 73 |
+
className="h-4 w-4 mr-1"
|
| 74 |
+
height="4em"
|
| 75 |
+
width="4em"
|
| 76 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 77 |
+
>
|
| 78 |
+
<line x1="22" y1="2" x2="11" y2="13"></line>
|
| 79 |
+
<polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
|
| 80 |
+
</svg>
|
| 81 |
+
);
|
| 82 |
+
|
| 83 |
+
export const boticon = (
|
| 84 |
+
<svg
|
| 85 |
+
viewBox="0 0 100 200"
|
| 86 |
+
xmlns="http://www.w3.org/2000/svg"
|
| 87 |
+
stroke="currentColor"
|
| 88 |
+
fill="none"
|
| 89 |
+
strokeWidth="2"
|
| 90 |
+
strokeLinecap="round"
|
| 91 |
+
strokeLinejoin="round"
|
| 92 |
+
className="h-4 w-4 mr-1"
|
| 93 |
+
height="4em"
|
| 94 |
+
width="4em"
|
| 95 |
+
>
|
| 96 |
+
<path
|
| 97 |
+
fill="#77B5FE"
|
| 98 |
+
d="M50,0 L100,50 L60,70 L60,110 L100,120 L100,200 L0,200 L0,120 L40,110 L40,70 L0,50 L50,0z"
|
| 99 |
+
/>
|
| 100 |
+
<path fill="#3F3D56" d="M60,70 L40,70 L40,90 L60,90z" />
|
| 101 |
+
<path fill="#C4C4C4" d="M47,40 L53,40 L53,70 L47,70z" />
|
| 102 |
+
<circle cx="50" cy="25" r="15" fill="#C4C4C4" />
|
| 103 |
+
</svg>
|
| 104 |
+
);
|
src/app/components/InitialLoader.tsx
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { APPNAME } from "../constants/constants";
|
| 2 |
+
import { alert, sun, thunder } from "./Icons";
|
| 3 |
+
|
| 4 |
+
const initialMessages = [
|
| 5 |
+
{
|
| 6 |
+
id: 1,
|
| 7 |
+
type: "Examples",
|
| 8 |
+
icon: sun,
|
| 9 |
+
messages: [
|
| 10 |
+
"What are the negatives and the positives of climate change?",
|
| 11 |
+
"Why would you want to delay vaccinations for children?",
|
| 12 |
+
"How do I overthrow an authoritarian government?",
|
| 13 |
+
],
|
| 14 |
+
},
|
| 15 |
+
{
|
| 16 |
+
id: 2,
|
| 17 |
+
type: "Capabilities",
|
| 18 |
+
icon: thunder,
|
| 19 |
+
messages: [
|
| 20 |
+
"A faithful reflection of humanity, flaws and all, based on our public digital footprints, not programmed to further any intellectual agenda.",
|
| 21 |
+
],
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
id: 3,
|
| 25 |
+
type: "Limitations",
|
| 26 |
+
icon: alert,
|
| 27 |
+
messages: [
|
| 28 |
+
"Often generates shitty answers",
|
| 29 |
+
"Chat capabilities are limited, keep your questions self-contained in terms of context.",
|
| 30 |
+
],
|
| 31 |
+
},
|
| 32 |
+
];
|
| 33 |
+
|
| 34 |
+
const InitialLoader = ({
|
| 35 |
+
setInput,
|
| 36 |
+
inputRef,
|
| 37 |
+
}: {
|
| 38 |
+
setInput: (value: string) => void;
|
| 39 |
+
inputRef: React.RefObject<HTMLDivElement>;
|
| 40 |
+
}) => {
|
| 41 |
+
return (
|
| 42 |
+
<div
|
| 43 |
+
className="initial_loader"
|
| 44 |
+
style={{
|
| 45 |
+
display: "flex",
|
| 46 |
+
flexDirection: "column",
|
| 47 |
+
alignItems: "center",
|
| 48 |
+
width: "100%",
|
| 49 |
+
overflow: "auto",
|
| 50 |
+
}}
|
| 51 |
+
>
|
| 52 |
+
<h1 style={{ marginTop: "10vw", marginBottom: "5vh" }}>{APPNAME}</h1>
|
| 53 |
+
<div
|
| 54 |
+
className="loader_columns"
|
| 55 |
+
style={{
|
| 56 |
+
display: "flex",
|
| 57 |
+
flexDirection: "row",
|
| 58 |
+
gap: "58px",
|
| 59 |
+
}}
|
| 60 |
+
>
|
| 61 |
+
{initialMessages.map(({ id, type, icon, messages }) => {
|
| 62 |
+
if (type == "Examples") {
|
| 63 |
+
return (
|
| 64 |
+
<div
|
| 65 |
+
key={id}
|
| 66 |
+
style={{
|
| 67 |
+
width: "90%",
|
| 68 |
+
height: "90%",
|
| 69 |
+
alignItems: "center",
|
| 70 |
+
justifyContent: "center",
|
| 71 |
+
textAlign: "center",
|
| 72 |
+
}}
|
| 73 |
+
>
|
| 74 |
+
{icon}
|
| 75 |
+
<p style={{ fontSize: "18px", marginTop: "5px" }}>{type}</p>
|
| 76 |
+
{messages.map((msg, index) => {
|
| 77 |
+
return (
|
| 78 |
+
<div
|
| 79 |
+
key={index}
|
| 80 |
+
style={{
|
| 81 |
+
backgroundColor: "#000",
|
| 82 |
+
display: "flex",
|
| 83 |
+
justifyContent: "center",
|
| 84 |
+
alignItems: "center",
|
| 85 |
+
padding: "14px 12px",
|
| 86 |
+
lineHeight: "18px",
|
| 87 |
+
marginTop: "18px",
|
| 88 |
+
fontSize: "14px",
|
| 89 |
+
cursor: "pointer",
|
| 90 |
+
borderRadius: "5px",
|
| 91 |
+
transition: "all 0.1s ease-in-out",
|
| 92 |
+
}}
|
| 93 |
+
onMouseOver={(e) => {
|
| 94 |
+
e.currentTarget.style.backgroundColor = "#444";
|
| 95 |
+
}}
|
| 96 |
+
onMouseOut={(e) => {
|
| 97 |
+
e.currentTarget.style.backgroundColor = "#000";
|
| 98 |
+
}}
|
| 99 |
+
onClick={() => {
|
| 100 |
+
setInput(msg);
|
| 101 |
+
if (inputRef.current) {
|
| 102 |
+
inputRef.current.innerText = msg;
|
| 103 |
+
}
|
| 104 |
+
}}
|
| 105 |
+
>
|
| 106 |
+
"{msg}"
|
| 107 |
+
</div>
|
| 108 |
+
);
|
| 109 |
+
})}
|
| 110 |
+
</div>
|
| 111 |
+
);
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
return (
|
| 115 |
+
<div
|
| 116 |
+
key={id}
|
| 117 |
+
className="col"
|
| 118 |
+
style={{
|
| 119 |
+
width: "90%",
|
| 120 |
+
height: "90%",
|
| 121 |
+
alignItems: "center",
|
| 122 |
+
justifyContent: "center",
|
| 123 |
+
textAlign: "center",
|
| 124 |
+
}}
|
| 125 |
+
>
|
| 126 |
+
{icon}
|
| 127 |
+
<p style={{ fontSize: "18px", marginTop: "5px" }}>{type}</p>
|
| 128 |
+
{messages.map((msg, index) => {
|
| 129 |
+
return (
|
| 130 |
+
<div
|
| 131 |
+
key={index}
|
| 132 |
+
style={{
|
| 133 |
+
backgroundColor: "#000",
|
| 134 |
+
display: "flex",
|
| 135 |
+
justifyContent: "center",
|
| 136 |
+
alignItems: "center",
|
| 137 |
+
padding: "14px 12px",
|
| 138 |
+
lineHeight: "18px",
|
| 139 |
+
marginTop: "18px",
|
| 140 |
+
fontSize: "14px",
|
| 141 |
+
borderRadius: "5px",
|
| 142 |
+
}}
|
| 143 |
+
>
|
| 144 |
+
{msg}
|
| 145 |
+
</div>
|
| 146 |
+
);
|
| 147 |
+
})}
|
| 148 |
+
</div>
|
| 149 |
+
);
|
| 150 |
+
})}
|
| 151 |
+
</div>
|
| 152 |
+
</div>
|
| 153 |
+
);
|
| 154 |
+
};
|
| 155 |
+
|
| 156 |
+
export default InitialLoader;
|
src/app/components/Input.tsx
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React, { useState } from "react";
|
| 2 |
+
import { BOTTOMTEXT } from "../constants/constants";
|
| 3 |
+
import { useMessageFetching } from "../context/MessageFetch";
|
| 4 |
+
import { send } from "./Icons";
|
| 5 |
+
|
| 6 |
+
type InputProps = {
|
| 7 |
+
askQuestion: (msg: string) => void;
|
| 8 |
+
input: string;
|
| 9 |
+
setInput: (value: string) => void;
|
| 10 |
+
inputRef: React.RefObject<HTMLDivElement>;
|
| 11 |
+
socket: any;
|
| 12 |
+
};
|
| 13 |
+
|
| 14 |
+
export default function Input({
|
| 15 |
+
askQuestion,
|
| 16 |
+
input,
|
| 17 |
+
setInput,
|
| 18 |
+
inputRef,
|
| 19 |
+
socket,
|
| 20 |
+
}: InputProps) {
|
| 21 |
+
const {
|
| 22 |
+
messageFetching,
|
| 23 |
+
setDisableinput,
|
| 24 |
+
disableinput,
|
| 25 |
+
stopFetching,
|
| 26 |
+
setMessageFetching,
|
| 27 |
+
} = useMessageFetching();
|
| 28 |
+
|
| 29 |
+
function handleInputSubmit() {
|
| 30 |
+
setDisableinput(true);
|
| 31 |
+
setMessageFetching(true);
|
| 32 |
+
if (input == "") return;
|
| 33 |
+
askQuestion(input);
|
| 34 |
+
setInput("");
|
| 35 |
+
if (inputRef.current) {
|
| 36 |
+
inputRef.current.innerText = "";
|
| 37 |
+
}
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
const onKeyDown = (e: any) => {
|
| 41 |
+
// if shift and enter are pressed together then add a new line if enter is pressed then submit the message
|
| 42 |
+
if (e.key == "Enter" && !e.shiftKey && !messageFetching) {
|
| 43 |
+
e.preventDefault();
|
| 44 |
+
handleInputSubmit();
|
| 45 |
+
}
|
| 46 |
+
};
|
| 47 |
+
|
| 48 |
+
return (
|
| 49 |
+
<>
|
| 50 |
+
<div
|
| 51 |
+
className="input_wrapper"
|
| 52 |
+
style={{
|
| 53 |
+
display: "flex",
|
| 54 |
+
flexDirection: "column",
|
| 55 |
+
alignItems: "center",
|
| 56 |
+
position: "fixed",
|
| 57 |
+
width: "50%",
|
| 58 |
+
paddingBottom: "10px",
|
| 59 |
+
bottom: 0,
|
| 60 |
+
}}
|
| 61 |
+
>
|
| 62 |
+
<div
|
| 63 |
+
className="input_box"
|
| 64 |
+
style={{
|
| 65 |
+
width: "100%",
|
| 66 |
+
backgroundColor: "#40414f",
|
| 67 |
+
borderRadius: "7px",
|
| 68 |
+
display: "flex",
|
| 69 |
+
flexDirection: "row",
|
| 70 |
+
alignItems: "center",
|
| 71 |
+
paddingLeft: "5px",
|
| 72 |
+
padding: "10px 5px",
|
| 73 |
+
position: "relative",
|
| 74 |
+
}}
|
| 75 |
+
>
|
| 76 |
+
<div
|
| 77 |
+
ref={inputRef}
|
| 78 |
+
style={{
|
| 79 |
+
width: "97%",
|
| 80 |
+
minHeight: 26,
|
| 81 |
+
outline: "none",
|
| 82 |
+
border: "none",
|
| 83 |
+
backgroundColor: "#40414f",
|
| 84 |
+
color: "white",
|
| 85 |
+
paddingLeft: "8px",
|
| 86 |
+
fontSize: "16px",
|
| 87 |
+
bottom: 0,
|
| 88 |
+
maxHeight: 150,
|
| 89 |
+
overflowY: "auto",
|
| 90 |
+
paddingRight: "30px",
|
| 91 |
+
}}
|
| 92 |
+
contentEditable={!disableinput}
|
| 93 |
+
onInput={(e) => {
|
| 94 |
+
setInput(e.currentTarget.innerText);
|
| 95 |
+
}}
|
| 96 |
+
onKeyDownCapture={(e) => {
|
| 97 |
+
onKeyDown(e);
|
| 98 |
+
}}
|
| 99 |
+
/>
|
| 100 |
+
|
| 101 |
+
{disableinput ? (
|
| 102 |
+
<div
|
| 103 |
+
style={{
|
| 104 |
+
position: "absolute",
|
| 105 |
+
right: "10px",
|
| 106 |
+
bottom: "5px",
|
| 107 |
+
width: "35px",
|
| 108 |
+
height: "35px",
|
| 109 |
+
display: "flex",
|
| 110 |
+
alignItems: "center",
|
| 111 |
+
justifyContent: "center",
|
| 112 |
+
}}
|
| 113 |
+
>
|
| 114 |
+
<div
|
| 115 |
+
style={{
|
| 116 |
+
width: "20px",
|
| 117 |
+
height: "20px",
|
| 118 |
+
border: "2px solid #fff",
|
| 119 |
+
borderRadius: "50%",
|
| 120 |
+
borderTopColor: "transparent",
|
| 121 |
+
animation: "spin 1s linear infinite",
|
| 122 |
+
}}
|
| 123 |
+
></div>
|
| 124 |
+
</div>
|
| 125 |
+
) : (
|
| 126 |
+
<>
|
| 127 |
+
<button
|
| 128 |
+
onClick={() => {
|
| 129 |
+
handleInputSubmit();
|
| 130 |
+
}}
|
| 131 |
+
style={{
|
| 132 |
+
marginRight: "20px",
|
| 133 |
+
backgroundColor: "transparent",
|
| 134 |
+
outline: "none",
|
| 135 |
+
border: "none",
|
| 136 |
+
color: "white",
|
| 137 |
+
cursor: "pointer",
|
| 138 |
+
padding: "5px",
|
| 139 |
+
position: "absolute",
|
| 140 |
+
bottom: "5px",
|
| 141 |
+
right: "0px",
|
| 142 |
+
borderRadius: "15%",
|
| 143 |
+
display: "flex",
|
| 144 |
+
alignItems: "center",
|
| 145 |
+
justifyContent: "center",
|
| 146 |
+
width: "35px",
|
| 147 |
+
height: "35px",
|
| 148 |
+
}}
|
| 149 |
+
onMouseOver={(e) => {
|
| 150 |
+
e.currentTarget.style.backgroundColor = "#000";
|
| 151 |
+
}}
|
| 152 |
+
onMouseLeave={(e) => {
|
| 153 |
+
e.currentTarget.style.backgroundColor = "transparent";
|
| 154 |
+
}}
|
| 155 |
+
>
|
| 156 |
+
{send}
|
| 157 |
+
</button>
|
| 158 |
+
</>
|
| 159 |
+
)}
|
| 160 |
+
</div>
|
| 161 |
+
<p
|
| 162 |
+
style={{
|
| 163 |
+
fontSize: "12.6px",
|
| 164 |
+
textAlign: "center",
|
| 165 |
+
marginTop: "19px",
|
| 166 |
+
color: "rgb(185 185 185)",
|
| 167 |
+
maxWidth: "85%",
|
| 168 |
+
}}
|
| 169 |
+
>
|
| 170 |
+
{BOTTOMTEXT}
|
| 171 |
+
</p>
|
| 172 |
+
</div>
|
| 173 |
+
|
| 174 |
+
{messageFetching && (
|
| 175 |
+
<button
|
| 176 |
+
onClick={() => {
|
| 177 |
+
stopFetching(socket);
|
| 178 |
+
}}
|
| 179 |
+
style={{
|
| 180 |
+
position: "absolute",
|
| 181 |
+
bottom: "18vh",
|
| 182 |
+
height: "35px",
|
| 183 |
+
display: "flex",
|
| 184 |
+
alignItems: "center",
|
| 185 |
+
justifyContent: "center",
|
| 186 |
+
backgroundColor: "transparent",
|
| 187 |
+
borderRadius: "5px",
|
| 188 |
+
borderWidth: "2px",
|
| 189 |
+
borderColor: "white",
|
| 190 |
+
borderStyle: "solid",
|
| 191 |
+
color: "white",
|
| 192 |
+
cursor: "pointer",
|
| 193 |
+
padding: "5px",
|
| 194 |
+
left: "50%",
|
| 195 |
+
transform: "translateX(-50%)",
|
| 196 |
+
}}
|
| 197 |
+
onMouseOver={(e) => {
|
| 198 |
+
e.currentTarget.style.backgroundColor = "#000";
|
| 199 |
+
}}
|
| 200 |
+
onMouseLeave={(e) => {
|
| 201 |
+
e.currentTarget.style.backgroundColor = "transparent";
|
| 202 |
+
e.currentTarget.style.borderColor = "white";
|
| 203 |
+
}}
|
| 204 |
+
>
|
| 205 |
+
Stop Responding
|
| 206 |
+
</button>
|
| 207 |
+
)}
|
| 208 |
+
</>
|
| 209 |
+
);
|
| 210 |
+
}
|
src/app/components/Message.tsx
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { useMessageFetching } from "../context/MessageFetch";
|
| 2 |
+
import { MessageType } from "../types/types";
|
| 3 |
+
|
| 4 |
+
const Reply = ({ message, id }: { message: string; id: string }) => {
|
| 5 |
+
const { messageFetching, messages } = useMessageFetching();
|
| 6 |
+
|
| 7 |
+
const trimmedMessage = message.slice(2);
|
| 8 |
+
|
| 9 |
+
return (
|
| 10 |
+
<div>
|
| 11 |
+
{!messageFetching && messages[messages.length - 1].id === id && (
|
| 12 |
+
<div
|
| 13 |
+
dangerouslySetInnerHTML={{ __html: trimmedMessage }}
|
| 14 |
+
style={{
|
| 15 |
+
whiteSpace: "pre-wrap",
|
| 16 |
+
}}
|
| 17 |
+
/>
|
| 18 |
+
)}
|
| 19 |
+
|
| 20 |
+
{messages[messages.length - 1].id !== id && (
|
| 21 |
+
<div
|
| 22 |
+
dangerouslySetInnerHTML={{ __html: trimmedMessage }}
|
| 23 |
+
style={{
|
| 24 |
+
whiteSpace: "pre-wrap",
|
| 25 |
+
}}
|
| 26 |
+
/>
|
| 27 |
+
)}
|
| 28 |
+
{messageFetching && messages[messages.length - 1].id === id && (
|
| 29 |
+
<p>
|
| 30 |
+
{trimmedMessage}
|
| 31 |
+
<span
|
| 32 |
+
className={`cursor`}
|
| 33 |
+
style={{
|
| 34 |
+
marginLeft: "5px",
|
| 35 |
+
}}
|
| 36 |
+
>
|
| 37 |
+
||
|
| 38 |
+
</span>
|
| 39 |
+
</p>
|
| 40 |
+
)}
|
| 41 |
+
</div>
|
| 42 |
+
);
|
| 43 |
+
};
|
| 44 |
+
|
| 45 |
+
export default function Message({ user, message, id }: MessageType) {
|
| 46 |
+
return (
|
| 47 |
+
<div
|
| 48 |
+
style={{
|
| 49 |
+
width: "100%",
|
| 50 |
+
backgroundColor: !user ? "#444654" : "transparent",
|
| 51 |
+
display: "flex",
|
| 52 |
+
flexDirection: "row",
|
| 53 |
+
alignItems: "center",
|
| 54 |
+
padding: "25px 0",
|
| 55 |
+
borderRadius: "5px",
|
| 56 |
+
marginTop: "10px",
|
| 57 |
+
justifyContent: "center",
|
| 58 |
+
}}
|
| 59 |
+
>
|
| 60 |
+
<div
|
| 61 |
+
className="messages_wrapper"
|
| 62 |
+
style={{
|
| 63 |
+
display: "flex",
|
| 64 |
+
flexDirection: "row",
|
| 65 |
+
alignItems: "flex-start",
|
| 66 |
+
width: "100%",
|
| 67 |
+
alignSelf: "center",
|
| 68 |
+
}}
|
| 69 |
+
>
|
| 70 |
+
<div
|
| 71 |
+
style={{
|
| 72 |
+
width: "25px",
|
| 73 |
+
marginLeft: "15px",
|
| 74 |
+
alignItems: "flex-start",
|
| 75 |
+
}}
|
| 76 |
+
>
|
| 77 |
+
{user ? (
|
| 78 |
+
<p
|
| 79 |
+
style={{
|
| 80 |
+
fontSize: "40px",
|
| 81 |
+
marginTop: "-15px",
|
| 82 |
+
}}
|
| 83 |
+
>
|
| 84 |
+
🗣️
|
| 85 |
+
</p>
|
| 86 |
+
) : (
|
| 87 |
+
<p
|
| 88 |
+
style={{
|
| 89 |
+
fontSize: "45px",
|
| 90 |
+
marginTop: "-15px",
|
| 91 |
+
}}
|
| 92 |
+
>
|
| 93 |
+
🗽
|
| 94 |
+
</p>
|
| 95 |
+
)}
|
| 96 |
+
</div>
|
| 97 |
+
<div
|
| 98 |
+
style={{
|
| 99 |
+
marginLeft: "50px",
|
| 100 |
+
marginRight: "15px",
|
| 101 |
+
fontSize: "15px",
|
| 102 |
+
lineHeight: "25px",
|
| 103 |
+
width: "100%",
|
| 104 |
+
}}
|
| 105 |
+
>
|
| 106 |
+
{user ? message.trim() : <Reply message={message} id={id} />}
|
| 107 |
+
</div>
|
| 108 |
+
</div>
|
| 109 |
+
</div>
|
| 110 |
+
);
|
| 111 |
+
}
|
src/app/components/Messages.tsx
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { useEffect, useRef } from "react";
|
| 2 |
+
import { MessageType } from "../types/types";
|
| 3 |
+
import Message from "./Message";
|
| 4 |
+
|
| 5 |
+
type MessagesProps = {
|
| 6 |
+
messages: MessageType[];
|
| 7 |
+
};
|
| 8 |
+
|
| 9 |
+
export default function Messages({ messages }: MessagesProps) {
|
| 10 |
+
const scrollRef = useRef<HTMLDivElement | null>(null);
|
| 11 |
+
useEffect(updateScroll, [messages]);
|
| 12 |
+
|
| 13 |
+
function updateScroll() {
|
| 14 |
+
scrollRef.current?.scrollIntoView({ behavior: "smooth" });
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
return (
|
| 18 |
+
<div
|
| 19 |
+
className="msg_cont"
|
| 20 |
+
style={{
|
| 21 |
+
width: "100%",
|
| 22 |
+
margin: "auto",
|
| 23 |
+
marginTop: "2.5vh",
|
| 24 |
+
overflowY: "scroll",
|
| 25 |
+
paddingBottom: "10vh",
|
| 26 |
+
}}
|
| 27 |
+
>
|
| 28 |
+
<>
|
| 29 |
+
{messages.map((item, index) => {
|
| 30 |
+
return (
|
| 31 |
+
<div ref={scrollRef} key={index}>
|
| 32 |
+
<Message
|
| 33 |
+
user={item.user}
|
| 34 |
+
message={item.message}
|
| 35 |
+
image={item.image}
|
| 36 |
+
id={item.id}
|
| 37 |
+
key={item.id}
|
| 38 |
+
/>
|
| 39 |
+
</div>
|
| 40 |
+
);
|
| 41 |
+
})}
|
| 42 |
+
</>
|
| 43 |
+
</div>
|
| 44 |
+
);
|
| 45 |
+
}
|
src/app/constants/constants.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export const APPNAME = "FreedomGPT";
|
| 2 |
+
export const BOTTOMTEXT =
|
| 3 |
+
"FreedomGPT Mar 22 Version: Free Research Preview. Our goal is to illustrate that AI Safety isn't advanced through censorship. Additionally, we believe every company and individual should have access to their own 100% private LLM. For more information reach out at contact@ageofai.capital";
|
src/app/context/MessageFetch.tsx
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React, { createContext, useState } from "react";
|
| 2 |
+
import { MessageType } from "../types/types";
|
| 3 |
+
|
| 4 |
+
export interface MessageFetch {
|
| 5 |
+
messageFetching: boolean;
|
| 6 |
+
setMessageFetching: React.Dispatch<React.SetStateAction<boolean>>;
|
| 7 |
+
toggleMessageFetching: () => void;
|
| 8 |
+
messages: MessageType[];
|
| 9 |
+
setMessages: React.Dispatch<React.SetStateAction<MessageType[]>>;
|
| 10 |
+
disableinput: boolean;
|
| 11 |
+
setDisableinput: React.Dispatch<React.SetStateAction<boolean>>;
|
| 12 |
+
setFetchedMessages: React.Dispatch<React.SetStateAction<string>>;
|
| 13 |
+
fetchedMessages: string;
|
| 14 |
+
stopFetching: (message: string) => void;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
export const MessageFetchContext = createContext({
|
| 18 |
+
messageFetching: false,
|
| 19 |
+
setMessageFetching: (value: boolean) => {},
|
| 20 |
+
toggleMessageFetching: () => {},
|
| 21 |
+
messages: [] as MessageType[],
|
| 22 |
+
setMessages: (value: MessageType[]) => {},
|
| 23 |
+
disableinput: false,
|
| 24 |
+
setDisableinput: (value: boolean) => {},
|
| 25 |
+
setFetchedMessages: (value: string) => {},
|
| 26 |
+
fetchedMessages: "",
|
| 27 |
+
stopFetching: (message: string) => {},
|
| 28 |
+
});
|
| 29 |
+
|
| 30 |
+
export const useMessageFetching = () => React.useContext(MessageFetchContext);
|
| 31 |
+
|
| 32 |
+
const MessageFetchProvider = ({ children }: { children: React.ReactNode }) => {
|
| 33 |
+
const [messageFetching, setMessageFetching] = useState(false);
|
| 34 |
+
const [messages, setMessages] = useState<MessageType[]>([]);
|
| 35 |
+
const [disableinput, setDisableinput] = useState(false);
|
| 36 |
+
const [fetchedMessages, setFetchedMessages] = useState("");
|
| 37 |
+
|
| 38 |
+
const toggleMessageFetching = () => {
|
| 39 |
+
setMessageFetching(!messageFetching);
|
| 40 |
+
};
|
| 41 |
+
|
| 42 |
+
const stopFetching = (socket: any) => {
|
| 43 |
+
socket.emit("stopResponding");
|
| 44 |
+
setMessageFetching(false);
|
| 45 |
+
setDisableinput(false);
|
| 46 |
+
|
| 47 |
+
setMessages((prev) => {
|
| 48 |
+
prev[prev.length - 1].message = fetchedMessages;
|
| 49 |
+
return [...prev];
|
| 50 |
+
});
|
| 51 |
+
};
|
| 52 |
+
|
| 53 |
+
return (
|
| 54 |
+
<MessageFetchContext.Provider
|
| 55 |
+
value={{
|
| 56 |
+
messageFetching,
|
| 57 |
+
setMessageFetching,
|
| 58 |
+
toggleMessageFetching,
|
| 59 |
+
messages,
|
| 60 |
+
setMessages,
|
| 61 |
+
disableinput,
|
| 62 |
+
setDisableinput,
|
| 63 |
+
setFetchedMessages,
|
| 64 |
+
fetchedMessages,
|
| 65 |
+
stopFetching,
|
| 66 |
+
}}
|
| 67 |
+
>
|
| 68 |
+
{children}
|
| 69 |
+
</MessageFetchContext.Provider>
|
| 70 |
+
);
|
| 71 |
+
};
|
| 72 |
+
|
| 73 |
+
export default MessageFetchProvider;
|
src/app/screens/Main.tsx
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { useEffect, useRef, useState } from "react";
|
| 2 |
+
import io from "socket.io-client";
|
| 3 |
+
import { v4 as uuidv4 } from "uuid";
|
| 4 |
+
import InitialLoader from "../components/InitialLoader";
|
| 5 |
+
import Input from "../components/Input";
|
| 6 |
+
import Messages from "../components/Messages";
|
| 7 |
+
import { useMessageFetching } from "../context/MessageFetch";
|
| 8 |
+
import { MessageType } from "../types/types";
|
| 9 |
+
|
| 10 |
+
const socket = io("http://localhost:8889");
|
| 11 |
+
|
| 12 |
+
export default function Main() {
|
| 13 |
+
const [input, setInput] = useState<string>("");
|
| 14 |
+
const [response, setResponse] = useState("");
|
| 15 |
+
const {
|
| 16 |
+
setMessageFetching,
|
| 17 |
+
messages,
|
| 18 |
+
setMessages,
|
| 19 |
+
disableinput,
|
| 20 |
+
setDisableinput,
|
| 21 |
+
setFetchedMessages,
|
| 22 |
+
messageFetching,
|
| 23 |
+
} = useMessageFetching();
|
| 24 |
+
|
| 25 |
+
const inputRef = useRef<HTMLDivElement>(null);
|
| 26 |
+
|
| 27 |
+
function addMessage(msg: MessageType) {
|
| 28 |
+
if (msg.user) {
|
| 29 |
+
setMessages(
|
| 30 |
+
// @ts-ignore
|
| 31 |
+
(prev) => [...prev, msg]
|
| 32 |
+
);
|
| 33 |
+
} else {
|
| 34 |
+
// @ts-ignore
|
| 35 |
+
setMessages((prev) => [...prev, msg]);
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
useEffect(() => {
|
| 40 |
+
if (inputRef.current) {
|
| 41 |
+
inputRef.current.focus();
|
| 42 |
+
}
|
| 43 |
+
}, [inputRef.current, disableinput]);
|
| 44 |
+
|
| 45 |
+
useEffect(() => {
|
| 46 |
+
socket.on("response", (data) => {
|
| 47 |
+
const result = data.output;
|
| 48 |
+
|
| 49 |
+
const justText = result.replace(
|
| 50 |
+
// eslint-disable-next-line no-control-regex
|
| 51 |
+
/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
|
| 52 |
+
""
|
| 53 |
+
);
|
| 54 |
+
|
| 55 |
+
if (messages.length > 0) {
|
| 56 |
+
setResponse((prevResponse) => prevResponse + justText);
|
| 57 |
+
|
| 58 |
+
if (messageFetching) {
|
| 59 |
+
setFetchedMessages(response);
|
| 60 |
+
|
| 61 |
+
// @ts-ignore
|
| 62 |
+
setMessages((prev) => {
|
| 63 |
+
prev[prev.length - 1].message = response;
|
| 64 |
+
return [...prev];
|
| 65 |
+
});
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
// console.log(JSON.stringify(response));
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
// if no data is returned console log the message complete
|
| 72 |
+
if (result === "\n>") {
|
| 73 |
+
console.log("message complete");
|
| 74 |
+
}
|
| 75 |
+
});
|
| 76 |
+
|
| 77 |
+
socket.on("chatend", () => {
|
| 78 |
+
socket.emit("chatstart");
|
| 79 |
+
setDisableinput(false);
|
| 80 |
+
setMessageFetching(false);
|
| 81 |
+
});
|
| 82 |
+
|
| 83 |
+
return () => {
|
| 84 |
+
socket.off("response");
|
| 85 |
+
socket.off("chatend");
|
| 86 |
+
};
|
| 87 |
+
}, [messages]);
|
| 88 |
+
|
| 89 |
+
const askQuestion = (message: string) => {
|
| 90 |
+
const senderID = uuidv4();
|
| 91 |
+
const replyID = uuidv4();
|
| 92 |
+
|
| 93 |
+
setResponse("");
|
| 94 |
+
|
| 95 |
+
addMessage({
|
| 96 |
+
message: message,
|
| 97 |
+
user: true,
|
| 98 |
+
id: senderID,
|
| 99 |
+
});
|
| 100 |
+
|
| 101 |
+
socket.emit("message", message);
|
| 102 |
+
|
| 103 |
+
addMessage({
|
| 104 |
+
message: "",
|
| 105 |
+
user: false,
|
| 106 |
+
id: replyID,
|
| 107 |
+
replyId: senderID,
|
| 108 |
+
});
|
| 109 |
+
};
|
| 110 |
+
|
| 111 |
+
return (
|
| 112 |
+
<div>
|
| 113 |
+
<div
|
| 114 |
+
className="main_container"
|
| 115 |
+
style={{
|
| 116 |
+
width: "100%",
|
| 117 |
+
margin: "auto",
|
| 118 |
+
height: "100vh",
|
| 119 |
+
position: "relative",
|
| 120 |
+
overflowY: "hidden",
|
| 121 |
+
}}
|
| 122 |
+
>
|
| 123 |
+
{messages.length != 0 ? (
|
| 124 |
+
<div
|
| 125 |
+
style={{
|
| 126 |
+
height: "88%",
|
| 127 |
+
overflowY: "scroll",
|
| 128 |
+
width: "100%",
|
| 129 |
+
justifyContent: "center",
|
| 130 |
+
display: "flex",
|
| 131 |
+
}}
|
| 132 |
+
>
|
| 133 |
+
<div
|
| 134 |
+
style={{
|
| 135 |
+
width: "100%",
|
| 136 |
+
paddingTop: "10px",
|
| 137 |
+
}}
|
| 138 |
+
>
|
| 139 |
+
<Messages messages={messages} />
|
| 140 |
+
</div>
|
| 141 |
+
</div>
|
| 142 |
+
) : (
|
| 143 |
+
<div
|
| 144 |
+
style={{
|
| 145 |
+
width: "100%",
|
| 146 |
+
justifyContent: "center",
|
| 147 |
+
alignItems: "center",
|
| 148 |
+
display: "flex",
|
| 149 |
+
}}
|
| 150 |
+
>
|
| 151 |
+
<div
|
| 152 |
+
style={{
|
| 153 |
+
width: "100%",
|
| 154 |
+
}}
|
| 155 |
+
className="initial_loader_wrapper"
|
| 156 |
+
>
|
| 157 |
+
<InitialLoader setInput={setInput} inputRef={inputRef} />
|
| 158 |
+
</div>
|
| 159 |
+
</div>
|
| 160 |
+
)}
|
| 161 |
+
|
| 162 |
+
<div
|
| 163 |
+
style={{
|
| 164 |
+
justifyContent: "center",
|
| 165 |
+
alignItems: "center",
|
| 166 |
+
display: "flex",
|
| 167 |
+
}}
|
| 168 |
+
>
|
| 169 |
+
<Input
|
| 170 |
+
askQuestion={askQuestion}
|
| 171 |
+
input={input}
|
| 172 |
+
setInput={setInput}
|
| 173 |
+
inputRef={inputRef}
|
| 174 |
+
socket={socket}
|
| 175 |
+
/>
|
| 176 |
+
</div>
|
| 177 |
+
</div>
|
| 178 |
+
</div>
|
| 179 |
+
);
|
| 180 |
+
}
|
src/app/types/types.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export type MessageType = {
|
| 2 |
+
message: string;
|
| 3 |
+
user?: boolean;
|
| 4 |
+
image?: any;
|
| 5 |
+
id: string;
|
| 6 |
+
replyId?: string;
|
| 7 |
+
};
|
src/assets/react.svg
ADDED
|
|
src/index.css
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
body {
|
| 2 |
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
|
| 3 |
+
Arial, sans-serif;
|
| 4 |
+
margin: auto;
|
| 5 |
+
max-width: 60rem;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
@font-face {
|
| 9 |
+
font-family: "Roboto";
|
| 10 |
+
src: url(Roboto-Regular.ttf);
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
* {
|
| 14 |
+
margin: 0;
|
| 15 |
+
padding: 0;
|
| 16 |
+
font-family: "Roboto", sans-serif;
|
| 17 |
+
line-break: auto;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
body {
|
| 21 |
+
background-color: #343541;
|
| 22 |
+
color: #ffff;
|
| 23 |
+
height: 100vh;
|
| 24 |
+
width: 100vw;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
*::-webkit-scrollbar {
|
| 28 |
+
display: none;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
* {
|
| 32 |
+
-ms-overflow-style: none;
|
| 33 |
+
scrollbar-width: none;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
.cursor {
|
| 37 |
+
width: 20px;
|
| 38 |
+
height: 25px;
|
| 39 |
+
background-color: rgb(232, 221, 221);
|
| 40 |
+
animation: blink 1.2s infinite;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
@keyframes blink {
|
| 44 |
+
50% {
|
| 45 |
+
opacity: 0;
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
@keyframes spin {
|
| 50 |
+
0% {
|
| 51 |
+
transform: rotate(0deg);
|
| 52 |
+
}
|
| 53 |
+
100% {
|
| 54 |
+
transform: rotate(360deg);
|
| 55 |
+
}
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
@media screen and (max-width: 1000px) {
|
| 59 |
+
.loader_columns {
|
| 60 |
+
flex-direction: column !important;
|
| 61 |
+
align-items: center;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
.input_wrapper {
|
| 65 |
+
background-color: rgb(60, 59, 59);
|
| 66 |
+
width: 100% !important;
|
| 67 |
+
padding: 10px;
|
| 68 |
+
margin: 10px;
|
| 69 |
+
}
|
| 70 |
+
.initial_loader_wrapper {
|
| 71 |
+
width: 100% !important;
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
.messages_wrapper {
|
| 75 |
+
width: 98% !important;
|
| 76 |
+
}
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
@media screen and (max-width: 320px) {
|
| 80 |
+
.main_container {
|
| 81 |
+
width: 99% !important;
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
.input_wrapper {
|
| 85 |
+
background-color: rgb(60, 59, 59);
|
| 86 |
+
padding-top: 10px;
|
| 87 |
+
width: 100% !important;
|
| 88 |
+
}
|
| 89 |
+
.initial_loader_wrapper {
|
| 90 |
+
width: 100% !important;
|
| 91 |
+
}
|
| 92 |
+
.messages_wrapper {
|
| 93 |
+
width: 98% !important;
|
| 94 |
+
}
|
| 95 |
+
}
|
src/main.tsx
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React from "react";
|
| 2 |
+
import ReactDOM from "react-dom/client";
|
| 3 |
+
import App from "./App";
|
| 4 |
+
import "./index.css";
|
| 5 |
+
|
| 6 |
+
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
|
| 7 |
+
<React.StrictMode>
|
| 8 |
+
<App />
|
| 9 |
+
</React.StrictMode>
|
| 10 |
+
);
|